@addev-be/ui 0.7.0 → 0.7.1

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 (161) hide show
  1. package/dist/Icons.d.ts +7 -1
  2. package/dist/Icons.js +13 -1
  3. package/dist/components/auth/LoginForm.d.ts +2 -0
  4. package/dist/components/auth/LoginForm.js +47 -0
  5. package/dist/components/auth/LoginPage.d.ts +2 -0
  6. package/dist/components/auth/LoginPage.js +9 -0
  7. package/dist/components/auth/PasswordRecoveryForm.d.ts +2 -0
  8. package/dist/components/auth/PasswordRecoveryForm.js +24 -0
  9. package/dist/components/auth/PasswordResetForm.d.ts +2 -0
  10. package/dist/components/auth/PasswordResetForm.js +56 -0
  11. package/dist/components/auth/index.d.ts +4 -0
  12. package/dist/components/auth/index.js +20 -0
  13. package/dist/components/auth/styles.d.ts +3 -0
  14. package/dist/components/auth/styles.js +16 -0
  15. package/dist/components/data/AdvancedRequestDataGrid/helpers/columns.js +1 -1
  16. package/dist/components/data/AdvancedRequestDataGrid/index.js +1 -1
  17. package/dist/components/data/DataGrid/DataGridFilterMenu/FilterValuesScroller.d.ts +13 -0
  18. package/dist/components/data/DataGrid/DataGridFilterMenu/FilterValuesScroller.js +71 -0
  19. package/dist/components/data/DataGrid/DataGridFilterMenu/index.js +9 -8
  20. package/dist/components/data/DataGrid/DataGridFilterMenu/styles.d.ts +9 -0
  21. package/dist/components/data/DataGrid/DataGridFilterMenu/styles.js +12 -2
  22. package/dist/components/data/DataGrid/DataGridRowTemplate.d.ts +3 -0
  23. package/dist/components/data/DataGrid/DataGridRowTemplate.js +71 -0
  24. package/dist/components/data/DataGrid/FilterModalContent/index.js +18 -9
  25. package/dist/components/data/DataGrid/helpers/columns.d.ts +2 -0
  26. package/dist/components/data/DataGrid/helpers/columns.js +21 -7
  27. package/dist/components/data/DataGrid/helpers/filters.d.ts +2 -1
  28. package/dist/components/data/DataGrid/helpers/filters.js +94 -14
  29. package/dist/components/data/DataGrid/hooks/useDataGrid.js +35 -40
  30. package/dist/components/data/DataGrid/hooks/useDataGridCopy.d.ts +2 -2
  31. package/dist/components/data/DataGrid/hooks/useDataGridCopy.js +47 -55
  32. package/dist/components/data/DataGrid/index.d.ts +7 -3
  33. package/dist/components/data/DataGrid/index.js +16 -61
  34. package/dist/components/data/DataGrid/styles.d.ts +2 -19
  35. package/dist/components/data/DataGrid/styles.js +24 -47
  36. package/dist/components/data/DataGrid/types.d.ts +17 -7
  37. package/dist/components/data/SqlRequestDataGrid/helpers/columns.d.ts +1 -0
  38. package/dist/components/data/SqlRequestDataGrid/helpers/columns.js +19 -8
  39. package/dist/components/data/SqlRequestDataGrid/index.d.ts +12 -1
  40. package/dist/components/data/SqlRequestDataGrid/index.js +37 -24
  41. package/dist/components/data/SqlRequestGrid/helpers/index.d.ts +1 -0
  42. package/dist/components/data/SqlRequestGrid/helpers/index.js +17 -0
  43. package/dist/components/data/SqlRequestGrid/helpers/sqlRequests.d.ts +3 -0
  44. package/dist/components/data/SqlRequestGrid/helpers/sqlRequests.js +18 -0
  45. package/dist/components/data/SqlRequestGrid/index.d.ts +4 -0
  46. package/dist/components/data/SqlRequestGrid/index.js +145 -0
  47. package/dist/components/data/SqlRequestGrid/styles.d.ts +16 -0
  48. package/dist/components/data/SqlRequestGrid/styles.js +33 -0
  49. package/dist/components/data/SqlRequestGrid/types.d.ts +30 -0
  50. package/dist/components/data/SqlRequestGrid/types.js +3 -0
  51. package/dist/components/data/VirtualScroller/hooks.d.ts +18 -0
  52. package/dist/components/data/VirtualScroller/hooks.js +50 -0
  53. package/dist/components/data/VirtualScroller/index.d.ts +14 -0
  54. package/dist/components/data/VirtualScroller/index.js +58 -0
  55. package/dist/components/data/VirtualScroller/styles.d.ts +16 -0
  56. package/dist/components/data/VirtualScroller/styles.js +39 -0
  57. package/dist/components/data/VirtualScroller/types.d.ts +6 -0
  58. package/dist/components/data/VirtualScroller/types.js +3 -0
  59. package/dist/components/data/index.d.ts +6 -1
  60. package/dist/components/data/index.js +6 -1
  61. package/dist/components/forms/Button.d.ts +1 -1
  62. package/dist/components/forms/IconButton.d.ts +2 -2
  63. package/dist/components/forms/VerticalLabel.d.ts +6 -0
  64. package/dist/components/forms/VerticalLabel.js +32 -0
  65. package/dist/components/forms/index.d.ts +1 -1
  66. package/dist/components/forms/index.js +1 -3
  67. package/dist/components/forms/styles.d.ts +6 -1
  68. package/dist/components/forms/styles.js +8 -3
  69. package/dist/components/index.d.ts +3 -0
  70. package/dist/components/index.js +3 -0
  71. package/dist/components/layout/Dropdown/index.js +3 -3
  72. package/dist/components/layout/Dropdown/styles.d.ts +5 -2
  73. package/dist/components/layout/Dropdown/styles.js +4 -1
  74. package/dist/components/layout/Modal/styles.d.ts +2 -0
  75. package/dist/components/layout/Modal/styles.js +12 -8
  76. package/dist/components/search/HighlightedText.d.ts +5 -0
  77. package/dist/components/search/HighlightedText.js +43 -0
  78. package/dist/components/search/QuickSearchBar.d.ts +6 -0
  79. package/dist/components/search/QuickSearchBar.js +69 -0
  80. package/dist/components/search/QuickSearchResults.d.ts +8 -0
  81. package/dist/components/search/QuickSearchResults.js +70 -0
  82. package/dist/components/search/index.d.ts +5 -0
  83. package/dist/components/search/index.js +25 -0
  84. package/dist/components/search/styles.d.ts +28 -0
  85. package/dist/components/search/styles.js +40 -0
  86. package/dist/components/search/types.d.ts +21 -0
  87. package/dist/components/search/types.js +2 -0
  88. package/dist/components/ui/Card/index.d.ts +8 -0
  89. package/dist/components/ui/Card/index.js +34 -0
  90. package/dist/components/ui/Card/styles.d.ts +9 -0
  91. package/dist/components/ui/Card/styles.js +21 -0
  92. package/dist/components/ui/ContextMenu/index.js +7 -2
  93. package/dist/components/ui/ContextMenu/styles.js +2 -2
  94. package/dist/components/ui/Message/index.d.ts +9 -0
  95. package/dist/components/ui/Message/index.js +53 -0
  96. package/dist/components/ui/Message/styles.d.ts +9 -0
  97. package/dist/components/ui/Message/styles.js +41 -0
  98. package/dist/components/ui/index.d.ts +3 -0
  99. package/dist/components/ui/index.js +19 -0
  100. package/dist/helpers/dates.d.ts +1 -0
  101. package/dist/helpers/dates.js +7 -1
  102. package/dist/helpers/index.d.ts +3 -0
  103. package/dist/helpers/index.js +19 -0
  104. package/dist/helpers/numbers.d.ts +1 -0
  105. package/dist/helpers/numbers.js +9 -1
  106. package/dist/helpers/text.d.ts +2 -0
  107. package/dist/helpers/text.js +18 -0
  108. package/dist/index.d.ts +1 -0
  109. package/dist/index.js +1 -0
  110. package/dist/providers/AuthenticationProvider/helpers.d.ts +1 -0
  111. package/dist/providers/AuthenticationProvider/helpers.js +6 -0
  112. package/dist/providers/AuthenticationProvider/index.d.ts +22 -0
  113. package/dist/providers/AuthenticationProvider/index.js +207 -0
  114. package/dist/providers/LoadingProvider/index.d.ts +7 -0
  115. package/dist/providers/LoadingProvider/index.js +26 -0
  116. package/dist/providers/ThemeProvider/ThemeProvider.js +1 -1
  117. package/dist/providers/ThemeProvider/index.d.ts +2 -1
  118. package/dist/providers/ThemeProvider/index.js +18 -1
  119. package/dist/providers/hooks.d.ts +3 -1
  120. package/dist/providers/hooks.js +9 -3
  121. package/dist/providers/index.d.ts +2 -1
  122. package/dist/providers/index.js +2 -1
  123. package/dist/services/HttpService.d.ts +1 -1
  124. package/dist/services/HttpService.js +12 -4
  125. package/dist/services/WebSocketService.d.ts +2 -3
  126. package/dist/services/WebSocketService.js +5 -16
  127. package/dist/services/base.d.ts +1 -6
  128. package/dist/services/base.js +0 -3
  129. package/dist/services/globalSearch.d.ts +13 -0
  130. package/dist/services/globalSearch.js +8 -0
  131. package/dist/services/hooks.d.ts +2 -1
  132. package/dist/services/hooks.js +14 -3
  133. package/dist/services/index.d.ts +9 -0
  134. package/dist/services/index.js +9 -0
  135. package/dist/services/requests/auth.d.ts +63 -0
  136. package/dist/services/requests/auth.js +28 -0
  137. package/dist/services/requests/userPermissions.d.ts +4 -0
  138. package/dist/services/requests/userPermissions.js +20 -0
  139. package/dist/services/requests/userProfiles.d.ts +40 -0
  140. package/dist/services/requests/userProfiles.js +20 -0
  141. package/dist/services/requests/users.d.ts +84 -0
  142. package/dist/services/requests/users.js +20 -0
  143. package/dist/services/sqlRequests.d.ts +1 -1
  144. package/dist/services/types/auth.d.ts +87 -0
  145. package/dist/services/types/auth.js +72 -0
  146. package/dist/services/types/base.d.ts +6 -0
  147. package/dist/services/types/base.js +31 -0
  148. package/dist/services/types/userProfiles.d.ts +64 -0
  149. package/dist/services/types/userProfiles.js +68 -0
  150. package/dist/services/types/users.d.ts +118 -0
  151. package/dist/services/types/users.js +83 -0
  152. package/package.json +1 -1
  153. package/src/components/data/DataGrid/index.tsx +2 -2
  154. package/src/components/data/DataGrid/types.ts +4 -4
  155. package/src/components/data/SqlRequestDataGrid/index.tsx +2 -2
  156. package/src/components/data/SqlRequestGrid/helpers/index.ts +0 -1
  157. package/src/components/data/SqlRequestGrid/helpers/sqlRequests.ts +1 -1
  158. package/src/services/types/users.ts +2 -0
  159. package/src/typings.d.ts +2 -2
  160. package/tsconfig.tsbuildinfo +1 -1
  161. package/src/services/requests/userPermissions.ts +0 -36
