@uxf/data-grid 10.0.7 → 11.0.0-beta.1

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 (203) hide show
  1. package/_store/reducer.d.ts +8 -0
  2. package/{store → _store}/reducer.js +33 -19
  3. package/_story-utils/data.d.ts +12 -0
  4. package/_story-utils/data.js +115 -0
  5. package/_story-utils/grid-type.d.ts +22 -0
  6. package/_story-utils/grid-type.js +2 -0
  7. package/_story-utils/loader.d.ts +2 -0
  8. package/_story-utils/loader.js +36 -0
  9. package/_story-utils/schema.d.ts +3 -0
  10. package/_story-utils/schema.js +53 -0
  11. package/{tailwindui/body-cell → body-cell}/body-cell-boolean.d.ts +1 -1
  12. package/{tailwindui/body-cell → body-cell}/body-cell-date.d.ts +1 -1
  13. package/{tailwindui/body-cell → body-cell}/body-cell-datetime.d.ts +1 -1
  14. package/{tailwindui/body-cell → body-cell}/body-cell-default.d.ts +1 -1
  15. package/{tailwindui/body-cell → body-cell}/body-cell-email.d.ts +1 -1
  16. package/{tailwindui/body-cell → body-cell}/body-cell-phone.d.ts +1 -1
  17. package/{tailwindui/body-cell → body-cell}/body-cell-to-many.d.ts +1 -1
  18. package/{tailwindui/body-cell → body-cell}/body-cell-to-one.d.ts +1 -1
  19. package/{tailwindui/body-cell → body-cell}/body-cell-url.d.ts +1 -1
  20. package/{tailwindui/body-cell → body-cell}/index.d.ts +1 -1
  21. package/data-grid.d.ts +1 -1
  22. package/data-grid.js +34 -120
  23. package/data-grid.stories.d.ts +0 -5
  24. package/data-grid.stories.js +14 -216
  25. package/export-button/export-button.d.ts +10 -0
  26. package/export-button/export-button.js +15 -0
  27. package/export-button/export-button.stories.d.ts +2 -0
  28. package/export-button/export-button.stories.js +18 -0
  29. package/export-button/index.d.ts +1 -0
  30. package/{tailwindui → export-button}/index.js +1 -3
  31. package/{tailwindui/filter-handler → filter-handler}/bool-filter.d.ts +1 -1
  32. package/{tailwindui/filter-handler → filter-handler}/boolean-filter.d.ts +1 -1
  33. package/filter-handler/index.d.ts +4 -0
  34. package/{tailwindui/filter-handler → filter-handler}/index.js +15 -0
  35. package/{tailwindui/filter-handler → filter-handler}/interval-filter.d.ts +1 -1
  36. package/{tailwindui/filter-handler → filter-handler}/interval-filter.js +2 -2
  37. package/{tailwindui/filter-handler → filter-handler}/select-filter.d.ts +1 -1
  38. package/{tailwindui/filter-handler → filter-handler}/text-filter.d.ts +1 -1
  39. package/filter-handler/types.d.ts +8 -0
  40. package/filter-handler/types.js +2 -0
  41. package/filter-list/filter-list.d.ts +11 -0
  42. package/{tailwindui/components → filter-list}/filter-list.js +7 -6
  43. package/filter-list/filter-list.stories.d.ts +2 -0
  44. package/filter-list/filter-list.stories.js +19 -0
  45. package/filter-list/index.d.ts +1 -0
  46. package/filter-list/index.js +17 -0
  47. package/filters/filters.d.ts +11 -0
  48. package/filters/filters.js +25 -0
  49. package/filters/filters.stories.d.ts +2 -0
  50. package/filters/filters.stories.js +19 -0
  51. package/filters/index.d.ts +1 -0
  52. package/filters/index.js +17 -0
  53. package/filters-button/filters-button.d.ts +11 -0
  54. package/{tailwindui/show.js → filters-button/filters-button.js} +15 -6
  55. package/filters-button/filters-button.stories.d.ts +2 -0
  56. package/filters-button/filters-button.stories.js +19 -0
  57. package/filters-button/index.d.ts +1 -0
  58. package/filters-button/index.js +17 -0
  59. package/fulltext-input/fulltext-input.d.ts +5 -0
  60. package/fulltext-input/fulltext-input.js +13 -0
  61. package/fulltext-input/fulltext-input.stories.d.ts +2 -0
  62. package/fulltext-input/fulltext-input.stories.js +18 -0
  63. package/fulltext-input/index.d.ts +1 -0
  64. package/fulltext-input/index.js +17 -0
  65. package/hidden-columns/hidden-columns.d.ts +8 -0
  66. package/hidden-columns/hidden-columns.js +17 -0
  67. package/hidden-columns/hidden-columns.stories.d.ts +2 -0
  68. package/hidden-columns/hidden-columns.stories.js +18 -0
  69. package/hidden-columns/index.d.ts +1 -0
  70. package/hidden-columns/index.js +17 -0
  71. package/hidden-columns-button/hidden-columns-button.d.ts +8 -0
  72. package/{tailwindui/data-grid.js → hidden-columns-button/hidden-columns-button.js} +14 -10
  73. package/hidden-columns-button/hidden-columns-button.stories.d.ts +2 -0
  74. package/hidden-columns-button/hidden-columns-button.stories.js +18 -0
  75. package/hidden-columns-button/index.d.ts +1 -0
  76. package/hidden-columns-button/index.js +17 -0
  77. package/linear-progress/index.d.ts +1 -0
  78. package/linear-progress/index.js +17 -0
  79. package/linear-progress/linear-progress.d.ts +5 -0
  80. package/{tailwindui/components → linear-progress}/linear-progress.js +4 -4
  81. package/package.json +1 -1
  82. package/pagination/index.d.ts +1 -0
  83. package/pagination/index.js +17 -0
  84. package/pagination/pagination.d.ts +8 -0
  85. package/pagination/pagination.js +16 -0
  86. package/pagination/pagination.stories.d.ts +2 -0
  87. package/pagination/pagination.stories.js +18 -0
  88. package/row-counts/index.d.ts +1 -0
  89. package/row-counts/index.js +17 -0
  90. package/row-counts/row-counts.d.ts +7 -0
  91. package/row-counts/row-counts.js +18 -0
  92. package/row-counts/row-counts.stories.d.ts +2 -0
  93. package/row-counts/row-counts.stories.js +15 -0
  94. package/rows-per-page-select/index.d.ts +1 -0
  95. package/rows-per-page-select/index.js +17 -0
  96. package/rows-per-page-select/rows-per-page-select.d.ts +3 -0
  97. package/{tailwindui/components/pagination-rows-per-page-select.js → rows-per-page-select/rows-per-page-select.js} +5 -5
  98. package/rows-per-page-select/rows-per-page-select.stories.d.ts +2 -0
  99. package/rows-per-page-select/rows-per-page-select.stories.js +18 -0
  100. package/selected-rows-toolbar/index.d.ts +1 -0
  101. package/selected-rows-toolbar/index.js +17 -0
  102. package/selected-rows-toolbar/selected-rows-toolbar.d.ts +11 -0
  103. package/{tailwindui/components → selected-rows-toolbar}/selected-rows-toolbar.js +9 -6
  104. package/selected-rows-toolbar/selected-rows-toolbar.stories.d.ts +2 -0
  105. package/{tailwindui/components/select-row-checkbox.js → selected-rows-toolbar/selected-rows-toolbar.stories.js} +15 -14
  106. package/table/components/select-row-checkbox.d.ts +3 -0
  107. package/table/components/select-row-checkbox.js +20 -0
  108. package/table/hooks/use-react-data-grid-columns.d.ts +3 -0
  109. package/table/hooks/use-react-data-grid-columns.js +92 -0
  110. package/table/index.d.ts +1 -0
  111. package/table/index.js +17 -0
  112. package/table/no-rows-fallback.d.ts +7 -0
  113. package/{tailwindui/components → table}/no-rows-fallback.js +4 -4
  114. package/table/table.d.ts +3 -0
  115. package/table/table.js +80 -0
  116. package/table/table.stories.d.ts +2 -0
  117. package/table/table.stories.js +20 -0
  118. package/table/types.d.ts +26 -0
  119. package/table/types.js +2 -0
  120. package/toolbar-control/index.d.ts +1 -0
  121. package/toolbar-control/index.js +17 -0
  122. package/toolbar-control/toolbar-control.d.ts +13 -0
  123. package/toolbar-control/toolbar-control.js +22 -0
  124. package/toolbar-control/toolbar-control.stories.d.ts +2 -0
  125. package/toolbar-control/toolbar-control.stories.js +20 -0
  126. package/toolbar-customs/index.d.ts +1 -0
  127. package/toolbar-customs/index.js +17 -0
  128. package/toolbar-customs/toolbar-customs.d.ts +10 -0
  129. package/{tailwindui/components → toolbar-customs}/toolbar-customs.js +2 -2
  130. package/toolbar-customs/toolbar-customs.stories.d.ts +2 -0
  131. package/toolbar-customs/toolbar-customs.stories.js +16 -0
  132. package/toolbar-tabs/index.d.ts +1 -0
  133. package/toolbar-tabs/index.js +17 -0
  134. package/toolbar-tabs/toolbar-tabs.d.ts +7 -0
  135. package/{tailwindui/components → toolbar-tabs}/toolbar-tabs.js +10 -10
  136. package/toolbar-tabs/toolbar-tabs.stories.d.ts +2 -0
  137. package/toolbar-tabs/toolbar-tabs.stories.js +18 -0
  138. package/types/components.d.ts +5 -160
  139. package/types/data-grid-props.d.ts +16 -23
  140. package/types/state.d.ts +7 -3
  141. package/types/ui-components.d.ts +7 -16
  142. package/use-data-grid-control/actions-factory.d.ts +14 -0
  143. package/use-data-grid-control/actions-factory.js +18 -0
  144. package/use-data-grid-control/index.d.ts +1 -0
  145. package/use-data-grid-control/index.js +17 -0
  146. package/use-data-grid-control/use-data-grid-control.d.ts +19 -0
  147. package/use-data-grid-control/use-data-grid-control.js +12 -0
  148. package/use-data-grid-fetching/index.d.ts +1 -0
  149. package/use-data-grid-fetching/index.js +17 -0
  150. package/use-data-grid-fetching/use-data-grid-fetching.d.ts +16 -0
  151. package/use-data-grid-fetching/use-data-grid-fetching.js +37 -0
  152. package/utils/classes.d.ts +1 -0
  153. package/utils/classes.js +4 -0
  154. package/utils.d.ts +4 -5
  155. package/utils.js +9 -60
  156. package/hooks/useColumns.d.ts +0 -3
  157. package/hooks/useColumns.js +0 -97
  158. package/store/reducer.d.ts +0 -5
  159. package/tailwindui/components/container.d.ts +0 -2
  160. package/tailwindui/components/container.js +0 -13
  161. package/tailwindui/components/filter-list.d.ts +0 -2
  162. package/tailwindui/components/footer.d.ts +0 -2
  163. package/tailwindui/components/footer.js +0 -12
  164. package/tailwindui/components/linear-progress.d.ts +0 -2
  165. package/tailwindui/components/no-rows-fallback.d.ts +0 -2
  166. package/tailwindui/components/pagination-counts.d.ts +0 -2
  167. package/tailwindui/components/pagination-counts.js +0 -18
  168. package/tailwindui/components/pagination-rows-per-page-select.d.ts +0 -2
  169. package/tailwindui/components/select-row-checkbox.d.ts +0 -2
  170. package/tailwindui/components/selected-rows-toolbar.d.ts +0 -2
  171. package/tailwindui/components/toolbar-control.d.ts +0 -2
  172. package/tailwindui/components/toolbar-control.js +0 -86
  173. package/tailwindui/components/toolbar-customs.d.ts +0 -2
  174. package/tailwindui/components/toolbar-tabs.d.ts +0 -2
  175. package/tailwindui/components/toolbar.d.ts +0 -2
  176. package/tailwindui/components/toolbar.js +0 -12
  177. package/tailwindui/data-grid.d.ts +0 -6
  178. package/tailwindui/filter-handler/index.d.ts +0 -2
  179. package/tailwindui/index.d.ts +0 -3
  180. package/tailwindui/show.d.ts +0 -7
  181. package/tailwindui/styles.css +0 -592
  182. package/tailwindui/ui.d.ts +0 -2
  183. package/tailwindui/ui.js +0 -38
  184. /package/{tailwindui/components → _components}/drawer.d.ts +0 -0
  185. /package/{tailwindui/components → _components}/drawer.js +0 -0
  186. /package/{store → _store}/actions.d.ts +0 -0
  187. /package/{store → _store}/actions.js +0 -0
  188. /package/{tailwindui/body-cell → body-cell}/body-cell-boolean.js +0 -0
  189. /package/{tailwindui/body-cell → body-cell}/body-cell-date.js +0 -0
  190. /package/{tailwindui/body-cell → body-cell}/body-cell-datetime.js +0 -0
  191. /package/{tailwindui/body-cell → body-cell}/body-cell-default.js +0 -0
  192. /package/{tailwindui/body-cell → body-cell}/body-cell-email.js +0 -0
  193. /package/{tailwindui/body-cell → body-cell}/body-cell-phone.js +0 -0
  194. /package/{tailwindui/body-cell → body-cell}/body-cell-to-many.js +0 -0
  195. /package/{tailwindui/body-cell → body-cell}/body-cell-to-one.js +0 -0
  196. /package/{tailwindui/body-cell → body-cell}/body-cell-url.js +0 -0
  197. /package/{tailwindui/body-cell → body-cell}/index.js +0 -0
  198. /package/{tailwindui/filter-handler → filter-handler}/bool-filter.js +0 -0
  199. /package/{tailwindui/filter-handler → filter-handler}/boolean-filter.js +0 -0
  200. /package/{tailwindui/filter-handler → filter-handler}/select-filter.js +0 -0
  201. /package/{tailwindui/filter-handler → filter-handler}/text-filter.js +0 -0
  202. /package/{tailwindui → table}/components/action-cell-base.d.ts +0 -0
  203. /package/{tailwindui → table}/components/action-cell-base.js +0 -0
