@addev-be/ui 0.16.4 → 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 (206) 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 -53
  192. package/src/components/ui/Avatar/styles.ts +61 -61
  193. package/src/components/ui/Label.tsx +90 -90
  194. package/src/providers/TrackingProvider/hooks.ts +14 -14
  195. package/tsconfig.tsbuildinfo +1 -1
  196. package/dist/components/data/AdvancedRequestDataGrid/helpers/advancedRequests.d.ts +0 -14
  197. package/dist/components/data/AdvancedRequestDataGrid/helpers/advancedRequests.js +0 -76
  198. package/dist/components/data/AdvancedRequestDataGrid/helpers/columns.d.ts +0 -22
  199. package/dist/components/data/AdvancedRequestDataGrid/helpers/columns.js +0 -156
  200. package/dist/components/data/AdvancedRequestDataGrid/helpers/index.d.ts +0 -2
  201. package/dist/components/data/AdvancedRequestDataGrid/helpers/index.js +0 -18
  202. package/dist/components/data/AdvancedRequestDataGrid/index.d.ts +0 -2
  203. package/dist/components/data/AdvancedRequestDataGrid/index.js +0 -215
  204. package/dist/components/data/AdvancedRequestDataGrid/types.d.ts +0 -21
  205. package/dist/components/data/DataGrid/DataGridEditableCell.d.ts +0 -2
  206. package/dist/components/data/DataGrid/DataGridEditableCell.js +0 -27
@@ -14,10 +14,16 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
14
14
  return (mod && mod.__esModule) ? mod : { "default": mod };
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- exports.colorColumn = exports.checkboxColumn = exports.percentageColumn = exports.moneyColumn = exports.numberColumn = exports.monthColumn = exports.dateTimeColumn = exports.dateColumn = exports.phoneColumn = exports.mailColumn = exports.textColumn = exports.buildExcelFormat = exports.isColumnVisible = void 0;
17
+ exports.colorColumn = exports.selectColumn = exports.checkboxColumn = exports.percentageColumn = exports.moneyColumn = exports.numberColumn = exports.monthColumn = exports.dateTimeColumn = exports.dateColumn = exports.phoneColumn = exports.mailColumn = exports.textColumn = exports.buildExcelFormat = exports.isColumnVisible = void 0;
18
18
  var jsx_runtime_1 = require("react/jsx-runtime");
19
+ var react_1 = require("react");
19
20
  var filters_1 = require("./filters");
20
21
  var numbers_1 = require("../../../../helpers/numbers");
22
+ var CheckboxEditableCell_1 = require("../DataGridEditableCell/CheckboxEditableCell");
23
+ var DateEditableCell_1 = require("../DataGridEditableCell/DateEditableCell");
24
+ var NumberEditableCell_1 = require("../DataGridEditableCell/NumberEditableCell");
25
+ var Select_1 = require("../../../forms/Form/Select");
26
+ var TextEditableCell_1 = require("../DataGridEditableCell/TextEditableCell");
21
27
  var moment_1 = __importDefault(require("moment"));
22
28
  var lodash_1 = require("lodash");
23
29
  var isColumnVisible = function (obj) { return (obj === null || obj === void 0 ? void 0 : obj.order) !== -1; };
@@ -28,149 +34,113 @@ var buildExcelFormat = function (decimals, suffix) {
28
34
  return "#0".concat(decimals > 0 ? ".".concat((0, lodash_1.repeat)('0', decimals)) : '').concat(suffix);
29
35
  };
30
36
  exports.buildExcelFormat = buildExcelFormat;
31
- var textColumn = function (key, title, options) {
32
- var _a;
33
- return (_a = {},
34
- _a[key] = __assign({ name: title, render: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; }, getter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; }, sortGetter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; }, footer: function (_, filteredRows) { return "".concat(filteredRows.length, " \u00E9l\u00E9ments"); }, filter: (0, filters_1.textFilter)(key) }, options),
35
- _a);
36
- };
37
+ var textColumn = function (key, title, otherOptions) { return (__assign({ key: key, type: 'text', name: title, render: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; }, getter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; }, sortGetter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; }, footer: function (_, filteredRows) { return "".concat(filteredRows.length, " \u00E9l\u00E9ments"); }, filter: (0, filters_1.textFilter)(key), editComponent: TextEditableCell_1.TextEditableCell }, otherOptions)); };
37
38
  exports.textColumn = textColumn;
38
- var mailColumn = function (key, title, options) {
39
- var _a;
40
- return (_a = {},
41
- _a[key] = __assign({ name: title, render: function (row) {
42
- var _a;
43
- return ((0, jsx_runtime_1.jsx)("a", {
44
- // className="text-blue-500 hover:text-blue-700"
45
- href: "mailto:".concat(row[key]), children: (_a = row[key]) !== null && _a !== void 0 ? _a : '' }));
46
- }, getter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; }, sortGetter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; }, footer: function (_, filteredRows) { return "".concat(filteredRows.length, " \u00E9l\u00E9ments"); }, filter: (0, filters_1.textFilter)(key) }, options),
47
- _a);
48
- };
39
+ var mailColumn = function (key, title, otherOptions) { return (__assign({ key: key, type: 'text', name: title, render: function (row) { var _a; return (0, jsx_runtime_1.jsx)("a", { href: "mailto:".concat(row[key]), children: (_a = row[key]) !== null && _a !== void 0 ? _a : '' }); }, getter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; }, sortGetter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; }, footer: function (_, filteredRows) { return "".concat(filteredRows.length, " \u00E9l\u00E9ments"); }, filter: (0, filters_1.textFilter)(key), editComponent: TextEditableCell_1.TextEditableCell }, otherOptions)); };
49
40
  exports.mailColumn = mailColumn;
