@addev-be/ui 1.2.1 → 2.1.0

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 (195) hide show
  1. package/dist/components/auth/LoginForm.js +7 -5
  2. package/dist/components/auth/PasswordRecoveryForm.js +6 -5
  3. package/dist/components/auth/styles.d.ts +1 -3
  4. package/dist/components/data/DataGrid/DataGridColumnsModal/hooks.js +2 -2
  5. package/dist/components/data/DataGrid/DataGridColumnsModal/styles.d.ts +6 -18
  6. package/dist/components/data/DataGrid/DataGridEditableCell/CheckboxEditableCell.d.ts +1 -1
  7. package/dist/components/data/DataGrid/DataGridEditableCell/CheckboxEditableCell.js +3 -3
  8. package/dist/components/data/DataGrid/DataGridEditableCell/DateEditableCell.d.ts +1 -1
  9. package/dist/components/data/DataGrid/DataGridEditableCell/DateEditableCell.js +4 -4
  10. package/dist/components/data/DataGrid/DataGridEditableCell/NumberEditableCell.d.ts +2 -2
  11. package/dist/components/data/DataGrid/DataGridEditableCell/NumberEditableCell.js +4 -4
  12. package/dist/components/data/DataGrid/DataGridEditableCell/TextEditableCell.d.ts +1 -1
  13. package/dist/components/data/DataGrid/DataGridEditableCell/TextEditableCell.js +3 -3
  14. package/dist/components/data/DataGrid/DataGridEditableCell/types.d.ts +3 -3
  15. package/dist/components/data/DataGrid/DataGridFilterMenu/FilterValuesScroller.js +2 -2
  16. package/dist/components/data/DataGrid/DataGridFilterMenu/hooks.js +2 -2
  17. package/dist/components/data/DataGrid/DataGridFilterMenu/index.js +4 -4
  18. package/dist/components/data/DataGrid/DataGridFilterMenu/styles.d.ts +5 -15
  19. package/dist/components/data/DataGrid/DataGridHeaderCell.js +4 -4
  20. package/dist/components/data/DataGrid/DataGridToolbar.js +3 -3
  21. package/dist/components/data/DataGrid/FilterModalContent/index.js +5 -4
  22. package/dist/components/data/DataGrid/FilterModalContent/styles.d.ts +1 -3
  23. package/dist/components/data/DataGrid/helpers/columns.d.ts +1 -1
  24. package/dist/components/data/DataGrid/helpers/columns.js +21 -7
  25. package/dist/components/data/DataGrid/hooks/useDataGridSettings.js +2 -2
  26. package/dist/components/data/DataGrid/hooks/useRefreshModal.js +2 -2
  27. package/dist/components/data/DataGrid/index.d.ts +3 -44
  28. package/dist/components/data/DataGrid/index.js +4 -5
  29. package/dist/components/data/DataGrid/styles.d.ts +6 -18
  30. package/dist/components/data/SqlRequestDataGrid/SqlRequestForeignListEditableCell.d.ts +2 -1
  31. package/dist/components/data/SqlRequestDataGrid/SqlRequestForeignListEditableCell.js +2 -3
  32. package/dist/components/data/SqlRequestDataGrid/helpers/columns.d.ts +1 -1
  33. package/dist/components/data/SqlRequestDataGrid/helpers/columns.js +33 -22
  34. package/dist/components/data/SqlRequestDataGrid/helpers/rows.d.ts +2 -0
  35. package/dist/components/data/SqlRequestDataGrid/helpers/rows.js +17 -0
  36. package/dist/components/data/SqlRequestDataGrid/index.d.ts +4 -11
  37. package/dist/components/data/SqlRequestDataGrid/index.js +4 -5
  38. package/dist/components/data/SqlRequestForeignList/index.d.ts +4 -3
  39. package/dist/components/data/SqlRequestForeignList/index.js +8 -9
  40. package/dist/components/data/SqlRequestForeignList/types.d.ts +1 -1
  41. package/dist/components/data/SqlRequestGrid/filters/FiltersSidebar.js +2 -2
  42. package/dist/components/data/SqlRequestGrid/index.d.ts +4 -3
  43. package/dist/components/data/SqlRequestGrid/index.js +20 -20
  44. package/dist/components/data/SqlRequestGrid/styles.d.ts +1 -3
  45. package/dist/components/data/VirtualScroller/hooks.js +2 -2
  46. package/dist/components/data/VirtualScroller/styles.d.ts +2 -6
  47. package/dist/components/forms/Button.d.ts +1 -1
  48. package/dist/components/forms/Form/CustomSelect.d.ts +1 -1
  49. package/dist/components/forms/Form/CustomSelect.js +3 -4
  50. package/dist/components/forms/Form/FormGroup.d.ts +1 -1
  51. package/dist/components/forms/Form/Select.d.ts +1 -1
  52. package/dist/components/forms/Form/Select.js +3 -4
  53. package/dist/components/forms/Form/index.d.ts +4 -4
  54. package/dist/components/forms/Form/styles.d.ts +2 -4
  55. package/dist/components/forms/Form/styles.js +1 -1
  56. package/dist/components/forms/IconButton.d.ts +3 -3
  57. package/dist/components/forms/IconButton.js +4 -4
  58. package/dist/components/forms/NumberInput.d.ts +2 -2
  59. package/dist/components/forms/NumberInput.js +3 -3
  60. package/dist/components/forms/styles.d.ts +1 -3
  61. package/dist/components/layout/Dropdown/index.js +2 -2
  62. package/dist/components/layout/Dropdown/styles.d.ts +2 -6
  63. package/dist/components/layout/Flexbox.d.ts +1 -1
  64. package/dist/components/layout/Grid/styles.d.ts +1 -3
  65. package/dist/components/layout/Loading/index.js +2 -2
  66. package/dist/components/layout/Loading/styles.d.ts +2 -6
  67. package/dist/components/layout/Modal/index.js +2 -2
  68. package/dist/components/layout/Modal/styles.d.ts +9 -27
  69. package/dist/components/search/HighlightedText.js +3 -3
  70. package/dist/components/search/QuickSearchBar.d.ts +1 -1
  71. package/dist/components/search/QuickSearchBar.js +6 -6
  72. package/dist/components/search/styles.d.ts +9 -27
  73. package/dist/components/search/types.d.ts +1 -1
  74. package/dist/components/ui/Avatar/index.d.ts +1 -1
  75. package/dist/components/ui/Card/styles.d.ts +3 -9
  76. package/dist/components/ui/ContextMenu/styles.d.ts +4 -12
  77. package/dist/components/ui/Ellipsis.d.ts +0 -1
  78. package/dist/components/ui/Label.d.ts +2 -2
  79. package/dist/components/ui/Label.js +4 -4
  80. package/dist/components/ui/Message/index.js +1 -1
  81. package/dist/components/ui/Message/styles.d.ts +4 -7
  82. package/dist/components/ui/Message/styles.js +3 -2
  83. package/dist/components/ui/TabsView/styles.d.ts +1 -1
  84. package/dist/components/ui/TabsView/types.d.ts +1 -1
  85. package/dist/config/index.d.ts +1 -4
  86. package/dist/helpers/components.d.ts +1 -2
  87. package/dist/helpers/components.js +1 -8
  88. package/dist/helpers/react.d.ts +2 -0
  89. package/dist/helpers/react.js +8 -0
  90. package/dist/helpers/styled/space.d.ts +8 -8
  91. package/dist/hooks/useMutableState.d.ts +7 -1
  92. package/dist/index.d.ts +85 -7
  93. package/dist/index.js +85 -8
  94. package/dist/providers/AuthenticationProvider/index.d.ts +1 -1
  95. package/dist/providers/AuthenticationProvider/index.js +11 -10
  96. package/dist/providers/LoadingProvider/index.js +2 -2
  97. package/dist/providers/PortalsProvider/styles.d.ts +3 -9
  98. package/dist/providers/ThemeProvider/helpers.d.ts +1 -1
  99. package/dist/providers/ThemeProvider/index.d.ts +8 -4
  100. package/dist/providers/ThemeProvider/index.js +49 -19
  101. package/dist/providers/ThemeProvider/types.d.ts +1 -1
  102. package/dist/providers/TrackingProvider/index.js +2 -2
  103. package/dist/providers/UiProviders/index.js +1 -1
  104. package/dist/providers/UiProviders/styles.d.ts +1 -3
  105. package/dist/services/hooks.js +2 -2
  106. package/dist/services/requests/auth.d.ts +4 -4
  107. package/dist/services/requests/tracking.d.ts +2 -2
  108. package/dist/services/requests/userProfiles.d.ts +4 -4
  109. package/dist/services/requests/users.d.ts +8 -8
  110. package/dist/services/types/auth.d.ts +4 -4
  111. package/dist/services/types/base.d.ts +1 -1
  112. package/dist/services/types/base.js +1 -1
  113. package/dist/services/types/tracking.d.ts +3 -3
  114. package/dist/services/types/userProfiles.d.ts +5 -5
  115. package/dist/services/types/users.d.ts +10 -10
  116. package/dist/types.d.ts +3 -0
  117. package/dist/types.js +2 -0
  118. package/package.json +4 -4
  119. package/src/components/auth/LoginForm.tsx +5 -3
  120. package/src/components/auth/PasswordRecoveryForm.tsx +4 -3
  121. package/src/components/data/DataGrid/DataGridColumnsModal/hooks.tsx +1 -1
  122. package/src/components/data/DataGrid/DataGridEditableCell/CheckboxEditableCell.tsx +7 -8
  123. package/src/components/data/DataGrid/DataGridEditableCell/DateEditableCell.tsx +7 -8
  124. package/src/components/data/DataGrid/DataGridEditableCell/NumberEditableCell.tsx +17 -21
  125. package/src/components/data/DataGrid/DataGridEditableCell/TextEditableCell.tsx +7 -8
  126. package/src/components/data/DataGrid/DataGridEditableCell/types.ts +5 -6
  127. package/src/components/data/DataGrid/DataGridFilterMenu/FilterValuesScroller.tsx +1 -1
  128. package/src/components/data/DataGrid/DataGridFilterMenu/hooks.tsx +1 -1
  129. package/src/components/data/DataGrid/DataGridFilterMenu/index.tsx +1 -1
  130. package/src/components/data/DataGrid/DataGridHeaderCell.tsx +2 -2
  131. package/src/components/data/DataGrid/DataGridToolbar.tsx +2 -2
  132. package/src/components/data/DataGrid/FilterModalContent/index.tsx +3 -1
  133. package/src/components/data/DataGrid/helpers/columns.tsx +8 -9
  134. package/src/components/data/DataGrid/hooks/useDataGridSettings.ts +1 -1
  135. package/src/components/data/DataGrid/hooks/useRefreshModal.tsx +1 -1
  136. package/src/components/data/DataGrid/index.tsx +9 -20
  137. package/src/components/data/SqlRequestDataGrid/helpers/columns.tsx +32 -54
  138. package/src/components/data/SqlRequestDataGrid/helpers/rows.ts +24 -0
  139. package/src/components/data/SqlRequestDataGrid/index.tsx +9 -12
  140. package/src/components/data/SqlRequestForeignList/index.tsx +22 -25
  141. package/src/components/data/SqlRequestForeignList/types.ts +1 -1
  142. package/src/components/data/SqlRequestGrid/filters/FiltersSidebar.tsx +1 -1
  143. package/src/components/data/SqlRequestGrid/index.tsx +8 -9
  144. package/src/components/data/VirtualScroller/hooks.ts +1 -1
  145. package/src/components/forms/Form/CustomSelect.tsx +14 -22
  146. package/src/components/forms/Form/FormGroup.tsx +1 -1
  147. package/src/components/forms/Form/Select.tsx +14 -19
  148. package/src/components/forms/Form/styles.ts +2 -2
  149. package/src/components/forms/IconButton.tsx +12 -18
  150. package/src/components/forms/NumberInput.tsx +1 -1
  151. package/src/components/layout/Dropdown/index.tsx +1 -1
  152. package/src/components/layout/Flexbox.ts +1 -1
  153. package/src/components/layout/Loading/index.tsx +1 -1
  154. package/src/components/layout/Modal/index.tsx +1 -1
  155. package/src/components/layout/Modal/styles.ts +1 -1
  156. package/src/components/search/HighlightedText.tsx +1 -1
  157. package/src/components/search/QuickSearchBar.tsx +3 -3
  158. package/src/components/search/types.ts +1 -1
  159. package/src/components/ui/Avatar/index.tsx +1 -1
  160. package/src/components/ui/Ellipsis.tsx +0 -1
  161. package/src/components/ui/Label.tsx +11 -17
  162. package/src/components/ui/Message/index.tsx +2 -2
  163. package/src/components/ui/Message/styles.ts +5 -1
  164. package/src/components/ui/TabsView/styles.ts +4 -1
  165. package/src/components/ui/TabsView/types.ts +4 -1
  166. package/src/config/index.ts +2 -6
  167. package/src/helpers/components.ts +1 -15
  168. package/src/helpers/styled/space.ts +4 -1
  169. package/src/hooks/useMutableState.ts +9 -1
  170. package/src/index.ts +97 -9
  171. package/src/providers/AuthenticationProvider/index.tsx +3 -3
  172. package/src/providers/LoadingProvider/index.tsx +1 -1
  173. package/src/providers/ThemeProvider/helpers.ts +1 -1
  174. package/src/providers/ThemeProvider/index.ts +65 -4
  175. package/src/providers/ThemeProvider/types.ts +1 -1
  176. package/src/providers/TrackingProvider/index.tsx +1 -1
  177. package/src/providers/UiProviders/index.tsx +1 -1
  178. package/src/services/hooks.ts +1 -1
  179. package/src/services/types/base.ts +1 -1
  180. package/src/types.ts +8 -0
  181. package/src/typings.d.ts +0 -15
  182. package/tsconfig.tsbuildinfo +1 -1
  183. package/src/components/auth/index.ts +0 -4
  184. package/src/components/data/SqlRequestDataGrid/SqlRequestForeignListEditableCell.tsx +0 -16
  185. package/src/components/data/index.ts +0 -16
  186. package/src/components/forms/index.ts +0 -9
  187. package/src/components/index.ts +0 -6
  188. package/src/components/layout/index.ts +0 -7
  189. package/src/components/search/index.ts +0 -9
  190. package/src/components/ui/index.ts +0 -7
  191. package/src/helpers/index.ts +0 -5
  192. package/src/hooks/index.ts +0 -7
  193. package/src/providers/ThemeProvider/ThemeProvider.ts +0 -66
  194. package/src/providers/index.ts +0 -9
  195. package/src/services/index.ts +0 -21
