@angular/cdk-experimental 21.0.0-next.6 → 21.0.0-next.9
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/_polyfill-chunk.mjs.map +1 -1
- package/fesm2022/cdk-experimental.mjs +1 -1
- package/fesm2022/cdk-experimental.mjs.map +1 -1
- package/fesm2022/column-resize.mjs.map +1 -1
- package/fesm2022/popover-edit.mjs.map +1 -1
- package/fesm2022/scrolling.mjs.map +1 -1
- package/fesm2022/selection.mjs.map +1 -1
- package/fesm2022/table-scroll-container.mjs.map +1 -1
- package/package.json +3 -38
- package/types/column-resize.d.ts +37 -37
- package/types/popover-edit.d.ts +30 -30
- package/types/scrolling.d.ts +6 -6
- package/types/selection.d.ts +14 -14
- package/types/table-scroll-container.d.ts +6 -6
- package/fesm2022/_accordion-chunk.mjs +0 -153
- package/fesm2022/_accordion-chunk.mjs.map +0 -1
- package/fesm2022/_combobox-chunk.mjs +0 -278
- package/fesm2022/_combobox-chunk.mjs.map +0 -1
- package/fesm2022/_combobox-listbox-chunk.mjs +0 -278
- package/fesm2022/_combobox-listbox-chunk.mjs.map +0 -1
- package/fesm2022/_combobox-tree-chunk.mjs +0 -398
- package/fesm2022/_combobox-tree-chunk.mjs.map +0 -1
- package/fesm2022/_expansion-chunk.mjs +0 -87
- package/fesm2022/_expansion-chunk.mjs.map +0 -1
- package/fesm2022/_list-chunk.mjs +0 -374
- package/fesm2022/_list-chunk.mjs.map +0 -1
- package/fesm2022/_list-navigation-chunk.mjs +0 -131
- package/fesm2022/_list-navigation-chunk.mjs.map +0 -1
- package/fesm2022/_pointer-event-manager-chunk.mjs +0 -145
- package/fesm2022/_pointer-event-manager-chunk.mjs.map +0 -1
- package/fesm2022/_tabs-chunk.mjs +0 -211
- package/fesm2022/_tabs-chunk.mjs.map +0 -1
- package/fesm2022/_toolbar-chunk.mjs +0 -273
- package/fesm2022/_toolbar-chunk.mjs.map +0 -1
- package/fesm2022/_toolbar-radio-group-chunk.mjs +0 -222
- package/fesm2022/_toolbar-radio-group-chunk.mjs.map +0 -1
- package/fesm2022/accordion.mjs +0 -195
- package/fesm2022/accordion.mjs.map +0 -1
- package/fesm2022/combobox.mjs +0 -131
- package/fesm2022/combobox.mjs.map +0 -1
- package/fesm2022/deferred-content.mjs +0 -59
- package/fesm2022/deferred-content.mjs.map +0 -1
- package/fesm2022/listbox.mjs +0 -204
- package/fesm2022/listbox.mjs.map +0 -1
- package/fesm2022/radio-group.mjs +0 -200
- package/fesm2022/radio-group.mjs.map +0 -1
- package/fesm2022/tabs.mjs +0 -303
- package/fesm2022/tabs.mjs.map +0 -1
- package/fesm2022/toolbar.mjs +0 -221
- package/fesm2022/toolbar.mjs.map +0 -1
- package/fesm2022/tree.mjs +0 -333
- package/fesm2022/tree.mjs.map +0 -1
- package/fesm2022/ui-patterns.mjs +0 -24
- package/fesm2022/ui-patterns.mjs.map +0 -1
- package/types/_accordion-chunk.d.ts +0 -90
- package/types/_combobox-chunk.d.ts +0 -138
- package/types/_expansion-chunk.d.ts +0 -71
- package/types/_list-chunk.d.ts +0 -209
- package/types/_list-navigation-chunk.d.ts +0 -101
- package/types/_listbox-chunk.d.ts +0 -105
- package/types/_pointer-event-manager-chunk.d.ts +0 -98
- package/types/_radio-group-chunk.d.ts +0 -92
- package/types/_tabs-chunk.d.ts +0 -138
- package/types/_toolbar-chunk.d.ts +0 -150
- package/types/_tree-chunk.d.ts +0 -139
- package/types/accordion.d.ts +0 -95
- package/types/combobox.d.ts +0 -54
- package/types/deferred-content.d.ts +0 -37
- package/types/listbox.d.ts +0 -99
- package/types/radio-group.d.ts +0 -85
- package/types/tabs.d.ts +0 -160
- package/types/toolbar.d.ts +0 -115
- package/types/tree.d.ts +0 -155
- package/types/ui-patterns.d.ts +0 -157
package/fesm2022/tree.mjs
DELETED
|
@@ -1,333 +0,0 @@
|
|
|
1
|
-
import * as i0 from '@angular/core';
|
|
2
|
-
import { inject, computed, ElementRef, signal, input, booleanAttribute, model, afterRenderEffect, untracked, Directive } from '@angular/core';
|
|
3
|
-
import { _IdGenerator } from '@angular/cdk/a11y';
|
|
4
|
-
import { Directionality } from '@angular/cdk/bidi';
|
|
5
|
-
import * as i1$1 from '@angular/cdk-experimental/deferred-content';
|
|
6
|
-
import { DeferredContentAware, DeferredContent } from '@angular/cdk-experimental/deferred-content';
|
|
7
|
-
import * as i1 from '@angular/cdk-experimental/combobox';
|
|
8
|
-
import { CdkComboboxPopup } from '@angular/cdk-experimental/combobox';
|
|
9
|
-
import { ComboboxTreePattern, TreePattern, TreeItemPattern } from './_combobox-tree-chunk.mjs';
|
|
10
|
-
import './_list-chunk.mjs';
|
|
11
|
-
import './_list-navigation-chunk.mjs';
|
|
12
|
-
import './_expansion-chunk.mjs';
|
|
13
|
-
import './_pointer-event-manager-chunk.mjs';
|
|
14
|
-
|
|
15
|
-
/**
|
|
16
|
-
* Sort directives by their document order.
|
|
17
|
-
*/
|
|
18
|
-
function sortDirectives(a, b) {
|
|
19
|
-
return (a.element().compareDocumentPosition(b.element()) & Node.DOCUMENT_POSITION_PRECEDING) > 0
|
|
20
|
-
? 1
|
|
21
|
-
: -1;
|
|
22
|
-
}
|
|
23
|
-
/**
|
|
24
|
-
* A Tree container.
|
|
25
|
-
*
|
|
26
|
-
* Transforms nested lists into an accessible, ARIA-compliant tree structure.
|
|
27
|
-
*
|
|
28
|
-
* ```html
|
|
29
|
-
* <ul cdkTree [(value)]="selectedItems" [multi]="true">
|
|
30
|
-
* <li cdkTreeItem [value]="'leaf1'">Leaf Item 1</li>
|
|
31
|
-
* <li cdkTreeItem [value]="'parent1'">
|
|
32
|
-
* Parent Item 1
|
|
33
|
-
* <ul cdkTreeItemGroup [value]="'parent1'">
|
|
34
|
-
* <ng-template cdkTreeItemGroupContent>
|
|
35
|
-
* <li cdkTreeItem [value]="'child1.1'">Child Item 1.1</li>
|
|
36
|
-
* <li cdkTreeItem [value]="'child1.2'">Child Item 1.2</li>
|
|
37
|
-
* </ng-template>
|
|
38
|
-
* </ul>
|
|
39
|
-
* </li>
|
|
40
|
-
* <li cdkTreeItem [value]="'leaf2'" [disabled]="true">Disabled Leaf Item 2</li>
|
|
41
|
-
* </ul>
|
|
42
|
-
* ```
|
|
43
|
-
*/
|
|
44
|
-
class CdkTree {
|
|
45
|
-
/** A unique identifier for the tree. */
|
|
46
|
-
_generatedId = inject(_IdGenerator).getId('cdk-tree-');
|
|
47
|
-
// TODO(wagnermaciel): https://github.com/angular/components/pull/30495#discussion_r1972601144.
|
|
48
|
-
/** A unique identifier for the tree. */
|
|
49
|
-
id = computed(() => this._generatedId, ...(ngDevMode ? [{ debugName: "id" }] : []));
|
|
50
|
-
/** A reference to the parent combobox popup, if one exists. */
|
|
51
|
-
_popup = inject(CdkComboboxPopup, {
|
|
52
|
-
optional: true,
|
|
53
|
-
});
|
|
54
|
-
/** A reference to the tree element. */
|
|
55
|
-
_elementRef = inject(ElementRef);
|
|
56
|
-
/** All CdkTreeItem instances within this tree. */
|
|
57
|
-
_unorderedItems = signal(new Set(), ...(ngDevMode ? [{ debugName: "_unorderedItems" }] : []));
|
|
58
|
-
/** Orientation of the tree. */
|
|
59
|
-
orientation = input('vertical', ...(ngDevMode ? [{ debugName: "orientation" }] : []));
|
|
60
|
-
/** Whether multi-selection is allowed. */
|
|
61
|
-
multi = input(false, ...(ngDevMode ? [{ debugName: "multi", transform: booleanAttribute }] : [{ transform: booleanAttribute }]));
|
|
62
|
-
/** Whether the tree is disabled. */
|
|
63
|
-
disabled = input(false, ...(ngDevMode ? [{ debugName: "disabled", transform: booleanAttribute }] : [{ transform: booleanAttribute }]));
|
|
64
|
-
/** The selection strategy used by the tree. */
|
|
65
|
-
selectionMode = input('explicit', ...(ngDevMode ? [{ debugName: "selectionMode" }] : []));
|
|
66
|
-
/** The focus strategy used by the tree. */
|
|
67
|
-
focusMode = input('roving', ...(ngDevMode ? [{ debugName: "focusMode" }] : []));
|
|
68
|
-
/** Whether navigation wraps. */
|
|
69
|
-
wrap = input(true, ...(ngDevMode ? [{ debugName: "wrap", transform: booleanAttribute }] : [{ transform: booleanAttribute }]));
|
|
70
|
-
/** Whether to skip disabled items during navigation. */
|
|
71
|
-
skipDisabled = input(true, ...(ngDevMode ? [{ debugName: "skipDisabled", transform: booleanAttribute }] : [{ transform: booleanAttribute }]));
|
|
72
|
-
/** Typeahead delay. */
|
|
73
|
-
typeaheadDelay = input(0.5, ...(ngDevMode ? [{ debugName: "typeaheadDelay" }] : []));
|
|
74
|
-
/** Selected item values. */
|
|
75
|
-
value = model([], ...(ngDevMode ? [{ debugName: "value" }] : []));
|
|
76
|
-
/** Text direction. */
|
|
77
|
-
textDirection = inject(Directionality).valueSignal;
|
|
78
|
-
/** Whether the tree is in navigation mode. */
|
|
79
|
-
nav = input(false, ...(ngDevMode ? [{ debugName: "nav" }] : []));
|
|
80
|
-
/** The aria-current type. */
|
|
81
|
-
currentType = input('page', ...(ngDevMode ? [{ debugName: "currentType" }] : []));
|
|
82
|
-
/** The UI pattern for the tree. */
|
|
83
|
-
pattern;
|
|
84
|
-
/** Whether the tree has received focus yet. */
|
|
85
|
-
_hasFocused = signal(false, ...(ngDevMode ? [{ debugName: "_hasFocused" }] : []));
|
|
86
|
-
constructor() {
|
|
87
|
-
const inputs = {
|
|
88
|
-
...this,
|
|
89
|
-
id: this.id,
|
|
90
|
-
allItems: computed(() => [...this._unorderedItems()].sort(sortDirectives).map(item => item.pattern)),
|
|
91
|
-
activeItem: signal(undefined),
|
|
92
|
-
element: () => this._elementRef.nativeElement,
|
|
93
|
-
combobox: () => this._popup?.combobox?.pattern,
|
|
94
|
-
};
|
|
95
|
-
this.pattern = this._popup?.combobox
|
|
96
|
-
? new ComboboxTreePattern(inputs)
|
|
97
|
-
: new TreePattern(inputs);
|
|
98
|
-
if (this._popup?.combobox) {
|
|
99
|
-
this._popup?.controls?.set(this.pattern);
|
|
100
|
-
}
|
|
101
|
-
afterRenderEffect(() => {
|
|
102
|
-
if (!this._hasFocused()) {
|
|
103
|
-
this.pattern.setDefaultState();
|
|
104
|
-
}
|
|
105
|
-
});
|
|
106
|
-
afterRenderEffect(() => {
|
|
107
|
-
const items = inputs.allItems();
|
|
108
|
-
const activeItem = untracked(() => inputs.activeItem());
|
|
109
|
-
if (!items.some(i => i === activeItem) && activeItem) {
|
|
110
|
-
this.pattern.listBehavior.unfocus();
|
|
111
|
-
}
|
|
112
|
-
});
|
|
113
|
-
afterRenderEffect(() => {
|
|
114
|
-
const items = inputs.allItems();
|
|
115
|
-
const value = untracked(() => this.value());
|
|
116
|
-
if (items && value.some(v => !items.some(i => i.value() === v))) {
|
|
117
|
-
this.value.set(value.filter(v => items.some(i => i.value() === v)));
|
|
118
|
-
}
|
|
119
|
-
});
|
|
120
|
-
}
|
|
121
|
-
onFocus() {
|
|
122
|
-
this._hasFocused.set(true);
|
|
123
|
-
}
|
|
124
|
-
register(child) {
|
|
125
|
-
this._unorderedItems().add(child);
|
|
126
|
-
this._unorderedItems.set(new Set(this._unorderedItems()));
|
|
127
|
-
}
|
|
128
|
-
unregister(child) {
|
|
129
|
-
this._unorderedItems().delete(child);
|
|
130
|
-
this._unorderedItems.set(new Set(this._unorderedItems()));
|
|
131
|
-
}
|
|
132
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.0-next.2", ngImport: i0, type: CdkTree, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
133
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.2.0-next.2", type: CdkTree, isStandalone: true, selector: "[cdkTree]", inputs: { orientation: { classPropertyName: "orientation", publicName: "orientation", isSignal: true, isRequired: false, transformFunction: null }, multi: { classPropertyName: "multi", publicName: "multi", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, selectionMode: { classPropertyName: "selectionMode", publicName: "selectionMode", isSignal: true, isRequired: false, transformFunction: null }, focusMode: { classPropertyName: "focusMode", publicName: "focusMode", isSignal: true, isRequired: false, transformFunction: null }, wrap: { classPropertyName: "wrap", publicName: "wrap", isSignal: true, isRequired: false, transformFunction: null }, skipDisabled: { classPropertyName: "skipDisabled", publicName: "skipDisabled", isSignal: true, isRequired: false, transformFunction: null }, typeaheadDelay: { classPropertyName: "typeaheadDelay", publicName: "typeaheadDelay", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, nav: { classPropertyName: "nav", publicName: "nav", isSignal: true, isRequired: false, transformFunction: null }, currentType: { classPropertyName: "currentType", publicName: "currentType", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { value: "valueChange" }, host: { attributes: { "role": "tree" }, listeners: { "keydown": "pattern.onKeydown($event)", "pointerdown": "pattern.onPointerdown($event)", "focusin": "onFocus()" }, properties: { "attr.id": "id()", "attr.aria-orientation": "pattern.orientation()", "attr.aria-multiselectable": "pattern.multi()", "attr.aria-disabled": "pattern.disabled()", "attr.aria-activedescendant": "pattern.activedescendant()", "tabindex": "pattern.tabindex()" }, classAttribute: "cdk-tree" }, exportAs: ["cdkTree"], hostDirectives: [{ directive: i1.CdkComboboxPopup }], ngImport: i0 });
|
|
134
|
-
}
|
|
135
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.0-next.2", ngImport: i0, type: CdkTree, decorators: [{
|
|
136
|
-
type: Directive,
|
|
137
|
-
args: [{
|
|
138
|
-
selector: '[cdkTree]',
|
|
139
|
-
exportAs: 'cdkTree',
|
|
140
|
-
host: {
|
|
141
|
-
'class': 'cdk-tree',
|
|
142
|
-
'role': 'tree',
|
|
143
|
-
'[attr.id]': 'id()',
|
|
144
|
-
'[attr.aria-orientation]': 'pattern.orientation()',
|
|
145
|
-
'[attr.aria-multiselectable]': 'pattern.multi()',
|
|
146
|
-
'[attr.aria-disabled]': 'pattern.disabled()',
|
|
147
|
-
'[attr.aria-activedescendant]': 'pattern.activedescendant()',
|
|
148
|
-
'[tabindex]': 'pattern.tabindex()',
|
|
149
|
-
'(keydown)': 'pattern.onKeydown($event)',
|
|
150
|
-
'(pointerdown)': 'pattern.onPointerdown($event)',
|
|
151
|
-
'(focusin)': 'onFocus()',
|
|
152
|
-
},
|
|
153
|
-
hostDirectives: [{ directive: CdkComboboxPopup }],
|
|
154
|
-
}]
|
|
155
|
-
}], ctorParameters: () => [] });
|
|
156
|
-
/**
|
|
157
|
-
* A selectable and expandable Tree Item in a Tree.
|
|
158
|
-
*/
|
|
159
|
-
class CdkTreeItem {
|
|
160
|
-
/** A reference to the tree item element. */
|
|
161
|
-
_elementRef = inject(ElementRef);
|
|
162
|
-
/** A unique identifier for the tree item. */
|
|
163
|
-
_id = inject(_IdGenerator).getId('cdk-tree-item-');
|
|
164
|
-
/** The owned tree item group. */
|
|
165
|
-
_group = signal(undefined, ...(ngDevMode ? [{ debugName: "_group" }] : []));
|
|
166
|
-
/** The id of the owned group. */
|
|
167
|
-
ownsId = computed(() => this._group()?.id, ...(ngDevMode ? [{ debugName: "ownsId" }] : []));
|
|
168
|
-
/** The host native element. */
|
|
169
|
-
element = computed(() => this._elementRef.nativeElement, ...(ngDevMode ? [{ debugName: "element" }] : []));
|
|
170
|
-
/** The value of the tree item. */
|
|
171
|
-
value = input.required(...(ngDevMode ? [{ debugName: "value" }] : []));
|
|
172
|
-
/** The parent tree root or tree item group. */
|
|
173
|
-
parent = input.required(...(ngDevMode ? [{ debugName: "parent" }] : []));
|
|
174
|
-
/** Whether the tree item is disabled. */
|
|
175
|
-
disabled = input(false, ...(ngDevMode ? [{ debugName: "disabled", transform: booleanAttribute }] : [{ transform: booleanAttribute }]));
|
|
176
|
-
/** Optional label for typeahead. Defaults to the element's textContent. */
|
|
177
|
-
label = input(...(ngDevMode ? [undefined, { debugName: "label" }] : []));
|
|
178
|
-
/** Search term for typeahead. */
|
|
179
|
-
searchTerm = computed(() => this.label() ?? this.element().textContent, ...(ngDevMode ? [{ debugName: "searchTerm" }] : []));
|
|
180
|
-
/** The tree root. */
|
|
181
|
-
tree = computed(() => {
|
|
182
|
-
if (this.parent() instanceof CdkTree) {
|
|
183
|
-
return this.parent();
|
|
184
|
-
}
|
|
185
|
-
return this.parent().ownedBy().tree();
|
|
186
|
-
}, ...(ngDevMode ? [{ debugName: "tree" }] : []));
|
|
187
|
-
/** The UI pattern for this item. */
|
|
188
|
-
pattern;
|
|
189
|
-
constructor() {
|
|
190
|
-
// Updates the visibility of the owned group.
|
|
191
|
-
afterRenderEffect(() => {
|
|
192
|
-
this._group()?.visible.set(this.pattern.expanded());
|
|
193
|
-
});
|
|
194
|
-
}
|
|
195
|
-
ngOnInit() {
|
|
196
|
-
this.parent().register(this);
|
|
197
|
-
this.tree().register(this);
|
|
198
|
-
const treePattern = computed(() => this.tree().pattern, ...(ngDevMode ? [{ debugName: "treePattern" }] : []));
|
|
199
|
-
const parentPattern = computed(() => {
|
|
200
|
-
if (this.parent() instanceof CdkTree) {
|
|
201
|
-
return treePattern();
|
|
202
|
-
}
|
|
203
|
-
return this.parent().ownedBy().pattern;
|
|
204
|
-
}, ...(ngDevMode ? [{ debugName: "parentPattern" }] : []));
|
|
205
|
-
this.pattern = new TreeItemPattern({
|
|
206
|
-
...this,
|
|
207
|
-
id: () => this._id,
|
|
208
|
-
tree: treePattern,
|
|
209
|
-
parent: parentPattern,
|
|
210
|
-
children: computed(() => this._group()
|
|
211
|
-
?.children()
|
|
212
|
-
.map(item => item.pattern) ?? []),
|
|
213
|
-
hasChildren: computed(() => !!this._group()),
|
|
214
|
-
});
|
|
215
|
-
}
|
|
216
|
-
ngOnDestroy() {
|
|
217
|
-
this.parent().unregister(this);
|
|
218
|
-
this.tree().unregister(this);
|
|
219
|
-
}
|
|
220
|
-
register(group) {
|
|
221
|
-
this._group.set(group);
|
|
222
|
-
}
|
|
223
|
-
unregister() {
|
|
224
|
-
this._group.set(undefined);
|
|
225
|
-
}
|
|
226
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.0-next.2", ngImport: i0, type: CdkTreeItem, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
227
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.2.0-next.2", type: CdkTreeItem, isStandalone: true, selector: "[cdkTreeItem]", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: true, transformFunction: null }, parent: { classPropertyName: "parent", publicName: "parent", isSignal: true, isRequired: true, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "role": "treeitem" }, properties: { "class.cdk-active": "pattern.active()", "id": "pattern.id()", "attr.aria-expanded": "pattern.expandable() ? pattern.expanded() : null", "attr.aria-selected": "pattern.selected()", "attr.aria-current": "pattern.current()", "attr.aria-disabled": "pattern.disabled()", "attr.aria-level": "pattern.level()", "attr.aria-owns": "ownsId()", "attr.aria-setsize": "pattern.setsize()", "attr.aria-posinset": "pattern.posinset()", "attr.tabindex": "pattern.tabindex()" }, classAttribute: "cdk-treeitem" }, exportAs: ["cdkTreeItem"], ngImport: i0 });
|
|
228
|
-
}
|
|
229
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.0-next.2", ngImport: i0, type: CdkTreeItem, decorators: [{
|
|
230
|
-
type: Directive,
|
|
231
|
-
args: [{
|
|
232
|
-
selector: '[cdkTreeItem]',
|
|
233
|
-
exportAs: 'cdkTreeItem',
|
|
234
|
-
host: {
|
|
235
|
-
'class': 'cdk-treeitem',
|
|
236
|
-
'[class.cdk-active]': 'pattern.active()',
|
|
237
|
-
'role': 'treeitem',
|
|
238
|
-
'[id]': 'pattern.id()',
|
|
239
|
-
'[attr.aria-expanded]': 'pattern.expandable() ? pattern.expanded() : null',
|
|
240
|
-
'[attr.aria-selected]': 'pattern.selected()',
|
|
241
|
-
'[attr.aria-current]': 'pattern.current()',
|
|
242
|
-
'[attr.aria-disabled]': 'pattern.disabled()',
|
|
243
|
-
'[attr.aria-level]': 'pattern.level()',
|
|
244
|
-
'[attr.aria-owns]': 'ownsId()',
|
|
245
|
-
'[attr.aria-setsize]': 'pattern.setsize()',
|
|
246
|
-
'[attr.aria-posinset]': 'pattern.posinset()',
|
|
247
|
-
'[attr.tabindex]': 'pattern.tabindex()',
|
|
248
|
-
},
|
|
249
|
-
}]
|
|
250
|
-
}], ctorParameters: () => [] });
|
|
251
|
-
/**
|
|
252
|
-
* Container that designates content as a group.
|
|
253
|
-
*/
|
|
254
|
-
class CdkTreeItemGroup {
|
|
255
|
-
/** A reference to the group element. */
|
|
256
|
-
_elementRef = inject(ElementRef);
|
|
257
|
-
/** The DeferredContentAware host directive. */
|
|
258
|
-
_deferredContentAware = inject(DeferredContentAware);
|
|
259
|
-
/** All groupable items that are descendants of the group. */
|
|
260
|
-
_unorderedItems = signal(new Set(), ...(ngDevMode ? [{ debugName: "_unorderedItems" }] : []));
|
|
261
|
-
/** The host native element. */
|
|
262
|
-
element = computed(() => this._elementRef.nativeElement, ...(ngDevMode ? [{ debugName: "element" }] : []));
|
|
263
|
-
/** Unique ID for the group. */
|
|
264
|
-
id = inject(_IdGenerator).getId('cdk-tree-group-');
|
|
265
|
-
/** Whether the group is visible. */
|
|
266
|
-
visible = signal(true, ...(ngDevMode ? [{ debugName: "visible" }] : []));
|
|
267
|
-
/** Child items within this group. */
|
|
268
|
-
children = computed(() => [...this._unorderedItems()].sort(sortDirectives), ...(ngDevMode ? [{ debugName: "children" }] : []));
|
|
269
|
-
/** Tree item that owns the group. */
|
|
270
|
-
ownedBy = input.required(...(ngDevMode ? [{ debugName: "ownedBy" }] : []));
|
|
271
|
-
constructor() {
|
|
272
|
-
this._deferredContentAware.preserveContent.set(true);
|
|
273
|
-
// Connect the group's hidden state to the DeferredContentAware's visibility.
|
|
274
|
-
afterRenderEffect(() => {
|
|
275
|
-
this.ownedBy().tree().pattern instanceof ComboboxTreePattern
|
|
276
|
-
? this._deferredContentAware.contentVisible.set(true)
|
|
277
|
-
: this._deferredContentAware.contentVisible.set(this.visible());
|
|
278
|
-
});
|
|
279
|
-
}
|
|
280
|
-
ngOnInit() {
|
|
281
|
-
this.ownedBy().register(this);
|
|
282
|
-
}
|
|
283
|
-
ngOnDestroy() {
|
|
284
|
-
this.ownedBy().unregister();
|
|
285
|
-
}
|
|
286
|
-
register(child) {
|
|
287
|
-
this._unorderedItems().add(child);
|
|
288
|
-
this._unorderedItems.set(new Set(this._unorderedItems()));
|
|
289
|
-
}
|
|
290
|
-
unregister(child) {
|
|
291
|
-
this._unorderedItems().delete(child);
|
|
292
|
-
this._unorderedItems.set(new Set(this._unorderedItems()));
|
|
293
|
-
}
|
|
294
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.0-next.2", ngImport: i0, type: CdkTreeItemGroup, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
295
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.2.0-next.2", type: CdkTreeItemGroup, isStandalone: true, selector: "[cdkTreeItemGroup]", inputs: { ownedBy: { classPropertyName: "ownedBy", publicName: "ownedBy", isSignal: true, isRequired: true, transformFunction: null } }, host: { attributes: { "role": "group" }, properties: { "id": "id", "attr.inert": "visible() ? null : true" }, classAttribute: "cdk-treeitem-group" }, exportAs: ["cdkTreeItemGroup"], hostDirectives: [{ directive: i1$1.DeferredContentAware, inputs: ["preserveContent", "preserveContent"] }], ngImport: i0 });
|
|
296
|
-
}
|
|
297
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.0-next.2", ngImport: i0, type: CdkTreeItemGroup, decorators: [{
|
|
298
|
-
type: Directive,
|
|
299
|
-
args: [{
|
|
300
|
-
selector: '[cdkTreeItemGroup]',
|
|
301
|
-
exportAs: 'cdkTreeItemGroup',
|
|
302
|
-
hostDirectives: [
|
|
303
|
-
{
|
|
304
|
-
directive: DeferredContentAware,
|
|
305
|
-
inputs: ['preserveContent'],
|
|
306
|
-
},
|
|
307
|
-
],
|
|
308
|
-
host: {
|
|
309
|
-
'class': 'cdk-treeitem-group',
|
|
310
|
-
'role': 'group',
|
|
311
|
-
'[id]': 'id',
|
|
312
|
-
'[attr.inert]': 'visible() ? null : true',
|
|
313
|
-
},
|
|
314
|
-
}]
|
|
315
|
-
}], ctorParameters: () => [] });
|
|
316
|
-
/**
|
|
317
|
-
* A structural directive that marks the `ng-template` to be used as the content
|
|
318
|
-
* for a `CdkTreeItemGroup`. This content can be lazily loaded.
|
|
319
|
-
*/
|
|
320
|
-
class CdkTreeItemGroupContent {
|
|
321
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.0-next.2", ngImport: i0, type: CdkTreeItemGroupContent, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
322
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.2.0-next.2", type: CdkTreeItemGroupContent, isStandalone: true, selector: "ng-template[cdkTreeItemGroupContent]", hostDirectives: [{ directive: i1$1.DeferredContent }], ngImport: i0 });
|
|
323
|
-
}
|
|
324
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.0-next.2", ngImport: i0, type: CdkTreeItemGroupContent, decorators: [{
|
|
325
|
-
type: Directive,
|
|
326
|
-
args: [{
|
|
327
|
-
selector: 'ng-template[cdkTreeItemGroupContent]',
|
|
328
|
-
hostDirectives: [DeferredContent],
|
|
329
|
-
}]
|
|
330
|
-
}] });
|
|
331
|
-
|
|
332
|
-
export { CdkTree, CdkTreeItem, CdkTreeItemGroup, CdkTreeItemGroupContent };
|
|
333
|
-
//# sourceMappingURL=tree.mjs.map
|
package/fesm2022/tree.mjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tree.mjs","sources":["../../../../../k8-fastbuild-ST-199a4f3c4e20/bin/src/cdk-experimental/tree/tree.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 Directive,\n ElementRef,\n afterRenderEffect,\n booleanAttribute,\n computed,\n inject,\n input,\n model,\n signal,\n Signal,\n OnInit,\n OnDestroy,\n untracked,\n} from '@angular/core';\nimport {_IdGenerator} from '@angular/cdk/a11y';\nimport {Directionality} from '@angular/cdk/bidi';\nimport {DeferredContent, DeferredContentAware} from '@angular/cdk-experimental/deferred-content';\nimport {ComboboxTreePattern, TreeItemPattern, TreePattern} from '../ui-patterns';\nimport {CdkComboboxPopup} from '@angular/cdk-experimental/combobox';\n\ninterface HasElement {\n element: Signal<HTMLElement>;\n}\n\n/**\n * Sort directives by their document order.\n */\nfunction sortDirectives(a: HasElement, b: HasElement) {\n return (a.element().compareDocumentPosition(b.element()) & Node.DOCUMENT_POSITION_PRECEDING) > 0\n ? 1\n : -1;\n}\n\n/**\n * A Tree container.\n *\n * Transforms nested lists into an accessible, ARIA-compliant tree structure.\n *\n * ```html\n * <ul cdkTree [(value)]=\"selectedItems\" [multi]=\"true\">\n * <li cdkTreeItem [value]=\"'leaf1'\">Leaf Item 1</li>\n * <li cdkTreeItem [value]=\"'parent1'\">\n * Parent Item 1\n * <ul cdkTreeItemGroup [value]=\"'parent1'\">\n * <ng-template cdkTreeItemGroupContent>\n * <li cdkTreeItem [value]=\"'child1.1'\">Child Item 1.1</li>\n * <li cdkTreeItem [value]=\"'child1.2'\">Child Item 1.2</li>\n * </ng-template>\n * </ul>\n * </li>\n * <li cdkTreeItem [value]=\"'leaf2'\" [disabled]=\"true\">Disabled Leaf Item 2</li>\n * </ul>\n * ```\n */\n@Directive({\n selector: '[cdkTree]',\n exportAs: 'cdkTree',\n host: {\n 'class': 'cdk-tree',\n 'role': 'tree',\n '[attr.id]': 'id()',\n '[attr.aria-orientation]': 'pattern.orientation()',\n '[attr.aria-multiselectable]': 'pattern.multi()',\n '[attr.aria-disabled]': 'pattern.disabled()',\n '[attr.aria-activedescendant]': 'pattern.activedescendant()',\n '[tabindex]': 'pattern.tabindex()',\n '(keydown)': 'pattern.onKeydown($event)',\n '(pointerdown)': 'pattern.onPointerdown($event)',\n '(focusin)': 'onFocus()',\n },\n hostDirectives: [{directive: CdkComboboxPopup}],\n})\nexport class CdkTree<V> {\n /** A unique identifier for the tree. */\n private readonly _generatedId = inject(_IdGenerator).getId('cdk-tree-');\n\n // TODO(wagnermaciel): https://github.com/angular/components/pull/30495#discussion_r1972601144.\n /** A unique identifier for the tree. */\n protected id = computed(() => this._generatedId);\n\n /** A reference to the parent combobox popup, if one exists. */\n private readonly _popup = inject<CdkComboboxPopup<V>>(CdkComboboxPopup, {\n optional: true,\n });\n\n /** A reference to the tree element. */\n private readonly _elementRef = inject(ElementRef);\n\n /** All CdkTreeItem instances within this tree. */\n private readonly _unorderedItems = signal(new Set<CdkTreeItem<V>>());\n\n /** Orientation of the tree. */\n readonly orientation = input<'vertical' | 'horizontal'>('vertical');\n\n /** Whether multi-selection is allowed. */\n readonly multi = input(false, {transform: booleanAttribute});\n\n /** Whether the tree is disabled. */\n readonly disabled = input(false, {transform: booleanAttribute});\n\n /** The selection strategy used by the tree. */\n readonly selectionMode = input<'explicit' | 'follow'>('explicit');\n\n /** The focus strategy used by the tree. */\n readonly focusMode = input<'roving' | 'activedescendant'>('roving');\n\n /** Whether navigation wraps. */\n readonly wrap = input(true, {transform: booleanAttribute});\n\n /** Whether to skip disabled items during navigation. */\n readonly skipDisabled = input(true, {transform: booleanAttribute});\n\n /** Typeahead delay. */\n readonly typeaheadDelay = input(0.5);\n\n /** Selected item values. */\n readonly value = model<V[]>([]);\n\n /** Text direction. */\n readonly textDirection = inject(Directionality).valueSignal;\n\n /** Whether the tree is in navigation mode. */\n readonly nav = input(false);\n\n /** The aria-current type. */\n readonly currentType = input<'page' | 'step' | 'location' | 'date' | 'time' | 'true' | 'false'>(\n 'page',\n );\n\n /** The UI pattern for the tree. */\n readonly pattern: TreePattern<V>;\n\n /** Whether the tree has received focus yet. */\n private _hasFocused = signal(false);\n\n constructor() {\n const inputs = {\n ...this,\n id: this.id,\n allItems: computed(() =>\n [...this._unorderedItems()].sort(sortDirectives).map(item => item.pattern),\n ),\n activeItem: signal<TreeItemPattern<V> | undefined>(undefined),\n element: () => this._elementRef.nativeElement,\n combobox: () => this._popup?.combobox?.pattern,\n };\n\n this.pattern = this._popup?.combobox\n ? new ComboboxTreePattern<V>(inputs)\n : new TreePattern<V>(inputs);\n\n if (this._popup?.combobox) {\n this._popup?.controls?.set(this.pattern as ComboboxTreePattern<V>);\n }\n\n afterRenderEffect(() => {\n if (!this._hasFocused()) {\n this.pattern.setDefaultState();\n }\n });\n\n afterRenderEffect(() => {\n const items = inputs.allItems();\n const activeItem = untracked(() => inputs.activeItem());\n\n if (!items.some(i => i === activeItem) && activeItem) {\n this.pattern.listBehavior.unfocus();\n }\n });\n\n afterRenderEffect(() => {\n const items = inputs.allItems();\n const value = untracked(() => this.value());\n\n if (items && value.some(v => !items.some(i => i.value() === v))) {\n this.value.set(value.filter(v => items.some(i => i.value() === v)));\n }\n });\n }\n\n onFocus() {\n this._hasFocused.set(true);\n }\n\n register(child: CdkTreeItem<V>) {\n this._unorderedItems().add(child);\n this._unorderedItems.set(new Set(this._unorderedItems()));\n }\n\n unregister(child: CdkTreeItem<V>) {\n this._unorderedItems().delete(child);\n this._unorderedItems.set(new Set(this._unorderedItems()));\n }\n}\n\n/**\n * A selectable and expandable Tree Item in a Tree.\n */\n@Directive({\n selector: '[cdkTreeItem]',\n exportAs: 'cdkTreeItem',\n host: {\n 'class': 'cdk-treeitem',\n '[class.cdk-active]': 'pattern.active()',\n 'role': 'treeitem',\n '[id]': 'pattern.id()',\n '[attr.aria-expanded]': 'pattern.expandable() ? pattern.expanded() : null',\n '[attr.aria-selected]': 'pattern.selected()',\n '[attr.aria-current]': 'pattern.current()',\n '[attr.aria-disabled]': 'pattern.disabled()',\n '[attr.aria-level]': 'pattern.level()',\n '[attr.aria-owns]': 'ownsId()',\n '[attr.aria-setsize]': 'pattern.setsize()',\n '[attr.aria-posinset]': 'pattern.posinset()',\n '[attr.tabindex]': 'pattern.tabindex()',\n },\n})\nexport class CdkTreeItem<V> implements OnInit, OnDestroy, HasElement {\n /** A reference to the tree item element. */\n private readonly _elementRef = inject(ElementRef);\n\n /** A unique identifier for the tree item. */\n private readonly _id = inject(_IdGenerator).getId('cdk-tree-item-');\n\n /** The owned tree item group. */\n private readonly _group = signal<CdkTreeItemGroup<V> | undefined>(undefined);\n\n /** The id of the owned group. */\n readonly ownsId = computed(() => this._group()?.id);\n\n /** The host native element. */\n readonly element = computed(() => this._elementRef.nativeElement);\n\n /** The value of the tree item. */\n readonly value = input.required<V>();\n\n /** The parent tree root or tree item group. */\n readonly parent = input.required<CdkTree<V> | CdkTreeItemGroup<V>>();\n\n /** Whether the tree item is disabled. */\n readonly disabled = input(false, {transform: booleanAttribute});\n\n /** Optional label for typeahead. Defaults to the element's textContent. */\n readonly label = input<string>();\n\n /** Search term for typeahead. */\n readonly searchTerm = computed(() => this.label() ?? this.element().textContent);\n\n /** The tree root. */\n readonly tree: Signal<CdkTree<V>> = computed(() => {\n if (this.parent() instanceof CdkTree) {\n return this.parent() as CdkTree<V>;\n }\n return (this.parent() as CdkTreeItemGroup<V>).ownedBy().tree();\n });\n\n /** The UI pattern for this item. */\n pattern: TreeItemPattern<V>;\n\n constructor() {\n // Updates the visibility of the owned group.\n afterRenderEffect(() => {\n this._group()?.visible.set(this.pattern.expanded());\n });\n }\n\n ngOnInit() {\n this.parent().register(this);\n this.tree().register(this);\n\n const treePattern = computed(() => this.tree().pattern);\n const parentPattern = computed(() => {\n if (this.parent() instanceof CdkTree) {\n return treePattern();\n }\n return (this.parent() as CdkTreeItemGroup<V>).ownedBy().pattern;\n });\n this.pattern = new TreeItemPattern<V>({\n ...this,\n id: () => this._id,\n tree: treePattern,\n parent: parentPattern,\n children: computed(\n () =>\n this._group()\n ?.children()\n .map(item => (item as CdkTreeItem<V>).pattern) ?? [],\n ),\n hasChildren: computed(() => !!this._group()),\n });\n }\n\n ngOnDestroy() {\n this.parent().unregister(this);\n this.tree().unregister(this);\n }\n\n register(group: CdkTreeItemGroup<V>) {\n this._group.set(group);\n }\n\n unregister() {\n this._group.set(undefined);\n }\n}\n\n/**\n * Container that designates content as a group.\n */\n@Directive({\n selector: '[cdkTreeItemGroup]',\n exportAs: 'cdkTreeItemGroup',\n hostDirectives: [\n {\n directive: DeferredContentAware,\n inputs: ['preserveContent'],\n },\n ],\n host: {\n 'class': 'cdk-treeitem-group',\n 'role': 'group',\n '[id]': 'id',\n '[attr.inert]': 'visible() ? null : true',\n },\n})\nexport class CdkTreeItemGroup<V> implements OnInit, OnDestroy, HasElement {\n /** A reference to the group element. */\n private readonly _elementRef = inject(ElementRef);\n\n /** The DeferredContentAware host directive. */\n private readonly _deferredContentAware = inject(DeferredContentAware);\n\n /** All groupable items that are descendants of the group. */\n private readonly _unorderedItems = signal(new Set<CdkTreeItem<V>>());\n\n /** The host native element. */\n readonly element = computed(() => this._elementRef.nativeElement);\n\n /** Unique ID for the group. */\n readonly id = inject(_IdGenerator).getId('cdk-tree-group-');\n\n /** Whether the group is visible. */\n readonly visible = signal(true);\n\n /** Child items within this group. */\n readonly children = computed(() => [...this._unorderedItems()].sort(sortDirectives));\n\n /** Tree item that owns the group. */\n readonly ownedBy = input.required<CdkTreeItem<V>>();\n\n constructor() {\n this._deferredContentAware.preserveContent.set(true);\n // Connect the group's hidden state to the DeferredContentAware's visibility.\n afterRenderEffect(() => {\n this.ownedBy().tree().pattern instanceof ComboboxTreePattern\n ? this._deferredContentAware.contentVisible.set(true)\n : this._deferredContentAware.contentVisible.set(this.visible());\n });\n }\n\n ngOnInit() {\n this.ownedBy().register(this);\n }\n\n ngOnDestroy() {\n this.ownedBy().unregister();\n }\n\n register(child: CdkTreeItem<V>) {\n this._unorderedItems().add(child);\n this._unorderedItems.set(new Set(this._unorderedItems()));\n }\n\n unregister(child: CdkTreeItem<V>) {\n this._unorderedItems().delete(child);\n this._unorderedItems.set(new Set(this._unorderedItems()));\n }\n}\n\n/**\n * A structural directive that marks the `ng-template` to be used as the content\n * for a `CdkTreeItemGroup`. This content can be lazily loaded.\n */\n@Directive({\n selector: 'ng-template[cdkTreeItemGroupContent]',\n hostDirectives: [DeferredContent],\n})\nexport class CdkTreeItemGroupContent {}\n"],"names":["i2"],"mappings":"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"}
|
package/fesm2022/ui-patterns.mjs
DELETED
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
export { ComboboxPattern } from './_combobox-chunk.mjs';
|
|
2
|
-
export { ComboboxListboxPattern, ListboxPattern, OptionPattern } from './_combobox-listbox-chunk.mjs';
|
|
3
|
-
export { RadioButtonPattern, RadioGroupPattern, ToolbarRadioGroupPattern } from './_toolbar-radio-group-chunk.mjs';
|
|
4
|
-
export { TabListPattern, TabPanelPattern, TabPattern } from './_tabs-chunk.mjs';
|
|
5
|
-
export { ToolbarPattern, ToolbarWidgetGroupPattern, ToolbarWidgetPattern } from './_toolbar-chunk.mjs';
|
|
6
|
-
export { AccordionGroupPattern, AccordionPanelPattern, AccordionTriggerPattern } from './_accordion-chunk.mjs';
|
|
7
|
-
export { ComboboxTreePattern, TreeItemPattern, TreePattern } from './_combobox-tree-chunk.mjs';
|
|
8
|
-
import '@angular/core';
|
|
9
|
-
import './_pointer-event-manager-chunk.mjs';
|
|
10
|
-
import './_list-chunk.mjs';
|
|
11
|
-
import './_list-navigation-chunk.mjs';
|
|
12
|
-
import './_expansion-chunk.mjs';
|
|
13
|
-
|
|
14
|
-
/** Converts a getter setter style signal to a WritableSignalLike. */
|
|
15
|
-
function convertGetterSetterToWritableSignalLike(getter, setter) {
|
|
16
|
-
// tslint:disable-next-line:ban Have to use `Object.assign` to preserve the getter function.
|
|
17
|
-
return Object.assign(getter, {
|
|
18
|
-
set: setter,
|
|
19
|
-
update: (updateCallback) => setter(updateCallback(getter())),
|
|
20
|
-
});
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
export { convertGetterSetterToWritableSignalLike };
|
|
24
|
-
//# sourceMappingURL=ui-patterns.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ui-patterns.mjs","sources":["../../../../../k8-fastbuild-ST-199a4f3c4e20/bin/src/cdk-experimental/ui-patterns/behaviors/signal-like/signal-like.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\nexport type SignalLike<T> = () => T;\n\nexport interface WritableSignalLike<T> extends SignalLike<T> {\n set(value: T): void;\n update(updateFn: (value: T) => T): void;\n}\n\n/** Converts a getter setter style signal to a WritableSignalLike. */\nexport function convertGetterSetterToWritableSignalLike<T>(\n getter: () => T,\n setter: (v: T) => void,\n): WritableSignalLike<T> {\n // tslint:disable-next-line:ban Have to use `Object.assign` to preserve the getter function.\n return Object.assign(getter, {\n set: setter,\n update: (updateCallback: (v: T) => T) => setter(updateCallback(getter())),\n });\n}\n"],"names":[],"mappings":";;;;;;;;;;;;;AAeA;AACgB,SAAA,uCAAuC,CACrD,MAAe,EACf,MAAsB,EAAA;;AAGtB,IAAA,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE;AAC3B,QAAA,GAAG,EAAE,MAAM;AACX,QAAA,MAAM,EAAE,CAAC,cAA2B,KAAK,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC,CAAC;AAC1E,KAAA,CAAC;AACJ;;;;"}
|
|
@@ -1,90 +0,0 @@
|
|
|
1
|
-
import * as _angular_core from '@angular/core';
|
|
2
|
-
import { KeyboardEventManager, PointerEventManager } from './_pointer-event-manager-chunk.js';
|
|
3
|
-
import { ListExpansionInputs, ListExpansion, ExpansionItem, ExpansionControl } from './_expansion-chunk.js';
|
|
4
|
-
import { ListNavigationInputs, ListFocusInputs, ListNavigation, ListFocus, ListNavigationItem, ListFocusItem, SignalLike } from './_list-navigation-chunk.js';
|
|
5
|
-
|
|
6
|
-
/** Inputs of the AccordionGroupPattern. */
|
|
7
|
-
type AccordionGroupInputs = Omit<ListNavigationInputs<AccordionTriggerPattern> & ListFocusInputs<AccordionTriggerPattern> & Omit<ListExpansionInputs, 'items'>, 'focusMode'>;
|
|
8
|
-
interface AccordionGroupPattern extends AccordionGroupInputs {
|
|
9
|
-
}
|
|
10
|
-
/** A pattern controls the nested Accordions. */
|
|
11
|
-
declare class AccordionGroupPattern {
|
|
12
|
-
readonly inputs: AccordionGroupInputs;
|
|
13
|
-
/** Controls navigation for the group. */
|
|
14
|
-
navigation: ListNavigation<AccordionTriggerPattern>;
|
|
15
|
-
/** Controls focus for the group. */
|
|
16
|
-
focusManager: ListFocus<AccordionTriggerPattern>;
|
|
17
|
-
/** Controls expansion for the group. */
|
|
18
|
-
expansionManager: ListExpansion;
|
|
19
|
-
constructor(inputs: AccordionGroupInputs);
|
|
20
|
-
}
|
|
21
|
-
/** Inputs for the AccordionTriggerPattern. */
|
|
22
|
-
type AccordionTriggerInputs = Omit<ListNavigationItem & ListFocusItem, 'index'> & Omit<ExpansionItem, 'expansionId' | 'expandable'> & {
|
|
23
|
-
/** A local unique identifier for the trigger. */
|
|
24
|
-
value: SignalLike<string>;
|
|
25
|
-
/** The parent accordion group that controls this trigger. */
|
|
26
|
-
accordionGroup: SignalLike<AccordionGroupPattern>;
|
|
27
|
-
/** The accordion panel controlled by this trigger. */
|
|
28
|
-
accordionPanel: SignalLike<AccordionPanelPattern | undefined>;
|
|
29
|
-
};
|
|
30
|
-
interface AccordionTriggerPattern extends AccordionTriggerInputs {
|
|
31
|
-
}
|
|
32
|
-
/** A pattern controls the expansion state of an accordion. */
|
|
33
|
-
declare class AccordionTriggerPattern {
|
|
34
|
-
readonly inputs: AccordionTriggerInputs;
|
|
35
|
-
/** Whether this tab has expandable content. */
|
|
36
|
-
expandable: SignalLike<boolean>;
|
|
37
|
-
/** The unique identifier used by the expansion behavior. */
|
|
38
|
-
expansionId: SignalLike<string>;
|
|
39
|
-
/** Whether an accordion is expanded. */
|
|
40
|
-
expanded: SignalLike<boolean>;
|
|
41
|
-
/** Controls the expansion state for the trigger. */
|
|
42
|
-
expansionControl: ExpansionControl;
|
|
43
|
-
/** Whether the trigger is active. */
|
|
44
|
-
active: _angular_core.Signal<boolean>;
|
|
45
|
-
/** Id of the accordion panel controlled by the trigger. */
|
|
46
|
-
controls: _angular_core.Signal<string | undefined>;
|
|
47
|
-
/** The tabindex of the trigger. */
|
|
48
|
-
tabindex: _angular_core.Signal<-1 | 0>;
|
|
49
|
-
/** Whether the trigger is disabled. Disabling an accordion group disables all the triggers. */
|
|
50
|
-
disabled: _angular_core.Signal<boolean>;
|
|
51
|
-
/** The index of the trigger within its accordion group. */
|
|
52
|
-
index: _angular_core.Signal<number>;
|
|
53
|
-
constructor(inputs: AccordionTriggerInputs);
|
|
54
|
-
/** The key used to navigate to the previous accordion trigger. */
|
|
55
|
-
prevKey: _angular_core.Signal<"ArrowUp" | "ArrowRight" | "ArrowLeft">;
|
|
56
|
-
/** The key used to navigate to the next accordion trigger. */
|
|
57
|
-
nextKey: _angular_core.Signal<"ArrowRight" | "ArrowLeft" | "ArrowDown">;
|
|
58
|
-
/** The keydown event manager for the accordion trigger. */
|
|
59
|
-
keydown: _angular_core.Signal<KeyboardEventManager<KeyboardEvent>>;
|
|
60
|
-
/** The pointerdown event manager for the accordion trigger. */
|
|
61
|
-
pointerdown: _angular_core.Signal<PointerEventManager<PointerEvent>>;
|
|
62
|
-
/** Handles keydown events on the trigger, delegating to the group if not disabled. */
|
|
63
|
-
onKeydown(event: KeyboardEvent): void;
|
|
64
|
-
/** Handles pointerdown events on the trigger, delegating to the group if not disabled. */
|
|
65
|
-
onPointerdown(event: PointerEvent): void;
|
|
66
|
-
/** Handles focus events on the trigger. This ensures the tabbing changes the active index. */
|
|
67
|
-
onFocus(event: FocusEvent): void;
|
|
68
|
-
private _getItem;
|
|
69
|
-
}
|
|
70
|
-
/** Represents the required inputs for the AccordionPanelPattern. */
|
|
71
|
-
interface AccordionPanelInputs {
|
|
72
|
-
/** A global unique identifier for the panel. */
|
|
73
|
-
id: SignalLike<string>;
|
|
74
|
-
/** A local unique identifier for the panel, matching its trigger's value. */
|
|
75
|
-
value: SignalLike<string>;
|
|
76
|
-
/** The parent accordion trigger that controls this panel. */
|
|
77
|
-
accordionTrigger: SignalLike<AccordionTriggerPattern | undefined>;
|
|
78
|
-
}
|
|
79
|
-
interface AccordionPanelPattern extends AccordionPanelInputs {
|
|
80
|
-
}
|
|
81
|
-
/** Represents an accordion panel. */
|
|
82
|
-
declare class AccordionPanelPattern {
|
|
83
|
-
readonly inputs: AccordionPanelInputs;
|
|
84
|
-
/** Whether the accordion panel is hidden. True if the associated trigger is not expanded. */
|
|
85
|
-
hidden: SignalLike<boolean>;
|
|
86
|
-
constructor(inputs: AccordionPanelInputs);
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
export { AccordionGroupPattern, AccordionPanelPattern, AccordionTriggerPattern };
|
|
90
|
-
export type { AccordionGroupInputs, AccordionPanelInputs, AccordionTriggerInputs };
|