@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
package/README.md CHANGED
@@ -4,6 +4,82 @@
4
4
  [![quality](https://img.shields.io/npms-io/quality-score/@uxf/data-grid)](https://www.npmjs.com/package/@uxf/data-grid)
5
5
  [![license](https://img.shields.io/npm/l/@uxf/data-grid)](https://www.npmjs.com/package/@uxf/data-grid)
6
6
 
7
+ ## Instalace balíčku
8
+
9
+ ```shell
10
+ yarn add @uxf/data-grid
11
+ ```
12
+
13
+ ### DataGrid s vlastním stylováním
14
+
15
+ ```tsx
16
+ import { DataGrid, UIComponents } from "@uxf/data-grid";
17
+
18
+ const UI: UIComponents<any, any> = {
19
+ ActionCell: TODO,
20
+ ActionCellWrapper: TODO,
21
+ BodyCell: TODO,
22
+ NoRowsFallback: TODO,
23
+ LinearProgress: TODO,
24
+ ToolbarContainer: TODO,
25
+ Container: TODO,
26
+ FilterInput: TODO,
27
+ FilterListItem: TODO,
28
+ FilterList: TODO,
29
+ Pagination: TODO,
30
+ SelectRowCheckbox: TODO,
31
+ SelectedRowsToolbar: TODO,
32
+ }
33
+
34
+ const Page: React.FC = () => {
35
+ return (
36
+ <DataGrid
37
+ schema={schema}
38
+ loader={loader}
39
+ ui={UI}/>
40
+ );
41
+ }
42
+ ```
43
+
44
+ ### DataGrid na TailwindUI
45
+
46
+ Do souboru `tailwind.config.js` přidat následující řádky
47
+ ```js
48
+ /** @type {import('tailwindcss').Config} */
49
+ module.exports = {
50
+ content: [
51
+ "./node_modules/@uxf/data-grid/tailwindui/**/*.tsx" // přidat
52
+ ],
53
+ theme: {
54
+ extend: {
55
+ colors: {
56
+ dataGridPrimary: "#140939", // přidat
57
+ dataGridSecondary: "#FF4F06", // přidat
58
+ },
59
+ },
60
+ },
61
+ plugins: [
62
+ require("@tailwindcss/forms")({ strategy: "class" }) // přidat
63
+ ],
64
+ };
65
+ ```
66
+
67
+ do souboru `_app.tsx` přidat import
68
+
69
+ ```tsx
70
+ import "@uxf/data-grid/tailwindui/styles.css";
71
+ ```
72
+
73
+ Použití DataGridu
74
+
75
+ ```tsx
76
+ import { DataGrid } from "@uxf/data-grid/tailwindui";
77
+
78
+ const Page: React.FC = () => {
79
+ return <DataGrid schema={schema} loader={loader}/>;
80
+ }
81
+ ```
82
+
7
83
  ## Typescript
8
84
 
9
85
  ```tsx
@@ -33,6 +109,10 @@ const schema: Schema<GridType> = {
33
109
  { name: "id", type: "number", label: "Id" },
34
110
  { name: "name", type: "text", label: "Jméno" },
35
111
  ],
112
+ tabs: [
113
+ { name: "all", label: "All countries" },
114
+ { name: "eu", label: "EU countries"},
115
+ ],
36
116
  dir: "asc",
37
117
  sort: "id",
38
118
  perPage: 10,
@@ -42,105 +122,36 @@ const schema: Schema<GridType> = {
42
122
  <DataGrid<GridType> schema={schema}/>
43
123
  ```
44
124
 
45
- ## Props
46
-
47
- #### getOpenUrl
48
- Return value: null or undefined hides button
49
- ```tsx
50
- getOpenUrl: (row: T) => string | null | undefined;
51
- ```
52
-
53
- #### getEditUrl
54
- Return value: null or undefined hides button
55
- ```tsx
56
- getOpenUrl: (row: T) => string | null | undefined;
57
- ```
58
-
59
- #### rowClass
60
- ```tsx
61
- rowClass: (row: T) => "primary" | "secondary" | "success" | "warning" | "error" | string | null;
62
- ```
63
-
64
- #### ToolbarContent
65
- ```tsx
66
- <DataGrid
67
- ToolbarContent={({ onFilter, filtersData }) => (
68
- <Checkbox
69
- label="Boolean filter in toolbar"
70
- checked={filtersData.find(f => f.name === "neighbors")?.value}
71
- onChange={e => onFilter({ name: "neighbors", value: e.target.checked })}
72
- />
73
- )}
74
- />
75
- ```
125
+ ## Seznam props
126
+
127
+ | Název | Typ | Popis |
128
+ |--------------------------------|-----------------------------------------|-------|
129
+ | schema (required) | `Schema` | |
130
+ | loader (required) | `Loader` | |
131
+ | ui (required in core DataGrid) | `UIComponents` | |
132
+ | gridName | `string` | |
133
+ | title | `string` | |
134
+ | initialState | `Request` or `string` | |
135
+ | keyExtractor | `KeyExtractor` | |
136
+ | noBorder | `boolean` | TODO |
137
+ | rowHeight | `number` | TODO |
138
+ | headerRowHeight | `number` | TODO |
139
+ | defaultConfig | `Config` | |
140
+ | rowClass | | TODO |
141
+ | toolbarPlugins | `ToolbarPlugin[]` | |
142
+ | **Sloupec akcí** | | |
143
+ | onOpen | `(row: R) => void` | |
144
+ | getOpenUrl | `(row: R) => string , null , undefined` | |
145
+ | onEdit | `(row: R) => void` | |
146
+ | getEditUrl | `(row: R) => string , null , undefined` | |
147
+ | onRemove | `(row: R) => void` | |
148
+ | **Skryté sloupce** | | |
149
+ | hiddenColumns | `string[]` | |
150
+ | onChangeHiddenColumns | `ChangeHiddenColumnsHandler` | |
151
+ | **Výběr řádků** | | |
152
+ | selectedRows | `Set<number>` | |
153
+ | onChangeSelectedRows | `(selectedRows: Set<number>]) => void` | |
154
+ | **Export** | | |
155
+ | onCsvDownload | `CsvDownloadHandler` | |
76
156
 
77
157
 
78
- ## Example usage ##
79
-
80
- ```tsx
81
- // prepare data
82
- export interface Country {
83
- code: string;
84
- name: string;
85
- }
86
-
87
- export const countries: Country[] = [
88
- { code: "AT", name: "Austria" },
89
- { code: "CZ", name: "Czech Republic" },
90
- { code: "DE", name: "Germany" },
91
- { code: "GR", name: "Greece" },
92
- { code: "HU", name: "Hungary" },
93
- { code: "IT", name: "Italy" },
94
- { code: "MT", name: "Malta" },
95
- { code: "MC", name: "Monaco" },
96
- { code: "NL", name: "Netherlands" },
97
- { code: "NO", name: "Norway" },
98
- { code: "PL", name: "Poland" },
99
- { code: "PT", name: "Portugal" },
100
- ];
101
-
102
- export const App: React.FC = () => {
103
- const [hiddenColumns, setHiddenColumns] = useState<string[]>([]);
104
- const [selectedRows, setSelectedRows] = useState<Country[]>([]);
105
-
106
- // create config
107
- const config = DataGridConfigurator.create()
108
- .addColumn({ name: "code", label: "Code" })
109
- .addColumn({ name: "name", label: "Name", sort: true })
110
- .addFilter({
111
- name: "code",
112
- label: "Code",
113
- type: "select",
114
- options: countries.map(c => ({ label: c.name, value: c.code })),
115
- })
116
- .addFilter({ name: "name", label: "Name", type: "text" })
117
- .getConfig();
118
-
119
- // create loader
120
- const loader: Loader = async (_, { dir, page = 1, perPage = 10 }) => {
121
- const result = countries.sort((a, b) =>
122
- dir === "asc" ? a.name.localeCompare(b.name) : b.name.localeCompare(a.name),
123
- );
124
-
125
- return {
126
- count: result.length,
127
- totalCount: countries.length,
128
- result: result.slice(page * perPage, page * perPage + perPage),
129
- };
130
- };
131
-
132
- return (
133
- <DataGrid<Country>
134
- {...config}
135
- gridName="test"
136
- title="Test"
137
- loader={loader}
138
- onChangeHiddenColumns={setHiddenColumns}
139
- hiddenColumns={hiddenColumns}
140
- selectableRows="multiple"
141
- onChangeSelectedRows={setSelectedRows}
142
- selectedRows={selectedRows}
143
- />
144
- );
145
- };
146
- ```
package/index.d.ts CHANGED
@@ -1,8 +1,3 @@
1
1
  export * from "./DataGrid";
2
- export * from "./components/ActionCellBase";
3
- export * from "./components/BodyCellBase";
4
- export * from "./components/BodyCellWrapper";
5
- export * from "./components/FilterInputBase";
6
- export * from "./components/FilterListItemBase";
7
2
  export * from "./types";
8
- export { decodeFilter, encodeFilter } from "./utils/utils";
3
+ export { decodeFilter, encodeFilter } from "./utils";
package/index.js CHANGED
@@ -12,13 +12,8 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
12
12
  Object.defineProperty(exports, "__esModule", { value: true });
13
13
  exports.encodeFilter = exports.decodeFilter = void 0;
14
14
  __exportStar(require("./DataGrid"), exports);
15
- __exportStar(require("./components/ActionCellBase"), exports);
16
- __exportStar(require("./components/BodyCellBase"), exports);
17
- __exportStar(require("./components/BodyCellWrapper"), exports);
18
- __exportStar(require("./components/FilterInputBase"), exports);
19
- __exportStar(require("./components/FilterListItemBase"), exports);
20
15
  __exportStar(require("./types"), exports);
21
- var utils_1 = require("./utils/utils");
16
+ var utils_1 = require("./utils");
22
17
  Object.defineProperty(exports, "decodeFilter", { enumerable: true, get: function () { return utils_1.decodeFilter; } });
23
18
  Object.defineProperty(exports, "encodeFilter", { enumerable: true, get: function () { return utils_1.encodeFilter; } });
24
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7OztBQUFBLDZDQUEyQjtBQUMzQiw4REFBNEM7QUFDNUMsNERBQTBDO0FBQzFDLCtEQUE2QztBQUM3QywrREFBNkM7QUFDN0Msa0VBQWdEO0FBQ2hELDBDQUF3QjtBQUV4Qix1Q0FBMkQ7QUFBbEQscUdBQUEsWUFBWSxPQUFBO0FBQUUscUdBQUEsWUFBWSxPQUFBIn0=
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7OztBQUFBLDZDQUEyQjtBQUMzQiwwQ0FBd0I7QUFFeEIsaUNBQXFEO0FBQTVDLHFHQUFBLFlBQVksT0FBQTtBQUFFLHFHQUFBLFlBQVksT0FBQSJ9
package/package.json CHANGED
@@ -1,11 +1,10 @@
1
1
  {
2
2
  "name": "@uxf/data-grid",
3
- "version": "3.2.0",
3
+ "version": "4.0.0-beta.11",
4
4
  "description": "Redux DataGrid",
5
5
  "homepage": "https://gitlab.com/uxf-npm/data-grid#readme",
6
6
  "main": "index.js",
7
7
  "typings": "index.d.ts",
8
- "module": "index.js",
9
8
  "publishConfig": {
10
9
  "access": "public"
11
10
  },
@@ -33,22 +32,15 @@
33
32
  "node": ">=8.9"
34
33
  },
35
34
  "peerDependencies": {
36
- "@emotion/react": "^11.4.1",
37
- "@emotion/styled": "^11.3.0",
38
- "@mui/icons-material": "^5.0.0-rc.1",
39
- "@mui/material": "^5.0.0-rc.1",
40
35
  "react": "^17.0.2",
41
36
  "react-dom": "^17.0.2"
42
37
  },
43
38
  "dependencies": {
44
39
  "polished": "^4.1.3",
45
- "react-data-grid": "^7.0.0-beta.5"
40
+ "react-data-grid": "^7.0.0-beta.13"
46
41
  },
47
42
  "devDependencies": {
48
- "@emotion/react": "^11.4.1",
49
- "@emotion/styled": "^11.3.0",
50
- "@mui/icons-material": "^5.0.0",
51
- "@mui/material": "^5.0.0",
43
+ "@tailwindcss/forms": "^0.5.2",
52
44
  "@types/jest": "^26.0.19",
53
45
  "@types/react": "^17.0.22",
54
46
  "@types/react-dom": "^17.0.0",
@@ -62,11 +54,14 @@
62
54
  "eslint-plugin-jsx-a11y": "^6.5.1",
63
55
  "eslint-plugin-react": "^7.28.0",
64
56
  "jest": "^26.6.3",
65
- "parcel-bundler": "^1.12.5",
57
+ "parcel": "^2.0.0-nightly.1125",
58
+ "postcss": "^8.4.14",
66
59
  "prettier": "^1.18.2",
60
+ "process": "^0.11.10",
67
61
  "react": "^17.0.2",
68
62
  "react-dom": "^17.0.2",
69
63
  "react-test-renderer": "^17.0.1",
64
+ "tailwindcss": "^3.1.3",
70
65
  "ts-jest": "^26.4.4",
71
66
  "ts-loader": "^6.2.0",
72
67
  "typescript": "^4.1.3"
@@ -35,5 +35,9 @@ export declare const changePerPage: (perPage: number) => {
35
35
  };
36
36
  export declare const search: (term: string) => {
37
37
  type: string;
38
- fullText: string;
38
+ search: string;
39
+ };
40
+ export declare const changeTab: (tabName: string) => {
41
+ type: string;
42
+ name: string;
39
43
  };
package/store/actions.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.search = exports.changePerPage = exports.filterReset = exports.filter = exports.changePage = exports.sortClear = exports.sort = exports.reloadFailed = exports.reloadDone = exports.reload = void 0;
3
+ exports.changeTab = exports.search = exports.changePerPage = exports.filterReset = exports.filter = exports.changePage = exports.sortClear = exports.sort = exports.reloadFailed = exports.reloadDone = exports.reload = void 0;
4
4
  var reload = function () { return ({ type: "RELOAD" }); };
5
5
  exports.reload = reload;
6
6
  var reloadDone = function (response) { return ({
@@ -39,7 +39,12 @@ var changePerPage = function (perPage) { return ({
39
39
  exports.changePerPage = changePerPage;
40
40
  var search = function (term) { return ({
41
41
  type: "FULLTEXT",
42
- fullText: term,
42
+ search: term,
43
43
  }); };
44
44
  exports.search = search;
45
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zdG9yZS9hY3Rpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUVPLElBQU0sTUFBTSxHQUFHLGNBQU0sT0FBQSxDQUFDLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxDQUFDLEVBQXBCLENBQW9CLENBQUM7QUFBcEMsUUFBQSxNQUFNLFVBQThCO0FBRTFDLElBQU0sVUFBVSxHQUFHLFVBQUMsUUFBa0IsSUFBSyxPQUFBLENBQUM7SUFDL0MsSUFBSSxFQUFFLGFBQWE7SUFDbkIsUUFBUSxVQUFBO0NBQ1gsQ0FBQyxFQUhnRCxDQUdoRCxDQUFDO0FBSFUsUUFBQSxVQUFVLGNBR3BCO0FBRUksSUFBTSxZQUFZLEdBQUcsVUFBQyxLQUFVLElBQUssT0FBQSxDQUFDO0lBQ3pDLElBQUksRUFBRSxlQUFlO0lBQ3JCLEtBQUssT0FBQTtDQUNSLENBQUMsRUFIMEMsQ0FHMUMsQ0FBQztBQUhVLFFBQUEsWUFBWSxnQkFHdEI7QUFFSSxJQUFNLElBQUksR0FBRyxVQUFDLFVBQWtCLEVBQUUsU0FBd0IsSUFBSyxPQUFBLENBQUM7SUFDbkUsSUFBSSxFQUFFLE1BQU07SUFDWixVQUFVLFlBQUE7SUFDVixTQUFTLFdBQUE7Q0FDWixDQUFDLEVBSm9FLENBSXBFLENBQUM7QUFKVSxRQUFBLElBQUksUUFJZDtBQUVJLElBQU0sU0FBUyxHQUFHLGNBQU0sT0FBQSxDQUFDO0lBQzVCLElBQUksRUFBRSxZQUFZO0NBQ3JCLENBQUMsRUFGNkIsQ0FFN0IsQ0FBQztBQUZVLFFBQUEsU0FBUyxhQUVuQjtBQUVJLElBQU0sVUFBVSxHQUFHLFVBQUMsSUFBWSxJQUFLLE9BQUEsQ0FBQyxFQUFFLElBQUksRUFBRSxhQUFhLEVBQUUsSUFBSSxNQUFBLEVBQUUsQ0FBQyxFQUEvQixDQUErQixDQUFDO0FBQS9ELFFBQUEsVUFBVSxjQUFxRDtBQUVyRSxJQUFNLE1BQU0sR0FBRyxVQUFDLFdBQTBCLElBQUssT0FBQSxDQUFDO0lBQ25ELElBQUksRUFBRSxRQUFRO0lBQ2QsV0FBVyxhQUFBO0NBQ2QsQ0FBQyxFQUhvRCxDQUdwRCxDQUFDO0FBSFUsUUFBQSxNQUFNLFVBR2hCO0FBRUksSUFBTSxXQUFXLEdBQUcsY0FBTSxPQUFBLENBQUMsRUFBRSxJQUFJLEVBQUUsY0FBYyxFQUFFLENBQUMsRUFBMUIsQ0FBMEIsQ0FBQztBQUEvQyxRQUFBLFdBQVcsZUFBb0M7QUFFckQsSUFBTSxhQUFhLEdBQUcsVUFBQyxPQUFlLElBQUssT0FBQSxDQUFDO0lBQy9DLElBQUksRUFBRSxpQkFBaUI7SUFDdkIsT0FBTyxTQUFBO0NBQ1YsQ0FBQyxFQUhnRCxDQUdoRCxDQUFDO0FBSFUsUUFBQSxhQUFhLGlCQUd2QjtBQUVJLElBQU0sTUFBTSxHQUFHLFVBQUMsSUFBWSxJQUFLLE9BQUEsQ0FBQztJQUNyQyxJQUFJLEVBQUUsVUFBVTtJQUNoQixRQUFRLEVBQUUsSUFBSTtDQUNqQixDQUFDLEVBSHNDLENBR3RDLENBQUM7QUFIVSxRQUFBLE1BQU0sVUFHaEIifQ==
45
+ var changeTab = function (tabName) { return ({
46
+ type: "CHANGE_TAB",
47
+ name: tabName,
48
+ }); };
49
+ exports.changeTab = changeTab;
50
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zdG9yZS9hY3Rpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUVPLElBQU0sTUFBTSxHQUFHLGNBQU0sT0FBQSxDQUFDLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxDQUFDLEVBQXBCLENBQW9CLENBQUM7QUFBcEMsUUFBQSxNQUFNLFVBQThCO0FBRTFDLElBQU0sVUFBVSxHQUFHLFVBQUMsUUFBa0IsSUFBSyxPQUFBLENBQUM7SUFDL0MsSUFBSSxFQUFFLGFBQWE7SUFDbkIsUUFBUSxVQUFBO0NBQ1gsQ0FBQyxFQUhnRCxDQUdoRCxDQUFDO0FBSFUsUUFBQSxVQUFVLGNBR3BCO0FBRUksSUFBTSxZQUFZLEdBQUcsVUFBQyxLQUFVLElBQUssT0FBQSxDQUFDO0lBQ3pDLElBQUksRUFBRSxlQUFlO0lBQ3JCLEtBQUssT0FBQTtDQUNSLENBQUMsRUFIMEMsQ0FHMUMsQ0FBQztBQUhVLFFBQUEsWUFBWSxnQkFHdEI7QUFFSSxJQUFNLElBQUksR0FBRyxVQUFDLFVBQWtCLEVBQUUsU0FBd0IsSUFBSyxPQUFBLENBQUM7SUFDbkUsSUFBSSxFQUFFLE1BQU07SUFDWixVQUFVLFlBQUE7SUFDVixTQUFTLFdBQUE7Q0FDWixDQUFDLEVBSm9FLENBSXBFLENBQUM7QUFKVSxRQUFBLElBQUksUUFJZDtBQUVJLElBQU0sU0FBUyxHQUFHLGNBQU0sT0FBQSxDQUFDO0lBQzVCLElBQUksRUFBRSxZQUFZO0NBQ3JCLENBQUMsRUFGNkIsQ0FFN0IsQ0FBQztBQUZVLFFBQUEsU0FBUyxhQUVuQjtBQUVJLElBQU0sVUFBVSxHQUFHLFVBQUMsSUFBWSxJQUFLLE9BQUEsQ0FBQyxFQUFFLElBQUksRUFBRSxhQUFhLEVBQUUsSUFBSSxNQUFBLEVBQUUsQ0FBQyxFQUEvQixDQUErQixDQUFDO0FBQS9ELFFBQUEsVUFBVSxjQUFxRDtBQUVyRSxJQUFNLE1BQU0sR0FBRyxVQUFDLFdBQTBCLElBQUssT0FBQSxDQUFDO0lBQ25ELElBQUksRUFBRSxRQUFRO0lBQ2QsV0FBVyxhQUFBO0NBQ2QsQ0FBQyxFQUhvRCxDQUdwRCxDQUFDO0FBSFUsUUFBQSxNQUFNLFVBR2hCO0FBRUksSUFBTSxXQUFXLEdBQUcsY0FBTSxPQUFBLENBQUMsRUFBRSxJQUFJLEVBQUUsY0FBYyxFQUFFLENBQUMsRUFBMUIsQ0FBMEIsQ0FBQztBQUEvQyxRQUFBLFdBQVcsZUFBb0M7QUFFckQsSUFBTSxhQUFhLEdBQUcsVUFBQyxPQUFlLElBQUssT0FBQSxDQUFDO0lBQy9DLElBQUksRUFBRSxpQkFBaUI7SUFDdkIsT0FBTyxTQUFBO0NBQ1YsQ0FBQyxFQUhnRCxDQUdoRCxDQUFDO0FBSFUsUUFBQSxhQUFhLGlCQUd2QjtBQUVJLElBQU0sTUFBTSxHQUFHLFVBQUMsSUFBWSxJQUFLLE9BQUEsQ0FBQztJQUNyQyxJQUFJLEVBQUUsVUFBVTtJQUNoQixNQUFNLEVBQUUsSUFBSTtDQUNmLENBQUMsRUFIc0MsQ0FHdEMsQ0FBQztBQUhVLFFBQUEsTUFBTSxVQUdoQjtBQUVJLElBQU0sU0FBUyxHQUFHLFVBQUMsT0FBZSxJQUFLLE9BQUEsQ0FBQztJQUMzQyxJQUFJLEVBQUUsWUFBWTtJQUNsQixJQUFJLEVBQUUsT0FBTztDQUNoQixDQUFDLEVBSDRDLENBRzVDLENBQUM7QUFIVSxRQUFBLFNBQVMsYUFHbkIifQ==
@@ -2,3 +2,4 @@ import { Reducer } from "react";
2
2
  import { Schema, Request, DataGridState } from "../types";
3
3
  export declare const getInitialState: (schema: Schema<any>, init?: string | Request | undefined) => DataGridState;
4
4
  export declare const reducer: Reducer<DataGridState, any>;
5
+ export declare const debugReducer: Reducer<DataGridState, any>;
package/store/reducer.js CHANGED
@@ -36,21 +36,30 @@ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
36
36
  return to.concat(ar || Array.prototype.slice.call(from));
37
37
  };
38
38
  Object.defineProperty(exports, "__esModule", { value: true });
39
- exports.reducer = exports.getInitialState = void 0;
40
- var utils_1 = require("../utils/utils");
39
+ exports.debugReducer = exports.reducer = exports.getInitialState = void 0;
40
+ var utils_1 = require("../utils");
41
41
  var getInitialState = function (schema, init) {
42
- var _a, _b, _c, _d, _e, _f;
42
+ var _a, _b, _c, _d, _e, _f, _g, _h;
43
43
  var initialState = init === undefined ? {} : typeof init === "string" ? (_a = (0, utils_1.decodeFilter)(init)) !== null && _a !== void 0 ? _a : {} : init;
44
+ var tabsCount = (_c = (_b = schema.tabs) === null || _b === void 0 ? void 0 : _b.length) !== null && _c !== void 0 ? _c : 0;
44
45
  return {
45
- f: (_b = initialState.f) !== null && _b !== void 0 ? _b : [],
46
- page: (_c = initialState.page) !== null && _c !== void 0 ? _c : 0,
47
- dir: (_d = initialState.dir) !== null && _d !== void 0 ? _d : schema.dir,
48
- sort: (_e = initialState.sort) !== null && _e !== void 0 ? _e : schema.sort,
49
- perPage: (_f = initialState.perPage) !== null && _f !== void 0 ? _f : schema.perPage,
46
+ request: {
47
+ f: (_d = initialState.f) !== null && _d !== void 0 ? _d : [],
48
+ page: (_e = initialState.page) !== null && _e !== void 0 ? _e : 0,
49
+ dir: (_f = initialState.dir) !== null && _f !== void 0 ? _f : schema.dir,
50
+ sort: (_g = initialState.sort) !== null && _g !== void 0 ? _g : schema.sort,
51
+ perPage: (_h = initialState.perPage) !== null && _h !== void 0 ? _h : schema.perPage,
52
+ tab: tabsCount > 0 ? schema.tabs[0].name : null,
53
+ search: "",
54
+ },
55
+ tabRequests: {},
50
56
  };
51
57
  };
52
58
  exports.getInitialState = getInitialState;
59
+ // eslint-disable-next-line complexity
53
60
  var reducer = function (state, action) {
61
+ var _a;
62
+ var _b, _c, _d, _e, _f, _g, _h, _j;
54
63
  switch (action.type) {
55
64
  case "RELOAD":
56
65
  return __assign(__assign({}, state), { loading: true });
@@ -59,23 +68,35 @@ var reducer = function (state, action) {
59
68
  case "RELOAD_FAILED":
60
69
  return __assign(__assign({}, state), { loading: false, error: action.error });
61
70
  case "CHANGE_PAGE":
62
- return __assign(__assign({}, state), { page: action.page });
71
+ return __assign(__assign({}, state), { request: __assign(__assign({}, state.request), { page: action.page }) });
63
72
  case "CHANGE_PER_PAGE":
64
- return __assign(__assign({}, state), { perPage: action.perPage });
73
+ return __assign(__assign({}, state), { request: __assign(__assign({}, state.request), { perPage: action.perPage }) });
65
74
  case "FILTER":
66
75
  // eslint-disable-next-line no-case-declarations
67
76
  var filterValue_1 = action.filterValue;
68
- return __assign(__assign({}, state), { page: 0, f: state.f.find(function (f) { return f.name === filterValue_1.name; })
69
- ? state.f.map(function (f) { return (f.name === filterValue_1.name ? filterValue_1 : f); })
70
- : __spreadArray(__spreadArray([], __read(state.f), false), [filterValue_1], false) });
77
+ return __assign(__assign({}, state), { request: __assign(__assign({}, state.request), { page: 0, f: state.request.f.find(function (f) { return f.name === filterValue_1.name; })
78
+ ? state.request.f.map(function (f) { return (f.name === filterValue_1.name ? filterValue_1 : f); })
79
+ : __spreadArray(__spreadArray([], __read(state.request.f), false), [filterValue_1], false) }) });
71
80
  case "FILTER_RESET":
72
- return __assign(__assign({}, state), { page: 0, f: [] });
81
+ return __assign(__assign({}, state), { request: __assign(__assign({}, state.request), { page: 0, f: [] }) });
73
82
  case "SORT":
74
- return __assign(__assign({}, state), { sort: action.columnName, dir: action.direction });
83
+ return __assign(__assign({}, state), { request: __assign(__assign({}, state.request), { sort: action.columnName, dir: action.direction }) });
75
84
  case "SORT_CLEAR":
76
- return __assign(__assign({}, state), { sort: null, dir: null });
85
+ return __assign(__assign({}, state), { request: __assign(__assign({}, state.request), { sort: null, dir: null }) });
77
86
  case "FULLTEXT":
78
- return __assign(__assign({}, state), { fullText: action.fullText, page: 0 });
87
+ return __assign(__assign({}, state), { request: __assign(__assign({}, state.request), { search: action.search, page: 0 }) });
88
+ case "CHANGE_TAB":
89
+ // eslint-disable-next-line no-case-declarations
90
+ var tabHistory = (_b = state.tabRequests[action.name]) !== null && _b !== void 0 ? _b : {};
91
+ return __assign(__assign({}, state), { request: {
92
+ f: (_c = tabHistory.f) !== null && _c !== void 0 ? _c : [],
93
+ search: (_d = tabHistory.search) !== null && _d !== void 0 ? _d : "",
94
+ page: (_e = tabHistory.page) !== null && _e !== void 0 ? _e : 0,
95
+ perPage: (_f = tabHistory.perPage) !== null && _f !== void 0 ? _f : state.request.perPage,
96
+ dir: (_g = tabHistory.dir) !== null && _g !== void 0 ? _g : state.request.dir,
97
+ sort: (_h = tabHistory.sort) !== null && _h !== void 0 ? _h : state.request.sort,
98
+ tab: action.name,
99
+ }, tabRequests: __assign(__assign({}, state.tabRequests), (_a = {}, _a[(_j = state.request.tab) !== null && _j !== void 0 ? _j : "__DEFAULT_TAB__"] = state.request, _a)) });
79
100
  default:
80
101
  // eslint-disable-next-line no-console
81
102
  console.warn("Unknown datagrid action.", action);
@@ -83,4 +104,11 @@ var reducer = function (state, action) {
83
104
  }
84
105
  };
85
106
  exports.reducer = reducer;
86
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVkdWNlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zdG9yZS9yZWR1Y2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVBLHdDQUE4QztBQUV2QyxJQUFNLGVBQWUsR0FBRyxVQUFDLE1BQW1CLEVBQUUsSUFBdUI7O0lBQ3hFLElBQU0sWUFBWSxHQUFHLElBQUksS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxJQUFJLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxNQUFBLElBQUEsb0JBQVksRUFBQyxJQUFJLENBQUMsbUNBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDMUcsT0FBTztRQUNILENBQUMsRUFBRSxNQUFBLFlBQVksQ0FBQyxDQUFDLG1DQUFJLEVBQUU7UUFDdkIsSUFBSSxFQUFFLE1BQUEsWUFBWSxDQUFDLElBQUksbUNBQUksQ0FBQztRQUM1QixHQUFHLEVBQUUsTUFBQSxZQUFZLENBQUMsR0FBRyxtQ0FBSSxNQUFNLENBQUMsR0FBRztRQUNuQyxJQUFJLEVBQUUsTUFBQSxZQUFZLENBQUMsSUFBSSxtQ0FBSSxNQUFNLENBQUMsSUFBSTtRQUN0QyxPQUFPLEVBQUUsTUFBQSxZQUFZLENBQUMsT0FBTyxtQ0FBSSxNQUFNLENBQUMsT0FBTztLQUNsRCxDQUFDO0FBQ04sQ0FBQyxDQUFDO0FBVFcsUUFBQSxlQUFlLG1CQVMxQjtBQUVLLElBQU0sT0FBTyxHQUFnQyxVQUFDLEtBQUssRUFBRSxNQUFNO0lBQzlELFFBQVEsTUFBTSxDQUFDLElBQUksRUFBRTtRQUNqQixLQUFLLFFBQVE7WUFDVCw2QkFDTyxLQUFLLEtBQ1IsT0FBTyxFQUFFLElBQUksSUFDZjtRQUNOLEtBQUssYUFBYTtZQUNkLDZCQUNPLEtBQUssS0FDUixPQUFPLEVBQUUsS0FBSyxFQUNkLFFBQVEsRUFBRSxNQUFNLENBQUMsUUFBUSxJQUMzQjtRQUNOLEtBQUssZUFBZTtZQUNoQiw2QkFDTyxLQUFLLEtBQ1IsT0FBTyxFQUFFLEtBQUssRUFDZCxLQUFLLEVBQUUsTUFBTSxDQUFDLEtBQUssSUFDckI7UUFDTixLQUFLLGFBQWE7WUFDZCw2QkFDTyxLQUFLLEtBQ1IsSUFBSSxFQUFFLE1BQU0sQ0FBQyxJQUFJLElBQ25CO1FBQ04sS0FBSyxpQkFBaUI7WUFDbEIsNkJBQ08sS0FBSyxLQUNSLE9BQU8sRUFBRSxNQUFNLENBQUMsT0FBTyxJQUN6QjtRQUNOLEtBQUssUUFBUTtZQUNULGdEQUFnRDtZQUNoRCxJQUFNLGFBQVcsR0FBa0IsTUFBTSxDQUFDLFdBQVcsQ0FBQztZQUN0RCw2QkFDTyxLQUFLLEtBQ1IsSUFBSSxFQUFFLENBQUMsRUFDUCxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBQSxDQUFDLElBQUksT0FBQSxDQUFDLENBQUMsSUFBSSxLQUFLLGFBQVcsQ0FBQyxJQUFJLEVBQTNCLENBQTJCLENBQUM7b0JBQzdDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxVQUFBLENBQUMsSUFBSSxPQUFBLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxhQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxhQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUEvQyxDQUErQyxDQUFDO29CQUNuRSxDQUFDLHdDQUFLLEtBQUssQ0FBQyxDQUFDLFlBQUUsYUFBVyxTQUFDLElBQ2pDO1FBQ04sS0FBSyxjQUFjO1lBQ2YsNkJBQ08sS0FBSyxLQUNSLElBQUksRUFBRSxDQUFDLEVBQ1AsQ0FBQyxFQUFFLEVBQUUsSUFDUDtRQUNOLEtBQUssTUFBTTtZQUNQLDZCQUNPLEtBQUssS0FDUixJQUFJLEVBQUUsTUFBTSxDQUFDLFVBQVUsRUFDdkIsR0FBRyxFQUFFLE1BQU0sQ0FBQyxTQUFTLElBQ3ZCO1FBQ04sS0FBSyxZQUFZO1lBQ2IsNkJBQ08sS0FBSyxLQUNSLElBQUksRUFBRSxJQUFJLEVBQ1YsR0FBRyxFQUFFLElBQUksSUFDWDtRQUNOLEtBQUssVUFBVTtZQUNYLDZCQUNPLEtBQUssS0FDUixRQUFRLEVBQUUsTUFBTSxDQUFDLFFBQVEsRUFDekIsSUFBSSxFQUFFLENBQUMsSUFDVDtRQUNOO1lBQ0ksc0NBQXNDO1lBQ3RDLE9BQU8sQ0FBQyxJQUFJLENBQUMsMEJBQTBCLEVBQUUsTUFBTSxDQUFDLENBQUM7WUFDakQsT0FBTyxLQUFLLENBQUM7S0FDcEI7QUFDTCxDQUFDLENBQUM7QUFwRVcsUUFBQSxPQUFPLFdBb0VsQiJ9
107
+ var debugReducer = function (state, action) {
108
+ var newState = (0, exports.reducer)(state, action);
109
+ // eslint-disable-next-line no-console
110
+ console.log("" + action.type, { action: action, oldState: state, newState: newState });
111
+ return newState;
112
+ };
113
+ exports.debugReducer = debugReducer;
114
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVkdWNlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zdG9yZS9yZWR1Y2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVBLGtDQUF3QztBQUVqQyxJQUFNLGVBQWUsR0FBRyxVQUFDLE1BQW1CLEVBQUUsSUFBdUI7O0lBQ3hFLElBQU0sWUFBWSxHQUFHLElBQUksS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxJQUFJLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxNQUFBLElBQUEsb0JBQVksRUFBQyxJQUFJLENBQUMsbUNBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDMUcsSUFBTSxTQUFTLEdBQUcsTUFBQSxNQUFBLE1BQU0sQ0FBQyxJQUFJLDBDQUFFLE1BQU0sbUNBQUksQ0FBQyxDQUFDO0lBQzNDLE9BQU87UUFDSCxPQUFPLEVBQUU7WUFDTCxDQUFDLEVBQUUsTUFBQSxZQUFZLENBQUMsQ0FBQyxtQ0FBSSxFQUFFO1lBQ3ZCLElBQUksRUFBRSxNQUFBLFlBQVksQ0FBQyxJQUFJLG1DQUFJLENBQUM7WUFDNUIsR0FBRyxFQUFFLE1BQUEsWUFBWSxDQUFDLEdBQUcsbUNBQUksTUFBTSxDQUFDLEdBQUc7WUFDbkMsSUFBSSxFQUFFLE1BQUEsWUFBWSxDQUFDLElBQUksbUNBQUksTUFBTSxDQUFDLElBQUk7WUFDdEMsT0FBTyxFQUFFLE1BQUEsWUFBWSxDQUFDLE9BQU8sbUNBQUksTUFBTSxDQUFDLE9BQU87WUFDL0MsR0FBRyxFQUFFLFNBQVMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJO1lBQy9DLE1BQU0sRUFBRSxFQUFFO1NBQ2I7UUFDRCxXQUFXLEVBQUUsRUFBRTtLQUNsQixDQUFDO0FBQ04sQ0FBQyxDQUFDO0FBZlcsUUFBQSxlQUFlLG1CQWUxQjtBQUVGLHNDQUFzQztBQUMvQixJQUFNLE9BQU8sR0FBZ0MsVUFBQyxLQUFLLEVBQUUsTUFBTTs7O0lBQzlELFFBQVEsTUFBTSxDQUFDLElBQUksRUFBRTtRQUNqQixLQUFLLFFBQVE7WUFDVCw2QkFDTyxLQUFLLEtBQ1IsT0FBTyxFQUFFLElBQUksSUFDZjtRQUNOLEtBQUssYUFBYTtZQUNkLDZCQUNPLEtBQUssS0FDUixPQUFPLEVBQUUsS0FBSyxFQUNkLFFBQVEsRUFBRSxNQUFNLENBQUMsUUFBUSxJQUMzQjtRQUNOLEtBQUssZUFBZTtZQUNoQiw2QkFDTyxLQUFLLEtBQ1IsT0FBTyxFQUFFLEtBQUssRUFDZCxLQUFLLEVBQUUsTUFBTSxDQUFDLEtBQUssSUFDckI7UUFDTixLQUFLLGFBQWE7WUFDZCw2QkFDTyxLQUFLLEtBQ1IsT0FBTyx3QkFDQSxLQUFLLENBQUMsT0FBTyxLQUNoQixJQUFJLEVBQUUsTUFBTSxDQUFDLElBQUksT0FFdkI7UUFDTixLQUFLLGlCQUFpQjtZQUNsQiw2QkFDTyxLQUFLLEtBQ1IsT0FBTyx3QkFDQSxLQUFLLENBQUMsT0FBTyxLQUNoQixPQUFPLEVBQUUsTUFBTSxDQUFDLE9BQU8sT0FFN0I7UUFDTixLQUFLLFFBQVE7WUFDVCxnREFBZ0Q7WUFDaEQsSUFBTSxhQUFXLEdBQWtCLE1BQU0sQ0FBQyxXQUFXLENBQUM7WUFDdEQsNkJBQ08sS0FBSyxLQUNSLE9BQU8sd0JBQ0EsS0FBSyxDQUFDLE9BQU8sS0FDaEIsSUFBSSxFQUFFLENBQUMsRUFDUCxDQUFDLEVBQUUsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQUEsQ0FBQyxJQUFJLE9BQUEsQ0FBQyxDQUFDLElBQUksS0FBSyxhQUFXLENBQUMsSUFBSSxFQUEzQixDQUEyQixDQUFDO3dCQUNyRCxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLFVBQUEsQ0FBQyxJQUFJLE9BQUEsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLGFBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLGFBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQS9DLENBQStDLENBQUM7d0JBQzNFLENBQUMsd0NBQUssS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFlBQUUsYUFBVyxTQUFDLE9BRTdDO1FBQ04sS0FBSyxjQUFjO1lBQ2YsNkJBQ08sS0FBSyxLQUNSLE9BQU8sd0JBQ0EsS0FBSyxDQUFDLE9BQU8sS0FDaEIsSUFBSSxFQUFFLENBQUMsRUFDUCxDQUFDLEVBQUUsRUFBRSxPQUVYO1FBQ04sS0FBSyxNQUFNO1lBQ1AsNkJBQ08sS0FBSyxLQUNSLE9BQU8sd0JBQ0EsS0FBSyxDQUFDLE9BQU8sS0FDaEIsSUFBSSxFQUFFLE1BQU0sQ0FBQyxVQUFVLEVBQ3ZCLEdBQUcsRUFBRSxNQUFNLENBQUMsU0FBUyxPQUUzQjtRQUNOLEtBQUssWUFBWTtZQUNiLDZCQUNPLEtBQUssS0FDUixPQUFPLHdCQUNBLEtBQUssQ0FBQyxPQUFPLEtBQ2hCLElBQUksRUFBRSxJQUFJLEVBQ1YsR0FBRyxFQUFFLElBQUksT0FFZjtRQUNOLEtBQUssVUFBVTtZQUNYLDZCQUNPLEtBQUssS0FDUixPQUFPLHdCQUNBLEtBQUssQ0FBQyxPQUFPLEtBQ2hCLE1BQU0sRUFBRSxNQUFNLENBQUMsTUFBTSxFQUNyQixJQUFJLEVBQUUsQ0FBQyxPQUViO1FBQ04sS0FBSyxZQUFZO1lBQ2IsZ0RBQWdEO1lBQ2hELElBQU0sVUFBVSxHQUFHLE1BQUEsS0FBSyxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLG1DQUFJLEVBQUUsQ0FBQztZQUV4RCw2QkFDTyxLQUFLLEtBQ1IsT0FBTyxFQUFFO29CQUNMLENBQUMsRUFBRSxNQUFBLFVBQVUsQ0FBQyxDQUFDLG1DQUFJLEVBQUU7b0JBQ3JCLE1BQU0sRUFBRSxNQUFBLFVBQVUsQ0FBQyxNQUFNLG1DQUFJLEVBQUU7b0JBQy9CLElBQUksRUFBRSxNQUFBLFVBQVUsQ0FBQyxJQUFJLG1DQUFJLENBQUM7b0JBQzFCLE9BQU8sRUFBRSxNQUFBLFVBQVUsQ0FBQyxPQUFPLG1DQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBTztvQkFDcEQsR0FBRyxFQUFFLE1BQUEsVUFBVSxDQUFDLEdBQUcsbUNBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHO29CQUN4QyxJQUFJLEVBQUUsTUFBQSxVQUFVLENBQUMsSUFBSSxtQ0FBSSxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUk7b0JBQzNDLEdBQUcsRUFBRSxNQUFNLENBQUMsSUFBSTtpQkFDbkIsRUFDRCxXQUFXLHdCQUNKLEtBQUssQ0FBQyxXQUFXLGdCQUNuQixNQUFBLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxtQ0FBSSxpQkFBaUIsSUFBRyxLQUFLLENBQUMsT0FBTyxVQUU3RDtRQUNOO1lBQ0ksc0NBQXNDO1lBQ3RDLE9BQU8sQ0FBQyxJQUFJLENBQUMsMEJBQTBCLEVBQUUsTUFBTSxDQUFDLENBQUM7WUFDakQsT0FBTyxLQUFLLENBQUM7S0FDcEI7QUFDTCxDQUFDLENBQUM7QUE3R1csUUFBQSxPQUFPLFdBNkdsQjtBQUVLLElBQU0sWUFBWSxHQUFnQyxVQUFDLEtBQUssRUFBRSxNQUFNO0lBQ25FLElBQU0sUUFBUSxHQUFHLElBQUEsZUFBTyxFQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQztJQUV4QyxzQ0FBc0M7SUFDdEMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFHLE1BQU0sQ0FBQyxJQUFNLEVBQUUsRUFBRSxNQUFNLFFBQUEsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLFFBQVEsVUFBQSxFQUFFLENBQUMsQ0FBQztJQUVyRSxPQUFPLFFBQVEsQ0FBQztBQUNwQixDQUFDLENBQUM7QUFQVyxRQUFBLFlBQVksZ0JBT3ZCIn0=
@@ -0,0 +1,6 @@
1
+ import { BaseGridType, DataGridBaseProps, ToolbarPlugin, UIComponents } from "../types";
2
+ export declare type DataGridProps<GridType extends BaseGridType, R> = DataGridBaseProps<GridType, R> & {
3
+ ui?: Partial<UIComponents<GridType, R>>;
4
+ };
5
+ export declare const DEFAULT_TOOLBAR_PLUGINS: ToolbarPlugin[];
6
+ export declare const DataGrid: <GridType extends BaseGridType, R = any>(props: DataGridProps<GridType, R>) => JSX.Element;
@@ -0,0 +1,56 @@
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
14
+ if (k2 === undefined) k2 = k;
15
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
16
+ }) : (function(o, m, k, k2) {
17
+ if (k2 === undefined) k2 = k;
18
+ o[k2] = m[k];
19
+ }));
20
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
21
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
22
+ }) : function(o, v) {
23
+ o["default"] = v;
24
+ });
25
+ var __importStar = (this && this.__importStar) || function (mod) {
26
+ if (mod && mod.__esModule) return mod;
27
+ var result = {};
28
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
29
+ __setModuleDefault(result, mod);
30
+ return result;
31
+ };
32
+ Object.defineProperty(exports, "__esModule", { value: true });
33
+ exports.DataGrid = exports.DEFAULT_TOOLBAR_PLUGINS = void 0;
34
+ var DataGrid_1 = require("../DataGrid");
35
+ var react_1 = __importStar(require("react"));
36
+ var ui_1 = require("./ui");
37
+ var fulltext_plugin_1 = require("./toolbar-plugins/fulltext-plugin");
38
+ var filters_plugin_1 = require("./toolbar-plugins/filters-plugin");
39
+ var hidden_columns_plugin_1 = require("./toolbar-plugins/hidden-columns-plugin");
40
+ var csv_export_plugin_1 = require("./toolbar-plugins/csv-export-plugin");
41
+ var tabs_plugin_1 = require("./toolbar-plugins/tabs-plugin");
42
+ exports.DEFAULT_TOOLBAR_PLUGINS = [
43
+ tabs_plugin_1.TabsPlugin,
44
+ fulltext_plugin_1.FulltextPlugin,
45
+ filters_plugin_1.FiltersPlugin,
46
+ hidden_columns_plugin_1.HiddenColumnsPlugin,
47
+ csv_export_plugin_1.CsvExportPlugin,
48
+ ];
49
+ var DataGrid = function (props) {
50
+ var ui = (0, react_1.useMemo)(function () {
51
+ return __assign(__assign({}, ui_1.UI), props.ui);
52
+ }, [props.ui]);
53
+ return react_1.default.createElement(DataGrid_1.DataGrid, __assign({ toolbarPlugins: exports.DEFAULT_TOOLBAR_PLUGINS }, props, { ui: ui }));
54
+ };
55
+ exports.DataGrid = DataGrid;
56
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGF0YUdyaWQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdGFpbHdpbmR1aS9EYXRhR3JpZC50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQ0Esd0NBQXVEO0FBQ3ZELDZDQUF1QztBQUN2QywyQkFBMEI7QUFDMUIscUVBQW1FO0FBQ25FLG1FQUFpRTtBQUNqRSxpRkFBOEU7QUFDOUUseUVBQXNFO0FBQ3RFLDZEQUEyRDtBQU05QyxRQUFBLHVCQUF1QixHQUFvQjtJQUNwRCx3QkFBVTtJQUNWLGdDQUFjO0lBQ2QsOEJBQWE7SUFDYiwyQ0FBbUI7SUFDbkIsbUNBQWU7Q0FDbEIsQ0FBQztBQUVLLElBQU0sUUFBUSxHQUFHLFVBQXlDLEtBQWlDO0lBQzlGLElBQU0sRUFBRSxHQUE4QixJQUFBLGVBQU8sRUFBQztRQUMxQyw2QkFBYSxPQUFVLEdBQUssS0FBSyxDQUFDLEVBQUUsRUFBRztJQUMzQyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUNmLE9BQU8sOEJBQUMsbUJBQVksYUFBQyxjQUFjLEVBQUUsK0JBQXVCLElBQU0sS0FBSyxJQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksQ0FBQztBQUN4RixDQUFDLENBQUM7QUFMVyxRQUFBLFFBQVEsWUFLbkIifQ==
@@ -1,4 +1,4 @@
1
1
  import React from "react";
2
- import { ActionCellComponent } from "../types";
2
+ import { ActionCellComponent } from "../../types";
3
3
  export declare const ActionCellWrapper: React.NamedExoticComponent<object>;
4
4
  export declare const ActionCellBase: ActionCellComponent<any>;
@@ -0,0 +1,90 @@
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
+ Object.defineProperty(exports, "__esModule", { value: true });
22
+ exports.ActionCellBase = exports.ActionCellWrapper = void 0;
23
+ var open_1 = require("./icons/open");
24
+ var edit_1 = require("./icons/edit");
25
+ var trash_1 = require("./icons/trash");
26
+ var react_1 = __importStar(require("react"));
27
+ var circle_button_1 = require("./circle-button");
28
+ exports.ActionCellWrapper = (0, react_1.memo)(function (_a) {
29
+ var children = _a.children;
30
+ var innerRef = (0, react_1.useRef)(null);
31
+ (0, react_1.useEffect)(function () {
32
+ var _a;
33
+ var scrollLeft = 0;
34
+ var grid = null;
35
+ var node = innerRef.current;
36
+ if (!node) {
37
+ return;
38
+ }
39
+ var scrollHandler = function () {
40
+ grid === null || grid === void 0 ? void 0 : grid.scrollTo({ left: scrollLeft });
41
+ grid === null || grid === void 0 ? void 0 : grid.removeEventListener("scroll", scrollHandler);
42
+ };
43
+ var focusHandler = function () {
44
+ grid = node.closest(".rdg");
45
+ if (grid) {
46
+ scrollLeft = grid.scrollLeft;
47
+ grid.addEventListener("scroll", scrollHandler);
48
+ }
49
+ };
50
+ (_a = node.parentElement) === null || _a === void 0 ? void 0 : _a.addEventListener("focus", focusHandler, { capture: true });
51
+ return function () {
52
+ var _a;
53
+ grid === null || grid === void 0 ? void 0 : grid.removeEventListener("scroll", scrollHandler);
54
+ (_a = node.parentElement) === null || _a === void 0 ? void 0 : _a.removeEventListener("focus", focusHandler);
55
+ };
56
+ }, []);
57
+ return (react_1.default.createElement("div", { className: "flex align-center justify-center text-center w-full", ref: innerRef }, children));
58
+ });
59
+ exports.ActionCellWrapper.displayName = "ActionCellWrapper";
60
+ var ActionCellItem = (0, react_1.memo)(function (_a) {
61
+ var children = _a.children;
62
+ return (react_1.default.createElement("div", { className: "flex justify-center align-center text-center w-full" }, children));
63
+ });
64
+ ActionCellItem.displayName = "ActionCellItem";
65
+ var Button = function (props) {
66
+ var getUrl = props.getUrl, onClick = props.onClick, row = props.row, icon = props.icon, title = props.title;
67
+ if (getUrl) {
68
+ var href = getUrl(row);
69
+ if (!href) {
70
+ return null;
71
+ }
72
+ return (react_1.default.createElement(circle_button_1.CircleButton, { href: href, title: title }, icon));
73
+ }
74
+ if (onClick) {
75
+ return (react_1.default.createElement(circle_button_1.CircleButton, { title: title, onClick: function () { return onClick(row); } }, icon));
76
+ }
77
+ return null;
78
+ };
79
+ var ActionCellBase = function (props) {
80
+ var onOpen = props.onOpen, getOpenUrl = props.getOpenUrl, onEdit = props.onEdit, getEditUrl = props.getEditUrl, onRemove = props.onRemove, row = props.row;
81
+ if (!onOpen && !getOpenUrl && !onEdit && !getEditUrl && !onRemove) {
82
+ return null;
83
+ }
84
+ return (react_1.default.createElement(react_1.default.Fragment, null,
85
+ react_1.default.createElement(Button, { row: row, onClick: onRemove, getUrl: undefined, icon: react_1.default.createElement(trash_1.Trash, null), title: "Smazat" }),
86
+ react_1.default.createElement(Button, { row: row, onClick: onEdit, getUrl: getEditUrl, icon: react_1.default.createElement(edit_1.Edit, null), title: "Upravit" }),
87
+ react_1.default.createElement(Button, { row: row, onClick: onOpen, getUrl: getOpenUrl, icon: react_1.default.createElement(open_1.Open, null), title: "Detail" })));
88
+ };
89
+ exports.ActionCellBase = ActionCellBase;
90
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLWNlbGwtYmFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90YWlsd2luZHVpL2NvbXBvbmVudHMvYWN0aW9uLWNlbGwtYmFzZS50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLHFDQUFvQztBQUNwQyxxQ0FBb0M7QUFDcEMsdUNBQXNDO0FBQ3RDLDZDQUFrRTtBQUVsRSxpREFBK0M7QUFFbEMsUUFBQSxpQkFBaUIsR0FBRyxJQUFBLFlBQUksRUFBQyxVQUFDLEVBQVk7UUFBVixRQUFRLGNBQUE7SUFDN0MsSUFBTSxRQUFRLEdBQUcsSUFBQSxjQUFNLEVBQWlCLElBQUksQ0FBQyxDQUFDO0lBRTlDLElBQUEsaUJBQVMsRUFBQzs7UUFDTixJQUFJLFVBQVUsR0FBRyxDQUFDLENBQUM7UUFDbkIsSUFBSSxJQUFJLEdBQW1CLElBQUksQ0FBQztRQUVoQyxJQUFNLElBQUksR0FBRyxRQUFRLENBQUMsT0FBTyxDQUFDO1FBQzlCLElBQUksQ0FBQyxJQUFJLEVBQUU7WUFDUCxPQUFPO1NBQ1Y7UUFFRCxJQUFNLGFBQWEsR0FBRztZQUNsQixJQUFJLGFBQUosSUFBSSx1QkFBSixJQUFJLENBQUUsUUFBUSxDQUFDLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxDQUFDLENBQUM7WUFDckMsSUFBSSxhQUFKLElBQUksdUJBQUosSUFBSSxDQUFFLG1CQUFtQixDQUFDLFFBQVEsRUFBRSxhQUFhLENBQUMsQ0FBQztRQUN2RCxDQUFDLENBQUM7UUFFRixJQUFNLFlBQVksR0FBRztZQUNqQixJQUFJLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUM1QixJQUFJLElBQUksRUFBRTtnQkFDTixVQUFVLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQztnQkFDN0IsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsRUFBRSxhQUFhLENBQUMsQ0FBQzthQUNsRDtR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