@addev-be/ui 0.16.3 → 0.16.7

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 (207) hide show
  1. package/assets/icons/table.svg +1 -1
  2. package/dist/Icons.d.ts +9 -1
  3. package/dist/Icons.js +17 -1
  4. package/dist/components/auth/LoginForm.js +1 -1
  5. package/dist/components/auth/PasswordRecoveryForm.js +1 -1
  6. package/dist/components/auth/PasswordResetForm.js +1 -1
  7. package/dist/components/data/DataGrid/DataGridCell.js +5 -5
  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/DataGridEditableCell/CheckboxEditableCell.d.ts +2 -0
  13. package/dist/components/data/DataGrid/DataGridEditableCell/CheckboxEditableCell.js +23 -0
  14. package/dist/components/data/DataGrid/DataGridEditableCell/DateEditableCell.d.ts +2 -0
  15. package/dist/components/data/DataGrid/DataGridEditableCell/DateEditableCell.js +27 -0
  16. package/dist/components/data/DataGrid/DataGridEditableCell/NumberEditableCell.d.ts +5 -0
  17. package/dist/components/data/DataGrid/DataGridEditableCell/NumberEditableCell.js +32 -0
  18. package/dist/components/data/DataGrid/DataGridEditableCell/TextEditableCell.d.ts +2 -0
  19. package/dist/components/data/DataGrid/DataGridEditableCell/TextEditableCell.js +23 -0
  20. package/dist/components/data/DataGrid/DataGridEditableCell/index.d.ts +2 -0
  21. package/dist/components/data/DataGrid/DataGridEditableCell/index.js +91 -0
  22. package/dist/components/data/DataGrid/DataGridEditableCell/styles.d.ts +3 -0
  23. package/dist/components/data/DataGrid/DataGridEditableCell/styles.js +17 -0
  24. package/dist/components/data/DataGrid/DataGridEditableCell/types.d.ts +11 -0
  25. package/dist/components/data/{AdvancedRequestDataGrid → DataGrid/DataGridEditableCell}/types.js +1 -0
  26. package/dist/components/data/DataGrid/DataGridFilterMenu/FilterValuesScroller.js +17 -1
  27. package/dist/components/data/DataGrid/DataGridFilterMenu/hooks.d.ts +4 -3
  28. package/dist/components/data/DataGrid/DataGridFilterMenu/hooks.js +11 -12
  29. package/dist/components/data/DataGrid/DataGridFilterMenu/index.d.ts +5 -4
  30. package/dist/components/data/DataGrid/DataGridFilterMenu/index.js +44 -40
  31. package/dist/components/data/DataGrid/DataGridFilterMenu/styles.js +1 -1
  32. package/dist/components/data/DataGrid/DataGridFooter.js +5 -5
  33. package/dist/components/data/DataGrid/DataGridHeader.js +40 -6
  34. package/dist/components/data/DataGrid/DataGridHeaderCell.d.ts +1 -1
  35. package/dist/components/data/DataGrid/DataGridHeaderCell.js +11 -23
  36. package/dist/components/data/DataGrid/DataGridRowTemplate.d.ts +1 -1
  37. package/dist/components/data/DataGrid/DataGridRowTemplate.js +8 -9
  38. package/dist/components/data/DataGrid/FilterModalContent/index.js +1 -1
  39. package/dist/components/data/DataGrid/constants.d.ts +6 -0
  40. package/dist/components/data/DataGrid/constants.js +9 -0
  41. package/dist/components/data/DataGrid/helpers/columns.d.ts +13 -12
  42. package/dist/components/data/DataGrid/helpers/columns.js +100 -130
  43. package/dist/components/data/DataGrid/hooks/index.d.ts +3 -3
  44. package/dist/components/data/DataGrid/hooks/index.js +8 -12
  45. package/dist/components/data/DataGrid/hooks/useDataGrid.js +71 -23
  46. package/dist/components/data/DataGrid/hooks/useDataGridChangedRows.d.ts +9 -0
  47. package/dist/components/data/DataGrid/hooks/useDataGridChangedRows.js +71 -0
  48. package/dist/components/data/DataGrid/hooks/useDataGridCopy.js +25 -30
  49. package/dist/components/data/DataGrid/index.js +16 -3
  50. package/dist/components/data/DataGrid/styles.d.ts +13 -8
  51. package/dist/components/data/DataGrid/styles.js +58 -30
  52. package/dist/components/data/DataGrid/types.d.ts +81 -15
  53. package/dist/components/data/SqlRequestDataGrid/SqlRequestForeignListEditableCell.d.ts +2 -0
  54. package/dist/components/data/SqlRequestDataGrid/SqlRequestForeignListEditableCell.js +19 -0
  55. package/dist/components/data/SqlRequestDataGrid/helpers/columns.d.ts +16 -17
  56. package/dist/components/data/SqlRequestDataGrid/helpers/columns.js +236 -84
  57. package/dist/components/data/SqlRequestDataGrid/index.js +77 -63
  58. package/dist/components/data/SqlRequestDataGrid/styles.d.ts +2 -0
  59. package/dist/components/data/SqlRequestDataGrid/styles.js +14 -0
  60. package/dist/components/data/SqlRequestDataGrid/types.d.ts +13 -3
  61. package/dist/components/data/SqlRequestDataGrid/types.js +1 -0
  62. package/dist/components/data/SqlRequestForeignList/index.d.ts +4 -0
  63. package/dist/components/data/SqlRequestForeignList/index.js +131 -0
  64. package/dist/components/data/SqlRequestForeignList/styles.d.ts +9 -0
  65. package/dist/components/data/SqlRequestForeignList/styles.js +22 -0
  66. package/dist/components/data/SqlRequestForeignList/types.d.ts +22 -0
  67. package/dist/components/data/SqlRequestForeignList/types.js +3 -0
  68. package/dist/components/data/SqlRequestGrid/filters/FiltersSidebar.d.ts +10 -0
  69. package/dist/components/data/SqlRequestGrid/filters/FiltersSidebar.js +51 -0
  70. package/dist/components/data/SqlRequestGrid/filters/styles.d.ts +4 -0
  71. package/dist/components/data/SqlRequestGrid/filters/styles.js +17 -0
  72. package/dist/components/data/SqlRequestGrid/index.d.ts +1 -1
  73. package/dist/components/data/SqlRequestGrid/index.js +139 -49
  74. package/dist/components/data/SqlRequestGrid/styles.d.ts +0 -12
  75. package/dist/components/data/SqlRequestGrid/styles.js +4 -20
  76. package/dist/components/data/SqlRequestGrid/types.d.ts +14 -4
  77. package/dist/components/data/VirtualScroller/index.d.ts +4 -3
  78. package/dist/components/data/VirtualScroller/index.js +15 -5
  79. package/dist/components/data/VirtualScroller/styles.d.ts +4 -2
  80. package/dist/components/data/VirtualScroller/styles.js +9 -6
  81. package/dist/components/data/index.d.ts +1 -2
  82. package/dist/components/data/index.js +1 -2
  83. package/dist/components/forms/AutoTextArea.d.ts +10 -0
  84. package/dist/components/forms/AutoTextArea.js +40 -0
  85. package/dist/components/forms/Button.d.ts +9 -2
  86. package/dist/components/forms/Button.js +13 -7
  87. package/dist/components/forms/Form/Checkbox.d.ts +3 -0
  88. package/dist/components/forms/Form/Checkbox.js +33 -0
  89. package/dist/components/forms/Form/FormGroup.d.ts +9 -0
  90. package/dist/components/forms/Form/FormGroup.js +10 -0
  91. package/dist/components/forms/Form/Input.d.ts +3 -0
  92. package/dist/components/forms/Form/Input.js +33 -0
  93. package/dist/components/forms/Form/Row.d.ts +9 -0
  94. package/dist/components/forms/Form/Row.js +10 -0
  95. package/dist/components/forms/Form/Select.d.ts +18 -0
  96. package/dist/components/forms/Form/Select.js +47 -0
  97. package/dist/components/forms/Form/TextArea.d.ts +4 -0
  98. package/dist/components/forms/Form/TextArea.js +34 -0
  99. package/dist/components/forms/Form/index.d.ts +80 -0
  100. package/dist/components/forms/Form/index.js +29 -0
  101. package/dist/components/forms/Form/styles.d.ts +19 -0
  102. package/dist/components/forms/Form/styles.js +49 -0
  103. package/dist/components/forms/IconButton.d.ts +2 -1
  104. package/dist/components/forms/IconButton.js +12 -12
  105. package/dist/components/forms/NumberInput.d.ts +9 -0
  106. package/dist/components/forms/NumberInput.js +41 -0
  107. package/dist/components/forms/Select.d.ts +5 -6
  108. package/dist/components/forms/Select.js +2 -5
  109. package/dist/components/forms/index.d.ts +4 -0
  110. package/dist/components/forms/index.js +4 -0
  111. package/dist/components/layout/Columns.d.ts +5 -0
  112. package/dist/components/layout/Columns.js +19 -0
  113. package/dist/components/layout/Dropdown/index.d.ts +1 -0
  114. package/dist/components/layout/Dropdown/index.js +24 -3
  115. package/dist/components/layout/Grid/index.d.ts +6 -0
  116. package/dist/components/layout/Grid/index.js +6 -0
  117. package/dist/components/layout/Grid/styles.d.ts +14 -0
  118. package/dist/components/layout/Grid/styles.js +29 -0
  119. package/dist/components/layout/Masonry/index.d.ts +3 -0
  120. package/dist/components/layout/Masonry/index.js +20 -0
  121. package/dist/components/layout/Masonry/styles.d.ts +5 -0
  122. package/dist/components/layout/Masonry/styles.js +17 -0
  123. package/dist/components/layout/index.d.ts +4 -1
  124. package/dist/components/layout/index.js +4 -1
  125. package/dist/components/search/QuickSearchBar.js +6 -0
  126. package/dist/components/ui/Avatar/index.d.ts +10 -0
  127. package/dist/components/ui/Avatar/index.js +52 -0
  128. package/dist/components/ui/Avatar/styles.d.ts +4 -0
  129. package/dist/components/ui/Avatar/styles.js +43 -0
  130. package/dist/components/ui/Card/styles.js +1 -1
  131. package/dist/components/ui/Ellipsis.d.ts +13 -0
  132. package/dist/components/ui/Ellipsis.js +28 -0
  133. package/dist/components/ui/Label.d.ts +9 -0
  134. package/dist/components/ui/Label.js +74 -0
  135. package/dist/components/ui/ToastNotification.d.ts +14 -0
  136. package/dist/components/ui/ToastNotification.js +78 -0
  137. package/dist/components/ui/index.d.ts +3 -0
  138. package/dist/components/ui/index.js +3 -0
  139. package/dist/helpers/index.d.ts +1 -0
  140. package/dist/helpers/index.js +1 -0
  141. package/dist/helpers/numbers.d.ts +3 -0
  142. package/dist/helpers/numbers.js +33 -1
  143. package/dist/helpers/responsive.d.ts +37 -0
  144. package/dist/helpers/responsive.js +57 -0
  145. package/dist/hooks/index.d.ts +5 -0
  146. package/dist/hooks/index.js +5 -0
  147. package/dist/hooks/useContainerMediaQuery.d.ts +17 -0
  148. package/dist/hooks/useContainerMediaQuery.js +10 -0
  149. package/dist/hooks/useMediaQuery.d.ts +17 -0
  150. package/dist/hooks/useMediaQuery.js +11 -0
  151. package/dist/hooks/useMediaQueryForWidth.d.ts +17 -0
  152. package/dist/hooks/useMediaQueryForWidth.js +26 -0
  153. package/dist/hooks/useMutableState.d.ts +2 -0
  154. package/dist/hooks/useMutableState.js +16 -0
  155. package/dist/hooks/useShowArchived.d.ts +6 -0
  156. package/dist/hooks/useShowArchived.js +21 -0
  157. package/dist/index.d.ts +1 -0
  158. package/dist/index.js +1 -0
  159. package/dist/providers/AuthenticationProvider/index.js +4 -3
  160. package/dist/providers/PortalsProvider/styles.js +1 -1
  161. package/dist/providers/ThemeProvider/defaultTheme.js +13 -0
  162. package/dist/providers/ThemeProvider/helpers.d.ts +3 -0
  163. package/dist/providers/ThemeProvider/helpers.js +13 -0
  164. package/dist/providers/ThemeProvider/types.d.ts +2 -1
  165. package/dist/providers/TrackingProvider/hooks.d.ts +1 -0
  166. package/dist/providers/TrackingProvider/hooks.js +15 -0
  167. package/dist/providers/TrackingProvider/index.d.ts +8 -0
  168. package/dist/providers/TrackingProvider/index.js +41 -0
  169. package/dist/providers/UiProviders/index.js +2 -1
  170. package/dist/providers/index.d.ts +2 -0
  171. package/dist/providers/index.js +2 -0
  172. package/dist/services/globalSearch.d.ts +2 -1
  173. package/dist/services/index.d.ts +7 -0
  174. package/dist/services/index.js +20 -0
  175. package/dist/services/requests/generic.d.ts +29 -0
  176. package/dist/services/requests/generic.js +29 -0
  177. package/dist/services/requests/tracking.d.ts +18 -0
  178. package/dist/services/requests/tracking.js +8 -0
  179. package/dist/services/smartQueries.d.ts +51 -0
  180. package/dist/services/smartQueries.js +10 -0
  181. package/dist/services/smartRequests.d.ts +0 -0
  182. package/dist/services/smartRequests.js +1 -0
  183. package/dist/services/types/generic.d.ts +44 -0
  184. package/dist/services/types/generic.js +79 -0
  185. package/dist/services/types/tracking.d.ts +24 -0
  186. package/dist/services/types/tracking.js +47 -0
  187. package/dist/services/updateSqlRequests.d.ts +24 -0
  188. package/dist/services/updateSqlRequests.js +7 -0
  189. package/package.json +1 -1
  190. package/src/components/data/DataGrid/styles.ts +9 -2
  191. package/src/components/forms/NumberInput.tsx +53 -0
  192. package/src/components/forms/index.ts +1 -0
  193. package/src/components/ui/Avatar/styles.ts +61 -61
  194. package/src/components/ui/Label.tsx +90 -90
  195. package/src/providers/TrackingProvider/hooks.ts +14 -14
  196. package/tsconfig.tsbuildinfo +1 -1
  197. package/dist/components/data/AdvancedRequestDataGrid/helpers/advancedRequests.d.ts +0 -14
  198. package/dist/components/data/AdvancedRequestDataGrid/helpers/advancedRequests.js +0 -76
  199. package/dist/components/data/AdvancedRequestDataGrid/helpers/columns.d.ts +0 -22
  200. package/dist/components/data/AdvancedRequestDataGrid/helpers/columns.js +0 -156
  201. package/dist/components/data/AdvancedRequestDataGrid/helpers/index.d.ts +0 -2
  202. package/dist/components/data/AdvancedRequestDataGrid/helpers/index.js +0 -18
  203. package/dist/components/data/AdvancedRequestDataGrid/index.d.ts +0 -2
  204. package/dist/components/data/AdvancedRequestDataGrid/index.js +0 -215
  205. package/dist/components/data/AdvancedRequestDataGrid/types.d.ts +0 -21
  206. package/dist/components/data/DataGrid/DataGridEditableCell.d.ts +0 -2
  207. package/dist/components/data/DataGrid/DataGridEditableCell.js +0 -27
