@vscode-elements/elements 2.0.0-pre.2 → 2.0.0-pre.3
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/custom-elements.json +1906 -1856
- package/dist/bundled.js +204 -195
- package/dist/includes/VscElement.js +1 -1
- package/dist/includes/VscElement.js.map +1 -1
- package/dist/vscode-tree/helpers.d.ts +4 -6
- package/dist/vscode-tree/helpers.d.ts.map +1 -1
- package/dist/vscode-tree/helpers.js +45 -68
- package/dist/vscode-tree/helpers.js.map +1 -1
- package/dist/vscode-tree/tree-context.d.ts +5 -5
- package/dist/vscode-tree/tree-context.d.ts.map +1 -1
- package/dist/vscode-tree/tree-context.js.map +1 -1
- package/dist/vscode-tree/vscode-tree.d.ts +74 -7
- package/dist/vscode-tree/vscode-tree.d.ts.map +1 -1
- package/dist/vscode-tree/vscode-tree.js +117 -51
- package/dist/vscode-tree/vscode-tree.js.map +1 -1
- package/dist/vscode-tree/vscode-tree.styles.d.ts.map +1 -1
- package/dist/vscode-tree/vscode-tree.styles.js +39 -3
- package/dist/vscode-tree/vscode-tree.styles.js.map +1 -1
- package/dist/vscode-tree-item/vscode-tree-item.d.ts +5 -0
- package/dist/vscode-tree-item/vscode-tree-item.d.ts.map +1 -1
- package/dist/vscode-tree-item/vscode-tree-item.js +77 -36
- package/dist/vscode-tree-item/vscode-tree-item.js.map +1 -1
- package/dist/vscode-tree-item/vscode-tree-item.styles.d.ts.map +1 -1
- package/dist/vscode-tree-item/vscode-tree-item.styles.js +25 -50
- package/dist/vscode-tree-item/vscode-tree-item.styles.js.map +1 -1
- package/package.json +3 -3
- package/vscode.css-custom-data.json +39 -39
- package/vscode.html-custom-data.json +108 -84
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VscElement.js","sourceRoot":"","sources":["../../src/includes/VscElement.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAC,MAAM,KAAK,CAAC;AAE/B,MAAM,OAAO,GAAG,aAAa,CAAC;AAC9B,MAAM,UAAU,GAAG,2CAA2C,CAAC;AAE/D,MAAM,OAAO,UAAW,SAAQ,UAAU;IACxC,8BAA8B;IAC9B,IAAI,OAAO;QACT,OAAO,OAAO,CAAC;IACjB,CAAC;CACF;AASD;;GAEG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,OAAe,EAAE,EAAE;IAC/C,OAAO,CAAC,aAAiC,EAAE,EAAE;QAC3C,MAAM,kBAAkB,GAAG,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAEvD,IAAI,CAAC,kBAAkB,EAAE,CAAC;YACxB,cAAc,CAAC,MAAM,CAAC,OAAO,EAAE,aAAyC,CAAC,CAAC;YAC1E,OAAO;QACT,CAAC;QAED,IAAI,UAAU,IAAI,MAAM,EAAE,CAAC;YACzB,OAAO;QACT,CAAC;QAED,MAAM,EAAE,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QAC3C,MAAM,cAAc,GAAI,EAAiB,EAAE,OAAO,CAAC;QACnD,IAAI,OAAO,GAAG,EAAE,CAAC;QAEjB,IAAI,CAAC,cAAc,EAAE,CAAC;YACpB,sCAAsC;YACtC,OAAO,CAAC,IAAI,CACV,OAAO,EACP,mEAAmE,CACpE,CAAC;YACF,OAAO;gBACL,mEAAmE,CAAC;QACxE,CAAC;aAAM,IAAI,cAAc,KAAK,OAAO,EAAE,CAAC;YACtC,OAAO;gBACL,mEAAmE,CAAC;YACtE,OAAO,IAAI,oBAAoB,OAAO,8BAA8B,cAAc,IAAI,CAAC;QACzF,CAAC;aAAM,CAAC;YACN,OAAO;gBACL,gEAAgE,CAAC;QACrE,CAAC;QAED,sCAAsC;QACtC,OAAO,CAAC,IAAI,CACV,qBAAqB,OAAO,IAAI,OAAO,0CAA0C,UAAU,UAAU,CACtG,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC,CAAC","sourcesContent":["import {LitElement} from 'lit';\n\nconst VERSION = '2.0.0-pre.
|
|
1
|
+
{"version":3,"file":"VscElement.js","sourceRoot":"","sources":["../../src/includes/VscElement.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAC,MAAM,KAAK,CAAC;AAE/B,MAAM,OAAO,GAAG,aAAa,CAAC;AAC9B,MAAM,UAAU,GAAG,2CAA2C,CAAC;AAE/D,MAAM,OAAO,UAAW,SAAQ,UAAU;IACxC,8BAA8B;IAC9B,IAAI,OAAO;QACT,OAAO,OAAO,CAAC;IACjB,CAAC;CACF;AASD;;GAEG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,OAAe,EAAE,EAAE;IAC/C,OAAO,CAAC,aAAiC,EAAE,EAAE;QAC3C,MAAM,kBAAkB,GAAG,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAEvD,IAAI,CAAC,kBAAkB,EAAE,CAAC;YACxB,cAAc,CAAC,MAAM,CAAC,OAAO,EAAE,aAAyC,CAAC,CAAC;YAC1E,OAAO;QACT,CAAC;QAED,IAAI,UAAU,IAAI,MAAM,EAAE,CAAC;YACzB,OAAO;QACT,CAAC;QAED,MAAM,EAAE,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QAC3C,MAAM,cAAc,GAAI,EAAiB,EAAE,OAAO,CAAC;QACnD,IAAI,OAAO,GAAG,EAAE,CAAC;QAEjB,IAAI,CAAC,cAAc,EAAE,CAAC;YACpB,sCAAsC;YACtC,OAAO,CAAC,IAAI,CACV,OAAO,EACP,mEAAmE,CACpE,CAAC;YACF,OAAO;gBACL,mEAAmE,CAAC;QACxE,CAAC;aAAM,IAAI,cAAc,KAAK,OAAO,EAAE,CAAC;YACtC,OAAO;gBACL,mEAAmE,CAAC;YACtE,OAAO,IAAI,oBAAoB,OAAO,8BAA8B,cAAc,IAAI,CAAC;QACzF,CAAC;aAAM,CAAC;YACN,OAAO;gBACL,gEAAgE,CAAC;QACrE,CAAC;QAED,sCAAsC;QACtC,OAAO,CAAC,IAAI,CACV,qBAAqB,OAAO,IAAI,OAAO,0CAA0C,UAAU,UAAU,CACtG,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC,CAAC","sourcesContent":["import {LitElement} from 'lit';\n\nconst VERSION = '2.0.0-pre.3';\nconst CONFIG_KEY = '__vscodeElements_disableRegistryWarning__';\n\nexport class VscElement extends LitElement {\n /** VSCode Elements version */\n get version(): string {\n return VERSION;\n }\n}\n\ntype CustomElementClass = Omit<typeof HTMLElement, 'new'>;\n\nexport type Constructor<T> = {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n new (...args: any[]): T;\n};\n\n/**\n * Own implementation of Lit's customElement decorator.\n */\nexport const customElement = (tagName: string) => {\n return (classOrTarget: CustomElementClass) => {\n const customElementClass = customElements.get(tagName);\n\n if (!customElementClass) {\n customElements.define(tagName, classOrTarget as CustomElementConstructor);\n return;\n }\n\n if (CONFIG_KEY in window) {\n return;\n }\n\n const el = document.createElement(tagName);\n const anotherVersion = (el as VscElement)?.version;\n let message = '';\n\n if (!anotherVersion) {\n // eslint-disable-next-line no-console\n console.warn(\n tagName,\n 'is already registered by an unknown custom element handler class.'\n );\n message +=\n 'is already registered by an unknown custom element handler class.';\n } else if (anotherVersion !== VERSION) {\n message +=\n 'is already registered by a different version of VSCode Elements. ';\n message += `This version is \"${VERSION}\", while the other one is \"${anotherVersion}\".`;\n } else {\n message +=\n 'is already registered by the same version of VSCode Elements. ';\n }\n\n // eslint-disable-next-line no-console\n console.warn(\n `[VSCode Elements] ${tagName} ${message}\\nTo suppress this warning, set window.${CONFIG_KEY} to true`\n );\n };\n};\n"]}
|
|
@@ -1,11 +1,9 @@
|
|
|
1
|
-
import { VscodeTreeItem } from '../vscode-tree-item';
|
|
2
|
-
import type { VscodeTree } from './vscode-tree';
|
|
1
|
+
import type { VscodeTreeItem } from '../vscode-tree-item/vscode-tree-item.js';
|
|
2
|
+
import type { VscodeTree } from './vscode-tree.js';
|
|
3
3
|
export declare const initPathTrackerProps: (parentElement: VscodeTree | VscodeTreeItem, items: VscodeTreeItem[]) => void;
|
|
4
4
|
export declare const findLastChildItem: (item: VscodeTreeItem) => VscodeTreeItem;
|
|
5
|
-
export declare const
|
|
5
|
+
export declare const findClosestAncestorHasNextSibling: (item: VscodeTreeItem) => VscodeTreeItem | null;
|
|
6
6
|
export declare const findNextItem: (item: VscodeTreeItem) => VscodeTreeItem | null;
|
|
7
7
|
export declare const findPrevItem: (item: VscodeTreeItem) => VscodeTreeItem | null;
|
|
8
|
-
export declare
|
|
9
|
-
export declare const selectItemAndAllVisibleDescendants: (item: VscodeTreeItem) => void;
|
|
10
|
-
export declare function getParentItem(childItem: VscodeTreeItem): VscodeTreeItem | null;
|
|
8
|
+
export declare function findParentItem(childItem: VscodeTreeItem): VscodeTreeItem | null;
|
|
11
9
|
//# sourceMappingURL=helpers.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../src/vscode-tree/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,cAAc,EAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../src/vscode-tree/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,yCAAyC,CAAC;AAC5E,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAC;AAQjD,eAAO,MAAM,oBAAoB,GAC/B,eAAe,UAAU,GAAG,cAAc,EAC1C,OAAO,cAAc,EAAE,KACtB,IAoBF,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAAI,MAAM,cAAc,KAAG,cAYxD,CAAC;AAEF,eAAO,MAAM,iCAAiC,GAC5C,MAAM,cAAc,KACnB,cAAc,GAAG,IAkBnB,CAAC;AAYF,eAAO,MAAM,YAAY,GAAI,MAAM,cAAc,KAAG,cAAc,GAAG,IAkCpE,CAAC;AAEF,eAAO,MAAM,YAAY,GAAI,MAAM,cAAc,KAAG,cAAc,GAAG,IA0BpE,CAAC;AAEF,wBAAgB,cAAc,CAAC,SAAS,EAAE,cAAc,yBAUvD"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
const isTreeItem = (item) => item.
|
|
2
|
-
const isTreeRoot = (item) => item.
|
|
1
|
+
const isTreeItem = (item) => item instanceof Element && item.matches('vscode-tree-item');
|
|
2
|
+
const isTreeRoot = (item) => item instanceof Element && item.matches('vscode-tree');
|
|
3
3
|
export const initPathTrackerProps = (parentElement, items) => {
|
|
4
4
|
const numChildren = items.length;
|
|
5
5
|
const parentElementLevel = isTreeRoot(parentElement)
|
|
@@ -8,10 +8,7 @@ export const initPathTrackerProps = (parentElement, items) => {
|
|
|
8
8
|
if ('branch' in parentElement) {
|
|
9
9
|
parentElement.branch = numChildren > 0;
|
|
10
10
|
}
|
|
11
|
-
parentElement.dataset.numChildren = numChildren.toString();
|
|
12
11
|
items.forEach((item, i) => {
|
|
13
|
-
const level = parentElementLevel + 1;
|
|
14
|
-
const index = i.toString();
|
|
15
12
|
if ('path' in parentElement) {
|
|
16
13
|
item.path = [...parentElement.path, i];
|
|
17
14
|
}
|
|
@@ -19,19 +16,14 @@ export const initPathTrackerProps = (parentElement, items) => {
|
|
|
19
16
|
item.path = [i];
|
|
20
17
|
}
|
|
21
18
|
item.level = parentElementLevel + 1;
|
|
22
|
-
item.dataset.level = (parentElementLevel + 1).toString();
|
|
23
|
-
item.dataset.index = i.toString();
|
|
24
|
-
item.dataset.last = i === numChildren - 1 ? 'true' : 'false';
|
|
25
|
-
item.dataset.id = `${level}_${index}`;
|
|
26
19
|
item.dataset.path = item.path.join('.');
|
|
27
20
|
});
|
|
28
21
|
};
|
|
29
22
|
export const findLastChildItem = (item) => {
|
|
30
|
-
const
|
|
31
|
-
if (
|
|
23
|
+
const lastItem = item.lastElementChild;
|
|
24
|
+
if (!lastItem || !isTreeItem(lastItem)) {
|
|
32
25
|
return item;
|
|
33
26
|
}
|
|
34
|
-
const lastItem = children[children.length - 1];
|
|
35
27
|
if (lastItem.branch && lastItem.open) {
|
|
36
28
|
return findLastChildItem(lastItem);
|
|
37
29
|
}
|
|
@@ -39,58 +31,70 @@ export const findLastChildItem = (item) => {
|
|
|
39
31
|
return lastItem;
|
|
40
32
|
}
|
|
41
33
|
};
|
|
42
|
-
export const
|
|
34
|
+
export const findClosestAncestorHasNextSibling = (item) => {
|
|
43
35
|
if (!item.parentElement) {
|
|
44
36
|
return null;
|
|
45
37
|
}
|
|
46
38
|
if (!isTreeItem(item.parentElement)) {
|
|
47
39
|
return null;
|
|
48
40
|
}
|
|
49
|
-
const
|
|
50
|
-
if (
|
|
51
|
-
return
|
|
41
|
+
const nextSiblingOfParent = findNextTreeItemElementSibling(item.parentElement);
|
|
42
|
+
if (nextSiblingOfParent) {
|
|
43
|
+
return nextSiblingOfParent;
|
|
52
44
|
}
|
|
53
45
|
else {
|
|
54
|
-
return
|
|
46
|
+
return findClosestAncestorHasNextSibling(item.parentElement);
|
|
55
47
|
}
|
|
56
48
|
};
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
49
|
+
const findNextTreeItemElementSibling = (item) => {
|
|
50
|
+
let nextSibling = item.nextElementSibling;
|
|
51
|
+
while (nextSibling && !isTreeItem(nextSibling)) {
|
|
52
|
+
nextSibling = nextSibling.nextElementSibling;
|
|
60
53
|
}
|
|
54
|
+
return nextSibling;
|
|
55
|
+
};
|
|
56
|
+
export const findNextItem = (item) => {
|
|
61
57
|
const { parentElement } = item;
|
|
62
|
-
if (!parentElement) {
|
|
58
|
+
if (!parentElement || !isTreeItem(item)) {
|
|
63
59
|
return null;
|
|
64
60
|
}
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
if (closestParent) {
|
|
74
|
-
const cpIndex = parseInt(closestParent.dataset.index ?? '', 10) + 1;
|
|
75
|
-
const cpLevel = closestParent.level;
|
|
76
|
-
return (closestParent.parentElement?.querySelector(`vscode-tree-item[level="${cpLevel}"][data-index="${cpIndex}"]`) ?? null);
|
|
61
|
+
let nextItem;
|
|
62
|
+
if (item.branch && item.open) {
|
|
63
|
+
const firstChildItem = item.querySelector('vscode-tree-item');
|
|
64
|
+
if (!firstChildItem) {
|
|
65
|
+
nextItem = findNextTreeItemElementSibling(item);
|
|
66
|
+
if (!nextItem) {
|
|
67
|
+
nextItem = findClosestAncestorHasNextSibling(item);
|
|
68
|
+
}
|
|
77
69
|
}
|
|
78
70
|
else {
|
|
79
|
-
|
|
71
|
+
nextItem = firstChildItem;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
else {
|
|
75
|
+
nextItem = findNextTreeItemElementSibling(item);
|
|
76
|
+
if (!nextItem) {
|
|
77
|
+
nextItem = findClosestAncestorHasNextSibling(item);
|
|
80
78
|
}
|
|
81
79
|
}
|
|
82
|
-
|
|
83
|
-
|
|
80
|
+
if (!nextItem) {
|
|
81
|
+
return item;
|
|
82
|
+
}
|
|
83
|
+
else {
|
|
84
|
+
return nextItem;
|
|
85
|
+
}
|
|
84
86
|
};
|
|
85
87
|
export const findPrevItem = (item) => {
|
|
86
88
|
const { parentElement } = item;
|
|
87
|
-
|
|
88
|
-
if (!parentElement) {
|
|
89
|
+
if (!parentElement || !isTreeItem(item)) {
|
|
89
90
|
return null;
|
|
90
91
|
}
|
|
91
|
-
|
|
92
|
+
let prevSibling = item.previousElementSibling;
|
|
93
|
+
while (prevSibling && !isTreeItem(prevSibling)) {
|
|
94
|
+
prevSibling = prevSibling.previousElementSibling;
|
|
95
|
+
}
|
|
92
96
|
if (!prevSibling) {
|
|
93
|
-
if (parentElement
|
|
97
|
+
if (isTreeItem(parentElement)) {
|
|
94
98
|
return parentElement;
|
|
95
99
|
}
|
|
96
100
|
}
|
|
@@ -100,34 +104,7 @@ export const findPrevItem = (item) => {
|
|
|
100
104
|
}
|
|
101
105
|
return prevSibling;
|
|
102
106
|
};
|
|
103
|
-
export
|
|
104
|
-
if (!item.parentElement ||
|
|
105
|
-
item.parentElement.tagName.toLowerCase() !== 'vscode-tree-item') {
|
|
106
|
-
return null;
|
|
107
|
-
}
|
|
108
|
-
const parent = item.parentElement;
|
|
109
|
-
const itemLevel = +(item.dataset.level ?? '');
|
|
110
|
-
if (itemLevel > level) {
|
|
111
|
-
return findAncestorOnSpecificLevel(parent, level);
|
|
112
|
-
}
|
|
113
|
-
if (itemLevel === level) {
|
|
114
|
-
return item;
|
|
115
|
-
}
|
|
116
|
-
return null;
|
|
117
|
-
};
|
|
118
|
-
export const selectItemAndAllVisibleDescendants = (item) => {
|
|
119
|
-
if (!item) {
|
|
120
|
-
return;
|
|
121
|
-
}
|
|
122
|
-
item.selected = true;
|
|
123
|
-
if (item.branch && item.open) {
|
|
124
|
-
const children = item.querySelectorAll(':scope > vscode-tree-item');
|
|
125
|
-
children.forEach((c) => {
|
|
126
|
-
selectItemAndAllVisibleDescendants(c);
|
|
127
|
-
});
|
|
128
|
-
}
|
|
129
|
-
};
|
|
130
|
-
export function getParentItem(childItem) {
|
|
107
|
+
export function findParentItem(childItem) {
|
|
131
108
|
if (!childItem.parentElement) {
|
|
132
109
|
return null;
|
|
133
110
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/vscode-tree/helpers.ts"],"names":[],"mappings":"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","sourcesContent":["import {VscodeTreeItem} from '../vscode-tree-item';\nimport type {VscodeTree} from './vscode-tree';\n\nconst isTreeItem = (item: HTMLElement): item is VscodeTreeItem =>\n item.tagName.toLowerCase() === 'vscode-tree-item';\n\nconst isTreeRoot = (item: HTMLElement): item is VscodeTree =>\n item.tagName.toLowerCase() === 'vscode-tree';\n\nexport const initPathTrackerProps = (\n parentElement: VscodeTree | VscodeTreeItem,\n items: VscodeTreeItem[]\n): void => {\n const numChildren = items.length;\n const parentElementLevel = isTreeRoot(parentElement)\n ? -1\n : (parentElement as VscodeTreeItem).level;\n\n if ('branch' in parentElement) {\n parentElement.branch = numChildren > 0;\n }\n\n parentElement.dataset.numChildren = numChildren.toString();\n\n items.forEach((item, i) => {\n const level = parentElementLevel + 1;\n const index = i.toString();\n\n if ('path' in parentElement) {\n item.path = [...parentElement.path, i];\n } else {\n item.path = [i];\n }\n\n item.level = parentElementLevel + 1;\n item.dataset.level = (parentElementLevel + 1).toString();\n item.dataset.index = i.toString();\n item.dataset.last = i === numChildren - 1 ? 'true' : 'false';\n item.dataset.id = `${level}_${index}`;\n item.dataset.path = item.path.join('.');\n });\n};\n\nexport const findLastChildItem = (item: VscodeTreeItem): VscodeTreeItem => {\n const children = item.querySelectorAll<VscodeTreeItem>(\n ':scope > vscode-tree-item'\n );\n\n if (children.length < 1) {\n return item;\n }\n\n const lastItem = children[children.length - 1];\n\n if (lastItem.branch && lastItem.open) {\n return findLastChildItem(lastItem);\n } else {\n return lastItem;\n }\n};\n\nexport const findClosestParentHasNextSibling = (\n item: VscodeTreeItem\n): VscodeTreeItem | null => {\n if (!item.parentElement) {\n return null;\n }\n\n if (!isTreeItem(item.parentElement)) {\n return null;\n }\n\n const isLast = item.parentElement.dataset.last === 'true' ? true : false;\n\n if (!isLast) {\n return item.parentElement;\n } else {\n return findClosestParentHasNextSibling(item.parentElement);\n }\n};\n\nexport const findNextItem = (item: VscodeTreeItem): VscodeTreeItem | null => {\n if (item.branch && item.open) {\n return item.querySelector<VscodeTreeItem>('vscode-tree-item');\n }\n\n const {parentElement} = item;\n\n if (!parentElement) {\n return null;\n }\n\n const numSiblings = parseInt(parentElement.dataset.numChildren ?? '0', 10);\n const index = parseInt(item.dataset.index ?? '-1', 10);\n\n let level = 0;\n\n if ('level' in item) {\n level = item.level;\n }\n\n if (index === numSiblings - 1) {\n const closestParent = findClosestParentHasNextSibling(item);\n\n if (closestParent) {\n const cpIndex = parseInt(closestParent.dataset.index ?? '', 10) + 1;\n const cpLevel = closestParent.level;\n\n return (\n closestParent.parentElement?.querySelector(\n `vscode-tree-item[level=\"${cpLevel}\"][data-index=\"${cpIndex}\"]`\n ) ?? null\n );\n } else {\n return null;\n }\n }\n\n const nextElementIndex = Math.min(numSiblings - 1, index + 1);\n\n return parentElement.querySelector<VscodeTreeItem>(\n `vscode-tree-item[level=\"${level}\"][data-index=\"${nextElementIndex}\"]`\n );\n};\n\nexport const findPrevItem = (item: VscodeTreeItem): VscodeTreeItem | null => {\n const {parentElement} = item;\n const index = parseInt(item.dataset.index ?? '-1', 10);\n\n if (!parentElement) {\n return null;\n }\n\n const prevSibling = parentElement.querySelector<VscodeTreeItem>(\n `:scope vscode-tree-item[data-index=\"${index - 1}\"]`\n );\n\n if (!prevSibling) {\n if (parentElement.tagName.toLowerCase() === 'vscode-tree-item') {\n return parentElement as VscodeTreeItem;\n }\n }\n\n if (prevSibling && prevSibling.branch && prevSibling.open) {\n const lastChild = findLastChildItem(prevSibling);\n\n return lastChild;\n }\n\n return prevSibling;\n};\n\nexport const findAncestorOnSpecificLevel = (\n item: VscodeTreeItem,\n level: number\n): VscodeTreeItem | null => {\n if (\n !item.parentElement ||\n item.parentElement.tagName.toLowerCase() !== 'vscode-tree-item'\n ) {\n return null;\n }\n\n const parent = item.parentElement as VscodeTreeItem;\n const itemLevel = +(item.dataset.level ?? '');\n\n if (itemLevel > level) {\n return findAncestorOnSpecificLevel(parent, level);\n }\n\n if (itemLevel === level) {\n return item;\n }\n\n return null;\n};\n\nexport const selectItemAndAllVisibleDescendants = (item: VscodeTreeItem) => {\n if (!item) {\n return;\n }\n\n item.selected = true;\n\n if (item.branch && item.open) {\n const children = item.querySelectorAll<VscodeTreeItem>(\n ':scope > vscode-tree-item'\n );\n\n children.forEach((c) => {\n selectItemAndAllVisibleDescendants(c);\n });\n }\n};\n\nexport function getParentItem(childItem: VscodeTreeItem) {\n if (!childItem.parentElement) {\n return null;\n }\n\n if (!isTreeItem(childItem.parentElement)) {\n return null;\n }\n\n return childItem.parentElement;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/vscode-tree/helpers.ts"],"names":[],"mappings":"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","sourcesContent":["import type {VscodeTreeItem} from '../vscode-tree-item/vscode-tree-item.js';\nimport type {VscodeTree} from './vscode-tree.js';\n\nconst isTreeItem = (item: Element | null | undefined): item is VscodeTreeItem =>\n item instanceof Element && item.matches('vscode-tree-item');\n\nconst isTreeRoot = (item: Element | null | undefined): item is VscodeTree =>\n item instanceof Element && item.matches('vscode-tree');\n\nexport const initPathTrackerProps = (\n parentElement: VscodeTree | VscodeTreeItem,\n items: VscodeTreeItem[]\n): void => {\n const numChildren = items.length;\n const parentElementLevel = isTreeRoot(parentElement)\n ? -1\n : (parentElement as VscodeTreeItem).level;\n\n if ('branch' in parentElement) {\n parentElement.branch = numChildren > 0;\n }\n\n items.forEach((item, i) => {\n if ('path' in parentElement) {\n item.path = [...parentElement.path, i];\n } else {\n item.path = [i];\n }\n\n item.level = parentElementLevel + 1;\n item.dataset.path = item.path.join('.');\n });\n};\n\nexport const findLastChildItem = (item: VscodeTreeItem): VscodeTreeItem => {\n const lastItem = item.lastElementChild;\n\n if (!lastItem || !isTreeItem(lastItem)) {\n return item;\n }\n\n if (lastItem.branch && lastItem.open) {\n return findLastChildItem(lastItem);\n } else {\n return lastItem;\n }\n};\n\nexport const findClosestAncestorHasNextSibling = (\n item: VscodeTreeItem\n): VscodeTreeItem | null => {\n if (!item.parentElement) {\n return null;\n }\n\n if (!isTreeItem(item.parentElement)) {\n return null;\n }\n\n const nextSiblingOfParent = findNextTreeItemElementSibling(\n item.parentElement\n );\n\n if (nextSiblingOfParent) {\n return nextSiblingOfParent;\n } else {\n return findClosestAncestorHasNextSibling(item.parentElement);\n }\n};\n\nconst findNextTreeItemElementSibling = (item: VscodeTreeItem) => {\n let nextSibling: Element | null = item.nextElementSibling;\n\n while (nextSibling && !isTreeItem(nextSibling)) {\n nextSibling = nextSibling.nextElementSibling;\n }\n\n return nextSibling;\n};\n\nexport const findNextItem = (item: VscodeTreeItem): VscodeTreeItem | null => {\n const {parentElement} = item;\n\n if (!parentElement || !isTreeItem(item)) {\n return null;\n }\n\n let nextItem: VscodeTreeItem | null;\n\n if (item.branch && item.open) {\n const firstChildItem = item.querySelector('vscode-tree-item');\n\n if (!firstChildItem) {\n nextItem = findNextTreeItemElementSibling(item);\n\n if (!nextItem) {\n nextItem = findClosestAncestorHasNextSibling(item);\n }\n } else {\n nextItem = firstChildItem;\n }\n } else {\n nextItem = findNextTreeItemElementSibling(item);\n\n if (!nextItem) {\n nextItem = findClosestAncestorHasNextSibling(item);\n }\n }\n\n if (!nextItem) {\n return item;\n } else {\n return nextItem;\n }\n};\n\nexport const findPrevItem = (item: VscodeTreeItem): VscodeTreeItem | null => {\n const {parentElement} = item;\n\n if (!parentElement || !isTreeItem(item)) {\n return null;\n }\n\n let prevSibling: Element | null = item.previousElementSibling;\n\n while (prevSibling && !isTreeItem(prevSibling)) {\n prevSibling = prevSibling.previousElementSibling;\n }\n\n if (!prevSibling) {\n if (isTreeItem(parentElement)) {\n return parentElement;\n }\n }\n\n if (prevSibling && prevSibling.branch && prevSibling.open) {\n const lastChild = findLastChildItem(prevSibling);\n\n return lastChild;\n }\n\n return prevSibling;\n};\n\nexport function findParentItem(childItem: VscodeTreeItem) {\n if (!childItem.parentElement) {\n return null;\n }\n\n if (!isTreeItem(childItem.parentElement)) {\n return null;\n }\n\n return childItem.parentElement;\n}\n"]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { VscodeTreeItem } from '../vscode-tree-item';
|
|
2
|
-
import type { ExpandMode, VscodeTree } from './vscode-tree';
|
|
2
|
+
import type { ExpandMode, IndentGuideDisplay, VscodeTree } from './vscode-tree';
|
|
3
3
|
export interface TreeContext {
|
|
4
4
|
isShiftPressed: boolean;
|
|
5
5
|
selectedItems: Set<VscodeTreeItem>;
|
|
@@ -13,18 +13,18 @@ export interface TreeContext {
|
|
|
13
13
|
hasBranchItem: boolean;
|
|
14
14
|
rootElement: VscodeTree | null;
|
|
15
15
|
activeItem: VscodeTreeItem | null;
|
|
16
|
-
highlightedItems
|
|
17
|
-
|
|
16
|
+
highlightedItems?: Set<VscodeTreeItem>;
|
|
17
|
+
highlightIndentGuides?: () => void;
|
|
18
18
|
emitSelectEvent?: () => void;
|
|
19
19
|
}
|
|
20
20
|
export declare const treeContext: {
|
|
21
21
|
__context__: TreeContext;
|
|
22
22
|
};
|
|
23
23
|
export interface ConfigContext {
|
|
24
|
-
readonly
|
|
24
|
+
readonly hideArrows: boolean;
|
|
25
25
|
readonly expandMode: ExpandMode;
|
|
26
26
|
readonly indent: number;
|
|
27
|
-
readonly indentGuides:
|
|
27
|
+
readonly indentGuides: IndentGuideDisplay;
|
|
28
28
|
readonly multiSelect: boolean;
|
|
29
29
|
}
|
|
30
30
|
export declare const configContext: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tree-context.d.ts","sourceRoot":"","sources":["../../src/vscode-tree/tree-context.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,qBAAqB,CAAC;AACxD,OAAO,KAAK,EAAC,UAAU,EAAE,UAAU,EAAC,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"tree-context.d.ts","sourceRoot":"","sources":["../../src/vscode-tree/tree-context.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,qBAAqB,CAAC;AACxD,OAAO,KAAK,EAAC,UAAU,EAAE,kBAAkB,EAAE,UAAU,EAAC,MAAM,eAAe,CAAC;AAE9E,MAAM,WAAW,WAAW;IAC1B,cAAc,EAAE,OAAO,CAAC;IACxB,aAAa,EAAE,GAAG,CAAC,cAAc,CAAC,CAAC;IACnC,QAAQ,EAAE,UAAU,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC;IAC5C,gBAAgB,EAAE,OAAO,CAAC;IAC1B,WAAW,EAAE,cAAc,GAAG,IAAI,CAAC;IACnC,eAAe,EAAE,cAAc,GAAG,IAAI,CAAC;IACvC;;OAEG;IACH,aAAa,EAAE,OAAO,CAAC;IACvB,WAAW,EAAE,UAAU,GAAG,IAAI,CAAC;IAC/B,UAAU,EAAE,cAAc,GAAG,IAAI,CAAC;IAClC,gBAAgB,CAAC,EAAE,GAAG,CAAC,cAAc,CAAC,CAAC;IACvC,qBAAqB,CAAC,EAAE,MAAM,IAAI,CAAC;IACnC,eAAe,CAAC,EAAE,MAAM,IAAI,CAAC;CAC9B;AAED,eAAO,MAAM,WAAW;;CAA4C,CAAC;AAErE,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;IAChC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,YAAY,EAAE,kBAAkB,CAAC;IAC1C,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;CAC/B;AAED,eAAO,MAAM,aAAa;;CAEzB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tree-context.js","sourceRoot":"","sources":["../../src/vscode-tree/tree-context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,aAAa,EAAC,MAAM,cAAc,CAAC;AAsB3C,MAAM,CAAC,MAAM,WAAW,GAAG,aAAa,CAAc,aAAa,CAAC,CAAC;AAUrE,MAAM,CAAC,MAAM,aAAa,GAAG,aAAa,CACxC,MAAM,CAAC,eAAe,CAAC,CACxB,CAAC","sourcesContent":["import {createContext} from '@lit/context';\nimport type {VscodeTreeItem} from '../vscode-tree-item';\nimport type {ExpandMode, VscodeTree} from './vscode-tree';\n\nexport interface TreeContext {\n isShiftPressed: boolean;\n selectedItems: Set<VscodeTreeItem>;\n allItems: NodeListOf<VscodeTreeItem> | null;\n itemListUpToDate: boolean;\n focusedItem: VscodeTreeItem | null;\n prevFocusedItem: VscodeTreeItem | null;\n /** If arrows are visible and `List` component has not any branch item, the\n * extra padding should be removed in the leaf elements before the content\n */\n hasBranchItem: boolean;\n rootElement: VscodeTree | null;\n activeItem: VscodeTreeItem | null;\n highlightedItems
|
|
1
|
+
{"version":3,"file":"tree-context.js","sourceRoot":"","sources":["../../src/vscode-tree/tree-context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,aAAa,EAAC,MAAM,cAAc,CAAC;AAsB3C,MAAM,CAAC,MAAM,WAAW,GAAG,aAAa,CAAc,aAAa,CAAC,CAAC;AAUrE,MAAM,CAAC,MAAM,aAAa,GAAG,aAAa,CACxC,MAAM,CAAC,eAAe,CAAC,CACxB,CAAC","sourcesContent":["import {createContext} from '@lit/context';\nimport type {VscodeTreeItem} from '../vscode-tree-item';\nimport type {ExpandMode, IndentGuideDisplay, VscodeTree} from './vscode-tree';\n\nexport interface TreeContext {\n isShiftPressed: boolean;\n selectedItems: Set<VscodeTreeItem>;\n allItems: NodeListOf<VscodeTreeItem> | null;\n itemListUpToDate: boolean;\n focusedItem: VscodeTreeItem | null;\n prevFocusedItem: VscodeTreeItem | null;\n /** If arrows are visible and `List` component has not any branch item, the\n * extra padding should be removed in the leaf elements before the content\n */\n hasBranchItem: boolean;\n rootElement: VscodeTree | null;\n activeItem: VscodeTreeItem | null;\n highlightedItems?: Set<VscodeTreeItem>;\n highlightIndentGuides?: () => void;\n emitSelectEvent?: () => void;\n}\n\nexport const treeContext = createContext<TreeContext>('vscode-list');\n\nexport interface ConfigContext {\n readonly hideArrows: boolean;\n readonly expandMode: ExpandMode;\n readonly indent: number;\n readonly indentGuides: IndentGuideDisplay;\n readonly multiSelect: boolean;\n}\n\nexport const configContext = createContext<ConfigContext>(\n Symbol('configContext')\n);\n"]}
|
|
@@ -4,17 +4,77 @@ import type { VscodeTreeItem } from '../vscode-tree-item';
|
|
|
4
4
|
export type VscTreeSelectEvent = CustomEvent<{
|
|
5
5
|
selectedItems: VscodeTreeItem[];
|
|
6
6
|
}>;
|
|
7
|
-
export declare const
|
|
8
|
-
readonly
|
|
9
|
-
readonly
|
|
7
|
+
export declare const ExpandMode: {
|
|
8
|
+
readonly singleClick: "singleClick";
|
|
9
|
+
readonly doubleClick: "doubleClick";
|
|
10
10
|
};
|
|
11
|
-
export type ExpandMode = (typeof
|
|
11
|
+
export type ExpandMode = (typeof ExpandMode)[keyof typeof ExpandMode];
|
|
12
|
+
export declare const IndentGuides: {
|
|
13
|
+
readonly none: "none";
|
|
14
|
+
readonly onHover: "onHover";
|
|
15
|
+
readonly always: "always";
|
|
16
|
+
};
|
|
17
|
+
export type IndentGuideDisplay = (typeof IndentGuides)[keyof typeof IndentGuides];
|
|
18
|
+
/**
|
|
19
|
+
* @tag vscode-tree
|
|
20
|
+
*/
|
|
12
21
|
export declare class VscodeTree extends VscElement {
|
|
13
22
|
static styles: import("lit").CSSResultGroup;
|
|
14
|
-
|
|
23
|
+
/**
|
|
24
|
+
* Although arrows are always visible in the Tree component by default in VSCode, some icon sets
|
|
25
|
+
* (e.g., Material Icon Theme) allow disabling them in the file explorer view. This flag makes it
|
|
26
|
+
* possible to mimic that behavior.
|
|
27
|
+
*
|
|
28
|
+
* @type {boolean}
|
|
29
|
+
* @default false
|
|
30
|
+
*/
|
|
31
|
+
hideArrows: boolean;
|
|
32
|
+
/**
|
|
33
|
+
* Controls how tree folders are expanded when clicked. This property is designed to use
|
|
34
|
+
* the `workbench.tree.expandMode` setting.
|
|
35
|
+
*
|
|
36
|
+
* Valid options are available as constants.
|
|
37
|
+
*
|
|
38
|
+
* ```javascript
|
|
39
|
+
* import {ExpandMode} from '@vscode-elements/elements/dist/vscode-tree/vscode-tree.js';
|
|
40
|
+
*
|
|
41
|
+
* document.querySelector('vscode-tree').expandMode = ExpandMode.singleClick;
|
|
42
|
+
* ```
|
|
43
|
+
*
|
|
44
|
+
* @type {'singleClick' | 'doubleClick'}
|
|
45
|
+
* @default 'singleClick'
|
|
46
|
+
*/
|
|
15
47
|
expandMode: ExpandMode;
|
|
48
|
+
/**
|
|
49
|
+
* Controls the indentation in pixels. This property is designed to use the
|
|
50
|
+
* `workbench.tree.indent` setting.
|
|
51
|
+
*
|
|
52
|
+
* @type {number}
|
|
53
|
+
* @default 8
|
|
54
|
+
*/
|
|
16
55
|
indent: number;
|
|
17
|
-
|
|
56
|
+
/**
|
|
57
|
+
* Controls whether the tree should render indent guides. This property is
|
|
58
|
+
* designed to use the `workbench.tree.renderIndentGuides` setting.
|
|
59
|
+
*
|
|
60
|
+
* Valid options are available as constants.
|
|
61
|
+
*
|
|
62
|
+
* ```javascript
|
|
63
|
+
* import {IndentGuides} from '@vscode-elements/elements/dist/vscode-tree/vscode-tree.js';
|
|
64
|
+
*
|
|
65
|
+
* document.querySelector('vscode-tree').expandMode = IndentGuides.onHover;
|
|
66
|
+
* ```
|
|
67
|
+
*
|
|
68
|
+
* @type {'none' | 'onHover' | 'always'}
|
|
69
|
+
* @default 'onHover'
|
|
70
|
+
*/
|
|
71
|
+
indentGuides: IndentGuideDisplay;
|
|
72
|
+
/**
|
|
73
|
+
* Allows selecting multiple items.
|
|
74
|
+
*
|
|
75
|
+
* @type {boolean}
|
|
76
|
+
* @default false
|
|
77
|
+
*/
|
|
18
78
|
multiSelect: boolean;
|
|
19
79
|
private _treeContextState;
|
|
20
80
|
private _configContext;
|
|
@@ -22,7 +82,13 @@ export declare class VscodeTree extends VscElement {
|
|
|
22
82
|
constructor();
|
|
23
83
|
connectedCallback(): void;
|
|
24
84
|
protected willUpdate(changedProperties: PropertyValues<this>): void;
|
|
85
|
+
/**
|
|
86
|
+
* Expands all folders.
|
|
87
|
+
*/
|
|
25
88
|
expandAll(): void;
|
|
89
|
+
/**
|
|
90
|
+
* Collapses all folders.
|
|
91
|
+
*/
|
|
26
92
|
collapseAll(): void;
|
|
27
93
|
/**
|
|
28
94
|
* @internal
|
|
@@ -31,7 +97,8 @@ export declare class VscodeTree extends VscElement {
|
|
|
31
97
|
*/
|
|
32
98
|
updateHasBranchItemFlag(): void;
|
|
33
99
|
private _emitSelectEvent;
|
|
34
|
-
private
|
|
100
|
+
private _highlightIndentGuideOfItem;
|
|
101
|
+
private _highlightIndentGuides;
|
|
35
102
|
private _updateConfigContext;
|
|
36
103
|
private _focusItem;
|
|
37
104
|
private _focusPrevItem;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vscode-tree.d.ts","sourceRoot":"","sources":["../../src/vscode-tree/vscode-tree.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,cAAc,EAAE,cAAc,EAAO,MAAM,KAAK,CAAC;AAOzD,OAAO,EAAC,UAAU,EAAC,MAAM,wBAAwB,CAAC;AAClD,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,qBAAqB,CAAC;AAexD,MAAM,MAAM,kBAAkB,GAAG,WAAW,CAAC;IAAC,aAAa,EAAE,cAAc,EAAE,CAAA;CAAC,CAAC,CAAC;AAEhF,eAAO,MAAM,
|
|
1
|
+
{"version":3,"file":"vscode-tree.d.ts","sourceRoot":"","sources":["../../src/vscode-tree/vscode-tree.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,cAAc,EAAE,cAAc,EAAO,MAAM,KAAK,CAAC;AAOzD,OAAO,EAAC,UAAU,EAAC,MAAM,wBAAwB,CAAC;AAClD,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,qBAAqB,CAAC;AAexD,MAAM,MAAM,kBAAkB,GAAG,WAAW,CAAC;IAAC,aAAa,EAAE,cAAc,EAAE,CAAA;CAAC,CAAC,CAAC;AAEhF,eAAO,MAAM,UAAU;;;CAGb,CAAC;AAEX,MAAM,MAAM,UAAU,GAAG,CAAC,OAAO,UAAU,CAAC,CAAC,MAAM,OAAO,UAAU,CAAC,CAAC;AAEtE,eAAO,MAAM,YAAY;;;;CAIf,CAAC;AAEX,MAAM,MAAM,kBAAkB,GAC5B,CAAC,OAAO,YAAY,CAAC,CAAC,MAAM,OAAO,YAAY,CAAC,CAAC;AA4BnD;;GAEG;AACH,qBACa,UAAW,SAAQ,UAAU;IACxC,OAAgB,MAAM,+BAAU;IAIhC;;;;;;;OAOG;IAEH,UAAU,EAAE,OAAO,CAAuB;IAE1C;;;;;;;;;;;;;;OAcG;IAEH,UAAU,EAAE,UAAU,CAAuB;IAE7C;;;;;;OAMG;IAEH,MAAM,EAAE,MAAM,CAAkB;IAEhC;;;;;;;;;;;;;;OAcG;IAOH,YAAY,EAAE,kBAAkB,CAAgC;IAEhE;;;;;OAKG;IAEH,WAAW,EAAE,OAAO,CAAwB;IAO5C,OAAO,CAAC,iBAAiB,CAiBvB;IAGF,OAAO,CAAC,cAAc,CAMpB;IAGF,OAAO,CAAC,kBAAkB,CAAoB;;IAarC,iBAAiB,IAAI,IAAI;cAMf,UAAU,CAAC,iBAAiB,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;IAY5E;;OAEG;IACH,SAAS;IAUT;;OAEG;IACH,WAAW;IAUX;;;;OAIG;IACH,uBAAuB;IASvB,OAAO,CAAC,gBAAgB;IAQxB,OAAO,CAAC,2BAA2B;IAcnC,OAAO,CAAC,sBAAsB;IAmB9B,OAAO,CAAC,oBAAoB;IAwB5B,OAAO,CAAC,UAAU;IASlB,OAAO,CAAC,cAAc;IAetB,OAAO,CAAC,cAAc;IAmBtB,OAAO,CAAC,sBAAsB;IAgB9B,OAAO,CAAC,qBAAqB;IA4B7B,OAAO,CAAC,qBAAqB;IAQ7B,OAAO,CAAC,mBAAmB;IAQ3B,OAAO,CAAC,iBAAiB;IAmBzB,OAAO,CAAC,iBAAiB;IAIzB,OAAO,CAAC,uBAAuB,CA8B7B;IAEF,OAAO,CAAC,qBAAqB,CAI3B;IAEF,OAAO,CAAC,iBAAiB,CAevB;IAIO,MAAM,IAAI,cAAc;CAKlC;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,aAAa,EAAE,UAAU,CAAC;KAC3B;IAED,UAAU,2BAA2B;QACnC,iBAAiB,EAAE,kBAAkB,CAAC;KACvC;CACF"}
|