@topconsultnpm/sdkui-react-beta 6.14.55 → 6.14.57

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.
@@ -117,7 +117,7 @@ const TMArchive = ({ inputTID, fileFromConnector = null }) => {
117
117
  export default TMArchive;
118
118
  const TMTreeSelectorWrapper = ({ isMobile, onSelectedTIDChanged }) => {
119
119
  const { setPanelVisibilityById, toggleMaximize, setToolbarButtonVisibility, countVisibleLeafPanels } = useTMPanelManagerContext();
120
- return (_jsx(TMTreeSelector, { onClosePanel: !isMobile && countVisibleLeafPanels() > 1 ? () => setPanelVisibilityById('tmTreeSelector', false) : undefined, allowMaximize: !isMobile && countVisibleLeafPanels() > 1, onMaximizePanel: !isMobile && countVisibleLeafPanels() > 1 ? () => toggleMaximize("tmTreeSelector") : undefined, onSelectedTIDChanged: (tid) => {
120
+ return (_jsx(TMTreeSelector, { layoutMode: LayoutModes.Ark, onClosePanel: !isMobile && countVisibleLeafPanels() > 1 ? () => setPanelVisibilityById('tmTreeSelector', false) : undefined, allowMaximize: !isMobile && countVisibleLeafPanels() > 1, onMaximizePanel: !isMobile && countVisibleLeafPanels() > 1 ? () => toggleMaximize("tmTreeSelector") : undefined, onSelectedTIDChanged: (tid) => {
121
121
  onSelectedTIDChanged?.(tid);
122
122
  if (isMobile)
123
123
  setPanelVisibilityById('tmForm', true);
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
- import { LayoutModes } from '@topconsultnpm/sdk-ts-beta';
3
- import { FormModes } from '../../../ts';
2
+ import { LayoutModes, TaskDescriptor } from '@topconsultnpm/sdk-ts-beta';
3
+ import { FormModes, TaskContext } from '../../../ts';
4
4
  import { DeviceType } from '../../base/TMDeviceProvider';
5
5
  interface ITMDcmtFormProps {
6
6
  TID?: number;
@@ -25,6 +25,7 @@ interface ITMDcmtFormProps {
25
25
  onSavedAsyncCallback?: (tid: number | undefined, did: number | undefined) => Promise<void>;
26
26
  onSaveRecents?: (TIDs: number[]) => void;
27
27
  onWFOperationCompleted?: () => Promise<void>;
28
+ onTaskCreateRequest?: (taskContext: TaskContext, onTaskCreated?: (task?: TaskDescriptor) => void) => void;
28
29
  isModal?: boolean;
29
30
  titleModal?: string;
30
31
  widthModal?: string;
@@ -34,7 +34,7 @@ import TMPanelManagerContainer from '../../layout/panelManager/TMPanelManagerCon
34
34
  import { TMPanelManagerWithPersistenceProvider } from '../../layout/panelManager/TMPanelManagerWithPersistenceProvider';
35
35
  let abortControllerLocal = new AbortController();
36
36
  //#endregion
37
- const TMDcmtForm = ({ showHeader = true, onSaveRecents, layoutMode = LayoutModes.Update, onClose, onSavedAsyncCallback, TID, DID, formMode = FormModes.Update, canNext, canPrev, count, itemIndex, onNext, onPrev, allowNavigation = true, allowRelations = true, isClosable = false, isExpertMode = SDKUI_Globals.userSettings.advancedSettings.expertMode === 1, showDcmtFormSidebar = true, invokedByTodo = false, titleModal, isModal = false, widthModal = "100%", heightModal = "100%", groupId, onWFOperationCompleted, fileFromConnector = null, }) => {
37
+ const TMDcmtForm = ({ showHeader = true, onSaveRecents, layoutMode = LayoutModes.Update, onClose, onSavedAsyncCallback, TID, DID, formMode = FormModes.Update, canNext, canPrev, count, itemIndex, onNext, onPrev, allowNavigation = true, allowRelations = true, isClosable = false, isExpertMode = SDKUI_Globals.userSettings.advancedSettings.expertMode === 1, showDcmtFormSidebar = true, invokedByTodo = false, titleModal, isModal = false, widthModal = "100%", heightModal = "100%", groupId, onWFOperationCompleted, onTaskCreateRequest, fileFromConnector = null, }) => {
38
38
  const [id, setID] = useState('');
39
39
  const [showWaitPanelLocal, setShowWaitPanelLocal] = useState(false);
40
40
  const [waitPanelTitleLocal, setWaitPanelTitleLocal] = useState('');
@@ -430,7 +430,7 @@ const TMDcmtForm = ({ showHeader = true, onSaveRecents, layoutMode = LayoutModes
430
430
  break;
431
431
  }
432
432
  } }), _jsxs(StyledFormButtonsContainer, { children: [_jsx("div", { style: { display: 'flex', flexDirection: 'column', gap: 10 }, children: _jsx("div", { style: { display: 'flex', justifyContent: 'center', alignItems: 'center', gap: '8px' }, children: layoutMode === LayoutModes.Update ? _jsxs(_Fragment, { children: [_jsx(TMSaveFormButtonSave, { showTooltip: false, btnStyle: 'advanced', advancedColor: '#f09c0a', isModified: isModified, formMode: formMode, errorsCount: validationItems.filter(o => o.ResultType == ResultTypes.ERROR).length, onSaveAsync: confirmActionPopup }), _jsx(TMSaveFormButtonUndo, { btnStyle: 'toolbar', showTooltip: true, color: 'primary', isModified: isModified, formMode: formMode, onUndo: onUndoHandler })] }) :
433
- _jsxs(_Fragment, { children: [_jsx(TMButton, { disabled: archiveBtnDisabled, btnStyle: 'advanced', icon: _jsx(IconBoxArchiveIn, {}), width: 'auto', showTooltip: false, caption: SDKUI_Localizator.Archive, advancedColor: TMColors.success, onClick: confirmActionPopup }), _jsx(TMButton, { disabled: !clearFormBtnDisabled, btnStyle: 'advanced', icon: _jsx(IconClear, {}), width: 'auto', showTooltip: false, caption: SDKUI_Localizator.Clear, advancedColor: TMColors.tertiary, onClick: clearFormHandler }), DID && _jsx(TMButton, { disabled: undoBtnDisabled, btnStyle: 'advanced', icon: _jsx(IconUndo, {}), width: '150px', showTooltip: false, caption: SDKUI_Localizator.Undo, advancedColor: TMColors.tertiary, onClick: onUndoHandler })] }) }) }), totalItems > listMaxItems && _jsx(TMShowAllOrMaxItemsButton, { showAll: showAll, dataSourceLength: totalItems, onClick: () => { setShowAll(!showAll); } })] }), showApprovePopup && _jsx(WorkFlowApproveRejectPopUp, { deviceType: deviceType, onCompleted: handleWFOperationCompleted, TID: TID, DID: DID, isReject: 0, onClose: () => setShowApprovePopup(false) }), showRejectPopup && _jsx(WorkFlowApproveRejectPopUp, { deviceType: deviceType, onCompleted: handleWFOperationCompleted, TID: TID, DID: DID, isReject: 1, onClose: () => setShowRejectPopup(false) }), showReAssignPopup && _jsx(WorkFlowReAssignPopUp, { deviceType: deviceType, onCompleted: handleWFOperationCompleted, TID: TID, DID: DID, onClose: () => setShowReAssignPopup(false) }), _jsx(ConfirmAttachmentsDialog, {})] }) }), [TID, DID, formData, formDataOrig, dcmtFile, focusedMetadataValue, isOpenDistinctValues, isOpenFormulaEditor, validationItems, showAll, showApprovePopup, showRejectPopup, showReAssignPopup, fileFromConnector]);
433
+ _jsxs(_Fragment, { children: [_jsx(TMButton, { disabled: archiveBtnDisabled, btnStyle: 'advanced', icon: _jsx(IconBoxArchiveIn, {}), width: 'auto', showTooltip: false, caption: SDKUI_Localizator.Archive, advancedColor: TMColors.success, onClick: confirmActionPopup }), _jsx(TMButton, { disabled: !clearFormBtnDisabled, btnStyle: 'advanced', icon: _jsx(IconClear, {}), width: 'auto', showTooltip: false, caption: SDKUI_Localizator.Clear, advancedColor: TMColors.tertiary, onClick: clearFormHandler }), DID && _jsx(TMButton, { disabled: undoBtnDisabled, btnStyle: 'advanced', icon: _jsx(IconUndo, {}), width: '150px', showTooltip: false, caption: SDKUI_Localizator.Undo, advancedColor: TMColors.tertiary, onClick: onUndoHandler })] }) }) }), totalItems > listMaxItems && _jsx(TMShowAllOrMaxItemsButton, { showAll: showAll, dataSourceLength: totalItems, onClick: () => { setShowAll(!showAll); } })] }), _jsx(ConfirmAttachmentsDialog, {})] }) }), [TID, DID, formData, formDataOrig, dcmtFile, focusedMetadataValue, isOpenDistinctValues, isOpenFormulaEditor, validationItems, showAll, fileFromConnector]);
434
434
  const tmBlog = useMemo(() => _jsx(TMDcmtBlog, { tid: TID, did: DID }), [TID, DID]);
