@uxf/data-grid 3.2.0 → 4.0.0-beta.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (118) hide show
  1. package/DataGrid.d.ts +2 -10
  2. package/DataGrid.js +127 -220
  3. package/README.md +111 -100
  4. package/index.d.ts +1 -6
  5. package/index.js +2 -7
  6. package/package.json +7 -12
  7. package/store/actions.d.ts +5 -1
  8. package/store/actions.js +8 -3
  9. package/store/reducer.d.ts +1 -0
  10. package/store/reducer.js +46 -18
  11. package/tailwindui/DataGrid.d.ts +6 -0
  12. package/tailwindui/DataGrid.js +56 -0
  13. package/{components/ActionCellBase.d.ts → tailwindui/components/action-cell-base.d.ts} +1 -1
  14. package/tailwindui/components/action-cell-base.js +90 -0
  15. package/tailwindui/components/badge.d.ts +5 -0
  16. package/tailwindui/components/badge.js +18 -0
  17. package/{components/BodyCellBase.d.ts → tailwindui/components/body-cell-base.d.ts} +1 -1
  18. package/tailwindui/components/body-cell-base.js +23 -0
  19. package/{components/BodyCellWrapper.d.ts → tailwindui/components/body-cell-wrapper.d.ts} +1 -0
  20. package/tailwindui/components/body-cell-wrapper.js +14 -0
  21. package/tailwindui/components/circle-button.d.ts +10 -0
  22. package/tailwindui/components/circle-button.js +14 -0
  23. package/tailwindui/components/container.d.ts +2 -0
  24. package/tailwindui/components/container.js +20 -0
  25. package/tailwindui/components/drawer.d.ts +9 -0
  26. package/tailwindui/components/drawer.js +22 -0
  27. package/{components/FilterInputBase.d.ts → tailwindui/components/filter-input-base.d.ts} +1 -1
  28. package/tailwindui/components/filter-input-base.js +30 -0
  29. package/{components/FilterListItemBase.d.ts → tailwindui/components/filter-list-item-base.d.ts} +1 -1
  30. package/tailwindui/components/filter-list-item-base.js +34 -0
  31. package/tailwindui/components/filters-list.d.ts +2 -0
  32. package/tailwindui/components/filters-list.js +23 -0
  33. package/tailwindui/components/icons/chevron-double-left.d.ts +2 -0
  34. package/tailwindui/components/icons/chevron-double-left.js +13 -0
  35. package/tailwindui/components/icons/chevron-double-right.d.ts +2 -0
  36. package/tailwindui/components/icons/chevron-double-right.js +13 -0
  37. package/tailwindui/components/icons/chevron-left.d.ts +2 -0
  38. package/tailwindui/components/icons/chevron-left.js +13 -0
  39. package/tailwindui/components/icons/chevron-right.d.ts +2 -0
  40. package/tailwindui/components/icons/chevron-right.js +13 -0
  41. package/tailwindui/components/icons/cloud-download.d.ts +2 -0
  42. package/tailwindui/components/icons/cloud-download.js +13 -0
  43. package/tailwindui/components/icons/edit.d.ts +2 -0
  44. package/tailwindui/components/icons/edit.js +13 -0
  45. package/tailwindui/components/icons/filter.d.ts +2 -0
  46. package/tailwindui/components/icons/filter.js +13 -0
  47. package/tailwindui/components/icons/open.d.ts +2 -0
  48. package/tailwindui/components/icons/open.js +13 -0
  49. package/tailwindui/components/icons/table.d.ts +2 -0
  50. package/tailwindui/components/icons/table.js +13 -0
  51. package/tailwindui/components/icons/trash.d.ts +2 -0
  52. package/tailwindui/components/icons/trash.js +13 -0
  53. package/tailwindui/components/inputs/checkbox.d.ts +10 -0
  54. package/tailwindui/components/inputs/checkbox.js +23 -0
  55. package/tailwindui/components/inputs/select.d.ts +13 -0
  56. package/tailwindui/components/inputs/select.js +21 -0
  57. package/tailwindui/components/inputs/switch.d.ts +7 -0
  58. package/tailwindui/components/inputs/switch.js +21 -0
  59. package/tailwindui/components/inputs/text-input.d.ts +7 -0
  60. package/tailwindui/components/inputs/text-input.js +18 -0
  61. package/tailwindui/components/linear-progress.d.ts +2 -0
  62. package/tailwindui/components/linear-progress.js +13 -0
  63. package/tailwindui/components/no-rows-fallback.d.ts +2 -0
  64. package/tailwindui/components/no-rows-fallback.js +13 -0
  65. package/tailwindui/components/pagination.d.ts +2 -0
  66. package/tailwindui/components/pagination.js +55 -0
  67. package/tailwindui/components/select-row-checkbox.d.ts +2 -0
  68. package/tailwindui/components/select-row-checkbox.js +54 -0
  69. package/tailwindui/components/selected-rows-toolbar.d.ts +2 -0
  70. package/tailwindui/components/selected-rows-toolbar.js +33 -0
  71. package/tailwindui/components/tab.d.ts +6 -0
  72. package/tailwindui/components/tab.js +16 -0
  73. package/tailwindui/components/toolbar-container.d.ts +2 -0
  74. package/tailwindui/components/toolbar-container.js +13 -0
  75. package/tailwindui/index.d.ts +7 -0
  76. package/tailwindui/index.js +20 -0
  77. package/tailwindui/styles.css +73 -0
  78. package/tailwindui/toolbar-plugins/csv-export-plugin.d.ts +2 -0
  79. package/tailwindui/toolbar-plugins/csv-export-plugin.js +20 -0
  80. package/tailwindui/toolbar-plugins/filters-plugin.d.ts +2 -0
  81. package/tailwindui/toolbar-plugins/filters-plugin.js +60 -0
  82. package/tailwindui/toolbar-plugins/fulltext-plugin.d.ts +2 -0
  83. package/tailwindui/toolbar-plugins/fulltext-plugin.js +72 -0
  84. package/tailwindui/toolbar-plugins/hidden-columns-plugin.d.ts +2 -0
  85. package/tailwindui/toolbar-plugins/hidden-columns-plugin.js +76 -0
  86. package/tailwindui/toolbar-plugins/tabs-plugin.d.ts +2 -0
  87. package/tailwindui/toolbar-plugins/tabs-plugin.js +19 -0
  88. package/tailwindui/toolbar-plugins/title-plugin.d.ts +2 -0
  89. package/tailwindui/toolbar-plugins/title-plugin.js +16 -0
  90. package/tailwindui/ui.d.ts +2 -0
  91. package/tailwindui/ui.js +32 -0
  92. package/types.d.ts +130 -39
  93. package/useColumns.d.ts +3 -0
  94. package/useColumns.js +100 -0
  95. package/{utils/utils.d.ts → utils.d.ts} +1 -1
  96. package/utils.js +37 -0
  97. package/components/ActionCellBase.js +0 -96
  98. package/components/BodyCellBase.js +0 -23
  99. package/components/BodyCellWrapper.js +0 -14
  100. package/components/Drawer.d.ts +0 -7
  101. package/components/Drawer.js +0 -42
  102. package/components/FilterInputBase.js +0 -43
  103. package/components/FilterListItemBase.js +0 -25
  104. package/components/Filters.d.ts +0 -11
  105. package/components/Filters.js +0 -66
  106. package/components/FiltersList.d.ts +0 -10
  107. package/components/FiltersList.js +0 -47
  108. package/components/HiddenColumns.d.ts +0 -10
  109. package/components/HiddenColumns.js +0 -79
  110. package/components/Paper.d.ts +0 -15
  111. package/components/Paper.js +0 -15
  112. package/translations/textLabels.d.ts +0 -42
  113. package/translations/textLabels.js +0 -45
  114. package/translations/textLabelsEn.d.ts +0 -42
  115. package/translations/textLabelsEn.js +0 -45
  116. package/translations/types.d.ts +0 -49
  117. package/translations/types.js +0 -3
  118. package/utils/utils.js +0 -36