@@ -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
  : '';
@@ -33,15 +33,25 @@ var __rest = (this && this.__rest) || function (s, e) {
33
33
  }
34
34
  return t;
35
35
  };
36
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
37
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
38
+ if (ar || !(i in from)) {
39
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
40
+ ar[i] = from[i];
41
+ }
42
+ }
43
+ return to.concat(ar || Array.prototype.slice.call(from));
44
+ };
36
45
  Object.defineProperty(exports, "__esModule", { value: true });
37
46
  exports.DataGrid = exports.DataGridInner = void 0;
38
47
  var jsx_runtime_1 = require("react/jsx-runtime");
39
48
  var styles = __importStar(require("./styles"));
40
49
  var react_1 = require("react");
50
+ var constants_1 = require("./constants");
51
+ var VirtualScroller_1 = require("../VirtualScroller");
41
52
  var DataGridFooter_1 = require("./DataGridFooter");
42
53
  var DataGridHeader_1 = require("./DataGridHeader");
43
54
  var DataGridRowTemplate_1 = require("./DataGridRowTemplate");
44
- var VirtualScroller_1 = require("../VirtualScroller");
45
55
  var hooks_1 = require("./hooks");
46
56
  /* eslint-disable @typescript-eslint/no-explicit-any */
47
57
  /* eslint-disable @typescript-eslint/no-unnecessary-type-constraint */
