@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
|
@@ -14,12 +14,14 @@ export const TMPanelManagerProvider = (props) => {
|
|
|
14
14
|
const defaultPanelDimensionsRef = useRef(defaultDimensions);
|
|
15
15
|
// Memoize the panel hierarchy map to avoid re-generating it on every render unless `panels` change
|
|
16
16
|
const hierarchyMap = useMemo(() => generatePanelHierarchyMap(panels), [panels]);
|
|
17
|
-
// State to track the dimensions (width and height) of each panel, initialized with props
|
|
18
|
-
const [
|
|
17
|
+
// State to track the visibility and the dimensions (width and height) of each panel, initialized with props
|
|
18
|
+
const [panelLayout, setPanelLayout] = useState({ visibility: {}, dimensions: initialDimensions });
|
|
19
|
+
// Visibility of each panel, keyed by panel ID
|
|
20
|
+
const panelVisibility = panelLayout.visibility;
|
|
21
|
+
// Dimensions of each panel, keyed by panel ID
|
|
22
|
+
const panelDimensions = panelLayout.dimensions;
|
|
19
23
|
// IDs of maximized panels, including their parents if present
|
|
20
24
|
const [maximizedPanels, setMaximizedPanels] = useState([]);
|
|
21
|
-
// State to track the visibility of each panel, keyed by panel ID
|
|
22
|
-
const [panelVisibility, setPanelVisibility] = useState({});
|
|
23
25
|
// State to track visibility of toolbar buttons, keyed by panel ID
|
|
24
26
|
const [toolbarButtonsVisibility, setToolbarButtonsVisibility] = useState({});
|
|
25
27
|
// State to track disabled status of toolbar buttons, keyed by panel ID
|
|
@@ -31,94 +33,73 @@ export const TMPanelManagerProvider = (props) => {
|
|
|
31
33
|
setToolbarButtonsVisibility(visibilityMap);
|
|
32
34
|
setToolbarButtonsDisabled(disabledMap);
|
|
33
35
|
}, []);
|
|
34
|
-
// Callback to update the visibility state of a specific panel and its related hierarchy
|
|
35
|
-
const adjustPanelVisibilityAndSize = useCallback((id, isVisible,
|
|
36
|
+
// Callback to update the visibility state of a specific panel and its related hierarchy, redistributing the dimensions accordingly
|
|
37
|
+
const adjustPanelVisibilityAndSize = useCallback((id, isVisible, prevLayout) => {
|
|
36
38
|
// Clone previous visibility state to work with
|
|
37
|
-
let updatedVisibility = { ...
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
const parentsToShow = showParentRecursively(id, hierarchyMap);
|
|
44
|
-
parentsToShow.forEach(([pid, visible]) => { updatedVisibility[pid] = visible; });
|
|
45
|
-
// Show the target panel
|
|
46
|
-
updatedVisibility[id] = true;
|
|
47
|
-
// Redistribute dimensions to account for newly shown panel
|
|
48
|
-
setPanelDimensions(prev => redistributeDimensionsOnShow(id, prev, defaultPanelDimensionsRef.current, hierarchyMap, updatedVisibility));
|
|
49
|
-
}
|
|
50
|
-
else {
|
|
51
|
-
// Hide the panel
|
|
52
|
-
updatedVisibility[id] = false;
|
|
53
|
-
// Recursively hide parents
|
|
54
|
-
const parentsToHide = hideParentRecursively(id, hierarchyMap, updatedVisibility);
|
|
55
|
-
parentsToHide.forEach(([pid, visible]) => { updatedVisibility[pid] = visible; });
|
|
56
|
-
4;
|
|
57
|
-
// Redistribute dimensions after hiding
|
|
58
|
-
setPanelDimensions(prev => redistributeDimensionsOnHide(id, prev, hierarchyMap, updatedVisibility));
|
|
39
|
+
let updatedVisibility = { ...prevLayout.visibility };
|
|
40
|
+
let updatedDimensions;
|
|
41
|
+
if (isVisible) {
|
|
42
|
+
// On mobile, showing one panel hides all others first
|
|
43
|
+
if (isMobile) {
|
|
44
|
+
updatedVisibility = Object.keys(prevLayout.visibility).reduce((acc, key) => { acc[key] = false; return acc; }, {});
|
|
59
45
|
}
|
|
46
|
+
// Recursively determine and show parent panels
|
|
47
|
+
const parentsToShow = showParentRecursively(id, hierarchyMap);
|
|
48
|
+
parentsToShow.forEach(([pid, visible]) => { updatedVisibility[pid] = visible; });
|
|
49
|
+
// Show the target panel
|
|
50
|
+
updatedVisibility[id] = true;
|
|
51
|
+
// Redistribute dimensions to account for newly shown panel
|
|
52
|
+
updatedDimensions = redistributeDimensionsOnShow(id, prevLayout.dimensions, defaultPanelDimensionsRef.current, hierarchyMap, updatedVisibility);
|
|
60
53
|
}
|
|
61
54
|
else {
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
setPanelDimensions(prev => redistributeDimensionsOnShow(id, prev, defaultPanelDimensionsRef.current, hierarchyMap, updatedVisibility));
|
|
70
|
-
}
|
|
71
|
-
else {
|
|
72
|
-
// Hide the panel
|
|
73
|
-
updatedVisibility[id] = false;
|
|
74
|
-
// Recursively hide parent panels
|
|
75
|
-
const parentsToHide = hideParentRecursively(id, hierarchyMap, updatedVisibility);
|
|
76
|
-
parentsToHide.forEach(([pid, visible]) => { updatedVisibility[pid] = visible; });
|
|
77
|
-
// Adjust dimensions after hiding
|
|
78
|
-
setPanelDimensions(prev => redistributeDimensionsOnHide(id, prev, hierarchyMap, updatedVisibility));
|
|
79
|
-
}
|
|
55
|
+
// Hide the panel
|
|
56
|
+
updatedVisibility[id] = false;
|
|
57
|
+
// Recursively hide parents
|
|
58
|
+
const parentsToHide = hideParentRecursively(id, hierarchyMap, updatedVisibility);
|
|
59
|
+
parentsToHide.forEach(([pid, visible]) => { updatedVisibility[pid] = visible; });
|
|
60
|
+
// Redistribute dimensions after hiding
|
|
61
|
+
updatedDimensions = redistributeDimensionsOnHide(id, prevLayout.dimensions, hierarchyMap, updatedVisibility);
|
|
80
62
|
}
|
|
81
|
-
return updatedVisibility;
|
|
63
|
+
return { visibility: updatedVisibility, dimensions: updatedDimensions };
|
|
82
64
|
}, [hierarchyMap, isMobile]);
|
|
83
65
|
// On initial mount: initialize panel visibility using the provided `initialVisibility` config
|
|
84
66
|
// Each panel's visibility is processed through `updatePanelVisibility` to ensure hierarchy logic is applied
|
|
85
67
|
useEffect(() => {
|
|
86
68
|
if (isPersistenceEnabled) {
|
|
87
69
|
// If persistence is enabled, visibility and dimensions are already synced from persisted state, so just set them directly
|
|
88
|
-
|
|
89
|
-
setPanelDimensions(initialDimensions);
|
|
70
|
+
setPanelLayout({ visibility: initialVisibility, dimensions: initialDimensions });
|
|
90
71
|
}
|
|
91
72
|
else {
|
|
92
73
|
// If persistence is not enabled, recalculate visibility and dimensions based on the initial visibility, applying the hierarchy logic
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
74
|
+
setPanelLayout(prev => {
|
|
75
|
+
let updated = { visibility: { ...initialVisibility }, dimensions: prev.dimensions };
|
|
76
|
+
Object.entries(initialVisibility).forEach(([id, isVisible]) => {
|
|
77
|
+
updated = adjustPanelVisibilityAndSize(id, isVisible, updated);
|
|
78
|
+
});
|
|
79
|
+
return updated;
|
|
96
80
|
});
|
|
97
|
-
// Update panel visibility state with recalculated values
|
|
98
|
-
setPanelVisibility(updated);
|
|
99
81
|
}
|
|
100
82
|
}, []);
|
|
101
83
|
// On mobile devices: automatically show the initial mobile panel when layout switches to mobile
|
|
102
84
|
// This ensures the correct panel is visible by default on smaller screens
|
|
103
85
|
useEffect(() => {
|
|
104
86
|
if (isMobile) {
|
|
105
|
-
|
|
106
|
-
return adjustPanelVisibilityAndSize(initialMobilePanelId, true, prev);
|
|
107
|
-
});
|
|
87
|
+
setPanelLayout(prev => adjustPanelVisibilityAndSize(initialMobilePanelId, true, prev));
|
|
108
88
|
}
|
|
109
89
|
else {
|
|
110
90
|
if (isPersistenceEnabled) {
|
|
111
91
|
// If persistence is enabled, visibility and dimensions are already synced from persisted state, so just set them directly
|
|
112
|
-
|
|
92
|
+
setPanelLayout(prev => ({ ...prev, visibility: initialVisibility }));
|
|
113
93
|
}
|
|
114
94
|
else {
|
|
115
95
|
// If persistence is not enabled, recalculate visibility and dimensions based on the initial visibility, applying the hierarchy logic
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
96
|
+
setPanelLayout(prev => {
|
|
97
|
+
let updated = { visibility: { ...initialVisibility }, dimensions: prev.dimensions };
|
|
98
|
+
Object.entries(initialVisibility).forEach(([id, isVisible]) => {
|
|
99
|
+
updated = adjustPanelVisibilityAndSize(id, isVisible, updated);
|
|
100
|
+
});
|
|
101
|
+
return updated;
|
|
119
102
|
});
|
|
120
|
-
// Update panel visibility state with recalculated values
|
|
121
|
-
setPanelVisibility(updated);
|
|
122
103
|
}
|
|
123
104
|
}
|
|
124
105
|
}, [isMobile]);
|
|
@@ -131,9 +112,9 @@ export const TMPanelManagerProvider = (props) => {
|
|
|
131
112
|
// Update state to track which panels are maximized
|
|
132
113
|
setMaximizedPanels(toMaximize);
|
|
133
114
|
// Update panel dimensions accordingly
|
|
134
|
-
|
|
115
|
+
setPanelLayout(prev => {
|
|
135
116
|
const newDimensions = {};
|
|
136
|
-
Object.keys(prev).forEach(pid => {
|
|
117
|
+
Object.keys(prev.dimensions).forEach(pid => {
|
|
137
118
|
if (toMaximize.includes(pid)) {
|
|
138
119
|
// For maximized panels (target + parents), set width and height to 100%
|
|
139
120
|
newDimensions[pid] = { width: '100%', height: '100%' };
|
|
@@ -143,31 +124,31 @@ export const TMPanelManagerProvider = (props) => {
|
|
|
143
124
|
newDimensions[pid] = { width: '0%', height: '0%' };
|
|
144
125
|
}
|
|
145
126
|
});
|
|
146
|
-
return newDimensions;
|
|
127
|
+
return { ...prev, dimensions: newDimensions };
|
|
147
128
|
});
|
|
148
129
|
}, [hierarchyMap]);
|
|
149
130
|
// Restore all panels to their original dimensions
|
|
150
131
|
const resetMaximization = useCallback(() => {
|
|
151
132
|
// Clear the list of maximized panels to exit maximize mode
|
|
152
133
|
setMaximizedPanels([]);
|
|
153
|
-
// Clone the current visibility state of panels
|
|
154
|
-
let updatedVisibility = { ...panelVisibility };
|
|
155
134
|
// Start with the initial panel dimensions as the base for restoration
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
135
|
+
setPanelLayout(prev => {
|
|
136
|
+
const updatedVisibility = prev.visibility;
|
|
137
|
+
const nextDimensions = Object.entries(updatedVisibility).reduce((acc, [id, isVisible]) => {
|
|
138
|
+
if (isVisible) {
|
|
139
|
+
// If the panel is visible, adjust dimensions to show it properly
|
|
140
|
+
acc = redistributeDimensionsOnShow(id, acc, defaultPanelDimensionsRef.current, hierarchyMap, updatedVisibility);
|
|
141
|
+
}
|
|
142
|
+
else {
|
|
143
|
+
// If the panel is hidden, adjust dimensions to hide it
|
|
144
|
+
acc = redistributeDimensionsOnHide(id, acc, hierarchyMap, updatedVisibility);
|
|
145
|
+
}
|
|
146
|
+
return acc;
|
|
147
|
+
}, defaultPanelDimensionsRef.current);
|
|
148
|
+
// Apply the recalculated dimensions to the panel state
|
|
149
|
+
return { ...prev, dimensions: nextDimensions };
|
|
150
|
+
});
|
|
151
|
+
}, [hierarchyMap]);
|
|
171
152
|
// Toggle the maximized state of a panel by its ID
|
|
172
153
|
const toggleMaximize = useCallback((id) => {
|
|
173
154
|
if (maximizedPanels.includes(id)) {
|
|
@@ -186,17 +167,11 @@ export const TMPanelManagerProvider = (props) => {
|
|
|
186
167
|
// If it is maximized, first reset all maximized panels to their original state
|
|
187
168
|
resetMaximization();
|
|
188
169
|
// Then update the visibility of the panel, toggling its current state
|
|
189
|
-
|
|
190
|
-
const isCurrentlyVisible = prev[id];
|
|
191
|
-
return adjustPanelVisibilityAndSize(id, !isCurrentlyVisible, prev);
|
|
192
|
-
});
|
|
170
|
+
setPanelLayout(prev => adjustPanelVisibilityAndSize(id, !prev.visibility[id], prev));
|
|
193
171
|
}
|
|
194
172
|
else {
|
|
195
173
|
// If the panel is not maximized, simply toggle its visibility
|
|
196
|
-
|
|
197
|
-
const isCurrentlyVisible = prev[id];
|
|
198
|
-
return adjustPanelVisibilityAndSize(id, !isCurrentlyVisible, prev);
|
|
199
|
-
});
|
|
174
|
+
setPanelLayout(prev => adjustPanelVisibilityAndSize(id, !prev.visibility[id], prev));
|
|
200
175
|
}
|
|
201
176
|
}, [maximizedPanels, resetMaximization, adjustPanelVisibilityAndSize]);
|
|
202
177
|
// Sets the visibility of a panel by its ID to a specific value (true = show, false = hide)
|
|
@@ -206,14 +181,14 @@ export const TMPanelManagerProvider = (props) => {
|
|
|
206
181
|
resetMaximization();
|
|
207
182
|
}
|
|
208
183
|
// Then update the visibility state of the panel to the given value
|
|
209
|
-
|
|
184
|
+
setPanelLayout(prev => adjustPanelVisibilityAndSize(id, isVisible, prev));
|
|
210
185
|
}, [maximizedPanels, resetMaximization, adjustPanelVisibilityAndSize]);
|
|
211
186
|
// Sets the dimensions (width and height) of a specific panel by its ID
|
|
212
187
|
const setPanelDimensionsById = useCallback((id, width, height) => {
|
|
213
188
|
// Update the ref holding the initial dimensions
|
|
214
189
|
defaultPanelDimensionsRef.current = { ...defaultPanelDimensionsRef.current, [id]: { width, height } };
|
|
215
190
|
// Update the panel dimensions state
|
|
216
|
-
|
|
191
|
+
setPanelLayout(prev => ({ ...prev, dimensions: { ...prev.dimensions, [id]: { width, height } } }));
|
|
217
192
|
}, []);
|
|
218
193
|
// Checks if there is at least one panel currently visible
|
|
219
194
|
const hasVisiblePanels = useCallback(() => {
|
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { TMPanelDefinition } from './types';
|
|
3
|
-
export declare const StyledToolbarButton: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").
|
|
3
|
+
export declare const StyledToolbarButton: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components/dist/types").Merged<Omit<React.DetailedHTMLProps<React.ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, "style"> & {
|
|
4
|
+
style?: React.CSSProperties | import("styled-components/dist/types").CSSPropertiesWithVars | undefined;
|
|
5
|
+
}, {
|
|
4
6
|
$isActive?: boolean;
|
|
5
7
|
$isDisabled?: boolean;
|
|
6
|
-
}
|
|
7
|
-
$isActive?: boolean;
|
|
8
|
-
$isDisabled?: boolean;
|
|
9
|
-
}, never>>> & string;
|
|
8
|
+
}>> & string;
|
|
10
9
|
interface TMPanelManagerToolbarProps {
|
|
11
10
|
panels: Array<TMPanelDefinition>;
|
|
12
11
|
}
|
|
13
|
-
declare const TMPanelManagerToolbar: (props: TMPanelManagerToolbarProps) =>
|
|
12
|
+
declare const TMPanelManagerToolbar: (props: TMPanelManagerToolbarProps) => React.JSX.Element;
|
|
14
13
|
export default TMPanelManagerToolbar;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ReactNode } from 'react';
|
|
1
|
+
import React, { ReactNode } from 'react';
|
|
2
2
|
import type { TMPanelDefinition, TMPanelDimensionsMap } from './types';
|
|
3
3
|
interface TMPanelManagerWithPersistenceProps {
|
|
4
4
|
children: ReactNode;
|
|
@@ -17,5 +17,5 @@ interface TMPanelManagerWithPersistenceProps {
|
|
|
17
17
|
}>) => void;
|
|
18
18
|
persistedPanelStates?: Record<string, any>;
|
|
19
19
|
}
|
|
20
|
-
export declare const TMPanelManagerWithPersistenceProvider: (props: TMPanelManagerWithPersistenceProps) =>
|
|
20
|
+
export declare const TMPanelManagerWithPersistenceProvider: (props: TMPanelManagerWithPersistenceProps) => React.JSX.Element | null;
|
|
21
21
|
export {};
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { ReactNode } from 'react';
|
|
1
|
+
import React, { ReactNode } from 'react';
|
|
2
2
|
import { TMPanelDefinition } from './types';
|
|
3
3
|
interface TMPanelWrapperProps {
|
|
4
4
|
panel: TMPanelDefinition;
|
|
5
5
|
children: ReactNode;
|
|
6
6
|
}
|
|
7
|
-
declare const TMPanelWrapper: (props: TMPanelWrapperProps) =>
|
|
7
|
+
declare const TMPanelWrapper: (props: TMPanelWrapperProps) => React.JSX.Element | null;
|
|
8
8
|
export default TMPanelWrapper;
|
|
@@ -34,8 +34,8 @@ const TMPanelWrapper = (props) => {
|
|
|
34
34
|
// Applica 'flex' o 'none' solo se è già stato reso visibile almeno una volta
|
|
35
35
|
display: isCurrentlyVisible ? 'flex' : 'none',
|
|
36
36
|
flexDirection: 'column',
|
|
37
|
-
minWidth: '50px',
|
|
38
|
-
minHeight: '50px',
|
|
37
|
+
minWidth: panel.contentOptions?.minWidth ?? '50px',
|
|
38
|
+
minHeight: panel.contentOptions?.minHeight ?? '50px',
|
|
39
39
|
width: width,
|
|
40
40
|
height: height,
|
|
41
41
|
pointerEvents: 'auto',
|
|
@@ -97,18 +97,20 @@ export const redistributeDimensionsOnHide = (hiddenPanelId, currentDimensions, h
|
|
|
97
97
|
const hiddenWidthNum = parseFloat(hiddenDims.width);
|
|
98
98
|
const hiddenHeightNum = parseFloat(hiddenDims.height);
|
|
99
99
|
const visibleSiblings = siblings.filter(siblingId => panelVisibility[siblingId]);
|
|
100
|
-
const widthIncrement = hiddenWidthNum / visibleSiblings.length;
|
|
101
|
-
const heightIncrement = hiddenHeightNum / visibleSiblings.length;
|
|
102
100
|
let newDimensions = { ...currentDimensions };
|
|
103
|
-
visibleSiblings.
|
|
104
|
-
const
|
|
105
|
-
const
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
101
|
+
if (visibleSiblings.length > 0) {
|
|
102
|
+
const widthIncrement = hiddenWidthNum / visibleSiblings.length;
|
|
103
|
+
const heightIncrement = hiddenHeightNum / visibleSiblings.length;
|
|
104
|
+
visibleSiblings.forEach(siblingId => {
|
|
105
|
+
const siblingDims = newDimensions[siblingId] || { width: '0%', height: '0%' };
|
|
106
|
+
const siblingWidthNum = parseFloat(siblingDims.width) || 0;
|
|
107
|
+
const siblingHeightNum = parseFloat(siblingDims.height) || 0;
|
|
108
|
+
const newWidthNum = Math.min(siblingWidthNum + widthIncrement, 100);
|
|
109
|
+
const newHeightNum = Math.min(siblingHeightNum + heightIncrement, 100);
|
|
110
|
+
newDimensions[siblingId] = { width: `${newWidthNum}%`, height: `${newHeightNum}%` };
|
|
111
|
+
});
|
|
112
|
+
newDimensions[hiddenPanelId] = { width: '0%', height: '0%' };
|
|
113
|
+
}
|
|
112
114
|
// Ora controllo se il parent non ha più figli visibili e chiamo ricorsivamente
|
|
113
115
|
if (parentId) {
|
|
114
116
|
const parentInfo = hierarchyMap.get(parentId);
|
|
@@ -34,5 +34,5 @@ interface ITMPage<T> {
|
|
|
34
34
|
/** Indica il cambiamento dei contatori della lista (totali, selezionati e visibili) */
|
|
35
35
|
onCountersChanged?: (totalItemsCount: number, selectedItemsCount: number, visibleItemsCount: number) => void;
|
|
36
36
|
}
|
|
37
|
-
declare const TMPage: <T>({ id, objClass, listDisabled, lastRefreshTime, objType, listInsteadOfContent, detailInsteadOfContent, routePage, customButtons, customColumns, searchText, detailForm, detailTitlePathKeys, deps, onSelectionChanged, onCountersChanged }: ITMPage<T>) =>
|
|
37
|
+
declare const TMPage: <T>({ id, objClass, listDisabled, lastRefreshTime, objType, listInsteadOfContent, detailInsteadOfContent, routePage, customButtons, customColumns, searchText, detailForm, detailTitlePathKeys, deps, onSelectionChanged, onCountersChanged }: ITMPage<T>) => React.JSX.Element;
|
|
38
38
|
export default TMPage;
|
|
@@ -2,18 +2,22 @@ import React from 'react';
|
|
|
2
2
|
import { QueryDescriptor, ValidationItem } from '@topconsultnpm/sdk-ts';
|
|
3
3
|
import { ITMApplyFormProps, FormModes } from '../../ts';
|
|
4
4
|
import type { TMContextMenuItemProps } from '../NewComponents/ContextMenu/types';
|
|
5
|
-
export declare const StyledRowItem: import("styled-components/dist/types").IStyledComponentBase<"web",
|
|
6
|
-
|
|
5
|
+
export declare const StyledRowItem: import("styled-components/dist/types").IStyledComponentBase<"web", Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "style"> & {
|
|
6
|
+
style?: React.CSSProperties | import("styled-components/dist/types").CSSPropertiesWithVars | undefined;
|
|
7
|
+
}> & string;
|
|
8
|
+
export declare const StyledItemWrapper: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components/dist/types").Merged<Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "style"> & {
|
|
9
|
+
style?: React.CSSProperties | import("styled-components/dist/types").CSSPropertiesWithVars | undefined;
|
|
10
|
+
}, {
|
|
7
11
|
$borderRadius?: string;
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
export declare const StyledAccordionItemContent: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").
|
|
13
|
-
|
|
14
|
-
},
|
|
12
|
+
}>> & string;
|
|
13
|
+
export declare const StyledAccordionItemContainer: import("styled-components/dist/types").IStyledComponentBase<"web", Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "style"> & {
|
|
14
|
+
style?: React.CSSProperties | import("styled-components/dist/types").CSSPropertiesWithVars | undefined;
|
|
15
|
+
}> & string;
|
|
16
|
+
export declare const StyledAccordionItemContent: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components/dist/types").Merged<Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "style"> & {
|
|
17
|
+
style?: React.CSSProperties | import("styled-components/dist/types").CSSPropertiesWithVars | undefined;
|
|
18
|
+
}, {
|
|
15
19
|
$disabled?: boolean;
|
|
16
|
-
}
|
|
20
|
+
}>> & string;
|
|
17
21
|
export declare const colorValue = "rgba(224,224,224,.5)";
|
|
18
22
|
export declare const colorBrackets = "rgba(209,52,56,.3)";
|
|
19
23
|
export declare const colorOperator = "rgba(16,124,16,.3)";
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import React from 'react';
|
|
1
2
|
declare const SettingsAppearance: ({ landingPagesOptions, permissions, showConfirmPopup }: {
|
|
2
3
|
landingPagesOptions?: {
|
|
3
4
|
display: string;
|
|
@@ -11,5 +12,5 @@ declare const SettingsAppearance: ({ landingPagesOptions, permissions, showConfi
|
|
|
11
12
|
workFlowLicense: boolean;
|
|
12
13
|
};
|
|
13
14
|
showConfirmPopup?: (title: string, onConfirm: () => void) => void;
|
|
14
|
-
}) =>
|
|
15
|
+
}) => React.JSX.Element;
|
|
15
16
|
export default SettingsAppearance;
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
+
import React from 'react';
|
|
1
2
|
interface TMAboutAppProps {
|
|
2
3
|
app: boolean;
|
|
3
4
|
skdui: boolean;
|
|
4
5
|
sdk: boolean;
|
|
5
6
|
websdk: boolean;
|
|
6
7
|
}
|
|
7
|
-
export declare const TMAboutApp: (props: TMAboutAppProps) =>
|
|
8
|
+
export declare const TMAboutApp: (props: TMAboutAppProps) => React.JSX.Element;
|
|
8
9
|
export {};
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
export declare const StyledCommandsPanel: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").
|
|
2
|
+
export declare const StyledCommandsPanel: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components/dist/types").Merged<Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "style"> & {
|
|
3
|
+
style?: React.CSSProperties | import("styled-components/dist/types").CSSPropertiesWithVars | undefined;
|
|
4
|
+
}, {
|
|
3
5
|
$isMobile?: boolean;
|
|
4
|
-
}
|
|
5
|
-
$isMobile?: boolean;
|
|
6
|
-
}, never>>> & string;
|
|
6
|
+
}>> & string;
|
|
7
7
|
export interface TMCommandItemProps {
|
|
8
8
|
icon: React.ReactNode;
|
|
9
9
|
selected?: boolean;
|
|
@@ -36,8 +36,8 @@ export declare const TMSearchBar: ({ searchValue, onSearchValueChanged, maxWidth
|
|
|
36
36
|
marginLeft?: string;
|
|
37
37
|
searchValue: string;
|
|
38
38
|
onSearchValueChanged: (value: string) => void;
|
|
39
|
-
}) =>
|
|
39
|
+
}) => React.JSX.Element;
|
|
40
40
|
declare const TMHeader: React.FC<ITMHeader>;
|
|
41
41
|
export default TMHeader;
|
|
42
|
-
export declare function IconHeaderNotifications(props: Readonly<React.SVGProps<SVGSVGElement>>):
|
|
43
|
-
export declare function IconHeaderSettings(props: Readonly<React.SVGProps<SVGSVGElement>>):
|
|
42
|
+
export declare function IconHeaderNotifications(props: Readonly<React.SVGProps<SVGSVGElement>>): React.JSX.Element;
|
|
43
|
+
export declare function IconHeaderSettings(props: Readonly<React.SVGProps<SVGSVGElement>>): React.JSX.Element;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
2
|
import { useState, useEffect, useRef, useMemo } from 'react';
|
|
3
3
|
import six from '../../assets/six.png';
|
|
4
|
-
import { getAvatarColor, IconCloseOutline, IconCopy, openApps, SDKUI_Localizator } from '../../helper';
|
|
4
|
+
import { getAvatarColor, IconCloseOutline, IconCopy, IconOpenInNew, openApps, SDKUI_Localizator, WHATS_NEWS_LINK_URL } from '../../helper';
|
|
5
5
|
import styled, { keyframes } from 'styled-components';
|
|
6
6
|
import { SDK_Globals, AuthenticationModes, AppModules, UserLevels, CultureIDs } from '@topconsultnpm/sdk-ts';
|
|
7
7
|
import { TMColors } from '../../utils/theme';
|
|
@@ -10,6 +10,7 @@ import { DeviceType, useDeviceType } from '../base/TMDeviceProvider';
|
|
|
10
10
|
import { TMAboutApp } from './TMAboutApp';
|
|
11
11
|
import ShowAlert from '../base/TMAlert';
|
|
12
12
|
import TMResizableMenu from '../base/TMResizableMenu';
|
|
13
|
+
import TMTooltip from '../base/TMTooltip';
|
|
13
14
|
import it from '../../assets/italy.svg';
|
|
14
15
|
import de from '../../assets/german.svg';
|
|
15
16
|
import fr from '../../assets/france.svg';
|
|
@@ -253,10 +254,10 @@ const TMHeader = ({ customButtons = _jsx(_Fragment, {}), onMenusOpen, showSettin
|
|
|
253
254
|
e.preventDefault();
|
|
254
255
|
setMenuStatus(prev => !prev);
|
|
255
256
|
}, children: _jsx(UserAvatar, { "$bgColor": avatarColor, children: userInitials }) }), menuStatus &&
|
|
256
|
-
_jsx(TMResizableMenu, { ref: menuRef, isVisible: menuStatus, top: 60, right: 10, resizable: false, maxWidth: 300, minWidth: 300, maxHeight:
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
257
|
+
_jsx(TMResizableMenu, { ref: menuRef, isVisible: menuStatus, top: 60, right: 10, resizable: false, maxWidth: 300, minWidth: 300, maxHeight: 188, minHeight: 188, padding: 0, children: _jsxs(MenuContainer, { children: [_jsxs(UserProfileSection, { children: [_jsxs("div", { style: { display: 'flex', flexDirection: 'column', gap: 12, height: 'max-content', flex: 1, minWidth: 0 }, children: [_jsxs("div", { style: { display: 'flex', alignItems: 'center', gap: 12, height: 'max-content' }, children: [_jsx(AvatarContainer, { children: _jsx(UserAvatarLarge, { "$bgColor": avatarColor, children: userInitials }) }), _jsxs(UserInfo, { children: [_jsxs(UserNameContainer, { children: [_jsx(UserName, { children: userName }), _jsx(CultureFlag, { src: cultureFlag, alt: cultureName, title: cultureName })] }), domain && _jsx(SessionInfo, { style: { padding: 0, margin: 0 }, children: `(${domain})` })] })] }), _jsxs("div", { style: { display: 'flex', alignItems: 'center', gap: 8 }, children: [_jsxs("div", { style: { display: 'flex', flexDirection: 'column', alignItems: 'flex-start', justifyContent: 'center', gap: 5, flex: 1, minWidth: 0 }, children: [_jsx(SessionInfo, { children: endpoint }), _jsx(SessionInfo, { children: archiveId + ' (' + archiveDesc + ')' })] }), _jsxs(HeaderMenuActions, { children: [_jsx(TMTooltip, { content: SDKUI_Localizator.CopyUserInfo, children: _jsx(HeaderMenuActionIcon, { "$color": '#605e5c', onClick: (e) => {
|
|
258
|
+
e.stopPropagation();
|
|
259
|
+
copyUserInfoToClipboard(userName, cultureId, archiveId, archiveDesc, endpoint, domain);
|
|
260
|
+
}, children: _jsx(IconCopy, { fontSize: 14 }) }) }), _jsx(TMTooltip, { content: SDKUI_Localizator.ShowReleaseNotesInfo, children: _jsx(HeaderMenuActionIcon, { as: 'a', "$color": TMColors.primary, href: WHATS_NEWS_LINK_URL, target: '_blank', rel: 'noopener noreferrer', onClick: (e) => e.stopPropagation(), children: _jsx(IconOpenInNew, { fontSize: 14 }) }) })] })] })] }), _jsx(LogoutButton, { onClick: () => {
|
|
260
261
|
setMenuStatus(false);
|
|
261
262
|
onLogout && onLogout();
|
|
262
263
|
}, children: _jsx(LogoutText, { children: SDKUI_Localizator.Logout }) })] }), _jsxs(BottomActionsContainer, { children: [isTopMediaAuth && (_jsx(BottomActionButton, { onClick: () => {
|
|
@@ -468,8 +469,9 @@ const MenuContainer = styled.div `
|
|
|
468
469
|
box-shadow: 0 8px 32px rgba(0, 0, 0, 0.12);
|
|
469
470
|
`;
|
|
470
471
|
const UserProfileSection = styled.div `
|
|
472
|
+
position: relative;
|
|
471
473
|
display: flex;
|
|
472
|
-
padding: 20px;
|
|
474
|
+
padding: 16px 20px;
|
|
473
475
|
background: linear-gradient(135deg, #f8f9fa 0%, #f1f3f4 100%);
|
|
474
476
|
border-bottom: 1px solid #e1e5e9;
|
|
475
477
|
gap: 12px;
|
|
@@ -515,7 +517,7 @@ const CultureFlag = styled.img `
|
|
|
515
517
|
`;
|
|
516
518
|
const LogoutButton = styled.div `
|
|
517
519
|
position: absolute;
|
|
518
|
-
top:
|
|
520
|
+
top: 16px;
|
|
519
521
|
right: 20px;
|
|
520
522
|
cursor: pointer;
|
|
521
523
|
transition: all 0.2s ease;
|
|
@@ -546,29 +548,37 @@ const AvatarContainer = styled.div `
|
|
|
546
548
|
position: relative;
|
|
547
549
|
flex-shrink: 0;
|
|
548
550
|
`;
|
|
549
|
-
const
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
551
|
+
const HeaderMenuActions = styled.div `
|
|
552
|
+
display: flex;
|
|
553
|
+
flex-direction: column;
|
|
554
|
+
gap: 6px;
|
|
555
|
+
flex-shrink: 0;
|
|
556
|
+
`;
|
|
557
|
+
const HeaderMenuActionIcon = styled.div `
|
|
558
|
+
width: 22px;
|
|
559
|
+
height: 22px;
|
|
555
560
|
background: white;
|
|
556
|
-
border: 1px solid
|
|
561
|
+
border: 1px solid ${props => props.$color}55;
|
|
557
562
|
border-radius: 50%;
|
|
558
563
|
display: flex;
|
|
559
564
|
align-items: center;
|
|
560
565
|
justify-content: center;
|
|
561
566
|
cursor: pointer;
|
|
562
|
-
color: #605e5c;
|
|
563
567
|
transition: all 0.2s ease;
|
|
564
568
|
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
|
|
565
|
-
|
|
566
|
-
opacity: 0.6;
|
|
569
|
+
text-decoration: none;
|
|
567
570
|
|
|
568
|
-
|
|
569
|
-
|
|
571
|
+
/* "&&" alza la specificita': un eventuale "a, a:visited { color: inherit }"
|
|
572
|
+
dell'app ospite vincerebbe sulla singola classe di styled-components */
|
|
573
|
+
&&,
|
|
574
|
+
&&:visited {
|
|
575
|
+
color: ${props => props.$color};
|
|
576
|
+
}
|
|
577
|
+
|
|
578
|
+
&&:hover {
|
|
579
|
+
background: ${props => props.$color};
|
|
580
|
+
border-color: ${props => props.$color};
|
|
570
581
|
color: white;
|
|
571
|
-
opacity: 1;
|
|
572
582
|
}
|
|
573
583
|
|
|
574
584
|
&:active {
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import React from 'react';
|
|
1
2
|
import { DataListViewModes } from '@topconsultnpm/sdk-ts';
|
|
2
3
|
import { DataGridTypes } from 'devextreme-react/data-grid';
|
|
3
4
|
interface ITMDataListItemViewerProps {
|
|
@@ -7,6 +8,6 @@ interface ITMDataListItemViewerProps {
|
|
|
7
8
|
showTooltip?: boolean;
|
|
8
9
|
width?: string;
|
|
9
10
|
}
|
|
10
|
-
declare const TMDataListItemViewer: ({ dataListId, value, viewMode, showTooltip, width }: ITMDataListItemViewerProps) =>
|
|
11
|
+
declare const TMDataListItemViewer: ({ dataListId, value, viewMode, showTooltip, width }: ITMDataListItemViewerProps) => React.JSX.Element | null;
|
|
11
12
|
export default TMDataListItemViewer;
|
|
12
|
-
export declare const cellRenderDataListItem: (data: DataGridTypes.ColumnCellTemplateData, dataListId?: number, viewMode?: DataListViewModes) =>
|
|
13
|
+
export declare const cellRenderDataListItem: (data: DataGridTypes.ColumnCellTemplateData, dataListId?: number, viewMode?: DataListViewModes) => React.JSX.Element;
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
+
import React from 'react';
|
|
1
2
|
import { DataGridTypes } from 'devextreme-react/data-grid';
|
|
2
3
|
interface ITMDataUserIdItemViewerProps {
|
|
3
4
|
userId?: number;
|
|
4
5
|
showIcon?: boolean;
|
|
5
6
|
}
|
|
6
|
-
declare const TMDataUserIdItemViewer: ({ userId, showIcon }: ITMDataUserIdItemViewerProps) =>
|
|
7
|
+
declare const TMDataUserIdItemViewer: ({ userId, showIcon }: ITMDataUserIdItemViewerProps) => React.JSX.Element | null;
|
|
7
8
|
export default TMDataUserIdItemViewer;
|
|
8
|
-
export declare const cellRenderUserIdItem: (data: DataGridTypes.ColumnCellTemplateData, showIcon?: boolean) =>
|
|
9
|
+
export declare const cellRenderUserIdItem: (data: DataGridTypes.ColumnCellTemplateData, showIcon?: boolean) => React.JSX.Element;
|
|
@@ -22,7 +22,7 @@ interface ITMMetadataIcon {
|
|
|
22
22
|
isMetadataSelected?: boolean;
|
|
23
23
|
elementStyle?: React.CSSProperties;
|
|
24
24
|
}
|
|
25
|
-
export declare const TMMetadataIcon: ({ tid, md, color, layoutMode, isMetadataSelected, elementStyle }: ITMMetadataIcon) =>
|
|
25
|
+
export declare const TMMetadataIcon: ({ tid, md, color, layoutMode, isMetadataSelected, elementStyle }: ITMMetadataIcon) => React.JSX.Element | null;
|
|
26
26
|
interface ITMMetadataTooltip {
|
|
27
27
|
tid: number | undefined;
|
|
28
28
|
md: MetadataDescriptor | undefined;
|
|
@@ -31,6 +31,6 @@ interface ITMMetadataTooltip {
|
|
|
31
31
|
layoutMode?: LayoutModes;
|
|
32
32
|
}
|
|
33
33
|
export declare const TMMetadataTooltip: React.FC<ITMMetadataTooltip>;
|
|
34
|
-
export declare const cellRenderMID: (data: DataGridTypes.ColumnCellTemplateData, noneSelectionText?: string, tid?: number) =>
|
|
34
|
+
export declare const cellRenderMID: (data: DataGridTypes.ColumnCellTemplateData, noneSelectionText?: string, tid?: number) => React.JSX.Element;
|
|
35
35
|
export declare const getDisplayAlias: (dcmtTypeName: string | undefined, alias: string | undefined) => string | undefined;
|
|
36
36
|
export {};
|