UNPKG

kea-react

Version:

Componentes comunes de react

117 lines (116 loc) 4.14 kB
"use strict"; var __values = (this && this.__values) || function (o) { var m = typeof Symbol === "function" && o[Symbol.iterator], i = 0; if (m) return m.call(o); return { next: function () { if (o && i >= o.length) o = void 0; return { value: o && o[i++], done: !o }; } }; }; var __read = (this && this.__read) || function (o, n) { var m = typeof Symbol === "function" && o[Symbol.iterator]; if (!m) return o; var i = m.call(o), r, ar = [], e; try { while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value); } catch (error) { e = { error: error }; } finally { try { if (r && !r.done && (m = i["return"])) m.call(i); } finally { if (e) throw e.error; } } return ar; }; var __spread = (this && this.__spread) || function () { for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read(arguments[i])); return ar; }; Object.defineProperty(exports, "__esModule", { value: true }); /**Obtiene todas las filas que se van a mostrar en un tree */ function getTreeRows(basePath, tree, collapsedPaths) { var ret = []; try { for (var tree_1 = __values(tree), tree_1_1 = tree_1.next(); !tree_1_1.done; tree_1_1 = tree_1.next()) { var node = tree_1_1.value; //Ruta del elemento var path = __spread(basePath, [node.key]); var isLeaf = !node.children || node.children.length == 0; var collapsed = isLeaf ? "leaf" : (isCollapsed(path, collapsedPaths) ? "collapsed" : "expanded"); var value = node.value; //Agregamos al elemento ret.push({ collapsed: collapsed, path: path, value: value }); //Agregamos a todos los hijos: if (collapsed == "expanded") { ret.push.apply(ret, __spread(getTreeRows(path, node.children || [], collapsedPaths))); } } } catch (e_1_1) { e_1 = { error: e_1_1 }; } finally { try { if (tree_1_1 && !tree_1_1.done && (_a = tree_1.return)) _a.call(tree_1); } finally { if (e_1) throw e_1.error; } } return ret; var e_1, _a; } exports.getTreeRows = getTreeRows; /**Devuelve el nuevo valor para el arreglo de elementos colapsados dada la ruta y el valor de colapsado de un evento de colapsar o expandir */ function handleOnCollapsedChange(path, value, oldValue) { var newValue; if (!value) { //Quitar el elemento: newValue = oldValue.filter(function (x) { return !sequenceEquals(x, path); }); } else { //Agregar el elemento. newValue = __spread(oldValue, [path]); } return newValue; } exports.handleOnCollapsedChange = handleOnCollapsedChange; /**Devuelve true si una ruta del arbol esta colapsada */ function isCollapsed(path, collapsedArray) { return any(collapsedArray, function (x) { return sequenceEquals(x, path); }); } exports.isCollapsed = isCollapsed; /**Devuelve true si 2 secuencias contienen a los mismos elementos */ function sequenceEquals(a, b) { //Reference equals if (a === b) return true; if (a.length != b.length) return false; for (var i = 0; i < a.length; i++) { if (a[i] != b[i]) return false; } return true; } exports.sequenceEquals = sequenceEquals; /**Devuelve true si algun elemento encaja con el predicado */ function any(array, pred) { try { for (var array_1 = __values(array), array_1_1 = array_1.next(); !array_1_1.done; array_1_1 = array_1.next()) { var a = array_1_1.value; if (pred(a)) return true; } } catch (e_2_1) { e_2 = { error: e_2_1 }; } finally { try { if (array_1_1 && !array_1_1.done && (_a = array_1.return)) _a.call(array_1); } finally { if (e_2) throw e_2.error; } } return false; var e_2, _a; } exports.any = any;