435
435
  const tmSysMetadata = useMemo(() => _jsx(TMMetadataValues, { layoutMode: layoutMode, openChooserBySingleClick: !isOpenDistinctValues, TID: TID, isReadOnly: true, deviceType: deviceType, metadataValues: formData.filter(o => (o.mid != undefined && o.mid <= 100)), metadataValuesOrig: formData.filter(o => (o.mid != undefined && o.mid <= 100)), validationItems: [] }), [TID, layoutMode, formData, deviceType]);
436
436
  const tmDcmtPreview = useMemo(() => _jsx(TMDcmtPreviewWrapper, { currentDcmt: currentDcmt, dcmtFile: dcmtFile ?? fileFromConnector, deviceType: deviceType, fromDTD: fromDTD, layoutMode: layoutMode, onFileUpload: (setFile) => {
@@ -543,6 +543,26 @@ const TMDcmtForm = ({ showHeader = true, onSaveRecents, layoutMode = LayoutModes
543
543
  // Return the appropriate layout based on context
544
544
  return invokedByTodo ? settings?.layoutToDo : settings?.layout;
545
545
  };
546
+ const openTaskFormHandler = (onTaskCreated) => {
547
+ if (TID && DID) {
548
+ const fetchData = async () => {
549
+ try {
550
+ const dtd = await DcmtTypeListCacheService.GetWithNotGrantedAsync(TID, DID);
551
+ if (dtd) {
552
+ const isWorkItem = dtd?.templateTID === TemplateTIDs.WF_WIApprView;
553
+ const name = `${dtd.name ?? '-'} (DID: ${DID})`;
554
+ onTaskCreateRequest?.(isWorkItem
555
+ ? { workItem: { tid: TID, did: DID, name } }
556
+ : { document: { tid: TID, did: DID, name } }, onTaskCreated);
557
+ }
558
+ }
559
+ catch (error) {
560
+ console.error("Error fetching data:", error);
561
+ }
562
+ };
563
+ fetchData();
564
+ }
565
+ };
546
566
  const renderDcmtForm = () => {
547
567
  return (_jsxs("div", { style: {
548
568
  display: 'flex',
@@ -567,8 +587,16 @@ const TMDcmtForm = ({ showHeader = true, onSaveRecents, layoutMode = LayoutModes
567
587
  isEditable: true,
568
588
  value: FormulaHelper.addFormulaTag(newFormula.expression)
569
589
  }));
570
- } }), (isModal && onClose) && _jsx("div", { id: "TMDcmtFormShowConfirmForClose-" + id })] }), (fromDTD?.templateTID === TemplateTIDs.WF_WIApprView && !isOpenDetails && !isOpenMaster && layoutMode === LayoutModes.Update) &&
571
- _jsx(ToppyHelpCenter, { deviceType: deviceType, content: _jsx("div", { style: { display: 'flex', flexDirection: 'column', gap: '10px' }, children: _jsx(WorkFlowOperationButtons, { deviceType: deviceType, onApprove: () => setShowApprovePopup(true), onSignApprove: () => ShowAlert({ message: 'TODO', mode: 'info', title: "Firma e approva", duration: 3000 }), onReject: () => setShowRejectPopup(true), onReAssign: () => setShowReAssignPopup(true) }) }) }), isOpenDetails &&
590
+ } }), showApprovePopup && _jsx(WorkFlowApproveRejectPopUp, { deviceType: deviceType, onCompleted: handleWFOperationCompleted, TID: TID, DID: DID, isReject: 0, onClose: () => setShowApprovePopup(false) }), showRejectPopup && _jsx(WorkFlowApproveRejectPopUp, { deviceType: deviceType, onCompleted: handleWFOperationCompleted, TID: TID, DID: DID, isReject: 1, onClose: () => setShowRejectPopup(false) }), showReAssignPopup && _jsx(WorkFlowReAssignPopUp, { deviceType: deviceType, onCompleted: handleWFOperationCompleted, TID: TID, DID: DID, onClose: () => setShowReAssignPopup(false) }), (isModal && onClose) && _jsx("div", { id: "TMDcmtFormShowConfirmForClose-" + id })] }), (fromDTD?.templateTID === TemplateTIDs.WF_WIApprView && !isOpenDetails && !isOpenMaster && layoutMode === LayoutModes.Update) &&
591
+ _jsx(ToppyHelpCenter, { deviceType: deviceType, content: _jsx("div", { style: { display: 'flex', flexDirection: 'column', gap: '10px' }, children: _jsx(WorkFlowOperationButtons, { deviceType: deviceType, onApprove: () => setShowApprovePopup(true), onSignApprove: () => ShowAlert({ message: 'TODO', mode: 'info', title: "Firma e approva", duration: 3000 }), onReject: () => { setShowRejectPopup(true); }, onReAssign: () => { setShowReAssignPopup(true); }, onMoreInfo: () => {
592
+ console.log('onMoreInfo');
593
+ const vid = Number(TID);
594
+ const did = Number(DID);
595
+ openTaskFormHandler((task) => {
596
+ SDK_Globals.tmSession?.NewWorkflowEngine().WorkItem_MoreInfoAsync(vid, did, task?.id ?? 0)
597
+ .catch(err => TMExceptionBoxManager.show({ exception: err }));
598
+ });
599
+ } }) }) }), isOpenDetails &&
572
600
  _jsx(StyledModalContainer, { style: { backgroundColor: 'white' }, children: _jsx(TMMasterDetailDcmts, { deviceType: deviceType, isForMaster: false, inputDcmts: getSelectionDcmtInfo(), allowNavigation: allowNavigation, canNext: canNext, canPrev: canPrev, onNext: onNext, onPrev: onPrev, onBack: () => setIsOpenDetails(false) }) }), isOpenMaster &&
573
601
  _jsxs(StyledModalContainer, { style: { backgroundColor: 'white' }, children: [_jsx(TMMasterDetailDcmts, { deviceType: deviceType, inputDcmts: getSelectionDcmtInfo(), isForMaster: true, allowNavigation: allowNavigation, canNext: canNext, canPrev: canPrev, onNext: onNext, onPrev: onPrev, onBack: () => setIsOpenMaster(false), appendMasterDcmts: handleAddItem }), secondaryMasterDcmts.length > 0 && secondaryMasterDcmts.map((dcmt, index) => {
574
602
  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 }) }, `${index}-${dcmt.DID}`));
@@ -1,6 +1,6 @@
1
1
  import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { useCallback, useEffect, useMemo, useState } from 'react';
3
- import { SavedQueryCacheService, DcmtTypeListCacheService, SDK_Localizator } from '@topconsultnpm/sdk-ts-beta';
3
+ import { SavedQueryCacheService, DcmtTypeListCacheService, SDK_Localizator, LayoutModes } from '@topconsultnpm/sdk-ts-beta';
4
4
  import TMSavedQuerySelector from './TMSavedQuerySelector';
5
5
  import TMTreeSelector from './TMTreeSelector';
6
6
  import { TabPanel, Item } from 'devextreme-react/tab-panel';