@@ -50,14 +60,17 @@ var DataGridInner = function (_a, ref) {
50
60
  var scrollableRef = (0, react_1.useRef)(null);
51
61
  var className = props.className;
52
62
  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;
63
+ 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, fixedColumnsCount = contextProps.fixedColumnsCount, resizingColumnKey = contextProps.resizingColumnKey, moveResizing = contextProps.moveResizing, endResizing = contextProps.endResizing;
54
64
  (0, react_1.useImperativeHandle)(ref, function () { return ({
55
65
  refresh: refresh !== null && refresh !== void 0 ? refresh : (function () { }),
56
66
  setSelectedKeys: setSelectedKeys,
57
67
  }); }, [refresh, setSelectedKeys]);
58
68
  var hasFooter = Object.values(columns).some(function (col) { return col.footer; });
69
+ var fixedColumnWidths = (0, react_1.useMemo)(function () { return __spreadArray(__spreadArray([], (selectable ? [constants_1.SELECTION_CELL_WIDTH] : []), true), Object.values(columns)
70
+ .slice(0, fixedColumnsCount !== null && fixedColumnsCount !== void 0 ? fixedColumnsCount : 0)
71
+ .map(function (col) { var _a; return (_a = col.width) !== null && _a !== void 0 ? _a : constants_1.DEFAULT_COLUMN_WIDTH; }), true); }, [columns, fixedColumnsCount, selectable]);
59
72
  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 })] }) }));
73
+ 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, "$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: { context: DataGridContext }, rowHeightInPx: rowHeight, onRangeChanged: onVisibleRowsChange }), hasFooter && (0, jsx_runtime_1.jsx)(DataGridFooter_1.DataGridFooter, { context: DataGridContext })] }) }));
61
74
  };
62
75
  exports.DataGridInner = DataGridInner;
63
76
  exports.DataGrid = (0, react_1.forwardRef)(exports.DataGridInner);
@@ -1,8 +1,5 @@
1
1
  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;
2
+ import { DataGridCellFCProps } from './types';
6
3
  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
4
  $headerColor?: ThemeColor;
8
5
  }>> & string;
@@ -11,14 +8,19 @@ type DataGridHeaderCellContainerProps = {
11
8
  $headerColor?: ThemeColor;
12
9
  };
13
10
  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;
11
+ 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;
12
+ export declare const dataGridCellCss: import("styled-components").RuleSet<DataGridCellFCProps>;
13
+ 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;
14
+ 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
15
  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;
16
+ 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
17
  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
18
  $headerRowHeight?: number;
18
19
  $rowHeight?: number;
19
20
  $rowsCount: number;
20
21
  $showToolsHeader?: boolean;
21
22
  $withFooter?: boolean;
23
+ $fixedColumnWidths?: (string | number)[];
22
24
  }>> & string;
23
25
  type DataGridHeaderOrFooterRowProps = {
24
26
  $headerRowHeight?: number;
@@ -31,11 +33,14 @@ export declare const DataGridHeaderRow: import("styled-components/dist/types").I
31
33
  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
34
  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
35
  }>, 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"> & {
36
+ type DataGridRowProps = {
37
+ $edited?: boolean;
38
+ };
39
+ 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;
40
+ 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
41
  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
42
  }, 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"> & {
43
+ 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
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;
40
45
  }, never>> & string;
41
46
  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"> & {
@@ -27,19 +27,16 @@ var __importStar = (this && this.__importStar) || function (mod) {
27
27
  return result;
28
28
  };
29
29
  Object.defineProperty(exports, "__esModule", { value: true });
30
- exports.ResizeBackdrop = exports.HeaderSelectionCell = exports.SelectionCell = exports.LoadingCell = exports.DataGridRow = exports.DataGridFooterRow = exports.DataGridHeaderRow = exports.DataGridContainer = exports.DataGridToolsRow = exports.DataGridCell = exports.DataGridHeaderCellContainer = exports.DataGridResizeGrip = exports.DEFAULT_ROW_HEIGHT = exports.DEFAULT_FOOTER_ROW_HEIGHT = exports.DEFAULT_HEADER_ROW_HEIGHT = exports.TOOLBAR_HEIGHT = void 0;
30
+ exports.ResizeBackdrop = exports.HeaderSelectionCell = exports.SelectionCell = exports.LoadingCell = exports.DataGridRow = exports.DataGridFooterRow = exports.DataGridHeaderRow = exports.DataGridContainer = exports.DataGridToolsRowButtonsContainer = exports.DataGridToolsRow = exports.DataGridHeaderTitle = exports.DataGridCell = exports.dataGridCellCss = exports.DataGridHeaderTextContainer = exports.DataGridHeaderCellContainer = exports.DataGridResizeGrip = void 0;
31
31
  var styled_components_1 = __importStar(require("styled-components"));
32
+ var constants_1 = require("./constants");
32
33
  var styles_1 = require("../VirtualScroller/styles");
33
- exports.TOOLBAR_HEIGHT = 40;
34
- exports.DEFAULT_HEADER_ROW_HEIGHT = 40;
35
- exports.DEFAULT_FOOTER_ROW_HEIGHT = 40;
36
- exports.DEFAULT_ROW_HEIGHT = 32;
37
34
  exports.DataGridResizeGrip = styled_components_1.default.div(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n position: absolute;\n top: 0;\n right: 0;\n width: var(--space-1);\n height: 100%;\n\n ", "\n\n cursor: col-resize;\n display: none;\n"], ["\n position: absolute;\n top: 0;\n right: 0;\n width: var(--space-1);\n height: 100%;\n\n ", "\n\n cursor: col-resize;\n display: none;\n"])), function (_a) {
38
35
  var $headerColor = _a.$headerColor;
39
36
  return $headerColor
40
37
  ? (0, styled_components_1.css)(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n background-color: var(--color-", "-400);\n &:hover,\n &.active {\n background-color: var(--color-", "-500);\n }\n "], ["\n background-color: var(--color-", "-400);\n &:hover,\n &.active {\n background-color: var(--color-", "-500);\n }\n "])), $headerColor, $headerColor) : (0, styled_components_1.css)(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n background-color: var(--color-neutral-400);\n &:hover,\n &.active {\n background-color: var(--color-neutral-500);\n }\n "], ["\n background-color: var(--color-neutral-400);\n &:hover,\n &.active {\n background-color: var(--color-neutral-500);\n }\n "])));
41
38
  });
