@addev-be/ui 0.16.3 → 0.16.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (207) hide show
  1. package/assets/icons/table.svg +1 -1
  2. package/dist/Icons.d.ts +9 -1
  3. package/dist/Icons.js +17 -1
  4. package/dist/components/auth/LoginForm.js +1 -1
  5. package/dist/components/auth/PasswordRecoveryForm.js +1 -1
  6. package/dist/components/auth/PasswordResetForm.js +1 -1
  7. package/dist/components/data/DataGrid/DataGridCell.js +5 -5
  8. package/dist/components/data/DataGrid/DataGridColumnsModal/helpers.d.ts +2 -2
  9. package/dist/components/data/DataGrid/DataGridColumnsModal/helpers.js +1 -7
  10. package/dist/components/data/DataGrid/DataGridColumnsModal/hooks.js +3 -3
  11. package/dist/components/data/DataGrid/DataGridColumnsModal/index.js +16 -21
  12. package/dist/components/data/DataGrid/DataGridEditableCell/CheckboxEditableCell.d.ts +2 -0
  13. package/dist/components/data/DataGrid/DataGridEditableCell/CheckboxEditableCell.js +23 -0
  14. package/dist/components/data/DataGrid/DataGridEditableCell/DateEditableCell.d.ts +2 -0
  15. package/dist/components/data/DataGrid/DataGridEditableCell/DateEditableCell.js +27 -0
  16. package/dist/components/data/DataGrid/DataGridEditableCell/NumberEditableCell.d.ts +5 -0
  17. package/dist/components/data/DataGrid/DataGridEditableCell/NumberEditableCell.js +32 -0
  18. package/dist/components/data/DataGrid/DataGridEditableCell/TextEditableCell.d.ts +2 -0
  19. package/dist/components/data/DataGrid/DataGridEditableCell/TextEditableCell.js +23 -0
  20. package/dist/components/data/DataGrid/DataGridEditableCell/index.d.ts +2 -0
  21. package/dist/components/data/DataGrid/DataGridEditableCell/index.js +91 -0
  22. package/dist/components/data/DataGrid/DataGridEditableCell/styles.d.ts +3 -0
  23. package/dist/components/data/DataGrid/DataGridEditableCell/styles.js +17 -0
  24. package/dist/components/data/DataGrid/DataGridEditableCell/types.d.ts +11 -0
  25. package/dist/components/data/{AdvancedRequestDataGrid → DataGrid/DataGridEditableCell}/types.js +1 -0
  26. package/dist/components/data/DataGrid/DataGridFilterMenu/FilterValuesScroller.js +17 -1
  27. package/dist/components/data/DataGrid/DataGridFilterMenu/hooks.d.ts +4 -3
  28. package/dist/components/data/DataGrid/DataGridFilterMenu/hooks.js +11 -12
  29. package/dist/components/data/DataGrid/DataGridFilterMenu/index.d.ts +5 -4
  30. package/dist/components/data/DataGrid/DataGridFilterMenu/index.js +44 -40
  31. package/dist/components/data/DataGrid/DataGridFilterMenu/styles.js +1 -1
  32. package/dist/components/data/DataGrid/DataGridFooter.js +5 -5
  33. package/dist/components/data/DataGrid/DataGridHeader.js +40 -6
  34. package/dist/components/data/DataGrid/DataGridHeaderCell.d.ts +1 -1
  35. package/dist/components/data/DataGrid/DataGridHeaderCell.js +11 -23
  36. package/dist/components/data/DataGrid/DataGridRowTemplate.d.ts +1 -1
  37. package/dist/components/data/DataGrid/DataGridRowTemplate.js +8 -9
  38. package/dist/components/data/DataGrid/FilterModalContent/index.js +1 -1
  39. package/dist/components/data/DataGrid/constants.d.ts +6 -0
  40. package/dist/components/data/DataGrid/constants.js +9 -0
  41. package/dist/components/data/DataGrid/helpers/columns.d.ts +13 -12
  42. package/dist/components/data/DataGrid/helpers/columns.js +100 -130
  43. package/dist/components/data/DataGrid/hooks/index.d.ts +3 -3
  44. package/dist/components/data/DataGrid/hooks/index.js +8 -12
  45. package/dist/components/data/DataGrid/hooks/useDataGrid.js +71 -23
  46. package/dist/components/data/DataGrid/hooks/useDataGridChangedRows.d.ts +9 -0
  47. package/dist/components/data/DataGrid/hooks/useDataGridChangedRows.js +71 -0
  48. package/dist/components/data/DataGrid/hooks/useDataGridCopy.js +25 -30
  49. package/dist/components/data/DataGrid/index.js +16 -3
  50. package/dist/components/data/DataGrid/styles.d.ts +13 -8
  51. package/dist/components/data/DataGrid/styles.js +58 -30
  52. package/dist/components/data/DataGrid/types.d.ts +81 -15
  53. package/dist/components/data/SqlRequestDataGrid/SqlRequestForeignListEditableCell.d.ts +2 -0
  54. package/dist/components/data/SqlRequestDataGrid/SqlRequestForeignListEditableCell.js +19 -0
  55. package/dist/components/data/SqlRequestDataGrid/helpers/columns.d.ts +16 -17
  56. package/dist/components/data/SqlRequestDataGrid/helpers/columns.js +236 -84
  57. package/dist/components/data/SqlRequestDataGrid/index.js +77 -63
  58. package/dist/components/data/SqlRequestDataGrid/styles.d.ts +2 -0
  59. package/dist/components/data/SqlRequestDataGrid/styles.js +14 -0
  60. package/dist/components/data/SqlRequestDataGrid/types.d.ts +13 -3
  61. package/dist/components/data/SqlRequestDataGrid/types.js +1 -0
  62. package/dist/components/data/SqlRequestForeignList/index.d.ts +4 -0
  63. package/dist/components/data/SqlRequestForeignList/index.js +131 -0
  64. package/dist/components/data/SqlRequestForeignList/styles.d.ts +9 -0
  65. package/dist/components/data/SqlRequestForeignList/styles.js +22 -0
  66. package/dist/components/data/SqlRequestForeignList/types.d.ts +22 -0
  67. package/dist/components/data/SqlRequestForeignList/types.js +3 -0
  68. package/dist/components/data/SqlRequestGrid/filters/FiltersSidebar.d.ts +10 -0
  69. package/dist/components/data/SqlRequestGrid/filters/FiltersSidebar.js +51 -0
  70. package/dist/components/data/SqlRequestGrid/filters/styles.d.ts +4 -0
  71. package/dist/components/data/SqlRequestGrid/filters/styles.js +17 -0
  72. package/dist/components/data/SqlRequestGrid/index.d.ts +1 -1
  73. package/dist/components/data/SqlRequestGrid/index.js +139 -49
  74. package/dist/components/data/SqlRequestGrid/styles.d.ts +0 -12
  75. package/dist/components/data/SqlRequestGrid/styles.js +4 -20
  76. package/dist/components/data/SqlRequestGrid/types.d.ts +14 -4
  77. package/dist/components/data/VirtualScroller/index.d.ts +4 -3
  78. package/dist/components/data/VirtualScroller/index.js +15 -5
  79. package/dist/components/data/VirtualScroller/styles.d.ts +4 -2
  80. package/dist/components/data/VirtualScroller/styles.js +9 -6
  81. package/dist/components/data/index.d.ts +1 -2
  82. package/dist/components/data/index.js +1 -2
  83. package/dist/components/forms/AutoTextArea.d.ts +10 -0
  84. package/dist/components/forms/AutoTextArea.js +40 -0
  85. package/dist/components/forms/Button.d.ts +9 -2
  86. package/dist/components/forms/Button.js +13 -7
  87. package/dist/components/forms/Form/Checkbox.d.ts +3 -0
  88. package/dist/components/forms/Form/Checkbox.js +33 -0
  89. package/dist/components/forms/Form/FormGroup.d.ts +9 -0
  90. package/dist/components/forms/Form/FormGroup.js +10 -0
  91. package/dist/components/forms/Form/Input.d.ts +3 -0
  92. package/dist/components/forms/Form/Input.js +33 -0
  93. package/dist/components/forms/Form/Row.d.ts +9 -0
  94. package/dist/components/forms/Form/Row.js +10 -0
  95. package/dist/components/forms/Form/Select.d.ts +18 -0
  96. package/dist/components/forms/Form/Select.js +47 -0
  97. package/dist/components/forms/Form/TextArea.d.ts +4 -0
  98. package/dist/components/forms/Form/TextArea.js +34 -0
  99. package/dist/components/forms/Form/index.d.ts +80 -0
  100. package/dist/components/forms/Form/index.js +29 -0
  101. package/dist/components/forms/Form/styles.d.ts +19 -0
  102. package/dist/components/forms/Form/styles.js +49 -0
  103. package/dist/components/forms/IconButton.d.ts +2 -1
  104. package/dist/components/forms/IconButton.js +12 -12
  105. package/dist/components/forms/NumberInput.d.ts +9 -0
  106. package/dist/components/forms/NumberInput.js +41 -0
  107. package/dist/components/forms/Select.d.ts +5 -6
  108. package/dist/components/forms/Select.js +2 -5
  109. package/dist/components/forms/index.d.ts +4 -0
  110. package/dist/components/forms/index.js +4 -0
  111. package/dist/components/layout/Columns.d.ts +5 -0
  112. package/dist/components/layout/Columns.js +19 -0
  113. package/dist/components/layout/Dropdown/index.d.ts +1 -0
  114. package/dist/components/layout/Dropdown/index.js +24 -3
  115. package/dist/components/layout/Grid/index.d.ts +6 -0
  116. package/dist/components/layout/Grid/index.js +6 -0
  117. package/dist/components/layout/Grid/styles.d.ts +14 -0
  118. package/dist/components/layout/Grid/styles.js +29 -0
  119. package/dist/components/layout/Masonry/index.d.ts +3 -0
  120. package/dist/components/layout/Masonry/index.js +20 -0
  121. package/dist/components/layout/Masonry/styles.d.ts +5 -0
  122. package/dist/components/layout/Masonry/styles.js +17 -0
  123. package/dist/components/layout/index.d.ts +4 -1
  124. package/dist/components/layout/index.js +4 -1
  125. package/dist/components/search/QuickSearchBar.js +6 -0
  126. package/dist/components/ui/Avatar/index.d.ts +10 -0
  127. package/dist/components/ui/Avatar/index.js +52 -0
  128. package/dist/components/ui/Avatar/styles.d.ts +4 -0
  129. package/dist/components/ui/Avatar/styles.js +43 -0
  130. package/dist/components/ui/Card/styles.js +1 -1
  131. package/dist/components/ui/Ellipsis.d.ts +13 -0
  132. package/dist/components/ui/Ellipsis.js +28 -0
  133. package/dist/components/ui/Label.d.ts +9 -0
  134. package/dist/components/ui/Label.js +74 -0
  135. package/dist/components/ui/ToastNotification.d.ts +14 -0
  136. package/dist/components/ui/ToastNotification.js +78 -0
  137. package/dist/components/ui/index.d.ts +3 -0
  138. package/dist/components/ui/index.js +3 -0
  139. package/dist/helpers/index.d.ts +1 -0
  140. package/dist/helpers/index.js +1 -0
  141. package/dist/helpers/numbers.d.ts +3 -0
  142. package/dist/helpers/numbers.js +33 -1
  143. package/dist/helpers/responsive.d.ts +37 -0
  144. package/dist/helpers/responsive.js +57 -0
  145. package/dist/hooks/index.d.ts +5 -0
  146. package/dist/hooks/index.js +5 -0
  147. package/dist/hooks/useContainerMediaQuery.d.ts +17 -0
  148. package/dist/hooks/useContainerMediaQuery.js +10 -0
  149. package/dist/hooks/useMediaQuery.d.ts +17 -0
  150. package/dist/hooks/useMediaQuery.js +11 -0
  151. package/dist/hooks/useMediaQueryForWidth.d.ts +17 -0
  152. package/dist/hooks/useMediaQueryForWidth.js +26 -0
  153. package/dist/hooks/useMutableState.d.ts +2 -0
  154. package/dist/hooks/useMutableState.js +16 -0
  155. package/dist/hooks/useShowArchived.d.ts +6 -0
  156. package/dist/hooks/useShowArchived.js +21 -0
  157. package/dist/index.d.ts +1 -0
  158. package/dist/index.js +1 -0
  159. package/dist/providers/AuthenticationProvider/index.js +4 -3
  160. package/dist/providers/PortalsProvider/styles.js +1 -1
  161. package/dist/providers/ThemeProvider/defaultTheme.js +13 -0
  162. package/dist/providers/ThemeProvider/helpers.d.ts +3 -0
  163. package/dist/providers/ThemeProvider/helpers.js +13 -0
  164. package/dist/providers/ThemeProvider/types.d.ts +2 -1
  165. package/dist/providers/TrackingProvider/hooks.d.ts +1 -0
  166. package/dist/providers/TrackingProvider/hooks.js +15 -0
  167. package/dist/providers/TrackingProvider/index.d.ts +8 -0
  168. package/dist/providers/TrackingProvider/index.js +41 -0
  169. package/dist/providers/UiProviders/index.js +2 -1
  170. package/dist/providers/index.d.ts +2 -0
  171. package/dist/providers/index.js +2 -0
  172. package/dist/services/globalSearch.d.ts +2 -1
  173. package/dist/services/index.d.ts +7 -0
  174. package/dist/services/index.js +20 -0
  175. package/dist/services/requests/generic.d.ts +29 -0
  176. package/dist/services/requests/generic.js +29 -0
  177. package/dist/services/requests/tracking.d.ts +18 -0
  178. package/dist/services/requests/tracking.js +8 -0
  179. package/dist/services/smartQueries.d.ts +51 -0
  180. package/dist/services/smartQueries.js +10 -0
  181. package/dist/services/smartRequests.d.ts +0 -0
  182. package/dist/services/smartRequests.js +1 -0
  183. package/dist/services/types/generic.d.ts +44 -0
  184. package/dist/services/types/generic.js +79 -0
  185. package/dist/services/types/tracking.d.ts +24 -0
  186. package/dist/services/types/tracking.js +47 -0
  187. package/dist/services/updateSqlRequests.d.ts +24 -0
  188. package/dist/services/updateSqlRequests.js +7 -0
  189. package/package.json +1 -1
  190. package/src/components/data/DataGrid/styles.ts +9 -2
  191. package/src/components/forms/NumberInput.tsx +53 -0
  192. package/src/components/forms/index.ts +1 -0
  193. package/src/components/ui/Avatar/styles.ts +61 -61
  194. package/src/components/ui/Label.tsx +90 -90
  195. package/src/providers/TrackingProvider/hooks.ts +14 -14
  196. package/tsconfig.tsbuildinfo +1 -1
  197. package/dist/components/data/AdvancedRequestDataGrid/helpers/advancedRequests.d.ts +0 -14
  198. package/dist/components/data/AdvancedRequestDataGrid/helpers/advancedRequests.js +0 -76
  199. package/dist/components/data/AdvancedRequestDataGrid/helpers/columns.d.ts +0 -22
  200. package/dist/components/data/AdvancedRequestDataGrid/helpers/columns.js +0 -156
  201. package/dist/components/data/AdvancedRequestDataGrid/helpers/index.d.ts +0 -2
  202. package/dist/components/data/AdvancedRequestDataGrid/helpers/index.js +0 -18
  203. package/dist/components/data/AdvancedRequestDataGrid/index.d.ts +0 -2
  204. package/dist/components/data/AdvancedRequestDataGrid/index.js +0 -215
  205. package/dist/components/data/AdvancedRequestDataGrid/types.d.ts +0 -21
  206. package/dist/components/data/DataGrid/DataGridEditableCell.d.ts +0 -2
  207. package/dist/components/data/DataGrid/DataGridEditableCell.js +0 -27
