@topconsultnpm/sdkui-react 6.22.0-dev2.9 → 6.22.0-t2
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/lib/components/NewComponents/ContextMenu/TMContextMenu.js +1 -1
- package/lib/components/NewComponents/ContextMenu/styles.d.ts +45 -43
- package/lib/components/NewComponents/FloatingMenuBar/TMFloatingMenuBar.js +1 -1
- package/lib/components/NewComponents/FloatingMenuBar/styles.d.ts +67 -60
- package/lib/components/base/Styled.d.ts +93 -77
- package/lib/components/base/TMCounterBar.d.ts +2 -2
- package/lib/components/base/TMCounterContainer.d.ts +2 -1
- package/lib/components/base/TMCustomButton.d.ts +1 -1
- package/lib/components/base/TMDataGrid.d.ts +2 -0
- package/lib/components/base/TMDataGrid.js +260 -8
- package/lib/components/base/TMDataGridExportForm.d.ts +2 -1
- package/lib/components/base/TMEditorBase.d.ts +2 -0
- package/lib/components/base/TMFileManager.d.ts +2 -1
- package/lib/components/base/TMFileManager.js +5 -3
- package/lib/components/base/TMFileManagerDataGridView.d.ts +2 -1
- package/lib/components/base/TMFileManagerDataGridView.js +11 -2
- package/lib/components/base/TMFileManagerThumbnailItems.d.ts +1 -1
- package/lib/components/base/TMFileManagerThumbnailItems.js +19 -9
- package/lib/components/base/TMFileManagerThumbnailsView.d.ts +1 -1
- package/lib/components/base/TMFileManagerUtils.d.ts +6 -6
- package/lib/components/base/TMFileManagerUtils.js +37 -1
- package/lib/components/base/TMLayout.d.ts +4 -4
- package/lib/components/base/TMList.d.ts +2 -1
- package/lib/components/base/TMListView.d.ts +1 -1
- package/lib/components/base/TMModal.d.ts +11 -0
- package/lib/components/base/TMModal.js +47 -13
- package/lib/components/base/TMPanel.d.ts +6 -0
- package/lib/components/base/TMPanel.js +138 -25
- package/lib/components/base/TMPopUp.js +3 -0
- package/lib/components/base/TMSpinner.d.ts +2 -1
- package/lib/components/base/TMTab.d.ts +4 -3
- package/lib/components/base/TMTooltip.d.ts +2 -1
- package/lib/components/base/TMTooltip.js +24 -8
- package/lib/components/base/TMTreeView.d.ts +14 -8
- package/lib/components/base/TMTreeView.js +108 -67
- package/lib/components/base/TMUserAvatar.d.ts +2 -1
- package/lib/components/base/TMVilViewer.d.ts +2 -1
- package/lib/components/base/TMWaitPanel.d.ts +3 -2
- package/lib/components/choosers/TMDcmtTypeChooser.js +4 -3
- package/lib/components/choosers/TMDistinctValues.d.ts +9 -7
- package/lib/components/choosers/TMDistinctValues.js +149 -142
- package/lib/components/choosers/TMDynDataListItemChooser.d.ts +1 -1
- package/lib/components/choosers/TMInvoiceRetrieveFormats.d.ts +2 -1
- package/lib/components/choosers/TMMetadataChooser.js +1 -1
- package/lib/components/choosers/TMOrderRetrieveFormats.d.ts +2 -1
- package/lib/components/choosers/TMQuickSearchInfo.d.ts +13 -0
- package/lib/components/choosers/TMQuickSearchInfo.js +279 -0
- package/lib/components/choosers/TMQuickSearchSettingsForm.d.ts +16 -0
- package/lib/components/choosers/TMQuickSearchSettingsForm.js +94 -0
- package/lib/components/choosers/TMRelationChooser.d.ts +3 -3
- package/lib/components/choosers/TMSelectedValuesSummary.d.ts +13 -0
- package/lib/components/choosers/TMSelectedValuesSummary.js +91 -0
- package/lib/components/choosers/TMUserChooser.d.ts +2 -2
- package/lib/components/editors/TMDropDown.d.ts +3 -0
- package/lib/components/editors/TMDropDown.js +197 -5
- package/lib/components/editors/TMEditorStyled.d.ts +20 -42
- package/lib/components/editors/TMFormulaEditor.d.ts +1 -1
- package/lib/components/editors/TMHtmlContentDisplay.d.ts +2 -1
- package/lib/components/editors/TMHtmlEditor.d.ts +2 -1
- package/lib/components/editors/TMTreeDropDown.d.ts +1 -1
- package/lib/components/features/archive/TMArchive.js +17 -3
- package/lib/components/features/assistant/TMToppyDraggableHelpCenter.d.ts +1 -1
- package/lib/components/features/blog/TMBlogCommentForm.d.ts +2 -1
- package/lib/components/features/documents/TMBatchUpdateForm.js +19 -5
- package/lib/components/features/documents/TMDcmtBlog.d.ts +3 -0
- package/lib/components/features/documents/TMDcmtBlog.js +4 -4
- package/lib/components/features/documents/TMDcmtForm.d.ts +7 -0
- package/lib/components/features/documents/TMDcmtForm.js +178 -51
- package/lib/components/features/documents/TMDcmtFormActionButtons.d.ts +12 -1
- package/lib/components/features/documents/TMDcmtFormActionButtons.js +77 -7
- package/lib/components/features/documents/TMDcmtIcon.d.ts +2 -1
- package/lib/components/features/documents/TMDcmtIcon.js +5 -3
- package/lib/components/features/documents/TMDcmtPreview.d.ts +8 -6
- package/lib/components/features/documents/TMDcmtPreview.js +10 -6
- package/lib/components/features/documents/TMDcmtTasks.d.ts +2 -1
- package/lib/components/features/documents/TMDragDropOverlay.d.ts +1 -1
- package/lib/components/features/documents/TMMasterDetailDcmts.js +95 -33
- package/lib/components/features/documents/TMMasterInfoFields.d.ts +20 -0
- package/lib/components/features/documents/TMMasterInfoFields.js +186 -0
- package/lib/components/features/documents/TMMergeToPdfForm.d.ts +3 -3
- package/lib/components/features/documents/TMMergeToPdfForm.js +30 -5
- package/lib/components/features/documents/TMMultiMasterDetailDcmtsForm.d.ts +46 -0
- package/lib/components/features/documents/TMMultiMasterDetailDcmtsForm.js +323 -0
- package/lib/components/features/documents/TMMultiMasterDetailDcmtsUtils.d.ts +370 -0
- package/lib/components/features/documents/TMMultiMasterDetailDcmtsUtils.js +283 -0
- package/lib/components/features/documents/TMRelationViewer.d.ts +14 -1
- package/lib/components/features/documents/TMRelationViewer.js +69 -20
- package/lib/components/features/search/TMDcmtCheckoutInfoForm.d.ts +2 -1
- package/lib/components/features/search/TMMetadataOutputForm.d.ts +2 -1
- package/lib/components/features/search/TMMetadataSorterForm.d.ts +2 -1
- package/lib/components/features/search/TMSavedQuerySelector.d.ts +2 -2
- package/lib/components/features/search/TMSearch.js +77 -11
- package/lib/components/features/search/TMSearchQueryEditor.js +5 -3
- package/lib/components/features/search/TMSearchQueryPanel.d.ts +13 -3
- package/lib/components/features/search/TMSearchQueryPanel.js +141 -67
- package/lib/components/features/search/TMSearchResult.d.ts +16 -0
- package/lib/components/features/search/TMSearchResult.js +429 -108
- package/lib/components/features/search/TMSearchResultFloatingActionButton.d.ts +1 -1
- package/lib/components/features/search/TMSignatureInfoContent.d.ts +2 -1
- package/lib/components/features/search/TMTreeSelector.js +109 -64
- package/lib/components/features/search/TMViewHistoryDcmt.d.ts +2 -1
- package/lib/components/features/tasks/TMTaskForm.d.ts +1 -1
- package/lib/components/features/tasks/TMTaskFormUtils.d.ts +10 -10
- package/lib/components/features/tasks/TMTasksAgenda.d.ts +1 -1
- package/lib/components/features/tasks/TMTasksCalendar.d.ts +1 -1
- package/lib/components/features/tasks/TMTasksHeader.d.ts +1 -1
- package/lib/components/features/tasks/TMTasksPanelContent.d.ts +1 -1
- package/lib/components/features/tasks/TMTasksUtilsView.d.ts +5 -5
- package/lib/components/features/tasks/TMTasksView.d.ts +1 -1
- package/lib/components/features/wg/TMWGsCopyMoveForm.d.ts +3 -2
- package/lib/components/features/workflow/TMWorkflowPopup.d.ts +18 -7
- package/lib/components/features/workflow/TMWorkflowPopup.js +8 -4
- package/lib/components/features/workflow/diagram/WorkitemRecipientsEditor.d.ts +3 -1
- package/lib/components/forms/Login/ChangePasswordInputs.d.ts +3 -1
- package/lib/components/forms/Login/Chooser.d.ts +2 -2
- package/lib/components/forms/TMChooserForm.d.ts +2 -1
- package/lib/components/forms/TMSaveForm.d.ts +4 -4
- package/lib/components/grids/TMBlogAttachments.d.ts +2 -1
- package/lib/components/grids/TMBlogAttachments.js +13 -2
- package/lib/components/grids/TMBlogHeader.d.ts +1 -1
- package/lib/components/grids/TMBlogHeader.js +5 -1
- package/lib/components/grids/TMBlogsPost.d.ts +3 -1
- package/lib/components/grids/TMBlogsPost.js +31 -4
- package/lib/components/grids/TMBlogsPostUtils.d.ts +10 -9
- package/lib/components/grids/TMBlogsPostUtils.js +14 -3
- package/lib/components/grids/TMValidationItemsList.d.ts +2 -1
- package/lib/components/layout/panelManager/TMPanelManagerContainer.d.ts +3 -1
- package/lib/components/layout/panelManager/TMPanelManagerContainer.js +24 -14
- package/lib/components/layout/panelManager/TMPanelManagerContext.d.ts +2 -2
- package/lib/components/layout/panelManager/TMPanelManagerContext.js +68 -93
- package/lib/components/layout/panelManager/TMPanelManagerToolbar.d.ts +5 -6
- package/lib/components/layout/panelManager/TMPanelManagerWithPersistenceProvider.d.ts +2 -2
- package/lib/components/layout/panelManager/TMPanelWrapper.d.ts +2 -2
- package/lib/components/layout/panelManager/TMPanelWrapper.js +2 -2
- package/lib/components/layout/panelManager/types.d.ts +3 -0
- package/lib/components/layout/panelManager/utils.js +13 -11
- package/lib/components/pages/TMPage.d.ts +1 -1
- package/lib/components/query/TMQueryEditor.d.ts +14 -10
- package/lib/components/settings/SettingsAppearance.d.ts +2 -1
- package/lib/components/sidebar/TMAboutApp.d.ts +2 -1
- package/lib/components/sidebar/TMCommandsPanel.d.ts +4 -4
- package/lib/components/sidebar/TMHeader.d.ts +3 -3
- package/lib/components/sidebar/TMHeader.js +30 -20
- package/lib/components/viewers/TMDataListItemViewer.d.ts +3 -2
- package/lib/components/viewers/TMDataUserIdItemViewer.d.ts +3 -2
- package/lib/components/viewers/TMMidViewer.d.ts +2 -2
- package/lib/components/viewers/TMMidViewer.js +4 -1
- package/lib/components/viewers/TMTidViewer.d.ts +2 -2
- package/lib/components/viewers/TMTidViewer.js +86 -25
- package/lib/css/tm-sdkui.css +1 -1
- package/lib/devextreme-license.d.ts +1 -0
- package/lib/devextreme-license.js +3 -0
- package/lib/helper/SDKUI_Globals.d.ts +110 -0
- package/lib/helper/SDKUI_Globals.js +151 -0
- package/lib/helper/SDKUI_Localizator.d.ts +44 -0
- package/lib/helper/SDKUI_Localizator.js +440 -0
- package/lib/helper/TMAppUpdatedModal.d.ts +2 -0
- package/lib/helper/TMAppUpdatedModal.js +134 -0
- package/lib/helper/TMCommandsContextMenu.d.ts +1 -1
- package/lib/helper/TMIcons.d.ts +280 -279
- package/lib/helper/TMIcons.js +3 -0
- package/lib/helper/TMPdfViewer.d.ts +2 -1
- package/lib/helper/TMToppyMessage.d.ts +2 -2
- package/lib/helper/TMUtils.d.ts +23 -4
- package/lib/helper/TMUtils.js +24 -2
- package/lib/helper/dataGridSearchHelper.d.ts +28 -0
- package/lib/helper/dataGridSearchHelper.js +51 -0
- package/lib/helper/dcmtsHelper.d.ts +20 -0
- package/lib/helper/dcmtsHelper.js +58 -1
- package/lib/helper/helpers.d.ts +12 -1
- package/lib/helper/helpers.js +25 -1
- package/lib/helper/index.d.ts +2 -0
- package/lib/helper/index.js +2 -0
- package/lib/helper/queryHelper.d.ts +6 -1
- package/lib/helper/queryHelper.js +8 -3
- package/lib/hooks/tmDistinctValuesGridHelper.d.ts +16 -0
- package/lib/hooks/tmDistinctValuesGridHelper.js +31 -0
- package/lib/hooks/useArchiveListForm.d.ts +39 -0
- package/lib/hooks/useArchiveListForm.js +46 -0
- package/lib/hooks/useCaseFlowApprove.d.ts +56 -0
- package/lib/hooks/useCaseFlowApprove.js +157 -0
- package/lib/hooks/useDataUserIdItem.d.ts +1 -0
- package/lib/hooks/useDataUserIdItem.js +1 -0
- package/lib/hooks/useDocumentOperations.d.ts +4 -0
- package/lib/hooks/useDocumentOperations.js +52 -10
- package/lib/hooks/useInputDialog.d.ts +2 -1
- package/lib/hooks/useMultiMasterDetailDcmts.d.ts +113 -0
- package/lib/hooks/useMultiMasterDetailDcmts.js +760 -0
- package/lib/hooks/useRelatedDocuments.d.ts +1 -0
- package/lib/hooks/useRelatedDocuments.js +22 -27
- package/lib/hooks/useShowDossiersV5.d.ts +12 -0
- package/lib/hooks/useShowDossiersV5.js +37 -0
- package/lib/hooks/useTMDistinctValuesMetadataDisplay.d.ts +18 -0
- package/lib/hooks/useTMDistinctValuesMetadataDisplay.js +103 -0
- package/lib/hooks/useTMDistinctValuesQuickSearch.d.ts +49 -0
- package/lib/hooks/useTMDistinctValuesQuickSearch.js +307 -0
- package/lib/hooks/useTMDistinctValuesSelection.d.ts +42 -0
- package/lib/hooks/useTMDistinctValuesSelection.js +103 -0
- package/lib/hooks/useTMDistinctValuesSource.d.ts +29 -0
- package/lib/hooks/useTMDistinctValuesSource.js +105 -0
- package/lib/index.d.ts +2 -0
- package/lib/index.js +5 -2
- package/lib/services/caseflow/CaseFlowService.d.ts +236 -0
- package/lib/services/caseflow/CaseFlowService.js +693 -0
- package/lib/services/caseflow/CaseFlowTemplateCacheService.d.ts +28 -0
- package/lib/services/caseflow/CaseFlowTemplateCacheService.js +121 -0
- package/lib/services/caseflow/caseFlowNameCache.d.ts +32 -0
- package/lib/services/caseflow/caseFlowNameCache.js +116 -0
- package/lib/services/caseflow/caseFlowWorkItemUtils.d.ts +61 -0
- package/lib/services/caseflow/caseFlowWorkItemUtils.js +113 -0
- package/lib/services/index.d.ts +4 -0
- package/lib/services/index.js +4 -0
- package/lib/services/platform_services.d.ts +4 -3
- package/package.json +9 -5
|
@@ -1,102 +1,118 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { ResultTypes } from '@topconsultnpm/sdk-ts';
|
|
3
3
|
import { TMColors } from '../../utils/theme';
|
|
4
|
-
export declare const StyledDivHorizontal: import("styled-components/dist/types").IStyledComponentBase<"web",
|
|
5
|
-
|
|
4
|
+
export declare const StyledDivHorizontal: import("styled-components/dist/types").IStyledComponentBase<"web", Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "style"> & {
|
|
5
|
+
style?: React.CSSProperties | import("styled-components/dist/types").CSSPropertiesWithVars | undefined;
|
|
6
|
+
}> & string;
|
|
7
|
+
export declare const StyledMultiViewPanel: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components/dist/types").Merged<Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "style"> & {
|
|
8
|
+
style?: React.CSSProperties | import("styled-components/dist/types").CSSPropertiesWithVars | undefined;
|
|
9
|
+
}, {
|
|
6
10
|
$isVisible: boolean;
|
|
7
|
-
}
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
export declare const StyledToolbarForm: import("styled-components/dist/types").IStyledComponentBase<"web",
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
11
|
+
}>> & string;
|
|
12
|
+
export declare const StyledParagraph: import("styled-components/dist/types").IStyledComponentBase<"web", Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLParagraphElement>, HTMLParagraphElement>, "style"> & {
|
|
13
|
+
style?: React.CSSProperties | import("styled-components/dist/types").CSSPropertiesWithVars | undefined;
|
|
14
|
+
}> & string;
|
|
15
|
+
export declare const StyledToolbarForm: import("styled-components/dist/types").IStyledComponentBase<"web", Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "style"> & {
|
|
16
|
+
style?: React.CSSProperties | import("styled-components/dist/types").CSSPropertiesWithVars | undefined;
|
|
17
|
+
}> & string;
|
|
18
|
+
export declare const ReferencesContainer: import("styled-components/dist/types").IStyledComponentBase<"web", Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "style"> & {
|
|
19
|
+
style?: React.CSSProperties | import("styled-components/dist/types").CSSPropertiesWithVars | undefined;
|
|
20
|
+
}> & string;
|
|
21
|
+
export declare const StyledReferenceButton: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components/dist/types").Merged<Omit<React.DetailedHTMLProps<React.ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, "style"> & {
|
|
22
|
+
style?: React.CSSProperties | import("styled-components/dist/types").CSSPropertiesWithVars | undefined;
|
|
23
|
+
}, {
|
|
16
24
|
$bgColor?: string;
|
|
17
|
-
}
|
|
18
|
-
export declare const StyledPanelPage: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
$background?: string;
|
|
22
|
-
$withMenu?: boolean;
|
|
23
|
-
}, never> & Partial<Pick<import("styled-components").FastOmit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "$padding" | "$isOpen" | "$background" | "$withMenu"> & {
|
|
25
|
+
}>> & string;
|
|
26
|
+
export declare const StyledPanelPage: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components/dist/types").Merged<Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "style"> & {
|
|
27
|
+
style?: React.CSSProperties | import("styled-components/dist/types").CSSPropertiesWithVars | undefined;
|
|
28
|
+
}, {
|
|
24
29
|
$isOpen?: boolean;
|
|
25
30
|
$padding?: string;
|
|
26
31
|
$background?: string;
|
|
27
32
|
$withMenu?: boolean;
|
|
28
|
-
}
|
|
29
|
-
export declare const StyledClickableIconWrapper: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").
|
|
33
|
+
}>> & string;
|
|
34
|
+
export declare const StyledClickableIconWrapper: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components/dist/types").Merged<Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "style"> & {
|
|
35
|
+
style?: React.CSSProperties | import("styled-components/dist/types").CSSPropertiesWithVars | undefined;
|
|
36
|
+
}, {
|
|
30
37
|
$disabled?: boolean;
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
38
|
+
}>> & string;
|
|
39
|
+
export declare const StyledOffCanvasPanel: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components/dist/types").Merged<Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "style"> & {
|
|
40
|
+
style?: React.CSSProperties | import("styled-components/dist/types").CSSPropertiesWithVars | undefined;
|
|
41
|
+
}, {
|
|
35
42
|
$isOpen: boolean;
|
|
36
43
|
$width?: string;
|
|
37
44
|
$mobileHeight?: string;
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
}, never>>> & string;
|
|
43
|
-
export declare const StyledOverlay: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("styled-components").FastOmit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "$isOpen"> & {
|
|
44
|
-
$isOpen: boolean;
|
|
45
|
-
}, never> & Partial<Pick<import("styled-components").FastOmit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "$isOpen"> & {
|
|
45
|
+
}>> & string;
|
|
46
|
+
export declare const StyledOverlay: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components/dist/types").Merged<Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "style"> & {
|
|
47
|
+
style?: React.CSSProperties | import("styled-components/dist/types").CSSPropertiesWithVars | undefined;
|
|
48
|
+
}, {
|
|
46
49
|
$isOpen: boolean;
|
|
47
|
-
}
|
|
48
|
-
export declare const StyledModalContainer: import("styled-components/dist/types").IStyledComponentBase<"web",
|
|
49
|
-
|
|
50
|
+
}>> & string;
|
|
51
|
+
export declare const StyledModalContainer: import("styled-components/dist/types").IStyledComponentBase<"web", Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "style"> & {
|
|
52
|
+
style?: React.CSSProperties | import("styled-components/dist/types").CSSPropertiesWithVars | undefined;
|
|
53
|
+
}> & string;
|
|
54
|
+
export declare const StyledResultTypeContainer: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components/dist/types").Merged<Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "style"> & {
|
|
55
|
+
style?: React.CSSProperties | import("styled-components/dist/types").CSSPropertiesWithVars | undefined;
|
|
56
|
+
}, {
|
|
50
57
|
$resultType: ResultTypes;
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
export declare const StyledTooltipItem: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
$marginTop?: string;
|
|
59
|
-
}, never> & Partial<Pick<import("styled-components").FastOmit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "$color" | "$fontSize" | "$marginTop"> & {
|
|
58
|
+
}>> & string;
|
|
59
|
+
export declare const StyledTooltipSeparatorItem: import("styled-components/dist/types").IStyledComponentBase<"web", Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLHRElement>, HTMLHRElement>, "style"> & {
|
|
60
|
+
style?: React.CSSProperties | import("styled-components/dist/types").CSSPropertiesWithVars | undefined;
|
|
61
|
+
}> & string;
|
|
62
|
+
export declare const StyledTooltipItem: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components/dist/types").Merged<Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "style"> & {
|
|
63
|
+
style?: React.CSSProperties | import("styled-components/dist/types").CSSPropertiesWithVars | undefined;
|
|
64
|
+
}, {
|
|
60
65
|
$color?: TMColors;
|
|
61
66
|
$fontSize?: string;
|
|
62
67
|
$marginTop?: string;
|
|
63
|
-
}
|
|
64
|
-
export declare const StyledTooltipContainer: import("styled-components/dist/types").IStyledComponentBase<"web",
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
68
|
+
}>> & string;
|
|
69
|
+
export declare const StyledTooltipContainer: import("styled-components/dist/types").IStyledComponentBase<"web", Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "style"> & {
|
|
70
|
+
style?: React.CSSProperties | import("styled-components/dist/types").CSSPropertiesWithVars | undefined;
|
|
71
|
+
}> & string;
|
|
72
|
+
export declare const StyledDraggableDiv: import("styled-components/dist/types").IStyledComponentBase<"web", Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "style"> & {
|
|
73
|
+
style?: React.CSSProperties | import("styled-components/dist/types").CSSPropertiesWithVars | undefined;
|
|
74
|
+
}> & string;
|
|
75
|
+
export declare const StyledBadge: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components/dist/types").Merged<Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "style"> & {
|
|
76
|
+
style?: React.CSSProperties | import("styled-components/dist/types").CSSPropertiesWithVars | undefined;
|
|
77
|
+
}, {
|
|
69
78
|
$backgroundColor: string;
|
|
70
|
-
}
|
|
71
|
-
export declare const StyledDxGridGroupHeader: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").
|
|
72
|
-
|
|
73
|
-
},
|
|
79
|
+
}>> & string;
|
|
80
|
+
export declare const StyledDxGridGroupHeader: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components/dist/types").Merged<Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "style"> & {
|
|
81
|
+
style?: React.CSSProperties | import("styled-components/dist/types").CSSPropertiesWithVars | undefined;
|
|
82
|
+
}, {
|
|
74
83
|
$backgroundColor?: string;
|
|
75
|
-
}
|
|
76
|
-
export declare const cellRenderObjectIcon: (icon: any) =>
|
|
77
|
-
export declare const StyledChartOverlay: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").
|
|
84
|
+
}>> & string;
|
|
85
|
+
export declare const cellRenderObjectIcon: (icon: any) => React.JSX.Element;
|
|
86
|
+
export declare const StyledChartOverlay: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components/dist/types").Merged<Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "style"> & {
|
|
87
|
+
style?: React.CSSProperties | import("styled-components/dist/types").CSSPropertiesWithVars | undefined;
|
|
88
|
+
}, {
|
|
78
89
|
$backgroundColor?: string;
|
|
79
|
-
}
|
|
90
|
+
}>> & string;
|
|
91
|
+
export declare const StyledBtnLoadChart: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components/dist/types").Merged<Omit<React.DetailedHTMLProps<React.ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, "style"> & {
|
|
92
|
+
style?: React.CSSProperties | import("styled-components/dist/types").CSSPropertiesWithVars | undefined;
|
|
93
|
+
}, {
|
|
80
94
|
$backgroundColor?: string;
|
|
81
|
-
}
|
|
82
|
-
export declare const
|
|
83
|
-
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
export declare const
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
export declare const
|
|
95
|
+
}>> & string;
|
|
96
|
+
export declare const StyledFormButtonsContainer: import("styled-components/dist/types").IStyledComponentBase<"web", Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "style"> & {
|
|
97
|
+
style?: React.CSSProperties | import("styled-components/dist/types").CSSPropertiesWithVars | undefined;
|
|
98
|
+
}> & string;
|
|
99
|
+
export declare const StyledToolbarCardContainer: import("styled-components/dist/types").IStyledComponentBase<"web", Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "style"> & {
|
|
100
|
+
style?: React.CSSProperties | import("styled-components/dist/types").CSSPropertiesWithVars | undefined;
|
|
101
|
+
}> & string;
|
|
102
|
+
export declare const StyledSpinner: import("styled-components/dist/types").IStyledComponentBase<"web", Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "style"> & {
|
|
103
|
+
style?: React.CSSProperties | import("styled-components/dist/types").CSSPropertiesWithVars | undefined;
|
|
104
|
+
}> & string;
|
|
105
|
+
export declare const StyledLoadingContainer: import("styled-components/dist/types").IStyledComponentBase<"web", Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "style"> & {
|
|
106
|
+
style?: React.CSSProperties | import("styled-components/dist/types").CSSPropertiesWithVars | undefined;
|
|
107
|
+
}> & string;
|
|
108
|
+
export declare const StyledAnimatedComponentScaleColor: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components/dist/types").Merged<Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "style"> & {
|
|
109
|
+
style?: React.CSSProperties | import("styled-components/dist/types").CSSPropertiesWithVars | undefined;
|
|
110
|
+
}, {
|
|
92
111
|
$delay?: string;
|
|
93
112
|
$scale?: number;
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
},
|
|
98
|
-
export declare const StyledAnimatedComponentOpacity: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("styled-components").FastOmit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "$delay"> & {
|
|
99
|
-
$delay?: string;
|
|
100
|
-
}, never> & Partial<Pick<import("styled-components").FastOmit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "$delay"> & {
|
|
113
|
+
}>> & string;
|
|
114
|
+
export declare const StyledAnimatedComponentOpacity: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components/dist/types").Merged<Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "style"> & {
|
|
115
|
+
style?: React.CSSProperties | import("styled-components/dist/types").CSSPropertiesWithVars | undefined;
|
|
116
|
+
}, {
|
|
101
117
|
$delay?: string;
|
|
102
|
-
}
|
|
118
|
+
}>> & string;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ReactNode } from 'react';
|
|
1
|
+
import React, { ReactNode } from 'react';
|
|
2
2
|
interface IProps {
|
|
3
3
|
icon: ReactNode;
|
|
4
4
|
text: string;
|
|
@@ -6,5 +6,5 @@ interface IProps {
|
|
|
6
6
|
}
|
|
7
7
|
declare const TMCounterBar: ({ items }: {
|
|
8
8
|
items: IProps[];
|
|
9
|
-
}) =>
|
|
9
|
+
}) => React.JSX.Element;
|
|
10
10
|
export default TMCounterBar;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import React from 'react';
|
|
1
2
|
export declare enum CounterItemKey {
|
|
2
3
|
allItems = "allItems",
|
|
3
4
|
visibleItems = "visibleItems",
|
|
@@ -19,5 +20,5 @@ export interface ITMCounterContainerProps {
|
|
|
19
20
|
textColorItem?: string;
|
|
20
21
|
hoverColorItem?: string;
|
|
21
22
|
}
|
|
22
|
-
declare const TMCounterContainer: (props: ITMCounterContainerProps) =>
|
|
23
|
+
declare const TMCounterContainer: (props: ITMCounterContainerProps) => React.JSX.Element | undefined;
|
|
23
24
|
export default TMCounterContainer;
|
|
@@ -7,5 +7,5 @@ type TMCustomButtonProps = {
|
|
|
7
7
|
selectedItems?: Array<any>;
|
|
8
8
|
onClose?: () => void;
|
|
9
9
|
};
|
|
10
|
-
declare const TMCustomButton: (props: TMCustomButtonProps) => false | import("react
|
|
10
|
+
declare const TMCustomButton: (props: TMCustomButtonProps) => false | import("react").JSX.Element;
|
|
11
11
|
export default TMCustomButton;
|
|
@@ -46,6 +46,8 @@ export interface TMDataGridProps<T> extends IDataGridOptions {
|
|
|
46
46
|
showSearchPanel?: boolean;
|
|
47
47
|
/** Show the group panel */
|
|
48
48
|
showGroupPanel?: boolean;
|
|
49
|
+
/** Rende il paginatore compatto (meno alto, font e pulsanti ridotti, page numbers sostituiti da "pagina / totale"): utile quando la griglia è dentro pannelli bassi */
|
|
50
|
+
compactPager?: boolean;
|
|
49
51
|
/** Counter configuration */
|
|
50
52
|
counterConfig?: ITMCounterContainerProps;
|
|
51
53
|
/** Master Detail */
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import React, { useCallback, useEffect, useImperativeHandle, useRef, useState } from 'react';
|
|
2
|
+
import React, { useCallback, useEffect, useImperativeHandle, useMemo, useRef, useState } from 'react';
|
|
3
|
+
import styled, { createGlobalStyle, css } from 'styled-components';
|
|
3
4
|
import DataGrid, { Column, HeaderFilter, Selection, Scrolling, LoadPanel, SearchPanel, Pager, Sorting, Paging, FilterPanel, ColumnChooser, Grouping, GroupPanel, Summary, Editing, FilterRow, StateStoring, RowDragging, MasterDetail, Position, ColumnChooserSearch, ColumnChooserSelection } from 'devextreme-react/data-grid';
|
|
4
5
|
import DataSource from 'devextreme/data/data_source';
|
|
5
6
|
import { IconAll, IconSelected, IconVisible, SDKUI_Globals, SDKUI_Localizator } from '../../helper';
|
|
@@ -18,7 +19,7 @@ const TMDataGrid = React.forwardRef((props, ref) => {
|
|
|
18
19
|
// main properties
|
|
19
20
|
keyExpr = 'id', dataSource, focusedRowEnabled = true, hoverStateEnabled = true, focusedRowKey, selectedRowKeys = [],
|
|
20
21
|
// custom options
|
|
21
|
-
dataColumns = [], pageSize = TMDataGridPageSize.Large, showHeaderFilter = true, showFilterPanel = true, showHeaderColumnChooser = false, showLoadPanel = true, showSearchPanel = true, searchPanelToolbarPosition = 'before', searchPanelFocusTrigger = 0, counterConfig = { show: false, items: new Map() }, onHasFiltersChange, customContextMenuItems,
|
|
22
|
+
dataColumns = [], pageSize = TMDataGridPageSize.Large, showHeaderFilter = true, showFilterPanel = true, showHeaderColumnChooser = false, showLoadPanel = true, showSearchPanel = true, searchPanelToolbarPosition = 'before', searchPanelFocusTrigger = 0, counterConfig = { show: false, items: new Map() }, compactPager = false, onHasFiltersChange, customContextMenuItems,
|
|
22
23
|
// events and callbacks
|
|
23
24
|
onSelectionChanged, onFocusedRowChanged, onRowDblClick, onRowClick, onCellClick, onCellDblClick, onOptionChanged, onContentReady, onContextMenuPreparing, onInitialized, onEditorPreparing, onCellPrepared, onRowPrepared, onRowUpdating, onRowExpanded, onRowCollapsed, onRowUpdated, onSaved, onEditCanceled, onEditingStart, onEditingChange, customizeColumns, onKeyDown, scrolling = { mode: 'standard', useNative: SDKUI_Globals.userSettings?.themeSettings.gridSettings.useNativeScrollbar === 1 }, paging = { enabled: true, pageSize: pageSize }, pager = { visible: true, showInfo: true, showNavigationButtons: true }, selection = { mode: 'multiple', showCheckBoxesMode: "always", selectAllMode: "allPages" }, sorting, summary, stateStoring, grouping, groupPanel, filterRow, headerFilter, editing, rowDragging, masterDetail,
|
|
24
25
|
// other properties
|
|
@@ -35,6 +36,9 @@ const TMDataGrid = React.forwardRef((props, ref) => {
|
|
|
35
36
|
const [customContextMenuVisible, setCustomContextMenuVisible] = useState(false);
|
|
36
37
|
const [customContextMenuPosition, setCustomContextMenuPosition] = useState({ x: 0, y: 0 });
|
|
37
38
|
const [customContextMenuRowKey, setCustomContextMenuRowKey] = useState(undefined);
|
|
39
|
+
// true quando il menu contestuale viene aperto su spazio vuoto senza alcuna riga di riferimento:
|
|
40
|
+
// in tal caso i comandi legati alla riga (singleRow/multiRow) devono risultare disabilitati
|
|
41
|
+
const [customContextMenuOnEmptyArea, setCustomContextMenuOnEmptyArea] = useState(false);
|
|
38
42
|
const gridContainerRef = useRef(null);
|
|
39
43
|
// Ref per evitare focus ripetuti sulla search panel
|
|
40
44
|
const searchPanelFocusedRef = useRef(false);
|
|
@@ -75,9 +79,17 @@ const TMDataGrid = React.forwardRef((props, ref) => {
|
|
|
75
79
|
const rowKey = internalRef.current.instance().getKeyByRowIndex(rowIndex);
|
|
76
80
|
internalRef.current.instance().option('focusedRowKey', rowKey);
|
|
77
81
|
setCustomContextMenuRowKey(rowKey);
|
|
82
|
+
setCustomContextMenuOnEmptyArea(false);
|
|
78
83
|
}
|
|
79
84
|
else {
|
|
80
|
-
|
|
85
|
+
// Right-click su spazio vuoto: ricade sulla riga focalizzata solo se esiste ancora.
|
|
86
|
+
// Se non c'è una riga focalizzata (es. primo click dopo l'apertura) o se focusedRowKey punta a
|
|
87
|
+
// una riga non più presente (dopo un'eliminazione), il menu viene comunque mostrato ma senza
|
|
88
|
+
// riga di riferimento: i comandi di riga restano disabilitati, quelli generali utilizzabili
|
|
89
|
+
const grid = internalRef.current?.instance();
|
|
90
|
+
const focusedRowExists = focusedRowKey !== undefined && !!grid && grid.getRowIndexByKey(focusedRowKey) >= 0;
|
|
91
|
+
setCustomContextMenuRowKey(focusedRowExists ? focusedRowKey : undefined);
|
|
92
|
+
setCustomContextMenuOnEmptyArea(!focusedRowExists);
|
|
81
93
|
}
|
|
82
94
|
setCustomContextMenuVisible(true);
|
|
83
95
|
setCustomContextMenuPosition({ x: e.clientX, y: e.clientY });
|
|
@@ -114,6 +126,7 @@ const TMDataGrid = React.forwardRef((props, ref) => {
|
|
|
114
126
|
setCustomContextMenuVisible(true);
|
|
115
127
|
setCustomContextMenuPosition({ x: clientX, y: clientY });
|
|
116
128
|
setCustomContextMenuRowKey(rowKey);
|
|
129
|
+
setCustomContextMenuOnEmptyArea(false);
|
|
117
130
|
},
|
|
118
131
|
});
|
|
119
132
|
// Creating a ref to store the timestamp of the last selection change
|
|
@@ -222,7 +235,8 @@ const TMDataGrid = React.forwardRef((props, ref) => {
|
|
|
222
235
|
return items.map(item => {
|
|
223
236
|
let disabled = item.disabled ?? false;
|
|
224
237
|
let disabledCalculation = false;
|
|
225
|
-
|
|
238
|
+
// Menu aperto su spazio vuoto senza riga di riferimento: nessun id, i comandi di riga sono disabilitati
|
|
239
|
+
const id = customContextMenuOnEmptyArea ? undefined : (focusedRowEnabled ? focusedRowKey : rowID);
|
|
226
240
|
if (item.operationType === 'singleRow') {
|
|
227
241
|
disabledCalculation = selectedRowKeys.length > 1 || id === undefined;
|
|
228
242
|
}
|
|
@@ -237,7 +251,10 @@ const TMDataGrid = React.forwardRef((props, ref) => {
|
|
|
237
251
|
if (item.operationType === 'singleRow' && id !== undefined) {
|
|
238
252
|
originalOnClick(id);
|
|
239
253
|
}
|
|
240
|
-
else if (item.operationType === 'multiRow' && id !== undefined) {
|
|
254
|
+
else if (item.operationType === 'multiRow' && (selectedRowKeys.length > 0 || id !== undefined)) {
|
|
255
|
+
// Condizione allineata a quella di disabilitazione: con righe selezionate il comando è
|
|
256
|
+
// attivo anche senza riga di riferimento (es. menu aperto su spazio vuoto), quindi qui
|
|
257
|
+
// devono comunque essere passate le chiavi selezionate e non un onClick senza argomenti
|
|
241
258
|
if (selectedRowKeys.length > 0) {
|
|
242
259
|
originalOnClick(selectedRowKeys);
|
|
243
260
|
}
|
|
@@ -252,7 +269,7 @@ const TMDataGrid = React.forwardRef((props, ref) => {
|
|
|
252
269
|
submenu: item.submenu ? processCustomContextMenuItems(item.submenu, id) : undefined,
|
|
253
270
|
};
|
|
254
271
|
});
|
|
255
|
-
}, [focusedRowEnabled, focusedRowKey, selectedRowKeys]);
|
|
272
|
+
}, [focusedRowEnabled, focusedRowKey, selectedRowKeys, customContextMenuOnEmptyArea]);
|
|
256
273
|
// Gestisce la preparazione del menu contestuale della griglia (header e righe)
|
|
257
274
|
const onContextMenuPreparingCallback = useCallback((e) => {
|
|
258
275
|
if (e === undefined)
|
|
@@ -358,7 +375,14 @@ const TMDataGrid = React.forwardRef((props, ref) => {
|
|
|
358
375
|
// Propaga l'evento originale
|
|
359
376
|
onOptionChanged?.(e);
|
|
360
377
|
}, [onOptionChanged, onHasFiltersChange]);
|
|
361
|
-
|
|
378
|
+
// In modalità compatta il pager usa il displayMode 'compact' di DevExtreme (page numbers sostituiti da "pagina / totale"),
|
|
379
|
+
// salvo displayMode esplicito passato dal chiamante
|
|
380
|
+
const effectivePager = useMemo(() => {
|
|
381
|
+
if (!pager || !compactPager)
|
|
382
|
+
return pager;
|
|
383
|
+
return { ...pager, displayMode: pager.displayMode ?? 'compact' };
|
|
384
|
+
}, [pager, compactPager]);
|
|
385
|
+
return _jsxs(StyledDataGridContainer, { "$compactPager": compactPager, style: { width: "100%", height: "100%" }, children: [_jsx(HeaderFilterMenuGlobalStyle, {}), _jsx("div", { ref: gridContainerRef, style: { width: "100%", height: counterConfig.show ? "calc(100% - 25px)" : "100%" }, children: _jsxs(DataGrid, { ref: internalRef, id: id, className: `tm-datagrid ${hasFilters ? 'has-filters' : ''}`,
|
|
362
386
|
// main properties
|
|
363
387
|
keyExpr: keyExpr, dataSource: dataSource, selectedRowKeys: selectedRowKeys, focusedRowEnabled: focusedRowEnabled, hoverStateEnabled: hoverStateEnabled,
|
|
364
388
|
// events and callbacks
|
|
@@ -371,13 +395,241 @@ const TMDataGrid = React.forwardRef((props, ref) => {
|
|
|
371
395
|
// Temporary: iOS-specific styles to prevent default long-press menu and text selection
|
|
372
396
|
WebkitTouchCallout: 'none',
|
|
373
397
|
WebkitUserSelect: 'none'
|
|
374
|
-
}, children: [dataColumns.map((column, index) => (_jsx(Column, { ...column }, column.caption + index.toString()))), sorting && _jsx(Sorting, { ...sorting }), selection && _jsx(Selection, { ...selection }), scrolling && _jsx(Scrolling, { ...scrolling }), summary && _jsx(Summary, { ...summary }), showHeaderFilter && _jsx(HeaderFilter, { visible: true, ...headerFilter }), rowDragging && _jsx(RowDragging, { ...rowDragging }), filterRow && _jsx(FilterRow, { ...filterRow }), showFilterPanel && _jsx(FilterPanel, { visible: true }), showHeaderColumnChooser && _jsxs(ColumnChooser, { height: "400px", enabled: !showHeaderColumnChooser, mode: "select", children: [_jsx(Position, { my: "center", at: "center", of: window }), _jsx(ColumnChooserSearch, { enabled: true }), _jsx(ColumnChooserSelection, { allowSelectAll: false, selectByClick: true, recursive: true })] }), stateStoring && _jsx(StateStoring, { ...stateStoring }), groupPanel && _jsx(GroupPanel, { ...groupPanel }), _jsx(Grouping, { contextMenuEnabled: true, ...grouping }), _jsx(LoadPanel, { enabled: showLoadPanel }), _jsx(SearchPanel, { visible: showSearchPanel, searchVisibleColumnsOnly: true, highlightSearchText: true }), editing && _jsx(Editing, { ...editing }), paging && _jsx(Paging, { ...paging }),
|
|
398
|
+
}, children: [dataColumns.map((column, index) => (_jsx(Column, { ...column, alignment: column.alignment ?? 'left' }, column.caption + index.toString()))), sorting && _jsx(Sorting, { ...sorting }), selection && _jsx(Selection, { ...selection }), scrolling && _jsx(Scrolling, { ...scrolling }), summary && _jsx(Summary, { ...summary }), showHeaderFilter && _jsx(HeaderFilter, { visible: true, ...headerFilter, search: { enabled: true, ...headerFilter?.search } }), rowDragging && _jsx(RowDragging, { ...rowDragging }), filterRow && _jsx(FilterRow, { ...filterRow }), showFilterPanel && _jsx(FilterPanel, { visible: true }), showHeaderColumnChooser && _jsxs(ColumnChooser, { height: "400px", enabled: !showHeaderColumnChooser, mode: "select", children: [_jsx(Position, { my: "center", at: "center", of: window }), _jsx(ColumnChooserSearch, { enabled: true }), _jsx(ColumnChooserSelection, { allowSelectAll: false, selectByClick: true, recursive: true })] }), stateStoring && _jsx(StateStoring, { ...stateStoring }), groupPanel && _jsx(GroupPanel, { ...groupPanel }), _jsx(Grouping, { contextMenuEnabled: true, ...grouping }), _jsx(LoadPanel, { enabled: showLoadPanel }), _jsx(SearchPanel, { visible: showSearchPanel, searchVisibleColumnsOnly: true, highlightSearchText: true }), editing && _jsx(Editing, { ...editing }), paging && _jsx(Paging, { ...paging }), effectivePager && _jsx(Pager, { ...effectivePager, visible: totalRecordCount > pageSize }), masterDetail && _jsx(MasterDetail, { ...masterDetail })] }) }), counterConfig.show && _jsx("div", { style: { width: "100%", height: "25px", display: "flex", alignItems: "center", gap: "15px", backgroundColor: "#e0e0e0" }, children: _jsx(TMCounterContainer, { items: counterValues, bgColorContainer: counterConfig.bgColorContainer, bgColorItem: counterConfig.bgColorItem, hoverColorItem: counterConfig.hoverColorItem, textColorItem: counterConfig.textColorItem }) }), customContextMenuItems && (_jsx(TMContextMenu, { target: ".dx-data-row", items: processCustomContextMenuItems(customContextMenuItems, customContextMenuRowKey), externalControl: {
|
|
375
399
|
visible: customContextMenuVisible,
|
|
376
400
|
position: customContextMenuPosition,
|
|
377
401
|
onClose: () => setCustomContextMenuVisible(false)
|
|
378
402
|
} }))] });
|
|
379
403
|
});
|
|
380
404
|
export default TMDataGrid;
|
|
405
|
+
// Contenitore della griglia: in modalità compatta riduce l'ingombro verticale del pager DevExtreme
|
|
406
|
+
// (padding, altezza minima, font e dimensione dei pulsanti di pagina).
|
|
407
|
+
// Con compactPager = false non emette nessuna regola: width/height restano inline come in precedenza,
|
|
408
|
+
// così il rendering è identico a quello del div originale.
|
|
409
|
+
const StyledDataGridContainer = styled.div `
|
|
410
|
+
${({ $compactPager }) => $compactPager && css `
|
|
411
|
+
& .dx-datagrid-pager {
|
|
412
|
+
padding: 2px 4px !important;
|
|
413
|
+
min-height: 0 !important;
|
|
414
|
+
font-size: 11px;
|
|
415
|
+
}
|
|
416
|
+
|
|
417
|
+
& .dx-datagrid-pager .dx-page,
|
|
418
|
+
& .dx-datagrid-pager .dx-page-size,
|
|
419
|
+
& .dx-datagrid-pager .dx-selection,
|
|
420
|
+
& .dx-datagrid-pager .dx-navigate-button {
|
|
421
|
+
min-width: 18px !important;
|
|
422
|
+
min-height: 18px !important;
|
|
423
|
+
height: auto !important;
|
|
424
|
+
padding: 1px 5px !important;
|
|
425
|
+
line-height: 16px !important;
|
|
426
|
+
font-size: 11px;
|
|
427
|
+
}
|
|
428
|
+
|
|
429
|
+
& .dx-datagrid-pager .dx-pages,
|
|
430
|
+
& .dx-datagrid-pager .dx-page-sizes,
|
|
431
|
+
& .dx-datagrid-pager .dx-info,
|
|
432
|
+
& .dx-datagrid-pager .dx-page-index,
|
|
433
|
+
& .dx-datagrid-pager .dx-pages .dx-info {
|
|
434
|
+
font-size: 11px;
|
|
435
|
+
margin-top: 0 !important;
|
|
436
|
+
margin-bottom: 0 !important;
|
|
437
|
+
}
|
|
438
|
+
|
|
439
|
+
& .dx-datagrid-pager .dx-info {
|
|
440
|
+
margin-left: 4px !important;
|
|
441
|
+
margin-right: 4px !important;
|
|
442
|
+
}
|
|
443
|
+
|
|
444
|
+
/* Editor del numero di pagina (displayMode compact) */
|
|
445
|
+
& .dx-datagrid-pager .dx-page-index .dx-texteditor-input,
|
|
446
|
+
& .dx-datagrid-pager .dx-page-sizes .dx-texteditor-input {
|
|
447
|
+
min-height: 18px !important;
|
|
448
|
+
height: 18px !important;
|
|
449
|
+
padding: 0 4px !important;
|
|
450
|
+
font-size: 11px;
|
|
451
|
+
}
|
|
452
|
+
`}
|
|
453
|
+
`;
|
|
454
|
+
// Stile del pannello del filtro d'intestazione (ricerca, elenco valori, OK/Annulla).
|
|
455
|
+
// Il popup è in portale sul body, fuori da StyledDataGridContainer: le regole sono globali
|
|
456
|
+
// ma tutte sotto .dx-header-filter-menu, classe che DevExtreme applica solo a questo popup.
|
|
457
|
+
const HeaderFilterMenuGlobalStyle = createGlobalStyle `
|
|
458
|
+
.dx-header-filter-menu {
|
|
459
|
+
|
|
460
|
+
&.dx-popup-wrapper > .dx-overlay-content.dx-popup-normal {
|
|
461
|
+
border: 1px solid #E4E8EE;
|
|
462
|
+
border-radius: 8px;
|
|
463
|
+
box-shadow: 0 2px 6px rgba(18, 44, 76, .08), 0 12px 28px rgba(18, 44, 76, .14);
|
|
464
|
+
overflow: hidden;
|
|
465
|
+
}
|
|
466
|
+
|
|
467
|
+
&.dx-popup-wrapper .dx-popup-content {
|
|
468
|
+
padding: 10px 10px 4px;
|
|
469
|
+
}
|
|
470
|
+
|
|
471
|
+
/* Campo di ricerca: TextBox mode "search" resa da List o da TreeView (filtri gerarchici) */
|
|
472
|
+
.dx-searchbox.dx-list-search,
|
|
473
|
+
.dx-searchbox.dx-treeview-search {
|
|
474
|
+
margin-bottom: 8px;
|
|
475
|
+
border-radius: 6px;
|
|
476
|
+
border: 1px solid #CDD2D8;
|
|
477
|
+
background-color: #F4F6F9;
|
|
478
|
+
box-shadow: none;
|
|
479
|
+
transition: border-color .15s ease, background-color .15s ease, box-shadow .15s ease;
|
|
480
|
+
|
|
481
|
+
/* fluent disegna qui la barretta di focus, sostituita da bordo + alone */
|
|
482
|
+
&::before,
|
|
483
|
+
&::after {
|
|
484
|
+
display: none;
|
|
485
|
+
}
|
|
486
|
+
|
|
487
|
+
&.dx-state-hover:not(.dx-state-focused) {
|
|
488
|
+
border-color: #AEB6C1;
|
|
489
|
+
background-color: #EEF2F7;
|
|
490
|
+
}
|
|
491
|
+
|
|
492
|
+
&.dx-state-focused {
|
|
493
|
+
border-color: #2559A5;
|
|
494
|
+
background-color: #FFFFFF;
|
|
495
|
+
box-shadow: 0 0 0 2px rgba(37, 89, 165, .16);
|
|
496
|
+
}
|
|
497
|
+
|
|
498
|
+
.dx-icon-search {
|
|
499
|
+
width: 28px;
|
|
500
|
+
color: #8A929B;
|
|
501
|
+
transition: color .15s ease;
|
|
502
|
+
}
|
|
503
|
+
|
|
504
|
+
&.dx-state-focused .dx-icon-search {
|
|
505
|
+
color: #2559A5;
|
|
506
|
+
}
|
|
507
|
+
|
|
508
|
+
.dx-texteditor-input {
|
|
509
|
+
min-height: 28px;
|
|
510
|
+
padding-inline-start: 28px;
|
|
511
|
+
padding-inline-end: 8px;
|
|
512
|
+
font-size: 12px;
|
|
513
|
+
background-color: transparent;
|
|
514
|
+
}
|
|
515
|
+
|
|
516
|
+
.dx-placeholder {
|
|
517
|
+
color: #9AA3AD;
|
|
518
|
+
font-size: 12px;
|
|
519
|
+
|
|
520
|
+
&::before {
|
|
521
|
+
padding-inline-start: 28px;
|
|
522
|
+
padding-inline-end: 8px;
|
|
523
|
+
}
|
|
524
|
+
}
|
|
525
|
+
|
|
526
|
+
.dx-clear-button-area .dx-icon-clear {
|
|
527
|
+
color: #8A929B;
|
|
528
|
+
transition: color .15s ease;
|
|
529
|
+
}
|
|
530
|
+
|
|
531
|
+
.dx-clear-button-area:hover .dx-icon-clear {
|
|
532
|
+
color: #2559A5;
|
|
533
|
+
}
|
|
534
|
+
}
|
|
535
|
+
|
|
536
|
+
.dx-list-item {
|
|
537
|
+
border-radius: 4px;
|
|
538
|
+
transition: background-color .12s ease;
|
|
539
|
+
}
|
|
540
|
+
|
|
541
|
+
.dx-list-item-content {
|
|
542
|
+
padding: 4px 6px;
|
|
543
|
+
}
|
|
544
|
+
|
|
545
|
+
.dx-list-item.dx-state-hover,
|
|
546
|
+
.dx-list-item.dx-state-focused {
|
|
547
|
+
background-color: #F1F6FD;
|
|
548
|
+
color: #122C4C;
|
|
549
|
+
}
|
|
550
|
+
|
|
551
|
+
.dx-list-select-all {
|
|
552
|
+
padding: 2px 0 6px;
|
|
553
|
+
margin-bottom: 4px;
|
|
554
|
+
border-bottom: 1px solid #ECEFF3;
|
|
555
|
+
}
|
|
556
|
+
|
|
557
|
+
.dx-list-select-all-label {
|
|
558
|
+
font-weight: 600;
|
|
559
|
+
color: #122C4C;
|
|
560
|
+
}
|
|
561
|
+
|
|
562
|
+
.dx-checkbox-checked .dx-checkbox-icon,
|
|
563
|
+
.dx-checkbox-indeterminate .dx-checkbox-icon {
|
|
564
|
+
border-color: #2559A5;
|
|
565
|
+
background-color: #2559A5;
|
|
566
|
+
}
|
|
567
|
+
|
|
568
|
+
.dx-checkbox.dx-state-hover:not(.dx-checkbox-checked) .dx-checkbox-icon {
|
|
569
|
+
border-color: #2559A5;
|
|
570
|
+
}
|
|
571
|
+
|
|
572
|
+
/* il :not() lascia intatto il fade-out nativo della scrollbar */
|
|
573
|
+
.dx-scrollable-scroll:not(.dx-state-invisible) .dx-scrollable-scroll-content {
|
|
574
|
+
background-color: rgba(18, 44, 76, .28);
|
|
575
|
+
border-radius: 3px;
|
|
576
|
+
}
|
|
577
|
+
|
|
578
|
+
&.dx-popup-wrapper .dx-popup-bottom.dx-toolbar {
|
|
579
|
+
padding: 8px 10px 10px;
|
|
580
|
+
border-top: 1px solid #ECEFF3;
|
|
581
|
+
}
|
|
582
|
+
|
|
583
|
+
.dx-popup-bottom .dx-button {
|
|
584
|
+
border-radius: 5px;
|
|
585
|
+
min-width: 76px;
|
|
586
|
+
margin: 0;
|
|
587
|
+
}
|
|
588
|
+
|
|
589
|
+
.dx-popup-bottom .dx-toolbar-button + .dx-toolbar-button {
|
|
590
|
+
margin-inline-start: 6px;
|
|
591
|
+
|
|
592
|
+
.dx-button {
|
|
593
|
+
margin: 0;
|
|
594
|
+
}
|
|
595
|
+
}
|
|
596
|
+
|
|
597
|
+
/* DevExtreme aggiunge prima OK e poi Annulla: individuarli per posizione li rende indipendenti dalla lingua */
|
|
598
|
+
.dx-popup-bottom .dx-toolbar-after > .dx-toolbar-button:first-child .dx-button {
|
|
599
|
+
border-color: transparent;
|
|
600
|
+
background-color: #2559A5;
|
|
601
|
+
|
|
602
|
+
.dx-button-text {
|
|
603
|
+
color: #FFFFFF;
|
|
604
|
+
}
|
|
605
|
+
|
|
606
|
+
&.dx-state-hover {
|
|
607
|
+
background-color: #1E4A8C;
|
|
608
|
+
}
|
|
609
|
+
|
|
610
|
+
&.dx-state-active {
|
|
611
|
+
background-color: #1A3F78;
|
|
612
|
+
}
|
|
613
|
+
}
|
|
614
|
+
|
|
615
|
+
.dx-popup-bottom .dx-toolbar-after > .dx-toolbar-button + .dx-toolbar-button .dx-button {
|
|
616
|
+
border-color: transparent;
|
|
617
|
+
background-color: transparent;
|
|
618
|
+
|
|
619
|
+
.dx-button-text {
|
|
620
|
+
color: #44506B;
|
|
621
|
+
}
|
|
622
|
+
|
|
623
|
+
&.dx-state-hover {
|
|
624
|
+
background-color: #F0F3F7;
|
|
625
|
+
}
|
|
626
|
+
|
|
627
|
+
&.dx-state-active {
|
|
628
|
+
background-color: #E6EBF2;
|
|
629
|
+
}
|
|
630
|
+
}
|
|
631
|
+
}
|
|
632
|
+
`;
|
|
381
633
|
const getRecordCount = (dataSource) => {
|
|
382
634
|
if (Array.isArray(dataSource)) {
|
|
383
635
|
return dataSource.length; // For array
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import React from 'react';
|
|
1
2
|
import { IColumnProps } from 'devextreme-react/data-grid';
|
|
2
3
|
import { SearchResultDescriptor } from '@topconsultnpm/sdk-ts';
|
|
3
4
|
export type FormatOption = {
|
|
@@ -11,5 +12,5 @@ interface TMDataGridExportFormProps {
|
|
|
11
12
|
selectedRowKeys: Array<number>;
|
|
12
13
|
onCloseExportForm: () => void;
|
|
13
14
|
}
|
|
14
|
-
declare const TMDataGridExportForm: (props: TMDataGridExportFormProps) =>
|
|
15
|
+
declare const TMDataGridExportForm: (props: TMDataGridExportFormProps) => React.JSX.Element;
|
|
15
16
|
export default TMDataGridExportForm;
|