42
- exports.DataGridHeaderCellContainer = styled_components_1.default.div(templateObject_6 || (templateObject_6 = __makeTemplateObject(["\n position: relative;\n display: flex;\n align-items: center;\n flex-wrap: nowrap;\n gap: var(--space-1);\n padding: 0 0.75rem;\n height: 100%;\n font-weight: var(--font-bold);\n line-height: 1.5rem;\n z-index: ", ";\n\n ", "\n\n &:hover {\n ", " {\n display: block;\n }\n }\n\n & > span {\n display: inline-block;\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap;\n flex: 1;\n font-weight: bold;\n }\n"], ["\n position: relative;\n display: flex;\n align-items: center;\n flex-wrap: nowrap;\n gap: var(--space-1);\n padding: 0 0.75rem;\n height: 100%;\n font-weight: var(--font-bold);\n line-height: 1.5rem;\n z-index: ", ";\n\n ", "\n\n &:hover {\n ", " {\n display: block;\n }\n }\n\n & > span {\n display: inline-block;\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap;\n flex: 1;\n font-weight: bold;\n }\n"])), function (_a) {
39
+ exports.DataGridHeaderCellContainer = styled_components_1.default.div(templateObject_6 || (templateObject_6 = __makeTemplateObject(["\n align-items: center;\n display: flex;\n flex-wrap: nowrap;\n font-weight: var(--font-bold);\n gap: var(--space-1);\n height: 100%;\n user-select: none;\n line-height: 1.5rem;\n padding: 0 0.75rem;\n position: relative;\n\n z-index: ", ";\n\n ", "\n\n &:hover {\n ", " {\n display: block;\n }\n }\n\n & > span {\n display: inline-block;\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap;\n flex: 1;\n font-weight: bold;\n }\n"], ["\n align-items: center;\n display: flex;\n flex-wrap: nowrap;\n font-weight: var(--font-bold);\n gap: var(--space-1);\n height: 100%;\n user-select: none;\n line-height: 1.5rem;\n padding: 0 0.75rem;\n position: relative;\n\n z-index: ", ";\n\n ", "\n\n &:hover {\n ", " {\n display: block;\n }\n }\n\n & > span {\n display: inline-block;\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap;\n flex: 1;\n font-weight: bold;\n }\n"])), function (_a) {
43
40
  var $isResizing = _a.$isResizing;
44
41
  return ($isResizing ? 1 : 0);
45
42
  }, function (_a) {
@@ -48,34 +45,62 @@ exports.DataGridHeaderCellContainer = styled_components_1.default.div(templateOb
48
45
  ? (0, styled_components_1.css)(templateObject_4 || (templateObject_4 = __makeTemplateObject(["\n background-color: var(--color-", "-200);\n color: var(--color-", "-950);\n &:hover {\n background-color: var(--color-", "-300);\n }\n\n & > button {\n background-color: var(--color-", "-400);\n border-color: var(--color-", "-500);\n &:hover {\n background-color: var(--color-", "-500);\n border-color: var(--color-", "-600);\n }\n }\n & > button.danger {\n background-color: var(--color-red-400);\n border-color: var(--color-red-500);\n &:hover {\n background-color: var(--color-red-500);\n border-color: var(--color-red-600);\n }\n }\n "], ["\n background-color: var(--color-", "-200);\n color: var(--color-", "-950);\n &:hover {\n background-color: var(--color-", "-300);\n }\n\n & > button {\n background-color: var(--color-", "-400);\n border-color: var(--color-", "-500);\n &:hover {\n background-color: var(--color-", "-500);\n border-color: var(--color-", "-600);\n }\n }\n & > button.danger {\n background-color: var(--color-red-400);\n border-color: var(--color-red-500);\n &:hover {\n background-color: var(--color-red-500);\n border-color: var(--color-red-600);\n }\n }\n "])), $headerColor, $headerColor, $headerColor, $headerColor, $headerColor, $headerColor, $headerColor) : (0, styled_components_1.css)(templateObject_5 || (templateObject_5 = __makeTemplateObject(["\n background-color: var(--color-neutral-200);\n color: var(--color-neutral-950);\n &:hover {\n background-color: var(--color-neutral-300);\n }\n "], ["\n background-color: var(--color-neutral-200);\n color: var(--color-neutral-950);\n &:hover {\n background-color: var(--color-neutral-300);\n }\n "])));
49
46
  }, exports.DataGridResizeGrip);
50
47
  exports.DataGridHeaderCellContainer.displayName = 'DataGridHeaderCellContainer';
51
- exports.DataGridCell = styled_components_1.default.div(templateObject_7 || (templateObject_7 = __makeTemplateObject(["\n position: relative;\n padding: 0 var(--space-3);\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n border-right: 1px solid var(--color-neutral-200);\n border-bottom: 1px solid var(--color-neutral-200);\n"], ["\n position: relative;\n padding: 0 var(--space-3);\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n border-right: 1px solid var(--color-neutral-200);\n border-bottom: 1px solid var(--color-neutral-200);\n"])));
48
+ exports.DataGridHeaderTextContainer = styled_components_1.default.div(templateObject_7 || (templateObject_7 = __makeTemplateObject(["\n display: flex;\n flex: 1;\n line-height: 1rem;\n align-items: center;\n font-size: var(--text-md);\n max-height: 100%;\n"], ["\n display: flex;\n flex: 1;\n line-height: 1rem;\n align-items: center;\n font-size: var(--text-md);\n max-height: 100%;\n"])));
49
+ exports.dataGridCellCss = (0, styled_components_1.css)(templateObject_8 || (templateObject_8 = __makeTemplateObject(["\n display: flex;\n align-items: center;\n position: relative;\n padding: 0 var(--space-3);\n overflow: hidden;\n text-overflow: ellipsis;\n user-select: ", ";\n white-space: nowrap;\n border-right: 1px solid var(--color-neutral-200);\n border-bottom: 1px solid var(--color-neutral-200);\n background-color: ", ";\n text-align: ", ";\n"], ["\n display: flex;\n align-items: center;\n position: relative;\n padding: 0 var(--space-3);\n overflow: hidden;\n text-overflow: ellipsis;\n user-select: ", ";\n white-space: nowrap;\n border-right: 1px solid var(--color-neutral-200);\n border-bottom: 1px solid var(--color-neutral-200);\n background-color: ", ";\n text-align: ", ";\n"])), function (_a) {
50
+ var $userSelect = _a.$userSelect;
51
+ return ($userSelect ? 'text' : 'none');
52
+ }, function (_a) {
53
+ var _b = _a.$color, $color = _b === void 0 ? 'neutral' : _b;
54
+ return "var(--color-".concat($color, "-50)");
55
+ }, function (_a) {
56
+ var _b = _a.$textAlign, $textAlign = _b === void 0 ? 'left' : _b;
57
+ return $textAlign;
58
+ });
59
+ exports.DataGridCell = styled_components_1.default.div(templateObject_9 || (templateObject_9 = __makeTemplateObject(["\n ", "\n"], ["\n ", "\n"])), exports.dataGridCellCss);
52
60
  exports.DataGridCell.displayName = 'DataGridCell';
53
- exports.DataGridToolsRow = styled_components_1.default.div(templateObject_8 || (templateObject_8 = __makeTemplateObject(["\n grid-column-start: 1;\n grid-column-end: -1;\n grid-row: 1;\n display: flex;\n gap: var(--space-1);\n padding: 0 var(--space-1);\n align-items: center;\n background-color: var(--color-neutral-200);\n position: sticky;\n top: 0;\n left: 0;\n z-index: 10;\n"], ["\n grid-column-start: 1;\n grid-column-end: -1;\n grid-row: 1;\n display: flex;\n gap: var(--space-1);\n padding: 0 var(--space-1);\n align-items: center;\n background-color: var(--color-neutral-200);\n position: sticky;\n top: 0;\n left: 0;\n z-index: 10;\n"])));
54
- exports.DataGridToolsRow.displayName = 'DataGridToolsRow';
55
- exports.DataGridContainer = styled_components_1.default.div(templateObject_9 || (templateObject_9 = __makeTemplateObject(["\n display: grid;\n width: 100%;\n height: 100%;\n background-color: var(--color-neutral-50);\n font-size: var(--text-base);\n overflow: scroll;\n grid-template-rows: ", ";\n\n ", " {\n height: ", "px;\n }\n ", " {\n position: sticky;\n top: ", ";\n height: ", ";\n }\n ", " {\n height: ", ";\n line-height: ", ";\n box-sizing: border-box;\n }\n\n ", " {\n grid-column-start: 1;\n grid-column-end: -1;\n grid-row: 3;\n }\n"], ["\n display: grid;\n width: 100%;\n height: 100%;\n background-color: var(--color-neutral-50);\n font-size: var(--text-base);\n overflow: scroll;\n grid-template-rows: ", ";\n\n ", " {\n height: ", "px;\n }\n ", " {\n position: sticky;\n top: ", ";\n height: ", ";\n }\n ", " {\n height: ", ";\n line-height: ", ";\n box-sizing: border-box;\n }\n\n ", " {\n grid-column-start: 1;\n grid-column-end: -1;\n grid-row: 3;\n }\n"])), function (_a) {
56
- var _b = _a.$headerRowHeight, $headerRowHeight = _b === void 0 ? exports.DEFAULT_HEADER_ROW_HEIGHT : _b, _c = _a.$withFooter, $withFooter = _c === void 0 ? false : _c;
57
- return "".concat(exports.TOOLBAR_HEIGHT, "px ").concat($headerRowHeight, "px auto ").concat($withFooter ? exports.DEFAULT_FOOTER_ROW_HEIGHT + 'px' : '');
58
- }, exports.DataGridToolsRow, exports.TOOLBAR_HEIGHT, exports.DataGridHeaderCellContainer, function (_a) {
59
- var _b = _a.$headerRowHeight, $headerRowHeight = _b === void 0 ? exports.DEFAULT_HEADER_ROW_HEIGHT : _b;
61
+ exports.DataGridHeaderTitle = styled_components_1.default.div(templateObject_10 || (templateObject_10 = __makeTemplateObject(["\n white-space: normal;\n font-weight: var(--font-bold);\n color: var(--color-neutral-900);\n height: auto;\n"], ["\n white-space: normal;\n font-weight: var(--font-bold);\n color: var(--color-neutral-900);\n height: auto;\n"])));
62
+ exports.DataGridToolsRow = styled_components_1.default.div(templateObject_11 || (templateObject_11 = __makeTemplateObject(["\n grid-column-start: 1;\n grid-column-end: -1;\n grid-row: 1;\n display: flex;\n background-color: var(--color-neutral-200);\n position: sticky;\n top: 0;\n z-index: 10;\n"], ["\n grid-column-start: 1;\n grid-column-end: -1;\n grid-row: 1;\n display: flex;\n background-color: var(--color-neutral-200);\n position: sticky;\n top: 0;\n z-index: 10;\n"])));
63
+ exports.DataGridToolsRowButtonsContainer = styled_components_1.default.div(templateObject_12 || (templateObject_12 = __makeTemplateObject(["\n display: inline-flex;\n gap: var(--space-1);\n align-items: center;\n padding: 0 var(--space-1);\n position: sticky;\n left: 0;\n"], ["\n display: inline-flex;\n gap: var(--space-1);\n align-items: center;\n padding: 0 var(--space-1);\n position: sticky;\n left: 0;\n"])));
64
+ exports.DataGridContainer = styled_components_1.default.div(templateObject_13 || (templateObject_13 = __makeTemplateObject(["\n display: grid;\n width: 100%;\n height: 100%;\n background-color: var(--color-neutral-50);\n font-size: var(--text-base);\n overflow: scroll;\n grid-template-rows: ", ";\n\n ", " {\n height: ", "px;\n }\n ", " {\n position: sticky;\n top: ", ";\n height: ", ";\n }\n ", " {\n height: ", ";\n line-height: ", ";\n box-sizing: border-box;\n }\n\n ", "\n\n ", "\n\n ", " {\n grid-column-start: 1;\n grid-column-end: -1;\n grid-row: 3;\n }\n"], ["\n display: grid;\n width: 100%;\n height: 100%;\n background-color: var(--color-neutral-50);\n font-size: var(--text-base);\n overflow: scroll;\n grid-template-rows: ", ";\n\n ", " {\n height: ", "px;\n }\n ", " {\n position: sticky;\n top: ", ";\n height: ", ";\n }\n ", " {\n height: ", ";\n line-height: ", ";\n box-sizing: border-box;\n }\n\n ", "\n\n ", "\n\n ", " {\n grid-column-start: 1;\n grid-column-end: -1;\n grid-row: 3;\n }\n"])), function (_a) {
65
+ var _b = _a.$headerRowHeight, $headerRowHeight = _b === void 0 ? constants_1.DEFAULT_HEADER_ROW_HEIGHT : _b, _c = _a.$withFooter, $withFooter = _c === void 0 ? false : _c;
66
+ return "".concat(constants_1.TOOLBAR_HEIGHT, "px ").concat($headerRowHeight, "px auto ").concat($withFooter ? constants_1.DEFAULT_FOOTER_ROW_HEIGHT + 'px' : '');
67
+ }, exports.DataGridToolsRow, constants_1.TOOLBAR_HEIGHT, exports.DataGridHeaderCellContainer, function (_a) {
68
+ var _b = _a.$headerRowHeight, $headerRowHeight = _b === void 0 ? constants_1.DEFAULT_HEADER_ROW_HEIGHT : _b;
60
69
  return "".concat($headerRowHeight, "px");
61
70
  }, function (_a) {
62
- var _b = _a.$headerRowHeight, $headerRowHeight = _b === void 0 ? exports.DEFAULT_HEADER_ROW_HEIGHT : _b;
71
+ var _b = _a.$headerRowHeight, $headerRowHeight = _b === void 0 ? constants_1.DEFAULT_HEADER_ROW_HEIGHT : _b;
63
72
  return "".concat($headerRowHeight, "px");
64
73
  }, exports.DataGridCell, function (_a) {
65
- var _b = _a.$rowHeight, $rowHeight = _b === void 0 ? exports.DEFAULT_ROW_HEIGHT : _b;
74
+ var _b = _a.$rowHeight, $rowHeight = _b === void 0 ? constants_1.DEFAULT_ROW_HEIGHT : _b;
66
75
  return "".concat($rowHeight, "px");
67
76
  }, function (_a) {
68
- var _b = _a.$rowHeight, $rowHeight = _b === void 0 ? exports.DEFAULT_ROW_HEIGHT : _b;
77
+ var _b = _a.$rowHeight, $rowHeight = _b === void 0 ? constants_1.DEFAULT_ROW_HEIGHT : _b;
69
78
  return "".concat($rowHeight, "px");
70
- }, styles_1.VirtualScrollerContainer);
79
+ }, function (_a) {
80
+ var _b = _a.$fixedColumnWidths, $fixedColumnWidths = _b === void 0 ? [] : _b;
81
+ return $fixedColumnWidths.map(function (width, i) { return "\n ".concat(exports.DataGridHeaderCellContainer, ":nth-child(").concat(i + 1, ") {\n position: sticky;\n left: ").concat(i === 0
82
+ ? '0'
83
+ : "calc(".concat($fixedColumnWidths
84
+ .slice(0, i)
85
+ .map(function (w) { return (typeof w === 'number' ? "".concat(w, "px") : w); })
86
+ .join(' + '), ")"), ";\n background-color: var(--color-neutral-200);\n z-index: 1;\n }"); });
87
+ }, function (_a) {
88
+ var _b = _a.$fixedColumnWidths, $fixedColumnWidths = _b === void 0 ? [] : _b;
89
+ return $fixedColumnWidths.map(function (width, i) { return "\n ".concat(exports.DataGridCell, ":nth-child(").concat(i + 1, ") {\n position: sticky;\n left: ").concat(i === 0
90
+ ? '0'
91
+ : "calc(".concat($fixedColumnWidths
92
+ .slice(0, i)
93
+ .map(function (w) { return (typeof w === 'number' ? "".concat(w, "px") : w); })
94
+ .join(' + '), ")"), ";\n background-color: var(--color-neutral-50);\n z-index: 1;\n }"); });
95
+ }, styles_1.VirtualScrollerFiller);
71
96
  exports.DataGridContainer.displayName = 'DataGridContainer';
72
- var dataGridHeaderOrFooterRowCss = (0, styled_components_1.css)(templateObject_12 || (templateObject_12 = __makeTemplateObject(["\n display: grid;\n grid-template-rows: ", ";\n z-index: 10;\n position: sticky;\n align-items: center;\n\n ", "\n"], ["\n display: grid;\n grid-template-rows: ", ";\n z-index: 10;\n position: sticky;\n align-items: center;\n\n ", "\n"])), function (_a) {
73
- var _b = _a.$headerRowHeight, $headerRowHeight = _b === void 0 ? exports.DEFAULT_HEADER_ROW_HEIGHT : _b;
97
+ var dataGridHeaderOrFooterRowCss = (0, styled_components_1.css)(templateObject_16 || (templateObject_16 = __makeTemplateObject(["\n display: grid;\n grid-template-rows: ", ";\n z-index: 10;\n position: sticky;\n align-items: center;\n\n ", "\n"], ["\n display: grid;\n grid-template-rows: ", ";\n z-index: 10;\n position: sticky;\n align-items: center;\n\n ", "\n"])), function (_a) {
98
+ var _b = _a.$headerRowHeight, $headerRowHeight = _b === void 0 ? constants_1.DEFAULT_HEADER_ROW_HEIGHT : _b;
74
99
  return "".concat($headerRowHeight, "px");
75
100
  }, function (_a) {
76
101
  var $headerColor = _a.$headerColor;
77
102
  return $headerColor
78
- ? (0, styled_components_1.css)(templateObject_10 || (templateObject_10 = __makeTemplateObject(["\n background-color: var(--color-", "-100);\n color: var(--color-", "-900);\n "], ["\n background-color: var(--color-", "-100);\n color: var(--color-", "-900);\n "])), $headerColor, $headerColor) : (0, styled_components_1.css)(templateObject_11 || (templateObject_11 = __makeTemplateObject(["\n background-color: var(--color-neutral-200);\n color: var(--color-neutral-900);\n "], ["\n background-color: var(--color-neutral-200);\n color: var(--color-neutral-900);\n "])));
103
+ ? (0, styled_components_1.css)(templateObject_14 || (templateObject_14 = __makeTemplateObject(["\n background-color: var(--color-", "-100);\n color: var(--color-", "-900);\n "], ["\n background-color: var(--color-", "-100);\n color: var(--color-", "-900);\n "])), $headerColor, $headerColor) : (0, styled_components_1.css)(templateObject_15 || (templateObject_15 = __makeTemplateObject(["\n background-color: var(--color-neutral-200);\n color: var(--color-neutral-900);\n "], ["\n background-color: var(--color-neutral-200);\n color: var(--color-neutral-900);\n "])));
79
104
  });
80
105
  exports.DataGridHeaderRow = styled_components_1.default.div.attrs(function (_a) {
81
106
  var $gridTemplateColumns = _a.$gridTemplateColumns;
@@ -84,7 +109,7 @@ exports.DataGridHeaderRow = styled_components_1.default.div.attrs(function (_a)
84
109
  gridTemplateColumns: $gridTemplateColumns,
85
110
  },
86
111
  });
87
- })(templateObject_13 || (templateObject_13 = __makeTemplateObject(["\n ", "\n top: ", "px;\n"], ["\n ", "\n top: ", "px;\n"])), dataGridHeaderOrFooterRowCss, exports.TOOLBAR_HEIGHT);
112
+ })(templateObject_17 || (templateObject_17 = __makeTemplateObject(["\n ", "\n top: ", "px;\n"], ["\n ", "\n top: ", "px;\n"])), dataGridHeaderOrFooterRowCss, constants_1.TOOLBAR_HEIGHT);
88
113
  exports.DataGridHeaderRow.displayName = 'DataGridHeaderRow';
89
114
  exports.DataGridFooterRow = styled_components_1.default.div.attrs(function (_a) {
90
115
  var $gridTemplateColumns = _a.$gridTemplateColumns;
@@ -93,19 +118,22 @@ exports.DataGridFooterRow = styled_components_1.default.div.attrs(function (_a)
93
118
  gridTemplateColumns: $gridTemplateColumns,
94
119
  },
95
120
  });
96
- })(templateObject_14 || (templateObject_14 = __makeTemplateObject(["\n ", "\n bottom: 0;\n"], ["\n ", "\n bottom: 0;\n"])), dataGridHeaderOrFooterRowCss);
121
+ })(templateObject_18 || (templateObject_18 = __makeTemplateObject(["\n ", "\n bottom: 0;\n"], ["\n ", "\n bottom: 0;\n"])), dataGridHeaderOrFooterRowCss);
97
122
  exports.DataGridFooterRow.displayName = 'DataGridFooterRow';