@@ -1,4 +1,3 @@
1
- import { ForwardedRef, forwardRef, useCallback } from 'react';
2
1
  import {
3
2
  decimalSeparator,
4
3
  getCurrencySymbol,
@@ -7,25 +6,24 @@ import {
7
6
 
8
7
  import { DataGridEditableCellProps } from './types';
9
8
  import { NumericFormat } from 'react-number-format';
9
+ import { useCallback } from 'react';
10
10
 
11
- const NumberEditableCellInner = <R,>(
12
- {
13
- decimals = 0,
14
- currency,
15
- prefix: prefixFromProps,
16
- suffix: suffixFromProps,
17
- row,
18
- value,
19
- onChange,
20
- onClose,
21
- }: DataGridEditableCellProps<R, number> & {
22
- decimals?: number;
23
- currency?: string | ((row: R) => string);
24
- prefix?: string;
25
- suffix?: string;
26
- },
27
- ref: ForwardedRef<HTMLElement>
28
- ) => {
11
+ export const NumberEditableCell = <R,>({
12
+ decimals = 0,
13
+ currency,
14
+ prefix: prefixFromProps,
15
+ suffix: suffixFromProps,
16
+ row,
17
+ value,
18
+ onChange,
19
+ onClose,
20
+ ref,
21
+ }: DataGridEditableCellProps<R, number> & {
22
+ decimals?: number;
23
+ currency?: string | ((row: R) => string);
24
+ prefix?: string;
25
+ suffix?: string;
26
+ }) => {
29
27
  const currencyName =
30
28
  typeof currency === 'function' ? currency(row) : currency;
31
29
 
@@ -71,5 +69,3 @@ const NumberEditableCellInner = <R,>(
71
69
  />
72
70
  );
73
71
  };
74
-
75
- export const NumberEditableCell = forwardRef(NumberEditableCellInner);
@@ -1,11 +1,12 @@
1
- import { Ref, forwardRef, useCallback } from 'react';
2
-
3
1
  import { DataGridEditableCellProps } from './types';
2
+ import { useCallback } from 'react';
4
3
 
5
- const TextEditableCellInner = <R,>(
6
- { value, onChange, onClose }: DataGridEditableCellProps<R, string>,
7
- ref: Ref<HTMLInputElement>
8
- ) => {
4
+ export const TextEditableCell = <R,>({
5
+ value,
6
+ onChange,
7
+ onClose,
8
+ ref,
9
+ }: DataGridEditableCellProps<R, string>) => {
9
10
  const onBlur = useCallback(() => {
10
11
  onClose(true);
11
12
  }, [onClose]);
@@ -34,5 +35,3 @@ const TextEditableCellInner = <R,>(
34
35
  />
35
36
  );
36
37
  };
37
-
38
- export const TextEditableCell = forwardRef(TextEditableCellInner);
@@ -1,6 +1,6 @@
1
1
  /* eslint-disable @typescript-eslint/no-explicit-any */
2
2
 
3
- import { ReactNode, Ref } from 'react';
3
+ import { FC, Ref } from 'react';
4
4
 
5
5
  import { DataGridContext } from '../types';
6
6
 
@@ -8,12 +8,11 @@ export type DataGridEditableCellProps<R, T> = {
8
8
  ref?: Ref<any>;
9
9
  row: R;
10
10
  value: T;
11
- onChange: (value: T) => void;
11
+ onChange: (value: T | null) => void;
12
12
  onClose: (save: boolean) => void;
13
13
  context: DataGridContext<R>;
14
14
  };
15
15
 
16
- export type DataGridEditableCellFC<R, T = any> = (
17
- props: DataGridEditableCellProps<R, T>,
18
- ref: Ref<any>
19
- ) => ReactNode;
16
+ export type DataGridEditableCellFC<R, T = any> = FC<
17
+ DataGridEditableCellProps<R, T>
18
+ >;
@@ -11,7 +11,7 @@ import { defaultRendererAndFormatter, getCheckboxes } from '../helpers';
11
11
  import { useCallback, useEffect, useMemo, useRef, useState } from 'react';
12
12
 
13
13
  import { debounce } from 'lodash';
14
- import { useElementSize } from '../../../../hooks';
14
+ import { useElementSize } from '../../../../hooks/useElementSize';
15
15
 
16
16
  const CheckboxTemplate = ({
17
17
  selectedValues,
@@ -6,7 +6,7 @@ import {
6
6
  import { FilterIcon, FilterSlashIcon } from '../../../../Icons';
7
7
  import { useCallback, useState } from 'react';
8
8
 
9
- import { Button } from '../../../forms';
9
+ import { Button } from '../../../forms/Button';
10
10
  import { FilterModalContent } from '../FilterModalContent';
11
11
  import { Modal } from '../../../layout/Modal';
12
12
  import { useDataGridContext } from '../hooks';
@@ -45,7 +45,7 @@ import {
45
45
 
46
46
  import { ContextMenu } from '../../../ui/ContextMenu';
47
47
  import { FilterValuesScroller } from './FilterValuesScroller';
48
- import { Input } from '../../../forms';
48
+ import { Input } from '../../../forms/styles';
49
49
  import { MenuContainer } from '../../../ui/ContextMenu/styles';
50
50
  import { sortAvailableValues } from './helpers';
51
51
  import { useFilterModal } from './hooks';
@@ -7,10 +7,10 @@ import { useCallback, useMemo, useRef, useState } from 'react';
7
7
  import { ChevronDownIcon } from '../../../Icons';
8
8
  import { DataGridFilterMenu } from './DataGridFilterMenu';
9
9
  import { DataGridHeaderCellProps } from './types';
10
- import { Dropdown } from '../../layout';
10
+ import { Dropdown } from '../../layout/Dropdown';
11
11
  import { IconButton } from '../../forms/IconButton';
12
12
  import { useDataGridContext } from './hooks';
13
- import { useUi } from '../../../providers';
13
+ import { useUi } from '../../../providers/hooks';
14
14
 
15
15
  export const DataGridHeaderCell = <R,>({
16
16
  columnKey,
@@ -10,9 +10,9 @@ import {
10
10
  } from '../../../Icons';
11
11
  import { useCallback, useState } from 'react';
12
12
 
13
- import { Button } from '../../forms';
13
+ import { Button } from '../../forms/Button';
14
14
  import { DataGridContext } from './types';
15
- import { Loading } from '../../layout';
15
+ import { Loading } from '../../layout/Loading';
16
16
  import { useDataGridColumnsModal } from './DataGridColumnsModal/hooks';
17
17
  import { useDataGridContext } from './hooks';
18
18
  import { useRefreshModal } from './hooks/useRefreshModal';
@@ -7,9 +7,11 @@ import {
7
7
  DataGridFilterOperator,
8
8
  DataGridFilterType,
9
9
  } from '../types';
10
- import { Input, Select } from '../../../forms';
11
10
  import { useEffect, useRef } from 'react';
12
11
 
12
+ import { Input } from '../../../forms/styles';
13
+ import { Select } from '../../../forms/Select';
14
+
13
15
  // import { Select } from '../../Select';
14
16
  // import clx from 'classnames';
15
17
 
@@ -11,7 +11,7 @@ import {
11
11
  DataGridTextColumn,
12
12
  } from '../types';
13
13
  import { dateFilter, numberFilter, textFilter } from './filters';
14
- import { formatDate, formatDateTime } from '../../../../helpers';
14
+ import { formatDate, formatDateTime } from '../../../../helpers/dates';
15
15
  import {
16
16
  formatMoney,
17
17
  formatNumber,
@@ -21,16 +21,15 @@ import {
21
21
 
22
22
  import { CheckboxEditableCell } from '../DataGridEditableCell/CheckboxEditableCell';
23
23
  import { DateEditableCell } from '../DataGridEditableCell/DateEditableCell';
24
- import { DeepPartial } from '../../../../typings';
24
+ import { DeepPartial } from '../../../../types';
25
25
  import { NumberEditableCell } from '../DataGridEditableCell/NumberEditableCell';
26
- import { Ref } from 'react';
27
26
  import { Select } from '../../../forms/Form/Select';
28
27
  import { SqlRequestDataGridTextColumn } from '../../SqlRequestDataGrid/types';
29
28
  import { StyledTypography } from '../../../../helpers/styled/typography';
30
29
  import { TextEditableCell } from '../DataGridEditableCell/TextEditableCell';
31
- import { forwardRefWithName } from '../../../../helpers/components';
32
30
  import moment from 'moment';
33
31
  import { repeat } from 'lodash';
32
+ import { withDisplayName } from '../../../../helpers/components';
34
33
 
35
34
  export const isColumnVisible = <R,>(
36
35
  obj: DataGridColumn<R> | DataGridSettings
@@ -236,13 +235,13 @@ export const numberColumn = <R extends Record<string, any>>(
236
235
  ...numberFilter(key),
237
236
  renderer: (value) => formatNumber(value, decimals) ?? '',
238
237
  },
239
- editComponent: forwardRefWithName(
240
- (props, ref: Ref<HTMLInputElement>) => (
238
+ editComponent: withDisplayName(
239
+ ({ ref, ...otherProps }) => (
241
240
  <NumberEditableCell<R>
242
241
  ref={ref}
243
242
  decimals={column.decimals}
244
243
  currency={column.currency}
245
- {...props}
244
+ {...otherProps}
246
245
  />
247
246
  ),
248
247
  'NumberColumnEditComponent'
@@ -417,8 +416,8 @@ export const selectColumn = <R extends Record<string, any>, T>(
417
416
  items,
418
417
  itemKey,
419
418
  itemLabel,
420
- editComponent: forwardRefWithName(
421
- ({ value, onChange, onClose }, ref: Ref<HTMLSelectElement>) => (
419
+ editComponent: withDisplayName(
420
+ ({ value, onChange, onClose, ref }) => (
422
421
  <Select<T>
423
422
  ref={ref}
424
423
  items={items}
@@ -1,7 +1,7 @@
1
1
  import { useCallback, useEffect, useState } from 'react';
2
2
 
3
3
  import { DataGridSettings } from '../types';
4
- import { useSettings } from '../../../../providers';
4
+ import { useSettings } from '../../../../providers/hooks';
5
5
 
6
6
  export const useDataGridSettings = (name?: string) => {
7
7
  // TODO: Implement settings context
@@ -1,6 +1,6 @@
1
1
  import { useCallback, useMemo, useState } from 'react';
2
2
 
3
- import { Button } from '../../../forms';
3
+ import { Button } from '../../../forms/Button';
4
4
  import { Modal } from '../../../layout/Modal';
5
5
  import { TriangleExclamationIcon } from '../../../../Icons';
6
6
 
@@ -1,13 +1,6 @@
1
1
  import * as styles from './styles';
2
2
 
3
- import {
4
- Context,
5
- ForwardedRef,
6
- forwardRef,
7
- useImperativeHandle,
8
- useMemo,
9
- useRef,
10
- } from 'react';
3
+ import { Context, useImperativeHandle, useMemo, useRef } from 'react';
11
4
  import {
12
5
  DEFAULT_COLUMN_WIDTH,
13
6
  DEFAULT_ROW_HEIGHT,
@@ -23,15 +16,13 @@ import { VirtualScroller } from '../VirtualScroller';
23
16
  import { extractSpaceProps } from '../../../helpers/styled/space';
24
17
  import { useDataGrid } from './hooks';
25
18
 
26
- export const DataGridInner = <R,>(
27
- {
28
- contextOverride,
29
- ...props
30
- }: DataGridProps<R> & {
31
- contextOverride?: Partial<DataGridContextProps<R>>;
32
- },
33
- ref: ForwardedRef<DataGridRefProps<R>>
34
- ) => {
19
+ export const DataGrid = <R,>({
20
+ contextOverride,
21
+ ...props
22
+ }: DataGridProps<R> & {
23
+ contextOverride?: Partial<DataGridContextProps<R>>;
24
+ ref: React.Ref<DataGridRefProps<R>>;
25
+ }) => {
35
26
  const scrollableRef = useRef<HTMLDivElement>(null);
36
27
  const { className } = props;
37
28
  const spaceProps = extractSpaceProps(props);
@@ -55,7 +46,7 @@ export const DataGridInner = <R,>(
55
46
  } = contextProps;
56
47
 
57
48
  useImperativeHandle(
58
- ref,
49
+ props.ref,
59
50
  () => ({
60
51
  refresh: refresh ?? (() => {}),
61
52
  setSelectedKeys,
@@ -118,5 +109,3 @@ export const DataGridInner = <R,>(
118
109
  </DataGridContext.Provider>
119
110
  );
120
111
  };
121
-
122
- export const DataGrid = forwardRef(DataGridInner);
@@ -1,7 +1,5 @@
1
- /* eslint-disable react/display-name */
2
1
  /* eslint-disable @typescript-eslint/no-explicit-any */
3
2
 
4
- import { Ref, forwardRef, useContext } from 'react';
5
3
  import { SqlImage, SqlImageWrapper } from '../styles';
6
4
  import {
7
5
  SqlRequestDataGridCheckboxColumn,
@@ -16,6 +14,7 @@ import {
16
14
  numberFilter,
17
15
  textFilter,
18
16
  } from '../../DataGrid/helpers';
17
+ import { convertItemToPartialRow, convertRowToItem } from './rows';
19
18
  import { formatDate, formatDateTime } from '../../../../helpers/dates';
20
19
  import {
21
20
  formatMoney,
@@ -23,17 +22,18 @@ import {
23
22
  formatNumberInvariant,
24
23
  formatPercentage,
25
24
  } from '../../../../helpers/numbers';
26
- import { mapKeys, merge } from 'lodash';
27
25
 
28
26
  import { CheckboxEditableCell } from '../../DataGrid/DataGridEditableCell/CheckboxEditableCell';
29
27
  import { DEFAULT_ROW_HEIGHT } from '../../DataGrid/constants';
30
28
  import { DateEditableCell } from '../../DataGrid/DataGridEditableCell/DateEditableCell';
31
- import { DeepPartial } from '../../../../typings';
29
+ import { DeepPartial } from '../../../../types';
32
30
  import { NumberEditableCell } from '../../DataGrid/DataGridEditableCell/NumberEditableCell';
33
31
  import { SqlRequestForeignList } from '../../SqlRequestForeignList';
34
32
  import { SqlRequestForeignListItemFC } from '../../SqlRequestForeignList/types';
35
33
  import { StyledTypography } from '../../../../helpers/styled/typography';
36
34
  import { TextEditableCell } from '../../DataGrid/DataGridEditableCell/TextEditableCell';
35
+ import { merge } from 'lodash';
36
+ import { useContext } from 'react';
37
37
 
38
38
  export const sqlTextColumn = <R extends Record<string, any>>(
39
39
  key: string,
@@ -237,16 +237,16 @@ export const sqlNumberColumn = <R extends Record<string, any>>(
237
237
  max: null,
238
238
  min: null,
239
239
  },
240
- editComponent: forwardRef((props, ref: Ref<HTMLInputElement>) => (
240
+ editComponent: ({ ref, ...otherProps }) => (
241
241
  <NumberEditableCell<R>
242
242
  ref={ref}
243
243
  decimals={column.decimals}
244
244
  currency={column.currency}
245
245
  prefix={column.prefix}
246
246
  suffix={column.suffix}
247
- {...props}
247
+ {...otherProps}
248
248
  />
249
- )),
249
+ ),
250
250
  };
251
251
  return merge(column, options);
252
252
  };
@@ -301,14 +301,14 @@ export const sqlMoneyColumn = <R extends Record<string, any>>(
301
301
  max: null,
302
302
  min: null,
303
303
  },
304
- editComponent: forwardRef((props, ref: Ref<HTMLInputElement>) => (
304
+ editComponent: ({ ref, ...otherProps }) => (
305
305
  <NumberEditableCell<R>
306
306
  ref={ref}
307
307
  decimals={column.decimals}
308
308
  currency={column.currency}
309
- {...props}
309
+ {...otherProps}
310
310
  />
311
- )),
311
+ ),
312
312
  };
313
313
  return merge(column, options);
314
314
  };
@@ -339,14 +339,14 @@ export const sqlPercentageColumn = <R extends Record<string, any>>(
339
339
  getter: (value) => value[key] ?? 0,
340
340
  renderer: (value) => formatPercentage(value, decimals) ?? '',
341
341
  },
342
- editComponent: forwardRef((props, ref: Ref<HTMLInputElement>) => (
342
+ editComponent: ({ ref, ...otherProps }) => (
343
343
  <NumberEditableCell<R>
344
344
  ref={ref}
345
345
  decimals={column.decimals}
346
346
  currency={column.currency}
347
- {...props}
347
+ {...otherProps}
348
348
  />
349
- )),
349
+ ),
350
350
  };
351
351
  return merge(column, options);
352
352
  };
@@ -444,27 +444,6 @@ export const sqlColorColumn = <R extends Record<string, any>>(
444
444
  options
445
445
  );
446
446
 
447
- const convertRowToItem = <R extends Record<string, any>, T>(
448
- row: R,
449
- columnMapping: Record<string, keyof R>
450
- ) => mapKeys(row, (_, key) => columnMapping[key]) as T;
451
-
452
- const convertItemToPartialRow = <
453
- R extends Record<string, any>,
454
- T extends Record<string, any>
455
- >(
456
- key: string,
457
- row: R,
458
- item: T | null,
459
- columnMapping: Record<keyof R, keyof T>
460
- ): Partial<R> => {
461
- const partialRow = { Id: key } as unknown as Partial<R>;
462
- Object.entries(columnMapping).forEach(([key, value]: [keyof R, keyof T]) => {
463
- partialRow[key] = (item?.[value] ?? null) as R[keyof R];
464
- });
465
- return partialRow;
466
- };
467
-
468
447
  export const sqlForeignListColumn = <
469
448
  R extends Record<string, any>,
470
449
  T extends Record<string, any>,
@@ -499,26 +478,25 @@ export const sqlForeignListColumn = <
499
478
  idColumn: 'Id',
500
479
  itemTemplate: ItemTemplate,
501
480
  columns: Object.values(columnMapping),
502
- editComponent: forwardRef(
503
- ({ row, onChange, onClose, context }, ref: Ref<HTMLDivElement>) => {
504
- const { rowHeight = DEFAULT_ROW_HEIGHT } = useContext(context);
505
- return (
506
- <SqlRequestForeignList<T>
507
- initialValue={convertRowToItem<R, T>(row, columnMapping)}
508
- maxRows={10}
509
- rowHeight={rowHeight - 2}
510
- onItemChanged={onChange}
511
- onBlur={() => onClose(true)}
512
- ref={ref}
513
- requestName={column.requestName}
514
- idColumn={column.idColumn}
515
- columns={column.columns}
516
- itemTemplate={column.itemTemplate}
517
- valueTemplate={column.valueTemplate}
518
- />
519
- );
520
- }
521
- ),
481
+ editComponent: ({ row, onChange, onClose, context, ref }) => {
482
+ // eslint-disable-next-line react-hooks/rules-of-hooks
483
+ const { rowHeight = DEFAULT_ROW_HEIGHT } = useContext(context);
484
+ return (
485
+ <SqlRequestForeignList<T>
486
+ initialValue={convertRowToItem<R, T>(row, columnMapping)}
487
+ maxRows={10}
488
+ rowHeight={rowHeight - 2}
489
+ onItemChanged={onChange}
490
+ onBlur={() => onClose(true)}
491
+ ref={ref}
492
+ requestName={column.requestName}
493
+ idColumn={column.idColumn}
494
+ columns={column.columns}
495
+ itemTemplate={column.itemTemplate}
496
+ valueTemplate={column.valueTemplate}
497
+ />
498
+ );
499
+ },
522
500
  itemToPartialRow: (key, row, value) =>
523
501
  convertItemToPartialRow(key, row, value, columnMapping),
524
502
  };
@@ -0,0 +1,24 @@
1
+ /* eslint-disable @typescript-eslint/no-explicit-any */
2
+
3
+ import { mapKeys } from 'lodash';
4
+
5
+ export const convertRowToItem = <R extends Record<string, any>, T>(
6
+ row: R,
7
+ columnMapping: Record<string, keyof R>
8
+ ) => mapKeys(row, (_, key) => columnMapping[key]) as T;
9
+
10
+ export const convertItemToPartialRow = <
11
+ R extends Record<string, any>,
12
+ T extends Record<string, any>
13
+ >(
14
+ key: string,
15
+ row: R,
16
+ item: T | null,
17
+ columnMapping: Record<keyof R, keyof T>
18
+ ): Partial<R> => {
19
+ const partialRow = { Id: key } as unknown as Partial<R>;
20
+ Object.entries(columnMapping).forEach(([key, value]: [keyof R, keyof T]) => {
21
+ partialRow[key] = (item?.[value] ?? null) as R[keyof R];
22
+ });
23
+ return partialRow;
24
+ };
@@ -14,10 +14,9 @@ import {
14
14
  } from '../DataGrid/types';
15
15
  import {
16
16
  Dispatch,
17
- ForwardedRef,
18
17
  ReactNode,
18
+ Ref,
19
19
  SetStateAction,
20
- forwardRef,
21
20
  useCallback,
22
21
  useEffect,
23
22
  useImperativeHandle,
@@ -32,14 +31,14 @@ import { SqlRequestDataGridProps } from './types';
32
31
  import { convertSqlFiltersToConditions } from './helpers';
33
32
  import { isColumnVisible } from '../DataGrid/helpers';
34
33
 
35
- export const SqlRequestDataGridInner = <R,>(
36
- {
37
- onSelectionChange: onSelectionChangeFromProps,
38
- rowKey,
39
- ...props
40
- }: SqlRequestDataGridProps<R>,
41
- ref: ForwardedRef<DataGridRefProps<R>>
42
- ) => {
34
+ export const SqlRequestDataGrid = <R,>({
35
+ onSelectionChange: onSelectionChangeFromProps,
36
+ rowKey,
37
+ ref,
38
+ ...props
39
+ }: SqlRequestDataGridProps<R> & {
40
+ ref?: Ref<DataGridRefProps<R>>;
41
+ }) => {
43
42
  const currentRows = useRef<R[]>([]);
44
43
  const [rows, setRows] = useState<R[]>([]);
45
44
  const setRowsRef = useCallback<Dispatch<SetStateAction<R[]>>>((value) => {
@@ -416,5 +415,3 @@ export const SqlRequestDataGridInner = <R,>(
416
415
  />
417
416
  );
418
417
  };
419
-
420
- export const SqlRequestDataGrid = forwardRef(SqlRequestDataGridInner);
@@ -4,11 +4,10 @@ import {
4
4
  ConditionDTO,
5
5
  OrderByDTO,
6
6
  useSqlRequestHandler,
7
- } from '../../../services';
7
+ } from '../../../services/sqlRequests';
8
8
  import {
9
- ForwardedRef,
10
9
  MouseEvent,
11
- forwardRef,
10
+ Ref,
12
11
  useCallback,
13
12
  useEffect,
14
13
  useImperativeHandle,
@@ -27,7 +26,7 @@ import {
27
26
  } from './types';
28
27
 
29
28
  import { ChevronDownIcon } from '../../../Icons';
30
- import { Dropdown } from '../../layout';
29
+ import { Dropdown } from '../../layout/Dropdown';
31
30
  import { VirtualScroller } from '../VirtualScroller';
32
31
  import { VirtualScrollerTemplateFC } from '../VirtualScroller/types';
33
32
  import { debounce } from 'lodash';
@@ -79,25 +78,25 @@ const createItemTemplate = <R extends Record<string, any>>(
79
78
  );
80
79
  }, 'SqlRequestForeignListCreateItemTemplate');
81
80
 
82
- export const SqlRequestForeignListInner = <T extends Record<string, any>>(
83
- {
84
- requestName,
85
- idColumn,
86
- columns = [],
87
- initialValue = null,
88
- onItemChanged,
89
- onIdChanged,
90
- onClosed,
91
- onBlur,
92
- itemTemplate,
93
- valueTemplate,
94
- rowHeight = DEFAULT_ROW_HEIGHT,
95
- maxRows = 10,
96
- orderBy = [],
97
- conditions = [],
98
- }: SqlRequestForeignListProps<T>,
99
- ref: ForwardedRef<HTMLDivElement>
100
- ) => {
81
+ export const SqlRequestForeignList = <T extends Record<string, any>>({
82
+ requestName,
83
+ idColumn,
84
+ columns = [],
85
+ initialValue = null,
86
+ onItemChanged,
87
+ onIdChanged,
88
+ onClosed,
89
+ onBlur,
90
+ itemTemplate,
91
+ valueTemplate,
92
+ rowHeight = DEFAULT_ROW_HEIGHT,
93
+ maxRows = 10,
94
+ orderBy = [],
95
+ conditions = [],
96
+ ref,
97
+ }: SqlRequestForeignListProps<T> & {
98
+ ref?: Ref<HTMLDivElement>;
99
+ }) => {
101
100
  const [opened, setOpened] = useState(false);
102
101
  const [rect, setRect] = useState<DOMRect | null>(null);
103
102
 
@@ -253,5 +252,3 @@ export const SqlRequestForeignListInner = <T extends Record<string, any>>(
253
252
  </>
254
253
  );
255
254
  };
256
-
257
- export const SqlRequestForeignList = forwardRef(SqlRequestForeignListInner);
@@ -1,4 +1,4 @@
1
- import { ConditionDTO, OrderByDTO } from '../../../services';
1
+ import { ConditionDTO, OrderByDTO } from '../../../services/sqlRequests';
2
2
 
3
3
  import { VirtualScrollerTemplateFC } from '../VirtualScroller/types';
4
4
 
@@ -11,7 +11,7 @@ import { SqlRequestGridColumnWithFilter, SqlRequestGridProps } from '../types';
11
11
 
12
12
  import { DataGridContext } from '../../DataGrid/types';
13
13
  import { DataGridFilterMenu } from '../../DataGrid/DataGridFilterMenu';
14
- import { IconButton } from '../../../forms';
14
+ import { IconButton } from '../../../forms/IconButton';
15
15
 
16
16
  type FiltersSidebarProps<R, P extends object = {}> = {
17
17
  props: SqlRequestGridProps<R, P>;