50
- var phoneColumn = function (key, title, options) {
51
- var _a;
52
- return (_a = {},
53
- _a[key] = __assign({ name: title, render: function (row) {
54
- var _a;
55
- return ((0, jsx_runtime_1.jsx)("a", {
56
- // className="text-blue-500 hover:text-blue-700"
57
- href: "tel:".concat(row[key]), children: (_a = row[key]) !== null && _a !== void 0 ? _a : '' }));
58
- }, getter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; }, sortGetter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; }, footer: function (_, filteredRows) { return "".concat(filteredRows.length, " \u00E9l\u00E9ments"); }, filter: (0, filters_1.textFilter)(key) }, options),
59
- _a);
60
- };
41
+ var phoneColumn = function (key, title, otherOptions) { return (__assign({ key: key, type: 'text', name: title, render: function (row) { var _a; return (0, jsx_runtime_1.jsx)("a", { href: "tel:".concat(row[key]), children: (_a = row[key]) !== null && _a !== void 0 ? _a : '' }); }, getter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; }, sortGetter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; }, footer: function (_, filteredRows) { return "".concat(filteredRows.length, " \u00E9l\u00E9ments"); }, filter: (0, filters_1.textFilter)(key), editComponent: TextEditableCell_1.TextEditableCell }, otherOptions)); };
61
42
  exports.phoneColumn = phoneColumn;
62
- var dateColumn = function (key, title, options) {
63
- var _a;
64
- return (_a = {},
65
- _a[key] = __assign({ name: title, type: 'date', render: function (row) { var _a; return (_a = (0, moment_1.default)(row[key]).format('DD/MM/YYYY')) !== null && _a !== void 0 ? _a : ''; }, excelFormatter: function () { return 'dd/mm/yyyy'; }, excelValue: function (date) { var _a; return (_a = (0, moment_1.default)(date).format('DD/MM/YYYY')) !== null && _a !== void 0 ? _a : ''; }, getter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; }, sortGetter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; }, footer: function (_, filteredRows) { return "".concat(filteredRows.length, " \u00E9l\u00E9ments"); }, filter: __assign(__assign({}, (0, filters_1.dateFilter)(key)), { renderer: function (value) { var _a; return (_a = (0, moment_1.default)(value).format('DD/MM/YYYY')) !== null && _a !== void 0 ? _a : ''; } }) }, options),
66
- _a);
67
- };
43
+ var dateColumn = function (key, title, otherOptions) { return (__assign({ key: key, type: 'date', name: title, render: function (row) { var _a; return (_a = (0, moment_1.default)(row[key]).format('DD/MM/YYYY')) !== null && _a !== void 0 ? _a : ''; }, excelOptions: {
44
+ formatter: function () { return 'dd/mm/yyyy'; },
45
+ valueGetter: function (value) { var _a; return (_a = (0, moment_1.default)(value).format('DD/MM/YYYY')) !== null && _a !== void 0 ? _a : ''; },
46
+ }, getter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; }, sortGetter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; }, footer: function (_, filteredRows) { return "".concat(filteredRows.length, " \u00E9l\u00E9ments"); }, filter: __assign(__assign({}, (0, filters_1.dateFilter)(key)), { renderer: function (value) { var _a; return (_a = (0, moment_1.default)(value).format('DD/MM/YYYY')) !== null && _a !== void 0 ? _a : ''; } }), editComponent: DateEditableCell_1.DateEditableCell }, otherOptions)); };
68
47
  exports.dateColumn = dateColumn;
69
- var dateTimeColumn = function (key, title, options) {
70
- var _a;
71
- return (_a = {},
72
- _a[key] = __assign({ name: title, type: 'date', render: function (row) { var _a; return (_a = (0, moment_1.default)(row[key]).format('DD/MM/YYYY HH:mm:ss')) !== null && _a !== void 0 ? _a : ''; }, excelFormatter: function () { return 'dd/mm/yyyy hh:mm:ss'; }, excelValue: function (date) { var _a; return (_a = (0, moment_1.default)(date).format('DD/MM/YYYY HH:mm:ss')) !== null && _a !== void 0 ? _a : ''; }, getter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; }, sortGetter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; }, footer: function (_, filteredRows) { return "".concat(filteredRows.length, " \u00E9l\u00E9ments"); }, filter: __assign(__assign({}, (0, filters_1.dateFilter)(key)), { renderer: function (value) { var _a; return (_a = (0, moment_1.default)(value).format('DD/MM/YYYY HH:mm:ss')) !== null && _a !== void 0 ? _a : ''; } }) }, options),
73
- _a);
74
- };
48
+ var dateTimeColumn = function (key, title, otherOptions) { return (__assign({ key: key, type: 'date', name: title, render: function (row) { var _a; return (_a = (0, moment_1.default)(row[key]).format('DD/MM/YYYY HH:mm:ss')) !== null && _a !== void 0 ? _a : ''; }, excelOptions: {
49
+ formatter: function () { return 'dd/mm/yyyy hh:mm:ss'; },
50
+ valueGetter: function (value) { var _a; return (_a = (0, moment_1.default)(value).format('DD/MM/YYYY HH:mm:ss')) !== null && _a !== void 0 ? _a : ''; },
51
+ }, getter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; }, sortGetter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; }, footer: function (_, filteredRows) { return "".concat(filteredRows.length, " \u00E9l\u00E9ments"); }, filter: __assign(__assign({}, (0, filters_1.dateFilter)(key)), { renderer: function (value) { var _a; return (_a = (0, moment_1.default)(value).format('DD/MM/YYYY HH:mm:ss')) !== null && _a !== void 0 ? _a : ''; } }), editComponent: DateEditableCell_1.DateEditableCell }, otherOptions)); };
75
52
  exports.dateTimeColumn = dateTimeColumn;
