react-sortable-tree-node
Version:
react-sortable-tree-node
40 lines (34 loc) • 1.4 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.memoizedGetDescendantCount = exports.memoizedGetFlatDataFromTree = exports.memoizedInsertNode = void 0;
var _treeDataUtils = require("./tree-data-utils");
var memoize = function memoize(f) {
var savedArgsArray = [];
var savedKeysArray = [];
var savedResult = null;
return function (args) {
var keysArray = Object.keys(args).sort();
var argsArray = keysArray.map(function (key) {
return args[key];
}); // If the arguments for the last insert operation are different than this time,
// recalculate the result
if (argsArray.length !== savedArgsArray.length || argsArray.some(function (arg, index) {
return arg !== savedArgsArray[index];
}) || keysArray.some(function (key, index) {
return key !== savedKeysArray[index];
})) {
savedArgsArray = argsArray;
savedKeysArray = keysArray;
savedResult = f(args);
}
return savedResult;
};
};
var memoizedInsertNode = memoize(_treeDataUtils.insertNode);
exports.memoizedInsertNode = memoizedInsertNode;
var memoizedGetFlatDataFromTree = memoize(_treeDataUtils.getFlatDataFromTree);
exports.memoizedGetFlatDataFromTree = memoizedGetFlatDataFromTree;
var memoizedGetDescendantCount = memoize(_treeDataUtils.getDescendantCount);
exports.memoizedGetDescendantCount = memoizedGetDescendantCount;