@angular/aria 22.1.4 → 22.1.5
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/_deferred-content-chunk.mjs +6 -6
- package/fesm2022/_menu-chunk.mjs +4 -2
- package/fesm2022/_menu-chunk.mjs.map +1 -1
- package/fesm2022/accordion.mjs +12 -12
- package/fesm2022/aria.mjs +1 -1
- package/fesm2022/aria.mjs.map +1 -1
- package/fesm2022/combobox.mjs +11 -10
- package/fesm2022/combobox.mjs.map +1 -1
- package/fesm2022/grid.mjs +12 -12
- package/fesm2022/listbox.mjs +6 -6
- package/fesm2022/menu.mjs +15 -15
- package/fesm2022/private.mjs +6 -1
- package/fesm2022/private.mjs.map +1 -1
- package/fesm2022/tabs.mjs +15 -15
- package/fesm2022/toolbar.mjs +9 -9
- package/fesm2022/tree.mjs +9 -9
- package/package.json +2 -2
- package/types/_menu-chunk.d.ts +4 -2
- package/types/private.d.ts +6 -0
package/fesm2022/grid.mjs
CHANGED
|
@@ -124,7 +124,7 @@ class Grid {
|
|
|
124
124
|
}
|
|
125
125
|
static ɵfac = i0.ɵɵngDeclareFactory({
|
|
126
126
|
minVersion: "12.0.0",
|
|
127
|
-
version: "22.1.
|
|
127
|
+
version: "22.1.4",
|
|
128
128
|
ngImport: i0,
|
|
129
129
|
type: Grid,
|
|
130
130
|
deps: [],
|
|
@@ -132,7 +132,7 @@ class Grid {
|
|
|
132
132
|
});
|
|
133
133
|
static ɵdir = i0.ɵɵngDeclareDirective({
|
|
134
134
|
minVersion: "17.1.0",
|
|
135
|
-
version: "22.1.
|
|
135
|
+
version: "22.1.4",
|
|
136
136
|
type: Grid,
|
|
137
137
|
isStandalone: true,
|
|
138
138
|
selector: "[ngGrid]",
|
|
@@ -228,7 +228,7 @@ class Grid {
|
|
|
228
228
|
}
|
|
229
229
|
i0.ɵɵngDeclareClassMetadata({
|
|
230
230
|
minVersion: "12.0.0",
|
|
231
|
-
version: "22.1.
|
|
231
|
+
version: "22.1.4",
|
|
232
232
|
ngImport: i0,
|
|
233
233
|
type: Grid,
|
|
234
234
|
decorators: [{
|
|
@@ -386,7 +386,7 @@ class GridCellWidget {
|
|
|
386
386
|
}
|
|
387
387
|
static ɵfac = i0.ɵɵngDeclareFactory({
|
|
388
388
|
minVersion: "12.0.0",
|
|
389
|
-
version: "22.1.
|
|
389
|
+
version: "22.1.4",
|
|
390
390
|
ngImport: i0,
|
|
391
391
|
type: GridCellWidget,
|
|
392
392
|
deps: [],
|
|
@@ -394,7 +394,7 @@ class GridCellWidget {
|
|
|
394
394
|
});
|
|
395
395
|
static ɵdir = i0.ɵɵngDeclareDirective({
|
|
396
396
|
minVersion: "17.1.0",
|
|
397
|
-
version: "22.1.
|
|
397
|
+
version: "22.1.4",
|
|
398
398
|
type: GridCellWidget,
|
|
399
399
|
isStandalone: true,
|
|
400
400
|
selector: "[ngGridCellWidget]",
|
|
@@ -453,7 +453,7 @@ class GridCellWidget {
|
|
|
453
453
|
}
|
|
454
454
|
i0.ɵɵngDeclareClassMetadata({
|
|
455
455
|
minVersion: "12.0.0",
|
|
456
|
-
version: "22.1.
|
|
456
|
+
version: "22.1.4",
|
|
457
457
|
ngImport: i0,
|
|
458
458
|
type: GridCellWidget,
|
|
459
459
|
decorators: [{
|
|
@@ -636,7 +636,7 @@ class GridCell {
|
|
|
636
636
|
}
|
|
637
637
|
static ɵfac = i0.ɵɵngDeclareFactory({
|
|
638
638
|
minVersion: "12.0.0",
|
|
639
|
-
version: "22.1.
|
|
639
|
+
version: "22.1.4",
|
|
640
640
|
ngImport: i0,
|
|
641
641
|
type: GridCell,
|
|
642
642
|
deps: [],
|
|
@@ -644,7 +644,7 @@ class GridCell {
|
|
|
644
644
|
});
|
|
645
645
|
static ɵdir = i0.ɵɵngDeclareDirective({
|
|
646
646
|
minVersion: "17.2.0",
|
|
647
|
-
version: "22.1.
|
|
647
|
+
version: "22.1.4",
|
|
648
648
|
type: GridCell,
|
|
649
649
|
isStandalone: true,
|
|
650
650
|
selector: "[ngGridCell]",
|
|
@@ -740,7 +740,7 @@ class GridCell {
|
|
|
740
740
|
}
|
|
741
741
|
i0.ɵɵngDeclareClassMetadata({
|
|
742
742
|
minVersion: "12.0.0",
|
|
743
|
-
version: "22.1.
|
|
743
|
+
version: "22.1.4",
|
|
744
744
|
ngImport: i0,
|
|
745
745
|
type: GridCell,
|
|
746
746
|
decorators: [{
|
|
@@ -884,7 +884,7 @@ class GridRow {
|
|
|
884
884
|
}
|
|
885
885
|
static ɵfac = i0.ɵɵngDeclareFactory({
|
|
886
886
|
minVersion: "12.0.0",
|
|
887
|
-
version: "22.1.
|
|
887
|
+
version: "22.1.4",
|
|
888
888
|
ngImport: i0,
|
|
889
889
|
type: GridRow,
|
|
890
890
|
deps: [],
|
|
@@ -892,7 +892,7 @@ class GridRow {
|
|
|
892
892
|
});
|
|
893
893
|
static ɵdir = i0.ɵɵngDeclareDirective({
|
|
894
894
|
minVersion: "17.1.0",
|
|
895
|
-
version: "22.1.
|
|
895
|
+
version: "22.1.4",
|
|
896
896
|
type: GridRow,
|
|
897
897
|
isStandalone: true,
|
|
898
898
|
selector: "[ngGridRow]",
|
|
@@ -923,7 +923,7 @@ class GridRow {
|
|
|
923
923
|
}
|
|
924
924
|
i0.ɵɵngDeclareClassMetadata({
|
|
925
925
|
minVersion: "12.0.0",
|
|
926
|
-
version: "22.1.
|
|
926
|
+
version: "22.1.4",
|
|
927
927
|
ngImport: i0,
|
|
928
928
|
type: GridRow,
|
|
929
929
|
decorators: [{
|
package/fesm2022/listbox.mjs
CHANGED
|
@@ -145,7 +145,7 @@ class Listbox {
|
|
|
145
145
|
}
|
|
146
146
|
static ɵfac = i0.ɵɵngDeclareFactory({
|
|
147
147
|
minVersion: "12.0.0",
|
|
148
|
-
version: "22.1.
|
|
148
|
+
version: "22.1.4",
|
|
149
149
|
ngImport: i0,
|
|
150
150
|
type: Listbox,
|
|
151
151
|
deps: [],
|
|
@@ -153,7 +153,7 @@ class Listbox {
|
|
|
153
153
|
});
|
|
154
154
|
static ɵdir = i0.ɵɵngDeclareDirective({
|
|
155
155
|
minVersion: "17.1.0",
|
|
156
|
-
version: "22.1.
|
|
156
|
+
version: "22.1.4",
|
|
157
157
|
type: Listbox,
|
|
158
158
|
isStandalone: true,
|
|
159
159
|
selector: "[ngListbox]",
|
|
@@ -275,7 +275,7 @@ class Listbox {
|
|
|
275
275
|
}
|
|
276
276
|
i0.ɵɵngDeclareClassMetadata({
|
|
277
277
|
minVersion: "12.0.0",
|
|
278
|
-
version: "22.1.
|
|
278
|
+
version: "22.1.4",
|
|
279
279
|
ngImport: i0,
|
|
280
280
|
type: Listbox,
|
|
281
281
|
decorators: [{
|
|
@@ -449,7 +449,7 @@ class Option {
|
|
|
449
449
|
}
|
|
450
450
|
static ɵfac = i0.ɵɵngDeclareFactory({
|
|
451
451
|
minVersion: "12.0.0",
|
|
452
|
-
version: "22.1.
|
|
452
|
+
version: "22.1.4",
|
|
453
453
|
ngImport: i0,
|
|
454
454
|
type: Option,
|
|
455
455
|
deps: [],
|
|
@@ -457,7 +457,7 @@ class Option {
|
|
|
457
457
|
});
|
|
458
458
|
static ɵdir = i0.ɵɵngDeclareDirective({
|
|
459
459
|
minVersion: "17.1.0",
|
|
460
|
-
version: "22.1.
|
|
460
|
+
version: "22.1.4",
|
|
461
461
|
type: Option,
|
|
462
462
|
isStandalone: true,
|
|
463
463
|
selector: "[ngOption]",
|
|
@@ -509,7 +509,7 @@ class Option {
|
|
|
509
509
|
}
|
|
510
510
|
i0.ɵɵngDeclareClassMetadata({
|
|
511
511
|
minVersion: "12.0.0",
|
|
512
|
-
version: "22.1.
|
|
512
|
+
version: "22.1.4",
|
|
513
513
|
ngImport: i0,
|
|
514
514
|
type: Option,
|
|
515
515
|
decorators: [{
|
package/fesm2022/menu.mjs
CHANGED
|
@@ -59,7 +59,7 @@ class MenuTrigger {
|
|
|
59
59
|
}
|
|
60
60
|
static ɵfac = i0.ɵɵngDeclareFactory({
|
|
61
61
|
minVersion: "12.0.0",
|
|
62
|
-
version: "22.1.
|
|
62
|
+
version: "22.1.4",
|
|
63
63
|
ngImport: i0,
|
|
64
64
|
type: MenuTrigger,
|
|
65
65
|
deps: [],
|
|
@@ -67,7 +67,7 @@ class MenuTrigger {
|
|
|
67
67
|
});
|
|
68
68
|
static ɵdir = i0.ɵɵngDeclareDirective({
|
|
69
69
|
minVersion: "17.1.0",
|
|
70
|
-
version: "22.1.
|
|
70
|
+
version: "22.1.4",
|
|
71
71
|
type: MenuTrigger,
|
|
72
72
|
isStandalone: true,
|
|
73
73
|
selector: "[ngMenuTrigger]",
|
|
@@ -116,7 +116,7 @@ class MenuTrigger {
|
|
|
116
116
|
}
|
|
117
117
|
i0.ɵɵngDeclareClassMetadata({
|
|
118
118
|
minVersion: "12.0.0",
|
|
119
|
-
version: "22.1.
|
|
119
|
+
version: "22.1.4",
|
|
120
120
|
ngImport: i0,
|
|
121
121
|
type: MenuTrigger,
|
|
122
122
|
decorators: [{
|
|
@@ -242,7 +242,7 @@ class MenuItem {
|
|
|
242
242
|
}
|
|
243
243
|
static ɵfac = i0.ɵɵngDeclareFactory({
|
|
244
244
|
minVersion: "12.0.0",
|
|
245
|
-
version: "22.1.
|
|
245
|
+
version: "22.1.4",
|
|
246
246
|
ngImport: i0,
|
|
247
247
|
type: MenuItem,
|
|
248
248
|
deps: [],
|
|
@@ -250,7 +250,7 @@ class MenuItem {
|
|
|
250
250
|
});
|
|
251
251
|
static ɵdir = i0.ɵɵngDeclareDirective({
|
|
252
252
|
minVersion: "17.1.0",
|
|
253
|
-
version: "22.1.
|
|
253
|
+
version: "22.1.4",
|
|
254
254
|
type: MenuItem,
|
|
255
255
|
isStandalone: true,
|
|
256
256
|
selector: "[ngMenuItem]",
|
|
@@ -321,7 +321,7 @@ class MenuItem {
|
|
|
321
321
|
}
|
|
322
322
|
i0.ɵɵngDeclareClassMetadata({
|
|
323
323
|
minVersion: "12.0.0",
|
|
324
|
-
version: "22.1.
|
|
324
|
+
version: "22.1.4",
|
|
325
325
|
ngImport: i0,
|
|
326
326
|
type: MenuItem,
|
|
327
327
|
decorators: [{
|
|
@@ -459,7 +459,7 @@ class MenuBar {
|
|
|
459
459
|
}
|
|
460
460
|
static ɵfac = i0.ɵɵngDeclareFactory({
|
|
461
461
|
minVersion: "12.0.0",
|
|
462
|
-
version: "22.1.
|
|
462
|
+
version: "22.1.4",
|
|
463
463
|
ngImport: i0,
|
|
464
464
|
type: MenuBar,
|
|
465
465
|
deps: [],
|
|
@@ -467,7 +467,7 @@ class MenuBar {
|
|
|
467
467
|
});
|
|
468
468
|
static ɵdir = i0.ɵɵngDeclareDirective({
|
|
469
469
|
minVersion: "17.1.0",
|
|
470
|
-
version: "22.1.
|
|
470
|
+
version: "22.1.4",
|
|
471
471
|
type: MenuBar,
|
|
472
472
|
isStandalone: true,
|
|
473
473
|
selector: "[ngMenuBar]",
|
|
@@ -539,7 +539,7 @@ class MenuBar {
|
|
|
539
539
|
}
|
|
540
540
|
i0.ɵɵngDeclareClassMetadata({
|
|
541
541
|
minVersion: "12.0.0",
|
|
542
|
-
version: "22.1.
|
|
542
|
+
version: "22.1.4",
|
|
543
543
|
ngImport: i0,
|
|
544
544
|
type: MenuBar,
|
|
545
545
|
decorators: [{
|
|
@@ -724,7 +724,7 @@ class Menu {
|
|
|
724
724
|
}
|
|
725
725
|
static ɵfac = i0.ɵɵngDeclareFactory({
|
|
726
726
|
minVersion: "12.0.0",
|
|
727
|
-
version: "22.1.
|
|
727
|
+
version: "22.1.4",
|
|
728
728
|
ngImport: i0,
|
|
729
729
|
type: Menu,
|
|
730
730
|
deps: [],
|
|
@@ -732,7 +732,7 @@ class Menu {
|
|
|
732
732
|
});
|
|
733
733
|
static ɵdir = i0.ɵɵngDeclareDirective({
|
|
734
734
|
minVersion: "17.1.0",
|
|
735
|
-
version: "22.1.
|
|
735
|
+
version: "22.1.4",
|
|
736
736
|
type: Menu,
|
|
737
737
|
isStandalone: true,
|
|
738
738
|
selector: "[ngMenu]",
|
|
@@ -816,7 +816,7 @@ class Menu {
|
|
|
816
816
|
}
|
|
817
817
|
i0.ɵɵngDeclareClassMetadata({
|
|
818
818
|
minVersion: "12.0.0",
|
|
819
|
-
version: "22.1.
|
|
819
|
+
version: "22.1.4",
|
|
820
820
|
ngImport: i0,
|
|
821
821
|
type: Menu,
|
|
822
822
|
decorators: [{
|
|
@@ -907,7 +907,7 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
907
907
|
class MenuContent {
|
|
908
908
|
static ɵfac = i0.ɵɵngDeclareFactory({
|
|
909
909
|
minVersion: "12.0.0",
|
|
910
|
-
version: "22.1.
|
|
910
|
+
version: "22.1.4",
|
|
911
911
|
ngImport: i0,
|
|
912
912
|
type: MenuContent,
|
|
913
913
|
deps: [],
|
|
@@ -915,7 +915,7 @@ class MenuContent {
|
|
|
915
915
|
});
|
|
916
916
|
static ɵdir = i0.ɵɵngDeclareDirective({
|
|
917
917
|
minVersion: "14.0.0",
|
|
918
|
-
version: "22.1.
|
|
918
|
+
version: "22.1.4",
|
|
919
919
|
type: MenuContent,
|
|
920
920
|
isStandalone: true,
|
|
921
921
|
selector: "ng-template[ngMenuContent]",
|
|
@@ -928,7 +928,7 @@ class MenuContent {
|
|
|
928
928
|
}
|
|
929
929
|
i0.ɵɵngDeclareClassMetadata({
|
|
930
930
|
minVersion: "12.0.0",
|
|
931
|
-
version: "22.1.
|
|
931
|
+
version: "22.1.4",
|
|
932
932
|
ngImport: i0,
|
|
933
933
|
type: MenuContent,
|
|
934
934
|
decorators: [{
|
package/fesm2022/private.mjs
CHANGED
|
@@ -121,6 +121,10 @@ class ComboboxPattern {
|
|
|
121
121
|
this.isFocused.set(true);
|
|
122
122
|
}
|
|
123
123
|
onFocusout() {
|
|
124
|
+
this.isFocused.set(false);
|
|
125
|
+
this.closePopupOnFocusout();
|
|
126
|
+
}
|
|
127
|
+
closePopupOnFocusout() {
|
|
124
128
|
setTimeout(() => {
|
|
125
129
|
const comboboxFocused = this.isFocused();
|
|
126
130
|
const popupFocused = !!this.inputs.popup()?.isFocused();
|
|
@@ -128,7 +132,6 @@ class ComboboxPattern {
|
|
|
128
132
|
this.inputs.expanded.set(false);
|
|
129
133
|
}
|
|
130
134
|
});
|
|
131
|
-
this.isFocused.set(false);
|
|
132
135
|
}
|
|
133
136
|
onInput(event) {
|
|
134
137
|
const target = _getEventTarget(event);
|
|
@@ -170,6 +173,7 @@ class ComboboxPopupPattern {
|
|
|
170
173
|
controlTarget = () => this.inputs.controlTarget();
|
|
171
174
|
activeDescendant = () => this.inputs.activeDescendant();
|
|
172
175
|
popupId = () => this.inputs.popupId();
|
|
176
|
+
combobox = () => this.inputs.combobox();
|
|
173
177
|
isFocused = signal(false);
|
|
174
178
|
constructor(inputs) {
|
|
175
179
|
this.inputs = inputs;
|
|
@@ -181,6 +185,7 @@ class ComboboxPopupPattern {
|
|
|
181
185
|
const focusTarget = event.relatedTarget;
|
|
182
186
|
if (this.controlTarget()?.contains(focusTarget)) return;
|
|
183
187
|
this.isFocused.set(false);
|
|
188
|
+
this.combobox()?.closePopupOnFocusout();
|
|
184
189
|
}
|
|
185
190
|
}
|
|
186
191
|
|
package/fesm2022/private.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"private.mjs","sources":["../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/aria/private/combobox/combobox.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 {computed, signal, untracked} from '@angular/core';\nimport {_getEventTarget} from '@angular/cdk/platform';\nimport {KeyboardEventManager, ClickEventManager, Modifier} from '../behaviors/event-manager';\nimport {SignalLike, WritableSignalLike} from '../behaviors/signal-like/signal-like';\nimport {ExpansionItem} from '../behaviors/expansion/expansion';\n\n/** Represents the required inputs for a simple combobox. */\nexport interface ComboboxInputs extends ExpansionItem {\n /** Whether the combobox should always remain expanded. */\n alwaysExpanded: SignalLike<boolean>;\n\n /** The value of the combobox. */\n value: WritableSignalLike<string>;\n\n /** The element that the combobox is attached to. */\n element: SignalLike<HTMLElement>;\n\n /** The popup associated with the combobox. */\n popup: SignalLike<ComboboxPopupPattern | undefined>;\n\n /** An inline suggestion to be displayed in the input. */\n inlineSuggestion: SignalLike<string | undefined>;\n\n /** Whether the combobox is disabled. */\n disabled: SignalLike<boolean>;\n\n /** Whether the combobox is readonly. */\n readonly: SignalLike<boolean>;\n\n /** Whether the combobox is soft disabled. */\n softDisabled?: SignalLike<boolean>;\n}\n\n/** Controls the state of a simple combobox. */\nexport class ComboboxPattern {\n /** The expanded state of the combobox. */\n readonly isExpanded = computed(() => this.inputs.alwaysExpanded() || this.inputs.expanded());\n\n /** The value of the combobox. */\n readonly value: WritableSignalLike<string>;\n\n /** The element that the combobox is attached to. */\n readonly element = () => this.inputs.element();\n\n /** Whether the combobox is disabled. */\n readonly disabled = () => this.inputs.disabled();\n\n /** Whether the combobox is readonly. */\n readonly readonly = () => this.inputs.readonly();\n\n /** Whether the combobox is soft disabled. */\n readonly softDisabled = () => this.inputs.softDisabled?.() ?? true;\n\n /** An inline suggestion to be displayed in the input. */\n readonly inlineSuggestion = () => this.inputs.inlineSuggestion();\n\n /** The ID of the active descendant in the popup. */\n readonly activeDescendant = computed(() => this.inputs.popup()?.activeDescendant());\n\n /** The ID of the popup. */\n readonly popupId = computed(() => this.inputs.popup()?.popupId());\n\n /** The type of the popup. */\n readonly popupType = computed(() => this.inputs.popup()?.popupType());\n\n /** The autocomplete behavior of the combobox. */\n readonly autocomplete = computed<'none' | 'inline' | 'list' | 'both'>(() => {\n const popupType = this.popupType();\n const hasAutocompletePopup = !!this.inputs.popup() && popupType !== 'dialog';\n const hasInlineSuggestion = !!this.inlineSuggestion();\n if (hasAutocompletePopup && hasInlineSuggestion) {\n return 'both';\n }\n if (hasAutocompletePopup) {\n return 'list';\n }\n if (hasInlineSuggestion) {\n return 'inline';\n }\n return 'none';\n });\n\n /** A relay for keyboard events to the popup. */\n readonly keyboardEventRelay = signal<KeyboardEvent | undefined>(undefined);\n\n /** Whether the combobox is focused. */\n readonly isFocused = signal(false);\n\n /** Whether the most recent input event was a deletion. */\n readonly isDeleting = signal(false);\n\n /** Whether the combobox is editable (i.e., an input or textarea). */\n readonly isEditable = computed(\n () =>\n this.element().tagName.toLowerCase() === 'input' ||\n this.element().tagName.toLowerCase() === 'textarea',\n );\n\n /** The aria-readonly attribute value for non-editable comboboxes. */\n readonly ariaReadonly = computed(() => (this.readonly() && !this.isEditable() ? 'true' : null));\n\n /** The native readonly attribute value for editable comboboxes. */\n readonly nativeReadonly = computed(() =>\n (this.readonly() || this.disabled()) && this.isEditable() ? '' : null,\n );\n\n /** The native disabled attribute value for hard-disabled comboboxes. */\n readonly nativeDisabled = computed(() => (this.disabled() && !this.softDisabled() ? '' : null));\n\n /** The keydown event manager for the combobox. */\n // TODO(tjshiu): Allow combo keys in combobox (#33101).\n keydown = computed(() => {\n const manager = new KeyboardEventManager();\n\n if (!this.isExpanded()) {\n if (!this.readonly()) {\n manager.on('ArrowDown', () => this.inputs.expanded.set(true));\n\n if (!this.isEditable()) {\n manager.on('Enter', () => this.inputs.expanded.set(true));\n manager.on(' ', () => this.inputs.expanded.set(true));\n }\n }\n\n return manager;\n }\n\n manager\n .on(\n 'ArrowLeft',\n e => {\n this.keyboardEventRelay.set(e);\n },\n {preventDefault: this.popupType() !== 'listbox', ignoreRepeat: false},\n )\n .on(\n 'ArrowRight',\n e => {\n this.keyboardEventRelay.set(e);\n },\n {preventDefault: this.popupType() !== 'listbox', ignoreRepeat: false},\n )\n .on('ArrowUp', e => this.keyboardEventRelay.set(e), {ignoreRepeat: false})\n .on('ArrowDown', e => this.keyboardEventRelay.set(e), {ignoreRepeat: false})\n .on(Modifier.Shift, 'ArrowUp', e => this.keyboardEventRelay.set(e), {ignoreRepeat: false})\n .on(Modifier.Shift, 'ArrowDown', e => this.keyboardEventRelay.set(e), {ignoreRepeat: false})\n .on('Home', e => this.keyboardEventRelay.set(e))\n .on('End', e => this.keyboardEventRelay.set(e))\n .on('PageUp', e => this.keyboardEventRelay.set(e))\n .on('PageDown', e => this.keyboardEventRelay.set(e))\n .on('Escape', () => {\n if (!this.inputs.alwaysExpanded()) {\n this.inputs.expanded.set(false);\n }\n });\n\n if (!this.readonly()) {\n manager.on('Enter', e => this.keyboardEventRelay.set(e));\n }\n\n if (!this.isEditable() && !this.readonly()) {\n manager\n .on(' ', e => this.keyboardEventRelay.set(e))\n .on([Modifier.Ctrl, Modifier.Meta], 'a', e => this.keyboardEventRelay.set(e))\n .on([Modifier.Ctrl, Modifier.Meta], 'A', e => this.keyboardEventRelay.set(e))\n .on(Modifier.Shift, 'Home', e => this.keyboardEventRelay.set(e))\n .on(Modifier.Shift, 'End', e => this.keyboardEventRelay.set(e))\n .on(/^.$/, e => {\n this.keyboardEventRelay.set(e);\n });\n }\n\n return manager;\n });\n\n /** The click event manager for the combobox. */\n click = computed(() => {\n const manager = new ClickEventManager<PointerEvent>();\n\n if (this.isEditable() || this.readonly()) return manager;\n\n manager.on(() => this.inputs.expanded.update(v => !v));\n\n return manager;\n });\n\n constructor(readonly inputs: ComboboxInputs) {\n this.value = inputs.value;\n }\n\n /** Handles keydown events for the combobox. */\n onKeydown(event: KeyboardEvent) {\n if (!this.inputs.disabled()) {\n this.keydown().handle(event);\n }\n }\n\n /** Handles click events for the combobox. */\n onClick(event: PointerEvent) {\n if (!this.disabled()) {\n this.click().handle(event);\n }\n }\n\n /** Handles focus in events for the combobox. */\n onFocusin() {\n this.isFocused.set(true);\n }\n\n /** Handles focus out events for the combobox. */\n onFocusout() {\n // Give focus some time to move before we check it.\n setTimeout(() => {\n const comboboxFocused = this.isFocused();\n const popupFocused = !!this.inputs.popup()?.isFocused();\n\n if (!this.inputs.alwaysExpanded() && !comboboxFocused && !popupFocused) {\n this.inputs.expanded.set(false);\n }\n });\n\n this.isFocused.set(false);\n }\n\n /** Handles input events for the combobox. */\n onInput(event: Event) {\n const target = _getEventTarget(event);\n if (!(target instanceof HTMLInputElement) || this.disabled() || this.readonly()) return;\n\n this.inputs.expanded.set(true);\n this.value.set(target.value);\n this.isDeleting.set(event instanceof InputEvent && !!event.inputType.match(/^delete/));\n }\n\n /** Highlights the currently selected item in the combobox. */\n highlightEffect() {\n const value = this.value();\n const inlineSuggestion = this.inlineSuggestion();\n\n const isDeleting = untracked(() => this.isDeleting());\n const isFocused = untracked(() => this.isFocused());\n const isExpanded = this.isExpanded();\n\n if (!inlineSuggestion || !isFocused || !isExpanded || isDeleting || this.readonly()) return;\n\n const inputEl = this.element() as HTMLInputElement;\n const isHighlightable = inlineSuggestion.toLowerCase().startsWith(value.toLowerCase());\n\n if (isHighlightable) {\n inputEl.value = value + inlineSuggestion.slice(value.length);\n inputEl.setSelectionRange(value.length, inlineSuggestion.length);\n }\n }\n\n /** Relays keyboard events to the popup. */\n keyboardEventRelayEffect() {\n const event = this.keyboardEventRelay();\n if (event === undefined) return;\n\n // Reset isDeleting when the user navigates, so that the highlight effect can run again.\n this.isDeleting.set(false);\n\n untracked(() => {\n const popup = this.inputs.popup();\n if (this.isExpanded()) {\n const relayedEvent = new KeyboardEvent(event.type, event);\n popup?.controlTarget()?.dispatchEvent(relayedEvent);\n }\n });\n }\n}\n\n/** Represents the required inputs for a simple combobox popup. */\nexport interface ComboboxPopupInputs {\n /** The type of the popup. */\n popupType: SignalLike<'listbox' | 'tree' | 'grid' | 'dialog'>;\n\n /** The element that serves as the control target for the popup. */\n controlTarget: SignalLike<HTMLElement | undefined>;\n\n /** The ID of the active descendant in the popup. */\n activeDescendant: SignalLike<string | undefined>;\n\n /** The ID of the popup. */\n popupId: SignalLike<string | undefined>;\n}\n\n/** Controls the state of a simple combobox popup. */\nexport class ComboboxPopupPattern {\n /** The type of the popup. */\n readonly popupType = () => this.inputs.popupType();\n\n /** The element that serves as the control target for the popup. */\n readonly controlTarget = () => this.inputs.controlTarget();\n\n /** The ID of the active descendant in the popup. */\n readonly activeDescendant = () => this.inputs.activeDescendant();\n\n /** The ID of the popup. */\n readonly popupId = () => this.inputs.popupId();\n\n /** Whether the popup is focused. */\n readonly isFocused = signal(false);\n\n constructor(readonly inputs: ComboboxPopupInputs) {}\n\n /** Handles focus in events for the popup. */\n onFocusin() {\n this.isFocused.set(true);\n }\n\n /** Handles focus out events for the popup. */\n onFocusout(event: FocusEvent) {\n const focusTarget = event.relatedTarget as Element | null;\n if (this.controlTarget()?.contains(focusTarget)) return;\n\n this.isFocused.set(false);\n }\n}\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"private.mjs","sources":["../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/aria/private/combobox/combobox.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 {computed, signal, untracked} from '@angular/core';\nimport {_getEventTarget} from '@angular/cdk/platform';\nimport {KeyboardEventManager, ClickEventManager, Modifier} from '../behaviors/event-manager';\nimport {SignalLike, WritableSignalLike} from '../behaviors/signal-like/signal-like';\nimport {ExpansionItem} from '../behaviors/expansion/expansion';\n\n/** Represents the required inputs for a simple combobox. */\nexport interface ComboboxInputs extends ExpansionItem {\n /** Whether the combobox should always remain expanded. */\n alwaysExpanded: SignalLike<boolean>;\n\n /** The value of the combobox. */\n value: WritableSignalLike<string>;\n\n /** The element that the combobox is attached to. */\n element: SignalLike<HTMLElement>;\n\n /** The popup associated with the combobox. */\n popup: SignalLike<ComboboxPopupPattern | undefined>;\n\n /** An inline suggestion to be displayed in the input. */\n inlineSuggestion: SignalLike<string | undefined>;\n\n /** Whether the combobox is disabled. */\n disabled: SignalLike<boolean>;\n\n /** Whether the combobox is readonly. */\n readonly: SignalLike<boolean>;\n\n /** Whether the combobox is soft disabled. */\n softDisabled?: SignalLike<boolean>;\n}\n\n/** Controls the state of a simple combobox. */\nexport class ComboboxPattern {\n /** The expanded state of the combobox. */\n readonly isExpanded = computed(() => this.inputs.alwaysExpanded() || this.inputs.expanded());\n\n /** The value of the combobox. */\n readonly value: WritableSignalLike<string>;\n\n /** The element that the combobox is attached to. */\n readonly element = () => this.inputs.element();\n\n /** Whether the combobox is disabled. */\n readonly disabled = () => this.inputs.disabled();\n\n /** Whether the combobox is readonly. */\n readonly readonly = () => this.inputs.readonly();\n\n /** Whether the combobox is soft disabled. */\n readonly softDisabled = () => this.inputs.softDisabled?.() ?? true;\n\n /** An inline suggestion to be displayed in the input. */\n readonly inlineSuggestion = () => this.inputs.inlineSuggestion();\n\n /** The ID of the active descendant in the popup. */\n readonly activeDescendant = computed(() => this.inputs.popup()?.activeDescendant());\n\n /** The ID of the popup. */\n readonly popupId = computed(() => this.inputs.popup()?.popupId());\n\n /** The type of the popup. */\n readonly popupType = computed(() => this.inputs.popup()?.popupType());\n\n /** The autocomplete behavior of the combobox. */\n readonly autocomplete = computed<'none' | 'inline' | 'list' | 'both'>(() => {\n const popupType = this.popupType();\n const hasAutocompletePopup = !!this.inputs.popup() && popupType !== 'dialog';\n const hasInlineSuggestion = !!this.inlineSuggestion();\n if (hasAutocompletePopup && hasInlineSuggestion) {\n return 'both';\n }\n if (hasAutocompletePopup) {\n return 'list';\n }\n if (hasInlineSuggestion) {\n return 'inline';\n }\n return 'none';\n });\n\n /** A relay for keyboard events to the popup. */\n readonly keyboardEventRelay = signal<KeyboardEvent | undefined>(undefined);\n\n /** Whether the combobox is focused. */\n readonly isFocused = signal(false);\n\n /** Whether the most recent input event was a deletion. */\n readonly isDeleting = signal(false);\n\n /** Whether the combobox is editable (i.e., an input or textarea). */\n readonly isEditable = computed(\n () =>\n this.element().tagName.toLowerCase() === 'input' ||\n this.element().tagName.toLowerCase() === 'textarea',\n );\n\n /** The aria-readonly attribute value for non-editable comboboxes. */\n readonly ariaReadonly = computed(() => (this.readonly() && !this.isEditable() ? 'true' : null));\n\n /** The native readonly attribute value for editable comboboxes. */\n readonly nativeReadonly = computed(() =>\n (this.readonly() || this.disabled()) && this.isEditable() ? '' : null,\n );\n\n /** The native disabled attribute value for hard-disabled comboboxes. */\n readonly nativeDisabled = computed(() => (this.disabled() && !this.softDisabled() ? '' : null));\n\n /** The keydown event manager for the combobox. */\n // TODO(tjshiu): Allow combo keys in combobox (#33101).\n keydown = computed(() => {\n const manager = new KeyboardEventManager();\n\n if (!this.isExpanded()) {\n if (!this.readonly()) {\n manager.on('ArrowDown', () => this.inputs.expanded.set(true));\n\n if (!this.isEditable()) {\n manager.on('Enter', () => this.inputs.expanded.set(true));\n manager.on(' ', () => this.inputs.expanded.set(true));\n }\n }\n\n return manager;\n }\n\n manager\n .on(\n 'ArrowLeft',\n e => {\n this.keyboardEventRelay.set(e);\n },\n {preventDefault: this.popupType() !== 'listbox', ignoreRepeat: false},\n )\n .on(\n 'ArrowRight',\n e => {\n this.keyboardEventRelay.set(e);\n },\n {preventDefault: this.popupType() !== 'listbox', ignoreRepeat: false},\n )\n .on('ArrowUp', e => this.keyboardEventRelay.set(e), {ignoreRepeat: false})\n .on('ArrowDown', e => this.keyboardEventRelay.set(e), {ignoreRepeat: false})\n .on(Modifier.Shift, 'ArrowUp', e => this.keyboardEventRelay.set(e), {ignoreRepeat: false})\n .on(Modifier.Shift, 'ArrowDown', e => this.keyboardEventRelay.set(e), {ignoreRepeat: false})\n .on('Home', e => this.keyboardEventRelay.set(e))\n .on('End', e => this.keyboardEventRelay.set(e))\n .on('PageUp', e => this.keyboardEventRelay.set(e))\n .on('PageDown', e => this.keyboardEventRelay.set(e))\n .on('Escape', () => {\n if (!this.inputs.alwaysExpanded()) {\n this.inputs.expanded.set(false);\n }\n });\n\n if (!this.readonly()) {\n manager.on('Enter', e => this.keyboardEventRelay.set(e));\n }\n\n if (!this.isEditable() && !this.readonly()) {\n manager\n .on(' ', e => this.keyboardEventRelay.set(e))\n .on([Modifier.Ctrl, Modifier.Meta], 'a', e => this.keyboardEventRelay.set(e))\n .on([Modifier.Ctrl, Modifier.Meta], 'A', e => this.keyboardEventRelay.set(e))\n .on(Modifier.Shift, 'Home', e => this.keyboardEventRelay.set(e))\n .on(Modifier.Shift, 'End', e => this.keyboardEventRelay.set(e))\n .on(/^.$/, e => {\n this.keyboardEventRelay.set(e);\n });\n }\n\n return manager;\n });\n\n /** The click event manager for the combobox. */\n click = computed(() => {\n const manager = new ClickEventManager<PointerEvent>();\n\n if (this.isEditable() || this.readonly()) return manager;\n\n manager.on(() => this.inputs.expanded.update(v => !v));\n\n return manager;\n });\n\n constructor(readonly inputs: ComboboxInputs) {\n this.value = inputs.value;\n }\n\n /** Handles keydown events for the combobox. */\n onKeydown(event: KeyboardEvent) {\n if (!this.inputs.disabled()) {\n this.keydown().handle(event);\n }\n }\n\n /** Handles click events for the combobox. */\n onClick(event: PointerEvent) {\n if (!this.disabled()) {\n this.click().handle(event);\n }\n }\n\n /** Handles focus in events for the combobox. */\n onFocusin() {\n this.isFocused.set(true);\n }\n\n /** Handles focus out events for the combobox. */\n onFocusout() {\n this.isFocused.set(false);\n this.closePopupOnFocusout();\n }\n\n /** Closes the popup once focus has left both the combobox and the popup. */\n closePopupOnFocusout() {\n // Give focus some time to move before we check it.\n setTimeout(() => {\n const comboboxFocused = this.isFocused();\n const popupFocused = !!this.inputs.popup()?.isFocused();\n\n if (!this.inputs.alwaysExpanded() && !comboboxFocused && !popupFocused) {\n this.inputs.expanded.set(false);\n }\n });\n }\n\n /** Handles input events for the combobox. */\n onInput(event: Event) {\n const target = _getEventTarget(event);\n if (!(target instanceof HTMLInputElement) || this.disabled() || this.readonly()) return;\n\n this.inputs.expanded.set(true);\n this.value.set(target.value);\n this.isDeleting.set(event instanceof InputEvent && !!event.inputType.match(/^delete/));\n }\n\n /** Highlights the currently selected item in the combobox. */\n highlightEffect() {\n const value = this.value();\n const inlineSuggestion = this.inlineSuggestion();\n\n const isDeleting = untracked(() => this.isDeleting());\n const isFocused = untracked(() => this.isFocused());\n const isExpanded = this.isExpanded();\n\n if (!inlineSuggestion || !isFocused || !isExpanded || isDeleting || this.readonly()) return;\n\n const inputEl = this.element() as HTMLInputElement;\n const isHighlightable = inlineSuggestion.toLowerCase().startsWith(value.toLowerCase());\n\n if (isHighlightable) {\n inputEl.value = value + inlineSuggestion.slice(value.length);\n inputEl.setSelectionRange(value.length, inlineSuggestion.length);\n }\n }\n\n /** Relays keyboard events to the popup. */\n keyboardEventRelayEffect() {\n const event = this.keyboardEventRelay();\n if (event === undefined) return;\n\n // Reset isDeleting when the user navigates, so that the highlight effect can run again.\n this.isDeleting.set(false);\n\n untracked(() => {\n const popup = this.inputs.popup();\n if (this.isExpanded()) {\n const relayedEvent = new KeyboardEvent(event.type, event);\n popup?.controlTarget()?.dispatchEvent(relayedEvent);\n }\n });\n }\n}\n\n/** Represents the required inputs for a simple combobox popup. */\nexport interface ComboboxPopupInputs {\n /** The type of the popup. */\n popupType: SignalLike<'listbox' | 'tree' | 'grid' | 'dialog'>;\n\n /** The element that serves as the control target for the popup. */\n controlTarget: SignalLike<HTMLElement | undefined>;\n\n /** The ID of the active descendant in the popup. */\n activeDescendant: SignalLike<string | undefined>;\n\n /** The ID of the popup. */\n popupId: SignalLike<string | undefined>;\n\n /** A reference to the parent combobox. */\n combobox: SignalLike<ComboboxPattern | undefined>;\n}\n\n/** Controls the state of a simple combobox popup. */\nexport class ComboboxPopupPattern {\n /** The type of the popup. */\n readonly popupType = () => this.inputs.popupType();\n\n /** The element that serves as the control target for the popup. */\n readonly controlTarget = () => this.inputs.controlTarget();\n\n /** The ID of the active descendant in the popup. */\n readonly activeDescendant = () => this.inputs.activeDescendant();\n\n /** The ID of the popup. */\n readonly popupId = () => this.inputs.popupId();\n\n /** A reference to the parent combobox. */\n readonly combobox = () => this.inputs.combobox();\n\n /** Whether the popup is focused. */\n readonly isFocused = signal(false);\n\n constructor(readonly inputs: ComboboxPopupInputs) {}\n\n /** Handles focus in events for the popup. */\n onFocusin() {\n this.isFocused.set(true);\n }\n\n /** Handles focus out events for the popup. */\n onFocusout(event: FocusEvent) {\n const focusTarget = event.relatedTarget as Element | null;\n if (this.controlTarget()?.contains(focusTarget)) return;\n\n this.isFocused.set(false);\n this.combobox()?.closePopupOnFocusout();\n }\n}\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;MA0Ca,eAAe,CAAA;EAwJL,MAAA;AAtJZ,EAAA,UAAU,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;EAGnF,KAAK;EAGL,OAAO,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE;EAGrC,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE;EAGvC,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE;EAGvC,YAAY,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,YAAY,IAAI,IAAI,IAAI;EAGzD,gBAAgB,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE;AAGvD,EAAA,gBAAgB,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,gBAAgB,EAAE,CAAC;AAG1E,EAAA,OAAO,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,OAAO,EAAE,CAAC;AAGxD,EAAA,SAAS,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,CAAC;EAG5D,YAAY,GAAG,QAAQ,CAAsC,MAAK;AACzE,IAAA,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,EAAE;AAClC,IAAA,MAAM,oBAAoB,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,SAAS,KAAK,QAAQ;IAC5E,MAAM,mBAAmB,GAAG,CAAC,CAAC,IAAI,CAAC,gBAAgB,EAAE;IACrD,IAAI,oBAAoB,IAAI,mBAAmB,EAAE;AAC/C,MAAA,OAAO,MAAM;AACf,IAAA;AACA,IAAA,IAAI,oBAAoB,EAAE;AACxB,MAAA,OAAO,MAAM;AACf,IAAA;AACA,IAAA,IAAI,mBAAmB,EAAE;AACvB,MAAA,OAAO,QAAQ;AACjB,IAAA;AACA,IAAA,OAAO,MAAM;AACf,EAAA,CAAC,CAAC;AAGO,EAAA,kBAAkB,GAAG,MAAM,CAA4B,SAAS,CAAC;AAGjE,EAAA,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC;AAGzB,EAAA,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC;AAG1B,EAAA,UAAU,GAAG,QAAQ,CAC5B,MACE,IAAI,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,OAAO,IAChD,IAAI,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,UAAU,CACtD;EAGQ,YAAY,GAAG,QAAQ,CAAC,MAAO,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,MAAM,GAAG,IAAK,CAAC;EAGtF,cAAc,GAAG,QAAQ,CAAC,MACjC,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,IAAI,CAAC,QAAQ,EAAE,KAAK,IAAI,CAAC,UAAU,EAAE,GAAG,EAAE,GAAG,IAAI,CACtE;EAGQ,cAAc,GAAG,QAAQ,CAAC,MAAO,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,GAAG,EAAE,GAAG,IAAK,CAAC;EAI/F,OAAO,GAAG,QAAQ,CAAC,MAAK;AACtB,IAAA,MAAM,OAAO,GAAG,IAAI,oBAAoB,EAAE;AAE1C,IAAA,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE;AACtB,MAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE;AACpB,QAAA,OAAO,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAE7D,QAAA,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE;AACtB,UAAA,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AACzD,UAAA,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AACvD,QAAA;AACF,MAAA;AAEA,MAAA,OAAO,OAAO;AAChB,IAAA;AAEA,IAAA,OAAA,CACG,EAAE,CACD,WAAW,EACX,CAAC,IAAG;AACF,MAAA,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC;AAChC,IAAA,CAAC,EACD;AAAC,MAAA,cAAc,EAAE,IAAI,CAAC,SAAS,EAAE,KAAK,SAAS;AAAE,MAAA,YAAY,EAAE;KAAM,CAAA,CAEtE,EAAE,CACD,YAAY,EACZ,CAAC,IAAG;AACF,MAAA,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC;AAChC,IAAA,CAAC,EACD;AAAC,MAAA,cAAc,EAAE,IAAI,CAAC,SAAS,EAAE,KAAK,SAAS;AAAE,MAAA,YAAY,EAAE;KAAM,CAAA,CAEtE,EAAE,CAAC,SAAS,EAAE,CAAC,IAAI,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;AAAC,MAAA,YAAY,EAAE;AAAK,KAAC,CAAA,CACxE,EAAE,CAAC,WAAW,EAAE,CAAC,IAAI,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;AAAC,MAAA,YAAY,EAAE;KAAM,CAAA,CAC1E,EAAE,CAAC,QAAQ,CAAC,KAAK,EAAE,SAAS,EAAE,CAAC,IAAI,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;AAAC,MAAA,YAAY,EAAE;KAAM,CAAA,CACxF,EAAE,CAAC,QAAQ,CAAC,KAAK,EAAE,WAAW,EAAE,CAAC,IAAI,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;AAAC,MAAA,YAAY,EAAE;AAAK,KAAC,CAAA,CAC1F,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA,CAC9C,EAAE,CAAC,KAAK,EAAE,CAAC,IAAI,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA,CAC7C,EAAE,CAAC,QAAQ,EAAE,CAAC,IAAI,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA,CAChD,EAAE,CAAC,UAAU,EAAE,CAAC,IAAI,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA,CAClD,EAAE,CAAC,QAAQ,EAAE,MAAK;MACjB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,EAAE;QACjC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC;AACjC,MAAA;AACF,IAAA,CAAC,CAAC;AAEJ,IAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE;AACpB,MAAA,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAC1D,IAAA;AAEA,IAAA,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE;MAC1C,OAAA,CACG,EAAE,CAAC,GAAG,EAAE,CAAC,IAAI,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA,CAC3C,EAAE,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC,IAAI,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA,CAC3E,EAAE,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC,IAAI,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA,CAC3E,EAAE,CAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,IAAI,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA,CAC9D,EAAE,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC,IAAI,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA,CAC7D,EAAE,CAAC,KAAK,EAAE,CAAC,IAAG;AACb,QAAA,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC;AAChC,MAAA,CAAC,CAAC;AACN,IAAA;AAEA,IAAA,OAAO,OAAO;AAChB,EAAA,CAAC,CAAC;EAGF,KAAK,GAAG,QAAQ,CAAC,MAAK;AACpB,IAAA,MAAM,OAAO,GAAG,IAAI,iBAAiB,EAAgB;AAErD,IAAA,IAAI,IAAI,CAAC,UAAU,EAAE,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAE,OAAO,OAAO;AAExD,IAAA,OAAO,CAAC,EAAE,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAEtD,IAAA,OAAO,OAAO;AAChB,EAAA,CAAC,CAAC;EAEF,WAAA,CAAqB,MAAsB,EAAA;IAAtB,IAAA,CAAA,MAAM,GAAN,MAAM;AACzB,IAAA,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK;AAC3B,EAAA;EAGA,SAAS,CAAC,KAAoB,EAAA;IAC5B,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE;MAC3B,IAAI,CAAC,OAAO,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC;AAC9B,IAAA;AACF,EAAA;EAGA,OAAO,CAAC,KAAmB,EAAA;AACzB,IAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE;MACpB,IAAI,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC;AAC5B,IAAA;AACF,EAAA;AAGA,EAAA,SAAS,GAAA;AACP,IAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC;AAC1B,EAAA;AAGA,EAAA,UAAU,GAAA;AACR,IAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC;IACzB,IAAI,CAAC,oBAAoB,EAAE;AAC7B,EAAA;AAGA,EAAA,oBAAoB,GAAA;AAElB,IAAA,UAAU,CAAC,MAAK;AACd,MAAA,MAAM,eAAe,GAAG,IAAI,CAAC,SAAS,EAAE;AACxC,MAAA,MAAM,YAAY,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE;AAEvD,MAAA,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,IAAI,CAAC,eAAe,IAAI,CAAC,YAAY,EAAE;QACtE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC;AACjC,MAAA;AACF,IAAA,CAAC,CAAC;AACJ,EAAA;EAGA,OAAO,CAAC,KAAY,EAAA;AAClB,IAAA,MAAM,MAAM,GAAG,eAAe,CAAC,KAAK,CAAC;AACrC,IAAA,IAAI,EAAE,MAAM,YAAY,gBAAgB,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAE;IAEjF,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC;IAC9B,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC;AAC5B,IAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,YAAY,UAAU,IAAI,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;AACxF,EAAA;AAGA,EAAA,eAAe,GAAA;AACb,IAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE;AAC1B,IAAA,MAAM,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,EAAE;IAEhD,MAAM,UAAU,GAAG,SAAS,CAAC,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;IACrD,MAAM,SAAS,GAAG,SAAS,CAAC,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;AACnD,IAAA,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,EAAE;AAEpC,IAAA,IAAI,CAAC,gBAAgB,IAAI,CAAC,SAAS,IAAI,CAAC,UAAU,IAAI,UAAU,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAE;AAErF,IAAA,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAsB;AAClD,IAAA,MAAM,eAAe,GAAG,gBAAgB,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;AAEtF,IAAA,IAAI,eAAe,EAAE;AACnB,MAAA,OAAO,CAAC,KAAK,GAAG,KAAK,GAAG,gBAAgB,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC;MAC5D,OAAO,CAAC,iBAAiB,CAAC,KAAK,CAAC,MAAM,EAAE,gBAAgB,CAAC,MAAM,CAAC;AAClE,IAAA;AACF,EAAA;AAGA,EAAA,wBAAwB,GAAA;AACtB,IAAA,MAAM,KAAK,GAAG,IAAI,CAAC,kBAAkB,EAAE;IACvC,IAAI,KAAK,KAAK,SAAS,EAAE;AAGzB,IAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC;AAE1B,IAAA,SAAS,CAAC,MAAK;MACb,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE;AACjC,MAAA,IAAI,IAAI,CAAC,UAAU,EAAE,EAAE;QACrB,MAAM,YAAY,GAAG,IAAI,aAAa,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC;QACzD,KAAK,EAAE,aAAa,EAAE,EAAE,aAAa,CAAC,YAAY,CAAC;AACrD,MAAA;AACF,IAAA,CAAC,CAAC;AACJ,EAAA;AACD;MAqBY,oBAAoB,CAAA;EAmBV,MAAA;EAjBZ,SAAS,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE;EAGzC,aAAa,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE;EAGjD,gBAAgB,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE;EAGvD,OAAO,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE;EAGrC,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE;AAGvC,EAAA,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC;EAElC,WAAA,CAAqB,MAA2B,EAAA;IAA3B,IAAA,CAAA,MAAM,GAAN,MAAM;AAAwB,EAAA;AAGnD,EAAA,SAAS,GAAA;AACP,IAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC;AAC1B,EAAA;EAGA,UAAU,CAAC,KAAiB,EAAA;AAC1B,IAAA,MAAM,WAAW,GAAG,KAAK,CAAC,aAA+B;IACzD,IAAI,IAAI,CAAC,aAAa,EAAE,EAAE,QAAQ,CAAC,WAAW,CAAC,EAAE;AAEjD,IAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC;AACzB,IAAA,IAAI,CAAC,QAAQ,EAAE,EAAE,oBAAoB,EAAE;AACzC,EAAA;AACD;;;;"}
|
package/fesm2022/tabs.mjs
CHANGED
|
@@ -64,7 +64,7 @@ class Tabs {
|
|
|
64
64
|
}
|
|
65
65
|
static ɵfac = i0.ɵɵngDeclareFactory({
|
|
66
66
|
minVersion: "12.0.0",
|
|
67
|
-
version: "22.1.
|
|
67
|
+
version: "22.1.4",
|
|
68
68
|
ngImport: i0,
|
|
69
69
|
type: Tabs,
|
|
70
70
|
deps: [],
|
|
@@ -72,7 +72,7 @@ class Tabs {
|
|
|
72
72
|
});
|
|
73
73
|
static ɵdir = i0.ɵɵngDeclareDirective({
|
|
74
74
|
minVersion: "14.0.0",
|
|
75
|
-
version: "22.1.
|
|
75
|
+
version: "22.1.4",
|
|
76
76
|
type: Tabs,
|
|
77
77
|
isStandalone: true,
|
|
78
78
|
selector: "[ngTabs]",
|
|
@@ -86,7 +86,7 @@ class Tabs {
|
|
|
86
86
|
}
|
|
87
87
|
i0.ɵɵngDeclareClassMetadata({
|
|
88
88
|
minVersion: "12.0.0",
|
|
89
|
-
version: "22.1.
|
|
89
|
+
version: "22.1.4",
|
|
90
90
|
ngImport: i0,
|
|
91
91
|
type: Tabs,
|
|
92
92
|
decorators: [{
|
|
@@ -198,7 +198,7 @@ class TabList {
|
|
|
198
198
|
}
|
|
199
199
|
static ɵfac = i0.ɵɵngDeclareFactory({
|
|
200
200
|
minVersion: "12.0.0",
|
|
201
|
-
version: "22.1.
|
|
201
|
+
version: "22.1.4",
|
|
202
202
|
ngImport: i0,
|
|
203
203
|
type: TabList,
|
|
204
204
|
deps: [],
|
|
@@ -206,7 +206,7 @@ class TabList {
|
|
|
206
206
|
});
|
|
207
207
|
static ɵdir = i0.ɵɵngDeclareDirective({
|
|
208
208
|
minVersion: "17.1.0",
|
|
209
|
-
version: "22.1.
|
|
209
|
+
version: "22.1.4",
|
|
210
210
|
type: TabList,
|
|
211
211
|
isStandalone: true,
|
|
212
212
|
selector: "[ngTabList]",
|
|
@@ -290,7 +290,7 @@ class TabList {
|
|
|
290
290
|
}
|
|
291
291
|
i0.ɵɵngDeclareClassMetadata({
|
|
292
292
|
minVersion: "12.0.0",
|
|
293
|
-
version: "22.1.
|
|
293
|
+
version: "22.1.4",
|
|
294
294
|
ngImport: i0,
|
|
295
295
|
type: TabList,
|
|
296
296
|
decorators: [{
|
|
@@ -440,7 +440,7 @@ class Tab {
|
|
|
440
440
|
}
|
|
441
441
|
static ɵfac = i0.ɵɵngDeclareFactory({
|
|
442
442
|
minVersion: "12.0.0",
|
|
443
|
-
version: "22.1.
|
|
443
|
+
version: "22.1.4",
|
|
444
444
|
ngImport: i0,
|
|
445
445
|
type: Tab,
|
|
446
446
|
deps: [],
|
|
@@ -448,7 +448,7 @@ class Tab {
|
|
|
448
448
|
});
|
|
449
449
|
static ɵdir = i0.ɵɵngDeclareDirective({
|
|
450
450
|
minVersion: "17.1.0",
|
|
451
|
-
version: "22.1.
|
|
451
|
+
version: "22.1.4",
|
|
452
452
|
type: Tab,
|
|
453
453
|
isStandalone: true,
|
|
454
454
|
selector: "[ngTab]",
|
|
@@ -494,7 +494,7 @@ class Tab {
|
|
|
494
494
|
}
|
|
495
495
|
i0.ɵɵngDeclareClassMetadata({
|
|
496
496
|
minVersion: "12.0.0",
|
|
497
|
-
version: "22.1.
|
|
497
|
+
version: "22.1.4",
|
|
498
498
|
ngImport: i0,
|
|
499
499
|
type: Tab,
|
|
500
500
|
decorators: [{
|
|
@@ -545,7 +545,7 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
545
545
|
class TabContent {
|
|
546
546
|
static ɵfac = i0.ɵɵngDeclareFactory({
|
|
547
547
|
minVersion: "12.0.0",
|
|
548
|
-
version: "22.1.
|
|
548
|
+
version: "22.1.4",
|
|
549
549
|
ngImport: i0,
|
|
550
550
|
type: TabContent,
|
|
551
551
|
deps: [],
|
|
@@ -553,7 +553,7 @@ class TabContent {
|
|
|
553
553
|
});
|
|
554
554
|
static ɵdir = i0.ɵɵngDeclareDirective({
|
|
555
555
|
minVersion: "14.0.0",
|
|
556
|
-
version: "22.1.
|
|
556
|
+
version: "22.1.4",
|
|
557
557
|
type: TabContent,
|
|
558
558
|
isStandalone: true,
|
|
559
559
|
selector: "ng-template[ngTabContent]",
|
|
@@ -566,7 +566,7 @@ class TabContent {
|
|
|
566
566
|
}
|
|
567
567
|
i0.ɵɵngDeclareClassMetadata({
|
|
568
568
|
minVersion: "12.0.0",
|
|
569
|
-
version: "22.1.
|
|
569
|
+
version: "22.1.4",
|
|
570
570
|
ngImport: i0,
|
|
571
571
|
type: TabContent,
|
|
572
572
|
decorators: [{
|
|
@@ -634,7 +634,7 @@ class TabPanel {
|
|
|
634
634
|
}
|
|
635
635
|
static ɵfac = i0.ɵɵngDeclareFactory({
|
|
636
636
|
minVersion: "12.0.0",
|
|
637
|
-
version: "22.1.
|
|
637
|
+
version: "22.1.4",
|
|
638
638
|
ngImport: i0,
|
|
639
639
|
type: TabPanel,
|
|
640
640
|
deps: [],
|
|
@@ -642,7 +642,7 @@ class TabPanel {
|
|
|
642
642
|
});
|
|
643
643
|
static ɵdir = i0.ɵɵngDeclareDirective({
|
|
644
644
|
minVersion: "17.2.0",
|
|
645
|
-
version: "22.1.
|
|
645
|
+
version: "22.1.4",
|
|
646
646
|
type: TabPanel,
|
|
647
647
|
isStandalone: true,
|
|
648
648
|
selector: "[ngTabPanel]",
|
|
@@ -690,7 +690,7 @@ class TabPanel {
|
|
|
690
690
|
}
|
|
691
691
|
i0.ɵɵngDeclareClassMetadata({
|
|
692
692
|
minVersion: "12.0.0",
|
|
693
|
-
version: "22.1.
|
|
693
|
+
version: "22.1.4",
|
|
694
694
|
ngImport: i0,
|
|
695
695
|
type: TabPanel,
|
|
696
696
|
decorators: [{
|
package/fesm2022/toolbar.mjs
CHANGED
|
@@ -74,7 +74,7 @@ class Toolbar {
|
|
|
74
74
|
}
|
|
75
75
|
static ɵfac = i0.ɵɵngDeclareFactory({
|
|
76
76
|
minVersion: "12.0.0",
|
|
77
|
-
version: "22.1.
|
|
77
|
+
version: "22.1.4",
|
|
78
78
|
ngImport: i0,
|
|
79
79
|
type: Toolbar,
|
|
80
80
|
deps: [],
|
|
@@ -82,7 +82,7 @@ class Toolbar {
|
|
|
82
82
|
});
|
|
83
83
|
static ɵdir = i0.ɵɵngDeclareDirective({
|
|
84
84
|
minVersion: "17.1.0",
|
|
85
|
-
version: "22.1.
|
|
85
|
+
version: "22.1.4",
|
|
86
86
|
type: Toolbar,
|
|
87
87
|
isStandalone: true,
|
|
88
88
|
selector: "[ngToolbar]",
|
|
@@ -148,7 +148,7 @@ class Toolbar {
|
|
|
148
148
|
}
|
|
149
149
|
i0.ɵɵngDeclareClassMetadata({
|
|
150
150
|
minVersion: "12.0.0",
|
|
151
|
-
version: "22.1.
|
|
151
|
+
version: "22.1.4",
|
|
152
152
|
ngImport: i0,
|
|
153
153
|
type: Toolbar,
|
|
154
154
|
decorators: [{
|
|
@@ -264,7 +264,7 @@ class ToolbarWidget {
|
|
|
264
264
|
}
|
|
265
265
|
static ɵfac = i0.ɵɵngDeclareFactory({
|
|
266
266
|
minVersion: "12.0.0",
|
|
267
|
-
version: "22.1.
|
|
267
|
+
version: "22.1.4",
|
|
268
268
|
ngImport: i0,
|
|
269
269
|
type: ToolbarWidget,
|
|
270
270
|
deps: [],
|
|
@@ -272,7 +272,7 @@ class ToolbarWidget {
|
|
|
272
272
|
});
|
|
273
273
|
static ɵdir = i0.ɵɵngDeclareDirective({
|
|
274
274
|
minVersion: "17.1.0",
|
|
275
|
-
version: "22.1.
|
|
275
|
+
version: "22.1.4",
|
|
276
276
|
type: ToolbarWidget,
|
|
277
277
|
isStandalone: true,
|
|
278
278
|
selector: "[ngToolbarWidget]",
|
|
@@ -318,7 +318,7 @@ class ToolbarWidget {
|
|
|
318
318
|
}
|
|
319
319
|
i0.ɵɵngDeclareClassMetadata({
|
|
320
320
|
minVersion: "12.0.0",
|
|
321
|
-
version: "22.1.
|
|
321
|
+
version: "22.1.4",
|
|
322
322
|
ngImport: i0,
|
|
323
323
|
type: ToolbarWidget,
|
|
324
324
|
decorators: [{
|
|
@@ -413,7 +413,7 @@ class ToolbarWidgetGroup {
|
|
|
413
413
|
}
|
|
414
414
|
static ɵfac = i0.ɵɵngDeclareFactory({
|
|
415
415
|
minVersion: "12.0.0",
|
|
416
|
-
version: "22.1.
|
|
416
|
+
version: "22.1.4",
|
|
417
417
|
ngImport: i0,
|
|
418
418
|
type: ToolbarWidgetGroup,
|
|
419
419
|
deps: [],
|
|
@@ -421,7 +421,7 @@ class ToolbarWidgetGroup {
|
|
|
421
421
|
});
|
|
422
422
|
static ɵdir = i0.ɵɵngDeclareDirective({
|
|
423
423
|
minVersion: "17.2.0",
|
|
424
|
-
version: "22.1.
|
|
424
|
+
version: "22.1.4",
|
|
425
425
|
type: ToolbarWidgetGroup,
|
|
426
426
|
isStandalone: true,
|
|
427
427
|
selector: "[ngToolbarWidgetGroup]",
|
|
@@ -457,7 +457,7 @@ class ToolbarWidgetGroup {
|
|
|
457
457
|
}
|
|
458
458
|
i0.ɵɵngDeclareClassMetadata({
|
|
459
459
|
minVersion: "12.0.0",
|
|
460
|
-
version: "22.1.
|
|
460
|
+
version: "22.1.4",
|
|
461
461
|
ngImport: i0,
|
|
462
462
|
type: ToolbarWidgetGroup,
|
|
463
463
|
decorators: [{
|