76
- var monthColumn = function (key, title, options) {
77
- var _a;
78
- return (_a = {},
79
- _a[key] = __assign({ name: title, render: function (row) { return (row[key] ? "".concat(row[key], " mois ") : ''); }, getter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; }, sortGetter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; }, footer: function (_, filteredRows) { return "".concat(filteredRows.length, " \u00E9l\u00E9ments"); }, filter: (0, filters_1.textFilter)(key) }, options),
80
- _a);
81
- };
53
+ var monthColumn = function (key, title, otherOptions) { return (__assign({ key: key, type: 'text', name: title, render: function (row) { return (row[key] ? "".concat(row[key], " mois ") : ''); }, getter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; }, sortGetter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; }, footer: function (_, filteredRows) { return "".concat(filteredRows.length, " \u00E9l\u00E9ments"); }, filter: (0, filters_1.textFilter)(key) }, otherOptions)); };
82
54
  exports.monthColumn = monthColumn;
83
- var numberColumn = function (key, title, decimals, options) {
84
- var _a;
55
+ var numberColumn = function (key, title, decimals, otherOptions) {
85
56
  if (decimals === void 0) { decimals = 2; }
86
- return (_a = {},
87
- _a[key] = __assign({ name: title, render: function (row) { var _a; return (_a = (0, numbers_1.formatNumber)(row[key], decimals)) !== null && _a !== void 0 ? _a : ''; }, excelFormatter: function () { return (0, exports.buildExcelFormat)(decimals); }, excelValue: function (value) { return (0, numbers_1.formatNumberInvariant)(value, decimals); }, getter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; }, sortGetter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; }, footer: {
88
- sum: function (_, filteredRows) {
89
- return (0, numbers_1.formatNumber)(filteredRows.reduce(function (acc, row) { var _a; return acc + ((_a = row[key]) !== null && _a !== void 0 ? _a : 0); }, 0), decimals);
90
- },
91
- average: function (_, filteredRows) {
92
- return (0, numbers_1.formatNumber)(filteredRows.reduce(function (acc, row) { var _a; return acc + ((_a = row[key]) !== null && _a !== void 0 ? _a : 0); }, 0) /
93
- (filteredRows.length || 1), decimals);
94
- },
95
- count: function (_, filteredRows) { return "".concat(filteredRows.length, " \u00E9l\u00E9ments"); },
96
- max: function (_, filteredRows) {
97
- return (0, numbers_1.formatNumber)(Math.max.apply(Math, filteredRows.map(function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : 0; })), decimals);
98
- },
99
- min: function (_, filteredRows) {
100
- return (0, numbers_1.formatNumber)(Math.min.apply(Math, filteredRows.map(function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : 0; })), decimals);
101
- },
102
- }, filter: __assign(__assign({}, (0, filters_1.numberFilter)(key)), { renderer: function (value) { var _a; return (_a = (0, numbers_1.formatNumber)(value, decimals)) !== null && _a !== void 0 ? _a : ''; } }) }, options),
103
- _a);
57
+ var column = __assign({ key: key, type: 'number', name: title, render: function (row) { var _a; return (_a = (0, numbers_1.formatNumber)(row[key], decimals)) !== null && _a !== void 0 ? _a : ''; }, excelOptions: {
58
+ formatter: function () { return (0, exports.buildExcelFormat)(decimals); },
59
+ valueGetter: function (value) { return (0, numbers_1.formatNumberInvariant)(value, decimals); },
60
+ }, getter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; }, sortGetter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; }, footer: {
61
+ sum: function (_, filteredRows) {
62
+ return (0, numbers_1.formatNumber)(filteredRows.reduce(function (acc, row) { var _a; return acc + ((_a = row[key]) !== null && _a !== void 0 ? _a : 0); }, 0), decimals);
63
+ },
64
+ average: function (_, filteredRows) {
65
+ return (0, numbers_1.formatNumber)(filteredRows.reduce(function (acc, row) { var _a; return acc + ((_a = row[key]) !== null && _a !== void 0 ? _a : 0); }, 0) /
66
+ (filteredRows.length || 1), decimals);
67
+ },
68
+ count: function (_, filteredRows) { return "".concat(filteredRows.length, " \u00E9l\u00E9ments"); },
69
+ max: function (_, filteredRows) {
70
+ return (0, numbers_1.formatNumber)(Math.max.apply(Math, filteredRows.map(function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : 0; })), decimals);
71
+ },
72
+ min: function (_, filteredRows) {
73
+ return (0, numbers_1.formatNumber)(Math.min.apply(Math, filteredRows.map(function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : 0; })), decimals);
74
+ },
75
+ }, filter: __assign(__assign({}, (0, filters_1.numberFilter)(key)), { renderer: function (value) { var _a; return (_a = (0, numbers_1.formatNumber)(value, decimals)) !== null && _a !== void 0 ? _a : ''; } }), editComponent: (0, react_1.forwardRef)(function (props, ref) { return ((0, jsx_runtime_1.jsx)(NumberEditableCell_1.NumberEditableCell, __assign({ ref: ref, decimals: column.decimals, currency: column.currency }, props))); }) }, otherOptions);
76
+ return column;
104
77
  };
105
78
  exports.numberColumn = numberColumn;
