UNPKG

es-grid-template

Version:

es-grid-template

68 lines (65 loc) 1.77 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = traverseColumn; var _isLeafNode = _interopRequireDefault(require("./isLeafNode")); function normalizeAsArray(input) { if (input == null) { return []; } else if (Array.isArray(input)) { return input; } else { return [input]; } } /** @deprecated This API is deprecated. Please use `makeRecursiveMapper` instead. */ function traverseColumn(fn) { return ({ columns, dataSource }) => { return { dataSource, columns: dfs(columns, 0).result }; // eslint-disable-next-line @typescript-eslint/no-shadow function dfs(columns, parentStartColIndex) { let flatColCount = 0; const result = []; for (const col of columns) { const startColIndex = parentStartColIndex + flatColCount; let unNormalized; if ((0, _isLeafNode.default)(col)) { unNormalized = fn(col, { range: { start: startColIndex, end: startColIndex + 1 }, dataSource }); flatColCount += 1; } else { const dfsResult = dfs(col.children ?? [], startColIndex); unNormalized = fn({ ...col, children: dfsResult.result }, { range: { start: startColIndex, end: startColIndex + dfsResult.flatColCount }, dataSource }); flatColCount += dfsResult.flatColCount; } result.push(...normalizeAsArray(unNormalized)); } return { result, flatColCount }; } }; }