@addev-be/ui 1.0.1 → 1.0.2

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 (249) 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/up.svg +1 -1
  21. package/assets/icons/user-tie.svg +1 -1
  22. package/assets/icons/x-bar.svg +3 -3
  23. package/dist/components/data/AdvancedRequestDataGrid/helpers/advancedRequests.js +9 -8
  24. package/dist/components/data/AdvancedRequestDataGrid/helpers/columns.js +21 -72
  25. package/dist/components/data/AdvancedRequestDataGrid/index.js +2 -2
  26. package/dist/components/data/AdvancedRequestDataGrid/types.d.ts +1 -1
  27. package/dist/components/data/DataGrid/AdvancedRequestDataGrid.d.ts +10 -0
  28. package/dist/components/data/DataGrid/AdvancedRequestDataGrid.js +173 -0
  29. package/dist/components/data/DataGrid/FilterValuesScroller.d.ts +13 -0
  30. package/dist/components/data/DataGrid/FilterValuesScroller.js +73 -0
  31. package/dist/components/data/DataGrid/VirtualScroller.d.ts +11 -0
  32. package/dist/components/data/DataGrid/VirtualScroller.js +41 -0
  33. package/dist/components/data/DataGrid/helpers/advancedRequests.d.ts +12 -0
  34. package/dist/components/data/DataGrid/helpers/advancedRequests.js +53 -0
  35. package/dist/components/data/DataGrid/helpers.d.ts +28 -0
  36. package/dist/components/data/DataGrid/helpers.js +436 -0
  37. package/dist/components/data/DataGrid/types.d.ts +1 -1
  38. package/dist/components/data/DataGrid/types.js +29 -6
  39. package/dist/components/data/SmartQueryDataGrid/helpers/columns.d.ts +20 -0
  40. package/dist/components/data/SmartQueryDataGrid/helpers/columns.js +160 -0
  41. package/dist/components/data/SmartQueryDataGrid/helpers/hooks.d.ts +5 -0
  42. package/dist/components/data/SmartQueryDataGrid/helpers/hooks.js +41 -0
  43. package/dist/components/data/SmartQueryDataGrid/helpers/index.d.ts +2 -0
  44. package/dist/components/data/SmartQueryDataGrid/helpers/index.js +18 -0
  45. package/dist/components/data/SmartQueryDataGrid/helpers/smartQueries.d.ts +3 -0
  46. package/dist/components/data/SmartQueryDataGrid/helpers/smartQueries.js +15 -0
  47. package/dist/components/data/SmartQueryDataGrid/hooks.d.ts +9 -0
  48. package/dist/components/data/SmartQueryDataGrid/hooks.js +63 -0
  49. package/dist/components/data/SmartQueryDataGrid/index.d.ts +12 -0
  50. package/dist/components/data/SmartQueryDataGrid/index.js +242 -0
  51. package/dist/components/data/SmartQueryDataGrid/types.d.ts +22 -0
  52. package/dist/components/data/SmartQueryDataGrid/types.js +2 -0
  53. package/dist/components/forms/Form/InputWithLabel.d.ts +2 -0
  54. package/dist/components/forms/Form/InputWithLabel.js +10 -0
  55. package/dist/components/forms/Form/types.d.ts +7 -0
  56. package/dist/components/forms/Form/types.js +2 -0
  57. package/dist/config/types.d.ts +11 -0
  58. package/dist/config/types.js +2 -0
  59. package/dist/helpers/types.d.ts +1 -1
  60. package/dist/services/requests/generic.d.ts +1 -1
  61. package/dist/services/requests/userPermissions.d.ts +4 -0
  62. package/dist/services/requests/userPermissions.js +20 -0
  63. package/dist/services/types/auth.d.ts +1 -1
  64. package/dist/services/types/auth.js +50 -27
  65. package/dist/services/types/base.d.ts +1 -1
  66. package/dist/services/types/base.js +26 -3
  67. package/dist/services/types/generic.d.ts +1 -1
  68. package/dist/services/types/generic.js +44 -21
  69. package/dist/services/types/tracking.d.ts +1 -1
  70. package/dist/services/types/tracking.js +29 -6
  71. package/dist/services/types/userProfiles.d.ts +1 -1
  72. package/dist/services/types/userProfiles.js +41 -18
  73. package/dist/services/types/users.d.ts +1 -1
  74. package/dist/services/types/users.js +47 -24
  75. package/eslint.config.js +3 -3
  76. package/package.json +2 -2
  77. package/src/Icons.tsx +138 -138
  78. package/src/components/auth/LoginForm.tsx +84 -84
  79. package/src/components/auth/LoginPage.tsx +32 -32
  80. package/src/components/auth/PasswordRecoveryForm.tsx +52 -52
  81. package/src/components/auth/PasswordResetForm.tsx +112 -112
  82. package/src/components/auth/index.ts +4 -4
  83. package/src/components/auth/styles.ts +14 -14
  84. package/src/components/data/DataGrid/DataGridCell.tsx +81 -81
  85. package/src/components/data/DataGrid/DataGridColumnsModal/helpers.ts +9 -9
  86. package/src/components/data/DataGrid/DataGridColumnsModal/hooks.tsx +59 -59
  87. package/src/components/data/DataGrid/DataGridColumnsModal/index.tsx +182 -182
  88. package/src/components/data/DataGrid/DataGridColumnsModal/styles.ts +104 -104
  89. package/src/components/data/DataGrid/DataGridEditableCell/CheckboxEditableCell.tsx +38 -38
  90. package/src/components/data/DataGrid/DataGridEditableCell/DateEditableCell.tsx +39 -39
  91. package/src/components/data/DataGrid/DataGridEditableCell/NumberEditableCell.tsx +75 -75
  92. package/src/components/data/DataGrid/DataGridEditableCell/TextEditableCell.tsx +38 -38
  93. package/src/components/data/DataGrid/DataGridEditableCell/index.tsx +106 -106
  94. package/src/components/data/DataGrid/DataGridEditableCell/styles.ts +35 -35
  95. package/src/components/data/DataGrid/DataGridEditableCell/types.ts +19 -19
  96. package/src/components/data/DataGrid/DataGridFilterMenu/FilterValuesScroller.tsx +129 -129
  97. package/src/components/data/DataGrid/DataGridFilterMenu/hooks.tsx +81 -81
  98. package/src/components/data/DataGrid/DataGridFilterMenu/index.tsx +370 -370
  99. package/src/components/data/DataGrid/DataGridFilterMenu/styles.ts +97 -97
  100. package/src/components/data/DataGrid/DataGridFooter.tsx +45 -45
  101. package/src/components/data/DataGrid/DataGridHeader.tsx +74 -74
  102. package/src/components/data/DataGrid/DataGridHeaderCell.tsx +112 -112
  103. package/src/components/data/DataGrid/DataGridRowTemplate.tsx +83 -83
  104. package/src/components/data/DataGrid/DataGridToolbar.tsx +134 -134
  105. package/src/components/data/DataGrid/FilterModalContent/index.tsx +135 -135
  106. package/src/components/data/DataGrid/FilterModalContent/styles.ts +22 -22
  107. package/src/components/data/DataGrid/constants.ts +6 -6
  108. package/src/components/data/DataGrid/helpers/columns.tsx +394 -394
  109. package/src/components/data/DataGrid/helpers/filters.ts +287 -287
  110. package/src/components/data/DataGrid/helpers/index.ts +2 -2
  111. package/src/components/data/DataGrid/hooks/index.ts +29 -29
  112. package/src/components/data/DataGrid/hooks/useDataGrid.tsx +380 -380
  113. package/src/components/data/DataGrid/hooks/useDataGridChangedRows.ts +97 -97
  114. package/src/components/data/DataGrid/hooks/useDataGridCopy.ts +174 -174
  115. package/src/components/data/DataGrid/hooks/useDataGridSettings.ts +48 -48
  116. package/src/components/data/DataGrid/hooks/useRefreshModal.tsx +48 -48
  117. package/src/components/data/DataGrid/index.tsx +122 -122
  118. package/src/components/data/DataGrid/styles.ts +430 -430
  119. package/src/components/data/DataGrid/types.ts +372 -372
  120. package/src/components/data/SqlRequestDataGrid/SqlRequestForeignListEditableCell.tsx +16 -16
  121. package/src/components/data/SqlRequestDataGrid/helpers/columns.tsx +479 -479
  122. package/src/components/data/SqlRequestDataGrid/helpers/index.ts +2 -2
  123. package/src/components/data/SqlRequestDataGrid/helpers/sqlRequests.ts +16 -16
  124. package/src/components/data/SqlRequestDataGrid/index.tsx +420 -420
  125. package/src/components/data/SqlRequestDataGrid/styles.ts +15 -15
  126. package/src/components/data/SqlRequestDataGrid/types.ts +74 -74
  127. package/src/components/data/SqlRequestForeignList/index.tsx +257 -257
  128. package/src/components/data/SqlRequestForeignList/styles.ts +43 -43
  129. package/src/components/data/SqlRequestForeignList/types.ts +32 -32
  130. package/src/components/data/SqlRequestGrid/filters/FiltersSidebar.tsx +108 -108
  131. package/src/components/data/SqlRequestGrid/filters/styles.ts +88 -88
  132. package/src/components/data/SqlRequestGrid/helpers/index.ts +1 -1
  133. package/src/components/data/SqlRequestGrid/helpers/sqlRequests.ts +16 -16
  134. package/src/components/data/SqlRequestGrid/index.tsx +315 -315
  135. package/src/components/data/SqlRequestGrid/styles.ts +20 -20
  136. package/src/components/data/SqlRequestGrid/types.ts +73 -73
  137. package/src/components/data/VirtualScroller/hooks.ts +71 -71
  138. package/src/components/data/VirtualScroller/index.tsx +89 -89
  139. package/src/components/data/VirtualScroller/styles.ts +57 -57
  140. package/src/components/data/VirtualScroller/types.ts +10 -10
  141. package/src/components/data/index.ts +16 -16
  142. package/src/components/forms/AutoTextArea.tsx +48 -48
  143. package/src/components/forms/Button.tsx +132 -132
  144. package/src/components/forms/Form/Checkbox.tsx +12 -12
  145. package/src/components/forms/Form/FormGroup.tsx +31 -31
  146. package/src/components/forms/Form/Input.tsx +16 -16
  147. package/src/components/forms/Form/Row.tsx +32 -32
  148. package/src/components/forms/Form/Select.tsx +87 -87
  149. package/src/components/forms/Form/TextArea.tsx +17 -17
  150. package/src/components/forms/Form/index.tsx +45 -45
  151. package/src/components/forms/Form/styles.ts +184 -184
  152. package/src/components/forms/IconButton.tsx +67 -67
  153. package/src/components/forms/IndeterminateCheckbox.tsx +46 -46
  154. package/src/components/forms/NumberInput.tsx +53 -53
  155. package/src/components/forms/Select.tsx +34 -34
  156. package/src/components/forms/VerticalLabel.tsx +20 -20
  157. package/src/components/forms/index.ts +9 -9
  158. package/src/components/forms/styles.ts +42 -42
  159. package/src/components/index.ts +6 -6
  160. package/src/components/layout/Columns.ts +27 -27
  161. package/src/components/layout/Dropdown/index.tsx +113 -113
  162. package/src/components/layout/Dropdown/styles.ts +45 -45
  163. package/src/components/layout/Flexbox.ts +21 -21
  164. package/src/components/layout/Grid/index.tsx +8 -8
  165. package/src/components/layout/Grid/styles.ts +34 -34
  166. package/src/components/layout/Loading/index.tsx +29 -29
  167. package/src/components/layout/Loading/styles.ts +29 -29
  168. package/src/components/layout/Masonry/index.tsx +29 -29
  169. package/src/components/layout/Masonry/styles.ts +20 -20
  170. package/src/components/layout/Modal/index.tsx +51 -51
  171. package/src/components/layout/Modal/styles.ts +125 -125
  172. package/src/components/layout/index.ts +7 -7
  173. package/src/components/search/HighlightedText.tsx +41 -41
  174. package/src/components/search/QuickSearchBar.tsx +99 -99
  175. package/src/components/search/QuickSearchResults.tsx +86 -86
  176. package/src/components/search/index.ts +9 -9
  177. package/src/components/search/styles.ts +96 -96
  178. package/src/components/search/types.ts +29 -29
  179. package/src/components/ui/Avatar/index.tsx +54 -54
  180. package/src/components/ui/Card/index.tsx +14 -14
  181. package/src/components/ui/Card/styles.ts +37 -37
  182. package/src/components/ui/ContextMenu/index.tsx +79 -79
  183. package/src/components/ui/ContextMenu/styles.ts +119 -119
  184. package/src/components/ui/Ellipsis.tsx +34 -34
  185. package/src/components/ui/Label.tsx +99 -99
  186. package/src/components/ui/Message/index.tsx +57 -57
  187. package/src/components/ui/Message/styles.ts +40 -40
  188. package/src/components/ui/TabsView/TabsView.tsx +38 -38
  189. package/src/components/ui/TabsView/styles.ts +73 -73
  190. package/src/components/ui/TabsView/types.ts +12 -12
  191. package/src/components/ui/index.ts +7 -7
  192. package/src/config/index.ts +14 -14
  193. package/src/helpers/dates.ts +17 -17
  194. package/src/helpers/getScrollbarSize.ts +14 -14
  195. package/src/helpers/index.ts +6 -6
  196. package/src/helpers/numbers.ts +63 -63
  197. package/src/helpers/responsive.ts +83 -83
  198. package/src/helpers/text.ts +13 -13
  199. package/src/helpers/types.ts +1 -1
  200. package/src/hooks/index.ts +7 -7
  201. package/src/hooks/useContainerMediaQuery.ts +7 -7
  202. package/src/hooks/useElementSize.ts +24 -24
  203. package/src/hooks/useMediaQuery.ts +9 -9
  204. package/src/hooks/useMediaQueryForWidth.ts +35 -35
  205. package/src/hooks/useMutableState.ts +17 -17
  206. package/src/hooks/useShowArchived.ts +28 -28
  207. package/src/hooks/useWindowSize.ts +20 -20
  208. package/src/index.ts +9 -9
  209. package/src/providers/AuthenticationProvider/helpers.ts +3 -3
  210. package/src/providers/AuthenticationProvider/index.tsx +303 -303
  211. package/src/providers/LoadingProvider/index.tsx +47 -47
  212. package/src/providers/PortalsProvider/index.tsx +54 -54
  213. package/src/providers/PortalsProvider/styles.ts +31 -31
  214. package/src/providers/SettingsProvider/index.tsx +70 -70
  215. package/src/providers/ThemeProvider/ThemeProvider.ts +66 -66
  216. package/src/providers/ThemeProvider/defaultTheme.ts +470 -470
  217. package/src/providers/ThemeProvider/helpers.ts +84 -84
  218. package/src/providers/ThemeProvider/index.ts +5 -5
  219. package/src/providers/ThemeProvider/types.ts +134 -134
  220. package/src/providers/TrackingProvider/index.tsx +71 -71
  221. package/src/providers/UiProviders/index.tsx +76 -76
  222. package/src/providers/UiProviders/styles.ts +10 -10
  223. package/src/providers/hooks.ts +12 -12
  224. package/src/providers/index.ts +8 -8
  225. package/src/services/HttpService.ts +92 -92
  226. package/src/services/WebSocketService.ts +155 -155
  227. package/src/services/advancedRequests.ts +102 -102
  228. package/src/services/base.ts +23 -23
  229. package/src/services/globalSearch.ts +32 -32
  230. package/src/services/hooks.ts +92 -92
  231. package/src/services/index.ts +21 -21
  232. package/src/services/requests/auth.ts +44 -44
  233. package/src/services/requests/generic.ts +62 -62
  234. package/src/services/requests/tracking.ts +12 -12
  235. package/src/services/requests/userProfiles.ts +35 -35
  236. package/src/services/requests/users.ts +28 -28
  237. package/src/services/smartQueries.ts +122 -122
  238. package/src/services/sqlRequests.ts +111 -111
  239. package/src/services/types/auth.ts +98 -98
  240. package/src/services/types/base.ts +10 -10
  241. package/src/services/types/generic.ts +82 -82
  242. package/src/services/types/tracking.ts +29 -29
  243. package/src/services/types/userProfiles.ts +79 -79
  244. package/src/services/types/users.ts +74 -74
  245. package/src/services/updateSqlRequests.ts +32 -32
  246. package/src/styles/animations.scss +30 -30
  247. package/src/styles/index.scss +42 -42
  248. package/src/typings.d.ts +17 -17
  249. package/tsconfig.json +18 -18
