@addev-be/ui 0.3.2 → 0.3.3

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 (281) hide show
  1. package/assets/icons/arrow-down-1-9.svg +1 -1
  2. package/assets/icons/arrow-down-a-z.svg +1 -1
  3. package/assets/icons/arrow-up-z-a.svg +1 -1
  4. package/assets/icons/check.svg +1 -1
  5. package/assets/icons/down.svg +1 -1
  6. package/assets/icons/filter-full.svg +1 -1
  7. package/assets/icons/filter.svg +1 -1
  8. package/assets/icons/hashtag.svg +1 -1
  9. package/assets/icons/image-slash.svg +1 -1
  10. package/assets/icons/left.svg +1 -1
  11. package/assets/icons/magnifier.svg +1 -1
  12. package/assets/icons/phone.svg +1 -1
  13. package/assets/icons/right.svg +1 -1
  14. package/assets/icons/sort-calendar-ascending.svg +5 -5
  15. package/assets/icons/spinner-third.svg +1 -1
  16. package/assets/icons/table-columns.svg +1 -1
  17. package/assets/icons/table-footer-slash.svg +4 -4
  18. package/assets/icons/table-footer.svg +3 -3
  19. package/assets/icons/up.svg +1 -1
  20. package/assets/icons/user-tie.svg +1 -1
  21. package/assets/icons/x-bar.svg +3 -3
  22. package/dist/Icons.d.ts +43 -0
  23. package/dist/Icons.js +116 -0
  24. package/dist/components/data/AdvancedRequestDataGrid/helpers/advancedRequests.d.ts +14 -0
  25. package/dist/components/data/AdvancedRequestDataGrid/helpers/advancedRequests.js +76 -0
  26. package/dist/components/data/AdvancedRequestDataGrid/helpers/columns.d.ts +22 -0
  27. package/dist/components/data/AdvancedRequestDataGrid/helpers/columns.js +156 -0
  28. package/dist/components/data/AdvancedRequestDataGrid/helpers/index.d.ts +2 -0
  29. package/dist/components/data/AdvancedRequestDataGrid/helpers/index.js +18 -0
  30. package/dist/components/data/AdvancedRequestDataGrid/index.d.ts +2 -0
  31. package/dist/components/data/AdvancedRequestDataGrid/index.js +215 -0
  32. package/dist/components/data/AdvancedRequestDataGrid/types.d.ts +21 -0
  33. package/dist/components/data/AdvancedRequestDataGrid/types.js +2 -0
  34. package/dist/components/data/DataGrid/AdvancedRequestDataGrid.d.ts +10 -0
  35. package/dist/components/data/DataGrid/AdvancedRequestDataGrid.js +173 -0
  36. package/dist/components/data/DataGrid/DataGridCell.d.ts +2 -0
  37. package/dist/components/data/DataGrid/DataGridCell.js +59 -0
  38. package/dist/components/data/DataGrid/DataGridColumnsModal/helpers.d.ts +2 -0
  39. package/dist/components/data/DataGrid/DataGridColumnsModal/helpers.js +24 -0
  40. package/dist/components/data/DataGrid/DataGridColumnsModal/hooks.d.ts +6 -0
  41. package/dist/components/data/DataGrid/DataGridColumnsModal/hooks.js +38 -0
  42. package/dist/components/data/DataGrid/DataGridColumnsModal/index.d.ts +15 -0
  43. package/dist/components/data/DataGrid/DataGridColumnsModal/index.js +111 -0
  44. package/dist/components/data/DataGrid/DataGridColumnsModal/styles.d.ts +22 -0
  45. package/dist/components/data/DataGrid/DataGridColumnsModal/styles.js +54 -0
  46. package/dist/components/data/DataGrid/DataGridEditableCell.d.ts +2 -0
  47. package/dist/components/data/DataGrid/DataGridEditableCell.js +27 -0
  48. package/dist/components/data/DataGrid/DataGridFilterMenu/hooks.d.ts +9 -0
  49. package/dist/components/data/DataGrid/DataGridFilterMenu/hooks.js +52 -0
  50. package/dist/components/data/DataGrid/DataGridFilterMenu/index.d.ts +9 -0
  51. package/dist/components/data/DataGrid/DataGridFilterMenu/index.js +220 -0
  52. package/dist/components/data/DataGrid/DataGridFilterMenu/styles.d.ts +9 -0
  53. package/dist/components/data/DataGrid/DataGridFilterMenu/styles.js +21 -0
  54. package/dist/components/data/DataGrid/DataGridFooter.d.ts +4 -0
  55. package/dist/components/data/DataGrid/DataGridFooter.js +44 -0
  56. package/dist/components/data/DataGrid/DataGridHeader.d.ts +4 -0
  57. package/dist/components/data/DataGrid/DataGridHeader.js +119 -0
  58. package/dist/components/data/DataGrid/DataGridHeaderCell.d.ts +2 -0
  59. package/dist/components/data/DataGrid/DataGridHeaderCell.js +84 -0
  60. package/dist/components/data/DataGrid/FilterModalContent/index.d.ts +7 -0
  61. package/dist/components/data/DataGrid/FilterModalContent/index.js +108 -0
  62. package/dist/components/data/DataGrid/FilterModalContent/styles.d.ts +3 -0
  63. package/dist/components/data/DataGrid/FilterModalContent/styles.js +15 -0
  64. package/dist/components/data/DataGrid/FilterValuesScroller.d.ts +13 -0
  65. package/dist/components/data/DataGrid/FilterValuesScroller.js +73 -0
  66. package/dist/components/data/DataGrid/VirtualScroller.d.ts +11 -0
  67. package/dist/components/data/DataGrid/VirtualScroller.js +41 -0
  68. package/dist/components/data/DataGrid/helpers/advancedRequests.d.ts +12 -0
  69. package/dist/components/data/DataGrid/helpers/advancedRequests.js +53 -0
  70. package/dist/components/data/DataGrid/helpers/columns.d.ts +12 -0
  71. package/dist/components/data/DataGrid/helpers/columns.js +162 -0
  72. package/dist/components/data/DataGrid/helpers/filters.d.ts +17 -0
  73. package/dist/components/data/DataGrid/helpers/filters.js +254 -0
  74. package/dist/components/data/DataGrid/helpers/index.d.ts +2 -0
  75. package/dist/components/data/DataGrid/helpers/index.js +18 -0
  76. package/dist/components/data/DataGrid/helpers.d.ts +28 -0
  77. package/dist/components/data/DataGrid/helpers.js +436 -0
  78. package/dist/components/data/DataGrid/hooks/index.d.ts +7 -0
  79. package/dist/components/data/DataGrid/hooks/index.js +34 -0
  80. package/dist/components/data/DataGrid/hooks/useDataGrid.d.ts +2 -0
  81. package/dist/components/data/DataGrid/hooks/useDataGrid.js +246 -0
  82. package/dist/components/data/DataGrid/hooks/useDataGridCopy.d.ts +4 -0
  83. package/dist/components/data/DataGrid/hooks/useDataGridCopy.js +171 -0
  84. package/dist/components/data/DataGrid/hooks/useDataGridSettings.d.ts +16 -0
  85. package/dist/components/data/DataGrid/hooks/useDataGridSettings.js +43 -0
  86. package/dist/components/data/DataGrid/index.d.ts +4 -0
  87. package/dist/components/data/DataGrid/index.js +108 -0
  88. package/dist/components/data/DataGrid/styles.d.ts +64 -0
  89. package/dist/components/data/DataGrid/styles.js +134 -0
  90. package/dist/components/data/DataGrid/types.d.ts +162 -0
  91. package/dist/components/data/DataGrid/types.js +34 -0
  92. package/dist/components/data/SqlRequestDataGrid/helpers/columns.d.ts +16 -0
  93. package/dist/components/data/SqlRequestDataGrid/helpers/columns.js +125 -0
  94. package/dist/components/data/SqlRequestDataGrid/helpers/index.d.ts +2 -0
  95. package/dist/components/data/SqlRequestDataGrid/helpers/index.js +18 -0
  96. package/dist/components/data/SqlRequestDataGrid/helpers/sqlRequests.d.ts +3 -0
  97. package/dist/components/data/SqlRequestDataGrid/helpers/sqlRequests.js +18 -0
  98. package/dist/components/data/SqlRequestDataGrid/index.d.ts +2 -0
  99. package/dist/components/data/SqlRequestDataGrid/index.js +296 -0
  100. package/dist/components/data/SqlRequestDataGrid/types.d.ts +21 -0
  101. package/dist/components/data/SqlRequestDataGrid/types.js +2 -0
  102. package/dist/components/data/index.d.ts +8 -0
  103. package/dist/components/data/index.js +24 -0
  104. package/dist/components/forms/Button.d.ts +10 -0
  105. package/dist/components/forms/Button.js +70 -0
  106. package/dist/components/forms/IconButton.d.ts +7 -0
  107. package/dist/components/forms/IconButton.js +64 -0
  108. package/dist/components/forms/IndeterminateCheckbox.d.ts +8 -0
  109. package/dist/components/forms/IndeterminateCheckbox.js +41 -0
  110. package/dist/components/forms/Select.d.ts +10 -0
  111. package/dist/components/forms/Select.js +49 -0
  112. package/dist/components/forms/index.d.ts +5 -0
  113. package/dist/components/forms/index.js +23 -0
  114. package/dist/components/forms/styles.d.ts +2 -0
  115. package/dist/components/forms/styles.js +34 -0
  116. package/dist/components/index.d.ts +3 -0
  117. package/dist/components/index.js +19 -0
  118. package/dist/components/layout/Dropdown/index.d.ts +11 -0
  119. package/dist/components/layout/Dropdown/index.js +85 -0
  120. package/dist/components/layout/Dropdown/styles.d.ts +11 -0
  121. package/dist/components/layout/Dropdown/styles.js +45 -0
  122. package/dist/components/layout/Loading/index.d.ts +6 -0
  123. package/dist/components/layout/Loading/index.js +42 -0
  124. package/dist/components/layout/Loading/styles.d.ts +6 -0
  125. package/dist/components/layout/Loading/styles.js +18 -0
  126. package/dist/components/layout/Modal/index.d.ts +16 -0
  127. package/dist/components/layout/Modal/index.js +67 -0
  128. package/dist/components/layout/Modal/styles.d.ts +32 -0
  129. package/dist/components/layout/Modal/styles.js +52 -0
  130. package/dist/components/layout/index.d.ts +3 -0
  131. package/dist/components/layout/index.js +19 -0
  132. package/dist/components/ui/ContextMenu/index.d.ts +11 -0
  133. package/dist/components/ui/ContextMenu/index.js +58 -0
  134. package/dist/components/ui/ContextMenu/styles.d.ts +18 -0
  135. package/dist/components/ui/ContextMenu/styles.js +56 -0
  136. package/dist/config/index.d.ts +10 -0
  137. package/dist/config/index.js +2 -0
  138. package/dist/config/types.d.ts +11 -0
  139. package/dist/config/types.js +2 -0
  140. package/dist/helpers/dates.d.ts +2 -0
  141. package/dist/helpers/dates.js +13 -0
  142. package/dist/helpers/getScrollbarSize.d.ts +1 -0
  143. package/dist/helpers/getScrollbarSize.js +17 -0
  144. package/dist/helpers/numbers.d.ts +3 -0
  145. package/dist/helpers/numbers.js +31 -0
  146. package/dist/hooks/index.d.ts +2 -0
  147. package/dist/hooks/index.js +18 -0
  148. package/dist/hooks/useElementSize.d.ts +4 -0
  149. package/dist/hooks/useElementSize.js +23 -0
  150. package/dist/hooks/useWindowSize.d.ts +4 -0
  151. package/dist/hooks/useWindowSize.js +19 -0
  152. package/dist/index.d.ts +5 -0
  153. package/dist/index.js +21 -0
  154. package/dist/providers/PortalsProvider/index.d.ts +10 -0
  155. package/dist/providers/PortalsProvider/index.js +46 -0
  156. package/dist/providers/PortalsProvider/styles.d.ts +9 -0
  157. package/dist/providers/PortalsProvider/styles.js +21 -0
  158. package/dist/providers/SettingsProvider/index.d.ts +8 -0
  159. package/dist/providers/SettingsProvider/index.js +54 -0
  160. package/dist/providers/ThemeProvider/ThemeProvider.d.ts +7 -0
  161. package/dist/providers/ThemeProvider/ThemeProvider.js +51 -0
  162. package/dist/providers/ThemeProvider/defaultTheme.d.ts +2 -0
  163. package/dist/providers/ThemeProvider/defaultTheme.js +417 -0
  164. package/dist/providers/ThemeProvider/index.d.ts +2 -0
  165. package/dist/providers/ThemeProvider/index.js +5 -0
  166. package/dist/providers/ThemeProvider/types.d.ts +24 -0
  167. package/dist/providers/ThemeProvider/types.js +2 -0
  168. package/dist/providers/UiProviders/index.d.ts +12 -0
  169. package/dist/providers/UiProviders/index.js +62 -0
  170. package/dist/providers/UiProviders/styles.d.ts +3 -0
  171. package/dist/providers/UiProviders/styles.js +13 -0
  172. package/dist/providers/hooks.d.ts +3 -0
  173. package/dist/providers/hooks.js +13 -0
  174. package/dist/providers/index.d.ts +4 -0
  175. package/dist/providers/index.js +20 -0
  176. package/dist/services/HttpService.d.ts +10 -0
  177. package/dist/services/HttpService.js +117 -0
  178. package/dist/services/WebSocketService.d.ts +24 -0
  179. package/dist/services/WebSocketService.js +136 -0
  180. package/dist/services/advancedRequests.d.ts +41 -0
  181. package/dist/services/advancedRequests.js +13 -0
  182. package/dist/services/base.d.ts +19 -0
  183. package/dist/services/base.js +10 -0
  184. package/dist/services/hooks.d.ts +2 -0
  185. package/dist/services/hooks.js +18 -0
  186. package/dist/services/index.d.ts +2 -0
  187. package/dist/services/index.js +18 -0
  188. package/dist/services/sqlRequests.d.ts +45 -0
  189. package/dist/services/sqlRequests.js +11 -0
  190. package/package.json +1 -1
  191. package/src/Icons.tsx +108 -108
  192. package/src/components/data/AdvancedRequestDataGrid/helpers/advancedRequests.ts +93 -93
  193. package/src/components/data/AdvancedRequestDataGrid/helpers/columns.tsx +262 -262
  194. package/src/components/data/AdvancedRequestDataGrid/helpers/index.ts +2 -2
  195. package/src/components/data/AdvancedRequestDataGrid/index.tsx +267 -267
  196. package/src/components/data/AdvancedRequestDataGrid/types.ts +47 -47
  197. package/src/components/data/DataGrid/DataGridCell.tsx +73 -73
  198. package/src/components/data/DataGrid/DataGridColumnsModal/helpers.ts +14 -14
  199. package/src/components/data/DataGrid/DataGridColumnsModal/hooks.tsx +59 -59
  200. package/src/components/data/DataGrid/DataGridColumnsModal/index.tsx +181 -181
  201. package/src/components/data/DataGrid/DataGridColumnsModal/styles.ts +104 -104
  202. package/src/components/data/DataGrid/DataGridEditableCell.tsx +43 -43
  203. package/src/components/data/DataGrid/DataGridFilterMenu/FilterValuesScroller.tsx +120 -120
  204. package/src/components/data/DataGrid/DataGridFilterMenu/hooks.tsx +75 -75
  205. package/src/components/data/DataGrid/DataGridFilterMenu/index.tsx +360 -360
  206. package/src/components/data/DataGrid/DataGridFilterMenu/styles.ts +96 -96
  207. package/src/components/data/DataGrid/DataGridFooter.tsx +42 -42
  208. package/src/components/data/DataGrid/DataGridHeader.tsx +126 -126
  209. package/src/components/data/DataGrid/DataGridHeaderCell.tsx +132 -132
  210. package/src/components/data/DataGrid/FilterModalContent/index.tsx +136 -136
  211. package/src/components/data/DataGrid/FilterModalContent/styles.ts +22 -22
  212. package/src/components/data/DataGrid/VirtualScroller.tsx +46 -46
  213. package/src/components/data/DataGrid/helpers/columns.tsx +295 -295
  214. package/src/components/data/DataGrid/helpers/filters.ts +287 -287
  215. package/src/components/data/DataGrid/helpers/index.ts +2 -2
  216. package/src/components/data/DataGrid/hooks/index.ts +30 -30
  217. package/src/components/data/DataGrid/hooks/useDataGrid.tsx +306 -306
  218. package/src/components/data/DataGrid/hooks/useDataGridCopy.ts +175 -175
  219. package/src/components/data/DataGrid/hooks/useDataGridSettings.ts +48 -48
  220. package/src/components/data/DataGrid/index.tsx +140 -140
  221. package/src/components/data/DataGrid/styles.ts +323 -323
  222. package/src/components/data/DataGrid/types.ts +267 -267
  223. package/src/components/data/SqlRequestDataGrid/helpers/columns.tsx +277 -277
  224. package/src/components/data/SqlRequestDataGrid/helpers/index.ts +2 -2
  225. package/src/components/data/SqlRequestDataGrid/helpers/sqlRequests.ts +16 -16
  226. package/src/components/data/SqlRequestDataGrid/index.tsx +347 -347
  227. package/src/components/data/SqlRequestDataGrid/types.ts +47 -47
  228. package/src/components/data/index.ts +8 -8
  229. package/src/components/forms/Button.tsx +99 -99
  230. package/src/components/forms/IconButton.tsx +56 -56
  231. package/src/components/forms/IndeterminateCheckbox.tsx +46 -46
  232. package/src/components/forms/Select.tsx +40 -40
  233. package/src/components/forms/index.ts +5 -5
  234. package/src/components/forms/styles.ts +20 -20
  235. package/src/components/index.ts +3 -3
  236. package/src/components/layout/Dropdown/index.tsx +79 -79
  237. package/src/components/layout/Dropdown/styles.ts +44 -44
  238. package/src/components/layout/Loading/index.tsx +29 -29
  239. package/src/components/layout/Loading/styles.ts +29 -29
  240. package/src/components/layout/Modal/index.tsx +51 -51
  241. package/src/components/layout/Modal/styles.ts +110 -110
  242. package/src/components/layout/index.ts +3 -3
  243. package/src/components/ui/ContextMenu/index.tsx +79 -79
  244. package/src/components/ui/ContextMenu/styles.ts +119 -119
  245. package/src/config/index.ts +14 -14
  246. package/src/helpers/dates.ts +9 -9
  247. package/src/helpers/getScrollbarSize.ts +14 -14
  248. package/src/helpers/numbers.ts +26 -26
  249. package/src/hooks/index.ts +2 -2
  250. package/src/hooks/useElementSize.ts +24 -24
  251. package/src/hooks/useWindowSize.ts +20 -20
  252. package/src/index.ts +7 -7
  253. package/src/providers/AuthenticationProvider/index.tsx +199 -143
  254. package/src/providers/LoadingProvider/index.tsx +47 -47
  255. package/src/providers/PortalsProvider/index.tsx +54 -54
  256. package/src/providers/PortalsProvider/styles.ts +27 -27
  257. package/src/providers/SettingsProvider/index.tsx +70 -70
  258. package/src/providers/ThemeProvider/ThemeProvider.ts +55 -55
  259. package/src/providers/ThemeProvider/defaultTheme.ts +444 -444
  260. package/src/providers/ThemeProvider/index.ts +4 -4
  261. package/src/providers/ThemeProvider/types.ts +123 -123
  262. package/src/providers/UiProviders/index.tsx +65 -65
  263. package/src/providers/UiProviders/styles.ts +10 -10
  264. package/src/providers/hooks.ts +12 -10
  265. package/src/providers/index.ts +6 -6
  266. package/src/services/HttpService.ts +80 -80
  267. package/src/services/WebSocketService.ts +136 -136
  268. package/src/services/advancedRequests.ts +101 -101
  269. package/src/services/base.ts +31 -31
  270. package/src/services/globalSearch.ts +27 -27
  271. package/src/services/hooks.ts +40 -40
  272. package/src/services/index.ts +8 -8
  273. package/src/services/requests/auth.ts +44 -44
  274. package/src/services/sqlRequests.ts +110 -110
  275. package/src/services/types/auth.ts +131 -131
  276. package/src/services/types/base.ts +10 -10
  277. package/src/services/types/users.ts +20 -20
  278. package/src/styles/animations.scss +30 -30
  279. package/src/styles/index.scss +42 -42
  280. package/src/typings.d.ts +6 -6
  281. package/tsconfig.tsbuildinfo +1 -0