@@ -0,0 +1,76 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
11
+ }) : function(o, v) {
12
+ o["default"] = v;
13
+ });
14
+ var __importStar = (this && this.__importStar) || function (mod) {
15
+ if (mod && mod.__esModule) return mod;
16
+ var result = {};
17
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
+ __setModuleDefault(result, mod);
19
+ return result;
20
+ };
21
+ var __read = (this && this.__read) || function (o, n) {
22
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
23
+ if (!m) return o;
24
+ var i = m.call(o), r, ar = [], e;
25
+ try {
26
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
27
+ }
28
+ catch (error) { e = { error: error }; }
29
+ finally {
30
+ try {
31
+ if (r && !r.done && (m = i["return"])) m.call(i);
32
+ }
33
+ finally { if (e) throw e.error; }
34
+ }
35
+ return ar;
36
+ };
37
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
38
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
39
+ if (ar || !(i in from)) {
40
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
41
+ ar[i] = from[i];
42
+ }
43
+ }
44
+ return to.concat(ar || Array.prototype.slice.call(from));
45
+ };
46
+ Object.defineProperty(exports, "__esModule", { value: true });
47
+ exports.HiddenColumnsPlugin = void 0;
48
+ var react_1 = __importStar(require("react"));
49
+ var drawer_1 = require("../components/drawer");
50
+ var switch_1 = require("../components/inputs/switch");
51
+ var circle_button_1 = require("../components/circle-button");
52
+ var table_1 = require("../components/icons/table");
53
+ var HiddenColumnsPlugin = function (props) {
54
+ var schema = props.schema, _a = props.hiddenColumns, _b = _a.value, value = _b === void 0 ? [] : _b, onChange = _a.onChange;
55
+ var columns = schema.columns;
56
+ var _c = __read((0, react_1.useState)(false), 2), isOpen = _c[0], setIsOpen = _c[1];
57
+ if (!onChange) {
58
+ return null;
59
+ }
60
+ var handleChange = function (column) { return function () {
61
+ if (value.includes(column.name)) {
62
+ onChange(value.filter(function (cn) { return cn !== column.name; }));
63
+ }
64
+ else {
65
+ onChange(__spreadArray(__spreadArray([], __read(value), false), [column.name], false));
66
+ }
67
+ }; };
68
+ return (react_1.default.createElement(react_1.default.Fragment, null,
69
+ react_1.default.createElement(circle_button_1.CircleButton, { onClick: function () { return setIsOpen(true); }, title: "Nastaven\u00ED sloupc\u016F" },
70
+ react_1.default.createElement(table_1.Table, null)),
71
+ react_1.default.createElement(drawer_1.Drawer, { title: "Zobrazit sloupce", open: isOpen, onClose: function () { return setIsOpen(false); } },
72
+ react_1.default.createElement("div", { className: "flex flex-col space-y-4" }, columns.map(function (column) { return (react_1.default.createElement("div", { key: column.name },
73
+ react_1.default.createElement(switch_1.Switch, { value: !value.includes(column.name), onChange: handleChange(column), label: column.label }))); })))));
74
+ };
75
+ exports.HiddenColumnsPlugin = HiddenColumnsPlugin;
76
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGlkZGVuLWNvbHVtbnMtcGx1Z2luLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3RhaWx3aW5kdWkvdG9vbGJhci1wbHVnaW5zL2hpZGRlbi1jb2x1bW5zLXBsdWdpbi50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSw2Q0FBd0M7QUFFeEMsK0NBQThDO0FBQzlDLHNEQUFxRDtBQUNyRCw2REFBMkQ7QUFDM0QsbURBQStEO0FBRXhELElBQU0sbUJBQW1CLEdBQWtCLFVBQUEsS0FBSztJQUUvQyxJQUFBLE1BQU0sR0FFTixLQUFLLE9BRkMsRUFDTixLQUNBLEtBQUssY0FEa0MsRUFBdEIsYUFBVSxFQUFWLEtBQUssbUJBQUcsRUFBRSxLQUFBLEVBQUUsUUFBUSxjQUFFLENBQ2pDO0lBQ1YsSUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQztJQUV6QixJQUFBLEtBQUEsT0FBc0IsSUFBQSxnQkFBUSxFQUFDLEtBQUssQ0FBQyxJQUFBLEVBQXBDLE1BQU0sUUFBQSxFQUFFLFNBQVMsUUFBbUIsQ0FBQztJQUU1QyxJQUFJLENBQUMsUUFBUSxFQUFFO1FBQ1gsT0FBTyxJQUFJLENBQUM7S0FDZjtJQUVELElBQU0sWUFBWSxHQUFHLFVBQUMsTUFBd0IsSUFBSyxPQUFBO1FBQy9DLElBQUksS0FBSyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDN0IsUUFBUSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsVUFBQSxFQUFFLElBQUksT0FBQSxFQUFFLEtBQUssTUFBTSxDQUFDLElBQUksRUFBbEIsQ0FBa0IsQ0FBQyxDQUFDLENBQUM7U0FDcEQ7YUFBTTtZQUNILFFBQVEsd0NBQUssS0FBSyxZQUFFLE1BQU0sQ0FBQyxJQUFJLFVBQUUsQ0FBQztTQUNyQztJQUNMLENBQUMsRUFOa0QsQ0FNbEQsQ0FBQztJQUNGLE9BQU8sQ0FDSDtRQUNJLDhCQUFDLDRCQUFZLElBQUMsT0FBTyxFQUFFLGNBQU0sT0FBQSxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQWYsQ0FBZSxFQUFFLEtBQUssRUFBQyw2QkFBbUI7WUFDbkUsOEJBQUMsYUFBUyxPQUFHLENBQ0Y7UUFDZiw4QkFBQyxlQUFNLElBQUMsS0FBSyxFQUFDLGtCQUFrQixFQUFDLElBQUksRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLGNBQU0sT0FBQSxTQUFTLENBQUMsS0FBSyxDQUFDLEVBQWhCLENBQWdCO1lBQzFFLHVDQUFLLFNBQVMsRUFBQyx5QkFBeUIsSUFDbkMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFBLE1BQU0sSUFBSSxPQUFBLENBQ25CLHVDQUFLLEdBQUcsRUFBRSxNQUFNLENBQUMsSUFBSTtnQkFDakIsOEJBQUMsZUFBTSxJQUNILEtBQUssRUFBRSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUNuQyxRQUFRLEVBQUUsWUFBWSxDQUFDLE1BQU0sQ0FBQyxFQUM5QixLQUFLLEVBQUUsTUFBTSxDQUFDLEtBQUssR0FDckIsQ0FDQSxDQUNULEVBUnNCLENBUXRCLENBQUMsQ0FDQSxDQUNELENBQ1YsQ0FDTixDQUFDO0FBQ04sQ0FBQyxDQUFDO0FBeENXLFFBQUEsbUJBQW1CLHVCQXdDOUIifQ==
@@ -0,0 +1,2 @@
1
+ import { ToolbarPlugin } from "../../types";
2
+ export declare const TabsPlugin: ToolbarPlugin;
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.TabsPlugin = void 0;
7
+ var tab_1 = require("../components/tab");
8
+ var react_1 = __importDefault(require("react"));
9
+ var TabsPlugin = function (props) {
10
+ var tab = props.tab, schema = props.schema;
11
+ var active = tab.active, onChange = tab.onChange;
12
+ if (schema.tabs.length === 0) {
13
+ return null;
14
+ }
15
+ return (react_1.default.createElement("div", { className: "flex flex-1 self-stretch" },
16
+ react_1.default.createElement("nav", { className: "-mb-px flex space-x-4", "aria-label": "Tabs" }, schema.tabs.map(function (t) { return (react_1.default.createElement(tab_1.Tab, { key: t.name, title: t.label, active: active === t.name, onClick: function () { return onChange(t.name); } })); }))));
17
+ };
18
+ exports.TabsPlugin = TabsPlugin;
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFicy1wbHVnaW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdGFpbHdpbmR1aS90b29sYmFyLXBsdWdpbnMvdGFicy1wbHVnaW4udHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUNBLHlDQUF3QztBQUN4QyxnREFBMEI7QUFFbkIsSUFBTSxVQUFVLEdBQWtCLFVBQUEsS0FBSztJQUNsQyxJQUFBLEdBQUcsR0FBYSxLQUFLLElBQWxCLEVBQUUsTUFBTSxHQUFLLEtBQUssT0FBVixDQUFXO0lBQ3RCLElBQUEsTUFBTSxHQUFlLEdBQUcsT0FBbEIsRUFBRSxRQUFRLEdBQUssR0FBRyxTQUFSLENBQVM7SUFFakMsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7UUFDMUIsT0FBTyxJQUFJLENBQUM7S0FDZjtJQUVELE9BQU8sQ0FDSCx1Q0FBSyxTQUFTLEVBQUMsMEJBQTBCO1FBQ3JDLHVDQUFLLFNBQVMsRUFBQyx1QkFBdUIsZ0JBQVksTUFBTSxJQUNuRCxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFBLENBQUMsSUFBSSxPQUFBLENBQ2xCLDhCQUFDLFNBQUcsSUFBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxLQUFLLENBQUMsQ0FBQyxJQUFJLEVBQUUsT0FBTyxFQUFFLGNBQU0sT0FBQSxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFoQixDQUFnQixHQUFJLENBQ25HLEVBRnFCLENBRXJCLENBQUMsQ0FDQSxDQUNKLENBQ1QsQ0FBQztBQUNOLENBQUMsQ0FBQztBQWpCVyxRQUFBLFVBQVUsY0FpQnJCIn0=
@@ -0,0 +1,2 @@
1
+ import { ToolbarPlugin } from "../../types";
2
+ export declare const TitlePlugin: ToolbarPlugin;
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.TitlePlugin = void 0;
7
+ var react_1 = __importDefault(require("react"));
8
+ var TitlePlugin = function (_a) {
9
+ var props = _a.props;
10
+ if (!props.title) {
11
+ return null;
12
+ }
13
+ return react_1.default.createElement("div", { className: "flex-1 text-lg" }, props.title);
14
+ };
15
+ exports.TitlePlugin = TitlePlugin;
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGl0bGUtcGx1Z2luLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3RhaWx3aW5kdWkvdG9vbGJhci1wbHVnaW5zL3RpdGxlLXBsdWdpbi50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsZ0RBQTBCO0FBR25CLElBQU0sV0FBVyxHQUFrQixVQUFDLEVBQVM7UUFBUCxLQUFLLFdBQUE7SUFDOUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUU7UUFDZCxPQUFPLElBQUksQ0FBQztLQUNmO0lBQ0QsT0FBTyx1Q0FBSyxTQUFTLEVBQUMsZ0JBQWdCLElBQUUsS0FBSyxDQUFDLEtBQUssQ0FBTyxDQUFDO0FBQy9ELENBQUMsQ0FBQztBQUxXLFFBQUEsV0FBVyxlQUt0QiJ9
@@ -0,0 +1,2 @@
1
+ import { UIComponents } from "../types";
2
+ export declare const UI: UIComponents<any, any>;
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.UI = void 0;
4
+ var action_cell_base_1 = require("./components/action-cell-base");
5
+ var body_cell_base_1 = require("./components/body-cell-base");
6
+ var no_rows_fallback_1 = require("./components/no-rows-fallback");
7
+ var linear_progress_1 = require("./components/linear-progress");
8
+ var toolbar_container_1 = require("./components/toolbar-container");
9
+ var container_1 = require("./components/container");
10
+ var filter_input_base_1 = require("./components/filter-input-base");
11
+ var filter_list_item_base_1 = require("./components/filter-list-item-base");
12
+ var filters_list_1 = require("./components/filters-list");
13
+ var pagination_1 = require("./components/pagination");
14
+ var select_row_checkbox_1 = require("./components/select-row-checkbox");
15
+ var selected_rows_toolbar_1 = require("./components/selected-rows-toolbar");
16
+ exports.UI = {
17
+ ActionCell: action_cell_base_1.ActionCellBase,
18
+ actionCellWidth: 100,
19
+ ActionCellWrapper: action_cell_base_1.ActionCellWrapper,
20
+ BodyCell: body_cell_base_1.BodyCellBase,
21
+ NoRowsFallback: no_rows_fallback_1.NoRowsFallback,
22
+ LinearProgress: linear_progress_1.LinearProgress,
23
+ ToolbarContainer: toolbar_container_1.ToolbarContainer,
24
+ Container: container_1.Container,
25
+ FilterInput: filter_input_base_1.FilterInputBase,
26
+ FilterListItem: filter_list_item_base_1.FilterListItemBase,
27
+ FilterList: filters_list_1.FiltersList,
28
+ Pagination: pagination_1.Pagination,
29
+ SelectRowCheckbox: select_row_checkbox_1.SelectRowCheckbox,
30
+ SelectedRowsToolbar: selected_rows_toolbar_1.SelectedRowsToolbar,
31
+ };
32
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdGFpbHdpbmR1aS91aS50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0Esa0VBQWtGO0FBQ2xGLDhEQUEyRDtBQUMzRCxrRUFBK0Q7QUFDL0QsZ0VBQThEO0FBQzlELG9FQUFrRTtBQUNsRSxvREFBbUQ7QUFDbkQsb0VBQWlFO0FBQ2pFLDRFQUF3RTtBQUN4RSwwREFBd0Q7QUFDeEQsc0RBQXFEO0FBQ3JELHdFQUFxRTtBQUNyRSw0RUFBeUU7QUFFNUQsUUFBQSxFQUFFLEdBQTJCO0lBQ3RDLFVBQVUsRUFBRSxpQ0FBYztJQUMxQixlQUFlLEVBQUUsR0FBRztJQUNwQixpQkFBaUIsRUFBRSxvQ0FBaUI7SUFDcEMsUUFBUSxFQUFFLDZCQUFZO0lBQ3RCLGNBQWMsRUFBRSxpQ0FBYztJQUM5QixjQUFjLEVBQUUsZ0NBQWM7SUFDOUIsZ0JBQWdCLEVBQUUsb0NBQWdCO0lBQ2xDLFNBQVMsRUFBRSxxQkFBUztJQUNwQixXQUFXLEVBQUUsbUNBQWU7SUFDNUIsY0FBYyxFQUFFLDBDQUFrQjtJQUNsQyxVQUFVLEVBQUUsMEJBQVc7SUFDdkIsVUFBVSxFQUFFLHVCQUFVO0lBQ3RCLGlCQUFpQixFQUFFLHVDQUFpQjtJQUNwQyxtQkFBbUIsRUFBRSwyQ0FBbUI7Q0FDM0MsQ0FBQyJ9
package/types.d.ts CHANGED
@@ -1,14 +1,12 @@
1
- import { TextFieldProps } from "@mui/material";
2
- import { ComponentType, ReactElement, ReactNode } from "react";
3
- import { DataGridProps as RDGProps } from "react-data-grid";
1
+ import React, { ComponentType, Dispatch, ReactElement, ReactNode } from "react";
2
+ import { CheckboxFormatterProps, DataGridProps as RDGProps } from "react-data-grid";
4
3
  export declare type BaseGridType = {
5
4
  columns: any;
6
5
  filters: any;
7
6
  };