@@ -24,223 +24,21 @@ var __importStar = (this && this.__importStar) || function (mod) {
24
24
  };
25
25
  Object.defineProperty(exports, "__esModule", { value: true });
26
26
  exports.Default = void 0;
27
+ const json_renderer_1 = require("@uxf/example/src/components/json-renderer");
28
+ const toggle_1 = require("@uxf/ui/toggle");
27
29
  const react_1 = __importStar(require("react"));
28
- const _1 = require("./");
29
- const tailwindui_1 = require("./tailwindui");
30
- exports.default = {
31
- title: "DataGrid/Tailwind",
32
- component: tailwindui_1.DataGrid,
33
- };
34
- const schema = {
35
- columns: [
36
- { name: "id", type: "number", label: "Id", sort: true },
37
- { name: "text", type: "string", label: "Text", sort: true },
38
- { name: "bool", type: "boolean", label: "Boolean" },
39
- { name: "mail", type: "email", label: "E-mail" },
40
- { name: "tel", type: "phone", label: "Phone" },
41
- { name: "link", type: "url", label: "Link" },
42
- { name: "day", type: "date", label: "Date" },
43
- { name: "dayAndTime", type: "datetime", label: "Datetime" },
44
- ],
45
- filters: [
46
- { name: "text", type: "text", label: "Text" },
47
- { name: "bool", type: "boolean", label: "Boolean" },
48
- { name: "ival", type: "interval", label: "Super interval" },
49
- { name: "mail", type: "string", label: "E-mail" },
50
- { name: "tel", type: "string", label: "Phone" },
51
- { name: "link", type: "string", label: "Link" },
52
- {
53
- name: "sele",
54
- type: "select",
55
- label: "Select",
56
- options: [
57
- { id: "", label: "" },
58
- { id: 1, label: "A" },
59
- { id: 2, label: "B" },
60
- ],
61
- },
62
- {
63
- name: "seleBool",
64
- type: "select",
65
- label: "Select Boolean",
66
- options: [
67
- { id: "", label: "" },
68
- { id: 1, label: "Ano" },
69
- { id: 0, label: "Ne" },
70
- ],
71
- },
72
- ],
73
- tabs: [
74
- { name: "all", label: "All" },
75
- { name: "only-odd-ids", label: "Only odd ids blablabla" },
76
- // { name: "only-odd-ids", label: "Only odd ids" },
77
- ],
78
- dir: _1.DataGridSortDir.Asc,
79
- sort: "id",
80
- perPage: 10,
81
- fullText: true,
82
- };
83
- const data = [
84
- {
85
- id: 1,
86
- text: "Red",
87
- bool: undefined,
88
- tel: null,
89
- mail: "dev@uxf.cz",
90
- link: null,
91
- day: "1998-09-15",
92
- dayAndTime: null,
93
- },
94
- {
95
- id: 2,
96
- text: "Blue",
97
- bool: null,
98
- tel: undefined,
99
- mail: "dev@uxf.cz",
100
- link: undefined,
101
- day: "2023-01-05",
102
- dayAndTime: null,
103
- },
104
- {
105
- id: 3,
106
- text: "Green",
107
- bool: true,
108
- tel: "777888999",
109
- mail: undefined,
110
- link: null,
111
- day: "1998-09-15",
112
- dayAndTime: undefined,
113
- },
114
- {
115
- id: 4,
116
- text: "Gray",
117
- bool: false,
118
- tel: "555777888",
119
- mail: "dev@uxf.cz",
120
- link: "https://www.uxf.cz",
121
- day: "2023-01-05",
122
- dayAndTime: undefined,
123
- },
124
- {
125
- id: 5,
126
- text: "Pink",
127
- bool: false,
128
- tel: "45654412",
129
- mail: undefined,
130
- link: undefined,
131
- day: "2023-01-05",
132
- dayAndTime: "2000-10-31T01:30:00.000-05:00",
133
- },
134
- {
135
- id: 6,
136
- text: "Yellow",
137
- bool: false,
138
- tel: null,
139
- mail: "root@uxf.cz",
140
- link: "https://www.uxf.cz",
141
- day: undefined,
142
- dayAndTime: "2000-10-31T01:30:00.000-05:00",
143
- },
144
- {
145
- id: 7,
146
- text: "Black",
147
- bool: true,
148
- tel: null,
149
- mail: "dev@uxf.cz",
150
- link: null,
151
- day: "1998-09-15",
152
- dayAndTime: "2012-08-10T00:00:00.000-13:00",
153
- },
154
- {
155
- id: 8,
156
- text: "White",
157
- bool: false,
158
- tel: undefined,
159
- mail: null,
160
- link: "https://www.uxf.cz",
161
- day: undefined,
162
- dayAndTime: "2000-10-31T01:30:00.000-05:00",
163
- },
164
- {
165
- id: 9,
166
- text: "Liberty",
167
- bool: false,
168
- tel: "999888777",
169
- mail: "dev@uxf.cz",
170
- link: "https://google.com",
171
- day: null,
172
- dayAndTime: "2012-08-10T00:00:00.000-13:00",
173
- },
174
- {
175
- id: 10,
176
- text: "Blue",
177
- bool: false,
178
- tel: "777888999",
179
- mail: "root@uxf.cz",
180
- link: "https://google.com",
181
- day: null,
182
- dayAndTime: "2012-08-10T00:00:00.000-13:00",
183
- },
184
- {
185
- id: 11,
186
- text: "Purple",
187
- bool: false,
188
- tel: "777888999",
189
- mail: null,
190
- link: "https://google.com",
191
- day: null,
192
- dayAndTime: "2000-12-31T01:00:00.000-07:30",
193
- },
194
- ];
195
- const loader = async (_, request) => {
196
- const { page = 1, perPage = 10, tab, sort, dir, f } = request;
197
- // eslint-disable-next-line no-console
198
- console.log("filter", f === null || f === void 0 ? void 0 : f.length);
199
- const filteredData = data
200
- .filter((item) => tab !== "only-odd-ids" || item.id % 2 === 0)
201
- .filter((item) => { var _a; return (request.search ? (_a = item.text) === null || _a === void 0 ? void 0 : _a.match(new RegExp(request.search, "i")) : true); })
202
- .sort((a, b) => {
203
- if (!sort || !dir) {
204
- return 1;
205
- }
206
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
207
- // @ts-ignore
208
- const first = a[sort];
209
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
210
- // @ts-ignore
211
- const second = b[sort];
212
- if (typeof first === "number") {
213
- return dir === "asc" ? first - second : second - first;
214
- }
215
- return dir === "asc" ? first.localeCompare(second) : second.localeCompare(first);
216
- });
217
- // eslint-disable-next-line no-console
218
- console.log("loader", request);
219
- await new Promise((resolve) => setTimeout(resolve, 1000));
220
- return {
221
- count: filteredData.length,
222
- totalCount: filteredData.length,
223
- result: filteredData.slice(page * perPage, page * perPage + perPage),
224
- };
225
- };
226
- const onCsvDownload = (request) => {
227
- // eslint-disable-next-line no-console
228
- console.log(request);
229
- };
30
+ const loader_1 = require("./_story-utils/loader");
31
+ const schema_1 = require("./_story-utils/schema");
32
+ const data_grid_1 = require("./data-grid");
33
+ const use_data_grid_control_1 = require("./use-data-grid-control");
34
+ const use_data_grid_fetching_1 = require("./use-data-grid-fetching");
230
35
  function Default() {
231
- const [hiddenColumns, setHiddenColumns] = (0, react_1.useState)([]);
232
- const [selectedRows, setSelectedRows] = (0, react_1.useState)(new Set());
233
- const callbackRef = (0, _1.useCallbackRef)();
234
- return (react_1.default.createElement("div", { className: "min-h-screen bg-gray-50 p-4 dark:bg-gray-950" },
235
- react_1.default.createElement(tailwindui_1.DataGrid, { callbackRef: callbackRef, schema: schema, title: "Test", noBorder: false, loader: loader, onChangeHiddenColumns: setHiddenColumns, hiddenColumns: hiddenColumns, onChangeSelectedRows: setSelectedRows, selectedRows: selectedRows, getOpenUrl: (row) => `https://www.uxf.cz/item-${row.id}`, onEdit: console.log, onRemove: (row, reload) => {
236
- console.log(row, reload);
237
- reload();
238
- }, initialState: "eyJzb3J0IjoiaWQiLCJkaXIiOiJhc2MiLCJwZXJQYWdlIjoxMCwicGFnZSI6MCwiZiI6W3sibmFtZSI6ImNvZGUiLCJ2YWx1ZSI6IkNaIn1dfQ==", onCsvDownload: onCsvDownload, defaultConfig: {
239
- columns: {
240
- id: { width: 50, hidden: true },
241
- text: {},
242
- bool: { width: 50 },
243
- },
244
- }, debug: true })));
36
+ const [noBorder, setNoBorder] = (0, react_1.useState)(false);
37
+ const { state, actions } = (0, use_data_grid_control_1.useDataGridControl)(schema_1.schema);
38
+ const { isLoading, error, data, onReload } = (0, use_data_grid_fetching_1.useDataGridFetching)(loader_1.loader, schema_1.schema, "grid-name", state);
39
+ return (react_1.default.createElement(react_1.default.Fragment, null,
40
+ react_1.default.createElement(toggle_1.Toggle, { label: "No border", value: noBorder, onChange: (value) => setNoBorder(!!value) }),
41
+ react_1.default.createElement(data_grid_1.DataGrid, { onReload: onReload, state: state, actions: actions, data: data, isLoading: isLoading, error: error, schema: schema_1.schema, onCsvDownload: console.log, noBorder: noBorder, onRemove: console.log, getOpenUrl: () => "https://www.uxf.cz", getEditUrl: () => "https://www.uxf.cz" }),
42
+ react_1.default.createElement(json_renderer_1.JsonRenderer, { value: state })));
245
43
  }
