@neo4j-ndl/react 2.9.3 → 2.10.0

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.
Files changed (71) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/lib/LICENSES.txt +27 -1
  3. package/lib/NOTICE.txt +10 -2
  4. package/lib/cjs/_common/utils.js +41 -1
  5. package/lib/cjs/_common/utils.js.map +1 -1
  6. package/lib/cjs/data-grid/Components.js +3 -1
  7. package/lib/cjs/data-grid/Components.js.map +1 -1
  8. package/lib/cjs/index.js +1 -0
  9. package/lib/cjs/index.js.map +1 -1
  10. package/lib/cjs/tree-view/TreeItemWrapper.js +201 -0
  11. package/lib/cjs/tree-view/TreeItemWrapper.js.map +1 -0
  12. package/lib/cjs/tree-view/TreeView.js +314 -0
  13. package/lib/cjs/tree-view/TreeView.js.map +1 -0
  14. package/lib/cjs/tree-view/TreeViewItem.js +89 -0
  15. package/lib/cjs/tree-view/TreeViewItem.js.map +1 -0
  16. package/lib/cjs/tree-view/TreeViewTextItem.js +153 -0
  17. package/lib/cjs/tree-view/TreeViewTextItem.js.map +1 -0
  18. package/lib/cjs/tree-view/TreeViewTrail.js +30 -0
  19. package/lib/cjs/tree-view/TreeViewTrail.js.map +1 -0
  20. package/lib/cjs/tree-view/index.js +26 -0
  21. package/lib/cjs/tree-view/index.js.map +1 -0
  22. package/lib/cjs/tree-view/tree-view-keyboard-coordinates.js +119 -0
  23. package/lib/cjs/tree-view/tree-view-keyboard-coordinates.js.map +1 -0
  24. package/lib/cjs/tree-view/tree-view-keyboard-helpers.js +75 -0
  25. package/lib/cjs/tree-view/tree-view-keyboard-helpers.js.map +1 -0
  26. package/lib/cjs/tree-view/tree-view-types.js +24 -0
  27. package/lib/cjs/tree-view/tree-view-types.js.map +1 -0
  28. package/lib/cjs/tree-view/tree-view-utils.js +187 -0
  29. package/lib/cjs/tree-view/tree-view-utils.js.map +1 -0
  30. package/lib/esm/_common/utils.js +38 -0
  31. package/lib/esm/_common/utils.js.map +1 -1
  32. package/lib/esm/data-grid/Components.js +3 -1
  33. package/lib/esm/data-grid/Components.js.map +1 -1
  34. package/lib/esm/index.js +1 -0
  35. package/lib/esm/index.js.map +1 -1
  36. package/lib/esm/tree-view/TreeItemWrapper.js +172 -0
  37. package/lib/esm/tree-view/TreeItemWrapper.js.map +1 -0
  38. package/lib/esm/tree-view/TreeView.js +310 -0
  39. package/lib/esm/tree-view/TreeView.js.map +1 -0
  40. package/lib/esm/tree-view/TreeViewItem.js +63 -0
  41. package/lib/esm/tree-view/TreeViewItem.js.map +1 -0
  42. package/lib/esm/tree-view/TreeViewTextItem.js +147 -0
  43. package/lib/esm/tree-view/TreeViewTextItem.js.map +1 -0
  44. package/lib/esm/tree-view/TreeViewTrail.js +26 -0
  45. package/lib/esm/tree-view/TreeViewTrail.js.map +1 -0
  46. package/lib/esm/tree-view/index.js +22 -0
  47. package/lib/esm/tree-view/index.js.map +1 -0
  48. package/lib/esm/tree-view/tree-view-keyboard-coordinates.js +115 -0
  49. package/lib/esm/tree-view/tree-view-keyboard-coordinates.js.map +1 -0
  50. package/lib/esm/tree-view/tree-view-keyboard-helpers.js +68 -0
  51. package/lib/esm/tree-view/tree-view-keyboard-helpers.js.map +1 -0
  52. package/lib/esm/tree-view/tree-view-types.js +23 -0
  53. package/lib/esm/tree-view/tree-view-types.js.map +1 -0
  54. package/lib/esm/tree-view/tree-view-utils.js +179 -0
  55. package/lib/esm/tree-view/tree-view-utils.js.map +1 -0
  56. package/lib/types/_common/utils.d.ts +12 -0
  57. package/lib/types/data-grid/datagrid-types.d.ts +5 -2
  58. package/lib/types/index.d.ts +1 -0
  59. package/lib/types/table/Table.d.ts +1 -1
  60. package/lib/types/tree-view/TreeItemWrapper.d.ts +32 -0
  61. package/lib/types/tree-view/TreeView.d.ts +34 -0
  62. package/lib/types/tree-view/TreeViewItem.d.ts +52 -0
  63. package/lib/types/tree-view/TreeViewTextItem.d.ts +23 -0
  64. package/lib/types/tree-view/TreeViewTrail.d.ts +24 -0
  65. package/lib/types/tree-view/index.d.ts +23 -0
  66. package/lib/types/tree-view/tree-view-keyboard-coordinates.d.ts +23 -0
  67. package/lib/types/tree-view/tree-view-keyboard-helpers.d.ts +25 -0
  68. package/lib/types/tree-view/tree-view-types.d.ts +80 -0
  69. package/lib/types/tree-view/tree-view-utils.d.ts +77 -0
  70. package/lib/types/typography/Typography.d.ts +1 -1
  71. package/package.json +3 -1
