UNPKG

es-grid-template

Version:

es-grid-template

22 lines 547 B
import isLeafNode from "./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. */ export default function layeredSort(array, compare) { return dfs(array); function dfs(rows) { if (!Array.isArray(array)) { return array; } return rows.map(row => { if (isLeafNode(row)) { return row; } return { ...row, children: dfs(row.children) }; }).sort(compare); } }