@addev-be/ui 0.2.2 → 0.2.5

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 (71) hide show
  1. package/dist/components/data/AdvancedRequestDataGrid/helpers/advancedRequests.d.ts +14 -0
  2. package/dist/components/data/AdvancedRequestDataGrid/helpers/advancedRequests.js +76 -0
  3. package/dist/components/data/AdvancedRequestDataGrid/helpers/columns.d.ts +22 -0
  4. package/dist/components/data/AdvancedRequestDataGrid/helpers/columns.js +156 -0
  5. package/dist/components/data/AdvancedRequestDataGrid/helpers/index.d.ts +2 -0
  6. package/dist/components/data/AdvancedRequestDataGrid/helpers/index.js +18 -0
  7. package/dist/components/data/AdvancedRequestDataGrid/index.d.ts +2 -0
  8. package/dist/components/data/AdvancedRequestDataGrid/index.js +215 -0
  9. package/dist/components/data/AdvancedRequestDataGrid/types.d.ts +21 -0
  10. package/dist/components/data/AdvancedRequestDataGrid/types.js +2 -0
  11. package/dist/components/data/DataGrid/DataGridCell.js +2 -2
  12. package/dist/components/data/DataGrid/DataGridFooter.js +2 -2
  13. package/dist/components/data/DataGrid/DataGridHeader.js +62 -12
  14. package/dist/components/data/DataGrid/FilterModalContent/index.d.ts +1 -1
  15. package/dist/components/data/DataGrid/VirtualScroller.js +1 -6
  16. package/dist/components/data/DataGrid/helpers/columns.d.ts +12 -13
  17. package/dist/components/data/DataGrid/helpers/columns.js +17 -68
  18. package/dist/components/data/DataGrid/helpers/filters.d.ts +5 -5
  19. package/dist/components/data/DataGrid/helpers/filters.js +15 -18
  20. package/dist/components/data/DataGrid/helpers/index.d.ts +1 -2
  21. package/dist/components/data/DataGrid/helpers/index.js +1 -2
  22. package/dist/components/data/DataGrid/hooks/index.d.ts +2 -2
  23. package/dist/components/data/DataGrid/hooks/index.js +4 -4
  24. package/dist/components/data/DataGrid/hooks/useDataGrid.js +26 -4
  25. package/dist/components/data/DataGrid/index.js +12 -16
  26. package/dist/components/data/DataGrid/styles.d.ts +3 -1
  27. package/dist/components/data/DataGrid/styles.js +3 -3
  28. package/dist/components/data/DataGrid/types.d.ts +33 -45
  29. package/dist/components/data/SqlRequestDataGrid/helpers/columns.d.ts +16 -0
  30. package/dist/components/data/SqlRequestDataGrid/helpers/columns.js +114 -0
  31. package/dist/components/data/SqlRequestDataGrid/helpers/index.d.ts +2 -0
  32. package/dist/components/data/SqlRequestDataGrid/helpers/index.js +18 -0
  33. package/dist/components/data/SqlRequestDataGrid/helpers/sqlRequests.d.ts +3 -0
  34. package/dist/components/data/SqlRequestDataGrid/helpers/sqlRequests.js +18 -0
  35. package/dist/components/data/SqlRequestDataGrid/index.d.ts +2 -0
  36. package/dist/components/data/SqlRequestDataGrid/index.js +208 -0
  37. package/dist/components/data/SqlRequestDataGrid/types.d.ts +20 -0
  38. package/dist/components/data/SqlRequestDataGrid/types.js +2 -0
  39. package/dist/components/data/index.d.ts +5 -2
  40. package/dist/components/data/index.js +5 -2
  41. package/dist/components/forms/IconButton.js +1 -1
  42. package/dist/components/forms/IndeterminateCheckbox.js +1 -1
  43. package/dist/components/layout/Modal/index.js +1 -1
  44. package/dist/providers/PortalsProvider/index.d.ts +1 -1
  45. package/dist/providers/PortalsProvider/index.js +1 -1
  46. package/dist/services/HttpService.d.ts +10 -0
  47. package/dist/services/HttpService.js +117 -0
  48. package/dist/services/advancedRequests.d.ts +3 -3
  49. package/dist/services/advancedRequests.js +2 -2
  50. package/dist/services/hooks.d.ts +2 -1
  51. package/dist/services/hooks.js +10 -3
  52. package/dist/services/sqlRequests.d.ts +40 -0
  53. package/dist/services/sqlRequests.js +10 -0
  54. package/package.json +1 -1
  55. package/src/components/data/DataGrid/DataGridCell.tsx +3 -5
  56. package/src/components/data/DataGrid/DataGridHeader.tsx +3 -5
  57. package/src/components/data/DataGrid/DataGridHeaderCell.tsx +5 -4
  58. package/src/components/data/DataGrid/helpers/columns.tsx +1 -4
  59. package/src/components/data/DataGrid/hooks/useDataGrid.tsx +4 -1
  60. package/src/components/data/DataGrid/hooks/useDataGridCopy.ts +0 -1
  61. package/src/components/data/DataGrid/hooks/useDataGridSettings.ts +0 -1
  62. package/src/components/data/DataGrid/index.tsx +5 -6
  63. package/src/components/data/DataGrid/styles.ts +36 -9
  64. package/src/components/data/DataGrid/types.ts +10 -3
  65. package/src/components/data/SqlRequestDataGrid/helpers/columns.tsx +22 -4
  66. package/src/components/data/SqlRequestDataGrid/index.tsx +58 -27
  67. package/src/components/data/SqlRequestDataGrid/types.ts +1 -0
  68. package/src/components/data/index.ts +2 -0
  69. package/src/helpers/dates.ts +9 -0
  70. package/src/services/sqlRequests.ts +1 -0
  71. package/tsconfig.tsbuildinfo +1 -1