98
- exports.DataGridRow = styled_components_1.default.div(templateObject_15 || (templateObject_15 = __makeTemplateObject(["\n display: contents;\n"], ["\n display: contents;\n"])));
123
+ exports.DataGridRow = styled_components_1.default.div(templateObject_20 || (templateObject_20 = __makeTemplateObject(["\n display: contents;\n\n &:hover > ", " {\n background-color: var(--color-blue-100);\n }\n\n ", "\n"], ["\n display: contents;\n\n &:hover > ", " {\n background-color: var(--color-blue-100);\n }\n\n ", "\n"])), exports.DataGridCell, function (_a) {
124
+ var $edited = _a.$edited;
125
+ return $edited && (0, styled_components_1.css)(templateObject_19 || (templateObject_19 = __makeTemplateObject(["\n & > ", ", & > ", " {\n background-color: var(--color-warning-100);\n color: var(--color-warning-900);\n }\n &:hover > ", ", &:hover > ", " {\n background-color: var(--color-blue-100);\n }\n "], ["\n & > ", ", & > ", " {\n background-color: var(--color-warning-100);\n color: var(--color-warning-900);\n }\n &:hover > ", ", &:hover > ", " {\n background-color: var(--color-blue-100);\n }\n "])), exports.DataGridCell, exports.SelectionCell, exports.DataGridCell, exports.SelectionCell);
126
+ });
99
127
  exports.DataGridRow.displayName = 'DataGridRow';