106
- var moneyColumn = function (key, title, decimals, options) {
107
- var _a;
79
+ var moneyColumn = function (key, title, decimals, otherOptions) {
108
80
  if (decimals === void 0) { decimals = 2; }
109
- return (_a = {},
110
- _a[key] = __assign({ name: title, render: function (row) { var _a; return (_a = (0, numbers_1.formatMoney)(row[key], decimals)) !== null && _a !== void 0 ? _a : ''; }, excelFormatter: function () { return (0, exports.buildExcelFormat)(decimals, ' €'); }, excelValue: function (value) { return (0, numbers_1.formatNumberInvariant)(value, decimals); }, getter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; }, sortGetter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; }, filter: __assign(__assign({}, (0, filters_1.numberFilter)(key)), { renderer: function (value) { var _a; return (_a = (0, numbers_1.formatMoney)(value, decimals)) !== null && _a !== void 0 ? _a : ''; } }), footer: {
111
- sum: function (_, filteredRows) {
112
- return (0, numbers_1.formatMoney)(filteredRows.reduce(function (acc, row) { var _a; return acc + ((_a = row[key]) !== null && _a !== void 0 ? _a : 0); }, 0), decimals);
113
- },
114
- average: function (_, filteredRows) {
115
- return (0, numbers_1.formatMoney)(filteredRows.reduce(function (acc, row) { var _a; return acc + ((_a = row[key]) !== null && _a !== void 0 ? _a : 0); }, 0) /
116
- (filteredRows.length || 1), decimals);
117
- },
118
- count: function (_, filteredRows) { return "".concat(filteredRows.length, " \u00E9l\u00E9ments"); },
119
- max: function (_, filteredRows) {
120
- return (0, numbers_1.formatMoney)(Math.max.apply(Math, filteredRows.map(function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : 0; })), decimals);
121
- },
122
- min: function (_, filteredRows) {
123
- return (0, numbers_1.formatMoney)(Math.min.apply(Math, filteredRows.map(function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : 0; })), decimals);
124
- },
125
- } }, options),
126
- _a);
81
+ var column = __assign({ key: key, type: 'number', name: title, render: function (row) { var _a; return (_a = (0, numbers_1.formatMoney)(row[key], decimals)) !== null && _a !== void 0 ? _a : ''; }, excelOptions: {
82
+ formatter: function () { return (0, exports.buildExcelFormat)(decimals, ' €'); },
83
+ valueGetter: function (value) { return (0, numbers_1.formatNumberInvariant)(value, decimals); },
84
+ }, getter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; }, sortGetter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; }, filter: __assign(__assign({}, (0, filters_1.numberFilter)(key)), { renderer: function (value) { var _a; return (_a = (0, numbers_1.formatMoney)(value, decimals)) !== null && _a !== void 0 ? _a : ''; } }), footer: {
85
+ sum: function (_, filteredRows) {
86
+ return (0, numbers_1.formatMoney)(filteredRows.reduce(function (acc, row) { var _a; return acc + ((_a = row[key]) !== null && _a !== void 0 ? _a : 0); }, 0), decimals);
87
+ },
88
+ average: function (_, filteredRows) {
89
+ return (0, numbers_1.formatMoney)(filteredRows.reduce(function (acc, row) { var _a; return acc + ((_a = row[key]) !== null && _a !== void 0 ? _a : 0); }, 0) /
90
+ (filteredRows.length || 1), decimals);
91
+ },
92
+ count: function (_, filteredRows) { return "".concat(filteredRows.length, " \u00E9l\u00E9ments"); },
93
+ max: function (_, filteredRows) {
94
+ return (0, numbers_1.formatMoney)(Math.max.apply(Math, filteredRows.map(function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : 0; })), decimals);
95
+ },
96
+ min: function (_, filteredRows) {
97
+ return (0, numbers_1.formatMoney)(Math.min.apply(Math, filteredRows.map(function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : 0; })), decimals);
98
+ },
99
+ } }, otherOptions);
100
+ return column;
127
101
  };
128
102
  exports.moneyColumn = moneyColumn;
129
- var percentageColumn = function (key, title, decimals, options) {
130
- var _a;
103
+ var percentageColumn = function (key, title, decimals, otherOptions) {
131
104
  if (decimals === void 0) { decimals = 2; }
132
- return (_a = {},
133
- _a[key] = __assign({ name: title, render: function (row) { var _a; return (_a = (0, numbers_1.formatPercentage)(row[key])) !== null && _a !== void 0 ? _a : ''; }, excelFormatter: function () { return (0, exports.buildExcelFormat)(decimals, '%'); }, excelValue: function (value) { return (0, numbers_1.formatNumberInvariant)(value, decimals); }, getter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; }, sortGetter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; }, filter: (0, filters_1.numberFilter)(key), footer: {
134
- average: function (_, filteredRows) {
135
- return (0, numbers_1.formatNumber)(filteredRows.reduce(function (acc, row) { var _a; return acc + ((_a = row[key]) !== null && _a !== void 0 ? _a : 0); }, 0) /
136
- (filteredRows.length || 1), decimals);
137
- },
138
- count: function (_, filteredRows) { return "".concat(filteredRows.length, " \u00E9l\u00E9ments"); },
139
- max: function (_, filteredRows) {
140
- return (0, numbers_1.formatNumber)(Math.max.apply(Math, filteredRows.map(function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : 0; })), decimals);
141
- },
142
- min: function (_, filteredRows) {
143
- return (0, numbers_1.formatNumber)(Math.min.apply(Math, filteredRows.map(function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : 0; })), decimals);
144
- },
145
- sum: function (_, filteredRows) {
146
- return (0, numbers_1.formatNumber)(filteredRows.reduce(function (acc, row) { var _a; return acc + ((_a = row[key]) !== null && _a !== void 0 ? _a : 0); }, 0), decimals);
147
- },
148
- } }, options),
149
- _a);
105
+ var column = __assign({ key: key, type: 'number', name: title, render: function (row) { var _a; return (_a = (0, numbers_1.formatPercentage)(row[key])) !== null && _a !== void 0 ? _a : ''; }, excelOptions: {
106
+ formatter: function () { return (0, exports.buildExcelFormat)(decimals, '%'); },
107
+ valueGetter: function (value) { return (0, numbers_1.formatNumberInvariant)(value, decimals); },
108
+ }, getter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; }, sortGetter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; }, filter: (0, filters_1.numberFilter)(key), footer: {
109
+ average: function (_, filteredRows) {
110
+ return (0, numbers_1.formatNumber)(filteredRows.reduce(function (acc, row) { var _a; return acc + ((_a = row[key]) !== null && _a !== void 0 ? _a : 0); }, 0) /
111
+ (filteredRows.length || 1), decimals);
112
+ },
113
+ count: function (_, filteredRows) { return "".concat(filteredRows.length, " \u00E9l\u00E9ments"); },
114
+ max: function (_, filteredRows) {
115
+ return (0, numbers_1.formatNumber)(Math.max.apply(Math, filteredRows.map(function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : 0; })), decimals);
116
+ },
117
+ min: function (_, filteredRows) {
118
+ return (0, numbers_1.formatNumber)(Math.min.apply(Math, filteredRows.map(function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : 0; })), decimals);
119
+ },
120
+ sum: function (_, filteredRows) {
121
+ return (0, numbers_1.formatNumber)(filteredRows.reduce(function (acc, row) { var _a; return acc + ((_a = row[key]) !== null && _a !== void 0 ? _a : 0); }, 0), decimals);
122
+ },
123
+ } }, otherOptions);
124
+ return column;
150
125
  };