@@ -67,8 +67,13 @@ var SqlRequestDataGridInner = function (_a, ref) {
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
+ var setRowsRef = (0, react_1.useCallback)(function (value) {
71
+ var newRows = typeof value === 'function' ? value(currentRows.current) : value;
72
+ currentRows.current = newRows;
73
+ setRows(newRows);
74
+ }, []);
70
75
  var _e = (0, react_1.useState)(0), start = _e[0], setStart = _e[1];
71
- var _f = (0, react_1.useState)(50), length = _f[0], setLength = _f[1];
76
+ var _f = (0, react_1.useState)(-1), length = _f[0], setLength = _f[1];
72
77
  var _g = (0, react_1.useState)(-1), count = _g[0], setCount = _g[1];
73
78
  var _h = (0, sqlRequests_1.useSqlRequestHandler)(props.type), sqlRequest = _h[0], sqlIdRequest = _h[1], sqlPartialRequest = _h[2];
74
79
  var gridRef = (0, react_1.useRef)(null);
@@ -76,30 +81,31 @@ var SqlRequestDataGridInner = function (_a, ref) {
76
81
  var _k = (0, react_1.useState)(Object.entries((_b = props.initialSorts) !== null && _b !== void 0 ? _b : {}).map(function (_a) {
77
82
  var _b, _c, _d;
78
83
  var columnKey = _a[0], direction = _a[1];
79
- return ({
80
- field: (_c = (_b = props.columns[columnKey].field) === null || _b === void 0 ? void 0 : _b.fieldAlias) !== null && _c !== void 0 ? _c : columnKey,
81
- type: (_d = props.columns[columnKey].type) !== null && _d !== void 0 ? _d : 'text',
84
+ var column = props.columns.find(function (col) { return col.key === columnKey; });
85
+ return {
86
+ field: (_c = (_b = column === null || column === void 0 ? void 0 : column.field) === null || _b === void 0 ? void 0 : _b.fieldAlias) !== null && _c !== void 0 ? _c : columnKey,
87
+ type: (_d = column === null || column === void 0 ? void 0 : column.type) !== null && _d !== void 0 ? _d : 'text',
82
88
  direction: direction.toUpperCase(),
83
- });
89
+ };
84
90
  })), orderBy = _k[0], setOrderBy = _k[1];
85
91
  var _l = (0, react_1.useMemo)(function () {
86
92
  var _a, _b;
87
93
  return [
88
- __spreadArray(__spreadArray([], Object.keys(props.columns), true), ((_a = props.hiddenColumns) !== null && _a !== void 0 ? _a : []), true),
89
- __spreadArray(__spreadArray([], Object.keys(props.columns).filter(function (key) {
90
- return (0, helpers_2.isColumnVisible)(props.columns[key]);
91
- }), true), ((_b = props.hiddenColumns) !== null && _b !== void 0 ? _b : []), true),
94
+ __spreadArray(__spreadArray([], props.columns.filter(function (col) { return !col.ignore; }).map(function (col) { return col.key; }), true), ((_a = props.hiddenColumns) !== null && _a !== void 0 ? _a : []), true),
95
+ __spreadArray(__spreadArray([], props.columns
96
+ .filter(function (col) { return !col.ignore; })
97
+ .filter(helpers_2.isColumnVisible)
98
+ .map(function (col) { return col.key; }), true), ((_b = props.hiddenColumns) !== null && _b !== void 0 ? _b : []), true),
92
99
  ];
93
- }, [props.columns, props.hiddenColumns]), columnsKeys = _l[0], visibleColumnsKeys = _l[1];
100
+ }, [props.columns, props.hiddenColumns]), columns = _l[0], visibleColumnsKeys = _l[1];
94
101
  var columnTypes = (0, react_1.useMemo)(function () {
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'); });
102
+ return visibleColumnsKeys.map(function (key) { var _a, _b; return String((_b = (_a = props.columns.find(function (col) { return col.key === key; })) === null || _a === void 0 ? void 0 : _a.type) !== null && _b !== void 0 ? _b : 'text'); });
96
103
  }, [visibleColumnsKeys, props.columns]);