8
7
  export declare type SortDirection = "asc" | "desc";
9
- export declare type SelectableRows = "none" | "single" | "multiple";
10
8
  export declare type ResultItem = any;
11
- export declare type KeyExtractor = (row: ResultItem) => string;
9
+ export declare type KeyExtractor = (row: ResultItem) => number;
12
10
  export declare type CsvDownloadHandler = (request: Request) => void;
13
11
  export declare type ChangeHiddenColumnsHandler = (hiddenColumns: string[]) => void;
14
12
  export declare type Loader = (gridName: string | undefined, request: Request, encodedRequest: string) => Promise<Response>;
@@ -27,28 +25,34 @@ export declare type ActionCellWithRequiredWidth<R> = {
27
25
  ActionCell?: never;
28
26
  actionCellWidth?: never;
29
27
  };
30
- export declare type DataGridProps<GridType extends BaseGridType, R> = {
28
+ export declare type UIComponents<GridType extends BaseGridType, R> = {
29
+ ActionCell: ActionCellComponent<R>;
30
+ ActionCellWrapper: ActionCellWrapperComponent;
31
+ BodyCell: BodyCellComponent<GridType["columns"], R>;
32
+ FilterInput: FilterInputComponent<GridType["filters"]>;
33
+ FilterList: FilterListComponent;
34
+ FilterListItem: FilterListItemComponent<GridType["filters"]>;
35
+ NoRowsFallback: NoRowsFallbackComponent;
36
+ Pagination: PaginationComponent;
37
+ Container: ContainerComponent;
38
+ ToolbarContainer: ToolbarContainerComponent;
39
+ LinearProgress: LinearProgressComponent;
40
+ SelectRowCheckbox: SelectRowCheckboxComponent;
41
+ SelectedRowsToolbar: SelectedRowsToolbarComponent;
42
+ SelectedRowsToolbarActions?: SelectedRowsToolbarActionsComponent;
43
+ } & ActionCellWithRequiredWidth<R>;
44
+ export declare type DataGridBaseProps<GridType extends BaseGridType, R> = {
45
+ schema: Schema<GridType>;
46
+ loader: Loader;
31
47
  gridName?: string;
32
48
  title?: ReactNode;
33
- schema: Schema<GridType>;
34
49
  keyExtractor?: KeyExtractor;
35
- loader: Loader;
36
50
  initialState?: Request | string;
37
51
  onChangeHiddenColumns?: ChangeHiddenColumnsHandler;
38
52
  hiddenColumns?: string[];
39
- selectableRows?: SelectableRows;
40
- search?: boolean;
41
- print?: boolean;
42
53
  onCsvDownload?: CsvDownloadHandler;
43
- BodyCell?: BodyCellComponent<GridType["columns"], R>;
44
- HeadCell?: HeadCellComponent<GridType["columns"], R>;
45
- FilterInput?: FilterInputComponent<GridType["filters"]>;
46
- FilterListItem?: FilterListItemComponent<GridType["filters"]>;
47
- ToolbarContent?: ToolbarContentComponent;
48
- Footer?: import("react").ReactNode;
49
- locale?: "cs" | "en";
50
- onChangeSelectedRows?: (selectedRows: R[]) => void;
51
- selectedRows?: R[];
54
+ onChangeSelectedRows?: (selectedRows: Set<number>) => void;
55
+ selectedRows?: Set<number>;
52
56
  onOpen?: (row: R) => void;
53
57
  getOpenUrl?: (row: R) => string | null | undefined;
54
58
  onEdit?: (row: R) => void;
@@ -61,10 +65,17 @@ export declare type DataGridProps<GridType extends BaseGridType, R> = {
61
65
  mt?: number;
62
66
  mr?: number;
63
67
  mb?: number;
68
+ mx?: number;
69
+ my?: number;
70
+ m?: number;
64
71
  defaultConfig?: Config<GridType["columns"]>;
65
- FullTextInputProps?: Partial<TextFieldProps>;
66
72
  rowClass?: (row: R) => "success" | "warning" | "error" | "primary" | "secondary" | string | null | undefined;
67
- } & ActionCellWithRequiredWidth<R>;
73
+ toolbarPlugins?: ToolbarPlugin[];
74
+ debug?: boolean;
75
+ };
76
+ export declare type DataGridProps<GridType extends BaseGridType, R> = DataGridBaseProps<GridType, R> & ActionCellWithRequiredWidth<R> & {
77
+ ui: UIComponents<GridType, R>;
78
+ };
68
79
  export declare type Columns<C extends BaseGridType["columns"]> = {
69
80
  [K in keyof C]: Column<K, C[K]>;
70
81
  }[keyof C];
@@ -82,8 +93,6 @@ export declare type Column<Name, Type> = {
82
93
  };
83
94
  export interface FilterOption {
84
95
  id: string | number;
85
- /** @deprecated */
86
- value?: string | number;
87
96
  label: string;
88
97
  }
89
98
  export declare type Filters<F extends BaseGridType["filters"]> = {
@@ -95,9 +104,15 @@ export interface Filter<N, T> {
95
104
  type?: T;
96
105
  options?: FilterOption[];
97
106
  }
107
+ export interface Tab {
108
+ name: string;
109
+ label: string;
110
+ icon?: string;
111
+ }
98
112
  export interface Schema<GritType extends BaseGridType> {
99
113
  columns: Columns<GritType["columns"]>[];
100
114
  filters: Filters<GritType["filters"]>[];
115
+ tabs: Tab[];
101
116
  sort: string;
102
117
  dir: SortDirection;
103
118
  perPage: number;
@@ -116,17 +131,13 @@ export interface Request {
116
131
  page?: number;
117
132
  perPage?: number;
118
133
  search?: string;
134
+ tab?: string | null;
119
135
  }
120
136
  export interface Response {
121
137
  totalCount: number;
122
138
  count: number;
123
139
  result: ResultItem[];
124
140
  }
125
- export interface ToolbarContentProps {
126
- filtersData: RequestFilter[];
127
- onFilter: (value: RequestFilter) => void;
128
- }
129
- export declare type ToolbarContentComponent = ComponentType<ToolbarContentProps>;
130
141
  export interface BodyCellProps<C, R> {
131
142
  column: C;
132
143
  row: R;
@@ -143,12 +154,9 @@ export interface ActionCellProps<R> {
143
154
  reload: () => Promise<void>;
144
155
  }
145
156
  export declare type ActionCellComponent<R> = ComponentType<ActionCellProps<R>>;
146
- export interface HeadCellProps<C extends Column<any, any>, R> extends BodyCellProps<C, R> {
147
- sort: boolean;
148
- sortDirection: SortDirection;
149
- onSort: (sortDirection: SortDirection) => void;
150
- }
151
- export declare type HeadCellComponent<C extends BaseGridType["columns"], R> = ComponentType<HeadCellProps<Columns<C>, R>>;
157
+ export declare type ActionCellWrapperComponent = React.FC<{
158
+ children: ReactNode;
159
+ }>;
152
160
  export interface FilterListItemProps<F extends Filter<any, any>, T> {
153
161
  filter: F;
154
162
  value: RequestFilter<T>;
@@ -162,14 +170,97 @@ export interface FilterInputProps<F extends Filter<any, any>, T> {
162
170
  onFilter: (value: RequestFilter<T>) => void;
163
171
  }
164
172
  export declare type FilterInputComponent<F extends BaseGridType["filters"], T = any> = ComponentType<FilterInputProps<Filters<F>, T>>;
165
- export interface DataGridState {
166
- loading?: boolean;
167
- response?: Response;
173
+ declare type GridRequest = {
168
174
  f: RequestFilter[];
169
175
  sort: string | null;
170
176
  dir: SortDirection | null;
171
177
  page: number;
172
178
  perPage: number;
179
+ search: string;
180
+ tab: string | null;
181
+ };
182
+ export interface DataGridState {
183
+ loading?: boolean;
184
+ response?: Response;
185
+ request: GridRequest;
173
186
  error?: any;
174
- fullText?: string;
187
+ tabRequests: {
188
+ [tab: string]: GridRequest;
189
+ };
175
190
  }
191
+ export declare type ContainerComponent = React.FC<{
192
+ mr?: number;
193
+ ml?: number;
194
+ mt?: number;
195
+ mb?: number;
196
+ mx?: number;
197
+ my?: number;
198
+ m?: number;
199
+ noBorder?: boolean;
200
+ children: ReactNode;
201
+ }>;
202
+ export declare type ToolbarContainerComponent = React.FC<{
203
+ children: ReactNode;
204
+ noBorder?: boolean;
205
+ }>;
206
+ export declare type ToolbarPlugin = React.FC<{
207
+ props: DataGridProps<any, any>;
208
+ state: DataGridState;
209
+ dispatch: Dispatch<any>;
210
+ schema: Schema<any>;
211
+ reload: () => Promise<void>;
212
+ tab: {
213
+ onChange: (tabName: string) => void;
214
+ active: string | null;
215
+ };
216
+ fulltext: {
217
+ onChange: (value: string) => void;
218
+ value: string;
219
+ placeholder?: string;
220
+ };
221
+ filter: {
222
+ onReset: (initialFilters?: RequestFilter[]) => void;
223
+ onFilter: (value: RequestFilter) => void;
224
+ filtersData: RequestFilter[];
225
+ FilterInput: FilterInputComponent<any>;
226
+ };
227
+ hiddenColumns: {
228
+ value?: string[];
229
+ onChange?: (value: string[]) => void;
230
+ };
231
+ }>;
232
+ export declare type PaginationComponent = React.FC<{
233
+ count: number;
234
+ page: number;
235
+ perPage: number;
236
+ onChangePage: (page: number) => void;
237
+ onChangeRowsPerPage: (perPage: number) => void;
238
+ }>;
239
+ export declare type FilterListComponent = React.FC<{
240
+ dispatch: (action: any) => void;
241
+ onFilter: (value: RequestFilter) => void;
242
+ filters: Filter<any, any>[];
243
+ filtersData: RequestFilter[];
244
+ FilterListItem: FilterListItemComponent<any>;
245
+ noBorder?: boolean;
246
+ }>;
247
+ export declare type NoRowsFallbackComponent = React.FC<{
248
+ error?: any;
249
+ loading: boolean;
250
+ }>;
251
+ export declare type SelectRowCheckboxComponent = React.FC<CheckboxFormatterProps>;
252
+ export declare type LinearProgressComponent = React.FC<{
253
+ loading: boolean;
254
+ }>;
255
+ export declare type SelectedRowsToolbarActionsComponent = React.FC<{
256
+ selectedRows: Set<number>;
257
+ onChangeSelectedRows: (rows: Set<number>) => void;
258
+ reload: () => Promise<void>;
259
+ }>;
260
+ export declare type SelectedRowsToolbarComponent = React.FC<{
261
+ selectedRows?: Set<number>;
262
+ onChangeSelectedRows?: (rows: Set<number>) => void;
263
+ Actions?: SelectedRowsToolbarActionsComponent;
264
+ reload: () => Promise<void>;
265
+ }>;
266
+ export {};
@@ -0,0 +1,3 @@
1
+ import { Column } from "react-data-grid";
2
+ import { DataGridProps } from "./types";
3
+ export declare const useColumns: (props: DataGridProps<any, any>, reload: () => Promise<void>) => Column<any>[];
package/useColumns.js ADDED
@@ -0,0 +1,100 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
11
+ }) : function(o, v) {
12
+ o["default"] = v;
13
+ });
14
+ var __importStar = (this && this.__importStar) || function (mod) {
15
+ if (mod && mod.__esModule) return mod;
16
+ var result = {};
17
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
+ __setModuleDefault(result, mod);
19
+ return result;
20
+ };
21
+ var __read = (this && this.__read) || function (o, n) {
22
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
23
+ if (!m) return o;
24
+ var i = m.call(o), r, ar = [], e;
25
+ try {
26
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
27
+ }
28
+ catch (error) { e = { error: error }; }
29
+ finally {
30
+ try {
31
+ if (r && !r.done && (m = i["return"])) m.call(i);
32
+ }
33
+ finally { if (e) throw e.error; }
34
+ }
35
+ return ar;
36
+ };
37
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
38
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
39
+ if (ar || !(i in from)) {
40
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
41
+ ar[i] = from[i];
42
+ }
43
+ }
44
+ return to.concat(ar || Array.prototype.slice.call(from));
45
+ };
46
+ Object.defineProperty(exports, "__esModule", { value: true });
47
+ exports.useColumns = void 0;
48
+ var react_1 = __importStar(require("react"));
49
+ var react_data_grid_1 = require("react-data-grid");
50
+ var useColumns = function (props, reload) {
51
+ var onChangeSelectedRows = props.onChangeSelectedRows, schema = props.schema, hiddenColumns = props.hiddenColumns, defaultConfig = props.defaultConfig, ui = props.ui, ActionCell = props.ActionCell, onOpen = props.onOpen, onEdit = props.onEdit, getOpenUrl = props.getOpenUrl, getEditUrl = props.getEditUrl, onRemove = props.onRemove, actionCellWidth = props.actionCellWidth;
52
+ var rdgActionColumn = (0, react_1.useMemo)(function () {
53
+ return ActionCell || onOpen || onEdit || getOpenUrl || getEditUrl || onRemove
54
+ ? {
55
+ key: "__action_column",
56
+ name: "",
57
+ resizable: false,
58
+ headerCellClass: "rdg-action-cell",
59
+ cellClass: "action rdg-action-cell",
60
+ width: ActionCell
61
+ ? actionCellWidth
62
+ : [onRemove, onEdit !== null && onEdit !== void 0 ? onEdit : getEditUrl, onOpen !== null && onOpen !== void 0 ? onOpen : getOpenUrl].filter(function (i) { return i; }).length * 36 + 8 * 2,
63
+ formatter: function (p) {
64
+ return (react_1.default.createElement(ui.ActionCellWrapper, null,
65
+ react_1.default.createElement(ui.ActionCell, { row: p.row, reload: reload, onRemove: onRemove, onEdit: onEdit, getEditUrl: getEditUrl, onOpen: onOpen, getOpenUrl: getOpenUrl })));
66
+ },
67
+ }
68
+ : null;
69
+ }, [ActionCell, actionCellWidth, getEditUrl, getOpenUrl, onEdit, onOpen, onRemove, reload, ui]);
70
+ var rdgColumns = (0, react_1.useMemo)(function () {
71
+ return schema.columns
72
+ .filter(function (c) { return !(hiddenColumns === null || hiddenColumns === void 0 ? void 0 : hiddenColumns.includes(c.name)); })
73
+ .map(function (c) {
74
+ var _a, _b;
75
+ return ({
76
+ key: c.name,
77
+ name: c.label,
78
+ headerCellClass: c.type,
79
+ resizable: true,
80
+ sortable: c.sort,
81
+ width: (_a = c.width) !== null && _a !== void 0 ? _a : (_b = defaultConfig === null || defaultConfig === void 0 ? void 0 : defaultConfig.columns[c.name]) === null || _b === void 0 ? void 0 : _b.width,
82
+ minWidth: c.minWidth,
83
+ maxWidth: c.maxWidth,
84
+ formatter: function (p) {
85
+ return (react_1.default.createElement(ui.BodyCell, { column: {
86
+ name: p.column.key,
87
+ label: p.column.name,
88
+ sort: p.column.sortable,
89
+ type: p.column.headerCellClass, //TODO
90
+ }, reload: reload, row: p.row }));
91
+ },
92
+ });
93
+ });
94
+ }, [defaultConfig === null || defaultConfig === void 0 ? void 0 : defaultConfig.columns, hiddenColumns, reload, schema.columns, ui]);
95
+ return (0, react_1.useMemo)(function () {
96
+ return __spreadArray(__spreadArray([onChangeSelectedRows ? react_data_grid_1.SelectColumn : null], __read(rdgColumns), false), [rdgActionColumn], false).filter(function (c) { return c !== null; });
97
+ }, [onChangeSelectedRows, rdgActionColumn, rdgColumns]);
98
+ };
99
+ exports.useColumns = useColumns;
100
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlQ29sdW1ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy91c2VDb2x1bW5zLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDZDQUF1QztBQUN2QyxtREFBdUQ7QUFHaEQsSUFBTSxVQUFVLEdBQUcsVUFBQyxLQUE4QixFQUFFLE1BQTJCO0lBRTlFLElBQUEsb0JBQW9CLEdBWXBCLEtBQUsscUJBWmUsRUFDcEIsTUFBTSxHQVdOLEtBQUssT0FYQyxFQUNOLGFBQWEsR0FVYixLQUFLLGNBVlEsRUFDYixhQUFhLEdBU2IsS0FBSyxjQVRRLEVBQ2IsRUFBRSxHQVFGLEtBQUssR0FSSCxFQUNGLFVBQVUsR0FPVixLQUFLLFdBUEssRUFDVixNQUFNLEdBTU4sS0FBSyxPQU5DLEVBQ04sTUFBTSxHQUtOLEtBQUssT0FMQyxFQUNOLFVBQVUsR0FJVixLQUFLLFdBSkssRUFDVixVQUFVLEdBR1YsS0FBSyxXQUhLLEVBQ1YsUUFBUSxHQUVSLEtBQUssU0FGRyxFQUNSLGVBQWUsR0FDZixLQUFLLGdCQURVLENBQ1Q7SUFFVixJQUFNLGVBQWUsR0FBdUIsSUFBQSxlQUFPLEVBQUM7UUFDaEQsT0FBTyxVQUFVLElBQUksTUFBTSxJQUFJLE1BQU0sSUFBSSxVQUFVLElBQUksVUFBVSxJQUFJLFFBQVE7WUFDekUsQ0FBQyxDQUFDO2dCQUNJLEdBQUcsRUFBRSxpQkFBaUI7Z0JBQ3RCLElBQUksRUFBRSxFQUFFO2dCQUNSLFNBQVMsRUFBRSxLQUFLO2dCQUNoQixlQUFlLEVBQUUsaUJBQWlCO2dCQUNsQyxTQUFTLEVBQUUsd0JBQXdCO2dCQUNuQyxLQUFLLEVBQUUsVUFBVTtvQkFDYixDQUFDLENBQUMsZUFBZTtvQkFDakIsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLE1BQU0sYUFBTixNQUFNLGNBQU4sTUFBTSxHQUFJLFVBQVUsRUFBRSxNQUFNLGFBQU4s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
@@ -1,4 +1,4 @@
1
- import { DataGridState, Request, SortDirection } from "../types";
1
+ import { DataGridState, Request, SortDirection } from "./types";
2
2
  export declare function decodeFilter(filterString: string): null | Request;
3
3
  export declare function encodeFilter(request: Request): string;
4
4
  export declare function createRequest(state: DataGridState, defaultSort: string, defaultDir: SortDirection): Request;
package/utils.js ADDED
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createRequest = exports.encodeFilter = exports.decodeFilter = void 0;
4
+ function decodeFilter(filterString) {
5
+ try {
6
+ var filter = JSON.parse(decodeURIComponent(escape(atob(filterString))));
7
+ return {
8
+ f: filter.f || [],
9
+ perPage: filter.perPage || 10,
10
+ page: filter.page || 0,
11
+ dir: filter.dir || "asc",
12
+ sort: filter.sort || "id",
13
+ };
14
+ }
15
+ catch (e) {
16
+ return null;
17
+ }
18
+ }
19
+ exports.decodeFilter = decodeFilter;
20
+ function encodeFilter(request) {
21
+ return btoa(unescape(encodeURIComponent(JSON.stringify(request))));
22
+ }
23
+ exports.encodeFilter = encodeFilter;
24
+ function createRequest(state, defaultSort, defaultDir) {
25
+ var _a, _b;
26
+ return {
27
+ sort: (_a = state.request.sort) !== null && _a !== void 0 ? _a : defaultSort,
28
+ dir: (_b = state.request.dir) !== null && _b !== void 0 ? _b : defaultDir,
29
+ perPage: state.request.perPage,
30
+ page: state.request.page,
31
+ f: state.request.f.filter(function (f) { return !!f.value; }),
32
+ search: state.request.search,
33
+ tab: state.request.tab,
34
+ };
35
+ }
36
+ exports.createRequest = createRequest;
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBRUEsU0FBZ0IsWUFBWSxDQUFDLFlBQW9CO0lBQzdDLElBQUk7UUFDQSxJQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFMUUsT0FBTztZQUNILENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQyxJQUFJLEVBQUU7WUFDakIsT0FBTyxFQUFFLE1BQU0sQ0FBQyxPQUFPLElBQUksRUFBRTtZQUM3QixJQUFJLEVBQUUsTUFBTSxDQUFDLElBQUksSUFBSSxDQUFDO1lBQ3RCLEdBQUcsRUFBRSxNQUFNLENBQUMsR0FBRyxJQUFJLEtBQUs7WUFDeEIsSUFBSSxFQUFFLE1BQU0sQ0FBQyxJQUFJLElBQUksSUFBSTtTQUM1QixDQUFDO0tBQ0w7SUFBQyxPQUFPLENBQUMsRUFBRTtRQUNSLE9BQU8sSUFBSSxDQUFDO0tBQ2Y7QUFDTCxDQUFDO0FBZEQsb0NBY0M7QUFFRCxTQUFnQixZQUFZLENBQUMsT0FBZ0I7SUFDekMsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDdkUsQ0FBQztBQUZELG9DQUVDO0FBRUQsU0FBZ0IsYUFBYSxDQUFDLEtBQW9CLEVBQUUsV0FBbUIsRUFBRSxVQUF5Qjs7SUFDOUYsT0FBTztRQUNILElBQUksRUFBRSxNQUFBLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxtQ0FBSSxXQUFXO1FBQ3ZDLEdBQUcsRUFBRSxNQUFBLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxtQ0FBSSxVQUFVO1FBQ3BDLE9BQU8sRUFBRSxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQU87UUFDOUIsSUFBSSxFQUFFLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSTtRQUN4QixDQUFDLEVBQUUsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFVBQUEsQ0FBQyxJQUFJLE9BQUEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQVQsQ0FBUyxDQUFDO1FBQ3pDLE1BQU0sRUFBRSxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU07UUFDNUIsR0FBRyxFQUFFLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRztLQUN6QixDQUFDO0FBQ04sQ0FBQztBQVZELHNDQVVDIn0=