@topconsultnpm/sdkui-react 6.22.0-dev2.4 → 6.22.0-dev2.41
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/components/NewComponents/ContextMenu/TMContextMenu.js +1 -1
- package/lib/components/NewComponents/FloatingMenuBar/TMFloatingMenuBar.js +1 -1
- package/lib/components/base/TMButton.d.ts +13 -0
- package/lib/components/base/TMButton.js +137 -5
- package/lib/components/base/TMDataGrid.d.ts +2 -0
- package/lib/components/base/TMDataGrid.js +81 -8
- package/lib/components/base/TMEditorBase.d.ts +2 -0
- package/lib/components/base/TMFileManager.js +5 -3
- package/lib/components/base/TMFileManagerUtils.d.ts +1 -0
- package/lib/components/base/TMFileManagerUtils.js +16 -0
- package/lib/components/base/TMModal.d.ts +11 -0
- package/lib/components/base/TMModal.js +47 -13
- package/lib/components/base/TMPanel.d.ts +1 -0
- package/lib/components/base/TMPanel.js +79 -20
- package/lib/components/base/TMPopUp.js +3 -0
- package/lib/components/base/TMTooltip.d.ts +2 -1
- package/lib/components/base/TMTooltip.js +23 -6
- package/lib/components/base/TMTreeView.js +108 -67
- package/lib/components/choosers/TMDcmtTypeChooser.js +4 -3
- package/lib/components/choosers/TMDistinctValues.d.ts +9 -7
- package/lib/components/choosers/TMDistinctValues.js +149 -142
- package/lib/components/choosers/TMMetadataChooser.js +1 -1
- package/lib/components/choosers/TMQuickSearchInfo.d.ts +12 -0
- package/lib/components/choosers/TMQuickSearchInfo.js +279 -0
- package/lib/components/choosers/TMQuickSearchSettingsForm.d.ts +16 -0
- package/lib/components/choosers/TMQuickSearchSettingsForm.js +94 -0
- package/lib/components/choosers/TMSelectedValuesSummary.d.ts +13 -0
- package/lib/components/choosers/TMSelectedValuesSummary.js +91 -0
- package/lib/components/editors/TMDropDown.d.ts +3 -0
- package/lib/components/editors/TMDropDown.js +197 -5
- package/lib/components/editors/TMMetadataEditor.d.ts +5 -1
- package/lib/components/editors/TMMetadataEditor.js +8 -3
- package/lib/components/editors/TMTextBox.js +2 -2
- package/lib/components/features/documents/TMBatchUpdateForm.js +19 -5
- package/lib/components/features/documents/TMDcmtBlog.d.ts +3 -0
- package/lib/components/features/documents/TMDcmtBlog.js +4 -4
- package/lib/components/features/documents/TMDcmtForm.d.ts +7 -0
- package/lib/components/features/documents/TMDcmtForm.js +112 -45
- package/lib/components/features/documents/TMDcmtFormActionButtons.d.ts +11 -0
- package/lib/components/features/documents/TMDcmtFormActionButtons.js +74 -7
- package/lib/components/features/documents/TMDcmtPreview.js +10 -6
- package/lib/components/features/documents/TMMasterDetailDcmts.js +95 -33
- package/lib/components/features/documents/TMMasterInfoFields.d.ts +19 -0
- package/lib/components/features/documents/TMMasterInfoFields.js +186 -0
- package/lib/components/features/documents/TMMergeToPdfForm.d.ts +1 -2
- package/lib/components/features/documents/TMMergeToPdfForm.js +30 -5
- package/lib/components/features/documents/TMMultiMasterDetailDcmtsForm.d.ts +45 -0
- package/lib/components/features/documents/TMMultiMasterDetailDcmtsForm.js +323 -0
- package/lib/components/features/documents/TMMultiMasterDetailDcmtsUtils.d.ts +370 -0
- package/lib/components/features/documents/TMMultiMasterDetailDcmtsUtils.js +283 -0
- package/lib/components/features/documents/TMRelationViewer.d.ts +14 -1
- package/lib/components/features/documents/TMRelationViewer.js +69 -20
- package/lib/components/features/search/TMSearch.js +31 -18
- package/lib/components/features/search/TMSearchQueryEditor.js +5 -3
- package/lib/components/features/search/TMSearchQueryPanel.d.ts +2 -1
- package/lib/components/features/search/TMSearchQueryPanel.js +45 -9
- package/lib/components/features/search/TMSearchResult.d.ts +15 -0
- package/lib/components/features/search/TMSearchResult.js +509 -187
- package/lib/components/features/search/TMTreeSelector.js +18 -5
- package/lib/components/features/workflow/TMWorkflowPopup.d.ts +10 -0
- package/lib/components/features/workflow/TMWorkflowPopup.js +8 -4
- package/lib/components/layout/panelManager/TMPanelManagerContainer.d.ts +1 -0
- package/lib/components/layout/panelManager/TMPanelManagerContainer.js +24 -14
- package/lib/components/layout/panelManager/TMPanelManagerContext.js +68 -93
- package/lib/components/layout/panelManager/TMPanelWrapper.js +2 -2
- package/lib/components/layout/panelManager/types.d.ts +3 -0
- package/lib/components/layout/panelManager/utils.js +13 -11
- package/lib/components/viewers/TMMidViewer.js +4 -1
- package/lib/components/viewers/TMTidViewer.js +25 -11
- package/lib/devextreme-license.d.ts +1 -0
- package/lib/devextreme-license.js +3 -0
- package/lib/helper/SDKUI_Globals.d.ts +109 -0
- package/lib/helper/SDKUI_Globals.js +150 -0
- package/lib/helper/SDKUI_Localizator.d.ts +34 -0
- package/lib/helper/SDKUI_Localizator.js +340 -0
- package/lib/helper/TMIcons.d.ts +1 -0
- package/lib/helper/TMIcons.js +3 -0
- package/lib/helper/dataGridSearchHelper.d.ts +28 -0
- package/lib/helper/dataGridSearchHelper.js +51 -0
- package/lib/helper/dcmtsHelper.d.ts +20 -0
- package/lib/helper/dcmtsHelper.js +58 -1
- package/lib/helper/helpers.d.ts +20 -0
- package/lib/helper/helpers.js +55 -1
- package/lib/helper/index.d.ts +1 -0
- package/lib/helper/index.js +1 -0
- package/lib/helper/queryHelper.d.ts +2 -0
- package/lib/helper/queryHelper.js +3 -1
- package/lib/hooks/tmDistinctValuesGridHelper.d.ts +16 -0
- package/lib/hooks/tmDistinctValuesGridHelper.js +31 -0
- package/lib/hooks/useArchiveListForm.d.ts +39 -0
- package/lib/hooks/useArchiveListForm.js +46 -0
- package/lib/hooks/useCaseFlowApprove.d.ts +56 -0
- package/lib/hooks/useCaseFlowApprove.js +157 -0
- package/lib/hooks/useDataUserIdItem.d.ts +1 -0
- package/lib/hooks/useDataUserIdItem.js +1 -0
- package/lib/hooks/useDocumentOperations.d.ts +4 -0
- package/lib/hooks/useDocumentOperations.js +41 -7
- package/lib/hooks/useMultiMasterDetailDcmts.d.ts +113 -0
- package/lib/hooks/useMultiMasterDetailDcmts.js +760 -0
- package/lib/hooks/useRelatedDocuments.js +2 -26
- package/lib/hooks/useShowDossiersV5.d.ts +12 -0
- package/lib/hooks/useShowDossiersV5.js +37 -0
- package/lib/hooks/useTMDistinctValuesMetadataDisplay.d.ts +18 -0
- package/lib/hooks/useTMDistinctValuesMetadataDisplay.js +103 -0
- package/lib/hooks/useTMDistinctValuesQuickSearch.d.ts +49 -0
- package/lib/hooks/useTMDistinctValuesQuickSearch.js +307 -0
- package/lib/hooks/useTMDistinctValuesSelection.d.ts +42 -0
- package/lib/hooks/useTMDistinctValuesSelection.js +103 -0
- package/lib/hooks/useTMDistinctValuesSource.d.ts +29 -0
- package/lib/hooks/useTMDistinctValuesSource.js +105 -0
- package/lib/index.d.ts +2 -0
- package/lib/index.js +5 -2
- package/lib/services/caseflow/CaseFlowService.d.ts +236 -0
- package/lib/services/caseflow/CaseFlowService.js +693 -0
- package/lib/services/caseflow/CaseFlowTemplateCacheService.d.ts +28 -0
- package/lib/services/caseflow/CaseFlowTemplateCacheService.js +121 -0
- package/lib/services/caseflow/caseFlowNameCache.d.ts +32 -0
- package/lib/services/caseflow/caseFlowNameCache.js +116 -0
- package/lib/services/caseflow/caseFlowWorkItemUtils.d.ts +61 -0
- package/lib/services/caseflow/caseFlowWorkItemUtils.js +113 -0
- package/lib/services/index.d.ts +4 -0
- package/lib/services/index.js +4 -0
- package/lib/services/platform_services.d.ts +1 -1
- package/package.json +9 -5
|
@@ -21,10 +21,11 @@ import { useDcmtOperations } from "./useDcmtOperations";
|
|
|
21
21
|
import useFloatingBarPinnedItems from "./useFloatingBarPinnedItems";
|
|
22
22
|
import { useInputAttachmentsDialog, useInputCvtFormatDialog } from "./useInputDialog";
|
|
23
23
|
import { useRelatedDocuments } from "./useRelatedDocuments";
|
|
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, isConvertibleToPdfExt, isPdfEditorAvailable, S4T_USER_REGISTRY_MASTER, SDKUI_Globals, SDKUI_Localizator, searchResultToMetadataValues, TMImageLibrary, IconCertificateBadge } from '../helper';
|
|
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, isConvertibleToPdfExt, isPdfEditorAvailable, S4T_USER_REGISTRY_MASTER, SDKUI_Globals, SDKUI_Localizator, searchResultToMetadataValues, TMImageLibrary, IconCertificateBadge, IconArchiveMultipleDetailDocuments } from '../helper';
|
|
25
25
|
import { isXMLFileExt } from "../helper/dcmtsHelper";
|
|
26
26
|
import TMCopyToFolderForm from "../components/features/documents/TMCopyToFolderForm";
|
|
27
27
|
import TMMergeToPdfForm from "../components/features/documents/TMMergeToPdfForm";
|
|
28
|
+
import TMMultiMasterDetailDcmtsForm from "../components/features/documents/TMMultiMasterDetailDcmtsForm";
|
|
28
29
|
export const getSelectedDcmtsOrFocused = (selectedItems, focusedItem, fileFormat) => {
|
|
29
30
|
if (selectedItems.length <= 0 && !focusedItem)
|
|
30
31
|
return [];
|
|
@@ -149,9 +150,16 @@ export const useDocumentOperations = (props) => {
|
|
|
149
150
|
const [showFloatingBar, setShowFloatingBar] = useState(allowFloatingBar);
|
|
150
151
|
const [isOpenDcmtForm, setIsOpenDcmtForm] = useState(false);
|
|
151
152
|
const [dcmtFormLayoutMode, setDcmtFormLayoutMode] = useState(LayoutModes.Update);
|
|
153
|
+
/**
|
|
154
|
+
* Il form del documento è a popup: si sovrappone a chi lo ha aperto, che resta visibile sotto e non
|
|
155
|
+
* va nascosto. Oltre ai contesti che lo chiedono (openDcmtFormAsModal) è il caso della duplicazione,
|
|
156
|
+
* che parte da un documento a video (LayoutModes.Ark con un DID) per proporne uno nuovo da archiviare.
|
|
157
|
+
*/
|
|
158
|
+
const isDcmtFormModal = openDcmtFormAsModal || (dcmtFormLayoutMode === LayoutModes.Ark && focusedItem?.DID !== undefined);
|
|
152
159
|
const [currentCustomButton, setCurrentCustomButton] = useState();
|
|
153
160
|
// State to control the visibility of the details form
|
|
154
161
|
const [showSearchTMDatagrid, setShowSearchTMDatagrid] = useState(false);
|
|
162
|
+
const [showDcmtTypesSelection, setShowDcmtTypesSelection] = useState(false);
|
|
155
163
|
const [secondaryMasterDcmts, setSecondaryMasterDcmts] = useState([]);
|
|
156
164
|
const [isOpenSharedArchive, setIsOpenSharedArchive] = useState(false);
|
|
157
165
|
const [sharedDcmtFile, setSharedDcmtFile] = useState(undefined);
|
|
@@ -169,6 +177,7 @@ export const useDocumentOperations = (props) => {
|
|
|
169
177
|
// State to control modal opening for master/detail documents
|
|
170
178
|
const [isOpenDetailsModal, setIsOpenDetailsModal] = useState(false);
|
|
171
179
|
const [isOpenMasterModal, setIsOpenMasterModal] = useState(false);
|
|
180
|
+
const [isOpenMultiDetailModal, setIsOpenMultiDetailModal] = useState(false);
|
|
172
181
|
const openDetailDcmtsFormHandler = (value) => { setIsOpenDetails(value); };
|
|
173
182
|
const openMasterDcmtsFormHandler = (value) => { setIsOpenMaster(value); };
|
|
174
183
|
const openDetailDcmtsModalHandler = (value) => { setIsOpenDetailsModal(value); };
|
|
@@ -907,10 +916,18 @@ export const useDocumentOperations = (props) => {
|
|
|
907
916
|
id: 'rel-ark-det',
|
|
908
917
|
icon: _jsx(IconArchiveDetail, {}),
|
|
909
918
|
name: SDKUI_Localizator.ArchiveDetailDocument,
|
|
910
|
-
operationType: '
|
|
911
|
-
disabled: canArchiveDetailRelation !== true,
|
|
919
|
+
operationType: 'singleRow',
|
|
920
|
+
disabled: canArchiveDetailRelation !== true || isDisabledForMultiRow(),
|
|
912
921
|
onClick: async () => await archiveDetailDocuments(selectedDcmtInfos?.[0]?.TID)
|
|
913
922
|
},
|
|
923
|
+
{
|
|
924
|
+
id: 'multi-detail',
|
|
925
|
+
icon: _jsx(IconArchiveMultipleDetailDocuments, {}),
|
|
926
|
+
name: SDKUI_Localizator.ArchiveMultipleDetailDocuments,
|
|
927
|
+
operationType: 'singleRow',
|
|
928
|
+
disabled: canArchiveDetailRelation !== true || isDisabledForMultiRow(),
|
|
929
|
+
onClick: () => setIsOpenMultiDetailModal(true),
|
|
930
|
+
},
|
|
914
931
|
{
|
|
915
932
|
id: 'rel-mst',
|
|
916
933
|
icon: _jsx(IconDetailDcmts, { transform: 'scale(-1, 1)' }),
|
|
@@ -1054,6 +1071,7 @@ export const useDocumentOperations = (props) => {
|
|
|
1054
1071
|
]
|
|
1055
1072
|
};
|
|
1056
1073
|
};
|
|
1074
|
+
const canToggleDcmtTypesSelection = !isMobile && context === SearchResultContext.WORKFLOW_APPROVE;
|
|
1057
1075
|
const otherOperationsMenuItem = () => {
|
|
1058
1076
|
return {
|
|
1059
1077
|
id: 'oth',
|
|
@@ -1085,7 +1103,15 @@ export const useDocumentOperations = (props) => {
|
|
|
1085
1103
|
disabled: false,
|
|
1086
1104
|
onClick: () => setShowFloatingBar(prev => !prev)
|
|
1087
1105
|
}]
|
|
1088
|
-
: [])
|
|
1106
|
+
: []),
|
|
1107
|
+
{
|
|
1108
|
+
id: 'oth-dcmt-types',
|
|
1109
|
+
icon: showDcmtTypesSelection ? _jsx(IconHide, {}) : _jsx(IconShow, {}),
|
|
1110
|
+
name: showDcmtTypesSelection ? SDKUI_Localizator.HideDcmtTypes : SDKUI_Localizator.ShowDcmtTypes,
|
|
1111
|
+
visible: canToggleDcmtTypesSelection,
|
|
1112
|
+
disabled: false,
|
|
1113
|
+
onClick: () => setShowDcmtTypesSelection(prev => !prev)
|
|
1114
|
+
}
|
|
1089
1115
|
]
|
|
1090
1116
|
};
|
|
1091
1117
|
};
|
|
@@ -1345,6 +1371,10 @@ export const useDocumentOperations = (props) => {
|
|
|
1345
1371
|
dcmtUtility,
|
|
1346
1372
|
fetchRemoteCertificates
|
|
1347
1373
|
};
|
|
1374
|
+
// Navigazione del master nell'archiviazione multipla dei dettagli: il modale prende il documento
|
|
1375
|
+
// con il focus, quindi le frecce hanno senso solo senza selezione a checkbox, che ha la precedenza
|
|
1376
|
+
// sul focus e terrebbe il master fermo (vedi getSelectedDcmtsOrFocused)
|
|
1377
|
+
const canNavigateMultiDetailMaster = !!canNavigateHandler && !!onNavigateHandler && selectedItems.length === 0 && selectedDcmtInfos.length === 1;
|
|
1348
1378
|
const masterDetailMasterCommonProps = {
|
|
1349
1379
|
deviceType,
|
|
1350
1380
|
isForMaster: true,
|
|
@@ -1373,15 +1403,16 @@ export const useDocumentOperations = (props) => {
|
|
|
1373
1403
|
dcmtUtility,
|
|
1374
1404
|
fetchRemoteCertificates
|
|
1375
1405
|
};
|
|
1376
|
-
const renderDcmtOperations = (_jsxs(_Fragment, { children: [(showExportForm && searchResult && dataColumns && dataSource && selectedRowKeys) && (_jsx(TMDataGridExportForm, { dataColumns: dataColumns, dataSource: dataSource, selectedRowKeys: selectedRowKeys, onCloseExportForm: () => setShowExportForm(false), searchResult: searchResult })), _jsx(StyledMultiViewPanel, { "$isVisible": isOpenDcmtForm, children: ((isOpenDcmtForm && focusedItem?.TID !== undefined && focusedItem?.DID !== undefined) &&
|
|
1377
|
-
_jsx(TMDcmtForm, { isModal:
|
|
1406
|
+
const renderDcmtOperations = (_jsxs(_Fragment, { children: [(showExportForm && searchResult && dataColumns && dataSource && selectedRowKeys) && (_jsx(TMDataGridExportForm, { dataColumns: dataColumns, dataSource: dataSource, selectedRowKeys: selectedRowKeys, onCloseExportForm: () => setShowExportForm(false), searchResult: searchResult })), _jsx(StyledMultiViewPanel, { "$isVisible": isOpenDcmtForm && !isDcmtFormModal, children: ((isOpenDcmtForm && focusedItem?.TID !== undefined && focusedItem?.DID !== undefined) &&
|
|
1407
|
+
_jsx(TMDcmtForm, { isModal: isDcmtFormModal, titleModal: dtd?.name ?? '', TID: focusedItem.TID, DID: focusedItem.DID, allowButtonsRefs: true, showTodoDcmtForm: showTodoDcmtForm, layoutMode: dcmtFormLayoutMode, count: visibleItems?.length, itemIndex: visibleItems ? visibleItems.findIndex(o => o.rowIndex === focusedItem?.rowIndex) + 1 : undefined, canNext: canNavigateHandler ? canNavigateHandler('next') : false, canPrev: canNavigateHandler ? canNavigateHandler('prev') : false, onNext: () => onNavigateHandler && onNavigateHandler('next'), onPrev: () => onNavigateHandler && onNavigateHandler('prev'), onClose: () => { (false); onDcmtFormOpenChange(false, LayoutModes.Update); }, onWFOperationCompleted: onWFOperationCompleted, onTaskCreateRequest: onTaskCreateRequest, onSavedAsyncCallback: onSavedAsyncCallback, openS4TViewer: openS4TViewer, onOpenS4TViewerRequest: onOpenS4TViewerRequest, editPdfForm: editPdfForm, onOpenPdfEditorRequest: onOpenPdfEditorRequest, openFileUploaderPdfEditor: openFileUploaderPdfEditor, onReferenceClick: onReferenceClick, allTasks: allTasks, getAllTasks: getAllTasks, deleteTaskByIdsCallback: deleteTaskByIdsCallback, addTaskCallback: addTaskCallback, editTaskCallback: editTaskCallback, handleNavigateToWGs: handleNavigateToWGs, handleNavigateToDossiers: handleNavigateToDossiers, moreInfoTasks: getMoreInfoTasksForDocument(allTasks, focusedItem?.TID, focusedItem?.DID), showDcmtFormSidebar: showDcmtFormSidebar, datagridUtility: {
|
|
1378
1408
|
onRefreshSearchAsyncDatagrid,
|
|
1379
1409
|
onRefreshDataRowsAsync,
|
|
1380
1410
|
refreshFocusedDataRowAsync,
|
|
1381
1411
|
onRefreshBlogDatagrid,
|
|
1382
1412
|
onRefreshPreviewDatagrid
|
|
1383
1413
|
}, fetchRemoteCertificates: fetchRemoteCertificates, graphometricManager: graphometricManager })) }), (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) &&
|
|
1384
|
-
_jsx(TMDcmtCheckoutInfoForm, { dtdName: dtd.name ?? SDKUI_Localizator.SearchResult, selectedDcmtOrFocused: selectedDcmtInfos[0], onClose: hideCheckoutInformationFormCallback }), isOpenDetailsModal && _jsx(TMModal, { width: "95%", height: "95%", onClose: () => setIsOpenDetailsModal(false), title: SDKUI_Localizator.Relations, children: _jsx(TMMasterDetailDcmts, { ...masterDetailDetailsCommonProps, onBack: () => setIsOpenDetailsModal(false) }) }), _jsx(StyledMultiViewPanel, { "$isVisible": isOpenDetails, children: isOpenDetails && _jsx(TMMasterDetailDcmts, { ...masterDetailDetailsCommonProps, onBack: () => setIsOpenDetails(false) }) }),
|
|
1414
|
+
_jsx(TMDcmtCheckoutInfoForm, { dtdName: dtd.name ?? SDKUI_Localizator.SearchResult, selectedDcmtOrFocused: selectedDcmtInfos[0], onClose: hideCheckoutInformationFormCallback }), isOpenDetailsModal && _jsx(TMModal, { width: "95%", height: "95%", onClose: () => setIsOpenDetailsModal(false), title: SDKUI_Localizator.Relations, children: _jsx(TMMasterDetailDcmts, { ...masterDetailDetailsCommonProps, onBack: () => setIsOpenDetailsModal(false) }) }), _jsx(StyledMultiViewPanel, { "$isVisible": isOpenDetails, children: isOpenDetails && _jsx(TMMasterDetailDcmts, { ...masterDetailDetailsCommonProps, onBack: () => setIsOpenDetails(false) }) }), (isOpenMultiDetailModal && dtd) &&
|
|
1415
|
+
_jsx(TMMultiMasterDetailDcmtsForm, { dtd: dtd, masterDcmt: selectedDcmtInfos[0], onClose: () => setIsOpenMultiDetailModal(false), canNavigateMaster: canNavigateMultiDetailMaster ? canNavigateHandler : undefined, onNavigateMaster: canNavigateMultiDetailMaster ? onNavigateHandler : undefined, allTasks: allTasks, getAllTasks: getAllTasks, deleteTaskByIdsCallback: deleteTaskByIdsCallback, addTaskCallback: addTaskCallback, editTaskCallback: editTaskCallback, handleNavigateToWGs: handleNavigateToWGs, handleNavigateToDossiers: handleNavigateToDossiers, showDcmtFormSidebar: showDcmtFormSidebar, showTodoDcmtForm: showTodoDcmtForm, openFileUploaderPdfEditor: openFileUploaderPdfEditor, graphometricManager: graphometricManager, editPdfForm: editPdfForm, openS4TViewer: openS4TViewer, showToppyDraggableHelpCenter: showToppyDraggableHelpCenter, toppyHelpCenterUsePortal: toppyHelpCenterUsePortal, fetchRemoteCertificates: fetchRemoteCertificates, onOpenS4TViewerRequest: onOpenS4TViewerRequest, onOpenPdfEditorRequest: onOpenPdfEditorRequest, onReferenceClick: onReferenceClick, onTaskCreateRequest: onTaskCreateRequest, onRefreshAfterAddDcmtToFavs: onRefreshAfterAddDcmtToFavs, onFileOpened: onFileOpened, passToArchiveCallback: passToArchiveCallback, openWGsCopyMoveForm: openWGsCopyMoveForm }), isOpenMasterModal && _jsx(TMModal, { width: "95%", height: "95%", onClose: () => setIsOpenMasterModal(false), title: SDKUI_Localizator.Relations, children: _jsx(TMMasterDetailDcmts, { ...masterDetailMasterCommonProps, onBack: () => setIsOpenMasterModal(false) }) }), _jsxs(StyledMultiViewPanel, { "$isVisible": isOpenMaster, children: [isOpenMaster && _jsx(TMMasterDetailDcmts, { ...masterDetailMasterCommonProps, onBack: () => setIsOpenMaster(false) }), secondaryMasterDcmts.length > 0 && secondaryMasterDcmts.map((dcmt, index) => {
|
|
1385
1416
|
return (_jsx(StyledModalContainer, { style: { backgroundColor: 'white' }, children: _jsx(TMMasterDetailDcmts, { ...masterDetailMasterCommonProps, inputDcmts: [dcmt], allowNavigation: false, onBack: () => handleRemoveItem(dcmt.TID, dcmt.DID) }) }, `${index}-${dcmt.DID}`));
|
|
1386
1417
|
})] }), 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: () => {
|
|
1387
1418
|
setIsOpenArchiveRelationForm(false);
|
|
@@ -1446,14 +1477,17 @@ export const useDocumentOperations = (props) => {
|
|
|
1446
1477
|
} }))] }));
|
|
1447
1478
|
return {
|
|
1448
1479
|
operationItems: operationItems(),
|
|
1480
|
+
selectedDcmtInfos,
|
|
1449
1481
|
renderFloatingBar,
|
|
1450
1482
|
renderDcmtOperations,
|
|
1451
1483
|
features: {
|
|
1452
1484
|
isOpenDcmtForm,
|
|
1485
|
+
isDcmtFormModal,
|
|
1453
1486
|
openFormHandler,
|
|
1454
1487
|
dcmtFormLayoutMode,
|
|
1455
1488
|
onDcmtFormOpenChange,
|
|
1456
1489
|
showSearchTMDatagrid,
|
|
1490
|
+
showDcmtTypesSelection,
|
|
1457
1491
|
showExportForm,
|
|
1458
1492
|
isOpenBatchUpdate,
|
|
1459
1493
|
isModifiedBatchUpdate,
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
import { DcmtTypeDescriptor, RelationDescriptor, SearchResultDescriptor } from '@topconsultnpm/sdk-ts';
|
|
2
|
+
import { IColumnProps } from 'devextreme-react/data-grid';
|
|
3
|
+
import { DcmtInfo, MetadataValueDescriptorEx } from '../ts';
|
|
4
|
+
import { AccordionSection, ArchiveRow, ArchiveRowChanges, DetailRelationItem, MetadataScalarValue } from '../components/features/documents/TMMultiMasterDetailDcmtsUtils';
|
|
5
|
+
/** Fasi del flusso di archiviazione multipla dei dettagli */
|
|
6
|
+
export declare enum MultiDetailArchivePhase {
|
|
7
|
+
/** Scelta del tipo documento */
|
|
8
|
+
SelectDcmtType = 0,
|
|
9
|
+
/** Riepilogo delle archiviazioni */
|
|
10
|
+
ArchiveSummary = 1
|
|
11
|
+
}
|
|
12
|
+
/** Riga di riepilogo: definita con i tipi della feature (vedi TMMultiMasterDetailDcmtsUtils) */
|
|
13
|
+
export type { ArchiveRow };
|
|
14
|
+
/** Coppia mid/valore per pre-compilare il form */
|
|
15
|
+
export type MidValue = {
|
|
16
|
+
mid: number;
|
|
17
|
+
value: string;
|
|
18
|
+
};
|
|
19
|
+
/** Stato del wait panel: le chiavi sono quelle dei props di TMLayoutWaitingContainer */
|
|
20
|
+
export type WaitPanelState = {
|
|
21
|
+
showWaitPanel: boolean;
|
|
22
|
+
waitPanelTitle: string;
|
|
23
|
+
showWaitPanelPrimary: boolean;
|
|
24
|
+
waitPanelTextPrimary: string;
|
|
25
|
+
waitPanelValuePrimary: number;
|
|
26
|
+
waitPanelMaxValuePrimary: number;
|
|
27
|
+
showWaitPanelSecondary: boolean;
|
|
28
|
+
waitPanelTextSecondary: string;
|
|
29
|
+
waitPanelValueSecondary: number;
|
|
30
|
+
waitPanelMaxValueSecondary: number;
|
|
31
|
+
};
|
|
32
|
+
interface UseMultiMasterDetailDcmtsParams {
|
|
33
|
+
/** Tipo documento del master */
|
|
34
|
+
dtd: DcmtTypeDescriptor;
|
|
35
|
+
/** Documento master da cui parte l'archiviazione dei dettagli */
|
|
36
|
+
masterDcmt: DcmtInfo;
|
|
37
|
+
/** Chiusura del modale */
|
|
38
|
+
onClose: () => void;
|
|
39
|
+
/** true se nella lista di provenienza c'è un documento precedente/successivo su cui spostare il master */
|
|
40
|
+
canNavigateMaster?: (dir: 'next' | 'prev') => boolean;
|
|
41
|
+
/** Sposta il focus della lista di provenienza: il master arriva da lì e cambia da sé (vedi masterDcmt) */
|
|
42
|
+
onNavigateMaster?: (dir: 'next' | 'prev') => void;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Logica dell'archiviazione multipla dei dettagli: relazioni, sezioni, righe del riepilogo e
|
|
46
|
+
* archiviazione. Il rendering sta in TMMultiMasterDetailDcmtsForm
|
|
47
|
+
*/
|
|
48
|
+
export declare const useMultiMasterDetailDcmts: ({ dtd, masterDcmt, onClose, canNavigateMaster, onNavigateMaster }: UseMultiMasterDetailDcmtsParams) => {
|
|
49
|
+
isLoading: boolean;
|
|
50
|
+
isSummaryReady: boolean;
|
|
51
|
+
phase: MultiDetailArchivePhase;
|
|
52
|
+
setPhase: import("react").Dispatch<import("react").SetStateAction<MultiDetailArchivePhase>>;
|
|
53
|
+
detailRelationItems: DetailRelationItem[];
|
|
54
|
+
selectedRelation: RelationDescriptor | undefined;
|
|
55
|
+
selectedItem: DetailRelationItem | undefined;
|
|
56
|
+
hasMultipleTypes: boolean;
|
|
57
|
+
selectRelation: (item: DetailRelationItem) => void;
|
|
58
|
+
backToTypeSelection: () => void;
|
|
59
|
+
isBackLocked: boolean;
|
|
60
|
+
closeModal: () => void;
|
|
61
|
+
isMasterNavigationEnabled: boolean;
|
|
62
|
+
canNavigateMasterPrev: boolean;
|
|
63
|
+
canNavigateMasterNext: boolean;
|
|
64
|
+
navigateMaster: (dir: "next" | "prev") => void;
|
|
65
|
+
sectionsOpen: Record<AccordionSection, boolean>;
|
|
66
|
+
setSectionOpen: (section: AccordionSection, isOpen: boolean) => void;
|
|
67
|
+
openAllSections: () => void;
|
|
68
|
+
clearLayout: () => void;
|
|
69
|
+
layoutResetToken: number;
|
|
70
|
+
hasSavedLayout: boolean;
|
|
71
|
+
setHasSavedLayout: import("react").Dispatch<import("react").SetStateAction<boolean>>;
|
|
72
|
+
canUpdateMaster: boolean;
|
|
73
|
+
masterFieldsCount: number;
|
|
74
|
+
getMasterMetadataAsync: () => Promise<Map<number, MetadataScalarValue>>;
|
|
75
|
+
masterInfoReloadToken: number;
|
|
76
|
+
isOpenMasterForm: boolean;
|
|
77
|
+
setIsOpenMasterForm: import("react").Dispatch<import("react").SetStateAction<boolean>>;
|
|
78
|
+
handleMasterSavedAsync: () => Promise<void>;
|
|
79
|
+
archivedDetailResults: SearchResultDescriptor[];
|
|
80
|
+
archivedDetailsCount: number;
|
|
81
|
+
isLoadingArchivedDetails: boolean;
|
|
82
|
+
refreshArchivedDetailsAsync: () => Promise<void>;
|
|
83
|
+
detailColumns: IColumnProps[];
|
|
84
|
+
detailSupportsFile: boolean;
|
|
85
|
+
archiveRows: ArchiveRow[];
|
|
86
|
+
currentRows: ArchiveRow[];
|
|
87
|
+
focusedRowKey: number | undefined;
|
|
88
|
+
setFocusedRowKey: import("react").Dispatch<import("react").SetStateAction<number | undefined>>;
|
|
89
|
+
selectedRowKeys: number[];
|
|
90
|
+
setSelectedRowKeys: import("react").Dispatch<import("react").SetStateAction<number[]>>;
|
|
91
|
+
isOpenAddForm: boolean;
|
|
92
|
+
editingRowId: number | undefined;
|
|
93
|
+
editingRow: ArchiveRow | undefined;
|
|
94
|
+
formInputMids: MidValue[];
|
|
95
|
+
openAddForm: () => void;
|
|
96
|
+
openEditForm: (row: ArchiveRow | undefined) => void;
|
|
97
|
+
closeAddForm: () => void;
|
|
98
|
+
deleteRow: (row: ArchiveRow | undefined) => void;
|
|
99
|
+
duplicateRow: (row: ArchiveRow | undefined) => void;
|
|
100
|
+
upsertRow: (values: Array<MetadataValueDescriptorEx>, file: File | undefined) => void;
|
|
101
|
+
updateRowValues: (rowId: number, changes: ArchiveRowChanges) => void;
|
|
102
|
+
copyArchivedDetailToRows: (dcmt: {
|
|
103
|
+
TID?: number | string;
|
|
104
|
+
DID?: number | string;
|
|
105
|
+
FILEEXT?: string;
|
|
106
|
+
} | undefined) => Promise<void>;
|
|
107
|
+
stopOnFirstError: boolean;
|
|
108
|
+
setStopOnFirstError: import("react").Dispatch<import("react").SetStateAction<boolean>>;
|
|
109
|
+
isArchiving: boolean;
|
|
110
|
+
archiveAllAsync: () => Promise<void>;
|
|
111
|
+
waitPanel: WaitPanelState;
|
|
112
|
+
abortController: AbortController | undefined;
|
|
113
|
+
};
|