@topconsultnpm/sdkui-react 6.21.0-dev2.5 → 6.21.0-dev2.50

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.
Files changed (80) hide show
  1. package/lib/components/base/TMAccordionNew.js +1 -0
  2. package/lib/components/base/TMAreaManager.js +19 -3
  3. package/lib/components/base/TMDataGrid.js +2 -2
  4. package/lib/components/base/TMModal.d.ts +1 -0
  5. package/lib/components/base/TMModal.js +2 -2
  6. package/lib/components/base/TMPanel.d.ts +7 -4
  7. package/lib/components/base/TMPanel.js +58 -26
  8. package/lib/components/base/TMTreeView.js +12 -2
  9. package/lib/components/base/TMWaitPanel.js +7 -4
  10. package/lib/components/choosers/TMDistinctValues.js +35 -21
  11. package/lib/components/choosers/TMUserChooser.d.ts +4 -0
  12. package/lib/components/choosers/TMUserChooser.js +7 -5
  13. package/lib/components/editors/TMFormulaEditor.d.ts +2 -0
  14. package/lib/components/editors/TMFormulaEditor.js +75 -21
  15. package/lib/components/editors/TMMetadataValues.js +2 -1
  16. package/lib/components/editors/TMRadioButton.js +7 -5
  17. package/lib/components/editors/TMTextBox.d.ts +2 -0
  18. package/lib/components/editors/TMTextBox.js +3 -3
  19. package/lib/components/features/archive/TMArchive.js +1 -1
  20. package/lib/components/features/documents/TMCopyToFolderForm.d.ts +24 -0
  21. package/lib/components/features/documents/TMCopyToFolderForm.js +379 -0
  22. package/lib/components/features/documents/TMDcmtForm.d.ts +1 -0
  23. package/lib/components/features/documents/TMDcmtForm.js +107 -29
  24. package/lib/components/features/documents/TMDcmtFormActionButtons.js +17 -2
  25. package/lib/components/features/documents/TMDcmtPreview.d.ts +1 -0
  26. package/lib/components/features/documents/TMDcmtPreview.js +2 -2
  27. package/lib/components/features/documents/TMDcmtTasks.d.ts +1 -0
  28. package/lib/components/features/documents/TMDcmtTasks.js +2 -2
  29. package/lib/components/features/documents/TMDownloadRelationViewerSection.d.ts +23 -0
  30. package/lib/components/features/documents/TMDownloadRelationViewerSection.js +173 -0
  31. package/lib/components/features/documents/TMFileUploader.js +1 -1
  32. package/lib/components/features/documents/TMMasterDetailDcmts.d.ts +4 -0
  33. package/lib/components/features/documents/TMMasterDetailDcmts.js +29 -9
  34. package/lib/components/features/documents/TMMergeToPdfForm.d.ts +26 -0
  35. package/lib/components/features/documents/TMMergeToPdfForm.js +307 -0
  36. package/lib/components/features/documents/TMRelationViewer.d.ts +13 -0
  37. package/lib/components/features/documents/TMRelationViewer.js +75 -6
  38. package/lib/components/features/documents/copyAndMergeDcmtsShared.d.ts +50 -0
  39. package/lib/components/features/documents/copyAndMergeDcmtsShared.js +256 -0
  40. package/lib/components/features/search/SignatureParamsManager.d.ts +70 -0
  41. package/lib/components/features/search/SignatureParamsManager.js +145 -0
  42. package/lib/components/features/search/TMSavedQuerySelector.d.ts +2 -2
  43. package/lib/components/features/search/TMSavedQuerySelector.js +3 -2
  44. package/lib/components/features/search/TMSearch.d.ts +6 -1
  45. package/lib/components/features/search/TMSearch.js +16 -10
  46. package/lib/components/features/search/TMSearchQueryPanel.js +1 -1
  47. package/lib/components/features/search/TMSearchResult.d.ts +4 -0
  48. package/lib/components/features/search/TMSearchResult.js +118 -22
  49. package/lib/components/features/search/TMViewHistoryDcmt.js +1 -2
  50. package/lib/components/features/workflow/diagram/queryDescriptorParser.js +3 -6
  51. package/lib/components/forms/Login/TMLoginForm.d.ts +9 -0
  52. package/lib/components/forms/Login/TMLoginForm.js +61 -0
  53. package/lib/components/grids/TMBlogAttachments.d.ts +1 -0
  54. package/lib/components/grids/TMBlogAttachments.js +38 -12
  55. package/lib/components/grids/TMBlogsPost.js +7 -1
  56. package/lib/components/grids/TMBlogsPostUtils.js +11 -17
  57. package/lib/components/index.d.ts +1 -0
  58. package/lib/components/index.js +1 -0
  59. package/lib/components/pages/TMPage.js +3 -1
  60. package/lib/components/query/TMQueryEditor.js +1 -1
  61. package/lib/components/viewers/TMTidViewer.js +1 -1
  62. package/lib/helper/SDKUI_Globals.d.ts +15 -0
  63. package/lib/helper/SDKUI_Globals.js +15 -1
  64. package/lib/helper/SDKUI_Localizator.d.ts +103 -2
  65. package/lib/helper/SDKUI_Localizator.js +1030 -12
  66. package/lib/helper/TMPdfViewer.js +25 -24
  67. package/lib/helper/TMUtils.d.ts +19 -0
  68. package/lib/helper/ZipManager.d.ts +56 -0
  69. package/lib/helper/ZipManager.js +127 -0
  70. package/lib/helper/index.d.ts +1 -0
  71. package/lib/helper/index.js +1 -0
  72. package/lib/hooks/useDataUserIdItem.js +6 -4
  73. package/lib/hooks/useDcmtOperations.d.ts +9 -2
  74. package/lib/hooks/useDcmtOperations.js +31 -20
  75. package/lib/hooks/useDocumentOperations.d.ts +5 -0
  76. package/lib/hooks/useDocumentOperations.js +158 -25
  77. package/lib/hooks/useForm.js +5 -2
  78. package/lib/hooks/useResizeObserver.d.ts +1 -1
  79. package/lib/hooks/useResizeObserver.js +16 -15
  80. package/package.json +3 -2
