angular-4-data-table-bootstrap-4
Version:
An Angular 4 data table, with pagination, sorting, expandable rows etc. Bootstrap 4 version.
47 lines • 1.71 kB
JavaScript
var DataTableResource = /** @class */ (function () {
function DataTableResource(items) {
this.items = items;
}
DataTableResource.prototype.query = function (params, filter) {
var result = [];
if (filter) {
result = this.items.filter(filter);
}
else {
result = this.items.slice(); // shallow copy to use for sorting instead of changing the original
}
if (params.sortBy) {
result.sort(function (a, b) {
if (typeof a[params.sortBy] === 'string') {
return a[params.sortBy].localeCompare(b[params.sortBy]);
}
else {
return a[params.sortBy] - b[params.sortBy];
}
});
if (params.sortAsc === false) {
result.reverse();
}
}
if (params.offset !== undefined) {
if (params.limit === undefined) {
result = result.slice(params.offset, result.length);
}
else {
result = result.slice(params.offset, params.offset + params.limit);
}
}
return new Promise(function (resolve, reject) {
setTimeout(function () { return resolve(result); });
});
};
DataTableResource.prototype.count = function () {
var _this = this;
return new Promise(function (resolve, reject) {
setTimeout(function () { return resolve(_this.items.length); });
});
};
return DataTableResource;
}());
export { DataTableResource };
//# sourceMappingURL=data-table-resource.js.map