@@ -1,122 +1,122 @@
1
- import { useWebSocketRequestHandler } from './hooks';
2
-
3
- export type FieldDTO<T extends string = string> = {
4
- fieldName?: T;
5
- fieldAlias?: string;
6
- operator?:
7
- | 'add'
8
- | 'avg'
9
- | 'concat'
10
- | 'count'
11
- | 'divide'
12
- | 'groupConcat'
13
- | 'if'
14
- | 'ifNull'
15
- | 'jsonObject'
16
- | 'length'
17
- | 'max'
18
- | 'min'
19
- | 'modulo'
20
- | 'multiply'
21
- | 'subtract'
22
- | 'sum'
23
- | 'trim';
24
- operands?: FieldDTO[];
25
- constantValue?: string | number | boolean | null;
26
- groupBy?: boolean;
27
- };
28
-
29
- export type ConditionOperator =
30
- | 'lessThan'
31
- | 'lessThanOrEqual'
32
- | 'lessThanOrEquals'
33
- | 'equals'
34
- | 'notEquals'
35
- | 'greaterThanOrEqual'
36
- | 'greaterThanOrEquals'
37
- | 'greaterThan'
38
- | 'like'
39
- | 'contains'
40
- | 'notContains'
41
- | 'startsWith'
42
- | 'endsWith'
43
- | 'notLike'
44
- | 'inRange'
45
- | 'between'
46
- | 'isNull'
47
- | 'isNotNull'
48
- | 'inArray'
49
- | 'in'
50
- | 'not'
51
- | 'and'
52
- | 'or';
53
-
54
- export type HavingDTO = {
55
- operator: ConditionOperator;
56
- value?:
57
- | string
58
- | number
59
- | boolean
60
- | null
61
- | (string | number | boolean | null)[];
62
- };
63
-
64
- export type ConditionDTO = HavingDTO & {
65
- field: string | FieldDTO;
66
- children?: boolean;
67
- };
68
-
69
- export type OrderByDirection = 'ascending' | 'descending';
70
-
71
- export type FooterFunction = 'sum' | 'avg' | 'count' | 'max' | 'min';
72
-
73
- export type ColumnDTO = {
74
- key: string;
75
- field: FieldDTO;
76
- having?: HavingDTO;
77
- orderBy?: OrderByDirection;
78
- groupBy?: boolean;
79
- footer?: FooterFunction;
80
- };
81
-
82
- export type ColumnWithHavingDTO = ColumnDTO &
83
- Required<Pick<ColumnDTO, 'having'>>;
84
- export type ColumnWithFooterDTO = ColumnDTO &
85
- Required<Pick<ColumnDTO, 'footer'>>;
86
-
87
- export type QueryDTO = {
88
- type: string;
89
- columns?: ColumnDTO[];
90
- filterColumn?: ColumnDTO;
91
- where?: ConditionDTO[];
92
- offset?: number;
93
- limit?: number;
94
- getCount?: boolean;
95
- unique?: boolean;
96
- };
97
-
98
- export type RequestRow<R> = {
99
- [K in keyof R]: R[K] extends string | number | null | undefined
100
- ? R[K]
101
- : string | number | null | undefined;
102
- };
103
-
104
- export type ResponseDTO<T = unknown> = {
105
- data: RequestRow<T>[];
106
- count?: number;
107
- totals?: Record<string, string | number | null | undefined>;
108
- };
109
-
110
- export type RequestHandler<T> = (request: QueryDTO) => Promise<ResponseDTO<T>>;
111
-
112
- export const useSmartQueryHandler = <T = unknown>(
113
- name: string
114
- ): [
115
- RequestHandler<T>,
116
- RequestHandler<{ id: string }>,
117
- RequestHandler<Partial<T>>
118
- ] => [
119
- useWebSocketRequestHandler<QueryDTO, ResponseDTO<T>>(name),
120
- useWebSocketRequestHandler<QueryDTO, ResponseDTO<{ id: string }>>(name),
121
- useWebSocketRequestHandler<QueryDTO, ResponseDTO<Partial<T>>>(name),
122
- ];
1
+ import { useWebSocketRequestHandler } from './hooks';
2
+
3
+ export type FieldDTO<T extends string = string> = {
4
+ fieldName?: T;
5
+ fieldAlias?: string;
6
+ operator?:
7
+ | 'add'
8
+ | 'avg'
9
+ | 'concat'
10
+ | 'count'
11
+ | 'divide'
12
+ | 'groupConcat'
13
+ | 'if'
14
+ | 'ifNull'
15
+ | 'jsonObject'
16
+ | 'length'
17
+ | 'max'
18
+ | 'min'
19
+ | 'modulo'
20
+ | 'multiply'
21
+ | 'subtract'
22
+ | 'sum'
23
+ | 'trim';
24
+ operands?: FieldDTO[];
25
+ constantValue?: string | number | boolean | null;
26
+ groupBy?: boolean;
27
+ };
28
+
29
+ export type ConditionOperator =
30
+ | 'lessThan'
31
+ | 'lessThanOrEqual'
32
+ | 'lessThanOrEquals'
33
+ | 'equals'
34
+ | 'notEquals'
35
+ | 'greaterThanOrEqual'
36
+ | 'greaterThanOrEquals'
37
+ | 'greaterThan'
38
+ | 'like'
39
+ | 'contains'
40
+ | 'notContains'
41
+ | 'startsWith'
42
+ | 'endsWith'
43
+ | 'notLike'
44
+ | 'inRange'
45
+ | 'between'
46
+ | 'isNull'
47
+ | 'isNotNull'
48
+ | 'inArray'
49
+ | 'in'
50
+ | 'not'
51
+ | 'and'
52
+ | 'or';
53
+
54
+ export type HavingDTO = {
55
+ operator: ConditionOperator;
56
+ value?:
57
+ | string
58
+ | number
59
+ | boolean
60
+ | null
61
+ | (string | number | boolean | null)[];
62
+ };
63
+
64
+ export type ConditionDTO = HavingDTO & {
65
+ field: string | FieldDTO;
66
+ children?: boolean;
67
+ };
68
+
69
+ export type OrderByDirection = 'ascending' | 'descending';
70
+
71
+ export type FooterFunction = 'sum' | 'avg' | 'count' | 'max' | 'min';
72
+
73
+ export type ColumnDTO = {
74
+ key: string;
75
+ field: FieldDTO;
76
+ having?: HavingDTO;
77
+ orderBy?: OrderByDirection;
78
+ groupBy?: boolean;
79
+ footer?: FooterFunction;
80
+ };
81
+
82
+ export type ColumnWithHavingDTO = ColumnDTO &
83
+ Required<Pick<ColumnDTO, 'having'>>;
84
+ export type ColumnWithFooterDTO = ColumnDTO &
85
+ Required<Pick<ColumnDTO, 'footer'>>;
86
+
87
+ export type QueryDTO = {
88
+ type: string;
89
+ columns?: ColumnDTO[];
90
+ filterColumn?: ColumnDTO;
91
+ where?: ConditionDTO[];
92
+ offset?: number;
93
+ limit?: number;
94
+ getCount?: boolean;
95
+ unique?: boolean;
96
+ };
97
+
98
+ export type RequestRow<R> = {
99
+ [K in keyof R]: R[K] extends string | number | null | undefined
100
+ ? R[K]
101
+ : string | number | null | undefined;
102
+ };
103
+
104
+ export type ResponseDTO<T = unknown> = {
105
+ data: RequestRow<T>[];
106
+ count?: number;
107
+ totals?: Record<string, string | number | null | undefined>;
108
+ };
109
+
110
+ export type RequestHandler<T> = (request: QueryDTO) => Promise<ResponseDTO<T>>;
111
+
112
+ export const useSmartQueryHandler = <T = unknown>(
113
+ name: string
114
+ ): [
115
+ RequestHandler<T>,
116
+ RequestHandler<{ id: string }>,
117
+ RequestHandler<Partial<T>>
118
+ ] => [
119
+ useWebSocketRequestHandler<QueryDTO, ResponseDTO<T>>(name),
120
+ useWebSocketRequestHandler<QueryDTO, ResponseDTO<{ id: string }>>(name),
121
+ useWebSocketRequestHandler<QueryDTO, ResponseDTO<Partial<T>>>(name),
122
+ ];
@@ -1,111 +1,111 @@
1
- import { useWebSocketRequestHandler } from './hooks';
2
-
3
- export type FieldDTO<T extends string = string> = {
4
- fieldName?: T;
5
- fieldAlias?: string;
6
- operator?:
7
- | 'add'
8
- | 'concat'
9
- | 'divide'
10
- | 'groupConcat'
11
- | 'if'
12
- | 'ifNull'
13
- | 'jsonObject'
14
- | 'length'
15
- | 'modulo'
16
- | 'multiply'
17
- | 'subtract'
18
- | 'sum'
19
- | 'trim';
20
- operands?: FieldDTO[];
21
- constantValue?: string | number | boolean | null;
22
- groupBy?: boolean;
23
- };
24
-
25
- export type ConditionDTO = {
26
- field: string;
27
- operator:
28
- | 'lessThan'
29
- | 'lessThanOrEqual'
30
- | 'lessThanOrEquals'
31
- | 'equals'
32
- | 'notEquals'
33
- | 'greaterThanOrEqual'
34
- | 'greaterThanOrEquals'
35
- | 'greaterThan'
36
- | 'like'
37
- | 'contains'
38
- | 'notContains'
39
- | 'startsWith'
40
- | 'endsWith'
41
- | 'notLike'
42
- | 'inRange'
43
- | 'between'
44
- | 'isNull'
45
- | 'isNotNull'
46
- | 'inArray'
47
- | 'in'
48
- | 'not'
49
- | 'and'
50
- | 'or';
51
- value?:
52
- | string
53
- | number
54
- | boolean
55
- | null
56
- | (string | number | boolean | null)[];
57
- children?: boolean;
58
- };
59
-
60
- export type OrderByDTO = {
61
- field: string;
62
- type: string;
63
- direction?: 'ASC' | 'DESC';
64
- };
65
-
66
- export type SqlRequestFooterFunction = 'sum' | 'avg' | 'count' | 'max' | 'min';
67
-
68
- export type SqlRequestDTO = {
69
- columns?: string[];
70
- returnColumns?: string[];
71
- columnTypes?: string[];
72
- totalColumns?: Record<string, SqlRequestFooterFunction>;
73
- conditions?: ConditionDTO[];
74
- orderBy?: OrderByDTO[];
75
- start?: number;
76
- length?: number;
77
- getCount?: boolean;
78
- unique?: boolean;
79
- };
80
-
81
- export type SqlRequestRow<R> = {
82
- [K in keyof R]: R[K] extends string | number | null | undefined
83
- ? R[K]
84
- : string | number | null | undefined;
85
- };
86
-
87
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
88
- export type SqlResponseDTO<T = any> = {
89
- data: SqlRequestRow<T>[];
90
- count?: number;
91
- totals?: Record<string, string | number | null | undefined>;
92
- };
93
-
94
- type SqlRequestHandler<T> = (
95
- request: SqlRequestDTO
96
- ) => Promise<SqlResponseDTO<T>>;
97
-
98
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
99
- export const useSqlRequestHandler = <T = any>(
100
- name: string
101
- ): [
102
- SqlRequestHandler<T>,
103
- SqlRequestHandler<{ Id: string }>,
104
- SqlRequestHandler<Partial<T>>
105
- ] => [
106
- useWebSocketRequestHandler<SqlRequestDTO, SqlResponseDTO<T>>(name),
107
- useWebSocketRequestHandler<SqlRequestDTO, SqlResponseDTO<{ Id: string }>>(
108
- name
109
- ),
110
- useWebSocketRequestHandler<SqlRequestDTO, SqlResponseDTO<Partial<T>>>(name),
111
- ];
1
+ import { useWebSocketRequestHandler } from './hooks';
2
+
3
+ export type FieldDTO<T extends string = string> = {
4
+ fieldName?: T;
5
+ fieldAlias?: string;
6
+ operator?:
7
+ | 'add'
8
+ | 'concat'
9
+ | 'divide'
10
+ | 'groupConcat'
11
+ | 'if'
12
+ | 'ifNull'
13
+ | 'jsonObject'
14
+ | 'length'
15
+ | 'modulo'
16
+ | 'multiply'
17
+ | 'subtract'
18
+ | 'sum'
19
+ | 'trim';
20
+ operands?: FieldDTO[];
21
+ constantValue?: string | number | boolean | null;
22
+ groupBy?: boolean;
23
+ };
24
+
25
+ export type ConditionDTO = {
26
+ field: string;
27
+ operator:
28
+ | 'lessThan'
29
+ | 'lessThanOrEqual'
30
+ | 'lessThanOrEquals'
31
+ | 'equals'
32
+ | 'notEquals'
33
+ | 'greaterThanOrEqual'
34
+ | 'greaterThanOrEquals'
35
+ | 'greaterThan'
36
+ | 'like'
37
+ | 'contains'
38
+ | 'notContains'
39
+ | 'startsWith'
40
+ | 'endsWith'
41
+ | 'notLike'
42
+ | 'inRange'
43
+ | 'between'
44
+ | 'isNull'
45
+ | 'isNotNull'
46
+ | 'inArray'
47
+ | 'in'
48
+ | 'not'
49
+ | 'and'
50
+ | 'or';
51
+ value?:
52
+ | string
53
+ | number
54
+ | boolean
55
+ | null
56
+ | (string | number | boolean | null)[];
57
+ children?: boolean;
58
+ };
59
+
60
+ export type OrderByDTO = {
61
+ field: string;
62
+ type: string;
63
+ direction?: 'ASC' | 'DESC';
64
+ };
65
+
66
+ export type SqlRequestFooterFunction = 'sum' | 'avg' | 'count' | 'max' | 'min';
67
+
68
+ export type SqlRequestDTO = {
69
+ columns?: string[];
70
+ returnColumns?: string[];
71
+ columnTypes?: string[];
72
+ totalColumns?: Record<string, SqlRequestFooterFunction>;
73
+ conditions?: ConditionDTO[];
74
+ orderBy?: OrderByDTO[];
75
+ start?: number;
76
+ length?: number;
77
+ getCount?: boolean;
78
+ unique?: boolean;
79
+ };
80
+
81
+ export type SqlRequestRow<R> = {
82
+ [K in keyof R]: R[K] extends string | number | null | undefined
83
+ ? R[K]
84
+ : string | number | null | undefined;
85
+ };
86
+
87
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
88
+ export type SqlResponseDTO<T = any> = {
89
+ data: SqlRequestRow<T>[];
90
+ count?: number;
91
+ totals?: Record<string, string | number | null | undefined>;
92
+ };
93
+
94
+ type SqlRequestHandler<T> = (
95
+ request: SqlRequestDTO
96
+ ) => Promise<SqlResponseDTO<T>>;
97
+
98
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
99
+ export const useSqlRequestHandler = <T = any>(
100
+ name: string
101
+ ): [
102
+ SqlRequestHandler<T>,
103
+ SqlRequestHandler<{ Id: string }>,
104
+ SqlRequestHandler<Partial<T>>
105
+ ] => [
106
+ useWebSocketRequestHandler<SqlRequestDTO, SqlResponseDTO<T>>(name),
107
+ useWebSocketRequestHandler<SqlRequestDTO, SqlResponseDTO<{ Id: string }>>(
108
+ name
109
+ ),
110
+ useWebSocketRequestHandler<SqlRequestDTO, SqlResponseDTO<Partial<T>>>(name),
111
+ ];
@@ -1,98 +1,98 @@
1
- import { z } from 'zod';
2
-
3
- import { userDtoSchema } from './users';
4
-
5
- export const loginRequestDtoSchema = z.object({
6
- username: z.string(),
7
- password: z.string(),
8
- });
9
-
10
- export const loginResponseDtoSchema = z.object({
11
- status: z.number(),
12
- token: z.string(),
13
- user: userDtoSchema.nullable(),
14
- });
15
-
16
- export type LoginRequestDTO = z.infer<typeof loginRequestDtoSchema>;
17
- export type LoginResponseDTO = z.infer<typeof loginResponseDtoSchema>;
18
-
19
- /*****/
20
-
21
- export const logoutRequestDtoSchema = z.object({});
22
-
23
- export const logoutResponseDtoSchema = z.object({
24
- status: z.number(),
25
- });
26
-
27
- export type LogoutRequestDTO = z.infer<typeof logoutRequestDtoSchema>;
28
- export type LogoutResponseDTO = z.infer<typeof logoutResponseDtoSchema>;
29
-
30
- /*****/
31
-
32
- export const authenticateRequestDtoSchema = z.object({
33
- token: z.string(),
34
- });
35
-
36
- export const authenticateResponseDtoSchema = z.object({
37
- status: z.number(),
38
- user: userDtoSchema.nullable(),
39
- });
40
-
41
- export type AuthenticateRequestDTO = z.infer<
42
- typeof authenticateRequestDtoSchema
43
- >;
44
- export type AuthenticateResponseDTO = z.infer<
45
- typeof authenticateResponseDtoSchema
46
- >;
47
-
48
- /*****/
49
-
50
- export const sendRecoveryKeyRequestDtoSchema = z.object({
51
- email: z.string(),
52
- });
53
-
54
- export const sendRecoveryKeyResponseDtoSchema = z.object({
55
- status: z.number(),
56
- });
57
-
58
- export type SendRecoveryKeyRequestDTO = z.infer<
59
- typeof sendRecoveryKeyRequestDtoSchema
60
- >;
61
- export type SendRecoveryKeyResponseDTO = z.infer<
62
- typeof sendRecoveryKeyResponseDtoSchema
63
- >;
64
-
65
- /*****/
66
-
67
- export const checkRecoveryKeyRequestDtoSchema = z.object({
68
- key: z.string(),
69
- });
70
-
71
- export const checkRecoveryKeyResponseDtoSchema = z.object({
72
- status: z.number(),
73
- });
74
-
75
- export type CheckRecoveryKeyRequestDTO = z.infer<
76
- typeof checkRecoveryKeyRequestDtoSchema
77
- >;
78
- export type CheckRecoveryKeyResponseDTO = z.infer<
79
- typeof checkRecoveryKeyResponseDtoSchema
80
- >;
81
-
82
- /*****/
83
-
84
- export const resetPasswordRequestDtoSchema = z.object({
85
- key: z.string(),
86
- password: z.string(),
87
- });
88
-
89
- export const resetPasswordResponseDtoSchema = z.object({
90
- status: z.number(),
91
- });
92
-
93
- export type ResetPasswordRequestDTO = z.infer<
94
- typeof resetPasswordRequestDtoSchema
95
- >;
96
- export type ResetPasswordResponseDTO = z.infer<
97
- typeof resetPasswordResponseDtoSchema
98
- >;
1
+ import * as z from 'zod';
2
+
3
+ import { userDtoSchema } from './users';
4
+
5
+ export const loginRequestDtoSchema = z.object({
6
+ username: z.string(),
7
+ password: z.string(),
8
+ });
9
+
10
+ export const loginResponseDtoSchema = z.object({
11
+ status: z.number(),
12
+ token: z.string(),
13
+ user: userDtoSchema.nullable(),
14
+ });
15
+
16
+ export type LoginRequestDTO = z.infer<typeof loginRequestDtoSchema>;
17
+ export type LoginResponseDTO = z.infer<typeof loginResponseDtoSchema>;
18
+
19
+ /*****/
20
+
21
+ export const logoutRequestDtoSchema = z.object({});
22
+
23
+ export const logoutResponseDtoSchema = z.object({
24
+ status: z.number(),
25
+ });
26
+
27
+ export type LogoutRequestDTO = z.infer<typeof logoutRequestDtoSchema>;
28
+ export type LogoutResponseDTO = z.infer<typeof logoutResponseDtoSchema>;
29
+
30
+ /*****/
31
+
32
+ export const authenticateRequestDtoSchema = z.object({
33
+ token: z.string(),
34
+ });
35
+
36
+ export const authenticateResponseDtoSchema = z.object({
37
+ status: z.number(),
38
+ user: userDtoSchema.nullable(),
39
+ });
40
+
41
+ export type AuthenticateRequestDTO = z.infer<
42
+ typeof authenticateRequestDtoSchema
43
+ >;
44
+ export type AuthenticateResponseDTO = z.infer<
45
+ typeof authenticateResponseDtoSchema
46
+ >;
47
+
48
+ /*****/
49
+
50
+ export const sendRecoveryKeyRequestDtoSchema = z.object({
51
+ email: z.string(),
52
+ });
53
+
54
+ export const sendRecoveryKeyResponseDtoSchema = z.object({
55
+ status: z.number(),
56
+ });
57
+
58
+ export type SendRecoveryKeyRequestDTO = z.infer<
59
+ typeof sendRecoveryKeyRequestDtoSchema
60
+ >;
61
+ export type SendRecoveryKeyResponseDTO = z.infer<
62
+ typeof sendRecoveryKeyResponseDtoSchema
63
+ >;
64
+
65
+ /*****/
66
+
67
+ export const checkRecoveryKeyRequestDtoSchema = z.object({
68
+ key: z.string(),
69
+ });
70
+
71
+ export const checkRecoveryKeyResponseDtoSchema = z.object({
72
+ status: z.number(),
73
+ });
74
+
75
+ export type CheckRecoveryKeyRequestDTO = z.infer<
76
+ typeof checkRecoveryKeyRequestDtoSchema
77
+ >;
78
+ export type CheckRecoveryKeyResponseDTO = z.infer<
79
+ typeof checkRecoveryKeyResponseDtoSchema
80
+ >;
81
+
82
+ /*****/
83
+
84
+ export const resetPasswordRequestDtoSchema = z.object({
85
+ key: z.string(),
86
+ password: z.string(),
87
+ });
88
+
89
+ export const resetPasswordResponseDtoSchema = z.object({
90
+ status: z.number(),
91
+ });
92
+
93
+ export type ResetPasswordRequestDTO = z.infer<
94
+ typeof resetPasswordRequestDtoSchema
95
+ >;
96
+ export type ResetPasswordResponseDTO = z.infer<
97
+ typeof resetPasswordResponseDtoSchema
98
+ >;
@@ -1,10 +1,10 @@
1
- import { z } from 'zod';
2
-
3
- export const baseModelDtoSchema = z.object({
4
- id: z.string().nullable(),
5
- });
6
-
7
- export type BaseModelDTO = z.infer<typeof baseModelDtoSchema>;
8
-
9
- export const UUID_REGEX =
10
- /^[0-9a-f]{8}-[0-9a-f]{4}-[0-5][0-9a-f]{3}-[089ab][0-9a-f]{3}-[0-9a-f]{12}$/i;
1
+ import * as z from 'zod';
2
+
3
+ export const baseModelDtoSchema = z.object({
4
+ id: z.string().nullable(),
5
+ });
6
+
7
+ export type BaseModelDTO = z.infer<typeof baseModelDtoSchema>;
8
+
9
+ export const UUID_REGEX =
10
+ /^[0-9a-f]{8}-[0-9a-f]{4}-[0-5][0-9a-f]{3}-[089ab][0-9a-f]{3}-[0-9a-f]{12}$/i;