UNPKG

@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
"use strict"; 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;