@addev-be/ui 0.6.0 → 0.6.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 (312) 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/package.json +1 -1
  24. package/src/Icons.tsx +116 -116
  25. package/src/components/auth/LoginForm.tsx +83 -83
  26. package/src/components/auth/LoginPage.tsx +32 -32
  27. package/src/components/auth/PasswordRecoveryForm.tsx +52 -52
  28. package/src/components/auth/PasswordResetForm.tsx +112 -112
  29. package/src/components/auth/index.ts +4 -4
  30. package/src/components/auth/styles.ts +14 -14
  31. package/src/components/data/AdvancedRequestDataGrid/helpers/advancedRequests.ts +93 -93
  32. package/src/components/data/AdvancedRequestDataGrid/helpers/columns.tsx +262 -262
  33. package/src/components/data/AdvancedRequestDataGrid/helpers/index.ts +2 -2
  34. package/src/components/data/AdvancedRequestDataGrid/index.tsx +267 -267
  35. package/src/components/data/AdvancedRequestDataGrid/types.ts +47 -47
  36. package/src/components/data/DataGrid/DataGridCell.tsx +73 -73
  37. package/src/components/data/DataGrid/DataGridColumnsModal/helpers.ts +14 -14
  38. package/src/components/data/DataGrid/DataGridColumnsModal/hooks.tsx +59 -59
  39. package/src/components/data/DataGrid/DataGridColumnsModal/index.tsx +181 -181
  40. package/src/components/data/DataGrid/DataGridColumnsModal/styles.ts +104 -104
  41. package/src/components/data/DataGrid/DataGridEditableCell.tsx +43 -43
  42. package/src/components/data/DataGrid/DataGridFilterMenu/FilterValuesScroller.tsx +120 -120
  43. package/src/components/data/DataGrid/DataGridFilterMenu/hooks.tsx +75 -75
  44. package/src/components/data/DataGrid/DataGridFilterMenu/index.tsx +360 -360
  45. package/src/components/data/DataGrid/DataGridFilterMenu/styles.ts +96 -96
  46. package/src/components/data/DataGrid/DataGridFooter.tsx +42 -42
  47. package/src/components/data/DataGrid/DataGridHeader.tsx +126 -126
  48. package/src/components/data/DataGrid/DataGridHeaderCell.tsx +132 -132
  49. package/src/components/data/DataGrid/DataGridRowTemplate.tsx +70 -70
  50. package/src/components/data/DataGrid/FilterModalContent/index.tsx +136 -136
  51. package/src/components/data/DataGrid/FilterModalContent/styles.ts +22 -22
  52. package/src/components/data/DataGrid/helpers/columns.tsx +295 -295
  53. package/src/components/data/DataGrid/helpers/filters.ts +287 -287
  54. package/src/components/data/DataGrid/helpers/index.ts +2 -2
  55. package/src/components/data/DataGrid/hooks/index.ts +30 -30
  56. package/src/components/data/DataGrid/hooks/useDataGrid.tsx +283 -283
  57. package/src/components/data/DataGrid/hooks/useDataGridCopy.ts +175 -175
  58. package/src/components/data/DataGrid/hooks/useDataGridSettings.ts +48 -48
  59. package/src/components/data/DataGrid/index.tsx +60 -60
  60. package/src/components/data/DataGrid/styles.ts +285 -285
  61. package/src/components/data/DataGrid/types.ts +270 -270
  62. package/src/components/data/SqlRequestDataGrid/helpers/columns.tsx +277 -277
  63. package/src/components/data/SqlRequestDataGrid/helpers/index.ts +2 -2
  64. package/src/components/data/SqlRequestDataGrid/helpers/sqlRequests.ts +16 -16
  65. package/src/components/data/SqlRequestDataGrid/index.tsx +347 -347
  66. package/src/components/data/SqlRequestDataGrid/types.ts +47 -47
  67. package/src/components/data/SqlRequestGrid/helpers/columns.tsx +277 -277
  68. package/src/components/data/SqlRequestGrid/helpers/index.ts +2 -2
  69. package/src/components/data/SqlRequestGrid/helpers/sqlRequests.ts +16 -16
  70. package/src/components/data/SqlRequestGrid/index.tsx +141 -138
  71. package/src/components/data/SqlRequestGrid/styles.ts +50 -50
  72. package/src/components/data/SqlRequestGrid/types.ts +46 -43
  73. package/src/components/data/VirtualScroller/hooks.ts +71 -71
  74. package/src/components/data/VirtualScroller/index.tsx +75 -75
  75. package/src/components/data/VirtualScroller/styles.ts +51 -51
  76. package/src/components/data/VirtualScroller/types.ts +12 -8
  77. package/src/components/data/index.ts +12 -10
  78. package/src/components/forms/Button.tsx +99 -99
  79. package/src/components/forms/IconButton.tsx +56 -56
  80. package/src/components/forms/IndeterminateCheckbox.tsx +46 -46
  81. package/src/components/forms/Select.tsx +40 -40
  82. package/src/components/forms/VerticalLabel.tsx +20 -20
  83. package/src/components/forms/index.ts +5 -5
  84. package/src/components/forms/styles.ts +31 -31
  85. package/src/components/index.ts +6 -6
  86. package/src/components/layout/Dropdown/index.tsx +80 -80
  87. package/src/components/layout/Dropdown/styles.ts +45 -45
  88. package/src/components/layout/Loading/index.tsx +29 -29
  89. package/src/components/layout/Loading/styles.ts +29 -29
  90. package/src/components/layout/Modal/index.tsx +51 -51
  91. package/src/components/layout/Modal/styles.ts +110 -110
  92. package/src/components/layout/index.ts +3 -3
  93. package/src/components/search/HighlightedText.tsx +37 -37
  94. package/src/components/search/QuickSearchBar.tsx +80 -80
  95. package/src/components/search/QuickSearchResults.tsx +86 -86
  96. package/src/components/search/index.ts +9 -9
  97. package/src/components/search/styles.ts +96 -96
  98. package/src/components/search/types.ts +26 -26
  99. package/src/components/ui/Card/index.tsx +14 -14
  100. package/src/components/ui/Card/styles.ts +37 -35
  101. package/src/components/ui/ContextMenu/index.tsx +79 -79
  102. package/src/components/ui/ContextMenu/styles.ts +119 -119
  103. package/src/components/ui/Message/index.tsx +57 -57
  104. package/src/components/ui/Message/styles.ts +40 -40
  105. package/src/components/ui/index.ts +3 -3
  106. package/src/config/index.ts +14 -14
  107. package/src/helpers/dates.ts +9 -9
  108. package/src/helpers/getScrollbarSize.ts +14 -14
  109. package/src/helpers/index.ts +3 -3
  110. package/src/helpers/numbers.ts +26 -26
  111. package/src/helpers/text.ts +13 -13
  112. package/src/hooks/index.ts +2 -2
  113. package/src/hooks/useElementSize.ts +24 -24
  114. package/src/hooks/useWindowSize.ts +20 -20
  115. package/src/index.ts +8 -8
  116. package/src/providers/AuthenticationProvider/index.tsx +202 -202
  117. package/src/providers/LoadingProvider/index.tsx +47 -47
  118. package/src/providers/PortalsProvider/index.tsx +54 -54
  119. package/src/providers/PortalsProvider/styles.ts +27 -27
  120. package/src/providers/SettingsProvider/index.tsx +70 -70
  121. package/src/providers/ThemeProvider/ThemeProvider.ts +63 -63
  122. package/src/providers/ThemeProvider/defaultTheme.ts +444 -444
  123. package/src/providers/ThemeProvider/index.ts +4 -4
  124. package/src/providers/ThemeProvider/types.ts +123 -123
  125. package/src/providers/UiProviders/index.tsx +65 -65
  126. package/src/providers/UiProviders/styles.ts +10 -10
  127. package/src/providers/hooks.ts +12 -12
  128. package/src/providers/index.ts +6 -6
  129. package/src/services/HttpService.ts +92 -92
  130. package/src/services/WebSocketService.ts +137 -137
  131. package/src/services/advancedRequests.ts +101 -101
  132. package/src/services/base.ts +31 -31
  133. package/src/services/globalSearch.ts +27 -27
  134. package/src/services/hooks.ts +44 -44
  135. package/src/services/index.ts +10 -10
  136. package/src/services/requests/auth.ts +44 -44
  137. package/src/services/sqlRequests.ts +110 -110
  138. package/src/services/types/auth.ts +131 -131
  139. package/src/services/types/base.ts +10 -10
  140. package/src/services/types/users.ts +20 -20
  141. package/src/styles/animations.scss +30 -30
  142. package/src/styles/index.scss +42 -42
  143. package/src/typings.d.ts +6 -6
  144. package/dist/Icons.d.ts +0 -43
  145. package/dist/Icons.js +0 -116
  146. package/dist/components/data/AdvancedRequestDataGrid/helpers/advancedRequests.d.ts +0 -14
  147. package/dist/components/data/AdvancedRequestDataGrid/helpers/advancedRequests.js +0 -76
  148. package/dist/components/data/AdvancedRequestDataGrid/helpers/columns.d.ts +0 -22
  149. package/dist/components/data/AdvancedRequestDataGrid/helpers/columns.js +0 -156
  150. package/dist/components/data/AdvancedRequestDataGrid/helpers/index.d.ts +0 -2
  151. package/dist/components/data/AdvancedRequestDataGrid/helpers/index.js +0 -18
  152. package/dist/components/data/AdvancedRequestDataGrid/index.d.ts +0 -2
  153. package/dist/components/data/AdvancedRequestDataGrid/index.js +0 -215
  154. package/dist/components/data/AdvancedRequestDataGrid/types.d.ts +0 -21
  155. package/dist/components/data/AdvancedRequestDataGrid/types.js +0 -2
  156. package/dist/components/data/DataGrid/AdvancedRequestDataGrid.d.ts +0 -10
  157. package/dist/components/data/DataGrid/AdvancedRequestDataGrid.js +0 -173
  158. package/dist/components/data/DataGrid/DataGridCell.d.ts +0 -2
  159. package/dist/components/data/DataGrid/DataGridCell.js +0 -59
  160. package/dist/components/data/DataGrid/DataGridColumnsModal/helpers.d.ts +0 -2
  161. package/dist/components/data/DataGrid/DataGridColumnsModal/helpers.js +0 -24
  162. package/dist/components/data/DataGrid/DataGridColumnsModal/hooks.d.ts +0 -6
  163. package/dist/components/data/DataGrid/DataGridColumnsModal/hooks.js +0 -38
  164. package/dist/components/data/DataGrid/DataGridColumnsModal/index.d.ts +0 -15
  165. package/dist/components/data/DataGrid/DataGridColumnsModal/index.js +0 -111
  166. package/dist/components/data/DataGrid/DataGridColumnsModal/styles.d.ts +0 -22
  167. package/dist/components/data/DataGrid/DataGridColumnsModal/styles.js +0 -54
  168. package/dist/components/data/DataGrid/DataGridEditableCell.d.ts +0 -2
  169. package/dist/components/data/DataGrid/DataGridEditableCell.js +0 -27
  170. package/dist/components/data/DataGrid/DataGridFilterMenu/hooks.d.ts +0 -9
  171. package/dist/components/data/DataGrid/DataGridFilterMenu/hooks.js +0 -52
  172. package/dist/components/data/DataGrid/DataGridFilterMenu/index.d.ts +0 -9
  173. package/dist/components/data/DataGrid/DataGridFilterMenu/index.js +0 -220
  174. package/dist/components/data/DataGrid/DataGridFilterMenu/styles.d.ts +0 -9
  175. package/dist/components/data/DataGrid/DataGridFilterMenu/styles.js +0 -21
  176. package/dist/components/data/DataGrid/DataGridFooter.d.ts +0 -4
  177. package/dist/components/data/DataGrid/DataGridFooter.js +0 -44
  178. package/dist/components/data/DataGrid/DataGridHeader.d.ts +0 -4
  179. package/dist/components/data/DataGrid/DataGridHeader.js +0 -119
  180. package/dist/components/data/DataGrid/DataGridHeaderCell.d.ts +0 -2
  181. package/dist/components/data/DataGrid/DataGridHeaderCell.js +0 -84
  182. package/dist/components/data/DataGrid/FilterModalContent/index.d.ts +0 -7
  183. package/dist/components/data/DataGrid/FilterModalContent/index.js +0 -108
  184. package/dist/components/data/DataGrid/FilterModalContent/styles.d.ts +0 -3
  185. package/dist/components/data/DataGrid/FilterModalContent/styles.js +0 -15
  186. package/dist/components/data/DataGrid/FilterValuesScroller.d.ts +0 -13
  187. package/dist/components/data/DataGrid/FilterValuesScroller.js +0 -73
  188. package/dist/components/data/DataGrid/VirtualScroller.d.ts +0 -11
  189. package/dist/components/data/DataGrid/VirtualScroller.js +0 -41
  190. package/dist/components/data/DataGrid/helpers/advancedRequests.d.ts +0 -12
  191. package/dist/components/data/DataGrid/helpers/advancedRequests.js +0 -53
  192. package/dist/components/data/DataGrid/helpers/columns.d.ts +0 -12
  193. package/dist/components/data/DataGrid/helpers/columns.js +0 -162
  194. package/dist/components/data/DataGrid/helpers/filters.d.ts +0 -17
  195. package/dist/components/data/DataGrid/helpers/filters.js +0 -254
  196. package/dist/components/data/DataGrid/helpers/index.d.ts +0 -2
  197. package/dist/components/data/DataGrid/helpers/index.js +0 -18
  198. package/dist/components/data/DataGrid/helpers.d.ts +0 -28
  199. package/dist/components/data/DataGrid/helpers.js +0 -436
  200. package/dist/components/data/DataGrid/hooks/index.d.ts +0 -7
  201. package/dist/components/data/DataGrid/hooks/index.js +0 -34
  202. package/dist/components/data/DataGrid/hooks/useDataGrid.d.ts +0 -2
  203. package/dist/components/data/DataGrid/hooks/useDataGrid.js +0 -246
  204. package/dist/components/data/DataGrid/hooks/useDataGridCopy.d.ts +0 -4
  205. package/dist/components/data/DataGrid/hooks/useDataGridCopy.js +0 -171
  206. package/dist/components/data/DataGrid/hooks/useDataGridSettings.d.ts +0 -16
  207. package/dist/components/data/DataGrid/hooks/useDataGridSettings.js +0 -43
  208. package/dist/components/data/DataGrid/index.d.ts +0 -4
  209. package/dist/components/data/DataGrid/index.js +0 -108
  210. package/dist/components/data/DataGrid/styles.d.ts +0 -64
  211. package/dist/components/data/DataGrid/styles.js +0 -134
  212. package/dist/components/data/DataGrid/types.d.ts +0 -162
  213. package/dist/components/data/DataGrid/types.js +0 -34
  214. package/dist/components/data/SqlRequestDataGrid/helpers/columns.d.ts +0 -16
  215. package/dist/components/data/SqlRequestDataGrid/helpers/columns.js +0 -125
  216. package/dist/components/data/SqlRequestDataGrid/helpers/index.d.ts +0 -2
  217. package/dist/components/data/SqlRequestDataGrid/helpers/index.js +0 -18
  218. package/dist/components/data/SqlRequestDataGrid/helpers/sqlRequests.d.ts +0 -3
  219. package/dist/components/data/SqlRequestDataGrid/helpers/sqlRequests.js +0 -18
  220. package/dist/components/data/SqlRequestDataGrid/index.d.ts +0 -2
  221. package/dist/components/data/SqlRequestDataGrid/index.js +0 -296
  222. package/dist/components/data/SqlRequestDataGrid/types.d.ts +0 -21
  223. package/dist/components/data/SqlRequestDataGrid/types.js +0 -2
  224. package/dist/components/data/index.d.ts +0 -8
  225. package/dist/components/data/index.js +0 -24
  226. package/dist/components/forms/Button.d.ts +0 -10
  227. package/dist/components/forms/Button.js +0 -70
  228. package/dist/components/forms/IconButton.d.ts +0 -7
  229. package/dist/components/forms/IconButton.js +0 -64
  230. package/dist/components/forms/IndeterminateCheckbox.d.ts +0 -8
  231. package/dist/components/forms/IndeterminateCheckbox.js +0 -41
  232. package/dist/components/forms/Select.d.ts +0 -10
  233. package/dist/components/forms/Select.js +0 -49
  234. package/dist/components/forms/index.d.ts +0 -5
  235. package/dist/components/forms/index.js +0 -23
  236. package/dist/components/forms/styles.d.ts +0 -2
  237. package/dist/components/forms/styles.js +0 -34
  238. package/dist/components/index.d.ts +0 -3
  239. package/dist/components/index.js +0 -19
  240. package/dist/components/layout/Dropdown/index.d.ts +0 -11
  241. package/dist/components/layout/Dropdown/index.js +0 -85
  242. package/dist/components/layout/Dropdown/styles.d.ts +0 -11
  243. package/dist/components/layout/Dropdown/styles.js +0 -45
  244. package/dist/components/layout/Loading/index.d.ts +0 -6
  245. package/dist/components/layout/Loading/index.js +0 -42
  246. package/dist/components/layout/Loading/styles.d.ts +0 -6
  247. package/dist/components/layout/Loading/styles.js +0 -18
  248. package/dist/components/layout/Modal/index.d.ts +0 -16
  249. package/dist/components/layout/Modal/index.js +0 -67
  250. package/dist/components/layout/Modal/styles.d.ts +0 -32
  251. package/dist/components/layout/Modal/styles.js +0 -52
  252. package/dist/components/layout/index.d.ts +0 -3
  253. package/dist/components/layout/index.js +0 -19
  254. package/dist/components/ui/ContextMenu/index.d.ts +0 -11
  255. package/dist/components/ui/ContextMenu/index.js +0 -58
  256. package/dist/components/ui/ContextMenu/styles.d.ts +0 -18
  257. package/dist/components/ui/ContextMenu/styles.js +0 -56
  258. package/dist/config/index.d.ts +0 -10
  259. package/dist/config/index.js +0 -2
  260. package/dist/config/types.d.ts +0 -11
  261. package/dist/config/types.js +0 -2
  262. package/dist/helpers/dates.d.ts +0 -2
  263. package/dist/helpers/dates.js +0 -13
  264. package/dist/helpers/getScrollbarSize.d.ts +0 -1
  265. package/dist/helpers/getScrollbarSize.js +0 -17
  266. package/dist/helpers/numbers.d.ts +0 -3
  267. package/dist/helpers/numbers.js +0 -31
  268. package/dist/hooks/index.d.ts +0 -2
  269. package/dist/hooks/index.js +0 -18
  270. package/dist/hooks/useElementSize.d.ts +0 -4
  271. package/dist/hooks/useElementSize.js +0 -23
  272. package/dist/hooks/useWindowSize.d.ts +0 -4
  273. package/dist/hooks/useWindowSize.js +0 -19
  274. package/dist/index.d.ts +0 -5
  275. package/dist/index.js +0 -21
  276. package/dist/providers/PortalsProvider/index.d.ts +0 -10
  277. package/dist/providers/PortalsProvider/index.js +0 -46
  278. package/dist/providers/PortalsProvider/styles.d.ts +0 -9
  279. package/dist/providers/PortalsProvider/styles.js +0 -21
  280. package/dist/providers/SettingsProvider/index.d.ts +0 -8
  281. package/dist/providers/SettingsProvider/index.js +0 -54
  282. package/dist/providers/ThemeProvider/ThemeProvider.d.ts +0 -7
  283. package/dist/providers/ThemeProvider/ThemeProvider.js +0 -51
  284. package/dist/providers/ThemeProvider/defaultTheme.d.ts +0 -2
  285. package/dist/providers/ThemeProvider/defaultTheme.js +0 -417
  286. package/dist/providers/ThemeProvider/index.d.ts +0 -2
  287. package/dist/providers/ThemeProvider/index.js +0 -5
  288. package/dist/providers/ThemeProvider/types.d.ts +0 -24
  289. package/dist/providers/ThemeProvider/types.js +0 -2
  290. package/dist/providers/UiProviders/index.d.ts +0 -12
  291. package/dist/providers/UiProviders/index.js +0 -62
  292. package/dist/providers/UiProviders/styles.d.ts +0 -3
  293. package/dist/providers/UiProviders/styles.js +0 -13
  294. package/dist/providers/hooks.d.ts +0 -3
  295. package/dist/providers/hooks.js +0 -13
  296. package/dist/providers/index.d.ts +0 -4
  297. package/dist/providers/index.js +0 -20
  298. package/dist/services/HttpService.d.ts +0 -10
  299. package/dist/services/HttpService.js +0 -117
  300. package/dist/services/WebSocketService.d.ts +0 -24
  301. package/dist/services/WebSocketService.js +0 -136
  302. package/dist/services/advancedRequests.d.ts +0 -41
  303. package/dist/services/advancedRequests.js +0 -13
  304. package/dist/services/base.d.ts +0 -19
  305. package/dist/services/base.js +0 -10
  306. package/dist/services/hooks.d.ts +0 -2
  307. package/dist/services/hooks.js +0 -18
  308. package/dist/services/index.d.ts +0 -2
  309. package/dist/services/index.js +0 -18
  310. package/dist/services/sqlRequests.d.ts +0 -45
  311. package/dist/services/sqlRequests.js +0 -11
  312. package/tsconfig.tsbuildinfo +0 -1