@@ -11,11 +11,11 @@ var __assign = (this && this.__assign) || function () {
11
11
  return __assign.apply(this, arguments);
12
12
  };
13
13
  Object.defineProperty(exports, "__esModule", { value: true });
14
- exports.sqlColorColumn = exports.sqlCheckboxColumn = exports.sqlPercentageColumn = exports.sqlMoneyColumn = exports.sqlNumberColumn = exports.sqlMonthColumn = exports.sqlDateColumn = exports.sqlPhoneColumn = exports.sqlMailColumn = exports.sqlComposedColumn = exports.sqlTextColumn = void 0;
14
+ exports.sqlColorColumn = exports.sqlCheckboxColumn = exports.sqlPercentageColumn = exports.sqlMoneyColumn = exports.sqlNumberColumn = exports.sqlMonthColumn = exports.sqlDateTimeColumn = exports.sqlDateColumn = exports.sqlPhoneColumn = exports.sqlMailColumn = exports.sqlComposedColumn = exports.sqlTextColumn = void 0;
15
15
  var jsx_runtime_1 = require("react/jsx-runtime");
16
- var numbers_1 = require("../../../../helpers/numbers");
17
16
  var helpers_1 = require("../../DataGrid/helpers");
18
17
  var dates_1 = require("../../../../helpers/dates");