@@ -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,46 @@ 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.SelectionCell
115
+ // className="inline-flex items-center justify-center w-12 select-none"
116
+ , { children: (0, jsx_runtime_1.jsx)(IndeterminateCheckbox_1.IndeterminateCheckbox, { checked: checkboxStatus, onChange: function () { return toggleAll(!checkboxStatus); } }) })), visibleColumns.map(function (_a, index) {
67
117
  var key = _a[0], col = _a[1];
68
118
  return ((0, jsx_runtime_1.jsx)(DataGridHeaderCell_1.DataGridHeaderCell, { columnKey: key, column: col, context: context, columnIndex: index, isFilterOpen: visibleFilter === key, onFilterButtonClicked: onFilterButtonClicked }, key));
69
119
  })] })] }));
@@ -3,5 +3,5 @@ type FilterModalContentProps<R, T extends DataGridFilterType = DataGridFilterTyp
3
3
  filter: DataGridFilter<R, T>;
4
4
  onFilterChanged: (filter: DataGridFilter<R, T>) => 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: <R, T extends DataGridFilterType = keyof import("../types").DataGridFilterPredicates>({ filter, onFilterChanged, }: FilterModalContentProps<R, T>) => import("react/jsx-runtime").JSX.Element | null;
7
7
  export {};
@@ -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>;
@@ -14,82 +14,58 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
14
14
  return (mod && mod.__esModule) ? mod : { "default": mod };
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- exports.withGroupBy = exports.colorColumn = exports.checkboxColumn = exports.percentageColumn = exports.moneyColumn = exports.numberColumn = exports.monthColumn = exports.dateColumn = exports.phoneColumn = exports.mailColumn = exports.textColumn = exports.isColumnVisible = void 0;
17
+ exports.colorColumn = exports.checkboxColumn = exports.percentageColumn = exports.moneyColumn = exports.numberColumn = exports.monthColumn = exports.dateColumn = exports.phoneColumn = exports.mailColumn = exports.textColumn = exports.isColumnVisible = void 0;
18
18
  var jsx_runtime_1 = require("react/jsx-runtime");
19
19
  var numbers_1 = require("../../../../helpers/numbers");
20
- var lodash_1 = __importDefault(require("lodash"));
20
+ var filters_1 = require("./filters");
21
21
  var moment_1 = __importDefault(require("moment"));
22
22
  var isColumnVisible = function (obj) {
23
+ console.log('isColumnVisible obj=', obj);
23
24
  return (obj === null || obj === void 0 ? void 0 : obj.order) !== -1;
24
25
  };
25
26
  exports.isColumnVisible = isColumnVisible;
