@addev-be/ui 0.2.5 → 0.2.6

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 (133) hide show
  1. package/assets/icons/arrow-down-a-z.svg +1 -1
  2. package/assets/icons/arrow-up-z-a.svg +1 -1
  3. package/assets/icons/check.svg +1 -1
  4. package/assets/icons/down.svg +1 -1
  5. package/assets/icons/filter-full.svg +1 -1
  6. package/assets/icons/filter.svg +1 -1
  7. package/assets/icons/hashtag.svg +1 -1
  8. package/assets/icons/image-slash.svg +1 -1
  9. package/assets/icons/left.svg +1 -1
  10. package/assets/icons/magnifier.svg +1 -1
  11. package/assets/icons/phone.svg +1 -1
  12. package/assets/icons/right.svg +1 -1
  13. package/assets/icons/spinner-third.svg +1 -1
  14. package/assets/icons/table-columns.svg +1 -1
  15. package/assets/icons/up.svg +1 -1
  16. package/assets/icons/user-tie.svg +1 -1
  17. package/dist/components/data/DataGrid/AdvancedRequestDataGrid.d.ts +1 -2
  18. package/dist/components/data/DataGrid/AdvancedRequestDataGrid.js +3 -5
  19. package/dist/components/data/DataGrid/DataGridCell.d.ts +1 -1
  20. package/dist/components/data/DataGrid/DataGridCell.js +5 -5
  21. package/dist/components/data/DataGrid/DataGridEditableCell.js +2 -7
  22. package/dist/components/data/DataGrid/DataGridFilterMenu/index.js +10 -8
  23. package/dist/components/data/DataGrid/DataGridFooter.js +4 -14
  24. package/dist/components/data/DataGrid/DataGridHeader.js +1 -3
  25. package/dist/components/data/DataGrid/DataGridHeaderCell.js +6 -5
  26. package/dist/components/data/DataGrid/FilterModalContent/index.d.ts +5 -5
  27. package/dist/components/data/DataGrid/FilterModalContent/index.js +11 -9
  28. package/dist/components/data/DataGrid/FilterValuesScroller.d.ts +8 -7
  29. package/dist/components/data/DataGrid/FilterValuesScroller.js +5 -6
  30. package/dist/components/data/DataGrid/helpers/columns.js +1 -4
  31. package/dist/components/data/DataGrid/helpers/filters.d.ts +4 -3
  32. package/dist/components/data/DataGrid/helpers/filters.js +13 -5
  33. package/dist/components/data/DataGrid/hooks/useDataGrid.js +2 -2
  34. package/dist/components/data/DataGrid/hooks/useDataGridCopy.js +0 -1
  35. package/dist/components/data/DataGrid/hooks/useDataGridSettings.js +0 -1
  36. package/dist/components/data/DataGrid/index.js +16 -5
  37. package/dist/components/data/DataGrid/styles.d.ts +4 -1
  38. package/dist/components/data/DataGrid/styles.js +11 -8
  39. package/dist/components/data/DataGrid/types.d.ts +20 -15
  40. package/dist/components/data/SqlRequestDataGrid/helpers/columns.js +7 -9
  41. package/dist/components/data/SqlRequestDataGrid/index.js +34 -18
  42. package/dist/components/data/SqlRequestDataGrid/types.d.ts +1 -0
  43. package/dist/components/data/index.d.ts +2 -0
  44. package/dist/components/data/index.js +2 -0
  45. package/dist/helpers/dates.d.ts +2 -0
  46. package/dist/helpers/dates.js +13 -0
  47. package/package.json +1 -1
  48. package/src/Icons.tsx +80 -80
  49. package/src/components/data/AdvancedRequestDataGrid/helpers/advancedRequests.ts +93 -93
  50. package/src/components/data/AdvancedRequestDataGrid/helpers/columns.tsx +262 -262
  51. package/src/components/data/AdvancedRequestDataGrid/helpers/index.ts +2 -2
  52. package/src/components/data/AdvancedRequestDataGrid/index.tsx +269 -269
  53. package/src/components/data/AdvancedRequestDataGrid/types.ts +47 -47
  54. package/src/components/data/DataGrid/DataGridCell.tsx +73 -73
  55. package/src/components/data/DataGrid/DataGridColumnsModal/helpers.ts +14 -14
  56. package/src/components/data/DataGrid/DataGridColumnsModal/hooks.tsx +58 -58
  57. package/src/components/data/DataGrid/DataGridColumnsModal/index.tsx +181 -181
  58. package/src/components/data/DataGrid/DataGridColumnsModal/styles.ts +104 -104
  59. package/src/components/data/DataGrid/DataGridEditableCell.tsx +43 -54
  60. package/src/components/data/DataGrid/DataGridFilterMenu/hooks.tsx +75 -75
  61. package/src/components/data/DataGrid/DataGridFilterMenu/index.tsx +200 -190
  62. package/src/components/data/DataGrid/DataGridFilterMenu/styles.ts +100 -100
  63. package/src/components/data/DataGrid/DataGridFooter.tsx +44 -64
  64. package/src/components/data/DataGrid/DataGridHeader.tsx +126 -126
  65. package/src/components/data/DataGrid/DataGridHeaderCell.tsx +167 -167
  66. package/src/components/data/DataGrid/FilterModalContent/index.tsx +124 -125
  67. package/src/components/data/DataGrid/FilterModalContent/styles.ts +22 -22
  68. package/src/components/data/DataGrid/FilterValuesScroller.tsx +133 -131
  69. package/src/components/data/DataGrid/VirtualScroller.tsx +46 -46
  70. package/src/components/data/DataGrid/helpers/columns.tsx +196 -196
  71. package/src/components/data/DataGrid/helpers/filters.ts +220 -207
  72. package/src/components/data/DataGrid/helpers/index.ts +2 -2
  73. package/src/components/data/DataGrid/hooks/index.ts +30 -30
  74. package/src/components/data/DataGrid/hooks/useDataGrid.tsx +264 -264
  75. package/src/components/data/DataGrid/hooks/useDataGridCopy.ts +165 -165
  76. package/src/components/data/DataGrid/hooks/useDataGridSettings.ts +48 -48
  77. package/src/components/data/DataGrid/index.tsx +132 -132
  78. package/src/components/data/DataGrid/styles.ts +326 -326
  79. package/src/components/data/DataGrid/types.ts +241 -240
  80. package/src/components/data/SqlRequestDataGrid/helpers/columns.tsx +224 -224
  81. package/src/components/data/SqlRequestDataGrid/helpers/index.ts +2 -2
  82. package/src/components/data/SqlRequestDataGrid/helpers/sqlRequests.ts +16 -16
  83. package/src/components/data/SqlRequestDataGrid/index.tsx +252 -252
  84. package/src/components/data/SqlRequestDataGrid/types.ts +47 -47
  85. package/src/components/data/index.ts +8 -8
  86. package/src/components/forms/Button.tsx +99 -99
  87. package/src/components/forms/IconButton.tsx +56 -56
  88. package/src/components/forms/IndeterminateCheckbox.tsx +46 -46
  89. package/src/components/forms/Select.tsx +40 -40
  90. package/src/components/forms/index.ts +5 -5
  91. package/src/components/forms/styles.ts +20 -20
  92. package/src/components/index.ts +3 -3
  93. package/src/components/layout/Dropdown/index.tsx +79 -79
  94. package/src/components/layout/Dropdown/styles.ts +44 -44
  95. package/src/components/layout/Loading/index.tsx +29 -29
  96. package/src/components/layout/Loading/styles.ts +29 -29
  97. package/src/components/layout/Modal/index.tsx +51 -51
  98. package/src/components/layout/Modal/styles.ts +110 -110
  99. package/src/components/layout/index.ts +3 -3
  100. package/src/config/index.ts +14 -14
  101. package/src/helpers/dates.ts +9 -9
  102. package/src/helpers/getScrollbarSize.ts +14 -14
  103. package/src/helpers/numbers.ts +20 -20
  104. package/src/hooks/index.ts +2 -2
  105. package/src/hooks/useElementSize.ts +24 -24
  106. package/src/hooks/useWindowSize.ts +20 -20
  107. package/src/index.ts +7 -7
  108. package/src/providers/PortalsProvider/index.tsx +54 -54
  109. package/src/providers/PortalsProvider/styles.ts +27 -27
  110. package/src/providers/SettingsProvider/index.tsx +70 -70
  111. package/src/providers/ThemeProvider/ThemeProvider.ts +55 -55
  112. package/src/providers/ThemeProvider/defaultTheme.ts +444 -444
  113. package/src/providers/ThemeProvider/index.ts +3 -3
  114. package/src/providers/ThemeProvider/types.ts +123 -123
  115. package/src/providers/UiProviders/index.tsx +65 -65
  116. package/src/providers/UiProviders/styles.ts +10 -10
  117. package/src/providers/hooks.ts +8 -8
  118. package/src/providers/index.ts +5 -5
  119. package/src/services/HttpService.ts +80 -80
  120. package/src/services/WebSocketService.ts +147 -147
  121. package/src/services/advancedRequests.ts +101 -101
  122. package/src/services/base.ts +31 -31
  123. package/src/services/hooks.ts +23 -23
  124. package/src/services/index.ts +2 -2
  125. package/src/services/sqlRequests.ts +99 -99
  126. package/src/styles/animations.scss +30 -30
  127. package/src/styles/index.scss +42 -42
  128. package/src/typings.d.ts +6 -6
  129. package/tsconfig.tsbuildinfo +1 -1
  130. package/dist/components/data/DataGrid/helpers.d.ts +0 -28
  131. package/dist/components/data/DataGrid/helpers.js +0 -436
  132. package/dist/config/types.d.ts +0 -11
  133. package/dist/config/types.js +0 -2
