@fluentui/web-components 3.0.0-beta.84 → 3.0.0-beta.85
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/CHANGELOG.md +11 -2
- package/dist/dts/anchor-button/index.d.ts +1 -0
- package/dist/dts/index-rollup.d.ts +2 -0
- package/dist/dts/index.d.ts +7 -8
- package/dist/dts/tree/define.d.ts +1 -0
- package/dist/dts/tree/index.d.ts +4 -0
- package/dist/dts/tree/tree.bench.d.ts +3 -0
- package/dist/dts/tree/tree.d.ts +88 -0
- package/dist/dts/tree/tree.definition.d.ts +8 -0
- package/dist/dts/tree/tree.styles.d.ts +1 -0
- package/dist/dts/tree/tree.template.d.ts +2 -0
- package/dist/dts/tree-item/define.d.ts +1 -0
- package/dist/dts/tree-item/index.d.ts +5 -0
- package/dist/dts/tree-item/tree-item.bench.d.ts +3 -0
- package/dist/dts/tree-item/tree-item.d.ts +121 -0
- package/dist/dts/tree-item/tree-item.definition.d.ts +8 -0
- package/dist/dts/tree-item/tree-item.options.d.ts +22 -0
- package/dist/dts/tree-item/tree-item.styles.d.ts +1 -0
- package/dist/dts/tree-item/tree-item.template.d.ts +2 -0
- package/dist/esm/anchor-button/index.js +1 -0
- package/dist/esm/anchor-button/index.js.map +1 -1
- package/dist/esm/index-rollup.js +2 -0
- package/dist/esm/index-rollup.js.map +1 -1
- package/dist/esm/index.js +6 -5
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/tree/define.js +4 -0
- package/dist/esm/tree/define.js.map +1 -0
- package/dist/esm/tree/index.js +5 -0
- package/dist/esm/tree/index.js.map +1 -0
- package/dist/esm/tree/tree.bench.js +10 -0
- package/dist/esm/tree/tree.bench.js.map +1 -0
- package/dist/esm/tree/tree.definition.js +16 -0
- package/dist/esm/tree/tree.definition.js.map +1 -0
- package/dist/esm/tree/tree.js +274 -0
- package/dist/esm/tree/tree.js.map +1 -0
- package/dist/esm/tree/tree.styles.js +9 -0
- package/dist/esm/tree/tree.styles.js.map +1 -0
- package/dist/esm/tree/tree.template.js +18 -0
- package/dist/esm/tree/tree.template.js.map +1 -0
- package/dist/esm/tree-item/define.js +4 -0
- package/dist/esm/tree-item/define.js.map +1 -0
- package/dist/esm/tree-item/index.js +5 -0
- package/dist/esm/tree-item/index.js.map +1 -0
- package/dist/esm/tree-item/tree-item.bench.js +10 -0
- package/dist/esm/tree-item/tree-item.bench.js.map +1 -0
- package/dist/esm/tree-item/tree-item.definition.js +16 -0
- package/dist/esm/tree-item/tree-item.definition.js.map +1 -0
- package/dist/esm/tree-item/tree-item.js +201 -0
- package/dist/esm/tree-item/tree-item.js.map +1 -0
- package/dist/esm/tree-item/tree-item.options.js +24 -0
- package/dist/esm/tree-item/tree-item.options.js.map +1 -0
- package/dist/esm/tree-item/tree-item.styles.js +170 -0
- package/dist/esm/tree-item/tree-item.styles.js.map +1 -0
- package/dist/esm/tree-item/tree-item.template.js +41 -0
- package/dist/esm/tree-item/tree-item.template.js.map +1 -0
- package/dist/web-components.d.ts +157 -0
- package/dist/web-components.js +1278 -802
- package/dist/web-components.min.js +298 -291
- package/package.json +1 -1
|
@@ -0,0 +1,274 @@
|
|
|
1
|
+
import { __decorate } from "tslib";
|
|
2
|
+
import { attr, FASTElement, observable } from '@microsoft/fast-element';
|
|
3
|
+
import { isHTMLElement, keyArrowDown, keyArrowLeft, keyArrowRight, keyArrowUp, keyEnd, keyEnter, keyHome, keySpace, } from '@microsoft/fast-web-utilities';
|
|
4
|
+
import { TreeItem } from '../tree-item/index.js';
|
|
5
|
+
import { isTreeItem, TreeItemAppearance, TreeItemSize } from '../tree-item/tree-item.options';
|
|
6
|
+
export class Tree extends FASTElement {
|
|
7
|
+
constructor() {
|
|
8
|
+
super();
|
|
9
|
+
/**
|
|
10
|
+
* The currently selected tree item
|
|
11
|
+
* @public
|
|
12
|
+
*/
|
|
13
|
+
this.currentSelected = null;
|
|
14
|
+
/**
|
|
15
|
+
* The tree item that is designated to be in the tab queue.
|
|
16
|
+
*
|
|
17
|
+
* @internal
|
|
18
|
+
*/
|
|
19
|
+
this.currentFocused = null;
|
|
20
|
+
/**
|
|
21
|
+
* The internal {@link https://developer.mozilla.org/docs/Web/API/ElementInternals | `ElementInternals`} instance for the component.
|
|
22
|
+
*
|
|
23
|
+
* @internal
|
|
24
|
+
*/
|
|
25
|
+
this.elementInternals = this.attachInternals();
|
|
26
|
+
/**
|
|
27
|
+
* The size of the tree item element
|
|
28
|
+
* @public
|
|
29
|
+
* HTML Attribute: size
|
|
30
|
+
*/
|
|
31
|
+
this.size = TreeItemSize.small;
|
|
32
|
+
/**
|
|
33
|
+
* The appearance variants of the tree item element
|
|
34
|
+
* @public
|
|
35
|
+
* HTML Attribute: appearance
|
|
36
|
+
*/
|
|
37
|
+
this.appearance = TreeItemAppearance.subtle;
|
|
38
|
+
this.childTreeItems = [];
|
|
39
|
+
this.elementInternals.role = 'tree';
|
|
40
|
+
}
|
|
41
|
+
sizeChanged() {
|
|
42
|
+
this.updateSizeAndAppearance();
|
|
43
|
+
}
|
|
44
|
+
appearanceChanged() {
|
|
45
|
+
this.updateSizeAndAppearance();
|
|
46
|
+
}
|
|
47
|
+
childTreeItemsChanged() {
|
|
48
|
+
this.updateSizeAndAppearance();
|
|
49
|
+
this.updateCurrentSelected();
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* 1. Update the child items' size based on the tree's size
|
|
53
|
+
* 2. Update the child items' appearance based on the tree's appearance
|
|
54
|
+
*/
|
|
55
|
+
updateSizeAndAppearance() {
|
|
56
|
+
if (!this.childTreeItems?.length) {
|
|
57
|
+
return;
|
|
58
|
+
}
|
|
59
|
+
this.childTreeItems.forEach(item => {
|
|
60
|
+
if (!isTreeItem(item)) {
|
|
61
|
+
return;
|
|
62
|
+
}
|
|
63
|
+
item.size = this.size;
|
|
64
|
+
item.appearance = this.appearance;
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Updates current selected when slottedTreeItems changes
|
|
69
|
+
*/
|
|
70
|
+
updateCurrentSelected() {
|
|
71
|
+
// force single selection
|
|
72
|
+
// defaults to first one found
|
|
73
|
+
const selectedItem = this.querySelector(`[aria-selected='true']`);
|
|
74
|
+
this.currentSelected = selectedItem;
|
|
75
|
+
// invalidate the current focused item if it is no longer valid
|
|
76
|
+
if (this.currentFocused === null || !this.contains(this.currentFocused)) {
|
|
77
|
+
this.currentFocused = this.getValidFocusableItem();
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* KeyDown handler
|
|
82
|
+
*
|
|
83
|
+
* @internal
|
|
84
|
+
*/
|
|
85
|
+
keydownHandler(e) {
|
|
86
|
+
if (e.defaultPrevented) {
|
|
87
|
+
return;
|
|
88
|
+
}
|
|
89
|
+
const item = e.target;
|
|
90
|
+
if (!isTreeItem(item) || this.childTreeItems.length < 1) {
|
|
91
|
+
return true;
|
|
92
|
+
}
|
|
93
|
+
const elements = this.getVisibleNodes();
|
|
94
|
+
switch (e.key) {
|
|
95
|
+
case keyHome: {
|
|
96
|
+
if (elements.length) {
|
|
97
|
+
elements[0].focus();
|
|
98
|
+
}
|
|
99
|
+
return;
|
|
100
|
+
}
|
|
101
|
+
case keyEnd: {
|
|
102
|
+
if (elements.length) {
|
|
103
|
+
elements[elements.length - 1].focus();
|
|
104
|
+
}
|
|
105
|
+
return;
|
|
106
|
+
}
|
|
107
|
+
case keyArrowLeft: {
|
|
108
|
+
if (item?.childTreeItems?.length && item.expanded) {
|
|
109
|
+
item.expanded = false;
|
|
110
|
+
}
|
|
111
|
+
else if (isTreeItem(item.parentElement)) {
|
|
112
|
+
item.parentElement.focus();
|
|
113
|
+
}
|
|
114
|
+
return;
|
|
115
|
+
}
|
|
116
|
+
case keyArrowRight: {
|
|
117
|
+
if (item?.childTreeItems?.length) {
|
|
118
|
+
if (!item.expanded) {
|
|
119
|
+
item.expanded = true;
|
|
120
|
+
}
|
|
121
|
+
else {
|
|
122
|
+
this.focusNextNode(1, item);
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
return;
|
|
126
|
+
}
|
|
127
|
+
case keyArrowDown: {
|
|
128
|
+
this.focusNextNode(1, item);
|
|
129
|
+
return;
|
|
130
|
+
}
|
|
131
|
+
case keyArrowUp: {
|
|
132
|
+
this.focusNextNode(-1, item);
|
|
133
|
+
return;
|
|
134
|
+
}
|
|
135
|
+
case keyEnter: {
|
|
136
|
+
// In single-select trees where selection does not follow focus (see note below),
|
|
137
|
+
// the default action is typically to select the focused node.
|
|
138
|
+
this.clickHandler(e);
|
|
139
|
+
return;
|
|
140
|
+
}
|
|
141
|
+
case keySpace: {
|
|
142
|
+
item.toggleSelection();
|
|
143
|
+
return;
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
// don't prevent default if we took no action
|
|
147
|
+
return true;
|
|
148
|
+
}
|
|
149
|
+
/**
|
|
150
|
+
* Handle focus events
|
|
151
|
+
*
|
|
152
|
+
* @internal
|
|
153
|
+
*/
|
|
154
|
+
focusHandler(e) {
|
|
155
|
+
if (this.childTreeItems.length < 1) {
|
|
156
|
+
// no child items, nothing to do
|
|
157
|
+
return;
|
|
158
|
+
}
|
|
159
|
+
if (e.target === this) {
|
|
160
|
+
if (this.currentFocused === null) {
|
|
161
|
+
this.currentFocused = this.getValidFocusableItem();
|
|
162
|
+
}
|
|
163
|
+
if (this.currentFocused !== null) {
|
|
164
|
+
this.currentFocused.focus();
|
|
165
|
+
}
|
|
166
|
+
return;
|
|
167
|
+
}
|
|
168
|
+
if (this.contains(e.target)) {
|
|
169
|
+
this.setAttribute('tabindex', '-1');
|
|
170
|
+
this.currentFocused = e.target;
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
/**
|
|
174
|
+
* Handle blur events
|
|
175
|
+
*
|
|
176
|
+
* @internal
|
|
177
|
+
*/
|
|
178
|
+
blurHandler(e) {
|
|
179
|
+
if (e.target instanceof HTMLElement && (e.relatedTarget === null || !this.contains(e.relatedTarget))) {
|
|
180
|
+
this.setAttribute('tabindex', '0');
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
/**
|
|
184
|
+
* Handles click events bubbling up
|
|
185
|
+
*
|
|
186
|
+
* @internal
|
|
187
|
+
*/
|
|
188
|
+
clickHandler(e) {
|
|
189
|
+
if (e.defaultPrevented) {
|
|
190
|
+
// handled, do nothing
|
|
191
|
+
return;
|
|
192
|
+
}
|
|
193
|
+
if (!isTreeItem(e.target)) {
|
|
194
|
+
// not a tree item, ignore
|
|
195
|
+
// return true, do not prevent default
|
|
196
|
+
return true;
|
|
197
|
+
}
|
|
198
|
+
const item = e.target;
|
|
199
|
+
item.toggleExpansion();
|
|
200
|
+
item.toggleSelection();
|
|
201
|
+
}
|
|
202
|
+
/**
|
|
203
|
+
* Handles the selected-changed events bubbling up
|
|
204
|
+
* from child tree items
|
|
205
|
+
*
|
|
206
|
+
* @internal
|
|
207
|
+
*/
|
|
208
|
+
changeHandler(e) {
|
|
209
|
+
if (e.defaultPrevented) {
|
|
210
|
+
return;
|
|
211
|
+
}
|
|
212
|
+
if (!isTreeItem(e.target)) {
|
|
213
|
+
return true;
|
|
214
|
+
}
|
|
215
|
+
const item = e.target;
|
|
216
|
+
if (item.selected) {
|
|
217
|
+
// Deselect the prevously selected item
|
|
218
|
+
if (this.currentSelected && this.currentSelected !== item && this.currentSelected instanceof TreeItem) {
|
|
219
|
+
this.currentSelected.selected = false;
|
|
220
|
+
}
|
|
221
|
+
// New selected item
|
|
222
|
+
this.currentSelected = item;
|
|
223
|
+
}
|
|
224
|
+
else if (!item.selected && this.currentSelected === item) {
|
|
225
|
+
// Selected item deselected
|
|
226
|
+
this.currentSelected = null;
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
/**
|
|
230
|
+
* checks if there are any nested tree items
|
|
231
|
+
*/
|
|
232
|
+
getValidFocusableItem() {
|
|
233
|
+
const elements = this.getVisibleNodes();
|
|
234
|
+
// default to selected element if there is one
|
|
235
|
+
let focusIndex = elements.findIndex(el => el.selected);
|
|
236
|
+
if (focusIndex === -1) {
|
|
237
|
+
// otherwise first focusable tree item
|
|
238
|
+
focusIndex = elements.findIndex(el => el instanceof TreeItem);
|
|
239
|
+
}
|
|
240
|
+
if (focusIndex !== -1) {
|
|
241
|
+
return elements[focusIndex];
|
|
242
|
+
}
|
|
243
|
+
return null;
|
|
244
|
+
}
|
|
245
|
+
getVisibleNodes() {
|
|
246
|
+
return Array.from(this.querySelectorAll('*')).filter(node => isTreeItem(node) && node.offsetParent !== null);
|
|
247
|
+
}
|
|
248
|
+
/**
|
|
249
|
+
* Move focus to a tree item based on its offset from the provided item
|
|
250
|
+
*/
|
|
251
|
+
focusNextNode(delta, item) {
|
|
252
|
+
const visibleNodes = this.getVisibleNodes();
|
|
253
|
+
if (!visibleNodes.length) {
|
|
254
|
+
return;
|
|
255
|
+
}
|
|
256
|
+
const focusItem = visibleNodes[visibleNodes.indexOf(item) + delta];
|
|
257
|
+
if (isHTMLElement(focusItem)) {
|
|
258
|
+
focusItem.focus();
|
|
259
|
+
}
|
|
260
|
+
}
|
|
261
|
+
}
|
|
262
|
+
__decorate([
|
|
263
|
+
observable
|
|
264
|
+
], Tree.prototype, "currentSelected", void 0);
|
|
265
|
+
__decorate([
|
|
266
|
+
attr
|
|
267
|
+
], Tree.prototype, "size", void 0);
|
|
268
|
+
__decorate([
|
|
269
|
+
attr
|
|
270
|
+
], Tree.prototype, "appearance", void 0);
|
|
271
|
+
__decorate([
|
|
272
|
+
observable
|
|
273
|
+
], Tree.prototype, "childTreeItems", void 0);
|
|
274
|
+
//# sourceMappingURL=tree.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tree.js","sourceRoot":"","sources":["../../../src/tree/tree.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tree.styles.js","sourceRoot":"","sources":["../../../src/tree/tree.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,yBAAyB,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAE3C,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;IACrB,OAAO,CAAC,OAAO,CAAC;;;;CAInB,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { children, elements, html } from '@microsoft/fast-element';
|
|
2
|
+
export const template = html `
|
|
3
|
+
<template
|
|
4
|
+
tabindex="0"
|
|
5
|
+
@click="${(x, c) => x.clickHandler(c.event)}"
|
|
6
|
+
@focusin="${(x, c) => x.focusHandler(c.event)}"
|
|
7
|
+
@focusout="${(x, c) => x.blurHandler(c.event)}"
|
|
8
|
+
@keydown="${(x, c) => x.keydownHandler(c.event)}"
|
|
9
|
+
@change="${(x, c) => x.changeHandler(c.event)}"
|
|
10
|
+
${children({
|
|
11
|
+
property: 'childTreeItems',
|
|
12
|
+
filter: elements(),
|
|
13
|
+
})}
|
|
14
|
+
>
|
|
15
|
+
<slot></slot>
|
|
16
|
+
</template>
|
|
17
|
+
`;
|
|
18
|
+
//# sourceMappingURL=tree.template.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tree.template.js","sourceRoot":"","sources":["../../../src/tree/tree.template.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AAGnE,MAAM,CAAC,MAAM,QAAQ,GAAG,IAAI,CAAM;;;cAGpB,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC;gBAC/B,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,KAAmB,CAAC;iBAC9C,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,KAAmB,CAAC;gBAC/C,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,KAAsB,CAAC;eACrD,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC;MAC3C,QAAQ,CAAC;IACT,QAAQ,EAAE,gBAAgB;IAC1B,MAAM,EAAE,QAAQ,EAAE;CACnB,CAAC;;;;CAIL,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"define.js","sourceRoot":"","sources":["../../../src/tree-item/define.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAEvD,UAAU,CAAC,MAAM,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export { TreeItem } from './tree-item.js';
|
|
2
|
+
export { template as TreeItemTemplate } from './tree-item.template.js';
|
|
3
|
+
export { styles as TreeItemStyles } from './tree-item.styles.js';
|
|
4
|
+
export { definition as TreeItemDefinition } from './tree-item.definition.js';
|
|
5
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tree-item/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,QAAQ,IAAI,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AACvE,OAAO,EAAE,MAAM,IAAI,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACjE,OAAO,EAAE,UAAU,IAAI,kBAAkB,EAAE,MAAM,2BAA2B,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { FluentDesignSystem } from '../fluent-design-system.js';
|
|
2
|
+
import { definition } from './tree-item.definition.js';
|
|
3
|
+
definition.define(FluentDesignSystem.registry);
|
|
4
|
+
const itemRenderer = () => {
|
|
5
|
+
const treeItem = document.createElement('fluent-tree-item');
|
|
6
|
+
return treeItem;
|
|
7
|
+
};
|
|
8
|
+
export default itemRenderer;
|
|
9
|
+
export { tests } from '../utils/benchmark-wrapper.js';
|
|
10
|
+
//# sourceMappingURL=tree-item.bench.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tree-item.bench.js","sourceRoot":"","sources":["../../../src/tree-item/tree-item.bench.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAEvD,UAAU,CAAC,MAAM,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;AAE/C,MAAM,YAAY,GAAG,GAAG,EAAE;IACxB,MAAM,QAAQ,GAAG,QAAQ,CAAC,aAAa,CAAC,kBAAkB,CAAC,CAAC;IAC5D,OAAO,QAAQ,CAAC;AAClB,CAAC,CAAC;AAEF,eAAe,YAAY,CAAC;AAC5B,OAAO,EAAE,KAAK,EAAE,MAAM,+BAA+B,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { FluentDesignSystem } from '../fluent-design-system.js';
|
|
2
|
+
import { TreeItem } from './tree-item.js';
|
|
3
|
+
import { styles as treeItemStyle } from './tree-item.styles.js';
|
|
4
|
+
import { template as treeItemTemplate } from './tree-item.template.js';
|
|
5
|
+
/**
|
|
6
|
+
*
|
|
7
|
+
* @public
|
|
8
|
+
* @remarks
|
|
9
|
+
* HTML Element: \<fluent-tree-item\>
|
|
10
|
+
*/
|
|
11
|
+
export const definition = TreeItem.compose({
|
|
12
|
+
name: `${FluentDesignSystem.prefix}-tree-item`,
|
|
13
|
+
template: treeItemTemplate,
|
|
14
|
+
styles: treeItemStyle,
|
|
15
|
+
});
|
|
16
|
+
//# sourceMappingURL=tree-item.definition.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tree-item.definition.js","sourceRoot":"","sources":["../../../src/tree-item/tree-item.definition.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,MAAM,IAAI,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,QAAQ,IAAI,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAEvE;;;;;GAKG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,QAAQ,CAAC,OAAO,CAAC;IACzC,IAAI,EAAE,GAAG,kBAAkB,CAAC,MAAM,YAAY;IAC9C,QAAQ,EAAE,gBAAgB;IAC1B,MAAM,EAAE,aAAa;CACtB,CAAC,CAAC"}
|
|
@@ -0,0 +1,201 @@
|
|
|
1
|
+
import { __decorate } from "tslib";
|
|
2
|
+
import { attr, css, FASTElement, observable } from '@microsoft/fast-element';
|
|
3
|
+
import { toggleState } from '../utils/element-internals.js';
|
|
4
|
+
import { isTreeItem, TreeItemAppearance, TreeItemSize } from './tree-item.options.js';
|
|
5
|
+
export class TreeItem extends FASTElement {
|
|
6
|
+
constructor() {
|
|
7
|
+
super();
|
|
8
|
+
/**
|
|
9
|
+
* The internal {@link https://developer.mozilla.org/docs/Web/API/ElementInternals | `ElementInternals`} instance for the component.
|
|
10
|
+
*
|
|
11
|
+
* @internal
|
|
12
|
+
*/
|
|
13
|
+
this.elementInternals = this.attachInternals();
|
|
14
|
+
/**
|
|
15
|
+
* When true, the control will be appear expanded by user interaction.
|
|
16
|
+
* @public
|
|
17
|
+
* HTML Attribute: `expanded`
|
|
18
|
+
*/
|
|
19
|
+
this.expanded = false;
|
|
20
|
+
/**
|
|
21
|
+
* When true, the control will appear selected by user interaction.
|
|
22
|
+
* @public
|
|
23
|
+
* @remarks
|
|
24
|
+
* HTML Attribute: selected
|
|
25
|
+
*/
|
|
26
|
+
this.selected = false;
|
|
27
|
+
/**
|
|
28
|
+
* When true, the control has no child tree items
|
|
29
|
+
* @public
|
|
30
|
+
* HTML Attribute: empty
|
|
31
|
+
*/
|
|
32
|
+
this.empty = false;
|
|
33
|
+
/**
|
|
34
|
+
* The size of the tree item element
|
|
35
|
+
* @public
|
|
36
|
+
*/
|
|
37
|
+
this.size = TreeItemSize.small;
|
|
38
|
+
/**
|
|
39
|
+
* The size of the tree item element
|
|
40
|
+
* @public
|
|
41
|
+
*/
|
|
42
|
+
this.appearance = TreeItemAppearance.subtle;
|
|
43
|
+
this.childTreeItems = [];
|
|
44
|
+
this.elementInternals.role = 'treeitem';
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Handles changes to the expanded attribute
|
|
48
|
+
* @param prev - the previous state
|
|
49
|
+
* @param next - the next state
|
|
50
|
+
*
|
|
51
|
+
* @public
|
|
52
|
+
*/
|
|
53
|
+
expandedChanged(prev, next) {
|
|
54
|
+
toggleState(this.elementInternals, 'expanded', next);
|
|
55
|
+
if (this.childTreeItems && this.childTreeItems.length > 0) {
|
|
56
|
+
this.elementInternals.ariaExpanded = next ? 'true' : 'false';
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Handles changes to the selected attribute
|
|
61
|
+
* @param prev - the previous state
|
|
62
|
+
* @param next - the next state
|
|
63
|
+
*
|
|
64
|
+
* @internal
|
|
65
|
+
*/
|
|
66
|
+
selectedChanged(prev, next) {
|
|
67
|
+
this.$emit('change');
|
|
68
|
+
toggleState(this.elementInternals, 'selected', next);
|
|
69
|
+
this.elementInternals.ariaSelected = next ? 'true' : 'false';
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Handles changes to the size attribute
|
|
73
|
+
* we update the child tree items' size based on the size
|
|
74
|
+
* @internal
|
|
75
|
+
*/
|
|
76
|
+
sizeChanged() {
|
|
77
|
+
this.updateChildTreeItems();
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Handles changes to the appearance attribute
|
|
81
|
+
*
|
|
82
|
+
* @internal
|
|
83
|
+
*/
|
|
84
|
+
appearanceChanged() {
|
|
85
|
+
this.updateChildTreeItems();
|
|
86
|
+
}
|
|
87
|
+
dataIndentChanged(prev, next) {
|
|
88
|
+
if (this.styles !== undefined) {
|
|
89
|
+
this.$fastController.removeStyles(this.styles);
|
|
90
|
+
}
|
|
91
|
+
this.styles = css `
|
|
92
|
+
:host {
|
|
93
|
+
--indent: ${next};
|
|
94
|
+
}
|
|
95
|
+
`;
|
|
96
|
+
this.$fastController.addStyles(this.styles);
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Handles changes to the child tree items
|
|
100
|
+
*
|
|
101
|
+
* @internal
|
|
102
|
+
*/
|
|
103
|
+
childTreeItemsChanged() {
|
|
104
|
+
this.empty = this.childTreeItems?.length === 0;
|
|
105
|
+
this.updateChildTreeItems();
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* 1. Update the child items' size based on the tree's size
|
|
109
|
+
* 2. Update the child items' appearance based on the tree's appearance
|
|
110
|
+
*/
|
|
111
|
+
updateChildTreeItems() {
|
|
112
|
+
if (!this.childTreeItems?.length) {
|
|
113
|
+
return;
|
|
114
|
+
}
|
|
115
|
+
this.childTreeItems.forEach(item => {
|
|
116
|
+
if (!isTreeItem(item)) {
|
|
117
|
+
return;
|
|
118
|
+
}
|
|
119
|
+
this.setIndent(item);
|
|
120
|
+
item.size = this.size;
|
|
121
|
+
item.appearance = this.appearance;
|
|
122
|
+
});
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Sets the indent for each item
|
|
126
|
+
*/
|
|
127
|
+
setIndent(item) {
|
|
128
|
+
const indent = this.dataIndent ?? 0;
|
|
129
|
+
item.dataIndent = indent + 1;
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* Handle focus events
|
|
133
|
+
*
|
|
134
|
+
* @public
|
|
135
|
+
*/
|
|
136
|
+
focusHandler(e) {
|
|
137
|
+
if (e.target === this ||
|
|
138
|
+
// In case where the tree-item contains a focusable element, we should not set the tabindex to 0 when the focus is on its child focusable element,
|
|
139
|
+
// so users can shift+tab to navigate to the tree-item from its child focusable element.
|
|
140
|
+
this.contains(e.target)) {
|
|
141
|
+
this.setAttribute('tabindex', '0');
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
/**
|
|
145
|
+
* Handle blur events
|
|
146
|
+
*
|
|
147
|
+
* @public
|
|
148
|
+
*/
|
|
149
|
+
blurHandler(e) {
|
|
150
|
+
if (e.target === this) {
|
|
151
|
+
this.setAttribute('tabindex', '-1');
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
/**
|
|
155
|
+
* Toggle the expansion state of the tree item
|
|
156
|
+
*
|
|
157
|
+
* @public
|
|
158
|
+
*/
|
|
159
|
+
toggleExpansion() {
|
|
160
|
+
if (this.childTreeItems?.length) {
|
|
161
|
+
this.expanded = !this.expanded;
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
/**
|
|
165
|
+
* Toggle the single selection state of the tree item
|
|
166
|
+
*
|
|
167
|
+
* @public
|
|
168
|
+
*/
|
|
169
|
+
toggleSelection() {
|
|
170
|
+
this.selected = !this.selected;
|
|
171
|
+
}
|
|
172
|
+
/**
|
|
173
|
+
* Whether the tree is nested
|
|
174
|
+
* @internal
|
|
175
|
+
*/
|
|
176
|
+
get isNestedItem() {
|
|
177
|
+
return isTreeItem(this.parentElement);
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
__decorate([
|
|
181
|
+
attr({ mode: 'boolean' })
|
|
182
|
+
], TreeItem.prototype, "expanded", void 0);
|
|
183
|
+
__decorate([
|
|
184
|
+
attr({ mode: 'boolean' })
|
|
185
|
+
], TreeItem.prototype, "selected", void 0);
|
|
186
|
+
__decorate([
|
|
187
|
+
attr({ mode: 'boolean' })
|
|
188
|
+
], TreeItem.prototype, "empty", void 0);
|
|
189
|
+
__decorate([
|
|
190
|
+
attr
|
|
191
|
+
], TreeItem.prototype, "size", void 0);
|
|
192
|
+
__decorate([
|
|
193
|
+
attr
|
|
194
|
+
], TreeItem.prototype, "appearance", void 0);
|
|
195
|
+
__decorate([
|
|
196
|
+
attr({ attribute: 'data-indent' })
|
|
197
|
+
], TreeItem.prototype, "dataIndent", void 0);
|
|
198
|
+
__decorate([
|
|
199
|
+
observable
|
|
200
|
+
], TreeItem.prototype, "childTreeItems", void 0);
|
|
201
|
+
//# sourceMappingURL=tree-item.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tree-item.js","sourceRoot":"","sources":["../../../src/tree-item/tree-item.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
export const TreeItemAppearance = {
|
|
2
|
+
subtle: 'subtle',
|
|
3
|
+
subtleAlpha: 'subtle-alpha',
|
|
4
|
+
transparent: 'transparent',
|
|
5
|
+
};
|
|
6
|
+
export const TreeItemSize = {
|
|
7
|
+
small: 'small',
|
|
8
|
+
medium: 'medium',
|
|
9
|
+
};
|
|
10
|
+
/**
|
|
11
|
+
* Predicate function that determines if the element should be considered an tree-item.
|
|
12
|
+
*
|
|
13
|
+
* @param element - The element to check.
|
|
14
|
+
* @param tagName - The tag name to check.
|
|
15
|
+
* @returns true if the element is a dropdown.
|
|
16
|
+
* @public
|
|
17
|
+
*/
|
|
18
|
+
export function isTreeItem(element, tagName = '-tree-item') {
|
|
19
|
+
if (element?.nodeType !== Node.ELEMENT_NODE) {
|
|
20
|
+
return false;
|
|
21
|
+
}
|
|
22
|
+
return element.tagName.toLowerCase().endsWith(tagName);
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=tree-item.options.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tree-item.options.js","sourceRoot":"","sources":["../../../src/tree-item/tree-item.options.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,MAAM,EAAE,QAAQ;IAChB,WAAW,EAAE,cAAc;IAC3B,WAAW,EAAE,aAAa;CAClB,CAAC;AAIX,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,KAAK,EAAE,OAAO;IACd,MAAM,EAAE,QAAQ;CACR,CAAC;AAIX;;;;;;;GAOG;AACH,MAAM,UAAU,UAAU,CAAC,OAAqB,EAAE,UAAkB,YAAY;IAC9E,IAAI,OAAO,EAAE,QAAQ,KAAK,IAAI,CAAC,YAAY,EAAE,CAAC;QAC5C,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAQ,OAAmB,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;AACtE,CAAC"}
|