@dccs/react-datagrid-mui
Version:
A light datagrid build upon react-table-plain for React in a Material-UI theme.
49 lines (48 loc) • 2.08 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.serializeFilter = exports.createJsonServerSource = exports.createSource = void 0;
function createSource(get, url) {
return function (page, rowsPerPage, orderBy, sort, filter) {
var urlSep = url.indexOf("?") === -1 ? "?" : "&";
var p = new Promise(function (res, rej) {
get("".concat(url).concat(urlSep, "page=").concat(page, "&count=").concat(rowsPerPage).concat(orderBy != null ? "&orderBy=" + orderBy : "").concat(sort != null ? "&desc=" + (sort === "desc") : "").concat(serializeFilter(filter || {})))
.then(res)
.catch(rej);
});
return p;
};
}
exports.createSource = createSource;
function createJsonServerSource(get, url) {
return function (page, rowsPerPage, orderBy, sort, filter) {
var urlSep = url.indexOf("?") === -1 ? "?" : "&";
var p = new Promise(function (res, rej) {
get("".concat(url).concat(urlSep, "_page=").concat(page, "&_limit=").concat(rowsPerPage, "&{\n orderBy != null ? \"_sort=\" + orderBy : \"\"\n }\n }").concat(sort != null ? "&_order=" + sort : "", "\n ").concat(serializeFilter(filter || {})))
.then(function (resp) { return res({ data: resp, total: resp.length }); })
.catch(rej);
});
return p;
};
}
exports.createJsonServerSource = createJsonServerSource;
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 += "&".concat(x, "=").concat(encodeURIComponent(e));
});
}
else {
query += "&".concat(x, "=").concat(encodeURIComponent(filter[x]));
}
}
};
// tslint:disable-next-line:forin
for (var x in filter) {
_loop_1(x);
}
return query;
}
exports.serializeFilter = serializeFilter;