@@ -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,8 +164,15 @@ 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);
169
+ // State to control modal opening for master/detail documents
170
+ const [isOpenDetailsModal, setIsOpenDetailsModal] = useState(false);
171
+ const [isOpenMasterModal, setIsOpenMasterModal] = useState(false);
165
172
  const openDetailDcmtsFormHandler = (value) => { setIsOpenDetails(value); };
166
173
  const openMasterDcmtsFormHandler = (value) => { setIsOpenMaster(value); };
174
+ const openDetailDcmtsModalHandler = (value) => { setIsOpenDetailsModal(value); };
175
+ const openMasterDcmtsModalHandler = (value) => { setIsOpenMasterModal(value); };
167
176
  // State to control whether the export form (for exporting to Excel/CSV/txt and others) should be shown
168
177
  const [showExportForm, setShowExportForm] = useState(false);
169
178
  const updateShowApprovePopup = (value) => {
@@ -182,6 +191,9 @@ export const useDocumentOperations = (props) => {
182
191
  setIsOpenDcmtForm(isOpen);
183
192
  setDcmtFormLayoutMode(layoutMode);
184
193
  };
194
+ const closeDcmtFormHandler = () => {
195
+ setIsOpenDcmtForm(false);
196
+ };
185
197
  const handleAddItem = (tid, did) => {
186
198
  let newItem = { TID: tid ?? 0, DID: did ?? 0 };
187
199
  setSecondaryMasterDcmts((prevItems) => [...prevItems, newItem]);
@@ -256,14 +268,14 @@ export const useDocumentOperations = (props) => {
256
268
  };
257
269
  const openSharedArchiveHandler = async () => {
258
270
  if (selectedDcmtInfos.length === 0) {
259
- ShowAlert({ message: "Nessun documento selezionato", mode: "warning", title: 'Archiviazione Condivisa', duration: 3000 });
271
+ ShowAlert({ message: SDKUI_Localizator.NoDcmtSelected, mode: "warning", title: SDKUI_Localizator.SharedArchiving, duration: 3000 });
260
272
  return;
261
273
  }
262
274
  if (dtd?.perm?.canArchive !== AccessLevelsEx.Yes && dtd?.perm?.canArchive !== AccessLevelsEx.Mixed) {
263
275
  ShowAlert({
264
276
  message: "Non hai i permessi per archiviare documenti di questo tipo.",
265
277
  mode: 'warning',
266
- title: 'Archivio Condivisa',
278
+ title: SDKUI_Localizator.SharedArchiving,
267
279
  duration: 5000
268
280
  });
269
281
  return;
@@ -273,7 +285,7 @@ export const useDocumentOperations = (props) => {
273
285
  rfo.retrieveReason = DcmtOpers.None;
274
286
  rfo.generalRetrieveFormat = GeneralRetrieveFormats.OriginalUnsigned;
275
287
  const dcmt = selectedDcmtInfos[0];
276
- let dcmtFile = await getDcmtFileAsync({ TID: dcmt?.TID, DID: dcmt?.DID }, rfo, 'Archiviazione Condivisa', false, true);
288
+ let dcmtFile = await getDcmtFileAsync({ TID: dcmt?.TID, DID: dcmt?.DID }, rfo, SDKUI_Localizator.SharedArchiving, false, true);
277
289
  if (dcmtFile) {
278
290
  setSharedDcmtFile(dcmtFile?.file);
279
291
  }
@@ -286,7 +298,7 @@ export const useDocumentOperations = (props) => {
286
298
  const showSharedDcmtsHandler = async () => {
287
299
  try {
288
300
  if (selectedDcmtInfos.length === 0) {
289
- ShowAlert({ message: "Nessun documento selezionato", mode: "warning", title: 'Documenti Condivisi', duration: 3000 });
301
+ ShowAlert({ message: SDKUI_Localizator.NoDcmtSelected, mode: "warning", title: SDKUI_Localizator.SharedArchiving, duration: 3000 });
290
302
  return;
291
303
  }
292
304
  const dcmt = selectedDcmtInfos[0];
@@ -542,12 +554,10 @@ export const useDocumentOperations = (props) => {
542
554
  const firstDoc = selectedDcmtInfos?.[0];
543
555
  // Check if the selected document is a PDF
544
556
  const isPdf = firstDoc?.FILEEXT?.toLowerCase() === "pdf";
545
- // Check if the document has been signed
546
- const isSigned = firstDoc?.ISSIGNED === 1;
547
557
  // Check if the user has permission to substitute files
548
558
  const canSubstitute = dtd?.perm?.canSubstFile === AccessLevels.Yes;
549
559
  // Determine whether the menu item should be disabled
550
- const isDisabled = !canSubstitute || isDisabledForSingleRow() || !isPdf || isSigned;
560
+ const isDisabled = !canSubstitute || isDisabledForSingleRow() || !isPdf;
551
561
  return {
552
562
  id: 'pdf-ed',
553
563
  icon: _jsx(IconEdit, {}),
@@ -694,7 +704,65 @@ export const useDocumentOperations = (props) => {
694
704
  ]
695
705
  };
696
706
  };
697
- const relationsMenuItem = () => {
707
+ const mergeToPdfMenuItem = () => {
708
+ return {
709
+ id: 'merge-pdf',
710
+ icon: _jsx("i", { className: "dx-icon-pdffile", style: { fontSize: '18px' } }),
711
+ name: 'Unisci in un file PDF',
712
+ operationType: 'multiRow',
713
+ disabled: isDisabledForMultiRow(),
714
+ submenu: [
715
+ {
716
+ id: 'merge-pdf-only-selected',
717
+ icon: _jsx("i", { className: "dx-icon-pdffile", style: { fontSize: '18px' } }),
718
+ name: SDKUI_Localizator.SelectedDocuments,
719
+ onClick: () => {
720
+ setShowTMRelationViewerInCopyToFolderForm(false);
721
+ setOpenCopyToFolderForm({ open: true, operationType: 'mergeToPdf', mode: 'onlySelected' });
722
+ },
723
+ },
724
+ {
725
+ id: 'merge-pdf-customized',
726
+ icon: _jsx("i", { className: "dx-icon-pdffile", style: { fontSize: '18px' } }),
727
+ name: SDKUI_Localizator.SelectedDocumentsAndRelated,
728
+ onClick: () => {
729
+ setShowTMRelationViewerInCopyToFolderForm(true);
730
+ setOpenCopyToFolderForm({ open: true, operationType: 'mergeToPdf', mode: 'customized' });
731
+ },
732
+ },
733
+ ],
734
+ };
735
+ };
736
+ const copyToFolderMenuItem = () => {
737
+ return {
738
+ id: 'copy-to-folder',
739
+ icon: _jsx(IconCopy, {}),
740
+ name: SDKUI_Localizator.CopyToFolder,
741
+ operationType: 'multiRow',
742
+ disabled: isDisabledForMultiRow(),
743
+ submenu: [
744
+ {
745
+ id: 'copy-to-folder-only-selected',
746
+ icon: _jsx(IconCopy, {}),
747
+ name: SDKUI_Localizator.SelectedDocuments,
748
+ onClick: () => {
749
+ setShowTMRelationViewerInCopyToFolderForm(false);
750
+ setOpenCopyToFolderForm({ open: true, operationType: 'copyToFolder', mode: 'onlySelected' });
751
+ },
752
+ },
753
+ {
754
+ id: 'copy-to-folder-customized',
755
+ icon: _jsx(IconCopy, {}),
756
+ name: SDKUI_Localizator.SelectedDocumentsAndRelated,
757
+ onClick: () => {
758
+ setShowTMRelationViewerInCopyToFolderForm(true);
759
+ setOpenCopyToFolderForm({ open: true, operationType: 'copyToFolder', mode: 'customized', });
760
+ },
761
+ },
762
+ ],
763
+ };
764
+ };
765
+ const relationsMenuItem = (openInModal = false) => {
698
766
  return {
699
767
  id: 'rel',
700
768
  icon: _jsx(IconRelation, {}),
@@ -743,7 +811,7 @@ export const useDocumentOperations = (props) => {
743
811
  visible: true,
744
812
  beginGroup: true,
745
813
  disabled: !contextConfig.hasMasterRelations || !contextConfig.canShowRelations || isDisabledForMultiRow(),
746
- onClick: () => openMasterDcmtsFormHandler(true)
814
+ onClick: () => openInModal ? openMasterDcmtsModalHandler(true) : openMasterDcmtsFormHandler(true)
747
815
  },
748
816
  {
749
817
  id: 'rel-det',
@@ -752,7 +820,7 @@ export const useDocumentOperations = (props) => {
752
820
  operationType: 'multiRow',
753
821
  disabled: !contextConfig.hasDetailRelations || !contextConfig.canShowRelations || isDisabledForMultiRow(),
754
822
  visible: true,
755
- onClick: () => openDetailDcmtsFormHandler(true)
823
+ onClick: () => openInModal ? openDetailDcmtsModalHandler(true) : openDetailDcmtsFormHandler(true)
756
824
  }
757
825
  ]
758
826
  };
@@ -766,10 +834,10 @@ export const useDocumentOperations = (props) => {
766
834
  submenu: [
767
835
  {
768
836
  icon: <IconShare />,
769
- name: "Archiviazione condivisa",
837
+ name: SDKUI_Localizator.SharedArchiving,
770
838
  operationType: 'multiRow',
771
839
  disabled: fromDatagrid ? false : isDisabledForMultiRow(),
772
- onClick: () => ShowAlert({ message: "TODO Archiviazione condivisa", mode: 'info', title: `${"TODO"}`, duration: 3000 })
840
+ onClick: () => ShowAlert({ message: "TODO Archiviazione condivisa", mode: 'info', title: `${SDKUI_Localizator.SharedArchiving}`, duration: 3000 })
773
841
  },
774
842
  {
775
843
  icon: <IconSharedDcmt />,
@@ -975,7 +1043,7 @@ export const useDocumentOperations = (props) => {
975
1043
  };
976
1044
  const handleWFOperationCompleted = async () => {
977
1045
  await onWFOperationCompleted?.();
978
- if (context !== SearchResultContext.DCMT_FORM && !showMoreInfoPopup) {
1046
+ if (!showMoreInfoPopup) {
979
1047
  onCloseDcmtForm?.();
980
1048
  }
981
1049
  };
@@ -1018,6 +1086,8 @@ export const useDocumentOperations = (props) => {
1018
1086
  },
1019
1087
  signatureMenuItem(),
1020
1088
  checkinMenuItem(),
1089
+ copyToFolderMenuItem(),
1090
+ mergePdfManager ? mergeToPdfMenuItem() : null,
1021
1091
  allowRelations ? relationsMenuItem() : null,
1022
1092
  sharedDcmtsMenuItem(),
1023
1093
  // shareMenuItem(),
@@ -1042,7 +1112,7 @@ export const useDocumentOperations = (props) => {
1042
1112
  ];
1043
1113
  };
1044
1114
  const getArchivedWorkgroupMenuItems = () => {
1045
- const items = [
1115
+ const sortedItems = [
1046
1116
  addReplaceFileOperation(),
1047
1117
  openFormOperation(),
1048
1118
  deletetionMenuItem(),
@@ -1053,9 +1123,14 @@ export const useDocumentOperations = (props) => {
1053
1123
  copyFromWgMenuItem(),
1054
1124
  movetofolderFromWgMenuItem(),
1055
1125
  commentFromWgMenuItem(false),
1126
+ relationsMenuItem(true),
1056
1127
  removeFromWgMenuItem(SDKUI_Localizator.RemoveFromWorkgroup),
1128
+ ].sort((a, b) => a.name.localeCompare(b.name));
1129
+ return [
1130
+ ...sortedItems,
1131
+ { ...copyToFolderMenuItem(), beginGroup: true },
1132
+ mergeToPdfMenuItem(),
1057
1133
  ];
1058
- return items.sort((a, b) => a.name.localeCompare(b.name));
1059
1134
  };
1060
1135
  const getDcmtFormMenuItems = () => {
1061
1136
  return [
@@ -1103,6 +1178,8 @@ export const useDocumentOperations = (props) => {
1103
1178
  },
1104
1179
  signatureMenuItem(),
1105
1180
  checkinMenuItem(),
1181
+ copyToFolderMenuItem(),
1182
+ mergeToPdfMenuItem(),
1106
1183
  ...((inputDcmtFormLayoutMode === LayoutModes.Update) ? [fullTextSearchMenuItem()] : []),
1107
1184
  ];
1108
1185
  };
@@ -1127,16 +1204,71 @@ export const useDocumentOperations = (props) => {
1127
1204
  return addPinIconToItems(getOperationMenuItems());
1128
1205
  };
1129
1206
  const renderFloatingBar = (floatingBarContainerRef && floatingBarContainerRef.current && allowFloatingBar && showFloatingBar && deviceType !== DeviceType.MOBILE) ? (_jsx(TMFloatingMenuBar, { containerRef: floatingBarContainerRef, contextMenuItems: operationItems(), isConstrained: true, defaultPosition: { x: 1, y: 88 }, defaultPinnedItems: ['rel-det', 'rel-mst', 'dl'], defaultOrientation: 'horizontal', hasContextMenu: false, pinnedItemIds: pinnedItemIds, onPinChange: setPinnedItemIds })) : null;
1207
+ const masterDetailDetailsCommonProps = {
1208
+ deviceType,
1209
+ isForMaster: false,
1210
+ inputDcmts: selectedDcmtInfos,
1211
+ allowNavigation: selectedDcmtInfos.length === 1,
1212
+ canNext: canNavigateHandler ? canNavigateHandler('next') : false,
1213
+ canPrev: canNavigateHandler ? canNavigateHandler('prev') : false,
1214
+ onNext: () => onNavigateHandler && onNavigateHandler('next'),
1215
+ onPrev: () => onNavigateHandler && onNavigateHandler('prev'),
1216
+ allTasks,
1217
+ getAllTasks,
1218
+ deleteTaskByIdsCallback,
1219
+ addTaskCallback,
1220
+ editTaskCallback,
1221
+ onReferenceClick,
1222
+ handleNavigateToWGs,
1223
+ handleNavigateToDossiers,
1224
+ editPdfForm,
1225
+ openS4TViewer,
1226
+ onOpenS4TViewerRequest,
1227
+ onOpenPdfEditorRequest,
1228
+ onRefreshAfterAddDcmtToFavs,
1229
+ onTaskCreateRequest,
1230
+ datagridUtility,
1231
+ dcmtUtility,
1232
+ mergePdfManager,
1233
+ };
1234
+ const masterDetailMasterCommonProps = {
1235
+ deviceType,
1236
+ isForMaster: true,
1237
+ inputDcmts: selectedDcmtInfos,
1238
+ allowNavigation: selectedDcmtInfos.length === 1,
1239
+ canNext: canNavigateHandler ? canNavigateHandler('next') : false,
1240
+ canPrev: canNavigateHandler ? canNavigateHandler('prev') : false,
1241
+ onNext: () => onNavigateHandler && onNavigateHandler('next'),
1242
+ onPrev: () => onNavigateHandler && onNavigateHandler('prev'),
1243
+ appendMasterDcmts: handleAddItem,
1244
+ allTasks,
1245
+ getAllTasks,
1246
+ deleteTaskByIdsCallback,
1247
+ addTaskCallback,
1248
+ editTaskCallback,
1249
+ onReferenceClick,
1250
+ handleNavigateToWGs,
1251
+ handleNavigateToDossiers,
1252
+ editPdfForm,
1253
+ openS4TViewer,
1254
+ onOpenS4TViewerRequest,
1255
+ onOpenPdfEditorRequest,
1256
+ onRefreshAfterAddDcmtToFavs,
1257
+ onTaskCreateRequest,
1258
+ datagridUtility,
1259
+ dcmtUtility,
1260
+ mergePdfManager,
1261
+ };
1130
1262
  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) &&
1131
- _jsx(TMDcmtForm, { isModal: openDcmtFormAsModal || (dcmtFormLayoutMode === LayoutModes.Ark && focusedItem?.DID !== undefined), titleModal: dtd?.name ?? '', TID: focusedItem.TID, DID: focusedItem.DID, allowButtonsRefs: true, 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, 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: {
1263
+ _jsx(TMDcmtForm, { isModal: openDcmtFormAsModal || (dcmtFormLayoutMode === LayoutModes.Ark && focusedItem?.DID !== undefined), 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, 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: {
1132
1264
  onRefreshSearchAsyncDatagrid,
1133
1265
  onRefreshDataRowsAsync,
1134
1266
  refreshFocusedDataRowAsync,
1135
1267
  onRefreshBlogDatagrid,
1136
1268
  onRefreshPreviewDatagrid
1137
1269
  } })) }), (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) &&
1138
- _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) => {
1139
- 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}`));
1270
+ _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) }) }), 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) => {
1271
+ return (_jsx(StyledModalContainer, { style: { backgroundColor: 'white' }, children: _jsx(TMMasterDetailDcmts, { ...masterDetailMasterCommonProps, inputDcmts: [dcmt], allowNavigation: false, onBack: () => handleRemoveItem(dcmt.TID, dcmt.DID) }) }, `${index}-${dcmt.DID}`));
1140
1272
  })] }), 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: () => {
1141
1273
  setIsOpenArchiveRelationForm(false);
1142
1274
  setArchiveType(undefined);
@@ -1148,7 +1280,7 @@ export const useDocumentOperations = (props) => {
1148
1280
  setArchiveRelatedDcmtFormTID(undefined);
1149
1281
  setArchiveRelatedDcmtFormMids([]);
1150
1282
  await onRefreshSearchAsyncDatagrid?.();
1151
- }, allTasks: allTasks, getAllTasks: getAllTasks, deleteTaskByIdsCallback: deleteTaskByIdsCallback, addTaskCallback: addTaskCallback, editTaskCallback: editTaskCallback, handleNavigateToWGs: handleNavigateToWGs, handleNavigateToDossiers: handleNavigateToDossiers, showDcmtFormSidebar: showDcmtFormSidebar, openFileUploaderPdfEditor: openFileUploaderPdfEditor }), showRelatedDcmtsChooser &&
1283
+ }, allTasks: allTasks, getAllTasks: getAllTasks, deleteTaskByIdsCallback: deleteTaskByIdsCallback, addTaskCallback: addTaskCallback, editTaskCallback: editTaskCallback, handleNavigateToWGs: handleNavigateToWGs, handleNavigateToDossiers: handleNavigateToDossiers, showDcmtFormSidebar: showDcmtFormSidebar, openFileUploaderPdfEditor: openFileUploaderPdfEditor, showTodoDcmtForm: showTodoDcmtForm }), showRelatedDcmtsChooser &&
1152
1284
  _jsx(TMChooserForm, { dataSource: relatedDcmtsChooserDataSource, onChoose: async (selectedRelation) => {
1153
1285
  try {
1154
1286
  setShowRelatedDcmtsChooser(false);
@@ -1181,8 +1313,8 @@ export const useDocumentOperations = (props) => {
1181
1313
  TMSpinner.hide();
1182
1314
  }
1183
1315
  }, onClose: () => setShowManyToManyChooser(false), manageUseLocalizedName: false }), showPairDcmtsModal &&
1184
- _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 &&
1185
- _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: "Archiviazione condivisa", onClose: () => {
1316
+ _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 &&
1317
+ _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: () => {
1186
1318
  setIsOpenSharedArchive(false);
1187
1319
  }, 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) => {
1188
1320
  setIsOpenSharedArchive(false);
@@ -1190,11 +1322,11 @@ export const useDocumentOperations = (props) => {
1190
1322
  }, allTasks: allTasks, getAllTasks: getAllTasks, deleteTaskByIdsCallback: deleteTaskByIdsCallback, addTaskCallback: addTaskCallback, editTaskCallback: editTaskCallback, handleNavigateToWGs: handleNavigateToWGs, handleNavigateToDossiers: handleNavigateToDossiers }) }), sharedDcmtSearchResults.length > 0 &&
1191
1323
  _jsx(TMModal, { title: "Documenti condivisi", onClose: () => {
1192
1324
  setSharedDcmtSearchResults([]);
1193
- }, 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 () => {
1325
+ }, 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 () => {
1194
1326
  updateBatchUpdateForm(false);
1195
1327
  setIsModifiedBatchUpdate(false);
1196
1328
  await onRefreshDataRowsAsync?.();
1197
- }, 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) })] }));
1329
+ }, 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, allTasks: allTasks, getAllTasks: getAllTasks, deleteTaskByIdsCallback: deleteTaskByIdsCallback, addTaskCallback: addTaskCallback, editTaskCallback: editTaskCallback, handleNavigateToWGs: handleNavigateToWGs, handleNavigateToDossiers: handleNavigateToDossiers }), openCopyToFolderForm.open && openCopyToFolderForm.operationType === 'copyToFolder' && _jsx(TMCopyToFolderForm, { mode: openCopyToFolderForm.mode, selectedDcmtInfos: selectedDcmtInfos, onClose: () => setOpenCopyToFolderForm({ open: false, operationType: 'copyToFolder', mode: 'onlySelected' }), showTMRelationViewer: showTMRelationViewerInCopyToFolderForm, allTasks: allTasks, getAllTasks: getAllTasks, deleteTaskByIdsCallback: deleteTaskByIdsCallback, addTaskCallback: addTaskCallback, editTaskCallback: editTaskCallback, handleNavigateToWGs: handleNavigateToWGs, handleNavigateToDossiers: handleNavigateToDossiers }), _jsx(ConfirmFormatDialog, {}), _jsx(ConfirmAttachmentsDialog, {}), _jsx(FileSourceDialog, {}), taskFormDialogComponent, s4TViewerDialogComponent, currentCustomButton && _jsx(TMCustomButton, { button: currentCustomButton, formData: currentMetadataValues, selectedItems: selectedItemsFull, onClose: () => setCurrentCustomButton(undefined) })] }));
1198
1330
  return {
1199
1331
  operationItems: operationItems(),
1200
1332
  renderFloatingBar,
@@ -1209,6 +1341,7 @@ export const useDocumentOperations = (props) => {
1209
1341
  isOpenBatchUpdate,
1210
1342
  isModifiedBatchUpdate,
1211
1343
  updateBatchUpdateForm,
1344
+ closeDcmtFormHandler,
1212
1345
  handleSignApprove,
1213
1346
  checkoutInfo: {
1214
1347
  showHistory,
@@ -1315,6 +1448,6 @@ export const useDocumentOperations = (props) => {
1315
1448
  updateShowReAssignPopup,
1316
1449
  updateShowMoreInfoPopup
1317
1450
  }
1318
- }
1451
+ },
1319
1452
  };
1320
1453
  };
@@ -1,7 +1,7 @@
1
1
  import { useEffect, useState } from "react";
2
2
  import { FormModes } from "../ts";
3
3
  import { TMExceptionBoxManager, TMSpinner } from "../components";
4
- import { AreaEngine, BasketTypeEngine, DataListEngine, DcmtTypeEngine, DiskEngine, GroupEngine, JobEngine, JobTypes, LDAPDescriptor, LDAPProviders, NumeratorDescriptor, ObjectClasses, ProcessEngine, RelationEngine, ResultTypes, SAPEngine, SavedQueryEngine, SignCertDescriptor, TaskEngine, TreeDescriptor, TSADescriptor, UserEngine, WorkingGroupDescriptor } from "@topconsultnpm/sdk-ts";
4
+ import { AreaEngine, BasketTypeEngine, DataListEngine, DcmtTypeEngine, DiskEngine, GroupEngine, JobEngine, JobTypes, LDAPDescriptor, LDAPProviders, NumeratorEngine, ObjectClasses, ProcessEngine, RelationEngine, ResultTypes, SAPEngine, SavedQueryEngine, SignCertDescriptor, TaskEngine, TreeDescriptor, TSADescriptor, UserEngine, WorkingGroupDescriptor } from "@topconsultnpm/sdk-ts";
5
5
  import { PlatformObjectService } from "../services";
6
6
  import { SDKUI_Localizator, calcIsModified } from "../helper";
7
7
  export class SaveFormOptions {
@@ -42,7 +42,7 @@ export function useSaveForm(formMode, id, sfo, validator, onSaved, onStatusChang
42
42
  case ObjectClasses.Disk: return DiskEngine.NewDiskDescriptor();
43
43
  case ObjectClasses.Group: return GroupEngine.NewGroupDescriptor();
44
44
  case ObjectClasses.LDAP: return normalizeLDAP(new LDAPDescriptor());
45
- case ObjectClasses.Numerator: return new NumeratorDescriptor();
45
+ case ObjectClasses.Numerator: return NumeratorEngine.NewNormalizeNumeratorDescriptor();
46
46
  case ObjectClasses.SignCert: return normalizeSignCert(new SignCertDescriptor());
47
47
  case ObjectClasses.Tree: return new TreeDescriptor();
48
48
  case ObjectClasses.TSA: return new TSADescriptor();
@@ -101,6 +101,9 @@ export function useSaveForm(formMode, id, sfo, validator, onSaved, onStatusChang
101
101
  newId = await saveCustomAsync();
102
102
  else
103
103
  newId = await setDataAsync?.(formMode, formData, ...args);
104
+ if (newId <= 0) {
105
+ return;
106
+ }
104
107
  let newData;
105
108
  if (sfo.loadDataAfterSave)
106
109
  newData = await loadDataAsync(newId, FormModes.Update);
@@ -1,4 +1,4 @@
1
1
  export declare const useResizeObserver: () => {
2
- ref: import("react").RefObject<HTMLDivElement>;
2
+ ref: (node: HTMLDivElement | null) => void;
3
3
  width: number;
4
4
  };
@@ -1,22 +1,23 @@
1
- import { useEffect, useRef, useState } from 'react';
1
+ import { useCallback, useEffect, useState } from 'react';
2
2
  export const useResizeObserver = () => {
3
3
  const [width, setWidth] = useState(0);
4
- const ref = useRef(null);
4
+ const [element, setElement] = useState(null);
5
+ // Callback ref: viene invocato quando l'elemento viene montato/smontato
6
+ const ref = useCallback((node) => {
7
+ setElement(node);
8
+ }, []);
5
9
  useEffect(() => {
6
- const handleResize = (entries) => {
7
- if (entries[0].contentRect) {
10
+ if (!element)
11
+ return;
12
+ // Imposta la larghezza iniziale
13
+ setWidth(element.getBoundingClientRect().width);
14
+ const observer = new ResizeObserver((entries) => {
15
+ if (entries[0]?.contentRect) {
8
16
  setWidth(entries[0].contentRect.width);
9
17
  }
10
- };
11
- const observer = new ResizeObserver(handleResize);
12
- if (ref.current) {
13
- observer.observe(ref.current);
14
- }
15
- return () => {
16
- if (ref.current) {
17
- observer.unobserve(ref.current);
18
- }
19
- };
20
- }, []);
18
+ });
19
+ observer.observe(element);
20
+ return () => observer.disconnect();
21
+ }, [element]);
21
22
  return { ref, width };
22
23
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@topconsultnpm/sdkui-react",
3
- "version": "6.21.0-dev2.5",
3
+ "version": "6.21.0-dev2.50",
4
4
  "description": "",
5
5
  "scripts": {
6
6
  "test": "echo \"Error: no test specified\" && exit 1",
@@ -40,7 +40,8 @@
40
40
  "lib"
41
41
  ],
42
42
  "dependencies": {
43
- "@topconsultnpm/sdk-ts": "6.21.0-dev2.2",
43
+ "@topconsultnpm/sdk-ts": "6.21.0-dev2.8",
44
+ "@zip.js/zip.js": "2.8.26",
44
45
  "buffer": "^6.0.3",
45
46
  "devextreme": "^25.2.6",
46
47
  "devextreme-react": "^25.2.6",