UNPKG

es-grid-template

Version:

es-grid-template

29 lines (28 loc) 771 B
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = layeredSort; var _isLeafNode = _interopRequireDefault(require("./isLeafNode")); /** Sort data with tree structure. * layeredSort is a recursive process: for each parent node in the tree, * this function will sort its children array. */ function layeredSort(array, compare) { return dfs(array); function dfs(rows) { if (!Array.isArray(array)) { return array; } return rows.map(row => { if ((0, _isLeafNode.default)(row)) { return row; } return { ...row, children: dfs(row.children) }; }).sort(compare); } }