@addev-be/ui 1.0.0 → 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 (253) 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/index.d.ts +1 -0
  60. package/dist/helpers/index.js +1 -0
  61. package/dist/helpers/types.d.ts +2 -0
  62. package/dist/helpers/types.js +8 -0
  63. package/dist/services/requests/generic.d.ts +1 -1
  64. package/dist/services/requests/userPermissions.d.ts +4 -0
  65. package/dist/services/requests/userPermissions.js +20 -0
  66. package/dist/services/types/auth.d.ts +1 -1
  67. package/dist/services/types/auth.js +50 -27
  68. package/dist/services/types/base.d.ts +1 -1
  69. package/dist/services/types/base.js +26 -3
  70. package/dist/services/types/generic.d.ts +1 -1
  71. package/dist/services/types/generic.js +44 -21
  72. package/dist/services/types/tracking.d.ts +1 -1
  73. package/dist/services/types/tracking.js +29 -6
  74. package/dist/services/types/userProfiles.d.ts +1 -1
  75. package/dist/services/types/userProfiles.js +41 -18
  76. package/dist/services/types/users.d.ts +1 -1
  77. package/dist/services/types/users.js +47 -24
  78. package/eslint.config.js +3 -3
  79. package/package.json +2 -2
  80. package/src/Icons.tsx +138 -138
  81. package/src/components/auth/LoginForm.tsx +84 -84
  82. package/src/components/auth/LoginPage.tsx +32 -32
  83. package/src/components/auth/PasswordRecoveryForm.tsx +52 -52
  84. package/src/components/auth/PasswordResetForm.tsx +112 -112
  85. package/src/components/auth/index.ts +4 -4
  86. package/src/components/auth/styles.ts +14 -14
  87. package/src/components/data/DataGrid/DataGridCell.tsx +81 -81
  88. package/src/components/data/DataGrid/DataGridColumnsModal/helpers.ts +9 -9
  89. package/src/components/data/DataGrid/DataGridColumnsModal/hooks.tsx +59 -59
  90. package/src/components/data/DataGrid/DataGridColumnsModal/index.tsx +182 -182
  91. package/src/components/data/DataGrid/DataGridColumnsModal/styles.ts +104 -104
  92. package/src/components/data/DataGrid/DataGridEditableCell/CheckboxEditableCell.tsx +38 -38
  93. package/src/components/data/DataGrid/DataGridEditableCell/DateEditableCell.tsx +39 -39
  94. package/src/components/data/DataGrid/DataGridEditableCell/NumberEditableCell.tsx +75 -75
  95. package/src/components/data/DataGrid/DataGridEditableCell/TextEditableCell.tsx +38 -38
  96. package/src/components/data/DataGrid/DataGridEditableCell/index.tsx +106 -106
  97. package/src/components/data/DataGrid/DataGridEditableCell/styles.ts +35 -35
  98. package/src/components/data/DataGrid/DataGridEditableCell/types.ts +19 -19
  99. package/src/components/data/DataGrid/DataGridFilterMenu/FilterValuesScroller.tsx +129 -129
  100. package/src/components/data/DataGrid/DataGridFilterMenu/hooks.tsx +81 -81
  101. package/src/components/data/DataGrid/DataGridFilterMenu/index.tsx +370 -370
  102. package/src/components/data/DataGrid/DataGridFilterMenu/styles.ts +97 -97
  103. package/src/components/data/DataGrid/DataGridFooter.tsx +45 -45
  104. package/src/components/data/DataGrid/DataGridHeader.tsx +74 -74
  105. package/src/components/data/DataGrid/DataGridHeaderCell.tsx +112 -112
  106. package/src/components/data/DataGrid/DataGridRowTemplate.tsx +83 -83
  107. package/src/components/data/DataGrid/DataGridToolbar.tsx +134 -134
  108. package/src/components/data/DataGrid/FilterModalContent/index.tsx +135 -135
  109. package/src/components/data/DataGrid/FilterModalContent/styles.ts +22 -22
  110. package/src/components/data/DataGrid/constants.ts +6 -6
  111. package/src/components/data/DataGrid/helpers/columns.tsx +394 -394
  112. package/src/components/data/DataGrid/helpers/filters.ts +287 -287
  113. package/src/components/data/DataGrid/helpers/index.ts +2 -2
  114. package/src/components/data/DataGrid/hooks/index.ts +29 -29
  115. package/src/components/data/DataGrid/hooks/useDataGrid.tsx +380 -380
  116. package/src/components/data/DataGrid/hooks/useDataGridChangedRows.ts +97 -97
  117. package/src/components/data/DataGrid/hooks/useDataGridCopy.ts +174 -174
  118. package/src/components/data/DataGrid/hooks/useDataGridSettings.ts +48 -48
  119. package/src/components/data/DataGrid/hooks/useRefreshModal.tsx +48 -48
  120. package/src/components/data/DataGrid/index.tsx +122 -122
  121. package/src/components/data/DataGrid/styles.ts +430 -430
  122. package/src/components/data/DataGrid/types.ts +372 -372
  123. package/src/components/data/SqlRequestDataGrid/SqlRequestForeignListEditableCell.tsx +16 -16
  124. package/src/components/data/SqlRequestDataGrid/helpers/columns.tsx +479 -479
  125. package/src/components/data/SqlRequestDataGrid/helpers/index.ts +2 -2
  126. package/src/components/data/SqlRequestDataGrid/helpers/sqlRequests.ts +16 -16
  127. package/src/components/data/SqlRequestDataGrid/index.tsx +420 -420
  128. package/src/components/data/SqlRequestDataGrid/styles.ts +15 -15
  129. package/src/components/data/SqlRequestDataGrid/types.ts +74 -74
  130. package/src/components/data/SqlRequestForeignList/index.tsx +257 -257
  131. package/src/components/data/SqlRequestForeignList/styles.ts +43 -43
  132. package/src/components/data/SqlRequestForeignList/types.ts +32 -32
  133. package/src/components/data/SqlRequestGrid/filters/FiltersSidebar.tsx +108 -108
  134. package/src/components/data/SqlRequestGrid/filters/styles.ts +88 -88
  135. package/src/components/data/SqlRequestGrid/helpers/index.ts +1 -1
  136. package/src/components/data/SqlRequestGrid/helpers/sqlRequests.ts +16 -16
  137. package/src/components/data/SqlRequestGrid/index.tsx +315 -315
  138. package/src/components/data/SqlRequestGrid/styles.ts +20 -20
  139. package/src/components/data/SqlRequestGrid/types.ts +73 -73
  140. package/src/components/data/VirtualScroller/hooks.ts +71 -71
  141. package/src/components/data/VirtualScroller/index.tsx +89 -89
  142. package/src/components/data/VirtualScroller/styles.ts +57 -57
  143. package/src/components/data/VirtualScroller/types.ts +10 -10
  144. package/src/components/data/index.ts +16 -16
  145. package/src/components/forms/AutoTextArea.tsx +48 -48
  146. package/src/components/forms/Button.tsx +132 -132
  147. package/src/components/forms/Form/Checkbox.tsx +12 -12
  148. package/src/components/forms/Form/FormGroup.tsx +31 -31
  149. package/src/components/forms/Form/Input.tsx +16 -16
  150. package/src/components/forms/Form/Row.tsx +32 -32
  151. package/src/components/forms/Form/Select.tsx +87 -87
  152. package/src/components/forms/Form/TextArea.tsx +17 -17
  153. package/src/components/forms/Form/index.tsx +45 -45
  154. package/src/components/forms/Form/styles.ts +184 -184
  155. package/src/components/forms/IconButton.tsx +67 -67
  156. package/src/components/forms/IndeterminateCheckbox.tsx +46 -46
  157. package/src/components/forms/NumberInput.tsx +53 -53
  158. package/src/components/forms/Select.tsx +34 -34
  159. package/src/components/forms/VerticalLabel.tsx +20 -20
  160. package/src/components/forms/index.ts +9 -9
  161. package/src/components/forms/styles.ts +42 -42
  162. package/src/components/index.ts +6 -6
  163. package/src/components/layout/Columns.ts +27 -27
  164. package/src/components/layout/Dropdown/index.tsx +113 -113
  165. package/src/components/layout/Dropdown/styles.ts +45 -45
  166. package/src/components/layout/Flexbox.ts +21 -21
  167. package/src/components/layout/Grid/index.tsx +8 -8
  168. package/src/components/layout/Grid/styles.ts +34 -34
  169. package/src/components/layout/Loading/index.tsx +29 -29
  170. package/src/components/layout/Loading/styles.ts +29 -29
  171. package/src/components/layout/Masonry/index.tsx +29 -29
  172. package/src/components/layout/Masonry/styles.ts +20 -20
  173. package/src/components/layout/Modal/index.tsx +51 -51
  174. package/src/components/layout/Modal/styles.ts +125 -125
  175. package/src/components/layout/index.ts +7 -7
  176. package/src/components/search/HighlightedText.tsx +41 -41
  177. package/src/components/search/QuickSearchBar.tsx +99 -99
  178. package/src/components/search/QuickSearchResults.tsx +86 -86
  179. package/src/components/search/index.ts +9 -9
  180. package/src/components/search/styles.ts +96 -96
  181. package/src/components/search/types.ts +29 -29
  182. package/src/components/ui/Avatar/index.tsx +54 -54
  183. package/src/components/ui/Card/index.tsx +14 -14
  184. package/src/components/ui/Card/styles.ts +37 -37
  185. package/src/components/ui/ContextMenu/index.tsx +79 -79
  186. package/src/components/ui/ContextMenu/styles.ts +119 -119
  187. package/src/components/ui/Ellipsis.tsx +34 -34
  188. package/src/components/ui/Label.tsx +99 -99
  189. package/src/components/ui/Message/index.tsx +57 -57
  190. package/src/components/ui/Message/styles.ts +40 -40
  191. package/src/components/ui/TabsView/TabsView.tsx +38 -38
  192. package/src/components/ui/TabsView/styles.ts +73 -73
  193. package/src/components/ui/TabsView/types.ts +12 -12
  194. package/src/components/ui/index.ts +7 -7
  195. package/src/config/index.ts +14 -14
  196. package/src/helpers/dates.ts +17 -17
  197. package/src/helpers/getScrollbarSize.ts +14 -14
  198. package/src/helpers/index.ts +6 -5
  199. package/src/helpers/numbers.ts +63 -63
  200. package/src/helpers/responsive.ts +83 -83
  201. package/src/helpers/text.ts +13 -13
  202. package/src/helpers/types.ts +9 -0
  203. package/src/hooks/index.ts +7 -7
  204. package/src/hooks/useContainerMediaQuery.ts +7 -7
  205. package/src/hooks/useElementSize.ts +24 -24
  206. package/src/hooks/useMediaQuery.ts +9 -9
  207. package/src/hooks/useMediaQueryForWidth.ts +35 -35
  208. package/src/hooks/useMutableState.ts +17 -17
  209. package/src/hooks/useShowArchived.ts +28 -28
  210. package/src/hooks/useWindowSize.ts +20 -20
  211. package/src/index.ts +9 -9
  212. package/src/providers/AuthenticationProvider/helpers.ts +3 -3
  213. package/src/providers/AuthenticationProvider/index.tsx +303 -303
  214. package/src/providers/LoadingProvider/index.tsx +47 -47
  215. package/src/providers/PortalsProvider/index.tsx +54 -54
  216. package/src/providers/PortalsProvider/styles.ts +31 -31
  217. package/src/providers/SettingsProvider/index.tsx +70 -70
  218. package/src/providers/ThemeProvider/ThemeProvider.ts +66 -66
  219. package/src/providers/ThemeProvider/defaultTheme.ts +470 -470
  220. package/src/providers/ThemeProvider/helpers.ts +84 -84
  221. package/src/providers/ThemeProvider/index.ts +5 -5
  222. package/src/providers/ThemeProvider/types.ts +134 -134
  223. package/src/providers/TrackingProvider/index.tsx +71 -71
  224. package/src/providers/UiProviders/index.tsx +76 -76
  225. package/src/providers/UiProviders/styles.ts +10 -10
  226. package/src/providers/hooks.ts +12 -12
  227. package/src/providers/index.ts +8 -8
  228. package/src/services/HttpService.ts +92 -92
  229. package/src/services/WebSocketService.ts +155 -155
  230. package/src/services/advancedRequests.ts +102 -102
  231. package/src/services/base.ts +23 -23
  232. package/src/services/globalSearch.ts +32 -32
  233. package/src/services/hooks.ts +92 -92
  234. package/src/services/index.ts +21 -21
  235. package/src/services/requests/auth.ts +44 -44
  236. package/src/services/requests/generic.ts +62 -62
  237. package/src/services/requests/tracking.ts +12 -12
  238. package/src/services/requests/userProfiles.ts +35 -35
  239. package/src/services/requests/users.ts +28 -28
  240. package/src/services/smartQueries.ts +122 -122
  241. package/src/services/sqlRequests.ts +111 -111
  242. package/src/services/types/auth.ts +98 -98
  243. package/src/services/types/base.ts +10 -10
  244. package/src/services/types/generic.ts +82 -82
  245. package/src/services/types/tracking.ts +29 -29
  246. package/src/services/types/userProfiles.ts +79 -79
  247. package/src/services/types/users.ts +74 -74
  248. package/src/services/updateSqlRequests.ts +32 -32
  249. package/src/styles/animations.scss +30 -30
  250. package/src/styles/index.scss +42 -42
  251. package/src/typings.d.ts +17 -17
  252. package/tsconfig.json +18 -18
  253. package/tsconfig.tsbuildinfo +1 -1
@@ -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;