@@ -203,7 +203,7 @@ const TMSearch = ({ inputTID, inputSqdID, isExpertMode = SDKUI_Globals.userSetti
203
203
  export default TMSearch;
204
204
  const TMTreeSelectorWrapper = ({ isMobile, onSelectedTIDChanged }) => {
205
205
  const { setPanelVisibilityById, toggleMaximize, countVisibleLeafPanels } = useTMPanelManagerContext();
206
- return (_jsx(TMTreeSelector, { onClosePanel: !isMobile && countVisibleLeafPanels() > 1 ? () => setPanelVisibilityById('TMTreeSelector', false) : undefined, allowMaximize: !isMobile && countVisibleLeafPanels() > 1, onMaximizePanel: !isMobile && countVisibleLeafPanels() > 1 ? () => toggleMaximize("TMTreeSelector") : undefined, onSelectedTIDChanged: (tid) => {
206
+ return (_jsx(TMTreeSelector, { layoutMode: LayoutModes.Update, onClosePanel: !isMobile && countVisibleLeafPanels() > 1 ? () => setPanelVisibilityById('TMTreeSelector', false) : undefined, allowMaximize: !isMobile && countVisibleLeafPanels() > 1, onMaximizePanel: !isMobile && countVisibleLeafPanels() > 1 ? () => toggleMaximize("TMTreeSelector") : undefined, onSelectedTIDChanged: (tid) => {
207
207
  onSelectedTIDChanged?.(tid);
208
208
  isMobile && setPanelVisibilityById('TMSearchQueryPanel', true);
209
209
  } }));
@@ -35,6 +35,7 @@ import TMDcmtIcon from '../documents/TMDcmtIcon';
35
35
  import { TMPanelManagerProvider, useTMPanelManagerContext } from '../../layout/panelManager/TMPanelManagerContext';
36
36
  import TMPanelManagerContainer from '../../layout/panelManager/TMPanelManagerContainer';
37
37
  import ShowAlert from '../../base/TMAlert';
38
+ import TMWGsCopyMoveForm from '../wg/TMWGsCopyMoveForm';
38
39
  //#region Internal Components
39
40
  const CommandsContextMenu = React.memo(({ target, menuItems, allowPin }) => {
40
41
  return (_jsx(ContextMenu, { showEvent: 'click', dataSource: menuItems, target: `${target}` }));
@@ -81,6 +82,8 @@ const TMSearchResult = ({ context = SearchResultContext.METADATA_SEARCH, isVisib
81
82
  let disable = getSelectedDcmtsOrFocused(selectedItems, focusedItem).length === 0;
82
83
  let dcmtsReturned = (searchResults?.length > 1 ? selectedSearchResult?.dcmtsReturned : searchResults[0]?.dcmtsReturned ?? 0);
83
84
  let dcmtsFound = (searchResults?.length > 1 ? selectedSearchResult?.dcmtsFound : searchResults[0]?.dcmtsFound ?? 0);
85
+ // State to manage the visibility and mode ("copy" or "move") of the Copy/Move Draft form
86
+ const [copyMoveDraftForm, setCopyMoveDraftForm] = useState({ show: false, mode: undefined, });
84
87
  useEffect(() => { setID(genUniqueId()); }, []);
85
88
  useEffect(() => {
86
89
  setSelectedItems([]);
@@ -126,6 +129,9 @@ const TMSearchResult = ({ context = SearchResultContext.METADATA_SEARCH, isVisib
126
129
  fileExt: currentMetadataValues.find(o => o.mid == SystemMIDsAsNumber.FileExt)?.value
127
130
  });
128
131
  }, [currentMetadataValues]);
132
+ const showCopyMoveFormCallback = (mode) => {
133
+ setCopyMoveDraftForm({ show: true, mode });
134
+ };
129
135
  const openFormHandler = (layoutMode) => { setIsOpenDcmtForm(true); setDcmtFormLayoutMode(layoutMode); };
130
136
  const openTaskFormHandler = (onTaskCreated) => {
131
137
  if (selectedItems.length > 1)
@@ -199,7 +205,7 @@ const TMSearchResult = ({ context = SearchResultContext.METADATA_SEARCH, isVisib
199
205
  return;
200
206
  if (e.target === 'content') {
201
207
  e.items = e.items || [];
202
- const menuItems = getCommandsMenuItems(fromDTD, selectedItems, focusedItem, context, showFloatingBar, setShowFloatingBar, openFormHandler, downloadDcmtsAsync, runOperationAsync, onRefreshSearchAsync, refreshSelectionDataRowsAsync, onRefreshAfterAddDcmtToFavs, confirmFormat, openConfirmAttachmentsDialog, openTaskFormHandler, openDetailDcmtsFormHandler, openMasterDcmtsFormHandler, openBatchUpdateFormHandler);
208
+ const menuItems = getCommandsMenuItems(fromDTD, selectedItems, focusedItem, context, showFloatingBar, setShowFloatingBar, openFormHandler, downloadDcmtsAsync, runOperationAsync, onRefreshSearchAsync, refreshSelectionDataRowsAsync, onRefreshAfterAddDcmtToFavs, confirmFormat, openConfirmAttachmentsDialog, openTaskFormHandler, openDetailDcmtsFormHandler, openMasterDcmtsFormHandler, openBatchUpdateFormHandler, showCopyMoveFormCallback);
203
209
  e.items.push(...menuItems);
204
210
  }
205
211
  };
@@ -326,7 +332,7 @@ const TMSearchResult = ({ context = SearchResultContext.METADATA_SEARCH, isVisib
326
332
  }
327
333
  };
328
334
  const searchResutlToolbar = _jsxs(_Fragment, { children: [(dcmtsReturned != dcmtsFound) && _jsx("p", { style: { backgroundColor: `white`, color: TMColors.primaryColor, textAlign: 'center', padding: '1px 4px', borderRadius: '3px', display: 'flex' }, children: `${dcmtsReturned}/${dcmtsFound} restituiti` }), context === SearchResultContext.FAVORITES_AND_RECENTS &&
329
- _jsx("div", { style: { display: 'flex', alignItems: 'center', gap: '5px' }, children: _jsx(TMButton, { btnStyle: 'icon', icon: _jsx(IconDelete, { color: 'white' }), caption: "Rimuovi da " + (selectedSearchResult?.category === "Favorites" ? '"Preferiti"' : '"Recenti"'), disabled: getSelectedDcmtsOrFocused(selectedItems, focusedItem).length <= 0, onClick: removeDcmtFromFavsOrRecents }) }), _jsx(TMButton, { btnStyle: 'icon', icon: _jsx(IconRefresh, { color: 'white' }), caption: SDKUI_Localizator.Refresh, onClick: onRefreshSearchAsync }), _jsx(IconMenuVertical, { id: `commands-header-${id}`, color: 'white', cursor: 'pointer' }), _jsx(CommandsContextMenu, { target: `#commands-header-${id}`, menuItems: getCommandsMenuItems(fromDTD, selectedItems, focusedItem, context, showFloatingBar, setShowFloatingBar, openFormHandler, downloadDcmtsAsync, runOperationAsync, onRefreshSearchAsync, refreshSelectionDataRowsAsync, onRefreshAfterAddDcmtToFavs, confirmFormat, openConfirmAttachmentsDialog, openTaskFormHandler, openDetailDcmtsFormHandler, openMasterDcmtsFormHandler, openBatchUpdateFormHandler) })] });
335
+ _jsx("div", { style: { display: 'flex', alignItems: 'center', gap: '5px' }, children: _jsx(TMButton, { btnStyle: 'icon', icon: _jsx(IconDelete, { color: 'white' }), caption: "Rimuovi da " + (selectedSearchResult?.category === "Favorites" ? '"Preferiti"' : '"Recenti"'), disabled: getSelectedDcmtsOrFocused(selectedItems, focusedItem).length <= 0, onClick: removeDcmtFromFavsOrRecents }) }), _jsx(TMButton, { btnStyle: 'icon', icon: _jsx(IconRefresh, { color: 'white' }), caption: SDKUI_Localizator.Refresh, onClick: onRefreshSearchAsync }), _jsx(IconMenuVertical, { id: `commands-header-${id}`, color: 'white', cursor: 'pointer' }), _jsx(CommandsContextMenu, { target: `#commands-header-${id}`, menuItems: getCommandsMenuItems(fromDTD, selectedItems, focusedItem, context, showFloatingBar, setShowFloatingBar, openFormHandler, downloadDcmtsAsync, runOperationAsync, onRefreshSearchAsync, refreshSelectionDataRowsAsync, onRefreshAfterAddDcmtToFavs, confirmFormat, openConfirmAttachmentsDialog, openTaskFormHandler, openDetailDcmtsFormHandler, openMasterDcmtsFormHandler, openBatchUpdateFormHandler, showCopyMoveFormCallback) })] });
330
336
  const middlePanelToolbar = _jsxs("div", { style: { width: 'max-content', display: 'flex', alignItems: 'center', gap: '10px' }, children: [_jsx(TMSaveFormButtonPrevious, { btnStyle: 'icon', isModified: false, iconColor: TMColors.default_background, formMode: FormModes.ReadOnly, canPrev: canNavigateHandler('prev'), onPrev: () => onNavigateHandler('prev') }), _jsx(TMSaveFormButtonNext, { btnStyle: 'icon', isModified: false, iconColor: TMColors.default_background, formMode: FormModes.ReadOnly, canNext: canNavigateHandler('next'), onNext: () => onNavigateHandler('next') })] });
331
337
  const handleAddItem = (tid, did) => {
332
338
  let newItem = { TID: tid ?? 0, DID: did ?? 0 };
@@ -343,7 +349,7 @@ const TMSearchResult = ({ context = SearchResultContext.METADATA_SEARCH, isVisib
343
349
  _jsx(TMLayoutItem, { children: _jsx(TMSearchResultSelector, { searchResults: currentSearchResults, selectedTID: selectedSearchResultTID, onSelectionChanged: onSearchResultSelectionChanged }) })
344
350
  :
345
351
  _jsx(_Fragment, {}), _jsxs(TMLayoutItem, { children: [_jsx(TMSearchResultGrid, { inputFocusedItem: focusedItem, inputSelectedItems: selectedItems, searchResult: searchResults.length > 1 ? selectedSearchResult : searchResults[0], lastUpdateSearchTime: lastUpdateSearchTime, onDblClick: () => openFormHandler(LayoutModes.Update), onContextMenuPreparing: onContextMenuPreparing, onSelectionChanged: (items) => { setSelectedItems(items); }, onVisibleItemChanged: setVisibleItems, onFocusedItemChanged: setFocusedItem, onDownloadDcmtsAsync: async (inputDcmts, downloadType, downloadMode, _y, confirmAttachments) => await downloadDcmtsAsync(inputDcmts, downloadType, downloadMode, onFileOpened, confirmAttachments) }), allowFloatingBar && showFloatingBar && deviceType !== DeviceType.MOBILE &&
346
- _jsxs(TMFloatingToolbar, { backgroundColor: TMColors.primaryColor, initialLeft: '10px', initialTop: 'calc(100% - 75px)', children: [fromDTD?.perm?.canRetrieveFile === AccessLevels.Yes && _jsx(TMButton, { btnStyle: 'icon', caption: "Download file", disabled: fromDTD?.perm?.canRetrieveFile !== AccessLevels.Yes || !focusedItem?.DID, icon: _jsx(IconDownload, { color: 'white' }), onClick: () => { downloadDcmtsAsync(getSelectedDcmtsOrFocused(selectedItems, focusedItem), DownloadTypes.Dcmt, "download"); } }), allowRelations && _jsx(TMButton, { btnStyle: 'icon', disabled: !currentTIDHasDetailRelations || !focusedItem?.DID, icon: _jsx(IconDetailDcmts, { color: 'white' }), caption: SDKUI_Localizator.DcmtsDetail, onClick: () => setIsOpenDetails(true) }), allowRelations && _jsx(TMButton, { btnStyle: 'icon', disabled: !currentTIDHasMasterRelations || !focusedItem?.DID, icon: _jsx(IconDetailDcmts, { color: 'white', transform: 'scale(-1, 1)' }), caption: SDKUI_Localizator.DcmtsMaster, onClick: () => setIsOpenMaster(true) }), _jsx(IconMenuVertical, { id: `commands-floating-${id}`, color: 'white', cursor: 'pointer' }), _jsx(CommandsContextMenu, { target: `#commands-floating-${id}`, menuItems: getCommandsMenuItems(fromDTD, selectedItems, focusedItem, context, showFloatingBar, setShowFloatingBar, openFormHandler, downloadDcmtsAsync, runOperationAsync, onRefreshSearchAsync, refreshSelectionDataRowsAsync, onRefreshAfterAddDcmtToFavs, confirmFormat, openConfirmAttachmentsDialog, openTaskFormHandler, openDetailDcmtsFormHandler, openMasterDcmtsFormHandler, openBatchUpdateFormHandler) })] })] })] }), showApprovePopup && _jsx(WorkFlowApproveRejectPopUp, { deviceType: deviceType, onCompleted: onWFOperationCompleted, selectedItems: getSelectedDcmtsOrFocused(selectedItems, focusedItem), isReject: 0, onClose: () => setShowApprovePopup(false) }), showRejectPopup && _jsx(WorkFlowApproveRejectPopUp, { deviceType: deviceType, onCompleted: onWFOperationCompleted, selectedItems: getSelectedDcmtsOrFocused(selectedItems, focusedItem), isReject: 1, onClose: () => setShowRejectPopup(false) }), showReAssignPopup && _jsx(WorkFlowReAssignPopUp, { deviceType: deviceType, onCompleted: onWFOperationCompleted, selectedItems: getSelectedDcmtsOrFocused(selectedItems, focusedItem), onClose: () => setShowReAssignPopup(false) }), isOpenBatchUpdate && _jsx(TMBatchUpdateForm, { isModal: true, titleModal: SDKUI_Localizator.BatchUpdate, inputDcmts: getSelectionDcmtInfo(), TID: focusedItem ? focusedItem?.TID : selectedItems[0]?.TID, DID: focusedItem ? focusedItem?.DID : selectedItems[0]?.DID, onBack: () => {
352
+ _jsxs(TMFloatingToolbar, { backgroundColor: TMColors.primaryColor, initialLeft: '10px', initialTop: 'calc(100% - 75px)', children: [fromDTD?.perm?.canRetrieveFile === AccessLevels.Yes && _jsx(TMButton, { btnStyle: 'icon', caption: "Download file", disabled: fromDTD?.perm?.canRetrieveFile !== AccessLevels.Yes || !focusedItem?.DID, icon: _jsx(IconDownload, { color: 'white' }), onClick: () => { downloadDcmtsAsync(getSelectedDcmtsOrFocused(selectedItems, focusedItem), DownloadTypes.Dcmt, "download"); } }), allowRelations && _jsx(TMButton, { btnStyle: 'icon', disabled: !currentTIDHasDetailRelations || !focusedItem?.DID, icon: _jsx(IconDetailDcmts, { color: 'white' }), caption: SDKUI_Localizator.DcmtsDetail, onClick: () => setIsOpenDetails(true) }), allowRelations && _jsx(TMButton, { btnStyle: 'icon', disabled: !currentTIDHasMasterRelations || !focusedItem?.DID, icon: _jsx(IconDetailDcmts, { color: 'white', transform: 'scale(-1, 1)' }), caption: SDKUI_Localizator.DcmtsMaster, onClick: () => setIsOpenMaster(true) }), _jsx(IconMenuVertical, { id: `commands-floating-${id}`, color: 'white', cursor: 'pointer' }), _jsx(CommandsContextMenu, { target: `#commands-floating-${id}`, menuItems: getCommandsMenuItems(fromDTD, selectedItems, focusedItem, context, showFloatingBar, setShowFloatingBar, openFormHandler, downloadDcmtsAsync, runOperationAsync, onRefreshSearchAsync, refreshSelectionDataRowsAsync, onRefreshAfterAddDcmtToFavs, confirmFormat, openConfirmAttachmentsDialog, openTaskFormHandler, openDetailDcmtsFormHandler, openMasterDcmtsFormHandler, openBatchUpdateFormHandler, showCopyMoveFormCallback) })] })] })] }), showApprovePopup && _jsx(WorkFlowApproveRejectPopUp, { deviceType: deviceType, onCompleted: onWFOperationCompleted, selectedItems: getSelectedDcmtsOrFocused(selectedItems, focusedItem), isReject: 0, onClose: () => setShowApprovePopup(false) }), showRejectPopup && _jsx(WorkFlowApproveRejectPopUp, { deviceType: deviceType, onCompleted: onWFOperationCompleted, selectedItems: getSelectedDcmtsOrFocused(selectedItems, focusedItem), isReject: 1, onClose: () => setShowRejectPopup(false) }), showReAssignPopup && _jsx(WorkFlowReAssignPopUp, { deviceType: deviceType, onCompleted: onWFOperationCompleted, selectedItems: getSelectedDcmtsOrFocused(selectedItems, focusedItem), onClose: () => setShowReAssignPopup(false) }), isOpenBatchUpdate && _jsx(TMBatchUpdateForm, { isModal: true, titleModal: SDKUI_Localizator.BatchUpdate, inputDcmts: getSelectionDcmtInfo(), TID: focusedItem ? focusedItem?.TID : selectedItems[0]?.TID, DID: focusedItem ? focusedItem?.DID : selectedItems[0]?.DID, onBack: () => {
347
353
  setIsOpenBatchUpdate(false);
348
354
  }, onSavedCallbackAsync: async () => {
349
355
  setIsOpenBatchUpdate(false);
@@ -359,7 +365,7 @@ const TMSearchResult = ({ context = SearchResultContext.METADATA_SEARCH, isVisib
359
365
  SDK_Globals.tmSession?.NewWorkflowEngine().WorkItem_MoreInfoAsync(vid, did, task?.id ?? 0)
360
366
  .catch(err => TMExceptionBoxManager.show({ exception: err }));
361
367
  });
362
- }, approveDisable: disable, signApproveDisable: disable, rejectDisable: disable, reassignDisable: disable, infoDisable: getSelectedDcmtsOrFocused(selectedItems, focusedItem).length !== 1 }) }) })] }), _jsx(ConfirmFormatDialog, {}), _jsx(ConfirmAttachmentsDialog, {})] }), [
368
+ }, approveDisable: disable, signApproveDisable: disable, rejectDisable: disable, reassignDisable: disable, infoDisable: getSelectedDcmtsOrFocused(selectedItems, focusedItem).length !== 1 }) }) })] }), _jsx(ConfirmFormatDialog, {}), _jsx(ConfirmAttachmentsDialog, {}), (copyMoveDraftForm.show && copyMoveDraftForm.mode && getSelectedDcmtsOrFocused(selectedItems, focusedItem)) && _jsx(TMWGsCopyMoveForm, { context: { engine: 'SearchEngine', object: fromDTD, selectedDrafts: getSelectedDcmtsOrFocused(selectedItems, focusedItem) }, mode: copyMoveDraftForm.mode, onClose: () => { setCopyMoveDraftForm({ show: false, mode: undefined }); } })] }), [
363
369
  searchResults,
364
370
  selectedSearchResult,
365
371
  lastUpdateSearchTime,
@@ -375,7 +381,8 @@ const TMSearchResult = ({ context = SearchResultContext.METADATA_SEARCH, isVisib
375
381
  isOpenBatchUpdate,
376
382
  isOpenDetails,
377
383
  isOpenMaster,
378
- isOpenDcmtForm
384
+ isOpenDcmtForm,
385
+ copyMoveDraftForm
379
386
  ]);
380
387
  const tmBlog = useMemo(() => _jsx(TMDcmtBlog, { tid: focusedItem?.TID, did: focusedItem?.DID }), [focusedItem]);
381
388
  const tmSysMetadata = useMemo(() => _jsx(TMMetadataValues, { layoutMode: LayoutModes.Update, openChooserBySingleClick: true, TID: focusedItem?.TID, isReadOnly: true, deviceType: deviceType, metadataValues: currentMetadataValues.filter(o => (o.mid != undefined && o.mid <= 100)), metadataValuesOrig: currentMetadataValues.filter(o => (o.mid != undefined && o.mid <= 100)), validationItems: [] }), [focusedItem, currentMetadataValues, deviceType]);
@@ -440,7 +447,7 @@ const TMSearchResult = ({ context = SearchResultContext.METADATA_SEARCH, isVisib
440
447
  :
441
448
  _jsx(TMPanelManagerProvider, { panels: initialPanels, initialVisibility: allInitialPanelVisibility, defaultDimensions: initialPanelDimensions, initialDimensions: initialPanelDimensions, initialMobilePanelId: 'tmSearchResult', children: _jsx(TMPanelManagerContainer, { panels: initialPanels, direction: "horizontal", parentId: groupId, showToolbar: showSearchResultSidebar }) }) }) }), _jsx(StyledMultiViewPanel, { "$isVisible": isOpenDetails, children: isOpenDetails && _jsx(TMMasterDetailDcmts, { deviceType: deviceType, isForMaster: false, inputDcmts: getSelectionDcmtInfo(), allowNavigation: focusedItem && selectedItems.length <= 0, canNext: canNavigateHandler('next'), canPrev: canNavigateHandler('prev'), onNext: () => onNavigateHandler('next'), onPrev: () => onNavigateHandler('prev'), onBack: () => setIsOpenDetails(false) }) }), _jsxs(StyledMultiViewPanel, { "$isVisible": isOpenMaster, children: [isOpenMaster && _jsx(TMMasterDetailDcmts, { deviceType: deviceType, inputDcmts: getSelectionDcmtInfo(), isForMaster: true, allowNavigation: focusedItem && selectedItems.length <= 0, canNext: canNavigateHandler('next'), canPrev: canNavigateHandler('prev'), onNext: () => onNavigateHandler('next'), onPrev: () => onNavigateHandler('prev'), onBack: () => setIsOpenMaster(false), appendMasterDcmts: handleAddItem }), secondaryMasterDcmts.length > 0 && secondaryMasterDcmts.map((dcmt, index) => {
442
449
  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 }) }, `${index}-${dcmt.DID}`));