@@ -0,0 +1,246 @@
1
+ "use strict";
2
+ /* eslint-disable @typescript-eslint/no-unnecessary-type-constraint */
3
+ /* eslint-disable @typescript-eslint/no-explicit-any */
4
+ var __assign = (this && this.__assign) || function () {
5
+ __assign = Object.assign || function(t) {
6
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
7
+ s = arguments[i];
8
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
9
+ t[p] = s[p];
10
+ }
11
+ return t;
12
+ };
13
+ return __assign.apply(this, arguments);
14
+ };
15
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
16
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
17
+ return new (P || (P = Promise))(function (resolve, reject) {
18
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
19
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
20
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
21
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
22
+ });
23
+ };
24
+ var __generator = (this && this.__generator) || function (thisArg, body) {
25
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
26
+ return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
27
+ function verb(n) { return function (v) { return step([n, v]); }; }
28
+ function step(op) {
29
+ if (f) throw new TypeError("Generator is already executing.");
30
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
31
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
32
+ if (y = 0, t) op = [op[0] & 2, t.value];
33
+ switch (op[0]) {
34
+ case 0: case 1: t = op; break;
35
+ case 4: _.label++; return { value: op[1], done: false };
36
+ case 5: _.label++; y = op[1]; op = [0]; continue;
37
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
38
+ default:
39
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
40
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
41
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
42
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
43
+ if (t[2]) _.ops.pop();
44
+ _.trys.pop(); continue;
45
+ }
46
+ op = body.call(thisArg, _);
47
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
48
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
49
+ }
50
+ };
51
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
52
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
53
+ if (ar || !(i in from)) {
54
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
55
+ ar[i] = from[i];
56
+ }
57
+ }
58
+ return to.concat(ar || Array.prototype.slice.call(from));
59
+ };
60
+ Object.defineProperty(exports, "__esModule", { value: true });
61
+ exports.useDataGrid = void 0;
62
+ var styles_1 = require("../styles");
63
+ var react_1 = require("react");
64
+ var _1 = require(".");
65
+ var helpers_1 = require("../helpers");
66
+ var lodash_1 = require("lodash");
67
+ var useDataGridSettings_1 = require("./useDataGridSettings");
68
+ var hooks_1 = require("../../../../hooks");
69
+ var useDataGrid = function (props, override) {
70
+ var _a;
71
+ var rows = props.rows, onFiltersChanged = props.onFiltersChanged, onSortsChanged = props.onSortsChanged, loadCopyRows = props.loadCopyRows, _b = props.rowHeight, rowHeight = _b === void 0 ? styles_1.DEFAULT_ROW_HEIGHT : _b, onVisibleRowsChange = props.onVisibleRowsChange, onSelectionChange = props.onSelectionChange, selectable = props.selectable, initialSorts = props.initialSorts;
72
+ var _c = (0, react_1.useState)(props.columns), columns = _c[0], setColumns = _c[1];
73
+ var visibleColumns = (0, _1.useSortedColumns)(columns);
74
+ /** SETTINGS */
75
+ var _d = (0, useDataGridSettings_1.useDataGridSettings)(props.name), settings = _d.settings, setSettings = _d.setSettings, saveSettings = _d.saveSettings;
76
+ var setColumnWidth = (0, react_1.useCallback)(function (key, width) {
77
+ setSettings(function (prev) {
78
+ var _a;
79
+ return (__assign(__assign({}, prev), (_a = {}, _a[key] = __assign(__assign({}, prev[key]), { width: width }), _a)));
80
+ });
81
+ }, [setSettings]);
82
+ var gridTemplateColumns = (0, react_1.useMemo)(function () {
83
+ return __spreadArray(__spreadArray([], (selectable ? ['var(--space-10)'] : []), true), visibleColumns.map(function (_a) {
84
+ var _b;
85
+ var col = _a[1];
86
+ return "".concat((_b = col.width) !== null && _b !== void 0 ? _b : 150, "px");
87
+ }), true).join(' ');
88
+ }, [selectable, visibleColumns]);
89
+ // Update columns when settings change
90
+ (0, react_1.useEffect)(function () {
91
+ setColumns(function (prev) { return (0, lodash_1.merge)({}, prev, settings); });
92
+ }, [settings]);
93
+ /** ROWS SELECTION **/
94
+ var rowKeyGetter = (0, react_1.useMemo)(function () {
95
+ return typeof props.rowKey === 'function'
96
+ ? props.rowKey
97
+ : function (row) { return String(row === null || row === void 0 ? void 0 : row[props.rowKey]); };
98
+ }, [props.rowKey]);
99
+ var _e = (0, react_1.useState)([]), selectedKeys = _e[0], setSelectedKeys = _e[1];
100
+ var selectedRows = (0, react_1.useMemo)(function () { return props.rows.filter(function (row) { return selectedKeys.includes(rowKeyGetter(row)); }); }, [props.rows, rowKeyGetter, selectedKeys]);
101
+ (0, react_1.useEffect)(function () {
102
+ onSelectionChange === null || onSelectionChange === void 0 ? void 0 : onSelectionChange(selectedKeys);
103
+ }, [onSelectionChange, selectedKeys]);
104
+ /** ROWS FILTERING **/
105
+ var _f = (0, react_1.useState)({}), filters = _f[0], setFilters = _f[1];
106
+ var _g = (0, react_1.useState)(rows !== null && rows !== void 0 ? rows : []), filteredRows = _g[0], setFilteredRows = _g[1];
107
+ (0, react_1.useEffect)(function () {
108
+ onFiltersChanged === null || onFiltersChanged === void 0 ? void 0 : onFiltersChanged(filters);
109
+ }, [filters, onFiltersChanged]);
110
+ (0, react_1.useEffect)(function () {
111
+ var filteredRows = props.filter === false
112
+ ? rows
113
+ : Object.entries(filters).reduce(function (tempRows, _a) {
114
+ var filter = _a[1];
115
+ return (0, helpers_1.applyFilter)(tempRows, filter /* TODO : fix typings */);
116
+ }, rows);
117
+ setFilteredRows(filteredRows !== null && filteredRows !== void 0 ? filteredRows : []);
118
+ }, [filters, props.filter, rows]);
119
+ /** CELL EDITING */
120
+ var _h = (0, react_1.useState)([-1, -1]), editingCell = _h[0], setEditingCell = _h[1];
121
+ /** ROWS SORTING **/
122
+ var _j = (0, react_1.useState)(initialSorts !== null && initialSorts !== void 0 ? initialSorts : {}), sorts = _j[0], setSorts = _j[1];
123
+ var _k = (0, react_1.useState)(rows), sortedRows = _k[0], setSortedRows = _k[1];
124
+ (0, react_1.useEffect)(function () {
125
+ var sortedRows = __spreadArray([], filteredRows, true);
126
+ if (props.sort !== false) {
127
+ Object.entries(sorts).forEach(function (_a) {
128
+ var sortKey = _a[0], sort = _a[1];
129
+ // Get the sort column and make sure it exists and is sortable
130
+ var sortColumn = columns[sortKey];
131
+ if (!sortColumn || typeof sortColumn.sortGetter !== 'function')
132
+ return;
133
+ // Sort the rows using the sortGetter function of the column
134
+ var sortDirection = sort === 'asc' ? 1 : -1;
135
+ sortedRows.sort(function (a, b) {
136
+ var aValue = sortColumn.sortGetter(a);
137
+ var bValue = sortColumn.sortGetter(b);
138
+ if (aValue === bValue)
139
+ return 0;
140
+ return aValue > bValue ? sortDirection : -sortDirection;
141
+ });
142
+ });
143
+ }
144
+ setSortedRows(sortedRows);
145
+ }, [columns, filteredRows, sorts, onSortsChanged, props.sort]);
146
+ (0, react_1.useEffect)(function () {
147
+ onSortsChanged === null || onSortsChanged === void 0 ? void 0 : onSortsChanged(sorts);
148
+ }, [sorts, onSortsChanged]);
149
+ /** VIRTUAL SCROLLING */
150
+ var scrollableRef = (0, react_1.useRef)(null);
151
+ var height = (0, hooks_1.useElementSize)(scrollableRef.current).height;
152
+ var _l = (0, react_1.useState)(0), scrollTop = _l[0], setScrollTop = _l[1];
153
+ var _m =
154
+ // props.showAllRows ? [0, sortedRows.length] :
155
+ [Math.floor(scrollTop / rowHeight), Math.ceil(height / rowHeight)], index = _m[0], length = _m[1];
156
+ var onScroll = (0, react_1.useCallback)(function (e) {
157
+ var target = e.target;
158
+ setScrollTop(target.scrollTop);
159
+ }, []);
160
+ var indexWithTolerance = Math.max(0, index - styles_1.VIRTUAL_SCROLL_TOLERANCE);
161
+ var lengthWithTolerance = length + 2 * styles_1.VIRTUAL_SCROLL_TOLERANCE;
162
+ var visibleRows = sortedRows.slice(indexWithTolerance, indexWithTolerance + lengthWithTolerance);
163
+ (0, react_1.useEffect)(function () {
164
+ onVisibleRowsChange === null || onVisibleRowsChange === void 0 ? void 0 : onVisibleRowsChange(indexWithTolerance, lengthWithTolerance);
165
+ }, [indexWithTolerance, lengthWithTolerance, onVisibleRowsChange]);
166
+ /** COPYING */
167
+ var copyTable = (0, _1.useDataGridCopy)(sortedRows, columns, loadCopyRows).copyTable;
168
+ /** FOOTERS */
169
+ var _o = (0, react_1.useState)((_a = props.initialFooters) !== null && _a !== void 0 ? _a : {}), footers = _o[0], setFooters = _o[1];
170
+ var footerFunctions = (0, react_1.useMemo)(function () {
171
+ return Object.entries(footers).reduce(function (acc, _a) {
172
+ var columnKey = _a[0], footerKey = _a[1];
173
+ var column = columns[columnKey];
174
+ if (!column) {
175
+ return acc;
176
+ }
177
+ if (typeof column.footer === 'function') {
178
+ acc[columnKey] = column.footer;
179
+ }
180
+ else if (typeof column.footer === 'object' &&
181
+ typeof column.footer[footerKey] === 'function') {
182
+ acc[columnKey] = column.footer[footerKey];
183
+ }
184
+ return acc;
185
+ }, {});
186
+ }, [columns, footers]);
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, visibleRows: visibleRows, scrollableRef: scrollableRef, onScroll: onScroll, index: index, length: length, rowKeyGetter: rowKeyGetter, gridTemplateColumns: gridTemplateColumns, footers: footers, setFooters: setFooters, footerFunctions: footerFunctions }), override)); }, [
188
+ props,
189
+ columns,
190
+ visibleColumns,
191
+ sortedRows,
192
+ selectedRows,
193
+ selectedKeys,
194
+ sorts,
195
+ filters,
196
+ editingCell,
197
+ copyTable,
198
+ setColumnWidth,
199
+ settings,
200
+ setSettings,
201
+ saveSettings,
202
+ visibleRows,
203
+ onScroll,
204
+ index,
205
+ length,
206
+ rowKeyGetter,
207
+ gridTemplateColumns,
208
+ footers,
209
+ footerFunctions,
210
+ override,
211
+ ]);
212
+ var context = (0, react_1.useMemo)(function () {
213
+ return (0, react_1.createContext)({
214
+ rows: [],
215
+ columns: {},
216
+ visibleColumns: [],
217
+ rowKey: '',
218
+ rowKeyGetter: function () { return ''; },
219
+ sortedRows: [],
220
+ selectedRows: [],
221
+ selectedKeys: [],
222
+ setSelectedKeys: function () { },
223
+ setSorts: function () { },
224
+ setFilters: function () { },
225
+ editingCell: [-1, -1],
226
+ setEditingCell: function () { },
227
+ copyTable: function () { return __awaiter(void 0, void 0, void 0, function () { return __generator(this, function (_a) {
228
+ return [2 /*return*/];
229
+ }); }); },
230
+ setColumnWidth: function () { },
231
+ saveSettings: function () { },
232
+ settings: {},
233
+ setSettings: function () { },
234
+ visibleRows: [],
235
+ scrollableRef: { current: null },
236
+ onScroll: function () { },
237
+ index: 0,
238
+ length: 0,
239
+ gridTemplateColumns: '',
240
+ footers: {},
241
+ setFooters: function () { },
242
+ });
243
+ }, []);
244
+ return (0, react_1.useMemo)(function () { return [contextValue, context]; }, [context, contextValue]);
245
+ };
246
+ exports.useDataGrid = useDataGrid;
@@ -0,0 +1,4 @@
1
+ import { DataGridColumns } from '../types';
2
+ export declare const useDataGridCopy: <R>(rows: R[], columns: DataGridColumns<R>, loadCopyRows?: () => Promise<R[]>) => {
3
+ copyTable: (includeHeaders?: boolean, includeFooters?: boolean) => Promise<void>;
4
+ };
@@ -0,0 +1,171 @@
1
+ "use strict";
2
+ /* eslint-disable @typescript-eslint/no-explicit-any */
3
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
4
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
5
+ return new (P || (P = Promise))(function (resolve, reject) {
6
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
7
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
8
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
9
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
10
+ });
11
+ };
12
+ var __generator = (this && this.__generator) || function (thisArg, body) {
13
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
14
+ return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
15
+ function verb(n) { return function (v) { return step([n, v]); }; }
16
+ function step(op) {
17
+ if (f) throw new TypeError("Generator is already executing.");
18
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
19
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
20
+ if (y = 0, t) op = [op[0] & 2, t.value];
21
+ switch (op[0]) {
22
+ case 0: case 1: t = op; break;
23
+ case 4: _.label++; return { value: op[1], done: false };
24
+ case 5: _.label++; y = op[1]; op = [0]; continue;
25
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
26
+ default:
27
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
28
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
29
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
30
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
31
+ if (t[2]) _.ops.pop();
32
+ _.trys.pop(); continue;
33
+ }
34
+ op = body.call(thisArg, _);
35
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
36
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
37
+ }
38
+ };
39
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
40
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
41
+ if (ar || !(i in from)) {
42
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
43
+ ar[i] = from[i];
44
+ }
45
+ }
46
+ return to.concat(ar || Array.prototype.slice.call(from));
47
+ };
48
+ Object.defineProperty(exports, "__esModule", { value: true });
49
+ exports.useDataGridCopy = void 0;
50
+ var react_1 = require("react");
51
+ var useDataGridCopy = function (rows, columns, loadCopyRows) {
52
+ var generateHeadersHtml = (0, react_1.useCallback)(function () {
53
+ return "<tr>\n ".concat(Object.values(columns !== null && columns !== void 0 ? columns : {})
54
+ .map(function (col) {
55
+ return "<th style=\"\n text-align: left;\n font-weight: bold;\n white-space: nowrap;\n \">\n ".concat(col.name, "\n </th>");
56
+ })
57
+ .join('\n'), "\n </tr>");
58
+ }, [columns]);
59
+ var generateFootersHtml = (0, react_1.useCallback)(function (rowsToCopy) {
60
+ // return `<tr>
61
+ // ${Object.values(columns ?? {})
62
+ // .map(
63
+ // (col) =>
64
+ // `<td style="
65
+ // font-weight: bold;
66
+ // white-space: nowrap;
67
+ // ">
68
+ // ${
69
+ // col.footer
70
+ // ? col.footer(rowsToCopy, rowsToCopy, [])
71
+ // : ''
72
+ // }
73
+ // </td>`
74
+ // )
75
+ // .join('\n')}
76
+ // </tr>`;
77
+ return '';
78
+ }, [columns]);
79
+ var generateCellText = (0, react_1.useCallback)(function (col, value) {
80
+ var _a;
81
+ return col.excelValue ? col.excelValue(value) : (_a = value === null || value === void 0 ? void 0 : value.toString()) !== null && _a !== void 0 ? _a : '';
82
+ }, []);
83
+ var generateCellHtml = (0, react_1.useCallback)(function (col, value) { return "<td style=\"\n ".concat(col.excelFormatter
84
+ ? "mso-number-format: '" + col.excelFormatter(col) + "';"
85
+ : '', "\n white-space: nowrap;\n \">\n ").concat(generateCellText(col, value), "\n </td>"); }, [generateCellText]);
86
+ var generateCopyHtml = (0, react_1.useCallback)(function (rowsToCopy, includeHeaders, includeFooters) {
87
+ return "\n <table>\n ".concat(includeHeaders ? generateHeadersHtml() : '', "\n ").concat((rowsToCopy || [])
88
+ .map(function (row) {
89
+ return "<tr>\n ".concat(Object.values(columns !== null && columns !== void 0 ? columns : {})
90
+ .map(function (col) {
91
+ var value = col.getter && row ? col.getter(row) : '';
92
+ return generateCellHtml(col, value);
93
+ })
94
+ .join('\n'), "\n </tr>");
95
+ })
96
+ .join('\n'), "\n ").concat(includeFooters ? generateFootersHtml(rowsToCopy) : '', "\n </table>\n ");
97
+ }, [columns, generateCellHtml, generateFootersHtml, generateHeadersHtml]);
98
+ var generateHeadersText = (0, react_1.useCallback)(function () {
99
+ return Object.values(columns !== null && columns !== void 0 ? columns : {})
100
+ .map(function (col) { return col.name; })
101
+ .join('\t');
102
+ }, [columns]);
103
+ var generateFootersText = (0, react_1.useCallback)(function (rowsToCopy) {
104
+ // return Object.values(columns ?? {})
105
+ // .map((col) =>
106
+ // col.footer ? col.footer(rowsToCopy, rowsToCopy, []) : ''
107
+ // )
108
+ // .join('\t');
109
+ return '';
110
+ }, [columns]);
111
+ var generateCopyText = (0, react_1.useCallback)(function (rowsToCopy, includeHeaders, includeFooters) {
112
+ return __spreadArray(__spreadArray([
113
+ includeHeaders ? generateHeadersText() : ''
114
+ ], (rowsToCopy || []).map(function (row) {
115
+ return Object.values(columns !== null && columns !== void 0 ? columns : {})
116
+ .map(function (col) {
117
+ var value = col.getter && row ? col.getter(row) : '';
118
+ return col.excelValue
119
+ ? col.excelValue(value)
120
+ : value != null && value !== undefined
121
+ ? value.toString()
122
+ : '';
123
+ })
124
+ .join('\t');
125
+ }), true), [
126
+ includeFooters ? generateFootersText(rowsToCopy) : '',
127
+ ], false).filter(function (s) { return s != null; })
128
+ .join('\n');
129
+ }, [columns, generateFootersText, generateHeadersText]);
130
+ var copyTable = (0, react_1.useCallback)(function () {
131
+ var args_1 = [];
132
+ for (var _i = 0; _i < arguments.length; _i++) {
133
+ args_1[_i] = arguments[_i];
134
+ }
135
+ return __awaiter(void 0, __spreadArray([], args_1, true), void 0, function (includeHeaders, includeFooters) {
136
+ var rowsToCopy, _a, copyHtml, copyText;
137
+ if (includeHeaders === void 0) { includeHeaders = true; }
138
+ if (includeFooters === void 0) { includeFooters = true; }
139
+ return __generator(this, function (_b) {
140
+ switch (_b.label) {
141
+ case 0:
142
+ if (!loadCopyRows) return [3 /*break*/, 2];
143
+ return [4 /*yield*/, loadCopyRows()];
144
+ case 1:
145
+ _a = _b.sent();
146
+ return [3 /*break*/, 3];
147
+ case 2:
148
+ _a = rows;
149
+ _b.label = 3;
150
+ case 3:
151
+ rowsToCopy = _a;
152
+ copyHtml = generateCopyHtml(rowsToCopy, includeHeaders, includeFooters);
153
+ copyText = generateCopyText(rowsToCopy, includeHeaders, includeFooters);
154
+ return [4 /*yield*/, navigator['clipboard'].write([
155
+ new ClipboardItem({
156
+ 'text/plain': new Blob([copyText], { type: 'text/plain' }),
157
+ 'text/html': new Blob([copyHtml], { type: 'text/html' }),
158
+ }),
159
+ ])];
160
+ case 4:
161
+ _b.sent();
162
+ return [2 /*return*/];
163
+ }
164
+ });
165
+ });
166
+ }, [generateCopyHtml, generateCopyText, loadCopyRows, rows]);
167
+ return {
168
+ copyTable: copyTable,
169
+ };
170
+ };
171
+ exports.useDataGridCopy = useDataGridCopy;
@@ -0,0 +1,16 @@
1
+ import { DataGridSettings } from '../types';
2
+ export declare const useDataGridSettings: (name?: string) => {
3
+ settings: {
4
+ [x: string]: {
5
+ width?: number | undefined;
6
+ order?: number | undefined;
7
+ };
8
+ };
9
+ setSettings: import("react").Dispatch<import("react").SetStateAction<{
10
+ [x: string]: {
11
+ width?: number | undefined;
12
+ order?: number | undefined;
13
+ };
14
+ }>>;
15
+ saveSettings: (newValue?: DataGridSettings) => void;
16
+ };
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.useDataGridSettings = void 0;
4
+ var react_1 = require("react");
5
+ var providers_1 = require("../../../../providers");
6
+ var useDataGridSettings = function (name) {
7
+ // TODO: Implement settings context
8
+ var _a = (0, providers_1.useSettings)(), settings = _a.settings, updateSettings = _a.updateSettings;
9
+ var _b = (0, react_1.useState)({}), dataGridSettings = _b[0], setDataGridSettings = _b[1];
10
+ (0, react_1.useEffect)(function () {
11
+ if (name) {
12
+ var settingName = "user.datagrid.settings.".concat(name);
13
+ var gridSettingsJson = (settings === null || settings === void 0 ? void 0 : settings[settingName]) || '{}';
14
+ var gridSettings = {};
15
+ try {
16
+ gridSettings = JSON.parse(gridSettingsJson);
17
+ }
18
+ catch (error) {
19
+ console.error('[GRID] cannot decode datagrid settings for', {
20
+ name: name,
21
+ gridSettingsJson: gridSettingsJson,
22
+ error: error,
23
+ });
24
+ }
25
+ setDataGridSettings(gridSettings);
26
+ }
27
+ }, [name, settings]);
28
+ var saveSettings = (0, react_1.useCallback)(function (newValue) {
29
+ var _a;
30
+ if (name) {
31
+ var settingName = "user.datagrid.settings.".concat(name);
32
+ var newSettings = newValue !== null && newValue !== void 0 ? newValue : dataGridSettings;
33
+ var newSettingsJson = JSON.stringify(newSettings);
34
+ updateSettings((_a = {}, _a[settingName] = newSettingsJson, _a));
35
+ }
36
+ }, [dataGridSettings, name, updateSettings]);
37
+ return {
38
+ settings: dataGridSettings,
39
+ setSettings: setDataGridSettings,
40
+ saveSettings: saveSettings,
41
+ };
42
+ };
43
+ exports.useDataGridSettings = useDataGridSettings;
@@ -0,0 +1,4 @@
1
+ import { DataGridContextProps, DataGridProps } from './types';
2
+ export declare const DataGrid: <R>({ contextOverride, ...props }: DataGridProps<R> & {
3
+ contextOverride?: Partial<DataGridContextProps<R>>;
4
+ }) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,108 @@
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
14
+ if (k2 === undefined) k2 = k;
15
+ var desc = Object.getOwnPropertyDescriptor(m, k);
16
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
17
+ desc = { enumerable: true, get: function() { return m[k]; } };
18
+ }
19
+ Object.defineProperty(o, k2, desc);
20
+ }) : (function(o, m, k, k2) {
21
+ if (k2 === undefined) k2 = k;
22
+ o[k2] = m[k];
23
+ }));
24
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
25
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
26
+ }) : function(o, v) {
27
+ o["default"] = v;
28
+ });
29
+ var __importStar = (this && this.__importStar) || function (mod) {
30
+ if (mod && mod.__esModule) return mod;
31
+ var result = {};
32
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
33
+ __setModuleDefault(result, mod);
34
+ return result;
35
+ };
36
+ var __rest = (this && this.__rest) || function (s, e) {
37
+ var t = {};
38
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
39
+ t[p] = s[p];
40
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
41
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
42
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
43
+ t[p[i]] = s[p[i]];
44
+ }
45
+ return t;
46
+ };
47
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
48
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
49
+ if (ar || !(i in from)) {
50
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
51
+ ar[i] = from[i];
52
+ }
53
+ }
54
+ return to.concat(ar || Array.prototype.slice.call(from));
55
+ };
56
+ Object.defineProperty(exports, "__esModule", { value: true });
57
+ exports.DataGrid = void 0;
58
+ var jsx_runtime_1 = require("react/jsx-runtime");
59
+ var styles = __importStar(require("./styles"));
60
+ var DataGridCell_1 = require("./DataGridCell");
61
+ var DataGridFooter_1 = require("./DataGridFooter");
62
+ var DataGridHeader_1 = require("./DataGridHeader");
63
+ var VirtualScroller_1 = require("./VirtualScroller");
64
+ var react_1 = require("react");
65
+ var hooks_1 = require("./hooks");
66
+ /* eslint-disable @typescript-eslint/no-explicit-any */
67
+ /* eslint-disable @typescript-eslint/no-unnecessary-type-constraint */
68
+ var DataGrid = function (_a) {
69
+ var contextOverride = _a.contextOverride, props = __rest(_a, ["contextOverride"]);
70
+ var className = props.className,
71
+ // onRowDoubleClick,
72
+ onVisibleRowsChange = props.onVisibleRowsChange;
73
+ var _b = (0, hooks_1.useDataGrid)(props, contextOverride), contextProps = _b[0], DataGridContext = _b[1];
74
+ var selectedKeys = contextProps.selectedKeys, setSelectedKeys = contextProps.setSelectedKeys, columns = contextProps.columns, visibleColumns = contextProps.visibleColumns, _c = contextProps.rowHeight, rowHeight = _c === void 0 ? 32 : _c, _d = contextProps.headerRowHeight, headerRowHeight = _d === void 0 ? 40 : _d, scrollableRef = contextProps.scrollableRef, onScroll = contextProps.onScroll, rowKeyGetter = contextProps.rowKeyGetter;
75
+ var hasFooter = Object.values(columns).some(function (col) { return col.footer; });
76
+ var toggleSelection = (0, react_1.useCallback)(function (key) {
77
+ if (selectedKeys.includes(key)) {
78
+ setSelectedKeys(selectedKeys.filter(function (p) { return p !== key; }));
79
+ }
80
+ else {
81
+ setSelectedKeys(__spreadArray(__spreadArray([], selectedKeys, true), [key], false));
82
+ }
83
+ }, [selectedKeys, setSelectedKeys]);
84
+ var rowTemplate = (0, react_1.useCallback)(function (row, rowIndex) {
85
+ var _a, _b;
86
+ if (!row) {
87
+ return ((0, jsx_runtime_1.jsxs)(styles.DataGridRow, { children: [!!props.selectable && ((0, jsx_runtime_1.jsx)(styles.LoadingCell, { className: "animate-pulse", children: (0, jsx_runtime_1.jsx)("div", {}) })), visibleColumns.map(function (_, index) { return ((0, jsx_runtime_1.jsx)(styles.LoadingCell, { className: "animate-pulse", children: (0, jsx_runtime_1.jsx)("div", {}) }, "loading-".concat(rowIndex, "-").concat(index))); })] }, "loading-row-".concat(rowIndex)));
88
+ }
89
+ var key = rowKeyGetter(row);
90
+ var _c = (_b = (_a = props.rowClassNameGetter) === null || _a === void 0 ? void 0 : _a.call(props, row)) !== null && _b !== void 0 ? _b : {
91
+ className: '',
92
+ style: undefined,
93
+ }, className = _c.className, style = _c.style;
94
+ return ((0, jsx_runtime_1.jsxs)(styles.DataGridRow, { children: [!!props.selectable && ((0, jsx_runtime_1.jsx)(styles.SelectionCell, { onClick: function () { return toggleSelection(key); }, children: (0, jsx_runtime_1.jsx)("input", { type: "checkbox", value: key, checked: selectedKeys.includes(key), readOnly: true }) }, "__select_checkbox__")), visibleColumns.map(function (_a, index) {
95
+ var key = _a[0], col = _a[1];
96
+ return ((0, jsx_runtime_1.jsx)(DataGridCell_1.DataGridCell, __assign({}, (index === 0 ? { className: className, style: style } : {}), { row: row, rowIndex: rowIndex, column: col, columnIndex: index, context: DataGridContext, columnKey: key }), "loading-".concat(rowIndex, "-").concat(index)));
97
+ })] }, key));
98
+ }, [
99
+ DataGridContext,
100
+ props,
101
+ rowKeyGetter,
102
+ selectedKeys,
103
+ toggleSelection,
104
+ visibleColumns,
105
+ ]);
106
+ return ((0, jsx_runtime_1.jsx)(DataGridContext.Provider, { value: contextProps, children: (0, jsx_runtime_1.jsxs)(styles.DataGridContainer, { ref: scrollableRef, onScroll: onScroll, "$headerRowHeight": headerRowHeight, "$rowHeight": rowHeight, "$rowsCount": contextProps.sortedRows.length, className: className, children: [(0, jsx_runtime_1.jsx)(DataGridHeader_1.DataGridHeader, { context: DataGridContext }), (0, jsx_runtime_1.jsx)(VirtualScroller_1.VirtualScroller, { onRangeChange: onVisibleRowsChange, hasFooter: hasFooter, rowTemplate: rowTemplate, context: DataGridContext }), hasFooter && (0, jsx_runtime_1.jsx)(DataGridFooter_1.DataGridFooter, { context: DataGridContext })] }) }));
107
+ };
108
+ exports.DataGrid = DataGrid;