@topconsultnpm/sdkui-react 6.20.0 → 6.21.0-dev1.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/components/NewComponents/FloatingMenuBar/TMFloatingMenuBar.js +7 -1
- package/lib/components/base/TMTreeView.d.ts +2 -1
- package/lib/components/base/TMTreeView.js +8 -3
- package/lib/components/base/TMWaitPanel.js +6 -5
- package/lib/components/choosers/TMUserChooser.js +3 -1
- package/lib/components/features/archive/TMArchive.d.ts +1 -1
- package/lib/components/features/archive/TMArchive.js +2 -2
- package/lib/components/features/documents/TMDcmtBlog.d.ts +1 -0
- package/lib/components/features/documents/TMDcmtBlog.js +2 -1
- package/lib/components/features/documents/TMDcmtForm.d.ts +42 -34
- package/lib/components/features/documents/TMDcmtForm.js +282 -641
- package/lib/components/features/documents/TMDcmtFormActionButtons.d.ts +34 -0
- package/lib/components/features/documents/TMDcmtFormActionButtons.js +124 -0
- package/lib/components/features/documents/TMFileUploader.d.ts +1 -1
- package/lib/components/features/documents/TMFileUploader.js +3 -3
- package/lib/components/features/documents/TMMasterDetailDcmts.d.ts +27 -2
- package/lib/components/features/documents/TMMasterDetailDcmts.js +239 -18
- package/lib/components/features/documents/TMRelationViewer.d.ts +12 -1
- package/lib/components/features/documents/TMRelationViewer.js +48 -10
- package/lib/components/features/search/TMSavedQuerySelector.js +1 -1
- package/lib/components/features/search/TMSearch.d.ts +3 -2
- package/lib/components/features/search/TMSearch.js +3 -3
- package/lib/components/features/search/TMSearchResult.d.ts +28 -26
- package/lib/components/features/search/TMSearchResult.js +364 -487
- package/lib/components/features/search/TMViewHistoryDcmt.js +6 -0
- package/lib/components/features/tasks/TMTaskForm.d.ts +2 -1
- package/lib/components/features/tasks/TMTaskForm.js +2 -2
- package/lib/helper/checkinCheckoutManager.d.ts +1 -1
- package/lib/helper/checkinCheckoutManager.js +25 -6
- package/lib/hooks/useCheckInOutOperations.d.ts +7 -6
- package/lib/hooks/useCheckInOutOperations.js +9 -16
- package/lib/hooks/useDcmtOperations.d.ts +3 -2
- package/lib/hooks/useDcmtOperations.js +2 -2
- package/lib/hooks/useDocumentOperations.d.ts +140 -0
- package/lib/hooks/useDocumentOperations.js +1307 -0
- package/lib/hooks/useRelatedDocuments.d.ts +1 -1
- package/lib/ts/types.d.ts +2 -1
- package/lib/ts/types.js +1 -0
- package/package.json +2 -2
- package/lib/components/features/search/TMSearchResultsMenuItems.d.ts +0 -11
- package/lib/components/features/search/TMSearchResultsMenuItems.js +0 -758
|
@@ -146,6 +146,7 @@ const TMFloatingMenuBar = ({ containerRef, contextMenuItems = [], isConstrained
|
|
|
146
146
|
const isLocalChange = useRef(false);
|
|
147
147
|
const dragStartPosition = useRef(null);
|
|
148
148
|
const isItemsInitialized = useRef(false);
|
|
149
|
+
const hasReceivedNonEmptyExternalIds = useRef(false);
|
|
149
150
|
useEffect(() => {
|
|
150
151
|
floatingBarItemIds.current = new Set(state.items.map(i => i.id));
|
|
151
152
|
floatingBarItemNames.current = new Set(state.items.map(i => i.name));
|
|
@@ -264,9 +265,14 @@ const TMFloatingMenuBar = ({ containerRef, contextMenuItems = [], isConstrained
|
|
|
264
265
|
}
|
|
265
266
|
if (externalPinnedItemIds === undefined || !enableConfigMode)
|
|
266
267
|
return;
|
|
268
|
+
// Track if we've ever received non-empty external IDs
|
|
269
|
+
if (externalPinnedItemIds.length > 0) {
|
|
270
|
+
hasReceivedNonEmptyExternalIds.current = true;
|
|
271
|
+
}
|
|
267
272
|
// Skip sync if external is empty but we have initialized items (first login case)
|
|
268
273
|
// The parent hook starts with [] but we've initialized with defaults
|
|
269
|
-
|
|
274
|
+
// However, once we've received non-empty pinnedItemIds, an empty array means user removed all items
|
|
275
|
+
if (externalPinnedItemIds.length === 0 && state.items.length > 0 && !hasReceivedNonEmptyExternalIds.current)
|
|
270
276
|
return;
|
|
271
277
|
const flatItems = flattenMenuItems(contextMenuItems);
|
|
272
278
|
// Build items from external pinned IDs
|
|
@@ -23,11 +23,12 @@ interface ITMTreeViewProps<T extends ITMTreeItem> {
|
|
|
23
23
|
onNodeUpdate?: (updatedNode: T) => void;
|
|
24
24
|
onDataChanged?: (items: T[]) => void;
|
|
25
25
|
shouldDelayFocusOnEvent?: (node: T, event: React.MouseEvent) => boolean;
|
|
26
|
+
onItemContextMenu?: (item: T, e: React.MouseEvent) => void;
|
|
26
27
|
autoSelectChildren?: boolean;
|
|
27
28
|
itemsPerPage?: number;
|
|
28
29
|
showLoadMoreButton?: boolean;
|
|
29
30
|
}
|
|
30
|
-
declare const TMTreeView: <T extends ITMTreeItem>({ dataSource, focusedItem, selectedItems, allowMultipleSelection, onDataChanged, calculateItemsForNode, itemRender, onNodeUpdate, onFocusedItemChanged, onSelectionChanged, shouldDelayFocusOnEvent, autoSelectChildren, itemsPerPage, showLoadMoreButton }: ITMTreeViewProps<T>) => import("react/jsx-runtime").JSX.Element;
|
|
31
|
+
declare const TMTreeView: <T extends ITMTreeItem>({ dataSource, focusedItem, selectedItems, allowMultipleSelection, onDataChanged, calculateItemsForNode, itemRender, onNodeUpdate, onFocusedItemChanged, onSelectionChanged, shouldDelayFocusOnEvent, onItemContextMenu, autoSelectChildren, itemsPerPage, showLoadMoreButton }: ITMTreeViewProps<T>) => import("react/jsx-runtime").JSX.Element;
|
|
31
32
|
export default TMTreeView;
|
|
32
33
|
export declare const StyledTreeNode: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components/dist/types").Substitute<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {
|
|
33
34
|
$isSelected?: boolean;
|
|
@@ -3,7 +3,7 @@ import { useCallback, useEffect, useRef } from 'react';
|
|
|
3
3
|
import styled from 'styled-components';
|
|
4
4
|
import { IconArrowLeft, IconArrowRight, IconChevronDown, IconChevronRight, SDKUI_Localizator } from '../../helper';
|
|
5
5
|
import TMButton from './TMButton';
|
|
6
|
-
const TMTreeView = ({ dataSource = [], focusedItem, selectedItems = [], allowMultipleSelection, onDataChanged, calculateItemsForNode, itemRender, onNodeUpdate, onFocusedItemChanged, onSelectionChanged, shouldDelayFocusOnEvent, autoSelectChildren = true, itemsPerPage = 100, showLoadMoreButton = true }) => {
|
|
6
|
+
const TMTreeView = ({ dataSource = [], focusedItem, selectedItems = [], allowMultipleSelection, onDataChanged, calculateItemsForNode, itemRender, onNodeUpdate, onFocusedItemChanged, onSelectionChanged, shouldDelayFocusOnEvent, onItemContextMenu, autoSelectChildren = true, itemsPerPage = 100, showLoadMoreButton = true }) => {
|
|
7
7
|
useEffect(() => {
|
|
8
8
|
const handleKeyDown = (event) => {
|
|
9
9
|
if (!focusedItem)
|
|
@@ -350,8 +350,13 @@ const TMTreeView = ({ dataSource = [], focusedItem, selectedItems = [], allowMul
|
|
|
350
350
|
if (input) {
|
|
351
351
|
input.indeterminate = isIndeterminate(node);
|
|
352
352
|
}
|
|
353
|
-
} })), _jsx("div", { style: { display: 'flex', alignItems: 'center', flex: 1, minWidth: 0 }, onClick: (e) => { handleNodeClick(node, e); },
|
|
354
|
-
|
|
353
|
+
} })), _jsx("div", { style: { display: 'flex', alignItems: 'center', flex: 1, minWidth: 0 }, onClick: (e) => { handleNodeClick(node, e); }, onContextMenu: (e) => {
|
|
354
|
+
if (onItemContextMenu) {
|
|
355
|
+
e.preventDefault();
|
|
356
|
+
onItemContextMenu(node, e);
|
|
357
|
+
}
|
|
358
|
+
}, children: itemRender(node) })] }), node.expanded && node.items && (_jsxs("div", { style: { paddingLeft: 20, width: '100%' }, children: [renderTree(getVisibleItems(node)), needsPagination(node) && (_jsxs(StyledStickyPaginator, { children: [_jsx(TMButton, { btnStyle: 'icon', onClick: () => handlePageChange(node.key, (node.currentPage ?? 0) - 1), showTooltip: false, caption: "\u25C4", icon: _jsx(IconArrowLeft, { color: 'white' }), disabled: (node.currentPage ?? 0) <= 0 }), _jsx("span", { style: { fontSize: '11px', whiteSpace: 'nowrap', fontWeight: 500, overflow: 'hidden', textOverflow: 'ellipsis', minWidth: 0, color: 'white' }, children: SDKUI_Localizator.PaginationInfo.replaceParams((node.currentPage ?? 0) + 1, getTotalPages(node), node.items?.length ?? 0) }), _jsx(TMButton, { btnStyle: 'icon', onClick: () => handlePageChange(node.key, (node.currentPage ?? 0) + 1), showTooltip: false, caption: "\u25BA", icon: _jsx(IconArrowRight, { color: 'white' }), disabled: (node.currentPage ?? 0) >= getTotalPages(node) - 1 })] }))] }))] }, node.key)));
|
|
359
|
+
}, [handleNodeClick, handleNodeToggle, handleCheckboxChange, focusedItem, selectedItems, allowMultipleSelection, getVisibleItems, needsPagination, handlePageChange, getTotalPages, onItemContextMenu]);
|
|
355
360
|
return (_jsx("div", { style: { height: '100%', width: '100%', overflowY: 'auto', overflowX: 'hidden', padding: '0px 5px 2px 2px' }, children: renderTree(dataSource) }));
|
|
356
361
|
};
|
|
357
362
|
export default TMTreeView;
|
|
@@ -33,17 +33,18 @@ const StyledProgressText = styled.p ` font-weight: bold; color: #333; margin: 0;
|
|
|
33
33
|
const StyledMessage = styled.p ` color: #666; font-size: 0.9em; margin-top: 10px; `;
|
|
34
34
|
const StyledAbortButton = styled.button ` background: #ff4d4d; color: white; border: none; border-radius: 5px; padding: 10px 20px; font-size: 1em; cursor: pointer; margin-top: 20px; &:hover { background: #ff6666; } `;
|
|
35
35
|
export const TMWaitPanel = (props) => {
|
|
36
|
+
const { title, showPrimary, textPrimary, valuePrimary, maxValuePrimary, showSecondary, textSecondary, valueSecondary, maxValueSecondary, isCancelable, abortController, onAbortClick } = props;
|
|
36
37
|
const calculateProgress = (value = 0, maxValue = 0) => {
|
|
37
38
|
if (maxValue === 0)
|
|
38
39
|
return 0;
|
|
39
40
|
const progress = (value / maxValue) * 100;
|
|
40
41
|
return Number.isFinite(progress) ? progress : 0;
|
|
41
42
|
};
|
|
42
|
-
let progressValue1 = calculateProgress(
|
|
43
|
-
let progressValue2 = calculateProgress(
|
|
44
|
-
return (_jsx(StyledWaitPanelOverlay, { children: _jsxs(StyledWaitPanel, { "$height": (
|
|
45
|
-
_jsxs("div", { style: { width: '100%', height: '100px' }, children: [_jsx(StyledProgressBarContainer, { children: _jsx(StyledProgressBar, { style: { width: `${progressValue1.toFixed(2)}%` } }) }), _jsxs(StyledProgressText, { children: [progressValue1.toFixed(2), "%"] }), _jsx(StyledMessage, { children:
|
|
46
|
-
_jsxs("div", { style: { width: '100%', height: '100px' }, children: [_jsx(StyledProgressBarContainer, { children: _jsx(StyledProgressBar, { style: { width: `${progressValue2.toFixed(2)}%` } }) }), _jsxs(StyledProgressText, { children: [progressValue2.toFixed(2), "%"] }), _jsx(StyledMessage, { children:
|
|
43
|
+
let progressValue1 = calculateProgress(valuePrimary, maxValuePrimary);
|
|
44
|
+
let progressValue2 = calculateProgress(valueSecondary, maxValueSecondary);
|
|
45
|
+
return (_jsx(StyledWaitPanelOverlay, { children: _jsxs(StyledWaitPanel, { "$height": (showPrimary && showSecondary) ? '350px' : '250px', children: [_jsx(StyledTitle, { children: title }), showPrimary &&
|
|
46
|
+
_jsxs("div", { style: { width: '100%', height: '100px' }, children: [_jsx(StyledProgressBarContainer, { children: _jsx(StyledProgressBar, { style: { width: `${progressValue1.toFixed(2)}%` } }) }), _jsxs(StyledProgressText, { children: [progressValue1.toFixed(2), "%"] }), _jsx(StyledMessage, { children: textPrimary })] }), showSecondary &&
|
|
47
|
+
_jsxs("div", { style: { width: '100%', height: '100px' }, children: [_jsx(StyledProgressBarContainer, { children: _jsx(StyledProgressBar, { style: { width: `${progressValue2.toFixed(2)}%` } }) }), _jsxs(StyledProgressText, { children: [progressValue2.toFixed(2), "%"] }), _jsx(StyledMessage, { children: textSecondary })] }), isCancelable && _jsx(StyledAbortButton, { onClick: () => onAbortClick?.(abortController), children: SDKUI_Localizator.Abort })] }) }));
|
|
47
48
|
};
|
|
48
49
|
export const TMLayoutWaitingContainer = ({ showWaitPanel, showWaitPanelPrimary, showWaitPanelSecondary, waitPanelTitle, waitPanelTextSecondary, waitPanelValueSecondary, waitPanelMaxValueSecondary, waitPanelTextPrimary, waitPanelValuePrimary, waitPanelMaxValuePrimary, isCancelable, abortController, gap = 3, onClick, justifyContent = 'flex-start', alignItems = 'flex-start', children, direction = 'vertical' }) => {
|
|
49
50
|
return (_jsxs(TMLayoutContainer, { gap: gap, justifyContent: justifyContent, alignItems: alignItems, direction: direction, children: [children, showWaitPanel && (_jsx(TMWaitPanel, { title: waitPanelTitle, showPrimary: showWaitPanelPrimary, textPrimary: waitPanelTextPrimary, valuePrimary: waitPanelValuePrimary, maxValuePrimary: waitPanelMaxValuePrimary, showSecondary: showWaitPanelSecondary, textSecondary: waitPanelTextSecondary, valueSecondary: waitPanelValueSecondary, maxValueSecondary: waitPanelMaxValueSecondary, isCancelable: isCancelable, abortController: abortController, onAbortClick: (abortController) => { setTimeout(() => { abortController?.abort(); }, 1000); } }))] }));
|
|
@@ -37,7 +37,9 @@ export const TMUserChooserForm = ({ allowMultipleSelection, columns, hideRefresh
|
|
|
37
37
|
const dataColumns = useMemo(() => {
|
|
38
38
|
return [
|
|
39
39
|
{ dataField: 'domain', caption: SDKUI_Localizator.Domain, dataType: 'string' },
|
|
40
|
-
{ dataField: 'name', caption: SDKUI_Localizator.UserName, dataType: 'string' }
|
|
40
|
+
{ dataField: 'name', caption: SDKUI_Localizator.UserName, dataType: 'string' },
|
|
41
|
+
{ dataField: 'fn', caption: SDKUI_Localizator.User_FirstName, dataType: 'string' },
|
|
42
|
+
{ dataField: 'ln', caption: SDKUI_Localizator.User_LastName, dataType: 'string' }
|
|
41
43
|
];
|
|
42
44
|
}, []);
|
|
43
45
|
const getItems = async (refreshCache) => {
|
|
@@ -24,7 +24,7 @@ interface ITMArchiveProps {
|
|
|
24
24
|
editTaskCallback?: (task: TaskDescriptor) => Promise<void>;
|
|
25
25
|
handleNavigateToWGs?: (value: HomeBlogPost | number) => Promise<void>;
|
|
26
26
|
handleNavigateToDossiers?: (value: HomeBlogPost | number) => Promise<void>;
|
|
27
|
-
|
|
27
|
+
openFileUploaderPdfEditor?: (fromDTD?: DcmtTypeDescriptor, file?: File | null, handleFile?: (file: File) => void) => void;
|
|
28
28
|
onScanRequest?: (onFileScanned: (file: File) => void) => void;
|
|
29
29
|
}
|
|
30
30
|
declare const TMArchive: React.FunctionComponent<ITMArchiveProps>;
|
|
@@ -12,7 +12,7 @@ import TMTreeSelector from '../search/TMTreeSelector';
|
|
|
12
12
|
import TMPanel from '../../base/TMPanel';
|
|
13
13
|
import { TMPanelManagerProvider, useTMPanelManagerContext } from '../../layout/panelManager/TMPanelManagerContext';
|
|
14
14
|
import TMPanelManagerContainer from '../../layout/panelManager/TMPanelManagerContainer';
|
|
15
|
-
const TMArchive = ({ onDcmtTypeSelect = undefined, inputTID, inputFile = null, connectorFileSave = undefined, onSavedAsyncCallback, inputMids = [], enableDragDropOverlay = false, passToSearch, isSharedArchive = false, inputDID = undefined, allTasks = [], getAllTasks, deleteTaskByIdsCallback, addTaskCallback, editTaskCallback, handleNavigateToWGs, handleNavigateToDossiers,
|
|
15
|
+
const TMArchive = ({ onDcmtTypeSelect = undefined, inputTID, inputFile = null, connectorFileSave = undefined, onSavedAsyncCallback, inputMids = [], enableDragDropOverlay = false, passToSearch, isSharedArchive = false, inputDID = undefined, allTasks = [], getAllTasks, deleteTaskByIdsCallback, addTaskCallback, editTaskCallback, handleNavigateToWGs, handleNavigateToDossiers, openFileUploaderPdfEditor, onScanRequest }) => {
|
|
16
16
|
const [currentTID, setCurrentTID] = useState(inputTID ?? 0);
|
|
17
17
|
const [mruTIDs, setMruTIDs] = useState([]);
|
|
18
18
|
const [currentMruTID, setCurrentMruTID] = useState(0);
|
|
@@ -77,7 +77,7 @@ const TMArchive = ({ onDcmtTypeSelect = undefined, inputTID, inputFile = null, c
|
|
|
77
77
|
if (onDcmtTypeSelect)
|
|
78
78
|
onDcmtTypeSelect(tidToUse);
|
|
79
79
|
passToSearch(tidToUse, outputMids);
|
|
80
|
-
} : undefined, isSharedDcmt: isSharedArchive, allTasks: allTasks, getAllTasks: getAllTasks, deleteTaskByIdsCallback: deleteTaskByIdsCallback, addTaskCallback: addTaskCallback, editTaskCallback: editTaskCallback, handleNavigateToWGs: handleNavigateToWGs, handleNavigateToDossiers: handleNavigateToDossiers, moreInfoTasks: getMoreInfoTasksForDocument(allTasks, currentTID, currentTID === inputTID ? inputDID : undefined),
|
|
80
|
+
} : undefined, showBackButton: false, isSharedDcmt: isSharedArchive, allTasks: allTasks, getAllTasks: getAllTasks, deleteTaskByIdsCallback: deleteTaskByIdsCallback, addTaskCallback: addTaskCallback, editTaskCallback: editTaskCallback, handleNavigateToWGs: handleNavigateToWGs, handleNavigateToDossiers: handleNavigateToDossiers, moreInfoTasks: getMoreInfoTasksForDocument(allTasks, currentTID, currentTID === inputTID ? inputDID : undefined), openFileUploaderPdfEditor: openFileUploaderPdfEditor, onScanRequest: onScanRequest }, currentTID)
|
|
81
81
|
:
|
|
82
82
|
_jsx(TMPanel, { title: 'Archiviazione', allowMaximize: false, children: _jsxs(TMLayoutContainer, { gap: 30, alignItems: 'center', justifyContent: 'center', children: [_jsx(StyledToppyTextContainer, { children: _jsx(StyledToppyText, { children: SDKUI_Localizator.DcmtTypeSelect }) }), _jsx(StyledToppyImage, { src: Logo, alt: 'Toppy' })] }) }), [currentTID, deviceType, mruTIDs, inputFile, currentInputMids, enableDragDropOverlay, isSharedArchive, allTasks]);
|
|
83
83
|
const allInitialPanelVisibility = {
|
|
@@ -5,6 +5,7 @@ interface ITMDcmtBlogProps {
|
|
|
5
5
|
did: number | undefined;
|
|
6
6
|
isVisible?: boolean;
|
|
7
7
|
fetchBlogDataTrigger?: number;
|
|
8
|
+
onRefreshBlogDatagrid?: () => Promise<void>;
|
|
8
9
|
allTasks?: Array<TaskDescriptor>;
|
|
9
10
|
getAllTasks?: () => Promise<void>;
|
|
10
11
|
deleteTaskByIdsCallback?: (deletedTaskIds: Array<number>) => Promise<void>;
|
|
@@ -8,7 +8,7 @@ import TMBlogCommentForm from '../blog/TMBlogCommentForm';
|
|
|
8
8
|
import TMBlogsPost from '../../grids/TMBlogsPost';
|
|
9
9
|
import TMSpinner from '../../base/TMSpinner';
|
|
10
10
|
import { TMExceptionBoxManager } from '../../base/TMPopUp';
|
|
11
|
-
const TMDcmtBlog = ({ tid, did, isVisible, fetchBlogDataTrigger, allTasks = [], getAllTasks, deleteTaskByIdsCallback, addTaskCallback, editTaskCallback, handleNavigateToWGs, handleNavigateToDossiers }) => {
|
|
11
|
+
const TMDcmtBlog = ({ tid, did, isVisible, fetchBlogDataTrigger, onRefreshBlogDatagrid, allTasks = [], getAllTasks, deleteTaskByIdsCallback, addTaskCallback, editTaskCallback, handleNavigateToWGs, handleNavigateToDossiers }) => {
|
|
12
12
|
const [blogsDatasource, setBlogsDatasource] = useState([]);
|
|
13
13
|
const [hasLoadedDataOnce, setHasLoadedDataOnce] = useState(false); //traccia se *qualsiasi* dato è stato caricato per la prima volta
|
|
14
14
|
const [lastLoadedDid, setLastLoadedDid] = useState(undefined); // `lastLoadedDid` tiene traccia dell'ultimo `did` per cui abbiamo caricato i dati
|
|
@@ -58,6 +58,7 @@ const TMDcmtBlog = ({ tid, did, isVisible, fetchBlogDataTrigger, allTasks = [],
|
|
|
58
58
|
}, [tid, did, isVisible, hasLoadedDataOnce, lastLoadedDid]);
|
|
59
59
|
const refreshCallback = async () => {
|
|
60
60
|
await fetchBlogDataAsync(tid, did);
|
|
61
|
+
await onRefreshBlogDatagrid?.();
|
|
61
62
|
};
|
|
62
63
|
const resetExternalBlogPost = useCallback(() => {
|
|
63
64
|
setExternalBlogPost(undefined);
|
|
@@ -14,65 +14,73 @@ export declare enum InvocationContext {
|
|
|
14
14
|
WorkflowCtrl = "workflowCtrl"
|
|
15
15
|
}
|
|
16
16
|
interface ITMDcmtFormProps {
|
|
17
|
-
allTasks?: Array<TaskDescriptor>;
|
|
18
|
-
getAllTasks?: () => Promise<void>;
|
|
19
|
-
deleteTaskByIdsCallback?: (deletedTaskIds: Array<number>) => Promise<void>;
|
|
20
|
-
addTaskCallback?: (task: TaskDescriptor) => Promise<void>;
|
|
21
|
-
editTaskCallback?: (task: TaskDescriptor) => Promise<void>;
|
|
22
|
-
handleNavigateToWGs?: (value: HomeBlogPost | number) => Promise<void>;
|
|
23
|
-
handleNavigateToDossiers?: (value: HomeBlogPost | number) => Promise<void>;
|
|
24
17
|
TID?: number;
|
|
25
18
|
DID?: number;
|
|
19
|
+
groupId?: string;
|
|
26
20
|
layoutMode?: LayoutModes;
|
|
27
21
|
formMode?: FormModes;
|
|
28
|
-
|
|
29
|
-
allowRelations?: boolean;
|
|
22
|
+
invocationContext?: InvocationContext;
|
|
30
23
|
showHeader?: boolean;
|
|
24
|
+
showBackButton?: boolean;
|
|
31
25
|
showDcmtFormSidebar?: boolean;
|
|
32
26
|
isExpertMode?: boolean;
|
|
33
|
-
count?: number;
|
|
34
|
-
itemIndex?: number;
|
|
35
|
-
canNext?: boolean;
|
|
36
|
-
canPrev?: boolean;
|
|
37
27
|
isClosable?: boolean;
|
|
38
|
-
groupId?: string;
|
|
39
|
-
invocationContext?: InvocationContext;
|
|
40
|
-
taskFormDialogComponent?: React.ReactNode;
|
|
41
|
-
moreInfoTasks?: Array<TaskDescriptor>;
|
|
42
|
-
showBackButton?: boolean;
|
|
43
|
-
onNext?: () => void;
|
|
44
|
-
onPrev?: () => void;
|
|
45
|
-
onClose?: () => void;
|
|
46
|
-
onSavedAsyncCallback?: (tid: number | undefined, did: number | undefined, metadataResult?: SearchResultDescriptor | null) => Promise<void>;
|
|
47
|
-
onSaveRecents?: (TIDs: number[]) => void;
|
|
48
|
-
onWFOperationCompleted?: () => Promise<void>;
|
|
49
|
-
onTaskCompleted?: (task: TaskDescriptor) => void;
|
|
50
|
-
onTaskCreateRequest?: (taskContext: TaskContext, onTaskCreated?: (task?: TaskDescriptor) => void) => void;
|
|
51
|
-
connectorFileSave?: () => Promise<File>;
|
|
52
28
|
isModal?: boolean;
|
|
53
29
|
titleModal?: string;
|
|
54
30
|
widthModal?: string;
|
|
55
31
|
heightModal?: string;
|
|
32
|
+
allowNavigation?: boolean;
|
|
33
|
+
count?: number;
|
|
34
|
+
itemIndex?: number;
|
|
35
|
+
canNext?: boolean;
|
|
36
|
+
canPrev?: boolean;
|
|
56
37
|
inputFile?: File | null;
|
|
57
38
|
inputMids?: Array<{
|
|
58
39
|
mid: number;
|
|
59
40
|
value: string;
|
|
60
41
|
}>;
|
|
42
|
+
connectorFileSave?: () => Promise<File>;
|
|
43
|
+
isSharedDcmt?: boolean;
|
|
44
|
+
sharedSourceTID?: number;
|
|
45
|
+
sharedSourceDID?: number;
|
|
46
|
+
allowRelations?: boolean;
|
|
47
|
+
allowButtonsRefs?: boolean;
|
|
61
48
|
openS4TViewer?: boolean;
|
|
62
|
-
onOpenS4TViewerRequest?: (dcmtInfo: Array<DcmtInfo>, onRefreshSearchAsync?: (() => Promise<void>)) => void;
|
|
63
49
|
s4TViewerDialogComponent?: React.ReactNode;
|
|
64
50
|
enableDragDropOverlay?: boolean;
|
|
51
|
+
taskFormDialogComponent?: React.ReactNode;
|
|
52
|
+
allTasks?: Array<TaskDescriptor>;
|
|
53
|
+
moreInfoTasks?: Array<TaskDescriptor>;
|
|
54
|
+
onClose?: () => void;
|
|
55
|
+
onNext?: () => void;
|
|
56
|
+
onPrev?: () => void;
|
|
57
|
+
onSavedAsyncCallback?: (tid: number | undefined, did: number | undefined, metadataResult?: SearchResultDescriptor | null) => Promise<void>;
|
|
58
|
+
onSaveRecents?: (TIDs: number[]) => void;
|
|
59
|
+
onWFOperationCompleted?: () => Promise<void>;
|
|
60
|
+
getAllTasks?: () => Promise<void>;
|
|
61
|
+
deleteTaskByIdsCallback?: (deletedTaskIds: Array<number>) => Promise<void>;
|
|
62
|
+
addTaskCallback?: (task: TaskDescriptor) => Promise<void>;
|
|
63
|
+
editTaskCallback?: (task: TaskDescriptor) => Promise<void>;
|
|
64
|
+
onTaskCompleted?: (task: TaskDescriptor) => void;
|
|
65
|
+
onTaskCreateRequest?: (taskContext: TaskContext, onTaskCreated?: (task?: TaskDescriptor) => void) => void;
|
|
66
|
+
handleNavigateToWGs?: (value: HomeBlogPost | number) => Promise<void>;
|
|
67
|
+
handleNavigateToDossiers?: (value: HomeBlogPost | number) => Promise<void>;
|
|
68
|
+
onReferenceClick?: (ref: ObjectRef) => void;
|
|
65
69
|
onScanRequest?: (onFileScanned: (file: File) => void) => void;
|
|
70
|
+
onOpenS4TViewerRequest?: (dcmtInfo: Array<DcmtInfo>, refreshDocumentPreview?: (() => Promise<void>)) => void;
|
|
71
|
+
onOpenPdfEditorRequest?: (dcmtInfo: Array<DcmtInfo>, refreshDocumentPreview?: (() => Promise<void>)) => void;
|
|
72
|
+
openFileUploaderPdfEditor?: (fromDTD?: DcmtTypeDescriptor, file?: File | null, handleFile?: (file: File) => void, refreshDocumentPreview?: () => Promise<void>) => void;
|
|
66
73
|
passToSearch?: (outputMids: Array<{
|
|
67
74
|
mid: number;
|
|
68
75
|
value: string;
|
|
69
76
|
}>, tid?: number) => void;
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
77
|
+
datagridUtility?: {
|
|
78
|
+
onRefreshSearchAsyncDatagrid?: () => Promise<void>;
|
|
79
|
+
onRefreshDataRowsAsync?: (() => Promise<void>);
|
|
80
|
+
refreshFocusedDataRowAsync?: (tid: number | undefined, did: number | undefined, refreshUI?: boolean, metadataResult?: SearchResultDescriptor | null) => Promise<void>;
|
|
81
|
+
onRefreshBlogDatagrid?: () => Promise<void>;
|
|
82
|
+
onRefreshPreviewDatagrid?: () => Promise<void>;
|
|
83
|
+
};
|
|
76
84
|
}
|
|
77
85
|
declare const TMDcmtForm: React.FC<ITMDcmtFormProps>;
|
|
78
86
|
export default TMDcmtForm;
|