100
- exports.LoadingCell = (0, styled_components_1.default)(exports.DataGridCell)(templateObject_16 || (templateObject_16 = __makeTemplateObject(["\n padding: var(--space-2);\n box-sizing: border-box;\n\n &.animate-pulse > div {\n background-color: var(--color-neutral-200);\n border-radius: var(--rounded-full);\n width: 100%;\n height: 100%;\n }\n"], ["\n padding: var(--space-2);\n box-sizing: border-box;\n\n &.animate-pulse > div {\n background-color: var(--color-neutral-200);\n border-radius: var(--rounded-full);\n width: 100%;\n height: 100%;\n }\n"])));
128
+ exports.LoadingCell = (0, styled_components_1.default)(exports.DataGridCell)(templateObject_21 || (templateObject_21 = __makeTemplateObject(["\n padding: var(--space-2);\n box-sizing: border-box;\n\n &.animate-pulse > div {\n background-color: var(--color-neutral-200);\n border-radius: var(--rounded-full);\n width: 100%;\n height: 100%;\n }\n"], ["\n padding: var(--space-2);\n box-sizing: border-box;\n\n &.animate-pulse > div {\n background-color: var(--color-neutral-200);\n border-radius: var(--rounded-full);\n width: 100%;\n height: 100%;\n }\n"])));
101
129
  exports.LoadingCell.displayName = 'LoadingCell';
