@addev-be/ui 0.2.2 → 0.2.6

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 (168) hide show
  1. package/assets/icons/arrow-down-a-z.svg +1 -1
  2. package/assets/icons/arrow-up-z-a.svg +1 -1
  3. package/assets/icons/check.svg +1 -1
  4. package/assets/icons/down.svg +1 -1
  5. package/assets/icons/filter-full.svg +1 -1
  6. package/assets/icons/filter.svg +1 -1
  7. package/assets/icons/hashtag.svg +1 -1
  8. package/assets/icons/image-slash.svg +1 -1
  9. package/assets/icons/left.svg +1 -1
  10. package/assets/icons/magnifier.svg +1 -1
  11. package/assets/icons/phone.svg +1 -1
  12. package/assets/icons/right.svg +1 -1
  13. package/assets/icons/spinner-third.svg +1 -1
  14. package/assets/icons/table-columns.svg +1 -1
  15. package/assets/icons/up.svg +1 -1
  16. package/assets/icons/user-tie.svg +1 -1
  17. package/dist/components/data/AdvancedRequestDataGrid/helpers/advancedRequests.d.ts +14 -0
  18. package/dist/components/data/AdvancedRequestDataGrid/helpers/advancedRequests.js +76 -0
  19. package/dist/components/data/AdvancedRequestDataGrid/helpers/columns.d.ts +22 -0
  20. package/dist/components/data/AdvancedRequestDataGrid/helpers/columns.js +156 -0
  21. package/dist/components/data/AdvancedRequestDataGrid/helpers/index.d.ts +2 -0
  22. package/dist/components/data/AdvancedRequestDataGrid/helpers/index.js +18 -0
  23. package/dist/components/data/AdvancedRequestDataGrid/index.d.ts +2 -0
  24. package/dist/components/data/AdvancedRequestDataGrid/index.js +215 -0
  25. package/dist/components/data/AdvancedRequestDataGrid/types.d.ts +21 -0
  26. package/dist/components/data/DataGrid/AdvancedRequestDataGrid.d.ts +1 -2
  27. package/dist/components/data/DataGrid/AdvancedRequestDataGrid.js +3 -5
  28. package/dist/components/data/DataGrid/DataGridCell.d.ts +1 -1
  29. package/dist/components/data/DataGrid/DataGridCell.js +6 -6
  30. package/dist/components/data/DataGrid/DataGridEditableCell.js +2 -7
  31. package/dist/components/data/DataGrid/DataGridFilterMenu/index.js +10 -8
  32. package/dist/components/data/DataGrid/DataGridFooter.js +4 -14
  33. package/dist/components/data/DataGrid/DataGridHeader.js +60 -12
  34. package/dist/components/data/DataGrid/DataGridHeaderCell.js +6 -5
  35. package/dist/components/data/DataGrid/FilterModalContent/index.d.ts +5 -5
  36. package/dist/components/data/DataGrid/FilterModalContent/index.js +11 -9
  37. package/dist/components/data/DataGrid/FilterValuesScroller.d.ts +8 -7
  38. package/dist/components/data/DataGrid/FilterValuesScroller.js +5 -6
  39. package/dist/components/data/DataGrid/VirtualScroller.js +1 -6
  40. package/dist/components/data/DataGrid/helpers/columns.d.ts +12 -13
  41. package/dist/components/data/DataGrid/helpers/columns.js +17 -71
  42. package/dist/components/data/DataGrid/helpers/filters.d.ts +8 -7
  43. package/dist/components/data/DataGrid/helpers/filters.js +26 -21
  44. package/dist/components/data/DataGrid/helpers/index.d.ts +1 -2
  45. package/dist/components/data/DataGrid/helpers/index.js +1 -2
  46. package/dist/components/data/DataGrid/hooks/index.d.ts +2 -2
  47. package/dist/components/data/DataGrid/hooks/index.js +4 -4
  48. package/dist/components/data/DataGrid/hooks/useDataGrid.js +27 -5
  49. package/dist/components/data/DataGrid/hooks/useDataGridCopy.js +0 -1
  50. package/dist/components/data/DataGrid/hooks/useDataGridSettings.js +0 -1
  51. package/dist/components/data/DataGrid/index.js +27 -20
  52. package/dist/components/data/DataGrid/styles.d.ts +7 -2
  53. package/dist/components/data/DataGrid/styles.js +13 -10
  54. package/dist/components/data/DataGrid/types.d.ts +47 -54
  55. package/dist/components/data/SqlRequestDataGrid/helpers/columns.d.ts +16 -0
  56. package/dist/components/data/SqlRequestDataGrid/helpers/columns.js +112 -0
  57. package/dist/components/data/SqlRequestDataGrid/helpers/index.d.ts +2 -0
  58. package/dist/components/data/SqlRequestDataGrid/helpers/index.js +18 -0
  59. package/dist/components/data/SqlRequestDataGrid/helpers/sqlRequests.d.ts +3 -0
  60. package/dist/components/data/SqlRequestDataGrid/helpers/sqlRequests.js +18 -0
  61. package/dist/components/data/SqlRequestDataGrid/index.d.ts +2 -0
  62. package/dist/components/data/SqlRequestDataGrid/index.js +224 -0
  63. package/dist/components/data/SqlRequestDataGrid/types.d.ts +21 -0
  64. package/dist/components/data/SqlRequestDataGrid/types.js +2 -0
  65. package/dist/components/data/index.d.ts +7 -2
  66. package/dist/components/data/index.js +7 -2
  67. package/dist/components/forms/IconButton.js +1 -1
  68. package/dist/components/forms/IndeterminateCheckbox.js +1 -1
  69. package/dist/components/layout/Modal/index.js +1 -1
  70. package/dist/helpers/dates.d.ts +2 -0
  71. package/dist/helpers/dates.js +13 -0
  72. package/dist/providers/PortalsProvider/index.d.ts +1 -1
  73. package/dist/providers/PortalsProvider/index.js +1 -1
  74. package/dist/services/HttpService.d.ts +10 -0
  75. package/dist/services/HttpService.js +117 -0
  76. package/dist/services/advancedRequests.d.ts +3 -3
  77. package/dist/services/advancedRequests.js +2 -2
  78. package/dist/services/hooks.d.ts +2 -1
  79. package/dist/services/hooks.js +10 -3
  80. package/dist/services/sqlRequests.d.ts +40 -0
  81. package/dist/services/sqlRequests.js +10 -0
  82. package/package.json +1 -1
  83. package/src/Icons.tsx +80 -80
  84. package/src/components/data/AdvancedRequestDataGrid/helpers/advancedRequests.ts +93 -93
  85. package/src/components/data/AdvancedRequestDataGrid/helpers/columns.tsx +262 -262
  86. package/src/components/data/AdvancedRequestDataGrid/helpers/index.ts +2 -2
  87. package/src/components/data/AdvancedRequestDataGrid/index.tsx +269 -269
  88. package/src/components/data/AdvancedRequestDataGrid/types.ts +47 -47
  89. package/src/components/data/DataGrid/DataGridCell.tsx +73 -75
  90. package/src/components/data/DataGrid/DataGridColumnsModal/helpers.ts +14 -14
  91. package/src/components/data/DataGrid/DataGridColumnsModal/hooks.tsx +58 -58
  92. package/src/components/data/DataGrid/DataGridColumnsModal/index.tsx +181 -181
  93. package/src/components/data/DataGrid/DataGridColumnsModal/styles.ts +104 -104
  94. package/src/components/data/DataGrid/DataGridEditableCell.tsx +43 -54
  95. package/src/components/data/DataGrid/DataGridFilterMenu/hooks.tsx +75 -75
  96. package/src/components/data/DataGrid/DataGridFilterMenu/index.tsx +200 -190
  97. package/src/components/data/DataGrid/DataGridFilterMenu/styles.ts +100 -100
  98. package/src/components/data/DataGrid/DataGridFooter.tsx +44 -64
  99. package/src/components/data/DataGrid/DataGridHeader.tsx +126 -128
  100. package/src/components/data/DataGrid/DataGridHeaderCell.tsx +167 -166
  101. package/src/components/data/DataGrid/FilterModalContent/index.tsx +124 -125
  102. package/src/components/data/DataGrid/FilterModalContent/styles.ts +22 -22
  103. package/src/components/data/DataGrid/FilterValuesScroller.tsx +133 -131
  104. package/src/components/data/DataGrid/VirtualScroller.tsx +46 -46
  105. package/src/components/data/DataGrid/helpers/columns.tsx +196 -199
  106. package/src/components/data/DataGrid/helpers/filters.ts +220 -207
  107. package/src/components/data/DataGrid/helpers/index.ts +2 -2
  108. package/src/components/data/DataGrid/hooks/index.ts +30 -30
  109. package/src/components/data/DataGrid/hooks/useDataGrid.tsx +264 -261
  110. package/src/components/data/DataGrid/hooks/useDataGridCopy.ts +165 -166
  111. package/src/components/data/DataGrid/hooks/useDataGridSettings.ts +48 -49
  112. package/src/components/data/DataGrid/index.tsx +132 -133
  113. package/src/components/data/DataGrid/styles.ts +326 -299
  114. package/src/components/data/DataGrid/types.ts +241 -233
  115. package/src/components/data/SqlRequestDataGrid/helpers/columns.tsx +224 -206
  116. package/src/components/data/SqlRequestDataGrid/helpers/index.ts +2 -2
  117. package/src/components/data/SqlRequestDataGrid/helpers/sqlRequests.ts +16 -16
  118. package/src/components/data/SqlRequestDataGrid/index.tsx +252 -221
  119. package/src/components/data/SqlRequestDataGrid/types.ts +47 -46
  120. package/src/components/data/index.ts +8 -6
  121. package/src/components/forms/Button.tsx +99 -99
  122. package/src/components/forms/IconButton.tsx +56 -56
  123. package/src/components/forms/IndeterminateCheckbox.tsx +46 -46
  124. package/src/components/forms/Select.tsx +40 -40
  125. package/src/components/forms/index.ts +5 -5
  126. package/src/components/forms/styles.ts +20 -20
  127. package/src/components/index.ts +3 -3
  128. package/src/components/layout/Dropdown/index.tsx +79 -79
  129. package/src/components/layout/Dropdown/styles.ts +44 -44
  130. package/src/components/layout/Loading/index.tsx +29 -29
  131. package/src/components/layout/Loading/styles.ts +29 -29
  132. package/src/components/layout/Modal/index.tsx +51 -51
  133. package/src/components/layout/Modal/styles.ts +110 -110
  134. package/src/components/layout/index.ts +3 -3
  135. package/src/config/index.ts +14 -14
  136. package/src/helpers/dates.ts +9 -0
  137. package/src/helpers/getScrollbarSize.ts +14 -14
  138. package/src/helpers/numbers.ts +20 -20
  139. package/src/hooks/index.ts +2 -2
  140. package/src/hooks/useElementSize.ts +24 -24
  141. package/src/hooks/useWindowSize.ts +20 -20
  142. package/src/index.ts +7 -7
  143. package/src/providers/PortalsProvider/index.tsx +54 -54
  144. package/src/providers/PortalsProvider/styles.ts +27 -27
  145. package/src/providers/SettingsProvider/index.tsx +70 -70
  146. package/src/providers/ThemeProvider/ThemeProvider.ts +55 -55
  147. package/src/providers/ThemeProvider/defaultTheme.ts +444 -444
  148. package/src/providers/ThemeProvider/index.ts +3 -3
  149. package/src/providers/ThemeProvider/types.ts +123 -123
  150. package/src/providers/UiProviders/index.tsx +65 -65
  151. package/src/providers/UiProviders/styles.ts +10 -10
  152. package/src/providers/hooks.ts +8 -8
  153. package/src/providers/index.ts +5 -5
  154. package/src/services/HttpService.ts +80 -80
  155. package/src/services/WebSocketService.ts +147 -147
  156. package/src/services/advancedRequests.ts +101 -101
  157. package/src/services/base.ts +31 -31
  158. package/src/services/hooks.ts +23 -23
  159. package/src/services/index.ts +2 -2
  160. package/src/services/sqlRequests.ts +99 -98
  161. package/src/styles/animations.scss +30 -30
  162. package/src/styles/index.scss +42 -42
  163. package/src/typings.d.ts +6 -6
  164. package/tsconfig.tsbuildinfo +1 -1
  165. package/dist/components/data/DataGrid/helpers.d.ts +0 -28
  166. package/dist/components/data/DataGrid/helpers.js +0 -436
  167. package/dist/config/types.d.ts +0 -11
  168. /package/dist/{config → components/data/AdvancedRequestDataGrid}/types.js +0 -0
