@addev-be/ui 0.9.1 → 0.10.3
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.
- package/assets/icons/table.svg +1 -1
- package/package.json +1 -1
- package/src/components/auth/LoginForm.tsx +1 -1
- package/src/components/auth/PasswordRecoveryForm.tsx +1 -1
- package/src/components/auth/PasswordResetForm.tsx +1 -1
- package/src/components/data/DataGrid/DataGridColumnsModal/hooks.tsx +1 -1
- package/src/components/data/DataGrid/DataGridFilterMenu/hooks.tsx +2 -2
- package/src/components/data/DataGrid/DataGridFilterMenu/index.tsx +60 -42
- package/src/components/data/DataGrid/DataGridHeader.tsx +3 -3
- package/src/components/data/DataGrid/DataGridHeaderCell.tsx +4 -4
- package/src/components/data/DataGrid/index.tsx +1 -0
- package/src/components/data/DataGrid/styles.ts +2 -2
- package/src/components/data/SqlRequestDataGrid/helpers/columns.tsx +6 -5
- package/src/components/data/SqlRequestGrid/filters/FiltersSidebar.tsx +102 -0
- package/src/components/data/SqlRequestGrid/filters/styles.ts +83 -0
- package/src/components/data/SqlRequestGrid/index.tsx +159 -29
- package/src/components/data/SqlRequestGrid/styles.ts +6 -36
- package/src/components/data/SqlRequestGrid/types.ts +2 -0
- package/src/components/data/VirtualScroller/index.tsx +28 -18
- package/src/components/data/VirtualScroller/styles.ts +10 -1
- package/src/components/forms/Button.tsx +40 -16
- package/src/components/ui/Avatar/styles.ts +61 -61
- package/src/components/ui/Label.tsx +90 -0
- package/src/components/ui/index.ts +1 -0
- package/src/hooks/useShowArchived.ts +21 -21
- package/src/providers/ThemeProvider/defaultTheme.ts +12 -0
- package/src/providers/ThemeProvider/types.ts +7 -1
- package/src/providers/TrackingProvider/hooks.ts +14 -14
- package/dist/Icons.d.ts +0 -49
- package/dist/Icons.js +0 -128
- package/dist/components/auth/LoginForm.d.ts +0 -2
- package/dist/components/auth/LoginForm.js +0 -48
- package/dist/components/auth/LoginPage.d.ts +0 -2
- package/dist/components/auth/LoginPage.js +0 -9
- package/dist/components/auth/PasswordRecoveryForm.d.ts +0 -2
- package/dist/components/auth/PasswordRecoveryForm.js +0 -24
- package/dist/components/auth/PasswordResetForm.d.ts +0 -2
- package/dist/components/auth/PasswordResetForm.js +0 -56
- package/dist/components/auth/index.d.ts +0 -4
- package/dist/components/auth/index.js +0 -20
- package/dist/components/auth/styles.d.ts +0 -3
- package/dist/components/auth/styles.js +0 -16
- package/dist/components/data/AdvancedRequestDataGrid/helpers/advancedRequests.d.ts +0 -14
- package/dist/components/data/AdvancedRequestDataGrid/helpers/advancedRequests.js +0 -76
- package/dist/components/data/AdvancedRequestDataGrid/helpers/columns.d.ts +0 -22
- package/dist/components/data/AdvancedRequestDataGrid/helpers/columns.js +0 -156
- package/dist/components/data/AdvancedRequestDataGrid/helpers/index.d.ts +0 -2
- package/dist/components/data/AdvancedRequestDataGrid/helpers/index.js +0 -18
- package/dist/components/data/AdvancedRequestDataGrid/index.d.ts +0 -2
- package/dist/components/data/AdvancedRequestDataGrid/index.js +0 -215
- package/dist/components/data/AdvancedRequestDataGrid/types.d.ts +0 -21
- package/dist/components/data/AdvancedRequestDataGrid/types.js +0 -2
- package/dist/components/data/DataGrid/DataGridCell.d.ts +0 -2
- package/dist/components/data/DataGrid/DataGridCell.js +0 -59
- package/dist/components/data/DataGrid/DataGridColumnsModal/helpers.d.ts +0 -2
- package/dist/components/data/DataGrid/DataGridColumnsModal/helpers.js +0 -24
- package/dist/components/data/DataGrid/DataGridColumnsModal/hooks.d.ts +0 -6
- package/dist/components/data/DataGrid/DataGridColumnsModal/hooks.js +0 -38
- package/dist/components/data/DataGrid/DataGridColumnsModal/index.d.ts +0 -15
- package/dist/components/data/DataGrid/DataGridColumnsModal/index.js +0 -111
- package/dist/components/data/DataGrid/DataGridColumnsModal/styles.d.ts +0 -22
- package/dist/components/data/DataGrid/DataGridColumnsModal/styles.js +0 -54
- package/dist/components/data/DataGrid/DataGridEditableCell.d.ts +0 -2
- package/dist/components/data/DataGrid/DataGridEditableCell.js +0 -27
- package/dist/components/data/DataGrid/DataGridFilterMenu/FilterValuesScroller.d.ts +0 -13
- package/dist/components/data/DataGrid/DataGridFilterMenu/FilterValuesScroller.js +0 -71
- package/dist/components/data/DataGrid/DataGridFilterMenu/hooks.d.ts +0 -9
- package/dist/components/data/DataGrid/DataGridFilterMenu/hooks.js +0 -52
- package/dist/components/data/DataGrid/DataGridFilterMenu/index.d.ts +0 -9
- package/dist/components/data/DataGrid/DataGridFilterMenu/index.js +0 -221
- package/dist/components/data/DataGrid/DataGridFilterMenu/styles.d.ts +0 -18
- package/dist/components/data/DataGrid/DataGridFilterMenu/styles.js +0 -31
- package/dist/components/data/DataGrid/DataGridFooter.d.ts +0 -4
- package/dist/components/data/DataGrid/DataGridFooter.js +0 -44
- package/dist/components/data/DataGrid/DataGridHeader.d.ts +0 -4
- package/dist/components/data/DataGrid/DataGridHeader.js +0 -119
- package/dist/components/data/DataGrid/DataGridHeaderCell.d.ts +0 -2
- package/dist/components/data/DataGrid/DataGridHeaderCell.js +0 -84
- package/dist/components/data/DataGrid/DataGridRowTemplate.d.ts +0 -3
- package/dist/components/data/DataGrid/DataGridRowTemplate.js +0 -71
- package/dist/components/data/DataGrid/FilterModalContent/index.d.ts +0 -7
- package/dist/components/data/DataGrid/FilterModalContent/index.js +0 -117
- package/dist/components/data/DataGrid/FilterModalContent/styles.d.ts +0 -3
- package/dist/components/data/DataGrid/FilterModalContent/styles.js +0 -15
- package/dist/components/data/DataGrid/helpers/columns.d.ts +0 -14
- package/dist/components/data/DataGrid/helpers/columns.js +0 -176
- package/dist/components/data/DataGrid/helpers/filters.d.ts +0 -18
- package/dist/components/data/DataGrid/helpers/filters.js +0 -334
- package/dist/components/data/DataGrid/helpers/index.d.ts +0 -2
- package/dist/components/data/DataGrid/helpers/index.js +0 -18
- package/dist/components/data/DataGrid/hooks/index.d.ts +0 -7
- package/dist/components/data/DataGrid/hooks/index.js +0 -34
- package/dist/components/data/DataGrid/hooks/useDataGrid.d.ts +0 -2
- package/dist/components/data/DataGrid/hooks/useDataGrid.js +0 -241
- package/dist/components/data/DataGrid/hooks/useDataGridCopy.d.ts +0 -4
- package/dist/components/data/DataGrid/hooks/useDataGridCopy.js +0 -163
- package/dist/components/data/DataGrid/hooks/useDataGridSettings.d.ts +0 -16
- package/dist/components/data/DataGrid/hooks/useDataGridSettings.js +0 -43
- package/dist/components/data/DataGrid/index.d.ts +0 -8
- package/dist/components/data/DataGrid/index.js +0 -63
- package/dist/components/data/DataGrid/styles.d.ts +0 -47
- package/dist/components/data/DataGrid/styles.js +0 -111
- package/dist/components/data/DataGrid/types.d.ts +0 -172
- package/dist/components/data/DataGrid/types.js +0 -34
- package/dist/components/data/SqlRequestDataGrid/helpers/columns.d.ts +0 -17
- package/dist/components/data/SqlRequestDataGrid/helpers/columns.js +0 -136
- package/dist/components/data/SqlRequestDataGrid/helpers/index.d.ts +0 -2
- package/dist/components/data/SqlRequestDataGrid/helpers/index.js +0 -18
- package/dist/components/data/SqlRequestDataGrid/helpers/sqlRequests.d.ts +0 -3
- package/dist/components/data/SqlRequestDataGrid/helpers/sqlRequests.js +0 -18
- package/dist/components/data/SqlRequestDataGrid/index.d.ts +0 -13
- package/dist/components/data/SqlRequestDataGrid/index.js +0 -309
- package/dist/components/data/SqlRequestDataGrid/types.d.ts +0 -21
- package/dist/components/data/SqlRequestDataGrid/types.js +0 -2
- package/dist/components/data/SqlRequestGrid/helpers/index.d.ts +0 -1
- package/dist/components/data/SqlRequestGrid/helpers/index.js +0 -17
- package/dist/components/data/SqlRequestGrid/helpers/sqlRequests.d.ts +0 -3
- package/dist/components/data/SqlRequestGrid/helpers/sqlRequests.js +0 -18
- package/dist/components/data/SqlRequestGrid/index.d.ts +0 -4
- package/dist/components/data/SqlRequestGrid/index.js +0 -145
- package/dist/components/data/SqlRequestGrid/styles.d.ts +0 -16
- package/dist/components/data/SqlRequestGrid/styles.js +0 -33
- package/dist/components/data/SqlRequestGrid/types.d.ts +0 -30
- package/dist/components/data/SqlRequestGrid/types.js +0 -3
- package/dist/components/data/VirtualScroller/hooks.d.ts +0 -18
- package/dist/components/data/VirtualScroller/hooks.js +0 -50
- package/dist/components/data/VirtualScroller/index.d.ts +0 -14
- package/dist/components/data/VirtualScroller/index.js +0 -58
- package/dist/components/data/VirtualScroller/styles.d.ts +0 -16
- package/dist/components/data/VirtualScroller/styles.js +0 -39
- package/dist/components/data/VirtualScroller/types.d.ts +0 -6
- package/dist/components/data/VirtualScroller/types.js +0 -3
- package/dist/components/data/index.d.ts +0 -13
- package/dist/components/data/index.js +0 -29
- package/dist/components/forms/Button.d.ts +0 -10
- package/dist/components/forms/Button.js +0 -70
- package/dist/components/forms/IconButton.d.ts +0 -7
- package/dist/components/forms/IconButton.js +0 -64
- package/dist/components/forms/IndeterminateCheckbox.d.ts +0 -8
- package/dist/components/forms/IndeterminateCheckbox.js +0 -41
- package/dist/components/forms/Select.d.ts +0 -10
- package/dist/components/forms/Select.js +0 -49
- package/dist/components/forms/VerticalLabel.d.ts +0 -6
- package/dist/components/forms/VerticalLabel.js +0 -32
- package/dist/components/forms/index.d.ts +0 -5
- package/dist/components/forms/index.js +0 -21
- package/dist/components/forms/styles.d.ts +0 -7
- package/dist/components/forms/styles.js +0 -39
- package/dist/components/index.d.ts +0 -6
- package/dist/components/index.js +0 -22
- package/dist/components/layout/Dropdown/index.d.ts +0 -11
- package/dist/components/layout/Dropdown/index.js +0 -85
- package/dist/components/layout/Dropdown/styles.d.ts +0 -14
- package/dist/components/layout/Dropdown/styles.js +0 -48
- package/dist/components/layout/Loading/index.d.ts +0 -6
- package/dist/components/layout/Loading/index.js +0 -42
- package/dist/components/layout/Loading/styles.d.ts +0 -6
- package/dist/components/layout/Loading/styles.js +0 -18
- package/dist/components/layout/Modal/index.d.ts +0 -16
- package/dist/components/layout/Modal/index.js +0 -67
- package/dist/components/layout/Modal/styles.d.ts +0 -34
- package/dist/components/layout/Modal/styles.js +0 -56
- package/dist/components/layout/index.d.ts +0 -3
- package/dist/components/layout/index.js +0 -19
- package/dist/components/search/HighlightedText.d.ts +0 -5
- package/dist/components/search/HighlightedText.js +0 -43
- package/dist/components/search/QuickSearchBar.d.ts +0 -6
- package/dist/components/search/QuickSearchBar.js +0 -69
- package/dist/components/search/QuickSearchResults.d.ts +0 -8
- package/dist/components/search/QuickSearchResults.js +0 -70
- package/dist/components/search/index.d.ts +0 -5
- package/dist/components/search/index.js +0 -25
- package/dist/components/search/styles.d.ts +0 -28
- package/dist/components/search/styles.js +0 -40
- package/dist/components/search/types.d.ts +0 -21
- package/dist/components/search/types.js +0 -2
- package/dist/components/ui/Card/index.d.ts +0 -8
- package/dist/components/ui/Card/index.js +0 -34
- package/dist/components/ui/Card/styles.d.ts +0 -9
- package/dist/components/ui/Card/styles.js +0 -21
- package/dist/components/ui/ContextMenu/index.d.ts +0 -11
- package/dist/components/ui/ContextMenu/index.js +0 -63
- package/dist/components/ui/ContextMenu/styles.d.ts +0 -18
- package/dist/components/ui/ContextMenu/styles.js +0 -56
- package/dist/components/ui/Message/index.d.ts +0 -9
- package/dist/components/ui/Message/index.js +0 -53
- package/dist/components/ui/Message/styles.d.ts +0 -9
- package/dist/components/ui/Message/styles.js +0 -41
- package/dist/components/ui/index.d.ts +0 -3
- package/dist/components/ui/index.js +0 -19
- package/dist/config/index.d.ts +0 -10
- package/dist/config/index.js +0 -2
- package/dist/helpers/dates.d.ts +0 -3
- package/dist/helpers/dates.js +0 -19
- package/dist/helpers/getScrollbarSize.d.ts +0 -1
- package/dist/helpers/getScrollbarSize.js +0 -17
- package/dist/helpers/index.d.ts +0 -3
- package/dist/helpers/index.js +0 -19
- package/dist/helpers/numbers.d.ts +0 -4
- package/dist/helpers/numbers.js +0 -39
- package/dist/helpers/text.d.ts +0 -2
- package/dist/helpers/text.js +0 -18
- package/dist/hooks/index.d.ts +0 -2
- package/dist/hooks/index.js +0 -18
- package/dist/hooks/useElementSize.d.ts +0 -4
- package/dist/hooks/useElementSize.js +0 -23
- package/dist/hooks/useWindowSize.d.ts +0 -4
- package/dist/hooks/useWindowSize.js +0 -19
- package/dist/index.d.ts +0 -6
- package/dist/index.js +0 -22
- package/dist/providers/AuthenticationProvider/helpers.d.ts +0 -1
- package/dist/providers/AuthenticationProvider/helpers.js +0 -6
- package/dist/providers/AuthenticationProvider/index.d.ts +0 -23
- package/dist/providers/AuthenticationProvider/index.js +0 -221
- package/dist/providers/LoadingProvider/index.d.ts +0 -7
- package/dist/providers/LoadingProvider/index.js +0 -26
- package/dist/providers/PortalsProvider/index.d.ts +0 -10
- package/dist/providers/PortalsProvider/index.js +0 -46
- package/dist/providers/PortalsProvider/styles.d.ts +0 -9
- package/dist/providers/PortalsProvider/styles.js +0 -21
- package/dist/providers/SettingsProvider/index.d.ts +0 -8
- package/dist/providers/SettingsProvider/index.js +0 -54
- package/dist/providers/ThemeProvider/ThemeProvider.d.ts +0 -7
- package/dist/providers/ThemeProvider/ThemeProvider.js +0 -51
- package/dist/providers/ThemeProvider/defaultTheme.d.ts +0 -2
- package/dist/providers/ThemeProvider/defaultTheme.js +0 -417
- package/dist/providers/ThemeProvider/index.d.ts +0 -3
- package/dist/providers/ThemeProvider/index.js +0 -22
- package/dist/providers/ThemeProvider/types.d.ts +0 -24
- package/dist/providers/ThemeProvider/types.js +0 -2
- package/dist/providers/UiProviders/index.d.ts +0 -12
- package/dist/providers/UiProviders/index.js +0 -62
- package/dist/providers/UiProviders/styles.d.ts +0 -3
- package/dist/providers/UiProviders/styles.js +0 -13
- package/dist/providers/hooks.d.ts +0 -5
- package/dist/providers/hooks.js +0 -19
- package/dist/providers/index.d.ts +0 -5
- package/dist/providers/index.js +0 -21
- package/dist/services/HttpService.d.ts +0 -10
- package/dist/services/HttpService.js +0 -125
- package/dist/services/WebSocketService.d.ts +0 -23
- package/dist/services/WebSocketService.js +0 -125
- package/dist/services/advancedRequests.d.ts +0 -41
- package/dist/services/advancedRequests.js +0 -13
- package/dist/services/base.d.ts +0 -14
- package/dist/services/base.js +0 -7
- package/dist/services/globalSearch.d.ts +0 -13
- package/dist/services/globalSearch.js +0 -8
- package/dist/services/hooks.d.ts +0 -3
- package/dist/services/hooks.js +0 -29
- package/dist/services/index.d.ts +0 -11
- package/dist/services/index.js +0 -27
- package/dist/services/requests/auth.d.ts +0 -63
- package/dist/services/requests/auth.js +0 -28
- package/dist/services/requests/userProfiles.d.ts +0 -40
- package/dist/services/requests/userProfiles.js +0 -20
- package/dist/services/requests/users.d.ts +0 -84
- package/dist/services/requests/users.js +0 -20
- package/dist/services/sqlRequests.d.ts +0 -45
- package/dist/services/sqlRequests.js +0 -11
- package/dist/services/types/auth.d.ts +0 -87
- package/dist/services/types/auth.js +0 -72
- package/dist/services/types/base.d.ts +0 -6
- package/dist/services/types/base.js +0 -31
- package/dist/services/types/userProfiles.d.ts +0 -64
- package/dist/services/types/userProfiles.js +0 -68
- package/dist/services/types/users.d.ts +0 -118
- package/dist/services/types/users.js +0 -83
- package/tsconfig.tsbuildinfo +0 -1
package/assets/icons/table.svg
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Pro 6.5.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2023 Fonticons, Inc. --><path d="M48 264V160H232V264H48zm0 48H232V432H64c-8.8 0-16-7.2-16-16V312zM280 432V312H464V416c0 8.8-7.2 16-16 16H280zM464 264H280V160H464V264zM64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64z"/></svg>
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Pro 6.5.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2023 Fonticons, Inc. --><path d="M48 264V160H232V264H48zm0 48H232V432H64c-8.8 0-16-7.2-16-16V312zM280 432V312H464V416c0 8.8-7.2 16-16 16H280zM464 264H280V160H464V264zM64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64z"/></svg>
|
package/package.json
CHANGED
|
@@ -43,7 +43,7 @@ export const useDataGridColumnsModal = <R,>(context: DataGridContext<R>) => {
|
|
|
43
43
|
<Modal.Footer>
|
|
44
44
|
<Button onClick={closeModal}>Annuler</Button>
|
|
45
45
|
<Button
|
|
46
|
-
color="primary"
|
|
46
|
+
$color="primary"
|
|
47
47
|
style={{ marginLeft: 'auto' }}
|
|
48
48
|
onClick={onApplyClicked}
|
|
49
49
|
>
|
|
@@ -55,12 +55,12 @@ export const useFilterModal = <R,>({
|
|
|
55
55
|
/>
|
|
56
56
|
</Modal.ContentWithIcon>
|
|
57
57
|
<Modal.Buttons>
|
|
58
|
-
<Button color="danger" icon={FilterSlashIcon} onClick={onClearClicked}>
|
|
58
|
+
<Button $color="danger" icon={FilterSlashIcon} onClick={onClearClicked}>
|
|
59
59
|
Supprimer
|
|
60
60
|
</Button>
|
|
61
61
|
<Button
|
|
62
62
|
style={{ marginLeft: 'auto' }}
|
|
63
|
-
color="primary"
|
|
63
|
+
$color="primary"
|
|
64
64
|
icon={FilterIcon}
|
|
65
65
|
onClick={onApplyClicked}
|
|
66
66
|
>
|
|
@@ -46,6 +46,7 @@ import {
|
|
|
46
46
|
import { ContextMenu } from '../../../ui/ContextMenu';
|
|
47
47
|
import { FilterValuesScroller } from './FilterValuesScroller';
|
|
48
48
|
import { Input } from '../../../forms';
|
|
49
|
+
import { MenuContainer } from '../../../ui/ContextMenu/styles';
|
|
49
50
|
import { useFilterModal } from './hooks';
|
|
50
51
|
|
|
51
52
|
type FilterValuesProps<R> = {
|
|
@@ -53,6 +54,8 @@ type FilterValuesProps<R> = {
|
|
|
53
54
|
columnIndex: number;
|
|
54
55
|
context: DataGridContext<R>;
|
|
55
56
|
onClose?: () => void;
|
|
57
|
+
contextMenu?: boolean;
|
|
58
|
+
showTotalButton?: boolean;
|
|
56
59
|
};
|
|
57
60
|
|
|
58
61
|
const sortAsc: Record<DataGridFilterType, [string, IconFC]> = {
|
|
@@ -87,6 +90,8 @@ export const DataGridFilterMenu = <R,>({
|
|
|
87
90
|
columnKey,
|
|
88
91
|
context,
|
|
89
92
|
onClose,
|
|
93
|
+
contextMenu = true,
|
|
94
|
+
showTotalButton = true,
|
|
90
95
|
}: FilterValuesProps<R>) => {
|
|
91
96
|
const { openModal, modal } = useFilterModal({ columnKey, context });
|
|
92
97
|
const {
|
|
@@ -258,8 +263,8 @@ export const DataGridFilterMenu = <R,>({
|
|
|
258
263
|
onClose?.();
|
|
259
264
|
}, [columnKey, onClose, setFooters]);
|
|
260
265
|
|
|
261
|
-
|
|
262
|
-
|
|
266
|
+
const content = (
|
|
267
|
+
<>
|
|
263
268
|
{modal}
|
|
264
269
|
{column.sortGetter && (
|
|
265
270
|
<>
|
|
@@ -283,48 +288,55 @@ export const DataGridFilterMenu = <R,>({
|
|
|
283
288
|
<ContextMenu.Divider />
|
|
284
289
|
</>
|
|
285
290
|
)}
|
|
286
|
-
{
|
|
291
|
+
{showTotalButton && (
|
|
287
292
|
<>
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
293
|
+
{!isFooterVisible && typeof column.footer === 'function' && (
|
|
294
|
+
<>
|
|
295
|
+
<ContextMenu.Item onClick={() => showFooter('count')}>
|
|
296
|
+
<TableFooterIcon />
|
|
297
|
+
Afficher le total
|
|
298
|
+
</ContextMenu.Item>
|
|
299
|
+
<ContextMenu.Divider />
|
|
300
|
+
</>
|
|
301
|
+
)}
|
|
302
|
+
{showTotalButton && typeof column.footer === 'object' && (
|
|
303
|
+
<>
|
|
304
|
+
<ContextMenu.ParentItem>
|
|
305
|
+
<TableFooterIcon />
|
|
306
|
+
Afficher le total
|
|
307
|
+
<ContextMenu.SubMenu>
|
|
308
|
+
{Object.keys(column.footer).map((key) => {
|
|
309
|
+
const TotalIcon =
|
|
310
|
+
footerFunctionsIcons[
|
|
311
|
+
key as DataGridFooterPredefinedFunction
|
|
312
|
+
] ?? TableFooterIcon;
|
|
313
|
+
return (
|
|
314
|
+
<ContextMenu.Item
|
|
315
|
+
key={key}
|
|
316
|
+
onClick={() => showFooter(key)}
|
|
317
|
+
>
|
|
318
|
+
<TotalIcon />
|
|
319
|
+
{key in footerFunctionsTexts
|
|
320
|
+
? footerFunctionsTexts[
|
|
321
|
+
key as DataGridFooterPredefinedFunction
|
|
322
|
+
]
|
|
323
|
+
: key}
|
|
324
|
+
</ContextMenu.Item>
|
|
325
|
+
);
|
|
326
|
+
})}
|
|
327
|
+
<ContextMenu.Divider />
|
|
328
|
+
<ContextMenu.Item
|
|
329
|
+
onClick={hideFooter}
|
|
330
|
+
disabled={!isFooterVisible}
|
|
331
|
+
>
|
|
332
|
+
<TableFooterSlashIcon />
|
|
333
|
+
Masquer le total
|
|
314
334
|
</ContextMenu.Item>
|
|
315
|
-
|
|
316
|
-
|
|
335
|
+
</ContextMenu.SubMenu>
|
|
336
|
+
</ContextMenu.ParentItem>
|
|
317
337
|
<ContextMenu.Divider />
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
disabled={!isFooterVisible}
|
|
321
|
-
>
|
|
322
|
-
<TableFooterSlashIcon />
|
|
323
|
-
Masquer le total
|
|
324
|
-
</ContextMenu.Item>
|
|
325
|
-
</ContextMenu.SubMenu>
|
|
326
|
-
</ContextMenu.ParentItem>
|
|
327
|
-
<ContextMenu.Divider />
|
|
338
|
+
</>
|
|
339
|
+
)}
|
|
328
340
|
</>
|
|
329
341
|
)}
|
|
330
342
|
<ContextMenu.Item onClick={openModal}>
|
|
@@ -355,6 +367,12 @@ export const DataGridFilterMenu = <R,>({
|
|
|
355
367
|
<styles.CheckboxesContainer>
|
|
356
368
|
{checkboxesComponent}
|
|
357
369
|
</styles.CheckboxesContainer>
|
|
358
|
-
|
|
370
|
+
</>
|
|
359
371
|
);
|
|
372
|
+
|
|
373
|
+
if (!contextMenu) {
|
|
374
|
+
return <MenuContainer>{content}</MenuContainer>;
|
|
375
|
+
}
|
|
376
|
+
|
|
377
|
+
return <ContextMenu>{content}</ContextMenu>;
|
|
360
378
|
};
|
|
@@ -76,16 +76,16 @@ export const DataGridHeader = <R,>({
|
|
|
76
76
|
Rafraîchir
|
|
77
77
|
</Button>
|
|
78
78
|
)}
|
|
79
|
-
<Button color="emerald" size="small" onClick={runCopyTable}>
|
|
79
|
+
<Button $color="emerald" size="small" onClick={runCopyTable}>
|
|
80
80
|
<CopyIcon />
|
|
81
81
|
Copier la table
|
|
82
82
|
</Button>
|
|
83
|
-
<Button size="small" color="danger" onClick={() => setFilters({})}>
|
|
83
|
+
<Button size="small" $color="danger" onClick={() => setFilters({})}>
|
|
84
84
|
<FilterSlashIcon />
|
|
85
85
|
Supprimer les filtres
|
|
86
86
|
</Button>
|
|
87
87
|
{name && (
|
|
88
|
-
<Button color="info" size="small" onClick={openModal}>
|
|
88
|
+
<Button $color="info" size="small" onClick={openModal}>
|
|
89
89
|
<TableColumnsIcon />
|
|
90
90
|
Paramètres des colonnes
|
|
91
91
|
</Button>
|
|
@@ -6,12 +6,12 @@ import * as styles from './styles';
|
|
|
6
6
|
import { MouseEvent, useCallback, useMemo, useRef, useState } from 'react';
|
|
7
7
|
|
|
8
8
|
import { ChevronDownIcon } from '../../../Icons';
|
|
9
|
-
import {
|
|
10
|
-
import { DataGridHeaderCellProps } from './types';
|
|
11
|
-
import { Dropdown } from '../../layout';
|
|
9
|
+
import { useUi } from '../../../providers';
|
|
12
10
|
import { IconButton } from '../../forms/IconButton';
|
|
11
|
+
import { Dropdown } from '../../layout';
|
|
12
|
+
import { DataGridFilterMenu } from './DataGridFilterMenu';
|
|
13
13
|
import { useDataGridContext } from './hooks';
|
|
14
|
-
import {
|
|
14
|
+
import { DataGridHeaderCellProps } from './types';
|
|
15
15
|
|
|
16
16
|
export const DataGridHeaderCell = <R,>({
|
|
17
17
|
columnKey,
|
|
@@ -66,6 +66,7 @@ export const DataGridInner = <R,>(
|
|
|
66
66
|
>
|
|
67
67
|
<DataGridHeader context={DataGridContext} />
|
|
68
68
|
<VirtualScroller<R, { context: Context<DataGridContextProps<R>> }>
|
|
69
|
+
integrated
|
|
69
70
|
gridTemplateColumns={gridTemplateColumns}
|
|
70
71
|
items={sortedRows}
|
|
71
72
|
itemTemplate={rowTemplate}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import styled, { css } from 'styled-components';
|
|
2
2
|
|
|
3
3
|
import { ThemeColor } from '../../../providers/ThemeProvider/types';
|
|
4
|
-
import {
|
|
4
|
+
import { VirtualScrollerFiller } from '../VirtualScroller/styles';
|
|
5
5
|
|
|
6
6
|
export const TOOLBAR_HEIGHT = 40;
|
|
7
7
|
export const DEFAULT_HEADER_ROW_HEIGHT = 40;
|
|
@@ -168,7 +168,7 @@ export const DataGridContainer = styled.div<{
|
|
|
168
168
|
box-sizing: border-box;
|
|
169
169
|
}
|
|
170
170
|
|
|
171
|
-
${
|
|
171
|
+
${VirtualScrollerFiller} {
|
|
172
172
|
grid-column-start: 1;
|
|
173
173
|
grid-column-end: -1;
|
|
174
174
|
grid-row: 3;
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
import { SqlRequestDataGridColumn, SqlRequestDataGridColumns } from '../types';
|
|
4
4
|
import {
|
|
5
5
|
buildExcelFormat,
|
|
6
|
+
dateFilter,
|
|
6
7
|
numberFilter,
|
|
7
8
|
textFilter,
|
|
8
9
|
} from '../../DataGrid/helpers';
|
|
@@ -110,7 +111,7 @@ export const sqlDateColumn = <R extends Record<string, any>>(
|
|
|
110
111
|
excelFormatter: () => 'dd/mm/yyyy',
|
|
111
112
|
excelValue: (value) => formatDate(value, 'YYYY-MM-DD'),
|
|
112
113
|
filter: {
|
|
113
|
-
...
|
|
114
|
+
...dateFilter(key),
|
|
114
115
|
getter: (value) => value[key] ?? '',
|
|
115
116
|
formatter: (value) => formatDate(value),
|
|
116
117
|
renderer: (value) => formatDate(value),
|
|
@@ -134,7 +135,7 @@ export const sqlDateTimeColumn = <R extends Record<string, any>>(
|
|
|
134
135
|
excelFormatter: () => 'dd/mm/yyyy hh:mm:ss',
|
|
135
136
|
excelValue: (value) => formatDateTime(value, 'YYYY-MM-DD HH:mm:ss'),
|
|
136
137
|
filter: {
|
|
137
|
-
...
|
|
138
|
+
...dateFilter(key),
|
|
138
139
|
getter: (value) => value[key] ?? '',
|
|
139
140
|
formatter: (value) => formatDateTime(value),
|
|
140
141
|
renderer: (value) => formatDateTime(value),
|
|
@@ -172,7 +173,7 @@ export const sqlNumberColumn = <R extends Record<string, any>>(
|
|
|
172
173
|
excelFormatter: () => buildExcelFormat(decimals),
|
|
173
174
|
excelValue: (value) => formatNumberInvariant(value, decimals),
|
|
174
175
|
getter: (row) => row[key] ?? '',
|
|
175
|
-
sortGetter: (row) => row[key] ??
|
|
176
|
+
sortGetter: (row) => row[key] ?? 0,
|
|
176
177
|
filter: {
|
|
177
178
|
...numberFilter(key),
|
|
178
179
|
getter: (value) => value[key] ?? 0,
|
|
@@ -202,7 +203,7 @@ export const sqlMoneyColumn = <R extends Record<string, any>>(
|
|
|
202
203
|
excelFormatter: () => buildExcelFormat(decimals, ' €'),
|
|
203
204
|
excelValue: (value) => formatNumberInvariant(value, decimals),
|
|
204
205
|
getter: (row) => row[key] ?? '',
|
|
205
|
-
sortGetter: (row) => row[key] ??
|
|
206
|
+
sortGetter: (row) => row[key] ?? 0,
|
|
206
207
|
filter: {
|
|
207
208
|
...numberFilter(key),
|
|
208
209
|
getter: (value) => value[key] ?? 0,
|
|
@@ -231,7 +232,7 @@ export const sqlPercentageColumn = <R extends Record<string, any>>(
|
|
|
231
232
|
excelFormatter: () => buildExcelFormat(decimals, '%'),
|
|
232
233
|
excelValue: (value) => formatNumberInvariant(value, decimals),
|
|
233
234
|
getter: (row) => row[key] ?? '',
|
|
234
|
-
sortGetter: (row) => row[key] ??
|
|
235
|
+
sortGetter: (row) => row[key] ?? 0,
|
|
235
236
|
filter: {
|
|
236
237
|
...numberFilter(key),
|
|
237
238
|
getter: (value) => value[key] ?? 0,
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
import * as styles from './styles';
|
|
2
|
+
|
|
3
|
+
import {
|
|
4
|
+
CircleXMarkIcon,
|
|
5
|
+
FilterSlashIcon,
|
|
6
|
+
LeftIcon,
|
|
7
|
+
RightIcon,
|
|
8
|
+
} from '../../../../Icons';
|
|
9
|
+
import { MouseEvent, useCallback, useState } from 'react';
|
|
10
|
+
|
|
11
|
+
import { DataGridContext } from '../../DataGrid/types';
|
|
12
|
+
import { DataGridFilterMenu } from '../../DataGrid/DataGridFilterMenu';
|
|
13
|
+
import { IconButton } from '../../../forms';
|
|
14
|
+
import { SqlRequestGridProps } from '../types';
|
|
15
|
+
|
|
16
|
+
// eslint-disable-next-line @typescript-eslint/no-empty-object-type
|
|
17
|
+
type FiltersSidebarProps<R, P extends object = {}> = {
|
|
18
|
+
props: SqlRequestGridProps<R, P>;
|
|
19
|
+
context: DataGridContext<R>;
|
|
20
|
+
onClose?: () => void;
|
|
21
|
+
onClearFilters?: () => void;
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
// eslint-disable-next-line @typescript-eslint/no-empty-object-type
|
|
25
|
+
export const FiltersSidebar = <R, P extends object = {}>({
|
|
26
|
+
props,
|
|
27
|
+
context,
|
|
28
|
+
onClose,
|
|
29
|
+
onClearFilters,
|
|
30
|
+
}: FiltersSidebarProps<R, P>) => {
|
|
31
|
+
const [columnKey, setColumnKey] = useState<string | null>(null);
|
|
32
|
+
const column = columnKey ? props.fields[columnKey] : null;
|
|
33
|
+
const visible = !!(columnKey && column);
|
|
34
|
+
|
|
35
|
+
const stopPropagation = useCallback((e: MouseEvent) => {
|
|
36
|
+
e.stopPropagation();
|
|
37
|
+
}, []);
|
|
38
|
+
|
|
39
|
+
const onFilterClick = useCallback((columnKey: string | null) => {
|
|
40
|
+
setColumnKey(columnKey);
|
|
41
|
+
}, []);
|
|
42
|
+
|
|
43
|
+
return (
|
|
44
|
+
<styles.Backdrop onClick={onClose}>
|
|
45
|
+
<styles.FiltersSidebarContainer onClick={stopPropagation}>
|
|
46
|
+
{visible ? (
|
|
47
|
+
<>
|
|
48
|
+
<styles.FiltersSidebarHeader>
|
|
49
|
+
<IconButton
|
|
50
|
+
rounded
|
|
51
|
+
icon={LeftIcon}
|
|
52
|
+
color="secondary"
|
|
53
|
+
onClick={() => onFilterClick(null)}
|
|
54
|
+
/>
|
|
55
|
+
<h3>{column.name}</h3>
|
|
56
|
+
<IconButton
|
|
57
|
+
rounded
|
|
58
|
+
icon={CircleXMarkIcon}
|
|
59
|
+
color="secondary"
|
|
60
|
+
onClick={onClose}
|
|
61
|
+
/>
|
|
62
|
+
</styles.FiltersSidebarHeader>
|
|
63
|
+
<DataGridFilterMenu
|
|
64
|
+
contextMenu={false}
|
|
65
|
+
columnKey={columnKey}
|
|
66
|
+
columnIndex={0}
|
|
67
|
+
context={context}
|
|
68
|
+
showTotalButton={false}
|
|
69
|
+
/>
|
|
70
|
+
</>
|
|
71
|
+
) : (
|
|
72
|
+
<>
|
|
73
|
+
<styles.FiltersSidebarHeader>
|
|
74
|
+
<h3>Filtres</h3>
|
|
75
|
+
<IconButton
|
|
76
|
+
rounded
|
|
77
|
+
icon={FilterSlashIcon}
|
|
78
|
+
color="danger"
|
|
79
|
+
onClick={onClearFilters}
|
|
80
|
+
/>
|
|
81
|
+
<IconButton
|
|
82
|
+
rounded
|
|
83
|
+
icon={CircleXMarkIcon}
|
|
84
|
+
color="secondary"
|
|
85
|
+
onClick={onClose}
|
|
86
|
+
/>
|
|
87
|
+
</styles.FiltersSidebarHeader>
|
|
88
|
+
{Object.entries(props.fields).map(([key, field], index) => (
|
|
89
|
+
<styles.FiltersSidebarFilter
|
|
90
|
+
key={index}
|
|
91
|
+
onClick={() => onFilterClick(key)}
|
|
92
|
+
>
|
|
93
|
+
{field.name}
|
|
94
|
+
<RightIcon />
|
|
95
|
+
</styles.FiltersSidebarFilter>
|
|
96
|
+
))}
|
|
97
|
+
</>
|
|
98
|
+
)}
|
|
99
|
+
</styles.FiltersSidebarContainer>
|
|
100
|
+
</styles.Backdrop>
|
|
101
|
+
);
|
|
102
|
+
};
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import {
|
|
2
|
+
Divider,
|
|
3
|
+
MenuContainer,
|
|
4
|
+
MenuItemContainer,
|
|
5
|
+
} from '../../../ui/ContextMenu/styles';
|
|
6
|
+
|
|
7
|
+
import styled from 'styled-components';
|
|
8
|
+
|
|
9
|
+
export const FiltersSidebarContainer = styled.div`
|
|
10
|
+
position: absolute;
|
|
11
|
+
left: 0;
|
|
12
|
+
top: 0;
|
|
13
|
+
bottom: 0;
|
|
14
|
+
width: 100%;
|
|
15
|
+
max-width: var(--space-96);
|
|
16
|
+
border-radius: var(--rounded-none);
|
|
17
|
+
padding: 0;
|
|
18
|
+
z-index: 1;
|
|
19
|
+
overflow-y: auto;
|
|
20
|
+
box-sizing: border-box;
|
|
21
|
+
background-color: var(--color-neutral-50);
|
|
22
|
+
border-right: 1px solid var(--color-neutral-300);
|
|
23
|
+
box-shadow: var(--shadow-sm);
|
|
24
|
+
|
|
25
|
+
& > ${MenuContainer} {
|
|
26
|
+
position: relative;
|
|
27
|
+
background: none;
|
|
28
|
+
padding: var(--space-2) 0;
|
|
29
|
+
|
|
30
|
+
${MenuItemContainer} {
|
|
31
|
+
background: none;
|
|
32
|
+
/* height: var(--size-6); */
|
|
33
|
+
padding: var(--space-2) var(--space-4);
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
${Divider} {
|
|
37
|
+
margin: var(--space-2) 0;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
`;
|
|
41
|
+
|
|
42
|
+
export const FiltersSidebarHeader = styled.div`
|
|
43
|
+
display: flex;
|
|
44
|
+
justify-content: space-between;
|
|
45
|
+
align-items: center;
|
|
46
|
+
gap: var(--space-4);
|
|
47
|
+
padding: var(--space-2);
|
|
48
|
+
|
|
49
|
+
padding-bottom: var(--space-2);
|
|
50
|
+
border-bottom: 1px solid var(--color-neutral-300);
|
|
51
|
+
|
|
52
|
+
h3 {
|
|
53
|
+
margin: 0;
|
|
54
|
+
margin-right: auto;
|
|
55
|
+
}
|
|
56
|
+
`;
|
|
57
|
+
|
|
58
|
+
export const FiltersSidebarFilter = styled.div`
|
|
59
|
+
display: flex;
|
|
60
|
+
align-items: center;
|
|
61
|
+
padding: var(--space-4) var(--space-2);
|
|
62
|
+
border-bottom: 1px solid var(--color-neutral-300);
|
|
63
|
+
cursor: pointer;
|
|
64
|
+
|
|
65
|
+
&:hover {
|
|
66
|
+
background-color: var(--color-neutral-100);
|
|
67
|
+
}
|
|
68
|
+
svg {
|
|
69
|
+
margin-left: auto;
|
|
70
|
+
width: var(--space-4);
|
|
71
|
+
height: var(--space-4);
|
|
72
|
+
}
|
|
73
|
+
`;
|
|
74
|
+
|
|
75
|
+
export const Backdrop = styled.div`
|
|
76
|
+
position: sticky;
|
|
77
|
+
top: 0;
|
|
78
|
+
left: 0;
|
|
79
|
+
width: 100%;
|
|
80
|
+
height: 100%;
|
|
81
|
+
z-index: 1;
|
|
82
|
+
background-color: rgba(0, 0, 0, 0.5);
|
|
83
|
+
`;
|