443
- })] }), _jsx(StyledMultiViewPanel, { "$isVisible": isOpenDcmtForm, children: isOpenDcmtForm && _jsx(TMDcmtForm, { isModal: openDcmtFormAsModal, titleModal: fromDTD?.name ?? '', TID: focusedItem?.TID, DID: focusedItem?.DID, layoutMode: dcmtFormLayoutMode, count: visibleItems.length, itemIndex: visibleItems.findIndex(o => o.rowIndex === focusedItem?.rowIndex) + 1, canNext: canNavigateHandler('next'), canPrev: canNavigateHandler('prev'), onNext: () => onNavigateHandler('next'), onPrev: () => onNavigateHandler('prev'), onClose: () => { setIsOpenDcmtForm(false); }, onWFOperationCompleted: onWFOperationCompleted, onSavedAsyncCallback: async (tid, did) => { await refreshFocusedDataRowAsync(tid, did, true); } }) })] }));
450
+ })] }), _jsx(StyledMultiViewPanel, { "$isVisible": isOpenDcmtForm, children: isOpenDcmtForm && _jsx(TMDcmtForm, { isModal: openDcmtFormAsModal, titleModal: fromDTD?.name ?? '', TID: focusedItem?.TID, DID: focusedItem?.DID, layoutMode: dcmtFormLayoutMode, count: visibleItems.length, itemIndex: visibleItems.findIndex(o => o.rowIndex === focusedItem?.rowIndex) + 1, canNext: canNavigateHandler('next'), canPrev: canNavigateHandler('prev'), onNext: () => onNavigateHandler('next'), onPrev: () => onNavigateHandler('prev'), onClose: () => { setIsOpenDcmtForm(false); }, onWFOperationCompleted: onWFOperationCompleted, onTaskCreateRequest: onTaskCreateRequest, onSavedAsyncCallback: async (tid, did) => { await refreshFocusedDataRowAsync(tid, did, true); } }) })] }));
444
451
  };