151
126
  exports.percentageColumn = percentageColumn;
152
- var checkboxColumn = function (key, title, options) {
153
- var _a;
154
- return (_a = {},
155
- _a[key] = __assign({ name: title, render: function (row) { return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)("input", { type: "checkbox", checked: row[key], readOnly: true }), (0, jsx_runtime_1.jsx)("span", { children: row[key] ? ' Oui' : ' Non' })] })); }, getter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; }, sortGetter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; }, filter: (0, filters_1.numberFilter)(key), footer: {
156
- count: function (_, filteredRows) { return "".concat(filteredRows.length, " \u00E9l\u00E9ments"); },
157
- checked: function (_, filteredRows) {
158
- return "".concat(filteredRows.filter(function (row) { return !!row[key]; }).length, " coch\u00E9s");
159
- },
160
- unchecked: function (_, filteredRows) {
161
- return "".concat(filteredRows.filter(function (row) { return !row[key]; }).length, " d\u00E9coch\u00E9s");
162
- },
163
- } }, options),
164
- _a);
165
- };
127
+ var checkboxColumn = function (key, title, otherOptions) { return (__assign({ key: key, type: 'checkbox', name: title, render: function (row) { return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)("input", { type: "checkbox", checked: row[key], readOnly: true }), (0, jsx_runtime_1.jsx)("span", { children: row[key] ? ' Oui' : ' Non' })] })); }, getter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; }, sortGetter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; }, filter: (0, filters_1.numberFilter)(key), footer: {
128
+ count: function (_, filteredRows) { return "".concat(filteredRows.length, " \u00E9l\u00E9ments"); },
129
+ checked: function (_, filteredRows) {
130
+ return "".concat(filteredRows.filter(function (row) { return !!row[key]; }).length, " coch\u00E9s");
131
+ },
132
+ unchecked: function (_, filteredRows) {
133
+ return "".concat(filteredRows.filter(function (row) { return !row[key]; }).length, " d\u00E9coch\u00E9s");
134
+ },
135
+ }, editComponent: CheckboxEditableCell_1.CheckboxEditableCell }, otherOptions)); };
166
136
  exports.checkboxColumn = checkboxColumn;
167
- var colorColumn = function (key, title, options) {
168
- var _a;
169
- return (_a = {},
170
- _a[key] = __assign({ name: title, render: function (row) {
171
- var _a;
172
- return ((0, jsx_runtime_1.jsx)("div", { style: { backgroundColor: row[key] }, children: (_a = row[key]) !== null && _a !== void 0 ? _a : '' }));
173
- }, getter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; }, sortGetter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; }, filter: (0, filters_1.textFilter)(key), footer: function (rows) { return "".concat(rows.length, " \u00E9l\u00E9ments"); } }, options),
174
- _a);
175
- };
137
+ var selectColumn = function (key, title, items, itemKey, itemLabel, otherOptions) { return (__assign({ key: key, type: 'select', name: title, render: function (row) { var _a; return (_a = itemLabel(row[key])) !== null && _a !== void 0 ? _a : ''; }, getter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : null; }, sortGetter: function (row) { var _a; return (_a = itemLabel(row[key])) !== null && _a !== void 0 ? _a : ''; }, footer: function (_, filteredRows) { return "".concat(filteredRows.length, " \u00E9l\u00E9ments"); }, filter: (0, filters_1.textFilter)(key), items: items, itemKey: itemKey, itemLabel: itemLabel, editComponent: (0, react_1.forwardRef)(function (_a, ref) {
138
+ var value = _a.value, onChange = _a.onChange, onClose = _a.onClose;
139
+ return ((0, jsx_runtime_1.jsx)(Select_1.Select, { ref: ref, items: items, itemKey: itemKey, itemLabel: itemLabel, value: value, onChange: onChange, onBlur: function () { return onClose(true); } }));
140
+ }) }, otherOptions)); };
141
+ exports.selectColumn = selectColumn;
142
+ var colorColumn = function (key, title, otherOptions) { return (__assign({ key: key, type: 'color', name: title, render: function (row) {
143
+ var _a;
144
+ return ((0, jsx_runtime_1.jsx)("div", { style: { backgroundColor: row[key] }, children: (_a = row[key]) !== null && _a !== void 0 ? _a : '' }));
145
+ }, getter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; }, sortGetter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; }, filter: (0, filters_1.textFilter)(key), footer: function (rows) { return "".concat(rows.length, " \u00E9l\u00E9ments"); } }, otherOptions)); };
176
146
  exports.colorColumn = colorColumn;
@@ -1,7 +1,7 @@
1
1
  import { DataGridColumns, DataGridContext } from '../types';
2
+ export { useDataGrid } from './useDataGrid';
2
3
  export { useDataGridCopy } from './useDataGridCopy';
