@topconsultnpm/sdkui-react-beta 6.13.86 → 6.13.88
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.
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
|
|
1
|
+
import { DcmtInfo, DownloadModes, DownloadTypes } from '../../../ts';
|
|
2
|
+
import { FileDescriptor } from '@topconsultnpm/sdk-ts-beta';
|
|
2
3
|
interface ITMDcmtIconProps {
|
|
3
4
|
fileExtension: string | undefined;
|
|
4
5
|
fileCount: number | undefined;
|
|
@@ -9,6 +10,7 @@ interface ITMDcmtIconProps {
|
|
|
9
10
|
tid?: number;
|
|
10
11
|
did?: number;
|
|
11
12
|
downloadMode?: DownloadModes;
|
|
13
|
+
onDownloadDcmtsAsync?: (inputDcmts: DcmtInfo[] | undefined, downloadType: DownloadTypes, downloadMode: DownloadModes, confirmAttachments?: (list: FileDescriptor[]) => Promise<string[] | undefined>) => Promise<void>;
|
|
12
14
|
}
|
|
13
|
-
declare const TMDcmtIcon: ({ fileExtension, fileCount, isLexProt, isSigned, isMail, isShared, tid, did, downloadMode }: ITMDcmtIconProps) => import("react/jsx-runtime").JSX.Element;
|
|
15
|
+
declare const TMDcmtIcon: ({ fileExtension, fileCount, isLexProt, isSigned, isMail, isShared, tid, did, downloadMode, onDownloadDcmtsAsync }: ITMDcmtIconProps) => import("react/jsx-runtime").JSX.Element;
|
|
14
16
|
export default TMDcmtIcon;
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useMemo } from 'react';
|
|
2
3
|
import styled from 'styled-components';
|
|
3
4
|
import { getFileIcon } from '../../../helper';
|
|
4
5
|
import TMTooltip from '../../base/TMTooltip';
|
|
5
|
-
import { useDcmtOperations } from '../../../hooks/useDcmtOperations';
|
|
6
6
|
import { DownloadTypes } from '../../../ts';
|
|
7
|
+
import { DeviceType, useDeviceType } from '../../base/TMDeviceProvider';
|
|
7
8
|
const StyledCellRenderDcmtIcon = styled.div `
|
|
8
9
|
display: flex;
|
|
9
10
|
flex-direction: row;
|
|
@@ -12,18 +13,25 @@ const StyledCellRenderDcmtIcon = styled.div `
|
|
|
12
13
|
overflow: visible;
|
|
13
14
|
position: relative;
|
|
14
15
|
`;
|
|
15
|
-
const TMDcmtIcon = ({ fileExtension, fileCount, isLexProt, isSigned, isMail, isShared, tid, did, downloadMode = "none" }) => {
|
|
16
|
-
const
|
|
16
|
+
const TMDcmtIcon = ({ fileExtension, fileCount, isLexProt, isSigned, isMail, isShared, tid, did, downloadMode = "none", onDownloadDcmtsAsync }) => {
|
|
17
|
+
const deviceType = useDeviceType();
|
|
18
|
+
let isMobile = useMemo(() => { return deviceType === DeviceType.MOBILE; }, [deviceType]);
|
|
19
|
+
const isDownloadable = downloadMode !== "none" &&
|
|
20
|
+
tid !== undefined &&
|
|
21
|
+
did !== undefined &&
|
|
22
|
+
onDownloadDcmtsAsync !== undefined;
|
|
17
23
|
const handleClick = async (e) => {
|
|
18
|
-
if (
|
|
19
|
-
tid !== undefined &&
|
|
20
|
-
did !== undefined) {
|
|
24
|
+
if (isDownloadable) {
|
|
21
25
|
e.stopPropagation();
|
|
22
26
|
let dcmt = [{ TID: tid, DID: did, FILEEXT: fileExtension }];
|
|
23
|
-
await
|
|
27
|
+
await onDownloadDcmtsAsync?.(dcmt, DownloadTypes.Dcmt, downloadMode);
|
|
24
28
|
}
|
|
25
29
|
};
|
|
26
|
-
return (_jsxs(StyledCellRenderDcmtIcon, {
|
|
30
|
+
return (_jsxs(StyledCellRenderDcmtIcon, { className: "tm-dcmt-icon", style: {
|
|
31
|
+
cursor: isMobile
|
|
32
|
+
? (isDownloadable ? "pointer" : undefined)
|
|
33
|
+
: (isDownloadable ? "default" : undefined)
|
|
34
|
+
}, onClick: isMobile ? handleClick : undefined, onDoubleClick: !isMobile ? handleClick : undefined, children: [getFileIcon(isMail == 2 ? "PEC" : fileExtension, fileCount), isLexProt == 1 && _jsx("div", { style: { position: 'absolute', left: '-7px', top: isShared ? undefined : '2px' }, children: _jsx(TMTooltip, { content: "Protezione LEX", children: _jsx(IconLexProtLock, { color: 'blue', fontSize: 13 }) }) }), isShared == 1 && _jsx("div", { style: { position: 'absolute', top: '-7px', left: '-5px' }, children: _jsx(TMTooltip, { content: "Documento condiviso", children: _jsx(IconShared, { fontSize: 16 }) }) }), isSigned == 1 && _jsx("div", { style: { position: 'absolute', bottom: '-4px', right: '-7px' }, children: _jsx(TMTooltip, { content: "Documento firmato", children: _jsx(IconSignature, { fontSize: 28 }) }) })] }));
|
|
27
35
|
};
|
|
28
36
|
export default TMDcmtIcon;
|
|
29
37
|
function IconLexProtLock(props) {
|
|
@@ -339,11 +339,7 @@ const TMSearchResult = ({ context = SearchResultContext.METADATA_SEARCH, isVisib
|
|
|
339
339
|
_jsxs(_Fragment, { 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 ?
|
|
340
340
|
_jsx(TMLayoutItem, { children: _jsx(TMSearchResultSelector, { searchResults: currentSearchResults, onSelectionChanged: onSearchResultSelectionChanged }) })
|
|
341
341
|
:
|
|
342
|
-
_jsx(_Fragment, {}), _jsxs(TMLayoutItem, { children: [_jsx(TMSearchResultGrid
|
|
343
|
-
// allowMultipleSelection={allowMultipleSelection}
|
|
344
|
-
, {
|
|
345
|
-
// allowMultipleSelection={allowMultipleSelection}
|
|
346
|
-
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 &&
|
|
342
|
+
_jsx(_Fragment, {}), _jsxs(TMLayoutItem, { children: [_jsx(TMSearchResultGrid, { 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, onDownloadDcmtsAsync: downloadDcmtsAsync }), allowFloatingBar && showFloatingBar && deviceType !== DeviceType.MOBILE &&
|
|
347
343
|
_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 || !focusedItem?.DID, icon: _jsx(IconDownload, { color: 'white' }), onClick: () => { downloadDcmtsAsync(getSelectedDcmtsOrFocused(selectedItems, focusedItem), DownloadTypes.Dcmt, "download"); } }), allowRelations && _jsx(TMButton, { btnStyle: 'icon', disabled: !currentTIDHasDetailRelations || !focusedItem?.DID, icon: _jsx(IconDetailDcmts, { color: 'white' }), caption: SDKUI_Localizator.DcmtsDetail, onClick: () => setIsOpenDetails(true) }), allowRelations && _jsx(TMButton, { btnStyle: 'icon', disabled: !currentTIDHasMasterRelations || !focusedItem?.DID, icon: _jsx(IconDetailDcmts, { color: 'white', transform: 'scale(-1, 1)' }), caption: SDKUI_Localizator.DcmtsMaster, onClick: () => setIsOpenMaster(true) }), _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) }), isOpenBatchUpdate && _jsx(TMBatchUpdateForm, { isModal: true, titleModal: SDKUI_Localizator.BatchUpdate, inputDcmts: getSelectionDcmtInfo(), TID: focusedItem ? focusedItem?.TID : selectedItems[0]?.TID, DID: focusedItem ? focusedItem?.DID : selectedItems[0]?.DID, onBack: () => {
|
|
348
344
|
setIsOpenBatchUpdate(false);
|
|
349
345
|
}, onSavedCallbackAsync: async () => {
|
|
@@ -437,8 +433,8 @@ const TMSearchResult = ({ context = SearchResultContext.METADATA_SEARCH, isVisib
|
|
|
437
433
|
})] }), _jsx(StyledMultiViewPanel, { "$isVisible": isOpenDcmtForm, children: isOpenDcmtForm && _jsx(TMDcmtForm, { isModal: openDcmtFormAsModal, titleModal: fromDTD?.name ?? '', 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); } }) })] }));
|
|
438
434
|
};
|
|
439
435
|
export default TMSearchResult;
|
|
440
|
-
const renderDcmtIcon = (cellData) => _jsx(TMDcmtIcon, { tid: cellData.data.TID, did: cellData.data.DID, fileExtension: cellData.data.FILEEXT, fileCount: cellData.data.FILECOUNT, isLexProt: cellData.data.IsLexProt, isMail: cellData.data.ISMAIL, isShared: cellData.data.ISSHARED, isSigned: cellData.data.ISSIGNED, downloadMode: 'openInNewWindow' });
|
|
441
|
-
const TMSearchResultGrid = ({ inputFocusedItem, allowMultipleSelection = true, onFocusedItemChanged, onVisibleItemChanged, inputSelectedItems = [], lastUpdateSearchTime, searchResult, onContextMenuPreparing, onSelectionChanged, onDblClick }) => {
|
|
436
|
+
const renderDcmtIcon = (cellData, onDownloadDcmtsAsync) => _jsx(TMDcmtIcon, { tid: cellData.data.TID, did: cellData.data.DID, fileExtension: cellData.data.FILEEXT, fileCount: cellData.data.FILECOUNT, isLexProt: cellData.data.IsLexProt, isMail: cellData.data.ISMAIL, isShared: cellData.data.ISSHARED, isSigned: cellData.data.ISSIGNED, downloadMode: 'openInNewWindow', onDownloadDcmtsAsync: onDownloadDcmtsAsync });
|
|
437
|
+
const TMSearchResultGrid = ({ inputFocusedItem, allowMultipleSelection = true, onFocusedItemChanged, onDownloadDcmtsAsync, onVisibleItemChanged, inputSelectedItems = [], lastUpdateSearchTime, searchResult, onContextMenuPreparing, onSelectionChanged, onDblClick }) => {
|
|
442
438
|
const [dataSource, setDataSource] = useState();
|
|
443
439
|
const [showFilterPanel, setShowFilterPanel] = useState(false);
|
|
444
440
|
const [columns, setColumns] = useState([]);
|
|
@@ -577,12 +573,16 @@ const TMSearchResultGrid = ({ inputFocusedItem, allowMultipleSelection = true, o
|
|
|
577
573
|
return;
|
|
578
574
|
if (e.data === undefined)
|
|
579
575
|
return;
|
|
576
|
+
if (e.event?.target.closest('.tm-dcmt-icon')) {
|
|
577
|
+
// Era sull'icona, non fare nulla
|
|
578
|
+
return;
|
|
579
|
+
}
|
|
580
580
|
setFocusedItem(e.data);
|
|
581
581
|
onDblClick();
|
|
582
582
|
}, [onDblClick]);
|
|
583
583
|
const dataColumns = useMemo(() => {
|
|
584
584
|
return [
|
|
585
|
-
{ dataType: "object", visible: true, width: 50, cellRender: renderDcmtIcon, allowResizing: false, },
|
|
585
|
+
{ dataType: "object", visible: true, width: 50, cellRender: (cellData) => renderDcmtIcon(cellData, onDownloadDcmtsAsync), allowResizing: false, },
|
|
586
586
|
...columns
|
|
587
587
|
];
|
|
588
588
|
}, [columns]);
|