@topconsultnpm/sdkui-react 6.20.0-dev1.3 → 6.20.0-dev1.30

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (64) hide show
  1. package/lib/components/NewComponents/ContextMenu/TMContextMenu.js +3 -3
  2. package/lib/components/NewComponents/ContextMenu/hooks.d.ts +1 -0
  3. package/lib/components/NewComponents/ContextMenu/hooks.js +8 -4
  4. package/lib/components/NewComponents/ContextMenu/styles.d.ts +4 -1
  5. package/lib/components/NewComponents/ContextMenu/styles.js +41 -8
  6. package/lib/components/NewComponents/ContextMenu/types.d.ts +1 -0
  7. package/lib/components/NewComponents/FloatingMenuBar/TMFloatingMenuBar.js +38 -30
  8. package/lib/components/NewComponents/FloatingMenuBar/styles.d.ts +8 -0
  9. package/lib/components/NewComponents/FloatingMenuBar/styles.js +30 -19
  10. package/lib/components/base/TMAccordion.js +2 -2
  11. package/lib/components/base/TMCustomButton.js +41 -5
  12. package/lib/components/base/TMDataGrid.d.ts +2 -2
  13. package/lib/components/base/TMDataGrid.js +16 -5
  14. package/lib/components/editors/TMHtmlEditor.js +1 -1
  15. package/lib/components/editors/TMMetadataValues.js +20 -2
  16. package/lib/components/features/documents/TMDcmtBlog.d.ts +1 -7
  17. package/lib/components/features/documents/TMDcmtBlog.js +29 -2
  18. package/lib/components/features/documents/TMDcmtForm.js +268 -168
  19. package/lib/components/features/documents/TMDcmtPreview.js +37 -66
  20. package/lib/components/features/search/TMDcmtCheckoutInfoForm.d.ts +8 -0
  21. package/lib/components/features/search/{TMSearchResultCheckoutInfoForm.js → TMDcmtCheckoutInfoForm.js} +6 -11
  22. package/lib/components/features/search/TMSearchQueryPanel.js +13 -12
  23. package/lib/components/features/search/TMSearchResult.js +74 -111
  24. package/lib/components/features/search/TMSearchResultsMenuItems.d.ts +1 -1
  25. package/lib/components/features/search/TMSearchResultsMenuItems.js +26 -43
  26. package/lib/components/features/search/TMSignatureInfoContent.d.ts +6 -0
  27. package/lib/components/features/search/TMSignatureInfoContent.js +140 -0
  28. package/lib/components/forms/Login/LoginValidatorService.d.ts +2 -0
  29. package/lib/components/forms/Login/LoginValidatorService.js +7 -2
  30. package/lib/components/forms/Login/TMLoginForm.js +34 -6
  31. package/lib/css/tm-sdkui.css +1 -1
  32. package/lib/helper/SDKUI_Globals.d.ts +13 -14
  33. package/lib/helper/SDKUI_Globals.js +9 -0
  34. package/lib/helper/SDKUI_Localizator.d.ts +8 -0
  35. package/lib/helper/SDKUI_Localizator.js +98 -0
  36. package/lib/helper/TMPdfViewer.d.ts +8 -0
  37. package/lib/helper/TMPdfViewer.js +187 -0
  38. package/lib/helper/TMUtils.d.ts +3 -1
  39. package/lib/helper/TMUtils.js +51 -0
  40. package/lib/helper/checkinCheckoutManager.d.ts +85 -0
  41. package/lib/helper/checkinCheckoutManager.js +348 -0
  42. package/lib/helper/devextremeCustomMessages.d.ts +30 -0
  43. package/lib/helper/devextremeCustomMessages.js +30 -0
  44. package/lib/helper/helpers.js +7 -1
  45. package/lib/helper/index.d.ts +2 -0
  46. package/lib/helper/index.js +2 -0
  47. package/lib/helper/queryHelper.js +29 -0
  48. package/lib/hooks/useCheckInOutOperations.d.ts +28 -0
  49. package/lib/hooks/useCheckInOutOperations.js +223 -0
  50. package/lib/services/platform_services.d.ts +1 -1
  51. package/package.json +5 -2
  52. package/lib/components/NewComponents/Notification/Notification.d.ts +0 -4
  53. package/lib/components/NewComponents/Notification/Notification.js +0 -60
  54. package/lib/components/NewComponents/Notification/NotificationContainer.d.ts +0 -8
  55. package/lib/components/NewComponents/Notification/NotificationContainer.js +0 -33
  56. package/lib/components/NewComponents/Notification/index.d.ts +0 -2
  57. package/lib/components/NewComponents/Notification/index.js +0 -2
  58. package/lib/components/NewComponents/Notification/styles.d.ts +0 -21
  59. package/lib/components/NewComponents/Notification/styles.js +0 -180
  60. package/lib/components/NewComponents/Notification/types.d.ts +0 -18
  61. package/lib/components/NewComponents/Notification/types.js +0 -1
  62. package/lib/components/features/search/TMSearchResultCheckoutInfoForm.d.ts +0 -8
  63. package/lib/helper/cicoHelper.d.ts +0 -31
  64. package/lib/helper/cicoHelper.js +0 -155
