@edifice.io/react 2.0.0-develop-rc.15 → 2.0.0-develop-rc.16
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.
|
@@ -51,19 +51,6 @@ function updateParentIds(flattenedTree, indices, newParentId) {
|
|
|
51
51
|
};
|
|
52
52
|
});
|
|
53
53
|
}
|
|
54
|
-
function findItemIndexInTree(tree, itemId) {
|
|
55
|
-
for (let i = 0; i < tree.length; i++) {
|
|
56
|
-
const node = tree[i];
|
|
57
|
-
if (node.id === itemId)
|
|
58
|
-
return i;
|
|
59
|
-
if (node.children && node.children.length > 0) {
|
|
60
|
-
const result = findItemIndexInTree(node.children, itemId);
|
|
61
|
-
if (result)
|
|
62
|
-
return result;
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
return 0;
|
|
66
|
-
}
|
|
67
54
|
function generateUpdateData(updatedFlattenedTree, tree) {
|
|
68
55
|
const updateArray = [];
|
|
69
56
|
let positionCounter = 0;
|
|
@@ -133,7 +120,6 @@ function getProjection(items, activeId, overId, dragOffset, indentationWidth) {
|
|
|
133
120
|
export {
|
|
134
121
|
buildTree,
|
|
135
122
|
determineNewParentId,
|
|
136
|
-
findItemIndexInTree,
|
|
137
123
|
flattenTree,
|
|
138
124
|
generateUpdateData,
|
|
139
125
|
getActiveAndOverNodes,
|
|
@@ -1,4 +1,7 @@
|
|
|
1
|
-
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: !0, configurable: !0, writable: !0, value }) : obj[key] = value;
|
|
3
|
+
var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key != "symbol" ? key + "" : key, value);
|
|
4
|
+
import { FOLDER } from "@edifice.io/ts-client";
|
|
2
5
|
function findTreeNode(root, predicate) {
|
|
3
6
|
if (predicate(root)) return root;
|
|
4
7
|
if (Array.isArray(root.children))
|
|
@@ -24,6 +27,106 @@ function findNodeById(data, id) {
|
|
|
24
27
|
}
|
|
25
28
|
}
|
|
26
29
|
}
|
|
30
|
+
function addNode(node, {
|
|
31
|
+
parentId,
|
|
32
|
+
newFolder
|
|
33
|
+
}) {
|
|
34
|
+
return modifyNode(node, (node2) => {
|
|
35
|
+
var _a;
|
|
36
|
+
if (node2.id === parentId) {
|
|
37
|
+
const parentAncestors = [...((_a = node2.folder) == null ? void 0 : _a.ancestors) || []], ancestors = arrayUnique([...parentAncestors, node2.id]);
|
|
38
|
+
return {
|
|
39
|
+
...node2,
|
|
40
|
+
children: [...node2.children || [], new TreeNodeFolderWrapper({
|
|
41
|
+
...newFolder,
|
|
42
|
+
ancestors
|
|
43
|
+
})]
|
|
44
|
+
};
|
|
45
|
+
} else
|
|
46
|
+
return node2;
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
function arrayUnique(array) {
|
|
50
|
+
return array.filter((item, index) => array.indexOf(item) === index);
|
|
51
|
+
}
|
|
52
|
+
function deleteNode(node, {
|
|
53
|
+
folders
|
|
54
|
+
}) {
|
|
55
|
+
return modifyNode(node, (node2) => {
|
|
56
|
+
if (!folders.includes(node2.id))
|
|
57
|
+
return node2;
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
const findParentNode = (parentNode, childId) => {
|
|
61
|
+
if (parentNode.children)
|
|
62
|
+
for (const child of parentNode.children) {
|
|
63
|
+
if (child.id === childId)
|
|
64
|
+
return parentNode;
|
|
65
|
+
const foundNode = findParentNode(child, childId);
|
|
66
|
+
if (foundNode)
|
|
67
|
+
return foundNode;
|
|
68
|
+
}
|
|
69
|
+
};
|
|
70
|
+
function getAncestors(data, folderId) {
|
|
71
|
+
var _a;
|
|
72
|
+
const findItem = findNodeById(data, folderId);
|
|
73
|
+
return (_a = findItem == null ? void 0 : findItem.folder) != null && _a.ancestors ? [...(findItem == null ? void 0 : findItem.folder.ancestors) || [], folderId] : folderId === FOLDER.BIN ? [FOLDER.BIN] : [FOLDER.DEFAULT];
|
|
74
|
+
}
|
|
75
|
+
function hasChildren(folderId, data) {
|
|
76
|
+
return data.id === folderId && data.children ? data.children.length > 0 : data.children ? data.children.some((child) => hasChildren(data.id, child)) : !1;
|
|
77
|
+
}
|
|
78
|
+
function modifyNode(data, callback) {
|
|
79
|
+
return doModify(data, callback) || data;
|
|
80
|
+
}
|
|
81
|
+
function doModify(current, callback, parent) {
|
|
82
|
+
var _a;
|
|
83
|
+
const result = callback(current, parent);
|
|
84
|
+
if ((_a = result == null ? void 0 : result.children) != null && _a.length) {
|
|
85
|
+
const children = [];
|
|
86
|
+
for (const child of (result == null ? void 0 : result.children) || []) {
|
|
87
|
+
const res = doModify(child, callback, result);
|
|
88
|
+
res && children.push(res);
|
|
89
|
+
}
|
|
90
|
+
return {
|
|
91
|
+
...result,
|
|
92
|
+
children
|
|
93
|
+
};
|
|
94
|
+
}
|
|
95
|
+
return result;
|
|
96
|
+
}
|
|
97
|
+
function moveNode(node, {
|
|
98
|
+
destinationId,
|
|
99
|
+
folders
|
|
100
|
+
}) {
|
|
101
|
+
return modifyNode(node, (node2, parent) => {
|
|
102
|
+
var _a, _b;
|
|
103
|
+
if (destinationId === node2.id) {
|
|
104
|
+
const parentAncestors = [...((_a = node2.folder) == null ? void 0 : _a.ancestors) || []], ancestors = arrayUnique([...parentAncestors, node2.id]), newChildren = [...node2.children || []], childrenIds = ((_b = node2.children) == null ? void 0 : _b.map((child) => child.id)) || [];
|
|
105
|
+
for (const folder of folders)
|
|
106
|
+
if (!childrenIds.includes(folder)) {
|
|
107
|
+
const item = findNodeById(node2, folder);
|
|
108
|
+
item && newChildren.push({
|
|
109
|
+
...item,
|
|
110
|
+
folder: {
|
|
111
|
+
...item == null ? void 0 : item.folder,
|
|
112
|
+
ancestors
|
|
113
|
+
}
|
|
114
|
+
});
|
|
115
|
+
}
|
|
116
|
+
return {
|
|
117
|
+
...node2,
|
|
118
|
+
children: newChildren
|
|
119
|
+
};
|
|
120
|
+
} else return folders.includes(node2.id) && destinationId !== (parent == null ? void 0 : parent.id) ? void 0 : node2;
|
|
121
|
+
});
|
|
122
|
+
}
|
|
123
|
+
const wrapTreeNode = (node, folders, parentId) => modifyNode(node, (node2) => (node2.id === parentId && (node2.children = folders == null ? void 0 : folders.map((e) => new TreeNodeFolderWrapper(e))), node2));
|
|
124
|
+
function updateNode(node, {
|
|
125
|
+
folderId,
|
|
126
|
+
newFolder
|
|
127
|
+
}) {
|
|
128
|
+
return modifyNode(node, (node2) => node2.id === folderId ? new TreeNodeFolderWrapper(newFolder) : node2);
|
|
129
|
+
}
|
|
27
130
|
function findPathById(tree, nodeId) {
|
|
28
131
|
let path = [];
|
|
29
132
|
function traverse(node, currentPath) {
|
|
@@ -46,8 +149,29 @@ function findPathById(tree, nodeId) {
|
|
|
46
149
|
}
|
|
47
150
|
return startTraverse(tree), path;
|
|
48
151
|
}
|
|
152
|
+
class TreeNodeFolderWrapper {
|
|
153
|
+
constructor(folder) {
|
|
154
|
+
__publicField(this, "id");
|
|
155
|
+
__publicField(this, "name");
|
|
156
|
+
__publicField(this, "childNumber");
|
|
157
|
+
__publicField(this, "section", !1);
|
|
158
|
+
__publicField(this, "children", []);
|
|
159
|
+
this.folder = folder, this.id = folder.id, this.name = folder.name, this.childNumber = folder.childNumber;
|
|
160
|
+
}
|
|
161
|
+
}
|
|
49
162
|
export {
|
|
163
|
+
TreeNodeFolderWrapper,
|
|
164
|
+
addNode,
|
|
165
|
+
arrayUnique,
|
|
166
|
+
deleteNode,
|
|
50
167
|
findNodeById,
|
|
168
|
+
findParentNode,
|
|
51
169
|
findPathById,
|
|
52
|
-
findTreeNode
|
|
170
|
+
findTreeNode,
|
|
171
|
+
getAncestors,
|
|
172
|
+
hasChildren,
|
|
173
|
+
modifyNode,
|
|
174
|
+
moveNode,
|
|
175
|
+
updateNode,
|
|
176
|
+
wrapTreeNode
|
|
53
177
|
};
|
package/dist/index.js
CHANGED
|
@@ -80,9 +80,9 @@ import { default as default71 } from "./components/TextArea/TextArea.js";
|
|
|
80
80
|
import { Toolbar } from "./components/Toolbar/Toolbar.js";
|
|
81
81
|
import { default as default72 } from "./components/Tooltip/Tooltip.js";
|
|
82
82
|
import { useTreeSortable } from "./components/Tree/hooks/useTreeSortable.js";
|
|
83
|
-
import { buildTree, determineNewParentId, findItemIndexInTree, flattenTree, generateUpdateData, getActiveAndOverNodes, getDragDepth, getIndicesToUpdate, getProjection, updateParentIds } from "./components/Tree/utilities/tree-sortable.js";
|
|
84
|
-
import { TreeNode } from "./components/TreeView/TreeNode.js";
|
|
85
83
|
import { useTreeView } from "./components/TreeView/hooks/useTreeView.js";
|
|
84
|
+
import { TreeNode } from "./components/TreeView/TreeNode.js";
|
|
85
|
+
import { TreeNodeFolderWrapper, addNode, arrayUnique, deleteNode, findNodeById, findParentNode, findPathById, findTreeNode, getAncestors, hasChildren, modifyNode, moveNode, updateNode, wrapTreeNode } from "./components/TreeView/utilities/treeview.js";
|
|
86
86
|
import { default as default73 } from "./components/VisuallyHidden/VisuallyHidden.js";
|
|
87
87
|
import { useCheckable } from "./hooks/useCheckable/useCheckable.js";
|
|
88
88
|
import { default as default74 } from "./hooks/useHasWorkflow/useHasWorkflow.js";
|
|
@@ -153,21 +153,24 @@ export {
|
|
|
153
153
|
default72 as Tooltip,
|
|
154
154
|
default24 as Tree,
|
|
155
155
|
TreeNode,
|
|
156
|
+
TreeNodeFolderWrapper,
|
|
156
157
|
default25 as TreeView,
|
|
157
158
|
default73 as VisuallyHidden,
|
|
158
|
-
|
|
159
|
+
addNode,
|
|
160
|
+
arrayUnique,
|
|
159
161
|
checkUserRight,
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
getProjection,
|
|
162
|
+
deleteNode,
|
|
163
|
+
findNodeById,
|
|
164
|
+
findParentNode,
|
|
165
|
+
findPathById,
|
|
166
|
+
findTreeNode,
|
|
167
|
+
getAncestors,
|
|
168
|
+
hasChildren,
|
|
168
169
|
mergeRefs,
|
|
170
|
+
modifyNode,
|
|
171
|
+
moveNode,
|
|
169
172
|
setRef,
|
|
170
|
-
|
|
173
|
+
updateNode,
|
|
171
174
|
default26 as useAvatar,
|
|
172
175
|
default27 as useBookmark,
|
|
173
176
|
default28 as useBreakpoint,
|
|
@@ -212,5 +215,6 @@ export {
|
|
|
212
215
|
default55 as useWorkspaceFile,
|
|
213
216
|
default56 as useWorkspaceSearch,
|
|
214
217
|
default57 as useXitiTrackPageLoad,
|
|
215
|
-
default58 as useZendeskGuide
|
|
218
|
+
default58 as useZendeskGuide,
|
|
219
|
+
wrapTreeNode
|
|
216
220
|
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@edifice.io/react",
|
|
3
|
-
"version": "2.0.0-develop-rc.
|
|
3
|
+
"version": "2.0.0-develop-rc.16",
|
|
4
4
|
"description": "Edifice React Library",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"react",
|
|
@@ -119,9 +119,8 @@
|
|
|
119
119
|
"react-slugify": "^3.0.3",
|
|
120
120
|
"swiper": "^10.1.0",
|
|
121
121
|
"ua-parser-js": "^1.0.36",
|
|
122
|
-
"@edifice.io/
|
|
123
|
-
"@edifice.io/utilities": "2.0.0-develop-rc.
|
|
124
|
-
"@edifice.io/tiptap-extensions": "2.0.0-develop-rc.15"
|
|
122
|
+
"@edifice.io/tiptap-extensions": "2.0.0-develop-rc.16",
|
|
123
|
+
"@edifice.io/utilities": "2.0.0-develop-rc.16"
|
|
125
124
|
},
|
|
126
125
|
"devDependencies": {
|
|
127
126
|
"@babel/plugin-transform-react-pure-annotations": "^7.23.3",
|
|
@@ -142,7 +141,7 @@
|
|
|
142
141
|
"rollup-plugin-visualizer": "5.12.0",
|
|
143
142
|
"vite": "^5.4.11",
|
|
144
143
|
"vite-plugin-dts": "^4.1.0",
|
|
145
|
-
"@edifice.io/ts-client": "2.0.0-develop-rc.
|
|
144
|
+
"@edifice.io/ts-client": "2.0.0-develop-rc.16"
|
|
146
145
|
},
|
|
147
146
|
"peerDependencies": {
|
|
148
147
|
"@react-spring/web": "^9.7.5",
|