@@ -0,0 +1,21 @@
1
+ import { AdvancedRequestRow, ConditionDTO, FieldDTO, OrderByDTO } from '../../../services/advancedRequests';
2
+ import { DataGridColumn, DataGridFilter, DataGridFilterType, DataGridProps } from '../DataGrid/types';
3
+ export type AdvancedRequestDataGridFilter<T extends DataGridFilterType = DataGridFilterType> = DataGridFilter<T> & {
4
+ field?: FieldDTO;
5
+ };
6
+ export type AdvancedRequestDataGridFilters = Record<string, AdvancedRequestDataGridFilter>;
7
+ export type AdvancedRequestDataGridColumn<R> = DataGridColumn<R> & {
8
+ filter?: AdvancedRequestDataGridFilter;
9
+ field?: FieldDTO;
10
+ filterField?: string;
11
+ sortField?: string;
12
+ };
13
+ export type AdvancedRequestDataGridColumns<R> = Record<string, AdvancedRequestDataGridColumn<R>>;
14
+ export type AdvancedRequestDataGridProps<R> = Omit<DataGridProps<R>, 'rows' | 'columns'> & {
15
+ columns: AdvancedRequestDataGridColumns<R>;
16
+ type: string;
17
+ orderBy?: OrderByDTO[];
18
+ conditions?: ConditionDTO[];
19
+ idField?: FieldDTO | null;
20
+ parser?: (row: AdvancedRequestRow<R>) => R;
21
+ };
@@ -1,10 +1,9 @@
1
- import { AdvancedRequestRow, ConditionDTO, OrderByDTO } from '../../../services/advancedRequests';
1
+ import { ConditionDTO, OrderByDTO } from '../../../services/advancedRequests';
2
2
  import { DataGridProps } from './types';
3
3
  export type AdvancedRequestDataGridProps<R> = Omit<DataGridProps<R>, 'rows'> & {
4
4
  type: string;
5
5
  orderBy?: OrderByDTO[];
6
6
  conditions?: ConditionDTO[];
7
7
  addIdColumn?: boolean;
8
- parser?: (row: AdvancedRequestRow<R>) => R;
9
8
  };
10
9
  export declare const AdvancedRequestDataGrid: <R>(props: AdvancedRequestDataGridProps<R>) => import("react/jsx-runtime").JSX.Element;
