@topconsultnpm/sdkui-react 6.20.0-dev1.6 → 6.20.0-dev1.60
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.d.ts +4 -0
- package/lib/components/NewComponents/ContextMenu/TMContextMenu.js +416 -0
- package/lib/components/NewComponents/ContextMenu/hooks.d.ts +13 -0
- package/lib/components/NewComponents/ContextMenu/hooks.js +61 -0
- package/lib/components/NewComponents/ContextMenu/index.d.ts +5 -0
- package/lib/components/NewComponents/ContextMenu/index.js +3 -0
- package/lib/components/NewComponents/ContextMenu/styles.d.ts +31 -0
- package/lib/components/NewComponents/ContextMenu/styles.js +336 -0
- package/lib/components/NewComponents/ContextMenu/types.d.ts +39 -0
- package/lib/components/NewComponents/ContextMenu/types.js +1 -0
- package/lib/components/NewComponents/ContextMenu/useLongPress.d.ts +21 -0
- package/lib/components/NewComponents/ContextMenu/useLongPress.js +112 -0
- package/lib/components/NewComponents/FloatingMenuBar/TMFloatingMenuBar.d.ts +4 -0
- package/lib/components/NewComponents/FloatingMenuBar/TMFloatingMenuBar.js +745 -0
- package/lib/components/NewComponents/FloatingMenuBar/index.d.ts +2 -0
- package/lib/components/NewComponents/FloatingMenuBar/index.js +2 -0
- package/lib/components/NewComponents/FloatingMenuBar/styles.d.ts +51 -0
- package/lib/components/NewComponents/FloatingMenuBar/styles.js +385 -0
- package/lib/components/NewComponents/FloatingMenuBar/types.d.ts +29 -0
- package/lib/components/NewComponents/FloatingMenuBar/types.js +1 -0
- package/lib/components/base/TMAccordionNew.js +35 -14
- package/lib/components/base/TMCustomButton.js +61 -17
- package/lib/components/base/TMDataGrid.d.ts +7 -4
- package/lib/components/base/TMDataGrid.js +142 -11
- package/lib/components/choosers/TMMetadataChooser.js +8 -1
- package/lib/components/editors/TMMetadataValues.js +23 -5
- package/lib/components/editors/TMTextBox.js +6 -3
- package/lib/components/features/documents/TMDcmtForm.d.ts +13 -1
- package/lib/components/features/documents/TMDcmtForm.js +386 -194
- package/lib/components/features/documents/TMDcmtPreview.js +40 -69
- package/lib/components/features/documents/TMMasterDetailDcmts.js +37 -52
- package/lib/components/features/search/TMDcmtCheckoutInfoForm.d.ts +8 -0
- package/lib/components/features/search/{TMSearchResultCheckoutInfoForm.js → TMDcmtCheckoutInfoForm.js} +5 -10
- package/lib/components/features/search/TMSavedQuerySelector.js +72 -67
- package/lib/components/features/search/TMSearch.js +30 -5
- package/lib/components/features/search/TMSearchQueryPanel.js +13 -12
- package/lib/components/features/search/TMSearchResult.js +57 -216
- package/lib/components/features/search/TMSearchResultsMenuItems.d.ts +3 -3
- package/lib/components/features/search/TMSearchResultsMenuItems.js +205 -169
- package/lib/components/features/search/TMSignSettingsForm.js +1 -1
- package/lib/components/features/search/TMSignatureInfoContent.d.ts +6 -0
- package/lib/components/features/search/TMSignatureInfoContent.js +140 -0
- package/lib/components/features/search/TMViewHistoryDcmt.js +1 -1
- package/lib/components/features/tasks/TMTaskForm.js +20 -1
- package/lib/components/features/tasks/TMTasksUtils.d.ts +2 -2
- package/lib/components/features/tasks/TMTasksUtils.js +62 -52
- package/lib/components/features/tasks/TMTasksView.js +6 -6
- package/lib/components/features/workflow/TMWorkflowPopup.d.ts +32 -2
- package/lib/components/features/workflow/TMWorkflowPopup.js +112 -14
- package/lib/components/features/workflow/diagram/WFDiagram.js +2 -2
- package/lib/components/forms/Login/LoginValidatorService.d.ts +2 -0
- package/lib/components/forms/Login/LoginValidatorService.js +7 -2
- package/lib/components/forms/Login/TMLoginForm.js +34 -6
- package/lib/components/forms/TMChooserForm.js +1 -1
- package/lib/components/grids/TMBlogsPost.js +55 -30
- package/lib/components/index.d.ts +2 -0
- package/lib/components/index.js +2 -0
- package/lib/components/viewers/TMDataListItemViewer.d.ts +2 -1
- package/lib/components/viewers/TMDataListItemViewer.js +12 -11
- package/lib/css/tm-sdkui.css +1 -1
- package/lib/helper/SDKUI_Globals.d.ts +17 -0
- package/lib/helper/SDKUI_Globals.js +9 -0
- package/lib/helper/SDKUI_Localizator.d.ts +9 -1
- package/lib/helper/SDKUI_Localizator.js +87 -1
- package/lib/helper/TMIcons.d.ts +2 -0
- package/lib/helper/TMIcons.js +6 -0
- package/lib/helper/TMPdfViewer.d.ts +8 -0
- package/lib/helper/TMPdfViewer.js +368 -0
- package/lib/helper/checkinCheckoutManager.d.ts +32 -2
- package/lib/helper/checkinCheckoutManager.js +115 -38
- package/lib/helper/devextremeCustomMessages.d.ts +30 -0
- package/lib/helper/devextremeCustomMessages.js +30 -0
- package/lib/helper/helpers.d.ts +2 -1
- package/lib/helper/helpers.js +14 -3
- package/lib/helper/index.d.ts +1 -0
- package/lib/helper/index.js +1 -0
- package/lib/helper/queryHelper.js +29 -0
- package/lib/hooks/useCheckInOutOperations.d.ts +28 -0
- package/lib/hooks/useCheckInOutOperations.js +223 -0
- package/lib/hooks/useWorkflowApprove.d.ts +4 -0
- package/lib/hooks/useWorkflowApprove.js +14 -1
- package/lib/ts/types.d.ts +56 -1
- package/package.json +5 -2
- package/lib/components/features/search/TMSearchResultCheckoutInfoForm.d.ts +0 -8
|
@@ -0,0 +1,223 @@
|
|
|
1
|
+
import { useCallback, useState } from 'react';
|
|
2
|
+
import { cicoDownloadFilesCallback, dcmtsFileCachePreview, getCicoDownloadFileName, getExceptionMessage, removeDcmtsFileCache, renderCicoCheckInContent, SDKUI_Globals, SDKUI_Localizator, updateCicoCheckoutStorageItem, validateCicoFileName } from '../helper';
|
|
3
|
+
import { ButtonNames, ShowAlert, TMMessageBoxManager, TMResultManager } from '../components';
|
|
4
|
+
import { ResultTypes, SDK_Globals } from '@topconsultnpm/sdk-ts';
|
|
5
|
+
let abortController = new AbortController();
|
|
6
|
+
export const useCheckInOutOperations = () => {
|
|
7
|
+
const [showHistory, setShowHistory] = useState(false);
|
|
8
|
+
// State to manage show history selected file
|
|
9
|
+
const [showCheckoutInformationForm, setShowCheckoutInformationForm] = useState(false);
|
|
10
|
+
// Stato per triggerare il refresh della preview dall'esterno
|
|
11
|
+
const [refreshPreviewTrigger, setRefreshPreviewTrigger] = useState(0);
|
|
12
|
+
// State to manage comment form
|
|
13
|
+
const [commentFormState, setCommentFormState] = useState({
|
|
14
|
+
removeAndEditAttachment: true,
|
|
15
|
+
show: false,
|
|
16
|
+
isRequired: false
|
|
17
|
+
});
|
|
18
|
+
// State variable to control the visibility of the wait panel
|
|
19
|
+
const [showCicoWaitPanel, setShowCicoWaitPanel] = useState(false);
|
|
20
|
+
// State variable to store the title of the wait panel
|
|
21
|
+
const [cicoWaitPanelTitle, setCicoWaitPanelTitle] = useState('');
|
|
22
|
+
// State variable to control the visibility of the primary section of the wait panel
|
|
23
|
+
const [showCicoPrimaryProgress, setShowCicoPrimaryProgress] = useState(false);
|
|
24
|
+
// State variable to store the primary text of the wait panel
|
|
25
|
+
const [cicoPrimaryProgressText, setCicoPrimaryProgressText] = useState('');
|
|
26
|
+
// State variable to track the current value of the primary progress indicator in the wait panel
|
|
27
|
+
const [cicoPrimaryProgressValue, setCicoPrimaryProgressValue] = useState(0);
|
|
28
|
+
// State variable to define the maximum value for the primary progress indicator in the wait panel
|
|
29
|
+
const [cicoPrimaryProgressMax, setCicoPrimaryProgressMax] = useState(0);
|
|
30
|
+
const showHistoryCallback = useCallback(() => {
|
|
31
|
+
setShowHistory(true);
|
|
32
|
+
}, []);
|
|
33
|
+
const hideHistoryCallback = useCallback(() => {
|
|
34
|
+
setShowHistory(false);
|
|
35
|
+
}, []);
|
|
36
|
+
const showCheckoutInformationFormCallback = useCallback(() => {
|
|
37
|
+
setShowCheckoutInformationForm(true);
|
|
38
|
+
}, []);
|
|
39
|
+
const hideCheckoutInformationFormCallback = useCallback(() => {
|
|
40
|
+
setShowCheckoutInformationForm(false);
|
|
41
|
+
}, []);
|
|
42
|
+
const triggerPreviewRefresh = useCallback(() => {
|
|
43
|
+
setRefreshPreviewTrigger(prev => prev + 1);
|
|
44
|
+
}, []);
|
|
45
|
+
const hideCommentFormCallback = useCallback(() => {
|
|
46
|
+
setCommentFormState(prev => ({ ...prev, show: false }));
|
|
47
|
+
}, []);
|
|
48
|
+
const copyCheckoutPathToClipboardCallback = (dcmt, filename) => {
|
|
49
|
+
const defaultCheckInOutFolder = SDKUI_Globals.userSettings.defaultCheckInOutFolder ?? "Download";
|
|
50
|
+
const wGSDraftCheckoutItemCurrentItems = [...SDKUI_Globals.userSettings.dcmtCheckoutInfo];
|
|
51
|
+
const existingItem = wGSDraftCheckoutItemCurrentItems.find((item) => item.TID === dcmt.TID.toString() && item.DID === dcmt.DID.toString());
|
|
52
|
+
const folder = existingItem && existingItem.checkoutFolder && existingItem.checkoutFolder !== "" ? existingItem.checkoutFolder : defaultCheckInOutFolder;
|
|
53
|
+
const name = existingItem?.checkoutName ?? getCicoDownloadFileName({ type: 'dcmtInfo', dcmtInfo: dcmt, originalFileName: filename }, true, false);
|
|
54
|
+
const textToCopy = folder ? `${folder}\\${name}` : name;
|
|
55
|
+
navigator.clipboard.writeText(textToCopy)
|
|
56
|
+
.then(() => {
|
|
57
|
+
ShowAlert({ message: SDKUI_Localizator.OperationSuccess, mode: 'success', duration: 5000, title: SDKUI_Localizator.CopyToClipboard });
|
|
58
|
+
})
|
|
59
|
+
.catch(err => {
|
|
60
|
+
ShowAlert({ message: err, mode: 'error', duration: 5000, title: SDKUI_Localizator.OperationResult });
|
|
61
|
+
});
|
|
62
|
+
};
|
|
63
|
+
const handleCheckOutCallback = async (dcmt, checkout, filename, downloadDcmtsAsync, refreshMetadataAsync, refreshFocusedDataRowAsync) => {
|
|
64
|
+
if (!dcmt)
|
|
65
|
+
throw new Error("Document info is required");
|
|
66
|
+
const title = checkout ? 'Check out' : SDKUI_Localizator.CancelCheckOut;
|
|
67
|
+
const msg = checkout ? SDKUI_Localizator.ExecuteCheckOutQuestion : SDKUI_Localizator.ExecuteCancelCheckOutQuestion;
|
|
68
|
+
TMMessageBoxManager.show({
|
|
69
|
+
title: title,
|
|
70
|
+
message: msg,
|
|
71
|
+
buttons: [ButtonNames.YES, ButtonNames.NO],
|
|
72
|
+
onButtonClick: async (e) => {
|
|
73
|
+
if (e !== ButtonNames.YES)
|
|
74
|
+
return;
|
|
75
|
+
let result = [];
|
|
76
|
+
try {
|
|
77
|
+
setCicoWaitPanelTitle(title);
|
|
78
|
+
setShowCicoWaitPanel(true);
|
|
79
|
+
setShowCicoPrimaryProgress(true);
|
|
80
|
+
abortController = new AbortController();
|
|
81
|
+
const ue = SDK_Globals.tmSession?.NewUpdateEngineByID();
|
|
82
|
+
if (!ue)
|
|
83
|
+
throw new Error("Update Engine not available");
|
|
84
|
+
ue.TID = dcmt.TID;
|
|
85
|
+
ue.DID = dcmt.DID;
|
|
86
|
+
if (checkout) {
|
|
87
|
+
await ue.CheckOutAsync()
|
|
88
|
+
.then(async () => {
|
|
89
|
+
await cicoDownloadFilesCallback([{ type: 'dcmtInfo', dcmtInfo: dcmt, originalFileName: filename }], true, downloadDcmtsAsync);
|
|
90
|
+
result.push({ rowIndex: 1, id1: dcmt.TID, id2: dcmt.DID, description: SDKUI_Localizator.UpdateCompletedSuccessfully, resultType: ResultTypes.SUCCESS });
|
|
91
|
+
await refreshMetadataAsync?.();
|
|
92
|
+
await refreshFocusedDataRowAsync?.(dcmt.TID, dcmt.DID, true);
|
|
93
|
+
})
|
|
94
|
+
.catch((error) => {
|
|
95
|
+
result.push({ rowIndex: 1, id1: dcmt.TID, id2: dcmt.DID, resultType: ResultTypes.ERROR, description: getExceptionMessage(error) });
|
|
96
|
+
throw error;
|
|
97
|
+
});
|
|
98
|
+
}
|
|
99
|
+
else {
|
|
100
|
+
await ue.UndoCheckOutAsync()
|
|
101
|
+
.then(async () => {
|
|
102
|
+
result.push({ rowIndex: 1, id1: dcmt.TID, id2: dcmt.DID, description: SDKUI_Localizator.UpdateCompletedSuccessfully, resultType: ResultTypes.SUCCESS });
|
|
103
|
+
// Remove the corresponding draft checkout item
|
|
104
|
+
updateCicoCheckoutStorageItem({ TID: dcmt.TID.toString(), DID: dcmt.DID.toString(), checkoutFolder: "", checkoutName: "" }, "dcmtInfo", "remove");
|
|
105
|
+
await refreshMetadataAsync?.();
|
|
106
|
+
await refreshFocusedDataRowAsync?.(dcmt.TID, dcmt.DID, true);
|
|
107
|
+
})
|
|
108
|
+
.catch((error) => {
|
|
109
|
+
result.push({ rowIndex: 0, id1: dcmt.TID, id2: dcmt.DID, resultType: ResultTypes.ERROR, description: getExceptionMessage(error) });
|
|
110
|
+
throw error;
|
|
111
|
+
});
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
catch (error) {
|
|
115
|
+
result.push({ rowIndex: 1, id1: dcmt.TID, id2: dcmt.DID, resultType: ResultTypes.ERROR, description: getExceptionMessage(error) });
|
|
116
|
+
}
|
|
117
|
+
finally {
|
|
118
|
+
setCicoPrimaryProgressText('');
|
|
119
|
+
setCicoPrimaryProgressMax(0);
|
|
120
|
+
setCicoPrimaryProgressValue(0);
|
|
121
|
+
setShowCicoWaitPanel(false);
|
|
122
|
+
TMResultManager.show(result, title, "ID", undefined);
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
});
|
|
126
|
+
};
|
|
127
|
+
const triggerCommentOnFileAdd = (addedFiles) => {
|
|
128
|
+
if (addedFiles.length > 0) {
|
|
129
|
+
setCommentFormState({
|
|
130
|
+
show: true,
|
|
131
|
+
isRequired: true,
|
|
132
|
+
removeAndEditAttachment: false
|
|
133
|
+
});
|
|
134
|
+
}
|
|
135
|
+
};
|
|
136
|
+
const handleCheckInCallback = async (dcmt, refreshMetadataAsync, refreshFocusedDataRowAsync) => {
|
|
137
|
+
if (!dcmt)
|
|
138
|
+
throw new Error("Document info is required");
|
|
139
|
+
// Create a new file input element
|
|
140
|
+
const input = document.createElement("input");
|
|
141
|
+
// Set the input type to "file" to allow file selection
|
|
142
|
+
input.type = "file";
|
|
143
|
+
// Set the accepted file types (e.g., images, PDFs, etc.)
|
|
144
|
+
input.accept = "*/*";
|
|
145
|
+
// Enable the input to accept one file at once
|
|
146
|
+
input.multiple = false;
|
|
147
|
+
// Add an event listener for when the file selection changes
|
|
148
|
+
input.addEventListener('change', async (event) => {
|
|
149
|
+
const fileInput = event.target;
|
|
150
|
+
if (!fileInput.files || fileInput.files.length === 0)
|
|
151
|
+
return;
|
|
152
|
+
const file = fileInput.files[0];
|
|
153
|
+
const validateFileName = validateCicoFileName({ type: 'dcmtInfo', dcmtInfo: dcmt, originalFileName: dcmt.fileName ?? SDKUI_Localizator.SearchResult }, file.name);
|
|
154
|
+
TMMessageBoxManager.show({
|
|
155
|
+
resizable: true,
|
|
156
|
+
buttons: [ButtonNames.YES, ButtonNames.NO],
|
|
157
|
+
message: renderCicoCheckInContent({ type: 'dcmtInfo', dcmtInfo: dcmt, originalFileName: dcmt.fileName ?? SDKUI_Localizator.SearchResult }, file, validateFileName.isValid, validateFileName.validationResults),
|
|
158
|
+
title: "Check in",
|
|
159
|
+
onButtonClick: async (e) => {
|
|
160
|
+
if (e !== ButtonNames.YES)
|
|
161
|
+
return;
|
|
162
|
+
setCicoWaitPanelTitle('Check in');
|
|
163
|
+
setShowCicoWaitPanel(true);
|
|
164
|
+
setShowCicoPrimaryProgress(true);
|
|
165
|
+
abortController = new AbortController();
|
|
166
|
+
let result = [];
|
|
167
|
+
let i = 0;
|
|
168
|
+
if (dcmt.TID && dcmt.DID) {
|
|
169
|
+
try {
|
|
170
|
+
const ue = SDK_Globals.tmSession?.NewUpdateEngineByID();
|
|
171
|
+
if (ue) {
|
|
172
|
+
ue.TID = dcmt.TID;
|
|
173
|
+
ue.DID = dcmt.DID;
|
|
174
|
+
await ue.CheckInAsync(file, "", abortController.signal);
|
|
175
|
+
// Remove the corresponding draft checkout item
|
|
176
|
+
updateCicoCheckoutStorageItem({ TID: dcmt.TID.toString(), DID: dcmt.DID.toString(), checkoutFolder: "", checkoutName: "" }, "dcmtInfo", "remove");
|
|
177
|
+
result.push({ rowIndex: i, id1: dcmt.DID, id2: dcmt.DID, description: SDKUI_Localizator.UpdateCompletedSuccessfully, resultType: ResultTypes.SUCCESS });
|
|
178
|
+
await refreshMetadataAsync?.();
|
|
179
|
+
await refreshFocusedDataRowAsync?.(dcmt.TID, dcmt.DID, true);
|
|
180
|
+
const cacheKey = `${dcmt.TID}-${dcmt.DID}`;
|
|
181
|
+
if (dcmtsFileCachePreview.has(cacheKey))
|
|
182
|
+
removeDcmtsFileCache(cacheKey);
|
|
183
|
+
triggerPreviewRefresh();
|
|
184
|
+
triggerCommentOnFileAdd([dcmt.DID]);
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
catch (err) {
|
|
188
|
+
result.push({ rowIndex: i, id1: i, id2: i, resultType: ResultTypes.ERROR, description: getExceptionMessage(err) });
|
|
189
|
+
}
|
|
190
|
+
finally {
|
|
191
|
+
setCicoPrimaryProgressText('');
|
|
192
|
+
setCicoPrimaryProgressMax(0);
|
|
193
|
+
setCicoPrimaryProgressValue(0);
|
|
194
|
+
setShowCicoWaitPanel(false);
|
|
195
|
+
TMResultManager.show(result, 'Check in', "ID", undefined, SDKUI_Localizator.CheckInSuccessMessage, 6000);
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
},
|
|
199
|
+
});
|
|
200
|
+
});
|
|
201
|
+
input.click();
|
|
202
|
+
};
|
|
203
|
+
return {
|
|
204
|
+
showHistory,
|
|
205
|
+
showHistoryCallback,
|
|
206
|
+
hideHistoryCallback,
|
|
207
|
+
showCheckoutInformationForm,
|
|
208
|
+
showCheckoutInformationFormCallback,
|
|
209
|
+
hideCheckoutInformationFormCallback,
|
|
210
|
+
commentFormState,
|
|
211
|
+
hideCommentFormCallback,
|
|
212
|
+
copyCheckoutPathToClipboardCallback,
|
|
213
|
+
handleCheckOutCallback,
|
|
214
|
+
handleCheckInCallback,
|
|
215
|
+
refreshPreviewTrigger,
|
|
216
|
+
showCicoWaitPanel,
|
|
217
|
+
cicoWaitPanelTitle,
|
|
218
|
+
showCicoPrimaryProgress,
|
|
219
|
+
cicoPrimaryProgressText,
|
|
220
|
+
cicoPrimaryProgressValue,
|
|
221
|
+
cicoPrimaryProgressMax,
|
|
222
|
+
};
|
|
223
|
+
};
|
|
@@ -14,6 +14,19 @@ export const useWorkflowApprove = () => {
|
|
|
14
14
|
const calculateTotalDcmtsFound = useCallback((data) => {
|
|
15
15
|
return data.reduce((sum, item) => sum + (item.dcmtsFound || 0), 0);
|
|
16
16
|
}, []);
|
|
17
|
+
/**
|
|
18
|
+
* Ottiene tutti i work items che corrispondono a un determinato DID.
|
|
19
|
+
* Restituisce un array di oggetti { tid, did }.
|
|
20
|
+
*/
|
|
21
|
+
const getWorkItemsByDID = useCallback((targetDID) => {
|
|
22
|
+
return workflowApproveData
|
|
23
|
+
.flatMap(workflow => workflow.dtdResult?.rows ?? [])
|
|
24
|
+
.filter(dataRow => Number(dataRow?.[1]) === targetDID)
|
|
25
|
+
.map(dataRow => ({
|
|
26
|
+
tid: Number(dataRow[0]),
|
|
27
|
+
did: targetDID
|
|
28
|
+
}));
|
|
29
|
+
}, [workflowApproveData]);
|
|
17
30
|
/**
|
|
18
31
|
* Esegue il fetch dei dati dal workflow, aggiorna lo stato globale
|
|
19
32
|
* e notifica gli altri componenti tramite un evento.
|
|
@@ -53,5 +66,5 @@ export const useWorkflowApprove = () => {
|
|
|
53
66
|
window.removeEventListener('onWorkflowApproveChange', handleUpdate);
|
|
54
67
|
};
|
|
55
68
|
}, [calculateTotalDcmtsFound]);
|
|
56
|
-
return { workflowApproveData, isLoading, refreshWorkflowApprove, totalDcmtsFound };
|
|
69
|
+
return { workflowApproveData, isLoading, refreshWorkflowApprove, totalDcmtsFound, getWorkItemsByDID };
|
|
57
70
|
};
|
package/lib/ts/types.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ReactNode } from "react";
|
|
2
|
-
import { FileFormats, ITopMediaSession, MetadataDescriptor, MetadataValueDescriptor, UserDescriptor, ValidationItem } from "@topconsultnpm/sdk-ts";
|
|
2
|
+
import { DataListItemDescriptor, FileFormats, ITopMediaSession, MetadataDescriptor, MetadataValueDescriptor, UserDescriptor, ValidationItem } from "@topconsultnpm/sdk-ts";
|
|
3
3
|
import { ITMEditorBase } from "../components/base/TMEditorBase";
|
|
4
4
|
import { IColumnProps } from "devextreme-react/data-grid";
|
|
5
5
|
export declare enum FormModes {
|
|
@@ -310,3 +310,58 @@ export declare enum buildTypes {
|
|
|
310
310
|
RTM = "RTM",
|
|
311
311
|
PATCH = "PATCH"
|
|
312
312
|
}
|
|
313
|
+
/**
|
|
314
|
+
* Descrive un'istanza di workflow per il contesto WorkflowCtrl.
|
|
315
|
+
* Contiene tutte le informazioni necessarie per recuperare i work items associati.
|
|
316
|
+
*/
|
|
317
|
+
export interface WFInstanceDescriptor {
|
|
318
|
+
/** ID dell'istanza */
|
|
319
|
+
instanceId: string;
|
|
320
|
+
/** Indice della riga nel search result */
|
|
321
|
+
rowIndex: number;
|
|
322
|
+
/** Struttura metadati completa da searchResultToDataSource: { [key: string]: { md: MetadataDescriptor, value: any } } */
|
|
323
|
+
values: any;
|
|
324
|
+
/** TID del documento workflow */
|
|
325
|
+
tid?: number;
|
|
326
|
+
/** DID del documento workflow */
|
|
327
|
+
did?: number;
|
|
328
|
+
/** ID del workflow */
|
|
329
|
+
wfid?: number;
|
|
330
|
+
/** MID del metadato che contiene lo stato del workflow */
|
|
331
|
+
mStatusMID?: number;
|
|
332
|
+
/** DataList ID per visualizzare lo stato */
|
|
333
|
+
mStatusDLID?: number;
|
|
334
|
+
}
|
|
335
|
+
/**
|
|
336
|
+
* Dettaglio di un singolo work item
|
|
337
|
+
*/
|
|
338
|
+
export interface WorkItemDetail {
|
|
339
|
+
wid: string;
|
|
340
|
+
tid: number;
|
|
341
|
+
did: number;
|
|
342
|
+
status?: DataListItemDescriptor;
|
|
343
|
+
setID: string;
|
|
344
|
+
response?: string;
|
|
345
|
+
creationTime?: Date;
|
|
346
|
+
completionTime?: Date;
|
|
347
|
+
from?: number;
|
|
348
|
+
to?: number;
|
|
349
|
+
toUser?: UserDescriptor;
|
|
350
|
+
or?: number;
|
|
351
|
+
}
|
|
352
|
+
/**
|
|
353
|
+
* Raggruppamento di work items per setID (e creationTime se lo step si ripete)
|
|
354
|
+
*/
|
|
355
|
+
export interface IWorkItemData {
|
|
356
|
+
wid: string;
|
|
357
|
+
category?: any;
|
|
358
|
+
type?: any;
|
|
359
|
+
name?: string;
|
|
360
|
+
description?: string;
|
|
361
|
+
setID: string;
|
|
362
|
+
creationTime?: Date;
|
|
363
|
+
setStatus?: DataListItemDescriptor;
|
|
364
|
+
setRule?: number;
|
|
365
|
+
details: WorkItemDetail[];
|
|
366
|
+
groupIndex?: number;
|
|
367
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@topconsultnpm/sdkui-react",
|
|
3
|
-
"version": "6.20.0-dev1.
|
|
3
|
+
"version": "6.20.0-dev1.60",
|
|
4
4
|
"description": "",
|
|
5
5
|
"scripts": {
|
|
6
6
|
"test": "echo \"Error: no test specified\" && exit 1",
|
|
@@ -9,6 +9,7 @@
|
|
|
9
9
|
"tm-build": "npm run clean && tsc && npm run copy-files",
|
|
10
10
|
"tm-watch": "tsc -w",
|
|
11
11
|
"tm-publish": "npm publish --tag latest",
|
|
12
|
+
"tm-publish_wl": "npm publish",
|
|
12
13
|
"storybook": "storybook dev -p 6006",
|
|
13
14
|
"build-storybook": "storybook build"
|
|
14
15
|
},
|
|
@@ -39,12 +40,14 @@
|
|
|
39
40
|
"lib"
|
|
40
41
|
],
|
|
41
42
|
"dependencies": {
|
|
42
|
-
"@topconsultnpm/sdk-ts": "6.20.0-dev1.
|
|
43
|
+
"@topconsultnpm/sdk-ts": "6.20.0-dev1.4",
|
|
43
44
|
"buffer": "^6.0.3",
|
|
44
45
|
"devextreme": "25.1.7",
|
|
45
46
|
"devextreme-react": "25.1.7",
|
|
46
47
|
"exceljs": "^4.4.0",
|
|
47
48
|
"htmlparser2": "^10.0.0",
|
|
49
|
+
"pdfjs-dist": "5.4.296",
|
|
50
|
+
"react-pdf": "^10.3.0",
|
|
48
51
|
"react-router-dom": "^6.15.0",
|
|
49
52
|
"styled-components": "^6.1.1"
|
|
50
53
|
},
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import { DcmtInfo } from "../../../ts";
|
|
2
|
-
interface TMSearchResultCheckoutInfoFormProps {
|
|
3
|
-
dtdName: string;
|
|
4
|
-
selectedDcmtOrFocused: DcmtInfo;
|
|
5
|
-
onClose: () => void;
|
|
6
|
-
}
|
|
7
|
-
declare const TMSearchResultCheckoutInfoForm: (props: TMSearchResultCheckoutInfoFormProps) => import("react/jsx-runtime").JSX.Element;
|
|
8
|
-
export default TMSearchResultCheckoutInfoForm;
|