react-arborist 3.0.1 → 3.1.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.
- package/README.md +1 -0
- package/dist/index.js +31 -19
- package/dist/index.js.map +1 -1
- package/dist/interfaces/tree-api.d.ts +1 -0
- package/dist/module.js +31 -19
- package/dist/module.js.map +1 -1
- package/dist/types/tree-props.d.ts +2 -0
- package/jest.config.js +5 -0
- package/package.json +16 -11
- package/src/components/provider.tsx +2 -1
- package/src/data/create-list.ts +23 -12
- package/src/interfaces/tree-api.test.ts +15 -0
- package/src/interfaces/tree-api.ts +13 -10
- package/src/types/tree-props.ts +2 -0
package/dist/module.js
CHANGED
|
@@ -1453,20 +1453,26 @@ function $749bc746798c29ad$var$flattenTree(root) {
|
|
|
1453
1453
|
return list;
|
|
1454
1454
|
}
|
|
1455
1455
|
function $749bc746798c29ad$var$flattenAndFilterTree(root, isMatch) {
|
|
1456
|
-
|
|
1457
|
-
|
|
1456
|
+
const matches = {};
|
|
1457
|
+
const list = [];
|
|
1458
|
+
function markMatch(node) {
|
|
1458
1459
|
const yes = !node.isRoot && isMatch(node);
|
|
1459
|
-
if (
|
|
1460
|
-
|
|
1461
|
-
|
|
1462
|
-
|
|
1460
|
+
if (yes) {
|
|
1461
|
+
matches[node.id] = true;
|
|
1462
|
+
let parent = node.parent;
|
|
1463
|
+
while(parent){
|
|
1464
|
+
matches[parent.id] = true;
|
|
1465
|
+
parent = parent.parent;
|
|
1466
|
+
}
|
|
1463
1467
|
}
|
|
1464
|
-
if (
|
|
1465
|
-
node
|
|
1466
|
-
];
|
|
1467
|
-
else return [];
|
|
1468
|
+
if (node.children) for (let child of node.children)markMatch(child);
|
|
1468
1469
|
}
|
|
1469
|
-
|
|
1470
|
+
function collect(node) {
|
|
1471
|
+
if (node.level >= 0 && matches[node.id]) list.push(node);
|
|
1472
|
+
if (node.isOpen) node.children?.forEach(collect);
|
|
1473
|
+
}
|
|
1474
|
+
markMatch(root);
|
|
1475
|
+
collect(root);
|
|
1470
1476
|
list.forEach($749bc746798c29ad$var$assignRowIndex);
|
|
1471
1477
|
return list;
|
|
1472
1478
|
}
|
|
@@ -1720,13 +1726,14 @@ class $bfece7c4aed4e9c4$export$e2da3477247342d1 {
|
|
|
1720
1726
|
}
|
|
1721
1727
|
select(node, opts = {}) {
|
|
1722
1728
|
if (!node) return;
|
|
1729
|
+
const changeFocus = opts.focus !== false;
|
|
1723
1730
|
const id = $bfece7c4aed4e9c4$var$identify(node);
|
|
1724
|
-
this.dispatch((0, $c27b8e9863235052$export$d7ddd398f22d79ef)(id));
|
|
1731
|
+
if (changeFocus) this.dispatch((0, $c27b8e9863235052$export$d7ddd398f22d79ef)(id));
|
|
1725
1732
|
this.dispatch((0, $37bc167debff36d2$export$e324594224ef24da).only(id));
|
|
1726
1733
|
this.dispatch((0, $37bc167debff36d2$export$e324594224ef24da).anchor(id));
|
|
1727
1734
|
this.dispatch((0, $37bc167debff36d2$export$e324594224ef24da).mostRecent(id));
|
|
1728
1735
|
this.scrollTo(id, opts.align);
|
|
1729
|
-
if (this.focusedNode) $bfece7c4aed4e9c4$var$safeRun(this.props.onFocus, this.focusedNode);
|
|
1736
|
+
if (this.focusedNode && changeFocus) $bfece7c4aed4e9c4$var$safeRun(this.props.onFocus, this.focusedNode);
|
|
1730
1737
|
$bfece7c4aed4e9c4$var$safeRun(this.props.onSelect, this.selectedNodes);
|
|
1731
1738
|
}
|
|
1732
1739
|
deselect(node) {
|
|
@@ -1790,21 +1797,21 @@ class $bfece7c4aed4e9c4$export$e2da3477247342d1 {
|
|
|
1790
1797
|
if (this.isFiltered) return false;
|
|
1791
1798
|
const parentNode = this.get(this.state.dnd.parentId) ?? this.root;
|
|
1792
1799
|
const dragNodes = this.dragNodes;
|
|
1793
|
-
const
|
|
1800
|
+
const isDisabled = this.props.disableDrop;
|
|
1794
1801
|
for (const drag of dragNodes){
|
|
1795
1802
|
if (!drag) return false;
|
|
1796
1803
|
if (!parentNode) return false;
|
|
1797
1804
|
if (drag.isInternal && $0e6083160f4b36ed$exports.isDecendent(parentNode, drag)) return false;
|
|
1798
1805
|
}
|
|
1799
1806
|
// Allow the user to insert their own logic
|
|
1800
|
-
if (typeof
|
|
1807
|
+
if (typeof isDisabled == "function") return !isDisabled({
|
|
1801
1808
|
parentNode: parentNode,
|
|
1802
1809
|
dragNodes: this.dragNodes,
|
|
1803
1810
|
index: this.state.dnd.index
|
|
1804
1811
|
});
|
|
1805
|
-
else if (typeof
|
|
1806
|
-
return
|
|
1807
|
-
else if (typeof
|
|
1812
|
+
else if (typeof isDisabled == "string") // @ts-ignore
|
|
1813
|
+
return !parentNode.data[isDisabled];
|
|
1814
|
+
else if (typeof isDisabled === "boolean") return !isDisabled;
|
|
1808
1815
|
else return true;
|
|
1809
1816
|
}
|
|
1810
1817
|
hideCursor() {
|
|
@@ -2031,7 +2038,9 @@ function $dac24389e46ba09d$export$c49dab5eb1b4ce0c({ treeProps: treeProps , impe
|
|
|
2031
2038
|
]);
|
|
2032
2039
|
/* Expose the tree api */ (0, $g00cZ$useImperativeHandle)(imperativeHandle, ()=>api);
|
|
2033
2040
|
/* Change selection based on props */ (0, $g00cZ$useEffect)(()=>{
|
|
2034
|
-
if (api.props.selection) api.select(api.props.selection
|
|
2041
|
+
if (api.props.selection) api.select(api.props.selection, {
|
|
2042
|
+
focus: false
|
|
2043
|
+
});
|
|
2035
2044
|
else api.deselectAll();
|
|
2036
2045
|
}, [
|
|
2037
2046
|
api.props.selection
|
|
@@ -2054,6 +2063,9 @@ function $dac24389e46ba09d$export$c49dab5eb1b4ce0c({ treeProps: treeProps , impe
|
|
|
2054
2063
|
options: {
|
|
2055
2064
|
rootElement: api.props.dndRootElement || undefined
|
|
2056
2065
|
},
|
|
2066
|
+
...treeProps.dndManager && {
|
|
2067
|
+
manager: treeProps.dndManager
|
|
2068
|
+
},
|
|
2057
2069
|
children: children
|
|
2058
2070
|
})
|
|
2059
2071
|
})
|