26
27
  var textColumn = function (key, title, options) {
27
28
  var _a;
28
29
  return (_a = {},
29
- _a[key] = __assign({ name: title, render: function (col, row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; }, getter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; }, sortGetter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; }, filter: {
30
- type: 'text',
31
- operator: 'contains',
32
- values: [''],
33
- getter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; },
34
- } }, options),
30
+ _a[key] = __assign({ name: title, render: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; }, getter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; }, sortGetter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; }, filter: (0, filters_1.textFilter)(key) }, options),
35
31
  _a);
36
32
  };
37
33
  exports.textColumn = textColumn;
38
34
  var mailColumn = function (key, title, options) {
39
35
  var _a;
40
36
  return (_a = {},
41
- _a[key] = __assign({ name: title, render: function (col, row) {
37
+ _a[key] = __assign({ name: title, render: function (row) {
42
38
  var _a;
43
39
  return ((0, jsx_runtime_1.jsx)("a", {
44
40
  // className="text-blue-500 hover:text-blue-700"
45
41
  href: "mailto:".concat(row[key]), children: (_a = row[key]) !== null && _a !== void 0 ? _a : '' }));
46
- }, getter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; }, sortGetter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; }, filter: {
47
- type: 'text',
48
- operator: 'contains',
49
- values: [''],
50
- getter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; },
51
- } }, options),
42
+ }, getter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; }, sortGetter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; }, filter: (0, filters_1.textFilter)(key) }, options),
52
43
  _a);
53
44
  };
54
45
  exports.mailColumn = mailColumn;
55
46
  var phoneColumn = function (key, title, options) {
56
47
  var _a;
57
48
  return (_a = {},
58
- _a[key] = __assign({ name: title, render: function (col, row) {
49
+ _a[key] = __assign({ name: title, render: function (row) {
59
50
  var _a;
60
51
  return ((0, jsx_runtime_1.jsx)("a", {
61
52
  // className="text-blue-500 hover:text-blue-700"
62
53
  href: "tel:".concat(row[key]), children: (_a = row[key]) !== null && _a !== void 0 ? _a : '' }));
63
- }, getter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; }, sortGetter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; }, filter: {
64
- type: 'text',
65
- operator: 'contains',
66
- values: [''],
67
- getter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; },
68
- } }, options),
54
+ }, getter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; }, sortGetter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; }, filter: (0, filters_1.textFilter)(key) }, options),
69
55
  _a);
70
56
  };
71
57
  exports.phoneColumn = phoneColumn;
72
58
  var dateColumn = function (key, title, options) {
73
59
  var _a;
74
60
  return (_a = {},
75
- _a[key] = __assign({ name: title, render: function (col, row) { var _a; return (_a = (0, moment_1.default)(row[key]).format('DD/MM/YYYY')) !== null && _a !== void 0 ? _a : ''; }, getter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; }, sortGetter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; }, filter: {
76
- type: 'text',
77
- operator: 'contains',
78
- values: [''],
79
- getter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; },
80
- } }, options),
61
+ _a[key] = __assign({ name: title, render: function (row) { var _a; return (_a = (0, moment_1.default)(row[key]).format('DD/MM/YYYY')) !== null && _a !== void 0 ? _a : ''; }, getter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; }, sortGetter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; }, filter: (0, filters_1.textFilter)(key) }, options),
81
62
  _a);
82
63
  };
83
64
  exports.dateColumn = dateColumn;
84
65
  var monthColumn = function (key, title, options) {
85
66
  var _a;
86
67
  return (_a = {},
87
- _a[key] = __assign({ name: title, render: function (col, row) { return (row[key] ? "".concat(row[key], " mois ") : ''); }, getter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; }, sortGetter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; }, filter: {
88
- type: 'text',
89
- operator: 'contains',
90
- values: [''],
91
- getter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; },
92
- } }, options),
68
+ _a[key] = __assign({ name: title, render: function (row) { return (row[key] ? "".concat(row[key], " mois ") : ''); }, getter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; }, sortGetter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; }, filter: (0, filters_1.textFilter)(key) }, options),
93
69
  _a);
94
70
  };
95
71
  exports.monthColumn = monthColumn;