97
104
  var refresh = (0, react_1.useCallback)(function () {
98
- setRows([]);
105
+ setRowsRef([]);
99
106
  setStart(0);
100
- setLength(50);
101
107
  setCount(-1);
102
- }, []);
108
+ }, [setRowsRef]);
103
109
  var onFiltersChanged = (0, react_1.useCallback)(function (filters) {
104
110
  var newConditions = (0, helpers_1.convertSqlFiltersToConditions)(filters);
105
111
  setConditions(newConditions);
@@ -120,64 +126,74 @@ var SqlRequestDataGridInner = function (_a, ref) {
120
126
  if (conditions === void 0) { conditions = []; }
121
127
  if (orderBy === void 0) { orderBy = []; }
122
128
  if (start === void 0) { start = 0; }
123
- if (length === void 0) { length = 100; }
129
+ if (length === void 0) { length = 0; }
124
130
  if (getCount === void 0) { getCount = false; }
125
- sqlRequest({
126
- columns: columns.includes('Id') ? columns : __spreadArray(__spreadArray([], columns, true), ['Id'], false),
127
- returnColumns: returnColumns.includes('Id')
128
- ? returnColumns
129
- : __spreadArray(__spreadArray([], returnColumns, true), ['Id'], false),
130
- columnTypes: columnTypes.includes('Id')
131
- ? columnTypes
132
- : __spreadArray(__spreadArray([], columnTypes, true), ['Id'], false),
133
- conditions: conditions,
134
- orderBy: orderBy,
135
- start: start,
136
- length: length,
137
- getCount: getCount,
138
- }).then(function (response) {
139
- var _a;
140
- var _b;
141
- if (getCount) {
142
- currentRows.current = Array(response.count).fill(null);
143
- if (getCount)
144
- setCount((_b = response.count) !== null && _b !== void 0 ? _b : 0);
145
- }
146
- var parsedRows = props.parser
147
- ? response.data.map(props.parser)
148
- : response.data;
149
- (_a = currentRows.current).splice.apply(_a, __spreadArray([start, length], parsedRows, false));
150
- setRows(__spreadArray([], currentRows.current, true));
151
- });
131
+ if (length > 0) {
132
+ sqlRequest({
133
+ columns: columns.includes('Id') ? columns : __spreadArray(__spreadArray([], columns, true), ['Id'], false),
134
+ returnColumns: returnColumns.includes('Id')
135
+ ? returnColumns
136
+ : __spreadArray(__spreadArray([], returnColumns, true), ['Id'], false),
137
+ columnTypes: columnTypes.includes('Id')
138
+ ? columnTypes
139
+ : __spreadArray(__spreadArray([], columnTypes, true), ['Id'], false),
140
+ conditions: conditions,
141
+ orderBy: orderBy,
142
+ start: start,
143
+ length: length,
144
+ getCount: getCount,
145
+ }).then(function (response) {
146
+ var _a;
147
+ var _b, _c;
148
+ if (getCount) {
149
+ currentRows.current = Array(response.count).fill(null);
150
+ if (getCount)
151
+ setCount((_b = response.count) !== null && _b !== void 0 ? _b : 0);
152
+ }
153
+ var data = (_c = response.data) !== null && _c !== void 0 ? _c : [];
154
+ var rowsFromData = props.parser
155
+ ? data.map(props.parser)
156
+ : data;
157
+ var rowsToReplace = currentRows.current
158
+ .slice(start, start + length)
159
+ .map(function (row, i) { return (!row ? rowsFromData[i] : row); });
160
+ (_a = currentRows.current).splice.apply(_a, __spreadArray([start, length], rowsToReplace, false));
161
+ setRowsRef(__spreadArray([], currentRows.current, true));
162
+ });
163
+ }
152
164
  }, 100, {
153
165
  leading: true,
154
166
  trailing: true,
155
167
  }));