3
4
  export { useDataGridSettings } from './useDataGridSettings';
4
- export { useDataGrid } from './useDataGrid';
5
5
  export declare const useDataGridContext: <R>(context: DataGridContext<R>) => import("../types").DataGridContextProps<R>;
6
- export declare const useVisibleAndHiddenColumns: <R>(columns: DataGridColumns<R>) => import("lodash").Dictionary<import("../types").DataGridColumn<R>>[];
7
- export declare const useSortedColumns: <R>(columns: DataGridColumns<R>) => [string, import("../types").DataGridColumn<R>][];
6
+ export declare const useVisibleAndHiddenColumns: <R>(columns: DataGridColumns<R>) => import("../types").DataGridColumn<R>[][];
7
+ export declare const useSortedColumns: <R>(columns: DataGridColumns<R>) => import("../types").DataGridColumn<R>[];
@@ -1,34 +1,30 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.useSortedColumns = exports.useVisibleAndHiddenColumns = exports.useDataGridContext = exports.useDataGrid = exports.useDataGridSettings = exports.useDataGridCopy = void 0;
3
+ exports.useSortedColumns = exports.useVisibleAndHiddenColumns = exports.useDataGridContext = exports.useDataGridSettings = exports.useDataGridCopy = exports.useDataGrid = void 0;
4
4
  var react_1 = require("react");
5
5
  var columns_1 = require("../helpers/columns");
6
- var lodash_1 = require("lodash");
6
+ var useDataGrid_1 = require("./useDataGrid");
7
+ Object.defineProperty(exports, "useDataGrid", { enumerable: true, get: function () { return useDataGrid_1.useDataGrid; } });
7
8
  var useDataGridCopy_1 = require("./useDataGridCopy");
8
9
  Object.defineProperty(exports, "useDataGridCopy", { enumerable: true, get: function () { return useDataGridCopy_1.useDataGridCopy; } });
9
10
  var useDataGridSettings_1 = require("./useDataGridSettings");
10
11
  Object.defineProperty(exports, "useDataGridSettings", { enumerable: true, get: function () { return useDataGridSettings_1.useDataGridSettings; } });
11
- var useDataGrid_1 = require("./useDataGrid");
12
- Object.defineProperty(exports, "useDataGrid", { enumerable: true, get: function () { return useDataGrid_1.useDataGrid; } });
13
12
  var useDataGridContext = function (context) {
14
13
  return (0, react_1.useContext)(context);
15
14
  };
16
15
  exports.useDataGridContext = useDataGridContext;
17
16
  var useVisibleAndHiddenColumns = function (columns) {
18
17
  return (0, react_1.useMemo)(function () { return [
19
- (0, lodash_1.pickBy)(columns, function (col) { return (0, columns_1.isColumnVisible)(col); }),
20
- (0, lodash_1.pickBy)(columns, function (col) { return !(0, columns_1.isColumnVisible)(col); }),
18
+ columns.filter(columns_1.isColumnVisible),
19
+ columns.filter(function (col) { return !(0, columns_1.isColumnVisible)(col); }),
21
20
  ]; }, [columns]);
22
21
  };
23
22
  exports.useVisibleAndHiddenColumns = useVisibleAndHiddenColumns;
24
23
  var useSortedColumns = function (columns) {
25
24
  return (0, react_1.useMemo)(function () {
26
- return Object.entries(columns)
27
- .filter(function (_a) {
28
- var col = _a[1];
29
- return (0, columns_1.isColumnVisible)(col);
30
- })
31
- .sort(function (a, b) { var _a, _b; return ((_a = a[1].order) !== null && _a !== void 0 ? _a : 0) - ((_b = b[1].order) !== null && _b !== void 0 ? _b : 0); });
25
+ return columns
26
+ .filter(columns_1.isColumnVisible)
27
+ .sort(function (a, b) { var _a, _b; return ((_a = a.order) !== null && _a !== void 0 ? _a : 0) - ((_b = b.order) !== null && _b !== void 0 ? _b : 0); });
32
28
  }, [columns]);
33
29
  };
34
30
  exports.useSortedColumns = useSortedColumns;
@@ -59,18 +59,24 @@ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
59
59
  };
60
60
  Object.defineProperty(exports, "__esModule", { value: true });
61
61
  exports.useDataGrid = void 0;
62
+ var constants_1 = require("../constants");
62
63
  var react_1 = require("react");
63
64
  var _1 = require(".");
64
65
  var helpers_1 = require("../helpers");
65
- var lodash_1 = require("lodash");
66
+ var useDataGridChangedRows_1 = require("./useDataGridChangedRows");
66
67
  var useDataGridSettings_1 = require("./useDataGridSettings");
67
68
  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];
69
+ var _a, _b, _c, _d;
70
+ var onFiltersChanged = props.onFiltersChanged, onSortsChanged = props.onSortsChanged, loadCopyRows = props.loadCopyRows, onSelectionChange = props.onSelectionChange, onSelectedRowsChanged = props.onSelectedRowsChanged, selectable = props.selectable, initialSorts = props.initialSorts;
71
+ var _e = (0, react_1.useState)(props.columns), columns = _e[0], setColumns = _e[1];
71
72
  var visibleColumns = (0, _1.useSortedColumns)(columns);
73
+ 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];
74
+ var _g = [
75
+ (_b = override === null || override === void 0 ? void 0 : override.rows) !== null && _b !== void 0 ? _b : innerRows,
76
+ (_c = override === null || override === void 0 ? void 0 : override.setRows) !== null && _c !== void 0 ? _c : setInnerRows,
77
+ ], rows = _g[0], setRows = _g[1];
72
78
  /** SETTINGS */