@@ -97,11 +73,11 @@ var numberColumn = function (key, title, decimals, options) {
97
73
  var _a;
98
74
  if (decimals === void 0) { decimals = 2; }
99
75
  return (_a = {},
100
- _a[key] = __assign({ name: title, render: function (col, row) { var _a; return (_a = (0, numbers_1.formatNumber)(row[key], decimals)) !== null && _a !== void 0 ? _a : ''; }, excelFormatter: function () { return '#'; }, getter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; }, sortGetter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; }, filter: {
76
+ _a[key] = __assign({ name: title, render: function (row) { var _a; return (_a = (0, numbers_1.formatNumber)(row[key], decimals)) !== null && _a !== void 0 ? _a : ''; }, excelFormatter: function () { return '#'; }, getter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; }, sortGetter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; }, filter: {
101
77
  type: 'number',
102
78
  operator: 'equals',
103
79
  values: [0],
104
- getter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : 0; },
80
+ getter: function (value) { return value !== null && value !== void 0 ? value : 0; },
105
81
  } }, options),
106
82
  _a);
107
83
  };
@@ -110,58 +86,31 @@ var moneyColumn = function (key, title, decimals, options) {
110
86
  var _a;
111
87
  if (decimals === void 0) { decimals = 2; }
112
88
  return (_a = {},
113
- _a[key] = __assign({ name: title, render: function (col, row) { var _a; return (_a = (0, numbers_1.formatMoney)(row[key], decimals)) !== null && _a !== void 0 ? _a : ''; }, excelFormatter: function () { return '#0.00'; }, getter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; }, sortGetter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; }, filter: {
114
- type: 'number',
115
- operator: 'equals',
116
- values: [0],
117
- getter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : 0; },
118
- } }, options),
89
+ _a[key] = __assign({ name: title, render: function (row) { var _a; return (_a = (0, numbers_1.formatMoney)(row[key], decimals)) !== null && _a !== void 0 ? _a : ''; }, excelFormatter: function () { return '#0.00'; }, getter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; }, sortGetter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; }, filter: (0, filters_1.numberFilter)(key) }, options),
119
90
  _a);
120
91
  };
121
92
  exports.moneyColumn = moneyColumn;
122
93
  var percentageColumn = function (key, title, options) {
123
94
  var _a;
124
95
  return (_a = {},
125
- _a[key] = __assign({ name: title, render: function (col, row) { var _a; return (_a = (0, numbers_1.formatPercentage)(row[key])) !== null && _a !== void 0 ? _a : ''; }, excelFormatter: function () { return '#0.00'; }, getter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; }, sortGetter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; }, filter: {
126
- type: 'number',
127
- operator: 'equals',
128
- values: [0],
129
- getter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : 0; },
130
- } }, options),
96
+ _a[key] = __assign({ name: title, render: function (row) { var _a; return (_a = (0, numbers_1.formatPercentage)(row[key])) !== null && _a !== void 0 ? _a : ''; }, excelFormatter: function () { return '#0.00'; }, getter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; }, sortGetter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; }, filter: (0, filters_1.numberFilter)(key) }, options),
131
97
  _a);
132
98
  };
133
99
  exports.percentageColumn = percentageColumn;
134
100
  var checkboxColumn = function (key, title, options) {
135
101
  var _a;
136
102
  return (_a = {},
137
- _a[key] = __assign({ name: title, render: function (col, row) { return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)("input", { type: "checkbox", checked: row[key] }), (0, jsx_runtime_1.jsx)("span", { children: row[key] ? ' Oui' : ' Non' })] })); }, getter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; }, sortGetter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; }, filter: {
138
- type: 'number',
139
- operator: 'equals',
140
- values: [0],
141
- getter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : 0; },
142
- } }, options),
103
+ _a[key] = __assign({ name: title, render: function (row) { return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)("input", { type: "checkbox", checked: row[key] }), (0, jsx_runtime_1.jsx)("span", { children: row[key] ? ' Oui' : ' Non' })] })); }, getter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; }, sortGetter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; }, filter: (0, filters_1.numberFilter)(key) }, options),
143
104
  _a);
144
105
  };
145
106
  exports.checkboxColumn = checkboxColumn;
