@topconsultnpm/sdkui-react 6.19.0-dev2.1 → 6.19.0-dev2.3
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/features/workflow/diagram/WFDiagram.js +20 -6
- package/lib/components/settings/SettingsAppearance.js +8 -0
- package/lib/helper/SDKUI_Globals.d.ts +2 -0
- package/lib/helper/SDKUI_Globals.js +9 -1
- package/lib/helper/SDKUI_Localizator.d.ts +2 -0
- package/lib/helper/SDKUI_Localizator.js +20 -0
- package/package.json +2 -2
|
@@ -981,11 +981,20 @@ const WFDiagram = ({ xmlDiagramString, currentSetID, allowEdit = true, onDiagram
|
|
|
981
981
|
const handleRestore = useCallback(() => {
|
|
982
982
|
if (isReadOnly)
|
|
983
983
|
return;
|
|
984
|
-
if (initialDiagramRef.current)
|
|
985
|
-
|
|
986
|
-
|
|
987
|
-
|
|
988
|
-
|
|
984
|
+
if (!initialDiagramRef.current)
|
|
985
|
+
return;
|
|
986
|
+
TMMessageBoxManager.show({
|
|
987
|
+
title: SDKUI_Localizator.WorkflowRestoreDiagram,
|
|
988
|
+
message: SDKUI_Localizator.WorkflowRestoreDiagramMessage,
|
|
989
|
+
buttons: [ButtonNames.YES, ButtonNames.NO],
|
|
990
|
+
onButtonClick: async (e) => {
|
|
991
|
+
if (e === ButtonNames.YES) {
|
|
992
|
+
setWfDiagram(initialDiagramRef.current);
|
|
993
|
+
setWfDiagramHistory([initialDiagramRef.current]);
|
|
994
|
+
setHistoryIndex(0);
|
|
995
|
+
}
|
|
996
|
+
}
|
|
997
|
+
});
|
|
989
998
|
}, [isReadOnly]);
|
|
990
999
|
const autoAdjustDiagram = (diagram) => {
|
|
991
1000
|
if (!diagram)
|
|
@@ -1646,7 +1655,12 @@ const WFDiagram = ({ xmlDiagramString, currentSetID, allowEdit = true, onDiagram
|
|
|
1646
1655
|
isUndoingRedoing.current = false;
|
|
1647
1656
|
}
|
|
1648
1657
|
}, [wfDiagram]);
|
|
1649
|
-
const
|
|
1658
|
+
const handleCanvasDoubleClick = useCallback((event) => {
|
|
1659
|
+
if (isReadOnly) {
|
|
1660
|
+
toggleReadOnlyMode();
|
|
1661
|
+
}
|
|
1662
|
+
}, [isReadOnly, toggleReadOnlyMode]);
|
|
1663
|
+
const diagramContent = (_jsxs(CanvasContainer, { onDoubleClick: handleCanvasDoubleClick, children: [_jsx("input", { ref: fileInputRef, type: "file", accept: ".xml" // Filtra per file XML
|
|
1650
1664
|
, onChange: handleFileChange, style: { display: 'none' } }), _jsxs(ToolbarContainer, { "$isCollapsed": isToolbarCollapsed, "$isFloating": isToolbarFloating, "$isToolboxVisible": isToolboxVisible, "$isReadOnly": isReadOnly, children: [allowEdit && _jsx(ButtonGroup, { "$isFloating": isToolbarFloating, children: _jsxs("button", { onClick: toggleReadOnlyMode, title: isReadOnly ? SDKUI_Localizator.Design : SDKUI_Localizator.ReadOnly, children: [isReadOnly ? _jsx(IconPencil, {}) : _jsx(IconLock, {}), !isToolbarCollapsed && _jsx("span", { children: isReadOnly ? SDKUI_Localizator.Design : SDKUI_Localizator.ReadOnly })] }) }), allowEdit && _jsxs(ButtonGroup, { "$isFloating": isToolbarFloating, children: [!isReadOnly && _jsxs("button", { onClick: handleToggleToolboxVisibility, title: SDKUI_Localizator.ShowToolbox, children: [_jsx(IconFlowChart, {}), !isToolbarCollapsed && _jsx("span", { children: SDKUI_Localizator.ShowToolboxToggle })] }), _jsxs("button", { onClick: toggleFullScreenMode, title: SDKUI_Localizator.ShowFullScreen, children: [isFullScreen ? _jsx(IconWindowMinimize, {}) : _jsx(IconWindowMaximize, {}), !isToolbarCollapsed && _jsx("span", { children: SDKUI_Localizator.ShowFullScreen })] })] }), _jsxs(ButtonGroup, { "$isFloating": isToolbarFloating, children: [_jsxs("button", { onClick: handleZoomIn, title: SDKUI_Localizator.ZoomIn, children: [_jsx(IconZoomIn, {}), !isToolbarCollapsed && _jsx("span", { children: SDKUI_Localizator.ZoomIn })] }), _jsxs("button", { onClick: handleZoomOut, title: SDKUI_Localizator.ZoomOut, children: [_jsx(IconZoomOut, {}), !isToolbarCollapsed && _jsx("span", { children: SDKUI_Localizator.ZoomOut })] }), _jsx(ZoomLevelText, { "$isFloating": isToolbarFloating, "$isCollapsed": isToolbarCollapsed, children: formattedZoomLevel })] }), !isReadOnly && _jsxs(ButtonGroup, { "$isFloating": isToolbarFloating, children: [_jsxs("button", { onClick: handleUndo, disabled: historyIndex === 0, title: SDKUI_Localizator.Undo, children: [_jsx(IconUndo, {}), " ", !isToolbarCollapsed && _jsx("span", { children: SDKUI_Localizator.Undo })] }), _jsxs("button", { onClick: handleRedo, disabled: historyIndex === wfDiagramHistory.length - 1, title: SDKUI_Localizator.Redo, children: [_jsx(IconUndo, { style: { transform: 'scaleX(-1)' } }), " ", !isToolbarCollapsed && _jsx("span", { children: SDKUI_Localizator.Redo })] }), _jsxs("button", { onClick: handleRestore, title: SDKUI_Localizator.Restore, children: [_jsx(IconRestore, {}), " ", !isToolbarCollapsed && _jsx("span", { children: SDKUI_Localizator.Restore })] }), _jsxs("button", { onClick: handleNew, title: SDKUI_Localizator.DiagramNew, disabled: isReadOnly, children: [_jsx(IconNew, {}), " ", !isToolbarCollapsed && _jsx("span", { children: SDKUI_Localizator.DiagramNew })] }), _jsxs("button", { onClick: handleExportDiagram, disabled: isReadOnly || !wfDiagram, title: SDKUI_Localizator.Export, children: [_jsx(IconExport, {}), _jsx("span", { children: SDKUI_Localizator.Export })] }), _jsxs("button", { onClick: handleImportDiagramClick, disabled: isReadOnly, title: SDKUI_Localizator.Import, children: [_jsx(IconImport, {}), _jsx("span", { children: SDKUI_Localizator.Import })] })] }), !isReadOnly && _jsx(ButtonGroup, { "$isFloating": isToolbarFloating, children: _jsxs("button", { onClick: handleAutoAdjust, title: SDKUI_Localizator.AutoAdjust, children: [_jsx(IconAdjust, {}), " ", !isToolbarCollapsed && _jsx("span", { children: SDKUI_Localizator.AutoAdjust })] }) }), !isReadOnly && _jsxs(ButtonGroup, { "$isFloating": isToolbarFloating, children: [_jsxs("button", { onClick: handleCopy, disabled: selectedItems.size === 0, title: SDKUI_Localizator.Copy, children: [_jsx(IconCopy, {}), " ", !isToolbarCollapsed && _jsx("span", { children: SDKUI_Localizator.Copy })] }), _jsxs("button", { onClick: handleCut, disabled: selectedItems.size === 0, title: SDKUI_Localizator.Cut, children: [_jsx(IconCut, {}), " ", !isToolbarCollapsed && _jsx("span", { children: SDKUI_Localizator.Cut })] }), _jsxs("button", { onClick: handlePaste, disabled: copiedItems.length === 0 && copiedConnections.length === 0, title: SDKUI_Localizator.Paste, children: [_jsx(IconPaste, {}), " ", !isToolbarCollapsed && _jsx("span", { children: SDKUI_Localizator.Paste })] })] }), allowEdit && _jsxs("button", { onClick: handleToggleToolbarMode, title: isToolbarFloating ? SDKUI_Localizator.ToolbarDock : SDKUI_Localizator.ToolbarFloat, children: [isToolbarFloating ? _jsx(IconPin, {}) : _jsx(IconUnpin, {}), !isToolbarCollapsed && !isToolbarFloating && _jsx("span", { children: SDKUI_Localizator.ToggleMode })] }), !isToolbarFloating && _jsx(ToolbarToggle, { onClick: () => setIsToolbarCollapsed(!isToolbarCollapsed), title: isToolbarCollapsed ? SDKUI_Localizator.ToolbarExpand : SDKUI_Localizator.ToolbarCollapse, children: isToolbarCollapsed ? _jsx(IconChevronRight, {}) : _jsx(IconCloseOutline, {}) })] }), !isReadOnly && (_jsx(ToolboxContainer, { "$isVisible": isToolboxVisible, children: isToolboxVisible && availableItemTypes.map(type => (_jsxs(ToolboxItem, { draggable: true, onDragStart: (e) => handleToolboxDragStart(e, type), onDragEnd: handleToolboxDragEnd, children: [_jsx(ToolboxIconWrapper, { children: _jsx(DiagramItemSvgContent, { itemType: type, width: 38, height: 38, isToolboxPreview: true }) }), _jsx("span", { children: LocalizeDiagramItemType(type) })] }, type))) })), _jsx(SvgScrollContainer, { children: isLoading ?
|
|
1651
1665
|
(_jsxs(StyledLoadingContainer, { children: [_jsx(StyledSpinner, {}), _jsx("span", { children: `${'Caricamento diagramma'}...` })] })) : wfDiagram ? (_jsx(StyledSvg, { ref: svgRef, tabIndex: 0, onKeyDownCapture: handleKeyDown, onMouseMove: handleMouseMove, onMouseUp: handleMouseUp, onMouseDown: handleMouseDown, onDrop: handleDropOnCanvas, onDragOver: handleDragOver, width: svgWidth, height: svgHeight, children: _jsxs(ScalableGroup, { "$scale": zoomLevel, "$translateX": translateX, "$translateY": translateY, children: [wfDiagram?.DiagramItems.map(item => (_jsx(DiagramItemComponent, { wf: wfDiagram?.Info, readOnly: isReadOnly, item: item, isSelected: selectedItems.has(item.ID), isCurrent: item.ID === currentSetID, onClick: handleDiagramItemClick, onDrag: handleDrag, onDragEnd: handleDragEnd, onConnectorMouseDown: handleConnectorMouseDown, onConnectorMouseUp: handleConnectorMouseUp, onDimensionsChange: handleItemDimensionsChange, onDoubleClick: handleDoubleClickItem }, item.ID))), calculatedConnections.map(connection => {
|
|
1652
1666
|
const sourceItem = wfDiagram?.DiagramItems.find(item => item.ID === connection.Source.ParentDiagramItem.ID);
|
|
@@ -18,6 +18,10 @@ const fontSizes = [
|
|
|
18
18
|
{ value: "19px", display: "19px" },
|
|
19
19
|
{ value: "20px", display: "20px" }
|
|
20
20
|
];
|
|
21
|
+
const fontFamilies = [
|
|
22
|
+
{ value: "Inter", display: "Inter" },
|
|
23
|
+
{ value: "Roboto", display: "Roboto" }
|
|
24
|
+
];
|
|
21
25
|
const SettingsAppearance = ({ landingPagesOptions, permissions = { canArchive: true, canSearch: true, dossiersLicense: true, wgGroupLicense: true, workFlowLicense: true } }) => {
|
|
22
26
|
const [, setForceUpdate] = useState(0); // Dummy state to force re-renders
|
|
23
27
|
const triggerUIUpdate = () => setForceUpdate((prev) => prev + 1); // Increment dummy state to re-render
|
|
@@ -47,6 +51,10 @@ const SettingsAppearance = ({ landingPagesOptions, permissions = { canArchive: t
|
|
|
47
51
|
let newpx = e.target.value;
|
|
48
52
|
SDKUI_Globals.userSettings.themeSettings.fontSize = newpx;
|
|
49
53
|
triggerUIUpdate();
|
|
54
|
+
} }), _jsx(TMDropDown, { label: 'Family', dataSource: fontFamilies, width: '230px', value: SDKUI_Globals.userSettings.themeSettings.fontFamily, onValueChanged: (e) => {
|
|
55
|
+
let newFamily = e.target.value;
|
|
56
|
+
SDKUI_Globals.userSettings.themeSettings.fontFamily = newFamily;
|
|
57
|
+
triggerUIUpdate();
|
|
50
58
|
} }), _jsx("p", { style: { fontSize: '1rem', fontWeight: 'bold', marginTop: '10px', marginBottom: '5px' }, children: SDKUI_Localizator.Grids }), _jsx(TMCheckBox, { label: SDKUI_Localizator.ShowRowSeparatingLines, value: SDKUI_Globals.userSettings.themeSettings.gridSettings.showRowLines, onValueChanged: (newValue) => {
|
|
51
59
|
SDKUI_Globals.userSettings.themeSettings.gridSettings.showRowLines = newValue;
|
|
52
60
|
triggerUIUpdate();
|
|
@@ -32,6 +32,7 @@ export declare class DataGridSettings {
|
|
|
32
32
|
}
|
|
33
33
|
export declare class ThemeSettings {
|
|
34
34
|
fontSize: string;
|
|
35
|
+
fontFamily: string;
|
|
35
36
|
gridSettings: DataGridSettings;
|
|
36
37
|
constructor(skipCssUpdate?: boolean);
|
|
37
38
|
/**
|
|
@@ -40,6 +41,7 @@ export declare class ThemeSettings {
|
|
|
40
41
|
*/
|
|
41
42
|
toJSON(): {
|
|
42
43
|
fontSize: string;
|
|
44
|
+
fontFamily: string;
|
|
43
45
|
gridSettings: DataGridSettings;
|
|
44
46
|
};
|
|
45
47
|
}
|
|
@@ -36,8 +36,9 @@ export class UserSettings {
|
|
|
36
36
|
// Ensure userID and archiveID are set
|
|
37
37
|
settings.userID = userID;
|
|
38
38
|
settings.archiveID = archiveID;
|
|
39
|
-
// Update the CSS
|
|
39
|
+
// Update the CSS variables for font size and font family
|
|
40
40
|
document.documentElement.style.setProperty('--base-font-size', settings.themeSettings.fontSize);
|
|
41
|
+
document.documentElement.style.setProperty('--base-font-family', settings.themeSettings.fontFamily);
|
|
41
42
|
// Wrap the settings object in a Proxy to intercept property updates
|
|
42
43
|
const proxiedSettings = createProxy(settings, UserSettings.SaveSettings);
|
|
43
44
|
// Automatically set the global userSettings
|
|
@@ -68,10 +69,12 @@ export class DataGridSettings {
|
|
|
68
69
|
export class ThemeSettings {
|
|
69
70
|
constructor(skipCssUpdate = false) {
|
|
70
71
|
this.fontSize = FontSize.defaultFontSizeInPixel;
|
|
72
|
+
this.fontFamily = 'Inter';
|
|
71
73
|
this.gridSettings = new DataGridSettings();
|
|
72
74
|
// Automatically update the CSS variable for font size
|
|
73
75
|
if (!skipCssUpdate) {
|
|
74
76
|
document.documentElement.style.setProperty('--base-font-size', this.fontSize);
|
|
77
|
+
document.documentElement.style.setProperty('--base-font-family', this.fontFamily);
|
|
75
78
|
}
|
|
76
79
|
}
|
|
77
80
|
/**
|
|
@@ -81,6 +84,7 @@ export class ThemeSettings {
|
|
|
81
84
|
toJSON() {
|
|
82
85
|
return {
|
|
83
86
|
fontSize: this.fontSize,
|
|
87
|
+
fontFamily: this.fontFamily,
|
|
84
88
|
gridSettings: this.gridSettings,
|
|
85
89
|
};
|
|
86
90
|
}
|
|
@@ -148,6 +152,10 @@ function createProxy(obj, saveCallback, rootObj) {
|
|
|
148
152
|
if (prop === 'fontSize' && root instanceof UserSettings) {
|
|
149
153
|
document.documentElement.style.setProperty('--base-font-size', value);
|
|
150
154
|
}
|
|
155
|
+
// Handle specific property (fontFamily) updates
|
|
156
|
+
if (prop === 'fontFamily' && root instanceof UserSettings) {
|
|
157
|
+
document.documentElement.style.setProperty('--base-font-family', value);
|
|
158
|
+
}
|
|
151
159
|
// Handle specific property (invoiceRetrieveFormat, orderRetrieveFormat) updates
|
|
152
160
|
if ((prop === 'invoiceRetrieveFormat' || prop === 'orderRetrieveFormat') && root instanceof UserSettings) {
|
|
153
161
|
clearDcmtsFileCache();
|
|
@@ -654,6 +654,8 @@ export declare class SDKUI_Localizator {
|
|
|
654
654
|
static get WorkflowAppType(): "Anwendungsart" | "Application type" | "Tipo de aplicación" | "Type d'application" | "Tipo de aplicação" | "Tipo applicazione";
|
|
655
655
|
static get WorkflowConnectionEdit(): "Verbindung bearbeiten" | "Edit Connection" | "Editar conexión" | "Modifier la connexion" | "Editar ligação" | "Modifica Connessione";
|
|
656
656
|
static get WorkflowDiagramConnectionInvalidNodes(): "Ungültige Verbindung: Quell- oder Zielknoten nicht gefunden." | "Invalid connection: source or sink node not found." | "Conexión no válida: nodo origen o destino no encontrado." | "Connexion invalide : nœud source ou destination introuvable." | "Conexão inválida: nó de origem ou destino não encontrado." | "Connessione non valida: nodo sorgente o destinazione non trovato.";
|
|
657
|
+
static get WorkflowRestoreDiagram(): "Diagramm wiederherstellen" | "Restore diagram" | "Restaurar diagrama" | "Restaurer le diagramme" | "Ripristina diagramma";
|
|
658
|
+
static get WorkflowRestoreDiagramMessage(): "Möchten Sie das ursprüngliche Diagramm wiederherstellen? Alle nicht gespeicherten Änderungen gehen verloren." | "Are you sure you want to restore the initial diagram? All unsaved changes will be lost." | "¿Está seguro de que desea restaurar el diagrama inicial? Se perderán todos los cambios no guardados." | "Êtes-vous sûr de vouloir restaurer le diagramme initial ? Toutes les modifications non enregistrées seront perdues." | "Tem certeza de que deseja restaurar o diagrama inicial? Todas as alterações não salvas serão perdidas." | "Sei sicuro di voler ripristinare il diagramma iniziale? Tutte le modifiche non salvate andranno perse.";
|
|
657
659
|
static get WorkflowDiagramCannotConnectToStart(): "Non können Sie an einen 'Start'-Knoten verbinden." | "You cannot connect to a 'Start' node." | "No puede conectar a un nodo 'Start'." | "Vous ne pouvez pas connecter vers un nœud 'Start'." | "Não pode ligar a um nó 'Start'." | "Non puoi connettere a un nodo 'Start'.";
|
|
658
660
|
static get WorkflowDiagramCannotConnectFromEnd(): "Sie können nicht von einem 'End'-Knoten verbinden." | "You cannot connect from an 'End' node." | "No puede conectar desde un nodo 'End'." | "Vous ne pouvez pas connecter depuis un nœud 'End'." | "Não pode ligar a partir de um nó 'End'." | "Non puoi connettere da un nodo 'End'.";
|
|
659
661
|
static get WorkflowDiagramConnectionSelf(): "La connessione {0} non può connettere un nodo a se stesso." | "The connection {0} cannot connect a node to itself." | "La conexión {0} no puede conectar un nodo consigo mismo." | "La connexion {0} ne peut pas connecter un nœud à lui-même." | "A conexão {0} não pode ligar um nó a si mesmo.";
|
|
@@ -6475,6 +6475,26 @@ export class SDKUI_Localizator {
|
|
|
6475
6475
|
default: return "Connessione non valida: nodo sorgente o destinazione non trovato.";
|
|
6476
6476
|
}
|
|
6477
6477
|
}
|
|
6478
|
+
static get WorkflowRestoreDiagram() {
|
|
6479
|
+
switch (this._cultureID) {
|
|
6480
|
+
case CultureIDs.De_DE: return "Diagramm wiederherstellen";
|
|
6481
|
+
case CultureIDs.En_US: return "Restore diagram";
|
|
6482
|
+
case CultureIDs.Es_ES: return "Restaurar diagrama";
|
|
6483
|
+
case CultureIDs.Fr_FR: return "Restaurer le diagramme";
|
|
6484
|
+
case CultureIDs.Pt_PT: return "Restaurar diagrama";
|
|
6485
|
+
default: return "Ripristina diagramma";
|
|
6486
|
+
}
|
|
6487
|
+
}
|
|
6488
|
+
static get WorkflowRestoreDiagramMessage() {
|
|
6489
|
+
switch (this._cultureID) {
|
|
6490
|
+
case CultureIDs.De_DE: return "Möchten Sie das ursprüngliche Diagramm wiederherstellen? Alle nicht gespeicherten Änderungen gehen verloren.";
|
|
6491
|
+
case CultureIDs.En_US: return "Are you sure you want to restore the initial diagram? All unsaved changes will be lost.";
|
|
6492
|
+
case CultureIDs.Es_ES: return "¿Está seguro de que desea restaurar el diagrama inicial? Se perderán todos los cambios no guardados.";
|
|
6493
|
+
case CultureIDs.Fr_FR: return "Êtes-vous sûr de vouloir restaurer le diagramme initial ? Toutes les modifications non enregistrées seront perdues.";
|
|
6494
|
+
case CultureIDs.Pt_PT: return "Tem certeza de que deseja restaurar o diagrama inicial? Todas as alterações não salvas serão perdidas.";
|
|
6495
|
+
default: return "Sei sicuro di voler ripristinare il diagramma iniziale? Tutte le modifiche non salvate andranno perse.";
|
|
6496
|
+
}
|
|
6497
|
+
}
|
|
6478
6498
|
static get WorkflowDiagramCannotConnectToStart() {
|
|
6479
6499
|
switch (this._cultureID) {
|
|
6480
6500
|
case CultureIDs.De_DE: return "Non können Sie an einen 'Start'-Knoten verbinden.";
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@topconsultnpm/sdkui-react",
|
|
3
|
-
"version": "6.19.0-dev2.
|
|
3
|
+
"version": "6.19.0-dev2.3",
|
|
4
4
|
"description": "",
|
|
5
5
|
"scripts": {
|
|
6
6
|
"test": "echo \"Error: no test specified\" && exit 1",
|
|
@@ -39,7 +39,7 @@
|
|
|
39
39
|
"lib"
|
|
40
40
|
],
|
|
41
41
|
"dependencies": {
|
|
42
|
-
"@topconsultnpm/sdk-ts": "6.19.0-dev2.
|
|
42
|
+
"@topconsultnpm/sdk-ts": "6.19.0-dev2.2",
|
|
43
43
|
"buffer": "^6.0.3",
|
|
44
44
|
"devextreme": "25.1.4",
|
|
45
45
|
"devextreme-react": "25.1.4",
|