@@ -1,137 +1,137 @@
1
- import { Config } from '../config';
2
- import { Request } from './base';
3
- import { Subject } from 'rxjs';
4
- import { v4 } from 'uuid';
5
-
6
- export class WebSocketService {
7
- private static instance: WebSocketService;
8
- private config: Config;
9
- private socket: WebSocket | null = null;
10
-
11
- public status: boolean | undefined = undefined;
12
- public status$ = new Subject<boolean | undefined>();
13
-
14
- private queue: Request[] = [];
15
- private promises: {
16
- [id: string]: {
17
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
18
- resolve: (value: any) => void;
19
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
20
- reject: (reason?: any) => void;
21
- };
22
- } = {};
23
-
24
- public onOpen?: () => void = () => {};
25
- public onClose?: () => void = () => {};
26
- public onMessage?: (message: string) => void = () => {};
27
- public onError?: (error: unknown) => void = () => {};
28
-
29
- constructor(config: Config) {
30
- WebSocketService.instance = this;
31
- this.config = config;
32
- }
33
-
34
- public static getInstance() {
35
- return WebSocketService.instance;
36
- }
37
-
38
- private resetConnection() {
39
- this.setStatus(undefined);
40
- this.socket = new WebSocket(this.config.webSocketUrl);
41
-
42
- this.socket.onopen = () => {
43
- console.log('[WS] Connected');
44
- const interval = setInterval(() => {
45
- if (this.socket && this.socket.readyState === 1) {
46
- clearInterval(interval);
47
- this.setStatus(true);
48
- this.sendQueue();
49
- this.onOpen?.();
50
- }
51
- }, 100);
52
- };
53
-
54
- this.socket.onclose = () => {
55
- console.log('[WS] Disconnected');
56
- setTimeout(() => this.connect(), this.status === true ? 500 : 5000);
57
- this.onClose?.();
58
- this.setStatus(false);
59
- };
60
-
61
- this.socket.onmessage = (event) => {
62
- this.onMessage?.(event.data);
63
- this.parseMessage(event.data);
64
- };
65
-
66
- this.socket.onerror = (error) => {
67
- this.onError?.(error);
68
- console.error('[WS] Error:', error);
69
- };
70
- }
71
-
72
- public connect(force = false) {
73
- if (this.status === false || force) {
74
- this.resetConnection();
75
- }
76
- }
77
-
78
- private setStatus(status: boolean | undefined) {
79
- this.status = status;
80
- this.status$.next(status);
81
- }
82
-
83
- private sendQueue() {
84
- if (this.socket && this.status) {
85
- let request: Request | undefined;
86
- while ((request = this.queue.shift())) {
87
- console.log('[WS] Sending queued request:', request);
88
- this.socket?.send(JSON.stringify(request));
89
- }
90
- this.queue.forEach((request) =>
91
- this.socket?.send(JSON.stringify(request))
92
- );
93
- }
94
- }
95
-
96
- public sendRequest<TReq, TRes>(name: string, data: TReq) {
97
- const id = v4();
98
- const promise = new Promise<TRes>((resolve, reject) => {
99
- const request: Request = { id, name, data };
100
- this.promises[id] = { resolve, reject };
101
- if (!this.socket || !this.status) {
102
- this.queue.push(request);
103
- return;
104
- }
105
- console.log('[WS] Sending request:', request);
106
- this.socket?.send(JSON.stringify(request));
107
- });
108
- return promise;
109
- }
110
-
111
- private parseMessage(message: string) {
112
- try {
113
- const response = JSON.parse(message);
114
- if (!response.id) {
115
- throw new Error('Received message is not valid');
116
- }
117
- if (this.promises[response.id]) {
118
- console.log('[WS] Received response:', response);
119
- if (
120
- typeof response.data?.status === 'number' &&
121
- response.data.status < 0
122
- ) {
123
- this.promises[response.id].reject(new Error(response.data.message));
124
- } else {
125
- this.promises[response.id].resolve(response.data);
126
- }
127
- delete this.promises[response.id];
128
- } else {
129
- console.log('[WS] Received request:', response);
130
- // TODO : Implement request handling
131
- throw new Error('Not yet implemented');
132
- }
133
- } catch (error) {
134
- console.error('[WS] Error parsing message:', error);
135
- }
136
- }
137
- }
1
+ import { Config } from '../config';
2
+ import { Request } from './base';
3
+ import { Subject } from 'rxjs';
4
+ import { v4 } from 'uuid';
5
+
6
+ export class WebSocketService {
7
+ private static instance: WebSocketService;
8
+ private config: Config;
9
+ private socket: WebSocket | null = null;
10
+
11
+ public status: boolean | undefined = undefined;
12
+ public status$ = new Subject<boolean | undefined>();
13
+
14
+ private queue: Request[] = [];
15
+ private promises: {
16
+ [id: string]: {
17
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
18
+ resolve: (value: any) => void;
19
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
20
+ reject: (reason?: any) => void;
21
+ };
22
+ } = {};
23
+
24
+ public onOpen?: () => void = () => {};
25
+ public onClose?: () => void = () => {};
26
+ public onMessage?: (message: string) => void = () => {};
27
+ public onError?: (error: unknown) => void = () => {};
28
+
29
+ constructor(config: Config) {
30
+ WebSocketService.instance = this;
31
+ this.config = config;
32
+ }
33
+
34
+ public static getInstance() {
35
+ return WebSocketService.instance;
36
+ }
37
+
38
+ private resetConnection() {
39
+ this.setStatus(undefined);
40
+ this.socket = new WebSocket(this.config.webSocketUrl);
41
+
42
+ this.socket.onopen = () => {
43
+ console.log('[WS] Connected');
44
+ const interval = setInterval(() => {
45
+ if (this.socket && this.socket.readyState === 1) {
46
+ clearInterval(interval);
47
+ this.setStatus(true);
48
+ this.sendQueue();
49
+ this.onOpen?.();
50
+ }
51
+ }, 100);
52
+ };
53
+
54
+ this.socket.onclose = () => {
55
+ console.log('[WS] Disconnected');
56
+ setTimeout(() => this.connect(), this.status === true ? 500 : 5000);
57
+ this.onClose?.();
58
+ this.setStatus(false);
59
+ };
60
+
61
+ this.socket.onmessage = (event) => {
62
+ this.onMessage?.(event.data);
63
+ this.parseMessage(event.data);
64
+ };
65
+
66
+ this.socket.onerror = (error) => {
67
+ this.onError?.(error);
68
+ console.error('[WS] Error:', error);
69
+ };
70
+ }
71
+
72
+ public connect(force = false) {
73
+ if (this.status === false || force) {
74
+ this.resetConnection();
75
+ }
76
+ }
77
+
78
+ private setStatus(status: boolean | undefined) {
79
+ this.status = status;
80
+ this.status$.next(status);
81
+ }
82
+
83
+ private sendQueue() {
84
+ if (this.socket && this.status) {
85
+ let request: Request | undefined;
86
+ while ((request = this.queue.shift())) {
87
+ console.log('[WS] Sending queued request:', request);
88
+ this.socket?.send(JSON.stringify(request));
89
+ }
90
+ this.queue.forEach((request) =>
91
+ this.socket?.send(JSON.stringify(request))
92
+ );
93
+ }
94
+ }
95
+
96
+ public sendRequest<TReq, TRes>(name: string, data: TReq) {
97
+ const id = v4();
98
+ const promise = new Promise<TRes>((resolve, reject) => {
99
+ const request: Request = { id, name, data };
100
+ this.promises[id] = { resolve, reject };
101
+ if (!this.socket || !this.status) {
102
+ this.queue.push(request);
103
+ return;
104
+ }
105
+ console.log('[WS] Sending request:', request);
106
+ this.socket?.send(JSON.stringify(request));
107
+ });
108
+ return promise;
109
+ }
110
+
111
+ private parseMessage(message: string) {
112
+ try {
113
+ const response = JSON.parse(message);
114
+ if (!response.id) {
115
+ throw new Error('Received message is not valid');
116
+ }
117
+ if (this.promises[response.id]) {
118
+ console.log('[WS] Received response:', response);
119
+ if (
120
+ typeof response.data?.status === 'number' &&
121
+ response.data.status < 0
122
+ ) {
123
+ this.promises[response.id].reject(new Error(response.data.message));
124
+ } else {
125
+ this.promises[response.id].resolve(response.data);
126
+ }
127
+ delete this.promises[response.id];
128
+ } else {
129
+ console.log('[WS] Received request:', response);
130
+ // TODO : Implement request handling
131
+ throw new Error('Not yet implemented');
132
+ }
133
+ } catch (error) {
134
+ console.error('[WS] Error parsing message:', error);
135
+ }
136
+ }
137
+ }
@@ -1,101 +1,101 @@
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
- | 'inArray'
46
- | 'in'
47
- | 'not'
48
- | 'and'
49
- | 'or';
50
- value?:
51
- | string
52
- | number
53
- | boolean
54
- | null
55
- | (string | number | boolean | null)[];
56
- children?: boolean;
57
- };
58
-
59
- export type OrderByDTO = {
60
- field: string;
61
- direction?: 'ASC' | 'DESC';
62
- };
63
-
64
- export type AdvancedRequestDTO = {
65
- type: string;
66
- fields: FieldDTO[];
67
- conditions: ConditionDTO[];
68
- orderBy?: OrderByDTO[];
69
- start?: number;
70
- length?: number;
71
- getTotal?: boolean;
72
- unique?: boolean;
73
- };
74
-
75
- export type AdvancedRequestRow<R> = {
76
- [K in keyof R]: R[K] extends string | number | null
77
- ? R[K]
78
- : string | number | null;
79
- };
80
-
81
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
82
- export type AdvancedResponseDTO<T = any> = {
83
- data: AdvancedRequestRow<T>[];
84
- count?: number;
85
- };
86
-
87
- export type AdvancedRequestFieldDTO =
88
- | string
89
- | {
90
- name: string;
91
- fields: AdvancedRequestFieldDTO[];
92
- };
93
-
94
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
95
- export const useAdvancedRequestHandler = <T = any>() =>
96
- useWebSocketRequestHandler<AdvancedRequestDTO, AdvancedResponseDTO<T>>(
97
- 'AdvancedRequest'
98
- );
99
-
100
- export const useRawAdvancedRequestHandler = () =>
101
- useWebSocketRequestHandler<AdvancedRequestDTO, string>('RawAdvancedRequest');
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
+ | 'inArray'
46
+ | 'in'
47
+ | 'not'
48
+ | 'and'
49
+ | 'or';
50
+ value?:
51
+ | string
52
+ | number
53
+ | boolean
54
+ | null
55
+ | (string | number | boolean | null)[];
56
+ children?: boolean;
57
+ };
58
+
59
+ export type OrderByDTO = {
60
+ field: string;
61
+ direction?: 'ASC' | 'DESC';
62
+ };
63
+
64
+ export type AdvancedRequestDTO = {
65
+ type: string;
66
+ fields: FieldDTO[];
67
+ conditions: ConditionDTO[];
68
+ orderBy?: OrderByDTO[];
69
+ start?: number;
70
+ length?: number;
71
+ getTotal?: boolean;
72
+ unique?: boolean;
73
+ };
74
+
75
+ export type AdvancedRequestRow<R> = {
76
+ [K in keyof R]: R[K] extends string | number | null
77
+ ? R[K]
78
+ : string | number | null;
79
+ };
80
+
81
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
82
+ export type AdvancedResponseDTO<T = any> = {
83
+ data: AdvancedRequestRow<T>[];
84
+ count?: number;
85
+ };
86
+
87
+ export type AdvancedRequestFieldDTO =
88
+ | string
89
+ | {
90
+ name: string;
91
+ fields: AdvancedRequestFieldDTO[];
92
+ };
93
+
94
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
95
+ export const useAdvancedRequestHandler = <T = any>() =>
96
+ useWebSocketRequestHandler<AdvancedRequestDTO, AdvancedResponseDTO<T>>(
97
+ 'AdvancedRequest'
98
+ );
99
+
100
+ export const useRawAdvancedRequestHandler = () =>
101
+ useWebSocketRequestHandler<AdvancedRequestDTO, string>('RawAdvancedRequest');
@@ -1,31 +1,31 @@
1
- export type BaseModelDTO = {
2
- id: string;
3
- dateAdd: string;
4
- dateUpd: string;
5
- dateDel: string | null;
6
- };
7
-
8
- export const emptyBaseModel: BaseModelDTO = {
9
- id: '',
10
- dateAdd: new Date().toISOString(),
11
- dateUpd: new Date().toISOString(),
12
- dateDel: null,
13
- };
14
-
15
- export type ArchivableModelDTO = BaseModelDTO & {
16
- archived: boolean | null;
17
- };
18
-
19
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
20
- export type Request<T = any> = {
21
- id: string;
22
- name: string;
23
- data: T;
24
- };
25
-
26
- export const UUID_REGEX =
27
- /^[0-9a-f]{8}-[0-9a-f]{4}-[0-5][0-9a-f]{3}-[089ab][0-9a-f]{3}-[0-9a-f]{12}$/i;
28
-
29
- export type GetObjectRequestDTO = {
30
- id: string;
31
- };
1
+ export type BaseModelDTO = {
2
+ id: string;
3
+ dateAdd: string;
4
+ dateUpd: string;
5
+ dateDel: string | null;
6
+ };
7
+
8
+ export const emptyBaseModel: BaseModelDTO = {
9
+ id: '',
10
+ dateAdd: new Date().toISOString(),
11
+ dateUpd: new Date().toISOString(),
12
+ dateDel: null,
13
+ };
14
+
15
+ export type ArchivableModelDTO = BaseModelDTO & {
16
+ archived: boolean | null;
17
+ };
18
+
19
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
20
+ export type Request<T = any> = {
21
+ id: string;
22
+ name: string;
23
+ data: T;
24
+ };
25
+
26
+ export const UUID_REGEX =
27
+ /^[0-9a-f]{8}-[0-9a-f]{4}-[0-5][0-9a-f]{3}-[089ab][0-9a-f]{3}-[0-9a-f]{12}$/i;
28
+
29
+ export type GetObjectRequestDTO = {
30
+ id: string;
31
+ };
@@ -1,27 +1,27 @@
1
- import { SqlRequestRow } from './sqlRequests';
2
- import { useWebSocketRequestHandler } from './hooks';
3
-
4
- export type GlobalSearchRequestDTO = {
5
- types: string[];
6
- searchTerm: string;
7
- limit?: number;
8
- };
9
-
10
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
11
- export type GlobalSearchResponseDTO<T = any> = {
12
- data: Record<string, SqlRequestRow<T>[]>;
13
- count?: number;
14
- };
15
-
16
- type GlobalSearchRequestHandler<T> = (
17
- request: GlobalSearchRequestDTO
18
- ) => Promise<GlobalSearchResponseDTO<T>>;
19
-
20
- export const useGlobalSearchRequestHandler = <
21
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
22
- T = any
23
- >(): GlobalSearchRequestHandler<T> =>
24
- useWebSocketRequestHandler<
25
- GlobalSearchRequestDTO,
26
- GlobalSearchResponseDTO<T>
27
- >('GlobalSearch');
1
+ import { SqlRequestRow } from './sqlRequests';
2
+ import { useWebSocketRequestHandler } from './hooks';
3
+
4
+ export type GlobalSearchRequestDTO = {
5
+ types: string[];
6
+ searchTerm: string;
7
+ limit?: number;
8
+ };
9
+
10
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
11
+ export type GlobalSearchResponseDTO<T = any> = {
12
+ data: Record<string, SqlRequestRow<T>[]>;
13
+ count?: number;
14
+ };
15
+
16
+ type GlobalSearchRequestHandler<T> = (
17
+ request: GlobalSearchRequestDTO
18
+ ) => Promise<GlobalSearchResponseDTO<T>>;
19
+
20
+ export const useGlobalSearchRequestHandler = <
21
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
22
+ T = any
23
+ >(): GlobalSearchRequestHandler<T> =>
24
+ useWebSocketRequestHandler<
25
+ GlobalSearchRequestDTO,
26
+ GlobalSearchResponseDTO<T>
27
+ >('GlobalSearch');