146
107
  var colorColumn = function (key, title, options) {
147
108
  var _a;
148
109
  return (_a = {},
149
- _a[key] = __assign({ name: title, render: function (col, row) {
110
+ _a[key] = __assign({ name: title, render: function (row) {
150
111
  var _a;
151
112
  return ((0, jsx_runtime_1.jsx)("div", { style: { backgroundColor: row[key] }, children: (_a = row[key]) !== null && _a !== void 0 ? _a : '' }));
152
- }, getter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; }, sortGetter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; }, filter: {
153
- type: 'text',
154
- operator: 'contains',
155
- values: [''],
156
- getter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; },
157
- } }, options),
113
+ }, getter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; }, sortGetter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; }, filter: (0, filters_1.textFilter)(key) }, options),
158
114
  _a);
159
115
  };
160
116
  exports.colorColumn = colorColumn;
161
- var withGroupBy = function (columns) {
162
- return lodash_1.default.mapValues(columns, function (column, key) {
163
- var _a;
164
- return (__assign(__assign({}, column), { field: __assign(__assign({}, ((_a = column.field) !== null && _a !== void 0 ? _a : { fieldName: key })), { groupBy: true }) }));
165
- });
166
- };
167
- exports.withGroupBy = withGroupBy;
@@ -1,8 +1,7 @@
1
- import { DataGridFilter, DataGridFilterCheckbox, DataGridFilterDataType, DataGridFilterFormatter, DataGridFilterGroup, DataGridFilterPredicates, DataGridFilterType, DataGridFilters } from '../types';
2
- import { ConditionDTO } from '../../../../services/advancedRequests';
1
+ import { DataGridFilter, DataGridFilterCheckbox, DataGridFilterDataType, DataGridFilterFormatter, DataGridFilterGroup, DataGridFilterPredicates, DataGridFilterType } from '../types';
3
2
  export declare const filtersPredicates: DataGridFilterPredicates;
4
- export declare const applyFilters: <R>(rows: R[], filters: DataGridFilter<R, DataGridFilterType>[]) => R[];
5
- export declare const applyFilter: <R, T extends DataGridFilterType>(rows: R[], filter: DataGridFilter<R, T>) => R[];
3
+ export declare const applyFilters: <R>(rows: R[], filters: DataGridFilter[]) => R[];
4
+ export declare const applyFilter: <R>(rows: R[], filter: DataGridFilter) => R[];
6
5
  export declare const defaultFilterGetter: (row: any, columnKey: string) => any;
7
6
  export declare const defaultFilterValues: {
8
7
  [K in DataGridFilterType]: DataGridFilterDataType<K>;
@@ -12,5 +11,6 @@ export declare const defaultValueParsers: {
12
11
  };
13
12
  export declare const groupDatesByYearAndMonth: (dates: any[]) => Record<string, Record<string, any[]>>;
14
13
  export declare const getDateGroups: <R extends string | number | null>(dates: any[]) => DataGridFilterGroup<R>[];
15
- export declare const convertFiltersToConditions: <R>(filters: DataGridFilters<R>) => ConditionDTO[];
16
14
  export declare const getCheckboxes: <R extends string | number | null>(values: R[], formatter: DataGridFilterFormatter, groups?: DataGridFilterGroup<R>[], level?: number) => DataGridFilterCheckbox<R>[];
15
+ export declare const textFilter: (key: string) => DataGridFilter<"text">;
16
+ export declare const numberFilter: (key: string) => DataGridFilter<"number">;
@@ -13,8 +13,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
13
13
  return (mod && mod.__esModule) ? mod : { "default": mod };
14
14
  };
15
15
  Object.defineProperty(exports, "__esModule", { value: true });
16
- exports.getCheckboxes = exports.convertFiltersToConditions = exports.getDateGroups = exports.groupDatesByYearAndMonth = exports.defaultValueParsers = exports.defaultFilterValues = exports.defaultFilterGetter = exports.applyFilter = exports.applyFilters = exports.filtersPredicates = void 0;
17
- var lodash_1 = __importDefault(require("lodash"));
16
+ exports.numberFilter = exports.textFilter = exports.getCheckboxes = exports.getDateGroups = exports.groupDatesByYearAndMonth = exports.defaultValueParsers = exports.defaultFilterValues = exports.defaultFilterGetter = exports.applyFilter = exports.applyFilters = exports.filtersPredicates = void 0;
18
17
  var moment_1 = __importDefault(require("moment"));
