mirror of https://github.com/jgraph/drawio.git
28.2.9 release
This commit is contained in:
parent
5425584784
commit
a4dffbda2d
|
|
@ -1,4 +1,11 @@
|
|||
23-OCT-2025 28.2.8
|
||||
03-NOV-2025: 28.2.9
|
||||
|
||||
- Updates DOMPurify from 3.2.5 to 3.3.0
|
||||
- Adds handling of light-dark grid settings [jgraph/drawio#5285]
|
||||
- Fixes cursor state in freehand mode [jgraph/drawio#4936]
|
||||
- [conf forge] Changes to allow plantUml
|
||||
|
||||
23-OCT-2025: 28.2.8
|
||||
|
||||
- Hides inactive virtual bends for entity relations
|
||||
- Fixes preview button in smart template section
|
||||
|
|
|
|||
|
|
@ -15,7 +15,7 @@
|
|||
"mermaid": "11.12.0",
|
||||
"pako": "2.1.0",
|
||||
"crypto-js": "3.1.2",
|
||||
"dompurify": "3.2.5",
|
||||
"dompurify": "3.3.0",
|
||||
"spin.js": "2.0.0",
|
||||
"roughjs": "4.6.6",
|
||||
"mathjax": "3.2.2"
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
|
|
@ -3708,7 +3708,7 @@ App.prototype.openTemplateDialog = function(generatePrompt)
|
|||
|
||||
if (xml != null)
|
||||
{
|
||||
var insertPoint = this.editor.graph.getFreeInsertPoint();
|
||||
var insertPoint = this.editor.graph.getFreeInsertPoint(true);
|
||||
graph.setSelectionCells(this.importXml(xml,
|
||||
Math.max(insertPoint.x, 20),
|
||||
Math.max(insertPoint.y, 20),
|
||||
|
|
|
|||
|
|
@ -2513,6 +2513,9 @@ var NewDialog = function(editorUi, compact, showName, callback, createOnly, canc
|
|||
rightHighlightBorder = (rightHighlightBorder != null) ? rightHighlightBorder :
|
||||
'2px dashed light-dark(#29b6f2, #00a8ff)';
|
||||
templateFile = (templateFile != null) ? templateFile : EditorUi.templateFile;
|
||||
|
||||
// Handles click on insert while entering generate prompt
|
||||
var insertWasPressed = false;
|
||||
|
||||
var outer = document.createElement('div');
|
||||
outer.style.userSelect = 'none';
|
||||
|
|
@ -3176,58 +3179,82 @@ var NewDialog = function(editorUi, compact, showName, callback, createOnly, canc
|
|||
|
||||
function create()
|
||||
{
|
||||
if (templateExtUrl && openExtDocCallback != null)
|
||||
if (selectedElt == generateElt && templateXml == null &&
|
||||
generateButton != null && generateInput != null)
|
||||
{
|
||||
if (!showName)
|
||||
{
|
||||
editorUi.hideDialog();
|
||||
}
|
||||
|
||||
openExtDocCallback(templateExtUrl, templateInfoObj, nameInput.value);
|
||||
}
|
||||
else if (callback)
|
||||
{
|
||||
if (!showName)
|
||||
if (callback && editorUi.spinner.spin(document.body,
|
||||
mxResources.get('generate') + ' \''+
|
||||
generateInput.value + '\''))
|
||||
{
|
||||
insertWasPressed = true;
|
||||
editorUi.hideDialog();
|
||||
}
|
||||
|
||||
callback(templateXml, nameInput.value, templateRealUrl, templateLibs);
|
||||
generateButton.click();
|
||||
}
|
||||
else
|
||||
{
|
||||
var title = nameInput.value;
|
||||
|
||||
if (title != null && title.length > 0)
|
||||
if (insertWasPressed)
|
||||
{
|
||||
function doSave(mode, folderId, filename)
|
||||
{
|
||||
editorUi.createFile(filename, templateXml, (templateLibs != null &&
|
||||
templateLibs.length > 0) ? templateLibs : null, mode, function()
|
||||
{
|
||||
editorUi.hideDialog();
|
||||
}, null, folderId, null, (templateClibs != null &&
|
||||
templateClibs.length > 0) ? templateClibs : null);
|
||||
};
|
||||
editorUi.spinner.stop();
|
||||
}
|
||||
|
||||
if (editorUi.mode == App.MODE_GOOGLE || editorUi.mode == App.MODE_ONEDRIVE)
|
||||
if (templateExtUrl && openExtDocCallback != null)
|
||||
{
|
||||
if (!showName && !insertWasPressed)
|
||||
{
|
||||
var dlg = new SaveDialog(editorUi, title, mxUtils.bind(this, function(input, mode, folderId)
|
||||
{
|
||||
doSave(mode, folderId, input.value);
|
||||
}), null, null, null, null, editorUi.mode);
|
||||
|
||||
editorUi.showDialog(dlg.container, 420, 150, true, false);
|
||||
dlg.init();
|
||||
editorUi.hideDialog();
|
||||
}
|
||||
else
|
||||
|
||||
openExtDocCallback(templateExtUrl, templateInfoObj, nameInput.value);
|
||||
}
|
||||
else if (callback)
|
||||
{
|
||||
if (!showName && !insertWasPressed)
|
||||
{
|
||||
editorUi.pickFolder(editorUi.mode, function(folderId)
|
||||
editorUi.hideDialog();
|
||||
}
|
||||
|
||||
callback(templateXml, nameInput.value, templateRealUrl, templateLibs);
|
||||
}
|
||||
else
|
||||
{
|
||||
var title = nameInput.value;
|
||||
|
||||
if (title != null && title.length > 0)
|
||||
{
|
||||
function doSave(mode, folderId, filename)
|
||||
{
|
||||
doSave(editorUi.mode, folderId, title);
|
||||
}, editorUi.mode != App.MODE_GOOGLE ||
|
||||
editorUi.stateArg == null ||
|
||||
editorUi.stateArg.folderId == null);
|
||||
editorUi.createFile(filename, templateXml, (templateLibs != null &&
|
||||
templateLibs.length > 0) ? templateLibs : null, mode, function()
|
||||
{
|
||||
if (!insertWasPressed)
|
||||
{
|
||||
editorUi.hideDialog();
|
||||
}
|
||||
}, null, folderId, null, (templateClibs != null &&
|
||||
templateClibs.length > 0) ? templateClibs : null);
|
||||
};
|
||||
|
||||
if (editorUi.mode == App.MODE_GOOGLE || editorUi.mode == App.MODE_ONEDRIVE)
|
||||
{
|
||||
var dlg = new SaveDialog(editorUi, title, mxUtils.bind(this, function(input, mode, folderId)
|
||||
{
|
||||
doSave(mode, folderId, input.value);
|
||||
}), null, null, null, null, editorUi.mode);
|
||||
|
||||
editorUi.showDialog(dlg.container, 420, 150, true, false);
|
||||
dlg.init();
|
||||
}
|
||||
else
|
||||
{
|
||||
editorUi.pickFolder(editorUi.mode, function(folderId)
|
||||
{
|
||||
doSave(editorUi.mode, folderId, title);
|
||||
}, editorUi.mode != App.MODE_GOOGLE ||
|
||||
editorUi.stateArg == null ||
|
||||
editorUi.stateArg.folderId == null);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -3486,8 +3513,16 @@ var NewDialog = function(editorUi, compact, showName, callback, createOnly, canc
|
|||
magnifyGenerate.style.visibility = 'visible';
|
||||
};
|
||||
|
||||
var generatingDiagram = false;
|
||||
|
||||
function generateDiagram(cancel)
|
||||
{
|
||||
if (generatingDiagram)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
generatingDiagram = true;
|
||||
var desc = mxUtils.trim(generateInput.value);
|
||||
|
||||
if (!cancel && desc != '')
|
||||
|
|
@ -3499,6 +3534,8 @@ var NewDialog = function(editorUi, compact, showName, callback, createOnly, canc
|
|||
|
||||
editorUi.generateDiagram(desc, mxUtils.bind(this, function(xml, imageData)
|
||||
{
|
||||
generatingDiagram = false;
|
||||
|
||||
if (selectedElt == generateElt && generateForm.style.display == 'none')
|
||||
{
|
||||
generateBackground = 'url(' + 'data:image/svg+xml;base64,' +
|
||||
|
|
@ -3510,17 +3547,24 @@ var NewDialog = function(editorUi, compact, showName, callback, createOnly, canc
|
|||
lastAiTitle = desc;
|
||||
|
||||
stopInput();
|
||||
|
||||
if (insertWasPressed)
|
||||
{
|
||||
create();
|
||||
}
|
||||
}
|
||||
}), mxUtils.bind(this, function(e)
|
||||
{
|
||||
if (selectedElt == generateElt)
|
||||
{
|
||||
generateForm.style.display = '';
|
||||
generatePreview.style.display = 'none';
|
||||
editGenerate.style.visibility = 'hidden';
|
||||
magnifyGenerate.style.visibility = 'hidden';
|
||||
editorUi.handleError(e);
|
||||
}
|
||||
generatingDiagram = false;
|
||||
|
||||
if (selectedElt == generateElt)
|
||||
{
|
||||
generateForm.style.display = '';
|
||||
generatePreview.style.display = 'none';
|
||||
editGenerate.style.visibility = 'hidden';
|
||||
magnifyGenerate.style.visibility = 'hidden';
|
||||
editorUi.handleError(e);
|
||||
}
|
||||
}));
|
||||
}
|
||||
else if (lastAiTitle != null)
|
||||
|
|
|
|||
|
|
@ -6593,9 +6593,9 @@
|
|||
|
||||
var getInsertPoint = this.getInsertPoint;
|
||||
|
||||
this.getInsertPoint = function()
|
||||
this.getInsertPoint = function(ignoreMouseEvent)
|
||||
{
|
||||
if (mouseEvent != null)
|
||||
if (mouseEvent != null && !ignoreMouseEvent)
|
||||
{
|
||||
return this.getPointForEvent(mouseEvent);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -27,7 +27,8 @@
|
|||
*/
|
||||
EditorUi.enableLogging = urlParams['stealth'] != '1' && urlParams['lockdown'] != '1' &&
|
||||
(/.*\.draw\.io$/.test(window.location.hostname) ||
|
||||
/.*\.diagrams\.net$/.test(window.location.hostname)) &&
|
||||
/.*\.diagrams\.net$/.test(window.location.hostname) ||
|
||||
/.*\.cdn\.prod\.atlassian-dev\.net$/.test(window.location.hostname)) && // Forge app
|
||||
window.location.hostname != 'https://preprod.diagrams.net/' &&
|
||||
window.location.hostname != 'support.draw.io' &&
|
||||
window.location.hostname != 'test.draw.io';
|
||||
|
|
|
|||
|
|
@ -3705,7 +3705,14 @@
|
|||
|
||||
this.put('insertAdvanced', new Menu(mxUtils.bind(this, function(menu, parent)
|
||||
{
|
||||
this.addMenuItems(menu, ['fromText', 'plantUml', 'formatSql', 'csv'], parent);
|
||||
var insertMenuItems = ['fromText', 'plantUml', 'formatSql', 'csv'];
|
||||
|
||||
if (!EditorUi.enablePlantUml)
|
||||
{
|
||||
insertMenuItems.splice(1, 1);
|
||||
}
|
||||
|
||||
this.addMenuItems(menu, insertMenuItems, parent);
|
||||
|
||||
if (Editor.currentTheme == 'simple' || Editor.currentTheme == 'min')
|
||||
{
|
||||
|
|
|
|||
|
|
@ -75,7 +75,16 @@ var mxSettings =
|
|||
},
|
||||
getGridColor: function(darkMode)
|
||||
{
|
||||
return (darkMode) ? mxSettings.settings.darkGridColor : mxSettings.settings.gridColor;
|
||||
var result = (darkMode) ? mxSettings.settings.darkGridColor :
|
||||
mxSettings.settings.gridColor;
|
||||
|
||||
if (mxUtils.isLightDarkColor(result))
|
||||
{
|
||||
var ld = mxUtils.getLightDarkColor(result);
|
||||
result = (darkMode) ? ld.dark : ld.light;
|
||||
}
|
||||
|
||||
return result;
|
||||
},
|
||||
setGridColor: function(gridColor, darkMode)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -126,7 +126,16 @@ function mxFreehand(graph)
|
|||
graph.getRubberband().setEnabled(!isEnabled);
|
||||
graph.graphHandler.setSelectEnabled(!isEnabled);
|
||||
graph.graphHandler.setMoveEnabled(!isEnabled);
|
||||
graph.container.style.cursor = (isEnabled) ? 'crosshair' : '';
|
||||
|
||||
if (isEnabled)
|
||||
{
|
||||
graph.container.classList.add('geFreehandMode');
|
||||
}
|
||||
else
|
||||
{
|
||||
graph.container.classList.remove('geFreehandMode');
|
||||
}
|
||||
|
||||
graph.fireEvent(new mxEventObject('freehandStateChanged'));
|
||||
};
|
||||
|
||||
|
|
@ -351,20 +360,12 @@ function mxFreehand(graph)
|
|||
setEnabled(false);
|
||||
};
|
||||
|
||||
// Stops all interactions if freehand is enabled
|
||||
// Stops all shape interactions if freehand is enabled
|
||||
graph.addListener(mxEvent.FIRE_MOUSE_EVENT, mxUtils.bind(this, function(sender, evt)
|
||||
{
|
||||
var evtName = evt.getProperty('eventName');
|
||||
var me = evt.getProperty('event');
|
||||
|
||||
if (evtName == mxEvent.MOUSE_MOVE && enabled)
|
||||
if (enabled)
|
||||
{
|
||||
if (me.sourceState != null)
|
||||
{
|
||||
me.sourceState.setCursor('crosshair');
|
||||
}
|
||||
|
||||
me.consume();
|
||||
evt.getProperty('event').consume();
|
||||
}
|
||||
}));
|
||||
|
||||
|
|
|
|||
|
|
@ -1274,6 +1274,7 @@ EditorUi.prototype.findCommonProperties = function(cell, properties, addAll, sst
|
|||
state.shape.stencil.desc != null)
|
||||
{
|
||||
var stencil = state.shape.stencil
|
||||
var handledKeys = [];
|
||||
|
||||
var getStencilColors = mxUtils.bind(this, function(nodeName)
|
||||
{
|
||||
|
|
@ -1284,8 +1285,9 @@ EditorUi.prototype.findCommonProperties = function(cell, properties, addAll, sst
|
|||
{
|
||||
var name = nodes[i].getAttribute('color');
|
||||
|
||||
if (!mxUtils.isValidColor(name))
|
||||
if (!mxUtils.isValidColor(name) && !handledKeys[name])
|
||||
{
|
||||
handledKeys[name] = true;
|
||||
var label = nodes[i].getAttribute('name');
|
||||
label = (label != null) ? label :
|
||||
Editor.getLabelForStylename(name);
|
||||
|
|
@ -1303,9 +1305,11 @@ EditorUi.prototype.findCommonProperties = function(cell, properties, addAll, sst
|
|||
});
|
||||
|
||||
Array.prototype.push.apply(state.shape.customProperties,
|
||||
getStencilColors('fillcolor'))
|
||||
getStencilColors('fillcolor'));
|
||||
Array.prototype.push.apply(state.shape.customProperties,
|
||||
getStencilColors('strokecolor'))
|
||||
getStencilColors('strokecolor'));
|
||||
Array.prototype.push.apply(state.shape.customProperties,
|
||||
getStencilColors('fontcolor'));
|
||||
}
|
||||
|
||||
// Adds common vertex/edge properties
|
||||
|
|
|
|||
|
|
@ -11461,7 +11461,7 @@ if (typeof mxVertexHandler !== 'undefined')
|
|||
/**
|
||||
* Returns a point that specifies the location for inserting cells.
|
||||
*/
|
||||
Graph.prototype.getInsertPoint = function()
|
||||
Graph.prototype.getInsertPoint = function(ignoreMouseEvent)
|
||||
{
|
||||
var gs = this.getGridSize();
|
||||
var dx = this.container.scrollLeft / this.view.scale - this.view.translate.x;
|
||||
|
|
@ -11481,11 +11481,11 @@ if (typeof mxVertexHandler !== 'undefined')
|
|||
/**
|
||||
*
|
||||
*/
|
||||
Graph.prototype.getFreeInsertPoint = function()
|
||||
Graph.prototype.getFreeInsertPoint = function(ignoreMouseEvent)
|
||||
{
|
||||
var view = this.view;
|
||||
var bds = this.getGraphBounds();
|
||||
var pt = this.getInsertPoint();
|
||||
var pt = this.getInsertPoint(ignoreMouseEvent);
|
||||
|
||||
// Places at same x-coord and 2 grid sizes below existing graph
|
||||
var x = this.snap(Math.round(Math.max(pt.x, bds.x / view.scale - view.translate.x +
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
|
@ -1,4 +1,4 @@
|
|||
var mxClient={VERSION:"28.2.8",IS_IE:null!=navigator.userAgent&&0<=navigator.userAgent.indexOf("MSIE"),IS_IE11:null!=navigator.userAgent&&!!navigator.userAgent.match(/Trident\/7\./),IS_EDGE:null!=navigator.userAgent&&!!navigator.userAgent.match(/Edge\//),IS_EM:"spellcheck"in document.createElement("textarea")&&8==document.documentMode,VML_PREFIX:"v",OFFICE_PREFIX:"o",IS_NS:null!=navigator.userAgent&&0<=navigator.userAgent.indexOf("Mozilla/")&&0>navigator.userAgent.indexOf("MSIE")&&0>navigator.userAgent.indexOf("Edge/"),
|
||||
var mxClient={VERSION:"28.2.9",IS_IE:null!=navigator.userAgent&&0<=navigator.userAgent.indexOf("MSIE"),IS_IE11:null!=navigator.userAgent&&!!navigator.userAgent.match(/Trident\/7\./),IS_EDGE:null!=navigator.userAgent&&!!navigator.userAgent.match(/Edge\//),IS_EM:"spellcheck"in document.createElement("textarea")&&8==document.documentMode,VML_PREFIX:"v",OFFICE_PREFIX:"o",IS_NS:null!=navigator.userAgent&&0<=navigator.userAgent.indexOf("Mozilla/")&&0>navigator.userAgent.indexOf("MSIE")&&0>navigator.userAgent.indexOf("Edge/"),
|
||||
IS_OP:null!=navigator.userAgent&&(0<=navigator.userAgent.indexOf("Opera/")||0<=navigator.userAgent.indexOf("OPR/")),IS_OT:null!=navigator.userAgent&&0<=navigator.userAgent.indexOf("Presto/")&&0>navigator.userAgent.indexOf("Presto/2.4.")&&0>navigator.userAgent.indexOf("Presto/2.3.")&&0>navigator.userAgent.indexOf("Presto/2.2.")&&0>navigator.userAgent.indexOf("Presto/2.1.")&&0>navigator.userAgent.indexOf("Presto/2.0.")&&0>navigator.userAgent.indexOf("Presto/1."),IS_SF:/Apple Computer, Inc/.test(navigator.vendor),
|
||||
IS_ANDROID:0<=navigator.appVersion.indexOf("Android"),IS_IOS:/iP(hone|od|ad)/.test(navigator.platform)||navigator.userAgent.match(/Mac/)&&navigator.maxTouchPoints&&2<navigator.maxTouchPoints,IS_WEBVIEW:/((iPhone|iPod|iPad).*AppleWebKit(?!.*Version)|; wv)/i.test(navigator.userAgent),IS_GC:/Google Inc/.test(navigator.vendor),IS_CHROMEAPP:null!=window.chrome&&null!=chrome.app&&null!=chrome.app.runtime,IS_FF:-1<navigator.userAgent.toLowerCase().indexOf("firefox"),IS_MT:0<=navigator.userAgent.indexOf("Firefox/")&&
|
||||
0>navigator.userAgent.indexOf("Firefox/1.")&&0>navigator.userAgent.indexOf("Firefox/2.")||0<=navigator.userAgent.indexOf("Iceweasel/")&&0>navigator.userAgent.indexOf("Iceweasel/1.")&&0>navigator.userAgent.indexOf("Iceweasel/2.")||0<=navigator.userAgent.indexOf("SeaMonkey/")&&0>navigator.userAgent.indexOf("SeaMonkey/1.")||0<=navigator.userAgent.indexOf("Iceape/")&&0>navigator.userAgent.indexOf("Iceape/1."),IS_SVG:"MICROSOFT INTERNET EXPLORER"!=navigator.appName.toUpperCase(),NO_FO:!document.createElementNS||
|
||||
|
|
|
|||
|
|
@ -203,7 +203,7 @@ diamondThin=Diamond (thin)
|
|||
didYouKnow=Did you know...
|
||||
direction=Direction
|
||||
discard=Discard
|
||||
discardChangesAndReconnect=Discard Changes and Reconnect
|
||||
discardChangesAndReconnect=Был обнаружен черновик '{1}'. Загрузите черновик в редактор или сбросьте его, чтобы продолжить.
|
||||
googleDriveMissingClickHere=Google Drive missing? Click here!
|
||||
discardChanges=Discard Changes
|
||||
disconnected=Disconnected
|
||||
|
|
|
|||
|
|
@ -203,7 +203,7 @@ diamondThin=Diamond (thin)
|
|||
didYouKnow=Did you know...
|
||||
direction=Direction
|
||||
discard=Discard
|
||||
discardChangesAndReconnect=Discard Changes and Reconnect
|
||||
discardChangesAndReconnect=Был обнаружен черновик '{1}'. Загрузите черновик в редактор или сбросьте его, чтобы продолжить.
|
||||
googleDriveMissingClickHere=Google Drive missing? Click here!
|
||||
discardChanges=Discard Changes
|
||||
disconnected=Disconnected
|
||||
|
|
|
|||
|
|
@ -203,7 +203,7 @@ diamondThin=Diamond (thin)
|
|||
didYouKnow=Did you know...
|
||||
direction=Direction
|
||||
discard=Discard
|
||||
discardChangesAndReconnect=Discard Changes and Reconnect
|
||||
discardChangesAndReconnect=Был обнаружен черновик '{1}'. Загрузите черновик в редактор или сбросьте его, чтобы продолжить.
|
||||
googleDriveMissingClickHere=Google Drive missing? Click here!
|
||||
discardChanges=Discard Changes
|
||||
disconnected=Disconnected
|
||||
|
|
|
|||
|
|
@ -203,7 +203,7 @@ diamondThin=Diamond (thin)
|
|||
didYouKnow=Ĉu vi sciis...
|
||||
direction=Direction
|
||||
discard=Forĵeti
|
||||
discardChangesAndReconnect=Discard Changes and Reconnect
|
||||
discardChangesAndReconnect=Был обнаружен черновик '{1}'. Загрузите черновик в редактор или сбросьте его, чтобы продолжить.
|
||||
googleDriveMissingClickHere=Google Drive missing? Click here!
|
||||
discardChanges=Discard Changes
|
||||
disconnected=Disconnected
|
||||
|
|
|
|||
|
|
@ -40,7 +40,7 @@ allChangesSavedInDrive=Toutes les modifications ont été enregistrées dans Dri
|
|||
allowPopups=Autoriser les pop-ups pour ne pas voir cette boite de dialogue.
|
||||
allowRelativeUrl=Autoriser une URL relative
|
||||
alreadyConnected=Nœuds déjà connectés
|
||||
appearance=apparence
|
||||
appearance=Apparence
|
||||
apply=Appliquer
|
||||
archiMate21=ArchiMate 2.1
|
||||
arrange=Organiser
|
||||
|
|
|
|||
|
|
@ -203,7 +203,7 @@ diamondThin=Diamond (thin)
|
|||
didYouKnow=Did you know...
|
||||
direction=Direction
|
||||
discard=Discard
|
||||
discardChangesAndReconnect=Discard Changes and Reconnect
|
||||
discardChangesAndReconnect=Был обнаружен черновик '{1}'. Загрузите черновик в редактор или сбросьте его, чтобы продолжить.
|
||||
googleDriveMissingClickHere=Google Drive missing? Click here!
|
||||
discardChanges=Discard Changes
|
||||
disconnected=Disconnected
|
||||
|
|
|
|||
|
|
@ -203,7 +203,7 @@ diamondThin=Diamond (thin)
|
|||
didYouKnow=Did you know...
|
||||
direction=Direction
|
||||
discard=Discard
|
||||
discardChangesAndReconnect=Discard Changes and Reconnect
|
||||
discardChangesAndReconnect=Был обнаружен черновик '{1}'. Загрузите черновик в редактор или сбросьте его, чтобы продолжить.
|
||||
googleDriveMissingClickHere=Google Drive missing? Click here!
|
||||
discardChanges=Discard Changes
|
||||
disconnected=Disconnected
|
||||
|
|
|
|||
|
|
@ -203,7 +203,7 @@ diamondThin=Diamond (thin)
|
|||
didYouKnow=Did you know...
|
||||
direction=Direction
|
||||
discard=Discard
|
||||
discardChangesAndReconnect=Discard Changes and Reconnect
|
||||
discardChangesAndReconnect=Был обнаружен черновик '{1}'. Загрузите черновик в редактор или сбросьте его, чтобы продолжить.
|
||||
googleDriveMissingClickHere=Google Drive missing? Click here!
|
||||
discardChanges=Discard Changes
|
||||
disconnected=Disconnected
|
||||
|
|
|
|||
|
|
@ -203,7 +203,7 @@ diamondThin=Diamond (thin)
|
|||
didYouKnow=Did you know...
|
||||
direction=Direction
|
||||
discard=Discard
|
||||
discardChangesAndReconnect=Discard Changes and Reconnect
|
||||
discardChangesAndReconnect=Был обнаружен черновик '{1}'. Загрузите черновик в редактор или сбросьте его, чтобы продолжить.
|
||||
googleDriveMissingClickHere=Google Drive missing? Click here!
|
||||
discardChanges=Discard Changes
|
||||
disconnected=Disconnected
|
||||
|
|
|
|||
|
|
@ -203,7 +203,7 @@ diamondThin=Diamond (thin)
|
|||
didYouKnow=Did you know...
|
||||
direction=Direction
|
||||
discard=Discard
|
||||
discardChangesAndReconnect=Discard Changes and Reconnect
|
||||
discardChangesAndReconnect=Был обнаружен черновик '{1}'. Загрузите черновик в редактор или сбросьте его, чтобы продолжить.
|
||||
googleDriveMissingClickHere=Google Drive missing? Click here!
|
||||
discardChanges=Discard Changes
|
||||
disconnected=Disconnected
|
||||
|
|
|
|||
|
|
@ -203,7 +203,7 @@ diamondThin=Diamond (thin)
|
|||
didYouKnow=Did you know...
|
||||
direction=Direction
|
||||
discard=Discard
|
||||
discardChangesAndReconnect=Discard Changes and Reconnect
|
||||
discardChangesAndReconnect=Был обнаружен черновик '{1}'. Загрузите черновик в редактор или сбросьте его, чтобы продолжить.
|
||||
googleDriveMissingClickHere=Google Drive missing? Click here!
|
||||
discardChanges=Discard Changes
|
||||
disconnected=Disconnected
|
||||
|
|
|
|||
|
|
@ -203,7 +203,7 @@ diamondThin=Diamond (thin)
|
|||
didYouKnow=Did you know...
|
||||
direction=Direction
|
||||
discard=Discard
|
||||
discardChangesAndReconnect=Discard Changes and Reconnect
|
||||
discardChangesAndReconnect=Был обнаружен черновик '{1}'. Загрузите черновик в редактор или сбросьте его, чтобы продолжить.
|
||||
googleDriveMissingClickHere=Google Drive missing? Click here!
|
||||
discardChanges=Discard Changes
|
||||
disconnected=Disconnected
|
||||
|
|
|
|||
|
|
@ -34,7 +34,7 @@ angle=Угол
|
|||
animations=Анимации
|
||||
arc=Дуга
|
||||
areYouSure=Вы уверены?
|
||||
ensureDataSaved=Пожалуйста, перед закрытием убедитесь, что ваши данные сохранены.
|
||||
ensureDataSaved=Перед закрытием убедитесь пожалуйста, что ваши данные сохранены.
|
||||
allChangesSaved=Все изменения сохранены
|
||||
allChangesSavedInDrive=Все изменения сохранены на диске
|
||||
allowPopups=Разрешите всплывающие окна, чтобы убрать этот диалог.
|
||||
|
|
@ -67,7 +67,7 @@ backgroundColor=Цвет фона
|
|||
backgroundImage=Фоновое изображение
|
||||
basic=Базовые
|
||||
beta=бета
|
||||
blankDrawing=Новый документ
|
||||
blankDrawing=Пустой документ
|
||||
blankDiagram=Пустая диаграмма
|
||||
block=Блок
|
||||
blockquote=Цитата
|
||||
|
|
@ -77,7 +77,7 @@ bootstrap=Bootstrap
|
|||
border=Граница
|
||||
borderColor=Цвет границы
|
||||
borderWidth=Толщина границы
|
||||
bottom=Снизу
|
||||
bottom=Внизу
|
||||
bottomAlign=По нижнему краю
|
||||
bottomLeft=Внизу слева
|
||||
bottomRight=Внизу справа
|
||||
|
|
@ -109,11 +109,11 @@ compare=Сравнить
|
|||
compressed=Сжато
|
||||
commitMessage=Сообщение при коммите
|
||||
configLinkWarn=Эта ссылка настраивает draw.io. Нажмите «ОК» только, если вы доверяете тому, кто её вам дал!
|
||||
configLinkConfirm=Нажмите ОК, чтобы настроить и перезапустить draw.io.
|
||||
configLinkConfirm=Нажмите «ОК», чтобы настроить и перезапустить draw.io.
|
||||
container=Контейнер
|
||||
csv=CSV
|
||||
dark=Тёмная
|
||||
diagramLanguage=Язык Диаграммы
|
||||
diagramLanguage=Язык диаграммы
|
||||
diagramType=Тип диаграммы
|
||||
diagramXmlDesc=XML файл
|
||||
diagramHtmlDesc=HTML файл
|
||||
|
|
@ -121,13 +121,13 @@ diagramPngDesc=Редактируемое растровое изображен
|
|||
diagramSvgDesc=Редактируемое векторное изображение
|
||||
didYouMeanToExportToPdf=Вы хотите экспортировать в PDF?
|
||||
disabled=Отключено
|
||||
draftFound=Был обнаружен черновик '{1}'. Загрузите его в редактор или откажитесь, чтобы продолжить.
|
||||
draftFound=Был обнаружен черновик '{1}'. Загрузите черновик в редактор или сбросьте его, чтобы продолжить.
|
||||
draftRevisionMismatch=Существует другая версия этой диаграммы на общем черновике этой страницы. Отредактируйте диаграмму проекта, для работы с последней версией.
|
||||
selectDraft=Выберите черновик, чтобы продолжить редактирование:
|
||||
dragAndDropNotSupported=Перетаскивание изображений не поддерживается. Хотите импортировать изображение?
|
||||
dropboxCharsNotAllowed=Следующие символы не допускаются: \ / : ? * " |
|
||||
check=Проверить
|
||||
checksum=Проверочная сумма
|
||||
checksum=Контрольная сумма
|
||||
circle=Круговая структура
|
||||
cisco=Cisco
|
||||
classic=Классический
|
||||
|
|
@ -161,7 +161,7 @@ copiedToClipboard=Скопировано в буфер обмена
|
|||
copy=Копировать
|
||||
copyConnect=Копировать при соединении
|
||||
copyCreated=Копия файла была создана.
|
||||
copyData=Скопировать информацию
|
||||
copyData=Копировать информацию
|
||||
copyOf=Копия {1}
|
||||
copyOfDrawing=Копия документа
|
||||
copySize=Копировать размер
|
||||
|
|
@ -197,23 +197,23 @@ diagramLocked=Диаграмма была заблокирована для пр
|
|||
diagramLockedBySince=Диаграмма заблокирована {1} {2} назад
|
||||
diagramName=Название диаграммы
|
||||
diagramIsPublic=Диаграмма является публичной
|
||||
diagramIsNotPublic=Диаграмма не является публичной
|
||||
diagramIsNotPublic=Диаграмма является не публичной
|
||||
diamond=Алмаз
|
||||
diamondThin=Алмаз (тонкий)
|
||||
didYouKnow=Знаете ли вы…
|
||||
direction=Направление
|
||||
discard=Отказаться
|
||||
discardChangesAndReconnect=Отказаться от изменений и подключиться заново
|
||||
discard=Сбросить
|
||||
discardChangesAndReconnect=Сбросить изменения и подключиться заново
|
||||
googleDriveMissingClickHere=Нет Google Drive? Нажмите сюда!
|
||||
discardChanges=Отказаться от изменений
|
||||
discardChanges=Сбросить изменения
|
||||
disconnected=Отсоединено
|
||||
distribute=Распределить
|
||||
done=Готово
|
||||
doNotShowAgain=Не показывать снова
|
||||
dotted=Точки
|
||||
doubleClickOrientation=Дважды нажмите, чтобы изменить ориентацию
|
||||
doubleClickTooltip=Дважды нажмите, чтобы вставить текст
|
||||
doubleClickChangeProperty=Дважды нажмите, чтобы изменить название свойства
|
||||
doubleClickOrientation=Нажмите дважды, чтобы изменить ориентацию
|
||||
doubleClickTooltip=Нажмите дважды, чтобы вставить текст
|
||||
doubleClickChangeProperty=Нажмите дважды, чтобы изменить название свойства
|
||||
download=Загрузить
|
||||
downloadDesktop=Загрузить Desktop
|
||||
downloadAs=Загрузить как
|
||||
|
|
@ -221,13 +221,13 @@ clickHereToSave=Нажмите здесь, чтобы сохранить.
|
|||
dpi=DPI
|
||||
draftDiscarded=Черновик удалён
|
||||
draftSaved=Черновик сохранён
|
||||
dragElementsHere=Перетащите элементы из диаграммы сюда
|
||||
dragElementsHere=Перетащите сюда элементы из диаграммы
|
||||
dragImagesHere=Перетащите сюда изображения или вставьте на них ссылки
|
||||
dragUrlsHere=Перетащите сюда ссылки
|
||||
draw.io=draw.io
|
||||
drawing=Рисунок{1}
|
||||
drawingEmpty=Документ пуст
|
||||
drawingTooLarge=Документ слишком большой
|
||||
drawingEmpty=Рисунок пуст
|
||||
drawingTooLarge=Рисунок слишком большой
|
||||
drawioForWork=Draw.io для GSuite
|
||||
dropbox=Dropbox
|
||||
duplicate=Дублировать
|
||||
|
|
@ -252,12 +252,12 @@ googleImages=Изображения Google
|
|||
imageSearch=Поиск изображений
|
||||
eip=EIP
|
||||
embed=Встроить
|
||||
embedFonts=Вставить шрифты
|
||||
embedImages=Встроить изображения
|
||||
embedFonts=Встроенные шрифты
|
||||
embedImages=Встроенные изображения
|
||||
mainEmbedNotice=Вставьте это на страницу
|
||||
electrical=Электрические схемы
|
||||
ellipse=Эллипс
|
||||
embedNotice=Вставьте один раз в конец страницы
|
||||
embedNotice=Вставьте это один раз в конец страницы
|
||||
enterGroup=Введите группу
|
||||
enterName=Введите название
|
||||
enterPropertyName=Введите название свойства
|
||||
|
|
@ -277,7 +277,7 @@ errorSavingFileForbidden=Ошибка сохранения файла. Не хв
|
|||
errorSavingFileNameConflict=Невозможно сохранить диаграмму. Страница уже содержит файл с названием '{1}'.
|
||||
errorSavingFileNotFound=Ошибка при сохранении файла. Файл не найден.
|
||||
errorSavingFileReadOnlyMode=Невозможно сохранить диаграмму пока вы находитесь в режиме «только для чтения».
|
||||
errorSavingFileSessionTimeout=Ваша сессия истекла. Для сохранения, пожалуйста, <a target='_blank' href='{1}'>{2}</a> и вернитесь на эту вкладку.
|
||||
errorSavingFileSessionTimeout=Ваша сессия истекла. Для сохранения, пожалуйста, <a target='_blank' href='{1}'>{2}</a> и вернитесь на эту вкладку, чтобы попробовать сохранить снова.
|
||||
errorSendingFeedback=Ошибка при отправке сообщения для обратной связи.
|
||||
errorUpdatingPreview=Ошибка при обновлении предварительного просмотра.
|
||||
exit=Выйти
|
||||
|
|
@ -315,7 +315,7 @@ fileOpenLocation=Как вы хотите открыть эти файл(ы)?
|
|||
filetypeHtml=Расширение «.html» — сохранить файл в формате HTML с перенаправлением на адрес в «облачном» хранилище
|
||||
filetypePng=Расширение «.png» — сохранить файл в формате PNG, внедрив в него встроенные данные
|
||||
filetypeSvg=Расширение «.svg» — сохранить файл в формате SVG, внедрив в него встроенные данные
|
||||
fileWillBeSavedInAppFolder={1} будет сохранён в папке программы.
|
||||
fileWillBeSavedInAppFolder={1} будет сохранён в папке приложения.
|
||||
fill=Заливка
|
||||
fillColor=Цвет заливки
|
||||
filterCards=Фильтровать карточки
|
||||
|
|
@ -394,19 +394,19 @@ hateApp=Терпеть не могу draw.io
|
|||
heading=Заголовок
|
||||
height=Высота
|
||||
help=Помощь
|
||||
helpTranslate=Помогите нам перевести draw.io
|
||||
helpTranslate=Помогите перевести draw.io
|
||||
hide=Скрыть
|
||||
hideIt=Скрыть {1}
|
||||
hidden=Скрытый
|
||||
highContrast=Высокая контрастность
|
||||
home=На верхний уровень
|
||||
home=Домой
|
||||
horizontal=Горизонтально
|
||||
horizontalFlow=Горизонтальный поток
|
||||
horizontalTree=Горизонтальное дерево
|
||||
howTranslate=Насколько хорошо приложение переведено на ваш язык?
|
||||
howTranslate=Насколько хорошо приложение переведено на русский язык?
|
||||
html=HTML
|
||||
htmlText=HTML текст
|
||||
id=Идентификатор
|
||||
id=Идентификатор (ID)
|
||||
iframe=IFrame
|
||||
ignore=Игнорировать
|
||||
image=Изображение
|
||||
|
|
|
|||
|
|
@ -203,7 +203,7 @@ diamondThin=Diamond (thin)
|
|||
didYouKnow=Did you know...
|
||||
direction=Direction
|
||||
discard=Discard
|
||||
discardChangesAndReconnect=Discard Changes and Reconnect
|
||||
discardChangesAndReconnect=Был обнаружен черновик '{1}'. Загрузите черновик в редактор или сбросьте его, чтобы продолжить.
|
||||
googleDriveMissingClickHere=Google Drive missing? Click here!
|
||||
discardChanges=Discard Changes
|
||||
disconnected=Disconnected
|
||||
|
|
|
|||
|
|
@ -203,7 +203,7 @@ diamondThin=Diamond (thin)
|
|||
didYouKnow=Did you know...
|
||||
direction=Direction
|
||||
discard=Discard
|
||||
discardChangesAndReconnect=Discard Changes and Reconnect
|
||||
discardChangesAndReconnect=Был обнаружен черновик '{1}'. Загрузите черновик в редактор или сбросьте его, чтобы продолжить.
|
||||
googleDriveMissingClickHere=Google Drive missing? Click here!
|
||||
discardChanges=Discard Changes
|
||||
disconnected=Disconnected
|
||||
|
|
|
|||
|
|
@ -203,7 +203,7 @@ diamondThin=Diamond (thin)
|
|||
didYouKnow=Did you know...
|
||||
direction=Direction
|
||||
discard=Discard
|
||||
discardChangesAndReconnect=Discard Changes and Reconnect
|
||||
discardChangesAndReconnect=Был обнаружен черновик '{1}'. Загрузите черновик в редактор или сбросьте его, чтобы продолжить.
|
||||
googleDriveMissingClickHere=Google Drive missing? Click here!
|
||||
discardChanges=Discard Changes
|
||||
disconnected=Disconnected
|
||||
|
|
|
|||
|
|
@ -203,7 +203,7 @@ diamondThin=Diamond (thin)
|
|||
didYouKnow=Did you know...
|
||||
direction=Direction
|
||||
discard=Discard
|
||||
discardChangesAndReconnect=Discard Changes and Reconnect
|
||||
discardChangesAndReconnect=Был обнаружен черновик '{1}'. Загрузите черновик в редактор или сбросьте его, чтобы продолжить.
|
||||
googleDriveMissingClickHere=Google Drive missing? Click here!
|
||||
discardChanges=Discard Changes
|
||||
disconnected=Disconnected
|
||||
|
|
|
|||
|
|
@ -203,7 +203,7 @@ diamondThin=Diamond (thin)
|
|||
didYouKnow=Did you know...
|
||||
direction=Direction
|
||||
discard=Discard
|
||||
discardChangesAndReconnect=Discard Changes and Reconnect
|
||||
discardChangesAndReconnect=Был обнаружен черновик '{1}'. Загрузите черновик в редактор или сбросьте его, чтобы продолжить.
|
||||
googleDriveMissingClickHere=Google Drive missing? Click here!
|
||||
discardChanges=Discard Changes
|
||||
disconnected=Disconnected
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
|
@ -313,6 +313,11 @@ div[id*="dgeMermaidOutput-"] {
|
|||
position: relative;
|
||||
}
|
||||
|
||||
.geFreehandMode,
|
||||
.geFreehandMode * {
|
||||
cursor: crosshair !important;
|
||||
}
|
||||
|
||||
.geDarkMode .geButton,
|
||||
.geDarkMode .geHelpIcon:not(.geTitle *),
|
||||
.geDarkMode .mxPopupMenuItem>div:not(:has(img)),
|
||||
|
|
|
|||
Loading…
Reference in New Issue