UNPKG

react-sortable-tree-node

Version:
40 lines (34 loc) 1.4 kB
"use strict"; 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;