@addev-be/ui 0.17.2 → 0.17.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (264) hide show
  1. package/assets/icons/arrow-down-1-9.svg +1 -1
  2. package/assets/icons/arrow-down-a-z.svg +1 -1
  3. package/assets/icons/arrow-up-z-a.svg +1 -1
  4. package/assets/icons/check.svg +1 -1
  5. package/assets/icons/circle-check.svg +1 -1
  6. package/assets/icons/down.svg +1 -1
  7. package/assets/icons/filter-full.svg +1 -1
  8. package/assets/icons/filter.svg +1 -1
  9. package/assets/icons/hashtag.svg +1 -1
  10. package/assets/icons/image-slash.svg +1 -1
  11. package/assets/icons/left.svg +1 -1
  12. package/assets/icons/magnifier.svg +1 -1
  13. package/assets/icons/phone.svg +1 -1
  14. package/assets/icons/right.svg +1 -1
  15. package/assets/icons/sort-calendar-ascending.svg +5 -5
  16. package/assets/icons/spinner-third.svg +1 -1
  17. package/assets/icons/table-columns.svg +1 -1
  18. package/assets/icons/table-footer-slash.svg +4 -4
  19. package/assets/icons/table-footer.svg +3 -3
  20. package/assets/icons/table.svg +1 -1
  21. package/assets/icons/up.svg +1 -1
  22. package/assets/icons/user-tie.svg +1 -1
  23. package/assets/icons/x-bar.svg +3 -3
  24. package/dist/components/data/DataGrid/styles.d.ts +1 -1
  25. package/dist/components/data/DataGrid/styles.js +4 -4
  26. package/dist/components/forms/Form/Checkbox.d.ts +2 -2
  27. package/dist/components/forms/Form/Checkbox.js +2 -2
  28. package/dist/components/forms/Form/Input.d.ts +2 -2
  29. package/dist/components/forms/Form/Input.js +3 -2
  30. package/dist/components/forms/Form/Row.d.ts +9 -0
  31. package/dist/components/forms/Form/Row.js +10 -0
  32. package/dist/components/forms/Form/Select.d.ts +1 -0
  33. package/dist/components/forms/Form/Select.js +5 -4
  34. package/dist/components/forms/Form/TextArea.d.ts +2 -2
  35. package/dist/components/forms/Form/TextArea.js +3 -2
  36. package/dist/components/forms/Form/index.d.ts +22 -8
  37. package/dist/components/forms/Form/index.js +6 -1
  38. package/dist/components/forms/Form/styles.d.ts +9 -4
  39. package/dist/components/forms/Form/styles.js +13 -11
  40. package/dist/components/forms/NumberInput.d.ts +9 -0
  41. package/dist/components/forms/NumberInput.js +41 -0
  42. package/dist/components/forms/index.d.ts +2 -1
  43. package/dist/components/forms/index.js +2 -1
  44. package/dist/components/ui/ToastNotification.d.ts +14 -0
  45. package/dist/components/ui/ToastNotification.js +78 -0
  46. package/dist/hooks/index.d.ts +1 -0
  47. package/dist/hooks/index.js +1 -0
  48. package/dist/hooks/useMutableState.d.ts +2 -0
  49. package/dist/hooks/useMutableState.js +16 -0
  50. package/dist/poppins-700.woff2 +0 -0
  51. package/package.json +1 -1
  52. package/src/Icons.tsx +134 -134
  53. package/src/components/auth/LoginForm.tsx +84 -84
  54. package/src/components/auth/LoginPage.tsx +32 -32
  55. package/src/components/auth/PasswordRecoveryForm.tsx +52 -52
  56. package/src/components/auth/PasswordResetForm.tsx +112 -112
  57. package/src/components/auth/index.ts +4 -4
  58. package/src/components/auth/styles.ts +14 -14
  59. package/src/components/data/DataGrid/DataGridCell.tsx +77 -77
  60. package/src/components/data/DataGrid/DataGridColumnsModal/helpers.ts +9 -9
  61. package/src/components/data/DataGrid/DataGridColumnsModal/hooks.tsx +59 -59
  62. package/src/components/data/DataGrid/DataGridColumnsModal/index.tsx +182 -182
  63. package/src/components/data/DataGrid/DataGridColumnsModal/styles.ts +104 -104
  64. package/src/components/data/DataGrid/DataGridEditableCell/CheckboxEditableCell.tsx +38 -38
  65. package/src/components/data/DataGrid/DataGridEditableCell/DateEditableCell.tsx +39 -39
  66. package/src/components/data/DataGrid/DataGridEditableCell/NumberEditableCell.tsx +68 -68
  67. package/src/components/data/DataGrid/DataGridEditableCell/TextEditableCell.tsx +38 -38
  68. package/src/components/data/DataGrid/DataGridEditableCell/index.tsx +106 -106
  69. package/src/components/data/DataGrid/DataGridEditableCell/styles.ts +35 -35
  70. package/src/components/data/DataGrid/DataGridEditableCell/types.ts +19 -19
  71. package/src/components/data/DataGrid/DataGridFilterMenu/FilterValuesScroller.tsx +131 -131
  72. package/src/components/data/DataGrid/DataGridFilterMenu/hooks.tsx +81 -81
  73. package/src/components/data/DataGrid/DataGridFilterMenu/index.tsx +376 -376
  74. package/src/components/data/DataGrid/DataGridFilterMenu/styles.ts +97 -97
  75. package/src/components/data/DataGrid/DataGridFooter.tsx +45 -45
  76. package/src/components/data/DataGrid/DataGridHeader.tsx +185 -185
  77. package/src/components/data/DataGrid/DataGridHeaderCell.tsx +111 -111
  78. package/src/components/data/DataGrid/DataGridRowTemplate.tsx +82 -82
  79. package/src/components/data/DataGrid/FilterModalContent/index.tsx +136 -136
  80. package/src/components/data/DataGrid/FilterModalContent/styles.ts +22 -22
  81. package/src/components/data/DataGrid/constants.ts +6 -6
  82. package/src/components/data/DataGrid/helpers/columns.tsx +386 -386
  83. package/src/components/data/DataGrid/helpers/filters.ts +287 -287
  84. package/src/components/data/DataGrid/helpers/index.ts +2 -2
  85. package/src/components/data/DataGrid/hooks/index.ts +29 -29
  86. package/src/components/data/DataGrid/hooks/useDataGrid.tsx +381 -381
  87. package/src/components/data/DataGrid/hooks/useDataGridChangedRows.ts +97 -97
  88. package/src/components/data/DataGrid/hooks/useDataGridCopy.ts +174 -174
  89. package/src/components/data/DataGrid/hooks/useDataGridSettings.ts +48 -48
  90. package/src/components/data/DataGrid/hooks/useRefreshModal.tsx +48 -48
  91. package/src/components/data/DataGrid/index.tsx +112 -112
  92. package/src/components/data/DataGrid/styles.ts +379 -379
  93. package/src/components/data/DataGrid/types.ts +369 -369
  94. package/src/components/data/SqlRequestDataGrid/SqlRequestForeignListEditableCell.tsx +16 -16
  95. package/src/components/data/SqlRequestDataGrid/helpers/columns.tsx +481 -481
  96. package/src/components/data/SqlRequestDataGrid/helpers/index.ts +2 -2
  97. package/src/components/data/SqlRequestDataGrid/helpers/sqlRequests.ts +16 -16
  98. package/src/components/data/SqlRequestDataGrid/index.tsx +403 -403
  99. package/src/components/data/SqlRequestDataGrid/styles.ts +15 -15
  100. package/src/components/data/SqlRequestDataGrid/types.ts +74 -74
  101. package/src/components/data/SqlRequestForeignList/index.tsx +259 -259
  102. package/src/components/data/SqlRequestForeignList/styles.ts +43 -43
  103. package/src/components/data/SqlRequestForeignList/types.ts +34 -34
  104. package/src/components/data/SqlRequestGrid/filters/FiltersSidebar.tsx +110 -110
  105. package/src/components/data/SqlRequestGrid/filters/styles.ts +88 -88
  106. package/src/components/data/SqlRequestGrid/helpers/index.ts +1 -1
  107. package/src/components/data/SqlRequestGrid/helpers/sqlRequests.ts +16 -16
  108. package/src/components/data/SqlRequestGrid/index.tsx +316 -316
  109. package/src/components/data/SqlRequestGrid/styles.ts +20 -20
  110. package/src/components/data/SqlRequestGrid/types.ts +75 -75
  111. package/src/components/data/VirtualScroller/hooks.ts +71 -71
  112. package/src/components/data/VirtualScroller/index.tsx +91 -91
  113. package/src/components/data/VirtualScroller/styles.ts +58 -58
  114. package/src/components/data/VirtualScroller/types.ts +12 -12
  115. package/src/components/data/index.ts +16 -16
  116. package/src/components/forms/AutoTextArea.tsx +41 -41
  117. package/src/components/forms/Button.tsx +133 -133
  118. package/src/components/forms/Form/Checkbox.tsx +12 -12
  119. package/src/components/forms/Form/FormGroup.tsx +31 -27
  120. package/src/components/forms/Form/Input.tsx +16 -16
  121. package/src/components/forms/Form/Row.tsx +32 -32
  122. package/src/components/forms/Form/Select.tsx +81 -81
  123. package/src/components/forms/Form/TextArea.tsx +17 -17
  124. package/src/components/forms/Form/index.tsx +45 -45
  125. package/src/components/forms/Form/styles.ts +180 -171
  126. package/src/components/forms/IconButton.tsx +57 -57
  127. package/src/components/forms/IndeterminateCheckbox.tsx +46 -46
  128. package/src/components/forms/NumberInput.tsx +53 -53
  129. package/src/components/forms/Select.tsx +35 -35
  130. package/src/components/forms/VerticalLabel.tsx +20 -20
  131. package/src/components/forms/index.ts +9 -9
  132. package/src/components/forms/styles.ts +29 -29
  133. package/src/components/index.ts +6 -6
  134. package/src/components/layout/Columns.ts +24 -20
  135. package/src/components/layout/Dropdown/index.tsx +113 -113
  136. package/src/components/layout/Dropdown/styles.ts +45 -45
  137. package/src/components/layout/Grid/index.tsx +8 -8
  138. package/src/components/layout/Grid/styles.ts +34 -34
  139. package/src/components/layout/Loading/index.tsx +29 -29
  140. package/src/components/layout/Loading/styles.ts +29 -29
  141. package/src/components/layout/Masonry/index.tsx +29 -29
  142. package/src/components/layout/Masonry/styles.ts +20 -20
  143. package/src/components/layout/Modal/index.tsx +51 -51
  144. package/src/components/layout/Modal/styles.ts +125 -125
  145. package/src/components/layout/index.ts +6 -6
  146. package/src/components/search/HighlightedText.tsx +41 -41
  147. package/src/components/search/QuickSearchBar.tsx +109 -109
  148. package/src/components/search/QuickSearchResults.tsx +86 -86
  149. package/src/components/search/index.ts +9 -9
  150. package/src/components/search/styles.ts +96 -96
  151. package/src/components/search/types.ts +26 -26
  152. package/src/components/ui/Avatar/index.tsx +54 -54
  153. package/src/components/ui/Avatar/styles.ts +61 -61
  154. package/src/components/ui/Card/index.tsx +14 -14
  155. package/src/components/ui/Card/styles.ts +37 -37
  156. package/src/components/ui/ContextMenu/index.tsx +79 -79
  157. package/src/components/ui/ContextMenu/styles.ts +119 -119
  158. package/src/components/ui/Ellipsis.tsx +34 -34
  159. package/src/components/ui/Message/index.tsx +57 -57
  160. package/src/components/ui/Message/styles.ts +40 -40
  161. package/src/components/ui/index.ts +6 -6
  162. package/src/config/index.ts +14 -14
  163. package/src/helpers/dates.ts +17 -17
  164. package/src/helpers/getScrollbarSize.ts +14 -14
  165. package/src/helpers/index.ts +4 -4
  166. package/src/helpers/numbers.ts +63 -63
  167. package/src/helpers/responsive.ts +83 -83
  168. package/src/helpers/text.ts +13 -13
  169. package/src/hooks/index.ts +7 -7
  170. package/src/hooks/useContainerMediaQuery.ts +7 -7
  171. package/src/hooks/useElementSize.ts +24 -24
  172. package/src/hooks/useMediaQuery.ts +9 -9
  173. package/src/hooks/useMediaQueryForWidth.ts +35 -35
  174. package/src/hooks/useMutableState.ts +19 -19
  175. package/src/hooks/useShowArchived.ts +28 -28
  176. package/src/hooks/useWindowSize.ts +20 -20
  177. package/src/index.ts +9 -9
  178. package/src/providers/AuthenticationProvider/helpers.ts +3 -3
  179. package/src/providers/AuthenticationProvider/index.tsx +243 -243
  180. package/src/providers/LoadingProvider/index.tsx +47 -47
  181. package/src/providers/PortalsProvider/index.tsx +54 -54
  182. package/src/providers/PortalsProvider/styles.ts +31 -31
  183. package/src/providers/SettingsProvider/index.tsx +70 -70
  184. package/src/providers/ThemeProvider/ThemeProvider.ts +63 -63
  185. package/src/providers/ThemeProvider/defaultTheme.ts +457 -457
  186. package/src/providers/ThemeProvider/helpers.ts +11 -11
  187. package/src/providers/ThemeProvider/index.ts +4 -4
  188. package/src/providers/ThemeProvider/types.ts +131 -131
  189. package/src/providers/TrackingProvider/hooks.ts +14 -14
  190. package/src/providers/TrackingProvider/index.tsx +71 -71
  191. package/src/providers/UiProviders/index.tsx +68 -68
  192. package/src/providers/UiProviders/styles.ts +10 -10
  193. package/src/providers/hooks.ts +12 -12
  194. package/src/providers/index.ts +8 -8
  195. package/src/services/HttpService.ts +92 -92
  196. package/src/services/WebSocketService.ts +137 -137
  197. package/src/services/advancedRequests.ts +102 -102
  198. package/src/services/base.ts +23 -23
  199. package/src/services/globalSearch.ts +29 -29
  200. package/src/services/hooks.ts +44 -44
  201. package/src/services/index.ts +21 -21
  202. package/src/services/requests/auth.ts +44 -44
  203. package/src/services/requests/generic.ts +62 -62
  204. package/src/services/requests/tracking.ts +12 -12
  205. package/src/services/requests/userProfiles.ts +35 -35
  206. package/src/services/requests/users.ts +28 -28
  207. package/src/services/smartQueries.ts +122 -122
  208. package/src/services/sqlRequests.ts +111 -111
  209. package/src/services/types/auth.ts +131 -131
  210. package/src/services/types/base.ts +10 -10
  211. package/src/services/types/generic.ts +96 -96
  212. package/src/services/types/tracking.ts +39 -39
  213. package/src/services/types/userProfiles.ts +107 -107
  214. package/src/services/types/users.ts +106 -106
  215. package/src/services/updateSqlRequests.ts +34 -34
  216. package/src/styles/animations.scss +30 -30
  217. package/src/styles/index.scss +42 -42
  218. package/src/typings.d.ts +19 -19
  219. package/tsconfig.json +18 -18
  220. package/tsconfig.tsbuildinfo +1 -1
  221. package/dist/components/data/AdvancedRequestDataGrid/helpers/advancedRequests.d.ts +0 -14
  222. package/dist/components/data/AdvancedRequestDataGrid/helpers/advancedRequests.js +0 -77
  223. package/dist/components/data/AdvancedRequestDataGrid/helpers/columns.d.ts +0 -22
  224. package/dist/components/data/AdvancedRequestDataGrid/helpers/columns.js +0 -105
  225. package/dist/components/data/AdvancedRequestDataGrid/helpers/index.d.ts +0 -2
  226. package/dist/components/data/AdvancedRequestDataGrid/helpers/index.js +0 -18
  227. package/dist/components/data/AdvancedRequestDataGrid/index.d.ts +0 -2
  228. package/dist/components/data/AdvancedRequestDataGrid/index.js +0 -215
  229. package/dist/components/data/AdvancedRequestDataGrid/types.d.ts +0 -21
  230. package/dist/components/data/AdvancedRequestDataGrid/types.js +0 -2
  231. package/dist/components/data/DataGrid/AdvancedRequestDataGrid.d.ts +0 -10
  232. package/dist/components/data/DataGrid/AdvancedRequestDataGrid.js +0 -173
  233. package/dist/components/data/DataGrid/DataGridEditableCell.d.ts +0 -2
  234. package/dist/components/data/DataGrid/DataGridEditableCell.js +0 -27
  235. package/dist/components/data/DataGrid/FilterValuesScroller.d.ts +0 -13
  236. package/dist/components/data/DataGrid/FilterValuesScroller.js +0 -73
  237. package/dist/components/data/DataGrid/VirtualScroller.d.ts +0 -11
  238. package/dist/components/data/DataGrid/VirtualScroller.js +0 -41
  239. package/dist/components/data/DataGrid/helpers/advancedRequests.d.ts +0 -12
  240. package/dist/components/data/DataGrid/helpers/advancedRequests.js +0 -53
  241. package/dist/components/data/DataGrid/helpers.d.ts +0 -28
  242. package/dist/components/data/DataGrid/helpers.js +0 -436
  243. package/dist/components/data/SmartQueryDataGrid/helpers/columns.d.ts +0 -20
  244. package/dist/components/data/SmartQueryDataGrid/helpers/columns.js +0 -160
  245. package/dist/components/data/SmartQueryDataGrid/helpers/hooks.d.ts +0 -5
  246. package/dist/components/data/SmartQueryDataGrid/helpers/hooks.js +0 -41
  247. package/dist/components/data/SmartQueryDataGrid/helpers/index.d.ts +0 -2
  248. package/dist/components/data/SmartQueryDataGrid/helpers/index.js +0 -18
  249. package/dist/components/data/SmartQueryDataGrid/helpers/smartQueries.d.ts +0 -3
  250. package/dist/components/data/SmartQueryDataGrid/helpers/smartQueries.js +0 -15
  251. package/dist/components/data/SmartQueryDataGrid/hooks.d.ts +0 -9
  252. package/dist/components/data/SmartQueryDataGrid/hooks.js +0 -63
  253. package/dist/components/data/SmartQueryDataGrid/index.d.ts +0 -12
  254. package/dist/components/data/SmartQueryDataGrid/index.js +0 -242
  255. package/dist/components/data/SmartQueryDataGrid/types.d.ts +0 -22
  256. package/dist/components/data/SmartQueryDataGrid/types.js +0 -2
  257. package/dist/components/forms/Form/InputWithLabel.d.ts +0 -2
  258. package/dist/components/forms/Form/InputWithLabel.js +0 -10
  259. package/dist/components/forms/Form/types.d.ts +0 -7
  260. package/dist/components/forms/Form/types.js +0 -2
  261. package/dist/config/types.d.ts +0 -11
  262. package/dist/config/types.js +0 -2
  263. package/dist/services/requests/userPermissions.d.ts +0 -4
  264. package/dist/services/requests/userPermissions.js +0 -20