19
18
  var escapeRegExp = function (s) { return s.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'); };
20
19
  var textContainsPredicate = function () {
@@ -220,22 +219,6 @@ var getDateGroups = function (dates) {
220
219
  });
221
220
  };
222
221
  exports.getDateGroups = getDateGroups;
223
- var convertFiltersToConditions = function (filters) {
224
- return Object.entries(filters).map(function (_a) {
225
- var columnKey = _a[0], filter = _a[1];
226
- var condition = {
227
- field: {
228
- fieldName: columnKey,
229
- },
230
- operator: filter.operator,
231
- value: ['inArray', 'inRange'].includes(filter.operator)
232
- ? filter.values
233
- : lodash_1.default.castArray(filter.values)[0],
234
- };
235
- return condition;
236
- });
237
- };
238
- exports.convertFiltersToConditions = convertFiltersToConditions;
239
222
  var getCheckboxes = function (values, formatter, groups, level) {
240
223
  if (level === void 0) { level = 0; }
241
224
  return __spreadArray(__spreadArray([], (groups !== null && groups !== void 0 ? groups : [])
@@ -247,3 +230,17 @@ var getCheckboxes = function (values, formatter, groups, level) {
247
230
  }); }), true);
248
231
  };
249
232
  exports.getCheckboxes = getCheckboxes;
233
+ var textFilter = function (key) { return ({
234
+ type: 'text',
235
+ operator: 'contains',
236
+ values: [''],
237
+ getter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; },
238
+ }); };
239
+ exports.textFilter = textFilter;
240
+ var numberFilter = function (key) { return ({
241
+ type: 'number',
242
+ operator: 'equals',
243
+ values: [0],
244
+ getter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; },
245
+ }); };
246
+ exports.numberFilter = numberFilter;
@@ -1,3 +1,2 @@
1
- export * from './columns';
2
1
  export * from './filters';
3
- export * from './advancedRequests';
2
+ export * from './columns';
@@ -14,6 +14,5 @@ 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("./columns"), exports);
18
17
  __exportStar(require("./filters"), exports);
19
- __exportStar(require("./advancedRequests"), exports);
18
+ __exportStar(require("./columns"), exports);
@@ -3,5 +3,5 @@ export { useDataGridCopy } from './useDataGridCopy';
3
3
  export { useDataGridSettings } from './useDataGridSettings';
4
4
  export { useDataGrid } from './useDataGrid';
5
5
  export declare const useDataGridContext: <R>(context: DataGridContext<R>) => import("../types").DataGridContextProps<R>;
6
- export declare const useVisibleAndHiddenColumns: <R>(columns: DataGridColumns<R>) => import("lodash").Dictionary<import("../types").DataGridColumn<R, import("../types").DataGridFilterType | undefined>>[];
7
- export declare const useSortedColumns: <R>(columns: DataGridColumns<R>) => [string, import("../types").DataGridColumn<R, import("../types").DataGridFilterType | undefined>][];
6
+ export declare const useVisibleAndHiddenColumns: <R>(columns: DataGridColumns<R>) => import("lodash").Dictionary<import("../types").DataGridColumn<R>>[];
7
+ export declare const useSortedColumns: <R>(columns: DataGridColumns<R>) => [string, import("../types").DataGridColumn<R>][];
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.useSortedColumns = exports.useVisibleAndHiddenColumns = exports.useDataGridContext = exports.useDataGrid = exports.useDataGridSettings = exports.useDataGridCopy = void 0;
4
4
  var react_1 = require("react");
5
- var helpers_1 = require("../helpers");
5
+ var columns_1 = require("../helpers/columns");
6
6
  var lodash_1 = require("lodash");
7
7
  var useDataGridCopy_1 = require("./useDataGridCopy");
8
8
  Object.defineProperty(exports, "useDataGridCopy", { enumerable: true, get: function () { return useDataGridCopy_1.useDataGridCopy; } });
