@addev-be/ui 0.2.13 → 0.2.15

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 (114) hide show
  1. package/dist/Icons.d.ts +3 -1
  2. package/dist/Icons.js +5 -1
  3. package/dist/components/data/DataGrid/{FilterValuesScroller.d.ts → DataGridFilterMenu/FilterValuesScroller.d.ts} +1 -1
  4. package/dist/components/data/DataGrid/{FilterValuesScroller.js → DataGridFilterMenu/FilterValuesScroller.js} +6 -9
  5. package/dist/components/data/DataGrid/DataGridFilterMenu/index.js +3 -3
  6. package/dist/components/data/DataGrid/DataGridFilterMenu/styles.d.ts +9 -0
  7. package/dist/components/data/DataGrid/DataGridFilterMenu/styles.js +12 -2
  8. package/dist/components/data/DataGrid/FilterModalContent/index.js +18 -9
  9. package/dist/components/data/DataGrid/helpers/columns.d.ts +1 -0
  10. package/dist/components/data/DataGrid/helpers/columns.js +7 -6
  11. package/dist/components/data/DataGrid/helpers/filters.d.ts +1 -0
  12. package/dist/components/data/DataGrid/helpers/filters.js +71 -2
  13. package/dist/components/data/DataGrid/hooks/useDataGrid.js +2 -1
  14. package/dist/components/data/DataGrid/hooks/useDataGridCopy.js +2 -0
  15. package/dist/components/data/DataGrid/styles.d.ts +0 -9
  16. package/dist/components/data/DataGrid/styles.js +2 -12
  17. package/dist/components/data/DataGrid/types.d.ts +2 -0
  18. package/dist/components/data/SqlRequestDataGrid/helpers/columns.js +6 -6
  19. package/dist/helpers/numbers.d.ts +1 -0
  20. package/dist/helpers/numbers.js +9 -1
  21. package/dist/services/globalSearch.d.ts +13 -0
  22. package/dist/services/globalSearch.js +8 -0
  23. package/package.json +18 -12
  24. package/dist/components/data/DataGrid/AdvancedRequestDataGrid.d.ts +0 -9
  25. package/dist/components/data/DataGrid/AdvancedRequestDataGrid.js +0 -171
  26. package/dist/components/data/DataGrid/helpers/advancedRequests.d.ts +0 -12
  27. package/dist/components/data/DataGrid/helpers/advancedRequests.js +0 -53
  28. package/eslint.config.js +0 -28
  29. package/src/Icons.tsx +0 -108
  30. package/src/components/data/AdvancedRequestDataGrid/helpers/advancedRequests.ts +0 -93
  31. package/src/components/data/AdvancedRequestDataGrid/helpers/columns.tsx +0 -262
  32. package/src/components/data/AdvancedRequestDataGrid/helpers/index.ts +0 -2
  33. package/src/components/data/AdvancedRequestDataGrid/index.tsx +0 -267
  34. package/src/components/data/AdvancedRequestDataGrid/types.ts +0 -47
  35. package/src/components/data/DataGrid/DataGridCell.tsx +0 -73
  36. package/src/components/data/DataGrid/DataGridColumnsModal/helpers.ts +0 -14
  37. package/src/components/data/DataGrid/DataGridColumnsModal/hooks.tsx +0 -59
  38. package/src/components/data/DataGrid/DataGridColumnsModal/index.tsx +0 -181
  39. package/src/components/data/DataGrid/DataGridColumnsModal/styles.ts +0 -104
  40. package/src/components/data/DataGrid/DataGridEditableCell.tsx +0 -43
  41. package/src/components/data/DataGrid/DataGridFilterMenu/FilterValuesScroller.tsx +0 -120
  42. package/src/components/data/DataGrid/DataGridFilterMenu/hooks.tsx +0 -75
  43. package/src/components/data/DataGrid/DataGridFilterMenu/index.tsx +0 -360
  44. package/src/components/data/DataGrid/DataGridFilterMenu/styles.ts +0 -96
  45. package/src/components/data/DataGrid/DataGridFooter.tsx +0 -42
  46. package/src/components/data/DataGrid/DataGridHeader.tsx +0 -126
  47. package/src/components/data/DataGrid/DataGridHeaderCell.tsx +0 -132
  48. package/src/components/data/DataGrid/FilterModalContent/index.tsx +0 -136
  49. package/src/components/data/DataGrid/FilterModalContent/styles.ts +0 -22
  50. package/src/components/data/DataGrid/VirtualScroller.tsx +0 -46
  51. package/src/components/data/DataGrid/helpers/columns.tsx +0 -295
  52. package/src/components/data/DataGrid/helpers/filters.ts +0 -287
  53. package/src/components/data/DataGrid/helpers/index.ts +0 -2
  54. package/src/components/data/DataGrid/hooks/index.ts +0 -30
  55. package/src/components/data/DataGrid/hooks/useDataGrid.tsx +0 -306
  56. package/src/components/data/DataGrid/hooks/useDataGridCopy.ts +0 -175
  57. package/src/components/data/DataGrid/hooks/useDataGridSettings.ts +0 -48
  58. package/src/components/data/DataGrid/index.tsx +0 -140
  59. package/src/components/data/DataGrid/styles.ts +0 -323
  60. package/src/components/data/DataGrid/types.ts +0 -267
  61. package/src/components/data/SqlRequestDataGrid/helpers/columns.tsx +0 -277
  62. package/src/components/data/SqlRequestDataGrid/helpers/index.ts +0 -2
  63. package/src/components/data/SqlRequestDataGrid/helpers/sqlRequests.ts +0 -16
  64. package/src/components/data/SqlRequestDataGrid/index.tsx +0 -347
  65. package/src/components/data/SqlRequestDataGrid/types.ts +0 -47
  66. package/src/components/data/index.ts +0 -8
  67. package/src/components/forms/Button.tsx +0 -99
  68. package/src/components/forms/IconButton.tsx +0 -56
  69. package/src/components/forms/IndeterminateCheckbox.tsx +0 -46
  70. package/src/components/forms/Select.tsx +0 -40
  71. package/src/components/forms/index.ts +0 -5
  72. package/src/components/forms/styles.ts +0 -20
  73. package/src/components/index.ts +0 -3
  74. package/src/components/layout/Dropdown/index.tsx +0 -79
  75. package/src/components/layout/Dropdown/styles.ts +0 -44
  76. package/src/components/layout/Loading/index.tsx +0 -29
  77. package/src/components/layout/Loading/styles.ts +0 -29
  78. package/src/components/layout/Modal/index.tsx +0 -51
  79. package/src/components/layout/Modal/styles.ts +0 -110
  80. package/src/components/layout/index.ts +0 -3
  81. package/src/components/ui/ContextMenu/index.tsx +0 -79
  82. package/src/components/ui/ContextMenu/styles.ts +0 -119
  83. package/src/config/index.ts +0 -14
  84. package/src/helpers/dates.ts +0 -9
  85. package/src/helpers/getScrollbarSize.ts +0 -14
  86. package/src/helpers/numbers.ts +0 -26
  87. package/src/hooks/index.ts +0 -2
  88. package/src/hooks/useElementSize.ts +0 -24
  89. package/src/hooks/useWindowSize.ts +0 -20
  90. package/src/index.ts +0 -7
  91. package/src/providers/PortalsProvider/index.tsx +0 -54
  92. package/src/providers/PortalsProvider/styles.ts +0 -27
  93. package/src/providers/SettingsProvider/index.tsx +0 -70
  94. package/src/providers/ThemeProvider/ThemeProvider.ts +0 -55
  95. package/src/providers/ThemeProvider/defaultTheme.ts +0 -444
  96. package/src/providers/ThemeProvider/index.ts +0 -3
  97. package/src/providers/ThemeProvider/types.ts +0 -123
  98. package/src/providers/UiProviders/index.tsx +0 -65
  99. package/src/providers/UiProviders/styles.ts +0 -10
  100. package/src/providers/hooks.ts +0 -8
  101. package/src/providers/index.ts +0 -5
  102. package/src/services/HttpService.ts +0 -80
  103. package/src/services/WebSocketService.ts +0 -147
  104. package/src/services/advancedRequests.ts +0 -101
  105. package/src/services/base.ts +0 -31
  106. package/src/services/globalSearch.ts +0 -27
  107. package/src/services/hooks.ts +0 -23
  108. package/src/services/index.ts +0 -2
  109. package/src/services/sqlRequests.ts +0 -110
  110. package/src/styles/animations.scss +0 -30
  111. package/src/styles/index.scss +0 -42
  112. package/src/typings.d.ts +0 -6
  113. package/tsconfig.json +0 -18
  114. package/tsconfig.tsbuildinfo +0 -1
