UNPKG

kea-react

Version:

Componentes comunes de react

76 lines (75 loc) 3.56 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 keautils_1 = require("keautils"); var async_1 = require("../../async"); var filtrarOrdenar_1 = require("../simpleGrid/filtrarOrdenar"); /**Convierte un GridColumn a un FiltroComponentColumna */ function gridColumnToFiltroColumn(data, value) { var getData = function (item) { return value.cell(item).data; }; return { filterComponent: filtrarOrdenar_1.getFiltro(data, getData, value.filter).then(function (x) { return x.component; }), title: value.title, key: value.key || value.title }; } exports.gridColumnToFiltroColumn = gridColumnToFiltroColumn; /**Dibuja un solo filtro */ function filtroComponent(props) { return async_1.async(props.columna.filterComponent, function (Comp) { return async_1.async(props.items, function (items) { return React.createElement(Comp, { items: items, column: props.columna.key, titulo: props.columna.title, value: props.value, onChange: props.onChange, onQuitar: props.onQuitar }); }); }); } /**Componente que muestra todos los filtros de un grid */ var FiltroListComponent = /** @class */ (function (_super) { __extends(FiltroListComponent, _super); function FiltroListComponent() { var _this = _super !== null && _super.apply(this, arguments) || this; _this.handleOnChange = function (value, key) { var props = _this.props; var nuevo = __assign({}, props.value, (_a = {}, _a[key] = { datos: value }, _a)); props.onChange(nuevo); var _a; }; _this.handleQuitar = function (key) { var props = _this.props; props.onChange(keautils_1.filterObject(props.value, function (x, k) { return k != key; })); }; return _this; } FiltroListComponent.prototype.render = function () { var _this = this; var props = this.props; var comp = React.createElement("div", null, React.createElement("div", { className: "row" }, Object.keys(props.value).map(function (key) { return React.createElement("div", { className: "col-md-4", key: key }, filtroComponent({ items: props.items, columna: props.columnas[key], onChange: function (value) { return _this.handleOnChange(value, key); }, onQuitar: function () { return _this.handleQuitar(key); }, value: props.value[key].datos })); }))); return comp; }; return FiltroListComponent; }(React.PureComponent)); exports.FiltroListComponent = FiltroListComponent;