@angular/aria 21.0.0 → 21.0.2
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/_adev_assets/aria-combobox.json +15 -15
- package/_adev_assets/aria-grid.json +8 -16
- package/_adev_assets/aria-listbox.json +9 -9
- package/_adev_assets/aria-menu.json +7 -7
- package/_adev_assets/aria-tree.json +1 -9
- package/fesm2022/_widget-chunk.mjs.map +1 -1
- package/fesm2022/accordion.mjs +122 -15
- package/fesm2022/accordion.mjs.map +1 -1
- package/fesm2022/aria.mjs +1 -1
- package/fesm2022/aria.mjs.map +1 -1
- package/fesm2022/combobox.mjs +81 -20
- package/fesm2022/combobox.mjs.map +1 -1
- package/fesm2022/grid.mjs +282 -28
- package/fesm2022/grid.mjs.map +1 -1
- package/fesm2022/listbox.mjs +147 -11
- package/fesm2022/listbox.mjs.map +1 -1
- package/fesm2022/menu.mjs +204 -20
- package/fesm2022/menu.mjs.map +1 -1
- package/fesm2022/private.mjs +22 -7
- package/fesm2022/private.mjs.map +1 -1
- package/fesm2022/tabs.mjs +123 -18
- package/fesm2022/tabs.mjs.map +1 -1
- package/fesm2022/toolbar.mjs +110 -12
- package/fesm2022/toolbar.mjs.map +1 -1
- package/fesm2022/tree.mjs +184 -12
- package/fesm2022/tree.mjs.map +1 -1
- package/package.json +2 -2
- package/types/listbox.d.ts +2 -2
- package/types/private.d.ts +2 -0
package/fesm2022/menu.mjs
CHANGED
|
@@ -49,7 +49,7 @@ class MenuTrigger {
|
|
|
49
49
|
}
|
|
50
50
|
static ɵfac = i0.ɵɵngDeclareFactory({
|
|
51
51
|
minVersion: "12.0.0",
|
|
52
|
-
version: "
|
|
52
|
+
version: "21.0.0",
|
|
53
53
|
ngImport: i0,
|
|
54
54
|
type: MenuTrigger,
|
|
55
55
|
deps: [],
|
|
@@ -57,7 +57,7 @@ class MenuTrigger {
|
|
|
57
57
|
});
|
|
58
58
|
static ɵdir = i0.ɵɵngDeclareDirective({
|
|
59
59
|
minVersion: "17.1.0",
|
|
60
|
-
version: "
|
|
60
|
+
version: "21.0.0",
|
|
61
61
|
type: MenuTrigger,
|
|
62
62
|
isStandalone: true,
|
|
63
63
|
selector: "button[ngMenuTrigger]",
|
|
@@ -106,7 +106,7 @@ class MenuTrigger {
|
|
|
106
106
|
}
|
|
107
107
|
i0.ɵɵngDeclareClassMetadata({
|
|
108
108
|
minVersion: "12.0.0",
|
|
109
|
-
version: "
|
|
109
|
+
version: "21.0.0",
|
|
110
110
|
ngImport: i0,
|
|
111
111
|
type: MenuTrigger,
|
|
112
112
|
decorators: [{
|
|
@@ -128,7 +128,33 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
128
128
|
}
|
|
129
129
|
}]
|
|
130
130
|
}],
|
|
131
|
-
ctorParameters: () => []
|
|
131
|
+
ctorParameters: () => [],
|
|
132
|
+
propDecorators: {
|
|
133
|
+
menu: [{
|
|
134
|
+
type: i0.Input,
|
|
135
|
+
args: [{
|
|
136
|
+
isSignal: true,
|
|
137
|
+
alias: "menu",
|
|
138
|
+
required: false
|
|
139
|
+
}]
|
|
140
|
+
}],
|
|
141
|
+
disabled: [{
|
|
142
|
+
type: i0.Input,
|
|
143
|
+
args: [{
|
|
144
|
+
isSignal: true,
|
|
145
|
+
alias: "disabled",
|
|
146
|
+
required: false
|
|
147
|
+
}]
|
|
148
|
+
}],
|
|
149
|
+
softDisabled: [{
|
|
150
|
+
type: i0.Input,
|
|
151
|
+
args: [{
|
|
152
|
+
isSignal: true,
|
|
153
|
+
alias: "softDisabled",
|
|
154
|
+
required: false
|
|
155
|
+
}]
|
|
156
|
+
}]
|
|
157
|
+
}
|
|
132
158
|
});
|
|
133
159
|
class Menu {
|
|
134
160
|
_deferredContentAware = inject(DeferredContentAware, {
|
|
@@ -208,7 +234,7 @@ class Menu {
|
|
|
208
234
|
}
|
|
209
235
|
});
|
|
210
236
|
afterRenderEffect(() => {
|
|
211
|
-
if (!this._pattern.hasBeenFocused() && this._items().length) {
|
|
237
|
+
if (!this._pattern.hasBeenFocused() && !this._pattern.hasBeenHovered() && this._items().length) {
|
|
212
238
|
untracked(() => this._pattern.setDefaultState());
|
|
213
239
|
}
|
|
214
240
|
});
|
|
@@ -218,7 +244,7 @@ class Menu {
|
|
|
218
244
|
}
|
|
219
245
|
static ɵfac = i0.ɵɵngDeclareFactory({
|
|
220
246
|
minVersion: "12.0.0",
|
|
221
|
-
version: "
|
|
247
|
+
version: "21.0.0",
|
|
222
248
|
ngImport: i0,
|
|
223
249
|
type: Menu,
|
|
224
250
|
deps: [],
|
|
@@ -226,7 +252,7 @@ class Menu {
|
|
|
226
252
|
});
|
|
227
253
|
static ɵdir = i0.ɵɵngDeclareDirective({
|
|
228
254
|
minVersion: "17.2.0",
|
|
229
|
-
version: "
|
|
255
|
+
version: "21.0.0",
|
|
230
256
|
type: Menu,
|
|
231
257
|
isStandalone: true,
|
|
232
258
|
selector: "[ngMenu]",
|
|
@@ -305,7 +331,7 @@ class Menu {
|
|
|
305
331
|
}
|
|
306
332
|
i0.ɵɵngDeclareClassMetadata({
|
|
307
333
|
minVersion: "12.0.0",
|
|
308
|
-
version: "
|
|
334
|
+
version: "21.0.0",
|
|
309
335
|
ngImport: i0,
|
|
310
336
|
type: Menu,
|
|
311
337
|
decorators: [{
|
|
@@ -332,7 +358,62 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
332
358
|
}]
|
|
333
359
|
}]
|
|
334
360
|
}],
|
|
335
|
-
ctorParameters: () => []
|
|
361
|
+
ctorParameters: () => [],
|
|
362
|
+
propDecorators: {
|
|
363
|
+
_allItems: [{
|
|
364
|
+
type: i0.ContentChildren,
|
|
365
|
+
args: [i0.forwardRef(() => MenuItem), {
|
|
366
|
+
...{
|
|
367
|
+
descendants: true
|
|
368
|
+
},
|
|
369
|
+
isSignal: true
|
|
370
|
+
}]
|
|
371
|
+
}],
|
|
372
|
+
id: [{
|
|
373
|
+
type: i0.Input,
|
|
374
|
+
args: [{
|
|
375
|
+
isSignal: true,
|
|
376
|
+
alias: "id",
|
|
377
|
+
required: false
|
|
378
|
+
}]
|
|
379
|
+
}],
|
|
380
|
+
wrap: [{
|
|
381
|
+
type: i0.Input,
|
|
382
|
+
args: [{
|
|
383
|
+
isSignal: true,
|
|
384
|
+
alias: "wrap",
|
|
385
|
+
required: false
|
|
386
|
+
}]
|
|
387
|
+
}],
|
|
388
|
+
typeaheadDelay: [{
|
|
389
|
+
type: i0.Input,
|
|
390
|
+
args: [{
|
|
391
|
+
isSignal: true,
|
|
392
|
+
alias: "typeaheadDelay",
|
|
393
|
+
required: false
|
|
394
|
+
}]
|
|
395
|
+
}],
|
|
396
|
+
disabled: [{
|
|
397
|
+
type: i0.Input,
|
|
398
|
+
args: [{
|
|
399
|
+
isSignal: true,
|
|
400
|
+
alias: "disabled",
|
|
401
|
+
required: false
|
|
402
|
+
}]
|
|
403
|
+
}],
|
|
404
|
+
onSelect: [{
|
|
405
|
+
type: i0.Output,
|
|
406
|
+
args: ["onSelect"]
|
|
407
|
+
}],
|
|
408
|
+
expansionDelay: [{
|
|
409
|
+
type: i0.Input,
|
|
410
|
+
args: [{
|
|
411
|
+
isSignal: true,
|
|
412
|
+
alias: "expansionDelay",
|
|
413
|
+
required: false
|
|
414
|
+
}]
|
|
415
|
+
}]
|
|
416
|
+
}
|
|
336
417
|
});
|
|
337
418
|
class MenuBar {
|
|
338
419
|
_allItems = contentChildren(MenuItem, ...(ngDevMode ? [{
|
|
@@ -401,7 +482,7 @@ class MenuBar {
|
|
|
401
482
|
}
|
|
402
483
|
static ɵfac = i0.ɵɵngDeclareFactory({
|
|
403
484
|
minVersion: "12.0.0",
|
|
404
|
-
version: "
|
|
485
|
+
version: "21.0.0",
|
|
405
486
|
ngImport: i0,
|
|
406
487
|
type: MenuBar,
|
|
407
488
|
deps: [],
|
|
@@ -409,7 +490,7 @@ class MenuBar {
|
|
|
409
490
|
});
|
|
410
491
|
static ɵdir = i0.ɵɵngDeclareDirective({
|
|
411
492
|
minVersion: "17.2.0",
|
|
412
|
-
version: "
|
|
493
|
+
version: "21.0.0",
|
|
413
494
|
type: MenuBar,
|
|
414
495
|
isStandalone: true,
|
|
415
496
|
selector: "[ngMenuBar]",
|
|
@@ -483,7 +564,7 @@ class MenuBar {
|
|
|
483
564
|
}
|
|
484
565
|
i0.ɵɵngDeclareClassMetadata({
|
|
485
566
|
minVersion: "12.0.0",
|
|
486
|
-
version: "
|
|
567
|
+
version: "21.0.0",
|
|
487
568
|
ngImport: i0,
|
|
488
569
|
type: MenuBar,
|
|
489
570
|
decorators: [{
|
|
@@ -504,7 +585,65 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
504
585
|
}
|
|
505
586
|
}]
|
|
506
587
|
}],
|
|
507
|
-
ctorParameters: () => []
|
|
588
|
+
ctorParameters: () => [],
|
|
589
|
+
propDecorators: {
|
|
590
|
+
_allItems: [{
|
|
591
|
+
type: i0.ContentChildren,
|
|
592
|
+
args: [i0.forwardRef(() => MenuItem), {
|
|
593
|
+
...{
|
|
594
|
+
descendants: true
|
|
595
|
+
},
|
|
596
|
+
isSignal: true
|
|
597
|
+
}]
|
|
598
|
+
}],
|
|
599
|
+
disabled: [{
|
|
600
|
+
type: i0.Input,
|
|
601
|
+
args: [{
|
|
602
|
+
isSignal: true,
|
|
603
|
+
alias: "disabled",
|
|
604
|
+
required: false
|
|
605
|
+
}]
|
|
606
|
+
}],
|
|
607
|
+
softDisabled: [{
|
|
608
|
+
type: i0.Input,
|
|
609
|
+
args: [{
|
|
610
|
+
isSignal: true,
|
|
611
|
+
alias: "softDisabled",
|
|
612
|
+
required: false
|
|
613
|
+
}]
|
|
614
|
+
}],
|
|
615
|
+
values: [{
|
|
616
|
+
type: i0.Input,
|
|
617
|
+
args: [{
|
|
618
|
+
isSignal: true,
|
|
619
|
+
alias: "values",
|
|
620
|
+
required: false
|
|
621
|
+
}]
|
|
622
|
+
}, {
|
|
623
|
+
type: i0.Output,
|
|
624
|
+
args: ["valuesChange"]
|
|
625
|
+
}],
|
|
626
|
+
wrap: [{
|
|
627
|
+
type: i0.Input,
|
|
628
|
+
args: [{
|
|
629
|
+
isSignal: true,
|
|
630
|
+
alias: "wrap",
|
|
631
|
+
required: false
|
|
632
|
+
}]
|
|
633
|
+
}],
|
|
634
|
+
typeaheadDelay: [{
|
|
635
|
+
type: i0.Input,
|
|
636
|
+
args: [{
|
|
637
|
+
isSignal: true,
|
|
638
|
+
alias: "typeaheadDelay",
|
|
639
|
+
required: false
|
|
640
|
+
}]
|
|
641
|
+
}],
|
|
642
|
+
onSelect: [{
|
|
643
|
+
type: i0.Output,
|
|
644
|
+
args: ["onSelect"]
|
|
645
|
+
}]
|
|
646
|
+
}
|
|
508
647
|
});
|
|
509
648
|
class MenuItem {
|
|
510
649
|
_elementRef = inject(ElementRef);
|
|
@@ -562,7 +701,7 @@ class MenuItem {
|
|
|
562
701
|
}
|
|
563
702
|
static ɵfac = i0.ɵɵngDeclareFactory({
|
|
564
703
|
minVersion: "12.0.0",
|
|
565
|
-
version: "
|
|
704
|
+
version: "21.0.0",
|
|
566
705
|
ngImport: i0,
|
|
567
706
|
type: MenuItem,
|
|
568
707
|
deps: [],
|
|
@@ -570,7 +709,7 @@ class MenuItem {
|
|
|
570
709
|
});
|
|
571
710
|
static ɵdir = i0.ɵɵngDeclareDirective({
|
|
572
711
|
minVersion: "17.1.0",
|
|
573
|
-
version: "
|
|
712
|
+
version: "21.0.0",
|
|
574
713
|
type: MenuItem,
|
|
575
714
|
isStandalone: true,
|
|
576
715
|
selector: "[ngMenuItem]",
|
|
@@ -636,7 +775,7 @@ class MenuItem {
|
|
|
636
775
|
}
|
|
637
776
|
i0.ɵɵngDeclareClassMetadata({
|
|
638
777
|
minVersion: "12.0.0",
|
|
639
|
-
version: "
|
|
778
|
+
version: "21.0.0",
|
|
640
779
|
ngImport: i0,
|
|
641
780
|
type: MenuItem,
|
|
642
781
|
decorators: [{
|
|
@@ -656,12 +795,57 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
656
795
|
}
|
|
657
796
|
}]
|
|
658
797
|
}],
|
|
659
|
-
ctorParameters: () => []
|
|
798
|
+
ctorParameters: () => [],
|
|
799
|
+
propDecorators: {
|
|
800
|
+
id: [{
|
|
801
|
+
type: i0.Input,
|
|
802
|
+
args: [{
|
|
803
|
+
isSignal: true,
|
|
804
|
+
alias: "id",
|
|
805
|
+
required: false
|
|
806
|
+
}]
|
|
807
|
+
}],
|
|
808
|
+
value: [{
|
|
809
|
+
type: i0.Input,
|
|
810
|
+
args: [{
|
|
811
|
+
isSignal: true,
|
|
812
|
+
alias: "value",
|
|
813
|
+
required: true
|
|
814
|
+
}]
|
|
815
|
+
}],
|
|
816
|
+
disabled: [{
|
|
817
|
+
type: i0.Input,
|
|
818
|
+
args: [{
|
|
819
|
+
isSignal: true,
|
|
820
|
+
alias: "disabled",
|
|
821
|
+
required: false
|
|
822
|
+
}]
|
|
823
|
+
}],
|
|
824
|
+
searchTerm: [{
|
|
825
|
+
type: i0.Input,
|
|
826
|
+
args: [{
|
|
827
|
+
isSignal: true,
|
|
828
|
+
alias: "searchTerm",
|
|
829
|
+
required: false
|
|
830
|
+
}]
|
|
831
|
+
}, {
|
|
832
|
+
type: i0.Output,
|
|
833
|
+
args: ["searchTermChange"]
|
|
834
|
+
}],
|
|
835
|
+
submenu: [{
|
|
836
|
+
type: i0.Input,
|
|
837
|
+
args: [{
|
|
838
|
+
isSignal: true,
|
|
839
|
+
alias: "submenu",
|
|
840
|
+
required: false
|
|
841
|
+
}]
|
|
842
|
+
}]
|
|
843
|
+
}
|
|
660
844
|
});
|
|
661
845
|
class MenuContent {
|
|
662
846
|
static ɵfac = i0.ɵɵngDeclareFactory({
|
|
663
847
|
minVersion: "12.0.0",
|
|
664
|
-
version: "
|
|
848
|
+
version: "21.0.0",
|
|
665
849
|
ngImport: i0,
|
|
666
850
|
type: MenuContent,
|
|
667
851
|
deps: [],
|
|
@@ -669,7 +853,7 @@ class MenuContent {
|
|
|
669
853
|
});
|
|
670
854
|
static ɵdir = i0.ɵɵngDeclareDirective({
|
|
671
855
|
minVersion: "14.0.0",
|
|
672
|
-
version: "
|
|
856
|
+
version: "21.0.0",
|
|
673
857
|
type: MenuContent,
|
|
674
858
|
isStandalone: true,
|
|
675
859
|
selector: "ng-template[ngMenuContent]",
|
|
@@ -682,7 +866,7 @@ class MenuContent {
|
|
|
682
866
|
}
|
|
683
867
|
i0.ɵɵngDeclareClassMetadata({
|
|
684
868
|
minVersion: "12.0.0",
|
|
685
|
-
version: "
|
|
869
|
+
version: "21.0.0",
|
|
686
870
|
ngImport: i0,
|
|
687
871
|
type: MenuContent,
|
|
688
872
|
decorators: [{
|
package/fesm2022/menu.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"menu.mjs","sources":["../../../../../darwin_arm64-fastbuild-ST-199a4f3c4e20/bin/src/aria/menu/menu.ts"],"sourcesContent":["/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {\n afterRenderEffect,\n booleanAttribute,\n computed,\n contentChildren,\n Directive,\n effect,\n ElementRef,\n inject,\n input,\n model,\n output,\n Signal,\n signal,\n untracked,\n} from '@angular/core';\nimport {\n SignalLike,\n MenuBarPattern,\n MenuItemPattern,\n MenuPattern,\n MenuTriggerPattern,\n DeferredContent,\n DeferredContentAware,\n} from '@angular/aria/private';\nimport {_IdGenerator} from '@angular/cdk/a11y';\nimport {Directionality} from '@angular/cdk/bidi';\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@Directive({\n selector: 'button[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 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 _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/**\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>Star</div>\n * <div ngMenuItem>Edit</div>\n * <div ngMenuItem [submenu]=\"subMenu\">More</div>\n * </div>\n *\n * <div ngMenu #subMenu=\"ngMenu\">\n * <div ngMenuItem>Sub Item 1</div>\n * <div ngMenuItem>Sub Item 2</div>\n * </div>\n * ```\n *\n * @developerPreview 21.0\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})\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 items as a writable signal.\n *\n * TODO(wagnermaciel): This would normally be a computed, but using a computed causes a bug where\n * sometimes the items array is empty. The bug can be reproduced by switching this to use a\n * computed and then quickly opening and closing menus in the dev app.\n */\n private readonly _itemPatterns = () => this._items().map(i => i._pattern);\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 onSelect = 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 onSelect: (value: V) => this.onSelect.emit(value),\n });\n\n afterRenderEffect(() => {\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.hasBeenFocused(),\n );\n }\n });\n\n // TODO(wagnermaciel): This is a redundancy needed for if the user uses display: none to hide\n // submenus. In those cases, the ui pattern is calling focus() before the ui has a chance to\n // update the display property. The result is focus() being called on an element that is not\n // focusable. This simply retries focusing the element after render.\n afterRenderEffect(() => {\n if (this._pattern.visible()) {\n const activeItem = untracked(() => this._pattern.inputs.activeItem());\n this._pattern.listBehavior.goto(activeItem!);\n }\n });\n\n afterRenderEffect(() => {\n if (!this._pattern.hasBeenFocused() && this._items().length) {\n untracked(() => this._pattern.setDefaultState());\n }\n });\n }\n\n /** Closes the menu. */\n close() {\n this._pattern.close();\n }\n}\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@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})\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 values = 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 = signal<MenuItemPattern<V>[]>([]);\n\n /** A callback function triggered when a menu item is selected. */\n onSelect = 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 onSelect: (value: V) => this.onSelect.emit(value),\n activeItem: signal(undefined),\n element: computed(() => this._elementRef.nativeElement),\n });\n\n afterRenderEffect(() => {\n this._itemPatterns.set(this._items().map(i => i._pattern));\n });\n\n afterRenderEffect(() => {\n if (!this._pattern.hasBeenFocused()) {\n this._pattern.setDefaultState();\n }\n });\n }\n\n /** Closes the menubar. */\n close() {\n this._pattern.close();\n }\n}\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 ngMenuItem (onSelect)=\"doAction()\">Action Item</div>\n *\n * <div ngMenuItem [submenu]=\"anotherMenu\">Submenu Trigger</div>\n * ```\n *\n * @developerPreview 21.0\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> {\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 // TODO(wagnermaciel): Discuss whether all inputs should be models.\n\n /** The search term associated with the menu item. */\n readonly searchTerm = model<string>('');\n\n /** A reference to the parent menu. */\n private readonly _menu = inject<Menu<V>>(Menu, {optional: true});\n\n /** A reference to the parent menu bar. */\n private readonly _menuBar = inject<MenuBar<V>>(MenuBar, {optional: true});\n\n /** A reference to the parent menu or menubar. */\n readonly parent = this._menu ?? this._menuBar;\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/**\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@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","_deferredContentAware","DeferredContentAware","optional","_allItems","contentChildren","MenuItem","descendants","_items","filter","i","ngDevMode","debugName","id","_IdGenerator","getId","wrap","typeaheadDelay","signal","_itemPatterns","map","visible","tabIndex","onSelect","output","expansionDelay","MenuPattern","items","multi","focusMode","orientation","selectionMode","activeItem","value","emit","afterRenderEffect","MenuBar","contentVisible","hasBeenFocused","untracked","listBehavior","goto","length","setDefaultState","ɵdir","ɵɵngDeclareDirective","minVersion","version","type","hostDirectives","directive","i1","values","model","MenuBarPattern","required","searchTerm","_menu","_menuBar","submenu","active","MenuItemPattern","outputs","attributes","MenuContent","DeferredContent"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"menu.mjs","sources":["../../../../../k8-fastbuild-ST-199a4f3c4e20/bin/src/aria/menu/menu.ts"],"sourcesContent":["/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {\n afterRenderEffect,\n booleanAttribute,\n computed,\n contentChildren,\n Directive,\n effect,\n ElementRef,\n inject,\n input,\n model,\n output,\n Signal,\n signal,\n untracked,\n} from '@angular/core';\nimport {\n SignalLike,\n MenuBarPattern,\n MenuItemPattern,\n MenuPattern,\n MenuTriggerPattern,\n DeferredContent,\n DeferredContentAware,\n} from '@angular/aria/private';\nimport {_IdGenerator} from '@angular/cdk/a11y';\nimport {Directionality} from '@angular/cdk/bidi';\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@Directive({\n selector: 'button[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 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 _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/**\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>Star</div>\n * <div ngMenuItem>Edit</div>\n * <div ngMenuItem [submenu]=\"subMenu\">More</div>\n * </div>\n *\n * <div ngMenu #subMenu=\"ngMenu\">\n * <div ngMenuItem>Sub Item 1</div>\n * <div ngMenuItem>Sub Item 2</div>\n * </div>\n * ```\n *\n * @developerPreview 21.0\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})\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 items as a writable signal.\n *\n * TODO(wagnermaciel): This would normally be a computed, but using a computed causes a bug where\n * sometimes the items array is empty. The bug can be reproduced by switching this to use a\n * computed and then quickly opening and closing menus in the dev app.\n */\n private readonly _itemPatterns = () => this._items().map(i => i._pattern);\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 onSelect = 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 onSelect: (value: V) => this.onSelect.emit(value),\n });\n\n afterRenderEffect(() => {\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.hasBeenFocused(),\n );\n }\n });\n\n // TODO(wagnermaciel): This is a redundancy needed for if the user uses display: none to hide\n // submenus. In those cases, the ui pattern is calling focus() before the ui has a chance to\n // update the display property. The result is focus() being called on an element that is not\n // focusable. This simply retries focusing the element after render.\n afterRenderEffect(() => {\n if (this._pattern.visible()) {\n const activeItem = untracked(() => this._pattern.inputs.activeItem());\n this._pattern.listBehavior.goto(activeItem!);\n }\n });\n\n afterRenderEffect(() => {\n if (\n !this._pattern.hasBeenFocused() &&\n !this._pattern.hasBeenHovered() &&\n this._items().length\n ) {\n untracked(() => this._pattern.setDefaultState());\n }\n });\n }\n\n /** Closes the menu. */\n close() {\n this._pattern.close();\n }\n}\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@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})\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 values = 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 = signal<MenuItemPattern<V>[]>([]);\n\n /** A callback function triggered when a menu item is selected. */\n onSelect = 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 onSelect: (value: V) => this.onSelect.emit(value),\n activeItem: signal(undefined),\n element: computed(() => this._elementRef.nativeElement),\n });\n\n afterRenderEffect(() => {\n this._itemPatterns.set(this._items().map(i => i._pattern));\n });\n\n afterRenderEffect(() => {\n if (!this._pattern.hasBeenFocused()) {\n this._pattern.setDefaultState();\n }\n });\n }\n\n /** Closes the menubar. */\n close() {\n this._pattern.close();\n }\n}\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 ngMenuItem (onSelect)=\"doAction()\">Action Item</div>\n *\n * <div ngMenuItem [submenu]=\"anotherMenu\">Submenu Trigger</div>\n * ```\n *\n * @developerPreview 21.0\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> {\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 // TODO(wagnermaciel): Discuss whether all inputs should be models.\n\n /** The search term associated with the menu item. */\n readonly searchTerm = model<string>('');\n\n /** A reference to the parent menu. */\n private readonly _menu = inject<Menu<V>>(Menu, {optional: true});\n\n /** A reference to the parent menu bar. */\n private readonly _menuBar = inject<MenuBar<V>>(MenuBar, {optional: true});\n\n /** A reference to the parent menu or menubar. */\n readonly parent = this._menu ?? this._menuBar;\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/**\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@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","_deferredContentAware","DeferredContentAware","optional","_allItems","contentChildren","MenuItem","descendants","_items","filter","i","ngDevMode","debugName","id","_IdGenerator","getId","wrap","typeaheadDelay","signal","_itemPatterns","map","visible","tabIndex","onSelect","output","expansionDelay","MenuPattern","items","multi","focusMode","orientation","selectionMode","activeItem","value","emit","afterRenderEffect","MenuBar","contentVisible","hasBeenFocused","untracked","listBehavior","goto","hasBeenHovered","length","setDefaultState","ɵdir","ɵɵngDeclareDirective","minVersion","version","type","hostDirectives","directive","i1","ctorParameters","propDecorators","ContentChildren","forwardRef","Input","alias","required","Output","values","model","MenuBarPattern","searchTerm","_menu","_menuBar","submenu","active","MenuItemPattern","outputs","attributes","MenuContent","DeferredContent"],"mappings":";;;;;;;MAsEaA,WAAW,CAAA;AAELC,EAAAA,WAAW,GAAGC,MAAM,CAACC,UAAU,CAAC;AAGxCC,EAAAA,OAAO,GAAG,IAAI,CAACH,WAAW,CAACI,aAA4B;AAGvDC,EAAAA,aAAa,GAAGJ,MAAM,CAACK,cAAc,CAAC,CAACC,WAAW;EAG3DC,IAAI,GAAGC,KAAK,CAAsBC,SAAS;;WAAC;AAGnCC,EAAAA,QAAQ,GAAGC,QAAQ,CAAC,MAAM,IAAI,CAACC,QAAQ,CAACF,QAAQ,EAAE;;WAAC;AAGnDG,EAAAA,QAAQ,GAAGF,QAAQ,CAAC,MAAM,IAAI,CAACC,QAAQ,CAACC,QAAQ,EAAE;;WAAC;EAGnDC,QAAQ,GAAGN,KAAK,CAAC,KAAK;;AAAGO,IAAAA,SAAS,EAAEC;GAAgB,CAAA,GAAA,CAA5B;AAACD,IAAAA,SAAS,EAAEC;GAAiB,GAAC;EAGtDC,YAAY,GAAGT,KAAK,CAAC,IAAI;;AAAGO,IAAAA,SAAS,EAAEC;GAAgB,CAAA,GAAA,CAA5B;AAACD,IAAAA,SAAS,EAAEC;GAAiB,GAAC;EAGlEJ,QAAQ,GAA0B,IAAIM,kBAAkB,CAAC;IACvDd,aAAa,EAAE,IAAI,CAACA,aAAa;IACjCF,OAAO,EAAES,QAAQ,CAAC,MAAM,IAAI,CAACZ,WAAW,CAACI,aAAa,CAAC;IACvDI,IAAI,EAAEI,QAAQ,CAAC,MAAM,IAAI,CAACJ,IAAI,EAAE,EAAEK,QAAQ,CAAC;AAC3CE,IAAAA,QAAQ,EAAEA,MAAM,IAAI,CAACA,QAAQ;AAC9B,GAAA,CAAC;AAEFK,EAAAA,WAAAA,GAAA;AACEC,IAAAA,MAAM,CAAC,MAAM,IAAI,CAACb,IAAI,EAAE,EAAEc,MAAM,CAACC,GAAG,CAAC,IAAI,CAAC,CAAC;AAC7C;AAGAC,EAAAA,IAAIA,GAAA;AACF,IAAA,IAAI,CAACX,QAAQ,CAACW,IAAI,CAAC;AAACC,MAAAA,KAAK,EAAE;AAAK,KAAA,CAAC;AACnC;AAGAC,EAAAA,KAAKA,GAAA;AACH,IAAA,IAAI,CAACb,QAAQ,CAACa,KAAK,EAAE;AACvB;;;;;UA7CW3B,WAAW;AAAA4B,IAAAA,IAAA,EAAA,EAAA;AAAAC,IAAAA,MAAA,EAAAC,EAAA,CAAAC,eAAA,CAAAC;AAAA,GAAA,CAAA;;;;UAAXhC,WAAW;AAAAiC,IAAAA,YAAA,EAAA,IAAA;AAAAC,IAAAA,QAAA,EAAA,uBAAA;AAAAC,IAAAA,MAAA,EAAA;AAAA1B,MAAAA,IAAA,EAAA;AAAA2B,QAAAA,iBAAA,EAAA,MAAA;AAAAC,QAAAA,UAAA,EAAA,MAAA;AAAAC,QAAAA,QAAA,EAAA,IAAA;AAAAC,QAAAA,UAAA,EAAA,KAAA;AAAAC,QAAAA,iBAAA,EAAA;OAAA;AAAAxB,MAAAA,QAAA,EAAA;AAAAoB,QAAAA,iBAAA,EAAA,UAAA;AAAAC,QAAAA,UAAA,EAAA,UAAA;AAAAC,QAAAA,QAAA,EAAA,IAAA;AAAAC,QAAAA,UAAA,EAAA,KAAA;AAAAC,QAAAA,iBAAA,EAAA;OAAA;AAAArB,MAAAA,YAAA,EAAA;AAAAiB,QAAAA,iBAAA,EAAA,cAAA;AAAAC,QAAAA,UAAA,EAAA,cAAA;AAAAC,QAAAA,QAAA,EAAA,IAAA;AAAAC,QAAAA,UAAA,EAAA,KAAA;AAAAC,QAAAA,iBAAA,EAAA;AAAA;KAAA;AAAAC,IAAAA,IAAA,EAAA;AAAAC,MAAAA,SAAA,EAAA;AAAA,QAAA,OAAA,EAAA,oBAAA;AAAA,QAAA,SAAA,EAAA,4BAAA;AAAA,QAAA,UAAA,EAAA,6BAAA;AAAA,QAAA,SAAA,EAAA;OAAA;AAAAC,MAAAA,UAAA,EAAA;AAAA,QAAA,eAAA,EAAA,qBAAA;AAAA,QAAA,eAAA,EAAA,sDAAA;AAAA,QAAA,oBAAA,EAAA,qBAAA;AAAA,QAAA,oBAAA,EAAA,YAAA;AAAA,QAAA,oBAAA,EAAA,YAAA;AAAA,QAAA,oBAAA,EAAA;AAAA;KAAA;IAAAC,QAAA,EAAA,CAAA,eAAA,CAAA;AAAAC,IAAAA,QAAA,EAAAf;AAAA,GAAA,CAAA;;;;;;QAAX9B,WAAW;AAAA8C,EAAAA,UAAA,EAAA,CAAA;UAhBvBd,SAAS;AAACe,IAAAA,IAAA,EAAA,CAAA;AACTb,MAAAA,QAAQ,EAAE,uBAAuB;AACjCU,MAAAA,QAAQ,EAAE,eAAe;AACzBH,MAAAA,IAAI,EAAE;AACJ,QAAA,iBAAiB,EAAE,qBAAqB;AACxC,QAAA,iBAAiB,EAAE,sDAAsD;AACzE,QAAA,sBAAsB,EAAE,qBAAqB;AAC7C,QAAA,sBAAsB,EAAE,YAAY;AACpC,QAAA,sBAAsB,EAAE,YAAY;AACpC,QAAA,sBAAsB,EAAE,uBAAuB;AAC/C,QAAA,SAAS,EAAE,oBAAoB;AAC/B,QAAA,WAAW,EAAE,4BAA4B;AACzC,QAAA,YAAY,EAAE,6BAA6B;AAC3C,QAAA,WAAW,EAAE;AACd;KACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAgGYO,IAAI,CAAA;AAEEC,EAAAA,qBAAqB,GAAG/C,MAAM,CAACgD,oBAAoB,EAAE;AAACC,IAAAA,QAAQ,EAAE;AAAK,GAAA,CAAC;EAG9EC,SAAS,GAAGC,eAAe,CAAcC,QAAQ;;AAAGC,IAAAA,WAAW,EAAE;GAAI,CAAA,GAAA,CAAlB;AAACA,IAAAA,WAAW,EAAE;GAAK,GAAC;EAGvEC,MAAM,GAA0B3C,QAAQ,CAAC,MAChD,IAAI,CAACuC,SAAS,EAAE,CAACK,MAAM,CAACC,CAAC,IAAIA,CAAC,CAACnC,MAAM,KAAK,IAAI,CAAC,EAAA,IAAAoC,SAAA,GAAA,CAAA;AAAAC,IAAAA,SAAA,EAAA;AAAA,GAAA,CAAA,GAAA,EAAA,CAAA,CAChD;AAGgB3D,EAAAA,WAAW,GAAGC,MAAM,CAACC,UAAU,CAAC;AAGxCC,EAAAA,OAAO,GAAG,IAAI,CAACH,WAAW,CAACI,aAA4B;AAGvDC,EAAAA,aAAa,GAAGJ,MAAM,CAACK,cAAc,CAAC,CAACC,WAAW;AAGlDqD,EAAAA,EAAE,GAAGnD,KAAK,CAACR,MAAM,CAAC4D,YAAY,CAAC,CAACC,KAAK,CAAC,UAAU,EAAE,IAAI,CAAC;;WAAC;EAGxDC,IAAI,GAAGtD,KAAK,CAAC,IAAI;;AAAGO,IAAAA,SAAS,EAAEC;GAAgB,CAAA,GAAA,CAA5B;AAACD,IAAAA,SAAS,EAAEC;GAAiB,GAAC;EAGjD+C,cAAc,GAAGvD,KAAK,CAAS,GAAG,EAAC,IAAAiD,SAAA,GAAA,CAAA;AAAAC,IAAAA,SAAA,EAAA;AAAA,GAAA,CAAA,GAAA,EAAA,CAAA,CAAA;EAGnC5C,QAAQ,GAAGN,KAAK,CAAC,KAAK;;AAAGO,IAAAA,SAAS,EAAEC;GAAgB,CAAA,GAAA,CAA5B;AAACD,IAAAA,SAAS,EAAEC;GAAiB,GAAC;EAGtDK,MAAM,GAAG2C,MAAM,CAA2CvD,SAAS;;WAAC;EAGpEG,QAAQ;AASAqD,EAAAA,aAAa,GAAGA,MAAM,IAAI,CAACX,MAAM,EAAE,CAACY,GAAG,CAACV,CAAC,IAAIA,CAAC,CAAC5C,QAAQ,CAAC;AAGhEuD,EAAAA,OAAO,GAAGxD,QAAQ,CAAC,MAAM,IAAI,CAACC,QAAQ,CAACuD,OAAO,EAAE;;WAAC;AAGjDC,EAAAA,QAAQ,GAAGzD,QAAQ,CAAC,MAAM,IAAI,CAACC,QAAQ,CAACwD,QAAQ,EAAE;;WAAC;EAG5DC,QAAQ,GAAGC,MAAM,EAAK;EAGbC,cAAc,GAAG/D,KAAK,CAAS,GAAG,EAAC,IAAAiD,SAAA,GAAA,CAAA;AAAAC,IAAAA,SAAA,EAAA;AAAA,GAAA,CAAA,GAAA,EAAA,CAAA,CAAA;AAE5CvC,EAAAA,WAAAA,GAAA;AACE,IAAA,IAAI,CAACP,QAAQ,GAAG,IAAI4D,WAAW,CAAC;AAC9B,MAAA,GAAG,IAAI;MACPnD,MAAM,EAAEV,QAAQ,CAAC,MAAM,IAAI,CAACU,MAAM,EAAE,EAAET,QAAQ,CAAC;MAC/C6D,KAAK,EAAE,IAAI,CAACR,aAAa;MACzBS,KAAK,EAAEA,MAAM,KAAK;MAClBzD,YAAY,EAAEA,MAAM,IAAI;MACxB0D,SAAS,EAAEA,MAAM,QAAQ;MACzBC,WAAW,EAAEA,MAAM,UAAU;MAC7BC,aAAa,EAAEA,MAAM,UAAU;AAC/BC,MAAAA,UAAU,EAAEd,MAAM,CAACvD,SAAS,CAAC;MAC7BP,OAAO,EAAES,QAAQ,CAAC,MAAM,IAAI,CAACZ,WAAW,CAACI,aAAa,CAAC;MACvDkE,QAAQ,EAAGU,KAAQ,IAAK,IAAI,CAACV,QAAQ,CAACW,IAAI,CAACD,KAAK;AACjD,KAAA,CAAC;AAEFE,IAAAA,iBAAiB,CAAC,MAAK;AACrB,MAAA,MAAM5D,MAAM,GAAG,IAAI,CAACA,MAAM,EAAE;MAC5B,IAAIA,MAAM,YAAY+B,QAAQ,IAAI/B,MAAM,CAACA,MAAM,YAAY6D,OAAO,EAAE;QAClE,IAAI,CAACnC,qBAAqB,EAAEoC,cAAc,CAAC7D,GAAG,CAAC,IAAI,CAAC;AACtD,OAAA,MAAO;AACL,QAAA,IAAI,CAACyB,qBAAqB,EAAEoC,cAAc,CAAC7D,GAAG,CAC5C,IAAI,CAACV,QAAQ,CAACuD,OAAO,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC9C,MAAM,EAAE,EAAET,QAAQ,CAACwE,cAAc,EAAE,CACtE;AACH;AACF,KAAC,CAAC;AAMFH,IAAAA,iBAAiB,CAAC,MAAK;AACrB,MAAA,IAAI,IAAI,CAACrE,QAAQ,CAACuD,OAAO,EAAE,EAAE;AAC3B,QAAA,MAAMW,UAAU,GAAGO,SAAS,CAAC,MAAM,IAAI,CAACzE,QAAQ,CAACqB,MAAM,CAAC6C,UAAU,EAAE,CAAC;QACrE,IAAI,CAAClE,QAAQ,CAAC0E,YAAY,CAACC,IAAI,CAACT,UAAW,CAAC;AAC9C;AACF,KAAC,CAAC;AAEFG,IAAAA,iBAAiB,CAAC,MAAK;MACrB,IACE,CAAC,IAAI,CAACrE,QAAQ,CAACwE,cAAc,EAAE,IAC/B,CAAC,IAAI,CAACxE,QAAQ,CAAC4E,cAAc,EAAE,IAC/B,IAAI,CAAClC,MAAM,EAAE,CAACmC,MAAM,EACpB;QACAJ,SAAS,CAAC,MAAM,IAAI,CAACzE,QAAQ,CAAC8E,eAAe,EAAE,CAAC;AAClD;AACF,KAAC,CAAC;AACJ;AAGAjE,EAAAA,KAAKA,GAAA;AACH,IAAA,IAAI,CAACb,QAAQ,CAACa,KAAK,EAAE;AACvB;;;;;UA/GWqB,IAAI;AAAApB,IAAAA,IAAA,EAAA,EAAA;AAAAC,IAAAA,MAAA,EAAAC,EAAA,CAAAC,eAAA,CAAAC;AAAA,GAAA,CAAA;AAAJ,EAAA,OAAA6D,IAAA,GAAA/D,EAAA,CAAAgE,oBAAA,CAAA;AAAAC,IAAAA,UAAA,EAAA,QAAA;AAAAC,IAAAA,OAAA,EAAA,QAAA;AAAAC,IAAAA,IAAA,EAAAjD,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAKmCM,QAAQ;AAAAC,MAAAA,WAAA,EAAA,IAAA;AAAAjB,MAAAA,QAAA,EAAA;AAAA,KAAA,CAAA;IAAAM,QAAA,EAAA,CAAA,QAAA,CAAA;AAAAsD,IAAAA,cAAA,EAAA,CAAA;MAAAC,SAAA,EAAAC,EAAA,CAAAlD,oBAAA;AAAAf,MAAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,iBAAA;AAAA,KAAA,CAAA;AAAAU,IAAAA,QAAA,EAAAf;AAAA,GAAA,CAAA;;;;;;QAL/CkB,IAAI;AAAAF,EAAAA,UAAA,EAAA,CAAA;UAvBhBd,SAAS;AAACe,IAAAA,IAAA,EAAA,CAAA;AACTb,MAAAA,QAAQ,EAAE,UAAU;AACpBU,MAAAA,QAAQ,EAAE,QAAQ;AAClBH,MAAAA,IAAI,EAAE;AACJ,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,WAAW,EAAE,eAAe;AAC5B,QAAA,sBAAsB,EAAE,qBAAqB;AAC7C,QAAA,iBAAiB,EAAE,YAAY;AAC/B,QAAA,qBAAqB,EAAE,WAAW;AAClC,QAAA,WAAW,EAAE,4BAA4B;AACzC,QAAA,aAAa,EAAE,8BAA8B;AAC7C,QAAA,YAAY,EAAE,6BAA6B;AAC3C,QAAA,YAAY,EAAE,6BAA6B;AAC3C,QAAA,WAAW,EAAE,sBAAsB;AACnC,QAAA,SAAS,EAAE;OACZ;AACDyD,MAAAA,cAAc,EAAE,CACd;AACEC,QAAAA,SAAS,EAAEjD,oBAAoB;QAC/Bf,MAAM,EAAE,CAAC,iBAAiB;OAC3B;KAEJ;AAMmD,GAAA,CAAA;EAAAkE,cAAA,EAAAA,MAAA,EAAA;AAAAC,EAAAA,cAAA,EAAA;AAAAlD,IAAAA,SAAA,EAAA,CAAA;MAAA6C,IAAA,EAAAnE,EAAA,CAAAyE,eAAA;MAAAxD,IAAA,EAAA,CAAAjB,EAAA,CAAA0E,UAAA,CAAA,MAAAlD,QAAQ,CAAE,EAAA;QAAA,GAAA;AAACC,UAAAA,WAAW,EAAE;SAAK;AAAAjB,QAAAA,QAAA,EAAA;OAAA;AAAA,KAAA,CAAA;AAAAuB,IAAAA,EAAA,EAAA,CAAA;MAAAoC,IAAA,EAAAnE,EAAA,CAAA2E,KAAA;AAAA1D,MAAAA,IAAA,EAAA,CAAA;AAAAT,QAAAA,QAAA,EAAA,IAAA;AAAAoE,QAAAA,KAAA,EAAA,IAAA;AAAAC,QAAAA,QAAA,EAAA;OAAA;AAAA,KAAA,CAAA;AAAA3C,IAAAA,IAAA,EAAA,CAAA;MAAAiC,IAAA,EAAAnE,EAAA,CAAA2E,KAAA;AAAA1D,MAAAA,IAAA,EAAA,CAAA;AAAAT,QAAAA,QAAA,EAAA,IAAA;AAAAoE,QAAAA,KAAA,EAAA,MAAA;AAAAC,QAAAA,QAAA,EAAA;OAAA;AAAA,KAAA,CAAA;AAAA1C,IAAAA,cAAA,EAAA,CAAA;MAAAgC,IAAA,EAAAnE,EAAA,CAAA2E,KAAA;AAAA1D,MAAAA,IAAA,EAAA,CAAA;AAAAT,QAAAA,QAAA,EAAA,IAAA;AAAAoE,QAAAA,KAAA,EAAA,gBAAA;AAAAC,QAAAA,QAAA,EAAA;OAAA;AAAA,KAAA,CAAA;AAAA3F,IAAAA,QAAA,EAAA,CAAA;MAAAiF,IAAA,EAAAnE,EAAA,CAAA2E,KAAA;AAAA1D,MAAAA,IAAA,EAAA,CAAA;AAAAT,QAAAA,QAAA,EAAA,IAAA;AAAAoE,QAAAA,KAAA,EAAA,UAAA;AAAAC,QAAAA,QAAA,EAAA;OAAA;AAAA,KAAA,CAAA;AAAApC,IAAAA,QAAA,EAAA,CAAA;MAAA0B,IAAA,EAAAnE,EAAA,CAAA8E,MAAA;MAAA7D,IAAA,EAAA,CAAA,UAAA;AAAA,KAAA,CAAA;AAAA0B,IAAAA,cAAA,EAAA,CAAA;MAAAwB,IAAA,EAAAnE,EAAA,CAAA2E,KAAA;AAAA1D,MAAAA,IAAA,EAAA,CAAA;AAAAT,QAAAA,QAAA,EAAA,IAAA;AAAAoE,QAAAA,KAAA,EAAA,gBAAA;AAAAC,QAAAA,QAAA,EAAA;OAAA;KAAA;AAAA;AAAA,CAAA,CAAA;MAsJpEvB,OAAO,CAAA;EAEThC,SAAS,GAAGC,eAAe,CAAcC,QAAQ;;AAAGC,IAAAA,WAAW,EAAE;GAAI,CAAA,GAAA,CAAlB;AAACA,IAAAA,WAAW,EAAE;GAAK,GAAC;AAEvEC,EAAAA,MAAM,GAA8BA,MAC3C,IAAI,CAACJ,SAAS,EAAE,CAACK,MAAM,CAACC,CAAC,IAAIA,CAAC,CAACnC,MAAM,KAAK,IAAI,CAAC;AAGhCtB,EAAAA,WAAW,GAAGC,MAAM,CAACC,UAAU,CAAC;AAGxCC,EAAAA,OAAO,GAAG,IAAI,CAACH,WAAW,CAACI,aAA4B;EAGvDW,QAAQ,GAAGN,KAAK,CAAC,KAAK;;AAAGO,IAAAA,SAAS,EAAEC;GAAgB,CAAA,GAAA,CAA5B;AAACD,IAAAA,SAAS,EAAEC;GAAiB,GAAC;EAGtDC,YAAY,GAAGT,KAAK,CAAC,IAAI;;AAAGO,IAAAA,SAAS,EAAEC;GAAgB,CAAA,GAAA,CAA5B;AAACD,IAAAA,SAAS,EAAEC;GAAiB,GAAC;AAGzDZ,EAAAA,aAAa,GAAGJ,MAAM,CAACK,cAAc,CAAC,CAACC,WAAW;EAGlDqG,MAAM,GAAGC,KAAK,CAAM,EAAE;;WAAC;EAGvB9C,IAAI,GAAGtD,KAAK,CAAC,IAAI;;AAAGO,IAAAA,SAAS,EAAEC;GAAgB,CAAA,GAAA,CAA5B;AAACD,IAAAA,SAAS,EAAEC;GAAiB,GAAC;EAGjD+C,cAAc,GAAGvD,KAAK,CAAS,GAAG;;WAAC;EAGnCI,QAAQ;EAGAqD,aAAa,GAAGD,MAAM,CAAuB,EAAE;;WAAC;EAGjEK,QAAQ,GAAGC,MAAM,EAAK;AAEtBnD,EAAAA,WAAAA,GAAA;AACE,IAAA,IAAI,CAACP,QAAQ,GAAG,IAAIiG,cAAc,CAAC;AACjC,MAAA,GAAG,IAAI;MACPpC,KAAK,EAAE,IAAI,CAACR,aAAa;MACzBS,KAAK,EAAEA,MAAM,KAAK;MAClBzD,YAAY,EAAEA,MAAM,IAAI;MACxB0D,SAAS,EAAEA,MAAM,QAAQ;MACzBC,WAAW,EAAEA,MAAM,YAAY;MAC/BC,aAAa,EAAEA,MAAM,UAAU;MAC/BR,QAAQ,EAAGU,KAAQ,IAAK,IAAI,CAACV,QAAQ,CAACW,IAAI,CAACD,KAAK,CAAC;AACjDD,MAAAA,UAAU,EAAEd,MAAM,CAACvD,SAAS,CAAC;MAC7BP,OAAO,EAAES,QAAQ,CAAC,MAAM,IAAI,CAACZ,WAAW,CAACI,aAAa;AACvD,KAAA,CAAC;AAEF8E,IAAAA,iBAAiB,CAAC,MAAK;AACrB,MAAA,IAAI,CAAChB,aAAa,CAAC3C,GAAG,CAAC,IAAI,CAACgC,MAAM,EAAE,CAACY,GAAG,CAACV,CAAC,IAAIA,CAAC,CAAC5C,QAAQ,CAAC,CAAC;AAC5D,KAAC,CAAC;AAEFqE,IAAAA,iBAAiB,CAAC,MAAK;MACrB,IAAI,CAAC,IAAI,CAACrE,QAAQ,CAACwE,cAAc,EAAE,EAAE;AACnC,QAAA,IAAI,CAACxE,QAAQ,CAAC8E,eAAe,EAAE;AACjC;AACF,KAAC,CAAC;AACJ;AAGAjE,EAAAA,KAAKA,GAAA;AACH,IAAA,IAAI,CAACb,QAAQ,CAACa,KAAK,EAAE;AACvB;;;;;UApEWyD,OAAO;AAAAxD,IAAAA,IAAA,EAAA,EAAA;AAAAC,IAAAA,MAAA,EAAAC,EAAA,CAAAC,eAAA,CAAAC;AAAA,GAAA,CAAA;AAAP,EAAA,OAAA6D,IAAA,GAAA/D,EAAA,CAAAgE,oBAAA,CAAA;AAAAC,IAAAA,UAAA,EAAA,QAAA;AAAAC,IAAAA,OAAA,EAAA,QAAA;AAAAC,IAAAA,IAAA,EAAAb,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAEgC9B,QAAQ;AAAAC,MAAAA,WAAA,EAAA,IAAA;AAAAjB,MAAAA,QAAA,EAAA;AAAA,KAAA,CAAA;IAAAM,QAAA,EAAA,CAAA,WAAA,CAAA;AAAAC,IAAAA,QAAA,EAAAf;AAAA,GAAA,CAAA;;;;;;QAF/CsD,OAAO;AAAAtC,EAAAA,UAAA,EAAA,CAAA;UAfnBd,SAAS;AAACe,IAAAA,IAAA,EAAA,CAAA;AACTb,MAAAA,QAAQ,EAAE,aAAa;AACvBU,MAAAA,QAAQ,EAAE,WAAW;AACrBH,MAAAA,IAAI,EAAE;AACJ,QAAA,MAAM,EAAE,SAAS;AACjB,QAAA,iBAAiB,EAAE,sDAAsD;AACzE,QAAA,sBAAsB,EAAE,qBAAqB;AAC7C,QAAA,iBAAiB,EAAE,qBAAqB;AACxC,QAAA,WAAW,EAAE,4BAA4B;AACzC,QAAA,aAAa,EAAE,8BAA8B;AAC7C,QAAA,SAAS,EAAE,0BAA0B;AACrC,QAAA,WAAW,EAAE,sBAAsB;AACnC,QAAA,YAAY,EAAE;AACf;KACF;AAGmD,GAAA,CAAA;EAAA4D,cAAA,EAAAA,MAAA,EAAA;AAAAC,EAAAA,cAAA,EAAA;AAAAlD,IAAAA,SAAA,EAAA,CAAA;MAAA6C,IAAA,EAAAnE,EAAA,CAAAyE,eAAA;MAAAxD,IAAA,EAAA,CAAAjB,EAAA,CAAA0E,UAAA,CAAA,MAAAlD,QAAQ,CAAE,EAAA;QAAA,GAAA;AAACC,UAAAA,WAAW,EAAE;SAAK;AAAAjB,QAAAA,QAAA,EAAA;OAAA;AAAA,KAAA,CAAA;AAAAtB,IAAAA,QAAA,EAAA,CAAA;MAAAiF,IAAA,EAAAnE,EAAA,CAAA2E,KAAA;AAAA1D,MAAAA,IAAA,EAAA,CAAA;AAAAT,QAAAA,QAAA,EAAA,IAAA;AAAAoE,QAAAA,KAAA,EAAA,UAAA;AAAAC,QAAAA,QAAA,EAAA;OAAA;AAAA,KAAA,CAAA;AAAAxF,IAAAA,YAAA,EAAA,CAAA;MAAA8E,IAAA,EAAAnE,EAAA,CAAA2E,KAAA;AAAA1D,MAAAA,IAAA,EAAA,CAAA;AAAAT,QAAAA,QAAA,EAAA,IAAA;AAAAoE,QAAAA,KAAA,EAAA,cAAA;AAAAC,QAAAA,QAAA,EAAA;OAAA;AAAA,KAAA,CAAA;AAAAE,IAAAA,MAAA,EAAA,CAAA;MAAAZ,IAAA,EAAAnE,EAAA,CAAA2E,KAAA;AAAA1D,MAAAA,IAAA,EAAA,CAAA;AAAAT,QAAAA,QAAA,EAAA,IAAA;AAAAoE,QAAAA,KAAA,EAAA,QAAA;AAAAC,QAAAA,QAAA,EAAA;OAAA;AAAA,KAAA,EAAA;MAAAV,IAAA,EAAAnE,EAAA,CAAA8E,MAAA;MAAA7D,IAAA,EAAA,CAAA,cAAA;AAAA,KAAA,CAAA;AAAAiB,IAAAA,IAAA,EAAA,CAAA;MAAAiC,IAAA,EAAAnE,EAAA,CAAA2E,KAAA;AAAA1D,MAAAA,IAAA,EAAA,CAAA;AAAAT,QAAAA,QAAA,EAAA,IAAA;AAAAoE,QAAAA,KAAA,EAAA,MAAA;AAAAC,QAAAA,QAAA,EAAA;OAAA;AAAA,KAAA,CAAA;AAAA1C,IAAAA,cAAA,EAAA,CAAA;MAAAgC,IAAA,EAAAnE,EAAA,CAAA2E,KAAA;AAAA1D,MAAAA,IAAA,EAAA,CAAA;AAAAT,QAAAA,QAAA,EAAA,IAAA;AAAAoE,QAAAA,KAAA,EAAA,gBAAA;AAAAC,QAAAA,QAAA,EAAA;OAAA;AAAA,KAAA,CAAA;AAAApC,IAAAA,QAAA,EAAA,CAAA;MAAA0B,IAAA,EAAAnE,EAAA,CAAA8E,MAAA;MAAA7D,IAAA,EAAA,CAAA,UAAA;KAAA;AAAA;AAAA,CAAA,CAAA;MAiGpEO,QAAQ,CAAA;AAEFrD,EAAAA,WAAW,GAAGC,MAAM,CAACC,UAAU,CAAC;AAGxCC,EAAAA,OAAO,GAAG,IAAI,CAACH,WAAW,CAACI,aAA4B;AAGvDwD,EAAAA,EAAE,GAAGnD,KAAK,CAACR,MAAM,CAAC4D,YAAY,CAAC,CAACC,KAAK,CAAC,eAAe,EAAE,IAAI,CAAC;;WAAC;EAG7DkB,KAAK,GAAGvE,KAAK,CAACiG,QAAQ;;WAAK;EAG3B3F,QAAQ,GAAGN,KAAK,CAAU,KAAK;;WAAC;EAKhCsG,UAAU,GAAGF,KAAK,CAAS,EAAE;;WAAC;AAGtBG,EAAAA,KAAK,GAAG/G,MAAM,CAAU8C,IAAI,EAAE;AAACG,IAAAA,QAAQ,EAAE;AAAK,GAAA,CAAC;AAG/C+D,EAAAA,QAAQ,GAAGhH,MAAM,CAAakF,OAAO,EAAE;AAACjC,IAAAA,QAAQ,EAAE;AAAK,GAAA,CAAC;AAGhE5B,EAAAA,MAAM,GAAG,IAAI,CAAC0F,KAAK,IAAI,IAAI,CAACC,QAAQ;EAGpCC,OAAO,GAAGzG,KAAK,CAAsBC,SAAS;;WAAC;AAG/CyG,EAAAA,MAAM,GAAGvG,QAAQ,CAAC,MAAM,IAAI,CAACC,QAAQ,CAACsG,MAAM,EAAE;;WAAC;AAG/CxG,EAAAA,QAAQ,GAAGC,QAAQ,CAAC,MAAM,IAAI,CAACC,QAAQ,CAACF,QAAQ,EAAE;;WAAC;AAGnDG,EAAAA,QAAQ,GAAGF,QAAQ,CAAC,MAAM,IAAI,CAACC,QAAQ,CAACC,QAAQ,EAAE;;WAAC;EAGnDD,QAAQ,GAAuB,IAAIuG,eAAe,CAAI;IAC7DxD,EAAE,EAAE,IAAI,CAACA,EAAE;IACXoB,KAAK,EAAE,IAAI,CAACA,KAAK;IACjB7E,OAAO,EAAES,QAAQ,CAAC,MAAM,IAAI,CAACZ,WAAW,CAACI,aAAa,CAAC;IACvDW,QAAQ,EAAE,IAAI,CAACA,QAAQ;IACvBgG,UAAU,EAAE,IAAI,CAACA,UAAU;IAC3BzF,MAAM,EAAEV,QAAQ,CAAC,MAAM,IAAI,CAACU,MAAM,EAAET,QAAQ,CAAC;IAC7CqG,OAAO,EAAEtG,QAAQ,CAAC,MAAM,IAAI,CAACsG,OAAO,EAAE,EAAErG,QAAQ;AACjD,GAAA,CAAC;AAEFO,EAAAA,WAAAA,GAAA;AACEC,IAAAA,MAAM,CAAC,MAAM,IAAI,CAAC6F,OAAO,EAAE,EAAE5F,MAAM,CAACC,GAAG,CAAC,IAAI,CAAC,CAAC;AAChD;AAGAC,EAAAA,IAAIA,GAAA;AACF,IAAA,IAAI,CAACX,QAAQ,CAACW,IAAI,CAAC;AAACC,MAAAA,KAAK,EAAE;AAAK,KAAA,CAAC;AACnC;AAGAC,EAAAA,KAAKA,GAAA;AACH,IAAA,IAAI,CAACb,QAAQ,CAACa,KAAK,EAAE;AACvB;;;;;UAjEW2B,QAAQ;AAAA1B,IAAAA,IAAA,EAAA,EAAA;AAAAC,IAAAA,MAAA,EAAAC,EAAA,CAAAC,eAAA,CAAAC;AAAA,GAAA,CAAA;;;;UAARsB,QAAQ;AAAArB,IAAAA,YAAA,EAAA,IAAA;AAAAC,IAAAA,QAAA,EAAA,cAAA;AAAAC,IAAAA,MAAA,EAAA;AAAA0B,MAAAA,EAAA,EAAA;AAAAzB,QAAAA,iBAAA,EAAA,IAAA;AAAAC,QAAAA,UAAA,EAAA,IAAA;AAAAC,QAAAA,QAAA,EAAA,IAAA;AAAAC,QAAAA,UAAA,EAAA,KAAA;AAAAC,QAAAA,iBAAA,EAAA;OAAA;AAAAyC,MAAAA,KAAA,EAAA;AAAA7C,QAAAA,iBAAA,EAAA,OAAA;AAAAC,QAAAA,UAAA,EAAA,OAAA;AAAAC,QAAAA,QAAA,EAAA,IAAA;AAAAC,QAAAA,UAAA,EAAA,IAAA;AAAAC,QAAAA,iBAAA,EAAA;OAAA;AAAAxB,MAAAA,QAAA,EAAA;AAAAoB,QAAAA,iBAAA,EAAA,UAAA;AAAAC,QAAAA,UAAA,EAAA,UAAA;AAAAC,QAAAA,QAAA,EAAA,IAAA;AAAAC,QAAAA,UAAA,EAAA,KAAA;AAAAC,QAAAA,iBAAA,EAAA;OAAA;AAAAwE,MAAAA,UAAA,EAAA;AAAA5E,QAAAA,iBAAA,EAAA,YAAA;AAAAC,QAAAA,UAAA,EAAA,YAAA;AAAAC,QAAAA,QAAA,EAAA,IAAA;AAAAC,QAAAA,UAAA,EAAA,KAAA;AAAAC,QAAAA,iBAAA,EAAA;OAAA;AAAA2E,MAAAA,OAAA,EAAA;AAAA/E,QAAAA,iBAAA,EAAA,SAAA;AAAAC,QAAAA,UAAA,EAAA,SAAA;AAAAC,QAAAA,QAAA,EAAA,IAAA;AAAAC,QAAAA,UAAA,EAAA,KAAA;AAAAC,QAAAA,iBAAA,EAAA;AAAA;KAAA;AAAA8E,IAAAA,OAAA,EAAA;AAAAN,MAAAA,UAAA,EAAA;KAAA;AAAAvE,IAAAA,IAAA,EAAA;AAAA8E,MAAAA,UAAA,EAAA;AAAA,QAAA,MAAA,EAAA;OAAA;AAAA7E,MAAAA,SAAA,EAAA;AAAA,QAAA,SAAA,EAAA;OAAA;AAAAC,MAAAA,UAAA,EAAA;AAAA,QAAA,eAAA,EAAA,qBAAA;AAAA,QAAA,kBAAA,EAAA,UAAA;AAAA,QAAA,oBAAA,EAAA,YAAA;AAAA,QAAA,oBAAA,EAAA,YAAA;AAAA,QAAA,oBAAA,EAAA,qBAAA;AAAA,QAAA,oBAAA,EAAA;AAAA;KAAA;IAAAC,QAAA,EAAA,CAAA,YAAA,CAAA;AAAAC,IAAAA,QAAA,EAAAf;AAAA,GAAA,CAAA;;;;;;QAARwB,QAAQ;AAAAR,EAAAA,UAAA,EAAA,CAAA;UAdpBd,SAAS;AAACe,IAAAA,IAAA,EAAA,CAAA;AACTb,MAAAA,QAAQ,EAAE,cAAc;AACxBU,MAAAA,QAAQ,EAAE,YAAY;AACtBH,MAAAA,IAAI,EAAE;AACJ,QAAA,MAAM,EAAE,UAAU;AAClB,QAAA,WAAW,EAAE,sBAAsB;AACnC,QAAA,iBAAiB,EAAE,qBAAqB;AACxC,QAAA,oBAAoB,EAAE,UAAU;AAChC,QAAA,sBAAsB,EAAE,YAAY;AACpC,QAAA,sBAAsB,EAAE,YAAY;AACpC,QAAA,sBAAsB,EAAE,qBAAqB;AAC7C,QAAA,sBAAsB,EAAE;AACzB;KACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MA2FY+E,WAAW,CAAA;;;;;UAAXA,WAAW;AAAA5F,IAAAA,IAAA,EAAA,EAAA;AAAAC,IAAAA,MAAA,EAAAC,EAAA,CAAAC,eAAA,CAAAC;AAAA,GAAA,CAAA;;;;UAAXwF,WAAW;AAAAvF,IAAAA,YAAA,EAAA,IAAA;AAAAC,IAAAA,QAAA,EAAA,4BAAA;IAAAU,QAAA,EAAA,CAAA,eAAA,CAAA;AAAAsD,IAAAA,cAAA,EAAA,CAAA;MAAAC,SAAA,EAAAC,EAAA,CAAAqB;AAAA,KAAA,CAAA;AAAA5E,IAAAA,QAAA,EAAAf;AAAA,GAAA,CAAA;;;;;;QAAX0F,WAAW;AAAA1E,EAAAA,UAAA,EAAA,CAAA;UALvBd,SAAS;AAACe,IAAAA,IAAA,EAAA,CAAA;AACTb,MAAAA,QAAQ,EAAE,4BAA4B;AACtCU,MAAAA,QAAQ,EAAE,eAAe;MACzBsD,cAAc,EAAE,CAACuB,eAAe;KACjC;;;;;;"}
|
package/fesm2022/private.mjs
CHANGED
|
@@ -941,6 +941,7 @@ class MenuPattern {
|
|
|
941
941
|
listBehavior;
|
|
942
942
|
isFocused = signal(false);
|
|
943
943
|
hasBeenFocused = signal(false);
|
|
944
|
+
hasBeenHovered = signal(false);
|
|
944
945
|
_openTimeout;
|
|
945
946
|
_closeTimeout;
|
|
946
947
|
tabIndex = () => this.listBehavior.tabIndex();
|
|
@@ -1001,6 +1002,7 @@ class MenuPattern {
|
|
|
1001
1002
|
if (!this.visible()) {
|
|
1002
1003
|
return;
|
|
1003
1004
|
}
|
|
1005
|
+
this.hasBeenHovered.set(true);
|
|
1004
1006
|
const item = this.inputs.items().find(i => i.element()?.contains(event.target));
|
|
1005
1007
|
if (!item) {
|
|
1006
1008
|
return;
|
|
@@ -2215,7 +2217,7 @@ class DeferredContentAware {
|
|
|
2215
2217
|
}] : []));
|
|
2216
2218
|
static ɵfac = i0.ɵɵngDeclareFactory({
|
|
2217
2219
|
minVersion: "12.0.0",
|
|
2218
|
-
version: "
|
|
2220
|
+
version: "21.0.0",
|
|
2219
2221
|
ngImport: i0,
|
|
2220
2222
|
type: DeferredContentAware,
|
|
2221
2223
|
deps: [],
|
|
@@ -2223,7 +2225,7 @@ class DeferredContentAware {
|
|
|
2223
2225
|
});
|
|
2224
2226
|
static ɵdir = i0.ɵɵngDeclareDirective({
|
|
2225
2227
|
minVersion: "17.1.0",
|
|
2226
|
-
version: "
|
|
2228
|
+
version: "21.0.0",
|
|
2227
2229
|
type: DeferredContentAware,
|
|
2228
2230
|
isStandalone: true,
|
|
2229
2231
|
inputs: {
|
|
@@ -2243,12 +2245,25 @@ class DeferredContentAware {
|
|
|
2243
2245
|
}
|
|
2244
2246
|
i0.ɵɵngDeclareClassMetadata({
|
|
2245
2247
|
minVersion: "12.0.0",
|
|
2246
|
-
version: "
|
|
2248
|
+
version: "21.0.0",
|
|
2247
2249
|
ngImport: i0,
|
|
2248
2250
|
type: DeferredContentAware,
|
|
2249
2251
|
decorators: [{
|
|
2250
2252
|
type: Directive
|
|
2251
|
-
}]
|
|
2253
|
+
}],
|
|
2254
|
+
propDecorators: {
|
|
2255
|
+
preserveContent: [{
|
|
2256
|
+
type: i0.Input,
|
|
2257
|
+
args: [{
|
|
2258
|
+
isSignal: true,
|
|
2259
|
+
alias: "preserveContent",
|
|
2260
|
+
required: false
|
|
2261
|
+
}]
|
|
2262
|
+
}, {
|
|
2263
|
+
type: i0.Output,
|
|
2264
|
+
args: ["preserveContentChange"]
|
|
2265
|
+
}]
|
|
2266
|
+
}
|
|
2252
2267
|
});
|
|
2253
2268
|
class DeferredContent {
|
|
2254
2269
|
_deferredContentAware = inject(DeferredContentAware, {
|
|
@@ -2287,7 +2302,7 @@ class DeferredContent {
|
|
|
2287
2302
|
}
|
|
2288
2303
|
static ɵfac = i0.ɵɵngDeclareFactory({
|
|
2289
2304
|
minVersion: "12.0.0",
|
|
2290
|
-
version: "
|
|
2305
|
+
version: "21.0.0",
|
|
2291
2306
|
ngImport: i0,
|
|
2292
2307
|
type: DeferredContent,
|
|
2293
2308
|
deps: [],
|
|
@@ -2295,7 +2310,7 @@ class DeferredContent {
|
|
|
2295
2310
|
});
|
|
2296
2311
|
static ɵdir = i0.ɵɵngDeclareDirective({
|
|
2297
2312
|
minVersion: "14.0.0",
|
|
2298
|
-
version: "
|
|
2313
|
+
version: "21.0.0",
|
|
2299
2314
|
type: DeferredContent,
|
|
2300
2315
|
isStandalone: true,
|
|
2301
2316
|
ngImport: i0
|
|
@@ -2303,7 +2318,7 @@ class DeferredContent {
|
|
|
2303
2318
|
}
|
|
2304
2319
|
i0.ɵɵngDeclareClassMetadata({
|
|
2305
2320
|
minVersion: "12.0.0",
|
|
2306
|
-
version: "
|
|
2321
|
+
version: "21.0.0",
|
|
2307
2322
|
ngImport: i0,
|
|
2308
2323
|
type: DeferredContent,
|
|
2309
2324
|
decorators: [{
|