246
44
  exports.Default = Default;
@@ -0,0 +1,10 @@
1
+ import React from "react";
2
+ import { CsvDownloadHandler } from "../types/core";
3
+ import { Schema } from "../types/schema";
4
+ import { DataGridControl } from "../use-data-grid-control";
5
+ interface ExportButtonProps extends DataGridControl {
6
+ onCsvDownload: CsvDownloadHandler;
7
+ schema: Schema<any>;
8
+ }
9
+ export declare function ExportButton(props: ExportButtonProps): React.JSX.Element;
10
+ export {};
@@ -0,0 +1,15 @@
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.ExportButton = void 0;
7
+ const button_1 = require("@uxf/ui/button");
8
+ const icon_1 = require("@uxf/ui/icon");
9
+ const react_1 = __importDefault(require("react"));
10
+ const utils_1 = require("../utils");
11
+ function ExportButton(props) {
12
+ return (react_1.default.createElement(button_1.Button, { isIconButton: true, variant: "white", onClick: () => props.onCsvDownload((0, utils_1.createRequest)(props.state.request, props.schema.sort, props.schema.dir)), title: "St\u00E1hnout CSV", className: "uxf-data-grid__plugin-button" },
13
+ react_1.default.createElement(icon_1.Icon, { name: "file-arrow-down" })));
14
+ }
15
+ exports.ExportButton = ExportButton;
@@ -0,0 +1,2 @@
1
+ import React from "react";
2
+ export declare function Default(): React.JSX.Element;
@@ -0,0 +1,18 @@
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.Default = void 0;
7
+ const json_renderer_1 = require("@uxf/example/src/components/json-renderer");
8
+ const react_1 = __importDefault(require("react"));
9
+ const schema_1 = require("../_story-utils/schema");
10
+ const use_data_grid_control_1 = require("../use-data-grid-control");
11
+ const export_button_1 = require("./export-button");
12
+ function Default() {
13
+ const { state, actions } = (0, use_data_grid_control_1.useDataGridControl)(schema_1.schema, null, true);
14
+ return (react_1.default.createElement(react_1.default.Fragment, null,
15
+ react_1.default.createElement(export_button_1.ExportButton, { state: state, actions: actions, schema: schema_1.schema, onCsvDownload: console.log }),
16
+ react_1.default.createElement(json_renderer_1.JsonRenderer, { value: state })));
17
+ }
18
+ exports.Default = Default;
@@ -0,0 +1 @@
1
+ export * from "./export-button";
@@ -14,6 +14,4 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./components/action-cell-base"), exports);
18
- __exportStar(require("./data-grid"), exports);
19
- __exportStar(require("./ui"), exports);
17
+ __exportStar(require("./export-button"), exports);
@@ -1,3 +1,3 @@
1
- import { FilterHandler } from "../../types";
1
+ import { FilterHandler } from "./types";
2
2
  declare const BoolFilterHandler: FilterHandler;
