@uxf/data-grid 10.0.2 → 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 +2 -2
  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
@@ -0,0 +1,8 @@
1
+ import { Nullish } from "@uxf/core/types";
2
+ import { Reducer } from "react";
3
+ import { Request } from "../types/api";
4
+ import { Schema } from "../types/schema";
5
+ import { DataGridState } from "../types/state";
6
+ export declare const getInitialState: (schema: Schema<any>, init?: Request | string | Nullish) => DataGridState;
7
+ export declare const reducer: Reducer<DataGridState, any>;
8
+ export declare const debugReducer: Reducer<DataGridState, any>;
@@ -1,10 +1,11 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.debugReducer = exports.reducer = exports.getInitialState = void 0;
4
+ const is_nil_1 = require("@uxf/core/utils/is-nil");
4
5
  const utils_1 = require("../utils");
5
6
  const getInitialState = (schema, init) => {
6
7
  var _a, _b, _c, _d, _e, _f, _g, _h, _j;
7
- const initialState = init === undefined ? {} : typeof init === "string" ? (_a = (0, utils_1.decodeFilter)(init)) !== null && _a !== void 0 ? _a : {} : init;
8
+ const initialState = (0, is_nil_1.isNil)(init) ? {} : typeof init === "string" ? (_a = (0, utils_1.decodeFilter)(init)) !== null && _a !== void 0 ? _a : {} : init;
8
9
  return {
9
10
  request: {
10
11
  f: (_b = initialState.f) !== null && _b !== void 0 ? _b : [],
@@ -15,31 +16,15 @@ const getInitialState = (schema, init) => {
15
16
  tab: (_j = (_h = (_g = schema.tabs) === null || _g === void 0 ? void 0 : _g[0]) === null || _h === void 0 ? void 0 : _h.name) !== null && _j !== void 0 ? _j : null,
16
17
  search: "",
17
18
  },
19
+ columnConfig: {},
18
20
  tabRequests: {},
19
21
  };
20
22
  };
21
23
  exports.getInitialState = getInitialState;
22
24
  // eslint-disable-next-line complexity
23
25
  const reducer = (state, action) => {
24
- var _a, _b, _c, _d, _e, _f, _g, _h;
26
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
25
27
  switch (action.type) {
26
- case "RELOAD":
27
- return {
28
- ...state,
29
- loading: true,
30
- };
31
- case "RELOAD_DONE":
32
- return {
33
- ...state,
34
- loading: false,
35
- response: action.response,
36
- };
37
- case "RELOAD_FAILED":
38
- return {
39
- ...state,
40
- loading: false,
41
- error: action.error,
42
- };
43
28
  case "CHANGE_PAGE":
44
29
  return {
45
30
  ...state,
@@ -128,6 +113,35 @@ const reducer = (state, action) => {
128
113
  [(_h = state.request.tab) !== null && _h !== void 0 ? _h : "__DEFAULT_TAB__"]: state.request,
129
114
  },
130
115
  };
116
+ case "SET_SELECTED_ROWS":
117
+ return {
118
+ ...state,
119
+ selectedRows: action.rows,
120
+ };
121
+ case "HIDE_COLUMN":
122
+ return {
123
+ ...state,
124
+ columnConfig: {
125
+ ...state.columnConfig,
126
+ [action.name]: {
127
+ // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
128
+ ...((_j = state.columnConfig[action.name]) !== null && _j !== void 0 ? _j : {}),
129
+ isHidden: true,
130
+ },
131
+ },
132
+ };
133
+ case "SHOW_COLUMN":
134
+ return {
135
+ ...state,
136
+ columnConfig: {
137
+ ...state.columnConfig,
138
+ [action.name]: {
139
+ // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
140
+ ...((_k = state.columnConfig[action.name]) !== null && _k !== void 0 ? _k : {}),
141
+ isHidden: false,
142
+ },
143
+ },
144
+ };
131
145
  default:
132
146
  // eslint-disable-next-line no-console
133
147
  console.warn("Unknown datagrid action.", action);
@@ -0,0 +1,12 @@
1
+ interface Row {
2
+ id: number;
3
+ text: string | null | undefined;
4
+ bool: boolean | null | undefined;
5
+ tel: string | null | undefined;
6
+ mail: string | null | undefined;
7
+ link: string | null | undefined;
8
+ day: string | null | undefined;
9
+ dayAndTime: string | null | undefined;
10
+ }
11
+ export declare const data: Row[];
12
+ export {};
@@ -0,0 +1,115 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.data = void 0;
4
+ exports.data = [
5
+ {
6
+ id: 1,
7
+ text: "Red",
8
+ bool: undefined,
9
+ tel: null,
10
+ mail: "dev@uxf.cz",
11
+ link: null,
12
+ day: "1998-09-15",
13
+ dayAndTime: null,
14
+ },
15
+ {
16
+ id: 2,
17
+ text: "Blue",
18
+ bool: null,
19
+ tel: undefined,
20
+ mail: "dev@uxf.cz",
21
+ link: undefined,
22
+ day: "2023-01-05",
23
+ dayAndTime: null,
24
+ },
25
+ {
26
+ id: 3,
27
+ text: "Green",
28
+ bool: true,
29
+ tel: "777888999",
30
+ mail: undefined,
31
+ link: null,
32
+ day: "1998-09-15",
33
+ dayAndTime: undefined,
34
+ },
35
+ {
36
+ id: 4,
37
+ text: "Gray",
38
+ bool: false,
39
+ tel: "555777888",
40
+ mail: "dev@uxf.cz",
41
+ link: "https://www.uxf.cz",
42
+ day: "2023-01-05",
43
+ dayAndTime: undefined,
44
+ },
45
+ {
46
+ id: 5,
47
+ text: "Pink",
48
+ bool: false,
49
+ tel: "45654412",
50
+ mail: undefined,
51
+ link: undefined,
52
+ day: "2023-01-05",
53
+ dayAndTime: "2000-10-31T01:30:00.000-05:00",
54
+ },
55
+ {
56
+ id: 6,
57
+ text: "Yellow",
58
+ bool: false,
59
+ tel: null,
60
+ mail: "root@uxf.cz",
61
+ link: "https://www.uxf.cz",
62
+ day: undefined,
63
+ dayAndTime: "2000-10-31T01:30:00.000-05:00",
64
+ },
65
+ {
66
+ id: 7,
67
+ text: "Black",
68
+ bool: true,
69
+ tel: null,
70
+ mail: "dev@uxf.cz",
71
+ link: null,
72
+ day: "1998-09-15",
73
+ dayAndTime: "2012-08-10T00:00:00.000-13:00",
74
+ },
75
+ {
76
+ id: 8,
77
+ text: "White",
78
+ bool: false,
79
+ tel: undefined,
80
+ mail: null,
81
+ link: "https://www.uxf.cz",
82
+ day: undefined,
83
+ dayAndTime: "2000-10-31T01:30:00.000-05:00",
84
+ },
85
+ {
86
+ id: 9,
87
+ text: "Liberty",
88
+ bool: false,
89
+ tel: "999888777",
90
+ mail: "dev@uxf.cz",
91
+ link: "https://google.com",
92
+ day: null,
93
+ dayAndTime: "2012-08-10T00:00:00.000-13:00",
94
+ },
95
+ {
96
+ id: 10,
97
+ text: "Blue",
98
+ bool: false,
99
+ tel: "777888999",
100
+ mail: "root@uxf.cz",
101
+ link: "https://google.com",
102
+ day: null,
103
+ dayAndTime: "2012-08-10T00:00:00.000-13:00",
104
+ },
105
+ {
106
+ id: 11,
107
+ text: "Purple",
108
+ bool: false,
109
+ tel: "777888999",
110
+ mail: null,
111
+ link: "https://google.com",
112
+ day: null,
113
+ dayAndTime: "2000-12-31T01:00:00.000-07:30",
114
+ },
115
+ ];
@@ -0,0 +1,22 @@
1
+ export type GridType = {
2
+ columns: {
3
+ id: "number";
4
+ text: "string";
5
+ bool: "boolean";
6
+ tel: "phone";
7
+ mail: "email";
8
+ link: "url";
9
+ day: "date";
10
+ dayAndTime: "datetime";
11
+ };
12
+ filters: {
13
+ text: "text";
14
+ bool: "boolean";
15
+ ival: "interval";
16
+ tel: "string";
17
+ mail: "string";
18
+ link: "string";
19
+ sele: "select";
20
+ seleBool: "select";
21
+ };
22
+ };
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,2 @@
1
+ import { Loader } from "../types";
2
+ export declare const loader: Loader;
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.loader = void 0;
4
+ const data_1 = require("./data");
5
+ const loader = async (_, request) => {
6
+ const { page = 1, perPage = 10, tab, sort, dir, f } = request;
7
+ // eslint-disable-next-line no-console
8
+ console.log("filter", f === null || f === void 0 ? void 0 : f.length);
9
+ const filteredData = data_1.data
10
+ .filter((item) => tab !== "only-odd-ids" || item.id % 2 === 0)
11
+ .filter((item) => { var _a; return (request.search ? (_a = item.text) === null || _a === void 0 ? void 0 : _a.match(new RegExp(request.search, "i")) : true); })
12
+ .sort((a, b) => {
13
+ if (!sort || !dir) {
14
+ return 1;
15
+ }
16
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
17
+ // @ts-ignore
18
+ const first = a[sort];
19
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
20
+ // @ts-ignore
21
+ const second = b[sort];
22
+ if (typeof first === "number") {
23
+ return dir === "asc" ? first - second : second - first;
24
+ }
25
+ return dir === "asc" ? first.localeCompare(second) : second.localeCompare(first);
26
+ });
27
+ // eslint-disable-next-line no-console
28
+ console.log("loader", request);
29
+ await new Promise((resolve) => setTimeout(resolve, 1000));
30
+ return {
31
+ count: filteredData.length,
32
+ totalCount: filteredData.length,
33
+ result: filteredData.slice(page * perPage, page * perPage + perPage),
34
+ };
35
+ };
36
+ exports.loader = loader;
@@ -0,0 +1,3 @@
1
+ import { Schema } from "../types";
2
+ import { GridType } from "./grid-type";
3
+ export declare const schema: Schema<GridType>;
@@ -0,0 +1,53 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.schema = void 0;
4
+ const types_1 = require("../types");
5
+ exports.schema = {
6
+ columns: [
7
+ { name: "id", type: "number", label: "Id", sort: true },
8
+ { name: "text", type: "string", label: "Text", sort: true },
9
+ { name: "bool", type: "boolean", label: "Boolean" },
10
+ { name: "mail", type: "email", label: "E-mail" },
11
+ { name: "tel", type: "phone", label: "Phone" },
12
+ { name: "link", type: "url", label: "Link" },
13
+ { name: "day", type: "date", label: "Date" },
14
+ { name: "dayAndTime", type: "datetime", label: "Datetime" },
15
+ ],
16
+ filters: [
17
+ { name: "text", type: "text", label: "Text" },
18
+ { name: "bool", type: "boolean", label: "Boolean" },
19
+ { name: "ival", type: "interval", label: "Super interval" },
20
+ { name: "mail", type: "string", label: "E-mail" },
21
+ { name: "tel", type: "string", label: "Phone" },
22
+ { name: "link", type: "string", label: "Link" },
23
+ {
24
+ name: "sele",
25
+ type: "select",
26
+ label: "Select",
27
+ options: [
28
+ { id: "", label: "" },
29
+ { id: 1, label: "A" },
30
+ { id: 2, label: "B" },
31
+ ],
32
+ },
33
+ {
34
+ name: "seleBool",
35
+ type: "select",
36
+ label: "Select Boolean",
37
+ options: [
38
+ { id: "", label: "" },
39
+ { id: 1, label: "Ano" },
40
+ { id: 0, label: "Ne" },
41
+ ],
42
+ },
43
+ ],
44
+ tabs: [
45
+ { name: "all", label: "All" },
46
+ { name: "only-odd-ids", label: "Only odd ids blablabla" },
47
+ // { name: "only-odd-ids", label: "Only odd ids" },
48
+ ],
49
+ dir: types_1.DataGridSortDir.Asc,
50
+ sort: "id",
51
+ perPage: 10,
52
+ fullText: true,
53
+ };
@@ -1,2 +1,2 @@
1
- import { BodyCellComponent } from "../../types";
1
+ import { BodyCellComponent } from "../types";
2
2
  export declare const BodyCellBoolean: BodyCellComponent<any, any>;
@@ -1,2 +1,2 @@
1
- import { BodyCellComponent } from "../../types";
1
+ import { BodyCellComponent } from "../types";
2
2
  export declare const BodyCellDate: BodyCellComponent<any, any>;
@@ -1,2 +1,2 @@
1
- import { BodyCellComponent } from "../../types";
1
+ import { BodyCellComponent } from "../types";
2
2
  export declare const BodyCellDateTime: BodyCellComponent<any, any>;
@@ -1,2 +1,2 @@
1
- import { BodyCellComponent } from "../../types";
1
+ import { BodyCellComponent } from "../types";
2
2
  export declare const BodyCellDefault: BodyCellComponent<any, any>;
@@ -1,2 +1,2 @@
1
- import { BodyCellComponent } from "../../types";
1
+ import { BodyCellComponent } from "../types";
2
2
  export declare const BodyCellEmail: BodyCellComponent<any, any>;
@@ -1,2 +1,2 @@
1
- import { BodyCellComponent } from "../../types";
1
+ import { BodyCellComponent } from "../types";
2
2
  export declare const BodyCellPhone: BodyCellComponent<any, any>;
@@ -1,2 +1,2 @@
1
- import { BodyCellComponent } from "../../types";
1
+ import { BodyCellComponent } from "../types";
2
2
  export declare const BodyCellToMany: BodyCellComponent<any, any>;
@@ -1,2 +1,2 @@
1
- import { BodyCellComponent } from "../../types";
1
+ import { BodyCellComponent } from "../types";
2
2
  export declare const BodyCellToOne: BodyCellComponent<any, any>;
@@ -1,2 +1,2 @@
1
- import { BodyCellComponent } from "../../types";
1
+ import { BodyCellComponent } from "../types";
2
2
  export declare const BodyCellUrl: BodyCellComponent<any, any>;
@@ -1,2 +1,2 @@
1
- import { BodyCellComponents } from "../../types";
1
+ import { BodyCellComponents } from "../types";
2
2
  export declare const BodyCells: BodyCellComponents<any, any>;
package/data-grid.d.ts CHANGED
@@ -1,3 +1,3 @@
1
1
  import React from "react";
2
2
  import { BaseGridType, DataGridProps } from "./types";
3
- export declare const DataGrid: <GridType extends BaseGridType, R = any>(props: DataGridProps<GridType, R>) => React.JSX.Element;
3
+ export declare function DataGrid<GridType extends BaseGridType, R = any>(props: DataGridProps<GridType, R>): React.JSX.Element;
package/data-grid.js CHANGED
@@ -1,128 +1,42 @@
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 __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
2
  var __importDefault = (this && this.__importDefault) || function (mod) {
26
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
27
4
  };
28
5
  Object.defineProperty(exports, "__esModule", { value: true });
29
6
  exports.DataGrid = void 0;
30
- const react_1 = __importStar(require("react"));
31
- const react_data_grid_1 = __importDefault(require("react-data-grid"));
32
- const use_rdg_visuals_1 = require("./hooks/use-rdg-visuals");
33
- const useColumns_1 = require("./hooks/useColumns");
34
- const actions_1 = require("./store/actions");
35
- const reducer_1 = require("./store/reducer");
36
- const footer_1 = require("./tailwindui/components/footer");
37
- const show_1 = require("./tailwindui/show");
38
- const utils_1 = require("./utils");
39
- const defaultKeyExtractor = (r) => {
40
- return r.id;
41
- };
42
- // eslint-disable-next-line react/require-optimization
43
- const DataGrid = (props) => {
44
- var _a, _b, _c;
45
- const { LinearProgress, Container, FilterList, Pagination, PaginationCounts, PaginationRowsPerPageSelect, SelectedRowsToolbar, NoRowsFallback, SelectRowCheckbox, Toolbar, ToolbarControl, ToolbarCustoms, ToolbarTabs, } = props.ui;
46
- const [state, dispatch] = (0, react_1.useReducer)(props.debug ? reducer_1.debugReducer : reducer_1.reducer, (0, reducer_1.getInitialState)(props.schema, props.initialState));
47
- // TODO @vejvis - tady vyřešit problém se závislostma v useCallbacku
48
- const schema = props.schema;
49
- const gridName = props.gridName;
50
- const loader = props.loader;
51
- const onReload = (0, react_1.useCallback)(async () => {
52
- try {
53
- await dispatch(actions_1.dataGridActions.reload());
54
- const request = (0, utils_1.createRequest)(state, schema.sort, schema.dir);
55
- const response = await loader(gridName, request, (0, utils_1.encodeFilter)(request));
56
- await dispatch(actions_1.dataGridActions.reloadDone(response));
57
- }
58
- catch (e) {
59
- await dispatch(actions_1.dataGridActions.reloadFailed(e));
60
- // eslint-disable-next-line no-console
61
- console.error(e);
62
- }
63
- }, [state, schema, gridName, loader]);
64
- if (props.callbackRef) {
65
- props.callbackRef.current = {
66
- reload: onReload,
67
- };
68
- }
69
- (0, react_1.useEffect)(() => {
70
- onReload();
71
- // eslint-disable-next-line react-hooks/exhaustive-deps
72
- }, [
73
- state.request.dir,
74
- state.request.sort,
75
- state.request.perPage,
76
- state.request.page,
77
- state.request.f,
78
- state.request.search,
79
- state.request.tab,
80
- ]);
81
- const onFilter = (0, react_1.useCallback)((value) => {
82
- dispatch(actions_1.dataGridActions.filter(value));
83
- }, [dispatch]);
84
- const rows = (_b = (_a = state.response) === null || _a === void 0 ? void 0 : _a.result) !== null && _b !== void 0 ? _b : [];
85
- const columns = (0, useColumns_1.useColumns)(props, onReload);
86
- const components = (0, react_1.useMemo)(() => {
87
- return {
88
- renderCheckbox: (args) => react_1.default.createElement(SelectRowCheckbox, { ...args }),
89
- noRowsFallback: react_1.default.createElement(NoRowsFallback, { error: state.error, loading: !!state.loading }),
90
- };
91
- }, [SelectRowCheckbox, NoRowsFallback, state.error, state.loading]);
92
- const sortColumns = state.request.sort && state.request.dir
93
- ? [{ columnKey: state.request.sort, direction: state.request.dir.toUpperCase() }]
94
- : [];
95
- // TODO @vejvis podívat se na onSortColumnChange metodu
96
- // eslint-disable-next-line @typescript-eslint/no-shadow
97
- const onSortColumnChange = (sortColumns) => {
98
- if (sortColumns.length > 0) {
99
- const sc = sortColumns[0];
100
- dispatch(actions_1.dataGridActions.sort(sc.columnKey, sc.direction.toLowerCase()));
101
- }
102
- else {
103
- dispatch(actions_1.dataGridActions.sortClear());
104
- }
105
- };
106
- const rdgVisuals = (0, use_rdg_visuals_1.useRdgVisuals)({
107
- headerRowHeight: props.headerRowHeight,
108
- mode: props.mode,
109
- rowHeight: props.rowHeight,
110
- rows,
111
- });
7
+ const cx_1 = require("@uxf/core/utils/cx");
8
+ const react_1 = __importDefault(require("react"));
9
+ const body_cell_1 = require("./body-cell");
10
+ const filter_handler_1 = require("./filter-handler");
11
+ const filter_list_1 = require("./filter-list");
12
+ const linear_progress_1 = require("./linear-progress");
13
+ const pagination_1 = require("./pagination");
14
+ const row_counts_1 = require("./row-counts");
15
+ const rows_per_page_select_1 = require("./rows-per-page-select");
16
+ const selected_rows_toolbar_1 = require("./selected-rows-toolbar");
17
+ const table_1 = require("./table");
18
+ const action_cell_base_1 = require("./table/components/action-cell-base");
19
+ const no_rows_fallback_1 = require("./table/no-rows-fallback");
20
+ const toolbar_control_1 = require("./toolbar-control");
21
+ const toolbar_customs_1 = require("./toolbar-customs");
22
+ const toolbar_tabs_1 = require("./toolbar-tabs");
23
+ const classes_1 = require("./utils/classes");
24
+ const DefaultSelectedRowsToolbarActions = () => null;
25
+ function DataGrid(props) {
26
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t;
112
27
  return (react_1.default.createElement(react_1.default.Fragment, null,
113
- react_1.default.createElement(Container, { noBorder: props.noBorder, className: props.className },
114
- react_1.default.createElement(Toolbar, { noBorder: props.noBorder },
115
- react_1.default.createElement(ToolbarTabs, { activeTab: state.request.tab, onChange: (tab) => dispatch(actions_1.dataGridActions.changeTab(tab)), schema: props.schema }),
116
- react_1.default.createElement(ToolbarControl, { gridName: props.gridName, dispatch: dispatch, filterHandlers: props.ui.FilterHandlers, noBorder: props.noBorder, schema: props.schema, onFulltextChange: (value) => dispatch(actions_1.dataGridActions.search(value)), showFulltext: props.schema.fullText, hiddenColumns: props.hiddenColumns, onChangeHiddenColumns: props.onChangeHiddenColumns, onCsvDownload: props.onCsvDownload, state: state }),
117
- react_1.default.createElement(ToolbarCustoms, { buttons: props.customActions })),
118
- react_1.default.createElement(LinearProgress, { loading: !!state.loading }),
119
- react_1.default.createElement(FilterList, { gridName: props.gridName, onFilter: onFilter, filters: props.schema.filters, filtersData: state.request.f, filterHandlers: props.ui.FilterHandlers, noBorder: props.noBorder }),
120
- react_1.default.createElement(show_1.Show, { when: rdgVisuals.ready },
121
- react_1.default.createElement(react_data_grid_1.default, { className: rdgVisuals.className, columns: columns, enableVirtualization: false, headerRowHeight: rdgVisuals.headerRowHeight, onSelectedRowsChange: props.onChangeSelectedRows, onSortColumnsChange: onSortColumnChange, ref: rdgVisuals.ref, renderers: components, rowClass: props.rowClass, rowHeight: rdgVisuals.rowHeight, rowKeyGetter: (_c = props.keyExtractor) !== null && _c !== void 0 ? _c : defaultKeyExtractor, rows: rows, selectedRows: props.selectedRows, sortColumns: sortColumns, style: rdgVisuals.style })),
122
- react_1.default.createElement(footer_1.Footer, { noBorder: props.noBorder },
123
- react_1.default.createElement(PaginationRowsPerPageSelect, { value: state.request.perPage, onChange: (value) => dispatch(actions_1.dataGridActions.changePerPage(value)) }),
124
- react_1.default.createElement(PaginationCounts, { page: state.request.page, perPage: state.request.perPage, response: state.response }),
125
- react_1.default.createElement(Pagination, { count: state.response ? Math.max(Math.ceil(state.response.count / state.request.perPage), 1) : 1, page: state.request.page + 1, onPageChange: (value) => dispatch(actions_1.dataGridActions.changePage(value - 1)), size: "sm" }))),
126
- react_1.default.createElement(SelectedRowsToolbar, { selectedRows: props.selectedRows, onChangeSelectedRows: props.onChangeSelectedRows, Actions: props.ui.SelectedRowsToolbarActions, reload: onReload })));
127
- };
28
+ react_1.default.createElement("div", { className: (0, cx_1.cx)("uxf-data-grid", props.noBorder && classes_1.NO_BORDER_CLASS, props.className) },
29
+ react_1.default.createElement("div", { className: (0, cx_1.cx)("uxf-data-grid__toolbar", props.noBorder && classes_1.NO_BORDER_CLASS) },
30
+ react_1.default.createElement(toolbar_tabs_1.ToolbarTabs, { state: props.state, actions: props.actions, schema: props.schema }),
31
+ react_1.default.createElement(toolbar_control_1.ToolbarControl, { state: props.state, actions: props.actions, gridName: props.gridName, filterHandlers: (_b = (_a = props.ui) === null || _a === void 0 ? void 0 : _a.FilterHandlers) !== null && _b !== void 0 ? _b : filter_handler_1.defaultFilterHandlers, schema: props.schema, onCsvDownload: props.onCsvDownload }),
32
+ react_1.default.createElement(toolbar_customs_1.ToolbarCustoms, { buttons: props.customActions })),
33
+ react_1.default.createElement(linear_progress_1.LinearProgress, { isLoading: props.isLoading }),
34
+ react_1.default.createElement(filter_list_1.FilterList, { state: props.state, actions: props.actions, schema: props.schema, gridName: props.gridName, filterHandlers: (_d = (_c = props.ui) === null || _c === void 0 ? void 0 : _c.FilterHandlers) !== null && _d !== void 0 ? _d : filter_handler_1.defaultFilterHandlers, className: props.noBorder ? classes_1.NO_BORDER_CLASS : undefined }),
35
+ react_1.default.createElement(table_1.Table, { state: props.state, actions: props.actions, schema: props.schema, data: (_f = (_e = props.data) === null || _e === void 0 ? void 0 : _e.result) !== null && _f !== void 0 ? _f : [], isLoading: props.isLoading, error: props.error, rowClass: props.rowClass, keyExtractor: props.keyExtractor, rowHeight: props.rowHeight, headerRowHeight: props.headerRowHeight, BodyCells: (_h = (_g = props.ui) === null || _g === void 0 ? void 0 : _g.BodyCells) !== null && _h !== void 0 ? _h : body_cell_1.BodyCells, NoRowsFallback: (_k = (_j = props.ui) === null || _j === void 0 ? void 0 : _j.NoRowsFallback) !== null && _k !== void 0 ? _k : no_rows_fallback_1.NoRowsFallback, ActionCell: (_m = (_l = props.ui) === null || _l === void 0 ? void 0 : _l.ActionCell) !== null && _m !== void 0 ? _m : action_cell_base_1.ActionCellBase, onRemove: props.onRemove, onEdit: props.onEdit, getEditUrl: props.getEditUrl, onOpen: props.onOpen, getOpenUrl: props.getOpenUrl, onReload: props.onReload, isRowSelectable: props.isRowSelectable }),
36
+ react_1.default.createElement("div", { className: (0, cx_1.cx)("uxf-data-grid__footer", props.noBorder && classes_1.NO_BORDER_CLASS) },
37
+ react_1.default.createElement(rows_per_page_select_1.RowsPerPageSelect, { state: props.state, actions: props.actions }),
38
+ react_1.default.createElement(row_counts_1.RowCounts, { state: props.state, totalCount: (_p = (_o = props.state.response) === null || _o === void 0 ? void 0 : _o.totalCount) !== null && _p !== void 0 ? _p : 0 }),
39
+ react_1.default.createElement(pagination_1.Pagination, { state: props.state, actions: props.actions, totalCount: (_r = (_q = props.state.response) === null || _q === void 0 ? void 0 : _q.totalCount) !== null && _r !== void 0 ? _r : 0 }))),
40
+ react_1.default.createElement(selected_rows_toolbar_1.SelectedRowsToolbar, { state: props.state, actions: props.actions, Actions: (_t = (_s = props.ui) === null || _s === void 0 ? void 0 : _s.SelectedRowsToolbarActions) !== null && _t !== void 0 ? _t : DefaultSelectedRowsToolbarActions })));
41
+ }
128
42
  exports.DataGrid = DataGrid;
@@ -1,7 +1,2 @@
1
1
  import React from "react";
2
- declare const _default: {
3
- title: string;
4
- component: <GridType_1 extends import("./").BaseGridType, R = any>(props: import("./tailwindui").DataGridProps<GridType_1, R>) => React.JSX.Element;
5
- };
6
- export default _default;
7
2
  export declare function Default(): React.JSX.Element;