UNPKG

kea-react

Version:

Componentes comunes de react

91 lines (90 loc) 4.43 kB
"use strict"; var __extends = (this && this.__extends) || (function () { var extendStatics = Object.setPrototypeOf || ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; return function (d, b) { extendStatics(d, b); function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; })(); 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; }; Object.defineProperty(exports, "__esModule", { value: true }); var React = require("react"); var table_1 = require("../../table"); var pageSelector_1 = require("./pageSelector"); var row_1 = require("./row"); var cargando_1 = require("../../cargando"); var async_1 = require("../../async"); var drillDowns_1 = require("../simpleGrid/drillDowns"); function pageItems(items, selectedPage, selectedSize) { return items.slice(selectedPage * selectedSize, (selectedPage + 1) * selectedSize); } var GridTable = /** @class */ (function (_super) { __extends(GridTable, _super); function GridTable() { var _this = _super !== null && _super.apply(this, arguments) || this; _this.onDrillDown = function (column, path) { var newValue = drillDowns_1.addDrilldown(column, path, _this.props.value); _this.props.onChange(newValue); }; return _this; } GridTable.prototype.render = function () { var _this = this; var props = this.props; var _a = pageSelector_1.getPageValues(props.items.length, props.value.paginacion), selectedPage = _a.selectedPage, selectedSize = _a.selectedSize; var pageStart = selectedPage * selectedSize; var pagedItems = pageItems(props.items, selectedPage, selectedSize); var tableItems = pagedItems.map(function (x, i) { return React.createElement(row_1.GridRow, { key: props.getKey ? props.getKey(x) : i, columns: props.columns, sharedValue: props.sharedData, value: x, onDrillDown: _this.onDrillDown }); }); return (React.createElement("div", null, props.items.length > 0 && React.createElement(pageSelector_1.PaginatorSelector, { itemsCount: props.items.length, value: props.value.paginacion, onChange: function (paginacion) { return props.onChange(__assign({}, _this.props.value, { paginacion: paginacion })); } }), React.createElement(table_1.Table, { header: props.header, items: tableItems }))); }; return GridTable; }(React.PureComponent)); /**Una tabla vacia pero que si muestra las columnas, ademas de eso muestra el icono de cargando */ var CargandoTable = /** @class */ (function (_super) { __extends(CargandoTable, _super); function CargandoTable() { return _super !== null && _super.apply(this, arguments) || this; } CargandoTable.prototype.render = function () { var emptyGridProps = { columns: [], getKey: function () { return 0; }, header: this.props.header, items: [], onChange: function () { }, sharedData: undefined, value: this.props.value, }; return (React.createElement("div", null, React.createElement(GridTable, __assign({}, emptyGridProps)), React.createElement(cargando_1.Spinner, null))); }; return CargandoTable; }(React.PureComponent)); var AsyncGridTable = /** @class */ (function (_super) { __extends(AsyncGridTable, _super); function AsyncGridTable() { return _super !== null && _super.apply(this, arguments) || this; } AsyncGridTable.prototype.render = function () { var _this = this; return async_1.async(this.props.items, function (items) { return React.createElement(GridTable, __assign({}, _this.props, { items: items })); }, { cargando: React.createElement(CargandoTable, __assign({}, this.props)) }); }; return AsyncGridTable; }(React.PureComponent)); exports.AsyncGridTable = AsyncGridTable;