102
- var selectionCellStyle = (0, styled_components_1.css)(templateObject_17 || (templateObject_17 = __makeTemplateObject(["\n display: flex;\n align-items: center;\n justify-content: center;\n width: var(--space-8);\n padding: 0 var(--space-1);\n cursor: pointer;\n\n & > input[type='checkbox'] {\n height: var(--space-4);\n width: var(--space-4);\n border-radius: var(--rounded-sm);\n border: 1px solid var(--color-neutral-300);\n color: var(--color-primary-600);\n }\n"], ["\n display: flex;\n align-items: center;\n justify-content: center;\n width: var(--space-8);\n padding: 0 var(--space-1);\n cursor: pointer;\n\n & > input[type='checkbox'] {\n height: var(--space-4);\n width: var(--space-4);\n border-radius: var(--rounded-sm);\n border: 1px solid var(--color-neutral-300);\n color: var(--color-primary-600);\n }\n"])));
103
- exports.SelectionCell = (0, styled_components_1.default)(exports.DataGridCell)(templateObject_18 || (templateObject_18 = __makeTemplateObject(["\n ", "\n"], ["\n ", "\n"])), selectionCellStyle);
130
+ var selectionCellStyle = (0, styled_components_1.css)(templateObject_22 || (templateObject_22 = __makeTemplateObject(["\n display: flex;\n align-items: center;\n justify-content: center;\n width: var(--space-8);\n padding: 0 var(--space-1);\n cursor: pointer;\n width: ", ";\n\n & > input[type='checkbox'] {\n height: var(--space-4);\n width: var(--space-4);\n border-radius: var(--rounded-sm);\n border: 1px solid var(--color-neutral-300);\n color: var(--color-primary-600);\n }\n"], ["\n display: flex;\n align-items: center;\n justify-content: center;\n width: var(--space-8);\n padding: 0 var(--space-1);\n cursor: pointer;\n width: ", ";\n\n & > input[type='checkbox'] {\n height: var(--space-4);\n width: var(--space-4);\n border-radius: var(--rounded-sm);\n border: 1px solid var(--color-neutral-300);\n color: var(--color-primary-600);\n }\n"])), constants_1.SELECTION_CELL_WIDTH);
131
+ exports.SelectionCell = (0, styled_components_1.default)(exports.DataGridCell)(templateObject_23 || (templateObject_23 = __makeTemplateObject(["\n ", "\n"], ["\n ", "\n"])), selectionCellStyle);
104
132
  exports.SelectionCell.displayName = 'SelectionCell';
105
- exports.HeaderSelectionCell = (0, styled_components_1.default)(exports.DataGridHeaderCellContainer)(templateObject_19 || (templateObject_19 = __makeTemplateObject(["\n ", "\n"], ["\n ", "\n"])), selectionCellStyle);
133
+ exports.HeaderSelectionCell = (0, styled_components_1.default)(exports.DataGridHeaderCellContainer)(templateObject_24 || (templateObject_24 = __makeTemplateObject(["\n ", "\n padding: 0;\n"], ["\n ", "\n padding: 0;\n"])), selectionCellStyle);
106
134
  exports.HeaderSelectionCell.displayName = 'HeaderSelectionCell';
107
135
  exports.ResizeBackdrop = styled_components_1.default.div.attrs({
108
136
  className: 'ResizeBackdrop',
109
- })(templateObject_20 || (templateObject_20 = __makeTemplateObject(["\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background-color: rgba(0, 0, 0, 0);\n cursor: col-resize;\n"], ["\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background-color: rgba(0, 0, 0, 0);\n cursor: col-resize;\n"])));
137
+ })(templateObject_25 || (templateObject_25 = __makeTemplateObject(["\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background-color: rgba(0, 0, 0, 0);\n cursor: col-resize;\n z-index: 100;\n"], ["\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background-color: rgba(0, 0, 0, 0);\n cursor: col-resize;\n z-index: 100;\n"])));
110
138
  exports.ResizeBackdrop.displayName = 'ResizeBackdrop';
111
- var templateObject_1, templateObject_2, templateObject_3, templateObject_4, templateObject_5, templateObject_6, templateObject_7, templateObject_8, templateObject_9, templateObject_10, templateObject_11, templateObject_12, templateObject_13, templateObject_14, templateObject_15, templateObject_16, templateObject_17, templateObject_18, templateObject_19, templateObject_20;
139
+ var templateObject_1, templateObject_2, templateObject_3, templateObject_4, templateObject_5, templateObject_6, templateObject_7, templateObject_8, templateObject_9, templateObject_10, templateObject_11, templateObject_12, templateObject_13, templateObject_14, templateObject_15, templateObject_16, templateObject_17, templateObject_18, templateObject_19, templateObject_20, templateObject_21, templateObject_22, templateObject_23, templateObject_24, templateObject_25;
@@ -1,41 +1,84 @@
1
1
  import * as t from 'io-ts';
2
2
  import { CSSProperties, Context, Dispatch, FC, MouseEvent, MouseEventHandler, ReactNode, SetStateAction } from 'react';
3
- import { SettingsContextProps } from '../../../providers/SettingsProvider';
3
+ import { DataGridEditableCellFC } from './DataGridEditableCell/types';
4
4
  import { ThemeColor } from '../../../providers/ThemeProvider/types';
5
- export type DataGridCellFC = FC<{
5
+ export type DataGridCellFCProps = {
6
6
  onDoubleClick?: MouseEventHandler;
7
7
  style?: CSSProperties;
8
- }>;
8
+ $color?: ThemeColor;
9
+ $textAlign?: 'left' | 'right' | 'center';
10
+ $userSelect?: boolean;
11
+ };
12
+ export type DataGridCellFC = FC<DataGridCellFCProps>;
9
13
  export type DataGridFooterPredefinedFunction = 'average' | 'avg' | 'count' | 'max' | 'min' | 'sum';
10
14
  export type DataGridFooterFunction<R> = (allRows: R[], filteredRows: R[], selectedRows: R[]) => ReactNode;