@@ -93,14 +93,13 @@ var AdvancedRequestDataGrid = function (props) {
93
93
  getTotal: getTotal,
94
94
  })).then(function (response) {
95
95
  var _a;
96
- var _b, _c;
96
+ var _b;
97
97
  if (getTotal) {
98
98
  currentRows.current = Array(response.total).fill(null);
99
99
  if (getTotal)
100
100
  setTotal((_b = response.total) !== null && _b !== void 0 ? _b : 0);
101
101
  }
102
- var parsedRows = response.data.map((_c = props.parser) !== null && _c !== void 0 ? _c : (function (row) { return row; }));
103
- (_a = currentRows.current).splice.apply(_a, __spreadArray([start, length], parsedRows, false));
102
+ (_a = currentRows.current).splice.apply(_a, __spreadArray([start, length], response.data, false));
104
103
  setRows(__spreadArray([], currentRows.current, true));
105
104
  });
106
105
  }, 100));
@@ -151,14 +150,13 @@ var AdvancedRequestDataGrid = function (props) {
151
150
  orderBy: orderBy,
152
151
  start: 0,
153
152
  length: total,
154
- })).then(function (response) { var _a; return response.data.map((_a = props.parser) !== null && _a !== void 0 ? _a : (function (row) { return row; })); });
153
+ })).then(function (response) { return response.data; });
155
154
  }, [
156
155
  advancedRequest,
157
156
  conditions,
158
157
  orderBy,
159
158
  props.columns,
160
159
  props.conditions,
161
- props.parser,
162
160
  props.type,
163
161
  total,
164
162
  ]);
@@ -1,2 +1,2 @@
1
1
  import { DataGridCellProps } from './types';
2
- export declare const DataGridCell: <R>({ row, rowIndex, columnKey, columnIndex, column, context, className, style, }: DataGridCellProps<R>) => import("react/jsx-runtime").JSX.Element;
2
+ export declare const DataGridCell: <R>({ row, rowIndex, columnKey, columnIndex, column, context, style, }: DataGridCellProps<R>) => import("react/jsx-runtime").JSX.Element;
@@ -30,18 +30,18 @@ var jsx_runtime_1 = require("react/jsx-runtime");
30
30
  var styles = __importStar(require("./styles"));
31
31
  var react_1 = require("react");
32
32
  var DataGridEditableCell_1 = require("./DataGridEditableCell");
33
- var lodash_1 = require("lodash");
34
33
  var hooks_1 = require("./hooks");
