UNPKG

kea-react

Version:

Componentes comunes de react

92 lines (91 loc) 4.04 kB
"use strict"; var __assign = (this && this.__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; }; 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 }); var keautils_1 = require("keautils"); /**Obtiene la cantidad de columnas originales */ function getOriginalColumnCount(totalColumns, drillDownCount) { return totalColumns - drillDownCount; } exports.getOriginalColumnCount = getOriginalColumnCount; /**Obtiene todas las columnas efectivas del grid, que son las originales concatenadas con las de drill down*/ function getEffectiveColumns(originalColumns, drillDowns) { var drillDownColumns = keautils_1.mapObject(drillDowns, function (x) { return drillDownToColumn(originalColumns, x); }); return __assign({}, originalColumns, drillDownColumns); } exports.getEffectiveColumns = getEffectiveColumns; /**Devuelve el nuevo state de un grid despues de una operación de quitar columna */ function quitarColumna(key, oldValue) { var newValue = __assign({}, oldValue, { drillDowns: keautils_1.filterObject(oldValue.drillDowns, function (value, dkey) { return dkey != key; }), mapping: oldValue.mapping.filter(function (x) { return x != key; }) }); return newValue; } exports.quitarColumna = quitarColumna; /**Devuelve el nuevo state despues de agregar un drilldown * @param column indice de la columna original * @param path ruta del drilldown */ function addDrilldown(column, path, oldValue) { var last = oldValue.drillDowns; var lastDrillDownCol = last[column]; var originalPath = (lastDrillDownCol && lastDrillDownCol.path) || []; var originalColumn = lastDrillDownCol == null ? column : lastDrillDownCol.columna; var realPath = __spread(originalPath, path); var newValue = { columna: originalColumn, path: realPath }; var newKey = getDrillDownKey(newValue.columna, newValue.path); //Nuevos valores //Si el drill down ya existe no hay problema ya que simplemente se sustituira por otro drilldown equivalente var drillDowns = __assign({}, last, (_a = {}, _a[newKey] = newValue, _a)); var mapping = __spread(oldValue.mapping, [newKey]); return __assign({}, oldValue, { drillDowns: drillDowns, mapping: mapping }); var _a; } exports.addDrilldown = addDrilldown; /**Convierte un drill down a una columna del grid */ function drillDownToColumn(originalColumns, drillDown) { var column = originalColumns[drillDown.columna]; var title = getDrillDownTitle(column.title, drillDown.path); var cell = function (row) { return ({ data: getPathData(column.cell(row).data, drillDown.path) }); }; return { title: title, cell: cell, key: getDrillDownKey(drillDown.columna, drillDown.path) }; } function getDrillDownKey(column, path) { return "_drilldown:" + column + ":" + path.join("/"); } function getDrillDownTitle(colTitle, path) { return colTitle + "/" + (path.length <= 2 ? path.join("/") : (".../" + path.slice(2).join("/"))); } function getPathData(data, path) { return path.reduce(function (data, prop) { return data && data[prop]; }, data); }