11
- export type DataGridColumn<R> = {
15
+ type ExcelOptions = {
16
+ formatter?: (value: any) => string;
17
+ colorGetter?: (value: any) => string;
18
+ valueGetter?: (value: any) => string;
19
+ };
20
+ type CommonGridColumnProps<R, T> = {
21
+ key: string;
12
22
  component?: DataGridCellFC;
13
- editable?: boolean;
14
- excelFormatter?: (value: any) => string;
15
- excelBackgroundColor?: (value: any) => string;
16
- excelValue?: (value: any) => string;
23
+ color?: ThemeColor;
24
+ excelOptions?: ExcelOptions;
25
+ textAlign?: 'left' | 'right' | 'center';
17
26
  filter?: DataGridFilter;
18
27
  footer?: DataGridFooterFunction<R> | Record<string, DataGridFooterFunction<R> | null>;
19
- getter?: (row: R) => string | number;
20
- name: string;
28
+ name: ReactNode;
21
29
  order?: number;
22
- propertyName?: keyof R;
30
+ getter: (row: R) => T;
23
31
  render?: (row: R, column: DataGridColumn<R>) => ReactNode | string;
24
32
  resizable?: boolean;
25
33
  sortGetter?: (row: R) => string | number;
26
- type?: 'text' | 'number' | 'date';
27
34
  width?: number;
28
- settingsContext?: Context<SettingsContextProps>;
29
35
  };
30
- export type DataGridColumns<R> = Record<string, DataGridColumn<R>>;
36
+ export type EditableDataGridColumn<R, T> = CommonGridColumnProps<R, T> & {
37
+ editable?: boolean;
38
+ editComponent?: DataGridEditableCellFC<R, T>;
39
+ itemToPartialRow?: (row: R, value: T) => Partial<R>;
40
+ };
41
+ export type DataGridTextColumn<R> = EditableDataGridColumn<R, string> & {
42
+ type: 'text';
43
+ };
44
+ export type DataGridNumberColumn<R> = EditableDataGridColumn<R, number> & {
45
+ type: 'number';
46
+ decimals?: number;
47
+ currency?: string | ((row: R) => string);
48
+ };
49
+ export type DataGridDateColumn<R> = EditableDataGridColumn<R, string> & {
50
+ type: 'date';
51
+ };
52
+ export type DataGridCheckboxColumn<R> = EditableDataGridColumn<R, boolean> & {
53
+ type: 'checkbox';
54
+ };
55
+ export type DataGridSelectColumn<R, T = any> = EditableDataGridColumn<R, T | null> & {
56
+ type: 'select';
57
+ items: T[];
58
+ itemKey: (item: T) => string;
59
+ itemLabel: (item: T) => string;
60
+ };
61
+ export type DataGridForeignListColumn<R> = EditableDataGridColumn<R, string | null> & {
62
+ type: 'foreignList';
63
+ };
64
+ export type DataGridColorColumn<R> = EditableDataGridColumn<R, string> & {
65
+ type: 'color';
66
+ };
67
+ export type DataGridColumn<R> = DataGridTextColumn<R> | DataGridNumberColumn<R> | DataGridDateColumn<R> | DataGridCheckboxColumn<R> | DataGridSelectColumn<R> | DataGridForeignListColumn<R> | DataGridColorColumn<R>;
68
+ export type DataGridColumnWithFilter<R> = DataGridColumn<R> & {
69
+ filter: DataGridFilter;
70
+ };
71
+ export type DataGridColumns<R> = DataGridColumn<R>[];
31
72
  export type DataGridFilters = Record<string, DataGridFilter<DataGridFilterType>>;
32
73
  export type DataGridProps<R> = {
33
74
  name?: string;
34
75
  className?: string;
35
76
  rows: R[];
77
+ setRows?: Dispatch<SetStateAction<R[]>>;
36
78
  columns: DataGridColumns<R>;
37
79
  rowKey: keyof R | ((row: R) => string);
38
80
  selectable?: boolean;
81
+ userSelect?: boolean;
39
82
  editable?: boolean;
40
83
  onRowDoubleClick?: (row: R, e: MouseEvent) => void;
41
84
  onSelectionChange?: (keys: string[]) => void;
@@ -60,8 +103,13 @@ export type DataGridProps<R> = {
60
103
  loadCopyRows?: () => Promise<R[]>;
61
104
  refresh?: () => void;
62
105
  headerColor?: ThemeColor;
106
+ fixedColumnsCount?: number;
107
+ onRowEdited?: (row: R, columnKey: keyof R, value: any) => void;
108
+ onSaveClicked?: (addedRows: DataGridEditedRows<R>, editedRows: DataGridEditedRows<R>) => Promise<string[]>;
109
+ onAddClicked?: () => Promise<R>;
63
110
  };
64
111
  export type DataGridContextProps<R> = DataGridProps<R> & {
112
+ setRows: Dispatch<SetStateAction<R[]>>;
65
113
  editingCell?: [number, number];
66
114
  setEditingCell: Dispatch<SetStateAction<[number, number]>>;
67
115
  sortedRows: R[];
@@ -75,7 +123,7 @@ export type DataGridContextProps<R> = DataGridProps<R> & {
75
123
  footers?: Record<string, string>;
76
124
  setFooters: Dispatch<SetStateAction<Record<string, string>>>;
77
125
  footerFunctions?: Record<string, DataGridFooterFunction<R>>;
78
- visibleColumns: DataGridColumnKeyValuePair<R>[];
126
+ visibleColumns: DataGridColumns<R>;
79
127
  copyTable: (includeHeaders?: boolean, includeFooters?: boolean) => Promise<void>;
80
128
  setColumnWidth: (key: string, width: number) => void;
81
129
  saveSettings: (newSettings?: DataGridSettings) => void;
@@ -84,7 +132,17 @@ export type DataGridContextProps<R> = DataGridProps<R> & {
84
132
  length: number;
85
133
  rowKeyGetter: (row: R) => string;
86
134
  gridTemplateColumns: string;
135
+ resizingColumnKey: string | null;
136
+ startResizing: (e: MouseEvent, columnKey: string) => void;
137
+ moveResizing: (e: MouseEvent) => void;
138
+ endResizing: () => void;
87
139
  toggleSelection: (key: string) => void;
140
+ addedRows: DataGridEditedRows<R>;
141
+ updatedRows: DataGridEditedRows<R>;
142
+ editRow: (key: string, row: Partial<R>) => void;
143
+ addRow: (key: string, row: R) => void;
144
+ updateRow: (key: string, row: Partial<R>) => void;
145
+ clearChangedRows: (keys?: string[]) => void;
88
146
  };
89
147
  export type DataGridContext<R> = Context<DataGridContextProps<R>>;
90
148
  export declare const dataGridSettingCodec: t.PartialC<{
@@ -114,6 +172,11 @@ export type DataGridCellProps<R> = {
114
172
  context: DataGridContext<R>;
115
173
  className?: string;
116
174
  style?: CSSProperties;
175
+ userSelect?: boolean;
176
+ color?: ThemeColor;
177
+ };
178
+ export type EditableDataGridCellProps<R, T> = DataGridCellProps<R> & {
179
+ column: EditableDataGridColumn<R, T>;
117
180
  };
118
181
  export type DataGridHeaderCellProps<R> = {
119
182
  columnKey: string;
@@ -122,6 +185,7 @@ export type DataGridHeaderCellProps<R> = {
122
185
  context: DataGridContext<R>;
123
186
  onFilterButtonClicked?: (columnKey: string) => void;
124
187
  isFilterOpen?: boolean;
188
+ color?: ThemeColor;
125
189
  };
126
190
  export type DataGridSort = 'asc' | 'desc';
127
191
  export type DataGridFilterPredicate<T> = (valueToVerify: T) => boolean;
@@ -170,3 +234,5 @@ export type DataGridRefProps = {
170
234
  refresh: () => void;
171
235
  setSelectedKeys: (keys: string[]) => void;
172
236
  };
237
+ export type DataGridEditedRows<R> = Record<string, Partial<R>>;
238
+ export {};
@@ -0,0 +1,2 @@
1
+ import { SqlRequestForeignListProps } from '../SqlRequestForeignList/types';
2
+ export declare const SqlRequestForeignListEditableCell: <R extends Record<string, any>>(props: SqlRequestForeignListProps<R> & import("react").RefAttributes<HTMLDivElement>) => import("react").JSX.Element | null;
@@ -0,0 +1,19 @@
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
+ Object.defineProperty(exports, "__esModule", { value: true });
14
+ exports.SqlRequestForeignListEditableCell = void 0;
15
+ var jsx_runtime_1 = require("react/jsx-runtime");
16
+ var react_1 = require("react");
17
+ var SqlRequestForeignList_1 = require("../SqlRequestForeignList");
18
+ var SqlRequestForeignListEditableCellInner = function (props, ref) { return (0, jsx_runtime_1.jsx)(SqlRequestForeignList_1.SqlRequestForeignList, __assign({}, props, { ref: ref })); };
19
+ exports.SqlRequestForeignListEditableCell = (0, react_1.forwardRef)(SqlRequestForeignListEditableCellInner);