@dccs/react-datagrid-plain
Version:
A light datagrid build upon react-table-plain for React.
42 lines (41 loc) • 1.83 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.createSource = function (get, url) { return function (page, rowsPerPage, orderBy, sort, filter) {
var urlSep = url.indexOf("?") === -1 ? "?" : "&";
var p = new Promise(function (res, rej) {
get("" + url + urlSep + "page=" + page + "&count=" + rowsPerPage + (orderBy != null ? "&orderBy=" + orderBy : "") + (sort != null ? "&desc=" + (sort === "desc") : "") + serializeFilter(filter || {}))
.then(function (resp) { return res({ data: resp.data, total: resp.total }); })
.catch(rej);
});
return p;
}; };
exports.createJsonServerSource = function (get, url) { return function (page, rowsPerPage, orderBy, sort, filter) {
var urlSep = url.indexOf("?") === -1 ? "?" : "&";
var p = new Promise(function (res, rej) {
get("" + url + urlSep + "_page=" + page + "&_limit=" + rowsPerPage + "&{\n orderBy != null ? \"_sort=\" + orderBy : \"\"\n }\n }" + (sort != null ? "&_order=" + sort : "") + "\n " + serializeFilter(filter || {}))
.then(function (resp) { return res({ data: resp, total: resp.length }); })
.catch(rej);
});
return p;
}; };
function serializeFilter(filter) {
var query = "";
var _loop_1 = function (x) {
if (filter[x] != null) {
if (Array.isArray(filter[x])) {
filter[x].forEach(function (e) {
query += "&" + x + "=" + encodeURIComponent(e);
});
}
else {
query += "&" + x + "=" + encodeURIComponent(filter[x]);
}
}
};
// tslint:disable-next-line:forin
for (var x in filter) {
_loop_1(x);
}
return query;
}
exports.serializeFilter = serializeFilter;