@@ -0,0 +1,140 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useEffect, useState } from "react";
3
+ import { SDK_Globals } from "@topconsultnpm/sdk-ts";
4
+ import { IconCopy, getExceptionMessage } from "../../../helper";
5
+ import TMSpinner from "../../base/TMSpinner";
6
+ const TMSignatureInfoContent = (props) => {
7
+ const { inputDcmt } = props;
8
+ const [selectedHash, setSelectedHash] = useState('sha256');
9
+ const [signerInfo, setSignerInfo] = useState(undefined);
10
+ const [error, setError] = useState(undefined);
11
+ const [copiedHash, setCopiedHash] = useState(false);
12
+ useEffect(() => {
13
+ const fetchSignerInfo = async () => {
14
+ TMSpinner.show();
15
+ try {
16
+ const ue = SDK_Globals.tmSession?.NewUpdateEngineByID();
17
+ if (!ue) {
18
+ setError("Sessione non disponibile");
19
+ TMSpinner.hide();
20
+ return;
21
+ }
22
+ ue.TID = inputDcmt.TID;
23
+ ue.DID = inputDcmt.DID;
24
+ const signerInfoDescriptor = await ue.GetSignersAsync();
25
+ if (!signerInfoDescriptor) {
26
+ setError("Informazioni di firma non disponibili");
27
+ TMSpinner.hide();
28
+ return;
29
+ }
30
+ setSignerInfo(signerInfoDescriptor);
31
+ setError(undefined);
32
+ TMSpinner.hide();
33
+ }
34
+ catch (err) {
35
+ setError(getExceptionMessage(err));
36
+ TMSpinner.hide();
37
+ }
38
+ };
39
+ fetchSignerInfo();
40
+ }, [inputDcmt]);
41
+ const hashButtonStyle = (isActive) => ({
42
+ padding: '8px 16px',
43
+ margin: '0 2px',
44
+ border: isActive ? '2px solid #0078d4' : '1px solid #ccc',
45
+ borderRadius: '6px',
46
+ background: isActive ? '#e6f2ff' : '#fff',
47
+ color: isActive ? '#0078d4' : '#333',
48
+ cursor: 'pointer',
49
+ fontSize: '13px',
50
+ fontWeight: isActive ? '600' : '400',
51
+ transition: 'all 0.2s ease',
52
+ outline: 'none',
53
+ userSelect: 'none',
54
+ whiteSpace: 'nowrap'
55
+ });
56
+ const getHashValue = () => {
57
+ switch (selectedHash) {
58
+ case 'sha256': return signerInfo?.shA256;
59
+ case 'sha1': return signerInfo?.shA1;
60
+ case 'sha256base64': return signerInfo?.shA256Base64;
61
+ }
62
+ };
63
+ const getHashLabel = () => {
64
+ switch (selectedHash) {
65
+ case 'sha256': return 'SHA-256';
66
+ case 'sha1': return 'SHA-1';
67
+ case 'sha256base64': return 'SHA-256 (Base64)';
68
+ }
69
+ };
70
+ const copyToClipboard = async () => {
71
+ const value = getHashValue();
72
+ if (value) {
73
+ try {
74
+ await navigator.clipboard.writeText(value);
75
+ setCopiedHash(true);
76
+ setTimeout(() => setCopiedHash(false), 2000);
77
+ }
78
+ catch (err) {
79
+ console.error('Failed to copy:', err);
80
+ }
81
+ }
82
+ };
83
+ if (error) {
84
+ return (_jsx("div", { style: {
85
+ padding: '20px',
86
+ textAlign: 'center',
87
+ color: '#d32f2f',
88
+ background: '#ffebee',
89
+ borderRadius: '8px'
90
+ }, children: error }));
91
+ }
92
+ if (!signerInfo) {
93
+ return null;
94
+ }
95
+ return (_jsxs("div", { style: { lineHeight: "1.5em", overflowY: "auto", maxHeight: "500px", paddingRight: "8px", boxSizing: "border-box", userSelect: 'text' }, children: [signerInfo.shA256 && (_jsxs("div", { style: {
96
+ marginBottom: '12px',
97
+ padding: '16px',
98
+ background: '#f5f5f5',
99
+ borderRadius: '8px',
100
+ border: '1px solid #e0e0e0'
101
+ }, children: [_jsxs("div", { style: { marginBottom: '12px', display: 'flex', gap: '4px', flexWrap: 'wrap' }, children: [signerInfo.shA256 && (_jsx("button", { onClick: () => setSelectedHash('sha256'), style: hashButtonStyle(selectedHash === 'sha256'), children: "SHA-256" })), signerInfo.shA1 && (_jsx("button", { onClick: () => setSelectedHash('sha1'), style: hashButtonStyle(selectedHash === 'sha1'), children: "SHA-1" })), signerInfo.shA256Base64 && (_jsx("button", { onClick: () => setSelectedHash('sha256base64'), style: hashButtonStyle(selectedHash === 'sha256base64'), children: "Base64" }))] }), _jsxs("div", { style: {
102
+ background: '#fff',
103
+ padding: '12px',
104
+ borderRadius: '6px',
105
+ wordBreak: 'break-all',
106
+ fontSize: '12px',
107
+ border: '1px solid #d0d0d0',
108
+ userSelect: 'text',
109
+ }, children: [_jsxs("div", { style: { display: 'flex', alignItems: 'center', justifyContent: 'space-between', marginBottom: '6px' }, children: [_jsxs("strong", { style: { color: '#0078d4', fontSize: '14px' }, children: [getHashLabel(), ":"] }), _jsxs("button", { onClick: copyToClipboard, style: {
110
+ background: copiedHash ? '#d4edda' : 'transparent',
111
+ border: 'none',
112
+ cursor: 'pointer',
113
+ padding: '4px 8px',
114
+ borderRadius: '4px',
115
+ display: 'flex',
116
+ alignItems: 'center',
117
+ gap: '4px',
118
+ transition: 'all 0.2s ease',
119
+ color: copiedHash ? '#155724' : '#666'
120
+ }, title: "Copia", children: [_jsx(IconCopy, { width: 16, height: 16 }), copiedHash && _jsx("span", { style: { fontSize: '11px' }, children: "Copiato" })] })] }), _jsx("div", { style: { color: '#333' }, children: getHashValue() })] })] })), signerInfo.signers && signerInfo.signers.length > 0 ? (_jsxs("div", { children: [_jsxs("h4", { style: { margin: '0 0 12px 0', color: '#0078d4', fontSize: '16px' }, children: ["Firme digitali (", signerInfo.signers.length, ")"] }), signerInfo.signers.map((signer, idx) => (_jsxs("div", { style: {
121
+ border: "1px solid #d0d0d0",
122
+ borderRadius: "8px",
123
+ padding: "16px",
124
+ marginBottom: "12px",
125
+ background: "linear-gradient(135deg, #ffffff 0%, #f9f9f9 100%)",
126
+ boxShadow: "0 2px 4px rgba(0,0,0,0.08)",
127
+ userSelect: 'text',
128
+ }, children: [_jsxs("h3", { style: { margin: "0 0 12px", color: "#0078d4", fontSize: '15px', fontWeight: '600' }, children: ["Firma ", signer.levelAndIndex] }), _jsxs("div", { style: {
129
+ display: 'grid',
130
+ gap: '10px',
131
+ fontSize: '13px'
132
+ }, children: [_jsxs("div", { children: [_jsx("strong", { style: { color: '#555' }, children: "Intestatario:" }), _jsx("div", { style: { marginTop: '4px', color: '#333' }, children: signer.info1 ?? '-' })] }), _jsxs("div", { children: [_jsx("strong", { style: { color: '#555' }, children: "Riferimento temporale:" }), _jsx("div", { style: { marginTop: '4px', color: '#333' }, children: signer.info2 ?? '-' })] }), _jsxs("div", { children: [_jsx("strong", { style: { color: '#555' }, children: "Dettagli:" }), _jsx("div", { style: { marginTop: '4px', color: '#333' }, children: signer.info3 ?? '-' })] })] })] }, idx)))] })) : (_jsx("div", { style: {
133
+ padding: '20px',
134
+ textAlign: 'center',
135
+ color: '#666',
136
+ background: '#f5f5f5',
137
+ borderRadius: '8px'
138
+ }, children: "Nessuna firma trovata" }))] }));
139
+ };
140
+ export default TMSignatureInfoContent;
@@ -3,6 +3,8 @@ import { TMEndpointsType } from './TMLoginForm';
3
3
  export interface LoginData {
4
4
  endpoint: TMEndpointsType;
5
5
  dcmtArchive: ArchiveDescriptor;
6
+ manualArchiveID?: string;
7
+ hasArchives?: boolean;
6
8
  authenticationMode: AuthenticationModes;
7
9
  username?: string;
8
10
  password?: string;
@@ -27,8 +27,13 @@ export class LoginValidator {
27
27
  if (!data.endpoint?.Description?.trim()) {
28
28
  addError("endpoint", SDKUI_Localizator.RequiredField);
29
29
  }
30
- if (!data.dcmtArchive?.description?.trim()) {
31
- addError("dcmtArchive", SDKUI_Localizator.RequiredField);
30
+ if (data.hasArchives) {
31
+ if (!data.dcmtArchive?.description?.trim()) {
32
+ addError("dcmtArchive", SDKUI_Localizator.RequiredField);
33
+ }
34
+ }
35
+ else if (!data.manualArchiveID?.trim()) {
36
+ addError("manualArchiveID", SDKUI_Localizator.RequiredField);
32
37
  }
33
38
  if (!data.authenticationMode || data.authenticationMode === AuthenticationModes.None) {
34
39
  addError("authenticationMode", SDKUI_Localizator.RequiredField);
@@ -8,6 +8,7 @@ import frMessages from "devextreme/localization/messages/fr.json";
8
8
  import itMessages from "devextreme/localization/messages/it.json";
9
9
  import ptMessages from "devextreme/localization/messages/pt.json";
10
10
  import { locale as dxlocale, loadMessages } from "devextreme/localization";
11
+ import { devextremeCustomMessages } from "../../../helper/devextremeCustomMessages";
11
12
  import styled from "styled-components";
12
13
  import Menu from "./Menu";
13
14
  import TextBox from "./TextBox";
@@ -81,6 +82,7 @@ export const useCultureID = ({ cultureID = CultureIDs.It_IT }) => {
81
82
  loadMessages(frMessages);
82
83
  loadMessages(itMessages);
83
84
  loadMessages(ptMessages);
85
+ loadMessages(devextremeCustomMessages); // Fix traduzioni mancanti in DevExtreme
84
86
  }, []);
85
87
  return (currentCultureID);
86
88
  };
@@ -111,6 +113,7 @@ const TMLoginForm = (props) => {
111
113
  const [showCultureIDs, setShowCultureIDs] = useState(false);
112
114
  const [dcmtArchives, setDcmtArchives] = useState([]);
113
115
  const [dcmtArchive, setDcmtArchive] = useState();
116
+ const [manualArchiveID, setManualArchiveID] = useState('');
114
117
  const [authMode, setAuthMode] = useState(AuthenticationModes.TopMedia);
115
118
  const [username, setUsername] = useState('SysAdmin');
116
119
  const [password, setPassword] = useState('');
@@ -131,6 +134,8 @@ const TMLoginForm = (props) => {
131
134
  authenticationMode: authMode,
132
135
  cultureID: props.cultureID ?? CultureIDs.It_IT,
133
136
  dcmtArchive: dcmtArchive,
137
+ manualArchiveID: manualArchiveID,
138
+ hasArchives: dcmtArchives.length > 0,
134
139
  endpoint: endpoint,
135
140
  authDomain: authDomain,
136
141
  authDomainOnBehalfOf: authDomain,
@@ -142,7 +147,7 @@ const TMLoginForm = (props) => {
142
147
  username: username,
143
148
  usernameOnBehalfOf: usernameOnBehalf
144
149
  };
145
- }, [authMode, props.cultureID, dcmtArchive, endpoint, authDomain, otpCode, password, passwordOnBehalf, saveLoginName, saveLoginEnable, username, usernameOnBehalf]);
150
+ }, [authMode, props.cultureID, dcmtArchive, manualArchiveID, dcmtArchives.length, endpoint, authDomain, otpCode, password, passwordOnBehalf, saveLoginName, saveLoginEnable, username, usernameOnBehalf]);
146
151
  const inputRefs = useMemo(() => {
147
152
  switch (authMode) {
148
153
  case AuthenticationModes.TopMedia:
@@ -302,7 +307,7 @@ const TMLoginForm = (props) => {
302
307
  }, []);
303
308
  const disableContinueBtn = useMemo(() => {
304
309
  switch (loginStep) {
305
- case 1: return fieldValidations('endpoint').length > 0 || fieldValidations('dcmtArchive').length > 0;
310
+ case 1: return fieldValidations('endpoint').length > 0 || fieldValidations('dcmtArchive').length > 0 || fieldValidations('manualArchiveID').length > 0;
306
311
  case 2: return fieldValidations('authenticationMode').length > 0 || fieldValidations('username').length > 0 || fieldValidations('password').length > 0;
307
312
  default: return false;
308
313
  }
@@ -321,8 +326,13 @@ const TMLoginForm = (props) => {
321
326
  return tmSession;
322
327
  }, [endpoint, username, dcmtArchive]);
323
328
  const nextStepHandler = async () => {
324
- if (!endpoint || !dcmtArchive)
329
+ if (!endpoint || (!dcmtArchive && !manualArchiveID))
325
330
  return;
331
+ if (loginStep === 1 && !dcmtArchive && manualArchiveID) {
332
+ const isValid = await validateManualArchiveAsync();
333
+ if (!isValid)
334
+ return;
335
+ }
326
336
  if (loginStep === 1) {
327
337
  setLoginStep(2);
328
338
  }
@@ -349,6 +359,23 @@ const TMLoginForm = (props) => {
349
359
  return;
350
360
  setLoginStep(prev => prev - 1);
351
361
  }, [loginStep]);
362
+ const validateManualArchiveAsync = async () => {
363
+ if (!tmSession || !manualArchiveID)
364
+ return false;
365
+ try {
366
+ TMSpinner.show({ description: '' });
367
+ const archiveEngine = tmSession.NewArchiveEngine();
368
+ await archiveEngine.RetrieveAsync(manualArchiveID);
369
+ return true;
370
+ }
371
+ catch (e) {
372
+ TMExceptionBoxManager.show({ exception: e });
373
+ return false;
374
+ }
375
+ finally {
376
+ TMSpinner.hide();
377
+ }
378
+ };
352
379
  const getArchivesAsync = async () => {
353
380
  if (!tmSession)
354
381
  return;
@@ -392,7 +419,7 @@ const TMLoginForm = (props) => {
392
419
  const sdInput = {
393
420
  authenticationMode: authMode,
394
421
  appModuleID: props.appModule,
395
- archiveID: dcmtArchive?.id,
422
+ archiveID: dcmtArchive?.id ?? (dcmtArchives.length === 0 && manualArchiveID ? manualArchiveID : undefined),
396
423
  description: dcmtArchive?.description,
397
424
  userName: username,
398
425
  password: password,
@@ -594,7 +621,7 @@ const TMLoginForm = (props) => {
594
621
  }
595
622
  }, [SDK_Globals.appModule]);
596
623
  return (_jsxs(StyledWrapper, { children: [!isMobile && _jsxs(StyledVersionContainer, { children: [_jsxs(StyledVersion, { children: [_jsxs(StyledVersionName, { children: [_jsx("span", { style: { color: TMColors.primary }, children: "\u25CF" }), SDK_Globals.appModule] }), _jsxs("p", { children: ["v.", SDK_Globals.appVersion] })] }), _jsxs(StyledVersion, { children: [_jsxs(StyledVersionName, { children: [_jsx("span", { style: { color: TMColors.tertiary }, children: "\u25CF" }), "SDKUI"] }), _jsxs("p", { children: ["v.", SDK_Globals.sdkuiVersion] })] }), _jsxs(StyledVersion, { children: [_jsxs(StyledVersionName, { children: [_jsx("span", { style: { color: TMColors.error }, children: "\u25CF" }), "SDK"] }), _jsxs("p", { children: ["v.", SDK_Globals.sdkVersion] })] })] }), _jsxs(StyledLoginContainer, { "$isMobile": isMobile, children: [_jsxs(StyledLeftSection, { "$isMobile": isMobile, "$isConnector": props.isConnector ?? false, children: [isMobile && _jsxs(StyledTopBar, { children: [_jsx(StyledTitle, { children: SDKUI_Localizator.WelcomeTo.replaceParams('') + ' ' + welcomeAppNameHeader + ' ' + 'v.' + SDK_Globals.appVersion }), _jsx(StyledMobileVersionIcon, { onClick: showVersionPopup, children: _jsx(IconInfo, { fontSize: 20, color: TMColors.primary }) })] }), _jsx(StyledOverlay, { "$isMobile": isMobile, children: _jsx(StyledCustomLogo, { style: { backgroundImage: `url(${showDefaultLogo ? 'logo-default.svg' : 'logo-custom.svg'})` } }) }), (windowHeight === WindowHeight.LARGE || !isMobile) && _jsxs(StyledPoweredByContainer, { "$isMobile": isMobile, children: [" ", showDefaultLogo ? 'Powered by TopConsult' : _jsx("img", { src: "/logo-default.svg", alt: "Logo", width: isMobile ? 50 : 100 }), " "] })] }), _jsxs(StyledRightSection, { "$isMobile": isMobile, children: [((((getDeviceType() === 'desktop' || isDesktop || isTablet) && windowHeight !== WindowHeight.SMALL)) && !isMobile) && _jsxs(StyledLogoContainer, { "$isMobile": isMobile, children: [_jsx(StyledWelcomeText, { children: SDKUI_Localizator.WelcomeTo.replaceParams('') }), _jsx(StyledLogo, { children: _jsx("img", { src: six, alt: "six", height: 50 }) }), _jsx(StyledWelcomeText, { children: welcomeAppName })] }), _jsxs(StyledToolbarContainer, { children: [_jsx(StyledLanguageChooser, { onClick: () => setShowCultureIDs(true), children: _jsx(TMTooltip, { content: SDKUI_Localizator.CultureID, children: _jsx("img", { src: getCultureIDImg(), alt: "Lang", width: 25, height: 25 }) }) }), loginStep !== 3 && _jsx(TMButton, { btnStyle: "icon", onClick: () => setShowRapidAccess(true), icon: _jsx(IconFastAccess, { fontSize: 20 }), caption: LOGINLocalizator.QuickAccess }), showPasswordOperations && _jsx(TMButton, { disabled: disablePasswordOperations, btnStyle: "icon", onClick: () => setShowChangePassword(true), icon: _jsx(IconPasswordOutline, { fontSize: 19 }), caption: SDKUI_Localizator.ChangePassword })] }), _jsxs(StyledFormContainer, { "$isMobile": isMobile, "$windowHeight": windowHeight, children: [loginStep === 1 &&
597
- _jsxs(StyledStepContainer, { "$deviceType": deviceType, children: [_jsx(Chooser, { isDropDown: isDesktop, dataSource: props.endpoints, value: 'Description', columns: accessPointChooserColumns, additionalIcons: accessPointAdditionalIcons, icon: _jsx(IconAccessPoint, {}), label: SDKUI_Localizator.Endpoint, onSelectionChanged: (ep) => { setEndpoint(ep); setDcmtArchive(undefined); }, validationItems: fieldValidations('endpoint'), selectedRow: endpoint ?? undefined }), _jsx(Chooser, { isDropDown: isDesktop, dataSource: dcmtArchives, value: 'description', columns: dcmtArchiveChooserColumns, icon: _jsx(IconArchiveDoc, {}), label: SDKUI_Localizator.ArchiveID, onSelectionChanged: (arch) => setDcmtArchive(arch), validationItems: fieldValidations('dcmtArchive'), disabled: !endpoint, selectedRow: dcmtArchive ?? undefined })] }), loginStep === 2 &&
624
+ _jsxs(StyledStepContainer, { "$deviceType": deviceType, children: [_jsx(Chooser, { isDropDown: isDesktop, dataSource: props.endpoints, value: 'Description', columns: accessPointChooserColumns, additionalIcons: accessPointAdditionalIcons, icon: _jsx(IconAccessPoint, {}), label: SDKUI_Localizator.Endpoint, onSelectionChanged: (ep) => { setEndpoint(ep); setDcmtArchive(undefined); }, validationItems: fieldValidations('endpoint'), selectedRow: endpoint ?? undefined }), dcmtArchives.length > 0 ? (_jsx(Chooser, { isDropDown: isDesktop, dataSource: dcmtArchives, value: 'description', columns: dcmtArchiveChooserColumns, icon: _jsx(IconArchiveDoc, {}), label: SDKUI_Localizator.ArchiveID, onSelectionChanged: (arch) => setDcmtArchive(arch), validationItems: fieldValidations('dcmtArchive'), disabled: !endpoint, selectedRow: dcmtArchive ?? undefined })) : (_jsx(TextBox, { type: "text", icon: _jsx(IconArchiveDoc, {}), label: SDKUI_Localizator.ArchiveID, value: manualArchiveID, onValueChanged: (value) => setManualArchiveID(value), validationItems: fieldValidations('manualArchiveID'), disabled: !endpoint, placeHolder: 'Inserisci archivio' }))] }), loginStep === 2 &&
598
625
  _jsxs(_Fragment, { children: [_jsxs(StyledSummaryContainer, { style: {
599
626
  display: 'flex',
600
627
  justifyContent: 'center',
@@ -604,7 +631,7 @@ const TMLoginForm = (props) => {
604
631
  marginBottom: windowHeight === WindowHeight.SMALL ? '30px' : '25px',
605
632
  width: '100%',
606
633
  minHeight: '15px'
607
- }, children: [_jsxs(StyledDescription, { children: [_jsx(TMTooltip, { content: SDKUI_Localizator.Endpoint, children: _jsx(IconAccessPoint, { color: TMColors.primary, fontSize: 16 }) }), _jsx(TMTooltip, { content: endpoint?.Description ?? '', children: _jsx("p", { children: endpoint?.Description && endpoint.Description.length > 20 ? endpoint.Description.substring(0, 20) + '...' : endpoint?.Description }) })] }), _jsxs(StyledDescription, { children: [_jsx(TMTooltip, { content: SDKUI_Localizator.ArchiveID, children: _jsx(IconArchiveDoc, { color: TMColors.primary, fontSize: 16 }) }), _jsx(TMTooltip, { content: dcmtArchive?.description ?? '', children: _jsx("p", { children: dcmtArchive?.description && dcmtArchive.description.length > 20 ? dcmtArchive.description.substring(0, 20) + '...' : dcmtArchive?.description }) })] })] }), _jsxs(StyledStepContainer, { "$windowHeight": windowHeight, "$deviceType": deviceType, children: [_jsx(SelectBox, { value: authMode, options: authModeOptions, onValueChanged: (value) => setAuthMode(value), validationItems: fieldValidations('authenticationMode'), icon: _jsx(IconLogin, {}), label: SDKUI_Localizator.AuthMode }), _jsxs(StyledCredentialWrapper, { children: [authMode === AuthenticationModes.WindowsThroughTopMedia && _jsx(TextBox, { ref: authDomainRef, value: authDomain, onValueChanged: (e) => setAuthDomain(e), validationItems: fieldValidations('authDomain'), type: "text", icon: _jsx(IconWeb, {}), label: SDKUI_Localizator.Domain }), authMode !== AuthenticationModes.MSAzure && _jsx(CeredentialContainer, { isMobile: isMobile, ref: usernameRef, secondaryRef: passwordRef, usernameValidator: fieldValidations('username'), passwordValidator: fieldValidations('password'), authMode: authMode, username: username, password: password, onUsernameChanged: (un) => setUsername(un), onPasswordChanged: (ps) => setPassword(ps) }), authMode === AuthenticationModes.TopMediaOnBehalfOf &&
634
+ }, children: [_jsxs(StyledDescription, { children: [_jsx(TMTooltip, { content: SDKUI_Localizator.Endpoint, children: _jsx(IconAccessPoint, { color: TMColors.primary, fontSize: 16 }) }), _jsx(TMTooltip, { content: endpoint?.Description ?? '', children: _jsx("p", { children: endpoint?.Description && endpoint.Description.length > 20 ? endpoint.Description.substring(0, 20) + '...' : endpoint?.Description }) })] }), _jsxs(StyledDescription, { children: [_jsx(TMTooltip, { content: SDKUI_Localizator.ArchiveID, children: _jsx(IconArchiveDoc, { color: TMColors.primary, fontSize: 16 }) }), _jsx(TMTooltip, { content: dcmtArchive ? (dcmtArchive.description ?? '') : manualArchiveID, children: _jsx(StyledArchiveText, { children: dcmtArchive ? (dcmtArchive.description ?? '') : manualArchiveID }) })] })] }), _jsxs(StyledStepContainer, { "$windowHeight": windowHeight, "$deviceType": deviceType, children: [_jsx(SelectBox, { value: authMode, options: authModeOptions, onValueChanged: (value) => setAuthMode(value), validationItems: fieldValidations('authenticationMode'), icon: _jsx(IconLogin, {}), label: SDKUI_Localizator.AuthMode }), _jsxs(StyledCredentialWrapper, { children: [authMode === AuthenticationModes.WindowsThroughTopMedia && _jsx(TextBox, { ref: authDomainRef, value: authDomain, onValueChanged: (e) => setAuthDomain(e), validationItems: fieldValidations('authDomain'), type: "text", icon: _jsx(IconWeb, {}), label: SDKUI_Localizator.Domain }), authMode !== AuthenticationModes.MSAzure && _jsx(CeredentialContainer, { isMobile: isMobile, ref: usernameRef, secondaryRef: passwordRef, usernameValidator: fieldValidations('username'), passwordValidator: fieldValidations('password'), authMode: authMode, username: username, password: password, onUsernameChanged: (un) => setUsername(un), onPasswordChanged: (ps) => setPassword(ps) }), authMode === AuthenticationModes.TopMediaOnBehalfOf &&
608
635
  _jsxs(StyledCredentialWrapper, { children: [_jsx(TextBox, { value: authDomain, ref: authDomainRef, onValueChanged: (e) => setAuthDomain(e), validationItems: fieldValidations('authDomain'), type: "text", icon: _jsx(IconWeb, {}), label: SDKUI_Localizator.Domain }), _jsx(CeredentialContainer, { isMobile: isMobile, ref: usernameOnBehalfOfRef, secondaryRef: passwordOnBehalfOfRRef, usernameValidator: fieldValidations('usernameOnBehalfOf'), passwordValidator: fieldValidations('passwordOnBehalfOf'), authMode: AuthenticationModes.TopMediaOnBehalfOf, username: usernameOnBehalf, password: passwordOnBehalf, onUsernameChanged: (un) => setUsernameOnBehalf(un), onPasswordChanged: (ps) => setPasswordOnBehalf(ps) })] })] }), authMode !== AuthenticationModes.TopMediaWithMFA &&
609
636
  _jsx(RapidAccessContainer, { isSaveEnable: saveLoginEnable, name: saveLoginName, nameValidationItems: fieldValidations('rapidAccessName'), onEnableSaveChange: () => setSaveLoginEnable(!saveLoginEnable), onNameChange: (name) => setSaveLoginName(name) })] })] }), loginStep === 3 &&
610
637
  _jsxs(StyledStepThreeContainer, { "$isMobile": isMobile, children: [_jsx(OTPReader, { isMobile: isMobile, digits: otpCode, onChange: handleDigitChange, onFullChange: handleFullChange, text: _jsxs("div", { children: [" ", LOGINLocalizator.EnterOtpInstructions, " "] }), header: '', additionalButtons: [
@@ -703,6 +730,7 @@ const StyledLogo = styled.div ` display: flex; gap: 5px; align-items: center; `;
703
730
  const StyledFormContainer = styled.div ` display: flex; flex-direction: column; padding: ${props => getPadding(props.$windowHeight, props.$isMobile)} ; align-items: center; justify-content: center; gap: 10px; width: 100%; height: fit-content; max-height: calc(100% - 100px); margin-top : ${props => !props.$isMobile && props.$windowHeight === WindowHeight.MEDIUM ? '70px' : '0'} ; `;
704
731
  const StyledButtonContainer = styled.div ` display: flex; align-items: center; justify-content: center; padding: ${props => props.$windowHeight !== WindowHeight.SMALL ? '10px' : '0'}; width: 100%; margin-top: ${props => props.$windowHeight !== WindowHeight.SMALL ? '10px' : '0'}; `;
705
732
  const StyledDescription = styled.div ` display: flex; align-items: center; gap: 2px; `;
733
+ const StyledArchiveText = styled.p ` max-width: 150px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; `;
706
734
  const StyledRapidLoginSave = styled.div ` display: flex; flex-direction: column; width: 100%; gap: 2px; `;
707
735
  const StyledForgetPassword = styled.div ` position: absolute; bottom: ${props => props.$isMobile ? '15px' : '25px'}; left: 50%; transform: translateX(-50%); font-size: 0.8rem; `;
708
736
  const StyledBackButton = styled.div ` position: absolute; top: 20px; left: 20px; `;
@@ -1 +1 @@
1
- @import"https://fonts.googleapis.com/css2?family=Open+Sans:ital,wght@0,300;0,400;0,500;0,600;0,700;0,800;1,300;1,400;1,500;1,600;1,700;1,800&display=swap";@import"https://fonts.googleapis.com/css2?family=Open+Sans:ital,wght@0,300;0,400;0,500;0,600;0,700;0,800;1,300;1,400;1,500;1,600;1,700;1,800&display=swap";*{margin:0;padding:0;box-sizing:border-box;font-family:"Open Sans",sans-serif}.tm-tooltip-container-base,.tm-tooltip-container-base-right,.tm-tooltip-container-base-bottom,.tm-tooltip-container-base-left,.tm-tooltip-container-base-top{position:absolute;width:max-content;height:max-content;border-radius:5px;user-select:none;z-index:20000070}.tm-tooltip-container-base-top{top:-0.8rem;left:0;transform:translateY(-100%)}.tm-tooltip-container-base-left{left:-0.8rem;top:0;transform:translateX(-100%)}.tm-tooltip-container-base-bottom{bottom:-0.8rem;left:0;transform:translateY(100%)}.tm-tooltip-container-base-right{right:-0.8rem;top:0;transform:translateX(100%)}.tm-tooltip-arrow,.tm-tooltip-arrow-right,.tm-tooltip-arrow-left,.tm-tooltip-arrow-top,.tm-tooltip-arrow-bottom{position:absolute;width:0;height:0;z-index:50000}.tm-tooltip-arrow-bottom{top:-8px;left:8px;border-bottom:9px solid #fff;border-left:9px solid rgba(0,0,0,0);border-right:9px solid rgba(0,0,0,0)}.tm-tooltip-arrow-top{bottom:-8px;left:8px;border-top:9px solid #fff;border-left:9px solid rgba(0,0,0,0);border-right:9px solid rgba(0,0,0,0)}.tm-tooltip-arrow-left{top:8px;right:-8px;border-left:9px solid #fff;border-top:9px solid rgba(0,0,0,0);border-bottom:9px solid rgba(0,0,0,0)}.tm-tooltip-arrow-right{top:8px;left:-8px;border-right:9px solid #fff;border-top:9px solid rgba(0,0,0,0);border-bottom:9px solid rgba(0,0,0,0)}#user-credentials-popup .dx-accordion-item-title::before{content:none !important}*{margin:0;padding:0;box-sizing:border-box;font-family:"Open Sans",sans-serif}.tm-tooltip-container-base,.tm-tooltip-container-base-top,.tm-tooltip-container-base-left,.tm-tooltip-container-base-bottom,.tm-tooltip-container-base-right{position:absolute;width:max-content;height:max-content;border-radius:5px;user-select:none;z-index:20000070}.tm-tooltip-container-base-top{top:-0.8rem;left:0;transform:translateY(-100%)}.tm-tooltip-container-base-left{left:-0.8rem;top:0;transform:translateX(-100%)}.tm-tooltip-container-base-bottom{bottom:-0.8rem;left:0;transform:translateY(100%)}.tm-tooltip-container-base-right{right:-0.8rem;top:0;transform:translateX(100%)}.tm-tooltip-arrow,.tm-tooltip-arrow-bottom,.tm-tooltip-arrow-top,.tm-tooltip-arrow-left,.tm-tooltip-arrow-right{position:absolute;width:0;height:0;z-index:50000}.tm-tooltip-arrow-bottom{top:-8px;left:8px;border-bottom:9px solid #fff;border-left:9px solid rgba(0,0,0,0);border-right:9px solid rgba(0,0,0,0)}.tm-tooltip-arrow-top{bottom:-8px;left:8px;border-top:9px solid #fff;border-left:9px solid rgba(0,0,0,0);border-right:9px solid rgba(0,0,0,0)}.tm-tooltip-arrow-left{top:8px;right:-8px;border-left:9px solid #fff;border-top:9px solid rgba(0,0,0,0);border-bottom:9px solid rgba(0,0,0,0)}.tm-tooltip-arrow-right{top:8px;left:-8px;border-right:9px solid #fff;border-top:9px solid rgba(0,0,0,0);border-bottom:9px solid rgba(0,0,0,0)}#user-credentials-popup .dx-accordion-item-title::before{content:none !important}@keyframes show-error{0%{display:none;opacity:0;z-index:20000999}5%{display:block;opacity:1;z-index:20000999}95%{display:block;opacity:1;z-index:20000999}100%{opacity:0;display:none;z-index:20000999}}.tm-alert-animation-style{animation:show-error both;animation-timing-function:linear;animation-iteration-count:none;z-index:20000999}.tm-alert-container{position:absolute;width:100%;height:100%;z-index:20000999}@keyframes loading{from{width:0}to{width:100%}}.tm-alert-loading{width:100%;height:5px;position:absolute;bottom:0;left:0;animation:loading;animation-duration:5000ms}.tm-alert-icon{position:absolute;width:22px;height:22px;background-color:#fff;top:"20px";left:"20px";border-radius:50%;display:flex;align-items:center;justify-content:center}.dx-context-menu.dx-overlay-content{height:auto !important;max-height:none !important}.dx-context-menu .dx-menu-items-container{max-height:none !important}.custom-mentions-wrapper span.dx-mention span[contenteditable=false]>span:first-child{font-size:0;width:0;display:inline-block;overflow:hidden}.custom-mentions-wrapper span.dx-mention{color:#2559a5;font-weight:bold;background-color:rgba(0,0,0,0)}
1
+ @import"https://fonts.googleapis.com/css2?family=Open+Sans:ital,wght@0,300;0,400;0,500;0,600;0,700;0,800;1,300;1,400;1,500;1,600;1,700;1,800&display=swap";@import"https://fonts.googleapis.com/css2?family=Open+Sans:ital,wght@0,300;0,400;0,500;0,600;0,700;0,800;1,300;1,400;1,500;1,600;1,700;1,800&display=swap";*{margin:0;padding:0;box-sizing:border-box;font-family:"Open Sans",sans-serif}.tm-tooltip-container-base,.tm-tooltip-container-base-right,.tm-tooltip-container-base-bottom,.tm-tooltip-container-base-left,.tm-tooltip-container-base-top{position:absolute;width:max-content;height:max-content;border-radius:5px;user-select:none;z-index:20000070}.tm-tooltip-container-base-top{top:-0.8rem;left:0;transform:translateY(-100%)}.tm-tooltip-container-base-left{left:-0.8rem;top:0;transform:translateX(-100%)}.tm-tooltip-container-base-bottom{bottom:-0.8rem;left:0;transform:translateY(100%)}.tm-tooltip-container-base-right{right:-0.8rem;top:0;transform:translateX(100%)}.tm-tooltip-arrow,.tm-tooltip-arrow-right,.tm-tooltip-arrow-left,.tm-tooltip-arrow-top,.tm-tooltip-arrow-bottom{position:absolute;width:0;height:0;z-index:50000}.tm-tooltip-arrow-bottom{top:-8px;left:8px;border-bottom:9px solid #fff;border-left:9px solid rgba(0,0,0,0);border-right:9px solid rgba(0,0,0,0)}.tm-tooltip-arrow-top{bottom:-8px;left:8px;border-top:9px solid #fff;border-left:9px solid rgba(0,0,0,0);border-right:9px solid rgba(0,0,0,0)}.tm-tooltip-arrow-left{top:8px;right:-8px;border-left:9px solid #fff;border-top:9px solid rgba(0,0,0,0);border-bottom:9px solid rgba(0,0,0,0)}.tm-tooltip-arrow-right{top:8px;left:-8px;border-right:9px solid #fff;border-top:9px solid rgba(0,0,0,0);border-bottom:9px solid rgba(0,0,0,0)}#user-credentials-popup .dx-accordion-item-title::before{content:none !important}*{margin:0;padding:0;box-sizing:border-box;font-family:"Open Sans",sans-serif}.tm-tooltip-container-base,.tm-tooltip-container-base-top,.tm-tooltip-container-base-left,.tm-tooltip-container-base-bottom,.tm-tooltip-container-base-right{position:absolute;width:max-content;height:max-content;border-radius:5px;user-select:none;z-index:20000070}.tm-tooltip-container-base-top{top:-0.8rem;left:0;transform:translateY(-100%)}.tm-tooltip-container-base-left{left:-0.8rem;top:0;transform:translateX(-100%)}.tm-tooltip-container-base-bottom{bottom:-0.8rem;left:0;transform:translateY(100%)}.tm-tooltip-container-base-right{right:-0.8rem;top:0;transform:translateX(100%)}.tm-tooltip-arrow,.tm-tooltip-arrow-bottom,.tm-tooltip-arrow-top,.tm-tooltip-arrow-left,.tm-tooltip-arrow-right{position:absolute;width:0;height:0;z-index:50000}.tm-tooltip-arrow-bottom{top:-8px;left:8px;border-bottom:9px solid #fff;border-left:9px solid rgba(0,0,0,0);border-right:9px solid rgba(0,0,0,0)}.tm-tooltip-arrow-top{bottom:-8px;left:8px;border-top:9px solid #fff;border-left:9px solid rgba(0,0,0,0);border-right:9px solid rgba(0,0,0,0)}.tm-tooltip-arrow-left{top:8px;right:-8px;border-left:9px solid #fff;border-top:9px solid rgba(0,0,0,0);border-bottom:9px solid rgba(0,0,0,0)}.tm-tooltip-arrow-right{top:8px;left:-8px;border-right:9px solid #fff;border-top:9px solid rgba(0,0,0,0);border-bottom:9px solid rgba(0,0,0,0)}#user-credentials-popup .dx-accordion-item-title::before{content:none !important}@keyframes show-error{0%{display:none;opacity:0;z-index:20000999}5%{display:block;opacity:1;z-index:20000999}95%{display:block;opacity:1;z-index:20000999}100%{opacity:0;display:none;z-index:20000999}}.tm-alert-animation-style{animation:show-error both;animation-timing-function:linear;animation-iteration-count:none;z-index:20000999}.tm-alert-container{position:absolute;width:100%;height:100%;z-index:20000999}@keyframes loading{from{width:0}to{width:100%}}.tm-alert-loading{width:100%;height:5px;position:absolute;bottom:0;left:0;animation:loading;animation-duration:5000ms}.tm-alert-icon{position:absolute;width:22px;height:22px;background-color:#fff;top:"20px";left:"20px";border-radius:50%;display:flex;align-items:center;justify-content:center}.dx-context-menu.dx-overlay-content{height:auto !important;max-height:none !important}.dx-context-menu .dx-menu-items-container{max-height:none !important}.custom-mentions-wrapper span.dx-mention span[contenteditable=false]>span:first-child{font-size:0;width:0;display:inline-block;overflow:hidden}.custom-mentions-wrapper span.dx-mention{color:#2559a5;font-weight:bold;background-color:rgba(0,0,0,0)}.dx-treeview-node.dx-treeview-item-with-checkbox.dx-state-selected.dx-treeview-root-node.dx-treeview-node-is-leaf[aria-disabled=true]{display:none !important}
@@ -1,4 +1,5 @@
1
1
  import { InvoiceRetrieveFormats, ObjectClasses, OrderRetrieveFormats } from "@topconsultnpm/sdk-ts";
2
+ import { CheckoutInfo } from "./checkinCheckoutManager";
2
3
  export declare const dcmtsFileCacheDownload: Map<string, File>;
3
4
  export declare const dcmtsFileCachePreview: Map<string, File>;
4
5
  export declare const CACHE_SIZE_LIMIT = 10;
@@ -16,8 +17,8 @@ export declare class UserSettings {
16
17
  searchSettings: SearchSettings;
17
18
  themeSettings: ThemeSettings;
18
19
  dcmtFormSettings: DcmtFormSettings[];
19
- wgDraftCheckoutInfo: WgDraftCheckoutInfo[];
20
- dcmtCheckoutInfo: DcmtCheckoutInfo[];
20
+ wgDraftCheckoutInfo: CheckoutInfo[];
21
+ dcmtCheckoutInfo: CheckoutInfo[];
21
22
  defaultCheckInOutFolder: string;
22
23
  constructor(skipCssUpdate?: boolean);
23
24
  /** Load settings from local storage or other sources */
@@ -53,6 +54,16 @@ export declare class SearchSettings {
53
54
  mruTIDs: number[];
54
55
  defaultTree: number;
55
56
  previewThreshold: number;
57
+ floatingMenuBar: FloatingMenuBarSettings;
58
+ }
59
+ export declare class FloatingMenuBarSettings {
60
+ orientation: 'horizontal' | 'vertical';
61
+ pinnedItemIds: string[];
62
+ itemIds: string[];
63
+ position: {
64
+ x: number;
65
+ y: number;
66
+ };
56
67
  }
57
68
  export declare class ArchivingSettings {
58
69
  mruTIDs: number[];
@@ -86,18 +97,6 @@ export declare class DcmtFormSettings {
86
97
  };
87
98
  };
88
99
  }
89
- export interface WgDraftCheckoutInfo {
90
- DID: string;
91
- TID: string;
92
- checkoutFolder: string;
93
- checkoutName: string;
94
- }
95
- export interface DcmtCheckoutInfo {
96
- DID: string;
97
- TID: string;
98
- checkoutFolder: string;
99
- checkoutName: string;
100
- }
101
100
  export declare class SDKUI_Globals {
102
101
  static userSettings: UserSettings;
103
102
  }
@@ -98,6 +98,15 @@ export class SearchSettings {
98
98
  this.mruTIDs = [];
99
99
  this.defaultTree = -1;
100
100
  this.previewThreshold = 500; // KB
101
+ this.floatingMenuBar = new FloatingMenuBarSettings();
102
+ }
103
+ }
104
+ export class FloatingMenuBarSettings {
105
+ constructor() {
106
+ this.orientation = 'horizontal';
107
+ this.pinnedItemIds = [];
108
+ this.itemIds = [];
109
+ this.position = { x: 10, y: globalThis.window?.innerHeight ? globalThis.window.innerHeight - 215 : 100 };
101
110
  }
102
111
  }
103
112
  export class ArchivingSettings {
@@ -33,6 +33,7 @@ export declare class SDKUI_Localizator {
33
33
  static get AllPriorities(): "Alle Prioritäten" | "All priorities" | "Todas las prioridades" | "Toutes les priorités" | "Todas as prioridades" | "Tutte le priorità";
34
34
  static get AllStates(): "Alle Staaten" | "All states" | "Todos los estados" | "Tous les états" | "Todos os estados" | "Tutti gli stati";
35
35
  static get Alphabetic(): "Alphabetisch" | "Alphabetic" | "Alfabético" | "Alphabétique" | "Alfabética" | "Alfabetico";
36
+ static get Anomalies(): "Anomalien" | "Anomalies" | "Anomalías" | "Anomalias" | "Anomalie";
36
37
  static get Answer(): "Antwort" | "Answer" | "Respuesta" | "Réponse" | "Resposta" | "Risposta";
37
38
  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\".";
38
39
  static get Application(): "Anwendung" | "Application" | "Aplicación" | "Aplicação" | "Applicazione";
@@ -88,7 +89,9 @@ export declare class SDKUI_Localizator {
88
89
  static get ChangePassword(): "Kennwort ändern" | "Change password" | "Cambiar la contraseña" | "Changer le mot de passe" | "Alterar a senha" | "Cambia password";
89
90
  static get CharactersRemaining(): "verbleibende Zeichen" | "characters remaining" | "caracteres restantes" | "caractères restants" | "caratteri rimanenti";
90
91
  static get CheckIn(): "Check in" | "Enregistrement";
92
+ static get CheckInElementConfirm(): string;
91
93
  static get CheckInOutSettingsNotice(): string;
94
+ static get CheckInSuccessMessage(): string;
92
95
  static get Checkmark(): "Häkchen" | "Checkmark" | "Marca de verificación" | "Coche" | "Marca de verificação" | "Spunta";
93
96
  static get CheckOut(): "Check out" | "Extraction";
94
97
  static get CheckoutInfo(): string;
@@ -130,6 +133,7 @@ export declare class SDKUI_Localizator {
130
133
  static get CreateContextualTask(): string;
131
134
  static get CreationTime(): "Erstellungsdatum" | "Creation Time" | "Fecha creación" | "Date de création" | "Data de criação" | "Data creazione";
132
135
  static get CultureID(): "Sprache" | "Language" | "Idioma" | "Lingue" | "Língua" | "Lingua";
136
+ static get Current(): "Aktuell" | "Current" | "Actual" | "Actuel" | "Atual" | "Corrente";
133
137
  static get CurrentUserExtract(): string;
134
138
  static get Cut(): "Ausschneiden" | "Cut" | "Cortar" | "Couper" | "Taglia";
135
139
  static get Date(): "Datum" | "Date" | "fecha" | "Data";
@@ -215,6 +219,7 @@ export declare class SDKUI_Localizator {
215
219
  static get EditorConfiguration(): string;
216
220
  static get ElectronicInvoice(): "Elektronische Rechnung" | "Electronic invoice" | "Factura electrónica" | "Facture électronique" | "Fatura eletrônica" | "Fattura elettronica";
217
221
  static get ElectronicOrder(): "Elektronische Bestellung" | "Electronic order" | "Orden electrónica" | "Commande électronique" | "Pedido eletrônico" | "Ordine elettronico";
222
+ static get ElementNameConventionError(): string;
218
223
  static get EmailIsNotValid(): "Dies ist keine gültige e-mail Adresse" | "This is not a valid email address" | "Esta no es una dirección de correo electrónico válida." | "Cette adresse email n'est pas valide" | "Este não é um endereço de e-mail válido" | "Questo non è un indirizzo e-mail valido";
219
224
  static get EndDateMatchesToday(): "Das Ablaufdatum entspricht dem heutigen Datum" | "The expiration date matches today's date" | "La fecha de vencimiento coincide con la fecha de hoy" | "La date d'expiration correspond à la date d'aujourd'hui" | "A data de expiração coincide com a data de hoje" | "La data di scadenza coincide con la data odierna";
220
225
  static get EndDateSetForTomorrow(): "Das Ablaufdatum ist für morgen festgelegt" | "The expiration date is set for tomorrow" | "La fecha de vencimiento está fijada para mañana" | "La date d'expiration est fixée pour demain" | "A data de expiração está marcada para amanhã" | "La data di scadenza è imminente (ovvero fissata per domani)";
@@ -235,6 +240,7 @@ export declare class SDKUI_Localizator {
235
240
  static get ExtractedFromOtherUser(): string;
236
241
  static get ExtractedOn(): "Ausgezogen am" | "Extracted on" | "Extraído el" | "Extrait le" | "Extraído em" | "Estratto il";
237
242
  static get EvaluateResult(): "Bewerten Sie das Ergebnis" | "Evaluate result" | "Valorar el resultado" | "Évalue les résultats" | "Avalia os resultados" | "Valuta il risultato";
243
+ static get Expected(): "Erwartet" | "Expected" | "Esperado" | "Attendu" | "Atteso";
238
244
  static get Expiration(): "Ablaufdatum" | "Expiration" | "Fecha de expiración" | "Date d'expiration" | "Data de expiração" | "Scadenza";
239
245
  static get ExpertMode(): "Expertenmodus" | "Expert mode" | "Modo experto" | "Mode expert" | "Modo especialista" | "Modalità esperto";
240
246
  static get Expiring(): "Ablaufend" | "Expiring" | "Por vencer" | "Expirant" | "Vencendo" | "In scadenza";
@@ -493,6 +499,7 @@ export declare class SDKUI_Localizator {
493
499
  static get Previous(): "Vorherige" | "Previous" | "Anterior" | "Précédent" | "Precedente";
494
500
  static get Priority(): string;
495
501
  static get PriorityLegend(): "Legende der Prioritäten" | "Priority Legend" | "Leyenda de prioridades" | "Légende des priorités" | "Lenda das prioridades" | "Legenda delle priorità";
502
+ static get ProceedAnyway(): "Dennoch fortfahren?" | "Proceed anyway?" | "¿Proceder de todos modos?" | "Procéder quand même ?" | "Prosseguir mesmo assim?" | "Procedere comunque?";
496
503
  static get ProcessedItems(): "Durchdachte Elemente" | "Processed items" | "Elementos elaborados" | "Items traités" | "Itens processados" | "Elementi elaborati";
497
504
  static get Properties(): "Eigenschaften" | "Properties" | "Propiedades" | "Propriétés" | "Propriedades" | "Proprietà";
498
505
  static get QueryClear(): "Query bereinigen" | "Clear query" | "Limpiar consulta" | "Efface query" | "Limpar query" | "Pulisci query";
@@ -585,6 +592,7 @@ export declare class SDKUI_Localizator {
585
592
  static get SharedDocuments(): "Gemeinsame Dokumente" | "Shared documents" | "Documentos compartidos" | "Documents partagés" | "Documentos compartilhados" | "Documenti condivisi";
586
593
  static get Shortcuts(): "Tastenkombinationen" | "Shortcuts" | "Atajos" | "Raccourcis" | "Atalhos" | "Scorciatoie";
587
594
  static get ShowAll(): "Alle anzeigen" | "Show all" | "Mostrar todo" | "Tout afficher" | "Mostrar tudo" | "Mostra tutti";
595
+ static get ShowColumnSelection(): string;
588
596
  static get ShowFloatingBar(): string;
589
597
  static get ShowLess(): "Weniger anzeigen" | "Show less" | "Mostrar menos" | "Afficher moins" | "Mostra meno";
590
598
  static get Show_CompleteName(): "Vollständigen Namen anzeigen" | "View full name" | "Mostrar nombre completo" | "Afficher le nom complet" | "Mostrar nome completo" | "Visualizza nome completo";
@@ -278,6 +278,16 @@ export class SDKUI_Localizator {
278
278
  default: return "Alfabetico";
279
279
  }
280
280
  }
281
+ static get Anomalies() {
282
+ switch (this._cultureID) {
283
+ case CultureIDs.De_DE: return "Anomalien";
284
+ case CultureIDs.En_US: return "Anomalies";
285
+ case CultureIDs.Es_ES: return "Anomalías";
286
+ case CultureIDs.Fr_FR: return "Anomalies";
287
+ case CultureIDs.Pt_PT: return "Anomalias";
288
+ default: return "Anomalie";
289
+ }
290
+ }
281
291
  static get Answer() {
282
292
  switch (this._cultureID) {
283
293
  case CultureIDs.De_DE: return "Antwort";
@@ -835,6 +845,22 @@ export class SDKUI_Localizator {
835
845
  default: return "Check in";
836
846
  }
837
847
  }
848
+ static get CheckInElementConfirm() {
849
+ switch (this._cultureID) {
850
+ case CultureIDs.De_DE:
851
+ return "Das Element '{{0}}' einchecken?";
852
+ case CultureIDs.En_US:
853
+ return "Check in the element '{{0}}'?";
854
+ case CultureIDs.Es_ES:
855
+ return "¿Realizar el check-in del elemento '{{0}}'?";
856
+ case CultureIDs.Fr_FR:
857
+ return "Effectuer le check-in de l’élément '{{0}}'?";
858
+ case CultureIDs.Pt_PT:
859
+ return "Efetuar o check-in do elemento '{{0}}'?";
860
+ default:
861
+ return "Eseguire il check-in dell’elemento '{{0}}'?";
862
+ }
863
+ }
838
864
  static get CheckInOutSettingsNotice() {
839
865
  switch (this._cultureID) {
840
866
  case CultureIDs.De_DE:
@@ -852,6 +878,22 @@ export class SDKUI_Localizator {
852
878
  return "Puoi modificare questa impostazione in “Ricerca → Check in/Check out” in qualsiasi momento.";
853
879
  }
854
880
  }
881
+ static get CheckInSuccessMessage() {
882
+ switch (this._cultureID) {
883
+ case CultureIDs.De_DE:
884
+ return "Check-in erfolgreich abgeschlossen! Löschen Sie die Datei aus dem Dateisystem.";
885
+ case CultureIDs.En_US:
886
+ return "Check-in completed successfully! Delete the document from the file system.";
887
+ case CultureIDs.Es_ES:
888
+ return "¡Check-in completado con éxito! Elimine el archivo del sistema de archivos.";
889
+ case CultureIDs.Fr_FR:
890
+ return "Check-in terminé avec succès ! Supprimez le fichier du système de fichiers.";
891
+ case CultureIDs.Pt_PT:
892
+ return "Check-in concluído com sucesso! Elimine o ficheiro do sistema de ficheiros.";
893
+ default:
894
+ return "Check-in completato con successo! Cancella il documento dal file system.";
895
+ }
896
+ }
855
897
  static get Checkmark() {
856
898
  switch (this._cultureID) {
857
899
  case CultureIDs.De_DE: return "Häkchen";
@@ -1274,6 +1316,16 @@ export class SDKUI_Localizator {
1274
1316
  default: return "Lingua";
1275
1317
  }
1276
1318
  }
1319
+ static get Current() {
1320
+ switch (this._cultureID) {
1321
+ case CultureIDs.De_DE: return "Aktuell";
1322
+ case CultureIDs.En_US: return "Current";
1323
+ case CultureIDs.Es_ES: return "Actual";
1324
+ case CultureIDs.Fr_FR: return "Actuel";
1325
+ case CultureIDs.Pt_PT: return "Atual";
1326
+ default: return "Corrente";
1327
+ }
1328
+ }
1277
1329
  static get CurrentUserExtract() {
1278
1330
  switch (this._cultureID) {
1279
1331
  case CultureIDs.De_DE: return "Auszug aus dem aktuellen Benutzer und änderbar";
@@ -2093,6 +2145,22 @@ export class SDKUI_Localizator {
2093
2145
  default: return "Ordine elettronico";
2094
2146
  }
2095
2147
  }
2148
+ static get ElementNameConventionError() {
2149
+ switch (this._cultureID) {
2150
+ case CultureIDs.De_DE:
2151
+ return "Der Name des Elements ist nicht konform";
2152
+ case CultureIDs.En_US:
2153
+ return "The element name does not comply";
2154
+ case CultureIDs.Es_ES:
2155
+ return "El nombre del elemento no es conforme";
2156
+ case CultureIDs.Fr_FR:
2157
+ return "Le nom de l’élément n’est pas conforme";
2158
+ case CultureIDs.Pt_PT:
2159
+ return "O nome do elemento não está conforme";
2160
+ default:
2161
+ return "Il nome dell’elemento non è conforme";
2162
+ }
2163
+ }
2096
2164
  static get EmailIsNotValid() {
2097
2165
  switch (this._cultureID) {
2098
2166
  case CultureIDs.De_DE: return "Dies ist keine gültige e-mail Adresse";
@@ -2299,6 +2367,16 @@ export class SDKUI_Localizator {
2299
2367
  default: return "Valuta il risultato";
2300
2368
  }
2301
2369
  }
2370
+ static get Expected() {
2371
+ switch (this._cultureID) {
2372
+ case CultureIDs.De_DE: return "Erwartet";
2373
+ case CultureIDs.En_US: return "Expected";
2374
+ case CultureIDs.Es_ES: return "Esperado";
2375
+ case CultureIDs.Fr_FR: return "Attendu";
2376
+ case CultureIDs.Pt_PT: return "Esperado";
2377
+ default: return "Atteso";
2378
+ }
2379
+ }
2302
2380
  static get Expiration() {
2303
2381
  switch (this._cultureID) {
2304
2382
  case CultureIDs.De_DE: return "Ablaufdatum";
@@ -4870,6 +4948,16 @@ export class SDKUI_Localizator {
4870
4948
  default: return "Legenda delle priorità";
4871
4949
  }
4872
4950
  }
4951
+ static get ProceedAnyway() {
4952
+ switch (this._cultureID) {
4953
+ case CultureIDs.De_DE: return "Dennoch fortfahren?";
4954
+ case CultureIDs.En_US: return "Proceed anyway?";
4955
+ case CultureIDs.Es_ES: return "¿Proceder de todos modos?";
4956
+ case CultureIDs.Fr_FR: return "Procéder quand même ?";
4957
+ case CultureIDs.Pt_PT: return "Prosseguir mesmo assim?";
4958
+ default: return "Procedere comunque?";
4959
+ }
4960
+ }
4873
4961
  static get ProcessedItems() {
4874
4962
  switch (this._cultureID) {
4875
4963
  case CultureIDs.De_DE: return "Durchdachte Elemente";
@@ -5798,6 +5886,16 @@ export class SDKUI_Localizator {
5798
5886
  default: return "Mostra tutti";
5799
5887
  }
5800
5888
  }
5889
+ static get ShowColumnSelection() {
5890
+ switch (this._cultureID) {
5891
+ case CultureIDs.De_DE: return "Spaltenauswahl anzeigen";
5892
+ case CultureIDs.En_US: return "Show column selection";
5893
+ case CultureIDs.Es_ES: return "Mostrar selección de columnas";
5894
+ case CultureIDs.Fr_FR: return "Afficher la sélection de colonnes";
5895
+ case CultureIDs.Pt_PT: return "Mostrar seleção de colunas";
5896
+ default: return "Mostra selezione colonne";
5897
+ }
5898
+ }
5801
5899
  static get ShowFloatingBar() {
5802
5900
  switch (this._cultureID) {
5803
5901
  case CultureIDs.De_DE: return "Floating-Leiste anzeigen";
@@ -0,0 +1,8 @@
1
+ interface TMPdfViewerProps {
2
+ pdfBlob: Blob;
3
+ title?: string;
4
+ isResizingActive?: boolean;
5
+ enableFitToWidth?: boolean;
6
+ }
7
+ declare const TMPdfViewer: (props: TMPdfViewerProps) => import("react/jsx-runtime").JSX.Element;
8
+ export default TMPdfViewer;