kea-react
Version:
Componentes comunes de react
76 lines (75 loc) • 3.56 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 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;