445
452
  export default TMSearchResult;
446
453
  const renderDcmtIcon = (cellData, onDownloadDcmtsAsync) => _jsx(TMDcmtIcon, { tid: cellData.data.TID, did: cellData.data.DID, fileExtension: cellData.data.FILEEXT, fileCount: cellData.data.FILECOUNT, isLexProt: cellData.data.IsLexProt, isMail: cellData.data.ISMAIL, isShared: cellData.data.ISSHARED, isSigned: cellData.data.ISSIGNED, downloadMode: 'openInNewWindow', onDownloadDcmtsAsync: onDownloadDcmtsAsync });
@@ -3,4 +3,4 @@ import { DcmtTypeDescriptor, FileDescriptor, FileFormats, LayoutModes } from '@t
3
3
  import { TMDataGridContextMenuItem } from '../../base/TMDataGrid';
4
4
  import { DcmtInfo, DcmtOperationTypes, DownloadModes, DownloadTypes, SearchResultContext } from '../../../ts';
5
5
  export declare const getSelectedDcmtsOrFocused: (selectedItems: Array<any>, focusedItem: any, fileFormat?: FileFormats) => DcmtInfo[];
6
- export declare const getCommandsMenuItems: (dtd: DcmtTypeDescriptor | undefined, selectedItems: Array<any>, focusedItem: any, context: SearchResultContext, showFloatingBar: boolean, setShowFloatingBar: React.Dispatch<React.SetStateAction<boolean>>, openFormHandler: (layoutMode: LayoutModes) => void, downloadDcmtsAsync: (inputDcmts: DcmtInfo[] | undefined, downloadType: DownloadTypes, downloadMode: DownloadModes, onFileDownloaded?: (dcmtFile: File | undefined) => void, confirmAttachments?: (list: FileDescriptor[]) => Promise<string[] | undefined>) => Promise<void>, runOperationAsync: (inputDcmts: DcmtInfo[] | undefined, dcmtOperationType: DcmtOperationTypes, actionAfterOperationAsync?: () => Promise<void>) => Promise<void>, onRefreshSearchAsync: (() => Promise<void>) | undefined, onRefreshDataRowsAsync: (() => Promise<void>) | undefined, onRefreshAfterAddDcmtToFavs: (() => void) | undefined, confirmFormat: () => Promise<FileFormats>, confirmAttachments: (list: FileDescriptor[]) => Promise<string[] | undefined>, openTaskFormHandler: () => void, openDetailDcmtsFormHandler: (value: boolean) => void, openMasterDcmtsFormHandler: (value: boolean) => void, openBatchUpdateFormHandler: (value: boolean) => void) => Array<TMDataGridContextMenuItem>;
6
+ export declare const getCommandsMenuItems: (dtd: DcmtTypeDescriptor | undefined, selectedItems: Array<any>, focusedItem: any, context: SearchResultContext, showFloatingBar: boolean, setShowFloatingBar: React.Dispatch<React.SetStateAction<boolean>>, openFormHandler: (layoutMode: LayoutModes) => void, downloadDcmtsAsync: (inputDcmts: DcmtInfo[] | undefined, downloadType: DownloadTypes, downloadMode: DownloadModes, onFileDownloaded?: (dcmtFile: File | undefined) => void, confirmAttachments?: (list: FileDescriptor[]) => Promise<string[] | undefined>) => Promise<void>, runOperationAsync: (inputDcmts: DcmtInfo[] | undefined, dcmtOperationType: DcmtOperationTypes, actionAfterOperationAsync?: () => Promise<void>) => Promise<void>, onRefreshSearchAsync: (() => Promise<void>) | undefined, onRefreshDataRowsAsync: (() => Promise<void>) | undefined, onRefreshAfterAddDcmtToFavs: (() => void) | undefined, confirmFormat: () => Promise<FileFormats>, confirmAttachments: (list: FileDescriptor[]) => Promise<string[] | undefined>, openTaskFormHandler: () => void, openDetailDcmtsFormHandler: (value: boolean) => void, openMasterDcmtsFormHandler: (value: boolean) => void, openBatchUpdateFormHandler: (value: boolean) => void, showCopyMoveFormCallback: (mode: "copyToWgDraft" | "copyToWgArchivedDoc") => void) => Array<TMDataGridContextMenuItem>;
@@ -1,6 +1,6 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import { AccessLevels, AccessLevelsEx, AppModules, FileFormats, LayoutModes, SDK_Globals } from '@topconsultnpm/sdk-ts-beta';
3
- import { IconActivity, IconArchiveDoc, IconBatchUpdate, IconCheckFile, IconCloseCircle, IconConvertFilePdf, IconDelete, IconDotsVerticalCircleOutline, IconDownload, IconExportTo, IconFileDots, IconHide, IconInfo, IconPlatform, IconPreview, IconRelation, IconSearch, IconShow, IconSignature, IconStar, IconSubstFile, IconUndo, SDKUI_Localizator, svgToString } from '../../../helper';
3
+ import { IconActivity, IconAdd, IconArchiveDoc, IconBatchUpdate, IconCheckFile, IconCloseCircle, IconConvertFilePdf, IconDelete, IconDotsVerticalCircleOutline, IconDownload, IconExportTo, IconFileDots, IconFolder, IconHide, IconInfo, IconPlatform, IconPreview, IconRelation, IconSearch, IconShow, IconSignature, IconStar, IconSubstFile, IconUndo, SDKUI_Localizator, svgToString } from '../../../helper';
4
4
  import ShowAlert from '../../base/TMAlert';