73
- var _c = (0, useDataGridSettings_1.useDataGridSettings)(props.name), settings = _c.settings, setSettings = _c.setSettings, saveSettings = _c.saveSettings;
79
+ var _h = (0, useDataGridSettings_1.useDataGridSettings)(props.name), settings = _h.settings, setSettings = _h.setSettings, saveSettings = _h.saveSettings;
74
80
  var setColumnWidth = (0, react_1.useCallback)(function (key, width) {
75
81
  setSettings(function (prev) {
76
82
  var _a;
@@ -78,15 +84,11 @@ var useDataGrid = function (props, override) {
78
84
  });
79
85
  }, [setSettings]);
80
86
  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(' ');
87
+ 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
88
  }, [selectable, visibleColumns]);
87
89
  // Update columns when settings change
88
90
  (0, react_1.useEffect)(function () {
89
- setColumns(function (prev) { return (0, lodash_1.merge)({}, prev, settings); });
91
+ setColumns(function (prev) { return prev.map(function (col) { return (__assign(__assign({}, col), settings[col.key])); }); });
90
92
  }, [settings]);
91
93
  /** ROWS SELECTION **/
92
94
  var rowKeyGetter = (0, react_1.useMemo)(function () {
@@ -94,7 +96,7 @@ var useDataGrid = function (props, override) {
94
96
  ? props.rowKey
95
97
  : function (row) { return String(row === null || row === void 0 ? void 0 : row[props.rowKey]); };
96
98
  }, [props.rowKey]);
97
- var _d = (0, react_1.useState)([]), selectedKeys = _d[0], setSelectedKeys = _d[1];
99
+ var _j = (0, react_1.useState)([]), selectedKeys = _j[0], setSelectedKeys = _j[1];
98
100
  var selectedRows = (0, react_1.useMemo)(function () { return props.rows.filter(function (row) { return selectedKeys.includes(rowKeyGetter(row)); }); }, [props.rows, rowKeyGetter, selectedKeys]);
99
101
  (0, react_1.useEffect)(function () {
100
102
  onSelectionChange === null || onSelectionChange === void 0 ? void 0 : onSelectionChange(selectedKeys);
@@ -111,8 +113,8 @@ var useDataGrid = function (props, override) {
111
113
  }
112
114
  }, [selectedKeys, setSelectedKeys]);
113
115
  /** 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];
116
+ var _k = (0, react_1.useState)({}), filters = _k[0], setFilters = _k[1];
117
+ var _l = (0, react_1.useState)(rows !== null && rows !== void 0 ? rows : []), filteredRows = _l[0], setFilteredRows = _l[1];
116
118
  (0, react_1.useEffect)(function () {
117
119
  onFiltersChanged === null || onFiltersChanged === void 0 ? void 0 : onFiltersChanged(filters);
118
120
  }, [filters, onFiltersChanged]);
@@ -126,17 +128,21 @@ var useDataGrid = function (props, override) {
126
128
  setFilteredRows(filteredRows !== null && filteredRows !== void 0 ? filteredRows : []);
127
129
  }, [filters, props.filter, rows]);
128
130
  /** CELL EDITING */
129
- var _g = (0, react_1.useState)([-1, -1]), editingCell = _g[0], setEditingCell = _g[1];
131
+ var _m = (0, react_1.useState)([-1, -1]), editingCell = _m[0], setEditingCell = _m[1];
132
+ var onRowAdded = (0, react_1.useCallback)(function (row) {
133
+ setRows(function (prev) { return __spreadArray([row], prev, true); });
134
+ }, [setRows]);
135
+ var _o = (0, useDataGridChangedRows_1.useDataGridChangedRows)(onRowAdded), addedRows = _o.addedRows, updatedRows = _o.updatedRows, editRow = _o.editRow, addRow = _o.addRow, updateRow = _o.updateRow, clearChangedRows = _o.clearChangedRows;
130
136
  /** 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];
137
+ var _p = (0, react_1.useState)(initialSorts !== null && initialSorts !== void 0 ? initialSorts : {}), sorts = _p[0], setSorts = _p[1];
138
+ var _q = (0, react_1.useState)(rows), sortedRows = _q[0], setSortedRows = _q[1];
133
139
  (0, react_1.useEffect)(function () {
134
140
  var sortedRows = __spreadArray([], filteredRows, true);
135
141
  if (props.sort !== false) {
136
142
  Object.entries(sorts).forEach(function (_a) {
137
143
  var sortKey = _a[0], sort = _a[1];
138
144
  // Get the sort column and make sure it exists and is sortable
139
- var sortColumn = columns[sortKey];
145
+ var sortColumn = columns.find(function (col) { return col.key === sortKey; });
140
146
  if (!sortColumn || typeof sortColumn.sortGetter !== 'function')
141
147
  return;
142
148
  // Sort the rows using the sortGetter function of the column
@@ -157,12 +163,33 @@ var useDataGrid = function (props, override) {
157
163
  }, [sorts, onSortsChanged]);
158
164
  /** VIRTUAL SCROLLING */
159
165
  var scrollableRef = (0, react_1.useRef)(null);
166
+ /** RESIZING */
167
+ var _r = (0, react_1.useState)(null), resizingColumnKey = _r[0], setResizingColumnKey = _r[1];
168
+ var resizingOffset = (0, react_1.useRef)(0);
169
+ var startResizing = (0, react_1.useCallback)(function (e, columnKey) {
170
+ var resizingColumn = columns.find(function (col) { return col.key === columnKey; });
171
+ if (resizingColumn) {
172
+ resizingOffset.current =
173
+ e.screenX - ((resizingColumn === null || resizingColumn === void 0 ? void 0 : resizingColumn.width) || constants_1.DEFAULT_COLUMN_WIDTH);
174
+ setResizingColumnKey(columnKey);
175
+ }
176
+ }, [columns]);
177
+ var moveResizing = (0, react_1.useCallback)(function (e) {
178
+ if (resizingColumnKey) {
179
+ var newWidth = Math.max(86, e.screenX - resizingOffset.current);
180
+ setColumnWidth(resizingColumnKey, newWidth);
181
+ }
182
+ }, [resizingColumnKey, setColumnWidth]);
183
+ var endResizing = (0, react_1.useCallback)(function () {
184
+ setResizingColumnKey(null);
185
+ saveSettings();
186
+ }, [saveSettings]);
160
187
  /** FOOTERS */
161
- var _k = (0, react_1.useState)((_a = props.initialFooters) !== null && _a !== void 0 ? _a : {}), footers = _k[0], setFooters = _k[1];
188
+ var _s = (0, react_1.useState)((_d = props.initialFooters) !== null && _d !== void 0 ? _d : {}), footers = _s[0], setFooters = _s[1];
162
189
  var footerFunctions = (0, react_1.useMemo)(function () {
163
190
  return Object.entries(footers).reduce(function (acc, _a) {
164
191
  var columnKey = _a[0], footerKey = _a[1];
165
- var column = columns[columnKey];
192
+ var column = columns.find(function (col) { return col.key === columnKey; });
166
193
  if (!column) {
167
194
  return acc;
168
195
  }
@@ -184,7 +211,7 @@ var useDataGrid = function (props, override) {
184
211
  footerFunctions: footerFunctions,
185
212
  loadCopyRows: loadCopyRows,
186
213
  }).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)); }, [
214
+ 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, updateRow: updateRow, clearChangedRows: clearChangedRows, setRows: setRows }), override)); }, [
188
215
  props,
189
216
  columns,
190
217
  visibleColumns,
@@ -199,18 +226,28 @@ var useDataGrid = function (props, override) {
199
226
  settings,
200
227
  setSettings,
201
228
  saveSettings,
202
- scrollableRef,
203
229
  rowKeyGetter,
204
230
  gridTemplateColumns,
205
231
  footers,
206
232
  footerFunctions,
207
233
  toggleSelection,
234
+ resizingColumnKey,
235
+ startResizing,
236
+ moveResizing,
237
+ endResizing,
238
+ addedRows,
239
+ updatedRows,
240
+ editRow,
241
+ addRow,
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,17 @@ 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
+ updateRow: function () { },
284
+ clearChangedRows: function () { },
237
285
  });