@@ -1,131 +1,133 @@
1
- /* eslint-disable @typescript-eslint/no-explicit-any */
2
-
3
- import * as styles from './styles';
4
-
5
- import {
6
- DataGridFilterCheckbox,
7
- DataGridFilterFormatter,
8
- DataGridFilterGroup,
9
- } from './types';
10
- import { debounce, join } from 'lodash';
11
- import { useCallback, useEffect, useMemo, useRef, useState } from 'react';
12
-
13
- import { getCheckboxes } from './helpers';
14
- import { useElementSize } from '../../../hooks';
15
-
16
- const defaultFormatter = (value: any) => (value == null ? null : String(value));
17
-
18
- const CheckboxTemplate = <R extends string | number | null>({
19
- selectedValues,
20
- value,
21
- index,
22
- className,
23
- style,
24
- onToggle,
25
- }: {
26
- selectedValues: R[];
27
- value: DataGridFilterCheckbox<R>;
28
- index: number;
29
- className?: string;
30
- style?: React.CSSProperties;
31
- onToggle?: (values: R[]) => void;
32
- }) => (
33
- <div
34
- key={index}
35
- className={join(
36
- [
37
- // 'absolute left-0 right-0 flex flex-row cursor-pointer hover:bg-gray-50',
38
- className,
39
- ],
40
- ' '
41
- )}
42
- style={{ ...style, paddingLeft: `${value.level}rem` }}
43
- title={value.displayValue || '(Vides)'}
44
- onClick={() => onToggle?.(value.values)}
45
- >
46
- <input
47
- type="checkbox"
48
- checked={selectedValues.includes(value.values[0])}
49
- readOnly
50
- // className="inline-block mr-2"
51
- />
52
- <span
53
- // className="mr-2 truncate"
54
- >
55
- {value.displayValue || '(Vides)'}
56
- </span>
57
- </div>
58
- );
59
-
60
- type FilterValuesScrollerProps<R extends string | number | null> = {
61
- values: R[];
62
- rowHeight?: number;
63
- formatter: DataGridFilterFormatter;
64
- onRangeChange?: (startIndex: number, length: number) => void;
65
- onToggle?: (values: R[]) => void;
66
- selectedValues?: R[];
67
- groups?: DataGridFilterGroup<R>[];
68
- };
69
-
70
- export const FilterValuesScroller = <R extends string | number | null>({
71
- values,
72
- rowHeight = styles.DEFAULT_FILTER_ROW_HEIGHT,
73
- onRangeChange,
74
- onToggle,
75
- formatter = defaultFormatter,
76
- selectedValues = [],
77
- groups,
78
- }: FilterValuesScrollerProps<R>) => {
79
- const scrollableRef = useRef<HTMLDivElement | null>(null);
80
- const { height } = useElementSize(scrollableRef.current);
81
-
82
- const tolerance = 20;
83
- const [scrollTop, setScrollTop] = useState(0);
84
- const index = Math.floor(scrollTop / rowHeight);
85
- const length = Math.ceil(height / rowHeight);
86
-
87
- // eslint-disable-next-line react-hooks/exhaustive-deps
88
- const onScroll = useCallback(
89
- debounce((e: React.UIEvent<HTMLDivElement>) => {
90
- const target = e.target as HTMLDivElement;
91
- setScrollTop(() => target.scrollTop);
92
- }, 50),
93
- []
94
- );
95
-
96
- const checkboxes = useMemo(
97
- () => getCheckboxes(values, formatter ?? defaultFormatter, groups),
98
- [values, groups, formatter]
99
- );
100
- const visibleCheckboxes = checkboxes.slice(
101
- Math.max(0, index - tolerance),
102
- index + length + 1 + tolerance
103
- );
104
- const firstCheckboxTop = Math.max(0, index - tolerance) * rowHeight;
105
-
106
- useEffect(() => {
107
- onRangeChange?.(index, length);
108
- }, [index, length, onRangeChange]);
109
-
110
- return (
111
- <styles.FilterValuesScrollerContainer
112
- ref={scrollableRef}
113
- onScroll={onScroll}
114
- $rowHeight={rowHeight}
115
- >
116
- <div style={{ height: `${values.length * rowHeight}px` }}>
117
- {visibleCheckboxes.map((value, index) => (
118
- <CheckboxTemplate
119
- className="checkbox"
120
- style={{ top: firstCheckboxTop + index * rowHeight + 'px' }}
121
- key={index}
122
- selectedValues={selectedValues}
123
- value={value}
124
- index={index}
125
- onToggle={onToggle}
126
- />
127
- ))}
128
- </div>
129
- </styles.FilterValuesScrollerContainer>
130
- );
131
- };
1
+ /* eslint-disable @typescript-eslint/no-explicit-any */
2
+
3
+ import * as styles from './styles';
4
+
5
+ import {
6
+ DataGridFilterCheckbox,
7
+ DataGridFilterFormatter,
8
+ DataGridFilterGroup,
9
+ DataGridFilterRenderer,
10
+ DataGridFilterValue,
11
+ } from './types';
12
+ import { debounce, join } from 'lodash';
13
+ import { defaultRendererAndFormatter, getCheckboxes } from './helpers';
14
+ import { useCallback, useEffect, useMemo, useRef, useState } from 'react';
15
+
16
+ import { useElementSize } from '../../../hooks';
17
+
18
+ const CheckboxTemplate = ({
19
+ selectedValues,
20
+ value,
21
+ index,
22
+ className,
23
+ style,
24
+ onToggle,
25
+ }: {
26
+ selectedValues: DataGridFilterValue[];
27
+ value: DataGridFilterCheckbox;
28
+ index: number;
29
+ className?: string;
30
+ style?: React.CSSProperties;
31
+ onToggle?: (values: DataGridFilterValue[]) => void;
32
+ }) => (
33
+ <div
34
+ key={index}
35
+ className={join(
36
+ [
37
+ // 'absolute left-0 right-0 flex flex-row cursor-pointer hover:bg-gray-50',
38
+ className,
39
+ ],
40
+ ' '
41
+ )}
42
+ style={{ ...style, paddingLeft: `${value.level}rem` }}
43
+ title={value.title}
44
+ onClick={() => onToggle?.([value.value])}
45
+ >
46
+ <input
47
+ type="checkbox"
48
+ checked={selectedValues.includes(value.value)}
49
+ readOnly
50
+ // className="inline-block mr-2"
51
+ />
52
+ <span
53
+ // className="mr-2 truncate"
54
+ >
55
+ {value.displayValue || '(Vides)'}
56
+ </span>
57
+ </div>
58
+ );
59
+
60
+ type FilterValuesScrollerProps = {
61
+ values: DataGridFilterValue[];
62
+ rowHeight?: number;
63
+ formatter: DataGridFilterFormatter;
64
+ renderer: DataGridFilterRenderer;
65
+ onRangeChange?: (startIndex: number, length: number) => void;
66
+ onToggle?: (values: DataGridFilterValue[]) => void;
67
+ selectedValues?: DataGridFilterValue[];
68
+ groups?: DataGridFilterGroup[];
69
+ };
70
+
71
+ export const FilterValuesScroller = ({
72
+ values,
73
+ rowHeight = styles.DEFAULT_FILTER_ROW_HEIGHT,
74
+ onRangeChange,
75
+ onToggle,
76
+ formatter = defaultRendererAndFormatter,
77
+ renderer = defaultRendererAndFormatter,
78
+ selectedValues = [],
79
+ groups,
80
+ }: FilterValuesScrollerProps) => {
81
+ const scrollableRef = useRef<HTMLDivElement | null>(null);
82
+ const { height } = useElementSize(scrollableRef.current);
83
+
84
+ const tolerance = 20;
85
+ const [scrollTop, setScrollTop] = useState(0);
86
+ const index = Math.floor(scrollTop / rowHeight);
87
+ const length = Math.ceil(height / rowHeight);
88
+
89
+ // eslint-disable-next-line react-hooks/exhaustive-deps
90
+ const onScroll = useCallback(
91
+ debounce((e: React.UIEvent<HTMLDivElement>) => {
92
+ const target = e.target as HTMLDivElement;
93
+ setScrollTop(() => target.scrollTop);
94
+ }, 50),
95
+ []
96
+ );
97
+
98
+ const checkboxes = useMemo(
99
+ () => getCheckboxes(values, renderer, formatter, groups),
100
+ [values, groups, renderer, formatter]
101
+ );
102
+ const visibleCheckboxes = checkboxes.slice(
103
+ Math.max(0, index - tolerance),
104
+ index + length + 1 + tolerance
105
+ );
106
+ const firstCheckboxTop = Math.max(0, index - tolerance) * rowHeight;
107
+
108
+ useEffect(() => {
109
+ onRangeChange?.(index, length);
110
+ }, [index, length, onRangeChange]);
111
+
112
+ return (
113
+ <styles.FilterValuesScrollerContainer
114
+ ref={scrollableRef}
115
+ onScroll={onScroll}
116
+ $rowHeight={rowHeight}
117
+ >
118
+ <div style={{ height: `${values.length * rowHeight}px` }}>
119
+ {visibleCheckboxes.map((value, index) => (
120
+ <CheckboxTemplate
121
+ className="checkbox"
122
+ style={{ top: firstCheckboxTop + index * rowHeight + 'px' }}
123
+ key={index}
124
+ selectedValues={selectedValues}
125
+ value={value}
126
+ index={index}
127
+ onToggle={onToggle}
128
+ />
129
+ ))}
130
+ </div>
131
+ </styles.FilterValuesScrollerContainer>
132
+ );
133
+ };
@@ -1,46 +1,46 @@
1
- import * as styles from './styles';
2
-
3
- import { ReactNode, useContext } from 'react';
4
-
5
- import { DataGridContext } from './types';
6
-
7
- type VirtualScrollerProps<R> = {
8
- showAllRows?: boolean;
9
- rowTemplate: (row: R, index: number) => ReactNode;
10
- hasFooter?: boolean;
11
- context: DataGridContext<R>;
12
- onRangeChange?: (startIndex: number, length: number) => void;
13
- };
14
-
15
- export const VirtualScroller = <R,>(props: VirtualScrollerProps<R>) => {
16
- const {
17
- rowHeight = styles.DEFAULT_ROW_HEIGHT,
18
- // headerRowHeight = styles.DEFAULT_HEADER_ROW_HEIGHT,
19
- sortedRows,
20
- index,
21
- visibleRows,
22
- gridTemplateColumns,
23
- } = useContext(props.context);
24
- const {
25
- rowTemplate,
26
- // hasFooter, onRangeChange
27
- } = props;
28
-
29
- const totalHeight = sortedRows.length * rowHeight;
30
- const topPadding =
31
- Math.max(0, index - styles.VIRTUAL_SCROLL_TOLERANCE) * rowHeight;
32
- // const headerAndFooterHeight =
33
- // 2 * headerRowHeight + (hasFooter ? rowHeight : 0) + 2;
34
-
35
- return (
36
- <styles.VirtualScrollerContainer $height={totalHeight}>
37
- <styles.VirtualScrollerRowsContainer
38
- $gridTemplateColumns={gridTemplateColumns}
39
- $topPadding={topPadding}
40
- $rowHeight={rowHeight}
41
- >
42
- {visibleRows.map(rowTemplate)}
43
- </styles.VirtualScrollerRowsContainer>
44
- </styles.VirtualScrollerContainer>
45
- );
46
- };
1
+ import * as styles from './styles';
2
+
3
+ import { ReactNode, useContext } from 'react';
4
+
5
+ import { DataGridContext } from './types';
6
+
7
+ type VirtualScrollerProps<R> = {
8
+ showAllRows?: boolean;
9
+ rowTemplate: (row: R, index: number) => ReactNode;
10
+ hasFooter?: boolean;
11
+ context: DataGridContext<R>;
12
+ onRangeChange?: (startIndex: number, length: number) => void;
13
+ };
14
+
15
+ export const VirtualScroller = <R,>(props: VirtualScrollerProps<R>) => {
16
+ const {
17
+ rowHeight = styles.DEFAULT_ROW_HEIGHT,
18
+ // headerRowHeight = styles.DEFAULT_HEADER_ROW_HEIGHT,
19
+ sortedRows,
20
+ index,
21
+ visibleRows,
22
+ gridTemplateColumns,
23
+ } = useContext(props.context);
24
+ const {
25
+ rowTemplate,
26
+ // hasFooter, onRangeChange
27
+ } = props;
28
+
29
+ const totalHeight = sortedRows.length * rowHeight;
30
+ const topPadding =
31
+ Math.max(0, index - styles.VIRTUAL_SCROLL_TOLERANCE) * rowHeight;
32
+ // const headerAndFooterHeight =
33
+ // 2 * headerRowHeight + (hasFooter ? rowHeight : 0) + 2;
34
+
35
+ return (
36
+ <styles.VirtualScrollerContainer $height={totalHeight}>
37
+ <styles.VirtualScrollerRowsContainer
38
+ $gridTemplateColumns={gridTemplateColumns}
39
+ $topPadding={topPadding}
40
+ $rowHeight={rowHeight}
41
+ >
42
+ {visibleRows.map(rowTemplate)}
43
+ </styles.VirtualScrollerRowsContainer>
44
+ </styles.VirtualScrollerContainer>
45
+ );
46
+ };