@topconsultnpm/sdkui-react 6.21.0-dev2.35 → 6.21.0-dev2.37
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/editors/TMTextBox.d.ts +2 -0
- package/lib/components/editors/TMTextBox.js +3 -3
- package/lib/components/features/documents/TMCopyToFolderForm.d.ts +16 -0
- package/lib/components/features/documents/TMCopyToFolderForm.js +306 -0
- package/lib/components/features/documents/TMDownloadRelationViewerSection.d.ts +15 -0
- package/lib/components/features/documents/TMDownloadRelationViewerSection.js +155 -0
- package/lib/components/features/documents/TMMasterDetailDcmts.d.ts +4 -0
- package/lib/components/features/documents/TMMasterDetailDcmts.js +6 -5
- package/lib/components/features/documents/TMMergeToPdfForm.d.ts +18 -0
- package/lib/components/features/documents/TMMergeToPdfForm.js +164 -0
- package/lib/components/features/documents/TMRelationViewer.d.ts +13 -0
- package/lib/components/features/documents/TMRelationViewer.js +75 -6
- package/lib/components/features/documents/copyAndMergeDcmtsShared.d.ts +53 -0
- package/lib/components/features/documents/copyAndMergeDcmtsShared.js +262 -0
- package/lib/components/features/search/TMSearch.d.ts +2 -0
- package/lib/components/features/search/TMSearch.js +2 -2
- package/lib/components/features/search/TMSearchResult.d.ts +2 -0
- package/lib/components/features/search/TMSearchResult.js +3 -2
- package/lib/helper/SDKUI_Globals.d.ts +15 -0
- package/lib/helper/SDKUI_Globals.js +15 -1
- package/lib/helper/TMUtils.d.ts +19 -0
- package/lib/helper/ZipManager.d.ts +56 -0
- package/lib/helper/ZipManager.js +104 -0
- package/lib/helper/index.d.ts +1 -0
- package/lib/helper/index.js +1 -0
- package/lib/hooks/useDcmtOperations.d.ts +8 -2
- package/lib/hooks/useDcmtOperations.js +29 -20
- package/lib/hooks/useDocumentOperations.d.ts +4 -0
- package/lib/hooks/useDocumentOperations.js +75 -7
- package/package.json +2 -2
|
@@ -42,7 +42,7 @@ export const useDcmtOperations = () => {
|
|
|
42
42
|
const [waitPanelMaxValueSecondary, setWaitPanelMaxValueSecondary] = useState(0);
|
|
43
43
|
const { OpenFileDialog } = useFileDialog();
|
|
44
44
|
const [selectFileSource, FileSourceDialog] = useFileSourceDialog();
|
|
45
|
-
const _downloadDcmtsAsync = async (inputDcmts, downloadMode = "download", onFileDownloaded, skipConfirmation = false) => {
|
|
45
|
+
const _downloadDcmtsAsync = async (inputDcmts, downloadMode = "download", onFileDownloaded, skipConfirmation = false, retrieveOptions, useCache = true) => {
|
|
46
46
|
if (inputDcmts === undefined)
|
|
47
47
|
return;
|
|
48
48
|
if (inputDcmts.length <= 0)
|
|
@@ -72,9 +72,11 @@ export const useDcmtOperations = () => {
|
|
|
72
72
|
setWaitPanelTitle(operationTitle);
|
|
73
73
|
abortController = new AbortController();
|
|
74
74
|
const rfo = new RetrieveFileOptions();
|
|
75
|
-
rfo.retrieveReason = DcmtOpers.ShowFile;
|
|
76
|
-
|
|
77
|
-
|
|
75
|
+
rfo.retrieveReason = retrieveOptions?.retrieveReason ?? DcmtOpers.ShowFile;
|
|
76
|
+
if (retrieveOptions?.generalRetrieveFormat !== undefined)
|
|
77
|
+
rfo.generalRetrieveFormat = retrieveOptions.generalRetrieveFormat;
|
|
78
|
+
rfo.invoiceRetrieveFormat = retrieveOptions?.invoiceRetrieveFormat ?? SDKUI_Globals.userSettings.searchSettings.invoiceRetrieveFormat;
|
|
79
|
+
rfo.orderRetrieveFormat = retrieveOptions?.orderRetrieveFormat ?? SDKUI_Globals.userSettings.searchSettings.orderRetrieveFormat;
|
|
78
80
|
let result = [];
|
|
79
81
|
setWaitPanelMaxValuePrimary(inputDcmts.length);
|
|
80
82
|
let firstBlock = true;
|
|
@@ -88,7 +90,7 @@ export const useDcmtOperations = () => {
|
|
|
88
90
|
setWaitPanelTextPrimary(`Download file ${i + 1} di ${inputDcmts.length}`);
|
|
89
91
|
let file;
|
|
90
92
|
const cacheKey = `${inputDcmts[i].TID}-${inputDcmts[i].DID}`;
|
|
91
|
-
if (dcmtsFileCacheDownload.has(cacheKey)) {
|
|
93
|
+
if (useCache && dcmtsFileCacheDownload.has(cacheKey)) {
|
|
92
94
|
file = dcmtsFileCacheDownload.get(cacheKey);
|
|
93
95
|
}
|
|
94
96
|
else {
|
|
@@ -112,23 +114,30 @@ export const useDcmtOperations = () => {
|
|
|
112
114
|
const fileURL = window.URL.createObjectURL(file);
|
|
113
115
|
if (downloadMode === "openInNewWindow") {
|
|
114
116
|
(onFileDownloaded && file)
|
|
115
|
-
? onFileDownloaded(file)
|
|
117
|
+
? onFileDownloaded(file, inputDcmts[i])
|
|
116
118
|
: window.open(fileURL, '_blank', 'noopener');
|
|
117
119
|
}
|
|
118
120
|
else {
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
121
|
+
if (onFileDownloaded && file) {
|
|
122
|
+
await onFileDownloaded(file, inputDcmts[i]);
|
|
123
|
+
}
|
|
124
|
+
else {
|
|
125
|
+
const alink2 = document.createElement('a');
|
|
126
|
+
alink2.href = fileURL;
|
|
127
|
+
const baseFileName = inputDcmts[i].fileName ?? (inputDcmts[i].FILEEXT ? `${inputDcmts[i].DID}.${inputDcmts[i].FILEEXT}` : file?.name);
|
|
128
|
+
alink2.download = getDownloadFileName(baseFileName);
|
|
129
|
+
alink2.target = "_blank";
|
|
130
|
+
alink2.rel = "noreferrer";
|
|
131
|
+
alink2.click();
|
|
132
|
+
}
|
|
126
133
|
}
|
|
127
|
-
if (
|
|
128
|
-
|
|
129
|
-
|
|
134
|
+
if (useCache) {
|
|
135
|
+
if (dcmtsFileCacheDownload.size >= CACHE_SIZE_LIMIT) {
|
|
136
|
+
const oldestKey = dcmtsFileCacheDownload.keys().next().value;
|
|
137
|
+
dcmtsFileCacheDownload.delete(oldestKey);
|
|
138
|
+
}
|
|
139
|
+
dcmtsFileCacheDownload.set(cacheKey, file);
|
|
130
140
|
}
|
|
131
|
-
dcmtsFileCacheDownload.set(cacheKey, file);
|
|
132
141
|
result.push({ rowIndex: i, id1: inputDcmts[i].TID, id2: inputDcmts[i].DID, resultType: ResultTypes.SUCCESS });
|
|
133
142
|
}
|
|
134
143
|
catch (ex) {
|
|
@@ -208,11 +217,11 @@ export const useDcmtOperations = () => {
|
|
|
208
217
|
TMExceptionBoxManager.show({ exception: err });
|
|
209
218
|
}
|
|
210
219
|
};
|
|
211
|
-
const downloadDcmtsAsync = async (inputDcmts, downloadType = DownloadTypes.Attachment, downloadMode = "download", onFileDownloaded, confirmAttachments, skipConfirmation = false) => {
|
|
220
|
+
const downloadDcmtsAsync = async (inputDcmts, downloadType = DownloadTypes.Attachment, downloadMode = "download", onFileDownloaded, confirmAttachments, skipConfirmation = false, retrieveOptions, useCache = true) => {
|
|
212
221
|
switch (downloadType) {
|
|
213
|
-
case DownloadTypes.Dcmt: return await _downloadDcmtsAsync(inputDcmts, downloadMode, onFileDownloaded, skipConfirmation);
|
|
222
|
+
case DownloadTypes.Dcmt: return await _downloadDcmtsAsync(inputDcmts, downloadMode, onFileDownloaded, skipConfirmation, retrieveOptions, useCache);
|
|
214
223
|
case DownloadTypes.Attachment: return await _downloadAttachmentsAsync(inputDcmts, confirmAttachments);
|
|
215
|
-
default: return await _downloadDcmtsAsync(inputDcmts, undefined, undefined, skipConfirmation);
|
|
224
|
+
default: return await _downloadDcmtsAsync(inputDcmts, undefined, undefined, skipConfirmation, retrieveOptions, useCache);
|
|
216
225
|
}
|
|
217
226
|
};
|
|
218
227
|
const uploadDcmtsAsync = async (inputDcmts, operationTitle, operType, actionAfterOperationAsync) => {
|
|
@@ -6,6 +6,7 @@ import { DcmtInfo, MetadataValueDescriptorEx, SearchResultContext, TaskContext }
|
|
|
6
6
|
import { UseCheckInOutOperationsReturn } from "./useCheckInOutOperations";
|
|
7
7
|
import { UseDcmtOperationsReturn } from "./useDcmtOperations";
|
|
8
8
|
import { UseRelatedDocumentsReturn } from "./useRelatedDocuments";
|
|
9
|
+
import { MergePdfManagerType } from '../helper';
|
|
9
10
|
export interface DocumentDataProps {
|
|
10
11
|
dtd: DcmtTypeDescriptor | undefined;
|
|
11
12
|
selectedItems: Array<any>;
|
|
@@ -38,6 +39,8 @@ export interface DocumentDataProps {
|
|
|
38
39
|
s4TViewerDialogComponent?: React.ReactNode;
|
|
39
40
|
};
|
|
40
41
|
}
|
|
42
|
+
export type TMCopyToFolderMode = 'onlySelected' | 'customized';
|
|
43
|
+
export type TMCopyToFolderOperationType = 'copyToFolder' | 'mergeToPdf';
|
|
41
44
|
export interface ExportDataProps {
|
|
42
45
|
dataColumns?: Array<IColumnProps>;
|
|
43
46
|
dataSource?: Array<any>;
|
|
@@ -97,6 +100,7 @@ interface UseDocumentOperationsProps {
|
|
|
97
100
|
tasks: TasksProps;
|
|
98
101
|
callbacks: OperationCallbacks;
|
|
99
102
|
exportData?: ExportDataProps;
|
|
103
|
+
mergePdfManager?: MergePdfManagerType;
|
|
100
104
|
}
|
|
101
105
|
export interface UseDocumentOperationsResult {
|
|
102
106
|
operationItems: Array<TMContextMenuItemProps>;
|
|
@@ -23,6 +23,8 @@ import { useInputAttachmentsDialog, useInputCvtFormatDialog } from "./useInputDi
|
|
|
23
23
|
import { useRelatedDocuments } from "./useRelatedDocuments";
|
|
24
24
|
import { convertSearchResultDescriptorToFileItems, dcmtsFileCachePreview, getDcmtCicoStatus, getMoreInfoTasksForDocument, IconActivity, IconArchiveDetail, IconArchiveDoc, IconArchiveMaster, IconBatchUpdate, IconCheck, IconCheckFile, IconCheckIn, IconCircleInfo, IconCloseCircle, IconConvertFilePdf, IconCopy, IconCustom, IconDelete, IconDetailDcmts, IconDotsVerticalCircleOutline, IconDownload, IconEdit, IconExportTo, IconFileDots, IconHide, IconInfo, IconMenuCAArchive, IconMoveToFolder, IconPair, IconPin, IconPlatform, IconPreview, IconRelation, IconSearch, IconShare, IconSharedDcmt, IconShow, IconSignaturePencil, IconStar, IconSubstFile, IconUndo, IconUnpair, IconUserGroupOutline, isPdfEditorAvailable, SDKUI_Localizator, searchResultToMetadataValues, TMImageLibrary } from '../helper';
|
|
25
25
|
import { isXMLFileExt } from "../helper/dcmtsHelper";
|
|
26
|
+
import TMCopyToFolderForm from "../components/features/documents/TMCopyToFolderForm";
|
|
27
|
+
import TMMergeToPdfForm from "../components/features/documents/TMMergeToPdfForm";
|
|
26
28
|
export const getSelectedDcmtsOrFocused = (selectedItems, focusedItem, fileFormat) => {
|
|
27
29
|
if (selectedItems.length <= 0 && !focusedItem)
|
|
28
30
|
return [];
|
|
@@ -49,7 +51,7 @@ export const getAllFieldSelectedDcmtsOrFocused = (selectedItems, focusedItem, fi
|
|
|
49
51
|
return [];
|
|
50
52
|
};
|
|
51
53
|
export const useDocumentOperations = (props) => {
|
|
52
|
-
const { context, documentData, exportData, uiConfig, tasks, callbacks, } = props;
|
|
54
|
+
const { context, documentData, exportData, uiConfig, tasks, callbacks, mergePdfManager } = props;
|
|
53
55
|
const { dtd, selectedItems, focusedItem, searchResult, currentSearchResults, currentMetadataValues, allUsers = [], datagridUtility, dcmtUtility, } = documentData;
|
|
54
56
|
/** State for managing the document(s) to process */
|
|
55
57
|
const [selectedDcmtInfos, setSelectedDcmtInfos] = useState([]);
|
|
@@ -162,6 +164,8 @@ export const useDocumentOperations = (props) => {
|
|
|
162
164
|
const [showMoreInfoPopup, setShowMoreInfoPopup] = useState(false);
|
|
163
165
|
const [isOpenBatchUpdate, setIsOpenBatchUpdate] = useState(false);
|
|
164
166
|
const [isModifiedBatchUpdate, setIsModifiedBatchUpdate] = useState(false);
|
|
167
|
+
const [openCopyToFolderForm, setOpenCopyToFolderForm] = useState({ open: false, operationType: 'copyToFolder', mode: 'onlySelected' });
|
|
168
|
+
const [showTMRelationViewerInCopyToFolderForm, setShowTMRelationViewerInCopyToFolderForm] = useState(false);
|
|
165
169
|
const openDetailDcmtsFormHandler = (value) => { setIsOpenDetails(value); };
|
|
166
170
|
const openMasterDcmtsFormHandler = (value) => { setIsOpenMaster(value); };
|
|
167
171
|
// State to control whether the export form (for exporting to Excel/CSV/txt and others) should be shown
|
|
@@ -695,6 +699,64 @@ export const useDocumentOperations = (props) => {
|
|
|
695
699
|
]
|
|
696
700
|
};
|
|
697
701
|
};
|
|
702
|
+
const mergeToPdfMenuItem = () => {
|
|
703
|
+
return {
|
|
704
|
+
id: 'merge-pdf',
|
|
705
|
+
icon: _jsx("i", { className: "dx-icon-pdffile", style: { fontSize: '18px' } }),
|
|
706
|
+
name: 'Unisci in un file PDF',
|
|
707
|
+
operationType: 'multiRow',
|
|
708
|
+
disabled: isDisabledForMultiRow(),
|
|
709
|
+
submenu: [
|
|
710
|
+
{
|
|
711
|
+
id: 'merge-pdf-only-selected',
|
|
712
|
+
icon: _jsx("i", { className: "dx-icon-pdffile", style: { fontSize: '18px' } }),
|
|
713
|
+
name: 'Solo i documenti selezionati',
|
|
714
|
+
onClick: () => {
|
|
715
|
+
setShowTMRelationViewerInCopyToFolderForm(false);
|
|
716
|
+
setOpenCopyToFolderForm({ open: true, operationType: 'mergeToPdf', mode: 'onlySelected' });
|
|
717
|
+
},
|
|
718
|
+
},
|
|
719
|
+
{
|
|
720
|
+
id: 'merge-pdf-customized',
|
|
721
|
+
icon: _jsx("i", { className: "dx-icon-pdffile", style: { fontSize: '18px' } }),
|
|
722
|
+
name: 'Documenti di primo livello e i correlati selezionati',
|
|
723
|
+
onClick: () => {
|
|
724
|
+
setShowTMRelationViewerInCopyToFolderForm(true);
|
|
725
|
+
setOpenCopyToFolderForm({ open: true, operationType: 'mergeToPdf', mode: 'customized' });
|
|
726
|
+
},
|
|
727
|
+
},
|
|
728
|
+
],
|
|
729
|
+
};
|
|
730
|
+
};
|
|
731
|
+
const copyToFolderMenuItem = () => {
|
|
732
|
+
return {
|
|
733
|
+
id: 'copy-to-folder',
|
|
734
|
+
icon: _jsx(IconCopy, {}),
|
|
735
|
+
name: 'Copia in una cartella',
|
|
736
|
+
operationType: 'multiRow',
|
|
737
|
+
disabled: isDisabledForMultiRow(),
|
|
738
|
+
submenu: [
|
|
739
|
+
{
|
|
740
|
+
id: 'copy-to-folder-only-selected',
|
|
741
|
+
icon: _jsx(IconCopy, {}),
|
|
742
|
+
name: 'Solo i documenti selezionati',
|
|
743
|
+
onClick: () => {
|
|
744
|
+
setShowTMRelationViewerInCopyToFolderForm(false);
|
|
745
|
+
setOpenCopyToFolderForm({ open: true, operationType: 'copyToFolder', mode: 'onlySelected' });
|
|
746
|
+
},
|
|
747
|
+
},
|
|
748
|
+
{
|
|
749
|
+
id: 'copy-to-folder-customized',
|
|
750
|
+
icon: _jsx(IconCopy, {}),
|
|
751
|
+
name: 'Documenti di primo livello e i correlati selezionati',
|
|
752
|
+
onClick: () => {
|
|
753
|
+
setShowTMRelationViewerInCopyToFolderForm(true);
|
|
754
|
+
setOpenCopyToFolderForm({ open: true, operationType: 'copyToFolder', mode: 'customized', });
|
|
755
|
+
},
|
|
756
|
+
},
|
|
757
|
+
],
|
|
758
|
+
};
|
|
759
|
+
};
|
|
698
760
|
const relationsMenuItem = () => {
|
|
699
761
|
return {
|
|
700
762
|
id: 'rel',
|
|
@@ -1019,6 +1081,8 @@ export const useDocumentOperations = (props) => {
|
|
|
1019
1081
|
},
|
|
1020
1082
|
signatureMenuItem(),
|
|
1021
1083
|
checkinMenuItem(),
|
|
1084
|
+
copyToFolderMenuItem(),
|
|
1085
|
+
mergePdfManager ? mergeToPdfMenuItem() : null,
|
|
1022
1086
|
allowRelations ? relationsMenuItem() : null,
|
|
1023
1087
|
sharedDcmtsMenuItem(),
|
|
1024
1088
|
// shareMenuItem(),
|
|
@@ -1054,6 +1118,8 @@ export const useDocumentOperations = (props) => {
|
|
|
1054
1118
|
copyFromWgMenuItem(),
|
|
1055
1119
|
movetofolderFromWgMenuItem(),
|
|
1056
1120
|
commentFromWgMenuItem(false),
|
|
1121
|
+
copyToFolderMenuItem(),
|
|
1122
|
+
mergeToPdfMenuItem(),
|
|
1057
1123
|
removeFromWgMenuItem(SDKUI_Localizator.RemoveFromWorkgroup),
|
|
1058
1124
|
];
|
|
1059
1125
|
return items.sort((a, b) => a.name.localeCompare(b.name));
|
|
@@ -1104,6 +1170,8 @@ export const useDocumentOperations = (props) => {
|
|
|
1104
1170
|
},
|
|
1105
1171
|
signatureMenuItem(),
|
|
1106
1172
|
checkinMenuItem(),
|
|
1173
|
+
copyToFolderMenuItem(),
|
|
1174
|
+
mergeToPdfMenuItem(),
|
|
1107
1175
|
...((inputDcmtFormLayoutMode === LayoutModes.Update) ? [fullTextSearchMenuItem()] : []),
|
|
1108
1176
|
];
|
|
1109
1177
|
};
|
|
@@ -1136,8 +1204,8 @@ export const useDocumentOperations = (props) => {
|
|
|
1136
1204
|
onRefreshBlogDatagrid,
|
|
1137
1205
|
onRefreshPreviewDatagrid
|
|
1138
1206
|
} })) }), (showHistory && dtd && selectedDcmtInfos.length > 0) && _jsx(TMViewHistoryDcmt, { fromDTD: dtd, deviceType: deviceType, inputDcmt: selectedDcmtInfos[0], onClose: hideHistoryCallback, allTasks: allTasks, getAllTasks: getAllTasks, deleteTaskByIdsCallback: deleteTaskByIdsCallback, addTaskCallback: addTaskCallback, editTaskCallback: editTaskCallback, handleNavigateToWGs: handleNavigateToWGs, handleNavigateToDossiers: handleNavigateToDossiers }), (commentFormState.show && selectedDcmtInfos.length > 0) && _jsx(TMBlogCommentForm, { context: { engine: 'SearchEngine', object: { tid: selectedDcmtInfos[0].TID, did: selectedDcmtInfos[0].DID } }, onClose: hideCommentFormCallback, refreshCallback: onRefreshBlog, participants: [], showAttachmentsSection: true, allArchivedDocumentsFileItems: convertSearchResultDescriptorToFileItems(currentSearchResults ?? []), isCommentRequired: commentFormState.isRequired, removeAndEditAttachment: commentFormState.removeAndEditAttachment, selectedAttachmentDid: [Number(selectedDcmtInfos[0].DID)] }), (showCheckoutInformationForm && dtd && selectedDcmtInfos.length > 0) &&
|
|
1139
|
-
_jsx(TMDcmtCheckoutInfoForm, { dtdName: dtd.name ?? SDKUI_Localizator.SearchResult, selectedDcmtOrFocused: selectedDcmtInfos[0], onClose: hideCheckoutInformationFormCallback }), _jsx(StyledMultiViewPanel, { "$isVisible": isOpenDetails, children: isOpenDetails && _jsx(TMMasterDetailDcmts, { deviceType: deviceType, isForMaster: false, inputDcmts: selectedDcmtInfos, allowNavigation: selectedDcmtInfos.length === 1, canNext: canNavigateHandler ? canNavigateHandler('next') : false, canPrev: canNavigateHandler ? canNavigateHandler('prev') : false, onNext: () => onNavigateHandler && onNavigateHandler('next'), onPrev: () => onNavigateHandler && onNavigateHandler('prev'), onBack: () => setIsOpenDetails(false), allTasks: allTasks, getAllTasks: getAllTasks, deleteTaskByIdsCallback: deleteTaskByIdsCallback, addTaskCallback: addTaskCallback, editTaskCallback: editTaskCallback, handleNavigateToWGs: handleNavigateToWGs, handleNavigateToDossiers: handleNavigateToDossiers, editPdfForm: editPdfForm, openS4TViewer: openS4TViewer, onOpenS4TViewerRequest: onOpenS4TViewerRequest, onOpenPdfEditorRequest: onOpenPdfEditorRequest, onRefreshAfterAddDcmtToFavs: onRefreshAfterAddDcmtToFavs, onTaskCreateRequest: onTaskCreateRequest, datagridUtility: datagridUtility, dcmtUtility: dcmtUtility }) }), _jsxs(StyledMultiViewPanel, { "$isVisible": isOpenMaster, children: [isOpenMaster && _jsx(TMMasterDetailDcmts, { deviceType: deviceType, inputDcmts: selectedDcmtInfos, isForMaster: true, allowNavigation: selectedDcmtInfos.length === 1, canNext: canNavigateHandler ? canNavigateHandler('next') : false, canPrev: canNavigateHandler ? canNavigateHandler('prev') : false, onNext: () => onNavigateHandler && onNavigateHandler('next'), onPrev: () => onNavigateHandler && onNavigateHandler('prev'), onBack: () => setIsOpenMaster(false), appendMasterDcmts: handleAddItem, allTasks: allTasks, getAllTasks: getAllTasks, deleteTaskByIdsCallback: deleteTaskByIdsCallback, addTaskCallback: addTaskCallback, editTaskCallback: editTaskCallback, handleNavigateToWGs: handleNavigateToWGs, handleNavigateToDossiers: handleNavigateToDossiers, editPdfForm: editPdfForm, openS4TViewer: openS4TViewer, onOpenS4TViewerRequest: onOpenS4TViewerRequest, onOpenPdfEditorRequest: onOpenPdfEditorRequest, onRefreshAfterAddDcmtToFavs: onRefreshAfterAddDcmtToFavs, onTaskCreateRequest: onTaskCreateRequest, datagridUtility: datagridUtility, dcmtUtility: dcmtUtility }), secondaryMasterDcmts.length > 0 && secondaryMasterDcmts.map((dcmt, index) => {
|
|
1140
|
-
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, allTasks: allTasks, getAllTasks: getAllTasks, deleteTaskByIdsCallback: deleteTaskByIdsCallback, addTaskCallback: addTaskCallback, editTaskCallback: editTaskCallback, handleNavigateToWGs: handleNavigateToWGs, handleNavigateToDossiers: handleNavigateToDossiers, editPdfForm: editPdfForm, openS4TViewer: openS4TViewer, onOpenS4TViewerRequest: onOpenS4TViewerRequest, onOpenPdfEditorRequest: onOpenPdfEditorRequest, onTaskCreateRequest: onTaskCreateRequest, datagridUtility: datagridUtility, dcmtUtility: dcmtUtility }) }, `${index}-${dcmt.DID}`));
|
|
1207
|
+
_jsx(TMDcmtCheckoutInfoForm, { dtdName: dtd.name ?? SDKUI_Localizator.SearchResult, selectedDcmtOrFocused: selectedDcmtInfos[0], onClose: hideCheckoutInformationFormCallback }), _jsx(StyledMultiViewPanel, { "$isVisible": isOpenDetails, children: isOpenDetails && _jsx(TMMasterDetailDcmts, { deviceType: deviceType, isForMaster: false, inputDcmts: selectedDcmtInfos, allowNavigation: selectedDcmtInfos.length === 1, canNext: canNavigateHandler ? canNavigateHandler('next') : false, canPrev: canNavigateHandler ? canNavigateHandler('prev') : false, onNext: () => onNavigateHandler && onNavigateHandler('next'), onPrev: () => onNavigateHandler && onNavigateHandler('prev'), onBack: () => setIsOpenDetails(false), allTasks: allTasks, getAllTasks: getAllTasks, deleteTaskByIdsCallback: deleteTaskByIdsCallback, addTaskCallback: addTaskCallback, editTaskCallback: editTaskCallback, handleNavigateToWGs: handleNavigateToWGs, handleNavigateToDossiers: handleNavigateToDossiers, editPdfForm: editPdfForm, openS4TViewer: openS4TViewer, onOpenS4TViewerRequest: onOpenS4TViewerRequest, onOpenPdfEditorRequest: onOpenPdfEditorRequest, onRefreshAfterAddDcmtToFavs: onRefreshAfterAddDcmtToFavs, onTaskCreateRequest: onTaskCreateRequest, datagridUtility: datagridUtility, dcmtUtility: dcmtUtility, mergePdfManager: mergePdfManager }) }), _jsxs(StyledMultiViewPanel, { "$isVisible": isOpenMaster, children: [isOpenMaster && _jsx(TMMasterDetailDcmts, { deviceType: deviceType, inputDcmts: selectedDcmtInfos, isForMaster: true, allowNavigation: selectedDcmtInfos.length === 1, canNext: canNavigateHandler ? canNavigateHandler('next') : false, canPrev: canNavigateHandler ? canNavigateHandler('prev') : false, onNext: () => onNavigateHandler && onNavigateHandler('next'), onPrev: () => onNavigateHandler && onNavigateHandler('prev'), onBack: () => setIsOpenMaster(false), appendMasterDcmts: handleAddItem, allTasks: allTasks, getAllTasks: getAllTasks, deleteTaskByIdsCallback: deleteTaskByIdsCallback, addTaskCallback: addTaskCallback, editTaskCallback: editTaskCallback, handleNavigateToWGs: handleNavigateToWGs, handleNavigateToDossiers: handleNavigateToDossiers, editPdfForm: editPdfForm, openS4TViewer: openS4TViewer, onOpenS4TViewerRequest: onOpenS4TViewerRequest, onOpenPdfEditorRequest: onOpenPdfEditorRequest, onRefreshAfterAddDcmtToFavs: onRefreshAfterAddDcmtToFavs, onTaskCreateRequest: onTaskCreateRequest, datagridUtility: datagridUtility, dcmtUtility: dcmtUtility, mergePdfManager: mergePdfManager }), secondaryMasterDcmts.length > 0 && secondaryMasterDcmts.map((dcmt, index) => {
|
|
1208
|
+
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, allTasks: allTasks, getAllTasks: getAllTasks, deleteTaskByIdsCallback: deleteTaskByIdsCallback, addTaskCallback: addTaskCallback, editTaskCallback: editTaskCallback, handleNavigateToWGs: handleNavigateToWGs, handleNavigateToDossiers: handleNavigateToDossiers, editPdfForm: editPdfForm, openS4TViewer: openS4TViewer, onOpenS4TViewerRequest: onOpenS4TViewerRequest, onOpenPdfEditorRequest: onOpenPdfEditorRequest, onTaskCreateRequest: onTaskCreateRequest, datagridUtility: datagridUtility, dcmtUtility: dcmtUtility, mergePdfManager: mergePdfManager }) }, `${index}-${dcmt.DID}`));
|
|
1141
1209
|
})] }), isOpenArchiveRelationForm && _jsx(TMDcmtForm, { isModal: true, titleModal: SDKUI_Localizator.Archive + ' - ' + (archiveType === 'detail' ? SDKUI_Localizator.DcmtsDetail : SDKUI_Localizator.DcmtsMaster), TID: archiveRelatedDcmtFormTID, layoutMode: LayoutModes.Ark, inputMids: archiveRelatedDcmtFormMids, showBackButton: false, allowButtonsRefs: false, onClose: () => {
|
|
1142
1210
|
setIsOpenArchiveRelationForm(false);
|
|
1143
1211
|
setArchiveType(undefined);
|
|
@@ -1182,7 +1250,7 @@ export const useDocumentOperations = (props) => {
|
|
|
1182
1250
|
TMSpinner.hide();
|
|
1183
1251
|
}
|
|
1184
1252
|
}, onClose: () => setShowManyToManyChooser(false), manageUseLocalizedName: false }), showPairDcmtsModal &&
|
|
1185
|
-
_jsx(TMModal, { title: (isPairingManyToMany ? "Abbina" : "Disabbina") + " documenti", onClose: () => setShowPairDcmtsModal(false), width: isMobile ? '90%' : '50%', height: isMobile ? '90%' : '70%', children: _jsx(TMSearchResult, { searchResults: pairedSearchResults, onRefreshAfterAddDcmtToFavs: onRefreshAfterAddDcmtToFavs, onRefreshSearchAsyncDatagrid: onRefreshSearchAsyncDatagrid, onFileOpened: onFileOpened, onTaskCreateRequest: onTaskCreateRequest, openWGsCopyMoveForm: openWGsCopyMoveForm, editPdfForm: editPdfForm, openS4TViewer: openS4TViewer, onOpenS4TViewerRequest: onOpenS4TViewerRequest, onOpenPdfEditorRequest: onOpenPdfEditorRequest, passToArchiveCallback: passToArchiveCallback, showTodoDcmtForm: showTodoDcmtForm, allowFloatingBar: false, floatingActionConfig: pairFloatingActionConfig, showBackButton: false, allTasks: allTasks, getAllTasks: getAllTasks, deleteTaskByIdsCallback: deleteTaskByIdsCallback, addTaskCallback: addTaskCallback, editTaskCallback: editTaskCallback, handleNavigateToWGs: handleNavigateToWGs, handleNavigateToDossiers: handleNavigateToDossiers, toppyHelpCenterUsePortal: toppyHelpCenterUsePortal, showToppyDraggableHelpCenter: showToppyDraggableHelpCenter }) }), showPairSearchModal &&
|
|
1253
|
+
_jsx(TMModal, { title: (isPairingManyToMany ? "Abbina" : "Disabbina") + " documenti", onClose: () => setShowPairDcmtsModal(false), width: isMobile ? '90%' : '50%', height: isMobile ? '90%' : '70%', children: _jsx(TMSearchResult, { searchResults: pairedSearchResults, onRefreshAfterAddDcmtToFavs: onRefreshAfterAddDcmtToFavs, onRefreshSearchAsyncDatagrid: onRefreshSearchAsyncDatagrid, onFileOpened: onFileOpened, onTaskCreateRequest: onTaskCreateRequest, openWGsCopyMoveForm: openWGsCopyMoveForm, editPdfForm: editPdfForm, openS4TViewer: openS4TViewer, onOpenS4TViewerRequest: onOpenS4TViewerRequest, onOpenPdfEditorRequest: onOpenPdfEditorRequest, passToArchiveCallback: passToArchiveCallback, showTodoDcmtForm: showTodoDcmtForm, allowFloatingBar: false, floatingActionConfig: pairFloatingActionConfig, showBackButton: false, allTasks: allTasks, getAllTasks: getAllTasks, deleteTaskByIdsCallback: deleteTaskByIdsCallback, addTaskCallback: addTaskCallback, editTaskCallback: editTaskCallback, handleNavigateToWGs: handleNavigateToWGs, handleNavigateToDossiers: handleNavigateToDossiers, toppyHelpCenterUsePortal: toppyHelpCenterUsePortal, showToppyDraggableHelpCenter: showToppyDraggableHelpCenter, mergePdfManager: mergePdfManager }) }), showPairSearchModal &&
|
|
1186
1254
|
_jsx(TMModal, { title: "Ricerca documenti", onClose: () => setShowPairSearchModal(false), width: isMobile ? '90%' : '50%', height: isMobile ? '90%' : '70%', children: _jsx(TMSearch, { onlyShowSearchQueryPanel: true, inputTID: pairSearchModalTargetTID, inputMids: pairSearchModalInputMids, floatingActionConfig: pairSearchModalFloatingActionConfig, allTasks: allTasks, getAllTasks: getAllTasks, deleteTaskByIdsCallback: deleteTaskByIdsCallback, addTaskCallback: addTaskCallback, editTaskCallback: editTaskCallback, handleNavigateToWGs: handleNavigateToWGs, handleNavigateToDossiers: handleNavigateToDossiers }) }), isOpenSharedArchive && _jsx(TMModal, { title: SDKUI_Localizator.SharedArchiving, onClose: () => {
|
|
1187
1255
|
setIsOpenSharedArchive(false);
|
|
1188
1256
|
}, width: isMobile ? '90%' : '60%', height: isMobile ? '90%' : '80%', children: _jsx(TMArchive, { inputDID: selectedDcmtInfos?.[0].DID, inputTID: selectedDcmtInfos?.[0].TID, inputMids: currentMetadataValues.filter(md => md.mid && md.mid > 100).map(md => ({ mid: md.mid, value: md.value ?? '' })), isSharedArchive: true, inputFile: sharedDcmtFile, onSavedAsyncCallback: async (tid, did) => {
|
|
@@ -1191,11 +1259,11 @@ export const useDocumentOperations = (props) => {
|
|
|
1191
1259
|
}, allTasks: allTasks, getAllTasks: getAllTasks, deleteTaskByIdsCallback: deleteTaskByIdsCallback, addTaskCallback: addTaskCallback, editTaskCallback: editTaskCallback, handleNavigateToWGs: handleNavigateToWGs, handleNavigateToDossiers: handleNavigateToDossiers }) }), sharedDcmtSearchResults.length > 0 &&
|
|
1192
1260
|
_jsx(TMModal, { title: "Documenti condivisi", onClose: () => {
|
|
1193
1261
|
setSharedDcmtSearchResults([]);
|
|
1194
|
-
}, width: isMobile ? '90%' : '60%', height: isMobile ? '90%' : '80%', children: _jsx(TMSearchResult, { searchResults: sharedDcmtSearchResults, allowFloatingBar: false, showSelector: true, disableAccordionIfSingleCategory: true, showBackButton: isMobile, allTasks: allTasks, getAllTasks: getAllTasks, deleteTaskByIdsCallback: deleteTaskByIdsCallback, addTaskCallback: addTaskCallback, editTaskCallback: editTaskCallback, handleNavigateToWGs: handleNavigateToWGs, handleNavigateToDossiers: handleNavigateToDossiers }) }), isOpenBatchUpdate && _jsx(TMBatchUpdateForm, { isModal: true, titleModal: `${SDKUI_Localizator.BatchUpdate} (${selectedDcmtInfos.length} documenti selezionati)`, inputDcmts: selectedDcmtInfos, TID: selectedDcmtInfos.length > 0 ? selectedDcmtInfos[0]?.TID : undefined, DID: selectedDcmtInfos.length > 0 ? selectedDcmtInfos[0]?.DID : undefined, onBack: () => updateBatchUpdateForm(false), onSavedCallbackAsync: async () => {
|
|
1262
|
+
}, width: isMobile ? '90%' : '60%', height: isMobile ? '90%' : '80%', children: _jsx(TMSearchResult, { searchResults: sharedDcmtSearchResults, allowFloatingBar: false, showSelector: true, disableAccordionIfSingleCategory: true, showBackButton: isMobile, allTasks: allTasks, getAllTasks: getAllTasks, deleteTaskByIdsCallback: deleteTaskByIdsCallback, addTaskCallback: addTaskCallback, editTaskCallback: editTaskCallback, handleNavigateToWGs: handleNavigateToWGs, handleNavigateToDossiers: handleNavigateToDossiers, mergePdfManager: mergePdfManager }) }), isOpenBatchUpdate && _jsx(TMBatchUpdateForm, { isModal: true, titleModal: `${SDKUI_Localizator.BatchUpdate} (${selectedDcmtInfos.length} documenti selezionati)`, inputDcmts: selectedDcmtInfos, TID: selectedDcmtInfos.length > 0 ? selectedDcmtInfos[0]?.TID : undefined, DID: selectedDcmtInfos.length > 0 ? selectedDcmtInfos[0]?.DID : undefined, onBack: () => updateBatchUpdateForm(false), onSavedCallbackAsync: async () => {
|
|
1195
1263
|
updateBatchUpdateForm(false);
|
|
1196
1264
|
setIsModifiedBatchUpdate(false);
|
|
1197
1265
|
await onRefreshDataRowsAsync?.();
|
|
1198
|
-
}, onStatusChanged: (isModified) => { setIsModifiedBatchUpdate(isModified); } }), showApprovePopup && _jsx(WorkFlowApproveRejectPopUp, { deviceType: deviceType, onCompleted: handleWFOperationCompleted, selectedItems: approvalVID ? selectedDcmtInfos.map(item => ({ ...item, TID: approvalVID })) : selectedDcmtInfos, isReject: 0, onClose: () => updateShowApprovePopup(false) }), showRejectPopup && _jsx(WorkFlowApproveRejectPopUp, { deviceType: deviceType, onCompleted: handleWFOperationCompleted, selectedItems: approvalVID ? selectedDcmtInfos.map(item => ({ ...item, TID: approvalVID })) : selectedDcmtInfos, isReject: 1, onClose: () => updateShowRejectPopup(false) }), showReAssignPopup && _jsx(WorkFlowReAssignPopUp, { deviceType: deviceType, onCompleted: handleWFOperationCompleted, selectedItems: approvalVID ? selectedDcmtInfos.map(item => ({ ...item, TID: approvalVID })) : selectedDcmtInfos, onClose: () => updateShowReAssignPopup(false) }), showMoreInfoPopup && _jsx(WorkFlowMoreInfoPopUp, { fromDTD: dtd, TID: contextConfig.approvalTID, DID: focusedItem?.DID, deviceType: deviceType, onCompleted: handleWFOperationCompleted, onClose: () => updateShowMoreInfoPopup(false), allTasks: allTasks, getAllTasks: getAllTasks, deleteTaskByIdsCallback: deleteTaskByIdsCallback, addTaskCallback: addTaskCallback, editTaskCallback: editTaskCallback, handleNavigateToWGs: handleNavigateToWGs, handleNavigateToDossiers: handleNavigateToDossiers, triggerBlogRefresh: onRefreshBlogDatagrid }), _jsx(ConfirmFormatDialog, {}), _jsx(ConfirmAttachmentsDialog, {}), _jsx(FileSourceDialog, {}), taskFormDialogComponent, s4TViewerDialogComponent, currentCustomButton && _jsx(TMCustomButton, { button: currentCustomButton, formData: currentMetadataValues, selectedItems: selectedItemsFull, onClose: () => setCurrentCustomButton(undefined) })] }));
|
|
1266
|
+
}, onStatusChanged: (isModified) => { setIsModifiedBatchUpdate(isModified); } }), showApprovePopup && _jsx(WorkFlowApproveRejectPopUp, { deviceType: deviceType, onCompleted: handleWFOperationCompleted, selectedItems: approvalVID ? selectedDcmtInfos.map(item => ({ ...item, TID: approvalVID })) : selectedDcmtInfos, isReject: 0, onClose: () => updateShowApprovePopup(false) }), showRejectPopup && _jsx(WorkFlowApproveRejectPopUp, { deviceType: deviceType, onCompleted: handleWFOperationCompleted, selectedItems: approvalVID ? selectedDcmtInfos.map(item => ({ ...item, TID: approvalVID })) : selectedDcmtInfos, isReject: 1, onClose: () => updateShowRejectPopup(false) }), showReAssignPopup && _jsx(WorkFlowReAssignPopUp, { deviceType: deviceType, onCompleted: handleWFOperationCompleted, selectedItems: approvalVID ? selectedDcmtInfos.map(item => ({ ...item, TID: approvalVID })) : selectedDcmtInfos, onClose: () => updateShowReAssignPopup(false) }), showMoreInfoPopup && _jsx(WorkFlowMoreInfoPopUp, { fromDTD: dtd, TID: contextConfig.approvalTID, DID: focusedItem?.DID, deviceType: deviceType, onCompleted: handleWFOperationCompleted, onClose: () => updateShowMoreInfoPopup(false), allTasks: allTasks, getAllTasks: getAllTasks, deleteTaskByIdsCallback: deleteTaskByIdsCallback, addTaskCallback: addTaskCallback, editTaskCallback: editTaskCallback, handleNavigateToWGs: handleNavigateToWGs, handleNavigateToDossiers: handleNavigateToDossiers, triggerBlogRefresh: onRefreshBlogDatagrid }), openCopyToFolderForm.open && openCopyToFolderForm.operationType === 'mergeToPdf' && _jsx(TMMergeToPdfForm, { mode: openCopyToFolderForm.mode, selectedDcmtInfos: selectedDcmtInfos, onClose: () => setOpenCopyToFolderForm({ open: false, operationType: 'copyToFolder', mode: 'onlySelected' }), showTMRelationViewer: showTMRelationViewerInCopyToFolderForm, mergePdfManager: mergePdfManager }), openCopyToFolderForm.open && openCopyToFolderForm.operationType === 'copyToFolder' && _jsx(TMCopyToFolderForm, { mode: openCopyToFolderForm.mode, selectedDcmtInfos: selectedDcmtInfos, onClose: () => setOpenCopyToFolderForm({ open: false, operationType: 'copyToFolder', mode: 'onlySelected' }), showTMRelationViewer: showTMRelationViewerInCopyToFolderForm }), _jsx(ConfirmFormatDialog, {}), _jsx(ConfirmAttachmentsDialog, {}), _jsx(FileSourceDialog, {}), taskFormDialogComponent, s4TViewerDialogComponent, currentCustomButton && _jsx(TMCustomButton, { button: currentCustomButton, formData: currentMetadataValues, selectedItems: selectedItemsFull, onClose: () => setCurrentCustomButton(undefined) })] }));
|
|
1199
1267
|
return {
|
|
1200
1268
|
operationItems: operationItems(),
|
|
1201
1269
|
renderFloatingBar,
|
|
@@ -1317,6 +1385,6 @@ export const useDocumentOperations = (props) => {
|
|
|
1317
1385
|
updateShowReAssignPopup,
|
|
1318
1386
|
updateShowMoreInfoPopup
|
|
1319
1387
|
}
|
|
1320
|
-
}
|
|
1388
|
+
},
|
|
1321
1389
|
};
|
|
1322
1390
|
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@topconsultnpm/sdkui-react",
|
|
3
|
-
"version": "6.21.0-dev2.
|
|
3
|
+
"version": "6.21.0-dev2.37",
|
|
4
4
|
"description": "",
|
|
5
5
|
"scripts": {
|
|
6
6
|
"test": "echo \"Error: no test specified\" && exit 1",
|
|
@@ -40,7 +40,7 @@
|
|
|
40
40
|
"lib"
|
|
41
41
|
],
|
|
42
42
|
"dependencies": {
|
|
43
|
-
"@topconsultnpm/sdk-ts": "6.21.0-dev2.
|
|
43
|
+
"@topconsultnpm/sdk-ts": "6.21.0-dev2.6",
|
|
44
44
|
"@zip.js/zip.js": "2.8.26",
|
|
45
45
|
"buffer": "^6.0.3",
|
|
46
46
|
"devextreme": "^25.2.6",
|