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

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 (93) hide show
  1. package/fesm2022/_accordion-chunk.mjs +1 -1
  2. package/fesm2022/_click-event-manager-chunk.mjs +1 -1
  3. package/fesm2022/{_signal-like-chunk.mjs → _collection-chunk.mjs} +51 -2
  4. package/fesm2022/_collection-chunk.mjs.map +1 -0
  5. package/fesm2022/_deferred-content-chunk.mjs +6 -6
  6. package/fesm2022/_list-chunk.mjs +4 -1
  7. package/fesm2022/_list-chunk.mjs.map +1 -1
  8. package/fesm2022/_list-navigation-chunk.mjs +1 -1
  9. package/fesm2022/_list-typeahead-chunk.mjs +1 -1
  10. package/fesm2022/_menu-chunk.mjs +1 -1
  11. package/fesm2022/{_combobox-listbox-chunk.mjs → _option-chunk.mjs} +3 -50
  12. package/fesm2022/_option-chunk.mjs.map +1 -0
  13. package/fesm2022/_tabs-chunk.mjs +1 -1
  14. package/fesm2022/_toolbar-widget-group-chunk.mjs +1 -1
  15. package/fesm2022/_transforms-chunk.mjs +8 -0
  16. package/fesm2022/_transforms-chunk.mjs.map +1 -0
  17. package/fesm2022/{_combobox-tree-chunk.mjs → _tree-chunk.mjs} +3 -48
  18. package/fesm2022/_tree-chunk.mjs.map +1 -0
  19. package/fesm2022/_widget-chunk.mjs +36 -15
  20. package/fesm2022/_widget-chunk.mjs.map +1 -1
  21. package/fesm2022/accordion.mjs +28 -55
  22. package/fesm2022/accordion.mjs.map +1 -1
  23. package/fesm2022/aria.mjs +1 -1
  24. package/fesm2022/aria.mjs.map +1 -1
  25. package/fesm2022/combobox-testing.mjs +79 -0
  26. package/fesm2022/combobox-testing.mjs.map +1 -0
  27. package/fesm2022/combobox.mjs +273 -307
  28. package/fesm2022/combobox.mjs.map +1 -1
  29. package/fesm2022/grid-testing.mjs +8 -0
  30. package/fesm2022/grid-testing.mjs.map +1 -1
  31. package/fesm2022/grid.mjs +68 -87
  32. package/fesm2022/grid.mjs.map +1 -1
  33. package/fesm2022/listbox-testing.mjs +4 -0
  34. package/fesm2022/listbox-testing.mjs.map +1 -1
  35. package/fesm2022/listbox.mjs +184 -205
  36. package/fesm2022/listbox.mjs.map +1 -1
  37. package/fesm2022/menu-testing.mjs +11 -0
  38. package/fesm2022/menu-testing.mjs.map +1 -1
  39. package/fesm2022/menu.mjs +42 -66
  40. package/fesm2022/menu.mjs.map +1 -1
  41. package/fesm2022/private.mjs +19 -13
  42. package/fesm2022/private.mjs.map +1 -1
  43. package/fesm2022/tabs.mjs +78 -84
  44. package/fesm2022/tabs.mjs.map +1 -1
  45. package/fesm2022/toolbar-testing.mjs +5 -1
  46. package/fesm2022/toolbar-testing.mjs.map +1 -1
  47. package/fesm2022/toolbar.mjs +21 -31
  48. package/fesm2022/toolbar.mjs.map +1 -1
  49. package/fesm2022/tree-testing.mjs +12 -0
  50. package/fesm2022/tree-testing.mjs.map +1 -1
  51. package/fesm2022/tree.mjs +118 -146
  52. package/fesm2022/tree.mjs.map +1 -1
  53. package/package.json +6 -6
  54. package/types/_accordion-chunk.d.ts +2 -2
  55. package/types/_collection-chunk.d.ts +42 -0
  56. package/types/_expansion-chunk.d.ts +1 -1
  57. package/types/_grid-chunk.d.ts +9 -3
  58. package/types/_keyboard-event-manager-chunk.d.ts +1 -1
  59. package/types/_list-chunk.d.ts +1 -1
  60. package/types/_list-navigation-chunk.d.ts +1 -1
  61. package/types/_listbox-chunk.d.ts +1 -1
  62. package/types/_menu-chunk.d.ts +1 -1
  63. package/types/_tabs-chunk.d.ts +1 -1
  64. package/types/_toolbar-chunk.d.ts +1 -1
  65. package/types/_tree-chunk.d.ts +1 -1
  66. package/types/accordion.d.ts +7 -13
  67. package/types/combobox-testing.d.ts +63 -0
  68. package/types/combobox.d.ts +96 -193
  69. package/types/grid-testing.d.ts +4 -0
  70. package/types/grid.d.ts +101 -97
  71. package/types/listbox-testing.d.ts +25 -0
  72. package/types/listbox.d.ts +55 -60
  73. package/types/menu-testing.d.ts +6 -0
  74. package/types/menu.d.ts +17 -13
  75. package/types/private.d.ts +24 -138
  76. package/types/tabs.d.ts +69 -72
  77. package/types/toolbar-testing.d.ts +4 -0
  78. package/types/toolbar.d.ts +5 -6
  79. package/types/tree-testing.d.ts +8 -0
  80. package/types/tree.d.ts +7 -14
  81. package/fesm2022/_combobox-chunk.mjs +0 -478
  82. package/fesm2022/_combobox-chunk.mjs.map +0 -1
  83. package/fesm2022/_combobox-listbox-chunk.mjs.map +0 -1
  84. package/fesm2022/_combobox-tree-chunk.mjs.map +0 -1
  85. package/fesm2022/_element-chunk.mjs +0 -6
  86. package/fesm2022/_element-chunk.mjs.map +0 -1
  87. package/fesm2022/_signal-like-chunk.mjs.map +0 -1
  88. package/fesm2022/simple-combobox.mjs +0 -443
  89. package/fesm2022/simple-combobox.mjs.map +0 -1
  90. package/types/_combobox-chunk.d.ts +0 -224
  91. package/types/_element-chunk.d.ts +0 -10
  92. package/types/_signal-like-chunk.d.ts +0 -14
  93. package/types/simple-combobox.d.ts +0 -124
