@angular/aria 22.0.0-next.7 → 22.0.0-rc.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/_accordion-chunk.mjs +11 -1
- package/fesm2022/_accordion-chunk.mjs.map +1 -1
- package/fesm2022/_click-event-manager-chunk.mjs +1 -1
- package/fesm2022/_deferred-content-chunk.mjs +6 -6
- package/fesm2022/_list-chunk.mjs +4 -1
- package/fesm2022/_list-chunk.mjs.map +1 -1
- package/fesm2022/_list-navigation-chunk.mjs +1 -1
- package/fesm2022/_list-typeahead-chunk.mjs +1 -1
- package/fesm2022/_menu-chunk.mjs +10 -1
- package/fesm2022/_menu-chunk.mjs.map +1 -1
- package/fesm2022/{_combobox-listbox-chunk.mjs → _option-chunk.mjs} +13 -50
- package/fesm2022/_option-chunk.mjs.map +1 -0
- package/fesm2022/_tabs-chunk.mjs +1 -1
- package/fesm2022/_toolbar-widget-group-chunk.mjs +10 -1
- package/fesm2022/_toolbar-widget-group-chunk.mjs.map +1 -1
- package/fesm2022/_transforms-chunk.mjs +8 -0
- package/fesm2022/_transforms-chunk.mjs.map +1 -0
- package/fesm2022/{_combobox-tree-chunk.mjs → _tree-chunk.mjs} +8 -48
- package/fesm2022/_tree-chunk.mjs.map +1 -0
- package/fesm2022/{_signal-like-chunk.mjs → _violations-chunk.mjs} +60 -2
- package/fesm2022/_violations-chunk.mjs.map +1 -0
- package/fesm2022/_widget-chunk.mjs +46 -15
- package/fesm2022/_widget-chunk.mjs.map +1 -1
- package/fesm2022/accordion.mjs +116 -89
- package/fesm2022/accordion.mjs.map +1 -1
- package/fesm2022/aria.mjs +1 -1
- package/fesm2022/aria.mjs.map +1 -1
- package/fesm2022/combobox-testing.mjs +79 -0
- package/fesm2022/combobox-testing.mjs.map +1 -0
- package/fesm2022/combobox.mjs +273 -307
- package/fesm2022/combobox.mjs.map +1 -1
- package/fesm2022/grid-testing.mjs +8 -0
- package/fesm2022/grid-testing.mjs.map +1 -1
- package/fesm2022/grid.mjs +75 -87
- package/fesm2022/grid.mjs.map +1 -1
- package/fesm2022/listbox-testing.mjs +4 -0
- package/fesm2022/listbox-testing.mjs.map +1 -1
- package/fesm2022/listbox.mjs +192 -215
- package/fesm2022/listbox.mjs.map +1 -1
- package/fesm2022/menu-testing.mjs +11 -0
- package/fesm2022/menu-testing.mjs.map +1 -1
- package/fesm2022/menu.mjs +60 -66
- package/fesm2022/menu.mjs.map +1 -1
- package/fesm2022/private.mjs +19 -13
- package/fesm2022/private.mjs.map +1 -1
- package/fesm2022/tabs.mjs +172 -115
- package/fesm2022/tabs.mjs.map +1 -1
- package/fesm2022/toolbar-testing.mjs +5 -1
- package/fesm2022/toolbar-testing.mjs.map +1 -1
- package/fesm2022/toolbar.mjs +41 -30
- package/fesm2022/toolbar.mjs.map +1 -1
- package/fesm2022/tree-testing.mjs +12 -0
- package/fesm2022/tree-testing.mjs.map +1 -1
- package/fesm2022/tree.mjs +126 -156
- package/fesm2022/tree.mjs.map +1 -1
- package/package.json +6 -6
- package/types/_accordion-chunk.d.ts +4 -2
- package/types/_collection-chunk.d.ts +42 -0
- package/types/_expansion-chunk.d.ts +1 -1
- package/types/_grid-chunk.d.ts +11 -3
- package/types/_keyboard-event-manager-chunk.d.ts +1 -1
- package/types/_list-chunk.d.ts +1 -1
- package/types/_list-navigation-chunk.d.ts +1 -1
- package/types/_listbox-chunk.d.ts +1 -1
- package/types/_menu-chunk.d.ts +3 -1
- package/types/_tabs-chunk.d.ts +1 -1
- package/types/_toolbar-chunk.d.ts +3 -1
- package/types/_tree-chunk.d.ts +1 -1
- package/types/accordion.d.ts +10 -18
- package/types/combobox-testing.d.ts +63 -0
- package/types/combobox.d.ts +96 -193
- package/types/grid-testing.d.ts +4 -0
- package/types/grid.d.ts +99 -103
- package/types/listbox-testing.d.ts +25 -0
- package/types/listbox.d.ts +53 -62
- package/types/menu-testing.d.ts +6 -0
- package/types/menu.d.ts +17 -23
- package/types/private.d.ts +26 -137
- package/types/tabs.d.ts +69 -80
- package/types/toolbar-testing.d.ts +4 -0
- package/types/toolbar.d.ts +6 -12
- package/types/tree-testing.d.ts +8 -0
- package/types/tree.d.ts +7 -20
- package/fesm2022/_combobox-chunk.mjs +0 -478
- package/fesm2022/_combobox-chunk.mjs.map +0 -1
- package/fesm2022/_combobox-listbox-chunk.mjs.map +0 -1
- package/fesm2022/_combobox-tree-chunk.mjs.map +0 -1
- package/fesm2022/_element-chunk.mjs +0 -6
- package/fesm2022/_element-chunk.mjs.map +0 -1
- package/fesm2022/_signal-like-chunk.mjs.map +0 -1
- package/fesm2022/simple-combobox.mjs +0 -443
- package/fesm2022/simple-combobox.mjs.map +0 -1
- package/types/_combobox-chunk.d.ts +0 -224
- package/types/_element-chunk.d.ts +0 -10
- package/types/_signal-like-chunk.d.ts +0 -14
- 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":";;AAYM,MAAOA,eAAgB,SAAQC,gBAAgB,CAAA;EACnD,OAAOC,YAAY,GAAG,cAAc;AAEpC,EAAA,OAAOC,IAAIA,CAACC,OAAA,GAAkC,EAAE,EAAA;AAC9C,IAAA,OAAO,IAAIC,gBAAgB,CAACL,eAAe,EAAEI,OAAO,CAAA,CACjDE,SAAS,CAAC,MAAM,EAAEF,OAAO,CAACG,IAAI,EAAE,CAACC,OAAO,EAAED,IAAI,KAC7CF,gBAAgB,CAACI,aAAa,CAACD,OAAO,CAACE,OAAO,EAAE,EAAEH,IAAI,CAAC,CAAA,CAExDD,SAAS,CACR,UAAU,EACVF,OAAO,CAACO,QAAQ,EAChB,OAAOH,OAAO,EAAEG,QAAQ,KAAK,CAAC,MAAMH,OAAO,CAACI,UAAU,EAAE,MAAMD,QAAQ,CAAA,CAEvEL,SAAS,CACR,UAAU,EACVF,OAAO,CAACS,QAAQ,EAChB,OAAOL,OAAO,EAAEK,QAAQ,KAAK,CAAC,MAAML,OAAO,CAACM,UAAU,EAAE,MAAMD,QAAQ,CACvE;AACL,EAAA;EAGA,MAAMH,OAAOA,GAAA;IACX,OAAO,CAAC,MAAM,IAAI,CAACK,IAAI,EAAE,EAAER,IAAI,EAAE;AACnC,EAAA;EAGA,MAAMK,UAAUA,GAAA;AACd,IAAA,MAAMG,IAAI,GAAG,MAAM,IAAI,CAACA,IAAI,EAAE;IAC9B,OAAO,CAAC,MAAMA,IAAI,CAACC,YAAY,CAAC,eAAe,CAAC,MAAM,MAAM;AAC9D,EAAA;EAGA,MAAMF,UAAUA,GAAA;AACd,IAAA,MAAMC,IAAI,GAAG,MAAM,IAAI,CAACA,IAAI,EAAE;IAC9B,OAAO,CAAC,MAAMA,IAAI,CAACC,YAAY,CAAC,eAAe,CAAC,MAAM,MAAM;AAC9D,EAAA;EAGA,MAAMC,KAAKA,GAAA;IACT,OAAO,CAAC,MAAM,IAAI,CAACF,IAAI,EAAE,EAAEE,KAAK,EAAE;AACpC,EAAA;EAGA,MAAMC,UAAUA,GAAA;AACd,IAAA,MAAMC,UAAU,GAAG,MAAM,CAAC,MAAM,IAAI,CAACJ,IAAI,EAAE,EAAEC,YAAY,CAAC,eAAe,CAAC;AAC1E,IAAA,IAAIG,UAAU,EAAE;MACd,OAAO,IAAI,CAACC,0BAA0B,EAAE,CAACC,UAAU,CACjDC,WAAW,CAACnB,IAAI,CAAC;QAACoB,QAAQ,EAAE,IAAIJ,UAAU,CAAA;OAAG,CAAC,CAC/C,EAAE;AACL,IAAA;AACA,IAAA,OAAO,IAAI;AACb,EAAA;;AAII,
|
|
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,
|
|
2
|
+
import { inject, ElementRef, input, computed, booleanAttribute, effect, Directive, InjectionToken, model, afterRenderEffect, output, signal, 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 { reportViolations, SortedCollection } from './_violations-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.
|
|
57
|
+
version: "22.0.0-next.12",
|
|
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.
|
|
65
|
+
version: "22.0.0-next.12",
|
|
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.
|
|
114
|
+
version: "22.0.0-next.12",
|
|
115
115
|
ngImport: i0,
|
|
116
116
|
type: MenuTrigger,
|
|
117
117
|
decorators: [{
|
|
@@ -205,6 +205,23 @@ class MenuItem {
|
|
|
205
205
|
});
|
|
206
206
|
constructor() {
|
|
207
207
|
effect(() => this.submenu()?.parent.set(this));
|
|
208
|
+
if (typeof ngDevMode === 'undefined' || ngDevMode) {
|
|
209
|
+
afterRenderEffect({
|
|
210
|
+
read: () => {
|
|
211
|
+
const violations = [];
|
|
212
|
+
if (!this.parent) {
|
|
213
|
+
violations.push('ngMenuItem must be placed inside an ngMenu or ngMenuBar container.');
|
|
214
|
+
}
|
|
215
|
+
reportViolations(violations, this.element);
|
|
216
|
+
}
|
|
217
|
+
});
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
ngOnInit() {
|
|
221
|
+
this.parent?._collection.register(this);
|
|
222
|
+
}
|
|
223
|
+
ngOnDestroy() {
|
|
224
|
+
this.parent?._collection.unregister(this);
|
|
208
225
|
}
|
|
209
226
|
open() {
|
|
210
227
|
this._pattern.open({
|
|
@@ -216,7 +233,7 @@ class MenuItem {
|
|
|
216
233
|
}
|
|
217
234
|
static ɵfac = i0.ɵɵngDeclareFactory({
|
|
218
235
|
minVersion: "12.0.0",
|
|
219
|
-
version: "22.0.0-next.
|
|
236
|
+
version: "22.0.0-next.12",
|
|
220
237
|
ngImport: i0,
|
|
221
238
|
type: MenuItem,
|
|
222
239
|
deps: [],
|
|
@@ -224,7 +241,7 @@ class MenuItem {
|
|
|
224
241
|
});
|
|
225
242
|
static ɵdir = i0.ɵɵngDeclareDirective({
|
|
226
243
|
minVersion: "17.1.0",
|
|
227
|
-
version: "22.0.0-next.
|
|
244
|
+
version: "22.0.0-next.12",
|
|
228
245
|
type: MenuItem,
|
|
229
246
|
isStandalone: true,
|
|
230
247
|
selector: "[ngMenuItem]",
|
|
@@ -278,7 +295,6 @@ class MenuItem {
|
|
|
278
295
|
properties: {
|
|
279
296
|
"attr.tabindex": "_pattern.tabIndex()",
|
|
280
297
|
"attr.data-active": "active()",
|
|
281
|
-
"attr.aria-label": "value()",
|
|
282
298
|
"attr.aria-haspopup": "hasPopup()",
|
|
283
299
|
"attr.aria-expanded": "expanded()",
|
|
284
300
|
"attr.aria-disabled": "_pattern.disabled()",
|
|
@@ -291,7 +307,7 @@ class MenuItem {
|
|
|
291
307
|
}
|
|
292
308
|
i0.ɵɵngDeclareClassMetadata({
|
|
293
309
|
minVersion: "12.0.0",
|
|
294
|
-
version: "22.0.0-next.
|
|
310
|
+
version: "22.0.0-next.12",
|
|
295
311
|
ngImport: i0,
|
|
296
312
|
type: MenuItem,
|
|
297
313
|
decorators: [{
|
|
@@ -304,7 +320,6 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
304
320
|
'(focusin)': '_pattern.onFocusIn()',
|
|
305
321
|
'[attr.tabindex]': '_pattern.tabIndex()',
|
|
306
322
|
'[attr.data-active]': 'active()',
|
|
307
|
-
'[attr.aria-label]': 'value()',
|
|
308
323
|
'[attr.aria-haspopup]': 'hasPopup()',
|
|
309
324
|
'[attr.aria-expanded]': 'expanded()',
|
|
310
325
|
'[attr.aria-disabled]': '_pattern.disabled()',
|
|
@@ -361,13 +376,8 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
361
376
|
});
|
|
362
377
|
|
|
363
378
|
class MenuBar {
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
debugName: "_allItems"
|
|
367
|
-
} : {}),
|
|
368
|
-
descendants: true
|
|
369
|
-
});
|
|
370
|
-
_items = () => this._allItems().filter(i => i.parent === this);
|
|
379
|
+
_collection = new SortedCollection();
|
|
380
|
+
_items = () => this._collection.orderedItems().filter(i => i.parent === this);
|
|
371
381
|
_elementRef = inject(ElementRef);
|
|
372
382
|
element = this._elementRef.nativeElement;
|
|
373
383
|
disabled = input(false, {
|
|
@@ -416,21 +426,27 @@ class MenuBar {
|
|
|
416
426
|
afterRenderEffect({
|
|
417
427
|
write: () => this._pattern.setDefaultStateEffect()
|
|
418
428
|
});
|
|
429
|
+
afterNextRender(() => {
|
|
430
|
+
this._collection.startObserving(this.element);
|
|
431
|
+
});
|
|
432
|
+
}
|
|
433
|
+
ngOnDestroy() {
|
|
434
|
+
this._collection.stopObserving();
|
|
419
435
|
}
|
|
420
436
|
close() {
|
|
421
437
|
this._pattern.close();
|
|
422
438
|
}
|
|
423
439
|
static ɵfac = i0.ɵɵngDeclareFactory({
|
|
424
440
|
minVersion: "12.0.0",
|
|
425
|
-
version: "22.0.0-next.
|
|
441
|
+
version: "22.0.0-next.12",
|
|
426
442
|
ngImport: i0,
|
|
427
443
|
type: MenuBar,
|
|
428
444
|
deps: [],
|
|
429
445
|
target: i0.ɵɵFactoryTarget.Directive
|
|
430
446
|
});
|
|
431
447
|
static ɵdir = i0.ɵɵngDeclareDirective({
|
|
432
|
-
minVersion: "17.
|
|
433
|
-
version: "22.0.0-next.
|
|
448
|
+
minVersion: "17.1.0",
|
|
449
|
+
version: "22.0.0-next.12",
|
|
434
450
|
type: MenuBar,
|
|
435
451
|
isStandalone: true,
|
|
436
452
|
selector: "[ngMenuBar]",
|
|
@@ -496,19 +512,13 @@ class MenuBar {
|
|
|
496
512
|
provide: MENU_COMPONENT,
|
|
497
513
|
useExisting: MenuBar
|
|
498
514
|
}],
|
|
499
|
-
queries: [{
|
|
500
|
-
propertyName: "_allItems",
|
|
501
|
-
predicate: MenuItem,
|
|
502
|
-
descendants: true,
|
|
503
|
-
isSignal: true
|
|
504
|
-
}],
|
|
505
515
|
exportAs: ["ngMenuBar"],
|
|
506
516
|
ngImport: i0
|
|
507
517
|
});
|
|
508
518
|
}
|
|
509
519
|
i0.ɵɵngDeclareClassMetadata({
|
|
510
520
|
minVersion: "12.0.0",
|
|
511
|
-
version: "22.0.0-next.
|
|
521
|
+
version: "22.0.0-next.12",
|
|
512
522
|
ngImport: i0,
|
|
513
523
|
type: MenuBar,
|
|
514
524
|
decorators: [{
|
|
@@ -535,15 +545,6 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
535
545
|
}],
|
|
536
546
|
ctorParameters: () => [],
|
|
537
547
|
propDecorators: {
|
|
538
|
-
_allItems: [{
|
|
539
|
-
type: i0.ContentChildren,
|
|
540
|
-
args: [i0.forwardRef(() => MenuItem), {
|
|
541
|
-
...{
|
|
542
|
-
descendants: true
|
|
543
|
-
},
|
|
544
|
-
isSignal: true
|
|
545
|
-
}]
|
|
546
|
-
}],
|
|
547
548
|
disabled: [{
|
|
548
549
|
type: i0.Input,
|
|
549
550
|
args: [{
|
|
@@ -598,13 +599,8 @@ class Menu {
|
|
|
598
599
|
_deferredContentAware = inject(DeferredContentAware, {
|
|
599
600
|
optional: true
|
|
600
601
|
});
|
|
601
|
-
|
|
602
|
-
|
|
603
|
-
debugName: "_allItems"
|
|
604
|
-
} : {}),
|
|
605
|
-
descendants: true
|
|
606
|
-
});
|
|
607
|
-
_items = computed(() => this._allItems().filter(i => i.parent === this), ...(ngDevMode ? [{
|
|
602
|
+
_collection = new SortedCollection();
|
|
603
|
+
_items = computed(() => this._collection.orderedItems().filter(i => i.parent === this), ...(ngDevMode ? [{
|
|
608
604
|
debugName: "_items"
|
|
609
605
|
}] : []));
|
|
610
606
|
_elementRef = inject(ElementRef);
|
|
@@ -683,21 +679,34 @@ class Menu {
|
|
|
683
679
|
afterRenderEffect({
|
|
684
680
|
write: () => this._pattern.setDefaultStateEffect()
|
|
685
681
|
});
|
|
682
|
+
if (typeof ngDevMode === 'undefined' || ngDevMode) {
|
|
683
|
+
afterRenderEffect({
|
|
684
|
+
read: () => {
|
|
685
|
+
reportViolations(this._pattern.validate(), this.element);
|
|
686
|
+
}
|
|
687
|
+
});
|
|
688
|
+
}
|
|
689
|
+
afterNextRender(() => {
|
|
690
|
+
this._collection.startObserving(this.element);
|
|
691
|
+
});
|
|
692
|
+
}
|
|
693
|
+
ngOnDestroy() {
|
|
694
|
+
this._collection.stopObserving();
|
|
686
695
|
}
|
|
687
696
|
close() {
|
|
688
697
|
this._pattern.close();
|
|
689
698
|
}
|
|
690
699
|
static ɵfac = i0.ɵɵngDeclareFactory({
|
|
691
700
|
minVersion: "12.0.0",
|
|
692
|
-
version: "22.0.0-next.
|
|
701
|
+
version: "22.0.0-next.12",
|
|
693
702
|
ngImport: i0,
|
|
694
703
|
type: Menu,
|
|
695
704
|
deps: [],
|
|
696
705
|
target: i0.ɵɵFactoryTarget.Directive
|
|
697
706
|
});
|
|
698
707
|
static ɵdir = i0.ɵɵngDeclareDirective({
|
|
699
|
-
minVersion: "17.
|
|
700
|
-
version: "22.0.0-next.
|
|
708
|
+
minVersion: "17.1.0",
|
|
709
|
+
version: "22.0.0-next.12",
|
|
701
710
|
type: Menu,
|
|
702
711
|
isStandalone: true,
|
|
703
712
|
selector: "[ngMenu]",
|
|
@@ -764,12 +773,6 @@ class Menu {
|
|
|
764
773
|
provide: MENU_COMPONENT,
|
|
765
774
|
useExisting: Menu
|
|
766
775
|
}],
|
|
767
|
-
queries: [{
|
|
768
|
-
propertyName: "_allItems",
|
|
769
|
-
predicate: MenuItem,
|
|
770
|
-
descendants: true,
|
|
771
|
-
isSignal: true
|
|
772
|
-
}],
|
|
773
776
|
exportAs: ["ngMenu"],
|
|
774
777
|
hostDirectives: [{
|
|
775
778
|
directive: DeferredContentAware,
|
|
@@ -780,7 +783,7 @@ class Menu {
|
|
|
780
783
|
}
|
|
781
784
|
i0.ɵɵngDeclareClassMetadata({
|
|
782
785
|
minVersion: "12.0.0",
|
|
783
|
-
version: "22.0.0-next.
|
|
786
|
+
version: "22.0.0-next.12",
|
|
784
787
|
ngImport: i0,
|
|
785
788
|
type: Menu,
|
|
786
789
|
decorators: [{
|
|
@@ -813,15 +816,6 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
813
816
|
}],
|
|
814
817
|
ctorParameters: () => [],
|
|
815
818
|
propDecorators: {
|
|
816
|
-
_allItems: [{
|
|
817
|
-
type: i0.ContentChildren,
|
|
818
|
-
args: [i0.forwardRef(() => MenuItem), {
|
|
819
|
-
...{
|
|
820
|
-
descendants: true
|
|
821
|
-
},
|
|
822
|
-
isSignal: true
|
|
823
|
-
}]
|
|
824
|
-
}],
|
|
825
819
|
id: [{
|
|
826
820
|
type: i0.Input,
|
|
827
821
|
args: [{
|
|
@@ -872,7 +866,7 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
872
866
|
class MenuContent {
|
|
873
867
|
static ɵfac = i0.ɵɵngDeclareFactory({
|
|
874
868
|
minVersion: "12.0.0",
|
|
875
|
-
version: "22.0.0-next.
|
|
869
|
+
version: "22.0.0-next.12",
|
|
876
870
|
ngImport: i0,
|
|
877
871
|
type: MenuContent,
|
|
878
872
|
deps: [],
|
|
@@ -880,7 +874,7 @@ class MenuContent {
|
|
|
880
874
|
});
|
|
881
875
|
static ɵdir = i0.ɵɵngDeclareDirective({
|
|
882
876
|
minVersion: "14.0.0",
|
|
883
|
-
version: "22.0.0-next.
|
|
877
|
+
version: "22.0.0-next.12",
|
|
884
878
|
type: MenuContent,
|
|
885
879
|
isStandalone: true,
|
|
886
880
|
selector: "ng-template[ngMenuContent]",
|
|
@@ -893,7 +887,7 @@ class MenuContent {
|
|
|
893
887
|
}
|
|
894
888
|
i0.ɵɵngDeclareClassMetadata({
|
|
895
889
|
minVersion: "12.0.0",
|
|
896
|
-
version: "22.0.0-next.
|
|
890
|
+
version: "22.0.0-next.12",
|
|
897
891
|
ngImport: i0,
|
|
898
892
|
type: MenuContent,
|
|
899
893
|
decorators: [{
|
package/fesm2022/menu.mjs.map
CHANGED
|
@@ -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 * @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 afterRenderEffect,\n} from '@angular/core';\nimport {MenuItemPattern, reportViolations} 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 * @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 // Check for any violations after the DOM has been updated.\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n afterRenderEffect({\n read: () => {\n const violations: string[] = [];\n if (!this.parent) {\n violations.push('ngMenuItem must be placed inside an ngMenu or ngMenuBar container.');\n }\n reportViolations(violations, this.element);\n },\n });\n }\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 * @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, reportViolations} 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 * @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 // Check for any violations after the DOM has been updated.\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n afterRenderEffect({\n read: () => {\n reportViolations(this._pattern.validate(), this.element);\n },\n });\n }\n\n 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 * @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","ngDevMode","afterRenderEffect","read","violations","push","reportViolations","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","write","setDefaultStateEffect","afterNextRender","startObserving","stopObserving","providers","provide","useExisting","Menu","_deferredContentAware","DeferredContentAware","debugName","visible","tabIndex","expansionDelay","MenuPattern","contentVisible","hasBeenInteracted","untracked","listBehavior","goto","validate","hostDirectives","directive","i1","MenuContent","DeferredContent"],"mappings":"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"}
|