3
3
  export default BoolFilterHandler;
@@ -1,3 +1,3 @@
1
- import { FilterHandler } from "../../types";
1
+ import { FilterHandler } from "./types";
2
2
  declare const BooleanFilterHandler: FilterHandler;
3
3
  export default BooleanFilterHandler;
@@ -0,0 +1,4 @@
1
+ import { FilterHandler } from "./types";
2
+ export * from "./types";
3
+ export type FilterHandlers = Record<string, FilterHandler>;
4
+ export declare const defaultFilterHandlers: FilterHandlers;
@@ -1,4 +1,18 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
2
16
  var __importDefault = (this && this.__importDefault) || function (mod) {
3
17
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
18
  };
@@ -9,6 +23,7 @@ const boolean_filter_1 = __importDefault(require("./boolean-filter"));
9
23
  const interval_filter_1 = __importDefault(require("./interval-filter"));
10
24
  const select_filter_1 = __importDefault(require("./select-filter"));
11
25
  const text_filter_1 = __importDefault(require("./text-filter"));
26
+ __exportStar(require("./types"), exports);
12
27
  exports.defaultFilterHandlers = {
13
28
  text: text_filter_1.default,
14
29
  string: text_filter_1.default,
@@ -1,3 +1,3 @@
1
- import { FilterHandler } from "../../types";
1
+ import { FilterHandler } from "./types";
2
2
  declare const IntervalFilterHandler: FilterHandler;
3
3
  export default IntervalFilterHandler;
@@ -15,7 +15,7 @@ const IntervalFilterHandler = {
15
15
  : { name: props.filter.name, value: { from: null, to: null } };
16
16
  return (react_1.default.createElement("div", { key: props.filter.name },
17
17
  react_1.default.createElement("div", { className: "uxf-data-grid__filter uxf-data-grid__filter--interval" },
18
- react_1.default.createElement(text_input_1.TextInput, { label: `${props.filter.label} od:`, value: props.value.value ? props.value.value.from : null, onChange: (val) => {
18
+ react_1.default.createElement(text_input_1.TextInput, { label: `${props.filter.label} od:`, value: props.value.value ? props.value.value.from : "", onChange: (val) => {
19
19
  return props.onFilter({
20
20
  ...initializedValue,
21
21
  value: {
@@ -25,7 +25,7 @@ const IntervalFilterHandler = {
25
25
  });
26
26
  } }),
27
27
  react_1.default.createElement("div", { className: "uxf-data-grid__filter-gap" }, "\u2013"),
28
- react_1.default.createElement(text_input_1.TextInput, { label: `${props.filter.label} do:`, value: props.value.value ? props.value.value.to : null, onChange: (val) => {
28
+ react_1.default.createElement(text_input_1.TextInput, { label: `${props.filter.label} do:`, value: props.value.value ? props.value.value.to : "", onChange: (val) => {
29
29
  return props.onFilter({
30
30
  ...initializedValue,
31
31
  value: {
@@ -1,3 +1,3 @@
1
- import { FilterHandler } from "../../types";
1
+ import { FilterHandler } from "./types";
2
2
  declare const SelectFilterHandler: FilterHandler;
3
3
  export default SelectFilterHandler;
@@ -1,3 +1,3 @@
1
- import { FilterHandler } from "../../types";
1
+ import { FilterHandler } from "./types";
2
2
  declare const TextFilterHandler: FilterHandler;
3
3
  export default TextFilterHandler;
@@ -0,0 +1,8 @@
1
+ import { ComponentType } from "react";
2
+ import { FilterProps } from "../types/components";
3
+ import { BaseGridType, Filters } from "../types/schema";
4
+ export type FilterComponent<F extends BaseGridType["filters"], T = any> = ComponentType<FilterProps<Filters<F>, T>>;
5
+ export interface FilterHandler {
6
+ input: FilterComponent<any>;
7
+ listItem: FilterComponent<any>;
8
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,11 @@
1
+ import React from "react";
2
+ import { FilterHandlers } from "../filter-handler";
3
+ import { Schema } from "../types";
4
+ import { DataGridControl } from "../use-data-grid-control";
5
+ export interface FilterListProps extends DataGridControl {
6
+ gridName?: string;
7
+ filterHandlers: FilterHandlers;
8
+ className?: string;
9
+ schema: Schema<any>;
10
+ }
11
+ export declare function FilterList(props: FilterListProps): React.JSX.Element | null;
@@ -4,15 +4,16 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.FilterList = void 0;
7
+ const cx_1 = require("@uxf/core/utils/cx");
7
8
  const react_1 = __importDefault(require("react"));
8
- const FilterList = (props) => {
9
- const renderedFilters = props.filtersData
9
+ function FilterList(props) {
10
+ const renderedFilters = props.state.request.f
10
11
  .map((filterRequest) => {
11
12
  var _a;
12
13
  if (typeof filterRequest.value !== "number" && !filterRequest.value) {
13
14
  return null;
14
15
  }
15
- const filter = props.filters.find((f) => f.name === filterRequest.name);
16
+ const filter = props.schema.filters.find((f) => f.name === filterRequest.name);
16
17
  if (!filter) {
17
18
  return null;
18
19
  }
@@ -22,12 +23,12 @@ const FilterList = (props) => {
22
23
  if (!FilterListItem) {
23
24
  return null;
24
25
  }
25
- return (react_1.default.createElement(FilterListItem, { key: filterRequest.name, filter: filter, onFilter: props.onFilter, gridName: props.gridName, value: filterRequest, onClear: () => props.onFilter({ name: filter.name, value: null }) }));
26
+ return (react_1.default.createElement(FilterListItem, { key: filterRequest.name, filter: filter, onFilter: props.actions.filter, gridName: props.gridName, value: filterRequest, onClear: () => props.actions.filter({ name: filter.name, value: null }) }));
26
27
  })
27
28
  .filter((item) => !!item);
28
29
  if (renderedFilters.length === 0) {
29
30
  return null;
30
31
  }
31
- return react_1.default.createElement("div", { className: "uxf-data-grid__filter-list" }, renderedFilters);
32
- };
32
+ return react_1.default.createElement("div", { className: (0, cx_1.cx)("uxf-data-grid__filter-list", props.className) }, renderedFilters);
33
+ }
33
34
  exports.FilterList = FilterList;
@@ -0,0 +1,2 @@
1
+ import React from "react";
2
+ export declare function Default(): React.JSX.Element;
@@ -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.Default = void 0;
7
+ const json_renderer_1 = require("@uxf/example/src/components/json-renderer");
8
+ const react_1 = __importDefault(require("react"));
9
+ const schema_1 = require("../_story-utils/schema");
10
+ const filter_handler_1 = require("../filter-handler");
11
+ const use_data_grid_control_1 = require("../use-data-grid-control");
12
+ const filter_list_1 = require("./filter-list");
13
+ function Default() {
14
+ const { state, actions } = (0, use_data_grid_control_1.useDataGridControl)(schema_1.schema, null, true);
15
+ return (react_1.default.createElement(react_1.default.Fragment, null,
16
+ react_1.default.createElement(filter_list_1.FilterList, { state: state, actions: actions, schema: schema_1.schema, gridName: "grid-name", filterHandlers: filter_handler_1.defaultFilterHandlers }),
17
+ react_1.default.createElement(json_renderer_1.JsonRenderer, { value: state })));
18
+ }
19
+ exports.Default = Default;
@@ -0,0 +1 @@
1
+ export * from "./filter-list";
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./filter-list"), exports);
@@ -0,0 +1,11 @@
1
+ import React from "react";
2
+ import { FilterHandlers } from "../filter-handler";
3
+ import { Schema } from "../types";
4
+ import { DataGridControl } from "../use-data-grid-control";
5
+ interface FiltersProps extends DataGridControl {
6
+ gridName: string | undefined;
7
+ schema: Schema<any>;
8
+ filterHandlers: FilterHandlers;
9
+ }
10
+ export declare function Filters(props: FiltersProps): React.JSX.Element;
11
+ export {};
@@ -0,0 +1,25 @@
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.Filters = void 0;
7
+ const react_1 = __importDefault(require("react"));
8
+ function Filters(props) {
9
+ return (react_1.default.createElement("div", { className: "uxf-data-grid__filters" }, props.schema.filters.map((filter) => {
10
+ var _a, _b;
11
+ // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
12
+ const FilterInput = (_a = props.filterHandlers[filter.type]) === null || _a === void 0 ? void 0 : _a.input;
13
+ // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
14
+ if (!FilterInput) {
15
+ // eslint-disable-next-line no-console
16
+ console.warn(`Unknown filter "${filter.type}".`);
17
+ return null;
18
+ }
19
+ return (react_1.default.createElement(FilterInput, { key: filter.name, gridName: props.gridName, filter: filter, value: (_b = props.state.request.f.find((f) => f.name === filter.name)) !== null && _b !== void 0 ? _b : {
20
+ name: filter.name,
21
+ value: null,
22
+ }, onFilter: (requestFilter) => props.actions.filter(requestFilter), onClear: () => props.actions.filter({ name: filter.name, value: null }) }));
23
+ })));
24
+ }
25
+ exports.Filters = Filters;
@@ -0,0 +1,2 @@
1
+ import React from "react";
2
+ export declare function Default(): React.JSX.Element;
@@ -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.Default = void 0;
7
+ const json_renderer_1 = require("@uxf/example/src/components/json-renderer");
8
+ const react_1 = __importDefault(require("react"));
9
+ const schema_1 = require("../_story-utils/schema");
10
+ const filter_handler_1 = require("../filter-handler");
11
+ const use_data_grid_control_1 = require("../use-data-grid-control");
12
+ const filters_1 = require("./filters");
13
+ function Default() {
14
+ const { state, actions } = (0, use_data_grid_control_1.useDataGridControl)(schema_1.schema, null, true);
15
+ return (react_1.default.createElement(react_1.default.Fragment, null,
16
+ react_1.default.createElement(filters_1.Filters, { state: state, actions: actions, schema: schema_1.schema, gridName: "grid-name", filterHandlers: filter_handler_1.defaultFilterHandlers }),
17
+ react_1.default.createElement(json_renderer_1.JsonRenderer, { value: state })));
18
+ }
19
+ exports.Default = Default;
@@ -0,0 +1 @@
1
+ export * from "./filters";
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./filters"), exports);
@@ -0,0 +1,11 @@
1
+ import React from "react";
2
+ import { FilterHandlers } from "../filter-handler";
3
+ import { Schema } from "../types";
4
+ import { DataGridControl } from "../use-data-grid-control";
5
+ interface FiltersButtonProps extends DataGridControl {
6
+ gridName: string | undefined;
7
+ schema: Schema<any>;
8
+ filterHandlers: FilterHandlers;
9
+ }
10
+ export declare function FiltersButton(props: FiltersButtonProps): React.JSX.Element | null;
11
+ export {};
@@ -23,12 +23,21 @@ var __importStar = (this && this.__importStar) || function (mod) {
23
23
  return result;
24
24
  };
25
25
  Object.defineProperty(exports, "__esModule", { value: true });
26
- exports.Show = void 0;
26
+ exports.FiltersButton = void 0;
27
+ const button_1 = require("@uxf/ui/button");
28
+ const icon_1 = require("@uxf/ui/icon");
27
29
  const react_1 = __importStar(require("react"));
28
- const Show = (props) => {
29
- if (!props.when) {
30
+ const drawer_1 = require("../_components/drawer");
31
+ const filters_1 = require("../filters");
32
+ function FiltersButton(props) {
33
+ const [isOpen, setIsOpen] = (0, react_1.useState)(false);
34
+ if (props.schema.filters.length === 0) {
30
35
  return null;
31
36
  }
32
- return react_1.default.createElement(react_1.Fragment, null, props.children);
33
- };
34
- exports.Show = Show;
37
+ return (react_1.default.createElement(react_1.default.Fragment, null,
38
+ react_1.default.createElement(button_1.Button, { isIconButton: true, variant: "white", size: "sm", onClick: () => setIsOpen(true), title: "Filtrovat", className: "uxf-data-grid__plugin-button" },
39
+ react_1.default.createElement(icon_1.Icon, { name: "filter" })),
40
+ react_1.default.createElement(drawer_1.Drawer, { open: isOpen, onClose: () => setIsOpen(false) },
41
+ react_1.default.createElement(filters_1.Filters, { state: props.state, actions: props.actions, gridName: props.gridName, schema: props.schema, filterHandlers: props.filterHandlers }))));
42
+ }
43
+ exports.FiltersButton = FiltersButton;
@@ -0,0 +1,2 @@
1
+ import React from "react";
2
+ export declare function Default(): React.JSX.Element;