@@ -1 +1 @@
1
- {"version":3,"file":"menu-testing.mjs","sources":["../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/aria/menu/testing/menu-harness.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 {ComponentHarness, HarnessPredicate, TestElement} from '@angular/cdk/testing';\nimport {MenuHarnessFilters, MenuItemHarnessFilters} from './menu-harness-filters';\n\n/** Harness for interacting with a standard ngMenuItem in tests. */\nexport class MenuItemHarness extends ComponentHarness {\n static hostSelector = '[ngMenuItem]';\n\n static with(options: MenuItemHarnessFilters = {}): HarnessPredicate<MenuItemHarness> {\n return new HarnessPredicate(MenuItemHarness, options)\n .addOption('text', options.text, (harness, text) =>\n HarnessPredicate.stringMatches(harness.getText(), text),\n )\n .addOption(\n 'disabled',\n options.disabled,\n async (harness, disabled) => (await harness.isDisabled()) === disabled,\n )\n .addOption(\n 'expanded',\n options.expanded,\n async (harness, expanded) => (await harness.isExpanded()) === expanded,\n );\n }\n\n /** Gets the text content of the menu item. */\n async getText(): Promise<string> {\n return (await this.host()).text();\n }\n\n /** Whether the menu item is disabled. */\n async isDisabled(): Promise<boolean> {\n const host = await this.host();\n return (await host.getAttribute('aria-disabled')) === 'true';\n }\n\n /** Whether the menu item is expanded (contains an open submenu). */\n async isExpanded(): Promise<boolean> {\n const host = await this.host();\n return (await host.getAttribute('aria-expanded')) === 'true';\n }\n\n /** Clicks the menu item to trigger its action or toggle its submenu. */\n async click(): Promise<void> {\n return (await this.host()).click();\n }\n\n /** Resolves the nested submenu panel associated with this menu item, if any exists. */\n async getSubmenu(): Promise<MenuHarness | null> {\n const controlsId = await (await this.host()).getAttribute('aria-controls');\n if (controlsId) {\n return this.documentRootLocatorFactory().locatorFor(\n MenuHarness.with({selector: `#${controlsId}`}),\n )();\n }\n return null;\n }\n}\n\n/** Harness for interacting with a standard ngMenu or ngMenuBar in tests. */\nexport class MenuHarness extends ComponentHarness {\n static hostSelector = '[ngMenu], [ngMenuBar]';\n\n static with(options: MenuHarnessFilters = {}): HarnessPredicate<MenuHarness> {\n return new HarnessPredicate(MenuHarness, options).addOption(\n 'triggerText',\n options.triggerText,\n async (harness, text) => {\n const trigger = await harness._getTrigger();\n if (!trigger) return false;\n return HarnessPredicate.stringMatches(await trigger.text(), text);\n },\n );\n }\n\n /** Resolves the trigger associated with this menu container via aria-controls inversion. */\n async _getTrigger(): Promise<TestElement | null> {\n const id = await (await this.host()).getAttribute('id');\n if (!id) return null;\n return this.documentRootLocatorFactory().locatorForOptional(`[aria-controls=\"${id}\"]`)();\n }\n\n /** Checks whether the menu container is visible. */\n async isOpen(): Promise<boolean> {\n const host = await this.host();\n // Menu bars are always visible persistently.\n if (await host.matchesSelector('[ngMenuBar]')) {\n return true;\n }\n return (await host.getAttribute('data-visible')) === 'true';\n }\n\n /** Opens the menu if it is currently closed. */\n async open(): Promise<void> {\n if (!(await this.isOpen())) {\n const trigger = await this._getTrigger();\n if (trigger) {\n await trigger.click();\n }\n }\n }\n\n /** Closes the menu if it is currently open. */\n async close(): Promise<void> {\n if (await this.isOpen()) {\n const trigger = await this._getTrigger();\n if (trigger) {\n await trigger.click();\n }\n }\n }\n\n /** Queries all menu items inside this menu container. */\n async getItems(filters: MenuItemHarnessFilters = {}): Promise<MenuItemHarness[]> {\n return this.locatorForAll(MenuItemHarness.with(filters))();\n }\n}\n"],"names":["MenuItemHarness","ComponentHarness","hostSelector","with","options","HarnessPredicate","addOption","text","harness","stringMatches","getText","disabled","isDisabled","expanded","isExpanded","host","getAttribute","click","getSubmenu","controlsId","documentRootLocatorFactory","locatorFor","MenuHarness","selector","triggerText","trigger","_getTrigger","id","locatorForOptional","isOpen","matchesSelector","open","close","getItems","filters","locatorForAll"],"mappings":"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"}
1
+ {"version":3,"file":"menu-testing.mjs","sources":["../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/aria/menu/testing/menu-harness.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 {ComponentHarness, HarnessPredicate, TestElement} from '@angular/cdk/testing';\nimport {MenuHarnessFilters, MenuItemHarnessFilters} from './menu-harness-filters';\n\n/** Harness for interacting with a standard ngMenuItem in tests. */\nexport class MenuItemHarness extends ComponentHarness {\n static hostSelector = '[ngMenuItem]';\n\n static with(options: MenuItemHarnessFilters = {}): HarnessPredicate<MenuItemHarness> {\n return new HarnessPredicate(MenuItemHarness, options)\n .addOption('text', options.text, (harness, text) =>\n HarnessPredicate.stringMatches(harness.getText(), text),\n )\n .addOption(\n 'disabled',\n options.disabled,\n async (harness, disabled) => (await harness.isDisabled()) === disabled,\n )\n .addOption(\n 'expanded',\n options.expanded,\n async (harness, expanded) => (await harness.isExpanded()) === expanded,\n );\n }\n\n /** Gets the text content of the menu item. */\n async getText(): Promise<string> {\n return (await this.host()).text();\n }\n\n /** Whether the menu item is disabled. */\n async isDisabled(): Promise<boolean> {\n const host = await this.host();\n return (await host.getAttribute('aria-disabled')) === 'true';\n }\n\n /** Whether the menu item is expanded (contains an open submenu). */\n async isExpanded(): Promise<boolean> {\n const host = await this.host();\n return (await host.getAttribute('aria-expanded')) === 'true';\n }\n\n /** Clicks the menu item to trigger its action or toggle its submenu. */\n async click(): Promise<void> {\n return (await this.host()).click();\n }\n\n /** Resolves the nested submenu panel associated with this menu item, if any exists. */\n async getSubmenu(): Promise<MenuHarness | null> {\n const controlsId = await (await this.host()).getAttribute('aria-controls');\n if (controlsId) {\n return this.documentRootLocatorFactory().locatorFor(\n MenuHarness.with({selector: `#${controlsId}`}),\n )();\n }\n return null;\n }\n\n /** Whether the menu item has focus. */\n async isFocused(): Promise<boolean> {\n return (await this.host()).isFocused();\n }\n\n /** Whether the menu item acts as a submenu trigger. */\n async hasSubmenu(): Promise<boolean> {\n const host = await this.host();\n return (\n (await host.getAttribute('aria-haspopup')) === 'true' ||\n !!(await host.getAttribute('aria-controls'))\n );\n }\n}\n\n/** Harness for interacting with a standard ngMenu or ngMenuBar in tests. */\nexport class MenuHarness extends ComponentHarness {\n static hostSelector = '[ngMenu], [ngMenuBar]';\n\n static with(options: MenuHarnessFilters = {}): HarnessPredicate<MenuHarness> {\n return new HarnessPredicate(MenuHarness, options).addOption(\n 'triggerText',\n options.triggerText,\n async (harness, text) => {\n const trigger = await harness._getTrigger();\n if (!trigger) return false;\n return HarnessPredicate.stringMatches(await trigger.text(), text);\n },\n );\n }\n\n /** Resolves the trigger associated with this menu container via aria-controls inversion. */\n async _getTrigger(): Promise<TestElement | null> {\n const id = await (await this.host()).getAttribute('id');\n if (!id) return null;\n return this.documentRootLocatorFactory().locatorForOptional(`[aria-controls=\"${id}\"]`)();\n }\n\n /** Checks whether the menu container is visible. */\n async isOpen(): Promise<boolean> {\n const host = await this.host();\n // Menu bars are always visible persistently.\n if (await host.matchesSelector('[ngMenuBar]')) {\n return true;\n }\n return (await host.getAttribute('data-visible')) === 'true';\n }\n\n /** Whether the menu is a menu bar. */\n async isMenuBar(): Promise<boolean> {\n const host = await this.host();\n return host.matchesSelector('[ngMenuBar]');\n }\n\n /** Opens the menu if it is currently closed. */\n async open(): Promise<void> {\n if (!(await this.isOpen())) {\n const trigger = await this._getTrigger();\n if (trigger) {\n await trigger.click();\n }\n }\n }\n\n /** Closes the menu if it is currently open. */\n async close(): Promise<void> {\n if (await this.isOpen()) {\n const trigger = await this._getTrigger();\n if (trigger) {\n await trigger.click();\n }\n }\n }\n\n /** Queries all menu items inside this menu container. */\n async getItems(filters: MenuItemHarnessFilters = {}): Promise<MenuItemHarness[]> {\n return this.locatorForAll(MenuItemHarness.with(filters))();\n }\n}\n"],"names":["MenuItemHarness","ComponentHarness","hostSelector","with","options","HarnessPredicate","addOption","text","harness","stringMatches","getText","disabled","isDisabled","expanded","isExpanded","host","getAttribute","click","getSubmenu","controlsId","documentRootLocatorFactory","locatorFor","MenuHarness","selector","isFocused","hasSubmenu","triggerText","trigger","_getTrigger","id","locatorForOptional","isOpen","matchesSelector","isMenuBar","open","close","getItems","filters","locatorForAll"],"mappings":"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"}
package/fesm2022/menu.mjs CHANGED
@@ -1,14 +1,14 @@
1
1
  import * as i0 from '@angular/core';
