@topconsultnpm/sdkui-react-beta 6.13.30 → 6.13.32
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/assets/icomoon.svg +96 -96
- package/lib/assets/italy.svg +16 -16
- package/lib/assets/topmedia-six.svg +65 -65
- package/lib/assets/topmeida-six-bianco.svg +65 -65
- package/lib/components/base/Styled.js +2 -2
- package/lib/components/base/TMPanel.d.ts +1 -0
- package/lib/components/base/TMPanel.js +8 -2
- package/lib/components/features/documents/TMDcmtForm.d.ts +3 -1
- package/lib/components/features/documents/TMDcmtForm.js +25 -20
- package/lib/components/features/documents/TMMasterDetailDcmts.js +2 -2
- package/lib/components/features/search/TMSearch.js +57 -54
- package/lib/components/features/search/TMSearchQueryPanel.js +2 -9
- package/lib/components/features/search/TMSearchResult.d.ts +1 -1
- package/lib/components/features/search/TMSearchResult.js +59 -61
- package/lib/components/features/search/TMTreeSelector.d.ts +1 -0
- package/lib/components/features/search/TMTreeSelector.js +5 -2
- package/lib/components/sidebar/TMCommandsPanel.js +1 -1
- package/lib/helper/SDKUI_Globals.js +2 -2
- package/lib/helper/queryHelper.js +9 -2
- package/lib/utils/theme.d.ts +6 -1
- package/lib/utils/theme.js +10 -1
- package/package.json +1 -1
@@ -4,7 +4,7 @@ import { SDK_Globals, DataColumnTypes, MetadataDataDomains, DataListViewModes, M
|
|
4
4
|
import styled from 'styled-components';
|
5
5
|
import { getCommandsMenuItems, getSelectedDcmtsOrFocused } from './TMSearchResultsMenuItems';
|
6
6
|
import { ContextMenu } from 'devextreme-react';
|
7
|
-
import { genUniqueId, IconShow, IconBoard, IconDcmtTypeSys, IconDetailDcmts, SDKUI_Localizator, IconTag, IconDetails, IconCommand, IconDelete, IconRefresh, IconMenuVertical, IconDownload, IconSignature, deepCompare, getDataColumnName, searchResultDescriptorToSimpleArray, IconArchive, IconActivityLog, IconStar, IconFreeSearch, IconChevronDown, searchResultToMetadataValues, SDKUI_Globals } from '../../../helper';
|
7
|
+
import { genUniqueId, IconShow, IconBoard, IconDcmtTypeSys, IconDetailDcmts, SDKUI_Localizator, IconTag, IconDetails, IconCommand, IconDelete, IconRefresh, IconMenuVertical, IconDownload, IconSignature, deepCompare, getDataColumnName, searchResultDescriptorToSimpleArray, IconArchive, IconActivityLog, IconStar, IconFreeSearch, IconChevronDown, searchResultToMetadataValues, SDKUI_Globals, IconArrowLeft } from '../../../helper';
|
8
8
|
import { useDcmtOperations } from '../../../hooks/useDcmtOperations';
|
9
9
|
import { useInputAttachmentsDialog, useInputCvtFormatDialog } from '../../../hooks/useInputDialog';
|
10
10
|
import { DcmtOperationTypes, FormModes, SearchResultContext, DownloadTypes } from '../../../ts';
|
@@ -54,7 +54,7 @@ const orderByName = (array) => {
|
|
54
54
|
} return 0; });
|
55
55
|
};
|
56
56
|
//#endregion Helper Methods
|
57
|
-
const TMSearchResult = ({ context = SearchResultContext.METADATA_SEARCH, isVisible = true, searchResults = [], showSearchResultSidebar = true, showSelector = false,
|
57
|
+
const TMSearchResult = ({ context = SearchResultContext.METADATA_SEARCH, isVisible = true, searchResults = [], showSearchResultSidebar = true, showSelector = false, onClosePreviewPanel, showDcmtForm = false, showBoard = false, showPreview = false, title, showSysMetadata = false, isClosable = false, allowFloatingBar = true, showToolbarHeader = true, onRefreshAfterAddDcmtToFavs, onRefreshSearchAsync, onSelectedTIDChanged, onUpdate, onClose, onTaskCreateRequest }) => {
|
58
58
|
const [id, setID] = useState('');
|
59
59
|
const [showApprovePopup, setShowApprovePopup] = useState(false);
|
60
60
|
const [showRejectPopup, setShowRejectPopup] = useState(false);
|
@@ -428,66 +428,64 @@ const TMSearchResult = ({ context = SearchResultContext.METADATA_SEARCH, isVisib
|
|
428
428
|
const isDetailsDisabled = isOpenBatchUpdate || !focusedItem?.DID;
|
429
429
|
const isMasterDisabled = isOpenBatchUpdate || (!focusedItem?.DID && selectedItems.length <= 0);
|
430
430
|
const isMobile = deviceType === DeviceType.MOBILE;
|
431
|
-
return (
|
432
|
-
|
433
|
-
|
434
|
-
|
435
|
-
|
436
|
-
|
437
|
-
|
438
|
-
|
439
|
-
|
440
|
-
|
441
|
-
|
442
|
-
|
443
|
-
|
444
|
-
|
445
|
-
// allowMultipleSelection={allowMultipleSelection}
|
446
|
-
, {
|
431
|
+
return (_jsxs(StyledMultiViewPanel, { "$isVisible": isVisible, children: [_jsxs(StyledMultiViewPanel, { "$isVisible": !isOpenDcmtForm && !isOpenDetails && !isOpenMaster, style: {
|
432
|
+
display: 'flex',
|
433
|
+
flexDirection: isMobile ? 'column' : 'row',
|
434
|
+
justifyContent: 'space-between',
|
435
|
+
gap: SDKUI_Globals.userSettings.themeSettings.gutters,
|
436
|
+
width: '100%',
|
437
|
+
height: '100%',
|
438
|
+
}, children: [_jsx("div", { style: { flex: 1, minWidth: 0, height: '100%', overflow: 'hidden' }, children: _jsx(TMLayoutWaitingContainer, { direction: 'vertical', showWaitPanel: showWaitPanel, showWaitPanelPrimary: showPrimary, showWaitPanelSecondary: showSecondary, waitPanelTitle: waitPanelTitle, waitPanelTextPrimary: waitPanelTextPrimary, waitPanelValuePrimary: waitPanelValuePrimary, waitPanelMaxValuePrimary: waitPanelMaxValuePrimary, waitPanelTextSecondary: waitPanelTextSecondary, waitPanelValueSecondary: waitPanelValueSecondary, waitPanelMaxValueSecondary: waitPanelMaxValueSecondary, isCancelable: true, abortController: abortController, children: _jsxs(TMSplitterLayout, { direction: 'horizontal', overflow: 'visible', separatorSize: SDKUI_Globals.userSettings.themeSettings.gutters, separatorActiveColor: 'transparent', separatorColor: 'transparent', showSeparator: (isOpenPreview || isOpenMiddlePanel() || isOpenBatchUpdate) && deviceType !== DeviceType.MOBILE, start: getPrimarySplitterStartLayout(), min: deviceType !== DeviceType.MOBILE && isOpenDcmtForm ? ['150px', '0'] : ['0', '0'], children: [_jsx(TMLayoutItem, { children: _jsxs(TMPanel, { toolbar: _jsxs(_Fragment, { children: [context !== SearchResultContext.METADATA_SEARCH && fromDTD?.templateTID === TemplateTIDs.WF_WIApprView && _jsx(WorkFlowOperationButtons, { deviceType: deviceType, onApprove: () => setShowApprovePopup(true), onReject: () => setShowRejectPopup(true), onReAssign: () => setShowReAssignPopup(true), approveDisable: disable, rejectDisable: disable, reassignDisable: disable, infoDisable: getSelectedDcmtsOrFocused(selectedItems, focusedItem).length !== 1 }), (dcmtsReturned != dcmtsFound) && _jsx("p", { style: { backgroundColor: `white`, color: TMColors.primaryColor, textAlign: 'center', padding: '1px 4px', borderRadius: '3px', display: 'flex' }, children: `${dcmtsReturned}/${dcmtsFound} restituiti` }), context === SearchResultContext.FAVORITES_AND_RECENTS &&
|
439
|
+
_jsx("div", { style: { display: 'flex', alignItems: 'center', gap: '5px' }, children: _jsx(TMButton, { btnStyle: 'icon', icon: _jsx(IconDelete, { color: 'white' }), caption: "Rimuovi da " + (selectedSearchResult?.category === "Favorites" ? '"Preferiti"' : '"Recenti"'), disabled: getSelectedDcmtsOrFocused(selectedItems, focusedItem).length <= 0, onClick: removeDcmtFromFavsOrRecents }) }), _jsx(TMButton, { btnStyle: 'icon', icon: _jsx(IconRefresh, { color: 'white' }), caption: SDKUI_Localizator.Refresh, onClick: onRefreshSearchAsync }), _jsx(IconMenuVertical, { id: `commands-header-${id}`, color: 'white', cursor: 'pointer' }), _jsx(CommandsContextMenu, { target: `#commands-header-${id}`, menuItems: getCommandsMenuItems(fromDTD, selectedItems, focusedItem, context, showFloatingBar, setShowFloatingBar, openFormHandler, downloadDcmtsAsync, runOperationAsync, onRefreshSearchAsync, refreshSelectionDataRowsAsync, onRefreshAfterAddDcmtToFavs, confirmFormat, openConfirmAttachmentsDialog, openTaskFormHandler, openDetailDcmtsFormHandler, openMasterDcmtsFormHandler, openBatchUpdateFormHandler) })] }),
|
440
|
+
// onBack={!isClosable && allowBackButton() ? onBack : undefined}
|
441
|
+
onClose: isClosable && allowBackButton() ? onBack : undefined, title: getTitleHeader(), showHeader: showToolbarHeader, children: [_jsxs(TMLayoutItem, { height: '100%', children: [_jsxs(TMSplitterLayout, { direction: 'horizontal', overflow: 'visible', separatorSize: SDKUI_Globals.userSettings.themeSettings.gutters, separatorActiveColor: 'transparent', separatorColor: 'transparent', min: ['0', '0'], showSeparator: showSelector && deviceType !== DeviceType.MOBILE, start: showSelector ? deviceType !== DeviceType.MOBILE ? ['25%', '75%'] : splitterSize : ['0%', '100%'], children: [showSelector ?
|
442
|
+
_jsx(TMLayoutItem, { children: _jsx(TMSearchResultSelector, { searchResults: currentSearchResults, onSelectionChanged: onSearchResultSelectionChanged }) })
|
443
|
+
:
|
444
|
+
_jsx(_Fragment, {}), _jsxs(TMLayoutItem, { children: [_jsx(TMSearchResultGrid
|
447
445
|
// allowMultipleSelection={allowMultipleSelection}
|
448
|
-
|
449
|
-
|
450
|
-
|
451
|
-
|
452
|
-
|
453
|
-
|
454
|
-
|
455
|
-
|
456
|
-
|
457
|
-
|
458
|
-
|
459
|
-
|
460
|
-
|
461
|
-
|
462
|
-
|
463
|
-
|
464
|
-
|
465
|
-
|
466
|
-
|
467
|
-
|
468
|
-
|
469
|
-
|
470
|
-
|
471
|
-
|
472
|
-
|
473
|
-
|
474
|
-
|
475
|
-
|
476
|
-
|
477
|
-
|
478
|
-
|
479
|
-
|
480
|
-
|
481
|
-
|
482
|
-
|
483
|
-
|
484
|
-
|
485
|
-
|
486
|
-
|
487
|
-
|
488
|
-
|
489
|
-
|
490
|
-
_jsx(
|
446
|
+
, {
|
447
|
+
// allowMultipleSelection={allowMultipleSelection}
|
448
|
+
inputFocusedItem: focusedItem, inputSelectedItems: selectedItems, searchResult: searchResults.length > 1 ? selectedSearchResult : searchResults[0], lastUpdateSearchTime: lastUpdateSearchTime, onDblClick: () => openFormHandler(LayoutModes.Update), onContextMenuPreparing: onContextMenuPreparing, onSelectionChanged: (items) => { setSelectedItems(items); }, onVisibleItemChanged: setVisibleItems, onFocusedItemChanged: setFocusedItem }), allowFloatingBar && showFloatingBar && deviceType !== DeviceType.MOBILE &&
|
449
|
+
_jsxs(TMFloatingToolbar, { backgroundColor: TMColors.primaryColor, initialLeft: '10px', initialTop: 'calc(100% - 75px)', children: [fromDTD?.perm?.canRetrieveFile === AccessLevels.Yes && _jsx(TMButton, { btnStyle: 'icon', caption: "Download file", disabled: fromDTD?.perm?.canRetrieveFile !== AccessLevels.Yes, icon: _jsx(IconDownload, { color: 'white' }), onClick: () => { downloadDcmtsAsync(getSelectedDcmtsOrFocused(selectedItems, focusedItem), DownloadTypes.Dcmt); } }), _jsx(TMButton, { btnStyle: 'icon', caption: 'Firma e marca', icon: _jsx(IconSignature, { color: 'white' }), onClick: () => { ShowAlert({ message: "TODO Firma e marca ", mode: 'info', title: `${"TODO"}`, duration: 3000 }); } }), _jsx(IconMenuVertical, { id: `commands-floating-${id}`, color: 'white', cursor: 'pointer' }), _jsx(CommandsContextMenu, { target: `#commands-floating-${id}`, menuItems: getCommandsMenuItems(fromDTD, selectedItems, focusedItem, context, showFloatingBar, setShowFloatingBar, openFormHandler, downloadDcmtsAsync, runOperationAsync, onRefreshSearchAsync, refreshSelectionDataRowsAsync, onRefreshAfterAddDcmtToFavs, confirmFormat, openConfirmAttachmentsDialog, openTaskFormHandler, openDetailDcmtsFormHandler, openMasterDcmtsFormHandler, openBatchUpdateFormHandler) })] })] })] }), showApprovePopup && _jsx(WorkFlowApproveRejectPopUp, { deviceType: deviceType, onUpdate: onUpdate, selectedItems: getSelectedDcmtsOrFocused(selectedItems, focusedItem), op: 0, onClose: () => setShowApprovePopup(false) }), showRejectPopup && _jsx(WorkFlowApproveRejectPopUp, { deviceType: deviceType, onUpdate: onUpdate, selectedItems: getSelectedDcmtsOrFocused(selectedItems, focusedItem), op: 1, onClose: () => setShowRejectPopup(false) }), showReAssignPopup && _jsx(WorkFlowReAssignPopUp, { deviceType: deviceType, onUpdate: onUpdate, selectedItems: getSelectedDcmtsOrFocused(selectedItems, focusedItem), onClose: () => setShowReAssignPopup(false) })] }), _jsx(ConfirmFormatDialog, {}), _jsx(ConfirmAttachmentsDialog, {})] }) }), isOpenBatchUpdate ?
|
450
|
+
_jsx(StyledModalContainer, { style: { backgroundColor: 'white' }, children: _jsx(TMBatchUpdateForm, { inputDcmts: getSelectionDcmtInfo(), TID: focusedItem ? focusedItem?.TID : selectedItems[0]?.TID, DID: focusedItem ? focusedItem?.DID : selectedItems[0]?.DID, onBack: () => setIsOpenBatchUpdate(false), onSavedCallbackAsync: async () => {
|
451
|
+
setIsOpenBatchUpdate(false);
|
452
|
+
setIsModifiedBatchUpdate(false);
|
453
|
+
await refreshSelectionDataRowsAsync();
|
454
|
+
}, onStatusChanged: (isModified) => { setIsModifiedBatchUpdate(isModified); } }) })
|
455
|
+
:
|
456
|
+
isOpenPreview || isOpenMiddlePanel()
|
457
|
+
? _jsx(TMLayoutItem, { children: _jsxs(TMSplitterLayout, { direction: 'horizontal', overflow: 'visible', separatorSize: SDKUI_Globals.userSettings.themeSettings.gutters, separatorActiveColor: 'transparent', separatorColor: 'transparent', showSeparator: deviceType !== DeviceType.MOBILE && (isOpenPreview && isOpenMiddlePanel()), start: getSecondarySplitterStartLayout(), min: ['0', '0'], children: [isOpenMiddlePanel()
|
458
|
+
? _jsx(TMLayoutItem, { children: _jsx(TMPanel, { padding: '0',
|
459
|
+
// color={TMColors.primaryColor}
|
460
|
+
// backgroundColor={`${TMColors.primaryColor}25`}
|
461
|
+
title: titleText(), toolbar: middlePanelToolbar, onClose: () => closeMiddlePanel(), children: (!focusedItem?.DID)
|
462
|
+
?
|
463
|
+
_jsx(TMNothingToShow, { text: 'Nessun documento selezionato.', secondText: notAvalableMsg, icon: notAvalableIcon })
|
464
|
+
:
|
465
|
+
_jsxs(StyledContainer, { children: [isOpenBoard && _jsx(TMDcmtBlog, { tid: focusedItem?.TID, did: focusedItem?.DID }), isOpenSysMetadata &&
|
466
|
+
_jsx(TMMetadataValues, { layoutMode: LayoutModes.Update, openChooserBySingleClick: !isOpenDistinctValues, TID: focusedItem?.TID, isReadOnly: true, deviceType: deviceType, metadataValues: currentMetadataValues.filter(o => (o.mid != undefined && o.mid <= 100)), metadataValuesOrig: currentMetadataValues.filter(o => (o.mid != undefined && o.mid <= 100)), validationItems: [] })] }) }) })
|
467
|
+
: _jsx(_Fragment, {}), isOpenPreview
|
468
|
+
? _jsx(TMLayoutItem, { children: _jsx(TMDcmtPreview, { onClose: () => { setIsOpenPreview(false); onClosePreviewPanel?.(); }, dcmtData: currentDcmt, canNext: canNavigateHandler('next'), canPrev: canNavigateHandler('prev'), onNext: () => onNavigateHandler('next'), onPrev: () => onNavigateHandler('prev') }) })
|
469
|
+
: _jsx(_Fragment, {})] }) })
|
470
|
+
: _jsx(_Fragment, {})] }) }) }), showSearchResultSidebar && _jsx(TMCommandsPanel, { isMobile: deviceType === DeviceType.MOBILE, items: [
|
471
|
+
{ icon: _jsx(IconArrowLeft, {}), onClick: !isClosable && allowBackButton() ? onBack : undefined },
|
472
|
+
{ icon: _jsx(IconShow, {}), selected: isOpenPreview, disabled: isPreviewDisabled, onClick: () => { if (!isPreviewDisabled)
|
473
|
+
setIsOpenPreview(!isOpenPreview); } },
|
474
|
+
{ icon: _jsx(IconBoard, {}), selected: isOpenBoard, disabled: isBoardDisabled, onClick: () => { if (!isBoardDisabled) {
|
475
|
+
closeMiddlePanel();
|
476
|
+
setIsOpenBoard(!isOpenBoard);
|
477
|
+
} } },
|
478
|
+
{ icon: _jsx(IconDcmtTypeSys, {}), selected: isOpenSysMetadata, disabled: isSysMetadataDisabled, onClick: () => { if (!isSysMetadataDisabled) {
|
479
|
+
closeMiddlePanel();
|
480
|
+
setIsOpenSysMetadata(!isOpenSysMetadata);
|
481
|
+
} } },
|
482
|
+
...(currentTIDHasMasterRelations ? [{ icon: _jsx(IconDetailDcmts, {}), selected: isOpenMaster, disabled: isMasterDisabled, onClick: () => { if (!isMasterDisabled)
|
483
|
+
setIsOpenMaster(!isOpenMaster); } }] : []),
|
484
|
+
...(currentTIDHasDetailRelations ? [{ icon: _jsx(IconDetailDcmts, { transform: 'scale(-1, 1)' }), selected: isOpenDetails, disabled: isDetailsDisabled, onClick: () => { if (!isDetailsDisabled)
|
485
|
+
setIsOpenDetails(!isOpenDetails); } }] : []),
|
486
|
+
] })] }), _jsx(StyledMultiViewPanel, { "$isVisible": isOpenDetails, children: isOpenDetails && _jsx(TMMasterDetailDcmts, { deviceType: deviceType, isForMaster: false, inputDcmts: getSelectionDcmtInfo(), allowNavigation: focusedItem && selectedItems.length <= 0, canNext: canNavigateHandler('next'), canPrev: canNavigateHandler('prev'), onNext: () => onNavigateHandler('next'), onPrev: () => onNavigateHandler('prev'), onBack: () => setIsOpenDetails(false) }) }), _jsxs(StyledMultiViewPanel, { "$isVisible": isOpenMaster, children: [isOpenMaster && _jsx(TMMasterDetailDcmts, { deviceType: deviceType, inputDcmts: getSelectionDcmtInfo(), isForMaster: true, allowNavigation: focusedItem && selectedItems.length <= 0, canNext: canNavigateHandler('next'), canPrev: canNavigateHandler('prev'), onNext: () => onNavigateHandler('next'), onPrev: () => onNavigateHandler('prev'), onBack: () => setIsOpenMaster(false), appendMasterDcmts: handleAddItem }), secondaryMasterDcmts.length > 0 && secondaryMasterDcmts.map((dcmt, index) => {
|
487
|
+
return (_jsx(StyledModalContainer, { style: { backgroundColor: 'white' }, children: _jsx(TMMasterDetailDcmts, { deviceType: deviceType, inputDcmts: [dcmt], isForMaster: true, allowNavigation: false, onBack: () => handleRemoveItem(dcmt.TID, dcmt.DID), appendMasterDcmts: handleAddItem }) }, `${index}-${dcmt.DID}`));
|
488
|
+
})] }), _jsx(StyledMultiViewPanel, { "$isVisible": isOpenDcmtForm, children: isOpenDcmtForm && _jsx(TMDcmtForm, { TID: focusedItem?.TID, DID: focusedItem?.DID, layoutMode: dcmtFormLayoutMode, showPreview: deviceType !== DeviceType.MOBILE, count: visibleItems.length, itemIndex: visibleItems.findIndex(o => o.rowIndex === focusedItem?.rowIndex) + 1, canNext: canNavigateHandler('next'), canPrev: canNavigateHandler('prev'), onNext: () => onNavigateHandler('next'), onPrev: () => onNavigateHandler('prev'), onClose: () => { setIsOpenDcmtForm(false); }, onSavedAsyncCallback: async (tid, did) => { await refreshFocusedDataRowAsync(tid, did, true); } }) })] }));
|
491
489
|
};
|
492
490
|
export default TMSearchResult;
|
493
491
|
const renderDcmtIcon = (cellData) => _jsx(TMDcmtIcon, { fileExtension: cellData.data.FILEEXT, fileCount: cellData.data.FILECOUNT, isLexProt: cellData.data.IsLexProt, isMail: cellData.data.ISMAIL, isShared: cellData.data.ISSHARED, isSigned: cellData.data.ISSIGNED });
|
@@ -2,6 +2,7 @@ import React from 'react';
|
|
2
2
|
import { LayoutModes } from '@topconsultnpm/sdk-ts-beta';
|
3
3
|
interface ITMTreeSelectorProps {
|
4
4
|
layoutMode?: LayoutModes;
|
5
|
+
isVisible?: boolean;
|
5
6
|
onSelectedTIDChanged?: (tid: number | undefined, treeId?: number | undefined) => void;
|
6
7
|
onClose?: () => void;
|
7
8
|
}
|
@@ -11,7 +11,10 @@ import TMLayoutContainer, { TMLayoutItem } from '../../base/TMLayout';
|
|
11
11
|
import TMPanel from '../../base/TMPanel';
|
12
12
|
import TMTidViewer from '../../viewers/TMTidViewer';
|
13
13
|
import { TMColors } from '../../../utils/theme';
|
14
|
-
|
14
|
+
import { useDeviceType, DeviceType } from '../../base/TMDeviceProvider';
|
15
|
+
const TMTreeSelector = ({ layoutMode = LayoutModes.Update, isVisible, onSelectedTIDChanged, onClose }) => {
|
16
|
+
const deviceType = useDeviceType();
|
17
|
+
const isMobile = deviceType === DeviceType.MOBILE;
|
15
18
|
const [trees, setTrees] = useState([]);
|
16
19
|
const [treeItems, setTreeItems] = useState([]);
|
17
20
|
const [selectedTreeId, setSelectedTreeId] = useState(0);
|
@@ -92,7 +95,7 @@ const TMTreeSelector = ({ layoutMode = LayoutModes.Update, onSelectedTIDChanged,
|
|
92
95
|
}
|
93
96
|
;
|
94
97
|
}, []);
|
95
|
-
return (_jsx(TMPanel, { title: SDK_Localizator.Trees, totalItems: trees.length, onClose: onClose, toolbar: _jsx(TMButton, { btnStyle: 'icon', caption: defaultTreeId == selectedTreeId ? SDKUI_Localizator.TreeRemoveDefault : SDKUI_Localizator.SetAsDefault, icon: defaultTreeId == selectedTreeId ? _jsx(IconStarRemove, { color: 'rgb(243, 114, 92)' }) : _jsx(IconStar, { color: 'rgb(248, 215, 117)' }), onClick: () => {
|
98
|
+
return (_jsx(TMPanel, { title: SDK_Localizator.Trees, isVisible: isVisible, totalItems: trees.length, onClose: isMobile ? undefined : onClose, allowMaximize: !isMobile, toolbar: _jsx(TMButton, { btnStyle: 'icon', caption: defaultTreeId == selectedTreeId ? SDKUI_Localizator.TreeRemoveDefault : SDKUI_Localizator.SetAsDefault, icon: defaultTreeId == selectedTreeId ? _jsx(IconStarRemove, { color: 'rgb(243, 114, 92)' }) : _jsx(IconStar, { color: 'rgb(248, 215, 117)' }), onClick: () => {
|
96
99
|
if (defaultTreeId == selectedTreeId) {
|
97
100
|
SDKUI_Globals.userSettings.searchSettings.defaultTree = -1;
|
98
101
|
setDefaultTreeId(-1);
|
@@ -7,7 +7,7 @@ export const StyledCommandsPanel = styled.div `
|
|
7
7
|
width: ${({ $isMobile }) => ($isMobile ? '100%' : '50px')};
|
8
8
|
height: ${({ $isMobile }) => ($isMobile ? '50px' : 'max-content')};
|
9
9
|
background: transparent linear-gradient(90deg, #CCE0F4 0%, #7EC1E7 14%, #39A6DB 28%, #1E9CD7 35%, #0075BE 78%, #005B97 99%) 0% 0% no-repeat padding-box;
|
10
|
-
border-radius:
|
10
|
+
border-radius: 10px;
|
11
11
|
padding: 10px;
|
12
12
|
gap: 10px;
|
13
13
|
`;
|
@@ -1,5 +1,5 @@
|
|
1
1
|
import { InvoiceRetrieveFormats, LocalStorageService, OrderRetrieveFormats } from "@topconsultnpm/sdk-ts-beta";
|
2
|
-
import { FontSize } from "../utils/theme";
|
2
|
+
import { FontSize, Gutters } from "../utils/theme";
|
3
3
|
export const dcmtsFileCacheDownload = new Map();
|
4
4
|
export const dcmtsFileCachePreview = new Map();
|
5
5
|
export const CACHE_SIZE_LIMIT = 10;
|
@@ -63,7 +63,7 @@ export class ThemeSettings {
|
|
63
63
|
constructor() {
|
64
64
|
this.fontSize = FontSize.defaultFontSizeInPixel;
|
65
65
|
this.gridSettings = new DataGridSettings();
|
66
|
-
this.gutters =
|
66
|
+
this.gutters = Gutters.getGutters();
|
67
67
|
// Automatically update the CSS variable for font size
|
68
68
|
document.documentElement.style.setProperty('--base-font-size', this.fontSize);
|
69
69
|
}
|
@@ -1,4 +1,4 @@
|
|
1
|
-
import { AccessLevels, MetadataDataDomains, DcmtTypeListCacheService, SystemMIDsAsNumber, MetadataDataTypes, QueryDescriptor, QueryFunctions, SelectItem, SelectItemVisibilities, FromItem, LayoutModes, QueryOperators, SavedQueryDescriptor, SearchEngine, WhereItem } from '@topconsultnpm/sdk-ts-beta';
|
1
|
+
import { AccessLevels, MetadataDataDomains, DcmtTypeListCacheService, SystemMIDsAsNumber, MetadataDataTypes, QueryDescriptor, QueryFunctions, SelectItem, SelectItemVisibilities, FromItem, LayoutModes, QueryOperators, SavedQueryDescriptor, SearchEngine, WhereItem, OrderByItem } from '@topconsultnpm/sdk-ts-beta';
|
2
2
|
import { DateDisplayTypes, Globalization } from './Globalization';
|
3
3
|
import { MetadataValueDescriptorEx } from '../ts';
|
4
4
|
export const getTIDsByQd = (qd) => {
|
@@ -78,11 +78,18 @@ export const prepareQdForSearchAsync = async (qdInput) => {
|
|
78
78
|
addHiddenSelectItem(qd.select, fromTID, SystemMIDsAsNumber.IsMail);
|
79
79
|
addHiddenSelectItem(qd.select, fromTID, SystemMIDsAsNumber.IsSigned);
|
80
80
|
addHiddenSelectItem(qd.select, fromTID, SystemMIDsAsNumber.IsShared);
|
81
|
+
if (qd.orderBy && qd.orderBy.length <= 0) {
|
82
|
+
let obi = new OrderByItem();
|
83
|
+
obi.tid = fromTID;
|
84
|
+
obi.mid = SystemMIDsAsNumber.DID;
|
85
|
+
obi.asc = false;
|
86
|
+
qd.orderBy.push(obi);
|
87
|
+
}
|
81
88
|
}
|
82
89
|
// Alcuni lavori di ORCHESTRATOR non definiscono i SelectItem (per esempio, CheckSequence, DcmtPrinter, ...).
|
83
90
|
// In tal caso il risultato della ricerca risultava senza colonne (metadati).
|
84
91
|
// In questa condizione si è deciso di visualizzare, di default, i primi 10 metadati.
|
85
|
-
if (qd.select.filter(o => o.mid > 100).length <= 0) {
|
92
|
+
if (!qdWithAggrFunctions && qd.select.filter(o => o.mid > 100).length <= 0) {
|
86
93
|
let dtd = await DcmtTypeListCacheService.GetAsync(fromTID, true);
|
87
94
|
if (dtd?.metadata) {
|
88
95
|
for (const md of dtd.metadata.filter(o => o.isSystem != 1 && o.perm?.canView != AccessLevels.No).slice(0, 10)) {
|
package/lib/utils/theme.d.ts
CHANGED
@@ -57,4 +57,9 @@ declare class TMMargin {
|
|
57
57
|
static smallMargin: string;
|
58
58
|
static largeMargin: string;
|
59
59
|
}
|
60
|
-
|
60
|
+
declare class Gutters {
|
61
|
+
static readonly defaultDesktop: number;
|
62
|
+
static readonly defaultMobile: number;
|
63
|
+
static getGutters(): number;
|
64
|
+
}
|
65
|
+
export { Colors, TMColors, FontSize, TMMargin, Gutters };
|
package/lib/utils/theme.js
CHANGED
@@ -56,4 +56,13 @@ class TMMargin {
|
|
56
56
|
TMMargin.defultMargin = '5px';
|
57
57
|
TMMargin.smallMargin = '3px';
|
58
58
|
TMMargin.largeMargin = '10px';
|
59
|
-
|
59
|
+
class Gutters {
|
60
|
+
static getGutters() {
|
61
|
+
// Detect mobile device (basic check)
|
62
|
+
const isMobile = /Mobi|Android|iPhone|iPad|iPod/i.test(navigator.userAgent);
|
63
|
+
return isMobile ? this.defaultMobile : this.defaultDesktop;
|
64
|
+
}
|
65
|
+
}
|
66
|
+
Gutters.defaultDesktop = 20;
|
67
|
+
Gutters.defaultMobile = 5;
|
68
|
+
export { Colors, TMColors, FontSize, TMMargin, Gutters };
|