sws-frontend
Version:
sws frontend project
82 lines • 3.75 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;
};
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