2
- import { inject, ElementRef, input, computed, booleanAttribute, effect, Directive, InjectionToken, model, contentChildren, output, signal, afterRenderEffect, untracked } from '@angular/core';
2
+ import { inject, ElementRef, input, computed, booleanAttribute, effect, Directive, InjectionToken, model, output, signal, afterRenderEffect, afterNextRender, 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';
6
+ import { SortedCollection } from './_collection-chunk.mjs';
6
7
  import { DeferredContentAware, DeferredContent } from './_deferred-content-chunk.mjs';
7
- import './_signal-like-chunk.mjs';
8
- import '@angular/core/primitives/signals';
9
8
  import './_list-chunk.mjs';
10
9
  import './_list-navigation-chunk.mjs';
11
10
  import './_list-typeahead-chunk.mjs';
11
+ import '@angular/core/primitives/signals';
12
12
 
13
13
  class MenuTrigger {
14
14
  _elementRef = inject(ElementRef);
@@ -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.9",
57
+ version: "22.0.0-next.10",
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.9",
65
+ version: "22.0.0-next.10",
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.9",
114
+ version: "22.0.0-next.10",
115
115
  ngImport: i0,
116
116
  type: MenuTrigger,
117
117
  decorators: [{
@@ -206,6 +206,12 @@ class MenuItem {
206
206
  constructor() {
207
207
  effect(() => this.submenu()?.parent.set(this));
208
208
  }
209
+ ngOnInit() {
210
+ this.parent?._collection.register(this);
211
+ }
212
+ ngOnDestroy() {
213
+ this.parent?._collection.unregister(this);
214
+ }
209
215
  open() {
210
216
  this._pattern.open({
211
217
  first: true
@@ -216,7 +222,7 @@ class MenuItem {
216
222
  }
217
223
  static ɵfac = i0.ɵɵngDeclareFactory({
218
224
  minVersion: "12.0.0",
219
- version: "22.0.0-next.9",
225
+ version: "22.0.0-next.10",
220
226
  ngImport: i0,
221
227
  type: MenuItem,
222
228
  deps: [],
@@ -224,7 +230,7 @@ class MenuItem {
224
230
  });
225
231
  static ɵdir = i0.ɵɵngDeclareDirective({
226
232
  minVersion: "17.1.0",
227
- version: "22.0.0-next.9",
233
+ version: "22.0.0-next.10",
228
234
  type: MenuItem,
229
235
  isStandalone: true,
230
236
  selector: "[ngMenuItem]",
@@ -278,7 +284,6 @@ class MenuItem {
278
284
  properties: {
279
285
  "attr.tabindex": "_pattern.tabIndex()",
280
286
  "attr.data-active": "active()",
281
- "attr.aria-label": "value()",
282
287
  "attr.aria-haspopup": "hasPopup()",
283
288
  "attr.aria-expanded": "expanded()",
284
289
  "attr.aria-disabled": "_pattern.disabled()",
@@ -291,7 +296,7 @@ class MenuItem {
291
296
  }
292
297
  i0.ɵɵngDeclareClassMetadata({
293
298
  minVersion: "12.0.0",
294
- version: "22.0.0-next.9",
299
+ version: "22.0.0-next.10",
295
300
  ngImport: i0,
296
301
  type: MenuItem,
297
302
  decorators: [{
@@ -304,7 +309,6 @@ i0.ɵɵngDeclareClassMetadata({
304
309
  '(focusin)': '_pattern.onFocusIn()',
305
310
  '[attr.tabindex]': '_pattern.tabIndex()',
306
311
  '[attr.data-active]': 'active()',
307
- '[attr.aria-label]': 'value()',
308
312
  '[attr.aria-haspopup]': 'hasPopup()',
309
313
  '[attr.aria-expanded]': 'expanded()',
310
314
  '[attr.aria-disabled]': '_pattern.disabled()',
@@ -361,13 +365,8 @@ i0.ɵɵngDeclareClassMetadata({
361
365
  });
362
366
 
363
367
  class MenuBar {
364
- _allItems = contentChildren(MenuItem, {
365
- ...(ngDevMode ? {
366
- debugName: "_allItems"
367
- } : {}),
368
- descendants: true
369
- });
370
- _items = () => this._allItems().filter(i => i.parent === this);
368
+ _collection = new SortedCollection();
369
+ _items = () => this._collection.orderedItems().filter(i => i.parent === this);
371
370
  _elementRef = inject(ElementRef);
372
371
  element = this._elementRef.nativeElement;
373
372
  disabled = input(false, {
@@ -416,21 +415,27 @@ class MenuBar {
416
415
  afterRenderEffect({
417
416
  write: () => this._pattern.setDefaultStateEffect()
418
417
  });
418
+ afterNextRender(() => {
419
+ this._collection.startObserving(this.element);
420
+ });
421
+ }
422
+ ngOnDestroy() {
423
+ this._collection.stopObserving();
419
424
  }
420
425
  close() {
421
426
  this._pattern.close();
422
427
  }
423
428
  static ɵfac = i0.ɵɵngDeclareFactory({
424
429
  minVersion: "12.0.0",
425
- version: "22.0.0-next.9",
430
+ version: "22.0.0-next.10",
426
431
  ngImport: i0,
427
432
  type: MenuBar,
428
433
  deps: [],
429
434
  target: i0.ɵɵFactoryTarget.Directive
430
435
  });
431
436
  static ɵdir = i0.ɵɵngDeclareDirective({
432
- minVersion: "17.2.0",
433
- version: "22.0.0-next.9",
437
+ minVersion: "17.1.0",
438
+ version: "22.0.0-next.10",
434
439
  type: MenuBar,
435
440
  isStandalone: true,
436
441
  selector: "[ngMenuBar]",
@@ -496,19 +501,13 @@ class MenuBar {
496
501
  provide: MENU_COMPONENT,
497
502
  useExisting: MenuBar
498
503
  }],
499
- queries: [{
500
- propertyName: "_allItems",
501
- predicate: MenuItem,
502
- descendants: true,
503
- isSignal: true
504
- }],
505
504
  exportAs: ["ngMenuBar"],
506
505
  ngImport: i0
507
506
  });
508
507
  }
509
508
  i0.ɵɵngDeclareClassMetadata({
510
509
  minVersion: "12.0.0",
511
- version: "22.0.0-next.9",
510
+ version: "22.0.0-next.10",
512
511
  ngImport: i0,
513
512
  type: MenuBar,
514
513
  decorators: [{
@@ -535,15 +534,6 @@ i0.ɵɵngDeclareClassMetadata({
535
534
  }],
536
535
  ctorParameters: () => [],
537
536
  propDecorators: {
538
- _allItems: [{
539
- type: i0.ContentChildren,
540
- args: [i0.forwardRef(() => MenuItem), {
541
- ...{
542
- descendants: true
543
- },
544
- isSignal: true
545
- }]
546
- }],
547
537
  disabled: [{
548
538
  type: i0.Input,
549
539
  args: [{
@@ -598,13 +588,8 @@ class Menu {
598
588
  _deferredContentAware = inject(DeferredContentAware, {
599
589
  optional: true
600
590
  });
601
- _allItems = contentChildren(MenuItem, {
602
- ...(ngDevMode ? {
603
- debugName: "_allItems"
604
- } : {}),
605
- descendants: true
606
- });
607
- _items = computed(() => this._allItems().filter(i => i.parent === this), ...(ngDevMode ? [{
591
+ _collection = new SortedCollection();
592
+ _items = computed(() => this._collection.orderedItems().filter(i => i.parent === this), ...(ngDevMode ? [{
608
593
  debugName: "_items"
609
594
  }] : []));
610
595
  _elementRef = inject(ElementRef);
@@ -683,21 +668,27 @@ class Menu {
683
668
  afterRenderEffect({
684
669
  write: () => this._pattern.setDefaultStateEffect()
685
670
  });
671
+ afterNextRender(() => {
672
+ this._collection.startObserving(this.element);
673
+ });
674
+ }
675
+ ngOnDestroy() {
676
+ this._collection.stopObserving();
686
677
  }
687
678
  close() {
688
679
  this._pattern.close();
689
680
  }
690
681
  static ɵfac = i0.ɵɵngDeclareFactory({
691
682
  minVersion: "12.0.0",
692
- version: "22.0.0-next.9",
683
+ version: "22.0.0-next.10",
693
684
  ngImport: i0,
694
685
  type: Menu,
695
686
  deps: [],
696
687
  target: i0.ɵɵFactoryTarget.Directive
697
688
  });
698
689
  static ɵdir = i0.ɵɵngDeclareDirective({
699
- minVersion: "17.2.0",
700
- version: "22.0.0-next.9",
690
+ minVersion: "17.1.0",
691
+ version: "22.0.0-next.10",
701
692
  type: Menu,
702
693
  isStandalone: true,
703
694
  selector: "[ngMenu]",
@@ -764,12 +755,6 @@ class Menu {
764
755
  provide: MENU_COMPONENT,
765
756
  useExisting: Menu
766
757
  }],
767
- queries: [{
768
- propertyName: "_allItems",
769
- predicate: MenuItem,
770
- descendants: true,
771
- isSignal: true
772
- }],
773
758
  exportAs: ["ngMenu"],
774
759
  hostDirectives: [{
775
760
  directive: DeferredContentAware,
@@ -780,7 +765,7 @@ class Menu {
780
765
  }
781
766
  i0.ɵɵngDeclareClassMetadata({
782
767
  minVersion: "12.0.0",
783
- version: "22.0.0-next.9",
768
+ version: "22.0.0-next.10",
784
769
  ngImport: i0,
785
770
  type: Menu,
786
771
  decorators: [{
@@ -813,15 +798,6 @@ i0.ɵɵngDeclareClassMetadata({
813
798
  }],
814
799
  ctorParameters: () => [],
815
800
  propDecorators: {
816
- _allItems: [{
817
- type: i0.ContentChildren,
818
- args: [i0.forwardRef(() => MenuItem), {
819
- ...{
820
- descendants: true
821
- },
822
- isSignal: true
823
- }]
824
- }],
825
801
  id: [{
826
802
  type: i0.Input,
827
803
  args: [{
@@ -872,7 +848,7 @@ i0.ɵɵngDeclareClassMetadata({
872
848
  class MenuContent {
873
849
  static ɵfac = i0.ɵɵngDeclareFactory({
874
850
  minVersion: "12.0.0",
875
- version: "22.0.0-next.9",
851
+ version: "22.0.0-next.10",
876
852
  ngImport: i0,
877
853
  type: MenuContent,
878
854
  deps: [],
@@ -880,7 +856,7 @@ class MenuContent {
880
856
  });
881
857
  static ɵdir = i0.ɵɵngDeclareDirective({
882
858
  minVersion: "14.0.0",
883
- version: "22.0.0-next.9",
859
+ version: "22.0.0-next.10",
884
860
  type: MenuContent,
885
861
  isStandalone: true,
886
862
  selector: "ng-template[ngMenuContent]",
@@ -893,7 +869,7 @@ class MenuContent {
893
869
  }
894
870
  i0.ɵɵngDeclareClassMetadata({
895
871
  minVersion: "12.0.0",
896
- version: "22.0.0-next.9",
872
+ version: "22.0.0-next.10",
897
873
  ngImport: i0,
898
874
  type: MenuContent,
899
875
  decorators: [{
@@ -1 +1 @@
1
- {"version":3,"file":"menu.mjs","sources":["../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/aria/menu/menu-trigger.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/aria/menu/menu-tokens.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/aria/menu/menu-item.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/aria/menu/menu-bar.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/aria/menu/menu.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/aria/menu/menu-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 booleanAttribute,\n computed,\n Directive,\n effect,\n ElementRef,\n inject,\n input,\n} from '@angular/core';\nimport {MenuTriggerPattern} from '../private';\nimport {Directionality} from '@angular/cdk/bidi';\nimport type {Menu} from './menu';\n\n/**\n * A trigger for a menu.\n *\n * The `ngMenuTrigger` directive is used to open and close menus. It can be applied to\n * any interactive element (e.g., a button) to associate it with a `ngMenu` instance.\n * It also supports linking to sub-menus when applied to a `ngMenuItem`.\n *\n * ```html\n * <button ngMenuTrigger [menu]=\"myMenu\">Open Menu</button>\n *\n * <div ngMenu #myMenu=\"ngMenu\">\n * <div ngMenuItem>Item 1</div>\n * <div ngMenuItem>Item 2</div>\n * </div>\n * ```\n *\n * @developerPreview 21.0\n *\n * @see [Menu](guide/aria/menu)\n * @see [MenuBar](guide/aria/menubar)\n */\n@Directive({\n selector: '[ngMenuTrigger]',\n exportAs: 'ngMenuTrigger',\n host: {\n '[attr.tabindex]': '_pattern.tabIndex()',\n '[attr.disabled]': '!softDisabled() && _pattern.disabled() ? true : null',\n '[attr.aria-disabled]': '_pattern.disabled()',\n '[attr.aria-haspopup]': 'hasPopup()',\n '[attr.aria-expanded]': 'expanded()',\n '[attr.aria-controls]': '_pattern.menu()?.id()',\n '(click)': '_pattern.onClick()',\n '(keydown)': '_pattern.onKeydown($event)',\n '(focusout)': '_pattern.onFocusOut($event)',\n '(focusin)': '_pattern.onFocusIn()',\n },\n})\nexport class MenuTrigger<V> {\n /** A reference to the host element. */\n private readonly _elementRef = inject(ElementRef);\n\n /** A reference to the host element. */\n readonly element = this._elementRef.nativeElement as HTMLElement;\n\n /** The directionality (LTR / RTL) context for the application (or a subtree of it). */\n readonly textDirection = inject(Directionality).valueSignal;\n\n /** The menu associated with the trigger. */\n readonly menu = input<Menu<V> | undefined>(undefined);\n\n /** Whether the menu is expanded. */\n readonly expanded = computed(() => this._pattern.expanded());\n\n /** Whether the menu trigger has a popup. */\n readonly hasPopup = computed(() => this._pattern.hasPopup());\n\n /** Whether the menu trigger is disabled. */\n readonly disabled = input(false, {transform: booleanAttribute});\n\n /** Whether the menu trigger is soft disabled. */\n readonly softDisabled = input(true, {transform: booleanAttribute});\n\n /** The menu trigger ui pattern instance. */\n readonly _pattern: MenuTriggerPattern<V> = new MenuTriggerPattern({\n textDirection: this.textDirection,\n element: computed(() => this._elementRef.nativeElement),\n menu: computed(() => this.menu()?._pattern),\n disabled: () => this.disabled(),\n });\n\n constructor() {\n effect(() => this.menu()?.parent.set(this));\n }\n\n /** Opens the menu focusing on the first menu item. */\n open() {\n this._pattern.open({first: true});\n }\n\n /** Closes the menu. */\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 {InjectionToken} from '@angular/core';\nimport type {Menu} from './menu';\nimport type {MenuBar} from './menu-bar';\n\n/** Token used to expose menus to their child components. */\nexport const MENU_COMPONENT = new InjectionToken<Menu<any> | MenuBar<any>>('MENU_COMPONENT');\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {computed, Directive, effect, ElementRef, inject, input, model} from '@angular/core';\nimport {MenuItemPattern} from '../private';\nimport {_IdGenerator} from '@angular/cdk/a11y';\nimport {MENU_COMPONENT} from './menu-tokens';\nimport type {Menu} from './menu';\nimport type {MenuBar} from './menu-bar';\n\n/**\n * An item in a Menu.\n *\n * `ngMenuItem` directives can be used in `ngMenu` and `ngMenuBar` to represent a choice\n * or action a user can take. They can also act as triggers for sub-menus.\n *\n * ```html\n * <div ngMenu (itemSelected)=\"doAction()\">\n * <div ngMenuItem >Action Item</div>\n * <div ngMenuItem [submenu]=\"anotherMenu\">Submenu Trigger</div>\n * </div>\n * ```\n *\n * @developerPreview 21.0\n *\n * @see [Menu](guide/aria/menu)\n * @see [MenuBar](guide/aria/menubar)\n */\n@Directive({\n selector: '[ngMenuItem]',\n exportAs: 'ngMenuItem',\n host: {\n 'role': 'menuitem',\n '(focusin)': '_pattern.onFocusIn()',\n '[attr.tabindex]': '_pattern.tabIndex()',\n '[attr.data-active]': 'active()',\n '[attr.aria-label]': 'value()',\n '[attr.aria-haspopup]': 'hasPopup()',\n '[attr.aria-expanded]': 'expanded()',\n '[attr.aria-disabled]': '_pattern.disabled()',\n '[attr.aria-controls]': '_pattern.submenu()?.id()',\n },\n})\nexport class MenuItem<V> {\n /** A reference to the host element. */\n private readonly _elementRef = inject(ElementRef);\n\n /** A reference to the host element. */\n readonly element = this._elementRef.nativeElement as HTMLElement;\n\n /** The unique ID of the menu item. */\n readonly id = input(inject(_IdGenerator).getId('ng-menu-item-', true));\n\n /** The value of the menu item, used as the default aria-label */\n readonly value = input.required<V>();\n\n /** Whether the menu item is disabled. */\n readonly disabled = input<boolean>(false);\n\n /** The search term associated with the menu item. */\n readonly searchTerm = model<string>('');\n\n /** A reference to the parent menu or menubar. */\n readonly parent = inject<Menu<V> | MenuBar<V>>(MENU_COMPONENT, {optional: true});\n\n /** The submenu associated with the menu item. */\n readonly submenu = input<Menu<V> | undefined>(undefined);\n\n /** Whether the menu item is active. */\n readonly active = computed(() => this._pattern.active());\n\n /** Whether the menu is expanded. */\n readonly expanded = computed(() => this._pattern.expanded());\n\n /** Whether the menu item has a popup. */\n readonly hasPopup = computed(() => this._pattern.hasPopup());\n\n /** The menu item ui pattern instance. */\n readonly _pattern: MenuItemPattern<V> = new MenuItemPattern<V>({\n id: this.id,\n value: this.value,\n element: computed(() => this._elementRef.nativeElement),\n disabled: this.disabled,\n searchTerm: this.searchTerm,\n parent: computed(() => this.parent?._pattern),\n submenu: computed(() => this.submenu()?._pattern),\n });\n\n constructor() {\n effect(() => this.submenu()?.parent.set(this));\n }\n\n /** Opens the submenu focusing on the first menu item. */\n open() {\n this._pattern.open({first: true});\n }\n\n /** Closes the submenu. */\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 {\n afterRenderEffect,\n booleanAttribute,\n computed,\n contentChildren,\n Directive,\n ElementRef,\n inject,\n input,\n model,\n output,\n signal,\n} from '@angular/core';\nimport {SignalLike, MenuBarPattern} from '../private';\nimport {Directionality} from '@angular/cdk/bidi';\nimport {MenuItem} from './menu-item';\nimport {MENU_COMPONENT} from './menu-tokens';\n\n/**\n * A menu bar of menu items.\n *\n * Like the `ngMenu`, a `ngMenuBar` is used to offer a list of menu item choices to users.\n * However, a menubar is used to display a persistent, top-level, always-visible set of\n * menu item choices, typically found at the top of an application window.\n *\n * ```html\n * <div ngMenuBar>\n * <button ngMenuTrigger [menu]=\"fileMenu\">File</button>\n * <button ngMenuTrigger [menu]=\"editMenu\">Edit</button>\n * </div>\n *\n * <div ngMenu #fileMenu=\"ngMenu\">\n * <div ngMenuItem>New</div>\n * <div ngMenuItem>Open</div>\n * </div>\n *\n * <div ngMenu #editMenu=\"ngMenu\">\n * <div ngMenuItem>Cut</div>\n * <div ngMenuItem>Copy</div>\n * </div>\n * ```\n *\n * @developerPreview 21.0\n *\n * @see [Menu](guide/aria/menu)\n * @see [MenuBar](guide/aria/menubar)\n */\n@Directive({\n selector: '[ngMenuBar]',\n exportAs: 'ngMenuBar',\n host: {\n 'role': 'menubar',\n '[attr.disabled]': '!softDisabled() && _pattern.disabled() ? true : null',\n '[attr.aria-disabled]': '_pattern.disabled()',\n '[attr.tabindex]': '_pattern.tabIndex()',\n '(keydown)': '_pattern.onKeydown($event)',\n '(mouseover)': '_pattern.onMouseOver($event)',\n '(click)': '_pattern.onClick($event)',\n '(focusin)': '_pattern.onFocusIn()',\n '(focusout)': '_pattern.onFocusOut($event)',\n },\n providers: [{provide: MENU_COMPONENT, useExisting: MenuBar}],\n})\nexport class MenuBar<V> {\n /** The menu items contained in the menubar. */\n readonly _allItems = contentChildren<MenuItem<V>>(MenuItem, {descendants: true});\n\n readonly _items: SignalLike<MenuItem<V>[]> = () =>\n this._allItems().filter(i => i.parent === this);\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 /** Whether the menubar is disabled. */\n readonly disabled = input(false, {transform: booleanAttribute});\n\n /** Whether the menubar is soft disabled. */\n readonly softDisabled = input(true, {transform: booleanAttribute});\n\n /** The directionality (LTR / RTL) context for the application (or a subtree of it). */\n readonly textDirection = inject(Directionality).valueSignal;\n\n /** The values of the currently selected menu items. */\n readonly value = model<V[]>([]);\n\n /** Whether the menu should wrap its items. */\n readonly wrap = input(true, {transform: booleanAttribute});\n\n /** The delay in milliseconds before the typeahead buffer is cleared. */\n readonly typeaheadDelay = input<number>(500);\n\n /** The menu ui pattern instance. */\n readonly _pattern: MenuBarPattern<V>;\n\n /** The menu items as a writable signal. */\n private readonly _itemPatterns = computed(() => this._items().map(i => i._pattern));\n\n /** A callback function triggered when a menu item is selected. */\n readonly itemSelected = output<V>();\n\n constructor() {\n this._pattern = new MenuBarPattern({\n ...this,\n items: this._itemPatterns,\n multi: () => false,\n softDisabled: () => true,\n focusMode: () => 'roving',\n orientation: () => 'horizontal',\n selectionMode: () => 'explicit',\n itemSelected: (value: V) => this.itemSelected.emit(value),\n activeItem: signal(undefined),\n element: computed(() => this._elementRef.nativeElement),\n });\n\n afterRenderEffect({write: () => this._pattern.setDefaultStateEffect()});\n }\n\n /** Closes the menubar. */\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 {\n afterRenderEffect,\n booleanAttribute,\n computed,\n contentChildren,\n Directive,\n ElementRef,\n inject,\n input,\n output,\n Signal,\n signal,\n untracked,\n} from '@angular/core';\nimport {MenuPattern, DeferredContentAware} from '../private';\nimport {_IdGenerator} from '@angular/cdk/a11y';\nimport {Directionality} from '@angular/cdk/bidi';\nimport {MenuTrigger} from './menu-trigger';\nimport {MenuItem} from './menu-item';\nimport {MenuBar} from './menu-bar';\nimport {MENU_COMPONENT} from './menu-tokens';\n\n/**\n * A list of menu items.\n *\n * A `ngMenu` is used to offer a list of menu item choices to users. Menus can be nested\n * within other menus to create sub-menus. It works in conjunction with `ngMenuTrigger`\n * and `ngMenuItem` directives.\n *\n * ```html\n * <button ngMenuTrigger [menu]=\"myMenu\">Options</button>\n *\n * <div ngMenu #myMenu=\"ngMenu\">\n * <div ngMenuItem value=\"Star\">Star</div>\n * <div ngMenuItem value=\"Edit\">Edit</div>\n * <div ngMenuItem value=\"More\" [submenu]=\"subMenu\">More</div>\n * </div>\n *\n * <div ngMenu #subMenu=\"ngMenu\">\n * <div ngMenuItem value=\"Sub Item 1\">Sub Item 1</div>\n * <div ngMenuItem value=\"Sub Item 2\">Sub Item 2</div>\n * </div>\n * ```\n *\n * @developerPreview 21.0\n *\n * @see [Menu](guide/aria/menu)\n * @see [MenuBar](guide/aria/menubar)\n */\n@Directive({\n selector: '[ngMenu]',\n exportAs: 'ngMenu',\n host: {\n 'role': 'menu',\n '[attr.id]': '_pattern.id()',\n '[attr.aria-disabled]': '_pattern.disabled()',\n '[attr.tabindex]': 'tabIndex()',\n '[attr.data-visible]': 'visible()',\n '(keydown)': '_pattern.onKeydown($event)',\n '(mouseover)': '_pattern.onMouseOver($event)',\n '(mouseout)': '_pattern.onMouseOut($event)',\n '(focusout)': '_pattern.onFocusOut($event)',\n '(focusin)': '_pattern.onFocusIn()',\n '(click)': '_pattern.onClick($event)',\n },\n hostDirectives: [\n {\n directive: DeferredContentAware,\n inputs: ['preserveContent'],\n },\n ],\n providers: [{provide: MENU_COMPONENT, useExisting: Menu}],\n})\nexport class Menu<V> {\n /** The DeferredContentAware host directive. */\n private readonly _deferredContentAware = inject(DeferredContentAware, {optional: true});\n\n /** The menu items contained in the menu. */\n readonly _allItems = contentChildren<MenuItem<V>>(MenuItem, {descendants: true});\n\n /** The menu items that are direct children of this menu. */\n readonly _items: Signal<MenuItem<V>[]> = computed(() =>\n this._allItems().filter(i => i.parent === this),\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 directionality (LTR / RTL) context for the application (or a subtree of it). */\n readonly textDirection = inject(Directionality).valueSignal;\n\n /** The unique ID of the menu. */\n readonly id = input(inject(_IdGenerator).getId('ng-menu-', true));\n\n /** Whether the menu should wrap its items. */\n readonly wrap = input(true, {transform: booleanAttribute});\n\n /** The delay in milliseconds before the typeahead buffer is cleared. */\n readonly typeaheadDelay = input<number>(500); // Picked arbitrarily.\n\n /** Whether the menu is disabled. */\n readonly disabled = input(false, {transform: booleanAttribute});\n\n /** A reference to the parent menu item or menu trigger. */\n readonly parent = signal<MenuTrigger<V> | MenuItem<V> | undefined>(undefined);\n\n /** The menu ui pattern instance. */\n readonly _pattern: MenuPattern<V>;\n\n /**\n * The menu item patterns for the menu items that are direct children of this menu, passed\n * to the menu pattern.\n *\n * Note: contentChildren has an issue where it will return a successively smaller list\n * each time that the menu is open and closed, eventually resulting in an empty list.\n * The workaround is to trigger a recomputation of this signal whenever the menu is opened\n * or closed, by calling this._pattern.visible() in the signal body. Otherwise, computed could\n * not be used and would have to rebuild the list each time this method is called.\n */\n private readonly _itemPatterns = computed(() => {\n // Only needed to force a recompute.\n this._pattern.visible();\n\n return this._items().map(i => i._pattern);\n });\n\n /** Whether the menu is visible. */\n readonly visible = computed(() => this._pattern.visible());\n\n /** The tab index of the menu. */\n readonly tabIndex = computed(() => this._pattern.tabIndex());\n\n /** A callback function triggered when a menu item is selected. */\n readonly itemSelected = output<V>();\n\n /** The delay in milliseconds before expanding sub-menus on hover. */\n readonly expansionDelay = input<number>(100); // Arbitrarily chosen.\n\n constructor() {\n this._pattern = new MenuPattern({\n ...this,\n parent: computed(() => this.parent()?._pattern),\n items: this._itemPatterns,\n multi: () => false,\n softDisabled: () => true,\n focusMode: () => 'roving',\n orientation: () => 'vertical',\n selectionMode: () => 'explicit',\n activeItem: signal(undefined),\n element: computed(() => this._elementRef.nativeElement),\n itemSelected: (value: V) => this.itemSelected.emit(value),\n });\n\n afterRenderEffect({\n write: () => {\n const parent = this.parent();\n if (parent instanceof MenuItem && parent.parent instanceof MenuBar) {\n this._deferredContentAware?.contentVisible.set(true);\n } else {\n this._deferredContentAware?.contentVisible.set(\n this._pattern.visible() || !!this.parent()?._pattern.hasBeenInteracted(),\n );\n }\n },\n });\n\n // Focuses an active menu item when the menu becomes visible. This is needed to\n // properly restore focus to the active item when returning to a menu, and to\n // focus the first item when navigating into a submenu with hover.\n afterRenderEffect({\n write: () => {\n if (this.visible()) {\n const activeItem = untracked(() => this._pattern.inputs.activeItem());\n this._pattern.listBehavior.goto(activeItem!);\n }\n },\n });\n\n afterRenderEffect({write: () => this._pattern.setDefaultStateEffect()});\n }\n\n /** Closes the menu. */\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 {Directive} from '@angular/core';\nimport {DeferredContent} from '../private';\n\n/**\n * Defers the rendering of the menu content.\n *\n * This structural directive should be applied to an `ng-template` within a `ngMenu`\n * or `ngMenuBar` to lazily render its content only when the menu is opened.\n *\n * ```html\n * <div ngMenu #myMenu=\"ngMenu\">\n * <ng-template ngMenuContent>\n * <div ngMenuItem>Lazy Item 1</div>\n * <div ngMenuItem>Lazy Item 2</div>\n * </ng-template>\n * </div>\n * ```\n *\n * @developerPreview 21.0\n *\n * @see [Menu](guide/aria/menu)\n * @see [MenuBar](guide/aria/menubar)\n */\n@Directive({\n selector: 'ng-template[ngMenuContent]',\n exportAs: 'ngMenuContent',\n hostDirectives: [DeferredContent],\n})\nexport class MenuContent {}\n"],"names":["MenuTrigger","_elementRef","inject","ElementRef","element","nativeElement","textDirection","Directionality","valueSignal","menu","input","undefined","expanded","computed","_pattern","hasPopup","disabled","transform","booleanAttribute","softDisabled","MenuTriggerPattern","constructor","effect","parent","set","open","first","close","deps","target","i0","ɵɵFactoryTarget","Directive","isStandalone","selector","inputs","classPropertyName","publicName","isSignal","isRequired","transformFunction","host","listeners","properties","exportAs","ngImport","decorators","args","MENU_COMPONENT","InjectionToken","MenuItem","id","_IdGenerator","getId","value","required","searchTerm","model","optional","submenu","active","MenuItemPattern","outputs","attributes","MenuBar","_allItems","contentChildren","descendants","_items","filter","i","wrap","typeaheadDelay","_itemPatterns","map","itemSelected","output","MenuBarPattern","items","multi","focusMode","orientation","selectionMode","emit","activeItem","signal","afterRenderEffect","write","setDefaultStateEffect","ɵdir","ɵɵngDeclareDirective","minVersion","version","type","providers","provide","useExisting","ctorParameters","propDecorators","ContentChildren","forwardRef","Input","alias","Output","Menu","_deferredContentAware","DeferredContentAware","ngDevMode","debugName","visible","tabIndex","expansionDelay","MenuPattern","contentVisible","hasBeenInteracted","untracked","listBehavior","goto","hostDirectives","directive","i1","MenuContent","DeferredContent"],"mappings":"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"}
1
+ {"version":3,"file":"menu.mjs","sources":["../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/aria/menu/menu-trigger.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/aria/menu/menu-tokens.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/aria/menu/menu-item.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/aria/menu/menu-bar.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/aria/menu/menu.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/aria/menu/menu-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 booleanAttribute,\n computed,\n Directive,\n effect,\n ElementRef,\n inject,\n input,\n} from '@angular/core';\nimport {MenuTriggerPattern} from '../private';\nimport {Directionality} from '@angular/cdk/bidi';\nimport type {Menu} from './menu';\n\n/**\n * A trigger for a menu.\n *\n * The `ngMenuTrigger` directive is used to open and close menus. It can be applied to\n * any interactive element (e.g., a button) to associate it with a `ngMenu` instance.\n * It also supports linking to sub-menus when applied to a `ngMenuItem`.\n *\n * ```html\n * <button ngMenuTrigger [menu]=\"myMenu\">Open Menu</button>\n *\n * <div ngMenu #myMenu=\"ngMenu\">\n * <div ngMenuItem>Item 1</div>\n * <div ngMenuItem>Item 2</div>\n * </div>\n * ```\n *\n * @developerPreview 21.0\n *\n * @see [Menu](guide/aria/menu)\n * @see [MenuBar](guide/aria/menubar)\n */\n@Directive({\n selector: '[ngMenuTrigger]',\n exportAs: 'ngMenuTrigger',\n host: {\n '[attr.tabindex]': '_pattern.tabIndex()',\n '[attr.disabled]': '!softDisabled() && _pattern.disabled() ? true : null',\n '[attr.aria-disabled]': '_pattern.disabled()',\n '[attr.aria-haspopup]': 'hasPopup()',\n '[attr.aria-expanded]': 'expanded()',\n '[attr.aria-controls]': '_pattern.menu()?.id()',\n '(click)': '_pattern.onClick()',\n '(keydown)': '_pattern.onKeydown($event)',\n '(focusout)': '_pattern.onFocusOut($event)',\n '(focusin)': '_pattern.onFocusIn()',\n },\n})\nexport class MenuTrigger<V> {\n /** A reference to the host element. */\n private readonly _elementRef = inject(ElementRef);\n\n /** A reference to the host element. */\n readonly element = this._elementRef.nativeElement as HTMLElement;\n\n /** The directionality (LTR / RTL) context for the application (or a subtree of it). */\n readonly textDirection = inject(Directionality).valueSignal;\n\n /** The menu associated with the trigger. */\n readonly menu = input<Menu<V> | undefined>(undefined);\n\n /** Whether the menu is expanded. */\n readonly expanded = computed(() => this._pattern.expanded());\n\n /** Whether the menu trigger has a popup. */\n readonly hasPopup = computed(() => this._pattern.hasPopup());\n\n /** Whether the menu trigger is disabled. */\n readonly disabled = input(false, {transform: booleanAttribute});\n\n /** Whether the menu trigger is soft disabled. */\n readonly softDisabled = input(true, {transform: booleanAttribute});\n\n /** The menu trigger ui pattern instance. */\n readonly _pattern: MenuTriggerPattern<V> = new MenuTriggerPattern({\n textDirection: this.textDirection,\n element: computed(() => this._elementRef.nativeElement),\n menu: computed(() => this.menu()?._pattern),\n disabled: () => this.disabled(),\n });\n\n constructor() {\n effect(() => this.menu()?.parent.set(this));\n }\n\n /** Opens the menu focusing on the first menu item. */\n open() {\n this._pattern.open({first: true});\n }\n\n /** Closes the menu. */\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 {InjectionToken} from '@angular/core';\nimport type {Menu} from './menu';\nimport type {MenuBar} from './menu-bar';\n\n/** Token used to expose menus to their child components. */\nexport const MENU_COMPONENT = new InjectionToken<Menu<any> | MenuBar<any>>('MENU_COMPONENT');\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 computed,\n Directive,\n effect,\n ElementRef,\n inject,\n input,\n model,\n OnDestroy,\n OnInit,\n} from '@angular/core';\nimport {MenuItemPattern} from '../private';\nimport {_IdGenerator} from '@angular/cdk/a11y';\nimport {MENU_COMPONENT} from './menu-tokens';\nimport type {Menu} from './menu';\nimport type {MenuBar} from './menu-bar';\n\n/**\n * An item in a Menu.\n *\n * `ngMenuItem` directives can be used in `ngMenu` and `ngMenuBar` to represent a choice\n * or action a user can take. They can also act as triggers for sub-menus.\n *\n * ```html\n * <div ngMenu (itemSelected)=\"doAction()\">\n * <div ngMenuItem>Action Item</div>\n * <div ngMenuItem [submenu]=\"anotherMenu\">Submenu Trigger</div>\n * </div>\n * ```\n *\n * @developerPreview 21.0\n *\n * @see [Menu](guide/aria/menu)\n * @see [MenuBar](guide/aria/menubar)\n */\n@Directive({\n selector: '[ngMenuItem]',\n exportAs: 'ngMenuItem',\n host: {\n 'role': 'menuitem',\n '(focusin)': '_pattern.onFocusIn()',\n '[attr.tabindex]': '_pattern.tabIndex()',\n '[attr.data-active]': 'active()',\n '[attr.aria-haspopup]': 'hasPopup()',\n '[attr.aria-expanded]': 'expanded()',\n '[attr.aria-disabled]': '_pattern.disabled()',\n '[attr.aria-controls]': '_pattern.submenu()?.id()',\n },\n})\nexport class MenuItem<V> implements OnInit, OnDestroy {\n /** A reference to the host element. */\n private readonly _elementRef = inject(ElementRef);\n\n /** A reference to the host element. */\n readonly element = this._elementRef.nativeElement as HTMLElement;\n\n /** The unique ID of the menu item. */\n readonly id = input(inject(_IdGenerator).getId('ng-menu-item-', true));\n\n /** The value of the menu item. */\n readonly value = input.required<V>();\n\n /** Whether the menu item is disabled. */\n readonly disabled = input<boolean>(false);\n\n /** The search term associated with the menu item. */\n readonly searchTerm = model<string>('');\n\n /** A reference to the parent menu or menubar. */\n readonly parent = inject<Menu<V> | MenuBar<V>>(MENU_COMPONENT, {optional: true});\n\n /** The submenu associated with the menu item. */\n readonly submenu = input<Menu<V> | undefined>(undefined);\n\n /** Whether the menu item is active. */\n readonly active = computed(() => this._pattern.active());\n\n /** Whether the menu is expanded. */\n readonly expanded = computed(() => this._pattern.expanded());\n\n /** Whether the menu item has a popup. */\n readonly hasPopup = computed(() => this._pattern.hasPopup());\n\n /** The menu item ui pattern instance. */\n readonly _pattern: MenuItemPattern<V> = new MenuItemPattern<V>({\n id: this.id,\n value: this.value,\n element: computed(() => this._elementRef.nativeElement),\n disabled: this.disabled,\n searchTerm: this.searchTerm,\n parent: computed(() => this.parent?._pattern),\n submenu: computed(() => this.submenu()?._pattern),\n });\n\n constructor() {\n effect(() => this.submenu()?.parent.set(this));\n }\n\n ngOnInit() {\n this.parent?._collection.register(this);\n }\n\n ngOnDestroy() {\n this.parent?._collection.unregister(this);\n }\n\n /** Opens the submenu focusing on the first menu item. */\n open() {\n this._pattern.open({first: true});\n }\n\n /** Closes the submenu. */\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 {\n afterNextRender,\n afterRenderEffect,\n booleanAttribute,\n computed,\n Directive,\n ElementRef,\n inject,\n input,\n model,\n OnDestroy,\n output,\n signal,\n} from '@angular/core';\nimport {SignalLike, MenuBarPattern, SortedCollection} from '../private';\nimport {Directionality} from '@angular/cdk/bidi';\nimport {MenuItem} from './menu-item';\nimport {MENU_COMPONENT} from './menu-tokens';\n\n/**\n * A menu bar of menu items.\n *\n * Like the `ngMenu`, a `ngMenuBar` is used to offer a list of menu item choices to users.\n * However, a menubar is used to display a persistent, top-level, always-visible set of\n * menu item choices, typically found at the top of an application window.\n *\n * ```html\n * <div ngMenuBar>\n * <button ngMenuTrigger [menu]=\"fileMenu\">File</button>\n * <button ngMenuTrigger [menu]=\"editMenu\">Edit</button>\n * </div>\n *\n * <div ngMenu #fileMenu=\"ngMenu\">\n * <div ngMenuItem>New</div>\n * <div ngMenuItem>Open</div>\n * </div>\n *\n * <div ngMenu #editMenu=\"ngMenu\">\n * <div ngMenuItem>Cut</div>\n * <div ngMenuItem>Copy</div>\n * </div>\n * ```\n *\n * @developerPreview 21.0\n *\n * @see [Menu](guide/aria/menu)\n * @see [MenuBar](guide/aria/menubar)\n */\n@Directive({\n selector: '[ngMenuBar]',\n exportAs: 'ngMenuBar',\n host: {\n 'role': 'menubar',\n '[attr.disabled]': '!softDisabled() && _pattern.disabled() ? true : null',\n '[attr.aria-disabled]': '_pattern.disabled()',\n '[attr.tabindex]': '_pattern.tabIndex()',\n '(keydown)': '_pattern.onKeydown($event)',\n '(mouseover)': '_pattern.onMouseOver($event)',\n '(click)': '_pattern.onClick($event)',\n '(focusin)': '_pattern.onFocusIn()',\n '(focusout)': '_pattern.onFocusOut($event)',\n },\n providers: [{provide: MENU_COMPONENT, useExisting: MenuBar}],\n})\nexport class MenuBar<V> implements OnDestroy {\n /** The collection of menu items. */\n readonly _collection = new SortedCollection<MenuItem<V>>();\n\n readonly _items: SignalLike<MenuItem<V>[]> = () =>\n this._collection.orderedItems().filter(i => i.parent === this);\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 /** Whether the menubar is disabled. */\n readonly disabled = input(false, {transform: booleanAttribute});\n\n /** Whether the menubar is soft disabled. */\n readonly softDisabled = input(true, {transform: booleanAttribute});\n\n /** The directionality (LTR / RTL) context for the application (or a subtree of it). */\n readonly textDirection = inject(Directionality).valueSignal;\n\n /** The values of the currently selected menu items. */\n readonly value = model<V[]>([]);\n\n /** Whether the menu should wrap its items. */\n readonly wrap = input(true, {transform: booleanAttribute});\n\n /** The delay in milliseconds before the typeahead buffer is cleared. */\n readonly typeaheadDelay = input<number>(500);\n\n /** The menu ui pattern instance. */\n readonly _pattern: MenuBarPattern<V>;\n\n /** The menu items as a writable signal. */\n private readonly _itemPatterns = computed(() => this._items().map(i => i._pattern));\n\n /** A callback function triggered when a menu item is selected. */\n readonly itemSelected = output<V>();\n\n constructor() {\n this._pattern = new MenuBarPattern({\n ...this,\n items: this._itemPatterns,\n multi: () => false,\n softDisabled: () => true,\n focusMode: () => 'roving',\n orientation: () => 'horizontal',\n selectionMode: () => 'explicit',\n itemSelected: (value: V) => this.itemSelected.emit(value),\n activeItem: signal(undefined),\n element: computed(() => this._elementRef.nativeElement),\n });\n\n afterRenderEffect({write: () => this._pattern.setDefaultStateEffect()});\n\n afterNextRender(() => {\n this._collection.startObserving(this.element);\n });\n }\n\n ngOnDestroy() {\n this._collection.stopObserving();\n }\n\n /** Closes the menubar. */\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 {\n afterNextRender,\n afterRenderEffect,\n booleanAttribute,\n computed,\n Directive,\n ElementRef,\n inject,\n input,\n OnDestroy,\n output,\n Signal,\n signal,\n untracked,\n} from '@angular/core';\nimport {MenuPattern, DeferredContentAware, SortedCollection} from '../private';\nimport {_IdGenerator} from '@angular/cdk/a11y';\nimport {Directionality} from '@angular/cdk/bidi';\nimport {MenuTrigger} from './menu-trigger';\nimport {MenuItem} from './menu-item';\nimport {MenuBar} from './menu-bar';\nimport {MENU_COMPONENT} from './menu-tokens';\n\n/**\n * A list of menu items.\n *\n * A `ngMenu` is used to offer a list of menu item choices to users. Menus can be nested\n * within other menus to create sub-menus. It works in conjunction with `ngMenuTrigger`\n * and `ngMenuItem` directives.\n *\n * ```html\n * <button ngMenuTrigger [menu]=\"myMenu\">Options</button>\n *\n * <div ngMenu #myMenu=\"ngMenu\">\n * <div ngMenuItem value=\"Star\">Star</div>\n * <div ngMenuItem value=\"Edit\">Edit</div>\n * <div ngMenuItem value=\"More\" [submenu]=\"subMenu\">More</div>\n * </div>\n *\n * <div ngMenu #subMenu=\"ngMenu\">\n * <div ngMenuItem value=\"Sub Item 1\">Sub Item 1</div>\n * <div ngMenuItem value=\"Sub Item 2\">Sub Item 2</div>\n * </div>\n * ```\n *\n * @developerPreview 21.0\n *\n * @see [Menu](guide/aria/menu)\n * @see [MenuBar](guide/aria/menubar)\n */\n@Directive({\n selector: '[ngMenu]',\n exportAs: 'ngMenu',\n host: {\n 'role': 'menu',\n '[attr.id]': '_pattern.id()',\n '[attr.aria-disabled]': '_pattern.disabled()',\n '[attr.tabindex]': 'tabIndex()',\n '[attr.data-visible]': 'visible()',\n '(keydown)': '_pattern.onKeydown($event)',\n '(mouseover)': '_pattern.onMouseOver($event)',\n '(mouseout)': '_pattern.onMouseOut($event)',\n '(focusout)': '_pattern.onFocusOut($event)',\n '(focusin)': '_pattern.onFocusIn()',\n '(click)': '_pattern.onClick($event)',\n },\n hostDirectives: [\n {\n directive: DeferredContentAware,\n inputs: ['preserveContent'],\n },\n ],\n providers: [{provide: MENU_COMPONENT, useExisting: Menu}],\n})\nexport class Menu<V> implements OnDestroy {\n /** The DeferredContentAware host directive. */\n private readonly _deferredContentAware = inject(DeferredContentAware, {optional: true});\n\n /** The collection of menu items. */\n readonly _collection = new SortedCollection<MenuItem<V>>();\n\n /** The menu items that are direct children of this menu. */\n readonly _items: Signal<MenuItem<V>[]> = computed(() =>\n this._collection.orderedItems().filter(i => i.parent === this),\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 directionality (LTR / RTL) context for the application (or a subtree of it). */\n readonly textDirection = inject(Directionality).valueSignal;\n\n /** The unique ID of the menu. */\n readonly id = input(inject(_IdGenerator).getId('ng-menu-', true));\n\n /** Whether the menu should wrap its items. */\n readonly wrap = input(true, {transform: booleanAttribute});\n\n /** The delay in milliseconds before the typeahead buffer is cleared. */\n readonly typeaheadDelay = input<number>(500); // Picked arbitrarily.\n\n /** Whether the menu is disabled. */\n readonly disabled = input(false, {transform: booleanAttribute});\n\n /** A reference to the parent menu item or menu trigger. */\n readonly parent = signal<MenuTrigger<V> | MenuItem<V> | undefined>(undefined);\n\n /** The menu ui pattern instance. */\n readonly _pattern: MenuPattern<V>;\n\n /**\n * The menu item patterns for the menu items that are direct children of this menu, passed\n * to the menu pattern.\n *\n * Note: contentChildren has an issue where it will return a successively smaller list\n * each time that the menu is open and closed, eventually resulting in an empty list.\n * The workaround is to trigger a recomputation of this signal whenever the menu is opened\n * or closed, by calling this._pattern.visible() in the signal body. Otherwise, computed could\n * not be used and would have to rebuild the list each time this method is called.\n */\n private readonly _itemPatterns = computed(() => {\n // Only needed to force a recompute.\n this._pattern.visible();\n\n return this._items().map(i => i._pattern);\n });\n\n /** Whether the menu is visible. */\n readonly visible = computed(() => this._pattern.visible());\n\n /** The tab index of the menu. */\n readonly tabIndex = computed(() => this._pattern.tabIndex());\n\n /** A callback function triggered when a menu item is selected. */\n readonly itemSelected = output<V>();\n\n /** The delay in milliseconds before expanding sub-menus on hover. */\n readonly expansionDelay = input<number>(100); // Arbitrarily chosen.\n\n constructor() {\n this._pattern = new MenuPattern({\n ...this,\n parent: computed(() => this.parent()?._pattern),\n items: this._itemPatterns,\n multi: () => false,\n softDisabled: () => true,\n focusMode: () => 'roving',\n orientation: () => 'vertical',\n selectionMode: () => 'explicit',\n activeItem: signal(undefined),\n element: computed(() => this._elementRef.nativeElement),\n itemSelected: (value: V) => this.itemSelected.emit(value),\n });\n\n afterRenderEffect({\n write: () => {\n const parent = this.parent();\n if (parent instanceof MenuItem && parent.parent instanceof MenuBar) {\n this._deferredContentAware?.contentVisible.set(true);\n } else {\n this._deferredContentAware?.contentVisible.set(\n this._pattern.visible() || !!this.parent()?._pattern.hasBeenInteracted(),\n );\n }\n },\n });\n\n // Focuses an active menu item when the menu becomes visible. This is needed to\n // properly restore focus to the active item when returning to a menu, and to\n // focus the first item when navigating into a submenu with hover.\n afterRenderEffect({\n write: () => {\n if (this.visible()) {\n const activeItem = untracked(() => this._pattern.inputs.activeItem());\n this._pattern.listBehavior.goto(activeItem!);\n }\n },\n });\n\n afterRenderEffect({write: () => this._pattern.setDefaultStateEffect()});\n\n afterNextRender(() => {\n this._collection.startObserving(this.element);\n });\n }\n\n ngOnDestroy() {\n this._collection.stopObserving();\n }\n\n /** Closes the menu. */\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 {Directive} from '@angular/core';\nimport {DeferredContent} from '../private';\n\n/**\n * Defers the rendering of the menu content.\n *\n * This structural directive should be applied to an `ng-template` within a `ngMenu`\n * or `ngMenuBar` to lazily render its content only when the menu is opened.\n *\n * ```html\n * <div ngMenu #myMenu=\"ngMenu\">\n * <ng-template ngMenuContent>\n * <div ngMenuItem>Lazy Item 1</div>\n * <div ngMenuItem>Lazy Item 2</div>\n * </ng-template>\n * </div>\n * ```\n *\n * @developerPreview 21.0\n *\n * @see [Menu](guide/aria/menu)\n * @see [MenuBar](guide/aria/menubar)\n */\n@Directive({\n selector: 'ng-template[ngMenuContent]',\n exportAs: 'ngMenuContent',\n hostDirectives: [DeferredContent],\n})\nexport class MenuContent {}\n"],"names":["MenuTrigger","_elementRef","inject","ElementRef","element","nativeElement","textDirection","Directionality","valueSignal","menu","input","undefined","expanded","computed","_pattern","hasPopup","disabled","transform","booleanAttribute","softDisabled","MenuTriggerPattern","constructor","effect","parent","set","open","first","close","deps","target","i0","ɵɵFactoryTarget","Directive","isStandalone","selector","inputs","classPropertyName","publicName","isSignal","isRequired","transformFunction","host","listeners","properties","exportAs","ngImport","decorators","args","MENU_COMPONENT","InjectionToken","MenuItem","id","_IdGenerator","getId","value","required","searchTerm","model","optional","submenu","active","MenuItemPattern","ngOnInit","_collection","register","ngOnDestroy","unregister","outputs","attributes","MenuBar","SortedCollection","_items","orderedItems","filter","i","wrap","typeaheadDelay","_itemPatterns","map","itemSelected","output","MenuBarPattern","items","multi","focusMode","orientation","selectionMode","emit","activeItem","signal","afterRenderEffect","write","setDefaultStateEffect","afterNextRender","startObserving","stopObserving","providers","provide","useExisting","Menu","_deferredContentAware","DeferredContentAware","ngDevMode","debugName","visible","tabIndex","expansionDelay","MenuPattern","contentVisible","hasBeenInteracted","untracked","listBehavior","goto","hostDirectives","directive","i1","MenuContent","DeferredContent"],"mappings":"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"}
@@ -1,29 +1,29 @@
1
1
  export { AccordionGroupPattern, AccordionTriggerPattern } from './_accordion-chunk.mjs';
2
- export { ComboboxDialogPattern, ComboboxPattern } from './_combobox-chunk.mjs';
3
- export { ComboboxListboxPattern, ListboxPattern, OptionPattern } from './_combobox-listbox-chunk.mjs';
4
- export { ComboboxTreePattern, TreeItemPattern, TreePattern } from './_combobox-tree-chunk.mjs';
2
+ import { computed, signal, untracked } from '@angular/core';
3
+ import { KeyboardEventManager, Modifier } from './_collection-chunk.mjs';
4
+ export { SortedCollection, computed, convertGetterSetterToWritableSignalLike, linkedSignal, signal, sortDirectives } from './_collection-chunk.mjs';
5
+ import { ClickEventManager } from './_click-event-manager-chunk.mjs';
5
6
  export { DeferredContent, DeferredContentAware } from './_deferred-content-chunk.mjs';
6
7
  export { GridCellPattern, GridCellWidgetPattern, GridPattern, GridRowPattern, resolveElement } from './_widget-chunk.mjs';
8
+ export { ListboxPattern, OptionPattern } from './_option-chunk.mjs';
7
9
  export { MenuBarPattern, MenuItemPattern, MenuPattern, MenuTriggerPattern } from './_menu-chunk.mjs';
8
- import { computed, signal, untracked } from '@angular/core';
9
- import { KeyboardEventManager } from './_signal-like-chunk.mjs';
10
- export { computed, convertGetterSetterToWritableSignalLike, linkedSignal, signal } from './_signal-like-chunk.mjs';
11
- import { ClickEventManager } from './_click-event-manager-chunk.mjs';
12
10
  export { TabListPattern, TabPanelPattern, TabPattern } from './_tabs-chunk.mjs';
13
11
  export { ToolbarPattern, ToolbarWidgetGroupPattern, ToolbarWidgetPattern } from './_toolbar-widget-group-chunk.mjs';
14
- export { sortDirectives } from './_element-chunk.mjs';
12
+ export { TreeItemPattern, TreePattern } from './_tree-chunk.mjs';
13
+ export { tabIndexTransform } from './_transforms-chunk.mjs';
15
14
  export { untracked } from '@angular/core/primitives/signals';
16
15
  import './_expansion-chunk.mjs';
17
16
  import './_list-navigation-chunk.mjs';
18
17
  import './_list-chunk.mjs';
19
18
  import './_list-typeahead-chunk.mjs';
20
19
 
21
- class SimpleComboboxPattern {
20
+ class ComboboxPattern {
22
21
  inputs;
23
22
  isExpanded = computed(() => this.inputs.alwaysExpanded() || this.inputs.expanded());
24
23
  value;
25
24
  element = () => this.inputs.element();
26
25
  disabled = () => this.inputs.disabled();
26
+ softDisabled = () => this.inputs.softDisabled?.() ?? true;
27
27
  inlineSuggestion = () => this.inputs.inlineSuggestion();
28
28
  activeDescendant = computed(() => this.inputs.popup()?.activeDescendant());
29
29
  popupId = computed(() => this.inputs.popup()?.popupId());
@@ -52,7 +52,8 @@ class SimpleComboboxPattern {
52
52
  if (!this.isExpanded()) {
53
53
  manager.on('ArrowDown', () => this.inputs.expanded.set(true));
54
54
  if (!this.isEditable()) {
55
- manager.on(/^(Enter| )$/, () => this.inputs.expanded.set(true));
55
+ manager.on('Enter', () => this.inputs.expanded.set(true));
56
+ manager.on(' ', () => this.inputs.expanded.set(true));
56
57
  }
57
58
  return manager;
58
59
  }
@@ -70,13 +71,17 @@ class SimpleComboboxPattern {
70
71
  ignoreRepeat: false
71
72
  }).on('ArrowDown', e => this.keyboardEventRelay.set(e), {
72
73
  ignoreRepeat: false
74
+ }).on(Modifier.Shift, 'ArrowUp', e => this.keyboardEventRelay.set(e), {
75
+ ignoreRepeat: false
76
+ }).on(Modifier.Shift, 'ArrowDown', e => this.keyboardEventRelay.set(e), {
77
+ ignoreRepeat: false
73
78
  }).on('Home', e => this.keyboardEventRelay.set(e)).on('End', e => this.keyboardEventRelay.set(e)).on('Enter', e => this.keyboardEventRelay.set(e)).on('PageUp', e => this.keyboardEventRelay.set(e)).on('PageDown', e => this.keyboardEventRelay.set(e)).on('Escape', () => {
74
79
  if (!this.inputs.alwaysExpanded()) {
75
80
  this.inputs.expanded.set(false);
76
81
  }
77
82
  });
78
83
  if (!this.isEditable()) {
79
- manager.on(' ', e => this.keyboardEventRelay.set(e)).on(/^.$/, e => {
84
+ manager.on(' ', e => this.keyboardEventRelay.set(e)).on([Modifier.Ctrl, Modifier.Meta], 'a', e => this.keyboardEventRelay.set(e)).on([Modifier.Ctrl, Modifier.Meta], 'A', e => this.keyboardEventRelay.set(e)).on(Modifier.Shift, 'Home', e => this.keyboardEventRelay.set(e)).on(Modifier.Shift, 'End', e => this.keyboardEventRelay.set(e)).on(/^.$/, e => {
80
85
  this.keyboardEventRelay.set(e);
81
86
  });
82
87
  }
@@ -132,6 +137,7 @@ class SimpleComboboxPattern {
132
137
  keyboardEventRelayEffect() {
133
138
  const event = this.keyboardEventRelay();
134
139
  if (event === undefined) return;
140
+ this.isDeleting.set(false);
135
141
  const popup = untracked(() => this.inputs.popup());
136
142
  const popupExpanded = untracked(() => this.isExpanded());
137
143
  if (popupExpanded) {
@@ -147,7 +153,7 @@ class SimpleComboboxPattern {
147
153
  }
148
154
  }
149
155
  }
150
- class SimpleComboboxPopupPattern {
156
+ class ComboboxPopupPattern {
151
157
  inputs;
152
158
  popupType = () => this.inputs.popupType();
153
159
  controlTarget = () => this.inputs.controlTarget();
@@ -167,5 +173,5 @@ class SimpleComboboxPopupPattern {
167
173
  }
168
174
  }
169
175
 
170
- export { SimpleComboboxPattern, SimpleComboboxPopupPattern };
176
+ export { ComboboxPattern, ComboboxPopupPattern };
171
177
  //# sourceMappingURL=private.mjs.map