UNPKG

@nodeject/ui-components

Version:

UI library for non-trivial components

39 lines (38 loc) 1.5 kB
"use strict"; var __assign = (this && this.__assign) || function () { __assign = Object.assign || function(t) { for (var s, i = 1, n = arguments.length; i < n; i++) { s = arguments[i]; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; } return t; }; return __assign.apply(this, arguments); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.convertTreeDataToDataSource = void 0; var immer_1 = require("immer"); var arrayToTree_1 = require("../arrayToTree"); /** * Transform a flat array of nodes into a hierarchy structure * Also, as all nodes' props are into a data object, spreads it. * @param treeNodes */ var convertTreeDataToDataSource = function (treeNodes) { // step 1: add keys to props, and spreads the data into each node var treeDataWithkeys = treeNodes === null || treeNodes === void 0 ? void 0 : treeNodes.map(function (n) { var newNode = immer_1.produce(n, function (nodeDraft) { return __assign(__assign({}, n), { id: n.data.id, key: n.data.id }); }); return newNode; }); // step 2: returns the tree hierarchy return arrayToTree_1.arrayToTree(treeDataWithkeys, { id: 'id', parentId: 'data.parent', dataField: null, throwChildrenFieldIfEmpty: true, }); }; exports.convertTreeDataToDataSource = convertTreeDataToDataSource;