18
+ var numbers_1 = require("../../../../helpers/numbers");
19
19
  var sqlTextColumn = function (key, title, options) {
20
20
  var _a;
21
21
  return (_a = {},
@@ -58,10 +58,17 @@ exports.sqlPhoneColumn = sqlPhoneColumn;
58
58
  var sqlDateColumn = function (key, title, options) {
59
59
  var _a;
60
60
  return (_a = {},
61
- _a[key] = __assign({ name: title, render: function (row) { return (0, dates_1.formatDate)(row[key]); }, 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, helpers_1.textFilter)(key)), { getter: function (value) { var _a; return (_a = value[key]) !== null && _a !== void 0 ? _a : ''; } }), footer: function (rows) { return "".concat(rows[0][key], " \u00E9l\u00E9ments"); } }, options),
61
+ _a[key] = __assign({ name: title, type: 'date', render: function (row) { return (0, dates_1.formatDate)(row[key]); }, 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 : ''; }, excelFormatter: function () { return 'dd/mm/yyyy'; }, excelValue: function (value) { return (0, dates_1.formatDate)(value, 'YYYY-MM-DD'); }, filter: __assign(__assign({}, (0, helpers_1.textFilter)(key)), { getter: function (value) { var _a; return (_a = value[key]) !== null && _a !== void 0 ? _a : ''; }, formatter: function (value) { return (0, dates_1.formatDate)(value); }, renderer: function (value) { return (0, dates_1.formatDate)(value); } }), footer: function (rows) { return "".concat(rows[0][key], " \u00E9l\u00E9ments"); } }, options),
62
62
  _a);
63
63
  };
64
64
  exports.sqlDateColumn = sqlDateColumn;
65
+ var sqlDateTimeColumn = function (key, title, options) {
66
+ var _a;
67
+ return (_a = {},
68
+ _a[key] = __assign({ name: title, type: 'date', render: function (row) { return (0, dates_1.formatDateTime)(row[key]); }, 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 : ''; }, excelFormatter: function () { return 'dd/mm/yyyy hh:mm:ss'; }, excelValue: function (value) { return (0, dates_1.formatDateTime)(value, 'YYYY-MM-DD HH:mm:ss'); }, filter: __assign(__assign({}, (0, helpers_1.textFilter)(key)), { getter: function (value) { var _a; return (_a = value[key]) !== null && _a !== void 0 ? _a : ''; }, formatter: function (value) { return (0, dates_1.formatDateTime)(value); }, renderer: function (value) { return (0, dates_1.formatDateTime)(value); } }), footer: function (rows) { return "".concat(rows[0][key], " \u00E9l\u00E9ments"); } }, options),
69
+ _a);
70
+ };
71
+ exports.sqlDateTimeColumn = sqlDateTimeColumn;
65
72
  var sqlMonthColumn = function (key, title, options) {
66
73
  var _a;
67
74
  return (_a = {},
@@ -73,7 +80,7 @@ var sqlNumberColumn = function (key, title, decimals, options) {
73
80
  var _a;
74
81
  if (decimals === void 0) { decimals = 2; }
75
82
  return (_a = {},
76
- _a[key] = __assign({ name: title, render: function (row) { var _a; return (_a = (0, numbers_1.formatNumber)(row[key], decimals)) !== null && _a !== void 0 ? _a : ''; }, excelFormatter: function () { return '#'; }, getter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; }, sortGetter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; }, filter: __assign(__assign({}, (0, helpers_1.numberFilter)(key)), { getter: function (value) { var _a; return (_a = value[key]) !== null && _a !== void 0 ? _a : 0; }, renderer: function (value) { var _a; return (_a = (0, numbers_1.formatNumber)(value, decimals)) !== null && _a !== void 0 ? _a : ''; } }), footer: {
83
+ _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, helpers_1.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, helpers_1.numberFilter)(key)), { getter: function (value) { var _a; return (_a = value[key]) !== null && _a !== void 0 ? _a : 0; }, renderer: function (value) { var _a; return (_a = (0, numbers_1.formatNumber)(value, decimals)) !== null && _a !== void 0 ? _a : ''; } }), footer: {
77
84
  sum: null,
78
85
  avg: null,
79
86
  count: null,
@@ -87,7 +94,7 @@ var sqlMoneyColumn = function (key, title, decimals, options) {
87
94
  var _a;
88
95
  if (decimals === void 0) { decimals = 2; }
89
96
  return (_a = {},
90
- _a[key] = __assign({ name: title, type: 'number', render: function (row) { var _a; return (_a = (0, numbers_1.formatMoney)(row[key], decimals)) !== null && _a !== void 0 ? _a : ''; }, excelFormatter: function () { return '#0.00'; }, getter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; }, sortGetter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; }, filter: __assign(__assign({}, (0, helpers_1.numberFilter)(key)), { getter: function (value) { var _a; return (_a = value[key]) !== null && _a !== void 0 ? _a : 0; }, renderer: function (value) { var _a; return (_a = (0, numbers_1.formatMoney)(value, decimals)) !== null && _a !== void 0 ? _a : ''; } }), footer: {
97
+ _a[key] = __assign({ name: title, type: 'number', render: function (row) { var _a; return (_a = (0, numbers_1.formatMoney)(row[key], decimals)) !== null && _a !== void 0 ? _a : ''; }, excelFormatter: function () { return (0, helpers_1.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, helpers_1.numberFilter)(key)), { getter: function (value) { var _a; return (_a = value[key]) !== null && _a !== void 0 ? _a : 0; }, renderer: function (value) { var _a; return (_a = (0, numbers_1.formatMoney)(value, decimals)) !== null && _a !== void 0 ? _a : ''; } }), footer: {
91
98
  sum: null,
92
99
  avg: null,
93
100
  count: null,
@@ -101,21 +108,25 @@ var sqlPercentageColumn = function (key, title, decimals, options) {
101
108
  var _a;
102
109
  if (decimals === void 0) { decimals = 2; }
103
110
  return (_a = {},
104
- _a[key] = __assign({ name: title, render: function (row) { var _a; return (_a = (0, numbers_1.formatPercentage)(row[key])) !== null && _a !== void 0 ? _a : ''; }, excelFormatter: function () { return '#0.00'; }, getter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; }, sortGetter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; }, filter: __assign(__assign({}, (0, helpers_1.numberFilter)(key)), { getter: function (value) { var _a; return (_a = value[key]) !== null && _a !== void 0 ? _a : 0; }, renderer: function (value) { var _a; return (_a = (0, numbers_1.formatPercentage)(value, decimals)) !== null && _a !== void 0 ? _a : ''; } }) }, options),
111
+ _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, helpers_1.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, helpers_1.numberFilter)(key)), { getter: function (value) { var _a; return (_a = value[key]) !== null && _a !== void 0 ? _a : 0; }, renderer: function (value) { var _a; return (_a = (0, numbers_1.formatPercentage)(value, decimals)) !== null && _a !== void 0 ? _a : ''; } }) }, options),
105
112
  _a);
106
113
  };
107
114
  exports.sqlPercentageColumn = sqlPercentageColumn;
108
115
  var sqlCheckboxColumn = function (key, title, options) {
109
116
  var _a;
110
117
  return (_a = {},
111
- _a[key] = __assign({ name: title, render: function (row) { return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)("input", { type: "checkbox", checked: row[key] }), (0, jsx_runtime_1.jsx)("span", { children: row[key] ? ' Oui' : ' Non' })] })); }, getter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; }, sortGetter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; }, filter: __assign(__assign({}, (0, helpers_1.numberFilter)(key)), { getter: function (value) { var _a; return (_a = value[key]) !== null && _a !== void 0 ? _a : 0; } }), footer: function (rows) { return "".concat(rows[0][key], " \u00E9l\u00E9ments"); } }, options),
118
+ _a[key] = __assign({ name: title, render: function (row) {
119
+ var _a;
120
+ var value = !!+((_a = row[key]) !== null && _a !== void 0 ? _a : 0);
121
+ return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)("input", { type: "checkbox", checked: value, readOnly: true }), (0, jsx_runtime_1.jsx)("span", { children: value ? ' Oui' : ' Non' })] }));
122
+ }, 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, helpers_1.numberFilter)(key)), { getter: function (value) { var _a; return +((_a = value[key]) !== null && _a !== void 0 ? _a : 0); } }), footer: function (rows) { return "".concat(rows[0][key], " \u00E9l\u00E9ments"); } }, options),
112
123
  _a);