@@ -16,8 +16,8 @@ var useDataGridContext = function (context) {
16
16
  exports.useDataGridContext = useDataGridContext;
17
17
  var useVisibleAndHiddenColumns = function (columns) {
18
18
  return (0, react_1.useMemo)(function () { return [
19
- (0, lodash_1.pickBy)(columns, function (col) { return (0, helpers_1.isColumnVisible)(col); }),
20
- (0, lodash_1.pickBy)(columns, function (col) { return !(0, helpers_1.isColumnVisible)(col); }),
19
+ (0, lodash_1.pickBy)(columns, function (col) { return (0, columns_1.isColumnVisible)(col); }),
20
+ (0, lodash_1.pickBy)(columns, function (col) { return !(0, columns_1.isColumnVisible)(col); }),
21
21
  ]; }, [columns]);
22
22
  };
23
23
  exports.useVisibleAndHiddenColumns = useVisibleAndHiddenColumns;
@@ -26,7 +26,7 @@ var useSortedColumns = function (columns) {
26
26
  return Object.entries(columns)
27
27
  .filter(function (_a) {
28
28
  var col = _a[1];
29
- return (0, helpers_1.isColumnVisible)(col);
29
+ return (0, columns_1.isColumnVisible)(col);
30
30
  })
31
31
  .sort(function (a, b) { var _a, _b; return ((_a = a[1].order) !== null && _a !== void 0 ? _a : 0) - ((_b = b[1].order) !== null && _b !== void 0 ? _b : 0); });
32
32
  }, [columns]);
@@ -67,7 +67,7 @@ var lodash_1 = require("lodash");
67
67
  var useDataGridSettings_1 = require("./useDataGridSettings");
68
68
  var hooks_1 = require("../../../../hooks");
69
69
  var useDataGrid = function (props) {
70
- var rows = props.rows, onFiltersChanged = props.onFiltersChanged, onSortsChanged = props.onSortsChanged, loadCopyRows = props.loadCopyRows, _a = props.rowHeight, rowHeight = _a === void 0 ? styles_1.DEFAULT_ROW_HEIGHT : _a, onVisibleRowsChange = props.onVisibleRowsChange;
70
+ var rows = props.rows, onFiltersChanged = props.onFiltersChanged, onSortsChanged = props.onSortsChanged, loadCopyRows = props.loadCopyRows, _a = props.rowHeight, rowHeight = _a === void 0 ? styles_1.DEFAULT_ROW_HEIGHT : _a, onVisibleRowsChange = props.onVisibleRowsChange, onSelectionChange = props.onSelectionChange, selectable = props.selectable;
71
71
  var _b = (0, react_1.useState)(props.columns), columns = _b[0], setColumns = _b[1];
72
72
  var visibleColumns = (0, _1.useSortedColumns)(columns);
73
73
  /** SETTINGS */
@@ -78,12 +78,28 @@ var useDataGrid = function (props) {
78
78
  return (__assign(__assign({}, prev), (_a = {}, _a[key] = __assign(__assign({}, prev[key]), { width: width }), _a)));
79
79
  });
80
80
  }, [setSettings]);
81
+ var gridTemplateColumns = (0, react_1.useMemo)(function () {
82
+ return __spreadArray(__spreadArray([], (selectable ? ['var(--space-8)'] : []), true), visibleColumns.map(function (_a) {
83
+ var _b;
84
+ var col = _a[1];
85
+ return "".concat((_b = col.width) !== null && _b !== void 0 ? _b : 150, "px");
86
+ }), true).join(' ');
87
+ }, [selectable, visibleColumns]);
81
88
  // Update columns when settings change
82
89
  (0, react_1.useEffect)(function () {
83
90
  setColumns(function (prev) { return (0, lodash_1.merge)({}, prev, settings); });
84
91
  }, [settings]);
85
92
  /** ROWS SELECTION **/
86
- var _d = (0, react_1.useState)([]), selectedRows = _d[0], setSelectedRows = _d[1];
93
+ var rowKeyGetter = (0, react_1.useMemo)(function () {
94
+ return typeof props.rowKey === 'function'
95
+ ? props.rowKey
96
+ : function (row) { return String(row === null || row === void 0 ? void 0 : row[props.rowKey]); };
97
+ }, [props.rowKey]);
98
+ var _d = (0, react_1.useState)([]), selectedKeys = _d[0], setSelectedKeys = _d[1];
99
+ var selectedRows = (0, react_1.useMemo)(function () { return props.rows.filter(function (row) { return selectedKeys.includes(rowKeyGetter(row)); }); }, [props.rows, rowKeyGetter, selectedKeys]);
100
+ (0, react_1.useEffect)(function () {
101
+ onSelectionChange === null || onSelectionChange === void 0 ? void 0 : onSelectionChange(selectedKeys);
102
+ }, [onSelectionChange, selectedKeys]);
87
103
  /** ROWS FILTERING **/
