@topconsultnpm/sdkui-react-beta 6.16.81 → 6.16.83
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.
|
@@ -45,7 +45,7 @@ const DiagramItemSvgContent = ({ itemType, width, height, isToolboxPreview = fal
|
|
|
45
45
|
svgContent = (_jsx("svg", { x: svgCenterX - ICON_SIZE / 2, y: svgCenterY - ICON_SIZE / 2, width: ICON_SIZE, height: ICON_SIZE, viewBox: "0 0 24 24", fill: "orange", children: _jsx("path", { d: "M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-6h2v6zm0-8h-2V7h2v2z" }) }));
|
|
46
46
|
}
|
|
47
47
|
else { // Altrimenti, mostra l'immagine personalizzata
|
|
48
|
-
svgContent = (_jsx("foreignObject", { x: (width - ICON_SIZE) / 2, y: (height - ICON_SIZE) / 2, width: ICON_SIZE, height: ICON_SIZE, children: _jsx("div", { style: {
|
|
48
|
+
svgContent = (_jsx("foreignObject", { x: (width - ICON_SIZE) / 2, y: (height - ICON_SIZE) / 2, width: ICON_SIZE, height: ICON_SIZE, children: _jsx("div", { onDragStart: (e) => e.preventDefault(), style: {
|
|
49
49
|
display: 'flex',
|
|
50
50
|
alignItems: 'center',
|
|
51
51
|
justifyContent: 'center',
|
|
@@ -2,7 +2,7 @@ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-run
|
|
|
2
2
|
import { useState, useEffect, useCallback, useRef, useMemo } from 'react';
|
|
3
3
|
import { DiagramItemTypes, ArrowSymbol } from './interfaces';
|
|
4
4
|
import { parseWfDiagramXml, serializeWfDiagramToXml } from './xmlParser';
|
|
5
|
-
import styled, { keyframes } from 'styled-components';
|
|
5
|
+
import styled, { css, keyframes } from 'styled-components';
|
|
6
6
|
import { CultureIDs, SearchEngine, WFAppTypes, WorkItemStatus } from "@topconsultnpm/sdk-ts-beta";
|
|
7
7
|
import ConnectionComponent from './ConnectionComponent';
|
|
8
8
|
import DiagramItemComponent from './DiagramItemComponent';
|
|
@@ -82,13 +82,17 @@ const CanvasContainer = styled.div `
|
|
|
82
82
|
`;
|
|
83
83
|
const pulse = keyframes `
|
|
84
84
|
0% {
|
|
85
|
-
|
|
85
|
+
transform: scale(1.0);
|
|
86
|
+
/* 💡 NUOVO: Ombra bianca/chiara per massimo contrasto contro il blu */
|
|
87
|
+
box-shadow: 0 0 0 0px rgba(255, 255, 255, 0.9);
|
|
86
88
|
}
|
|
87
|
-
|
|
88
|
-
|
|
89
|
+
50% {
|
|
90
|
+
transform: scale(1.3); /* Aumentato a 1.3 per maggiore impatto visivo */
|
|
91
|
+
box-shadow: 0 0 0 12px rgba(255, 255, 255, 0); /* Aumentato lo spread a 12px */
|
|
89
92
|
}
|
|
90
93
|
100% {
|
|
91
|
-
|
|
94
|
+
transform: scale(1.0);
|
|
95
|
+
box-shadow: 0 0 0 0px rgba(255, 255, 255, 0);
|
|
92
96
|
}
|
|
93
97
|
`;
|
|
94
98
|
const ToolbarContainer = styled.div `
|
|
@@ -119,8 +123,6 @@ const ToolbarContainer = styled.div `
|
|
|
119
123
|
overflow-y: auto;
|
|
120
124
|
|
|
121
125
|
button {
|
|
122
|
-
|
|
123
|
-
|
|
124
126
|
background: none;
|
|
125
127
|
border: none;
|
|
126
128
|
cursor: pointer;
|
|
@@ -129,8 +131,28 @@ const ToolbarContainer = styled.div `
|
|
|
129
131
|
align-items: center;
|
|
130
132
|
justify-content: ${props => props.$isCollapsed || props.$isFloating ? 'center' : 'flex-start'}; // Centra icone in entrambe le modalità
|
|
131
133
|
white-space: nowrap;
|
|
132
|
-
|
|
133
|
-
|
|
134
|
+
|
|
135
|
+
position: relative;
|
|
136
|
+
overflow: visible;
|
|
137
|
+
transition: background-color 0.3s; /* Aggiunto transform per l'animazione */
|
|
138
|
+
&[title="Progettazione"] {
|
|
139
|
+
${props => props.$isReadOnly && css `
|
|
140
|
+
svg {
|
|
141
|
+
/* Applicazione animazione */
|
|
142
|
+
animation: ${pulse} 2s infinite;
|
|
143
|
+
|
|
144
|
+
/* Assicura che l'animazione sia sopra */
|
|
145
|
+
z-index: 2;
|
|
146
|
+
|
|
147
|
+
/* FIX: box-shadow e transform necessitano di spazio visibile */
|
|
148
|
+
overflow: visible; /* Assicurati che l'SVG non tagli l'ombra */
|
|
149
|
+
position: relative; /* Necessario per z-index in alcuni contesti */
|
|
150
|
+
|
|
151
|
+
/* Assicura una transizione base per trasformazione */
|
|
152
|
+
transition: transform 0.2s;
|
|
153
|
+
}
|
|
154
|
+
`}
|
|
155
|
+
}
|
|
134
156
|
|
|
135
157
|
svg {
|
|
136
158
|
color: white;
|
|
@@ -595,7 +595,14 @@ const TMLoginForm = (props) => {
|
|
|
595
595
|
}, [SDK_Globals.appModule]);
|
|
596
596
|
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
597
|
_jsxs(StyledStepContainer, { 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 &&
|
|
598
|
-
_jsxs(StyledStepContainer, { "$windowHeight": windowHeight, style: { marginTop: windowHeight === WindowHeight.SMALL ? '0' : '20px' }, children: [_jsxs(StyledSummaryContainer, { style: {
|
|
598
|
+
_jsxs(StyledStepContainer, { "$windowHeight": windowHeight, style: { marginTop: windowHeight === WindowHeight.SMALL ? '0' : '20px' }, children: [_jsxs(StyledSummaryContainer, { style: {
|
|
599
|
+
position: 'absolute',
|
|
600
|
+
top: getTopOffset(windowHeight, isMobile, isTablet),
|
|
601
|
+
left: '50%',
|
|
602
|
+
transform: 'translateX(-50%)',
|
|
603
|
+
minWidth: 'fit-content',
|
|
604
|
+
whiteSpace: 'nowrap'
|
|
605
|
+
}, children: [_jsxs(StyledDescription, { children: [_jsx(TMTooltip, { content: SDKUI_Localizator.Endpoint, children: _jsx(IconAccessPoint, { color: TMColors.primary, fontSize: 16 }) }), _jsx("p", { children: endpoint?.Description })] }), _jsxs(StyledDescription, { children: [_jsx(TMTooltip, { content: SDKUI_Localizator.ArchiveID, children: _jsx(IconArchiveDoc, { color: TMColors.primary, fontSize: 16 }) }), _jsx("p", { children: dcmtArchive?.description })] })] }), _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 &&
|
|
599
606
|
_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 &&
|
|
600
607
|
_jsx(RapidAccessContainer, { isSaveEnable: saveLoginEnable, name: saveLoginName, nameValidationItems: fieldValidations('rapidAccessName'), onEnableSaveChange: () => setSaveLoginEnable(!saveLoginEnable), onNameChange: (name) => setSaveLoginName(name) })] }), loginStep === 3 &&
|
|
601
608
|
_jsxs(StyledStepThreeContainer, { "$isMobile": isMobile, children: [_jsx(OTPReader, { isMobile: isMobile, digits: otpCode, onChange: handleDigitChange, onFullChange: handleFullChange, text: _jsxs("div", { children: [" ", LOGINLocalizator.EnterOtpInstructions, " "] }), header: '', additionalButtons: [
|
|
@@ -698,7 +705,15 @@ const StyledForgetPassword = styled.div ` position: absolute; bottom: ${props =>
|
|
|
698
705
|
const StyledBackButton = styled.div ` position: absolute; top: 20px; left: 20px; `;
|
|
699
706
|
const StyledLanguageChooser = styled.button ` border: none; border-radius: 50px; background-color: transparent; cursor: pointer; `;
|
|
700
707
|
const StyledLangChooser = styled.img ` cursor: pointer; border: 3px solid white; border-radius: 50px; `;
|
|
701
|
-
const StyledSummaryContainer = styled.div `
|
|
708
|
+
const StyledSummaryContainer = styled.div `
|
|
709
|
+
display: flex;
|
|
710
|
+
align-items: center;
|
|
711
|
+
gap: 10px;
|
|
712
|
+
-ms-flex-align: center;
|
|
713
|
+
-ms-flex-pack: start;
|
|
714
|
+
box-sizing: border-box;
|
|
715
|
+
white-space: nowrap;
|
|
716
|
+
`;
|
|
702
717
|
const StyledCredentialContainer = styled.div ` width: '100%'; display: flex; flex-direction: ${props => getFlexDirection(props.$isMobile, props.$authMode)}; gap: 10px; `;
|
|
703
718
|
const StyledCredentialWrapper = styled.div ` width: 100%; display: flex; flex-direction: column; gap: 10px; `;
|
|
704
719
|
const StyledToolbarContainer = styled.div ` display: flex; gap: 10px; align-items: center; position: absolute; top: 20px; right: 20px; `;
|