113
124
  };
114
125
  exports.sqlCheckboxColumn = sqlCheckboxColumn;
115
126
  var sqlColorColumn = function (key, title, options) {
116
127
  var _a;
117
128
  return (_a = {},
118
- _a[key] = __assign({ name: title, render: function (row) { return ((0, jsx_runtime_1.jsx)("div", { style: { position: 'absolute', inset: 0, backgroundColor: row[key] }, children: "\u00A0" })); }, 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, helpers_1.textFilter)(key)), { getter: function (value) { var _a; return (_a = value[key]) !== null && _a !== void 0 ? _a : ''; }, renderer: function (value) { return ((0, jsx_runtime_1.jsx)("div", { style: {
129
+ _a[key] = __assign({ name: title, render: function (row) { return ((0, jsx_runtime_1.jsx)("div", { style: { position: 'absolute', inset: 0, backgroundColor: row[key] }, children: "\u00A0" })); }, excelValue: function () { return ''; }, excelBackgroundColor: function (value) { return value; }, 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, helpers_1.textFilter)(key)), { getter: function (value) { var _a; return (_a = value[key]) !== null && _a !== void 0 ? _a : ''; }, renderer: function (value) { return ((0, jsx_runtime_1.jsx)("div", { style: {
119
130
  backgroundColor: value,
120
131
  width: 'var(--space-16)',
121
132
  height: '1em',
@@ -1,2 +1,13 @@
1
+ import { ConditionDTO, OrderByDTO, SqlRequestRow } from '../../../services/sqlRequests';
2
+ import { DataGridRefProps } from '../DataGrid/types';
3
+ import { ForwardedRef } from 'react';
1
4
  import { SqlRequestDataGridProps } from './types';
2
- export declare const SqlRequestDataGrid: <R>({ onSelectionChange: onSelectionChangeFromProps, ...props }: SqlRequestDataGridProps<R>) => import("react/jsx-runtime").JSX.Element;
5
+ export declare const SqlRequestDataGridInner: <R>({ onSelectionChange: onSelectionChangeFromProps, ...props }: SqlRequestDataGridProps<R>, ref: ForwardedRef<DataGridRefProps>) => import("react/jsx-runtime").JSX.Element;
6
+ export declare const SqlRequestDataGrid: <R>(props: Omit<import("../DataGrid/types").DataGridProps<R>, "rows" | "columns"> & {
7
+ columns: import("./types").SqlRequestDataGridColumns<R>;
8
+ hiddenColumns?: string[];
9
+ type: string;
10
+ orderBy?: OrderByDTO[];
11
+ conditions?: ConditionDTO[];
12
+ parser?: ((row: SqlRequestRow<R>) => R) | undefined;
13
+ } & import("react").RefAttributes<DataGridRefProps>) => import("react").JSX.Element | null;
@@ -54,23 +54,24 @@ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
54
54
  return to.concat(ar || Array.prototype.slice.call(from));
55
55
  };
56
56
  Object.defineProperty(exports, "__esModule", { value: true });
57
- exports.SqlRequestDataGrid = void 0;
57
+ exports.SqlRequestDataGrid = exports.SqlRequestDataGridInner = void 0;
58
58
  var jsx_runtime_1 = require("react/jsx-runtime");
59
59
  var sqlRequests_1 = require("../../../services/sqlRequests");
60
- var lodash_1 = __importStar(require("lodash"));
61
60
  var react_1 = require("react");
61
+ var lodash_1 = __importStar(require("lodash"));
62
62
  var DataGrid_1 = require("../DataGrid");
63
63
  var helpers_1 = require("./helpers");
64
64
  var helpers_2 = require("../DataGrid/helpers");
65
- var SqlRequestDataGrid = function (_a) {
65
+ var SqlRequestDataGridInner = function (_a, ref) {
66
66
  var _b, _c;
67
67
  var onSelectionChangeFromProps = _a.onSelectionChange, props = __rest(_a, ["onSelectionChange"]);
68
68
  var currentRows = (0, react_1.useRef)([]);
69
69
  var _d = (0, react_1.useState)([]), rows = _d[0], setRows = _d[1];
70
70
  var _e = (0, react_1.useState)(0), start = _e[0], setStart = _e[1];
71
71
  var _f = (0, react_1.useState)(50), length = _f[0], setLength = _f[1];
72
- var _g = (0, react_1.useState)(-1), total = _g[0], setTotal = _g[1];
72
+ var _g = (0, react_1.useState)(-1), count = _g[0], setCount = _g[1];
73
73
  var _h = (0, sqlRequests_1.useSqlRequestHandler)(props.type), sqlRequest = _h[0], sqlIdRequest = _h[1], sqlPartialRequest = _h[2];
74
+ var gridRef = (0, react_1.useRef)(null);
74
75
  var _j = (0, react_1.useState)({}), conditions = _j[0], setConditions = _j[1];
75
76
  var _k = (0, react_1.useState)(Object.entries((_b = props.initialSorts) !== null && _b !== void 0 ? _b : {}).map(function (_a) {
76
77
  var _b, _c, _d;
@@ -91,19 +92,19 @@ var SqlRequestDataGrid = function (_a) {
91
92
  ];
92
93
  }, [props.columns, props.hiddenColumns]), columnsKeys = _l[0], visibleColumnsKeys = _l[1];
93
94
  var columnTypes = (0, react_1.useMemo)(function () {
94
- return visibleColumnsKeys.map(function (key) { var _a; return String((_a = props.columns[key].type) !== null && _a !== void 0 ? _a : 'text'); });
95
+ return visibleColumnsKeys.map(function (key) { var _a, _b; return String((_b = (_a = props.columns[key]) === null || _a === void 0 ? void 0 : _a.type) !== null && _b !== void 0 ? _b : 'text'); });
95
96
  }, [visibleColumnsKeys, props.columns]);
96
97
  var refresh = (0, react_1.useCallback)(function () {
97
98
  setRows([]);
98
99
  setStart(0);
99
100
  setLength(50);
100
- setTotal(-1);
101
+ setCount(-1);
101
102
  }, []);
102
103
  var onFiltersChanged = (0, react_1.useCallback)(function (filters) {
103
104
  var newConditions = (0, helpers_1.convertSqlFiltersToConditions)(filters);
104
- setTotal(-1);
105
105
  setConditions(newConditions);
106
- }, []);
106
+ refresh();
107
+ }, [refresh]);
107
108
  var onSortsChanged = (0, react_1.useCallback)(function (sorts) {
108
109
  refresh();
109
110
  var newOrderBy = Object.entries(sorts).map(function (_a) {
@@ -115,12 +116,12 @@ var SqlRequestDataGrid = function (_a) {
115
116
  });
116
117
  setOrderBy(newOrderBy);
117
118
  }, [refresh]);
118
- var loadRows = (0, react_1.useRef)((0, lodash_1.debounce)(function (columns, returnColumns, conditions, orderBy, start, length, getTotal) {
119
+ var loadRows = (0, react_1.useRef)((0, lodash_1.debounce)(function (columns, returnColumns, conditions, orderBy, start, length, getCount) {
119
120
  if (conditions === void 0) { conditions = []; }
120
121
  if (orderBy === void 0) { orderBy = []; }
121
122
  if (start === void 0) { start = 0; }
122
123
  if (length === void 0) { length = 100; }
123
- if (getTotal === void 0) { getTotal = false; }
124
+ if (getCount === void 0) { getCount = false; }
124
125
  sqlRequest({
125
126
  columns: columns.includes('Id') ? columns : __spreadArray(__spreadArray([], columns, true), ['Id'], false),
126
127
  returnColumns: returnColumns.includes('Id')
@@ -133,14 +134,14 @@ var SqlRequestDataGrid = function (_a) {
133
134
  orderBy: orderBy,
134
135
  start: start,
135
136
  length: length,
136
- getTotal: getTotal,
137
+ getCount: getCount,
137
138
  }).then(function (response) {
138
139
  var _a;
139
140
  var _b;
140
- if (getTotal) {
141
+ if (getCount) {
141
142
  currentRows.current = Array(response.count).fill(null);
142
- if (getTotal)
143
- setTotal((_b = response.count) !== null && _b !== void 0 ? _b : 0);
143
+ if (getCount)
144
+ setCount((_b = response.count) !== null && _b !== void 0 ? _b : 0);
144
145
  }
145
146
  var parsedRows = props.parser
146
147
  ? response.data.map(props.parser)
@@ -158,7 +159,7 @@ var SqlRequestDataGrid = function (_a) {
158
159
  columns: columnsKeys,
159
160
  returnColumns: [columnKey],
160
161
  columnTypes: [(_a = props.columns[columnKey].type) !== null && _a !== void 0 ? _a : 'text'],
161
- conditions: __spreadArray(__spreadArray([], ((_b = props.conditions) !== null && _b !== void 0 ? _b : []), true), Object.values(lodash_1.default.pickBy(conditions, function (condition, key) { return key !== columnKey; })), true).filter(function (condition) { return condition.field !== columnKey; }),
162
+ conditions: __spreadArray(__spreadArray([], ((_b = props.conditions) !== null && _b !== void 0 ? _b : []), true), Object.values(lodash_1.default.pickBy(conditions, function (_, key) { return key !== columnKey; })), true).filter(function (condition) { return condition.field !== columnKey; }),
162
163
  orderBy: [
163
164
  {
164
165
  field: (_g = (_e = (_c = props.columns[columnKey].filterField) !== null && _c !== void 0 ? _c : (_d = props.columns[columnKey].field) === null || _d === void 0 ? void 0 : _d.fieldAlias) !== null && _e !== void 0 ? _e : (_f = props.columns[columnKey].field) === null || _f === void 0 ? void 0 : _f.fieldName) !== null && _g !== void 0 ? _g : columnKey,
@@ -166,7 +167,7 @@ var SqlRequestDataGrid = function (_a) {
166
167
  direction: 'ASC',
167
168
  },
168
169
  ],
169
- getTotal: false,
170
+ getCount: false,
170
171
  unique: true,
171
172
  }).then(function (response) {
172
173
  return response.data.map(function (row) { var _a, _b, _c; return (_c = (_b = (_a = props.columns[columnKey].filter) === null || _a === void 0 ? void 0 : _a.getter) === null || _b === void 0 ? void 0 : _b.call(_a, row)) !== null && _c !== void 0 ? _c : null; });
@@ -174,17 +175,21 @@ var SqlRequestDataGrid = function (_a) {
174
175
  }, [columnsKeys, conditions, props.columns, props.conditions, sqlRequest]);
175
176
  (0, react_1.useEffect)(function () {
176
177
  var _a, _b;
177
- return loadRows.current(columnsKeys, visibleColumnsKeys, __spreadArray(__spreadArray([], ((_a = props.conditions) !== null && _a !== void 0 ? _a : []), true), ((_b = Object.values(conditions)) !== null && _b !== void 0 ? _b : []), true), orderBy, start, length, total < 0);
178
+ if (!rows.length ||
179
+ rows.slice(start, start + length).some(function (row) { return row === null; })) {
180
+ loadRows.current(columnsKeys, visibleColumnsKeys, __spreadArray(__spreadArray([], ((_a = props.conditions) !== null && _a !== void 0 ? _a : []), true), ((_b = Object.values(conditions)) !== null && _b !== void 0 ? _b : []), true), orderBy, start, length, count < 0);
181
+ }
178
182
  }, [
179
183
  props.columns,
180
184
  conditions,
181
185
  orderBy,
182
186
  start,
183
187
  length,
184
- total,
188
+ count,
185
189
  props.conditions,
186
190
  columnsKeys,
187
191
  visibleColumnsKeys,
192
+ rows,
188
193
  ]);
189
194
  var loadCopyRows = (0, react_1.useCallback)(function () {
190
195
  var _a, _b;
@@ -195,7 +200,7 @@ var SqlRequestDataGrid = function (_a) {
195
200
  conditions: __spreadArray(__spreadArray([], ((_a = props.conditions) !== null && _a !== void 0 ? _a : []), true), ((_b = Object.values(conditions)) !== null && _b !== void 0 ? _b : []), true),
196
201
  orderBy: orderBy,
197
202
  start: 0,
198
- length: total,
203
+ length: count,
199
204
  }).then(function (response) {
200
205
  return props.parser ? response.data.map(props.parser) : response.data;
201
206
  });
@@ -208,7 +213,7 @@ var SqlRequestDataGrid = function (_a) {
208
213
  props.parser,
209
214
  conditions,
210
215
  orderBy,
211
- total,
216
+ count,
212
217
  ]);
213
218
  var loadAllIds = (0, react_1.useCallback)(function () {
214
219
  var _a, _b;
@@ -221,9 +226,9 @@ var SqlRequestDataGrid = function (_a) {
221
226
  conditions: __spreadArray(__spreadArray([], ((_a = props.conditions) !== null && _a !== void 0 ? _a : []), true), ((_b = Object.values(conditions)) !== null && _b !== void 0 ? _b : []), true),
222
227
  orderBy: orderBy,
223
228
  start: 0,
224
- length: total,
229
+ length: count,
225
230
  }).then(function (response) { return response.data.map(function (row) { return row['Id']; }); });
226
- }, [columnsKeys, conditions, orderBy, props.conditions, sqlIdRequest, total]);
231
+ }, [columnsKeys, conditions, orderBy, props.conditions, sqlIdRequest, count]);
227
232
  var onVisibleRowsChanged = (0, react_1.useCallback)(function (newStart, newLength) {
228
233
  if (newStart !== start || newLength !== length) {
229
234
  setStart(newStart);
@@ -291,6 +296,14 @@ var SqlRequestDataGrid = function (_a) {
291
296
  setFooters: setFooters,
292
297
  footerFunctions: footerFunctions,
293
298
  }); }, [footers, setFooters, footerFunctions]);
294
- return ((0, jsx_runtime_1.jsx)(DataGrid_1.DataGrid, __assign({ onVisibleRowsChange: onVisibleRowsChanged, filter: false, sort: false, onFiltersChanged: onFiltersChanged, onSortsChanged: onSortsChanged, filterValuesLoader: loadFilterValues, rows: rows, loadCopyRows: loadCopyRows, refresh: refresh, onSelectionChange: onSelectionChange, getAllIds: loadAllIds, contextOverride: contextOverride }, props)));
299
+ (0, react_1.useImperativeHandle)(ref, function () {
300
+ var _a, _b;
301
+ return ({
302
+ refresh: refresh,
303
+ setSelectedKeys: (_b = (_a = gridRef.current) === null || _a === void 0 ? void 0 : _a.setSelectedKeys) !== null && _b !== void 0 ? _b : (function () { }),
304
+ });
305
+ }, [refresh]);
306
+ return ((0, jsx_runtime_1.jsx)(DataGrid_1.DataGrid, __assign({ ref: gridRef, onVisibleRowsChange: onVisibleRowsChanged, filter: false, sort: false, onFiltersChanged: onFiltersChanged, onSortsChanged: onSortsChanged, filterValuesLoader: loadFilterValues, rows: rows, loadCopyRows: loadCopyRows, refresh: refresh, onSelectionChange: onSelectionChange, getAllIds: loadAllIds, contextOverride: contextOverride }, props)));
295
307
  };
296
- exports.SqlRequestDataGrid = SqlRequestDataGrid;
308
+ exports.SqlRequestDataGridInner = SqlRequestDataGridInner;
309
+ exports.SqlRequestDataGrid = (0, react_1.forwardRef)(exports.SqlRequestDataGridInner);
@@ -0,0 +1 @@
1
+ export * from './sqlRequests';
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./sqlRequests"), exports);
@@ -0,0 +1,3 @@
1
+ import { ConditionDTO } from '../../../../services/sqlRequests';
2
+ import { SqlRequestDataGridFilters } from '../../SqlRequestDataGrid/types';
3
+ export declare const convertSqlFiltersToConditions: (filters: SqlRequestDataGridFilters) => Record<string, ConditionDTO>;
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ /* eslint-disable @typescript-eslint/no-explicit-any */
3
+ var __importDefault = (this && this.__importDefault) || function (mod) {
4
+ return (mod && mod.__esModule) ? mod : { "default": mod };
5
+ };
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.convertSqlFiltersToConditions = void 0;
8
+ var lodash_1 = __importDefault(require("lodash"));
9
+ var convertSqlFiltersToConditions = function (filters) {
10
+ return lodash_1.default.mapValues(filters, function (filter, columnKey) { return ({
11
+ field: columnKey,
12
+ operator: filter.operator,
13
+ value: ['inArray', 'inRange'].includes(filter.operator)
14
+ ? filter.values
15
+ : lodash_1.default.castArray(filter.values)[0],
16
+ }); });
17
+ };
18
+ exports.convertSqlFiltersToConditions = convertSqlFiltersToConditions;
@@ -0,0 +1,4 @@
1
+ import { ForwardedRef } from 'react';
2
+ import { SqlRequestGridProps, SqlRequestGridRefProps } from './types';
3
+ export declare const SqlRequestGridInner: <R, P extends object = {}>({ rowHeight, itemsPerRow, itemTemplate, itemProps, gap, ...props }: SqlRequestGridProps<R, P>, ref: ForwardedRef<SqlRequestGridRefProps>) => import("react/jsx-runtime").JSX.Element;
4
+ export declare const SqlRequestGrid: <R, P extends object = {}>(props: SqlRequestGridProps<R, P> & import("react").RefAttributes<SqlRequestGridRefProps>) => import("react").JSX.Element | null;
@@ -0,0 +1,145 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ var __rest = (this && this.__rest) || function (s, e) {
26
+ var t = {};
27
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
28
+ t[p] = s[p];
29
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
30
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
31
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
32
+ t[p[i]] = s[p[i]];
33
+ }
34
+ return t;
35
+ };
36
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
37
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
38
+ if (ar || !(i in from)) {
39
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
40
+ ar[i] = from[i];
41
+ }
42
+ }
43
+ return to.concat(ar || Array.prototype.slice.call(from));
44
+ };
45
+ Object.defineProperty(exports, "__esModule", { value: true });
46
+ exports.SqlRequestGrid = exports.SqlRequestGridInner = void 0;
47
+ var jsx_runtime_1 = require("react/jsx-runtime");
48
+ var styles = __importStar(require("./styles"));
49
+ var sqlRequests_1 = require("../../../services/sqlRequests");
50
+ var react_1 = require("react");
51
+ var VirtualScroller_1 = require("../VirtualScroller");
52
+ var lodash_1 = require("lodash");
53
+ var helpers_1 = require("../DataGrid/helpers");
54
+ // eslint-disable-next-line @typescript-eslint/no-empty-object-type
55
+ var SqlRequestGridInner = function (_a, ref) {
56
+ var _b = _a.rowHeight, rowHeight = _b === void 0 ? styles.DEFAULT_ROW_HEIGHT : _b, itemsPerRow = _a.itemsPerRow, itemTemplate = _a.itemTemplate, itemProps = _a.itemProps, gap = _a.gap, props = __rest(_a, ["rowHeight", "itemsPerRow", "itemTemplate", "itemProps", "gap"]);
57
+ var currentRows = (0, react_1.useRef)([]);
58
+ var _c = (0, react_1.useState)([]), rows = _c[0], setRows = _c[1];
59
+ var _d = (0, react_1.useState)(0), start = _d[0], setStart = _d[1];
60
+ var _e = (0, react_1.useState)(50), length = _e[0], setLength = _e[1];
61
+ var _f = (0, react_1.useState)(-1), count = _f[0], setCount = _f[1];
62
+ var sqlRequest = (0, sqlRequests_1.useSqlRequestHandler)(props.type)[0];
63
+ var _g = (0, react_1.useMemo)(function () {
64
+ var _a, _b;
65
+ return [
66
+ __spreadArray(__spreadArray([], Object.keys(props.fields), true), ((_a = props.additionalFields) !== null && _a !== void 0 ? _a : []), true),
67
+ __spreadArray(__spreadArray([], Object.keys(props.fields).filter(function (key) {
68
+ return (0, helpers_1.isColumnVisible)(props.fields[key]);
69
+ }), true), ((_b = props.additionalFields) !== null && _b !== void 0 ? _b : []), true),
70
+ ];
71
+ }, [props.fields, props.additionalFields]), columnsKeys = _g[0], visibleColumnsKeys = _g[1];
72
+ var columnTypes = (0, react_1.useMemo)(function () {
73
+ return visibleColumnsKeys.map(function (key) { var _a, _b; return String((_b = (_a = props.fields[key]) === null || _a === void 0 ? void 0 : _a.type) !== null && _b !== void 0 ? _b : 'text'); });
74
+ }, [visibleColumnsKeys, props.fields]);
75
+ var loadRows = (0, react_1.useRef)((0, lodash_1.debounce)(function (columns, returnColumns, conditions, orderBy, start, length, getCount) {
76
+ if (conditions === void 0) { conditions = []; }
77
+ if (orderBy === void 0) { orderBy = []; }
78
+ if (start === void 0) { start = 0; }
79
+ if (length === void 0) { length = 100; }
80
+ if (getCount === void 0) { getCount = false; }
81
+ sqlRequest({
82
+ columns: columns.includes('Id') ? columns : __spreadArray(__spreadArray([], columns, true), ['Id'], false),
83
+ returnColumns: returnColumns.includes('Id')
84
+ ? returnColumns
85
+ : __spreadArray(__spreadArray([], returnColumns, true), ['Id'], false),
86
+ columnTypes: columnTypes.includes('Id')
87
+ ? columnTypes
88
+ : __spreadArray(__spreadArray([], columnTypes, true), ['Id'], false),
89
+ conditions: conditions,
90
+ orderBy: orderBy,
91
+ start: start,
92
+ length: length,
93
+ getCount: getCount,
94
+ }).then(function (response) {
95
+ var _a;
96
+ var _b;
97
+ if (getCount) {
98
+ currentRows.current = Array(response.count).fill(null);
99
+ if (getCount)
100
+ setCount((_b = response.count) !== null && _b !== void 0 ? _b : 0);
101
+ }
102
+ var parsedRows = props.parser
103
+ ? response.data.map(props.parser)
104
+ : response.data;
105
+ (_a = currentRows.current).splice.apply(_a, __spreadArray([start, length], parsedRows, false));
106
+ setRows(__spreadArray([], currentRows.current, true));
107
+ });
108
+ }, 100, {
109
+ leading: true,
110
+ trailing: true,
111
+ }));
112
+ (0, react_1.useEffect)(function () {
113
+ if (!rows.length ||
114
+ rows.slice(start, start + length).some(function (row) { return row === null; })) {
115
+ loadRows.current(columnsKeys, visibleColumnsKeys, [], [], start, length, count < 0);
116
+ }
117
+ }, [
118
+ props.fields,
119
+ start,
120
+ length,
121
+ count,
122
+ props.conditions,
123
+ columnsKeys,
124
+ visibleColumnsKeys,
125
+ rows,
126
+ ]);
127
+ var onVisibleRowsChanged = (0, react_1.useCallback)(function (newStart, newLength) {
128
+ if (newStart !== start || newLength !== length) {
129
+ setStart(newStart);
130
+ setLength(newLength);
131
+ }
132
+ }, [length, start]);
133
+ var refresh = (0, react_1.useCallback)(function () {
134
+ setRows([]);
135
+ setStart(0);
136
+ setLength(50);
137
+ setCount(-1);
138
+ }, []);
139
+ (0, react_1.useImperativeHandle)(ref, function () { return ({
140
+ refresh: refresh,
141
+ }); }, [refresh]);
142
+ return ((0, jsx_runtime_1.jsx)(styles.SqlRequestGridContainer, { children: (0, jsx_runtime_1.jsx)(VirtualScroller_1.VirtualScroller, { gridTemplateColumns: "repeat(".concat(itemsPerRow, ", 1fr)"), items: rows, itemTemplate: itemTemplate, itemsPerRow: itemsPerRow, itemProps: itemProps, rowHeightInPx: rowHeight, onRangeChanged: onVisibleRowsChanged, gap: gap }) }));
143
+ };
144
+ exports.SqlRequestGridInner = SqlRequestGridInner;
145
+ exports.SqlRequestGrid = (0, react_1.forwardRef)(exports.SqlRequestGridInner);
@@ -0,0 +1,16 @@
1
+ export declare const DEFAULT_ROW_HEIGHT = 200;
2
+ export declare const SqlRequestGridContainer: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("styled-components").FastOmit<import("styled-components/dist/types").Substitute<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & {
3
+ ref?: ((instance: HTMLDivElement | null) => void | import("react").DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES[keyof import("react").DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES]) | import("react").RefObject<HTMLDivElement> | null | undefined;
4
+ }>, never>, never>> & string;
5
+ export declare const TopPaddingRow: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>> & string;
6
+ export declare const BottomPaddingRow: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>> & string;
7
+ export declare const VirtualScrollerContainer: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components/dist/types").Substitute<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {
8
+ $height: number;
9
+ }>> & string;
10
+ export declare const VirtualScrollerRowsContainer: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("styled-components/dist/types").Substitute<import("styled-components/dist/types").Substitute<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & {
11
+ ref?: ((instance: HTMLDivElement | null) => void | import("react").DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES[keyof import("react").DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES]) | import("react").RefObject<HTMLDivElement> | null | undefined;
12
+ }>, {
13
+ $gridTemplateColumns: string;
14
+ $topPadding: number;
15
+ $rowHeight?: number;
16
+ }>, never>> & string;
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {
3
+ if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
4
+ return cooked;
5
+ };
6
+ var __importDefault = (this && this.__importDefault) || function (mod) {
7
+ return (mod && mod.__esModule) ? mod : { "default": mod };
8
+ };
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.VirtualScrollerRowsContainer = exports.VirtualScrollerContainer = exports.BottomPaddingRow = exports.TopPaddingRow = exports.SqlRequestGridContainer = exports.DEFAULT_ROW_HEIGHT = void 0;
11
+ var styled_components_1 = __importDefault(require("styled-components"));
12
+ exports.DEFAULT_ROW_HEIGHT = 200;
13
+ exports.SqlRequestGridContainer = styled_components_1.default.div.attrs({
14
+ className: 'SqlRequestGridContainer',
15
+ })(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n height: 100%;\n width: 100%;\n overflow: auto;\n"], ["\n height: 100%;\n width: 100%;\n overflow: auto;\n"])));
16
+ exports.TopPaddingRow = styled_components_1.default.div(templateObject_2 || (templateObject_2 = __makeTemplateObject([""], [""])));
17
+ exports.BottomPaddingRow = styled_components_1.default.div(templateObject_3 || (templateObject_3 = __makeTemplateObject([""], [""])));
18
+ exports.VirtualScrollerContainer = styled_components_1.default.div(templateObject_4 || (templateObject_4 = __makeTemplateObject(["\n position: relative;\n overflow: visible;\n height: ", ";\n"], ["\n position: relative;\n overflow: visible;\n height: ", ";\n"])), function (_a) {
19
+ var $height = _a.$height;
20
+ return "".concat($height, "px");
21
+ });
22
+ exports.VirtualScrollerRowsContainer = styled_components_1.default.div.attrs(function (_a) {
23
+ var $gridTemplateColumns = _a.$gridTemplateColumns, $topPadding = _a.$topPadding, _b = _a.$rowHeight, $rowHeight = _b === void 0 ? exports.DEFAULT_ROW_HEIGHT : _b;
24
+ var rowHeightValue = "".concat($rowHeight, "px");
25
+ return {
26
+ style: {
27
+ top: "".concat($topPadding, "px"),
28
+ gridTemplateColumns: $gridTemplateColumns,
29
+ gridAutoRows: rowHeightValue,
30
+ },
31
+ };
32
+ })(templateObject_5 || (templateObject_5 = __makeTemplateObject(["\n display: grid;\n position: absolute;\n\n ", " {\n grid-column-start: 1;\n grid-column-end: -1;\n grid-row: 1;\n }\n ", " {\n grid-column-start: 1;\n grid-column-end: -1;\n grid-row: -1;\n }\n"], ["\n display: grid;\n position: absolute;\n\n ", " {\n grid-column-start: 1;\n grid-column-end: -1;\n grid-row: 1;\n }\n ", " {\n grid-column-start: 1;\n grid-column-end: -1;\n grid-row: -1;\n }\n"])), exports.TopPaddingRow, exports.BottomPaddingRow);
33
+ var templateObject_1, templateObject_2, templateObject_3, templateObject_4, templateObject_5;
@@ -0,0 +1,30 @@
1
+ import { ConditionDTO, FieldDTO, OrderByDTO, SqlRequestRow } from '../../../services/sqlRequests';
2
+ import { DataGridColumn, DataGridFilter, DataGridFilterType } from '../DataGrid/types';
3
+ import { VirtualScrollerTemplateFC } from '../VirtualScroller/types';
4
+ export type SqlRequestGridFilter<T extends DataGridFilterType = DataGridFilterType> = DataGridFilter<T> & {
5
+ field?: FieldDTO;
6
+ };
7
+ export type SqlRequestGridFilters = Record<string, SqlRequestGridFilter>;
8
+ export type SqlRequestGridColumn<R> = DataGridColumn<R> & {
9
+ filter?: SqlRequestGridFilter;
10
+ field?: FieldDTO;
11
+ filterField?: string;
12
+ sortField?: string;
13
+ };
14
+ export type SqlRequestGridColumns<R> = Record<string, SqlRequestGridColumn<R>>;
15
+ export type SqlRequestGridProps<R, P extends object = {}> = {
16
+ itemTemplate: VirtualScrollerTemplateFC<R, P>;
17
+ itemsPerRow?: number;
18
+ rowHeight?: number;
19
+ gap?: string;
20
+ fields: SqlRequestGridColumns<R>;
21
+ additionalFields?: string[];
22
+ type: string;
23
+ orderBy?: OrderByDTO[];
24
+ conditions?: ConditionDTO[];
25
+ parser?: (row: SqlRequestRow<R>) => R;
26
+ itemProps: P;
27
+ };
28
+ export type SqlRequestGridRefProps = {
29
+ refresh: () => void;
30
+ };
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ /* eslint-disable @typescript-eslint/no-empty-object-type */
3
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,18 @@
1
+ export declare const VIRTUAL_SCROLL_TOLERANCE = 20;
2
+ type VirtualScrollingProps<R> = {
3
+ scrollableElement: HTMLElement | null;
4
+ rowHeightInPx: number;
5
+ items: R[];
6
+ itemsPerRow?: number;
7
+ tolerance?: number;
8
+ };
9
+ export declare const useVirtualScrolling: <R>({ scrollableElement, rowHeightInPx, items, itemsPerRow, tolerance, }: VirtualScrollingProps<R>) => {
10
+ index: number;
11
+ length: number;
12
+ indexWithTolerance: number;
13
+ lengthWithTolerance: number;
14
+ visibleItems: R[];
15
+ totalHeight: number;
16
+ topPadding: number;
17
+ };
18
+ export {};