88
104
  var _e = (0, react_1.useState)({}), filters = _e[0], setFilters = _e[1];
89
105
  var _f = (0, react_1.useState)(rows !== null && rows !== void 0 ? rows : []), filteredRows = _f[0], setFilteredRows = _f[1];
@@ -148,7 +164,7 @@ var useDataGrid = function (props) {
148
164
  }, [indexWithTolerance, lengthWithTolerance, onVisibleRowsChange]);
149
165
  /** COPYING */
150
166
  var copyTable = (0, _1.useDataGridCopy)(sortedRows, columns, loadCopyRows).copyTable;
151
- var contextValue = (0, react_1.useMemo)(function () { return (__assign(__assign({}, props), { columns: columns, visibleColumns: visibleColumns, sortedRows: sortedRows, selectedRows: selectedRows, setSelectedRows: setSelectedRows, sorts: sorts, setSorts: setSorts, filters: filters, setFilters: setFilters, editingCell: editingCell, setEditingCell: setEditingCell, copyTable: copyTable, setColumnWidth: setColumnWidth, settings: settings, setSettings: setSettings, saveSettings: saveSettings, visibleRows: visibleRows, scrollableRef: scrollableRef, onScroll: onScroll, index: index, length: length })); }, [
167
+ var contextValue = (0, react_1.useMemo)(function () { return (__assign(__assign({}, props), { columns: columns, visibleColumns: visibleColumns, sortedRows: sortedRows, selectedRows: selectedRows, selectedKeys: selectedKeys, setSelectedKeys: setSelectedKeys, sorts: sorts, setSorts: setSorts, filters: filters, setFilters: setFilters, editingCell: editingCell, setEditingCell: setEditingCell, copyTable: copyTable, setColumnWidth: setColumnWidth, settings: settings, setSettings: setSettings, saveSettings: saveSettings, visibleRows: visibleRows, scrollableRef: scrollableRef, onScroll: onScroll, index: index, length: length, rowKeyGetter: rowKeyGetter, gridTemplateColumns: gridTemplateColumns })); }, [
152
168
  columns,
153
169
  copyTable,
154
170
  editingCell,
@@ -157,7 +173,9 @@ var useDataGrid = function (props) {
157
173
  length,
158
174
  onScroll,
159
175
  props,
176
+ rowKeyGetter,
160
177
  saveSettings,
178
+ selectedKeys,
161
179
  selectedRows,
162
180
  setColumnWidth,
163
181
  setSettings,
@@ -166,6 +184,7 @@ var useDataGrid = function (props) {
166
184
  sorts,
167
185
  visibleColumns,
168
186
  visibleRows,
187
+ gridTemplateColumns,
169
188
  ]);
170
189
  var context = (0, react_1.useMemo)(function () {
171
190
  return (0, react_1.createContext)({
@@ -173,9 +192,11 @@ var useDataGrid = function (props) {
173
192
  columns: {},
174
193
  visibleColumns: [],
175
194
  rowKey: '',
195
+ rowKeyGetter: function () { return ''; },
176
196
  sortedRows: [],
177
197
  selectedRows: [],
178
- setSelectedRows: function () { },
198
+ selectedKeys: [],
199
+ setSelectedKeys: function () { },
179
200
  setSorts: function () { },
180
201
  setFilters: function () { },
181
202
  editingCell: [-1, -1],
@@ -192,6 +213,7 @@ var useDataGrid = function (props) {
192
213
  onScroll: function () { },
193
214
  index: 0,
194
215
  length: 0,
216
+ gridTemplateColumns: '',
195
217
  });
196
218
  }, []);
197
219
  return (0, react_1.useMemo)(function () { return [contextValue, context]; }, [context, contextValue]);