238
286
  }, []);
239
287
  return (0, react_1.useMemo)(function () { return [contextValue, context]; }, [context, contextValue]);
@@ -0,0 +1,9 @@
1
+ import { DataGridEditedRows } from '../types';
2
+ export declare const useDataGridChangedRows: <R>(onRowAdded: (row: R) => void) => {
3
+ addedRows: DataGridEditedRows<R>;
4
+ updatedRows: DataGridEditedRows<R>;
5
+ editRow: (key: string, row: Partial<R>) => void;
6
+ addRow: (key: string, row: R) => void;
7
+ updateRow: (key: string, row: Partial<R>) => void;
8
+ clearChangedRows: (keys?: string[]) => void;
9
+ };
@@ -0,0 +1,71 @@
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.useDataGridChangedRows = void 0;
15
+ var react_1 = require("react");
16
+ var lodash_1 = require("lodash");
17
+ var useDataGridChangedRows = function (onRowAdded) {
18
+ var _a = (0, react_1.useState)({}), addedRows = _a[0], setAddedRows = _a[1];
19
+ var _b = (0, react_1.useState)({}), updatedRows = _b[0], setUpdatedRows = _b[1];
20
+ var addRow = (0, react_1.useCallback)(function (key, row) {
21
+ setAddedRows(function (prev) {
22
+ var _a;
23
+ return (__assign(__assign({}, prev), (_a = {}, _a[key] = row, _a)));
24
+ });
25
+ onRowAdded(row);
26
+ }, [onRowAdded]);
27
+ var updateRow = (0, react_1.useCallback)(function (key, row) {
28
+ setUpdatedRows(function (prev) {
29
+ var _a;
30
+ return (__assign(__assign({}, prev), (_a = {}, _a[key] = row, _a)));
31
+ });
32
+ }, []);
33
+ var editRow = (0, react_1.useCallback)(function (key, row) {
34
+ if (addedRows[key]) {
35
+ setAddedRows(function (prev) {
36
+ var _a;
37
+ return (__assign(__assign({}, prev), (_a = {}, _a[key] = __assign(__assign({}, prev[key]), row), _a)));
38
+ });
39
+ }
40
+ else if (updatedRows[key]) {
41
+ setUpdatedRows(function (prev) {
42
+ var _a;
43
+ return (__assign(__assign({}, prev), (_a = {}, _a[key] = __assign(__assign({}, prev[key]), row), _a)));
44
+ });
45
+ }
46
+ else {
47
+ setUpdatedRows(function (prev) {
48
+ var _a;
49
+ return (__assign(__assign({}, prev), (_a = {}, _a[key] = row, _a)));
50
+ });
51
+ }
52
+ }, [addedRows, updatedRows]);
53
+ var clearChangedRows = (0, react_1.useCallback)(function (keys) {
54
+ if (!keys) {
55
+ setAddedRows({});
56
+ setUpdatedRows({});
57
+ return;
58
+ }
59
+ setAddedRows(function (prev) { return (0, lodash_1.pickBy)(prev, function (_, key) { return !keys.includes(key); }); });
60
+ setUpdatedRows(function (prev) { return (0, lodash_1.pickBy)(prev, function (_, key) { return !keys.includes(key); }); });
61
+ }, []);
62
+ return {
63
+ addedRows: addedRows,
64
+ updatedRows: updatedRows,
65
+ editRow: editRow,
66
+ addRow: addRow,
67
+ updateRow: updateRow,
68
+ clearChangedRows: clearChangedRows,
69
+ };
70
+ };
71
+ exports.useDataGridChangedRows = useDataGridChangedRows;