35
- var defaultRender = function (col, row) {
34
+ var defaultRender = function (row, col) {
36
35
  var value = col.propertyName ? row[col.propertyName] : '';
37
36
  return !value ? '' : String(value);
38
37
  };
39
38
  var DataGridCell = function (_a) {
40
- var _b;
41
- var row = _a.row, rowIndex = _a.rowIndex, columnKey = _a.columnKey, columnIndex = _a.columnIndex, column = _a.column, context = _a.context, className = _a.className, style = _a.style;
42
- var _c = (0, hooks_1.useDataGridContext)(context), name = _c.name, editable = _c.editable, _d = _c.editingCell, editingCell = _d === void 0 ? [-1, -1] : _d, setEditingCell = _c.setEditingCell, onRowDoubleClick = _c.onRowDoubleClick;
39
+ var _b, _c;
40
+ var row = _a.row, rowIndex = _a.rowIndex, columnKey = _a.columnKey, columnIndex = _a.columnIndex, column = _a.column, context = _a.context, style = _a.style;
41
+ var _d = (0, hooks_1.useDataGridContext)(context), name = _d.name, editable = _d.editable, _e = _d.editingCell, editingCell = _e === void 0 ? [-1, -1] : _e, setEditingCell = _d.setEditingCell, onRowDoubleClick = _d.onRowDoubleClick;
43
42
  var isEditable = !!editable && !!column.editable && column.type && column.getter;
44
43
  var isEditing = isEditable && editingCell[0] === rowIndex && editingCell[1] === columnIndex;
44
+ var DataGridCellComponent = (_b = column.component) !== null && _b !== void 0 ? _b : styles.DataGridCell;
45
45
  var onDoubleClick = (0, react_1.useCallback)(function (e) {
46
46
  e.stopPropagation();
47
47
  e.preventDefault();
@@ -54,6 +54,6 @@ var DataGridCell = function (_a) {
54
54
  if (isEditing) {
55
55
  return ((0, jsx_runtime_1.jsx)(DataGridEditableCell_1.DataGridEditableCell, { row: row, rowIndex: rowIndex, columnKey: columnKey, columnIndex: columnIndex, column: column, context: context }, "".concat(name, "-").concat(rowIndex, "-").concat(columnIndex)));
56
56
  }
57
- return ((0, jsx_runtime_1.jsx)(styles.DataGridCell, { className: (0, lodash_1.join)([className, column.className, column.bodyClassName], ' '), onDoubleClick: onDoubleClick, style: style, children: ((_b = column.render) !== null && _b !== void 0 ? _b : defaultRender)(column, row) }, "".concat(name, "-").concat(rowIndex, "-").concat(columnIndex)));
57
+ return ((0, jsx_runtime_1.jsx)(DataGridCellComponent, { onDoubleClick: onDoubleClick, style: style, children: ((_c = column.render) !== null && _c !== void 0 ? _c : defaultRender)(row, column) }, "".concat(name, "-").concat(rowIndex, "-").concat(columnIndex)));
58
58
  };
59
59
  exports.DataGridCell = DataGridCell;
@@ -5,7 +5,6 @@ var jsx_runtime_1 = require("react/jsx-runtime");
5
5
  /* eslint-disable @typescript-eslint/no-explicit-any */
6
6
  /* eslint-disable @typescript-eslint/no-unnecessary-type-constraint */
7
7
  var react_1 = require("react");
8
- var lodash_1 = require("lodash");
9
8
  var hooks_1 = require("./hooks");
10
9
  var DataGridEditableCell = function (_a) {
11
10
  var row = _a.row, columnKey = _a.columnKey, column = _a.column, context = _a.context;
@@ -19,13 +18,9 @@ var DataGridEditableCell = function (_a) {
19
18
  onCellEdited === null || onCellEdited === void 0 ? void 0 : onCellEdited(row, columnKey, value);
20
19
  setEditingCell([-1, -1]);
21
20
  }, [columnKey, onCellEdited, row, setEditingCell, value]);
22
- return ((0, jsx_runtime_1.jsxs)("td", { className: (0, lodash_1.join)([
23
- // 'whitespace-nowrap py-1 text-sm',
24
- column.className,
25
- column.bodyClassName,
26
- ], ' '), children: [(0, jsx_runtime_1.jsx)("input", { type: "text",
21
+ return ((0, jsx_runtime_1.jsxs)("td", { children: [(0, jsx_runtime_1.jsx)("input", { type: "text",
27
22
  // className="relative z-10 block text-normal w-full border-0 py-1.5 text-gray-900 ring-1 ring-inset ring-gray-300 placeholder:text-gray-400 focus:ring-2 focus:ring-inset focus:ring-sky-600 sm:text-sm sm:leading-6"
28
- value: value, onChange: function (e) { return setValue(e.target.value); } }), (0, jsx_runtime_1.jsx)("div", {
23
+ value: String(value), onChange: function (e) { return setValue(e.target.value); } }), (0, jsx_runtime_1.jsx)("div", {
29
24
  // className="fixed inset-0 bg-black bg-opacity-10"
30
25
  onClick: onClose })] }, columnKey));
31
26
  };
@@ -56,14 +56,14 @@ var FilterValuesScroller_1 = require("../FilterValuesScroller");
56
56
  var forms_1 = require("../../../forms");
57
57
  var hooks_1 = require("./hooks");
58
58
  var DataGridFilterMenu = function (_a) {
59
- var _b, _c;
59
+ var _b, _c, _d;
60
60
  var columnKey = _a.columnKey, context = _a.context, onClose = _a.onClose;
61
- var _d = (0, hooks_1.useFilterModal)({ columnKey: columnKey, context: context }), openModal = _d.openModal, modal = _d.modal;
62
- var _e = (0, react_1.useContext)(context), _f = _e.filters, filters = _f === void 0 ? {} : _f, rows = _e.rows, columns = _e.columns, setFilters = _e.setFilters, filterValuesLoader = _e.filterValuesLoader;
61
+ var _e = (0, hooks_1.useFilterModal)({ columnKey: columnKey, context: context }), openModal = _e.openModal, modal = _e.modal;
62
+ var _f = (0, react_1.useContext)(context), _g = _f.filters, filters = _g === void 0 ? {} : _g, rows = _f.rows, columns = _f.columns, setFilters = _f.setFilters, filterValuesLoader = _f.filterValuesLoader;
63
63
  var column = (_b = columns[columnKey]) !== null && _b !== void 0 ? _b : {};
64
64
  var textFilterInputRef = (0, react_1.useRef)(null);
65
- var _g = (0, react_1.useState)(''), textFilter = _g[0], setTextFilter = _g[1];
66
- var _h = (0, react_1.useState)([]), availableValues = _h[0], setAvailableValues = _h[1];
65
+ var _h = (0, react_1.useState)(''), textFilter = _h[0], setTextFilter = _h[1];
66
+ var _j = (0, react_1.useState)([]), availableValues = _j[0], setAvailableValues = _j[1];
67
67
  (0, react_1.useEffect)(function () {
68
68
  if (filterValuesLoader) {
69
69
  filterValuesLoader(columnKey).then(function (values) {
@@ -111,7 +111,8 @@ var DataGridFilterMenu = function (_a) {
111
111
  var checked = (0, lodash_1.intersection)(selectedValues, values).length === values.length;
112
112
  setValuesChecked(values, !checked);
113
113
  }, [setValuesChecked, selectedValues]);
114
- var formatter = (0, react_1.useMemo)(function () { var _a, _b; return (_b = (_a = column.filter) === null || _a === void 0 ? void 0 : _a.formatter) !== null && _b !== void 0 ? _b : (function (v) { return (v === null ? null : String(v)); }); }, [(_c = column.filter) === null || _c === void 0 ? void 0 : _c.formatter]);
114
+ var formatter = (0, react_1.useMemo)(function () { var _a, _b; return (_b = (_a = column.filter) === null || _a === void 0 ? void 0 : _a.formatter) !== null && _b !== void 0 ? _b : helpers_1.defaultRendererAndFormatter; }, [(_c = column.filter) === null || _c === void 0 ? void 0 : _c.formatter]);
115
+ var renderer = (0, react_1.useMemo)(function () { var _a, _b; return (_b = (_a = column.filter) === null || _a === void 0 ? void 0 : _a.renderer) !== null && _b !== void 0 ? _b : helpers_1.defaultRendererAndFormatter; }, [(_d = column.filter) === null || _d === void 0 ? void 0 : _d.renderer]);
115
116
  var filteredAvailableValues = (0, react_1.useMemo)(function () {
116
117
  return !textFilter
117
118
  ? availableValues
@@ -125,13 +126,14 @@ var DataGridFilterMenu = function (_a) {
125
126
  var checkboxesComponent = (0, react_1.useMemo)(function () {
126
127
  if (column.type === 'date') {
127
128
  var groups = (0, helpers_1.getDateGroups)(filteredAvailableValues);
128
- return ((0, jsx_runtime_1.jsx)(FilterValuesScroller_1.FilterValuesScroller, { values: filteredAvailableValues, selectedValues: selectedValues, onToggle: toggleValues, formatter: formatter, groups: groups }));
129
+ return ((0, jsx_runtime_1.jsx)(FilterValuesScroller_1.FilterValuesScroller, { values: filteredAvailableValues, selectedValues: selectedValues, onToggle: toggleValues, formatter: formatter, renderer: renderer, groups: groups }));
129
130
  }
130
- return ((0, jsx_runtime_1.jsx)(FilterValuesScroller_1.FilterValuesScroller, { values: filteredAvailableValues, selectedValues: selectedValues, onToggle: toggleValues, formatter: formatter }));
131
+ return ((0, jsx_runtime_1.jsx)(FilterValuesScroller_1.FilterValuesScroller, { values: filteredAvailableValues, selectedValues: selectedValues, onToggle: toggleValues, formatter: formatter, renderer: renderer }));
131
132
  }, [
132
133
  column.type,
133
134
  filteredAvailableValues,
134
135
  formatter,
136
+ renderer,
135
137
  selectedValues,
136
138
  toggleValues,
137
139
  ]);
@@ -3,29 +3,19 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.DataGridFooter = void 0;
4
4
  var jsx_runtime_1 = require("react/jsx-runtime");
5
5
  var getScrollbarSize_1 = require("../../../helpers/getScrollbarSize");
6
- var lodash_1 = require("lodash");
7
6
  var hooks_1 = require("./hooks");
8
7
  var SCROLL_BAR_SIZE = (0, getScrollbarSize_1.getScrollBarSize)();
9
8
  var DataGridFooter = function (_a) {
10
9
  var context = _a.context;
11
10
  var _b = (0, hooks_1.useDataGridContext)(context), visibleColumns = _b.visibleColumns, rows = _b.rows, selectedRows = _b.selectedRows, sortedRows = _b.sortedRows, _c = _b.rowHeight, rowHeight = _c === void 0 ? 48 : _c, selectable = _b.selectable;
12
- return ((0, jsx_runtime_1.jsx)("tfoot", {
13
- // className="block border-t border-t-gray-300"
14
- style: {
11
+ return ((0, jsx_runtime_1.jsx)("tfoot", { style: {
15
12
  paddingRight: "".concat(SCROLL_BAR_SIZE[0], "px"),
16
- }, children: (0, jsx_runtime_1.jsxs)("tr", {
17
- // className="grid bg-gray-100"
18
- style: {
13
+ }, children: (0, jsx_runtime_1.jsxs)("tr", { style: {
19
14
  height: "".concat(rowHeight, "px"),
20
- }, children: [!!selectable && ((0, jsx_runtime_1.jsx)("th", {}, "__select_checkbox__")), visibleColumns.map(function (_a) {
15
+ }, children: [!!selectable && (0, jsx_runtime_1.jsx)("div", {}, "__select_checkbox__"), visibleColumns.map(function (_a) {
21
16
  var _b, _c;
22
17
  var key = _a[0], col = _a[1];
23
- return ((0, jsx_runtime_1.jsx)("th", { className: (0, lodash_1.join)([
24
- // 'inline-block relative group px-3 py-0 text-left text-sm hover:bg-gray-50 leading-6',
25
- col.className,
26
- col.footerClassName,
27
- // '!overflow-visible',
28
- ], ' '), style: { width: ((_b = col.width) !== null && _b !== void 0 ? _b : 150) + 'px' }, children: (_c = col.footer) === null || _c === void 0 ? void 0 : _c.call(col, rows, sortedRows, selectedRows) }, key));
18
+ return ((0, jsx_runtime_1.jsx)("div", { style: { width: ((_b = col.width) !== null && _b !== void 0 ? _b : 150) + 'px' }, children: (_c = col.footer) === null || _c === void 0 ? void 0 : _c.call(col, rows, sortedRows, selectedRows) }, key));
29
19
  })] }) }));
30
20
  };
31
21
  exports.DataGridFooter = DataGridFooter;
@@ -22,6 +22,42 @@ var __importStar = (this && this.__importStar) || function (mod) {
22
22
  __setModuleDefault(result, mod);
23
23
  return result;
24
24
  };
25
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
26
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
27
+ return new (P || (P = Promise))(function (resolve, reject) {
28
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
29
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
30
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
31
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
32
+ });
33
+ };
34
+ var __generator = (this && this.__generator) || function (thisArg, body) {
35
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
36
+ return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
37
+ function verb(n) { return function (v) { return step([n, v]); }; }
38
+ function step(op) {
39
+ if (f) throw new TypeError("Generator is already executing.");
40
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
41
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
42
+ if (y = 0, t) op = [op[0] & 2, t.value];
43
+ switch (op[0]) {
44
+ case 0: case 1: t = op; break;
45
+ case 4: _.label++; return { value: op[1], done: false };
46
+ case 5: _.label++; y = op[1]; op = [0]; continue;
47
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
48
+ default:
49
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
50
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
51
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
52
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
53
+ if (t[2]) _.ops.pop();
54
+ _.trys.pop(); continue;
55
+ }
56
+ op = body.call(thisArg, _);
57
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
58
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
59
+ }
60
+ };
25
61
  Object.defineProperty(exports, "__esModule", { value: true });
26
62
  exports.DataGridHeader = void 0;
27
63
  var jsx_runtime_1 = require("react/jsx-runtime");
@@ -38,32 +74,44 @@ var hooks_1 = require("./DataGridColumnsModal/hooks");
38
74
  var hooks_2 = require("./hooks");
39
75
  var DataGridHeader = function (_a) {
40
76
  var context = _a.context;
41
- var _b = (0, hooks_2.useDataGridContext)(context), name = _b.name, visibleColumns = _b.visibleColumns, selectable = _b.selectable, rows = _b.rows, selectedRows = _b.selectedRows, setSelectedRows = _b.setSelectedRows, copyTable = _b.copyTable, setFilters = _b.setFilters, refresh = _b.refresh, headerColor = _b.headerColor;
77
+ var _b = (0, hooks_2.useDataGridContext)(context), name = _b.name, visibleColumns = _b.visibleColumns, selectable = _b.selectable, rows = _b.rows, selectedKeys = _b.selectedKeys, setSelectedKeys = _b.setSelectedKeys, copyTable = _b.copyTable, setFilters = _b.setFilters, refresh = _b.refresh, headerColor = _b.headerColor, rowKeyGetter = _b.rowKeyGetter, gridTemplateColumns = _b.gridTemplateColumns, getAllIds = _b.getAllIds;
42
78
  var _c = (0, react_1.useState)(), visibleFilter = _c[0], setVisibleFilter = _c[1];
43
79
  var _d = (0, hooks_1.useDataGridColumnsModal)(context), openModal = _d.openModal, modal = _d.modal;
44
- var checkboxStatus = selectedRows.length === 0
80
+ var checkboxStatus = selectedKeys.length === 0
45
81
  ? false
46
- : selectedRows.length === rows.length
82
+ : selectedKeys.length === rows.length
47
83
  ? true
48
84
  : undefined;
49
- var toggleAll = (0, react_1.useCallback)(function (newStatus) {
50
- setSelectedRows(newStatus ? rows : []);
51
- }, [rows, setSelectedRows]);
85
+ var toggleAll = (0, react_1.useCallback)(function (newStatus) { return __awaiter(void 0, void 0, void 0, function () {
86
+ var allIds, _a;
87
+ return __generator(this, function (_b) {
88
+ switch (_b.label) {
89
+ case 0:
90
+ if (!getAllIds) return [3 /*break*/, 2];
91
+ return [4 /*yield*/, getAllIds()];
92
+ case 1:
93
+ _a = _b.sent();
94
+ return [3 /*break*/, 3];
95
+ case 2:
96
+ _a = rows.map(rowKeyGetter);
97
+ _b.label = 3;
98
+ case 3:
99
+ allIds = _a;
100
+ setSelectedKeys(newStatus ? allIds : []);
101
+ return [2 /*return*/];
102
+ }
103
+ });
104
+ }); }, [getAllIds, rowKeyGetter, rows, setSelectedKeys]);
52
105
  var onFilterButtonClicked = (0, react_1.useCallback)(function (columnKey) {
53
106
  setVisibleFilter(function (prev) { return (prev === columnKey ? undefined : columnKey); });
54
107
  }, []);
55
- var gridTemplateColumns = (0, react_1.useMemo)(function () { return visibleColumns.map(function (_a) {
56
- var _b;
57
- var col = _a[1];
58
- return "".concat((_b = col.width) !== null && _b !== void 0 ? _b : 150, "px");
59
- }).join(' '); }, [visibleColumns]);
60
108
  var _e = (0, react_1.useState)(false), isLoadingVisible = _e[0], setIsLoadingVisible = _e[1];
61
109
  var runCopyTable = (0, react_1.useCallback)(function () {
62
110
  setIsLoadingVisible(true);
63
111
  copyTable().then(function () { return setIsLoadingVisible(false); });
64
112
  }, [copyTable]);
65
113
  var toolsRow = ((0, jsx_runtime_1.jsxs)(styles.DataGridToolsRow, { children: [(0, jsx_runtime_1.jsx)(layout_1.Loading, { visible: isLoadingVisible }), refresh && ((0, jsx_runtime_1.jsxs)(forms_1.Button, { size: "small", onClick: refresh, children: [(0, jsx_runtime_1.jsx)(Icons_1.ArrowsRotateIcon, {}), "Rafra\u00EEchir"] })), (0, jsx_runtime_1.jsxs)(forms_1.Button, { color: "emerald", size: "small", onClick: runCopyTable, children: [(0, jsx_runtime_1.jsx)(Icons_1.CopyIcon, {}), "Copier la table"] }), (0, jsx_runtime_1.jsxs)(forms_1.Button, { size: "small", color: "danger", onClick: function () { return setFilters({}); }, children: [(0, jsx_runtime_1.jsx)(Icons_1.FilterSlashIcon, {}), "Supprimer les filtres"] }), name && ((0, jsx_runtime_1.jsxs)(forms_1.Button, { color: "info", size: "small", onClick: openModal, children: [(0, jsx_runtime_1.jsx)(Icons_1.TableColumnsIcon, {}), "Param\u00E8tres des colonnes"] }))] }));
66
- return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [modal, toolsRow, (0, jsx_runtime_1.jsxs)(styles.DataGridHeaderRow, { "$gridTemplateColumns": gridTemplateColumns, "$headerColor": headerColor, children: [!!selectable && ((0, jsx_runtime_1.jsx)("th", { children: (0, jsx_runtime_1.jsx)(IndeterminateCheckbox_1.IndeterminateCheckbox, { checked: checkboxStatus, onChange: function () { return toggleAll(!checkboxStatus); } }) })), visibleColumns.map(function (_a, index) {
114
+ return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [modal, toolsRow, (0, jsx_runtime_1.jsxs)(styles.DataGridHeaderRow, { "$gridTemplateColumns": gridTemplateColumns, "$headerColor": headerColor, children: [!!selectable && ((0, jsx_runtime_1.jsx)(styles.HeaderSelectionCell, { "$headerColor": headerColor, children: (0, jsx_runtime_1.jsx)(IndeterminateCheckbox_1.IndeterminateCheckbox, { checked: checkboxStatus, onChange: function () { return toggleAll(!(checkboxStatus !== null && checkboxStatus !== void 0 ? checkboxStatus : true)); } }) })), visibleColumns.map(function (_a, index) {
67
115
  var key = _a[0], col = _a[1];
68
116
  return ((0, jsx_runtime_1.jsx)(DataGridHeaderCell_1.DataGridHeaderCell, { columnKey: key, column: col, context: context, columnIndex: index, isFilterOpen: visibleFilter === key, onFilterButtonClicked: onFilterButtonClicked }, key));
69
117
  })] })] }));
@@ -36,11 +36,11 @@ var IconButton_1 = require("../../forms/IconButton");
36
36
  var hooks_1 = require("./hooks");
37
37
  var providers_1 = require("../../../providers");
38
38
  var DataGridHeaderCell = function (_a) {
39
- var _b, _c;
39
+ var _b;
40
40
  var columnKey = _a.columnKey, columnIndex = _a.columnIndex, column = _a.column, context = _a.context;
41
41
  var getElementScreenRect = (0, providers_1.useUi)().getElementScreenRect;
42
42
  var contextValue = (0, hooks_1.useDataGridContext)(context);
43
- var _d = contextValue.filters, filters = _d === void 0 ? {} : _d, _e = contextValue.sorts, sorts = _e === void 0 ? {} : _e, setSorts = contextValue.setSorts, setColumnWidth = contextValue.setColumnWidth, saveSettings = contextValue.saveSettings, headerColor = contextValue.headerColor;
43
+ var _c = contextValue.filters, filters = _c === void 0 ? {} : _c, _d = contextValue.sorts, sorts = _d === void 0 ? {} : _d, setSorts = contextValue.setSorts, setColumnWidth = contextValue.setColumnWidth, saveSettings = contextValue.saveSettings, headerColor = contextValue.headerColor;
44
44
  var filterButtonRef = (0, react_1.useRef)(null);
45
45
  /** SORTING */
46
46
  var SortIcon = sorts[columnKey]
@@ -59,7 +59,7 @@ var DataGridHeaderCell = function (_a) {
59
59
  }
60
60
  }, [setSorts, sorts]);
61
61
  /** RESIZING */
62
- var _f = (0, react_1.useState)(false), isResizing = _f[0], setIsResizing = _f[1];
62
+ var _e = (0, react_1.useState)(false), isResizing = _e[0], setIsResizing = _e[1];
63
63
  var resizingOffset = (0, react_1.useRef)(0);
64
64
  var onResizeStart = (0, react_1.useCallback)(function (e) {
65
65
  resizingOffset.current = e.screenX - (column.width || 150);
@@ -75,7 +75,7 @@ var DataGridHeaderCell = function (_a) {
75
75
  setIsResizing(false);
76
76
  saveSettings();
77
77
  }, [saveSettings]);
78
- var _g = (0, react_1.useState)(false), isFilterDropdownVisible = _g[0], setIsFilterDropdownVisible = _g[1];
78
+ var _f = (0, react_1.useState)(false), isFilterDropdownVisible = _f[0], setIsFilterDropdownVisible = _f[1];
79
79
  var filterDropdown = (0, react_1.useMemo)(function () {
80
80
  if (!isFilterDropdownVisible || !filterButtonRef.current || !columnKey) {
81
81
  return null;
@@ -94,6 +94,7 @@ var DataGridHeaderCell = function (_a) {
94
94
  var onFilterButtonClicked = (0, react_1.useCallback)(function () {
95
95
  setIsFilterDropdownVisible(true);
96
96
  }, []);
97
- return ((0, jsx_runtime_1.jsxs)(styles.DataGridHeaderCellContainer, { "$headerColor": headerColor, "$isResizing": isResizing, children: [filterDropdown, (0, jsx_runtime_1.jsx)("span", { children: column.name }), !!column.sortGetter && ((0, jsx_runtime_1.jsx)(IconButton_1.IconButton, { color: headerColor, size: "small", icon: SortIcon, onClick: function () { return onSortButtonClicked === null || onSortButtonClicked === void 0 ? void 0 : onSortButtonClicked(columnKey); } })), !!column.filter && ((0, jsx_runtime_1.jsx)(IconButton_1.IconButton, { size: "small", ref: filterButtonRef, icon: ((_b = filters[columnKey]) === null || _b === void 0 ? void 0 : _b.values.length) > 0 ? Icons_1.FilterFullIcon : Icons_1.FilterIcon, color: ((_c = filters[columnKey]) === null || _c === void 0 ? void 0 : _c.values.length) > 0 ? 'danger' : headerColor, onClick: onFilterButtonClicked })), column.resizable !== false && ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(styles.DataGridResizeGrip, { className: isResizing ? 'active' : '', "$headerColor": headerColor, onMouseDown: onResizeStart }), isResizing && ((0, jsx_runtime_1.jsx)(styles.ResizeBackdrop, { onMouseMove: onResizeMove, onMouseUp: onResizeEnd }))] }))] }));
97
+ var hasFilters = ((_b = filters[columnKey]) === null || _b === void 0 ? void 0 : _b.values.length) > 0;
98
+ return ((0, jsx_runtime_1.jsxs)(styles.DataGridHeaderCellContainer, { "$headerColor": headerColor, "$isResizing": isResizing, children: [filterDropdown, (0, jsx_runtime_1.jsx)("span", { children: column.name }), !!column.sortGetter && ((0, jsx_runtime_1.jsx)(IconButton_1.IconButton, { color: headerColor, size: "small", icon: SortIcon, onClick: function () { return onSortButtonClicked === null || onSortButtonClicked === void 0 ? void 0 : onSortButtonClicked(columnKey); } })), !!column.filter && ((0, jsx_runtime_1.jsx)(IconButton_1.IconButton, { size: "small", className: hasFilters ? 'danger' : '', ref: filterButtonRef, icon: hasFilters ? Icons_1.FilterFullIcon : Icons_1.FilterIcon, color: hasFilters ? 'danger' : headerColor, onClick: onFilterButtonClicked })), column.resizable !== false && ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(styles.DataGridResizeGrip, { className: isResizing ? 'active' : '', "$headerColor": headerColor, onMouseDown: onResizeStart }), isResizing && ((0, jsx_runtime_1.jsx)(styles.ResizeBackdrop, { onMouseMove: onResizeMove, onMouseUp: onResizeEnd }))] }))] }));
98
99
  };
99
100
  exports.DataGridHeaderCell = DataGridHeaderCell;
@@ -1,7 +1,7 @@
1
- import { DataGridFilter, DataGridFilterType } from '../types';
2
- type FilterModalContentProps<R, T extends DataGridFilterType = DataGridFilterType> = {
3
- filter: DataGridFilter<R, T>;
4
- onFilterChanged: (filter: DataGridFilter<R, T>) => void;
1
+ import { DataGridFilter } from '../types';
2
+ type FilterModalContentProps = {
3
+ filter: DataGridFilter;
4
+ onFilterChanged: (filter: DataGridFilter) => void;
5
5
  };
6
- export declare const FilterModalContent: <R, T extends DataGridFilterType = DataGridFilterType>({ filter, onFilterChanged, }: FilterModalContentProps<R, T>) => import("react/jsx-runtime").JSX.Element | null;
6
+ export declare const FilterModalContent: ({ filter, onFilterChanged, }: FilterModalContentProps) => import("react/jsx-runtime").JSX.Element | null;
7
7
  export {};
@@ -83,15 +83,17 @@ var FilterModalContent = function (_a) {
83
83
  var operator = filter.operator, type = filter.type, values = filter.values;
84
84
  return ((0, jsx_runtime_1.jsxs)(styles.FilterModalContentContainer, { children: [(0, jsx_runtime_1.jsxs)("label", { htmlFor: "filterOperator", children: [(0, jsx_runtime_1.jsx)("span", { children: "Op\u00E9rateur :" }), (0, jsx_runtime_1.jsx)(forms_1.Select, { name: "filterOperator", items: Object.entries(filterOperators[filter.type]), itemKey: 0, itemLabel: 1, value: String(operator), className: "text-sm", onChange: function (e) {
85
85
  return onFilterChanged(__assign(__assign({}, filter), { operator: e.target.value }));
86
- } })] }), (0, jsx_runtime_1.jsxs)("label", { htmlFor: "filterValue1", children: [(0, jsx_runtime_1.jsxs)("span", { children: [operator === 'inRange' ? 'Entre' : 'Valeur', " :"] }), (0, jsx_runtime_1.jsx)(forms_1.Input, { ref: value1Ref, name: "filterValue1", type: filter.type, value: (_b = values[0]) !== null && _b !== void 0 ? _b : '',
87
- // className={(type === 'number' ? 'w-24 ' : '') + 'text-sm'}
88
- onChange: function (e) {
89
- var newValues = __spreadArray([], values, true);
90
- newValues[0] =
91
- type === 'number'
92
- ? Number(e.target.value)
93
- : String(e.target.value);
94
- onFilterChanged(__assign(__assign({}, filter), { values: newValues }));
86
+ } })] }), (0, jsx_runtime_1.jsxs)("label", { htmlFor: "filterValue1", children: [(0, jsx_runtime_1.jsxs)("span", { children: [operator === 'inRange' ? 'Entre' : 'Valeur', " :"] }), (0, jsx_runtime_1.jsx)(forms_1.Input, { ref: value1Ref, name: "filterValue1", type: filter.type, value: (_b = values[0]) !== null && _b !== void 0 ? _b : '', onChange: function (e) {
87
+ if (type === 'number') {
88
+ var newValues = __spreadArray([], values, true);
89
+ newValues[0] = Number(e.target.value);
90
+ onFilterChanged(__assign(__assign({}, filter), { values: newValues }));
91
+ }
92
+ else {
93
+ var newValues = __spreadArray([], values, true);
94
+ newValues[0] = String(e.target.value);
95
+ onFilterChanged(__assign(__assign({}, filter), { values: newValues }));
96
+ }
95
97
  } })] }), operator === 'inRange' && ((0, jsx_runtime_1.jsxs)("label", { htmlFor: "filterValue2", children: [(0, jsx_runtime_1.jsx)("span", { children: "et" }), (0, jsx_runtime_1.jsx)("input", { name: "filterValue2", type: filter.type, value: (_c = values[1]) !== null && _c !== void 0 ? _c : '',
96
98
  // className="text-sm w-24"
97
99
  onChange: function (e) {
@@ -1,12 +1,13 @@
1
- import { DataGridFilterFormatter, DataGridFilterGroup } from './types';
2
- type FilterValuesScrollerProps<R extends string | number | null> = {
3
- values: R[];
1
+ import { DataGridFilterFormatter, DataGridFilterGroup, DataGridFilterRenderer, DataGridFilterValue } from './types';
2
+ type FilterValuesScrollerProps = {
3
+ values: DataGridFilterValue[];
4
4
  rowHeight?: number;
5
5
  formatter: DataGridFilterFormatter;
6
+ renderer: DataGridFilterRenderer;
6
7
  onRangeChange?: (startIndex: number, length: number) => void;
7
- onToggle?: (values: R[]) => void;
8
- selectedValues?: R[];
9
- groups?: DataGridFilterGroup<R>[];
8
+ onToggle?: (values: DataGridFilterValue[]) => void;
9
+ selectedValues?: DataGridFilterValue[];
10
+ groups?: DataGridFilterGroup[];
10
11
  };
11
- export declare const FilterValuesScroller: <R extends string | number | null>({ values, rowHeight, onRangeChange, onToggle, formatter, selectedValues, groups, }: FilterValuesScrollerProps<R>) => import("react/jsx-runtime").JSX.Element;
12
+ export declare const FilterValuesScroller: ({ values, rowHeight, onRangeChange, onToggle, formatter, renderer, selectedValues, groups, }: FilterValuesScrollerProps) => import("react/jsx-runtime").JSX.Element;
12
13
  export {};
@@ -39,23 +39,22 @@ var jsx_runtime_1 = require("react/jsx-runtime");
39
39
  /* eslint-disable @typescript-eslint/no-explicit-any */
40
40
  var styles = __importStar(require("./styles"));
41
41
  var lodash_1 = require("lodash");
42
- var react_1 = require("react");
43
42
  var helpers_1 = require("./helpers");
43
+ var react_1 = require("react");
44
44
  var hooks_1 = require("../../../hooks");
45
- var defaultFormatter = function (value) { return (value == null ? null : String(value)); };
46
45
  var CheckboxTemplate = function (_a) {
47
46
  var selectedValues = _a.selectedValues, value = _a.value, index = _a.index, className = _a.className, style = _a.style, onToggle = _a.onToggle;
48
47
  return ((0, jsx_runtime_1.jsxs)("div", { className: (0, lodash_1.join)([
49
48
  // 'absolute left-0 right-0 flex flex-row cursor-pointer hover:bg-gray-50',
50
49
  className,
51
- ], ' '), style: __assign(__assign({}, style), { paddingLeft: "".concat(value.level, "rem") }), title: value.displayValue || '(Vides)', onClick: function () { return onToggle === null || onToggle === void 0 ? void 0 : onToggle(value.values); }, children: [(0, jsx_runtime_1.jsx)("input", { type: "checkbox", checked: selectedValues.includes(value.values[0]), readOnly: true }), (0, jsx_runtime_1.jsx)("span", { children: value.displayValue || '(Vides)' })] }, index));
50
+ ], ' '), style: __assign(__assign({}, style), { paddingLeft: "".concat(value.level, "rem") }), title: value.title, onClick: function () { return onToggle === null || onToggle === void 0 ? void 0 : onToggle([value.value]); }, children: [(0, jsx_runtime_1.jsx)("input", { type: "checkbox", checked: selectedValues.includes(value.value), readOnly: true }), (0, jsx_runtime_1.jsx)("span", { children: value.displayValue || '(Vides)' })] }, index));
52
51
  };
53
52
  var FilterValuesScroller = function (_a) {
54
- var values = _a.values, _b = _a.rowHeight, rowHeight = _b === void 0 ? styles.DEFAULT_FILTER_ROW_HEIGHT : _b, onRangeChange = _a.onRangeChange, onToggle = _a.onToggle, _c = _a.formatter, formatter = _c === void 0 ? defaultFormatter : _c, _d = _a.selectedValues, selectedValues = _d === void 0 ? [] : _d, groups = _a.groups;
53
+ var values = _a.values, _b = _a.rowHeight, rowHeight = _b === void 0 ? styles.DEFAULT_FILTER_ROW_HEIGHT : _b, onRangeChange = _a.onRangeChange, onToggle = _a.onToggle, _c = _a.formatter, formatter = _c === void 0 ? helpers_1.defaultRendererAndFormatter : _c, _d = _a.renderer, renderer = _d === void 0 ? helpers_1.defaultRendererAndFormatter : _d, _e = _a.selectedValues, selectedValues = _e === void 0 ? [] : _e, groups = _a.groups;
55
54
  var scrollableRef = (0, react_1.useRef)(null);
56
55
  var height = (0, hooks_1.useElementSize)(scrollableRef.current).height;
57
56
  var tolerance = 20;
58
- var _e = (0, react_1.useState)(0), scrollTop = _e[0], setScrollTop = _e[1];
57
+ var _f = (0, react_1.useState)(0), scrollTop = _f[0], setScrollTop = _f[1];
59
58
  var index = Math.floor(scrollTop / rowHeight);
60
59
  var length = Math.ceil(height / rowHeight);
61
60
  // eslint-disable-next-line react-hooks/exhaustive-deps
@@ -63,7 +62,7 @@ var FilterValuesScroller = function (_a) {
63
62
  var target = e.target;
64
63
  setScrollTop(function () { return target.scrollTop; });
65
64
  }, 50), []);
66
- var checkboxes = (0, react_1.useMemo)(function () { return (0, helpers_1.getCheckboxes)(values, formatter !== null && formatter !== void 0 ? formatter : defaultFormatter, groups); }, [values, groups, formatter]);
65
+ var checkboxes = (0, react_1.useMemo)(function () { return (0, helpers_1.getCheckboxes)(values, renderer, formatter, groups); }, [values, groups, renderer, formatter]);
67
66
  var visibleCheckboxes = checkboxes.slice(Math.max(0, index - tolerance), index + length + 1 + tolerance);
68
67
  var firstCheckboxTop = Math.max(0, index - tolerance) * rowHeight;
69
68
  (0, react_1.useEffect)(function () {
@@ -30,17 +30,12 @@ var react_1 = require("react");
30
30
  var VirtualScroller = function (props) {
31
31
  var _a = (0, react_1.useContext)(props.context), _b = _a.rowHeight, rowHeight = _b === void 0 ? styles.DEFAULT_ROW_HEIGHT : _b,
32
32
  // headerRowHeight = styles.DEFAULT_HEADER_ROW_HEIGHT,
33
- sortedRows = _a.sortedRows, visibleColumns = _a.visibleColumns, index = _a.index, visibleRows = _a.visibleRows;
33
+ sortedRows = _a.sortedRows, index = _a.index, visibleRows = _a.visibleRows, gridTemplateColumns = _a.gridTemplateColumns;
34
34
  var rowTemplate = props.rowTemplate;
35
35
  var totalHeight = sortedRows.length * rowHeight;
36
36
  var topPadding = Math.max(0, index - styles.VIRTUAL_SCROLL_TOLERANCE) * rowHeight;
37
37
  // const headerAndFooterHeight =
38
38
  // 2 * headerRowHeight + (hasFooter ? rowHeight : 0) + 2;
39
- var gridTemplateColumns = (0, react_1.useMemo)(function () { return visibleColumns.map(function (_a) {
40
- var _b;
41
- var col = _a[1];
42
- return "".concat((_b = col.width) !== null && _b !== void 0 ? _b : 150, "px");
43
- }).join(' '); }, [visibleColumns]);
44
39
  return ((0, jsx_runtime_1.jsx)(styles.VirtualScrollerContainer, { "$height": totalHeight, children: (0, jsx_runtime_1.jsx)(styles.VirtualScrollerRowsContainer, { "$gridTemplateColumns": gridTemplateColumns, "$topPadding": topPadding, "$rowHeight": rowHeight, children: visibleRows.map(rowTemplate) }) }));
45
40
  };
46
41
  exports.VirtualScroller = VirtualScroller;
@@ -1,13 +1,12 @@
1
- import { DataGridColumn, DataGridColumns, DataGridFilterType, DataGridSettings } from '../types';
2
- export declare const isColumnVisible: <R>(obj: DataGridColumn<R, any> | DataGridSettings) => boolean;
3
- export declare const textColumn: <R extends Record<string, any>>(key: string, title: string, options?: Partial<DataGridColumn<R, DataGridFilterType>>) => DataGridColumns<R>;
4
- export declare const mailColumn: <R extends Record<string, any>>(key: string, title: string, options?: Partial<DataGridColumn<R, DataGridFilterType>>) => DataGridColumns<R>;
5
- export declare const phoneColumn: <R extends Record<string, any>>(key: string, title: string, options?: Partial<DataGridColumn<R, DataGridFilterType>>) => DataGridColumns<R>;
6
- export declare const dateColumn: <R extends Record<string, any>>(key: string, title: string, options?: Partial<DataGridColumn<R, DataGridFilterType>>) => DataGridColumns<R>;
7
- export declare const monthColumn: <R extends Record<string, any>>(key: string, title: string, options?: Partial<DataGridColumn<R, DataGridFilterType>>) => DataGridColumns<R>;
8
- export declare const numberColumn: <R extends Record<string, any>>(key: string, title: string, decimals?: number, options?: Partial<DataGridColumn<R, DataGridFilterType>>) => DataGridColumns<R>;
9
- export declare const moneyColumn: <R extends Record<string, any>>(key: string, title: string, decimals?: number, options?: Partial<DataGridColumn<R, DataGridFilterType>>) => DataGridColumns<R>;
10
- export declare const percentageColumn: <R extends Record<string, any>>(key: string, title: string, options?: Partial<DataGridColumn<R, DataGridFilterType>>) => DataGridColumns<R>;
11
- export declare const checkboxColumn: <R extends Record<string, any>>(key: string, title: string, options?: Partial<DataGridColumn<R, DataGridFilterType>>) => DataGridColumns<R>;
12
- export declare const colorColumn: <R extends Record<string, any>>(key: string, title: string, options?: Partial<DataGridColumn<R, DataGridFilterType>>) => DataGridColumns<R>;
13
- export declare const withGroupBy: <R extends Record<string, any>>(columns: DataGridColumns<R>) => DataGridColumns<R>;
1
+ import { DataGridColumn, DataGridColumns, DataGridSettings } from '../types';
2
+ export declare const isColumnVisible: <R>(obj: DataGridColumn<R> | DataGridSettings) => boolean;
3
+ export declare const textColumn: <R extends Record<string, any>>(key: string, title: string, options?: Partial<DataGridColumn<R>>) => DataGridColumns<R>;
4
+ export declare const mailColumn: <R extends Record<string, any>>(key: string, title: string, options?: Partial<DataGridColumn<R>>) => DataGridColumns<R>;
5
+ export declare const phoneColumn: <R extends Record<string, any>>(key: string, title: string, options?: Partial<DataGridColumn<R>>) => DataGridColumns<R>;
6
+ export declare const dateColumn: <R extends Record<string, any>>(key: string, title: string, options?: Partial<DataGridColumn<R>>) => DataGridColumns<R>;
7
+ export declare const monthColumn: <R extends Record<string, any>>(key: string, title: string, options?: Partial<DataGridColumn<R>>) => DataGridColumns<R>;
8
+ export declare const numberColumn: <R extends Record<string, any>>(key: string, title: string, decimals?: number, options?: Partial<DataGridColumn<R>>) => DataGridColumns<R>;
9
+ export declare const moneyColumn: <R extends Record<string, any>>(key: string, title: string, decimals?: number, options?: Partial<DataGridColumn<R>>) => DataGridColumns<R>;
10
+ export declare const percentageColumn: <R extends Record<string, any>>(key: string, title: string, options?: Partial<DataGridColumn<R>>) => DataGridColumns<R>;
11
+ export declare const checkboxColumn: <R extends Record<string, any>>(key: string, title: string, options?: Partial<DataGridColumn<R>>) => DataGridColumns<R>;
12
+ export declare const colorColumn: <R extends Record<string, any>>(key: string, title: string, options?: Partial<DataGridColumn<R>>) => DataGridColumns<R>;