5
5
  import { TMMessageBoxManager, ButtonNames, TMExceptionBoxManager } from '../../base/TMPopUp';
6
6
  import TMSpinner from '../../base/TMSpinner';
@@ -24,44 +24,66 @@ export const getSelectedDcmtsOrFocused = (selectedItems, focusedItem, fileFormat
24
24
  }
25
25
  return [];
26
26
  };
27
- export const getCommandsMenuItems = (dtd, selectedItems, focusedItem, context, showFloatingBar, setShowFloatingBar, openFormHandler, downloadDcmtsAsync, runOperationAsync, onRefreshSearchAsync, onRefreshDataRowsAsync, onRefreshAfterAddDcmtToFavs, confirmFormat, confirmAttachments, openTaskFormHandler, openDetailDcmtsFormHandler, openMasterDcmtsFormHandler, openBatchUpdateFormHandler) => {
27
+ export const getCommandsMenuItems = (dtd, selectedItems, focusedItem, context, showFloatingBar, setShowFloatingBar, openFormHandler, downloadDcmtsAsync, runOperationAsync, onRefreshSearchAsync, onRefreshDataRowsAsync, onRefreshAfterAddDcmtToFavs, confirmFormat, confirmAttachments, openTaskFormHandler, openDetailDcmtsFormHandler, openMasterDcmtsFormHandler, openBatchUpdateFormHandler, showCopyMoveFormCallback) => {
28
28
  // let ftExplanations = focusedItem?.FTExplanations;
29
29
  return [
30
30
  {
31
31
  icon: svgToString(_jsx(IconFileDots, {})),
32
- text: "Operazioni sui documenti",
32
+ text: SDKUI_Localizator.DocumentOperations,
33
33
  disabled: disabledForSingleRow(selectedItems, focusedItem) && disabledForMultiRow(selectedItems, focusedItem),
34
34
  items: [
35
35
  {
36
- icon: svgToString(_jsx(IconStar, {})),
37
- text: 'Aggiungi a "Preferiti"',
36
+ icon: svgToString(_jsx(IconAdd, {})),
37
+ text: SDKUI_Localizator.AddTo,
38
38
  operationType: 'multiRow',
39
39
  disabled: context === SearchResultContext.FAVORITES_AND_RECENTS || disabledForMultiRow(selectedItems, focusedItem),
40
- onClick: async () => { await runOperationAsync(getSelectedDcmtsOrFocused(selectedItems, focusedItem), DcmtOperationTypes.AddToFavs); onRefreshAfterAddDcmtToFavs?.(); },
40
+ items: [
41
+ {
42
+ icon: svgToString(_jsx(IconStar, {})),
43
+ text: SDKUI_Localizator.Favorites,
44
+ operationType: 'multiRow',
45
+ disabled: context === SearchResultContext.FAVORITES_AND_RECENTS || disabledForMultiRow(selectedItems, focusedItem),
46
+ onClick: async () => { await runOperationAsync(getSelectedDcmtsOrFocused(selectedItems, focusedItem), DcmtOperationTypes.AddToFavs); onRefreshAfterAddDcmtToFavs?.(); },
47
+ },
48
+ {
49
+ icon: svgToString(_jsx(IconFolder, {})),
50
+ text: SDKUI_Localizator.WorkgroupDrafts,
51
+ operationType: 'multiRow',
52
+ disabled: context === SearchResultContext.FAVORITES_AND_RECENTS || disabledForMultiRow(selectedItems, focusedItem),
53
+ onClick: () => { showCopyMoveFormCallback('copyToWgDraft'); },
54
+ },
55
+ {
56
+ icon: svgToString(_jsx(IconArchiveDoc, {})),
57
+ text: SDKUI_Localizator.WorkgroupArchivedDocuments,
58
+ operationType: 'multiRow',
59
+ disabled: context === SearchResultContext.FAVORITES_AND_RECENTS || disabledForMultiRow(selectedItems, focusedItem),
60
+ onClick: () => { showCopyMoveFormCallback('copyToWgArchivedDoc'); },
61
+ },
62
+ ]
41
63
  },
42
64
  {
43
65
  icon: svgToString(_jsx(IconSubstFile, {})),
44
- text: "Aggiungi/sostituisci file",
66
+ text: SDKUI_Localizator.AddReplaceFile,
45
67
  operationType: 'singleRow',
46
68
  disabled: dtd?.perm?.canSubstFile !== AccessLevels.Yes ? true : disabledForSingleRow(selectedItems, focusedItem),
47
69
  onClick: async () => { await runOperationAsync(getSelectedDcmtsOrFocused(selectedItems, focusedItem), DcmtOperationTypes.SubstituteFile, onRefreshDataRowsAsync); }
48
70
  },
49
71
  {
50
72
  icon: svgToString(_jsx(IconPreview, {})),
51
- text: "Apri form",
73
+ text: SDKUI_Localizator.OpenForm,
52
74
  operationType: 'singleRow',
53
75
  disabled: disabledForSingleRow(selectedItems, focusedItem),
54
76
  onClick: () => openFormHandler?.(LayoutModes.Update)
55
77
  },
56
78
  {
57
79
  icon: svgToString(_jsx(IconDelete, {})),
58
- text: "Cancellazione",
80
+ text: SDKUI_Localizator.Deletion,
59
81
  operationType: 'multiRow',
60
82
  disabled: disabledForMultiRow(selectedItems, focusedItem),
61
83
  items: [
62
84
  {
63
85
  icon: svgToString(_jsx(IconDelete, {})),
64
- text: "Cancellazione logica",
86
+ text: SDKUI_Localizator.LogDelete,
65
87
  operationType: 'multiRow',
66
88
  disabled: dtd?.perm?.canLogicalDelete !== AccessLevels.Yes ? true : disabledForMultiRow(selectedItems, focusedItem),
67
89
  onClick: async () => {
@@ -71,7 +93,7 @@ export const getCommandsMenuItems = (dtd, selectedItems, focusedItem, context, s
71
93
  },
72
94
  {
73
95
  icon: svgToString(_jsx(IconUndo, {})),
74
- text: "Ripristina",
96
+ text: SDKUI_Localizator.Restore,
75
97
  operationType: 'multiRow',
76
98
  disabled: dtd?.perm?.canLogicalDelete !== AccessLevels.Yes ? true : disabledForMultiRow(selectedItems, focusedItem),
77
99
  onClick: async () => {
@@ -81,7 +103,7 @@ export const getCommandsMenuItems = (dtd, selectedItems, focusedItem, context, s
81
103
  },
82
104
  {
83
105
  icon: svgToString(_jsx(IconCloseCircle, {})),
84
- text: "Cancellazione fisica",
106
+ text: SDKUI_Localizator.PhysDelete,
85
107
  operationType: 'multiRow',
86
108
  disabled: dtd?.perm?.canPhysicalDelete !== AccessLevels.Yes ? true : disabledForMultiRow(selectedItems, focusedItem),
87
109
  onClick: async () => { await runOperationAsync(getSelectedDcmtsOrFocused(selectedItems, focusedItem), DcmtOperationTypes.PhysDelete, onRefreshSearchAsync); }
@@ -90,14 +112,14 @@ export const getCommandsMenuItems = (dtd, selectedItems, focusedItem, context, s
90
112
  },
91
113
  {
92
114
  icon: svgToString(_jsx(IconCheckFile, {})),
93
- text: "Controllo file",
115
+ text: SDKUI_Localizator.FileCheck,
94
116
  operationType: 'multiRow',
95
117
  disabled: disabledForMultiRow(selectedItems, focusedItem),
96
118
  onClick: async () => { await runOperationAsync(getSelectedDcmtsOrFocused(selectedItems, focusedItem), DcmtOperationTypes.CheckFile); }
97
119
  },
98
120
  {
99
121
  icon: svgToString(_jsx(IconConvertFilePdf, {})),
100
- text: "Conversione file",
122
+ text: SDKUI_Localizator.FileConversion,
101
123
  operationType: 'multiRow',
102
124
  disabled: disabledForMultiRow(selectedItems, focusedItem),
103
125
  onClick: async () => {
@@ -120,24 +142,24 @@ export const getCommandsMenuItems = (dtd, selectedItems, focusedItem, context, s
120
142
  icon: svgToString(_jsx(IconDownload, {})),
121
143
  operationType: 'multiRow',
122
144
  disabled: dtd?.perm?.canRetrieveFile !== AccessLevels.Yes ? true : disabledForMultiRow(selectedItems, focusedItem),
123
- text: "Download file", onClick: () => downloadDcmtsAsync(getSelectedDcmtsOrFocused(selectedItems, focusedItem), DownloadTypes.Dcmt, "download")
145
+ text: SDKUI_Localizator.DownloadFile, onClick: () => downloadDcmtsAsync(getSelectedDcmtsOrFocused(selectedItems, focusedItem), DownloadTypes.Dcmt, "download")
124
146
  },
125
147
  {
126
148
  icon: svgToString(_jsx(IconDownload, {})),
127
149
  operationType: 'singleRow',
128
150
  disabled: !isXMLFileExt(getSelectedDcmtsOrFocused(selectedItems, focusedItem)?.[0]?.FILEEXT) ? true : disabledForSingleRow(selectedItems, focusedItem),
129
- text: "Download allegati XML", onClick: () => downloadDcmtsAsync(getSelectedDcmtsOrFocused(selectedItems, focusedItem), DownloadTypes.Attachment, "download", undefined, confirmAttachments)
151
+ text: SDKUI_Localizator.DownloadXMLAttachments, onClick: () => downloadDcmtsAsync(getSelectedDcmtsOrFocused(selectedItems, focusedItem), DownloadTypes.Attachment, "download", undefined, confirmAttachments)
130
152
  },
131
153
  {
132
154
  icon: svgToString(_jsx(IconArchiveDoc, {})),
133
- text: "Duplica documento",
155
+ text: SDKUI_Localizator.DuplicateDocument,
134
156
  operationType: 'singleRow',
135
157
  disabled: dtd?.perm?.canArchive !== AccessLevelsEx.Yes && dtd?.perm?.canArchive !== AccessLevelsEx.Mixed ? true : disabledForSingleRow(selectedItems, focusedItem),
136
158
  onClick: () => { openFormHandler?.(LayoutModes.Ark); }
137
159
  },
138
160
  {
139
161
  icon: svgToString(_jsx(IconBatchUpdate, {})),
140
- text: "Modifica multipla",
162
+ text: SDKUI_Localizator.BatchUpdate,
141
163
  operationType: 'multiRow',
142
164
  disabled: dtd?.perm?.canUpdate !== AccessLevelsEx.Yes && dtd?.perm?.canUpdate !== AccessLevelsEx.Mixed ? true : disabledForMultiRow(selectedItems, focusedItem),
143
165
  onClick: () => openBatchUpdateFormHandler?.(true)
@@ -146,19 +168,19 @@ export const getCommandsMenuItems = (dtd, selectedItems, focusedItem, context, s
146
168
  },
147
169
  {
148
170
  icon: svgToString(_jsx(IconSignature, {})),
149
- text: "Firma",
171
+ text: SDKUI_Localizator.Signature,
150
172
  disabled: disabledForSingleRow(selectedItems, focusedItem) && disabledForMultiRow(selectedItems, focusedItem),
151
173
  items: [
152
174
  {
153
175
  icon: svgToString(_jsx(IconSignature, {})),
154
- text: "Informazioni di firma",
176
+ text: SDKUI_Localizator.SignatureInformation,
155
177
  operationType: 'singleRow',
156
178
  disabled: disabledForSingleRow(selectedItems, focusedItem),
157
179
  onClick: () => ShowAlert({ message: "TODO Informazioni di firma", mode: 'info', title: `${"TODO"}`, duration: 3000 })
158
180
  },
159
181
  {
160
182
  icon: svgToString(_jsx(IconSignature, {})),
161
- text: "Verifica firma",
183
+ text: SDKUI_Localizator.VerifySignature,
162
184
  operationType: 'multiRow',
163
185
  disabled: disabledForMultiRow(selectedItems, focusedItem),
164
186
  onClick: async () => { await runOperationAsync(getSelectedDcmtsOrFocused(selectedItems, focusedItem), DcmtOperationTypes.VerifySign); }
@@ -167,7 +189,7 @@ export const getCommandsMenuItems = (dtd, selectedItems, focusedItem, context, s
167
189
  icon: svgToString(_jsx(IconSignature, {})),
168
190
  operationType: 'multiRow',
169
191
  disabled: disabledForMultiRow(selectedItems, focusedItem),
170
- text: "Firma e marca", onClick: () => ShowAlert({ message: "TODO Firma e marca", mode: 'info', title: `${"TODO"}`, duration: 3000 })
192
+ text: SDKUI_Localizator.SignatureAndTimestamp, onClick: () => ShowAlert({ message: "TODO Firma e marca", mode: 'info', title: `${"TODO"}`, duration: 3000 })
171
193
  },
172
194
  ]
173
195
  },
@@ -214,7 +236,7 @@ export const getCommandsMenuItems = (dtd, selectedItems, focusedItem, context, s
214
236
  // },
215
237
  {
216
238
  icon: svgToString(_jsx(IconRelation, {})),
217
- text: "Correlazioni",
239
+ text: SDKUI_Localizator.Relations,
218
240
  operationType: 'multiRow',
219
241
  disabled: disabledForMultiRow(selectedItems, focusedItem),
220
242
  items: [
@@ -290,13 +312,13 @@ export const getCommandsMenuItems = (dtd, selectedItems, focusedItem, context, s
290
312
  // },
291
313
  {
292
314
  icon: svgToString(_jsx(IconSearch, {})),
293
- text: "Ricerca full text",
315
+ text: SDKUI_Localizator.FullTextSearch,
294
316
  operationType: 'multiRow',
295
317
  disabled: disabledForMultiRow(selectedItems, focusedItem),
296
318
  items: [
297
319
  {
298
320
  icon: svgToString(_jsx(IconInfo, {})),
299
- text: "Informazioni di indicizzazione",
321
+ text: SDKUI_Localizator.IndexingInformation,
300
322
  operationType: 'singleRow',
301
323
  disabled: disabledForSingleRow(selectedItems, focusedItem),
302
324
  onClick: async () => {
@@ -304,7 +326,7 @@ export const getCommandsMenuItems = (dtd, selectedItems, focusedItem, context, s
304
326
  TMSpinner.show({ description: `${SDKUI_Localizator.Loading}...` });
305
327
  let dcmts = getSelectedDcmtsOrFocused(selectedItems, focusedItem);
306
328
  const msg = await SDK_Globals.tmSession?.NewSearchEngine().FreeSearchGetDcmtInfoAsync(dcmts[0].TID, dcmts[0].DID);
307
- TMMessageBoxManager.show({ buttons: [ButtonNames.OK], message: msg, title: "Informazioni di indicizzazione" });
329
+ TMMessageBoxManager.show({ buttons: [ButtonNames.OK], message: msg, title: SDKUI_Localizator.IndexingInformation });
308
330
  }
309
331
  catch (e) {
310
332
  TMExceptionBoxManager.show({ exception: e });
@@ -316,14 +338,14 @@ export const getCommandsMenuItems = (dtd, selectedItems, focusedItem, context, s
316
338
  },
317
339
  {
318
340
  icon: svgToString(_jsx(IconArchiveDoc, {})),
319
- text: "Indicizza (o re-indicizza)",
341
+ text: SDKUI_Localizator.IndexOrReindex,
320
342
  operationType: 'multiRow',
321
343
  disabled: disabledForMultiRow(selectedItems, focusedItem),
322
344
  onClick: async () => { await runOperationAsync(getSelectedDcmtsOrFocused(selectedItems, focusedItem), DcmtOperationTypes.FreeSearchReindex); }
323
345
  },
324
346
  {
325
347
  icon: svgToString(_jsx(IconDelete, {})),
326
- text: "Elimina indicizzazione",
348
+ text: SDKUI_Localizator.IndexingDelete,
327
349
  operationType: 'multiRow',
328
350
  disabled: disabledForMultiRow(selectedItems, focusedItem),
329
351
  onClick: async () => { await runOperationAsync(getSelectedDcmtsOrFocused(selectedItems, focusedItem), DcmtOperationTypes.FreeSearchPurge); }
@@ -331,7 +353,7 @@ export const getCommandsMenuItems = (dtd, selectedItems, focusedItem, context, s
331
353
  ...(focusedItem?.FTExplanations !== undefined
332
354
  ? [{
333
355
  icon: svgToString(_jsx(IconPlatform, {})),
334
- text: "Dettagli del risultato",
356
+ text: SDKUI_Localizator.ResultDetails,
335
357
  operationType: 'singleRow',
336
358
  disabled: disabledForSingleRow(selectedItems, focusedItem),
337
359
  onClick: () => {
@@ -342,11 +364,11 @@ export const getCommandsMenuItems = (dtd, selectedItems, focusedItem, context, s
342
364
  },
343
365
  {
344
366
  icon: svgToString(_jsx(IconDotsVerticalCircleOutline, {})),
345
- text: "Altro",
367
+ text: SDKUI_Localizator.Other,
346
368
  items: [
347
369
  {
348
370
  icon: svgToString(_jsx(IconExportTo, {})),
349
- text: "Esporta in...",
371
+ text: SDKUI_Localizator.ExportTo,
350
372
  operationType: 'multiRow',
351
373
  disabled: false,
352
374
  onClick: () => ShowAlert({ message: "TODO Esporta in", mode: 'info', title: `${"TODO"}`, duration: 3000 })
@@ -359,7 +381,7 @@ export const getCommandsMenuItems = (dtd, selectedItems, focusedItem, context, s
359
381
  // },
360
382
  {
361
383
  icon: svgToString(showFloatingBar ? _jsx(IconHide, {}) : _jsx(IconShow, {})),
362
- text: showFloatingBar ? "Nascondi floating bar" : "Mostra floating bar",
384
+ text: showFloatingBar ? SDKUI_Localizator.HideFloatingBar : SDKUI_Localizator.ShowFloatingBar,
363
385
  disabled: false,
364
386
  onClick: () => setShowFloatingBar(!showFloatingBar)
365
387
  },
@@ -110,7 +110,7 @@ const TMTreeSelector = ({ layoutMode = LayoutModes.Update, isVisible, onSelected
110
110
  }, value: selectedTreeId, opened: isGridBoxOpened, valueExpr: "id", displayExpr: "nameLoc", deferRendering: false, dataSource: trees, onValueChanged: syncDataGridSelection, onOptionChanged: onGridBoxOpened, children: _jsx(TMDataGrid, { height: "100%", width: "100%", dataSource: trees, dataColumns: [
111
111
  { dataField: 'nameLoc', caption: SDKUI_Localizator.Name, width: 'auto' },
112
112
  { dataField: 'description', caption: SDKUI_Localizator.Description, width: 'auto' },
113
- ], selection: { mode: 'single', showCheckBoxesMode: "none" }, showHeaderFilter: false, selectedRowKeys: selectedRowKeys, onSelectionChanged: onSelectionChanged, focusedRowKey: focusedRowKey, onFocusedRowChanged: onFocusedRowChanged }) }) }), _jsx(TMLayoutItem, { height: 'calc(100% - 50px)', children: _jsxs(TreeList, { height: "100%", elementAttr: { class: 'tm-dx-treelist' }, dataSource: treeItems, showRowLines: Number(SDKUI_Globals.userSettings?.themeSettings.gridSettings.showRowLines) === 1, showColumnLines: Number(SDKUI_Globals.userSettings?.themeSettings.gridSettings.showColumnLines) === 1, showBorders: false, columnAutoWidth: true, keyExpr: "id", parentIdExpr: "parentID", dataStructure: "plain", showColumnHeaders: false, onContentReady: (e) => e.component.clearSelection(), onSelectionChanged: (e) => {
113
+ ], selection: { mode: 'single', showCheckBoxesMode: "none" }, showHeaderFilter: false, selectedRowKeys: selectedRowKeys, onSelectionChanged: onSelectionChanged, focusedRowKey: focusedRowKey, onFocusedRowChanged: onFocusedRowChanged }) }) }), _jsx(TMLayoutItem, { height: 'calc(100% - 50px)', children: _jsxs(TreeList, { height: "100%", elementAttr: { class: 'tm-dx-treelist' }, dataSource: treeItems, showRowLines: false, showColumnLines: false, showBorders: false, columnAutoWidth: true, keyExpr: "id", parentIdExpr: "parentID", dataStructure: "plain", showColumnHeaders: false, onContentReady: (e) => e.component.clearSelection(), onSelectionChanged: (e) => {
114
114
  if (e.selectedRowsData[0] && e.selectedRowsData[0].type == TreeItemTypes.DcmtType) {
115
115
  onSelectedTIDChanged?.(e.selectedRowsData[0].tid, selectedTreeId);
116
116
  }
@@ -1,13 +1,26 @@
1
- import { WorkingGroupDescriptor } from "@topconsultnpm/sdk-ts-beta";
1
+ import { DcmtTypeDescriptor, WorkingGroupDescriptor } from "@topconsultnpm/sdk-ts-beta";
2
2
  import { FileItem } from '../../base/TMFileManager';
3
- interface TMWGsCopyMoveFormProps {
4
- mode: 'copy' | 'move';
5
- currentWorkingGroup: WorkingGroupDescriptor;
6
- folder: FileItem;
3
+ /** Context descriptor for copy/move operations using different engines */
4
+ export type TMWgsCopyMoveContextDescriptor = {
5
+ engine: 'WorkingGroupEngine';
6
+ object?: WorkingGroupDescriptor;
7
7
  selectedDrafts: Array<FileItem>;
8
+ } | {
9
+ engine: 'SearchEngine';
10
+ object?: DcmtTypeDescriptor;
11
+ selectedDrafts: Array<any>;
12
+ };
13
+ export declare const getDocumentDisplayInfo: (descriptor: DcmtTypeDescriptor, item: any) => {
14
+ name: string;
15
+ description: string;
16
+ };
17
+ interface TMWGsCopyMoveFormProps {
18
+ context: TMWgsCopyMoveContextDescriptor;
19
+ mode: 'copy' | 'move' | 'copyToWgDraft' | 'copyToWgArchivedDoc';
8
20
  onClose: () => void;
9
- refreshCallback: () => void;
10
21
  workingGroups?: Array<WorkingGroupDescriptor>;
22
+ folder?: FileItem;
23
+ refreshCallback?: () => void;
11
24
  }
12
25
  declare const TMWGsCopyMoveForm: (props: TMWGsCopyMoveFormProps) => import("react/jsx-runtime").JSX.Element;
13
26
  export default TMWGsCopyMoveForm;