pixel-react 1.15.84 → 1.15.85
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/components/MediaViewerModal/MediaViewerModal.js +1 -2
- package/lib/components/MediaViewerModal/MediaViewerModal.js.map +1 -1
- package/lib/components/MediaViewerModal/type.d.ts +1 -0
- package/lib/components/Select/components/Dropdown.js +8 -6
- package/lib/components/Select/components/Dropdown.js.map +1 -1
- package/lib/components/TextEditor/TextEditor.js +99 -26
- package/lib/components/TextEditor/TextEditor.js.map +1 -1
- package/lib/index.d.ts +3 -2
- package/lib/index.js +4 -4
- package/lib/index.js.map +1 -1
- package/lib/styles.css +1 -1
- package/lib/styles.css.map +1 -1
- package/lib/utils/handleTreeNodeSelect/handleTreeNodeSelect.d.ts +1 -1
- package/lib/utils/handleTreeNodeSelect/handleTreeNodeSelect.js +87 -98
- package/lib/utils/handleTreeNodeSelect/handleTreeNodeSelect.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { TreeNodeProps as TreeNode } from '../../ComponentProps/TreeNodeProps';
|
|
2
|
-
export declare const
|
|
2
|
+
export declare const handleTreeNodeSect: (data: TreeNode[], key: string | undefined, rootNode: TreeNode | null, isChecked: boolean) => {
|
|
3
3
|
data: TreeNode[];
|
|
4
4
|
rootNode?: TreeNode | null;
|
|
5
5
|
};
|
|
@@ -1,110 +1,99 @@
|
|
|
1
1
|
import { checkEmpty } from '../checkEmpty/checkEmpty';
|
|
2
|
-
export const
|
|
3
|
-
if (!
|
|
4
|
-
|
|
5
|
-
const SCRIPT_TYPES = new Set(['Script', 'Pre', 'Post']);
|
|
6
|
-
const newStatus = isInputChecked ? 'completely' : 'none';
|
|
7
|
-
const nodeMap = new Map();
|
|
8
|
-
const parentMap = new Map();
|
|
9
|
-
const childrenMap = new Map();
|
|
10
|
-
const expandedModules = new Set();
|
|
11
|
-
// Helper to safely get key
|
|
12
|
-
const getKey = (node) => String(node.key);
|
|
13
|
-
const allNodes = rootNode ? [rootNode, ...treeData] : [...treeData];
|
|
14
|
-
for (const node of allNodes) {
|
|
15
|
-
const key = getKey(node);
|
|
16
|
-
nodeMap.set(key, { ...node });
|
|
17
|
-
// Handle Search Key Parsing ONCE
|
|
18
|
-
if (!checkEmpty(node) && node.searchKey) {
|
|
19
|
-
const parts = node.searchKey.split('/').filter(Boolean);
|
|
20
|
-
// Populate Expanded Modules
|
|
21
|
-
if (SCRIPT_TYPES.has(node?.entityType ?? '')) {
|
|
22
|
-
for (const part of parts)
|
|
23
|
-
expandedModules.add(part);
|
|
24
|
-
}
|
|
25
|
-
// Build Hierarchy
|
|
26
|
-
if (parts.length > 1) {
|
|
27
|
-
const parentKey = parts[parts.length - 2] ?? '';
|
|
28
|
-
parentMap.set(key, parentKey);
|
|
29
|
-
if (!childrenMap.has(parentKey)) {
|
|
30
|
-
childrenMap.set(parentKey, []);
|
|
31
|
-
}
|
|
32
|
-
childrenMap.get(parentKey)?.push(key);
|
|
33
|
-
}
|
|
34
|
-
}
|
|
2
|
+
export const handleTreeNodeSect = (data, key, rootNode, isChecked) => {
|
|
3
|
+
if (!key) {
|
|
4
|
+
throw new Error('Key is required');
|
|
35
5
|
}
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
const children = childrenMap.get(currKey);
|
|
44
|
-
if (children) {
|
|
45
|
-
for (const childKey of children) {
|
|
46
|
-
updateQueue.push(childKey);
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
}
|
|
6
|
+
// Build a map for quick access to nodes by key
|
|
7
|
+
const nodesMap = new Map();
|
|
8
|
+
const childMap = new Map();
|
|
9
|
+
const visited = new Set(); // To detect cycles
|
|
10
|
+
let list = [...data];
|
|
11
|
+
if (rootNode && !checkEmpty(rootNode)) {
|
|
12
|
+
list = [rootNode, ...data];
|
|
50
13
|
}
|
|
51
|
-
//
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
if (node.
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
const beTotal = (node.totalResourceCount ?? 0) + (node.totalConditionCount ?? 0);
|
|
58
|
-
const isScript = SCRIPT_TYPES.has(node.entityType);
|
|
59
|
-
let weight = 0;
|
|
60
|
-
if (isScript || beTotal === 0) {
|
|
61
|
-
weight = 1;
|
|
14
|
+
// Initialize the maps
|
|
15
|
+
list.forEach((node) => {
|
|
16
|
+
nodesMap.set(node.key, node);
|
|
17
|
+
if (node.parentId) {
|
|
18
|
+
if (!childMap.has(node.parentId)) {
|
|
19
|
+
childMap.set(node.parentId, []);
|
|
62
20
|
}
|
|
63
|
-
|
|
64
|
-
|
|
21
|
+
childMap.get(node.parentId).push(node);
|
|
22
|
+
}
|
|
23
|
+
});
|
|
24
|
+
// Helper to calculate the selected status of a node
|
|
25
|
+
function calculateSelectedStatus(nodeKey) {
|
|
26
|
+
const node = nodesMap.get(nodeKey);
|
|
27
|
+
if (!node)
|
|
28
|
+
return 'none';
|
|
29
|
+
const totalChildren = (node.resourceCount ?? 0) + (node.subContainerCount ?? 0) + (node.conditionCount ?? 0);
|
|
30
|
+
if (totalChildren === 0) {
|
|
31
|
+
// Leaf node: use its own selected status
|
|
32
|
+
return node.selectedStatus ?? 'none';
|
|
33
|
+
}
|
|
34
|
+
const children = childMap.get(nodeKey) || [];
|
|
35
|
+
let completelySelectedCount = 0;
|
|
36
|
+
let hasPartialSelection = false;
|
|
37
|
+
for (const child of children) {
|
|
38
|
+
if (child.selectedStatus === 'completely') {
|
|
39
|
+
completelySelectedCount++;
|
|
65
40
|
}
|
|
66
|
-
if (
|
|
67
|
-
|
|
68
|
-
while (currParent) {
|
|
69
|
-
if (currParent === key)
|
|
70
|
-
break;
|
|
71
|
-
const currentScore = selectionScore.get(currParent) || 0;
|
|
72
|
-
selectionScore.set(currParent, currentScore + weight);
|
|
73
|
-
currParent = parentMap.get(currParent);
|
|
74
|
-
}
|
|
41
|
+
else if (child.selectedStatus === 'partially') {
|
|
42
|
+
hasPartialSelection = true;
|
|
75
43
|
}
|
|
76
44
|
}
|
|
45
|
+
if (completelySelectedCount === totalChildren) {
|
|
46
|
+
return 'completely';
|
|
47
|
+
}
|
|
48
|
+
else if (hasPartialSelection || completelySelectedCount > 0) {
|
|
49
|
+
return 'partially';
|
|
50
|
+
}
|
|
51
|
+
else {
|
|
52
|
+
return 'none';
|
|
53
|
+
}
|
|
77
54
|
}
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
if (
|
|
81
|
-
|
|
82
|
-
const isTarget = key === String(targetKey);
|
|
83
|
-
const targetNode = nodeMap.get(String(targetKey));
|
|
84
|
-
const isParentOfTarget = targetNode?.searchKey?.startsWith(node.searchKey + '/');
|
|
85
|
-
// Original exclusion logic
|
|
86
|
-
const isRoot = rootNode && String(rootNode.key) === key;
|
|
87
|
-
if (!isTarget &&
|
|
88
|
-
!isRoot &&
|
|
89
|
-
!isParentOfTarget &&
|
|
90
|
-
!SCRIPT_TYPES.has(node.entityType)) {
|
|
91
|
-
return node;
|
|
55
|
+
// Helper to update child nodes recursively
|
|
56
|
+
function updateChildren(nodeKey, status) {
|
|
57
|
+
if (visited.has(nodeKey)) {
|
|
58
|
+
throw new Error(`Cycle detected at node: ${nodeKey}`);
|
|
92
59
|
}
|
|
93
|
-
|
|
94
|
-
|
|
60
|
+
visited.add(nodeKey);
|
|
61
|
+
const children = childMap.get(nodeKey) || [];
|
|
62
|
+
children.forEach((child) => {
|
|
63
|
+
child.selectedStatus = status;
|
|
64
|
+
updateChildren(child.key, status);
|
|
65
|
+
});
|
|
66
|
+
visited.delete(nodeKey); // Clean up after recursion
|
|
67
|
+
}
|
|
68
|
+
// Helper to update parent nodes recursively
|
|
69
|
+
function updateParents(nodeKey) {
|
|
70
|
+
if (visited.has(nodeKey)) {
|
|
71
|
+
throw new Error(`Cycle detected at node: ${nodeKey}`);
|
|
95
72
|
}
|
|
96
|
-
|
|
97
|
-
const
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
73
|
+
visited.add(nodeKey);
|
|
74
|
+
const node = nodesMap.get(nodeKey);
|
|
75
|
+
if (node && node.parentId) {
|
|
76
|
+
const parentNode = nodesMap.get(node.parentId);
|
|
77
|
+
if (parentNode) {
|
|
78
|
+
parentNode.selectedStatus = calculateSelectedStatus(parentNode.key);
|
|
79
|
+
updateParents(parentNode.key);
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
visited.delete(nodeKey); // Clean up after recursion
|
|
83
|
+
}
|
|
84
|
+
// Main logic: update the target node and propagate changes
|
|
85
|
+
const targetNode = nodesMap.get(key);
|
|
86
|
+
if (targetNode) {
|
|
87
|
+
targetNode.selectedStatus = isChecked ? 'completely' : 'none';
|
|
88
|
+
updateChildren(key, targetNode.selectedStatus);
|
|
89
|
+
updateParents(key);
|
|
90
|
+
}
|
|
91
|
+
if (!checkEmpty(rootNode)) {
|
|
92
|
+
return {
|
|
93
|
+
rootNode: list[0],
|
|
94
|
+
data: list.slice(1),
|
|
95
|
+
};
|
|
96
|
+
}
|
|
97
|
+
return { data: list };
|
|
109
98
|
};
|
|
110
99
|
//# sourceMappingURL=handleTreeNodeSelect.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handleTreeNodeSelect.js","sourceRoot":"","sources":["../../../src/utils/handleTreeNodeSelect/handleTreeNodeSelect.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAEtD,MAAM,CAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"handleTreeNodeSelect.js","sourceRoot":"","sources":["../../../src/utils/handleTreeNodeSelect/handleTreeNodeSelect.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED