@addev-be/ui 0.21.3 → 0.21.4

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 (260) hide show
  1. package/dist/Icons.d.ts +11 -1
  2. package/dist/Icons.js +22 -1
  3. package/dist/components/auth/LoginForm.js +1 -1
  4. package/dist/components/auth/PasswordRecoveryForm.js +1 -1
  5. package/dist/components/auth/PasswordResetForm.js +1 -1
  6. package/dist/components/data/DataGrid/DataGridCell.d.ts +1 -1
  7. package/dist/components/data/DataGrid/DataGridCell.js +9 -9
  8. package/dist/components/data/DataGrid/DataGridColumnsModal/helpers.d.ts +2 -2
  9. package/dist/components/data/DataGrid/DataGridColumnsModal/helpers.js +1 -7
  10. package/dist/components/data/DataGrid/DataGridColumnsModal/hooks.js +3 -3
  11. package/dist/components/data/DataGrid/DataGridColumnsModal/index.js +16 -21
  12. package/dist/components/data/DataGrid/DataGridColumnsModal/styles.js +2 -2
  13. package/dist/components/data/DataGrid/DataGridEditableCell/CheckboxEditableCell.d.ts +2 -0
  14. package/dist/components/data/DataGrid/DataGridEditableCell/CheckboxEditableCell.js +23 -0
  15. package/dist/components/data/DataGrid/DataGridEditableCell/DateEditableCell.d.ts +2 -0
  16. package/dist/components/data/DataGrid/DataGridEditableCell/DateEditableCell.js +27 -0
  17. package/dist/components/data/DataGrid/DataGridEditableCell/NumberEditableCell.d.ts +7 -0
  18. package/dist/components/data/DataGrid/DataGridEditableCell/NumberEditableCell.js +34 -0
  19. package/dist/components/data/DataGrid/DataGridEditableCell/TextEditableCell.d.ts +2 -0
  20. package/dist/components/data/DataGrid/DataGridEditableCell/TextEditableCell.js +23 -0
  21. package/dist/components/data/DataGrid/DataGridEditableCell/index.d.ts +2 -0
  22. package/dist/components/data/DataGrid/DataGridEditableCell/index.js +91 -0
  23. package/dist/components/data/DataGrid/DataGridEditableCell/styles.d.ts +3 -0
  24. package/dist/components/data/DataGrid/DataGridEditableCell/styles.js +17 -0
  25. package/dist/components/data/DataGrid/DataGridEditableCell/types.d.ts +11 -0
  26. package/dist/components/data/DataGrid/DataGridEditableCell/types.js +3 -0
  27. package/dist/components/data/DataGrid/DataGridFilterMenu/FilterValuesScroller.js +17 -2
  28. package/dist/components/data/DataGrid/DataGridFilterMenu/hooks.d.ts +4 -3
  29. package/dist/components/data/DataGrid/DataGridFilterMenu/hooks.js +11 -12
  30. package/dist/components/data/DataGrid/DataGridFilterMenu/index.d.ts +5 -4
  31. package/dist/components/data/DataGrid/DataGridFilterMenu/index.js +44 -41
  32. package/dist/components/data/DataGrid/DataGridFilterMenu/styles.js +5 -5
  33. package/dist/components/data/DataGrid/DataGridFooter.js +5 -7
  34. package/dist/components/data/DataGrid/DataGridHeader.js +3 -19
  35. package/dist/components/data/DataGrid/DataGridHeaderCell.d.ts +1 -1
  36. package/dist/components/data/DataGrid/DataGridHeaderCell.js +11 -24
  37. package/dist/components/data/DataGrid/DataGridRowTemplate.d.ts +1 -1
  38. package/dist/components/data/DataGrid/DataGridRowTemplate.js +10 -9
  39. package/dist/components/data/DataGrid/DataGridToolbar.d.ts +4 -0
  40. package/dist/components/data/DataGrid/DataGridToolbar.js +131 -0
  41. package/dist/components/data/DataGrid/FilterModalContent/index.js +1 -2
  42. package/dist/components/data/DataGrid/constants.d.ts +6 -0
  43. package/dist/components/data/DataGrid/constants.js +9 -0
  44. package/dist/components/data/DataGrid/helpers/columns.d.ts +13 -12
  45. package/dist/components/data/DataGrid/helpers/columns.js +100 -130
  46. package/dist/components/data/DataGrid/hooks/index.d.ts +3 -3
  47. package/dist/components/data/DataGrid/hooks/index.js +8 -12
  48. package/dist/components/data/DataGrid/hooks/useDataGrid.js +73 -24
  49. package/dist/components/data/DataGrid/hooks/useDataGridChangedRows.d.ts +9 -0
  50. package/dist/components/data/DataGrid/hooks/useDataGridChangedRows.js +91 -0
  51. package/dist/components/data/DataGrid/hooks/useDataGridCopy.js +25 -30
  52. package/dist/components/data/DataGrid/hooks/useRefreshModal.d.ts +5 -0
  53. package/dist/components/data/DataGrid/hooks/useRefreshModal.js +25 -0
  54. package/dist/components/data/DataGrid/index.d.ts +41 -3
  55. package/dist/components/data/DataGrid/index.js +32 -5
  56. package/dist/components/data/DataGrid/styles.d.ts +16 -8
  57. package/dist/components/data/DataGrid/styles.js +65 -34
  58. package/dist/components/data/DataGrid/types.d.ts +91 -21
  59. package/dist/components/data/SqlRequestDataGrid/SqlRequestForeignListEditableCell.d.ts +2 -0
  60. package/dist/components/data/SqlRequestDataGrid/SqlRequestForeignListEditableCell.js +19 -0
  61. package/dist/components/data/SqlRequestDataGrid/helpers/columns.d.ts +16 -17
  62. package/dist/components/data/SqlRequestDataGrid/helpers/columns.js +235 -84
  63. package/dist/components/data/SqlRequestDataGrid/index.d.ts +2 -2
  64. package/dist/components/data/SqlRequestDataGrid/index.js +99 -74
  65. package/dist/components/data/SqlRequestDataGrid/styles.d.ts +2 -0
  66. package/dist/components/data/SqlRequestDataGrid/styles.js +14 -0
  67. package/dist/components/data/SqlRequestDataGrid/types.d.ts +13 -3
  68. package/dist/components/data/SqlRequestDataGrid/types.js +1 -0
  69. package/dist/components/data/SqlRequestForeignList/index.d.ts +4 -0
  70. package/dist/components/data/SqlRequestForeignList/index.js +132 -0
  71. package/dist/components/data/SqlRequestForeignList/styles.d.ts +9 -0
  72. package/dist/components/data/SqlRequestForeignList/styles.js +22 -0
  73. package/dist/components/data/SqlRequestForeignList/types.d.ts +22 -0
  74. package/dist/components/data/SqlRequestForeignList/types.js +2 -0
  75. package/dist/components/data/SqlRequestGrid/filters/FiltersSidebar.d.ts +10 -0
  76. package/dist/components/data/SqlRequestGrid/filters/FiltersSidebar.js +50 -0
  77. package/dist/components/data/SqlRequestGrid/filters/styles.d.ts +4 -0
  78. package/dist/components/data/SqlRequestGrid/filters/styles.js +17 -0
  79. package/dist/components/data/SqlRequestGrid/index.d.ts +1 -1
  80. package/dist/components/data/SqlRequestGrid/index.js +139 -50
  81. package/dist/components/data/SqlRequestGrid/styles.d.ts +0 -12
  82. package/dist/components/data/SqlRequestGrid/styles.js +4 -20
  83. package/dist/components/data/SqlRequestGrid/types.d.ts +14 -4
  84. package/dist/components/data/SqlRequestGrid/types.js +0 -1
  85. package/dist/components/data/VirtualScroller/index.d.ts +4 -3
  86. package/dist/components/data/VirtualScroller/index.js +15 -6
  87. package/dist/components/data/VirtualScroller/styles.d.ts +4 -2
  88. package/dist/components/data/VirtualScroller/styles.js +9 -7
  89. package/dist/components/data/VirtualScroller/types.js +0 -1
  90. package/dist/components/data/index.d.ts +1 -2
  91. package/dist/components/data/index.js +1 -2
  92. package/dist/components/forms/AutoTextArea.d.ts +10 -0
  93. package/dist/components/forms/AutoTextArea.js +41 -0
  94. package/dist/components/forms/Button.d.ts +11 -4
  95. package/dist/components/forms/Button.js +15 -9
  96. package/dist/components/forms/Form/Checkbox.d.ts +3 -0
  97. package/dist/components/forms/Form/Checkbox.js +33 -0
  98. package/dist/components/forms/Form/FormGroup.d.ts +11 -0
  99. package/dist/components/forms/Form/FormGroup.js +10 -0
  100. package/dist/components/forms/Form/Input.d.ts +3 -0
  101. package/dist/components/forms/Form/Input.js +33 -0
  102. package/dist/components/forms/Form/Row.d.ts +9 -0
  103. package/dist/components/forms/Form/Row.js +10 -0
  104. package/dist/components/forms/Form/Select.d.ts +13 -0
  105. package/dist/components/forms/Form/Select.js +51 -0
  106. package/dist/components/forms/Form/TextArea.d.ts +4 -0
  107. package/dist/components/forms/Form/TextArea.js +34 -0
  108. package/dist/components/forms/Form/index.d.ts +75 -0
  109. package/dist/components/forms/Form/index.js +29 -0
  110. package/dist/components/forms/Form/styles.d.ts +19 -0
  111. package/dist/components/forms/Form/styles.js +49 -0
  112. package/dist/components/forms/IconButton.d.ts +9 -4
  113. package/dist/components/forms/IconButton.js +15 -15
  114. package/dist/components/forms/NumberInput.d.ts +9 -0
  115. package/dist/components/forms/NumberInput.js +40 -0
  116. package/dist/components/forms/Select.d.ts +5 -6
  117. package/dist/components/forms/Select.js +2 -5
  118. package/dist/components/forms/index.d.ts +4 -0
  119. package/dist/components/forms/index.js +4 -0
  120. package/dist/components/forms/styles.d.ts +17 -3
  121. package/dist/components/forms/styles.js +8 -7
  122. package/dist/components/layout/Columns.d.ts +7 -0
  123. package/dist/components/layout/Columns.js +21 -0
  124. package/dist/components/layout/Dropdown/index.d.ts +1 -0
  125. package/dist/components/layout/Dropdown/index.js +24 -3
  126. package/dist/components/layout/Dropdown/styles.js +1 -1
  127. package/dist/components/layout/Flexbox.d.ts +11 -0
  128. package/dist/components/layout/Flexbox.js +26 -0
  129. package/dist/components/layout/Grid/index.d.ts +6 -0
  130. package/dist/components/layout/Grid/index.js +6 -0
  131. package/dist/components/layout/Grid/styles.d.ts +14 -0
  132. package/dist/components/layout/Grid/styles.js +29 -0
  133. package/dist/components/layout/Masonry/index.d.ts +3 -0
  134. package/dist/components/layout/Masonry/index.js +20 -0
  135. package/dist/components/layout/Masonry/styles.d.ts +5 -0
  136. package/dist/components/layout/Masonry/styles.js +17 -0
  137. package/dist/components/layout/Modal/styles.js +4 -4
  138. package/dist/components/layout/index.d.ts +5 -1
  139. package/dist/components/layout/index.js +5 -1
  140. package/dist/components/search/HighlightedText.js +9 -7
  141. package/dist/components/search/QuickSearchBar.d.ts +6 -2
  142. package/dist/components/search/QuickSearchBar.js +7 -8
  143. package/dist/components/search/styles.js +5 -5
  144. package/dist/components/search/types.d.ts +3 -0
  145. package/dist/components/ui/Avatar/index.d.ts +10 -0
  146. package/dist/components/ui/Avatar/index.js +52 -0
  147. package/dist/components/ui/Avatar/styles.d.ts +4 -0
  148. package/dist/components/ui/Avatar/styles.js +43 -0
  149. package/dist/components/ui/Card/styles.js +3 -3
  150. package/dist/components/ui/ContextMenu/styles.js +5 -5
  151. package/dist/components/ui/Ellipsis.d.ts +13 -0
  152. package/dist/components/ui/Ellipsis.js +28 -0
  153. package/dist/components/ui/Label.d.ts +10 -0
  154. package/dist/components/ui/Label.js +74 -0
  155. package/dist/components/ui/Message/index.js +1 -1
  156. package/dist/components/ui/TabsView/TabsList.d.ts +10 -0
  157. package/dist/components/ui/TabsView/TabsList.js +40 -0
  158. package/dist/components/ui/TabsView/TabsView.d.ts +9 -0
  159. package/dist/components/ui/TabsView/TabsView.js +17 -0
  160. package/dist/components/ui/TabsView/index.d.ts +3 -0
  161. package/dist/components/ui/TabsView/index.js +19 -0
  162. package/dist/components/ui/TabsView/styles.d.ts +11 -0
  163. package/dist/components/ui/TabsView/styles.js +47 -0
  164. package/dist/components/ui/TabsView/types.d.ts +10 -0
  165. package/dist/components/ui/TabsView/types.js +2 -0
  166. package/dist/components/ui/index.d.ts +4 -0
  167. package/dist/components/ui/index.js +4 -0
  168. package/dist/helpers/components.d.ts +3 -0
  169. package/dist/helpers/components.js +15 -0
  170. package/dist/helpers/index.d.ts +2 -0
  171. package/dist/helpers/index.js +2 -0
  172. package/dist/helpers/numbers.d.ts +3 -0
  173. package/dist/helpers/numbers.js +33 -1
  174. package/dist/helpers/responsive.d.ts +37 -0
  175. package/dist/helpers/responsive.js +57 -0
  176. package/dist/helpers/styled/index.d.ts +1 -0
  177. package/dist/helpers/styled/index.js +17 -0
  178. package/dist/helpers/styled/space.d.ts +39 -0
  179. package/dist/helpers/styled/space.js +90 -0
  180. package/dist/hooks/index.d.ts +5 -0
  181. package/dist/hooks/index.js +5 -0
  182. package/dist/hooks/useContainerMediaQuery.d.ts +17 -0
  183. package/dist/hooks/useContainerMediaQuery.js +10 -0
  184. package/dist/hooks/useMediaQuery.d.ts +17 -0
  185. package/dist/hooks/useMediaQuery.js +11 -0
  186. package/dist/hooks/useMediaQueryForWidth.d.ts +17 -0
  187. package/dist/hooks/useMediaQueryForWidth.js +26 -0
  188. package/dist/hooks/useMutableState.d.ts +2 -0
  189. package/dist/hooks/useMutableState.js +14 -0
  190. package/dist/hooks/useShowArchived.d.ts +6 -0
  191. package/dist/hooks/useShowArchived.js +21 -0
  192. package/dist/index.d.ts +1 -0
  193. package/dist/index.js +1 -0
  194. package/dist/providers/AuthenticationProvider/index.d.ts +1 -0
  195. package/dist/providers/AuthenticationProvider/index.js +57 -15
  196. package/dist/providers/PortalsProvider/styles.js +1 -1
  197. package/dist/providers/ThemeProvider/ThemeProvider.d.ts +1 -0
  198. package/dist/providers/ThemeProvider/ThemeProvider.js +11 -9
  199. package/dist/providers/ThemeProvider/defaultTheme.d.ts +1 -0
  200. package/dist/providers/ThemeProvider/defaultTheme.js +33 -1
  201. package/dist/providers/ThemeProvider/helpers.d.ts +12 -0
  202. package/dist/providers/ThemeProvider/helpers.js +65 -0
  203. package/dist/providers/ThemeProvider/index.d.ts +1 -0
  204. package/dist/providers/ThemeProvider/index.js +1 -0
  205. package/dist/providers/ThemeProvider/types.d.ts +4 -2
  206. package/dist/providers/TrackingProvider/hooks.d.ts +1 -0
  207. package/dist/providers/TrackingProvider/hooks.js +15 -0
  208. package/dist/providers/TrackingProvider/index.d.ts +8 -0
  209. package/dist/providers/TrackingProvider/index.js +41 -0
  210. package/dist/providers/UiProviders/index.d.ts +4 -1
  211. package/dist/providers/UiProviders/index.js +3 -2
  212. package/dist/providers/UiProviders/styles.js +1 -1
  213. package/dist/providers/index.d.ts +2 -0
  214. package/dist/providers/index.js +2 -0
  215. package/dist/services/WebSocketService.d.ts +8 -0
  216. package/dist/services/WebSocketService.js +34 -2
  217. package/dist/services/globalSearch.d.ts +6 -2
  218. package/dist/services/hooks.d.ts +10 -0
  219. package/dist/services/hooks.js +89 -2
  220. package/dist/services/index.d.ts +7 -0
  221. package/dist/services/index.js +20 -0
  222. package/dist/services/requests/generic.d.ts +29 -0
  223. package/dist/services/requests/generic.js +29 -0
  224. package/dist/services/requests/tracking.d.ts +18 -0
  225. package/dist/services/requests/tracking.js +8 -0
  226. package/dist/services/smartQueries.d.ts +51 -0
  227. package/dist/services/smartQueries.js +10 -0
  228. package/dist/services/smartRequests.d.ts +0 -0
  229. package/dist/services/smartRequests.js +1 -0
  230. package/dist/services/types/generic.d.ts +44 -0
  231. package/dist/services/types/generic.js +79 -0
  232. package/dist/services/types/tracking.d.ts +24 -0
  233. package/dist/services/types/tracking.js +47 -0
  234. package/dist/services/updateSqlRequests.d.ts +24 -0
  235. package/dist/services/updateSqlRequests.js +6 -0
  236. package/eslint.config.js +1 -1
  237. package/package.json +2 -2
  238. package/src/components/data/DataGrid/DataGridEditableCell/index.tsx +5 -5
  239. package/src/components/data/DataGrid/DataGridEditableCell/types.ts +3 -3
  240. package/src/components/data/DataGrid/DataGridFilterMenu/FilterValuesScroller.tsx +0 -2
  241. package/src/components/data/DataGrid/DataGridFilterMenu/index.tsx +0 -1
  242. package/src/components/data/DataGrid/DataGridFooter.tsx +0 -3
  243. package/src/components/data/DataGrid/DataGridRowTemplate.tsx +2 -1
  244. package/src/components/data/DataGrid/FilterModalContent/index.tsx +0 -1
  245. package/src/components/data/DataGrid/helpers/columns.tsx +29 -24
  246. package/src/components/data/SqlRequestDataGrid/index.tsx +14 -8
  247. package/src/components/data/SqlRequestForeignList/index.tsx +20 -22
  248. package/src/components/data/SqlRequestForeignList/types.ts +0 -2
  249. package/src/components/data/SqlRequestGrid/filters/FiltersSidebar.tsx +0 -2
  250. package/src/components/data/SqlRequestGrid/types.ts +0 -2
  251. package/src/components/data/VirtualScroller/types.ts +0 -2
  252. package/src/components/forms/Form/Select.tsx +3 -3
  253. package/src/components/forms/IconButton.tsx +19 -9
  254. package/src/components/forms/Select.tsx +0 -1
  255. package/src/components/search/QuickSearchBar.tsx +0 -1
  256. package/src/components/ui/Label.tsx +18 -9
  257. package/src/helpers/components.ts +23 -0
  258. package/src/services/updateSqlRequests.ts +0 -2
  259. package/src/typings.d.ts +0 -2
  260. package/tsconfig.tsbuildinfo +1 -1
@@ -1,5 +1,4 @@
1
1
  "use strict";
2
- /* eslint-disable @typescript-eslint/no-unnecessary-type-constraint */
3
2
  /* eslint-disable @typescript-eslint/no-explicit-any */
4
3
  var __assign = (this && this.__assign) || function () {
5
4
  __assign = Object.assign || function(t) {
@@ -59,18 +58,24 @@ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
59
58
  };
60
59
  Object.defineProperty(exports, "__esModule", { value: true });
61
60
  exports.useDataGrid = void 0;
61
+ var constants_1 = require("../constants");
62
62
  var react_1 = require("react");
63
63
  var _1 = require(".");
64
64
  var helpers_1 = require("../helpers");
65
- var lodash_1 = require("lodash");
65
+ var useDataGridChangedRows_1 = require("./useDataGridChangedRows");
66
66
  var useDataGridSettings_1 = require("./useDataGridSettings");
67
67
  var useDataGrid = function (props, override) {
68
- var _a;
69
- var rows = props.rows, onFiltersChanged = props.onFiltersChanged, onSortsChanged = props.onSortsChanged, loadCopyRows = props.loadCopyRows, onSelectionChange = props.onSelectionChange, onSelectedRowsChanged = props.onSelectedRowsChanged, selectable = props.selectable, initialSorts = props.initialSorts;
70
- var _b = (0, react_1.useState)(props.columns), columns = _b[0], setColumns = _b[1];
68
+ var _a, _b, _c, _d;
69
+ var onFiltersChanged = props.onFiltersChanged, onSortsChanged = props.onSortsChanged, loadCopyRows = props.loadCopyRows, onSelectionChange = props.onSelectionChange, onSelectedRowsChanged = props.onSelectedRowsChanged, selectable = props.selectable, initialSorts = props.initialSorts;
70
+ var _e = (0, react_1.useState)(props.columns), columns = _e[0], setColumns = _e[1];
71
71
  var visibleColumns = (0, _1.useSortedColumns)(columns);
72
+ var _f = (0, react_1.useState)((_a = override === null || override === void 0 ? void 0 : override.rows) !== null && _a !== void 0 ? _a : props.rows), innerRows = _f[0], setInnerRows = _f[1];
73
+ var _g = [
74
+ (_b = override === null || override === void 0 ? void 0 : override.rows) !== null && _b !== void 0 ? _b : innerRows,
75
+ (_c = override === null || override === void 0 ? void 0 : override.setRows) !== null && _c !== void 0 ? _c : setInnerRows,
76
+ ], rows = _g[0], setRows = _g[1];
72
77
  /** SETTINGS */
73
- var _c = (0, useDataGridSettings_1.useDataGridSettings)(props.name), settings = _c.settings, setSettings = _c.setSettings, saveSettings = _c.saveSettings;
78
+ var _h = (0, useDataGridSettings_1.useDataGridSettings)(props.name), settings = _h.settings, setSettings = _h.setSettings, saveSettings = _h.saveSettings;
74
79
  var setColumnWidth = (0, react_1.useCallback)(function (key, width) {
75
80
  setSettings(function (prev) {
76
81
  var _a;
@@ -78,15 +83,11 @@ var useDataGrid = function (props, override) {
78
83
  });
79
84
  }, [setSettings]);
80
85
  var gridTemplateColumns = (0, react_1.useMemo)(function () {
81
- return __spreadArray(__spreadArray([], (selectable ? ['var(--space-8)'] : []), true), visibleColumns.map(function (_a) {
82
- var _b;
83
- var col = _a[1];
84
- return "".concat((_b = col.width) !== null && _b !== void 0 ? _b : 150, "px");
85
- }), true).join(' ');
86
+ return __spreadArray(__spreadArray([], (selectable ? [constants_1.SELECTION_CELL_WIDTH] : []), true), visibleColumns.map(function (col) { var _a; return "".concat((_a = col.width) !== null && _a !== void 0 ? _a : constants_1.DEFAULT_COLUMN_WIDTH, "px"); }), true).join(' ');
86
87
  }, [selectable, visibleColumns]);
87
88
  // Update columns when settings change
88
89
  (0, react_1.useEffect)(function () {
89
- setColumns(function (prev) { return (0, lodash_1.merge)({}, prev, settings); });
90
+ setColumns(function (prev) { return prev.map(function (col) { return (__assign(__assign({}, col), settings[col.key])); }); });
90
91
  }, [settings]);
91
92
  /** ROWS SELECTION **/
92
93
  var rowKeyGetter = (0, react_1.useMemo)(function () {
@@ -94,7 +95,7 @@ var useDataGrid = function (props, override) {
94
95
  ? props.rowKey
95
96
  : function (row) { return String(row === null || row === void 0 ? void 0 : row[props.rowKey]); };
96
97
  }, [props.rowKey]);
97
- var _d = (0, react_1.useState)([]), selectedKeys = _d[0], setSelectedKeys = _d[1];
98
+ var _j = (0, react_1.useState)([]), selectedKeys = _j[0], setSelectedKeys = _j[1];
98
99
  var selectedRows = (0, react_1.useMemo)(function () { return props.rows.filter(function (row) { return selectedKeys.includes(rowKeyGetter(row)); }); }, [props.rows, rowKeyGetter, selectedKeys]);
99
100
  (0, react_1.useEffect)(function () {
100
101
  onSelectionChange === null || onSelectionChange === void 0 ? void 0 : onSelectionChange(selectedKeys);
@@ -111,8 +112,8 @@ var useDataGrid = function (props, override) {
111
112
  }
112
113
  }, [selectedKeys, setSelectedKeys]);
113
114
  /** ROWS FILTERING **/
114
- var _e = (0, react_1.useState)({}), filters = _e[0], setFilters = _e[1];
115
- var _f = (0, react_1.useState)(rows !== null && rows !== void 0 ? rows : []), filteredRows = _f[0], setFilteredRows = _f[1];
115
+ var _k = (0, react_1.useState)({}), filters = _k[0], setFilters = _k[1];
116
+ var _l = (0, react_1.useState)(rows !== null && rows !== void 0 ? rows : []), filteredRows = _l[0], setFilteredRows = _l[1];
116
117
  (0, react_1.useEffect)(function () {
117
118
  onFiltersChanged === null || onFiltersChanged === void 0 ? void 0 : onFiltersChanged(filters);
118
119
  }, [filters, onFiltersChanged]);
@@ -126,17 +127,21 @@ var useDataGrid = function (props, override) {
126
127
  setFilteredRows(filteredRows !== null && filteredRows !== void 0 ? filteredRows : []);
127
128
  }, [filters, props.filter, rows]);
128
129
  /** CELL EDITING */
129
- var _g = (0, react_1.useState)([-1, -1]), editingCell = _g[0], setEditingCell = _g[1];
130
+ var _m = (0, react_1.useState)([-1, -1]), editingCell = _m[0], setEditingCell = _m[1];
131
+ var onRowAdded = (0, react_1.useCallback)(function (row) {
132
+ setRows(function (prev) { return __spreadArray([row], prev, true); });
133
+ }, [setRows]);
134
+ var _o = (0, useDataGridChangedRows_1.useDataGridChangedRows)(rowKeyGetter, onRowAdded), addedRows = _o.addedRows, updatedRows = _o.updatedRows, editRow = _o.editRow, addRow = _o.addRow, addRows = _o.addRows, updateRow = _o.updateRow, clearChangedRows = _o.clearChangedRows;
130
135
  /** ROWS SORTING **/
131
- var _h = (0, react_1.useState)(initialSorts !== null && initialSorts !== void 0 ? initialSorts : {}), sorts = _h[0], setSorts = _h[1];
132
- var _j = (0, react_1.useState)(rows), sortedRows = _j[0], setSortedRows = _j[1];
136
+ var _p = (0, react_1.useState)(initialSorts !== null && initialSorts !== void 0 ? initialSorts : {}), sorts = _p[0], setSorts = _p[1];
137
+ var _q = (0, react_1.useState)(rows), sortedRows = _q[0], setSortedRows = _q[1];
133
138
  (0, react_1.useEffect)(function () {
134
139
  var sortedRows = __spreadArray([], filteredRows, true);
135
140
  if (props.sort !== false) {
136
141
  Object.entries(sorts).forEach(function (_a) {
137
142
  var sortKey = _a[0], sort = _a[1];
138
143
  // Get the sort column and make sure it exists and is sortable
139
- var sortColumn = columns[sortKey];
144
+ var sortColumn = columns.find(function (col) { return col.key === sortKey; });
140
145
  if (!sortColumn || typeof sortColumn.sortGetter !== 'function')
141
146
  return;
142
147
  // Sort the rows using the sortGetter function of the column
@@ -157,12 +162,33 @@ var useDataGrid = function (props, override) {
157
162
  }, [sorts, onSortsChanged]);
158
163
  /** VIRTUAL SCROLLING */
159
164
  var scrollableRef = (0, react_1.useRef)(null);
165
+ /** RESIZING */
166
+ var _r = (0, react_1.useState)(null), resizingColumnKey = _r[0], setResizingColumnKey = _r[1];
167
+ var resizingOffset = (0, react_1.useRef)(0);
168
+ var startResizing = (0, react_1.useCallback)(function (e, columnKey) {
169
+ var resizingColumn = columns.find(function (col) { return col.key === columnKey; });
170
+ if (resizingColumn) {
171
+ resizingOffset.current =
172
+ e.screenX - ((resizingColumn === null || resizingColumn === void 0 ? void 0 : resizingColumn.width) || constants_1.DEFAULT_COLUMN_WIDTH);
173
+ setResizingColumnKey(columnKey);
174
+ }
175
+ }, [columns]);
176
+ var moveResizing = (0, react_1.useCallback)(function (e) {
177
+ if (resizingColumnKey) {
178
+ var newWidth = Math.max(86, e.screenX - resizingOffset.current);
179
+ setColumnWidth(resizingColumnKey, newWidth);
180
+ }
181
+ }, [resizingColumnKey, setColumnWidth]);
182
+ var endResizing = (0, react_1.useCallback)(function () {
183
+ setResizingColumnKey(null);
184
+ saveSettings();
185
+ }, [saveSettings]);
160
186
  /** FOOTERS */
161
- var _k = (0, react_1.useState)((_a = props.initialFooters) !== null && _a !== void 0 ? _a : {}), footers = _k[0], setFooters = _k[1];
187
+ var _s = (0, react_1.useState)((_d = props.initialFooters) !== null && _d !== void 0 ? _d : {}), footers = _s[0], setFooters = _s[1];
162
188
  var footerFunctions = (0, react_1.useMemo)(function () {
163
189
  return Object.entries(footers).reduce(function (acc, _a) {
164
190
  var columnKey = _a[0], footerKey = _a[1];
165
- var column = columns[columnKey];
191
+ var column = columns.find(function (col) { return col.key === columnKey; });
166
192
  if (!column) {
167
193
  return acc;
168
194
  }
@@ -184,7 +210,7 @@ var useDataGrid = function (props, override) {
184
210
  footerFunctions: footerFunctions,
185
211
  loadCopyRows: loadCopyRows,
186
212
  }).copyTable;
187
- var contextValue = (0, react_1.useMemo)(function () { return (__assign(__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, scrollableRef: scrollableRef, length: length, rowKeyGetter: rowKeyGetter, gridTemplateColumns: gridTemplateColumns, footers: footers, setFooters: setFooters, footerFunctions: footerFunctions, toggleSelection: toggleSelection }), override)); }, [
213
+ var contextValue = (0, react_1.useMemo)(function () { return (__assign(__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, scrollableRef: scrollableRef, length: length, rowKeyGetter: rowKeyGetter, gridTemplateColumns: gridTemplateColumns, footers: footers, setFooters: setFooters, footerFunctions: footerFunctions, toggleSelection: toggleSelection, resizingColumnKey: resizingColumnKey, startResizing: startResizing, moveResizing: moveResizing, endResizing: endResizing, addedRows: addedRows, updatedRows: updatedRows, editRow: editRow, addRow: addRow, addRows: addRows, updateRow: updateRow, clearChangedRows: clearChangedRows, setRows: setRows }), override)); }, [
188
214
  props,
189
215
  columns,
190
216
  visibleColumns,
@@ -199,18 +225,29 @@ var useDataGrid = function (props, override) {
199
225
  settings,
200
226
  setSettings,
201
227
  saveSettings,
202
- scrollableRef,
203
228
  rowKeyGetter,
204
229
  gridTemplateColumns,
205
230
  footers,
206
231
  footerFunctions,
207
232
  toggleSelection,
233
+ resizingColumnKey,
234
+ startResizing,
235
+ moveResizing,
236
+ endResizing,
237
+ addedRows,
238
+ updatedRows,
239
+ editRow,
240
+ addRow,
241
+ addRows,
242
+ updateRow,
243
+ clearChangedRows,
244
+ setRows,
208
245
  override,
209
246
  ]);
210
247
  var context = (0, react_1.useMemo)(function () {
211
248
  return (0, react_1.createContext)({
212
249
  rows: [],
213
- columns: {},
250
+ columns: [],
214
251
  visibleColumns: [],
215
252
  rowKey: '',
216
253
  rowKeyGetter: function () { return ''; },
@@ -234,6 +271,18 @@ var useDataGrid = function (props, override) {
234
271
  footers: {},
235
272
  setFooters: function () { },
236
273
  toggleSelection: function () { },
274
+ resizingColumnKey: null,
275
+ startResizing: function () { },
276
+ moveResizing: function () { },
277
+ endResizing: function () { },
278
+ addedRows: [],
279
+ updatedRows: [],
280
+ setRows: function () { },
281
+ editRow: function () { },
282
+ addRow: function () { },
283
+ addRows: function () { },
284
+ updateRow: function () { },
285
+ clearChangedRows: function () { },
237
286
  });
238
287
  }, []);
239
288
  return (0, react_1.useMemo)(function () { return [contextValue, context]; }, [context, contextValue]);
@@ -0,0 +1,9 @@
1
+ export declare const useDataGridChangedRows: <R>(rowKeyGetter: (row: Partial<R>) => string, onRowAdded: (row: R) => void) => {
2
+ addedRows: Partial<R>[];
3
+ updatedRows: Partial<R>[];
4
+ editRow: (row: Partial<R>) => void;
5
+ addRow: (row: Partial<R>) => void;
6
+ addRows: (rows: R[]) => void;
7
+ updateRow: (row: Partial<R>) => void;
8
+ clearChangedRows: (keys?: string[]) => void;
9
+ };
@@ -0,0 +1,91 @@
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
14
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
15
+ if (ar || !(i in from)) {
16
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
17
+ ar[i] = from[i];
18
+ }
19
+ }
20
+ return to.concat(ar || Array.prototype.slice.call(from));
21
+ };
22
+ Object.defineProperty(exports, "__esModule", { value: true });
23
+ exports.useDataGridChangedRows = void 0;
24
+ var react_1 = require("react");
25
+ var useDataGridChangedRows = function (rowKeyGetter, onRowAdded) {
26
+ var _a = (0, react_1.useState)([]), addedRows = _a[0], setAddedRows = _a[1];
27
+ var _b = (0, react_1.useState)([]), updatedRows = _b[0], setUpdatedRows = _b[1];
28
+ var addRow = (0, react_1.useCallback)(function (row) {
29
+ setAddedRows(function (prev) { return __spreadArray(__spreadArray([], prev, true), [row], false); });
30
+ onRowAdded(row);
31
+ }, [onRowAdded]);
32
+ var addRows = (0, react_1.useCallback)(function (rows) {
33
+ rows.forEach(addRow);
34
+ }, [addRow]);
35
+ var updateRow = (0, react_1.useCallback)(function (row) {
36
+ var rowKey = rowKeyGetter(row);
37
+ setUpdatedRows(function (prev) {
38
+ var index = prev.findIndex(function (r) { return rowKeyGetter(r) === rowKey; });
39
+ return index >= 0
40
+ ? prev.map(function (existingRow, i) {
41
+ return i === index ? __assign(__assign({}, existingRow), row) : existingRow;
42
+ })
43
+ : __spreadArray(__spreadArray([], prev, true), [row], false);
44
+ });
45
+ }, [rowKeyGetter]);
46
+ var editRow = (0, react_1.useCallback)(function (row) {
47
+ var key = rowKeyGetter(row);
48
+ var addedRowIndex = addedRows.findIndex(function (r) { return rowKeyGetter(r) === key; });
49
+ if (addedRowIndex >= 0) {
50
+ setAddedRows(function (prev) {
51
+ return prev.map(function (existingRow, index) {
52
+ return index === addedRowIndex ? __assign(__assign({}, existingRow), row) : existingRow;
53
+ });
54
+ });
55
+ return;
56
+ }
57
+ var updatedRowIndex = updatedRows.findIndex(function (r) { return rowKeyGetter(r) === key; });
58
+ if (updatedRowIndex >= 0) {
59
+ setUpdatedRows(function (prev) {
60
+ return prev.map(function (existingRow, index) {
61
+ return index === updatedRowIndex ? __assign(__assign({}, existingRow), row) : existingRow;
62
+ });
63
+ });
64
+ return;
65
+ }
66
+ setUpdatedRows(function (prev) { return __spreadArray(__spreadArray([], prev, true), [row], false); });
67
+ }, [rowKeyGetter, addedRows, updatedRows]);
68
+ var clearChangedRows = (0, react_1.useCallback)(function (keys) {
69
+ if (!keys) {
70
+ setAddedRows([]);
71
+ setUpdatedRows([]);
72
+ return;
73
+ }
74
+ setAddedRows(function (prev) {
75
+ return prev.filter(function (row) { return !keys.includes(rowKeyGetter(row)); });
76
+ });
77
+ setUpdatedRows(function (prev) {
78
+ return prev.filter(function (row) { return !keys.includes(rowKeyGetter(row)); });
79
+ });
80
+ }, [rowKeyGetter]);
81
+ return {
82
+ addedRows: addedRows,
83
+ updatedRows: updatedRows,
84
+ editRow: editRow,
85
+ addRow: addRow,
86
+ addRows: addRows,
87
+ updateRow: updateRow,
88
+ clearChangedRows: clearChangedRows,
89
+ };
90
+ };
91
+ exports.useDataGridChangedRows = useDataGridChangedRows;
@@ -52,8 +52,7 @@ var useDataGridCopy = function (_a) {
52
52
  var rows = _a.rows, _b = _a.visibleColumns, visibleColumns = _b === void 0 ? [] : _b, loadCopyRows = _a.loadCopyRows, footerFunctions = _a.footerFunctions;
53
53
  var generateHeadersHtml = (0, react_1.useCallback)(function () {
54
54
  return "<tr>\n ".concat(visibleColumns
55
- .map(function (_a) {
56
- var col = _a[1];
55
+ .map(function (col) {
57
56
  return "<th style=\"\n text-align: left;\n font-weight: bold;\n white-space: nowrap;\n \">\n ".concat(col.name, "\n </th>");
58
57
  })
59
58
  .join('\n'), "\n </tr>");
@@ -61,29 +60,32 @@ var useDataGridCopy = function (_a) {
61
60
  var generateFootersHtml = (0, react_1.useCallback)(function (rowsToCopy) {
62
61
  console.log('generate footers html');
63
62
  return "<tr>\n ".concat(visibleColumns
64
- .map(function (_a) {
65
- var _b, _c;
66
- var colKey = _a[0];
67
- return "<td style=\"\n font-weight: bold;\n white-space: nowrap;\n \">\n ".concat((_c = (_b = footerFunctions === null || footerFunctions === void 0 ? void 0 : footerFunctions[colKey]) === null || _b === void 0 ? void 0 : _b.call(footerFunctions, rowsToCopy, rowsToCopy, [])) !== null && _c !== void 0 ? _c : '', "\n </td>");
63
+ .map(function (col) {
64
+ var _a, _b;
65
+ return "<td style=\"\n font-weight: bold;\n white-space: nowrap;\n \">\n ".concat((_b = (_a = footerFunctions === null || footerFunctions === void 0 ? void 0 : footerFunctions[col.key]) === null || _a === void 0 ? void 0 : _a.call(footerFunctions, rowsToCopy, rowsToCopy, [])) !== null && _b !== void 0 ? _b : '', "\n </td>");
68
66
  })
69
67
  .join('\n'), "\n </tr>");
70
68
  }, [footerFunctions, visibleColumns]);
71
69
  var generateCellText = (0, react_1.useCallback)(function (col, value) {
72
- var _a;
73
- return col.excelValue ? col.excelValue(value) : (_a = value === null || value === void 0 ? void 0 : value.toString()) !== null && _a !== void 0 ? _a : '';
70
+ var _a, _b;
71
+ return ((_a = col.excelOptions) === null || _a === void 0 ? void 0 : _a.valueGetter)
72
+ ? col.excelOptions.valueGetter(value)
73
+ : (_b = value === null || value === void 0 ? void 0 : value.toString()) !== null && _b !== void 0 ? _b : '';
74
74
  }, []);
75
- var generateCellHtml = (0, react_1.useCallback)(function (col, value) { return "<td style=\"\n ".concat(col.excelFormatter
76
- ? "mso-number-format: '" + col.excelFormatter(col) + "';"
77
- : '', "\n ").concat(col.excelBackgroundColor
78
- ? "background-color: '" + col.excelBackgroundColor(value) + "';"
79
- : '', "\n white-space: nowrap;\n \">\n ").concat(generateCellText(col, value), "\n </td>"); }, [generateCellText]);
75
+ var generateCellHtml = (0, react_1.useCallback)(function (col, value) {
76
+ var _a, _b;
77
+ return "<td style=\"\n ".concat(((_a = col.excelOptions) === null || _a === void 0 ? void 0 : _a.formatter)
78
+ ? "mso-number-format: '" + col.excelOptions.formatter(col) + "';"
79
+ : '', "\n ").concat(((_b = col.excelOptions) === null || _b === void 0 ? void 0 : _b.colorGetter)
80
+ ? "background-color: '" + col.excelOptions.colorGetter(value) + "';"
81
+ : '', "\n white-space: nowrap;\n \">\n ").concat(generateCellText(col, value), "\n </td>");
82
+ }, [generateCellText]);
80
83
  var generateCopyHtml = (0, react_1.useCallback)(function (rowsToCopy, includeHeaders, includeFooters) {
81
84
  return "\n <table>\n ".concat(includeHeaders ? generateHeadersHtml() : '', "\n ").concat((rowsToCopy || [])
82
85
  .map(function (row) {
83
86
  return "<tr>\n ".concat(visibleColumns
84
- .map(function (_a) {
85
- var col = _a[1];
86
- var value = col.getter && row ? col.getter(row) : '';
87
+ .map(function (col) {
88
+ var value = row ? col.getter(row) : '';
87
89
  return generateCellHtml(col, value);
88
90
  })
89
91
  .join('\n'), "\n </tr>");
@@ -91,18 +93,11 @@ var useDataGridCopy = function (_a) {
91
93
  .join('\n'), "\n ").concat(includeFooters ? generateFootersHtml(rowsToCopy) : '', "\n </table>\n ");
92
94
  }, [visibleColumns, generateCellHtml, generateFootersHtml, generateHeadersHtml]);
93
95
  var generateHeadersText = (0, react_1.useCallback)(function () {
94
- return visibleColumns.map(function (_a) {
95
- var col = _a[1];
96
- return col.name;
97
- }).join('\t');
96
+ return visibleColumns.map(function (col) { return col.name; }).join('\t');
98
97
  }, [visibleColumns]);
99
98
  var generateFootersText = (0, react_1.useCallback)(function (rowsToCopy) {
100
99
  return visibleColumns
101
- .map(function (_a) {
102
- var _b, _c;
103
- var colKey = _a[0];
104
- return (_c = (_b = footerFunctions === null || footerFunctions === void 0 ? void 0 : footerFunctions[colKey]) === null || _b === void 0 ? void 0 : _b.call(footerFunctions, rowsToCopy, [], [])) !== null && _c !== void 0 ? _c : '';
105
- })
100
+ .map(function (col) { var _a, _b; return (_b = (_a = footerFunctions === null || footerFunctions === void 0 ? void 0 : footerFunctions[col.key]) === null || _a === void 0 ? void 0 : _a.call(footerFunctions, rowsToCopy, [], [])) !== null && _b !== void 0 ? _b : ''; })
106
101
  .join('\t');
107
102
  }, [footerFunctions, visibleColumns]);
108
103
  var generateCopyText = (0, react_1.useCallback)(function (rowsToCopy, includeHeaders, includeFooters) {
@@ -110,11 +105,11 @@ var useDataGridCopy = function (_a) {
110
105
  includeHeaders ? generateHeadersText() : ''
111
106
  ], (rowsToCopy || []).map(function (row) {
112
107
  return visibleColumns
113
- .map(function (_a) {
114
- var col = _a[1];
115
- var value = col.getter && row ? col.getter(row) : '';
116
- return col.excelValue
117
- ? col.excelValue(value)
108
+ .map(function (col) {
109
+ var _a;
110
+ var value = row ? col.getter(row) : '';
111
+ return ((_a = col.excelOptions) === null || _a === void 0 ? void 0 : _a.valueGetter)
112
+ ? col.excelOptions.valueGetter(value)
118
113
  : value != null && value !== undefined
119
114
  ? value.toString()
120
115
  : '';
@@ -0,0 +1,5 @@
1
+ export declare const useRefreshModal: (onConfirm: () => void) => {
2
+ openModal: () => void;
3
+ closeModal: () => void;
4
+ modal: import("react/jsx-runtime").JSX.Element | null;
5
+ };
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.useRefreshModal = void 0;
4
+ var jsx_runtime_1 = require("react/jsx-runtime");
5
+ var react_1 = require("react");
6
+ var forms_1 = require("../../../forms");
7
+ var Modal_1 = require("../../../layout/Modal");
8
+ var Icons_1 = require("../../../../Icons");
9
+ var useRefreshModal = function (onConfirm) {
10
+ var _a = (0, react_1.useState)(false), isVisible = _a[0], setIsVisible = _a[1];
11
+ var openModal = (0, react_1.useCallback)(function () {
12
+ setIsVisible(true);
13
+ }, []);
14
+ var closeModal = (0, react_1.useCallback)(function () {
15
+ setIsVisible(false);
16
+ }, []);
17
+ var modal = (0, react_1.useMemo)(function () {
18
+ return isVisible ? ((0, jsx_runtime_1.jsxs)(Modal_1.Modal, { "$width": 400, children: [(0, jsx_runtime_1.jsx)(Modal_1.Modal.Header, { children: "Rafraichir" }), (0, jsx_runtime_1.jsxs)(Modal_1.Modal.ContentWithIcon, { children: [(0, jsx_runtime_1.jsx)(Icons_1.TriangleExclamationIcon, { fill: "var(--color-danger-600)" }), (0, jsx_runtime_1.jsx)("div", { children: "Attention : vous avez des modifications en cours. Si vous rafra\u00EEchissez la liste, ces modifications seront perdues !" })] }), (0, jsx_runtime_1.jsxs)(Modal_1.Modal.Footer, { children: [(0, jsx_runtime_1.jsx)(forms_1.Button, { onClick: closeModal, children: "Annuler" }), (0, jsx_runtime_1.jsx)(forms_1.Button, { "$color": "danger", style: { marginLeft: 'auto' }, onClick: function () {
19
+ closeModal();
20
+ onConfirm();
21
+ }, children: "Rafra\u00EEchir" })] })] })) : null;
22
+ }, [closeModal, isVisible, onConfirm]);
23
+ return { openModal: openModal, closeModal: closeModal, modal: modal };
24
+ };
25
+ exports.useRefreshModal = useRefreshModal;
@@ -2,7 +2,45 @@ import { ForwardedRef } from 'react';
2
2
  import { DataGridContextProps, DataGridProps, DataGridRefProps } from './types';
3
3
  export declare const DataGridInner: <R>({ contextOverride, ...props }: DataGridProps<R> & {
4
4
  contextOverride?: Partial<DataGridContextProps<R>>;
5
- }, ref: ForwardedRef<DataGridRefProps>) => import("react/jsx-runtime").JSX.Element;
6
- export declare const DataGrid: <R>(props: DataGridProps<R> & {
5
+ }, ref: ForwardedRef<DataGridRefProps<R>>) => import("react/jsx-runtime").JSX.Element;
6
+ export declare const DataGrid: <R>(props: {
7
+ name?: string;
8
+ className?: string;
9
+ rows: R[];
10
+ setRows?: import("react").Dispatch<import("react").SetStateAction<R[]>> | undefined;
11
+ columns: import("./types").DataGridColumns<R>;
12
+ rowKey: string;
13
+ selectable?: boolean;
14
+ userSelect?: boolean;
15
+ editable?: boolean;
16
+ onRowDoubleClick?: ((row: R, e: import("react").MouseEvent) => void) | undefined;
17
+ onSelectionChange?: (keys: string[]) => void;
18
+ onSelectedRowsChanged?: ((rows: R[]) => void) | undefined;
19
+ getAllIds?: () => Promise<string[]>;
20
+ onFiltersChanged?: (filters: import("./types").DataGridFilters) => void;
21
+ onSortsChanged?: (sorts: Record<string, import("./types").DataGridSort>) => void;
22
+ onVisibleRowsChange?: (startIndex: number, length: number) => void;
23
+ onCellEdited?: ((row: R, columnKey: string, value: any) => void) | undefined;
24
+ rowClassNameGetter?: ((row: R | null) => {
25
+ className?: string;
26
+ style?: import("react").CSSProperties;
27
+ }) | undefined;
28
+ headerRowHeight?: number;
29
+ rowHeight?: number;
30
+ filter?: boolean;
31
+ sort?: boolean;
32
+ initialSorts?: Record<string, import("./types").DataGridSort>;
33
+ initialFooters?: Record<string, string>;
34
+ onFootersChanged?: (footers: Record<string, string>) => void;
35
+ filterValuesLoader?: (columnKey: string) => Promise<(string | number | null)[]>;
36
+ loadCopyRows?: (() => Promise<R[]>) | undefined;
37
+ refresh?: () => void;
38
+ headerColor?: import("../../..").ThemeColor;
39
+ fixedColumnsCount?: number;
40
+ onRowEdited?: ((row: R, columnKey: keyof R, value: any) => void) | undefined;
41
+ onSaveClicked?: ((addedRows: import("./types").DataGridEditedRows<R>, editedRows: import("./types").DataGridEditedRows<R>) => Promise<string[]>) | undefined;
42
+ onAddClicked?: (() => Promise<R>) | undefined;
43
+ headerContent?: import("react").ReactNode;
44
+ } & import("../../../helpers/styled").MarginProps & import("../../../helpers/styled").PaddingProps & {
7
45
  contextOverride?: Partial<DataGridContextProps<R>>;
8
- } & import("react").RefAttributes<DataGridRefProps>) => import("react").JSX.Element | null;
46
+ } & import("react").RefAttributes<DataGridRefProps<R>>) => import("react").JSX.Element | null;
@@ -1,4 +1,15 @@
1
1
  "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
2
13
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
14
  if (k2 === undefined) k2 = k;
4
15
  var desc = Object.getOwnPropertyDescriptor(m, k);
@@ -33,31 +44,47 @@ var __rest = (this && this.__rest) || function (s, e) {
33
44
  }
34
45
  return t;
35
46
  };
47
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
48
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
49
+ if (ar || !(i in from)) {
50
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
51
+ ar[i] = from[i];
52
+ }
53
+ }
54
+ return to.concat(ar || Array.prototype.slice.call(from));
55
+ };
36
56
  Object.defineProperty(exports, "__esModule", { value: true });
37
57
  exports.DataGrid = exports.DataGridInner = void 0;
38
58
  var jsx_runtime_1 = require("react/jsx-runtime");
39
59
  var styles = __importStar(require("./styles"));
40
60
  var react_1 = require("react");
61
+ var constants_1 = require("./constants");
41
62
  var DataGridFooter_1 = require("./DataGridFooter");
42
63
  var DataGridHeader_1 = require("./DataGridHeader");
43
64
  var DataGridRowTemplate_1 = require("./DataGridRowTemplate");
65
+ var DataGridToolbar_1 = require("./DataGridToolbar");
44
66
  var VirtualScroller_1 = require("../VirtualScroller");
67
+ var styled_1 = require("../../../helpers/styled");
45
68
  var hooks_1 = require("./hooks");
46
- /* eslint-disable @typescript-eslint/no-explicit-any */
47
- /* eslint-disable @typescript-eslint/no-unnecessary-type-constraint */
48
69
  var DataGridInner = function (_a, ref) {
49
70
  var contextOverride = _a.contextOverride, props = __rest(_a, ["contextOverride"]);
50
71
  var scrollableRef = (0, react_1.useRef)(null);
51
72
  var className = props.className;
73
+ var spaceProps = (0, styled_1.extractSpaceProps)(props);
52
74
  var _b = (0, hooks_1.useDataGrid)(props, contextOverride), contextProps = _b[0], DataGridContext = _b[1];
53
- var columns = contextProps.columns, _c = contextProps.rowHeight, rowHeight = _c === void 0 ? 32 : _c, _d = contextProps.headerRowHeight, headerRowHeight = _d === void 0 ? 40 : _d, gridTemplateColumns = contextProps.gridTemplateColumns, sortedRows = contextProps.sortedRows, onVisibleRowsChange = contextProps.onVisibleRowsChange, refresh = contextProps.refresh, setSelectedKeys = contextProps.setSelectedKeys;
75
+ var columns = contextProps.columns, selectable = contextProps.selectable, _c = contextProps.rowHeight, rowHeight = _c === void 0 ? constants_1.DEFAULT_ROW_HEIGHT : _c, _d = contextProps.headerRowHeight, headerRowHeight = _d === void 0 ? 40 : _d, gridTemplateColumns = contextProps.gridTemplateColumns, sortedRows = contextProps.sortedRows, onVisibleRowsChange = contextProps.onVisibleRowsChange, refresh = contextProps.refresh, setSelectedKeys = contextProps.setSelectedKeys, addRows = contextProps.addRows, fixedColumnsCount = contextProps.fixedColumnsCount, resizingColumnKey = contextProps.resizingColumnKey, moveResizing = contextProps.moveResizing, endResizing = contextProps.endResizing;
54
76
  (0, react_1.useImperativeHandle)(ref, function () { return ({
55
77
  refresh: refresh !== null && refresh !== void 0 ? refresh : (function () { }),
56
78
  setSelectedKeys: setSelectedKeys,
57
- }); }, [refresh, setSelectedKeys]);
79
+ addRows: addRows,
80
+ }); }, [addRows, refresh, setSelectedKeys]);
58
81
  var hasFooter = Object.values(columns).some(function (col) { return col.footer; });
82
+ var fixedColumnWidths = (0, react_1.useMemo)(function () { return __spreadArray(__spreadArray([], (selectable ? [constants_1.SELECTION_CELL_WIDTH] : []), true), Object.values(columns)
83
+ .slice(0, fixedColumnsCount !== null && fixedColumnsCount !== void 0 ? fixedColumnsCount : 0)
84
+ .map(function (col) { var _a; return (_a = col.width) !== null && _a !== void 0 ? _a : constants_1.DEFAULT_COLUMN_WIDTH; }), true); }, [columns, fixedColumnsCount, selectable]);
85
+ var itemProps = (0, react_1.useMemo)(function () { return ({ context: DataGridContext }); }, [DataGridContext]);
59
86
  var rowTemplate = DataGridRowTemplate_1.DataGridRowTemplate;
60
- return ((0, jsx_runtime_1.jsx)(DataGridContext.Provider, { value: contextProps, children: (0, jsx_runtime_1.jsxs)(styles.DataGridContainer, { ref: scrollableRef, "$headerRowHeight": headerRowHeight, "$rowHeight": rowHeight, "$rowsCount": contextProps.sortedRows.length, "$withFooter": hasFooter, className: className, children: [(0, jsx_runtime_1.jsx)(DataGridHeader_1.DataGridHeader, { context: DataGridContext }), (0, jsx_runtime_1.jsx)(VirtualScroller_1.VirtualScroller, { gridTemplateColumns: gridTemplateColumns, items: sortedRows, itemTemplate: rowTemplate, itemProps: { context: DataGridContext }, rowHeightInPx: styles.DEFAULT_ROW_HEIGHT, onRangeChanged: onVisibleRowsChange }), hasFooter && (0, jsx_runtime_1.jsx)(DataGridFooter_1.DataGridFooter, { context: DataGridContext })] }) }));
87
+ return ((0, jsx_runtime_1.jsx)(DataGridContext.Provider, { value: contextProps, children: (0, jsx_runtime_1.jsxs)(styles.DataGridWrapper, __assign({}, spaceProps, { children: [(0, jsx_runtime_1.jsx)(DataGridToolbar_1.DataGridToolbar, { context: DataGridContext }), (0, jsx_runtime_1.jsxs)(styles.DataGridContainer, { ref: scrollableRef, "$headerRowHeight": headerRowHeight, "$rowHeight": rowHeight, "$rowsCount": contextProps.sortedRows.length, "$withFooter": hasFooter, className: className, "$fixedColumnWidths": fixedColumnWidths, children: [resizingColumnKey && ((0, jsx_runtime_1.jsx)(styles.ResizeBackdrop, { onMouseMove: moveResizing, onMouseUp: endResizing })), (0, jsx_runtime_1.jsx)(DataGridHeader_1.DataGridHeader, { context: DataGridContext }), (0, jsx_runtime_1.jsx)(VirtualScroller_1.VirtualScroller, { integrated: true, gridTemplateColumns: gridTemplateColumns, items: sortedRows, itemTemplate: rowTemplate, itemProps: itemProps, rowHeightInPx: rowHeight, onRangeChanged: onVisibleRowsChange }), hasFooter && (0, jsx_runtime_1.jsx)(DataGridFooter_1.DataGridFooter, { context: DataGridContext })] })] })) }));
61
88
  };
62
89
  exports.DataGridInner = DataGridInner;
63
90
  exports.DataGrid = (0, react_1.forwardRef)(exports.DataGridInner);
@@ -1,8 +1,7 @@
1
+ import { SpaceProps } from '../../../helpers/styled';
2
+ import { DataGridCellFCProps } from './types';
1
3
  import { ThemeColor } from '../../../providers/ThemeProvider/types';
2
- export declare const TOOLBAR_HEIGHT = 40;
3
- export declare const DEFAULT_HEADER_ROW_HEIGHT = 40;
4
- export declare const DEFAULT_FOOTER_ROW_HEIGHT = 40;
5
- export declare const DEFAULT_ROW_HEIGHT = 32;
4
+ export declare const DataGridWrapper: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components/dist/types").Substitute<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, SpaceProps>> & string;
6
5
  export declare const DataGridResizeGrip: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components/dist/types").Substitute<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {
7
6
  $headerColor?: ThemeColor;
8
7
  }>> & string;
@@ -11,14 +10,20 @@ type DataGridHeaderCellContainerProps = {
11
10
  $headerColor?: ThemeColor;
12
11
  };
13
12
  export declare const DataGridHeaderCellContainer: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components/dist/types").Substitute<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, DataGridHeaderCellContainerProps>> & string;
14
- export declare const DataGridCell: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>> & string;
13
+ export declare const DataGridHeaderTextContainer: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>> & string;
14
+ export declare const dataGridCellCss: import("styled-components").RuleSet<DataGridCellFCProps>;
15
+ export declare const DataGridCell: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components/dist/types").Substitute<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, DataGridCellFCProps>> & string;
16
+ export declare const DataGridHeaderTitle: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>> & string;
15
17
  export declare const DataGridToolsRow: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>> & string;
18
+ export declare const DataGridToolsRowHeaderContent: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>> & string;
19
+ export declare const DataGridToolsRowButtonsContainer: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>> & string;
16
20
  export declare const DataGridContainer: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components/dist/types").Substitute<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {
17
21
  $headerRowHeight?: number;
18
22
  $rowHeight?: number;
19
23
  $rowsCount: number;
20
24
  $showToolsHeader?: boolean;
21
25
  $withFooter?: boolean;
26
+ $fixedColumnWidths?: (string | number)[];
22
27
  }>> & string;
23
28
  type DataGridHeaderOrFooterRowProps = {
24
29
  $headerRowHeight?: number;
@@ -31,11 +36,14 @@ export declare const DataGridHeaderRow: import("styled-components/dist/types").I
31
36
  export declare const DataGridFooterRow: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("styled-components/dist/types").Substitute<import("styled-components/dist/types").Substitute<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & {
32
37
  ref?: ((instance: HTMLDivElement | null) => void | import("react").DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES[keyof import("react").DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES]) | import("react").RefObject<HTMLDivElement> | null | undefined;
33
38
  }>, DataGridHeaderOrFooterRowProps>, never>> & string;
34
- export declare const DataGridRow: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>> & string;
35
- export declare const LoadingCell: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<Omit<import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>, "ref"> & {
39
+ type DataGridRowProps = {
40
+ $edited?: boolean;
41
+ };
42
+ export declare const DataGridRow: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components/dist/types").Substitute<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, DataGridRowProps>> & string;
43
+ export declare const LoadingCell: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<Omit<import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, keyof DataGridCellFCProps> & DataGridCellFCProps, "ref"> & {
36
44
  ref?: ((instance: HTMLDivElement | null) => void | import("react").DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES[keyof import("react").DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES]) | import("react").RefObject<HTMLDivElement> | null | undefined;
37
45
  }, never>> & string;
38
- export declare const SelectionCell: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<Omit<import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>, "ref"> & {
46
+ export declare const SelectionCell: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<Omit<import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, keyof DataGridCellFCProps> & DataGridCellFCProps, "ref"> & {
39
47
  ref?: ((instance: HTMLDivElement | null) => void | import("react").DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES[keyof import("react").DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES]) | import("react").RefObject<HTMLDivElement> | null | undefined;
40
48
  }, never>> & string;
41
49
  export declare const HeaderSelectionCell: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<Omit<import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, keyof DataGridHeaderCellContainerProps> & DataGridHeaderCellContainerProps, "ref"> & {