@@ -1,123 +0,0 @@
1
- import { DeepPartial } from '../../typings';
2
-
3
- export type ThemeColorIntensity =
4
- | 0
5
- | 50
6
- | 100
7
- | 200
8
- | 300
9
- | 400
10
- | 500
11
- | 600
12
- | 700
13
- | 800
14
- | 900
15
- | 950
16
- | 1000;
17
- export type ThemeColorDefinition = Record<ThemeColorIntensity, string>;
18
- export type ThemeRawColor =
19
- | 'slate'
20
- | 'gray'
21
- | 'zinc'
22
- | 'neutral'
23
- | 'stone'
24
- | 'red'
25
- | 'orange'
26
- | 'amber'
27
- | 'yellow'
28
- | 'lime'
29
- | 'green'
30
- | 'emerald'
31
- | 'teal'
32
- | 'cyan'
33
- | 'sky'
34
- | 'blue'
35
- | 'indigo'
36
- | 'violet'
37
- | 'purple'
38
- | 'fuchsia'
39
- | 'pink'
40
- | 'rose';
41
- export type ThemePredefinedColor =
42
- | 'primary'
43
- | 'secondary'
44
- | 'neutral'
45
- | 'success'
46
- | 'warning'
47
- | 'danger'
48
- | 'info';
49
- export type ThemeColor = ThemeRawColor | ThemePredefinedColor;
50
- export type ThemeColorReference = ThemeColor | ThemeColorDefinition;
51
-
52
- export type ThemeTextSize =
53
- | 'xs'
54
- | 'sm'
55
- | 'base'
56
- | 'lg'
57
- | 'xl'
58
- | '2xl'
59
- | '3xl'
60
- | '4xl'
61
- | '5xl'
62
- | '6xl';
63
- export type ThemeFontFamily = 'sans' | 'serif' | 'mono';
64
- export type ThemeFontWeight = 'light' | 'normal' | 'bold';
65
- export type ThemeSpace =
66
- | '0'
67
- | '0_5'
68
- | '1'
69
- | '1_5'
70
- | '2'
71
- | '3'
72
- | '4'
73
- | '5'
74
- | '6'
75
- | '8'
76
- | '10'
77
- | '12'
78
- | '16'
79
- | '20'
80
- | '24'
81
- | '32'
82
- | '40'
83
- | '48';
84
- export type ThemeSize =
85
- | '0'
86
- | '0_5'
87
- | '1'
88
- | '1_5'
89
- | '2'
90
- | '3'
91
- | '4'
92
- | '5'
93
- | '6'
94
- | '8'
95
- | '10'
96
- | '12'
97
- | '16'
98
- | '20'
99
- | '24'
100
- | '32'
101
- | '40'
102
- | '48';
103
- export type ThemeRounded =
104
- | 'none'
105
- | 'sm'
106
- | 'md'
107
- | 'lg'
108
- | 'xl'
109
- | '2xl'
110
- | '3xl'
111
- | 'full';
112
- export type ThemeShadow = 'sm' | 'md' | 'lg' | 'xl' | '2xl';
113
-
114
- export type Theme = DeepPartial<{
115
- colors: Record<ThemeColor, ThemeColorReference>;
116
- texts: Record<ThemeTextSize, string>;
117
- fonts: Record<ThemeFontFamily, string>;
118
- weights: Record<ThemeFontWeight, string>;
119
- spaces: Record<ThemeSpace, string>;
120
- sizes: Record<ThemeSpace, string>;
121
- rounded: Record<ThemeRounded, string>;
122
- shadows: Record<ThemeShadow, string>;
123
- }>;
@@ -1,65 +0,0 @@
1
- import '../../styles/index.scss';
2
- import '../../styles/animations.scss';
3
-
4
- import * as styles from './styles';
5
-
6
- import {
7
- FC,
8
- PropsWithChildren,
9
- createContext,
10
- useCallback,
11
- useMemo,
12
- useRef,
13
- } from 'react';
14
-
15
- import { PortalsProvider } from '../PortalsProvider';
16
- import { SettingsProvider } from '../SettingsProvider';
17
- import { ThemeProvider } from '../ThemeProvider/ThemeProvider';
18
- import { defaultTheme } from '../ThemeProvider/defaultTheme';
19
-
20
- export type UiProvidersProps = PropsWithChildren<{
21
- $darkMode?: boolean;
22
- }>;
23
-
24
- export type UiContextType = {
25
- rootRect: DOMRect;
26
- getElementScreenRect: (element: HTMLElement) => DOMRect;
27
- };
28
-
29
- export const UiContext = createContext<UiContextType>({
30
- rootRect: new DOMRect(),
31
- getElementScreenRect: () => new DOMRect(),
32
- });
33
-
34
- export const UiProviders: FC<UiProvidersProps> = ({ $darkMode, children }) => {
35
- const rootRef = useRef<HTMLDivElement | null>(null);
36
-
37
- const getElementScreenRect = useCallback((element: HTMLElement) => {
38
- const rootRect = rootRef.current?.getBoundingClientRect();
39
- const rect = element.getBoundingClientRect();
40
- rect.x -= (rootRect?.x ?? 0) + window.scrollX;
41
- rect.y -= (rootRect?.y ?? 0) + window.scrollY;
42
- return rect;
43
- }, []);
44
-
45
- const value = useMemo(
46
- () => ({
47
- rootRect: rootRef.current?.getBoundingClientRect() ?? new DOMRect(),
48
- getElementScreenRect,
49
- }),
50
- // eslint-disable-next-line react-hooks/exhaustive-deps
51
- [rootRef.current]
52
- );
53
-
54
- return (
55
- <ThemeProvider $theme={defaultTheme} $darkMode={$darkMode}>
56
- <UiContext.Provider value={value}>
57
- <styles.Root ref={rootRef}>
58
- <SettingsProvider>
59
- <PortalsProvider>{children}</PortalsProvider>
60
- </SettingsProvider>
61
- </styles.Root>
62
- </UiContext.Provider>
63
- </ThemeProvider>
64
- );
65
- };
@@ -1,10 +0,0 @@
1
- import styled from 'styled-components';
2
-
3
- export const Root = styled.div.attrs({ className: 'Root' })`
4
- position: relative;
5
- font-family: var(--font-sans);
6
- font-size: var(--text-base);
7
- color: var(--color-neutral-900);
8
- width: 100%;
9
- height: 100%;
10
- `;
@@ -1,8 +0,0 @@
1
- import { PortalsContext } from './PortalsProvider';
2
- import { SettingsContext } from './SettingsProvider';
3
- import { UiContext } from './UiProviders';
4
- import { useContext } from 'react';
5
-
6
- export const usePortals = () => useContext(PortalsContext);
7
- export const useUi = () => useContext(UiContext);
8
- export const useSettings = () => useContext(SettingsContext);
@@ -1,5 +0,0 @@
1
- export * from './UiProviders';
2
- export * from './PortalsProvider';
3
- export * from './ThemeProvider';
4
-
5
- export * from './hooks';
@@ -1,80 +0,0 @@
1
- import { Config } from '../config';
2
- import { Request } from './base';
3
- import { trimEnd } from 'lodash';
4
- import { v4 } from 'uuid';
5
-
6
- export class HttpService {
7
- private static instance: HttpService;
8
- private config: Config;
9
- private promises: {
10
- [id: string]: {
11
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
12
- resolve: (value: any) => void;
13
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
14
- reject: (reason?: any) => void;
15
- };
16
- } = {};
17
-
18
- constructor(config: Config) {
19
- HttpService.instance = this;
20
- this.config = config;
21
- }
22
-
23
- public static getInstance() {
24
- return HttpService.instance;
25
- }
26
-
27
- public sendRequest<TReq, TRes>(name: string, data: TReq) {
28
- const id = v4();
29
- const promise = new Promise<TRes>((resolve, reject) => {
30
- const request: Request = { id, name, data };
31
- this.promises[id] = { resolve, reject };
32
- console.log('[HTTP] Sending request:', request);
33
- fetch(`${trimEnd(this.config.httpServerUrl, '/')}/${name}`, {
34
- method: 'POST',
35
- headers: {
36
- 'Content-Type': 'application/json',
37
- },
38
- body: JSON.stringify(request),
39
- })
40
- .then(async (response) => {
41
- if (!response.ok) {
42
- throw new Error('HTTP request failed');
43
- }
44
- const body = await response.text();
45
- this.parseMessage(body);
46
- })
47
- .catch((error) => {
48
- reject(error);
49
- });
50
- });
51
- return promise;
52
- }
53
-
54
- private parseMessage(message: string) {
55
- try {
56
- const response = JSON.parse(message);
57
- if (!response.id) {
58
- throw new Error('Received message is not valid');
59
- }
60
- if (this.promises[response.id]) {
61
- console.log('[HTTP] Received response:', response);
62
- if (
63
- typeof response.data?.status === 'number' &&
64
- response.data.status < 0
65
- ) {
66
- this.promises[response.id].reject(new Error(response.data.message));
67
- } else {
68
- this.promises[response.id].resolve(response.data);
69
- }
70
- delete this.promises[response.id];
71
- } else {
72
- console.log('[HTTP] Received request:', response);
73
- // TODO : Implement request handling
74
- throw new Error('Not yet implemented');
75
- }
76
- } catch (error) {
77
- console.error('[HTTP] Error parsing message:', error);
78
- }
79
- }
80
- }
@@ -1,147 +0,0 @@
1
- import { Config } from '../config';
2
- import { Request } from './base';
3
- import { v4 } from 'uuid';
4
-
5
- export class WebSocketService {
6
- private static instance: WebSocketService;
7
- private config: Config;
8
- private socket: WebSocket | null = null;
9
- public status: boolean | undefined = false;
10
- private listeners: ((status: boolean | undefined) => void)[] = [];
11
- private queue: Request[] = [];
12
- private promises: {
13
- [id: string]: {
14
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
15
- resolve: (value: any) => void;
16
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
17
- reject: (reason?: any) => void;
18
- };
19
- } = {};
20
-
21
- public onOpen?: () => void = () => {};
22
- public onClose?: () => void = () => {};
23
- public onMessage?: (message: string) => void = () => {};
24
- public onError?: (error: unknown) => void = () => {};
25
-
26
- constructor(config: Config) {
27
- WebSocketService.instance = this;
28
- this.config = config;
29
- }
30
-
31
- public static getInstance() {
32
- return WebSocketService.instance;
33
- }
34
-
35
- private resetConnection() {
36
- this.setStatus(undefined);
37
- this.socket = new WebSocket(this.config.webSocketUrl);
38
-
39
- this.socket.onopen = () => {
40
- console.log('[WS] Connected');
41
- const interval = setInterval(() => {
42
- if (this.socket && this.socket.readyState === 1) {
43
- clearInterval(interval);
44
- this.setStatus(true);
45
- this.onOpen?.();
46
- }
47
- }, 100);
48
- };
49
-
50
- this.socket.onclose = () => {
51
- console.log('[WS] Disconnected');
52
- setTimeout(() => this.connect(), this.status === true ? 500 : 5000);
53
- this.onClose?.();
54
- this.setStatus(false);
55
- };
56
-
57
- this.socket.onmessage = (event) => {
58
- this.onMessage?.(event.data);
59
- this.parseMessage(event.data);
60
- };
61
-
62
- this.socket.onerror = (error) => {
63
- this.onError?.(error);
64
- console.error('[WS] Error:', error);
65
- };
66
- }
67
-
68
- public connect(force = false) {
69
- if (this.status === false || force) {
70
- this.resetConnection();
71
- }
72
- }
73
-
74
- public subscribe(listener: (status: boolean | undefined) => void) {
75
- this.listeners.push(listener);
76
- listener(this.status);
77
- return () => this.listeners.splice(this.listeners.indexOf(listener), 1);
78
- }
79
-
80
- public unsubscribe(listener: (status: boolean | undefined) => void) {
81
- this.listeners.splice(this.listeners.indexOf(listener), 1);
82
- }
83
-
84
- private setStatus(status: boolean | undefined) {
85
- const previousStatus = this.status;
86
- this.status = status;
87
- this.listeners.forEach((listener) => listener(status));
88
- if (this.socket && !previousStatus && status) {
89
- this.sendQueue();
90
- }
91
- }
92
-
93
- private sendQueue() {
94
- if (this.socket && this.status) {
95
- let request: Request | undefined;
96
- while ((request = this.queue.shift())) {
97
- console.log('[WS] Sending queued request:', request);
98
- this.socket?.send(JSON.stringify(request));
99
- }
100
- this.queue.forEach((request) =>
101
- this.socket?.send(JSON.stringify(request))
102
- );
103
- }
104
- }
105
-
106
- public sendRequest<TReq, TRes>(name: string, data: TReq) {
107
- const id = v4();
108
- const promise = new Promise<TRes>((resolve, reject) => {
109
- const request: Request = { id, name, data };
110
- this.promises[id] = { resolve, reject };
111
- if (!this.socket || !this.status) {
112
- this.queue.push(request);
113
- return;
114
- }
115
- console.log('[WS] Sending request:', request);
116
- this.socket?.send(JSON.stringify(request));
117
- });
118
- return promise;
119
- }
120
-
121
- private parseMessage(message: string) {
122
- try {
123
- const response = JSON.parse(message);
124
- if (!response.id) {
125
- throw new Error('Received message is not valid');
126
- }
127
- if (this.promises[response.id]) {
128
- console.log('[WS] Received response:', response);
129
- if (
130
- typeof response.data?.status === 'number' &&
131
- response.data.status < 0
132
- ) {
133
- this.promises[response.id].reject(new Error(response.data.message));
134
- } else {
135
- this.promises[response.id].resolve(response.data);
136
- }
137
- delete this.promises[response.id];
138
- } else {
139
- console.log('[WS] Received request:', response);
140
- // TODO : Implement request handling
141
- throw new Error('Not yet implemented');
142
- }
143
- } catch (error) {
144
- console.error('[WS] Error parsing message:', error);
145
- }
146
- }
147
- }
@@ -1,101 +0,0 @@
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 +0,0 @@
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 +0,0 @@
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,23 +0,0 @@
1
- import { HttpService } from './HttpService';
2
- import { WebSocketService } from './WebSocketService';
3
- import { useCallback } from 'react';
4
-
5
- export const useWebSocketRequestHandler = <TReq, TRes>(
6
- name: string
7
- ): ((data: TReq) => Promise<TRes>) =>
8
- useCallback(
9
- (data: TReq) => {
10
- return WebSocketService.getInstance().sendRequest<TReq, TRes>(name, data);
11
- },
12
- [name]
13
- );
14
-
15
- export const useHttpRequestHandler = <TReq, TRes>(
16
- name: string
17
- ): ((data: TReq) => Promise<TRes>) =>
18
- useCallback(
19
- (data: TReq) => {
20
- return HttpService.getInstance().sendRequest<TReq, TRes>(name, data);
21
- },
22
- [name]
23
- );
@@ -1,2 +0,0 @@
1
- export * from './WebSocketService';
2
- export * from './hooks';