@@ -1,75 +1,75 @@
1
- /* eslint-disable @typescript-eslint/no-empty-object-type */
2
-
3
- import {
4
- ConditionDTO,
5
- FieldDTO,
6
- OrderByDTO,
7
- SqlRequestRow,
8
- } from '../../../services/sqlRequests';
9
- import {
10
- DataGridCheckboxColumn,
11
- DataGridDateColumn,
12
- DataGridFilter,
13
- DataGridFilterType,
14
- DataGridNumberColumn,
15
- DataGridSort,
16
- DataGridTextColumn,
17
- } from '../DataGrid/types';
18
-
19
- import { VirtualScrollerTemplateFC } from '../VirtualScroller/types';
20
-
21
- export type SqlRequestGridFilter<
22
- T extends DataGridFilterType = DataGridFilterType
23
- > = DataGridFilter<T> & {
24
- field?: FieldDTO;
25
- };
26
-
27
- export type SqlRequestGridFilters = Record<string, SqlRequestGridFilter>;
28
-
29
- export type SqlRequestGridCommonProps = {
30
- filter?: SqlRequestGridFilter;
31
- field?: FieldDTO;
32
- filterField?: string;
33
- sortField?: string;
34
- ignore?: boolean;
35
- };
36
-
37
- export type SqlRequestGridTextColumn<R> = DataGridTextColumn<R> &
38
- SqlRequestGridCommonProps;
39
- export type SqlRequestGridNumberColumn<R> = DataGridNumberColumn<R> &
40
- SqlRequestGridCommonProps;
41
- export type SqlRequestGridCheckboxColumn<R> = DataGridCheckboxColumn<R> &
42
- SqlRequestGridCommonProps;
43
- export type SqlRequestGridDateColumn<R> = DataGridDateColumn<R> &
44
- SqlRequestGridCommonProps;
45
-
46
- export type SqlRequestGridColumn<R> =
47
- | SqlRequestGridTextColumn<R>
48
- | SqlRequestGridNumberColumn<R>
49
- | SqlRequestGridCheckboxColumn<R>
50
- | SqlRequestGridDateColumn<R>;
51
-
52
- export type SqlRequestGridColumnWithFilter<R> = SqlRequestGridColumn<R> & {
53
- filter: SqlRequestGridFilter;
54
- };
55
-
56
- export type SqlRequestGridColumns<R> = SqlRequestGridColumn<R>[];
57
-
58
- export type SqlRequestGridProps<R, P extends object = {}> = {
59
- itemTemplate: VirtualScrollerTemplateFC<R, P>;
60
- itemsPerRow?: number;
61
- rowHeight?: number;
62
- gap?: string;
63
- fields: SqlRequestGridColumns<R>;
64
- additionalFields?: string[];
65
- type: string;
66
- orderBy?: OrderByDTO[];
67
- conditions?: ConditionDTO[];
68
- parser?: (row: SqlRequestRow<R>) => R;
69
- itemProps: P | ((item: R) => P);
70
- initialSorts?: Record<string, DataGridSort>;
71
- };
72
-
73
- export type SqlRequestGridRefProps = {
74
- refresh: () => void;
75
- };
1
+ /* eslint-disable @typescript-eslint/no-empty-object-type */
2
+
3
+ import {
4
+ ConditionDTO,
5
+ FieldDTO,
6
+ OrderByDTO,
7
+ SqlRequestRow,
8
+ } from '../../../services/sqlRequests';
9
+ import {
10
+ DataGridCheckboxColumn,
11
+ DataGridDateColumn,
12
+ DataGridFilter,
13
+ DataGridFilterType,
14
+ DataGridNumberColumn,
15
+ DataGridSort,
16
+ DataGridTextColumn,
17
+ } from '../DataGrid/types';
18
+
19
+ import { VirtualScrollerTemplateFC } from '../VirtualScroller/types';
20
+
21
+ export type SqlRequestGridFilter<
22
+ T extends DataGridFilterType = DataGridFilterType
23
+ > = DataGridFilter<T> & {
24
+ field?: FieldDTO;
25
+ };
26
+
27
+ export type SqlRequestGridFilters = Record<string, SqlRequestGridFilter>;
28
+
29
+ export type SqlRequestGridCommonProps = {
30
+ filter?: SqlRequestGridFilter;
31
+ field?: FieldDTO;
32
+ filterField?: string;
33
+ sortField?: string;
34
+ ignore?: boolean;
35
+ };
36
+
37
+ export type SqlRequestGridTextColumn<R> = DataGridTextColumn<R> &
38
+ SqlRequestGridCommonProps;
39
+ export type SqlRequestGridNumberColumn<R> = DataGridNumberColumn<R> &
40
+ SqlRequestGridCommonProps;
41
+ export type SqlRequestGridCheckboxColumn<R> = DataGridCheckboxColumn<R> &
42
+ SqlRequestGridCommonProps;
43
+ export type SqlRequestGridDateColumn<R> = DataGridDateColumn<R> &
44
+ SqlRequestGridCommonProps;
45
+
46
+ export type SqlRequestGridColumn<R> =
47
+ | SqlRequestGridTextColumn<R>
48
+ | SqlRequestGridNumberColumn<R>
49
+ | SqlRequestGridCheckboxColumn<R>
50
+ | SqlRequestGridDateColumn<R>;
51
+
52
+ export type SqlRequestGridColumnWithFilter<R> = SqlRequestGridColumn<R> & {
53
+ filter: SqlRequestGridFilter;
54
+ };
55
+
56
+ export type SqlRequestGridColumns<R> = SqlRequestGridColumn<R>[];
57
+
58
+ export type SqlRequestGridProps<R, P extends object = {}> = {
59
+ itemTemplate: VirtualScrollerTemplateFC<R, P>;
60
+ itemsPerRow?: number;
61
+ rowHeight?: number;
62
+ gap?: string;
63
+ fields: SqlRequestGridColumns<R>;
64
+ additionalFields?: string[];
65
+ type: string;
66
+ orderBy?: OrderByDTO[];
67
+ conditions?: ConditionDTO[];
68
+ parser?: (row: SqlRequestRow<R>) => R;
69
+ itemProps: P | ((item: R) => P);
70
+ initialSorts?: Record<string, DataGridSort>;
71
+ };
72
+
73
+ export type SqlRequestGridRefProps = {
74
+ refresh: () => void;
75
+ };
@@ -1,71 +1,71 @@
1
- import { useCallback, useEffect, useState } from 'react';
2
-
3
- import { useElementSize } from '../../../hooks';
4
-
5
- export const VIRTUAL_SCROLL_TOLERANCE = 20;
6
-
7
- type VirtualScrollingProps<R> = {
8
- scrollableElement: HTMLElement | null;
9
- rowHeightInPx: number;
10
- items: R[];
11
- itemsPerRow?: number;
12
- tolerance?: number;
13
- };
14
-
15
- export const useVirtualScrolling = <R>({
16
- scrollableElement,
17
- rowHeightInPx,
18
- items,
19
- itemsPerRow = 1,
20
- tolerance = VIRTUAL_SCROLL_TOLERANCE,
21
- }: VirtualScrollingProps<R>) => {
22
- const { height } = useElementSize(scrollableElement);
23
-
24
- const [scrollTop, setScrollTop] = useState(0);
25
- const [rowIndex, rowLength] = [
26
- Math.floor(scrollTop / rowHeightInPx),
27
- Math.ceil(height / rowHeightInPx),
28
- ];
29
- const [index, length] = [rowIndex * itemsPerRow, rowLength * itemsPerRow];
30
- const rowTolerance = Math.ceil(tolerance / itemsPerRow);
31
-
32
- const totalRows = Math.ceil((items?.length ?? 0) / itemsPerRow);
33
- const totalHeight = totalRows * rowHeightInPx;
34
- const topPadding = Math.max(0, rowIndex - rowTolerance) * rowHeightInPx;
35
-
36
- const onScroll = useCallback(() => {
37
- if (scrollableElement) {
38
- setScrollTop(scrollableElement.scrollTop);
39
- }
40
- }, [scrollableElement]);
41
-
42
- useEffect(() => {
43
- const scrollable = scrollableElement;
44
- if (scrollable) {
45
- scrollable.addEventListener('scroll', onScroll);
46
- return () => {
47
- scrollable.removeEventListener('scroll', onScroll);
48
- };
49
- }
50
- }, [onScroll, scrollableElement]);
51
-
52
- const rowIndexWithTolerance = Math.max(0, rowIndex - rowTolerance);
53
- const rowLengthWithTolerance = rowLength + 2 * rowTolerance;
54
- const indexWithTolerance = rowIndexWithTolerance * itemsPerRow;
55
- const lengthWithTolerance = rowLengthWithTolerance * itemsPerRow;
56
-
57
- const visibleItems = items.slice(
58
- indexWithTolerance,
59
- indexWithTolerance + lengthWithTolerance
60
- );
61
-
62
- return {
63
- index,
64
- length,
65
- indexWithTolerance,
66
- lengthWithTolerance,
67
- visibleItems,
68
- totalHeight,
69
- topPadding,
70
- };
71
- };
1
+ import { useCallback, useEffect, useState } from 'react';
2
+
3
+ import { useElementSize } from '../../../hooks';
4
+
5
+ export const VIRTUAL_SCROLL_TOLERANCE = 20;
6
+
7
+ type VirtualScrollingProps<R> = {
8
+ scrollableElement: HTMLElement | null;
9
+ rowHeightInPx: number;
10
+ items: R[];
11
+ itemsPerRow?: number;
12
+ tolerance?: number;
13
+ };
14
+
15
+ export const useVirtualScrolling = <R>({
16
+ scrollableElement,
17
+ rowHeightInPx,
18
+ items,
19
+ itemsPerRow = 1,
20
+ tolerance = VIRTUAL_SCROLL_TOLERANCE,
21
+ }: VirtualScrollingProps<R>) => {
22
+ const { height } = useElementSize(scrollableElement);
23
+
24
+ const [scrollTop, setScrollTop] = useState(0);
25
+ const [rowIndex, rowLength] = [
26
+ Math.floor(scrollTop / rowHeightInPx),
27
+ Math.ceil(height / rowHeightInPx),
28
+ ];
29
+ const [index, length] = [rowIndex * itemsPerRow, rowLength * itemsPerRow];
30
+ const rowTolerance = Math.ceil(tolerance / itemsPerRow);
31
+
32
+ const totalRows = Math.ceil((items?.length ?? 0) / itemsPerRow);
33
+ const totalHeight = totalRows * rowHeightInPx;
34
+ const topPadding = Math.max(0, rowIndex - rowTolerance) * rowHeightInPx;
35
+
36
+ const onScroll = useCallback(() => {
37
+ if (scrollableElement) {
38
+ setScrollTop(scrollableElement.scrollTop);
39
+ }
40
+ }, [scrollableElement]);
41
+
42
+ useEffect(() => {
43
+ const scrollable = scrollableElement;
44
+ if (scrollable) {
45
+ scrollable.addEventListener('scroll', onScroll);
46
+ return () => {
47
+ scrollable.removeEventListener('scroll', onScroll);
48
+ };
49
+ }
50
+ }, [onScroll, scrollableElement]);
51
+
52
+ const rowIndexWithTolerance = Math.max(0, rowIndex - rowTolerance);
53
+ const rowLengthWithTolerance = rowLength + 2 * rowTolerance;
54
+ const indexWithTolerance = rowIndexWithTolerance * itemsPerRow;
55
+ const lengthWithTolerance = rowLengthWithTolerance * itemsPerRow;
56
+
57
+ const visibleItems = items.slice(
58
+ indexWithTolerance,
59
+ indexWithTolerance + lengthWithTolerance
60
+ );
61
+
62
+ return {
63
+ index,
64
+ length,
65
+ indexWithTolerance,
66
+ lengthWithTolerance,
67
+ visibleItems,
68
+ totalHeight,
69
+ topPadding,
70
+ };
71
+ };
@@ -1,91 +1,91 @@
1
- /* eslint-disable @typescript-eslint/no-empty-object-type */
2
-
3
- import * as styles from './styles';
4
-
5
- import { useEffect, useState } from 'react';
6
-
7
- import { VirtualScrollerTemplateFC } from './types';
8
- import { useVirtualScrolling } from './hooks';
9
-
10
- type VirtualScrollerProps<R, P extends object> = {
11
- gridTemplateColumns: string;
12
- items: R[];
13
- itemTemplate: VirtualScrollerTemplateFC<R, P>;
14
- rowHeightInPx: number;
15
- gap?: string;
16
- itemsPerRow?: number;
17
- tolerance?: number;
18
- itemProps: P | ((item: R, index: number) => P);
19
- onRangeChanged?: (index: number, length: number) => void;
20
- integrated?: boolean;
21
- };
22
-
23
- export const VirtualScroller = <R, P extends object>({
24
- gridTemplateColumns,
25
- items,
26
- rowHeightInPx,
27
- itemTemplate: ItemTemplate,
28
- itemProps,
29
- onRangeChanged,
30
- gap,
31
- itemsPerRow,
32
- tolerance,
33
- integrated,
34
- }: VirtualScrollerProps<R, P>) => {
35
- const [scrollableElement, setScrollableElement] =
36
- useState<HTMLElement | null>(null);
37
- const {
38
- indexWithTolerance,
39
- lengthWithTolerance,
40
- visibleItems,
41
- topPadding,
42
- totalHeight,
43
- } = useVirtualScrolling<R>({
44
- scrollableElement,
45
- rowHeightInPx,
46
- items,
47
- itemsPerRow,
48
- tolerance,
49
- });
50
-
51
- useEffect(() => {
52
- onRangeChanged?.(indexWithTolerance, lengthWithTolerance);
53
- }, [indexWithTolerance, lengthWithTolerance, onRangeChanged]);
54
-
55
- return (
56
- <styles.VirtualScrollerContainer $integrated={integrated}>
57
- <styles.VirtualScrollerFiller
58
- $height={totalHeight}
59
- ref={(element) =>
60
- setScrollableElement(
61
- (integrated
62
- ? element?.parentElement?.parentElement
63
- : element?.parentElement) ?? null
64
- )
65
- }
66
- >
67
- <styles.VirtualScrollerItemsContainer
68
- $gridTemplateColumns={gridTemplateColumns}
69
- $topPadding={topPadding}
70
- $itemHeight={rowHeightInPx}
71
- $gap={gap}
72
- >
73
- {visibleItems.map((item, currentIndex) => {
74
- const currentItemProps =
75
- typeof itemProps === 'function'
76
- ? itemProps(item, indexWithTolerance + currentIndex)
77
- : itemProps;
78
- return (
79
- <ItemTemplate
80
- key={indexWithTolerance + currentIndex}
81
- item={item}
82
- index={currentIndex}
83
- {...currentItemProps}
84
- />
85
- );
86
- })}
87
- </styles.VirtualScrollerItemsContainer>
88
- </styles.VirtualScrollerFiller>
89
- </styles.VirtualScrollerContainer>
90
- );
91
- };
1
+ /* eslint-disable @typescript-eslint/no-empty-object-type */
2
+
3
+ import * as styles from './styles';
4
+
5
+ import { useEffect, useState } from 'react';
6
+
7
+ import { VirtualScrollerTemplateFC } from './types';
8
+ import { useVirtualScrolling } from './hooks';
9
+
10
+ type VirtualScrollerProps<R, P extends object> = {
11
+ gridTemplateColumns: string;
12
+ items: R[];
13
+ itemTemplate: VirtualScrollerTemplateFC<R, P>;
14
+ rowHeightInPx: number;
15
+ gap?: string;
16
+ itemsPerRow?: number;
17
+ tolerance?: number;
18
+ itemProps: P | ((item: R, index: number) => P);
19
+ onRangeChanged?: (index: number, length: number) => void;
20
+ integrated?: boolean;
21
+ };
22
+
23
+ export const VirtualScroller = <R, P extends object>({
24
+ gridTemplateColumns,
25
+ items,
26
+ rowHeightInPx,
27
+ itemTemplate: ItemTemplate,
28
+ itemProps,
29
+ onRangeChanged,
30
+ gap,
31
+ itemsPerRow,
32
+ tolerance,
33
+ integrated,
34
+ }: VirtualScrollerProps<R, P>) => {
35
+ const [scrollableElement, setScrollableElement] =
36
+ useState<HTMLElement | null>(null);
37
+ const {
38
+ indexWithTolerance,
39
+ lengthWithTolerance,
40
+ visibleItems,
41
+ topPadding,
42
+ totalHeight,
43
+ } = useVirtualScrolling<R>({
44
+ scrollableElement,
45
+ rowHeightInPx,
46
+ items,
47
+ itemsPerRow,
48
+ tolerance,
49
+ });
50
+
51
+ useEffect(() => {
52
+ onRangeChanged?.(indexWithTolerance, lengthWithTolerance);
53
+ }, [indexWithTolerance, lengthWithTolerance, onRangeChanged]);
54
+
55
+ return (
56
+ <styles.VirtualScrollerContainer $integrated={integrated}>
57
+ <styles.VirtualScrollerFiller
58
+ $height={totalHeight}
59
+ ref={(element) =>
60
+ setScrollableElement(
61
+ (integrated
62
+ ? element?.parentElement?.parentElement
63
+ : element?.parentElement) ?? null
64
+ )
65
+ }
66
+ >
67
+ <styles.VirtualScrollerItemsContainer
68
+ $gridTemplateColumns={gridTemplateColumns}
69
+ $topPadding={topPadding}
70
+ $itemHeight={rowHeightInPx}
71
+ $gap={gap}
72
+ >
73
+ {visibleItems.map((item, currentIndex) => {
74
+ const currentItemProps =
75
+ typeof itemProps === 'function'
76
+ ? itemProps(item, indexWithTolerance + currentIndex)
77
+ : itemProps;
78
+ return (
79
+ <ItemTemplate
80
+ key={indexWithTolerance + currentIndex}
81
+ item={item}
82
+ index={currentIndex}
83
+ {...currentItemProps}
84
+ />
85
+ );
86
+ })}
87
+ </styles.VirtualScrollerItemsContainer>
88
+ </styles.VirtualScrollerFiller>
89
+ </styles.VirtualScrollerContainer>
90
+ );
91
+ };
@@ -1,58 +1,58 @@
1
- import styled from 'styled-components';
2
-
3
- export const TopPaddingItem = styled.div``;
4
- export const BottomPaddingItem = styled.div``;
5
-
6
- export const VirtualScrollerContainer = styled.div<{
7
- $integrated?: boolean;
8
- }>`
9
- position: relative;
10
- overflow: auto;
11
- height: 100%;
12
- display: ${({ $integrated }) => ($integrated ? 'contents' : 'block')};
13
- `;
14
-
15
- export const VirtualScrollerFiller = styled.div.attrs<{
16
- $height: number;
17
- }>(({ $height }) => ({
18
- className: 'VirtualScrollerFiller',
19
- style: {
20
- height: `${$height}px`,
21
- },
22
- }))`
23
- position: relative;
24
- overflow: visible;
25
- `;
26
-
27
- export const VirtualScrollerItemsContainer = styled.div.attrs<{
28
- $gridTemplateColumns: string;
29
- $gap?: string;
30
- $topPadding: number;
31
- $itemHeight: number;
32
- }>(({ $gridTemplateColumns, $topPadding, $itemHeight }) => {
33
- const itemHeightValue = `${$itemHeight}px`;
34
- return {
35
- className: 'VirtualScrollerItemsContainer',
36
- style: {
37
- top: `${$topPadding}px`,
38
- gridTemplateColumns: $gridTemplateColumns,
39
- gridAutoItems: itemHeightValue,
40
- },
41
- };
42
- })`
43
- display: grid;
44
- position: absolute;
45
- min-width: 100%;
46
- grid-gap: ${({ $gap }) => $gap};
47
-
48
- ${TopPaddingItem} {
49
- grid-column-start: 1;
50
- grid-column-end: -1;
51
- grid-row: 1;
52
- }
53
- ${BottomPaddingItem} {
54
- grid-column-start: 1;
55
- grid-column-end: -1;
56
- grid-row: -1;
57
- }
58
- `;
1
+ import styled from 'styled-components';
2
+
3
+ export const TopPaddingItem = styled.div``;
4
+ export const BottomPaddingItem = styled.div``;
5
+
6
+ export const VirtualScrollerContainer = styled.div<{
7
+ $integrated?: boolean;
8
+ }>`
9
+ position: relative;
10
+ overflow: auto;
11
+ height: 100%;
12
+ display: ${({ $integrated }) => ($integrated ? 'contents' : 'block')};
13
+ `;
14
+
15
+ export const VirtualScrollerFiller = styled.div.attrs<{
16
+ $height: number;
17
+ }>(({ $height }) => ({
18
+ className: 'VirtualScrollerFiller',
19
+ style: {
20
+ height: `${$height}px`,
21
+ },
22
+ }))`
23
+ position: relative;
24
+ overflow: visible;
25
+ `;
26
+
27
+ export const VirtualScrollerItemsContainer = styled.div.attrs<{
28
+ $gridTemplateColumns: string;
29
+ $gap?: string;
30
+ $topPadding: number;
31
+ $itemHeight: number;
32
+ }>(({ $gridTemplateColumns, $topPadding, $itemHeight }) => {
33
+ const itemHeightValue = `${$itemHeight}px`;
34
+ return {
35
+ className: 'VirtualScrollerItemsContainer',
36
+ style: {
37
+ top: `${$topPadding}px`,
38
+ gridTemplateColumns: $gridTemplateColumns,
39
+ gridAutoItems: itemHeightValue,
40
+ },
41
+ };
42
+ })`
43
+ display: grid;
44
+ position: absolute;
45
+ min-width: 100%;
46
+ grid-gap: ${({ $gap }) => $gap};
47
+
48
+ ${TopPaddingItem} {
49
+ grid-column-start: 1;
50
+ grid-column-end: -1;
51
+ grid-row: 1;
52
+ }
53
+ ${BottomPaddingItem} {
54
+ grid-column-start: 1;
55
+ grid-column-end: -1;
56
+ grid-row: -1;
57
+ }
58
+ `;
@@ -1,12 +1,12 @@
1
- /* eslint-disable @typescript-eslint/no-empty-object-type */
2
-
3
- import { FC } from 'react';
4
-
5
- export type VirtualScrollerTemplateProps<R, P extends object = {}> = P & {
6
- item: R | null;
7
- index: number;
8
- };
9
-
10
- export type VirtualScrollerTemplateFC<R, P extends object = {}> = FC<
11
- VirtualScrollerTemplateProps<R, P>
12
- >;
1
+ /* eslint-disable @typescript-eslint/no-empty-object-type */
2
+
3
+ import { FC } from 'react';
4
+
5
+ export type VirtualScrollerTemplateProps<R, P extends object = {}> = P & {
6
+ item: R | null;
7
+ index: number;
8
+ };
9
+
10
+ export type VirtualScrollerTemplateFC<R, P extends object = {}> = FC<
11
+ VirtualScrollerTemplateProps<R, P>
12
+ >;
@@ -1,16 +1,16 @@
1
- export * from './DataGrid';
2
- export * from './DataGrid/helpers';
3
- export * from './DataGrid/styles';
4
- export * from './DataGrid/types';
5
-
6
- export * from './SqlRequestDataGrid';
7
- export * from './SqlRequestDataGrid/helpers';
8
- export * from './SqlRequestDataGrid/types';
9
-
10
- export * from './SqlRequestGrid';
11
- export * from './SqlRequestGrid/types';
12
-
13
- export * from './SqlRequestForeignList';
14
-
15
- export * from './VirtualScroller';
16
- export * from './VirtualScroller/types';
1
+ export * from './DataGrid';
2
+ export * from './DataGrid/helpers';
3
+ export * from './DataGrid/styles';
4
+ export * from './DataGrid/types';
5
+
6
+ export * from './SqlRequestDataGrid';
7
+ export * from './SqlRequestDataGrid/helpers';
8
+ export * from './SqlRequestDataGrid/types';
9
+
10
+ export * from './SqlRequestGrid';
11
+ export * from './SqlRequestGrid/types';
12
+
13
+ export * from './SqlRequestForeignList';
14
+
15
+ export * from './VirtualScroller';
16
+ export * from './VirtualScroller/types';