pixel-react 1.19.7 → 1.19.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/components/TableTreeFn/TableTreeFn.js +6 -1
- package/lib/components/TableTreeFn/TableTreeFn.js.map +1 -1
- package/lib/index.js +5 -5
- package/lib/index.js.map +1 -1
- package/lib/utils/getTreeDetails/getTreeDetails.js +87 -57
- package/lib/utils/getTreeDetails/getTreeDetails.js.map +1 -1
- package/package.json +1 -1
|
@@ -76,70 +76,100 @@ export const getTreeDetails = (action, oldData, newData, sourceId, deletedIds) =
|
|
|
76
76
|
case 'create':
|
|
77
77
|
case 'refresh':
|
|
78
78
|
case 'delete': {
|
|
79
|
-
if (
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
processedKeys.add(newNode.key);
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
|
-
else {
|
|
110
|
-
// Node is in oldData but not in tempNewData.
|
|
111
|
-
// We must check if it was deleted, or just part of an un-refreshed branch.
|
|
112
|
-
const isParentRefreshed = oldNode.parentId && newDataMap.has(oldNode.parentId);
|
|
113
|
-
const isParentDeleted = oldNode.parentId && deletedKeys.has(oldNode.parentId);
|
|
114
|
-
if (isParentRefreshed || isParentDeleted) {
|
|
115
|
-
// The API refreshed/deleted the parent but omitted this child.
|
|
116
|
-
deletedKeys.add(oldNode.key);
|
|
117
|
-
}
|
|
118
|
-
else {
|
|
119
|
-
// Unaffected part of the tree -> safely keep it
|
|
120
|
-
mergedList.push(oldNode);
|
|
121
|
-
processedKeys.add(oldNode.key);
|
|
122
|
-
}
|
|
79
|
+
if (checkEmpty(tempNewData)) {
|
|
80
|
+
throw new Error('Tree data list is empty, cannot determine root.');
|
|
81
|
+
}
|
|
82
|
+
root = tempNewData[0];
|
|
83
|
+
const newNodesList = tempNewData.slice(1);
|
|
84
|
+
// ----------------------------------------------------------------
|
|
85
|
+
// STEP 1: Process Deletions (Deep Cascade)
|
|
86
|
+
// ----------------------------------------------------------------
|
|
87
|
+
const allNodesMap = new Map();
|
|
88
|
+
const deletedKeys = new Set(deletedIds || []);
|
|
89
|
+
if (action === 'delete' && sourceId) {
|
|
90
|
+
deletedKeys.add(sourceId);
|
|
91
|
+
}
|
|
92
|
+
// Add all old data to our map first
|
|
93
|
+
for (const node of oldData) {
|
|
94
|
+
allNodesMap.set(node.key, { ...node });
|
|
95
|
+
}
|
|
96
|
+
// Safely cascade deletions (if a parent is deleted, all its children are deleted)
|
|
97
|
+
let deleting = true;
|
|
98
|
+
while (deleting) {
|
|
99
|
+
deleting = false;
|
|
100
|
+
for (const [key, node] of allNodesMap.entries()) {
|
|
101
|
+
if (deletedKeys.has(key) ||
|
|
102
|
+
(node.parentId && deletedKeys.has(node.parentId))) {
|
|
103
|
+
deletedKeys.add(key);
|
|
104
|
+
allNodesMap.delete(key);
|
|
105
|
+
deleting = true;
|
|
123
106
|
}
|
|
124
107
|
}
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
108
|
+
}
|
|
109
|
+
// ----------------------------------------------------------------
|
|
110
|
+
// STEP 2: Inject New/Cloned Data
|
|
111
|
+
// ----------------------------------------------------------------
|
|
112
|
+
// This automatically overwrites outdated nodes and adds new clones
|
|
113
|
+
for (const newNode of newNodesList) {
|
|
114
|
+
allNodesMap.set(newNode.key, { ...newNode });
|
|
115
|
+
}
|
|
116
|
+
// ----------------------------------------------------------------
|
|
117
|
+
// STEP 3: Preserve Original Sorting Order
|
|
118
|
+
// ----------------------------------------------------------------
|
|
119
|
+
const orderMap = new Map();
|
|
120
|
+
// Keep old nodes exactly in their original sequence
|
|
121
|
+
oldData.forEach((node, index) => orderMap.set(node.key, index));
|
|
122
|
+
// Ensure new clones appear at the end of their respective parent folders
|
|
123
|
+
const baseNewIndex = oldData.length;
|
|
124
|
+
newNodesList.forEach((node, index) => {
|
|
125
|
+
if (!orderMap.has(node.key)) {
|
|
126
|
+
orderMap.set(node.key, baseNewIndex + index);
|
|
131
127
|
}
|
|
132
|
-
|
|
133
|
-
|
|
128
|
+
});
|
|
129
|
+
// ----------------------------------------------------------------
|
|
130
|
+
// STEP 4: Rebuild the Hierarchy
|
|
131
|
+
// ----------------------------------------------------------------
|
|
132
|
+
const childrenMap = new Map();
|
|
133
|
+
const topLevelNodes = [];
|
|
134
|
+
for (const node of allNodesMap.values()) {
|
|
135
|
+
const parentId = node.parentId;
|
|
136
|
+
// If it has no parent, or its parent isn't in our tree, it's a top-level node
|
|
137
|
+
if (!parentId || !allNodesMap.has(parentId)) {
|
|
138
|
+
topLevelNodes.push(node);
|
|
134
139
|
}
|
|
135
|
-
|
|
136
|
-
|
|
140
|
+
else {
|
|
141
|
+
if (!childrenMap.has(parentId)) {
|
|
142
|
+
childrenMap.set(parentId, []);
|
|
143
|
+
}
|
|
144
|
+
childrenMap.get(parentId).push(node);
|
|
137
145
|
}
|
|
138
|
-
treeDataList = mergedList;
|
|
139
146
|
}
|
|
140
|
-
|
|
141
|
-
|
|
147
|
+
// Sort everything to maintain perfect tree order
|
|
148
|
+
const sortByOriginalOrder = (a, b) => {
|
|
149
|
+
const indexA = orderMap.get(a.key) ?? 0;
|
|
150
|
+
const indexB = orderMap.get(b.key) ?? 0;
|
|
151
|
+
return indexA - indexB;
|
|
152
|
+
};
|
|
153
|
+
topLevelNodes.sort(sortByOriginalOrder);
|
|
154
|
+
for (const children of childrenMap.values()) {
|
|
155
|
+
children.sort(sortByOriginalOrder);
|
|
142
156
|
}
|
|
157
|
+
// ----------------------------------------------------------------
|
|
158
|
+
// STEP 5: Flatten Back to Array (Depth-First Search)
|
|
159
|
+
// ----------------------------------------------------------------
|
|
160
|
+
const flattenedList = [];
|
|
161
|
+
const flattenDFS = (nodes) => {
|
|
162
|
+
for (const node of nodes) {
|
|
163
|
+
flattenedList.push(node);
|
|
164
|
+
const children = childrenMap.get(node.key);
|
|
165
|
+
if (children && children.length > 0) {
|
|
166
|
+
flattenDFS(children); // Recursively add children right under their parent
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
};
|
|
170
|
+
flattenDFS(topLevelNodes);
|
|
171
|
+
const filteredList = flattenedList.filter((node) => node.key);
|
|
172
|
+
treeDataList = filteredList;
|
|
143
173
|
break;
|
|
144
174
|
}
|
|
145
175
|
default:
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getTreeDetails.js","sourceRoot":"","sources":["../../../src/utils/getTreeDetails/getTreeDetails.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"getTreeDetails.js","sourceRoot":"","sources":["../../../src/utils/getTreeDetails/getTreeDetails.ts"],"names":[],"mappings":"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"}
|