@topconsultnpm/sdkui-react 6.20.0-test1 → 6.20.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/components/NewComponents/ContextMenu/styles.d.ts +3 -1
- package/lib/components/NewComponents/ContextMenu/styles.js +7 -5
- package/lib/components/base/Styled.d.ts +4 -1
- package/lib/components/base/Styled.js +11 -3
- package/lib/components/base/TMPanel.js +6 -4
- package/lib/components/base/TMPopUp.js +4 -0
- package/lib/components/base/TMTreeView.d.ts +3 -1
- package/lib/components/base/TMTreeView.js +68 -21
- package/lib/components/choosers/TMDataListItemChooser.js +1 -1
- package/lib/components/choosers/TMDataListItemEditor.d.ts +11 -0
- package/lib/components/choosers/TMDataListItemEditor.js +130 -0
- package/lib/components/choosers/TMDataListItemFields.d.ts +11 -0
- package/lib/components/choosers/TMDataListItemFields.js +61 -0
- package/lib/components/choosers/TMDataListItemPicker.d.ts +2 -0
- package/lib/components/choosers/TMDataListItemPicker.js +182 -18
- package/lib/components/choosers/TMDynDataListItemChooser.js +11 -6
- package/lib/components/choosers/TMImageIDChooser.d.ts +16 -0
- package/lib/components/choosers/TMImageIDChooser.js +53 -0
- package/lib/components/choosers/TMMetadataChooser.js +1 -1
- package/lib/components/choosers/TMUserChooser.js +1 -1
- package/lib/components/editors/TMDateBox.js +1 -1
- package/lib/components/editors/TMHtmlEditor.js +1 -1
- package/lib/components/editors/TMLocalizedTextBox.d.ts +1 -0
- package/lib/components/editors/TMLocalizedTextBox.js +3 -3
- package/lib/components/editors/TMMetadataValues.js +203 -41
- package/lib/components/editors/TMTextArea.d.ts +1 -0
- package/lib/components/editors/TMTextArea.js +6 -6
- package/lib/components/editors/TMTextBox.js +9 -10
- package/lib/components/features/archive/TMArchive.d.ts +3 -1
- package/lib/components/features/archive/TMArchive.js +31 -44
- package/lib/components/features/blog/TMBlogCommentForm.d.ts +3 -0
- package/lib/components/features/blog/TMBlogCommentForm.js +42 -36
- package/lib/components/features/documents/TMDcmtForm.d.ts +3 -1
- package/lib/components/features/documents/TMDcmtForm.js +215 -54
- package/lib/components/features/documents/TMDcmtPreview.js +66 -13
- package/lib/components/features/documents/TMDcmtTasks.d.ts +3 -1
- package/lib/components/features/documents/TMDcmtTasks.js +2 -2
- package/lib/components/features/documents/TMFileUploader.d.ts +5 -0
- package/lib/components/features/documents/TMFileUploader.js +28 -6
- package/lib/components/features/documents/TMMasterDetailDcmts.js +31 -85
- package/lib/components/features/documents/TMRelationViewer.d.ts +7 -1
- package/lib/components/features/documents/TMRelationViewer.js +497 -111
- package/lib/components/features/search/TMSearchQueryPanel.js +6 -6
- package/lib/components/features/search/TMSearchResult.d.ts +2 -0
- package/lib/components/features/search/TMSearchResult.js +106 -86
- package/lib/components/features/search/TMSearchResultsMenuItems.d.ts +1 -1
- package/lib/components/features/search/TMSearchResultsMenuItems.js +6 -18
- package/lib/components/features/search/TMSignatureInfoContent.js +10 -6
- package/lib/components/features/search/TMTreeSelector.js +1 -1
- package/lib/components/features/tasks/TMTaskForm.d.ts +1 -0
- package/lib/components/features/tasks/TMTaskForm.js +61 -193
- package/lib/components/features/tasks/TMTaskFormUtils.d.ts +80 -0
- package/lib/components/features/tasks/TMTaskFormUtils.js +559 -0
- package/lib/components/features/tasks/TMTasksUtils.d.ts +3 -1
- package/lib/components/features/tasks/TMTasksUtils.js +46 -16
- package/lib/components/features/tasks/TMTasksUtilsView.d.ts +0 -7
- package/lib/components/features/tasks/TMTasksUtilsView.js +7 -14
- package/lib/components/features/tasks/TMTasksView.js +5 -3
- package/lib/components/features/workflow/TMWorkflowPopup.d.ts +20 -3
- package/lib/components/features/workflow/TMWorkflowPopup.js +21 -109
- package/lib/components/features/workflow/diagram/ConnectionComponent.d.ts +1 -0
- package/lib/components/features/workflow/diagram/ConnectionComponent.js +6 -2
- package/lib/components/features/workflow/diagram/DiagramItemForm.d.ts +2 -0
- package/lib/components/features/workflow/diagram/DiagramItemForm.js +32 -25
- package/lib/components/features/workflow/diagram/RecipientList.d.ts +3 -1
- package/lib/components/features/workflow/diagram/RecipientList.js +13 -9
- package/lib/components/features/workflow/diagram/WFDiagram.js +102 -5
- package/lib/components/features/workflow/diagram/workflowHelpers.js +31 -19
- package/lib/components/forms/Login/TMLoginForm.js +1 -1
- package/lib/components/forms/TMSaveForm.js +61 -13
- package/lib/components/grids/TMBlogsPost.js +8 -8
- package/lib/components/grids/TMBlogsPostUtils.js +2 -2
- package/lib/components/grids/TMRecentsManager.js +1 -1
- package/lib/components/index.d.ts +2 -0
- package/lib/components/index.js +2 -0
- package/lib/components/layout/panelManager/TMPanelManagerContainer.js +3 -2
- package/lib/components/pages/TMPage.js +4 -0
- package/lib/components/query/TMQueryEditor.d.ts +1 -0
- package/lib/components/query/TMQueryEditor.js +3 -3
- package/lib/components/viewers/TMMidViewer.js +2 -1
- package/lib/components/viewers/TMTidViewer.js +7 -3
- package/lib/helper/Enum_Localizator.js +5 -0
- package/lib/helper/GlobalStyles.js +3 -0
- package/lib/helper/SDKUI_Globals.d.ts +12 -0
- package/lib/helper/SDKUI_Globals.js +21 -1
- package/lib/helper/SDKUI_Localizator.d.ts +31 -7
- package/lib/helper/SDKUI_Localizator.js +286 -46
- package/lib/helper/TMIcons.d.ts +2 -1
- package/lib/helper/TMIcons.js +4 -1
- package/lib/helper/TMUtils.d.ts +33 -41
- package/lib/helper/TMUtils.js +157 -170
- package/lib/helper/helpers.d.ts +6 -2
- package/lib/helper/helpers.js +24 -8
- package/lib/helper/index.d.ts +1 -0
- package/lib/helper/index.js +1 -0
- package/lib/helper/queryHelper.js +1 -1
- package/lib/hooks/useBetaFeatures.d.ts +1 -0
- package/lib/hooks/useBetaFeatures.js +41 -0
- package/lib/hooks/useDataUserIdItem.js +2 -2
- package/lib/hooks/useDcmtOperations.js +14 -2
- package/lib/hooks/useRelatedDocuments.js +64 -42
- package/lib/index.d.ts +1 -0
- package/lib/index.js +1 -0
- package/lib/services/platform_services.d.ts +1 -1
- package/lib/services/platform_services.js +4 -0
- package/lib/ts/types.d.ts +3 -0
- package/package.json +2 -2
- package/lib/components/features/search/TMSignSettingsForm.d.ts +0 -9
- package/lib/components/features/search/TMSignSettingsForm.js +0 -621
|
@@ -2,7 +2,7 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
2
2
|
import React, { useCallback, useEffect, useRef, useState } from "react";
|
|
3
3
|
import { DossierEngine, LayoutModes, ObjectClasses, ResultTypes, SDK_Globals, TaskDescriptor, WorkingGroupEngine } from "@topconsultnpm/sdk-ts";
|
|
4
4
|
import { ContextMenu as TMContextMenu } from "../NewComponents/ContextMenu";
|
|
5
|
-
import { SDKUI_Localizator, Globalization, getExceptionMessage, TMConditionalWrapper,
|
|
5
|
+
import { SDKUI_Localizator, Globalization, getExceptionMessage, TMConditionalWrapper, getMoreInfoTasksForDocument, taskModalSizes } from "../../helper";
|
|
6
6
|
import TMToppyMessage from "../../helper/TMToppyMessage";
|
|
7
7
|
import { useDcmtOperations } from "../../hooks/useDcmtOperations";
|
|
8
8
|
import { DownloadTypes, FormModes } from "../../ts";
|
|
@@ -629,10 +629,10 @@ const TMBlogsPost = (props) => {
|
|
|
629
629
|
console.warn(`Unhandled object type: ${ref.objClass}`);
|
|
630
630
|
}
|
|
631
631
|
};
|
|
632
|
-
return _jsx("div", { ref: containerRef, style: { height: height, width: width }, children: _jsx(TMLayoutWaitingContainer, { direction: 'vertical', showWaitPanel: showWaitPanel, showWaitPanelPrimary: showPrimary, showWaitPanelSecondary: showSecondary, waitPanelTitle: waitPanelTitle, waitPanelTextPrimary: waitPanelTextPrimary, waitPanelValuePrimary: waitPanelValuePrimary, waitPanelMaxValuePrimary: waitPanelMaxValuePrimary, waitPanelTextSecondary: waitPanelTextSecondary, waitPanelValueSecondary: waitPanelValueSecondary, waitPanelMaxValueSecondary: waitPanelMaxValueSecondary, isCancelable: true, abortController: abortController, children: _jsxs(TMLayoutWaitingContainer, { direction: 'vertical', showWaitPanel: localShowWaitPanel, showWaitPanelPrimary: localShowPrimary, waitPanelTitle: localWaitPanelTitle, waitPanelTextPrimary: localWaitPanelTextPrimary, waitPanelValuePrimary: localWaitPanelValuePrimary, waitPanelMaxValuePrimary: localWaitPanelMaxValuePrimary, isCancelable: true, abortController: localAbortController, children: [_jsx(TMBlogHeader, { isVisible: currentHeader !== undefined && !isHeaderHidden, layoutMode: layoutMode, height: layoutMode === 'extended' ? "40px" : "70px", width: "100%", allPosts: posts, postsToShow: postsToShow, onPostsToShowChange: handlePostsToShowChange, categoryIdDataSource: categoryIdDataSource, appliedCategoryIdFilters: appliedCategoryIdFilters, setAppliedCategoryIdFilters: setAppliedCategoryIdFilters, searchText: searchText, onSearchChange: handleSearchChange }), _jsxs("div", { style: {
|
|
632
|
+
return _jsx("div", { ref: containerRef, style: { height: height, width: width }, children: _jsx(TMLayoutWaitingContainer, { direction: 'vertical', showWaitPanel: showWaitPanel, showWaitPanelPrimary: showPrimary, showWaitPanelSecondary: showSecondary, waitPanelTitle: waitPanelTitle, waitPanelTextPrimary: waitPanelTextPrimary, waitPanelValuePrimary: waitPanelValuePrimary, waitPanelMaxValuePrimary: waitPanelMaxValuePrimary, waitPanelTextSecondary: waitPanelTextSecondary, waitPanelValueSecondary: waitPanelValueSecondary, waitPanelMaxValueSecondary: waitPanelMaxValueSecondary, isCancelable: true, abortController: abortController, children: _jsxs(TMLayoutWaitingContainer, { direction: 'vertical', showWaitPanel: localShowWaitPanel, showWaitPanelPrimary: localShowPrimary, waitPanelTitle: localWaitPanelTitle, waitPanelTextPrimary: localWaitPanelTextPrimary, waitPanelValuePrimary: localWaitPanelValuePrimary, waitPanelMaxValuePrimary: localWaitPanelMaxValuePrimary, isCancelable: true, abortController: localAbortController, children: [_jsx(TMBlogHeader, { isVisible: currentHeader !== undefined && !isHeaderHidden, layoutMode: layoutMode, height: layoutMode === 'extended' ? "40px" : "70px", width: "100%", allPosts: posts, postsToShow: postsToShow, onPostsToShowChange: handlePostsToShowChange, categoryIdDataSource: categoryIdDataSource, appliedCategoryIdFilters: appliedCategoryIdFilters, setAppliedCategoryIdFilters: setAppliedCategoryIdFilters, searchText: searchText, onSearchChange: handleSearchChange }), _jsxs("div", { id: `${id}-blogs-wrapper`, onContextMenu: onContextMenu, style: {
|
|
633
633
|
width: "100%",
|
|
634
634
|
height: currentHeader !== undefined && !isHeaderHidden ? `calc(100% - ${layoutMode === 'extended' ? "40px" : "70px"})` : "100%",
|
|
635
|
-
}, children: [blogPosts.length === 0 && _jsx(TMToppyMessage, { message: searchText.length > 0 ? SDKUI_Localizator.NoMessagesFound : SDKUI_Localizator.NoMessages }), blogPosts.length > 0 && _jsxs("div", { id: `${id}-blogs-container`, tabIndex: 0, onKeyDown: handleKeyDown,
|
|
635
|
+
}, children: [blogPosts.length === 0 && _jsx(TMToppyMessage, { message: searchText.length > 0 ? SDKUI_Localizator.NoMessagesFound : SDKUI_Localizator.NoMessages }), blogPosts.length > 0 && _jsxs("div", { id: `${id}-blogs-container`, tabIndex: 0, onKeyDown: handleKeyDown, style: {
|
|
636
636
|
height: '100%',
|
|
637
637
|
width: '100%',
|
|
638
638
|
outline: "none",
|
|
@@ -680,11 +680,11 @@ const TMBlogsPost = (props) => {
|
|
|
680
680
|
boxShadow: isFocused ? "0 4px 12px rgba(19, 85, 150, 0.6)" : "none",
|
|
681
681
|
cursor: 'pointer',
|
|
682
682
|
}, children: [_jsx(BlogPostTitle, { displayMode: displayMode, layoutMode: layoutMode, blogPost: blogPost, isSelected: isSelected, isOwnComment: isOwnComment, searchText: searchText, isSys: isSys, isHomeBlogPost: isHomeBlogPost, showId: localShowId, handleNavigateToWGs: handleNavigateToWGs, handleNavigateToDossiers: handleNavigateToDossiers }), isNew && _jsx(NewBadge, { layoutMode: layoutMode }), _jsx("div", { style: { fontSize: '1rem', color: "#000", marginTop: "10px", overflow: "hidden" }, children: _jsx(TMHtmlContentDisplay, { markup: blogPost.description ?? '-', searchText: searchText, isSelected: isSelected }) }), showExtendedAttachments && blogPost.attachments && blogPost.attachments.length > 0 && (_jsx(TMBlogAttachments, { attachments: blogPost.attachments, layoutMode: layoutMode, isSelected: isSelected, searchText: searchText, dcmtTypeDescriptors: dcmtTypeDescriptors, treeFs: treeFs, draftLatestInfoMap: draftLatestInfoMap, archivedDocumentMap: archivedDocumentMap, handleAttachmentFocus: handleFocusedAttachment, openDcmtForm: openDcmtForm }))] }, `${id}-blogpost-${blogPost.id}`) })] }, "blog-post-wrapper-" + id + "-" + blogPost.id);
|
|
683
|
-
}), _jsx("div", { ref: bottomRef }), _jsx(TMContextMenu, { items: menuItems, target: `#${id}-blogs-
|
|
684
|
-
|
|
685
|
-
|
|
686
|
-
|
|
687
|
-
|
|
683
|
+
}), _jsx("div", { ref: bottomRef })] }), _jsx(TMContextMenu, { items: menuItems, target: `#${id}-blogs-wrapper`, externalControl: {
|
|
684
|
+
visible: menuVisible,
|
|
685
|
+
position: menuPosition,
|
|
686
|
+
onClose: closeContextMenu,
|
|
687
|
+
} }), (showTaskForm && handleNavigateToWGs && handleNavigateToDossiers && getAllTasks && deleteTaskByIdsCallback && addTaskCallback && editTaskCallback) && _jsx("div", { style: { height: "100%", width: "100%" }, children: _jsx(TMTaskForm, { id: -1, title: SDKUI_Localizator.ContextualTask, isModal: true, width: taskModalSizes(deviceType, FormModes.Create).width, height: taskModalSizes(deviceType, FormModes.Create).height, formMode: FormModes.Create, visualizedTasks: [], currentTask: currentTask, setCurrentTask: () => { }, selectedRowKeys: [], handleFocusedRowKeyChange: () => { }, onStatusChanged: () => { }, onSaved: onSavedTaskFormCallback, onClose: () => closeTaskFormCallback(), onCancel: () => closeTaskFormCallback(), usersList: participants, handleNavigateToWGs: handleNavigateToWGs, handleNavigateToDossiers: handleNavigateToDossiers, isContextualCreate: true, taskContext: taskContext, allTasks: allTasks, getAllTasks: getAllTasks, deleteTaskByIdsCallback: deleteTaskByIdsCallback, addTaskCallback: addTaskCallback, editTaskCallback: editTaskCallback }) }), (dcmtForm.dcmt && dcmtForm.dcmt.TID && dcmtForm.dcmt.DID) && _jsx(TMDcmtForm, { TID: Number(dcmtForm.dcmt.TID), DID: Number(dcmtForm.dcmt.DID), layoutMode: LayoutModes.Update, onClose: closeDcmtForm, isClosable: true, titleModal: SDKUI_Localizator.Attachment + ": " + dcmtForm.dcmt.fileName, isModal: true, widthModal: "95%", heightModal: "95%", allTasks: allTasks, getAllTasks: getAllTasks, deleteTaskByIdsCallback: deleteTaskByIdsCallback, addTaskCallback: addTaskCallback, editTaskCallback: editTaskCallback, handleNavigateToWGs: handleNavigateToWGs, handleNavigateToDossiers: handleNavigateToDossiers, onReferenceClick: handleNavigateToReference, moreInfoTasks: getMoreInfoTasksForDocument(allTasks, Number(dcmtForm.dcmt.TID), Number(dcmtForm.dcmt.DID)) }), (showFloatingCommentButton && showCommentFormCallback && !(context?.engine === 'WorkingGroupEngine' && context?.object?.customData1 === 1)) && _jsx("button", { style: {
|
|
688
688
|
position: 'absolute',
|
|
689
689
|
bottom: '18px',
|
|
690
690
|
right: '20px',
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
2
|
import { DcmtTypeListCacheService } from "@topconsultnpm/sdk-ts";
|
|
3
|
-
import { getAvatarColor, extractInitialsFromName, SDKUI_Localizator, formatBytes, IconMenuCAWorkingGroups, IconCADossier, Globalization } from "../../helper";
|
|
3
|
+
import { getAvatarColor, extractInitialsFromName, SDKUI_Localizator, formatBytes, IconMenuCAWorkingGroups, IconCADossier, Globalization, PDGS_COLORS } from "../../helper";
|
|
4
4
|
import { TMColors } from "../../utils/theme";
|
|
5
5
|
import TMTooltip from "../base/TMTooltip";
|
|
6
6
|
export const DRAFT_TYPE_TID = 6;
|
|
@@ -167,7 +167,7 @@ export const getDcmtTypeDescriptor = async (blogPosts) => {
|
|
|
167
167
|
};
|
|
168
168
|
export const BlogPostHomeHeader = (header, classId, isSelected, searchText, headerClickCallback) => {
|
|
169
169
|
const isWorkGroup = classId === 'WG';
|
|
170
|
-
const iconColor = isSelected ? '#ffffff' : isWorkGroup ?
|
|
170
|
+
const iconColor = isSelected ? '#ffffff' : isWorkGroup ? PDGS_COLORS.WORKING_GROUP : PDGS_COLORS.DOSSIER;
|
|
171
171
|
return (_jsxs("div", { style: {
|
|
172
172
|
display: "flex",
|
|
173
173
|
alignItems: "center",
|
|
@@ -130,7 +130,7 @@ const TMRecentsManager = ({ deviceType, mruTIDs, currentMruTID, accessFilter = '
|
|
|
130
130
|
alignItems: 'center',
|
|
131
131
|
justifyContent: 'center',
|
|
132
132
|
minWidth: 0
|
|
133
|
-
}, children: _jsx(TMTidViewer, { tid: dtd.id,
|
|
133
|
+
}, children: _jsx(TMTidViewer, { tid: dtd.id, showIcon: false }) }), _jsx("span", { style: {
|
|
134
134
|
width: 24,
|
|
135
135
|
height: 24,
|
|
136
136
|
borderRadius: 24,
|
|
@@ -43,6 +43,8 @@ export { editorColorManager } from './editors/TMEditorStyled';
|
|
|
43
43
|
export { default as TMLocalizedTextBox } from './editors/TMLocalizedTextBox';
|
|
44
44
|
export * from './choosers/TMCultureIDPicker';
|
|
45
45
|
export * from './choosers/TMDataListItemChooser';
|
|
46
|
+
export * from './choosers/TMDataListItemFields';
|
|
47
|
+
export * from './choosers/TMImageIDChooser';
|
|
46
48
|
export * from './choosers/TMDistinctValues';
|
|
47
49
|
export * from './choosers/TMDiskChooser';
|
|
48
50
|
export * from './choosers/TMDynDataListItemChooser';
|
package/lib/components/index.js
CHANGED
|
@@ -46,6 +46,8 @@ export { default as TMLocalizedTextBox } from './editors/TMLocalizedTextBox';
|
|
|
46
46
|
// chooserss
|
|
47
47
|
export * from './choosers/TMCultureIDPicker';
|
|
48
48
|
export * from './choosers/TMDataListItemChooser';
|
|
49
|
+
export * from './choosers/TMDataListItemFields';
|
|
50
|
+
export * from './choosers/TMImageIDChooser';
|
|
49
51
|
export * from './choosers/TMDistinctValues';
|
|
50
52
|
export * from './choosers/TMDiskChooser';
|
|
51
53
|
export * from './choosers/TMDynDataListItemChooser';
|
|
@@ -4,9 +4,10 @@ import styled from 'styled-components';
|
|
|
4
4
|
import { useTMPanelManagerContext } from './TMPanelManagerContext';
|
|
5
5
|
import TMPanelWrapper from './TMPanelWrapper';
|
|
6
6
|
import TMPanelManagerToolbar from './TMPanelManagerToolbar';
|
|
7
|
-
import { IconInfo, SDKUI_Localizator } from '../../../helper';
|
|
7
|
+
import { getPanelManagerToolbarColor, IconInfo, SDKUI_Localizator } from '../../../helper';
|
|
8
8
|
import { DeviceType, useDeviceType } from '../../base/TMDeviceProvider';
|
|
9
9
|
import { Gutters } from '../../../utils/theme';
|
|
10
|
+
import { AppModules, SDK_Globals } from '@topconsultnpm/sdk-ts';
|
|
10
11
|
// Styled Component per il contenitore principale di PanelContainer
|
|
11
12
|
const StyledPanelContainerWrapper = styled.div `
|
|
12
13
|
display: ${props => (props.$hasVisiblePanels ? 'flex' : 'none')};
|
|
@@ -206,7 +207,7 @@ const TMPanelManagerContainer = (props) => {
|
|
|
206
207
|
alignItems: 'center',
|
|
207
208
|
width: isMobile ? '100%' : '50px',
|
|
208
209
|
height: isMobile ? '50px' : 'max-content',
|
|
209
|
-
background:
|
|
210
|
+
background: getPanelManagerToolbarColor(SDK_Globals.tmSession?.SessionDescr?.appModuleID ?? AppModules.SURFER),
|
|
210
211
|
borderRadius: isMobile ? '10px' : '10px 0px 0px 10px',
|
|
211
212
|
padding: '10px',
|
|
212
213
|
gap: '10px'
|
|
@@ -41,6 +41,8 @@ const TMPage = ({ id, objClass = ObjectClasses.None, listDisabled = false, lastR
|
|
|
41
41
|
let itemsCount = gridInstance?.instance().getDataSource().items().length;
|
|
42
42
|
if (itemsCount && itemsCount > 0) {
|
|
43
43
|
gridInstance?.instance().selectRows(selectedItems?.map((item) => item.id) ?? [], false);
|
|
44
|
+
if (selectedItems && selectedItems.length > 0 && (selectedItems?.[0]).id)
|
|
45
|
+
gridInstance?.instance()?.navigateToRow((selectedItems?.[0]).id);
|
|
44
46
|
}
|
|
45
47
|
}, [selectedItems]);
|
|
46
48
|
useEffect(() => {
|
|
@@ -52,6 +54,8 @@ const TMPage = ({ id, objClass = ObjectClasses.None, listDisabled = false, lastR
|
|
|
52
54
|
useEffect(() => {
|
|
53
55
|
if (lastRefreshTime) {
|
|
54
56
|
loadDataAsync(id);
|
|
57
|
+
if (id)
|
|
58
|
+
gridInstance?.instance()?.navigateToRow(id);
|
|
55
59
|
}
|
|
56
60
|
}, [lastRefreshTime]);
|
|
57
61
|
useEffect(() => {
|
|
@@ -48,6 +48,7 @@ interface ITMQueryEditor extends ITMApplyFormProps<QueryDescriptor> {
|
|
|
48
48
|
ShowOnlySAP?: boolean;
|
|
49
49
|
updateIsModalOpen?: (isOpen: boolean) => void;
|
|
50
50
|
showSearchResultSidebar?: boolean;
|
|
51
|
+
showDcmtFormSidebar?: boolean;
|
|
51
52
|
showToppyDraggableHelpCenter?: boolean;
|
|
52
53
|
toppyHelpCenterUsePortal?: boolean;
|
|
53
54
|
}
|
|
@@ -62,7 +62,7 @@ export function useQueryApplyForm(d, formMode, inputData, onApplied, parameters)
|
|
|
62
62
|
const [validationItems, setValidationItems] = useState([]);
|
|
63
63
|
return { formData, setFormData, formDataOrig, validationItems, setValidationItems, exception, applyData };
|
|
64
64
|
}
|
|
65
|
-
const TMQueryEditor = ({ formMode, inputData, onQDChanged, isExpertMode, showDistinct = false, showToolbar = true, validateSelect = true, validateOrderBy = true, raiseWarningForOnlyMetadataDcmtTypes = false, onApplied, onClose, height = 'auto', borderRadius = '4px', searchText, showApply, showUndo, showBack, onFromTIDChanged, ShowOnlySAP, updateIsModalOpen, showSearchResultSidebar = true, showToppyDraggableHelpCenter = true, toppyHelpCenterUsePortal = false }) => {
|
|
65
|
+
const TMQueryEditor = ({ formMode, inputData, onQDChanged, isExpertMode, showDistinct = false, showToolbar = true, validateSelect = true, validateOrderBy = true, raiseWarningForOnlyMetadataDcmtTypes = false, onApplied, onClose, height = 'auto', borderRadius = '4px', searchText, showApply, showUndo, showBack, onFromTIDChanged, ShowOnlySAP, updateIsModalOpen, showSearchResultSidebar = true, showDcmtFormSidebar = true, showToppyDraggableHelpCenter = true, toppyHelpCenterUsePortal = false }) => {
|
|
66
66
|
const [confirmQueryParams, ConfirmQueryParamsDialog] = useQueryParametersDialog();
|
|
67
67
|
const { formData, setFormData, formDataOrig, validationItems, setValidationItems, exception, applyData } = useQueryApplyForm(Descriptors.Query, formMode, inputData, onApplied);
|
|
68
68
|
const [dcmtTypesList, setDcmtTypesList] = useState([]);
|
|
@@ -598,7 +598,7 @@ const TMQueryEditor = ({ formMode, inputData, onQDChanged, isExpertMode, showDis
|
|
|
598
598
|
// #region Ricerca
|
|
599
599
|
const renderResultSearchForm = (_jsx(TMSearchResult, { context: SearchResultContext.METADATA_SEARCH, allowFloatingBar: false, onClose: () => {
|
|
600
600
|
setShowResultSearch(false);
|
|
601
|
-
}, searchResults: resultSearch, showSearchResultSidebar: showSearchResultSidebar, showToppyDraggableHelpCenter: showToppyDraggableHelpCenter, toppyHelpCenterUsePortal: toppyHelpCenterUsePortal }));
|
|
601
|
+
}, searchResults: resultSearch, showSearchResultSidebar: showSearchResultSidebar, showDcmtFormSidebar: showDcmtFormSidebar, showToppyDraggableHelpCenter: showToppyDraggableHelpCenter, toppyHelpCenterUsePortal: toppyHelpCenterUsePortal }));
|
|
602
602
|
const onSearchAsync = async (qdInput) => {
|
|
603
603
|
try {
|
|
604
604
|
let qdSearch = await prepareQdForSearchAsync(qdInput);
|
|
@@ -775,7 +775,7 @@ const TMQueryEditor = ({ formMode, inputData, onQDChanged, isExpertMode, showDis
|
|
|
775
775
|
{ name: 'ASC', onClick: () => onChange_OrderByItem_Asc(true, oi, index) },
|
|
776
776
|
{ name: 'DESC', onClick: () => onChange_OrderByItem_Asc(false, oi, index) }
|
|
777
777
|
] })] }, `${oi.tid}_${oi.mid}_${index}`));
|
|
778
|
-
})] }) }) }), fromCount > 0 && _jsx(Item, { title: SDKUI_Localizator.Options, titleRender: (tabItemProps) => renderAccordionTitle(tabItemProps, undefined, []), children: _jsx(StyledAccordionItemContainer, { children: _jsxs(StyledAccordionItemContent, { "$disabled": isReadOnly, children: [showDistinct && _jsx(TMCheckBox, { label: SDK_Localizator.QueryDistinct, value: formData.isDistinct, onValueChanged: () => { setFormData({ ...formData, isDistinct: !formData.isDistinct }); } }), _jsx(TMTextBox, { type: 'number', width: '200px', label: SDKUI_Localizator.MaxDcmtsToBeReturned, validationItems: validationItems.filter((o) => o.PropertyName == TMPropertyNames.maxDcmtsToBeReturned), value: formData.maxDcmtsToBeReturned, onBlur: (newValue) => setFormData({ ...formData, maxDcmtsToBeReturned: Number(newValue) }) })] }) }) })] }), _jsx(ConfirmQueryParamsDialog, {})] }), showResultSearch && _jsxs(StyledModalContainer, { children: [" ", renderResultSearchForm, " "] })] }));
|
|
778
|
+
})] }) }) }), fromCount > 0 && _jsx(Item, { title: SDKUI_Localizator.Options, titleRender: (tabItemProps) => renderAccordionTitle(tabItemProps, undefined, []), children: _jsx(StyledAccordionItemContainer, { children: _jsxs(StyledAccordionItemContent, { "$disabled": isReadOnly, children: [showDistinct && _jsx(TMCheckBox, { label: SDK_Localizator.QueryDistinct, value: formData.isDistinct, onValueChanged: () => { setFormData({ ...formData, isDistinct: !formData.isDistinct }); } }), _jsx(TMTextBox, { type: 'number', width: '200px', label: SDKUI_Localizator.MaxDcmtsToBeReturned, validationItems: validationItems.filter((o) => o.PropertyName == TMPropertyNames.maxDcmtsToBeReturned), value: formData.maxDcmtsToBeReturned, onBlur: (newValue) => setFormData({ ...formData, maxDcmtsToBeReturned: Number(newValue) }) })] }) }) })] }), _jsx(ConfirmQueryParamsDialog, {})] }), showResultSearch && _jsxs(StyledModalContainer, { style: { backgroundColor: 'white' }, children: [" ", renderResultSearchForm, " "] })] }));
|
|
779
779
|
};
|
|
780
780
|
export default TMQueryEditor;
|
|
781
781
|
const TMQdEditableItem = ({ value, placeHolder, width, backgroundColor, allowedPattern, onValueChanged }) => {
|
|
@@ -38,11 +38,12 @@ export const TMMidViewer = ({ isMetadataSelected = false, color, tmSession, tid_
|
|
|
38
38
|
color: md?.isRequired == 1 ? 'red' : color,
|
|
39
39
|
}, children: [showIcon && _jsx(TMMetadataIcon, { isMetadataSelected: isMetadataSelected, tid: tid_mid?.tid, md: md, color: color }), _jsx("p", { title: displayName(), style: {
|
|
40
40
|
textAlign: 'left',
|
|
41
|
+
margin: 0,
|
|
41
42
|
marginLeft: showIcon ? '5px' : '',
|
|
42
43
|
whiteSpace: 'nowrap',
|
|
43
44
|
overflow: 'hidden',
|
|
44
45
|
textOverflow: 'ellipsis'
|
|
45
|
-
}, children: displayName() }), showId && _jsx("p", { style: { padding: '0px 3px' }, children: `(MID: ${tid_mid?.mid})` })] }));
|
|
46
|
+
}, children: displayName() }), showId && _jsx("p", { style: { padding: '0px 3px', margin: 0 }, children: `(MID: ${tid_mid?.mid})` })] }));
|
|
46
47
|
};
|
|
47
48
|
export const TMMetadataIcon = ({ tid, md, color, layoutMode = LayoutModes.Update, isMetadataSelected = false, elementStyle }) => {
|
|
48
49
|
let selectedMetadataStyle = { borderBottom: isMetadataSelected ? `thick solid ${TMColors.text_normal}` : 'none', height: 'max-content' };
|
|
@@ -5,6 +5,7 @@ import { AccessLevels, AccessLevelsEx, ArchiveConstraints, DcmtTypeListCacheServ
|
|
|
5
5
|
import TMSpinner from '../base/TMSpinner';
|
|
6
6
|
import { StyledDivHorizontal, StyledTooltipContainer, StyledTooltipItem, StyledTooltipSeparatorItem } from '../base/Styled';
|
|
7
7
|
import TMTooltip from '../base/TMTooltip';
|
|
8
|
+
import { TMColors } from '../../utils/theme';
|
|
8
9
|
export var ImageIDList;
|
|
9
10
|
(function (ImageIDList) {
|
|
10
11
|
ImageIDList["arrow_001"] = "arrow_001";
|
|
@@ -271,8 +272,11 @@ const TMTidViewer = ({ tmSession, tid, did, showIcon = false, color, showId = fa
|
|
|
271
272
|
if (count <= 0)
|
|
272
273
|
TMSpinner.show({ description: `${SDKUI_Localizator.Loading} - ${SDK_Localizator.ListDcmtTypeOrView} ...` });
|
|
273
274
|
try {
|
|
274
|
-
|
|
275
|
-
|
|
275
|
+
let resultDTD = await DcmtTypeListCacheService.GetAsync(tid);
|
|
276
|
+
if (!resultDTD) {
|
|
277
|
+
resultDTD = await DcmtTypeListCacheService.GetWithNotGrantedAsync(tid, did);
|
|
278
|
+
}
|
|
279
|
+
setDtd(resultDTD);
|
|
276
280
|
}
|
|
277
281
|
finally {
|
|
278
282
|
if (count <= 0)
|
|
@@ -294,7 +298,7 @@ const TMTidViewer = ({ tmSession, tid, did, showIcon = false, color, showId = fa
|
|
|
294
298
|
}, children: [showIcon && dtd && _jsx(TMDcmtTypeIcon, { dtd: dtd }), _jsx("p", { title: displayName(), style: {
|
|
295
299
|
textAlign: 'left',
|
|
296
300
|
marginLeft: showIcon ? '5px' : '',
|
|
297
|
-
color: color ?? (dtd?.isView ? 'red' :
|
|
301
|
+
color: color ?? (dtd?.isView ? 'red' : TMColors.primary),
|
|
298
302
|
whiteSpace: 'nowrap',
|
|
299
303
|
overflow: 'hidden',
|
|
300
304
|
textOverflow: 'ellipsis',
|
|
@@ -101,6 +101,11 @@ export function LocalizeJobTypes(value) {
|
|
|
101
101
|
case CultureIDs.It_IT: return value?.toString();
|
|
102
102
|
default: return "CustomsDrawerPlus";
|
|
103
103
|
}
|
|
104
|
+
// case JobTypes.CassettoDoganaleDistiller:
|
|
105
|
+
// switch (cultureID) {
|
|
106
|
+
// case CultureIDs.It_IT: return value?.toString();
|
|
107
|
+
// default: return "CustomsDrawerDistiller";
|
|
108
|
+
// }
|
|
104
109
|
default: return value?.toString() ?? '';
|
|
105
110
|
}
|
|
106
111
|
}
|
|
@@ -16,6 +16,8 @@ export declare class UserSettings {
|
|
|
16
16
|
fullTextSettings: FullTextSettings;
|
|
17
17
|
searchSettings: SearchSettings;
|
|
18
18
|
themeSettings: ThemeSettings;
|
|
19
|
+
devSettings: DevSettings;
|
|
20
|
+
ctrlWfSettings: CtrlWfSettings;
|
|
19
21
|
dcmtFormSettings: DcmtFormSettings[];
|
|
20
22
|
wgDraftCheckoutInfo: CheckoutInfo[];
|
|
21
23
|
dcmtCheckoutInfo: CheckoutInfo[];
|
|
@@ -84,14 +86,24 @@ export declare class ArchivingSettings {
|
|
|
84
86
|
export declare class FullTextSettings {
|
|
85
87
|
mruTerms: string[];
|
|
86
88
|
}
|
|
89
|
+
export declare class DevSettings {
|
|
90
|
+
betaFeatures: number;
|
|
91
|
+
}
|
|
87
92
|
export declare class AdvancedSettings {
|
|
88
93
|
private _expertMode;
|
|
94
|
+
private _scannerLicense;
|
|
89
95
|
get expertMode(): number;
|
|
90
96
|
set expertMode(value: number);
|
|
97
|
+
get scannerLicense(): string;
|
|
98
|
+
set scannerLicense(value: string);
|
|
91
99
|
toJSON(): {
|
|
92
100
|
expertMode: number;
|
|
101
|
+
scannerLicense: string;
|
|
93
102
|
};
|
|
94
103
|
}
|
|
104
|
+
export declare class CtrlWfSettings {
|
|
105
|
+
detailWIFormWidth: string;
|
|
106
|
+
}
|
|
95
107
|
export declare class DcmtFormSettings {
|
|
96
108
|
TID: number | undefined;
|
|
97
109
|
layout: {
|
|
@@ -18,6 +18,8 @@ export class UserSettings {
|
|
|
18
18
|
this.fullTextSettings = new FullTextSettings();
|
|
19
19
|
this.searchSettings = new SearchSettings();
|
|
20
20
|
this.themeSettings = new ThemeSettings(true);
|
|
21
|
+
this.devSettings = new DevSettings();
|
|
22
|
+
this.ctrlWfSettings = new CtrlWfSettings();
|
|
21
23
|
this.dcmtFormSettings = [];
|
|
22
24
|
this.wgDraftCheckoutInfo = [];
|
|
23
25
|
this.dcmtCheckoutInfo = [];
|
|
@@ -120,9 +122,15 @@ export class FullTextSettings {
|
|
|
120
122
|
this.mruTerms = [];
|
|
121
123
|
}
|
|
122
124
|
}
|
|
125
|
+
export class DevSettings {
|
|
126
|
+
constructor() {
|
|
127
|
+
this.betaFeatures = 0;
|
|
128
|
+
}
|
|
129
|
+
}
|
|
123
130
|
export class AdvancedSettings {
|
|
124
131
|
constructor() {
|
|
125
132
|
this._expertMode = 0;
|
|
133
|
+
this._scannerLicense = '';
|
|
126
134
|
}
|
|
127
135
|
get expertMode() {
|
|
128
136
|
return this._expertMode;
|
|
@@ -135,13 +143,25 @@ export class AdvancedSettings {
|
|
|
135
143
|
window.dispatchEvent(event);
|
|
136
144
|
}
|
|
137
145
|
}
|
|
146
|
+
get scannerLicense() {
|
|
147
|
+
return this._scannerLicense;
|
|
148
|
+
}
|
|
149
|
+
set scannerLicense(value) {
|
|
150
|
+
this._scannerLicense = value;
|
|
151
|
+
}
|
|
138
152
|
// Override toJSON to control serialization (called by JSON.stringify)
|
|
139
153
|
toJSON() {
|
|
140
154
|
return {
|
|
141
|
-
expertMode: this._expertMode,
|
|
155
|
+
expertMode: this._expertMode,
|
|
156
|
+
scannerLicense: this._scannerLicense,
|
|
142
157
|
};
|
|
143
158
|
}
|
|
144
159
|
}
|
|
160
|
+
export class CtrlWfSettings {
|
|
161
|
+
constructor() {
|
|
162
|
+
this.detailWIFormWidth = '30';
|
|
163
|
+
}
|
|
164
|
+
}
|
|
145
165
|
export class DcmtFormSettings {
|
|
146
166
|
constructor() {
|
|
147
167
|
this.layout = {};
|
|
@@ -37,6 +37,7 @@ export declare class SDKUI_Localizator {
|
|
|
37
37
|
static get Anomalies(): "Anomalien" | "Anomalies" | "Anomalías" | "Anomalias" | "Anomalie";
|
|
38
38
|
static get Answer(): "Antwort" | "Answer" | "Respuesta" | "Réponse" | "Resposta" | "Risposta";
|
|
39
39
|
static get AnswerTooltip(): "Die Antwort kann nur bearbeitet werden, wenn der Aktivitätsstatus \"Abgeschlossen\", \"Ausstehend\" oder \"Verschoben\" ist." | "The answer can be edited only if the activity status is \"Completed\", \"Pending\", or \"Deferred\"." | "La respuesta solo se puede editar si el estado de la actividad es \"Completada\", \"Pendiente\" o \"Pospuesta\"." | "La réponse peut être modifiée uniquement si l'état de l’activité est \"Terminée\", \"En attente\" ou \"Reportée\"." | "A resposta só pode ser editada se o estado da atividade for \"Concluída\", \"Pendente\" ou \"Adiada\"." | "La risposta può essere modificata solo se lo stato dell’attività è \"Completata\", \"In attesa\" o \"Rinviata\".";
|
|
40
|
+
static get NoAnswerProvided(): "Keine Antwort" | "No answer" | "Sin respuesta" | "Aucune réponse" | "Nenhuma resposta" | "Nessuna risposta";
|
|
40
41
|
static get Application(): "Anwendung" | "Application" | "Aplicación" | "Aplicação" | "Applicazione";
|
|
41
42
|
static get Applied(): string;
|
|
42
43
|
static get Apply(): "Anwenden" | "Apply" | "Aplicar" | "Applique" | "Applica";
|
|
@@ -53,6 +54,7 @@ export declare class SDKUI_Localizator {
|
|
|
53
54
|
static get ArchiveDetailDocument(): "Detaildokument archivieren" | "Archive detail document" | "Archivar documento de detalle" | "Archiver le document détail" | "Arquivar documento de detalhe" | "Archivia documento dettaglio";
|
|
54
55
|
static get ArchiveMasterDocument(): "Master-Dokument archivieren" | "Archive master document" | "Archivar documento maestro" | "Archiver le document maître" | "Arquivar documento mestre" | "Archivia documento master";
|
|
55
56
|
static get Arguments(): "Themen" | "Arguments" | "Argumentos" | "Sujets" | "Tópicos" | "Argomenti";
|
|
57
|
+
static get AssignTo(): "Zuweisen an" | "Assign to" | "Asignar a" | "Assigner à" | "Atribuir a" | "Assegna a";
|
|
56
58
|
static get AssignedBy(): "Zugewiesen von" | "Assigned by" | "Asignado por" | "Assigné par" | "Atribuído por" | "Assegnata da";
|
|
57
59
|
static get AssignedByMe(): "Von mir zugewiesene" | "Assigned by me" | "Por mí" | "Que j'ai assignées" | "Atribuídas por mim" | "Assegnate da me";
|
|
58
60
|
static get AssignedTo(): string;
|
|
@@ -84,6 +86,7 @@ export declare class SDKUI_Localizator {
|
|
|
84
86
|
static get CancelCheckOut(): string;
|
|
85
87
|
static get Cancel(): "Abbrechen" | "Cancel" | "Anular" | "Annuler" | "Cancelar" | "Annulla";
|
|
86
88
|
static get ChangePassword(): "Kennwort ändern" | "Change password" | "Cambiar la contraseña" | "Changer le mot de passe" | "Alterar a senha" | "Cambia password";
|
|
89
|
+
static get ChangeStatusTo(): string;
|
|
87
90
|
static get CharactersRemaining(): "verbleibende Zeichen" | "characters remaining" | "caracteres restantes" | "caractères restants" | "caratteri rimanenti";
|
|
88
91
|
static get CheckIn(): "Check in" | "Enregistrement";
|
|
89
92
|
static get CheckInElementConfirm(): string;
|
|
@@ -99,6 +102,8 @@ export declare class SDKUI_Localizator {
|
|
|
99
102
|
static get ClearCache(): string;
|
|
100
103
|
static get ClearOTP(): "OTP löschen" | "Clear OTP" | "Borrar OTP" | "Effacer l'OTP" | "Limpar OTP" | "Cancella OTP";
|
|
101
104
|
static get Close(): "Ausgang" | "Close" | "Salida" | "Sortie" | "Saída" | "Chiudi";
|
|
105
|
+
static get Closed(): "Geschlossen" | "Closed" | "Cerrada" | "Fermée" | "Fechada" | "Chiusa";
|
|
106
|
+
static get CloseTask(): string;
|
|
102
107
|
static get Columns_All_Hide(): "Alle Spalten ausblenden" | "Hide all columns" | "Ocultar todas las columnas" | "Masquer toutes les colonnes" | "Ocultar todas as colunas" | "Nascondi tutte le colonne";
|
|
103
108
|
static get Columns_All_Show(): "Alle Spalten anzeigen" | "Show all columns" | "Mostrar todas las columnas" | "Afficher toutes les colonnes" | "Mostrar todas as colunas" | "Visualizza tutte le colonne";
|
|
104
109
|
static get Comment(): string;
|
|
@@ -197,6 +202,7 @@ export declare class SDKUI_Localizator {
|
|
|
197
202
|
static get Domain(): "Domäne" | "Domain" | "Dominio" | "Domaine";
|
|
198
203
|
static get Dossier(): "Übung" | "Dossier" | "Expediente" | "Pratique" | "Prática" | "Pratica";
|
|
199
204
|
static get Dossiers(): "Akten" | "Dossiers" | "Expedientes" | "Pratiques" | "Práticas" | "Pratiche";
|
|
205
|
+
static get DossierType(): "Aktentyp" | "Dossier Type" | "Tipo de Expediente" | "Type de Pratique" | "Tipo de Prática" | "Modello di Pratica";
|
|
200
206
|
static get DownloadFile(): string;
|
|
201
207
|
static get Download_in_Process(): "Download läuft" | "Download in progress" | "Descarga en curso" | "Téléchargement en cours" | "Download em progresso" | "Download in corso";
|
|
202
208
|
static get DownloadXMLAttachments(): string;
|
|
@@ -212,6 +218,7 @@ export declare class SDKUI_Localizator {
|
|
|
212
218
|
static get DuplicateDocument(): string;
|
|
213
219
|
static get DuplicateNameError(): "Der Name existiert bereits in der Anmeldehistorie. Bitte wählen Sie einen anderen Namen" | "The name already exists in the login history. Please choose a different nam" | "El nombre ya existe en el historial de inicio de sesión. Por favor, elija un nombre diferente" | "Le nom existe déjà dans l'historique de connexion. Veuillez choisir un autre nom" | "O nome já existe no histórico de login. Por favor, escolha um nome diferente" | "Il nome esiste già nella cronologia di accesso. Si prega di scegliere un nome diverso";
|
|
214
220
|
static get DuplicationOperationInterrupted(): "Duplikationsvorgang abgebrochen" | "Duplication operation interrupted" | "Operación de duplicación interrumpida" | "Opération de duplication interrompue" | "Operação de duplicação interrompida" | "Operazione di duplicazione interrotta";
|
|
221
|
+
static get DuplicateActivity(): string;
|
|
215
222
|
static get Edit_ConfirmFor1(): "Möchten Sie '{{0}}' ändern?" | "Are you sure you want to modify '{{0}}'?" | "¿Estás seguro de que deseas modificar '{{0}}'?" | "Êtes-vous sûr de vouloir modifier '{{0}}'?" | "Você tem certeza que deseja modificar '{{0}}'?" | "Sei sicuro di voler modificare '{{0}}'?";
|
|
216
223
|
static get Edit_ConfirmForN(): "{{0}} ausgewählte Objekte. Alle ändern?" | "{{0}} selected objects. Modify them all?" | "{{0}} objetos seleccionados. ¿Modificar todos?" | "{{0}} objets sélectionnés. Voulez-vous tous les modifier?" | "{{0}} objetos selecionados. Modificá-los todos?" | "{{0}} oggetti selezionati. Modificare tutti?";
|
|
217
224
|
static get EditorConfiguration(): string;
|
|
@@ -240,6 +247,8 @@ export declare class SDKUI_Localizator {
|
|
|
240
247
|
static get EvaluateResult(): "Bewerten Sie das Ergebnis" | "Evaluate result" | "Valorar el resultado" | "Évalue les résultats" | "Avalia os resultados" | "Valuta il risultato";
|
|
241
248
|
static get Expected(): "Erwartet" | "Expected" | "Esperado" | "Attendu" | "Atteso";
|
|
242
249
|
static get Expiration(): "Ablaufdatum" | "Expiration" | "Fecha de expiración" | "Date d'expiration" | "Data de expiração" | "Scadenza";
|
|
250
|
+
static get ExpirationDate(): "Ablaufdatum" | "Expiration date" | "Fecha de vencimiento" | "Date d'échéance" | "Data de validade" | "Data di scadenza";
|
|
251
|
+
static get ExpirationDateMustBeAfterCurrentDateTime(): "Das Ablaufdatum muss nach dem aktuellen Datum und der aktuellen Uhrzeit liegen." | "The expiration date must be after the current date and time." | "La fecha de vencimiento debe ser posterior a la fecha y hora actual." | "La date d'expiration doit être postérieure à la date et l'heure actuelles." | "A data de validade deve ser posterior à data e hora atuais." | "La data di scadenza deve essere successiva alla data e ora corrente.";
|
|
243
252
|
static get ExpertMode(): "Expertenmodus" | "Expert mode" | "Modo experto" | "Mode expert" | "Modo especialista" | "Modalità esperto";
|
|
244
253
|
static get Expiring(): "Ablaufend" | "Expiring" | "Por vencer" | "Expirant" | "Vencendo" | "In scadenza";
|
|
245
254
|
static get Export(): "Exportieren" | "Export" | "Exportar" | "Exporter" | "Esporta";
|
|
@@ -423,6 +432,7 @@ export declare class SDKUI_Localizator {
|
|
|
423
432
|
static get NoMessagesFound(): string;
|
|
424
433
|
static get NoPanelSelected(): string;
|
|
425
434
|
static get NoResultsFound(): string;
|
|
435
|
+
static get NoSignatureFound(): string;
|
|
426
436
|
static get NoSource(): "Keine Quelle" | "No Source" | "Ninguna fuente" | "Aucune source" | "Nenhuma fonte" | "Nessun Origine";
|
|
427
437
|
static get NoneSelection(): "Keine Auswahl" | "No selection" | "Ninguna selección" | "Pas de sélections" | "Nenhuma seleção" | "Nessuna selezione";
|
|
428
438
|
static get NotAvailable(): string;
|
|
@@ -458,6 +468,7 @@ export declare class SDKUI_Localizator {
|
|
|
458
468
|
static get ParametricFilterTypes_ByUserID(): "Filtern nach {@UserID}" | "Filter on {@UserID}" | "Filtro en {@UserID}" | "Filtre sur {@UserID}" | "Filtre on {@UserID}" | "Filtro su {@UserID}";
|
|
459
469
|
static get ParametricFilterTypes_ByUserName(): "Filtern nach {@Benutzername} (=)" | "Filter on {@UserName} (=)" | "Filtro en {@UserName} (=)" | "Filtre sur {@UserName} (=)" | "Filtre on {@UserName} (=)" | "Filtro su {@UserName} (=)";
|
|
460
470
|
static get ParametricFilterTypes_ByUserNameC(): "Filter nach {@Benutzername} (Enthält)" | "Filter on {@UserName} (Contains)" | "Filtro en {@UserName} (Contiene)" | "Filtre sur {@UserName} (Contient)" | "Filtre on {@UserName} (Contém)" | "Filtro su {@UserName} (Contiene)";
|
|
471
|
+
static get PaginationInfo(): string;
|
|
461
472
|
static get Participants(): "Teilnehmer" | "Participants" | "Participantes" | "Partecipanti";
|
|
462
473
|
static get Password(): "Passwort" | "Password" | "Contraseña" | "Mot de passe" | "Senha";
|
|
463
474
|
static get PassToArchive(): "Zur Archivierung übergeben" | "Pass to archive" | "Pasar a archivo" | "Passer à l'archivage" | "Passar para arquivo" | "Passa ad archiviazione";
|
|
@@ -515,6 +526,8 @@ export declare class SDKUI_Localizator {
|
|
|
515
526
|
static get Redo(): "Wiederherstellen" | "Redo" | "Rehacer" | "Rétablir" | "Refazer" | "Rifai";
|
|
516
527
|
static get Reject(): "Ablehnen" | "Reject" | "Rechazar" | "Rejeter" | "Rejeitar" | "Rifiuta";
|
|
517
528
|
static get Relations(): "Korrelationen" | "Correlations" | "Correlaciones" | "Relations" | "Correlacionados" | "Correlazioni";
|
|
529
|
+
static get RelationsNotFound(): "Keine Korrelationen gefunden" | "No correlations found" | "No se encontraron correlaciones" | "Aucune corrélation trouvée" | "Nenhuma correlação encontrada" | "Nessuna correlazione trovata";
|
|
530
|
+
static get RelatedDcmtsNotFound(): "Für das ausgewählte Dokument wurden keine zugehörigen Dokumente gefunden." | "No related documents were found for the selected document." | "No se encontraron documentos relacionados para el documento seleccionado." | "Aucun document associé n'a été trouvé pour le document sélectionné." | "Nenhum documento relacionado foi encontrado para o documento selecionado." | "Non sono stati trovati documenti correlati per il documento selezionato.";
|
|
518
531
|
static get RelationManyToMany(): "Folge viele mit vielen" | "Relation many to many" | "Correlación muchos a muchos" | "Corrélation plusieurs à plusieurs" | "Muitos para muitos relação" | "Correlazione molti a molti";
|
|
519
532
|
static get RelationType(): "Art der Beziehung" | "Relation type" | "Tipo de relación" | "Type de relation" | "Tipo de relacionamento" | "Tipo di relazione";
|
|
520
533
|
static get RemoveContextualFilter(): "Kontextbezogenen Filter entfernen" | "Remove contextual filter" | "Eliminar filtro contextual" | "Supprimer le filtre contextuel" | "Remover filtro contextual" | "Rimuovi filtro contestuale";
|
|
@@ -535,7 +548,6 @@ export declare class SDKUI_Localizator {
|
|
|
535
548
|
static get RequiredNOT(): "Nicht obligatorisch" | "Not mandatory" | "No obligatorio" | "Pas obligatoire" | "Não é obrigatório" | "Non obbligatorio";
|
|
536
549
|
static get Refresh(): "Aktualisieren" | "Refresh" | "Actualizar" | "Mis à jour" | "Refrescar" | "Aggiorna";
|
|
537
550
|
static get Reminder(): "Erinnerung" | "Reminder" | "Recordatorio" | "Rappel" | "Lembrete" | "Promemoria";
|
|
538
|
-
static get ReminderDateMustBeBeforeEndDate(): "Das Erinnerungsdatum muss vor dem Enddatum liegen" | "The reminder date must be before the end date" | "La fecha de recordatorio debe ser anterior a la fecha de finalización" | "La date de rappel doit être antérieure à la date de fin" | "A data de lembrete deve ser anterior à data de término" | "La data di promemoria deve essere precedente alla data di fine";
|
|
539
551
|
static get ReminderSetForToday(): "Es gibt eine Erinnerung, die für heute eingestellt ist und bis zum Ablaufdatum gültig ist" | "There is a reminder set for today, valid until the expiration date" | "Hay un recordatorio establecido para hoy, válido hasta la fecha de vencimiento" | "Il y a un rappel réglé pour aujourd'hui, valable jusqu'à la date d'échéance" | "Há um lembrete definido para hoje, válido até à data de expiração" | "È presente un promemoria impostato per oggi, valido fino alla data di scadenza";
|
|
540
552
|
static get Remove(): "Entfernen" | "Remove" | "Quitar" | "Supprime" | "Remover" | "Rimuovi";
|
|
541
553
|
static get RemoveAll(): "Alle entfernen" | "Remove all" | "Eliminar todo" | "Supprime tout" | "Remover todos" | "Rimuovi tutto";
|
|
@@ -551,7 +563,10 @@ export declare class SDKUI_Localizator {
|
|
|
551
563
|
static get Rows(): "Linien" | "rows" | "líneas" | "lignes" | "linhas" | "righe";
|
|
552
564
|
static get Save(): "Speichern" | "Save" | "Guardar" | "Enregistre" | "Salvar" | "Salva";
|
|
553
565
|
static get SaveAndLogin(): string;
|
|
566
|
+
static get SaveAndClose(): string;
|
|
567
|
+
static get SavingInProgress(): string;
|
|
554
568
|
static get SaveQuestion(): "Ihre Änderungen speichern?" | "Save modifications?" | "¿Guardar modificaciones aportadas?" | "Enregistrez les modifications?" | "Salve as alterações?" | "Salvare le modifiche apportate?";
|
|
569
|
+
static get FormErrorsProceedQuestion(): "Es gibt Fehler im Formular. Wenn Sie fortfahren, werden die Daten nicht gespeichert. Möchten Sie trotzdem fortfahren?" | "There are errors in the form. If you continue, the data will not be saved. Do you want to proceed anyway?" | "Hay errores en el formulario. Si continúas, los datos no se guardarán. ¿Quieres proceder de todos modos?" | "Il y a des erreurs dans le formulaire. Si vous continuez, les données ne seront pas enregistrées. Voulez-vous continuer quand même?" | "Há erros no formulário. Se continuar, os dados não serão salvos. Deseja prosseguir mesmo assim?" | "Ci sono errori nel form. Se continui, i dati non saranno salvati. Vuoi comunque procedere?";
|
|
555
570
|
static get SavedQueryNew(): "Neue Suche speichern" | "Save new search" | "Guardar nueva búsqueda" | "Enregistrer la nouvelle recherche" | "Guardar nova pesquisa" | "Salva nuova ricerca";
|
|
556
571
|
static get SavedQueryUpdate(): "Suche bearbeiten" | "Modify query" | "Modificar búsqueda" | "Modifie la recherche" | "Mudar pesquisa" | "Modifica ricerca";
|
|
557
572
|
static get Search(): "Auf der Suche nach" | "Search" | "Búsqueda" | "Recherche" | "Pesquisa" | "Ricerca";
|
|
@@ -569,6 +584,7 @@ export declare class SDKUI_Localizator {
|
|
|
569
584
|
static get SelectArchiveToStart(): "Klicken Sie auf Archivieren, um zu beginnen." | "Click on Archive button to start." | "Haz clic en el botón Archivar para comenzar." | "Cliquez sur le bouton Archiver pour commencer." | "Clique no botão Arquivar para iniciar." | "Clicca sul pulsante Archivia per iniziare.";
|
|
570
585
|
static get SelectAttachToStart(): "Sie können Dateien zu Ihrer E-Mail hinzufügen, klicken Sie auf Anhängen, um zu beginnen." | "You can attach files to your email, click on Attach button to start." | "Puedes adjuntar archivos a tu correo electrónico, haz clic en el botón Adjuntar para comenzar." | "Vous pouvez joindre des fichiers à votre e-mail, cliquez sur le bouton Joindre pour commencer." | "Você pode anexar arquivos ao seu e-mail, clique no botão Anexar para iniciar." | "Puoi allegare file alla tua email, clicca sul pulsante Allega per iniziare.";
|
|
571
586
|
static get SelectFromAttachments(): "Aus Anhängen auswählen" | "Select from attachments" | "Seleccionar de archivos adjuntos" | "Sélectionner parmi les pièces jointes" | "Selecionar dos anexos" | "Seleziona dagli allegati";
|
|
587
|
+
static get SelectMetadata(): "Metadaten auswählen" | "Select metadata" | "Seleccionar metadatos" | "Sélectionner les métadonnées" | "Selecionar metadados" | "Seleziona metadato";
|
|
572
588
|
static get SelectSupportAreaMessage(): "Wählen Sie einen Ablagebereich aus" | "Select a support area" | "Seleccione un área de apoyo" | "Sélectionnez une zone de support" | "Selecione uma área de apoio" | "Selezionare un'area di appoggio";
|
|
573
589
|
static get SelectedSingular(): string;
|
|
574
590
|
static get Selected(): "Ausgewählt" | "Selected" | "Sélectionné" | "Selecionado" | "Seleccionados" | "Selezionati";
|
|
@@ -627,12 +643,15 @@ export declare class SDKUI_Localizator {
|
|
|
627
643
|
static get StartDateMustBeBeforeEndDate(): "Das Startdatum muss vor dem Enddatum liegen" | "The start date must be before the end date" | "La fecha de inicio debe ser anterior a la fecha de finalización" | "La date de début doit être antérieure à la date de fin" | "A data de início deve ser anterior à data de término" | "La data di inizio deve essere precedente alla data di fine";
|
|
628
644
|
static get Statistics(): "Statistiken" | "Statistics" | "Estadística" | "Statistiques" | "Estatísticas" | "Statistiche";
|
|
629
645
|
static get Status(): "Status" | "Estado" | "Statut" | "Stato";
|
|
646
|
+
static get StatusAndAnswer(): "Status und Antwort" | "Status and answer" | "Estado y respuesta" | "Statut et réponse" | "Estado e resposta" | "Stato e risposta";
|
|
630
647
|
static get Subject(): "Betreff" | "Subject" | "Asunto" | "Objet" | "Assunto" | "Oggetto";
|
|
631
648
|
static get Summary(): "Zusammenfassung" | "Summary" | "Resumen" | "Résumé" | "Resumo" | "Riepilogo";
|
|
632
649
|
static get SwitchUser(): "Benutzer wechseln" | "Switch user" | "Cambiar usuario" | "Changer d'utilisateur" | "Mudar de usuário" | "Cambia utente";
|
|
633
650
|
static get TargetedSearch(): "Gezielte Suche" | "Targeted search" | "Búsqueda dirigida" | "Recherche ciblée" | "Pesquisa direcionada" | "Ricerca puntuale";
|
|
634
|
-
static get TaskAssignedMessage(): "
|
|
635
|
-
static get
|
|
651
|
+
static get TaskAssignedMessage(): "Aufgabe wurde vom Benutzer \"{{0}}\" zugewiesen." | "Task assigned by user \"{{0}}\"." | "Tarea asignada por el usuario \"{{0}}\"." | "Tâche assignée par l'utilisateur \"{{0}}\"." | "Tarefa atribuída pelo usuário \"{{0}}\"." | "Attività assegnata dall'utente \"{{0}}\".";
|
|
652
|
+
static get MoreInfoRequestedTo(): "Weitere Informationen angefordert von \"{{0}}\"." | "More information requested to \"{{0}}\"." | "Solicitud de más información a \"{{0}}\"." | "Demande d'informations supplémentaires à \"{{0}}\"." | "Pedido de mais informações a \"{{0}}\"." | "Richiesta di maggiori informazioni a \"{{0}}\".";
|
|
653
|
+
static get MoreInfoRequested(): "Weitere Informationen angefordert" | "More information requested" | "Solicitud de más información" | "Demande d'informations supplémentaires" | "Pedido de mais informações" | "Richiesta di maggiori informazioni";
|
|
654
|
+
static get TaskAssignedToUserMessage(): "Aufgabe zugewiesen an den Benutzer \"{{0}}\"" | "Task assigned to user \"{{0}}\"" | "Tarea asignada al usuario \"{{0}}\"" | "Tâche assignée à l'utilisateur \"{{0}}\"" | "Tarefa atribuída ao usuário \"{{0}}\"" | "Attività assegnata all'utente \"{{0}}\"";
|
|
636
655
|
static get TaskConsideredExpiring(): "Die Aufgabe wird als ablaufend betrachtet, wenn" | "The task is considered expiring if" | "La tarea se considera por vencer si" | "La tâche est considérée comme expirante si" | "A tarefa é considerada vencendo se" | "L'attività è considerata in scadenza se";
|
|
637
656
|
static get TasksEmpty(): string;
|
|
638
657
|
static get TaskSavedSuccessfully(): string;
|
|
@@ -735,10 +754,14 @@ export declare class SDKUI_Localizator {
|
|
|
735
754
|
static get WorkflowDiagramEndMissing(): "Il workflow deve contenere almeno un elemento di tipo 'End'." | "Workflow must contain at least one 'End' item." | "El workflow debe contener al menos un elemento de tipo 'End'." | "Le workflow doit contenir au moins un élément de type 'End'." | "O workflow deve conter pelo menos um elemento do tipo 'End'.";
|
|
736
755
|
static get WorkflowDiagramStartMustHaveOutgoing(): "L'elemento 'Start' deve avere almeno una connessione in uscita." | "The 'Start' item must have at least one outgoing connection." | "El elemento 'Start' debe tener al menos una conexión de salida." | "L'élément 'Start' doit avoir au moins une connexion sortante." | "O elemento 'Start' deve ter pelo menos uma ligação de saída.";
|
|
737
756
|
static get WorkflowDiagramStartCannotHaveIncoming(): "L'elemento 'Start' non può avere connessioni in ingresso." | "The 'Start' item cannot have incoming connections." | "El elemento 'Start' no puede tener conexiones de entrada." | "L'élément 'Start' ne peut pas avoir de connexions entrantes." | "O elemento 'Start' não pode ter ligações de entrada.";
|
|
738
|
-
static get WorkflowDiagramConditionTwoOutgoing(): "L'elemento '
|
|
739
|
-
static get WorkflowDiagramConditionMustHaveIncoming(): "L'elemento '
|
|
740
|
-
static get WorkflowDiagramElementShouldHaveTwoOutgoing(): "L'elemento '{0}' dovrebbe avere esattamente due connessioni in uscita." | "The element '{0}' should have exactly two outgoing connections." | "El elemento '{0}' debería tener exactamente dos conexiones de salida." | "L'élément '{0}' devrait avoir exactement deux connexions sortantes." | "O elemento '{0}' deveria ter exactamente duas ligações de saída.";
|
|
741
|
-
static get WorkflowDiagramElementShouldHaveIncoming(): "L'elemento '{0}' deve avere almeno una connessione in ingresso." | "
|
|
757
|
+
static get WorkflowDiagramConditionTwoOutgoing(): "L'elemento '{{0}}' deve avere esattamente due connessioni in uscita." | "The '{{0}}' item must have exactly two outgoing connections." | "El elemento '{{0}}' debe tener exactamente dos conexiones de salida." | "L'élément '{{0}}' doit avoir exactement deux connexions sortantes." | "O elemento '{{0}}' deve ter exactamente duas ligações de saída.";
|
|
758
|
+
static get WorkflowDiagramConditionMustHaveIncoming(): "L'elemento '{{0}}' deve avere almeno una connessione in ingresso." | "The '{{0}}' item must have at least one incoming connection." | "El elemento '{{0}}' debe tener al menos una conexión de entrada." | "L'élément '{{0}}' doit avoir au moins une connexion entrante." | "O elemento '{{0}}' deve ter pelo menos uma ligação de entrada.";
|
|
759
|
+
static get WorkflowDiagramElementShouldHaveTwoOutgoing(): "L'elemento '{{0}}' dovrebbe avere esattamente due connessioni in uscita." | "The element '{{0}}' should have exactly two outgoing connections." | "El elemento '{{0}}' debería tener exactamente dos conexiones de salida." | "L'élément '{{0}}' devrait avoir exactement deux connexions sortantes." | "O elemento '{{0}}' deveria ter exactamente duas ligações de saída.";
|
|
760
|
+
static get WorkflowDiagramElementShouldHaveIncoming(): "L'elemento '{{0}}' deve avere almeno una connessione in ingresso." | "El elemento '{{0}}' debe tener al menos una conexión de entrada." | "L'élément '{{0}}' doit avoir au moins une connexion entrante." | "O elemento '{{0}}' deve ter pelo menos uma ligação de entrada." | "The element '{{0}}' must have at least one incoming connection.";
|
|
761
|
+
static get WorkflowDiagramElementMustHaveIncoming(): "L'elemento '{{0}}' deve avere almeno una connessione in ingresso." | "El elemento '{{0}}' debe tener al menos una conexión de entrada." | "L'élément '{{0}}' doit avoir au moins une connexion entrante." | "O elemento '{{0}}' deve ter pelo menos uma ligação de entrada." | "The element '{{0}}' must have at least one incoming connection." | "Das Element '{{0}}' muss mindestens eine eingehende Verbindung haben.";
|
|
762
|
+
static get WorkflowDiagramElementCannotHaveOutgoing(): "Das Element '{{0}}' kann keine ausgehenden Verbindungen haben." | "The element '{{0}}' cannot have outgoing connections." | "El elemento '{{0}}' no puede tener conexiones de salida." | "L'élément '{{0}}' ne peut pas avoir de connexions sortantes." | "O elemento '{{0}}' não pode ter ligações de saída." | "L'elemento '{{0}}' non può avere connessioni in uscita.";
|
|
763
|
+
static get WorkflowDiagramElementShouldHaveOutgoing(): "Das Element '{{0}}' sollte mindestens eine ausgehende Verbindung haben." | "The element '{{0}}' should have at least one outgoing connection." | "El elemento '{{0}}' debería tener al menos una conexión de salida." | "L'élément '{{0}}' devrait avoir au moins une connexion sortante." | "O elemento '{{0}}' deveria ter pelo menos uma ligação de saída." | "L'elemento '{{0}}' dovrebbe avere almeno una connessione in uscita.";
|
|
764
|
+
static get WorkflowDiagramElementShouldHaveOneOutgoing(): "Das Element '{{0}}' sollte genau eine ausgehende Verbindung haben." | "The element '{{0}}' should have exactly one outgoing connection." | "El elemento '{{0}}' debería tener exactamente una conexión de salida." | "L'élément '{{0}}' devrait avoir exactement une connexion sortante." | "O elemento '{{0}}' deveria ter exactamente uma ligação de saída." | "L'elemento '{{0}}' dovrebbe avere esattamente una connessione in uscita.";
|
|
742
765
|
static get WorkflowDiagramMissingOrInvalid(): "Diagramm fehlt oder ist ungültig" | "Diagram missing or invalid" | "Diagrama no presente o no válido" | "Schéma manquant ou invalide" | "Diagrama ausente ou inválido" | "Diagramma non presente o non valido";
|
|
743
766
|
static get WorkflowDiagramNotAuthorized(): "Sie sind nicht berechtigt, das Diagramm anzuzeigen" | "You are not authorized to view the diagram" | "No está autorizado para ver el diagrama" | "Vous n'êtes pas autorisé à afficher le diagramme" | "Não está autorizado a visualizar o diagrama" | "Non sei abilitato a visualizzare il diagramma";
|
|
744
767
|
static get WorkflowEndInstance(): "Instanz beenden" | "End instance" | "Finalizar instancia" | "Termine l'instance" | "Pare a instância" | "Termina istanza";
|
|
@@ -749,6 +772,7 @@ export declare class SDKUI_Localizator {
|
|
|
749
772
|
static get WorkflowStartAfterArchive(): "Starten Sie die Instanz beim Archivieren des Dokuments" | "Start the instance when you archive the document" | "Iniciar la instancia cuando se almacena el documento" | "Démarrer l'instance lorsque vous archivez le document" | "Inicie a instância quando você fizer check in no documento" | "Avviare l'istanza quando si archivia il documento";
|
|
750
773
|
static get WorkflowStartAfterUpdate(): "Starten Sie die Instanz beim Bearbeiten der folgenden Methadaten" | "Start the instance when updating the following metadata" | "Iniciar la instancia cuando se modifican los siguientes metadatos" | "Démarrer l'instance lors de l'édition des métadonnées suivantes" | "Inicie a instância ao editar os seguintes metadados" | "Avviare l'istanza quando si modificano i seguenti metadati";
|
|
751
774
|
static get WorkflowGetRecipientsFromQuery(): "Ermitteln Sie die Empfänger aus der ABFRAGE" | "Get the recipients from QUERY" | "Obtenga los destinatarios de QUERY" | "Obtenez les destinataires de QUERY" | "Obtenha os destinatários de QUERY" | "Ottieni i destinatari da QUERY";
|
|
775
|
+
static get WorkflowOnlyOneOwnerAllowed(): "Es ist nur ein Eigentümer zulässig" | "Only one owner is allowed" | "Solo se permite un propietario" | "Un seul propriétaire est autorisé" | "Apenas um proprietário é permitido" | "È consentito un solo proprietario";
|
|
752
776
|
static get WorkflowOnlyOneQueryForRecipients(): "Nur eine Abfrage für die Empfänger definieren" | "Define only one query for recipients" | "Definir solo una consulta para los destinatarios" | "Définissez une seule requête pour les destinataires" | "Defina apenas uma query para os destinatários" | "Definire solo una query per i destinatari";
|
|
753
777
|
static get WorkflowRecipientSetRule(): "Verwalten Sie Empfänger mit der folgenden Regel" | "Manage recipients with the following rule" | "Gestionar los destinatarios con la siguiente regla" | "Gérer les destinataires avec la règle suivante" | "Gerenciar destinatários com a seguinte regra" | "Gestisci i destinatari con la seguente regola";
|
|
754
778
|
static get WorkGroup(): "Arbeitsgruppe" | "Work Group" | "Grupo de Trabajo" | "Groupe de travail" | "Grupo de Trabalho" | "Gruppo di lavoro";
|