156
168
  var loadFilterValues = (0, react_1.useCallback)(function (columnKey) {
157
169
  var _a, _b, _c, _d, _e, _f, _g, _h;
170
+ var column = props.columns.find(function (col) { return col.key === columnKey; });
171
+ if (!column) {
172
+ return Promise.resolve([]);
173
+ }
158
174
  return sqlRequest({
159
- columns: columnsKeys,
175
+ columns: columns,
160
176
  returnColumns: [columnKey],
161
- columnTypes: [(_a = props.columns[columnKey].type) !== null && _a !== void 0 ? _a : 'text'],
177
+ columnTypes: [(_a = column.type) !== null && _a !== void 0 ? _a : 'text'],
162
178
  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; }),
163
179
  orderBy: [
164
180
  {
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
- type: (_h = props.columns[columnKey].type) !== null && _h !== void 0 ? _h : 'text',
181
+ field: (_g = (_e = (_c = column.filterField) !== null && _c !== void 0 ? _c : (_d = column.field) === null || _d === void 0 ? void 0 : _d.fieldAlias) !== null && _e !== void 0 ? _e : (_f = column.field) === null || _f === void 0 ? void 0 : _f.fieldName) !== null && _g !== void 0 ? _g : columnKey,
182
+ type: (_h = column.type) !== null && _h !== void 0 ? _h : 'text',
167
183
  direction: 'ASC',
168
184
  },
169
185
  ],
170
186
  getCount: false,
171
187
  unique: true,
172
188
  }).then(function (response) {
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; });
189
+ return response.data.map(function (row) { var _a, _b, _c; return (_c = (_b = (_a = column.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
190
  });
175
- }, [columnsKeys, conditions, props.columns, props.conditions, sqlRequest]);
191
+ }, [columns, conditions, props.columns, props.conditions, sqlRequest]);
176
192
  (0, react_1.useEffect)(function () {
177
193
  var _a, _b;
178
- if (!rows.length ||
194
+ if ((!rows.length && count < 0) ||
179
195
  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);
196
+ loadRows.current(columns, 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
197
  }
182
198
  }, [
183
199
  props.columns,
@@ -187,14 +203,14 @@ var SqlRequestDataGridInner = function (_a, ref) {
187
203
  length,
188
204
  count,
189
205
  props.conditions,
190
- columnsKeys,
206
+ columns,
191
207
  visibleColumnsKeys,
192
208
  rows,
193
209
  ]);
194
210
  var loadCopyRows = (0, react_1.useCallback)(function () {
195
211
  var _a, _b;
196
212
  return sqlRequest({
197
- columns: columnsKeys,
213
+ columns: columns,
198
214
  returnColumns: visibleColumnsKeys,
199
215
  columnTypes: columnTypes,
200
216
  conditions: __spreadArray(__spreadArray([], ((_a = props.conditions) !== null && _a !== void 0 ? _a : []), true), ((_b = Object.values(conditions)) !== null && _b !== void 0 ? _b : []), true),
@@ -206,7 +222,7 @@ var SqlRequestDataGridInner = function (_a, ref) {
206
222
  });
207
223
  }, [
208
224
  sqlRequest,
209
- columnsKeys,
225
+ columns,
210
226
  visibleColumnsKeys,
211
227
  columnTypes,
212
228
  props.conditions,
@@ -218,9 +234,7 @@ var SqlRequestDataGridInner = function (_a, ref) {
218
234
  var loadAllIds = (0, react_1.useCallback)(function () {
219
235
  var _a, _b;
220
236
  return sqlIdRequest({
221
- columns: columnsKeys.includes('Id')
222
- ? columnsKeys
223
- : __spreadArray(__spreadArray([], columnsKeys, true), ['Id'], false),
237
+ columns: columns.includes('Id') ? columns : __spreadArray(__spreadArray([], columns, true), ['Id'], false),
224
238
  returnColumns: ['Id'],
225
239
  columnTypes: ['text'],
226
240
  conditions: __spreadArray(__spreadArray([], ((_a = props.conditions) !== null && _a !== void 0 ? _a : []), true), ((_b = Object.values(conditions)) !== null && _b !== void 0 ? _b : []), true),
@@ -228,7 +242,7 @@ var SqlRequestDataGridInner = function (_a, ref) {
228
242
  start: 0,
229
243
  length: count,
230
244
  }).then(function (response) { return response.data.map(function (row) { return row['Id']; }); });
231
- }, [columnsKeys, conditions, orderBy, props.conditions, sqlIdRequest, count]);
245
+ }, [columns, conditions, orderBy, props.conditions, sqlIdRequest, count]);
232
246
  var onVisibleRowsChanged = (0, react_1.useCallback)(function (newStart, newLength) {
233
247
  if (newStart !== start || newLength !== length) {
234
248
  setStart(newStart);
@@ -249,9 +263,7 @@ var SqlRequestDataGridInner = function (_a, ref) {
249
263
  }
250
264
  else {
251
265
  sqlPartialRequest({
252
- columns: columnsKeys.includes('Id')
253
- ? columnsKeys
254
- : __spreadArray(__spreadArray([], columnsKeys, true), ['Id'], false),
266
+ columns: columns.includes('Id') ? columns : __spreadArray(__spreadArray([], columns, true), ['Id'], false),
255
267
  returnColumns: [],
256
268
  columnTypes: [],
257
269
  totalColumns: footers,
@@ -260,7 +272,7 @@ var SqlRequestDataGridInner = function (_a, ref) {
260
272
  }).then(function (response) { var _a; return setFooterData((_a = response.totals) !== null && _a !== void 0 ? _a : {}); });
261
273
  }
262
274
  }, [
263
- columnsKeys,
275
+ columns,
264
276
  conditions,
265
277
  footers,
266
278
  orderBy,
@@ -276,7 +288,7 @@ var SqlRequestDataGridInner = function (_a, ref) {
276
288
  : Object.entries(footers).reduce(function (acc, _a) {
277
289
  var _b, _c;
278
290
  var columnKey = _a[0], footerKey = _a[1];
279
- var column = props.columns[columnKey];
291
+ var column = props.columns.find(function (col) { return col.key === columnKey; });
280
292
  var footerFunc = typeof (column === null || column === void 0 ? void 0 : column.footer) === 'function'
281
293
  ? column.footer
282
294
  : (_b = column === null || column === void 0 ? void 0 : column.footer) === null || _b === void 0 ? void 0 : _b[footerKey];
@@ -295,7 +307,9 @@ var SqlRequestDataGridInner = function (_a, ref) {
295
307
  footers: footers,
296
308
  setFooters: setFooters,
297
309
  footerFunctions: footerFunctions,
298
- }); }, [footers, setFooters, footerFunctions]);
310
+ rows: rows,
311
+ setRows: setRowsRef,
312
+ }); }, [footerFunctions, footers, rows, setRowsRef]);
299
313
  (0, react_1.useImperativeHandle)(ref, function () {
300
314
  var _a, _b;
301
315
  return ({
@@ -0,0 +1,2 @@
1
+ export declare const SqlImageWrapper: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>> & string;
2
+ export declare const SqlImage: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").ImgHTMLAttributes<HTMLImageElement>, HTMLImageElement>, never>> & string;
@@ -0,0 +1,14 @@
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.SqlImage = exports.SqlImageWrapper = void 0;
11
+ var styled_components_1 = __importDefault(require("styled-components"));
12
+ exports.SqlImageWrapper = styled_components_1.default.div(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n display: flex;\n justify-content: center;\n align-items: center;\n width: 100%;\n height: 100%;\n"], ["\n display: flex;\n justify-content: center;\n align-items: center;\n width: 100%;\n height: 100%;\n"])));
13
+ exports.SqlImage = styled_components_1.default.img(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n max-width: 100%;\n height: 100%;\n object-fit: contain;\n"], ["\n max-width: 100%;\n height: 100%;\n object-fit: contain;\n"])));
14
+ var templateObject_1, templateObject_2;
@@ -1,16 +1,26 @@
1
1
  import { ConditionDTO, FieldDTO, OrderByDTO, SqlRequestRow } from '../../../services/sqlRequests';
2
- import { DataGridColumn, DataGridFilter, DataGridFilterType, DataGridProps } from '../DataGrid/types';
2
+ import { DataGridCheckboxColumn, DataGridDateColumn, DataGridFilter, DataGridFilterType, DataGridNumberColumn, DataGridProps, DataGridTextColumn, EditableDataGridColumn } from '../DataGrid/types';
3
+ import { SqlRequestForeignListProps } from '../SqlRequestForeignList/types';
3
4
  export type SqlRequestDataGridFilter<T extends DataGridFilterType = DataGridFilterType> = DataGridFilter<T> & {
4
5
  field?: FieldDTO;
5
6
  };
6
7
  export type SqlRequestDataGridFilters = Record<string, SqlRequestDataGridFilter>;
7
- export type SqlRequestDataGridColumn<R> = DataGridColumn<R> & {
8
+ export type SqlRequestDataGridCommonProps = {
8
9
  filter?: SqlRequestDataGridFilter;
9
10
  field?: FieldDTO;
10
11
  filterField?: string;
11
12
  sortField?: string;
13
+ ignore?: boolean;
12
14
  };
13
- export type SqlRequestDataGridColumns<R> = Record<string, SqlRequestDataGridColumn<R>>;
15
+ export type SqlRequestDataGridTextColumn<R> = DataGridTextColumn<R> & SqlRequestDataGridCommonProps;
16
+ export type SqlRequestDataGridNumberColumn<R> = DataGridNumberColumn<R> & SqlRequestDataGridCommonProps;
17
+ export type SqlRequestDataGridCheckboxColumn<R> = DataGridCheckboxColumn<R> & SqlRequestDataGridCommonProps;
18
+ export type SqlRequestDataGridDateColumn<R> = DataGridDateColumn<R> & SqlRequestDataGridCommonProps;
19
+ export type SqlRequestDataGridForeignListColumn<R, T> = {
20
+ type: 'foreignList';
21
+ } & SqlRequestForeignListProps<T> & EditableDataGridColumn<R, T> & SqlRequestDataGridCommonProps;
22
+ export type SqlRequestDataGridColumn<R> = SqlRequestDataGridTextColumn<R> | SqlRequestDataGridNumberColumn<R> | SqlRequestDataGridCheckboxColumn<R> | SqlRequestDataGridDateColumn<R> | SqlRequestDataGridForeignListColumn<R, any>;
23
+ export type SqlRequestDataGridColumns<R> = SqlRequestDataGridColumn<R>[];
14
24
  export type SqlRequestDataGridProps<R> = Omit<DataGridProps<R>, 'rows' | 'columns'> & {
15
25
  columns: SqlRequestDataGridColumns<R>;
16
26
  hiddenColumns?: string[];
@@ -1,2 +1,3 @@
1
1
  "use strict";
2
+ /* eslint-disable @typescript-eslint/no-explicit-any */
2
3
  Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,4 @@
1
+ import { ForwardedRef } from 'react';
2
+ import { SqlRequestForeignListProps } from './types';
3
+ export declare const SqlRequestForeignListInner: <T extends Record<string, any>>({ requestName, idColumn, columns, initialValue, onItemChanged, onIdChanged, onClosed, onBlur, itemTemplate, valueTemplate, rowHeight, maxRows, orderBy, conditions, }: SqlRequestForeignListProps<T>, ref: ForwardedRef<HTMLDivElement>) => import("react/jsx-runtime").JSX.Element;
4
+ export declare const SqlRequestForeignList: <T extends Record<string, any>>(props: SqlRequestForeignListProps<T> & import("react").RefAttributes<HTMLDivElement>) => import("react").JSX.Element | null;
@@ -0,0 +1,131 @@
1
+ "use strict";
2
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
3
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
4
+ if (ar || !(i in from)) {
5
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
6
+ ar[i] = from[i];
7
+ }
8
+ }
9
+ return to.concat(ar || Array.prototype.slice.call(from));
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.SqlRequestForeignList = exports.SqlRequestForeignListInner = void 0;
13
+ var jsx_runtime_1 = require("react/jsx-runtime");
14
+ /* eslint-disable @typescript-eslint/no-explicit-any */
15
+ var services_1 = require("../../../services");
16
+ var react_1 = require("react");
17
+ var styles_1 = require("./styles");
18
+ var Icons_1 = require("../../../Icons");
19
+ var layout_1 = require("../../layout");
20
+ var VirtualScroller_1 = require("../VirtualScroller");
21
+ var lodash_1 = require("lodash");
22
+ var DEFAULT_ROW_HEIGHT = 24;
23
+ var createValueTemplate = function (ValueTemplate, rowHeight) {
24
+ if (rowHeight === void 0) { rowHeight = DEFAULT_ROW_HEIGHT; }
25
+ return function (_a) {
26
+ var item = _a.item;
27
+ return ((0, jsx_runtime_1.jsx)(styles_1.SqlRequestForeignListValue, { "$rowHeight": rowHeight, children: (0, jsx_runtime_1.jsx)(ValueTemplate, { item: item, index: 0 }) }));
28
+ };
29
+ };
30
+ var createItemTemplate = function (ItemTemplate, rowHeight) {
31
+ if (rowHeight === void 0) { rowHeight = DEFAULT_ROW_HEIGHT; }
32
+ return function (_a) {
33
+ var item = _a.item, index = _a.index, onItemClick = _a.onClick;
34
+ var onClick = (0, react_1.useCallback)(function (e, item, onItemClick) {
35
+ e.preventDefault();
36
+ e.stopPropagation();
37
+ onItemClick === null || onItemClick === void 0 ? void 0 : onItemClick(item);
38
+ }, []);
39
+ return ((0, jsx_runtime_1.jsx)(styles_1.SqlRequestForeignListItem, { "$rowHeight": rowHeight, onClick: function (e) { return onClick(e, item, onItemClick); }, children: (0, jsx_runtime_1.jsx)(ItemTemplate, { item: item, index: index }) }));
40
+ };
41
+ };
42
+ var SqlRequestForeignListInner = function (_a, ref) {
43
+ var requestName = _a.requestName, idColumn = _a.idColumn, _b = _a.columns, columns = _b === void 0 ? [] : _b, _c = _a.initialValue, initialValue = _c === void 0 ? null : _c, onItemChanged = _a.onItemChanged, onIdChanged = _a.onIdChanged, onClosed = _a.onClosed, onBlur = _a.onBlur, itemTemplate = _a.itemTemplate, valueTemplate = _a.valueTemplate, _d = _a.rowHeight, rowHeight = _d === void 0 ? DEFAULT_ROW_HEIGHT : _d, _e = _a.maxRows, maxRows = _e === void 0 ? 10 : _e, _f = _a.orderBy, orderBy = _f === void 0 ? [] : _f, _g = _a.conditions, conditions = _g === void 0 ? [] : _g;
44
+ var _h = (0, react_1.useState)(false), opened = _h[0], setOpened = _h[1];
45
+ var _j = (0, react_1.useState)(null), rect = _j[0], setRect = _j[1];
46
+ var currentRows = (0, react_1.useRef)([]);
47
+ var _k = (0, react_1.useState)([]), rows = _k[0], setRows = _k[1];
48
+ var _l = (0, react_1.useState)(0), start = _l[0], setStart = _l[1];
49
+ var _m = (0, react_1.useState)(-1), length = _m[0], setLength = _m[1];
50
+ var _o = (0, react_1.useState)(-1), count = _o[0], setCount = _o[1];
51
+ var _p = (0, react_1.useState)(initialValue), selectedItem = _p[0], setSelectedItem = _p[1];
52
+ // Create an internal ref for the component to use
53
+ var internalRef = (0, react_1.useRef)(null);
54
+ // Forward the ref while linking it to our internal ref
55
+ (0, react_1.useImperativeHandle)(ref, function () { return internalRef.current; }, []);
56
+ var sqlRequest = (0, services_1.useSqlRequestHandler)(requestName)[0];
57
+ var open = (0, react_1.useCallback)(function () {
58
+ if (internalRef.current) {
59
+ var parentRect = internalRef.current.getBoundingClientRect();
60
+ setRect(new DOMRect(0, 0, parentRect.width, parentRect.height));
61
+ setOpened(true);
62
+ }
63
+ }, []);
64
+ var close = (0, react_1.useCallback)(function () {
65
+ setOpened(false);
66
+ onClosed === null || onClosed === void 0 ? void 0 : onClosed();
67
+ }, [onClosed]);
68
+ var onClick = (0, react_1.useCallback)(function (item) {
69
+ var _a;
70
+ setSelectedItem(item);
71
+ onItemChanged === null || onItemChanged === void 0 ? void 0 : onItemChanged(item);
72
+ onIdChanged === null || onIdChanged === void 0 ? void 0 : onIdChanged((_a = item === null || item === void 0 ? void 0 : item[idColumn]) !== null && _a !== void 0 ? _a : null);
73
+ close();
74
+ }, [close, idColumn, onIdChanged, onItemChanged]);
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
+ if (length > 0) {
82
+ sqlRequest({
83
+ columns: columns.includes('Id') ? columns : __spreadArray(__spreadArray([], columns, true), ['Id'], false),
84
+ returnColumns: returnColumns.includes('Id')
85
+ ? returnColumns
86
+ : __spreadArray(__spreadArray([], returnColumns, true), ['Id'], false),
87
+ conditions: conditions,
88
+ orderBy: orderBy,
89
+ start: start,
90
+ length: length,
91
+ getCount: getCount,
92
+ }).then(function (response) {
93
+ var _a;
94
+ var _b, _c;
95
+ if (getCount) {
96
+ currentRows.current = Array(response.count).fill(null);
97
+ if (getCount)
98
+ setCount((_b = response.count) !== null && _b !== void 0 ? _b : 0);
99
+ }
100
+ var data = (_c = response.data) !== null && _c !== void 0 ? _c : [];
101
+ var parsedRows = data;
102
+ (_a = currentRows.current).splice.apply(_a, __spreadArray([start, length], parsedRows, false));
103
+ setRows(__spreadArray([], currentRows.current, true));
104
+ });
105
+ }
106
+ }, 100, {
107
+ leading: true,
108
+ trailing: true,
109
+ }));
110
+ (0, react_1.useEffect)(function () {
111
+ if ((!rows.length && count < 0) ||
112
+ rows.slice(start, start + length).some(function (row) { return row === null; })) {
113
+ loadRows.current(columns, columns, conditions, orderBy, start, length, count < 0);
114
+ }
115
+ }, [start, length, count, conditions, rows, orderBy, columns]);
116
+ var onVisibleRowsChanged = (0, react_1.useCallback)(function (newStart, newLength) {
117
+ if (newStart !== start || newLength !== length) {
118
+ setStart(newStart);
119
+ setLength(newLength);
120
+ }
121
+ }, [length, start]);
122
+ var ItemTemplate = (0, react_1.useMemo)(function () { return createItemTemplate(itemTemplate, rowHeight); }, [itemTemplate, rowHeight]);
123
+ var ValueTemplate = (0, react_1.useMemo)(function () { return createValueTemplate(valueTemplate !== null && valueTemplate !== void 0 ? valueTemplate : itemTemplate, rowHeight); }, [itemTemplate, rowHeight, valueTemplate]);
124
+ return ((0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, { children: (0, jsx_runtime_1.jsxs)(styles_1.SqlRequestForeignListInput, { tabIndex: 0, ref: internalRef, onClick: open, onBlur: onBlur, children: [(0, jsx_runtime_1.jsx)(ValueTemplate, { item: selectedItem, index: 0 }), (0, jsx_runtime_1.jsx)(Icons_1.ChevronDownIcon, {}), opened && rect && ((0, jsx_runtime_1.jsx)(layout_1.Dropdown, { "$height": [Math.min(maxRows, rows.length) * rowHeight, 300], "$width": rect.width, "$sourceRect": rect, onClose: close, usePortal: false, children: (0, jsx_runtime_1.jsx)(VirtualScroller_1.VirtualScroller, { gridTemplateColumns: '1fr', items: rows, itemTemplate: ItemTemplate, rowHeightInPx: rowHeight, itemProps: function (item, index) { return ({
125
+ item: item,
126
+ onClick: onClick,
127
+ index: index,
128
+ }); }, onRangeChanged: onVisibleRowsChanged }) }))] }) }));
129
+ };
130
+ exports.SqlRequestForeignListInner = SqlRequestForeignListInner;
131
+ exports.SqlRequestForeignList = (0, react_1.forwardRef)(exports.SqlRequestForeignListInner);
@@ -0,0 +1,9 @@
1
+ export declare const SqlRequestForeignListInput: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components/dist/types").Substitute<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {
2
+ $readOnly?: boolean;
3
+ }>> & string;
4
+ export declare const SqlRequestForeignListValue: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components/dist/types").Substitute<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {
5
+ $rowHeight: number;
6
+ }>> & string;
7
+ export declare const SqlRequestForeignListItem: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components/dist/types").Substitute<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {
8
+ $rowHeight: number;
9
+ }>> & string;
@@ -0,0 +1,22 @@
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.SqlRequestForeignListItem = exports.SqlRequestForeignListValue = exports.SqlRequestForeignListInput = void 0;
11
+ var styles_1 = require("../../forms/Form/styles");
12
+ var styled_components_1 = __importDefault(require("styled-components"));
13
+ exports.SqlRequestForeignListInput = styled_components_1.default.div(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n ", "\n\n padding: 0;\n position: relative;\n cursor: pointer;\n background-color: var(--color-neutral-0);\n\n & > svg {\n position: absolute;\n right: var(--space-2);\n top: 50%;\n transform: translateY(-50%);\n pointer-events: none;\n width: var(--space-4);\n height: var(--space-4);\n fill: var(--color-neutral-900);\n }\n"], ["\n ", "\n\n padding: 0;\n position: relative;\n cursor: pointer;\n background-color: var(--color-neutral-0);\n\n & > svg {\n position: absolute;\n right: var(--space-2);\n top: 50%;\n transform: translateY(-50%);\n pointer-events: none;\n width: var(--space-4);\n height: var(--space-4);\n fill: var(--color-neutral-900);\n }\n"])), styles_1.inputCss);
14
+ exports.SqlRequestForeignListValue = styled_components_1.default.div(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n display: flex;\n align-items: center;\n padding: 0 var(--space-2);\n height: ", "px;\n"], ["\n display: flex;\n align-items: center;\n padding: 0 var(--space-2);\n height: ", "px;\n"])), function (_a) {
15
+ var $rowHeight = _a.$rowHeight;
16
+ return $rowHeight;
17
+ });
18
+ exports.SqlRequestForeignListItem = styled_components_1.default.div(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n display: flex;\n align-items: center;\n padding: 0 var(--space-2);\n cursor: pointer;\n height: ", "px;\n overflow: hidden;\n box-sizing: border-box;\n\n &:hover {\n background-color: var(--color-primary-300);\n }\n"], ["\n display: flex;\n align-items: center;\n padding: 0 var(--space-2);\n cursor: pointer;\n height: ", "px;\n overflow: hidden;\n box-sizing: border-box;\n\n &:hover {\n background-color: var(--color-primary-300);\n }\n"])), function (_a) {
19
+ var $rowHeight = _a.$rowHeight;
20
+ return $rowHeight;
21
+ });
22
+ var templateObject_1, templateObject_2, templateObject_3;
@@ -0,0 +1,22 @@
1
+ import { ConditionDTO, OrderByDTO } from '../../../services';
2
+ import { VirtualScrollerTemplateFC } from '../VirtualScroller/types';
3
+ export type SqlRequestForeignListProps<T> = {
4
+ requestName: string;
5
+ idColumn: string;
6
+ columns: string[];
7
+ initialValue?: T | null;
8
+ onIdChanged?: (value: string | null) => void;
9
+ onItemChanged?: (value: T | null) => void;
10
+ onClosed?: () => void;
11
+ onBlur?: () => void;
12
+ valueTemplate?: VirtualScrollerTemplateFC<T, SqlRequestForeignListItemProps<T>>;
13
+ itemTemplate: VirtualScrollerTemplateFC<T, SqlRequestForeignListItemProps<T>>;
14
+ rowHeight?: number;
15
+ maxRows?: number;
16
+ orderBy?: OrderByDTO[];
17
+ conditions?: ConditionDTO[];
18
+ };
19
+ export type SqlRequestForeignListItemProps<T> = {
20
+ onClick?: (item: T | null) => void;
21
+ };
22
+ export type SqlRequestForeignListItemFC<T> = VirtualScrollerTemplateFC<T, SqlRequestForeignListItemProps<T>>;
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ /* eslint-disable @typescript-eslint/no-explicit-any */
3
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,10 @@
1
+ import { SqlRequestGridProps } from '../types';
2
+ import { DataGridContext } from '../../DataGrid/types';
3
+ type FiltersSidebarProps<R, P extends object = {}> = {
4
+ props: SqlRequestGridProps<R, P>;
5
+ context: DataGridContext<R>;
6
+ onClose?: () => void;
7
+ onClearFilters?: () => void;
8
+ };
9
+ export declare const FiltersSidebar: <R, P extends object = {}>({ props, context, onClose, onClearFilters, }: FiltersSidebarProps<R, P>) => import("react/jsx-runtime").JSX.Element;
10
+ export {};
@@ -0,0 +1,51 @@
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
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.FiltersSidebar = void 0;
27
+ var jsx_runtime_1 = require("react/jsx-runtime");
28
+ var styles = __importStar(require("./styles"));
29
+ var Icons_1 = require("../../../../Icons");
30
+ var react_1 = require("react");
31
+ var DataGridFilterMenu_1 = require("../../DataGrid/DataGridFilterMenu");
32
+ var forms_1 = require("../../../forms");
33
+ // eslint-disable-next-line @typescript-eslint/no-empty-object-type
34
+ var FiltersSidebar = function (_a) {
35
+ var props = _a.props, context = _a.context, onClose = _a.onClose, onClearFilters = _a.onClearFilters;
36
+ var _b = (0, react_1.useState)(null), columnKey = _b[0], setColumnKey = _b[1];
37
+ var column = columnKey
38
+ ? props.fields.find(function (field) {
39
+ return field.key === columnKey && !!field.filter;
40
+ })
41
+ : null;
42
+ var visible = !!(columnKey && column);
43
+ var stopPropagation = (0, react_1.useCallback)(function (e) {
44
+ e.stopPropagation();
45
+ }, []);
46
+ var onFilterClick = (0, react_1.useCallback)(function (columnKey) {
47
+ setColumnKey(columnKey);
48
+ }, []);
49
+ return ((0, jsx_runtime_1.jsx)(styles.Backdrop, { onClick: onClose, children: (0, jsx_runtime_1.jsx)(styles.FiltersSidebarContainer, { onClick: stopPropagation, children: visible ? ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsxs)(styles.FiltersSidebarHeader, { children: [(0, jsx_runtime_1.jsx)(forms_1.IconButton, { rounded: true, bordered: false, icon: Icons_1.AngleLeftIcon, color: "neutral", onClick: function () { return onFilterClick(null); } }), (0, jsx_runtime_1.jsx)("h3", { children: column.name }), (0, jsx_runtime_1.jsx)(forms_1.IconButton, { rounded: true, bordered: false, icon: Icons_1.XMarkIcon, color: "neutral", onClick: onClose })] }), (0, jsx_runtime_1.jsx)(DataGridFilterMenu_1.DataGridFilterMenu, { contextMenu: false, column: column, context: context, showTotalButton: false })] })) : ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsxs)(styles.FiltersSidebarHeader, { children: [(0, jsx_runtime_1.jsx)("h3", { children: "Filtres" }), (0, jsx_runtime_1.jsx)(forms_1.IconButton, { rounded: true, bordered: false, icon: Icons_1.FilterSlashIcon, color: "danger", onClick: onClearFilters }), (0, jsx_runtime_1.jsx)(forms_1.IconButton, { rounded: true, bordered: false, icon: Icons_1.XMarkIcon, color: "neutral", onClick: onClose })] }), props.fields.map(function (field) { return ((0, jsx_runtime_1.jsxs)(styles.FiltersSidebarFilter, { onClick: function () { return onFilterClick(field.key); }, children: [field.name, (0, jsx_runtime_1.jsx)(Icons_1.AngleRightIcon, {})] }, field.key)); })] })) }) }));
50
+ };
51
+ exports.FiltersSidebar = FiltersSidebar;
@@ -0,0 +1,4 @@
1
+ export declare const FiltersSidebarContainer: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>> & string;
2
+ export declare const FiltersSidebarHeader: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>> & string;
3
+ export declare const FiltersSidebarFilter: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>> & string;
4
+ export declare const Backdrop: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>> & string;
@@ -0,0 +1,17 @@
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.Backdrop = exports.FiltersSidebarFilter = exports.FiltersSidebarHeader = exports.FiltersSidebarContainer = void 0;
11
+ var styles_1 = require("../../../ui/ContextMenu/styles");
12
+ var styled_components_1 = __importDefault(require("styled-components"));
13
+ exports.FiltersSidebarContainer = styled_components_1.default.div(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n position: absolute;\n left: 0;\n top: 0;\n bottom: 0;\n width: 100%;\n max-width: var(--space-96);\n border-radius: var(--rounded-none);\n padding: 0;\n z-index: 1;\n overflow-y: auto;\n box-sizing: border-box;\n background-color: var(--color-neutral-50);\n border-right: 1px solid var(--color-neutral-300);\n box-shadow: var(--shadow-sm);\n\n & > ", " {\n position: relative;\n background: none;\n padding: var(--space-2) 0;\n\n ", " {\n background: none;\n /* height: var(--size-6); */\n padding: var(--space-2) var(--space-4);\n }\n\n ", " {\n margin: var(--space-2) 0;\n }\n }\n"], ["\n position: absolute;\n left: 0;\n top: 0;\n bottom: 0;\n width: 100%;\n max-width: var(--space-96);\n border-radius: var(--rounded-none);\n padding: 0;\n z-index: 1;\n overflow-y: auto;\n box-sizing: border-box;\n background-color: var(--color-neutral-50);\n border-right: 1px solid var(--color-neutral-300);\n box-shadow: var(--shadow-sm);\n\n & > ", " {\n position: relative;\n background: none;\n padding: var(--space-2) 0;\n\n ", " {\n background: none;\n /* height: var(--size-6); */\n padding: var(--space-2) var(--space-4);\n }\n\n ", " {\n margin: var(--space-2) 0;\n }\n }\n"])), styles_1.MenuContainer, styles_1.MenuItemContainer, styles_1.Divider);
14
+ exports.FiltersSidebarHeader = styled_components_1.default.div(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n position: sticky;\n top: 0;\n z-index: 1;\n background-color: var(--color-neutral-50);\n\n display: flex;\n justify-content: space-between;\n align-items: center;\n gap: var(--space-4);\n padding: var(--space-2);\n\n padding-bottom: var(--space-2);\n border-bottom: 1px solid var(--color-neutral-300);\n\n h3 {\n margin: 0;\n margin-right: auto;\n }\n"], ["\n position: sticky;\n top: 0;\n z-index: 1;\n background-color: var(--color-neutral-50);\n\n display: flex;\n justify-content: space-between;\n align-items: center;\n gap: var(--space-4);\n padding: var(--space-2);\n\n padding-bottom: var(--space-2);\n border-bottom: 1px solid var(--color-neutral-300);\n\n h3 {\n margin: 0;\n margin-right: auto;\n }\n"])));
15
+ exports.FiltersSidebarFilter = styled_components_1.default.div(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n display: flex;\n align-items: center;\n padding: var(--space-4) var(--space-2);\n border-bottom: 1px solid var(--color-neutral-300);\n cursor: pointer;\n\n &:hover {\n background-color: var(--color-neutral-100);\n }\n svg {\n margin-left: auto;\n width: var(--space-4);\n height: var(--space-4);\n }\n"], ["\n display: flex;\n align-items: center;\n padding: var(--space-4) var(--space-2);\n border-bottom: 1px solid var(--color-neutral-300);\n cursor: pointer;\n\n &:hover {\n background-color: var(--color-neutral-100);\n }\n svg {\n margin-left: auto;\n width: var(--space-4);\n height: var(--space-4);\n }\n"])));
16
+ exports.Backdrop = styled_components_1.default.div(templateObject_4 || (templateObject_4 = __makeTemplateObject(["\n position: sticky;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n z-index: 1;\n background-color: rgba(0, 0, 0, 0.5);\n"], ["\n position: sticky;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n z-index: 1;\n background-color: rgba(0, 0, 0, 0.5);\n"])));
17
+ var templateObject_1, templateObject_2, templateObject_3, templateObject_4;
@@ -1,4 +1,4 @@
1
1
  import { ForwardedRef } from 'react';
2
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;
3
+ export declare const SqlRequestGridInner: <R, P extends object = {}>(allProps: SqlRequestGridProps<R, P>, ref: ForwardedRef<SqlRequestGridRefProps>) => import("react/jsx-runtime").JSX.Element;
4
4
  export declare const SqlRequestGrid: <R, P extends object = {}>(props: SqlRequestGridProps<R, P> & import("react").RefAttributes<SqlRequestGridRefProps>) => import("react").JSX.Element | null;