UNPKG

sws-frontend

Version:

sws frontend project

82 lines 3.75 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; }; var __rest = (this && this.__rest) || function (s, e) { var t = {}; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p]; if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) if (e.indexOf(p[i]) < 0) t[p[i]] = s[p[i]]; return t; }; Object.defineProperty(exports, "__esModule", { value: true }); var React = require("react"); var table_1 = require("./table"); var helpers_1 = require("../commons/helpers"); var filter_1 = require("./filter"); var eventOf = helpers_1.default.eventOf; require("./filteredtable.scss"); function defaultFilter(key, data) { return data.filter(function (t) { var json = JSON.stringify(t); return (json.toLowerCase().search(key.toLowerCase()) > -1 ? true : false); }); } exports.defaultFilter = defaultFilter; var FilteredTable = (function (_super) { __extends(FilteredTable, _super); function FilteredTable(p) { var _this = _super.call(this, p) || this; _this.onChange = function (e) { //scrolltoTop only when change filter _this.setState({ filter: e.target.value, scrollToTop: true }, function () { return _this.setState(helpers_1.default.merge(_this.state, { scrollToTop: false })); }); }; _this.state = { filter: "", scrollToTop: false, }; return _this; } FilteredTable.prototype.shouldComponentUpdate = function (props, state) { return !(this.props === props) || !(this.state === state); }; FilteredTable.prototype.componentWillReceiveProps = function (props) { //props.forceUpdate && this.onChange(eventOf(this.state.filter)); //this.onChange(eventOf(this.state.filter)); }; FilteredTable.prototype.render = function () { var _a = this.props, data = _a.data, children = _a.children, p = __rest(_a, ["data", "children"]); var s = this.state; var find = p.find; var dataSource = find ? find(s.filter, data) : defaultFilter(s.filter, data); return (React.createElement("div", { className: "filteredtable-list" }, React.createElement(filter_1.default, { disabled: false, onChange: this.onChange, count: (dataSource ? dataSource : []).length }, children && children), React.createElement(table_1.default, __assign({ idProperty: "id", dataSource: dataSource ? dataSource : [], columns: p.columns, withColumnMenu: false, onSelectionChange: function (newSelected, data) { // console.log(newSelected) // console.log(data) }, emptyText: 'empty', loading: false, scrollToTop: s.scrollToTop }, p)))); }; return FilteredTable; }(React.Component)); exports.default = FilteredTable; //# sourceMappingURL=filteredtable.js.map