@@ -0,0 +1,314 @@
1
+ "use strict";
2
+ var __rest = (this && this.__rest) || function (s, e) {
3
+ var t = {};
4
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
5
+ t[p] = s[p];
6
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
7
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
8
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
9
+ t[p[i]] = s[p[i]];
10
+ }
11
+ return t;
12
+ };
13
+ Object.defineProperty(exports, "__esModule", { value: true });
14
+ exports.TreeView = void 0;
15
+ const jsx_runtime_1 = require("react/jsx-runtime");
16
+ /**
17
+ *
18
+ * Copyright (c) "Neo4j"
19
+ * Neo4j Sweden AB [http://neo4j.com]
20
+ *
21
+ * This file is part of Neo4j.
22
+ *
23
+ * Neo4j is free software: you can redistribute it and/or modify
24
+ * it under the terms of the GNU General Public License as published by
25
+ * the Free Software Foundation, either version 3 of the License, or
26
+ * (at your option) any later version.
27
+ *
28
+ * This program is distributed in the hope that it will be useful,
29
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
30
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
31
+ * GNU General Public License for more details.
32
+ *
33
+ * You should have received a copy of the GNU General Public License
34
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
35
+ */
36
+ const core_1 = require("@dnd-kit/core");
37
+ const sortable_1 = require("@dnd-kit/sortable");
38
+ const react_1 = require("react");
39
+ const react_dom_1 = require("react-dom");
40
+ const TreeItemWrapper_1 = require("./TreeItemWrapper");
41
+ const TreeViewItem_1 = require("./TreeViewItem");
42
+ const TreeViewTextItem_1 = require("./TreeViewTextItem");
43
+ const tree_view_keyboard_coordinates_1 = require("./tree-view-keyboard-coordinates");
44
+ const tree_view_utils_1 = require("./tree-view-utils");
45
+ const indentationWidth = 20;
46
+ const ACTIVE_PLACEHOLDER_ID = 'ndl-active-tree-item';
47
+ const dropAnimationConfig = {
48
+ keyframes({ transform }) {
49
+ return [
50
+ {
51
+ opacity: 1,
52
+ transform: (0, tree_view_utils_1.transformToString)(transform.initial),
53
+ },
54
+ {
55
+ opacity: 0,
56
+ transform: (0, tree_view_utils_1.transformToString)(Object.assign(Object.assign({}, transform.final), { y: transform.final.y + 5, x: transform.final.x + 5 })),
57
+ },
58
+ ];
59
+ },
60
+ easing: 'ease-out',
61
+ sideEffects({ active }) {
62
+ active.node.animate([{ opacity: 0 }, { opacity: 1 }], {
63
+ duration: core_1.defaultDropAnimation.duration,
64
+ easing: core_1.defaultDropAnimation.easing,
65
+ });
66
+ },
67
+ };
68
+ const TreeView = (_a) => {
69
+ var _b;
70
+ var { items, TreeItemComponent, onItemsChanged } = _a, rest = __rest(_a, ["items", "TreeItemComponent", "onItemsChanged"]);
71
+ const flattenItems = (0, react_1.useMemo)(() => (0, tree_view_utils_1.flattenTree)(items), [items]);
72
+ const [activeId, setActiveId] = (0, react_1.useState)(null);
73
+ const [overId, setOverId] = (0, react_1.useState)(null);
74
+ const [focusedRowId, setFocusedRowId] = (0, react_1.useState)(null);
75
+ const [currentPosition, setCurrentPosition] = (0, react_1.useState)(null);
76
+ const [offsetLeft, setOffsetLeft] = (0, react_1.useState)(0);
77
+ /* ------------------------------ Setup of Data ------------------------------ */
78
+ const flattenedAndRemovedCollapsedItems = (0, react_1.useMemo)(() => {
79
+ const collapsedItemsIds = flattenItems
80
+ .filter((item) => item.canHaveSubItems && item.isCollapsed)
81
+ .map((item) => item.id);
82
+ return (0, tree_view_utils_1.removeChildrenOf)([...flattenItems], activeId !== null ? [activeId, ...collapsedItemsIds] : collapsedItemsIds);
83
+ }, [activeId, flattenItems]);
84
+ const activeItem = (0, react_1.useMemo)(() => (activeId ? flattenItems.find(({ id }) => id === activeId) : null), [activeId, flattenItems]);
85
+ const flattenedAndRemovedCollapsedItemsWithActive = (0, react_1.useMemo)(() => {
86
+ const collapsedItems = flattenItems.reduce((acc, item) => {
87
+ if (item.canHaveSubItems && item.isCollapsed) {
88
+ return [...acc, item.id];
89
+ }
90
+ return acc;
91
+ }, []);
92
+ const ItemsWithCollapsedRemoved = (0, tree_view_utils_1.removeChildrenOf)(flattenItems, activeId ? [activeId, ...collapsedItems] : collapsedItems);
93
+ const newArray = [];
94
+ for (const item of ItemsWithCollapsedRemoved) {
95
+ newArray.push(item);
96
+ if (item.id === activeId) {
97
+ newArray.push(Object.assign(Object.assign({}, item), { id: ACTIVE_PLACEHOLDER_ID }));
98
+ }
99
+ }
100
+ return newArray;
101
+ }, [flattenItems, activeId]);
102
+ activeItem && activeItem.canHaveSubItems && !activeItem.isCollapsed
103
+ ? flattenedAndRemovedCollapsedItems.concat(Object.assign(Object.assign({}, activeItem), { id: ACTIVE_PLACEHOLDER_ID }))
104
+ : flattenedAndRemovedCollapsedItems;
105
+ const sensorContext = (0, react_1.useRef)({
106
+ items: flattenedAndRemovedCollapsedItemsWithActive,
107
+ offset: offsetLeft,
108
+ });
109
+ const coordinateGetter = (0, react_1.useMemo)(() => {
110
+ sensorContext.current.items = flattenedAndRemovedCollapsedItemsWithActive;
111
+ sensorContext.current.offset = offsetLeft;
112
+ return (0, tree_view_keyboard_coordinates_1.sortableTreeKeyboardCoordinates)(sensorContext, true, indentationWidth);
113
+ }, [flattenedAndRemovedCollapsedItemsWithActive, offsetLeft]);
114
+ const sensors = (0, core_1.useSensors)((0, core_1.useSensor)(core_1.PointerSensor), (0, core_1.useSensor)(core_1.KeyboardSensor, {
115
+ coordinateGetter: coordinateGetter,
116
+ }));
117
+ const projected = (0, react_1.useMemo)(() => activeId && overId
118
+ ? (0, tree_view_utils_1.getProjection)(flattenedAndRemovedCollapsedItemsWithActive, activeId, overId, offsetLeft, indentationWidth)
119
+ : null, [activeId, overId, flattenedAndRemovedCollapsedItemsWithActive, offsetLeft]);
120
+ /* ------------------------------ Handlers ------------------------------ */
121
+ function handleDragStart({ active }) {
122
+ const activeId = active.id;
123
+ setActiveId(activeId);
124
+ setOverId(activeId);
125
+ const activeItem = flattenItems.find(({ id }) => id === activeId);
126
+ if (activeItem) {
127
+ setCurrentPosition({
128
+ parentId: activeItem.parentId,
129
+ overId: activeId,
130
+ });
131
+ }
132
+ document.body.style.setProperty('cursor', 'grabbing');
133
+ }
134
+ function handleDragMove({ delta }) {
135
+ setOffsetLeft(delta.x);
136
+ }
137
+ function handleDragOver({ over }) {
138
+ var _a;
139
+ setOverId((_a = over === null || over === void 0 ? void 0 : over.id) !== null && _a !== void 0 ? _a : null);
140
+ }
141
+ function resetState() {
142
+ setOverId(null);
143
+ setActiveId(null);
144
+ setOffsetLeft(0);
145
+ setCurrentPosition(null);
146
+ document.body.style.setProperty('cursor', '');
147
+ }
148
+ const handleDragEnd = (0, react_1.useCallback)((event) => {
149
+ const { active, over } = event;
150
+ resetState();
151
+ let overIndex = flattenItems.findIndex((item) => item.id === (over === null || over === void 0 ? void 0 : over.id));
152
+ if ((over === null || over === void 0 ? void 0 : over.id) === ACTIVE_PLACEHOLDER_ID) {
153
+ overIndex = flattenItems.findIndex((item) => item.id === active.id);
154
+ }
155
+ if (projected && over) {
156
+ const { depth, parentId } = projected;
157
+ const clonedItems = [...flattenItems];
158
+ const parentIndex = clonedItems.findIndex((item) => item.id === parentId);
159
+ const activeIndex = clonedItems.findIndex(({ id }) => id === active.id);
160
+ const activeTreeItem = clonedItems[activeIndex];
161
+ clonedItems[activeIndex] = Object.assign(Object.assign({}, activeTreeItem), { depth, parentId });
162
+ const parentItem = clonedItems[parentIndex];
163
+ if (parentItem && parentItem.canHaveSubItems) {
164
+ clonedItems[parentIndex] = Object.assign(Object.assign({}, parentItem), { isCollapsed: false });
165
+ }
166
+ const newItems = (0, tree_view_utils_1.buildTree)((0, sortable_1.arrayMove)(clonedItems, activeIndex, overIndex));
167
+ onItemsChanged(newItems, {
168
+ reason: 'dropped',
169
+ item: activeTreeItem,
170
+ });
171
+ }
172
+ }, [flattenItems, onItemsChanged, projected]);
173
+ function handleToggleCollapse(id) {
174
+ const item = flattenItems.find((item) => item.id === id);
175
+ if (!item || item.canHaveSubItems !== true)
176
+ return;
177
+ onItemsChanged((0, tree_view_utils_1.buildTree)(flattenItems.map((item) => {
178
+ if (item.id === id && item.canHaveSubItems === true) {
179
+ return Object.assign(Object.assign({}, item), { isCollapsed: !item.isCollapsed });
180
+ }
181
+ return item;
182
+ })), {
183
+ reason: item.isCollapsed ? 'expanded' : 'collapsed',
184
+ item,
185
+ });
186
+ }
187
+ function handleDragCancel() {
188
+ resetState();
189
+ }
190
+ /* ------------------------------ Keyboard functions ------------------------------ */
191
+ const getMovementAnnouncement = (eventName, activeId, overId) => {
192
+ if (overId && projected) {
193
+ if (eventName !== 'onDragEnd') {
194
+ if (currentPosition &&
195
+ projected.parentId === currentPosition.parentId &&
196
+ overId === currentPosition.overId) {
197
+ return;
198
+ }
199
+ else {
200
+ setCurrentPosition({
201
+ parentId: projected.parentId,
202
+ overId,
203
+ });
204
+ }
205
+ }
206
+ const clonedItems = [
207
+ ...flattenedAndRemovedCollapsedItemsWithActive,
208
+ ];
209
+ const overIndex = clonedItems.findIndex(({ id }) => id === overId);
210
+ const activeIndex = clonedItems.findIndex(({ id }) => id === activeId);
211
+ const sortedItems = (0, sortable_1.arrayMove)(clonedItems, activeIndex, overIndex);
212
+ const previousItem = sortedItems[overIndex - 1];
213
+ let announcement;
214
+ const movedVerb = eventName === 'onDragEnd' ? 'dropped' : 'moved';
215
+ const nestedVerb = eventName === 'onDragEnd' ? 'dropped' : 'nested';
216
+ if (!previousItem) {
217
+ const nextItem = sortedItems[overIndex + 1];
218
+ announcement = `${activeId} was ${movedVerb} before ${nextItem.id}.`;
219
+ }
220
+ else {
221
+ if (projected.depth > previousItem.depth) {
222
+ announcement = `${activeId} was ${nestedVerb} under ${previousItem.id}.`;
223
+ }
224
+ else {
225
+ let previousSibling = previousItem;
226
+ while (previousSibling && projected.depth < previousSibling.depth) {
227
+ const parentId = previousSibling.parentId;
228
+ previousSibling = sortedItems.find(({ id }) => id === parentId);
229
+ }
230
+ if (previousSibling) {
231
+ announcement = `${activeId} was ${movedVerb} after ${previousSibling.id}.`;
232
+ }
233
+ }
234
+ }
235
+ return announcement;
236
+ }
237
+ return;
238
+ };
239
+ const announcements = {
240
+ onDragStart({ active }) {
241
+ return `Picked up ${active.id}.`;
242
+ },
243
+ onDragMove({ active, over }) {
244
+ return getMovementAnnouncement('onDragMove', active.id, over === null || over === void 0 ? void 0 : over.id);
245
+ },
246
+ onDragOver({ active, over }) {
247
+ return getMovementAnnouncement('onDragOver', active.id, over === null || over === void 0 ? void 0 : over.id);
248
+ },
249
+ onDragEnd({ active, over }) {
250
+ return getMovementAnnouncement('onDragEnd', active.id, over === null || over === void 0 ? void 0 : over.id);
251
+ },
252
+ onDragCancel({ active }) {
253
+ return `Moving was cancelled. ${active.id} was dropped in its original position.`;
254
+ },
255
+ };
256
+ /* ------------------------------ Visual ------------------------------ */
257
+ function getTrailList() {
258
+ const trails = {};
259
+ //Loop through the items in reverse
260
+ [...flattenedAndRemovedCollapsedItemsWithActive]
261
+ .reverse()
262
+ .forEach((item, itemIndex, reversedList) => {
263
+ const trailList = [];
264
+ const nextItem = reversedList[itemIndex - 1];
265
+ //Loop through the depth of the item
266
+ for (let trailDepth = 0; trailDepth < item.depth; trailDepth++) {
267
+ //Not closest to the item so should be straight or none
268
+ if (trailDepth < item.depth - 1) {
269
+ if (nextItem === undefined) {
270
+ trailList.push('none');
271
+ continue;
272
+ }
273
+ else if (trails[nextItem === null || nextItem === void 0 ? void 0 : nextItem.id][trailDepth] === 'none') {
274
+ trailList.push('none');
275
+ continue;
276
+ }
277
+ else if (nextItem && nextItem.depth <= trailDepth) {
278
+ trailList.push('none');
279
+ continue;
280
+ }
281
+ trailList.push('straight');
282
+ }
283
+ else {
284
+ if ((nextItem && trails[nextItem === null || nextItem === void 0 ? void 0 : nextItem.id][trailDepth] === 'none') ||
285
+ nextItem === undefined ||
286
+ nextItem.depth <= trailDepth) {
287
+ trailList.push('curved');
288
+ }
289
+ else {
290
+ trailList.push('straight-curved');
291
+ }
292
+ }
293
+ }
294
+ trails[item.id] = trailList;
295
+ });
296
+ return trails;
297
+ }
298
+ const measuring = {
299
+ droppable: {
300
+ strategy: core_1.MeasuringStrategy.Always,
301
+ },
302
+ };
303
+ const trails = getTrailList();
304
+ const rowIdWithFocus = focusedRowId !== null && focusedRowId !== void 0 ? focusedRowId : (_b = flattenedAndRemovedCollapsedItemsWithActive[0]) === null || _b === void 0 ? void 0 : _b.id;
305
+ return ((0, jsx_runtime_1.jsx)(core_1.DndContext, { accessibility: { announcements }, sensors: sensors, collisionDetection: core_1.closestCenter, onDragEnd: handleDragEnd, onDragStart: handleDragStart, onDragMove: handleDragMove, onDragOver: handleDragOver, onDragCancel: handleDragCancel, measuring: measuring, children: (0, jsx_runtime_1.jsxs)(sortable_1.SortableContext, { items: flattenedAndRemovedCollapsedItemsWithActive.map((item) => item.id), strategy: sortable_1.verticalListSortingStrategy, children: [(0, jsx_runtime_1.jsx)("ol", Object.assign({ className: "ndl-tree-view-list", role: "tree" }, rest, { children: flattenedAndRemovedCollapsedItemsWithActive.map((item) => {
306
+ var _a;
307
+ return ((0, jsx_runtime_1.jsx)(TreeViewItem_1.SortableTreeViewItem, { depth: item.id === activeId && projected ? projected.depth : item.depth, indentationWidth: indentationWidth, item: item, isLast: false, parent: (_a = flattenItems.find((i) => i.id === item.parentId)) !== null && _a !== void 0 ? _a : null, id: item.id, trails: trails[item.id], keepGhostInPlace: item.id === ACTIVE_PLACEHOLDER_ID, TreeItemComponent: TreeItemComponent === undefined
308
+ ? TreeViewTextItem_1.TreeViewTextItem
309
+ : TreeItemComponent, onCollapse: () => handleToggleCollapse(item.id), onItemsChanged: (newItems, itemChangedReason) => onItemsChanged((0, tree_view_utils_1.buildTree)(newItems), itemChangedReason), items: flattenItems, tabIndex: item.id === rowIdWithFocus ? 0 : -1, onFocus: () => setFocusedRowId(item.id), shouldDisableSorting: item.isSortable === false }, item.id));
310
+ }) })), (0, react_dom_1.createPortal)((0, jsx_runtime_1.jsx)(core_1.DragOverlay, { dropAnimation: dropAnimationConfig }), document.body)] }) }));
311
+ };
312
+ exports.TreeView = TreeView;
313
+ exports.TreeView.TreeItemWrapper = TreeItemWrapper_1.TreeItemWrapper;
314
+ //# sourceMappingURL=TreeView.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TreeView.js","sourceRoot":"","sources":["../../../src/tree-view/TreeView.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wCAiBuB;AACvB,gDAI2B;AAC3B,iCAA+D;AAC/D,yCAAyC;AAEzC,uDAAoD;AACpD,iDAAsD;AACtD,yDAAsD;AACtD,qFAAmF;AAOnF,uDAO2B;AAE3B,MAAM,gBAAgB,GAAG,EAAE,CAAC;AAC5B,MAAM,qBAAqB,GAAG,sBAAsB,CAAC;AAErD,MAAM,mBAAmB,GAAkB;IACzC,SAAS,CAAC,EAAE,SAAS,EAAE;QACrB,OAAO;YACL;gBACE,OAAO,EAAE,CAAC;gBACV,SAAS,EAAE,IAAA,mCAAiB,EAAC,SAAS,CAAC,OAAO,CAAC;aAChD;YACD;gBACE,OAAO,EAAE,CAAC;gBACV,SAAS,EAAE,IAAA,mCAAiB,kCACvB,SAAS,CAAC,KAAK,KAClB,CAAC,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,EACxB,CAAC,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,IACxB;aACH;SACF,CAAC;IACJ,CAAC;IACD,MAAM,EAAE,UAAU;IAClB,WAAW,CAAC,EAAE,MAAM,EAAE;QACpB,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE;YACpD,QAAQ,EAAE,2BAAoB,CAAC,QAAQ;YACvC,MAAM,EAAE,2BAAoB,CAAC,MAAM;SACpC,CAAC,CAAC;IACL,CAAC;CACF,CAAC;AAiBK,MAAM,QAAQ,GAAG,CAGtB,EAKoB,EAAE,EAAE;;QALxB,EACA,KAAK,EACL,iBAAiB,EACjB,cAAc,OAEM,EADjB,IAAI,cAJP,gDAKD,CADQ;IAEP,MAAM,YAAY,GAAG,IAAA,eAAO,EAAC,GAAG,EAAE,CAAC,IAAA,6BAAW,EAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IAChE,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,IAAA,gBAAQ,EAA0B,IAAI,CAAC,CAAC;IACxE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,IAAA,gBAAQ,EAA0B,IAAI,CAAC,CAAC;IACpE,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,IAAA,gBAAQ,EAC9C,IAAI,CACL,CAAC;IAEF,MAAM,CAAC,eAAe,EAAE,kBAAkB,CAAC,GAAG,IAAA,gBAAQ,EAG5C,IAAI,CAAC,CAAC;IAChB,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,IAAA,gBAAQ,EAAC,CAAC,CAAC,CAAC;IAEhD,iFAAiF;IAEjF,MAAM,iCAAiC,GAAG,IAAA,eAAO,EAAC,GAAG,EAAE;QACrD,MAAM,iBAAiB,GAAG,YAAY;aACnC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,WAAW,CAAC;aAC1D,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAE1B,OAAO,IAAA,kCAAgB,EACrB,CAAC,GAAG,YAAY,CAAC,EACjB,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAC,iBAAiB,CACzE,CAAC;IACJ,CAAC,EAAE,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC;IAE7B,MAAM,UAAU,GAAG,IAAA,eAAO,EACxB,GAAG,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EACxE,CAAC,QAAQ,EAAE,YAAY,CAAC,CACzB,CAAC;IAEF,MAAM,2CAA2C,GAAG,IAAA,eAAO,EAAC,GAAG,EAAE;QAC/D,MAAM,cAAc,GAAG,YAAY,CAAC,MAAM,CACxC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE;YACZ,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,WAAW,EAAE;gBAC5C,OAAO,CAAC,GAAG,GAAG,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;aAC1B;YACD,OAAO,GAAG,CAAC;QACb,CAAC,EACD,EAAE,CACH,CAAC;QAEF,MAAM,yBAAyB,GAAG,IAAA,kCAAgB,EAChD,YAAY,EACZ,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC,cAAc,CAC1D,CAAC;QACF,MAAM,QAAQ,GAAG,EAAE,CAAC;QACpB,KAAK,MAAM,IAAI,IAAI,yBAAyB,EAAE;YAC5C,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACpB,IAAI,IAAI,CAAC,EAAE,KAAK,QAAQ,EAAE;gBACxB,QAAQ,CAAC,IAAI,iCACR,IAAI,KACP,EAAE,EAAE,qBAAqB,IACzB,CAAC;aACJ;SACF;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC,EAAE,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC,CAAC;IAE7B,UAAU,IAAI,UAAU,CAAC,eAAe,IAAI,CAAC,UAAU,CAAC,WAAW;QACjE,CAAC,CAAC,iCAAiC,CAAC,MAAM,iCACnC,UAAU,KACb,EAAE,EAAE,qBAAqB,IACzB;QACJ,CAAC,CAAC,iCAAiC,CAAC;IAEtC,MAAM,aAAa,GAAqB,IAAA,cAAM,EAAC;QAC7C,KAAK,EAAE,2CAA2C;QAClD,MAAM,EAAE,UAAU;KACnB,CAAC,CAAC;IAEH,MAAM,gBAAgB,GAAG,IAAA,eAAO,EAAC,GAAG,EAAE;QACpC,aAAa,CAAC,OAAO,CAAC,KAAK,GAAG,2CAA2C,CAAC;QAC1E,aAAa,CAAC,OAAO,CAAC,MAAM,GAAG,UAAU,CAAC;QAE1C,OAAO,IAAA,gEAA+B,EACpC,aAAa,EACb,IAAI,EACJ,gBAAgB,CACjB,CAAC;IACJ,CAAC,EAAE,CAAC,2CAA2C,EAAE,UAAU,CAAC,CAAC,CAAC;IAE9D,MAAM,OAAO,GAAG,IAAA,iBAAU,EACxB,IAAA,gBAAS,EAAC,oBAAa,CAAC,EACxB,IAAA,gBAAS,EAAC,qBAAc,EAAE;QACxB,gBAAgB,EAAE,gBAAgB;KACnC,CAAC,CACH,CAAC;IAEF,MAAM,SAAS,GAAG,IAAA,eAAO,EACvB,GAAG,EAAE,CACH,QAAQ,IAAI,MAAM;QAChB,CAAC,CAAC,IAAA,+BAAa,EACX,2CAA2C,EAC3C,QAAQ,EACR,MAAM,EACN,UAAU,EACV,gBAAgB,CACjB;QACH,CAAC,CAAC,IAAI,EACV,CAAC,QAAQ,EAAE,MAAM,EAAE,2CAA2C,EAAE,UAAU,CAAC,CAC5E,CAAC;IACF,4EAA4E;IAC5E,SAAS,eAAe,CAAC,EAAE,MAAM,EAAkB;QACjD,MAAM,QAAQ,GAAG,MAAM,CAAC,EAAE,CAAC;QAC3B,WAAW,CAAC,QAAQ,CAAC,CAAC;QACtB,SAAS,CAAC,QAAQ,CAAC,CAAC;QAEpB,MAAM,UAAU,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,QAAQ,CAAC,CAAC;QAClE,IAAI,UAAU,EAAE;YACd,kBAAkB,CAAC;gBACjB,QAAQ,EAAE,UAAU,CAAC,QAAQ;gBAC7B,MAAM,EAAE,QAAQ;aACjB,CAAC,CAAC;SACJ;QAED,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;IACxD,CAAC;IAED,SAAS,cAAc,CAAC,EAAE,KAAK,EAAiB;QAC9C,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACzB,CAAC;IAED,SAAS,cAAc,CAAC,EAAE,IAAI,EAAiB;;QAC7C,SAAS,CAAC,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,EAAE,mCAAI,IAAI,CAAC,CAAC;IAC9B,CAAC;IAED,SAAS,UAAU;QACjB,SAAS,CAAC,IAAI,CAAC,CAAC;QAChB,WAAW,CAAC,IAAI,CAAC,CAAC;QAClB,aAAa,CAAC,CAAC,CAAC,CAAC;QACjB,kBAAkB,CAAC,IAAI,CAAC,CAAC;QAEzB,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;IAChD,CAAC;IAED,MAAM,aAAa,GAAG,IAAA,mBAAW,EAC/B,CAAC,KAAmB,EAAE,EAAE;QACtB,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC;QAC/B,UAAU,EAAE,CAAC;QACb,IAAI,SAAS,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,MAAK,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,EAAE,CAAA,CAAC,CAAC;QAEvE,IAAI,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,EAAE,MAAK,qBAAqB,EAAE;YACtC,SAAS,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,MAAM,CAAC,EAAE,CAAC,CAAC;SACrE;QACD,IAAI,SAAS,IAAI,IAAI,EAAE;YACrB,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,SAAS,CAAC;YACtC,MAAM,WAAW,GAA2B,CAAC,GAAG,YAAY,CAAC,CAAC;YAE9D,MAAM,WAAW,GAAG,WAAW,CAAC,SAAS,CACvC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,QAAQ,CAC/B,CAAC;YACF,MAAM,WAAW,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,MAAM,CAAC,EAAE,CAAC,CAAC;YACxE,MAAM,cAAc,GAAG,WAAW,CAAC,WAAW,CAAC,CAAC;YAEhD,WAAW,CAAC,WAAW,CAAC,mCAAQ,cAAc,KAAE,KAAK,EAAE,QAAQ,GAAE,CAAC;YAClE,MAAM,UAAU,GAAG,WAAW,CAAC,WAAW,CAAC,CAAC;YAC5C,IAAI,UAAU,IAAI,UAAU,CAAC,eAAe,EAAE;gBAC5C,WAAW,CAAC,WAAW,CAAC,mCAAQ,UAAU,KAAE,WAAW,EAAE,KAAK,GAAE,CAAC;aAClE;YACD,MAAM,QAAQ,GAAG,IAAA,2BAAS,EACxB,IAAA,oBAAS,EAAC,WAAW,EAAE,WAAW,EAAE,SAAS,CAAC,CAC/C,CAAC;YAEF,cAAc,CAAC,QAAQ,EAAE;gBACvB,MAAM,EAAE,SAAS;gBACjB,IAAI,EAAE,cAAc;aACrB,CAAC,CAAC;SACJ;IACH,CAAC,EACD,CAAC,YAAY,EAAE,cAAc,EAAE,SAAS,CAAC,CAC1C,CAAC;IAEF,SAAS,oBAAoB,CAAC,EAAoB;QAChD,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;QACzD,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,eAAe,KAAK,IAAI;YAAE,OAAO;QAEnD,cAAc,CACZ,IAAA,2BAAS,EACP,YAAY,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;YACxB,IAAI,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,IAAI,CAAC,eAAe,KAAK,IAAI,EAAE;gBACnD,uCAAY,IAAI,KAAE,WAAW,EAAE,CAAC,IAAI,CAAC,WAAW,IAAG;aACpD;YACD,OAAO,IAAI,CAAC;QACd,CAAC,CAAC,CACH,EACD;YACE,MAAM,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,WAAW;YACnD,IAAI;SACL,CACF,CAAC;IACJ,CAAC;IAED,SAAS,gBAAgB;QACvB,UAAU,EAAE,CAAC;IACf,CAAC;IAED,sFAAsF;IACtF,MAAM,uBAAuB,GAAG,CAC9B,SAAiB,EACjB,QAA0B,EAC1B,MAAyB,EACzB,EAAE;QACF,IAAI,MAAM,IAAI,SAAS,EAAE;YACvB,IAAI,SAAS,KAAK,WAAW,EAAE;gBAC7B,IACE,eAAe;oBACf,SAAS,CAAC,QAAQ,KAAK,eAAe,CAAC,QAAQ;oBAC/C,MAAM,KAAK,eAAe,CAAC,MAAM,EACjC;oBACA,OAAO;iBACR;qBAAM;oBACL,kBAAkB,CAAC;wBACjB,QAAQ,EAAE,SAAS,CAAC,QAAQ;wBAC5B,MAAM;qBACP,CAAC,CAAC;iBACJ;aACF;YAED,MAAM,WAAW,GAA2B;gBAC1C,GAAG,2CAA2C;aAC/C,CAAC;YACF,MAAM,SAAS,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,MAAM,CAAC,CAAC;YACnE,MAAM,WAAW,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,QAAQ,CAAC,CAAC;YACvE,MAAM,WAAW,GAAG,IAAA,oBAAS,EAAC,WAAW,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC;YAEnE,MAAM,YAAY,GAAG,WAAW,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;YAEhD,IAAI,YAAY,CAAC;YACjB,MAAM,SAAS,GAAG,SAAS,KAAK,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC;YAClE,MAAM,UAAU,GAAG,SAAS,KAAK,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC;YAEpE,IAAI,CAAC,YAAY,EAAE;gBACjB,MAAM,QAAQ,GAAG,WAAW,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;gBAC5C,YAAY,GAAG,GAAG,QAAQ,QAAQ,SAAS,WAAW,QAAQ,CAAC,EAAE,GAAG,CAAC;aACtE;iBAAM;gBACL,IAAI,SAAS,CAAC,KAAK,GAAG,YAAY,CAAC,KAAK,EAAE;oBACxC,YAAY,GAAG,GAAG,QAAQ,QAAQ,UAAU,UAAU,YAAY,CAAC,EAAE,GAAG,CAAC;iBAC1E;qBAAM;oBACL,IAAI,eAAe,GAAqC,YAAY,CAAC;oBACrE,OAAO,eAAe,IAAI,SAAS,CAAC,KAAK,GAAG,eAAe,CAAC,KAAK,EAAE;wBACjE,MAAM,QAAQ,GAA4B,eAAe,CAAC,QAAQ,CAAC;wBACnE,eAAe,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,QAAQ,CAAC,CAAC;qBACjE;oBAED,IAAI,eAAe,EAAE;wBACnB,YAAY,GAAG,GAAG,QAAQ,QAAQ,SAAS,UAAU,eAAe,CAAC,EAAE,GAAG,CAAC;qBAC5E;iBACF;aACF;YAED,OAAO,YAAY,CAAC;SACrB;QAED,OAAO;IACT,CAAC,CAAC;IAEF,MAAM,aAAa,GAAkB;QACnC,WAAW,CAAC,EAAE,MAAM,EAAE;YACpB,OAAO,aAAa,MAAM,CAAC,EAAE,GAAG,CAAC;QACnC,CAAC;QACD,UAAU,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE;YACzB,OAAO,uBAAuB,CAAC,YAAY,EAAE,MAAM,CAAC,EAAE,EAAE,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,EAAE,CAAC,CAAC;QACpE,CAAC;QACD,UAAU,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE;YACzB,OAAO,uBAAuB,CAAC,YAAY,EAAE,MAAM,CAAC,EAAE,EAAE,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,EAAE,CAAC,CAAC;QACpE,CAAC;QACD,SAAS,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE;YACxB,OAAO,uBAAuB,CAAC,WAAW,EAAE,MAAM,CAAC,EAAE,EAAE,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,EAAE,CAAC,CAAC;QACnE,CAAC;QACD,YAAY,CAAC,EAAE,MAAM,EAAE;YACrB,OAAO,yBAAyB,MAAM,CAAC,EAAE,wCAAwC,CAAC;QACpF,CAAC;KACF,CAAC;IACF,0EAA0E;IAC1E,SAAS,YAAY;QACnB,MAAM,MAAM,GAGR,EAAE,CAAC;QACP,mCAAmC;QACnC,CAAC,GAAG,2CAA2C,CAAC;aAC7C,OAAO,EAAE;aACT,OAAO,CAAC,CAAC,IAAI,EAAE,SAAS,EAAE,YAAY,EAAE,EAAE;YACzC,MAAM,SAAS,GAKT,EAAE,CAAC;YACT,MAAM,QAAQ,GAAG,YAAY,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;YAC7C,oCAAoC;YAEpC,KAAK,IAAI,UAAU,GAAG,CAAC,EAAE,UAAU,GAAG,IAAI,CAAC,KAAK,EAAE,UAAU,EAAE,EAAE;gBAC9D,uDAAuD;gBACvD,IAAI,UAAU,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,EAAE;oBAC/B,IAAI,QAAQ,KAAK,SAAS,EAAE;wBAC1B,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;wBACvB,SAAS;qBACV;yBAAM,IAAI,MAAM,CAAC,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,EAAE,CAAC,CAAC,UAAU,CAAC,KAAK,MAAM,EAAE;wBACtD,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;wBACvB,SAAS;qBACV;yBAAM,IAAI,QAAQ,IAAI,QAAQ,CAAC,KAAK,IAAI,UAAU,EAAE;wBACnD,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;wBACvB,SAAS;qBACV;oBACD,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;iBAC5B;qBAAM;oBACL,IACE,CAAC,QAAQ,IAAI,MAAM,CAAC,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,EAAE,CAAC,CAAC,UAAU,CAAC,KAAK,MAAM,CAAC;wBACzD,QAAQ,KAAK,SAAS;wBACtB,QAAQ,CAAC,KAAK,IAAI,UAAU,EAC5B;wBACA,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;qBAC1B;yBAAM;wBACL,SAAS,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;qBACnC;iBACF;aACF;YACD,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC;QAC9B,CAAC,CAAC,CAAC;QACL,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,MAAM,SAAS,GAAG;QAChB,SAAS,EAAE;YACT,QAAQ,EAAE,wBAAiB,CAAC,MAAM;SACnC;KACF,CAAC;IAEF,MAAM,MAAM,GAAG,YAAY,EAAE,CAAC;IAC9B,MAAM,cAAc,GAClB,YAAY,aAAZ,YAAY,cAAZ,YAAY,GAAI,MAAA,2CAA2C,CAAC,CAAC,CAAC,0CAAE,EAAE,CAAC;IACrE,OAAO,CACL,uBAAC,iBAAU,IACT,aAAa,EAAE,EAAE,aAAa,EAAE,EAChC,OAAO,EAAE,OAAO,EAChB,kBAAkB,EAAE,oBAAa,EACjC,SAAS,EAAE,aAAa,EACxB,WAAW,EAAE,eAAe,EAC5B,UAAU,EAAE,cAAc,EAC1B,UAAU,EAAE,cAAc,EAC1B,YAAY,EAAE,gBAAgB,EAC9B,SAAS,EAAE,SAAS,YAEpB,wBAAC,0BAAe,IACd,KAAK,EAAE,2CAA2C,CAAC,GAAG,CACpD,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAClB,EACD,QAAQ,EAAE,sCAA2B,aAErC,6CAAI,SAAS,EAAC,oBAAoB,EAAC,IAAI,EAAC,MAAM,IAAK,IAAI,cACpD,2CAA2C,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;;wBAAC,OAAA,CACzD,uBAAC,mCAAoB,IAEnB,KAAK,EACH,IAAI,CAAC,EAAE,KAAK,QAAQ,IAAI,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,EAElE,gBAAgB,EAAE,gBAAgB,EAClC,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,KAAK,EACb,MAAM,EAAE,MAAA,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,QAAQ,CAAC,mCAAI,IAAI,EAChE,EAAE,EAAE,IAAI,CAAC,EAAE,EACX,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,EACvB,gBAAgB,EAAE,IAAI,CAAC,EAAE,KAAK,qBAAqB,EACnD,iBAAiB,EACf,iBAAiB,KAAK,SAAS;gCAC7B,CAAC,CAAE,mCAA4C;gCAC/C,CAAC,CAAC,iBAAiB,EAEvB,UAAU,EAAE,GAAG,EAAE,CAAC,oBAAoB,CAAC,IAAI,CAAC,EAAE,CAAC,EAC/C,cAAc,EAAE,CAAC,QAAQ,EAAE,iBAAiB,EAAE,EAAE,CAC9C,cAAc,CAAC,IAAA,2BAAS,EAAC,QAAQ,CAAC,EAAE,iBAAiB,CAAC,EAExD,KAAK,EAAE,YAAY,EACnB,QAAQ,EAAE,IAAI,CAAC,EAAE,KAAK,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAC7C,OAAO,EAAE,GAAG,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC,EACvC,oBAAoB,EAAE,IAAI,CAAC,UAAU,KAAK,KAAK,IAvB1C,IAAI,CAAC,EAAE,CAwBZ,CACH,CAAA;qBAAA,CAAC,IACC,EAEJ,IAAA,wBAAY,EACX,uBAAC,kBAAW,IAAC,aAAa,EAAE,mBAAmB,GAAgB,EAC/D,QAAQ,CAAC,IAAI,CACd,IACe,GACP,CACd,CAAC;AACJ,CAAC,CAAC;AA/YW,QAAA,QAAQ,YA+YnB;AAEF,gBAAQ,CAAC,eAAe,GAAG,iCAAe,CAAC"}
@@ -0,0 +1,89 @@
1
+ /**
2
+ *
3
+ * Copyright (c) "Neo4j"
4
+ * Neo4j Sweden AB [http://neo4j.com]
5
+ *
6
+ * This file is part of Neo4j.
7
+ *
8
+ * Neo4j is free software: you can redistribute it and/or modify
9
+ * it under the terms of the GNU General Public License as published by
10
+ * the Free Software Foundation, either version 3 of the License, or
11
+ * (at your option) any later version.
12
+ *
13
+ * This program is distributed in the hope that it will be useful,
14
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
15
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16
+ * GNU General Public License for more details.
17
+ *
18
+ * You should have received a copy of the GNU General Public License
19
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
20
+ */
21
+
22
+ "use strict";
23
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
24
+ if (k2 === undefined) k2 = k;
25
+ var desc = Object.getOwnPropertyDescriptor(m, k);
26
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
27
+ desc = { enumerable: true, get: function() { return m[k]; } };
28
+ }
29
+ Object.defineProperty(o, k2, desc);
30
+ }) : (function(o, m, k, k2) {
31
+ if (k2 === undefined) k2 = k;
32
+ o[k2] = m[k];
33
+ }));
34
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
35
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
36
+ }) : function(o, v) {
37
+ o["default"] = v;
38
+ });
39
+ var __importStar = (this && this.__importStar) || function (mod) {
40
+ if (mod && mod.__esModule) return mod;
41
+ var result = {};
42
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
43
+ __setModuleDefault(result, mod);
44
+ return result;
45
+ };
46
+ var __rest = (this && this.__rest) || function (s, e) {
47
+ var t = {};
48
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
49
+ t[p] = s[p];
50
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
51
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
52
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
53
+ t[p[i]] = s[p[i]];
54
+ }
55
+ return t;
56
+ };
57
+ Object.defineProperty(exports, "__esModule", { value: true });
58
+ exports.SortableTreeViewItem = void 0;
59
+ const jsx_runtime_1 = require("react/jsx-runtime");
60
+ const sortable_1 = require("@dnd-kit/sortable");
61
+ const react_1 = __importStar(require("react"));
62
+ const tree_view_utils_1 = require("./tree-view-utils");
63
+ const animateLayoutChanges = ({ isSorting, isDragging, }) => (isSorting || isDragging ? false : true);
64
+ const SortableTreeViewItemNotMemoized = function SortableTreeViewItem(_a) {
65
+ var { id, depth, isLast, TreeItemComponent, parent, shouldDisableSorting,
66
+ // need to destruct to avoid passing it to the component
67
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
68
+ sortableProps, keepGhostInPlace, item, onCollapse, trails, onItemsChanged, items, tabIndex, onFocus } = _a, restProps = __rest(_a, ["id", "depth", "isLast", "TreeItemComponent", "parent", "shouldDisableSorting", "sortableProps", "keepGhostInPlace", "item", "onCollapse", "trails", "onItemsChanged", "items", "tabIndex", "onFocus"]);
69
+ const { attributes, listeners, setNodeRef, transform, setActivatorNodeRef, transition, isDragging, isSorting, isOver, } = (0, sortable_1.useSortable)({
70
+ id: id,
71
+ animateLayoutChanges,
72
+ transition: {
73
+ duration: 150,
74
+ easing: 'cubic-bezier(0.25, 1, 0.5, 1)',
75
+ },
76
+ });
77
+ const style = {
78
+ transform: transform ? (0, tree_view_utils_1.transformToString)(transform) : undefined,
79
+ transition: transition !== null && transition !== void 0 ? transition : undefined,
80
+ };
81
+ const localCollapse = (0, react_1.useMemo)(() => {
82
+ if (!onCollapse)
83
+ return undefined;
84
+ return () => onCollapse === null || onCollapse === void 0 ? void 0 : onCollapse(item.id);
85
+ }, [item.id, onCollapse]);
86
+ return ((0, jsx_runtime_1.jsx)(TreeItemComponent, Object.assign({ item: item, isOverParent: false }, restProps, { setActivatorNodeRef: setActivatorNodeRef, setNodeRef: setNodeRef, style: style, depth: depth, isGhost: keepGhostInPlace, shouldDisableInteraction: isSorting, isLastInParent: isLast, parent: parent, dragHandleProps: Object.assign(Object.assign({}, attributes), listeners), isIndicator: isDragging, onCollapse: localCollapse, onItemsChanged: onItemsChanged, items: items, shouldDisableSorting: shouldDisableSorting, isOver: isOver, trails: trails, tabIndex: tabIndex, onFocus: onFocus })));
87
+ };
88
+ exports.SortableTreeViewItem = react_1.default.memo(SortableTreeViewItemNotMemoized);
89
+ //# sourceMappingURL=TreeViewItem.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TreeViewItem.js","sourceRoot":"","sources":["../../../src/tree-view/TreeViewItem.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqBA,gDAI2B;AAC3B,+CAA2D;AAO3D,uDAAsD;AAkBtD,MAAM,oBAAoB,GAAyB,CAAC,EAClD,SAAS,EACT,UAAU,GACX,EAAE,EAAE,CAAC,CAAC,SAAS,IAAI,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AAqB/C,MAAM,+BAA+B,GAAG,SAAS,oBAAoB,CAGnE,EAmB4B;QAnB5B,EACA,EAAE,EACF,KAAK,EACL,MAAM,EACN,iBAAiB,EACjB,MAAM,EACN,oBAAoB;IACpB,wDAAwD;IACxD,6DAA6D;IAC7D,aAAa,EACb,gBAAgB,EAChB,IAAI,EACJ,UAAU,EACV,MAAM,EACN,cAAc,EACd,KAAK,EACL,QAAQ,EACR,OAAO,OAEqB,EADzB,SAAS,cAlBZ,uMAmBD,CADa;IAEZ,MAAM,EACJ,UAAU,EACV,SAAS,EACT,UAAU,EACV,SAAS,EACT,mBAAmB,EACnB,UAAU,EACV,UAAU,EACV,SAAS,EACT,MAAM,GACP,GAAG,IAAA,sBAAW,EAAC;QACd,EAAE,EAAE,EAAE;QACN,oBAAoB;QACpB,UAAU,EAAE;YACV,QAAQ,EAAE,GAAG;YACb,MAAM,EAAE,+BAA+B;SACxC;KACF,CAAC,CAAC;IAEH,MAAM,KAAK,GAAkB;QAC3B,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,IAAA,mCAAiB,EAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS;QAC/D,UAAU,EAAE,UAAU,aAAV,UAAU,cAAV,UAAU,GAAI,SAAS;KACpC,CAAC;IACF,MAAM,aAAa,GAAG,IAAA,eAAO,EAAC,GAAG,EAAE;QACjC,IAAI,CAAC,UAAU;YAAE,OAAO,SAAS,CAAC;QAClC,OAAO,GAAG,EAAE,CAAC,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAG,IAAI,CAAC,EAAE,CAAC,CAAC;IACrC,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC,CAAC;IAE1B,OAAO,CACL,uBAAC,iBAAiB,kBAChB,IAAI,EAAE,IAAI,EACV,YAAY,EAAE,KAAK,IACf,SAAS,IACb,mBAAmB,EAAE,mBAAmB,EACxC,UAAU,EAAE,UAAU,EACtB,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,gBAAgB,EACzB,wBAAwB,EAAE,SAAS,EACnC,cAAc,EAAE,MAAM,EACtB,MAAM,EAAE,MAAM,EACd,eAAe,kCACV,UAAU,GACV,SAAS,GAEd,WAAW,EAAE,UAAU,EACvB,UAAU,EAAE,aAAa,EACzB,cAAc,EAAE,cAAc,EAC9B,KAAK,EAAE,KAAK,EACZ,oBAAoB,EAAE,oBAAoB,EAC1C,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,OAAO,IAChB,CACH,CAAC;AACJ,CAAC,CAAC;AAEW,QAAA,oBAAoB,GAAG,eAAK,CAAC,IAAI,CAC5C,+BAA+B,CACU,CAAC"}
@@ -0,0 +1,153 @@
1
+ "use strict";
2
+ var __rest = (this && this.__rest) || function (s, e) {
3
+ var t = {};
4
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
5
+ t[p] = s[p];
6
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
7
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
8
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
9
+ t[p[i]] = s[p[i]];
10
+ }
11
+ return t;
12
+ };
13
+ var __importDefault = (this && this.__importDefault) || function (mod) {
14
+ return (mod && mod.__esModule) ? mod : { "default": mod };
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.TreeViewTextItem = void 0;
18
+ const react_1 = require("react");
19
+ const jsx_runtime_1 = require("react/jsx-runtime");
20
+ /**
21
+ *
22
+ * Copyright (c) "Neo4j"
23
+ * Neo4j Sweden AB [http://neo4j.com]
24
+ *
25
+ * This file is part of Neo4j.
26
+ *
27
+ * Neo4j is free software: you can redistribute it and/or modify
28
+ * it under the terms of the GNU General Public License as published by
29
+ * the Free Software Foundation, either version 3 of the License, or
30
+ * (at your option) any later version.
31
+ *
32
+ * This program is distributed in the hope that it will be useful,
33
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
34
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
35
+ * GNU General Public License for more details.
36
+ *
37
+ * You should have received a copy of the GNU General Public License
38
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
39
+ */
40
+ const react_2 = __importDefault(require("react"));
41
+ const coditionalWrap_1 = require("../_common/coditionalWrap");
42
+ const button_1 = require("../button");
43
+ const checkbox_1 = require("../checkbox");
44
+ const icons_1 = require("../icons");
45
+ const typography_1 = require("../typography");
46
+ const TreeItemWrapper_1 = require("./TreeItemWrapper");
47
+ /**
48
+ * checks if any parent is checked
49
+ * @param item
50
+ * @param items
51
+ * @returns
52
+ */
53
+ const parentIsCheckedRecursively = (item, items) => {
54
+ const parent = items.find((i) => i.id === item.parentId);
55
+ if (parent) {
56
+ if (parent.isSelected) {
57
+ return true;
58
+ }
59
+ return parentIsCheckedRecursively(parent, items);
60
+ }
61
+ return false;
62
+ };
63
+ /**
64
+ * checks if any children are checked
65
+ * @param item
66
+ * @param items
67
+ * @returns
68
+ */
69
+ const childrenCheckedRecursively = (item, items) => {
70
+ const children = items.filter((i) => i.parentId === item.id);
71
+ if (children.length === 0) {
72
+ return false;
73
+ }
74
+ return children.some((i) => i.isSelected || childrenCheckedRecursively(i, items));
75
+ };
76
+ exports.TreeViewTextItem = react_2.default.forwardRef(function TreeViewTextItem(_a, ref) {
77
+ var { depth, shouldDisableInteraction, shouldDisableSorting, isGhost, indentationWidth, isIndicator, isCollapsed, onCollapse, item, parent, isOver, isOverParent, setNodeRef, setActivatorNodeRef, dragHandleProps, style, trails, onItemsChanged, items, tabIndex } = _a, restProps = __rest(_a, ["depth", "shouldDisableInteraction", "shouldDisableSorting", "isGhost", "indentationWidth", "isIndicator", "isCollapsed", "onCollapse", "item", "parent", "isOver", "isOverParent", "setNodeRef", "setActivatorNodeRef", "dragHandleProps", "style", "trails", "onItemsChanged", "items", "tabIndex"]);
78
+ const checkboxRef = react_2.default.useRef(null);
79
+ const isAnyParentChecked = parentIsCheckedRecursively(item, items);
80
+ if (checkboxRef.current) {
81
+ const isAnyChildChecked = childrenCheckedRecursively(item, items);
82
+ if (isAnyChildChecked && !isAnyParentChecked && !item.isSelected) {
83
+ checkboxRef.current.indeterminate = true;
84
+ }
85
+ else {
86
+ checkboxRef.current.indeterminate = false;
87
+ }
88
+ }
89
+ return ((0, jsx_runtime_1.jsxs)(TreeItemWrapper_1.TreeItemWrapper, Object.assign({ depth: depth, shouldDisableInteraction: shouldDisableInteraction, shouldDisableSorting: shouldDisableSorting, isGhost: isGhost, indentationWidth: indentationWidth, isIndicator: isIndicator, isCollapsed: isCollapsed, onCollapse: onCollapse, item: item, parent: parent, isOver: isOver, isOverParent: isOverParent, setNodeRef: setNodeRef, setActivatorNodeRef: setActivatorNodeRef, dragHandleProps: dragHandleProps, style: style, trails: trails,
90
+ // eslint-disable-next-line @typescript-eslint/no-empty-function
91
+ onItemsChanged: () => { }, ref: ref, items: items, tabIndex: tabIndex }, restProps, { children: [item.canHaveSubItems && onCollapse && ((0, jsx_runtime_1.jsxs)("button", { className: "ndl-tree-view-collapse-button", onClick: () => onCollapse(), "aria-label": item.isCollapsed ? 'Expand' : 'Collapse', "aria-expanded": item.isCollapsed ? 'false' : 'true', "aria-pressed": !item.isCollapsed,
92
+ /**
93
+ * Tab index is set to -1 to prevent the item from being focused when the tree is navigated with tab
94
+ * since we use the arrow keys instead
95
+ */
96
+ tabIndex: tabIndex, children: [item.isCollapsed && (0, jsx_runtime_1.jsx)(icons_1.ChevronRightIconOutline, { className: "ndl-icon" }), !item.isCollapsed && (0, jsx_runtime_1.jsx)(icons_1.ChevronDownIconOutline, { className: "ndl-icon" })] })), item.isSelected !== undefined && ((0, jsx_runtime_1.jsx)(checkbox_1.Checkbox, { ref: checkboxRef, checked: item.isSelected, tabIndex: tabIndex, onChange: (event) => {
97
+ const newItems = items.map((i) => {
98
+ if (i.id === item.id) {
99
+ return Object.assign(Object.assign({}, i), { isSelected: event.target.checked });
100
+ }
101
+ return i;
102
+ });
103
+ //Uncheck parents if a child is unchecked
104
+ if (!event.target.checked) {
105
+ let parentId = item.parentId;
106
+ while (parentId !== null) {
107
+ const parent = newItems.find((newItem) => newItem.id === parentId);
108
+ if (parent) {
109
+ newItems.forEach((newItem) => {
110
+ if (newItem.id === parent.id) {
111
+ newItem.isSelected = false;
112
+ }
113
+ });
114
+ parentId = parent.parentId;
115
+ }
116
+ else {
117
+ parentId = null;
118
+ }
119
+ }
120
+ }
121
+ //Check children if a parent is checked
122
+ if (item.canHaveSubItems) {
123
+ const childIdsToUncheck = items
124
+ .filter((i) => i.parentId === item.id)
125
+ .map((i) => i.id);
126
+ while (childIdsToUncheck.length > 0) {
127
+ const childId = childIdsToUncheck.pop();
128
+ const child = items.find((i) => i.id === childId);
129
+ if (child) {
130
+ newItems.forEach((newItem) => {
131
+ if (newItem.id === child.id) {
132
+ newItem.isSelected = event.target.checked;
133
+ }
134
+ });
135
+ newItems
136
+ .filter((i) => i.parentId === child.id)
137
+ .forEach((i) => {
138
+ childIdsToUncheck.push(i.id);
139
+ });
140
+ }
141
+ }
142
+ }
143
+ onItemsChanged(newItems, { item, reason: 'selected' });
144
+ }, "aria-label": item.data.text })), (0, jsx_runtime_1.jsx)(coditionalWrap_1.ConditionalWrap, { condition: item.data.onTextClick !== undefined, wrapper: (children) => ((0, jsx_runtime_1.jsx)("button", { onClick: item.data.onTextClick, className: "ndl-tree-view-text-clickable", tabIndex: tabIndex, children: children })), children: (0, jsx_runtime_1.jsx)(typography_1.Typography, { style: {
145
+ overflow: 'hidden',
146
+ textOverflow: 'ellipsis',
147
+ whiteSpace: 'nowrap',
148
+ }, variant: item.canHaveSubItems ? 'subheading-small' : 'body-medium', children: item.data.text }) }), (0, jsx_runtime_1.jsx)("div", { className: "ndl-tree-view-actions", children: item.data.actions &&
149
+ item.data.actions.map((action, index) => {
150
+ return ((0, react_1.createElement)(button_1.IconButton, Object.assign({}, action.buttonProps, { key: index, className: "ndl-tree-view-action", clean: true, size: "small", tabIndex: tabIndex }), action.icon));
151
+ }) })] })));
152
+ });
153
+ //# sourceMappingURL=TreeViewTextItem.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TreeViewTextItem.js","sourceRoot":"","sources":["../../../src/tree-view/TreeViewTextItem.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ /**
2
+ *
3
+ * Copyright (c) "Neo4j"
4
+ * Neo4j Sweden AB [http://neo4j.com]
5
+ *
6
+ * This file is part of Neo4j.
7
+ *
8
+ * Neo4j is free software: you can redistribute it and/or modify
9
+ * it under the terms of the GNU General Public License as published by
10
+ * the Free Software Foundation, either version 3 of the License, or
11
+ * (at your option) any later version.
12
+ *
13
+ * This program is distributed in the hope that it will be useful,
14
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
15
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16
+ * GNU General Public License for more details.
17
+ *
18
+ * You should have received a copy of the GNU General Public License
19
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
20
+ */
21
+
22
+ "use strict";
23
+ Object.defineProperty(exports, "__esModule", { value: true });
24
+ exports.Trail = void 0;
25
+ const jsx_runtime_1 = require("react/jsx-runtime");
26
+ const Trail = ({ variant }) => {
27
+ return ((0, jsx_runtime_1.jsxs)("div", { className: "ndl-trail", children: [variant === 'straight' && ((0, jsx_runtime_1.jsx)("svg", { className: "ndl-trail-straight", width: "2", height: "24", viewBox: "0 0 2 24", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: (0, jsx_runtime_1.jsx)("path", { d: "M1.00001 16.0005L1 -4.00049L1 28.0004", stroke: "#BBBEC3" }) })), variant === 'curved' && ((0, jsx_runtime_1.jsx)("svg", { className: "ndl-trail-curved", width: "9", height: "13", viewBox: "0 0 9 13", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: (0, jsx_runtime_1.jsx)("path", { d: "M1 -4L1 3.99988C1 8.41816 4.58172 11.9999 9 11.9999V11.9999", stroke: "#BBBEC3" }) })), variant === 'straight-curved' && ((0, jsx_runtime_1.jsxs)("svg", { className: "ndl-trail-straight-curved", width: "16", height: "24", viewBox: "0 0 16 24", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [(0, jsx_runtime_1.jsx)("g", { clipPath: "url(#clip0_16990_133)", children: (0, jsx_runtime_1.jsx)("path", { d: "M16 12V12C11.5817 12 8.00001 8.41828 8.00001 4L8.00001 -4L8 28", stroke: "#BBBEC3" }) }), (0, jsx_runtime_1.jsx)("defs", { children: (0, jsx_runtime_1.jsx)("clipPath", { id: "clip0_16990_133", children: (0, jsx_runtime_1.jsx)("rect", { width: "16", height: "24", fill: "white" }) }) })] }))] }));
28
+ };
29
+ exports.Trail = Trail;
30
+ //# sourceMappingURL=TreeViewTrail.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TreeViewTrail.js","sourceRoot":"","sources":["../../../src/tree-view/TreeViewTrail.tsx"],"names":[],"mappings":";;;;AAwBO,MAAM,KAAK,GAAG,CAAC,EAAE,OAAO,EAAc,EAAE,EAAE;IAC/C,OAAO,CACL,iCAAK,SAAS,EAAC,WAAW,aACvB,OAAO,KAAK,UAAU,IAAI,CACzB,gCACE,SAAS,EAAC,oBAAoB,EAC9B,KAAK,EAAC,GAAG,EACT,MAAM,EAAC,IAAI,EACX,OAAO,EAAC,UAAU,EAClB,IAAI,EAAC,MAAM,EACX,KAAK,EAAC,4BAA4B,YAElC,iCAAM,CAAC,EAAC,uCAAuC,EAAC,MAAM,EAAC,SAAS,GAAG,GAC/D,CACP,EACA,OAAO,KAAK,QAAQ,IAAI,CACvB,gCACE,SAAS,EAAC,kBAAkB,EAC5B,KAAK,EAAC,GAAG,EACT,MAAM,EAAC,IAAI,EACX,OAAO,EAAC,UAAU,EAClB,IAAI,EAAC,MAAM,EACX,KAAK,EAAC,4BAA4B,YAElC,iCACE,CAAC,EAAC,6DAA6D,EAC/D,MAAM,EAAC,SAAS,GAChB,GACE,CACP,EACA,OAAO,KAAK,iBAAiB,IAAI,CAChC,iCACE,SAAS,EAAC,2BAA2B,EACrC,KAAK,EAAC,IAAI,EACV,MAAM,EAAC,IAAI,EACX,OAAO,EAAC,WAAW,EACnB,IAAI,EAAC,MAAM,EACX,KAAK,EAAC,4BAA4B,aAElC,8BAAG,QAAQ,EAAC,uBAAuB,YACjC,iCACE,CAAC,EAAC,gEAAgE,EAClE,MAAM,EAAC,SAAS,GAChB,GACA,EACJ,2CACE,qCAAU,EAAE,EAAC,iBAAiB,YAC5B,iCAAM,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,IAAI,EAAC,OAAO,GAAG,GACnC,GACN,IACH,CACP,IACG,CACP,CAAC;AACJ,CAAC,CAAC;AAtDW,QAAA,KAAK,SAsDhB"}