kea-react
Version:
Componentes comunes de react
91 lines (90 loc) • 4.43 kB
JavaScript
;
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;