From 636273370bd95c72d5850309a44f0ddd3f963180 Mon Sep 17 00:00:00 2001 From: Gaudenz Alder Date: Tue, 29 May 2018 18:56:09 +0200 Subject: [PATCH] 8.6.9 release Former-commit-id: dd3ab4e4d482b9f3fdd354469481c8b5434cc6ea --- ChangeLog | 7 + VERSION | 2 +- etc/mxgraph/mxClient.js | 8 +- src/main/webapp/cache.manifest | 4 +- src/main/webapp/connect/confluence/admin.js | 4 +- .../webapp/connect/confluence/connect.json | 2 +- .../connect/confluence/connectUtils-1-4-8.js | 64 +- .../connect/confluence/macroEditor.html | 11 +- .../connect/confluence/viewer-1-4-8.html | 22 +- src/main/webapp/images/facebook.png | Bin 1054 -> 845 bytes src/main/webapp/images/favicon-16x16.png | Bin 892 -> 362 bytes src/main/webapp/images/favicon-32x32.png | Bin 1258 -> 531 bytes src/main/webapp/images/tweet.png | Bin 511 -> 457 bytes src/main/webapp/js/app.min.js | 1245 +++++---- src/main/webapp/js/atlas-viewer.min.js | 1057 ++++---- src/main/webapp/js/atlas.min.js | 2288 ++++++++--------- src/main/webapp/js/diagramly/App.js | 231 +- src/main/webapp/js/diagramly/Editor.js | 22 +- src/main/webapp/js/diagramly/EditorUi.js | 40 +- src/main/webapp/js/diagramly/Embed.js | 13 +- src/main/webapp/js/diagramly/Menus.js | 463 ++-- src/main/webapp/js/diagramly/Minimal.js | 24 +- src/main/webapp/js/diagramly/Pages.js | 19 +- .../js/diagramly/sidebar/Sidebar-WebIcons.js | 14 +- src/main/webapp/js/diagramly/vsdx/importer.js | 75 +- src/main/webapp/js/embed-static.min.js | 53 +- src/main/webapp/js/embed.dev.js | 13 +- src/main/webapp/js/embed.min.js | 41 +- src/main/webapp/js/extensions.min.js | 57 +- src/main/webapp/js/mxgraph/Actions.js | 4 +- src/main/webapp/js/mxgraph/Editor.js | 5 + src/main/webapp/js/mxgraph/EditorUi.js | 5 +- src/main/webapp/js/mxgraph/Graph.js | 2 +- src/main/webapp/js/mxgraph/Menus.js | 15 +- src/main/webapp/js/reader.min.js | 12 +- src/main/webapp/js/stencils.min.js | 4 +- src/main/webapp/js/viewer.min.js | 1057 ++++---- src/main/webapp/mxgraph/css/common.css | 3 +- src/main/webapp/plugins/cConf-1-4-8.js | 63 +- src/main/webapp/stencils/webicons.xml | 94 +- src/main/webapp/stencils/weblogos.xml | 171 +- 41 files changed, 3732 insertions(+), 3482 deletions(-) diff --git a/ChangeLog b/ChangeLog index a6dd806c..000d0383 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +29-MAY-2018: 8.6.9 + +- Adds enableCustomLibraries switch +- Fixes math rendering timing bug +- Uses mxGraph 3.9.6 beta 1 +- Uses MathJax 2.7.4 + 24-MAY-2018: 8.6.8 - Fixes math typesetting in PDF export diff --git a/VERSION b/VERSION index 96e02c50..3e11df10 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -8.6.8 \ No newline at end of file +8.6.9 \ No newline at end of file diff --git a/etc/mxgraph/mxClient.js b/etc/mxgraph/mxClient.js index b475d879..6b1be671 100644 --- a/etc/mxgraph/mxClient.js +++ b/etc/mxgraph/mxClient.js @@ -1,4 +1,4 @@ -var mxClient={VERSION:"3.9.5",IS_IE:0<=navigator.userAgent.indexOf("MSIE"),IS_IE6:0<=navigator.userAgent.indexOf("MSIE 6"),IS_IE11:!!navigator.userAgent.match(/Trident\/7\./),IS_EDGE:!!navigator.userAgent.match(/Edge\//),IS_QUIRKS:0<=navigator.userAgent.indexOf("MSIE")&&(null==document.documentMode||5==document.documentMode),IS_EM:"spellcheck"in document.createElement("textarea")&&8==document.documentMode,VML_PREFIX:"v",OFFICE_PREFIX:"o",IS_NS:0<=navigator.userAgent.indexOf("Mozilla/")&&0>navigator.userAgent.indexOf("MSIE")&& +var mxClient={VERSION:"3.9.6",IS_IE:0<=navigator.userAgent.indexOf("MSIE"),IS_IE6:0<=navigator.userAgent.indexOf("MSIE 6"),IS_IE11:!!navigator.userAgent.match(/Trident\/7\./),IS_EDGE:!!navigator.userAgent.match(/Edge\//),IS_QUIRKS:0<=navigator.userAgent.indexOf("MSIE")&&(null==document.documentMode||5==document.documentMode),IS_EM:"spellcheck"in document.createElement("textarea")&&8==document.documentMode,VML_PREFIX:"v",OFFICE_PREFIX:"o",IS_NS:0<=navigator.userAgent.indexOf("Mozilla/")&&0>navigator.userAgent.indexOf("MSIE")&& 0>navigator.userAgent.indexOf("Edge/"),IS_OP:0<=navigator.userAgent.indexOf("Opera/")||0<=navigator.userAgent.indexOf("OPR/"),IS_OT: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:0<=navigator.userAgent.indexOf("AppleWebKit/")&& 0>navigator.userAgent.indexOf("Chrome/")&&0>navigator.userAgent.indexOf("Edge/"),IS_IOS:navigator.userAgent.match(/(iPad|iPhone|iPod)/g)?!0:!1,IS_GC:0<=navigator.userAgent.indexOf("Chrome/")&&0>navigator.userAgent.indexOf("Edge/"),IS_CHROMEAPP:null!=window.chrome&&null!=chrome.app&&null!=chrome.app.runtime,IS_FF:0<=navigator.userAgent.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:0<=navigator.userAgent.indexOf("Firefox/")||0<=navigator.userAgent.indexOf("Iceweasel/")||0<=navigator.userAgent.indexOf("Seamonkey/")||0<=navigator.userAgent.indexOf("Iceape/")||0<=navigator.userAgent.indexOf("Galeon/")|| @@ -426,9 +426,9 @@ mxShape.prototype.updateHtmlColors=function(a){var b=this.stroke;null!=b&&b!=mxC mxUtils.addTransparentBackgroundFilter(a):this.setTransparentBackgroundImage(a)}; mxShape.prototype.updateHtmlBounds=function(a){var b=9<=document.documentMode?0:Math.ceil(this.strokewidth*this.scale);a.style.borderWidth=Math.max(1,b)+"px";a.style.overflow="hidden";a.style.left=Math.round(this.bounds.x-b/2)+"px";a.style.top=Math.round(this.bounds.y-b/2)+"px";"CSS1Compat"==document.compatMode&&(b=-b);a.style.width=Math.round(Math.max(0,this.bounds.width+b))+"px";a.style.height=Math.round(Math.max(0,this.bounds.height+b))+"px"}; mxShape.prototype.destroyCanvas=function(a){if(a instanceof mxSvgCanvas2D){for(var b in a.gradients){var c=a.gradients[b];null!=c&&(c.mxRefCount=(c.mxRefCount||0)+1)}this.releaseSvgGradients(this.oldGradients);this.oldGradients=a.gradients}}; -mxShape.prototype.paint=function(a){var b=this.scale,c=this.bounds.x/b,d=this.bounds.y/b,e=this.bounds.width/b,f=this.bounds.height/b;if(this.isPaintBoundsInverted())var g=(e-f)/2,c=c+g,d=d-g,g=e,e=f,f=g;this.updateTransform(a,c,d,e,f);this.configureCanvas(a,c,d,e,f);g=null;if(null==this.stencil&&null==this.points&&this.shapePointerEvents||null!=this.stencil&&this.stencilPointerEvents){var k=this.createBoundingBox();this.dialect==mxConstants.DIALECT_SVG?(g=this.createTransparentSvgRectangle(k.x,k.y, -k.width,k.height),this.node.appendChild(g)):(k=a.createRect("rect",k.x/b,k.y/b,k.width/b,k.height/b),k.appendChild(a.createTransparentFill()),k.stroked="false",a.root.appendChild(k))}if(null!=this.stencil)this.stencil.drawShape(a,this,c,d,e,f);else if(a.setStrokeWidth(this.strokewidth),null!=this.points){c=[];for(d=0;dGliffy diagram "'+ AC.htmlEntities(attName) +'" imported successfully.')); @@ -403,7 +403,7 @@ var DrawIoDiagramsIndexer = function(logDiv) function addNewCustomContent() { - AC.saveCustomContent(spaceKey, pageId, pageType, attName, revision, null, null, + AC.saveCustomContent(spaceKey, pageId, pageType, attName, attName, revision, null, null, function(responseText) { logDiv.append($('
Diagram "'+ AC.htmlEntities(attName) +'" indexed successfully.
')); diff --git a/src/main/webapp/connect/confluence/connect.json b/src/main/webapp/connect/confluence/connect.json index 2751c51d..153bc1a6 100644 --- a/src/main/webapp/connect/confluence/connect.json +++ b/src/main/webapp/connect/confluence/connect.json @@ -76,7 +76,7 @@ "i18n": "drawioMacro", "value": "Draw.io Diagram" }, - "url": "/connect/confluence/viewer-1-4-8.html?ceoId=${page.id}&diagramName=${diagramName}&revision=${revision}&width=${width}&height=${height}&tbstyle=${tbstyle}&lbox=${lbox}&zoom=${zoom}&links=${links}&owningPageId=${pageId}", + "url": "/connect/confluence/viewer-1-4-8.html?ceoId=${page.id}&diagramName=${diagramName}&revision=${revision}&width=${width}&height=${height}&tbstyle=${tbstyle}&lbox=${lbox}&zoom=${zoom}&links=${links}&owningPageId=${pageId}&displayName=${diagramDisplayName}", "width": "100%", "description": { diff --git a/src/main/webapp/connect/confluence/connectUtils-1-4-8.js b/src/main/webapp/connect/confluence/connectUtils-1-4-8.js index e5cb043b..cc9128a3 100644 --- a/src/main/webapp/connect/confluence/connectUtils-1-4-8.js +++ b/src/main/webapp/connect/confluence/connectUtils-1-4-8.js @@ -431,6 +431,8 @@ AC.init = function(baseUrl, location, pageId, editor, diagramName, initialXml, d var user = AC.getUrlParam('user_id', true); var draftExists = false; + var diagramDisplayName = macroData != null? (macroData.diagramDisplayName || diagramName) : diagramName; + AP.require(['messages', 'confluence', 'request'], function(messages, confluence, request) { var newPage = location.indexOf('createpage.action') > -1 ? true : false; @@ -613,7 +615,7 @@ AC.init = function(baseUrl, location, pageId, editor, diagramName, initialXml, d if (initialXml != '') { editor.contentWindow.postMessage(JSON.stringify({action: 'load', - autosave: 1, xml: initialXml, title: diagramName, + autosave: 1, xml: initialXml, title: diagramDisplayName, macroData: macroData}), '*'); } @@ -621,7 +623,7 @@ AC.init = function(baseUrl, location, pageId, editor, diagramName, initialXml, d { // Keeps ignore option even for existing files editor.contentWindow.postMessage(JSON.stringify({action: 'draft', xml: draftXml, - name: diagramName, discardKey: 'discardChanges', ignore: true}), '*'); + name: diagramDisplayName, discardKey: 'discardChanges', ignore: true}), '*'); } else if (initialXml == '') { @@ -654,7 +656,7 @@ AC.init = function(baseUrl, location, pageId, editor, diagramName, initialXml, d //console.trace('DRAFT: Using', draftName); editor.contentWindow.postMessage(JSON.stringify({action: 'load', - autosave: 1, xml: drawMsg.message.xml, title: diagramName}), '*'); + autosave: 1, xml: drawMsg.message.xml, title: diagramDisplayName}), '*'); editor.contentWindow.postMessage(JSON.stringify({action: 'status', messageKey: 'unsavedChanges', modified: true}), '*'); draftExists = true; @@ -666,7 +668,7 @@ AC.init = function(baseUrl, location, pageId, editor, diagramName, initialXml, d if (initialXml != '') { editor.contentWindow.postMessage(JSON.stringify({action: 'load', - autosave: 1, xml: initialXml, title: diagramName, + autosave: 1, xml: initialXml, title: diagramDisplayName, macroData: macroData}), '*'); } else @@ -843,6 +845,7 @@ AC.init = function(baseUrl, location, pageId, editor, diagramName, initialXml, d checkName(drawMsg.name, function(name) { diagramName = name; + diagramDisplayName = name; AP.require('request', function(request) { @@ -853,7 +856,7 @@ AC.init = function(baseUrl, location, pageId, editor, diagramName, initialXml, d success: function(xml) { editor.contentWindow.postMessage(JSON.stringify({action: 'load', - autosave: 1, xml: xml, title: diagramName}), '*'); + autosave: 1, xml: xml, title: diagramDisplayName}), '*'); editor.contentWindow.postMessage(JSON.stringify({action: 'spinner', show: false}), '*'); }, @@ -906,6 +909,7 @@ AC.init = function(baseUrl, location, pageId, editor, diagramName, initialXml, d editor.contentWindow.postMessage(JSON.stringify({action: 'spinner', show: false}), '*'); diagramName = name; + diagramDisplayName = name; if (AC.draftEnabled) { @@ -917,7 +921,7 @@ AC.init = function(baseUrl, location, pageId, editor, diagramName, initialXml, d { editor.contentWindow.postMessage(JSON.stringify({action: 'spinner', show: false}), '*'); editor.contentWindow.postMessage(JSON.stringify({action: 'load', - autosave: 1, xml: drawMsg.xml, title: diagramName}), '*'); + autosave: 1, xml: drawMsg.xml, title: diagramDisplayName}), '*'); }, function() { @@ -933,7 +937,7 @@ AC.init = function(baseUrl, location, pageId, editor, diagramName, initialXml, d else { editor.contentWindow.postMessage(JSON.stringify({action: 'load', - autosave: 1, xml: drawMsg.xml, title: diagramName}), '*'); + autosave: 1, xml: drawMsg.xml, title: diagramDisplayName}), '*'); } }, function(name, err, errKey) @@ -996,6 +1000,7 @@ AC.init = function(baseUrl, location, pageId, editor, diagramName, initialXml, d editor.contentWindow.postMessage(JSON.stringify({action: 'spinner', show: false}), '*'); diagramName = name; + diagramDisplayName = name; editor.contentWindow.postMessage(JSON.stringify({action: 'export', format: 'png', spinKey: 'saving'}), '*'); }, @@ -1006,6 +1011,39 @@ AC.init = function(baseUrl, location, pageId, editor, diagramName, initialXml, d promptName(name, err, errKey); }); } + else if (drawMsg.event == 'rename') + { + //If diagram name is not set yet, use the new name for both file and diagram + //TODO should we disable renaming if diagramName is null? + if (diagramName == null) + { + editor.contentWindow.postMessage(JSON.stringify({action: 'spinner', + show: true}), '*'); + + checkName(drawMsg.name, function(name) + { + editor.contentWindow.postMessage(JSON.stringify({action: 'spinner', + show: false}), '*'); + diagramName = name; + diagramDisplayName = name; + }, + function(name, err, errKey) + { + editor.contentWindow.postMessage(JSON.stringify({action: 'spinner', + show: false}), '*'); + editor.contentWindow.postMessage(JSON.stringify({action: 'dialog', + titleKey: 'error', message: err, messageKey: errKey, + buttonKey: 'ok'}), '*'); + }); + } + else + { + diagramDisplayName = drawMsg.name; + } + + editor.contentWindow.postMessage(JSON.stringify({action: 'status', + messageKey: 'unsavedChanges', modified: true}), '*'); + } else if (drawMsg.event == 'export') { // Proceeds from sending the export message by saving the exported files @@ -1078,7 +1116,7 @@ AC.init = function(baseUrl, location, pageId, editor, diagramName, initialXml, d var spaceKey = AC.getSpaceKey(attObj._expandable.space); var pageType = attObj.container.type; - AC.saveCustomContent(spaceKey, pageId, pageType, diagramName, revision, + AC.saveCustomContent(spaceKey, pageId, pageType, diagramName, diagramDisplayName, revision, (drawMsg.macroData != null) ? drawMsg.macroData.contentId : null, (drawMsg.macroData != null) ? drawMsg.macroData.contentVer : null, function(responseText) @@ -1121,6 +1159,7 @@ AC.init = function(baseUrl, location, pageId, editor, diagramName, initialXml, d confluence.saveMacro( { diagramName: diagramName, + diagramDisplayName: diagramDisplayName, revision: revision, pageId: newPage ? null : pageId, contentId: contentId, @@ -1200,6 +1239,7 @@ AC.loadDiagram = function (pageId, diagramName, revision, success, error, owning confluence.saveMacro( { diagramName: macroData.diagramName, + diagramDisplayName: macroData.diagramDisplayName != null ? macroData.diagramDisplayName : macroData.diagramName, revision: attInfo.version.number, pageId: macroData.pageId, contentId: macroData.contentId, @@ -1309,7 +1349,7 @@ AC.loadDiagram = function (pageId, diagramName, revision, success, error, owning }); }; -AC.saveCustomContent = function(spaceKey, pageId, pageType, diagramName, revision, contentId, contentVer, success, error) +AC.saveCustomContent = function(spaceKey, pageId, pageType, diagramName, diagramDisplayName, revision, contentId, contentVer, success, error) { var customObj = { "type": "ac:com.mxgraph.confluence.plugins.diagramly:drawio-diagram", @@ -1320,7 +1360,7 @@ AC.saveCustomContent = function(spaceKey, pageId, pageType, diagramName, revisio "type": pageType, "id": pageId }, - "title": diagramName, + "title": diagramDisplayName, "body": { "storage": { "value": encodeURIComponent(JSON.stringify({ @@ -1356,7 +1396,7 @@ AC.saveCustomContent = function(spaceKey, pageId, pageType, diagramName, revisio if (contentId && err.statusCode == 403 && err.message.indexOf(contentId) > 0) { - AC.saveCustomContent(spaceKey, pageId, pageType, diagramName, revision, null, null, success, error); + AC.saveCustomContent(spaceKey, pageId, pageType, diagramName, diagramDisplayName, revision, null, null, success, error); } //Sometimes the macro is not updated such that the version is not correct. The same happens when a page version is restored else if (err.statusCode == 409 && err.message.indexOf("Current version is:") > 0) @@ -1367,7 +1407,7 @@ AC.saveCustomContent = function(spaceKey, pageId, pageType, diagramName, revisio if (curContentVer != null) { - AC.saveCustomContent(spaceKey, pageId, pageType, diagramName, revision, contentId, curContentVer[0], success, error); + AC.saveCustomContent(spaceKey, pageId, pageType, diagramName, diagramDisplayName, revision, contentId, curContentVer[0], success, error); } } else diff --git a/src/main/webapp/connect/confluence/macroEditor.html b/src/main/webapp/connect/confluence/macroEditor.html index 7c34c335..2d74b71d 100644 --- a/src/main/webapp/connect/confluence/macroEditor.html +++ b/src/main/webapp/connect/confluence/macroEditor.html @@ -34,14 +34,19 @@ var script = document.createElement('script'); script.setAttribute('data-options', 'resize:false;margin:false'); - alert("Unsupported draw.io version, please upgrade."); - // Main script.onload = function() { AP.sizeToParent(true); - AC.initAsync(baseUrl); + + alert("Unsupported draw.io version, please upgrade."); + + AP.require(['confluence'], function (confluence) + { + confluence.closeMacroEditor(); + }); }; + script.src = connectUrl + '/all.js'; head.appendChild(script); diff --git a/src/main/webapp/connect/confluence/viewer-1-4-8.html b/src/main/webapp/connect/confluence/viewer-1-4-8.html index a0e81895..8d847fc4 100644 --- a/src/main/webapp/connect/confluence/viewer-1-4-8.html +++ b/src/main/webapp/connect/confluence/viewer-1-4-8.html @@ -78,6 +78,7 @@ if (lang != null) var diagramWidth = parseFloat(getUrlParam('width')); var diagramHeight = parseFloat(getUrlParam('height')); var diagramName = getUrlParam('diagramName'); + var displayName = getUrlParam('displayName'); //ceoId and owningPageId are IDs of the page that potentially hold the attachment //they will differ when page history is shown, ceoId will be historical version ID, @@ -128,8 +129,9 @@ if (lang != null) } // Loads the given XML into the viewer - function showDiagram(id, backupId, name, revision, page, links, retryParams) + function showDiagram(id, backupId, name, revision, page, links, retryParams, displayName) { + displayName = displayName || name; id = id.toString(); retryParams = retryParams || {}; //so we can use it without NPE check @@ -260,7 +262,7 @@ if (lang != null) if (tbStyle == 'top') { - config.title = name; + config.title = displayName; } if (links != 'auto') @@ -325,10 +327,10 @@ if (lang != null) { dialog.create( { - header: name, + header: displayName, key: 'lightbox', size: 'fullscreen', - customData: {id: id, name: name, revision: revision, page: viewer.currentPage, links: links}, + customData: {id: id, name: name, revision: revision, page: viewer.currentPage, links: links, displayName: displayName}, chrome: true }); }; @@ -350,7 +352,7 @@ if (lang != null) if (attInfo.version.number > loadedVer && (pageInfo.version.message == null || pageInfo.version.message.indexOf("Reverted") < 0)) { - showDiagram(id, backupId, name, attInfo.version.number + '', page, links, {dontCheckVer: true}); + showDiagram(id, backupId, name, attInfo.version.number + '', page, links, {dontCheckVer: true}, displayName); //I think updating macro here is too risky since calling confluence.getMacroData returns null } } @@ -440,12 +442,12 @@ if (lang != null) //So, try revision 1 first if (revision > 1) { - showDiagram(id, backupId, name, null, page, links, {revision: revision}); + showDiagram(id, backupId, name, null, page, links, {revision: revision}, displayName); } else if (backupId != null) { //Since attachment wasn't found in this page, it is better to save it to this page - showDiagram(backupId, null, name, revision || retryParams.revision, page, links, {saveIt: true, pageId: id}); + showDiagram(backupId, null, name, revision || retryParams.revision, page, links, {saveIt: true, pageId: id}, displayName); } } else if (acceptResponse) @@ -477,7 +479,7 @@ if (lang != null) var info = JSON.parse(decodeURIComponent(resp.body.storage.value)); - showDiagram(info.pageId, info.pageId, info.diagramName, info.version, null, links, {dontCheckVer: true}); //custom content can load old versions which will be overridden by version check + showDiagram(info.pageId, info.pageId, info.diagramName, info.version, null, links, {dontCheckVer: true}, resp.title); //custom content can load old versions which will be overridden by version check }, error: function (resp) { @@ -489,12 +491,12 @@ if (lang != null) { // Gets the paramters from the customData object in lightbox mode // LATER: Add XML to custom data (does not seem to work) - showDiagram(dialog.customData.id, dialog.customData.id, dialog.customData.name, dialog.customData.revision, dialog.customData.page, dialog.customData.links); + showDiagram(dialog.customData.id, dialog.customData.id, dialog.customData.name, dialog.customData.revision, dialog.customData.page, dialog.customData.links, null, dialog.customData.displayName); } else { var myPageId = (owningPageId != null && owningPageId.length > 0) ? owningPageId : ceoId; - showDiagram(candidateId, (owningPageId != null && owningPageId.length > 0) ? owningPageId : ceoId, diagramName, revision, null, links); + showDiagram(candidateId, (owningPageId != null && owningPageId.length > 0) ? owningPageId : ceoId, diagramName, revision, null, links, null, displayName); } }); }); diff --git a/src/main/webapp/images/facebook.png b/src/main/webapp/images/facebook.png index 67abbcdb8bfe3160a61517126ba9d65461e41bda..b29439cfbaafb80cd2a215b67e9420eb3017ea80 100644 GIT binary patch delta 805 zcmV+=1KRwa2+anNB!4DQOjJbx00960|NsC0kD9NUrM`NIqW}N@N?wL%cb1l-x&QzF z|NsAEb(&FNe3YQJlAW{v|NsC0|NsC0ZGfg%YL8@fla8CVUTutfh@zvcz5oCJ|NsC0 z|NsC0|7m=pYkZ!3i=~X1v~qx&f{vz~r@Wb?wU?l=|NsA-qye>&p%s75)7+!1z4i9^ z`uqIq?DFaB@4Um$`}_Q}y2tHS8=9J zXPHM}k4j^cLtBVIRD51}uZEPYP->h^WtLcPoHk2xR&194&VvRUX zcT8f5Mq7e_lD2V(vv7Zes`>i+;N$7g*W|y((yX<`m7uj?d8}|Ny0004;Nkl?sC#ps27o|>4iX}jHR|mJ07V<>0994C z?m0ksJ+*SWA>n^yAd(m(#XJB{kGt{Rs)-g5F&VKH0MD8zD;gcO1$bqVwvA{esB4;G zA;Xs1=3lj(s5Hj zq}$p&4KgU^l> zBF}m7PV+J$iuo5Jg^6sLh*%>c!XSAZ$;;3oOn=XriC*Z)OyU5E)`&=SK&vCDCNf!Q zSau@H&YdQc$8M;$h!wNLk@rF|%f?qQ-kO|{nKiY%5ar!!CE%*%hH7{45OXo@%M_#! j-@jg*`~Dfc4upRJ?g||@i&Iza00000NkvXXu0mjfdHJXv delta 1033 zcmX@hHjiV1O8x8rpAc6D28RD&P}Q+0y?oltC3~kW+SxyA9YioNp=Qd0ZIkA1hH!Hm zmZg+Vj?3+tFndFF$D+k+_CmzrWLQRTYWeKM;u+aB^L*l4duMO2>0a71W6P{%`-&Q7 z0hP^Mymk75jbQcl|F7J50M`j&WY#RotXUYDJE?#6=5v?t04@0X?MGwZ^0_Pa&RV+r z*Y7_~eM?@w`SkMj`#p!x&s@0a_wPTOcO74_d^?&sK(1v#RZRK1$dZ-8xeHukyB#9h zoTEFU%T`+j)>sGCI)v2J+lM#Xg*DlRGz4YOvk9(`t6bkUWsP6@jIe^m5k^y1A`9n5=Fbh!ofVKa!7ruPI}wPwe%Al`{owJ-3)i3Q zKXz%&)}u{Rc1~TewXT0tLgku}j444Gll_z1AG-DL0mhI=NswPKgOlISKVQCl303|2 z<;yFpe}BGzdHd*2ps^s^zrTO~{QmXx$CnScubf%i-`$!hC&~Nw@891)zrTI`{OOY? zkJl`nKYQYYk~~d$aSkj0Z{`dPjIZiFT^vI!PPbmT9&|fEr1fE{@b(772Y$Q@ofYBsmr^&JFFc%oT}<`wzWtIr1$LGz4g5PV#$MBjLc;%55H(S+&cB;U$gh`yTz@- zc-J(Y|GmsU-(cr|foRS5H=F**zG2;~HOXqvch*o9{h%wy{T5&R@mN{p?b4bxA&+m1 zZ?3$+ zgAV`7rT4CMW^D4AuH?FRlT+fWoiC?KSM1HJ`k1rHVfq;bJMk%9;kn)ZFWYC!>FV7$ z)?LCG5E62#VCt1s<(j_GJAvc9(ejcVuNv4c%v)U)qwZ|c#l-WjNu=!4XyJMu7PS@o)uu7p{awG9 wZT2m@^k@IOmh6|W`?vr7`>XEq3p)n(b0w>Md3_3jsfoeU)z4*}6H`JH0Nz$Rp8x;= diff --git a/src/main/webapp/images/favicon-16x16.png b/src/main/webapp/images/favicon-16x16.png index d478f41a60d11fad20b690295132525276c9314f..7dfb157f1d55c232886f652b7e8468001b5111f4 100644 GIT binary patch delta 335 zcmV-V0kHo32I>NkB!7@lOjJeihXmhj4FCWC-)jl*h5`HTRd@|h~& zaTV~23haOe``^3x%arlGlI^Q>?5T3;oLu#>TlA_;@uEreq<=!>gEI4+G3J9P?~E7f zeF*4z1n-3cIhZfS0001$NklH(ub^}gXCtMF$xA=tTE=m4A$Skl#d=4y-GI=) znI?x^5xM!^4M+j*E2Faj2r_Mo5W-1(zAytK4(ZaL;7KW^>?Rx$PlUMNlxl!Rss2-D h=@A&BE`&80cmqrI2k`*wO6vds002ovPDHLkV1fh_wA=sy delta 869 zcmaFG^oMPNNi4@Rzu!Ok^YO*AUgvvRoDcGNUe#RT zAKF+xbg=(8J>|{HqWf7K_p>KB`cte~`=baf0OU`@8>rdGYVZ$A7=Rzu(^RVQ2T>Zy*1Bdim|z z?uX^FAKI8dO;`K->B-mg>+k3C-OuCydU4b5caI*|X?>g^{_ED(-|rs(e*5tKmX`P1 z+P_}f`mjvqeUJFFW{t!C8<`)MX5lF!N|bST({o9 zOxM6H#K6qT$im9RQrp1D%D|v8W0?_(j@^X_;|3sR|{P1*r;|1trN0 z3>9-8f8yaN4Aam!<$wB&=hGktW@T=@WNu+)VeiQz%)$yT4JLHF&2?5S|< zfd}h<2mk&1`Qy;^%BAnMh3lbY@|7azcnRu#2mbr`{qW%Y>3`7p-^%c~iTK5a?51q? zwPWg>T;_>8^Po8X{QCLh(f8TF_SU@m+OqY~vHI7n`qZWJ!<_cLc=WAU>W3ilj1c8^ z3FmkRLTzQH0003FNkl@91;Ep(?9Tpl6IyS#!3j>*^nR&vjFbJfB+{N z<5dZ706K&17Fae-iOUr9#@BeX$@A$vC_otJ{YBL+kBVTvv2_N!T!dSm*xPcMfX-NB z2gC{^=oyT&^BZ|Fxers@wuK=!Fv+s)1-l%Ge1&bArgAZLrF`vso>!yy=l~~v@bHcw z_?^oqYIlv2>AvKRnkq*M6CWjKdm&O&7#~3Bm#ljw6ZOsa>WBzvQ_i!Ps))Wxd^$uS v7bT{I=SpBdV8W7I8HFLk8ZxXuzO}+HZeA7!Utct$00000NkvXXu0mjfbh{Wq delta 1238 zcmZvcYfO`O6vqDrN?VGGMPwQ^MNnJl@P%=+(X1fdK!*xehsG@}ZGl3ig;WI-%uE2NR{)3?D!(h< z2>{A)-~$F7mZ9OcFj$I$JFpHV`BYzwwFxjd9uV)NeO=X2#}ZIhyJyOEU(RMZEbm23dBSmB)0Vb>{0V#OKip2^v0L zC&XJr1JW?}U|BHWbBy(B1*^5fSf{#QQ-u>-B^di>34YU*AD*9Ur_Oio@@U5O^$B_* z-ZLt-4Yq2k@wTD%Ac8D?-Kej{!>zz^JsWWvJ-SK#=|ugREz5=}-;#c|HDiW{v0ouO zu0alEy7zaL?S7k1v>yJp!||wRPMS3<&775_!W~hbhcd*mfVi!Q%MuW~Z0;AshNk3M z$@ahgcn}Qv_`Lz=qTgW+IIVto!FI1zQ?tr`IVk|^EH^7=s<75uHD2?d`mn~%e7UF+pES#eh9;8X>^5y}oVISQzG1UX8nIB1v9+NW8gL8sxVe)!4SxkyZnTDO z0adp5{d~fiVScCv7*Syn9ixkkjNFih9WkYb+Gh*%a~U}kY-V>dlM@#H-Z8tHqT%;RZt0adiZ<3!*#XWnL4M7=%>?{;no|(D(5VMBG)(p-H-6ekm&)X~;!CGr{Sx0#d$Fp&MR8&3T`>_N zy+yebM_9jh6RQGKOP)S);{v64DlKmyk{LU!*GmZm1wnB;w+2lvC@k9hq+rN7rXG(p z|2jVQSUs_wL`hC1OG#QviY!vTpWdtDbK@w({ndlSsLj=^yb~@OdIj_`J2tQ;V~9pS z`ij=YmywOeRua=_UNWI2;vbM0CatpQ3U=PL?)go0O*gr0 z72}42WL-rp8<>oDRkN;4O04ricoPQPx zBP;-i`zfzdeN~v5YuBkkhbT^GMItej=LGVAz>E~*1BQZ!#1nNM;L#XR+tYQmRGQ*6 zlGkMJzvK&8iIjM!zB_bAvR<;7gN3tUIZ44Udro>lAUDzsfx_gw1?D?TO9PzryI{F& zo)Xj0D|Amg5(srtdIF_n`DTGtAVTE^F(ZHFEQ3PIPL}(!8KNWS6@6t}JaRWArqNfA n@e-1>(`LBp6gOgA;oW=#zg$YT`H3L~00000NkvXXu0mjfTO^l! delta 368 zcmV-$0gwL41OEe%BnW;`OjJbx005CeNRd!8f9a>YfB*mhDRfd!QvmgR>)g@EP5HyP zo^0dQhJs{WML8Q54G097jCU@xuA`AvKQz8pC=<3Vm)-yX0S8G$K~y-)&C=O!gD?<4 z(E(#Nvu^XJeSp>?m4I|W zrO+pCXmeJhA!@;V8v!~RH7Xj6A;wd(@86TJaA#<;%~a;s&=Ga;a7PzU-;L*r0#FuL zbOz0}r53a?aj&Mer`R4f*2F zvkH(}z_6BnR=wjB9)W3?_m`blmfeKr(PHjTU^6sxQUrNWB%navigator.userAgent.indexOf("MSIE")&& +window.STYLE_PATH=window.STYLE_PATH||"styles";window.CSS_PATH=window.CSS_PATH||"styles";window.OPEN_FORM=window.OPEN_FORM||"open.html";window.mxBasePath=window.mxBasePath||"../../../src";window.mxLanguage=window.mxLanguage||urlParams.lang;window.mxLanguages=window.mxLanguages||["de"];var mxClient={VERSION:"3.9.6",IS_IE:0<=navigator.userAgent.indexOf("MSIE"),IS_IE6:0<=navigator.userAgent.indexOf("MSIE 6"),IS_IE11:!!navigator.userAgent.match(/Trident\/7\./),IS_EDGE:!!navigator.userAgent.match(/Edge\//),IS_QUIRKS:0<=navigator.userAgent.indexOf("MSIE")&&(null==document.documentMode||5==document.documentMode),IS_EM:"spellcheck"in document.createElement("textarea")&&8==document.documentMode,VML_PREFIX:"v",OFFICE_PREFIX:"o",IS_NS:0<=navigator.userAgent.indexOf("Mozilla/")&&0>navigator.userAgent.indexOf("MSIE")&& 0>navigator.userAgent.indexOf("Edge/"),IS_OP:0<=navigator.userAgent.indexOf("Opera/")||0<=navigator.userAgent.indexOf("OPR/"),IS_OT: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:0<=navigator.userAgent.indexOf("AppleWebKit/")&& 0>navigator.userAgent.indexOf("Chrome/")&&0>navigator.userAgent.indexOf("Edge/"),IS_IOS:navigator.userAgent.match(/(iPad|iPhone|iPod)/g)?!0:!1,IS_GC:0<=navigator.userAgent.indexOf("Chrome/")&&0>navigator.userAgent.indexOf("Edge/"),IS_CHROMEAPP:null!=window.chrome&&null!=chrome.app&&null!=chrome.app.runtime,IS_FF:0<=navigator.userAgent.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:0<=navigator.userAgent.indexOf("Firefox/")||0<=navigator.userAgent.indexOf("Iceweasel/")||0<=navigator.userAgent.indexOf("Seamonkey/")||0<=navigator.userAgent.indexOf("Iceape/")||0<=navigator.userAgent.indexOf("Galeon/")|| @@ -532,9 +532,9 @@ mxShape.prototype.updateHtmlColors=function(a){var b=this.stroke;null!=b&&b!=mxC mxUtils.addTransparentBackgroundFilter(a):this.setTransparentBackgroundImage(a)}; mxShape.prototype.updateHtmlBounds=function(a){var b=9<=document.documentMode?0:Math.ceil(this.strokewidth*this.scale);a.style.borderWidth=Math.max(1,b)+"px";a.style.overflow="hidden";a.style.left=Math.round(this.bounds.x-b/2)+"px";a.style.top=Math.round(this.bounds.y-b/2)+"px";"CSS1Compat"==document.compatMode&&(b=-b);a.style.width=Math.round(Math.max(0,this.bounds.width+b))+"px";a.style.height=Math.round(Math.max(0,this.bounds.height+b))+"px"}; mxShape.prototype.destroyCanvas=function(a){if(a instanceof mxSvgCanvas2D){for(var b in a.gradients){var c=a.gradients[b];null!=c&&(c.mxRefCount=(c.mxRefCount||0)+1)}this.releaseSvgGradients(this.oldGradients);this.oldGradients=a.gradients}}; -mxShape.prototype.paint=function(a){var b=this.scale,c=this.bounds.x/b,d=this.bounds.y/b,e=this.bounds.width/b,f=this.bounds.height/b;if(this.isPaintBoundsInverted())var g=(e-f)/2,c=c+g,d=d-g,g=e,e=f,f=g;this.updateTransform(a,c,d,e,f);this.configureCanvas(a,c,d,e,f);g=null;if(null==this.stencil&&null==this.points&&this.shapePointerEvents||null!=this.stencil&&this.stencilPointerEvents){var k=this.createBoundingBox();this.dialect==mxConstants.DIALECT_SVG?(g=this.createTransparentSvgRectangle(k.x,k.y, -k.width,k.height),this.node.appendChild(g)):(k=a.createRect("rect",k.x/b,k.y/b,k.width/b,k.height/b),k.appendChild(a.createTransparentFill()),k.stroked="false",a.root.appendChild(k))}if(null!=this.stencil)this.stencil.drawShape(a,this,c,d,e,f);else if(a.setStrokeWidth(this.strokewidth),null!=this.points){c=[];for(d=0;da.container.scrollLeft+.9*a.container.clientWidth&&(a.container.scrollLeft=Math.min(c.x+c.width-a.container.clientWidth,c.x-10)),c.y>a.container.scrollTop+.9*a.container.clientHeight&&(a.container.scrollTop=Math.min(c.y+c.height-a.container.clientHeight,c.y-10)))}else{var c=a.getGraphBounds(),d=Math.max(c.width,a.scrollTileSize.width*a.view.scale);a.container.scrollTop=Math.floor(Math.max(0,c.y-Math.max(20,(a.container.clientHeight-Math.max(c.height, +EditorUi.prototype.resetScrollbars=function(){var a=this.editor.graph;if(!this.editor.extendCanvas)a.container.scrollTop=0,a.container.scrollLeft=0,mxUtils.hasScrollbars(a.container)||a.view.setTranslate(0,0);else if(!this.editor.isChromelessView())if(mxUtils.hasScrollbars(a.container))if(a.pageVisible){var c=a.getPagePadding();a.container.scrollTop=Math.floor(c.y-this.editor.initialTopSpacing)-1;a.container.scrollLeft=Math.floor(Math.min(c.x,(a.container.scrollWidth-a.container.clientWidth)/2))- +1;c=a.getGraphBounds();0a.container.scrollLeft+.9*a.container.clientWidth&&(a.container.scrollLeft=Math.min(c.x+c.width-a.container.clientWidth,c.x-10)),c.y>a.container.scrollTop+.9*a.container.clientHeight&&(a.container.scrollTop=Math.min(c.y+c.height-a.container.clientHeight,c.y-10)))}else{var c=a.getGraphBounds(),d=Math.max(c.width,a.scrollTileSize.width*a.view.scale);a.container.scrollTop=Math.floor(Math.max(0,c.y-Math.max(20,(a.container.clientHeight-Math.max(c.height, a.scrollTileSize.height*a.view.scale))/4)));a.container.scrollLeft=Math.floor(Math.max(0,c.x-Math.max(0,(a.container.clientWidth-d)/2)))}else a.pageVisible?(c=a.view.getBackgroundPageBounds(),a.view.setTranslate(Math.floor(Math.max(0,(a.container.clientWidth-c.width)/2)-c.x),Math.floor(Math.max(0,(a.container.clientHeight-c.height)/2)-c.y))):(c=a.getGraphBounds(),a.view.setTranslate(Math.floor(Math.max(0,Math.max(0,(a.container.clientWidth-c.width)/2)-c.x)),Math.floor(Math.max(0,Math.max(20,(a.container.clientHeight- c.height)/4))-c.y)))}; EditorUi.prototype.setPageVisible=function(a){var c=this.editor.graph,d=mxUtils.hasScrollbars(c.container),b=0,f=0;d&&(b=c.view.translate.x*c.view.scale-c.container.scrollLeft,f=c.view.translate.y*c.view.scale-c.container.scrollTop);c.pageVisible=a;c.pageBreaksVisible=a;c.preferPageSize=a;c.view.validateBackground();d&&(a=c.getSelectionCells(),c.clearSelection(),c.setSelectionCells(a));c.sizeDidChange();d&&(c.container.scrollLeft=c.view.translate.x*c.view.scale-b,c.container.scrollTop=c.view.translate.y* @@ -2479,14 +2479,14 @@ this.setDisplay("");null!=this.currentState&&this.currentState!=a&&bg||Math.abs(u.y-D.y)>g)&&(Math.abs(u.x-A.x)>g||Math.abs(u.y-A.y)>g)){A=u.x-k.x;D=u.y-k.y;u={distSq:A*A+D*D,x:u.x,y:u.y};for(A=0;Au.distSq){v.splice(A,0,u);u=null;break}null==u||0!=v.length&&v[v.length-1].x===u.x&&v[v.length-1].y===u.y||v.push(u)}}}for(x=0;xf||Math.abs(u.y-D.y)>f)&&(Math.abs(u.x-A.x)>f||Math.abs(u.y-A.y)>f)){A=u.x-k.x;D=u.y-k.y;u={distSq:A*A+D*D,x:u.x,y:u.y};for(A=0;Au.distSq){v.splice(A,0,u);u=null;break}null==u||0!=v.length&&v[v.length-1].x===u.x&&v[v.length-1].y===u.y||v.push(u)}}}for(x=0;xe*e&&0e*e&&(A=new mxPoint(C.x-u.x,C.y-u.y),x=new mxPoint(C.x+u.x,C.y+u.y),h.push(A),this.addPoints(a,h,c,d,!1, null,k),h=0>Math.round(u.x)||0==Math.round(u.x)&&0>=Math.round(u.y)?1:-1,k=!1,"sharp"==g?(a.lineTo(A.x-u.y*h,A.y+u.x*h),a.lineTo(x.x-u.y*h,x.y+u.x*h),a.lineTo(x.x,x.y)):"arc"==g?(h*=1.3,a.curveTo(A.x-u.y*h,A.y+u.x*h,x.x-u.y*h,x.y+u.x*h,x.x,x.y)):(a.moveTo(x.x,x.y),k=!0),h=[x],A=!0))}else u=null;A||(h.push(C),l=C)}this.addPoints(a,h,c,d,!1,null,k);a.stroke()}};var e=mxGraphView.prototype.updateFloatingTerminalPoint;mxGraphView.prototype.updateFloatingTerminalPoint=function(a,b,c,d){if(null==b||null== -a||"1"!=b.style.snapToPoint&&"1"!=a.style.snapToPoint)e.apply(this,arguments);else{b=this.getTerminalPort(a,b,d);var f=this.getNextPoint(a,c,d),g=this.graph.isOrthogonal(a),h=mxUtils.toRadians(Number(b.style[mxConstants.STYLE_ROTATION]||"0")),k=new mxPoint(b.getCenterX(),b.getCenterY());if(0!=h)var l=Math.cos(-h),m=Math.sin(-h),f=mxUtils.getRotatedPoint(f,l,m,k);l=parseFloat(a.style[mxConstants.STYLE_PERIMETER_SPACING]||0);l+=parseFloat(a.style[d?mxConstants.STYLE_SOURCE_PERIMETER_SPACING:mxConstants.STYLE_TARGET_PERIMETER_SPACING]|| -0);f=this.getPerimeterPoint(b,f,0==h&&g,l);0!=h&&(l=Math.cos(h),m=Math.sin(h),f=mxUtils.getRotatedPoint(f,l,m,k));a.setAbsoluteTerminalPoint(this.snapToAnchorPoint(a,b,c,d,f),d)}};mxGraphView.prototype.snapToAnchorPoint=function(a,b,c,d,e){if(null!=b&&null!=a){a=this.graph.getAllConnectionConstraints(b);d=c=null;for(var f=0;ff||d>f)&&this.clear()}}else{for(c=b.getSource();null!=c&&"a"!=c.nodeName.toLowerCase();)c=c.parentNode;null!=c?this.clear():(null!=g.tooltipHandler&&null!=this.currentLink&&null!=this.currentState&&g.tooltipHandler.reset(b,!0,this.currentState),(null==this.currentState|| -b.getState()!=this.currentState&&null!=b.sourceState||!g.intersects(this.currentState,b.getGraphX(),b.getGraphY()))&&this.updateCurrentState(b))}},mouseUp:function(a,d){for(var e=d.getSource(),h=d.getEvent();null!=e&&"a"!=e.nodeName.toLowerCase();)e=e.parentNode;null==e&&Math.abs(this.scrollLeft-g.container.scrollLeft)g||d>g)&&this.clear()}}else{for(c=b.getSource();null!=c&&"a"!=c.nodeName.toLowerCase();)c=c.parentNode;null!=c?this.clear():(null!=f.tooltipHandler&&null!=this.currentLink&&null!=this.currentState&&f.tooltipHandler.reset(b,!0,this.currentState),(null==this.currentState|| +b.getState()!=this.currentState&&null!=b.sourceState||!f.intersects(this.currentState,b.getGraphX(),b.getGraphY()))&&this.updateCurrentState(b))}},mouseUp:function(a,d){for(var e=d.getSource(),h=d.getEvent();null!=e&&"a"!=e.nodeName.toLowerCase();)e=e.parentNode;null==e&&Math.abs(this.scrollLeft-f.container.scrollLeft)b&& c[d].deleteCell(b)};Graph.prototype.pasteHtmlAtCaret=function(a){var b;if(window.getSelection){if(b=window.getSelection(),b.getRangeAt&&b.rangeCount){b=b.getRangeAt(0);b.deleteContents();var c=document.createElement("div");c.innerHTML=a;a=document.createDocumentFragment();for(var d;d=c.firstChild;)lastNode=a.appendChild(d);b.insertNode(a)}}else(b=document.selection)&&"Control"!=b.type&&b.createRange().pasteHTML(a)};Graph.prototype.createLinkForHint=function(a,b){b=null!=b?b:a;var c=document.createElement("a"); c.setAttribute("href",this.getAbsoluteUrl(a));c.setAttribute("title",a);null!=this.linkTarget&&c.setAttribute("target",this.linkTarget);40"):h,!0);this.textarea.className="mxCellEditor geContentEditable";var d=mxUtils.getValue(a.style,mxConstants.STYLE_FONTSIZE,mxConstants.DEFAULT_FONTSIZE),b=mxUtils.getValue(a.style,mxConstants.STYLE_FONTFAMILY,mxConstants.DEFAULT_FONTFAMILY),e=mxUtils.getValue(a.style,mxConstants.STYLE_ALIGN,mxConstants.ALIGN_LEFT),f=(mxUtils.getValue(a.style,mxConstants.STYLE_FONTSTYLE,0)&mxConstants.FONT_BOLD)== -mxConstants.FONT_BOLD,g=(mxUtils.getValue(a.style,mxConstants.STYLE_FONTSTYLE,0)&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC,a=(mxUtils.getValue(a.style,mxConstants.STYLE_FONTSTYLE,0)&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE;this.textarea.style.lineHeight=mxConstants.ABSOLUTE_LINE_HEIGHT?Math.round(d*mxConstants.LINE_HEIGHT)+"px":mxConstants.LINE_HEIGHT;this.textarea.style.fontSize=Math.round(d)+"px";this.textarea.style.textDecoration=a?"underline":"";this.textarea.style.fontWeight= -f?"bold":"normal";this.textarea.style.fontStyle=g?"italic":"";this.textarea.style.fontFamily=b;this.textarea.style.textAlign=e;this.textarea.style.padding="0px";this.textarea.innerHTML!=h&&(this.textarea.innerHTML=h,0==this.textarea.innerHTML.length&&(this.textarea.innerHTML=this.getEmptyLabelText(),this.clearOnChange=0"):h,!0);this.textarea.className="mxCellEditor geContentEditable";var d=mxUtils.getValue(a.style,mxConstants.STYLE_FONTSIZE,mxConstants.DEFAULT_FONTSIZE),b=mxUtils.getValue(a.style,mxConstants.STYLE_FONTFAMILY,mxConstants.DEFAULT_FONTFAMILY),e=mxUtils.getValue(a.style,mxConstants.STYLE_ALIGN,mxConstants.ALIGN_LEFT),g=(mxUtils.getValue(a.style,mxConstants.STYLE_FONTSTYLE,0)&mxConstants.FONT_BOLD)== +mxConstants.FONT_BOLD,f=(mxUtils.getValue(a.style,mxConstants.STYLE_FONTSTYLE,0)&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC,a=(mxUtils.getValue(a.style,mxConstants.STYLE_FONTSTYLE,0)&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE;this.textarea.style.lineHeight=mxConstants.ABSOLUTE_LINE_HEIGHT?Math.round(d*mxConstants.LINE_HEIGHT)+"px":mxConstants.LINE_HEIGHT;this.textarea.style.fontSize=Math.round(d)+"px";this.textarea.style.textDecoration=a?"underline":"";this.textarea.style.fontWeight= +g?"bold":"normal";this.textarea.style.fontStyle=f?"italic":"";this.textarea.style.fontFamily=b;this.textarea.style.textAlign=e;this.textarea.style.padding="0px";this.textarea.innerHTML!=h&&(this.textarea.innerHTML=h,0==this.textarea.innerHTML.length&&(this.textarea.innerHTML=this.getEmptyLabelText(),this.clearOnChange=0
"));h=this.graph.sanitizeHtml(b?h.replace(/\n/g,"").replace(/<br\s*.?>/g,"
"):h,!0);this.textarea.className="mxCellEditor mxPlainTextEditor";var d=mxConstants.DEFAULT_FONTSIZE;this.textarea.style.lineHeight=mxConstants.ABSOLUTE_LINE_HEIGHT?Math.round(d*mxConstants.LINE_HEIGHT)+"px":mxConstants.LINE_HEIGHT;this.textarea.style.fontSize=Math.round(d)+ "px";this.textarea.style.textDecoration="";this.textarea.style.fontWeight="normal";this.textarea.style.fontStyle="";this.textarea.style.fontFamily=mxConstants.DEFAULT_FONTFAMILY;this.textarea.style.textAlign="left";this.textarea.style.padding="2px";this.textarea.innerHTML!=h&&(this.textarea.innerHTML=h);this.codeViewMode=!0}this.textarea.focus();null!=this.switchSelectionState&&this.restoreSelection(this.switchSelectionState);this.switchSelectionState=c;this.resize()};var h=mxCellEditor.prototype.resize; mxCellEditor.prototype.resize=function(a,b){if(null!=this.textarea)if(a=this.graph.getView().getState(this.editingCell),this.codeViewMode&&null!=a){var c=a.view.scale;this.bounds=mxRectangle.fromRectangle(a);if(0==this.bounds.width&&0==this.bounds.height){this.bounds.width=160*c;this.bounds.height=60*c;var d=null!=a.text?a.text.margin:null;null==d&&(d=mxUtils.getAlignmentAsPoint(mxUtils.getValue(a.style,mxConstants.STYLE_ALIGN,mxConstants.ALIGN_CENTER),mxUtils.getValue(a.style,mxConstants.STYLE_VERTICAL_ALIGN, @@ -2566,13 +2566,13 @@ c);this.textarea.clientWidth").replace(/\n/g,"
"):b.replace(/\r\n/g,"").replace(/\n/g,"")};var l=mxCellEditor.prototype.stopEditing;mxCellEditor.prototype.stopEditing=function(a){this.codeViewMode&&this.toggleViewMode();l.apply(this,arguments);this.focusContainer()};mxCellEditor.prototype.focusContainer= function(){try{this.graph.container.focus()}catch(G){}};var m=mxCellEditor.prototype.applyValue;mxCellEditor.prototype.applyValue=function(a,b){this.graph.getModel().beginUpdate();try{if(m.apply(this,arguments),this.graph.isCellDeletable(a.cell)&&0==this.graph.model.getChildCount(a.cell)){var c=mxUtils.getValue(a.style,mxConstants.STYLE_STROKECOLOR,mxConstants.NONE),d=mxUtils.getValue(a.style,mxConstants.STYLE_FILLCOLOR,mxConstants.NONE);""==b&&c==mxConstants.NONE&&d==mxConstants.NONE&&this.graph.removeCells([a.cell], !1)}}finally{this.graph.getModel().endUpdate()}};mxCellEditor.prototype.getBackgroundColor=function(a){var b=null;if(this.graph.getModel().isEdge(a.cell)||this.graph.getModel().isEdge(this.graph.getModel().getParent(a.cell)))b=mxUtils.getValue(a.style,mxConstants.STYLE_LABEL_BACKGROUNDCOLOR,null),b==mxConstants.NONE&&(b=null);return b};mxCellEditor.prototype.getMinimumSize=function(a){var b=this.graph.getView().scale;return new mxRectangle(0,0,null==a.text?30:a.text.size*b+20,30)};var n=mxGraphHandler.prototype.moveCells; -mxGraphHandler.prototype.moveCells=function(a,b,c,d,e,f){mxEvent.isAltDown(f)&&(e=null);n.apply(this,arguments)};mxGraphHandler.prototype.updateHint=function(b){if(null!=this.shape){null==this.hint&&(this.hint=a(),this.graph.container.appendChild(this.hint));var c=this.graph.view.translate,d=this.graph.view.scale;b=this.roundLength((this.bounds.x+this.currentDx)/d-c.x);c=this.roundLength((this.bounds.y+this.currentDy)/d-c.y);this.hint.innerHTML=b+", "+c;this.hint.style.left=this.shape.bounds.x+Math.round((this.shape.bounds.width- +mxGraphHandler.prototype.moveCells=function(a,b,c,d,e,g){mxEvent.isAltDown(g)&&(e=null);n.apply(this,arguments)};mxGraphHandler.prototype.updateHint=function(b){if(null!=this.shape){null==this.hint&&(this.hint=a(),this.graph.container.appendChild(this.hint));var c=this.graph.view.translate,d=this.graph.view.scale;b=this.roundLength((this.bounds.x+this.currentDx)/d-c.x);c=this.roundLength((this.bounds.y+this.currentDy)/d-c.y);this.hint.innerHTML=b+", "+c;this.hint.style.left=this.shape.bounds.x+Math.round((this.shape.bounds.width- this.hint.clientWidth)/2)+"px";this.hint.style.top=this.shape.bounds.y+this.shape.bounds.height+12+"px"}};mxGraphHandler.prototype.removeHint=function(){null!=this.hint&&(this.hint.parentNode.removeChild(this.hint),this.hint=null)};mxVertexHandler.prototype.isRecursiveResize=function(a,b){return!this.graph.isSwimlane(a.cell)&&0'):new mxImage(IMAGE_PATH+"/handle-main.png",17,17);HoverIcons.prototype.secondaryHandle=mxClient.IS_SVG?Graph.createSvgImage(16,16,''):new mxImage(IMAGE_PATH+"/handle-secondary.png",17,17);HoverIcons.prototype.fixedHandle=mxClient.IS_SVG?Graph.createSvgImage(18,18,''): new mxImage(IMAGE_PATH+"/handle-fixed.png",17,17);HoverIcons.prototype.terminalHandle=mxClient.IS_SVG?Graph.createSvgImage(18,18,''):new mxImage(IMAGE_PATH+"/handle-terminal.png",17,17);HoverIcons.prototype.rotationHandle=new mxImage(mxClient.IS_SVG?"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABMAAAAVCAYAAACkCdXRAAAACXBIWXMAAAsTAAALEwEAmpwYAAAKT2lDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjanVNnVFPpFj333vRCS4iAlEtvUhUIIFJCi4AUkSYqIQkQSoghodkVUcERRUUEG8igiAOOjoCMFVEsDIoK2AfkIaKOg6OIisr74Xuja9a89+bN/rXXPues852zzwfACAyWSDNRNYAMqUIeEeCDx8TG4eQuQIEKJHAAEAizZCFz/SMBAPh+PDwrIsAHvgABeNMLCADATZvAMByH/w/qQplcAYCEAcB0kThLCIAUAEB6jkKmAEBGAYCdmCZTAKAEAGDLY2LjAFAtAGAnf+bTAICd+Jl7AQBblCEVAaCRACATZYhEAGg7AKzPVopFAFgwABRmS8Q5ANgtADBJV2ZIALC3AMDOEAuyAAgMADBRiIUpAAR7AGDIIyN4AISZABRG8lc88SuuEOcqAAB4mbI8uSQ5RYFbCC1xB1dXLh4ozkkXKxQ2YQJhmkAuwnmZGTKBNA/g88wAAKCRFRHgg/P9eM4Ors7ONo62Dl8t6r8G/yJiYuP+5c+rcEAAAOF0ftH+LC+zGoA7BoBt/qIl7gRoXgugdfeLZrIPQLUAoOnaV/Nw+H48PEWhkLnZ2eXk5NhKxEJbYcpXff5nwl/AV/1s+X48/Pf14L7iJIEyXYFHBPjgwsz0TKUcz5IJhGLc5o9H/LcL//wd0yLESWK5WCoU41EScY5EmozzMqUiiUKSKcUl0v9k4t8s+wM+3zUAsGo+AXuRLahdYwP2SycQWHTA4vcAAPK7b8HUKAgDgGiD4c93/+8//UegJQCAZkmScQAAXkQkLlTKsz/HCAAARKCBKrBBG/TBGCzABhzBBdzBC/xgNoRCJMTCQhBCCmSAHHJgKayCQiiGzbAdKmAv1EAdNMBRaIaTcA4uwlW4Dj1wD/phCJ7BKLyBCQRByAgTYSHaiAFiilgjjggXmYX4IcFIBBKLJCDJiBRRIkuRNUgxUopUIFVIHfI9cgI5h1xGupE7yAAygvyGvEcxlIGyUT3UDLVDuag3GoRGogvQZHQxmo8WoJvQcrQaPYw2oefQq2gP2o8+Q8cwwOgYBzPEbDAuxsNCsTgsCZNjy7EirAyrxhqwVqwDu4n1Y8+xdwQSgUXACTYEd0IgYR5BSFhMWE7YSKggHCQ0EdoJNwkDhFHCJyKTqEu0JroR+cQYYjIxh1hILCPWEo8TLxB7iEPENyQSiUMyJ7mQAkmxpFTSEtJG0m5SI+ksqZs0SBojk8naZGuyBzmULCAryIXkneTD5DPkG+Qh8lsKnWJAcaT4U+IoUspqShnlEOU05QZlmDJBVaOaUt2ooVQRNY9aQq2htlKvUYeoEzR1mjnNgxZJS6WtopXTGmgXaPdpr+h0uhHdlR5Ol9BX0svpR+iX6AP0dwwNhhWDx4hnKBmbGAcYZxl3GK+YTKYZ04sZx1QwNzHrmOeZD5lvVVgqtip8FZHKCpVKlSaVGyovVKmqpqreqgtV81XLVI+pXlN9rkZVM1PjqQnUlqtVqp1Q61MbU2epO6iHqmeob1Q/pH5Z/YkGWcNMw09DpFGgsV/jvMYgC2MZs3gsIWsNq4Z1gTXEJrHN2Xx2KruY/R27iz2qqaE5QzNKM1ezUvOUZj8H45hx+Jx0TgnnKKeX836K3hTvKeIpG6Y0TLkxZVxrqpaXllirSKtRq0frvTau7aedpr1Fu1n7gQ5Bx0onXCdHZ4/OBZ3nU9lT3acKpxZNPTr1ri6qa6UbobtEd79up+6Ynr5egJ5Mb6feeb3n+hx9L/1U/W36p/VHDFgGswwkBtsMzhg8xTVxbzwdL8fb8VFDXcNAQ6VhlWGX4YSRudE8o9VGjUYPjGnGXOMk423GbcajJgYmISZLTepN7ppSTbmmKaY7TDtMx83MzaLN1pk1mz0x1zLnm+eb15vft2BaeFostqi2uGVJsuRaplnutrxuhVo5WaVYVVpds0atna0l1rutu6cRp7lOk06rntZnw7Dxtsm2qbcZsOXYBtuutm22fWFnYhdnt8Wuw+6TvZN9un2N/T0HDYfZDqsdWh1+c7RyFDpWOt6azpzuP33F9JbpL2dYzxDP2DPjthPLKcRpnVOb00dnF2e5c4PziIuJS4LLLpc+Lpsbxt3IveRKdPVxXeF60vWdm7Obwu2o26/uNu5p7ofcn8w0nymeWTNz0MPIQ+BR5dE/C5+VMGvfrH5PQ0+BZ7XnIy9jL5FXrdewt6V3qvdh7xc+9j5yn+M+4zw33jLeWV/MN8C3yLfLT8Nvnl+F30N/I/9k/3r/0QCngCUBZwOJgUGBWwL7+Hp8Ib+OPzrbZfay2e1BjKC5QRVBj4KtguXBrSFoyOyQrSH355jOkc5pDoVQfujW0Adh5mGLw34MJ4WHhVeGP45wiFga0TGXNXfR3ENz30T6RJZE3ptnMU85ry1KNSo+qi5qPNo3ujS6P8YuZlnM1VidWElsSxw5LiquNm5svt/87fOH4p3iC+N7F5gvyF1weaHOwvSFpxapLhIsOpZATIhOOJTwQRAqqBaMJfITdyWOCnnCHcJnIi/RNtGI2ENcKh5O8kgqTXqS7JG8NXkkxTOlLOW5hCepkLxMDUzdmzqeFpp2IG0yPTq9MYOSkZBxQqohTZO2Z+pn5mZ2y6xlhbL+xW6Lty8elQfJa7OQrAVZLQq2QqboVFoo1yoHsmdlV2a/zYnKOZarnivN7cyzytuQN5zvn//tEsIS4ZK2pYZLVy0dWOa9rGo5sjxxedsK4xUFK4ZWBqw8uIq2Km3VT6vtV5eufr0mek1rgV7ByoLBtQFr6wtVCuWFfevc1+1dT1gvWd+1YfqGnRs+FYmKrhTbF5cVf9go3HjlG4dvyr+Z3JS0qavEuWTPZtJm6ebeLZ5bDpaql+aXDm4N2dq0Dd9WtO319kXbL5fNKNu7g7ZDuaO/PLi8ZafJzs07P1SkVPRU+lQ27tLdtWHX+G7R7ht7vPY07NXbW7z3/T7JvttVAVVN1WbVZftJ+7P3P66Jqun4lvttXa1ObXHtxwPSA/0HIw6217nU1R3SPVRSj9Yr60cOxx++/p3vdy0NNg1VjZzG4iNwRHnk6fcJ3/ceDTradox7rOEH0x92HWcdL2pCmvKaRptTmvtbYlu6T8w+0dbq3nr8R9sfD5w0PFl5SvNUyWna6YLTk2fyz4ydlZ19fi753GDborZ752PO32oPb++6EHTh0kX/i+c7vDvOXPK4dPKy2+UTV7hXmq86X23qdOo8/pPTT8e7nLuarrlca7nuer21e2b36RueN87d9L158Rb/1tWeOT3dvfN6b/fF9/XfFt1+cif9zsu72Xcn7q28T7xf9EDtQdlD3YfVP1v+3Njv3H9qwHeg89HcR/cGhYPP/pH1jw9DBY+Zj8uGDYbrnjg+OTniP3L96fynQ89kzyaeF/6i/suuFxYvfvjV69fO0ZjRoZfyl5O/bXyl/erA6xmv28bCxh6+yXgzMV70VvvtwXfcdx3vo98PT+R8IH8o/2j5sfVT0Kf7kxmTk/8EA5jz/GMzLdsAAAAgY0hSTQAAeiUAAICDAAD5/wAAgOkAAHUwAADqYAAAOpgAABdvkl/FRgAAA6ZJREFUeNqM001IY1cUB/D/fYmm2sbR2lC1zYlgoRG6MpEyBlpxM9iFIGKFIm3s0lCKjOByhCLZCFqLBF1YFVJdSRbdFHRhBbULtRuFVBTzYRpJgo2mY5OX5N9Fo2TG+eiFA/dd3vvd8+65ByTxshARTdf1JySp6/oTEdFe9T5eg5lIcnBwkCSZyWS+exX40oyur68/KxaLf5Okw+H4X+A9JBaLfUySZ2dnnJqaosPhIAACeC34DJRKpb7IZrMcHx+nwWCgUopGo/EOKwf9fn/1CzERUevr6+9ls1mOjIwQAH0+H4PBIKPR6D2ofAQCgToRUeVYJUkuLy8TANfW1kiS8/PzCy84Mw4MDBAAZ2dnmc/nub+/X0MSEBF1cHDwMJVKsaGhgV6vl+l0mqOjo1+KyKfl1dze3l4NBoM/PZ+diFSLiIKIGBOJxA9bW1sEwNXVVSaTyQMRaRaRxrOzs+9J8ujoaE5EPhQRq67rcZ/PRwD0+/3Udf03EdEgIqZisZibnJykwWDg4eEhd3Z2xkXELCJvPpdBrYjUiEhL+Xo4HH4sIhUaAKNSqiIcDsNkMqG+vh6RSOQQQM7tdhsAQCkFAHC73UUATxcWFqypVApmsxnDw8OwWq2TADQNgAYAFosF+XweyWQSdru9BUBxcXFRB/4rEgDcPouIIx6P4+bmBi0tLSCpAzBqAIqnp6c/dnZ2IpfLYXNzE62traMADACKNputpr+/v8lms9UAKAAwiMjXe3t7KBQKqKurQy6Xi6K0i2l6evpROp1mbW0t29vbGY/Hb8/IVIqq2zlJXl1dsaOjg2azmefn5wwEAl+JSBVExCgi75PkzMwMlVJsbGxkIpFgPp8PX15ePopEIs3JZPITXdf/iEajbGpqolKKExMT1HWdHo/nIxGpgIgoEXnQ3d39kCTHxsYIgC6Xi3NzcwyHw8xkMozFYlxaWmJbWxuVUuzt7WUul6PX6/1cRN4WEe2uA0SkaWVl5XGpRVhdXU0A1DSNlZWVdz3qdDrZ09PDWCzG4+Pjn0XEWvp9KJKw2WwKwBsA3gHQHAqFfr24uMDGxgZ2d3cRiUQAAHa7HU6nE319fTg5Ofmlq6vrGwB/AngaCoWK6rbsNptNA1AJoA7Aux6Pp3NoaMhjsVg+QNmIRqO/u1yubwFEASRKUAEA7rASqABUAKgC8KAUb5XWCOAfAFcA/gJwDSB7C93DylCtdM8qABhLc5TumV6KQigUeubjfwcAHkQJ94ndWeYAAAAASUVORK5CYII=": IMAGE_PATH+"/handle-rotate.png",19,21);mxClient.IS_SVG&&(mxConstraintHandler.prototype.pointImage=Graph.createSvgImage(5,5,''));mxVertexHandler.prototype.handleImage=HoverIcons.prototype.mainHandle;mxVertexHandler.prototype.secondaryHandleImage=HoverIcons.prototype.secondaryHandle;mxEdgeHandler.prototype.handleImage=HoverIcons.prototype.mainHandle;mxEdgeHandler.prototype.terminalHandleImage=HoverIcons.prototype.terminalHandle;mxEdgeHandler.prototype.fixedHandleImage= @@ -2582,10 +2582,10 @@ Sidebar.prototype.roundDrop=HoverIcons.prototype.roundDrop);mxClient.IS_SVG||((n -20;mxEdgeHandler.prototype.parentHighlightEnabled=!0;mxEdgeHandler.prototype.dblClickRemoveEnabled=!0;mxEdgeHandler.prototype.straightRemoveEnabled=!0;mxEdgeHandler.prototype.virtualBendsEnabled=!0;mxEdgeHandler.prototype.mergeRemoveEnabled=!0;mxEdgeHandler.prototype.manageLabelHandle=!0;mxEdgeHandler.prototype.outlineConnect=!0;mxEdgeHandler.prototype.isAddVirtualBendEvent=function(a){return!mxEvent.isShiftDown(a.getEvent())};mxEdgeHandler.prototype.isCustomHandleEvent=function(a){return!mxEvent.isShiftDown(a.getEvent())}; if(Graph.touchStyle){if(mxClient.IS_TOUCH||0g||Math.abs(f)>g)null==this.div&&(this.div=this.createShape()),mxUtils.clearSelection(),this.update(d,c), +(this.useLeftButtonForPanning&&null==a.getState()||mxEvent.isControlDown(b)&&!mxEvent.isShiftDown(b))||this.usePopupTrigger&&mxEvent.isPopupTrigger(b)};mxRubberband.prototype.isSpaceEvent=function(a){return this.graph.isEnabled()&&!this.graph.isCellLocked(this.graph.getDefaultParent())&&mxEvent.isControlDown(a.getEvent())&&mxEvent.isShiftDown(a.getEvent())};mxRubberband.prototype.mouseUp=function(a,b){var c=null!=this.div&&"none"!=this.div.style.display,d=null,e=null,g=null,f=null;null!=this.first&& +null!=this.currentX&&null!=this.currentY&&(d=this.first.x,e=this.first.y,g=(this.currentX-d)/this.graph.view.scale,f=(this.currentY-e)/this.graph.view.scale,mxEvent.isAltDown(b.getEvent())||(g=this.graph.snap(g),f=this.graph.snap(f),this.graph.isGridEnabled()||(Math.abs(g)f||Math.abs(g)>f)null==this.div&&(this.div=this.createShape()),mxUtils.clearSelection(),this.update(d,c), this.isSpaceEvent(b)?(d=this.x+this.width,c=this.y+this.height,e=this.graph.view.scale,mxEvent.isAltDown(b.getEvent())||(this.width=this.graph.snap(this.width/e)*e,this.height=this.graph.snap(this.height/e)*e,this.graph.isGridEnabled()||(this.width=this.width?"0px 1px 0px 0px":"0px 1px 0px 1px",null==this.secondDiv&&(this.secondDiv=this.div.cloneNode(!0),this.div.parentNode.appendChild(this.secondDiv)),this.secondDiv.style.left=this.x+"px",this.secondDiv.style.top=this.y+"px",this.secondDiv.style.width=this.graph.container.clientWidth+"px",this.secondDiv.style.height= Math.max(0,this.height)+"px",this.secondDiv.style.borderWidth=0>=this.height?"1px 0px 0px 0px":"1px 0px 1px 0px"):(this.div.style.backgroundColor="",this.div.style.borderWidth="",this.div.style.borderStyle="",null!=this.secondDiv&&(this.secondDiv.parentNode.removeChild(this.secondDiv),this.secondDiv=null)),b.consume()}};var r=mxRubberband.prototype.reset;mxRubberband.prototype.reset=function(){null!=this.secondDiv&&(this.secondDiv.parentNode.removeChild(this.secondDiv),this.secondDiv=null);r.apply(this, @@ -2600,7 +2600,7 @@ function(a,b){B.apply(this,arguments);null!=this.rotationShape&&null!=this.rotat 1==this.graph.getSelectionCount()?"":"none");null!=this.specialHandle&&(this.specialHandle.node.style.display=this.graph.isEnabled()&&this.graph.getSelectionCount()';if(mxClient.IS_QUIRKS||8==document.documentMode)p.firstChild.style.margin="0px";null!=a&&a!=mxConstants.NONE?(h.setAttribute("checked","checked"),h.defaultChecked=!0,h.checked=!0):(h.removeAttribute("checked"),h.defaultChecked=!1,h.checked=!1);p.style.display=h.checked||k?"":"none";null!=e&&e(a);f||(n=a,(g||k||c()!=n)&& +BaseFormatPanel.prototype.createColorOption=function(a,c,d,b,f,e,k){var g=document.createElement("div");g.style.padding="6px 0px 1px 0px";g.style.whiteSpace="nowrap";g.style.overflow="hidden";g.style.width="200px";g.style.height=mxClient.IS_QUIRKS?"27px":"18px";var h=document.createElement("input");h.setAttribute("type","checkbox");h.style.margin="0px 6px 0px 0px";k||g.appendChild(h);var l=document.createElement("span");mxUtils.write(l,a);g.appendChild(l);var m=!1,n=c(),p=null,q=function(a,g,f){if(!m){m= +!0;p.innerHTML='
';if(mxClient.IS_QUIRKS||8==document.documentMode)p.firstChild.style.margin="0px";null!=a&&a!=mxConstants.NONE?(h.setAttribute("checked","checked"),h.defaultChecked=!0,h.checked=!0):(h.removeAttribute("checked"),h.defaultChecked=!1,h.checked=!1);p.style.display=h.checked||k?"":"none";null!=e&&e(a);g||(n=a,(f||k||c()!=n)&& d(n));m=!1}},p=mxUtils.button("",mxUtils.bind(this,function(a){this.editorUi.pickColor(n,function(a){q(a,null,!0)});mxEvent.consume(a)}));p.style.position="absolute";p.style.marginTop="-4px";p.style.right=mxClient.IS_QUIRKS?"0px":"20px";p.style.height="22px";p.className="geColorBtn";p.style.display=h.checked||k?"":"none";g.appendChild(p);mxEvent.addListener(g,"click",function(a){a=mxEvent.getSource(a);if(a==h||"INPUT"!=a.nodeName)a!=h&&(h.checked=!h.checked),h.checked||null==n||n==mxConstants.NONE|| b==mxConstants.NONE||(b=n),q(h.checked?b:mxConstants.NONE)});q(n,!0);null!=f&&(f.install(q),this.listeners.push(f));return g}; BaseFormatPanel.prototype.createCellColorOption=function(a,c,d,b,f){var e=this.editorUi,k=e.editor.graph;return this.createColorOption(a,function(){var a=k.view.getState(k.getSelectionCell());return null!=a?mxUtils.getValue(a.style,c,null):null},function(a){k.getModel().beginUpdate();try{null!=f&&f(a),k.setCellStyles(c,a,k.getSelectionCells()),e.fireEvent(new mxEventObject("styleChanged","keys",[c],"values",[a],"cells",k.getSelectionCells()))}finally{k.getModel().endUpdate()}},d||mxConstants.NONE, @@ -2712,8 +2712,8 @@ J.setAttribute("value",w[p]);mxUtils.write(J,mxResources.get(w[p]));I.appendChil rightToLeft:mxConstants.TEXT_DIRECTION_RTL},p=0;pa?-1:1:a===a?0:NaN:NaN},d=Math.abs(a-this.lastX),e=Math.abs(b-this.lastY),f=Math.sqrt(d*d+e*e);if(2>f){this.originalLineTo.apply(this.canvas,arguments);this.lastX=a;this.lastY=b;return}var g=Math.round(f/10),h=this.defaultVariation;5>g&&(g=5,h/=3);for(var O=c(a-this.lastX)*d/g,c=c(b-this.lastY)*e/g,d=d/f,e=e/f,f=0;fa?-1:1:a===a?0:NaN:NaN},d=Math.abs(a-this.lastX),e=Math.abs(b-this.lastY),g=Math.sqrt(d*d+e*e);if(2>g){this.originalLineTo.apply(this.canvas,arguments);this.lastX=a;this.lastY=b;return}var f=Math.round(g/10),h=this.defaultVariation;5>f&&(f=5,h/=3);for(var O=c(a-this.lastX)*d/f,c=c(b-this.lastY)*e/f,d=d/g,e=e/g,g=0;gf+h?a.y=c.y:a.x=c.x);return mxUtils.getPerimeterPoint(g,a,c)};mxStyleRegistry.putValue("parallelogramPerimeter",mxPerimeter.ParallelogramPerimeter);mxPerimeter.TrapezoidPerimeter=function(a,b,c,d){var e=n.prototype.size;null!=b&&(e= -mxUtils.getValue(b.style,"size",e));var f=a.x,g=a.y,h=a.width,k=a.height;b=null!=b?mxUtils.getValue(b.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST):mxConstants.DIRECTION_EAST;b==mxConstants.DIRECTION_EAST?(e=h*Math.max(0,Math.min(1,e)),g=[new mxPoint(f+e,g),new mxPoint(f+h-e,g),new mxPoint(f+h,g+k),new mxPoint(f,g+k),new mxPoint(f+e,g)]):b==mxConstants.DIRECTION_WEST?(e=h*Math.max(0,Math.min(1,e)),g=[new mxPoint(f,g),new mxPoint(f+h,g),new mxPoint(f+h-e,g+k),new mxPoint(f+e,g+k),new mxPoint(f, -g)]):b==mxConstants.DIRECTION_NORTH?(e=k*Math.max(0,Math.min(1,e)),g=[new mxPoint(f,g+e),new mxPoint(f+h,g),new mxPoint(f+h,g+k),new mxPoint(f,g+k-e),new mxPoint(f,g+e)]):(e=k*Math.max(0,Math.min(1,e)),g=[new mxPoint(f,g),new mxPoint(f+h,g+e),new mxPoint(f+h,g+k-e),new mxPoint(f,g+k),new mxPoint(f,g)]);k=a.getCenterX();a=a.getCenterY();a=new mxPoint(k,a);d&&(c.xf+h?a.y=c.y:a.x=c.x);return mxUtils.getPerimeterPoint(g,a,c)};mxStyleRegistry.putValue("trapezoidPerimeter",mxPerimeter.TrapezoidPerimeter); -mxPerimeter.StepPerimeter=function(a,b,c,d){var e="0"!=mxUtils.getValue(b.style,"fixedSize","0"),f=e?u.prototype.fixedSize:u.prototype.size;null!=b&&(f=mxUtils.getValue(b.style,"size",f));var g=a.x,h=a.y,k=a.width,l=a.height,O=a.getCenterX();a=a.getCenterY();b=null!=b?mxUtils.getValue(b.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST):mxConstants.DIRECTION_EAST;b==mxConstants.DIRECTION_EAST?(e=e?Math.max(0,Math.min(k,f)):k*Math.max(0,Math.min(1,f)),h=[new mxPoint(g,h),new mxPoint(g+k- -e,h),new mxPoint(g+k,a),new mxPoint(g+k-e,h+l),new mxPoint(g,h+l),new mxPoint(g+e,a),new mxPoint(g,h)]):b==mxConstants.DIRECTION_WEST?(e=e?Math.max(0,Math.min(k,f)):k*Math.max(0,Math.min(1,f)),h=[new mxPoint(g+e,h),new mxPoint(g+k,h),new mxPoint(g+k-e,a),new mxPoint(g+k,h+l),new mxPoint(g+e,h+l),new mxPoint(g,a),new mxPoint(g+e,h)]):b==mxConstants.DIRECTION_NORTH?(e=e?Math.max(0,Math.min(l,f)):l*Math.max(0,Math.min(1,f)),h=[new mxPoint(g,h+e),new mxPoint(O,h),new mxPoint(g+k,h+e),new mxPoint(g+k, -h+l),new mxPoint(O,h+l-e),new mxPoint(g,h+l),new mxPoint(g,h+e)]):(e=e?Math.max(0,Math.min(l,f)):l*Math.max(0,Math.min(1,f)),h=[new mxPoint(g,h),new mxPoint(O,h+e),new mxPoint(g+k,h),new mxPoint(g+k,h+l-e),new mxPoint(O,h+l),new mxPoint(g,h+l-e),new mxPoint(g,h)]);O=new mxPoint(O,a);d&&(c.xg+k?O.y=c.y:O.x=c.x);return mxUtils.getPerimeterPoint(h,O,c)};mxStyleRegistry.putValue("stepPerimeter",mxPerimeter.StepPerimeter);mxPerimeter.HexagonPerimeter2=function(a,b,c,d){var e=z.prototype.size;null!= -b&&(e=mxUtils.getValue(b.style,"size",e));var f=a.x,g=a.y,h=a.width,k=a.height,l=a.getCenterX();a=a.getCenterY();b=null!=b?mxUtils.getValue(b.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST):mxConstants.DIRECTION_EAST;b==mxConstants.DIRECTION_NORTH||b==mxConstants.DIRECTION_SOUTH?(e=k*Math.max(0,Math.min(1,e)),g=[new mxPoint(l,g),new mxPoint(f+h,g+e),new mxPoint(f+h,g+k-e),new mxPoint(l,g+k),new mxPoint(f,g+k-e),new mxPoint(f,g+e),new mxPoint(l,g)]):(e=h*Math.max(0,Math.min(1,e)),g=[new mxPoint(f+ -e,g),new mxPoint(f+h-e,g),new mxPoint(f+h,a),new mxPoint(f+h-e,g+k),new mxPoint(f+e,g+k),new mxPoint(f,a),new mxPoint(f+e,g)]);l=new mxPoint(l,a);d&&(c.xf+h?l.y=c.y:l.x=c.x);return mxUtils.getPerimeterPoint(g,l,c)};mxStyleRegistry.putValue("hexagonPerimeter2",mxPerimeter.HexagonPerimeter2);mxUtils.extend(N,mxShape);N.prototype.size=10;N.prototype.paintBackground=function(a,b,c,d,e){var f=parseFloat(mxUtils.getValue(this.style,"size",this.size));a.translate(b,c);a.ellipse((d-f)/2,0,f,f);a.fillAndStroke(); -a.begin();a.moveTo(d/2,f);a.lineTo(d/2,e);a.end();a.stroke()};mxCellRenderer.registerShape("lollipop",N);mxUtils.extend(Q,mxShape);Q.prototype.size=10;Q.prototype.inset=2;Q.prototype.paintBackground=function(a,b,c,d,e){var f=parseFloat(mxUtils.getValue(this.style,"size",this.size)),g=parseFloat(mxUtils.getValue(this.style,"inset",this.inset))+this.strokewidth;a.translate(b,c);a.begin();a.moveTo(d/2,f+g);a.lineTo(d/2,e);a.end();a.stroke();a.begin();a.moveTo((d-f)/2-g,f/2);a.quadTo((d-f)/2-g,f+g,d/ -2,f+g);a.quadTo((d+f)/2+g,f+g,(d+f)/2+g,f/2);a.end();a.stroke()};mxCellRenderer.registerShape("requires",Q);mxUtils.extend(P,mxCylinder);P.prototype.jettyWidth=32;P.prototype.jettyHeight=12;P.prototype.redrawPath=function(a,b,c,d,e,f){var g=parseFloat(mxUtils.getValue(this.style,"jettyWidth",this.jettyWidth));b=parseFloat(mxUtils.getValue(this.style,"jettyHeight",this.jettyHeight));c=g/2;var g=c+g/2,h=.3*e-b/2,k=.7*e-b/2;f?(a.moveTo(c,h),a.lineTo(g,h),a.lineTo(g,h+b),a.lineTo(c,h+b),a.moveTo(c,k), -a.lineTo(g,k),a.lineTo(g,k+b),a.lineTo(c,k+b)):(a.moveTo(c,0),a.lineTo(d,0),a.lineTo(d,e),a.lineTo(c,e),a.lineTo(c,k+b),a.lineTo(0,k+b),a.lineTo(0,k),a.lineTo(c,k),a.lineTo(c,h+b),a.lineTo(0,h+b),a.lineTo(0,h),a.lineTo(c,h),a.close());a.end()};mxCellRenderer.registerShape("component",P);mxUtils.extend(F,mxDoubleEllipse);F.prototype.outerStroke=!0;F.prototype.paintVertexShape=function(a,b,c,d,e){var f=Math.min(4,Math.min(d/5,e/5));0g+h?a.y=c.y:a.x=c.x);return mxUtils.getPerimeterPoint(f,a,c)};mxStyleRegistry.putValue("parallelogramPerimeter",mxPerimeter.ParallelogramPerimeter);mxPerimeter.TrapezoidPerimeter=function(a,b,c,d){var e=n.prototype.size;null!=b&&(e= +mxUtils.getValue(b.style,"size",e));var g=a.x,f=a.y,h=a.width,k=a.height;b=null!=b?mxUtils.getValue(b.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST):mxConstants.DIRECTION_EAST;b==mxConstants.DIRECTION_EAST?(e=h*Math.max(0,Math.min(1,e)),f=[new mxPoint(g+e,f),new mxPoint(g+h-e,f),new mxPoint(g+h,f+k),new mxPoint(g,f+k),new mxPoint(g+e,f)]):b==mxConstants.DIRECTION_WEST?(e=h*Math.max(0,Math.min(1,e)),f=[new mxPoint(g,f),new mxPoint(g+h,f),new mxPoint(g+h-e,f+k),new mxPoint(g+e,f+k),new mxPoint(g, +f)]):b==mxConstants.DIRECTION_NORTH?(e=k*Math.max(0,Math.min(1,e)),f=[new mxPoint(g,f+e),new mxPoint(g+h,f),new mxPoint(g+h,f+k),new mxPoint(g,f+k-e),new mxPoint(g,f+e)]):(e=k*Math.max(0,Math.min(1,e)),f=[new mxPoint(g,f),new mxPoint(g+h,f+e),new mxPoint(g+h,f+k-e),new mxPoint(g,f+k),new mxPoint(g,f)]);k=a.getCenterX();a=a.getCenterY();a=new mxPoint(k,a);d&&(c.xg+h?a.y=c.y:a.x=c.x);return mxUtils.getPerimeterPoint(f,a,c)};mxStyleRegistry.putValue("trapezoidPerimeter",mxPerimeter.TrapezoidPerimeter); +mxPerimeter.StepPerimeter=function(a,b,c,d){var e="0"!=mxUtils.getValue(b.style,"fixedSize","0"),g=e?u.prototype.fixedSize:u.prototype.size;null!=b&&(g=mxUtils.getValue(b.style,"size",g));var f=a.x,h=a.y,k=a.width,l=a.height,O=a.getCenterX();a=a.getCenterY();b=null!=b?mxUtils.getValue(b.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST):mxConstants.DIRECTION_EAST;b==mxConstants.DIRECTION_EAST?(e=e?Math.max(0,Math.min(k,g)):k*Math.max(0,Math.min(1,g)),h=[new mxPoint(f,h),new mxPoint(f+k- +e,h),new mxPoint(f+k,a),new mxPoint(f+k-e,h+l),new mxPoint(f,h+l),new mxPoint(f+e,a),new mxPoint(f,h)]):b==mxConstants.DIRECTION_WEST?(e=e?Math.max(0,Math.min(k,g)):k*Math.max(0,Math.min(1,g)),h=[new mxPoint(f+e,h),new mxPoint(f+k,h),new mxPoint(f+k-e,a),new mxPoint(f+k,h+l),new mxPoint(f+e,h+l),new mxPoint(f,a),new mxPoint(f+e,h)]):b==mxConstants.DIRECTION_NORTH?(e=e?Math.max(0,Math.min(l,g)):l*Math.max(0,Math.min(1,g)),h=[new mxPoint(f,h+e),new mxPoint(O,h),new mxPoint(f+k,h+e),new mxPoint(f+k, +h+l),new mxPoint(O,h+l-e),new mxPoint(f,h+l),new mxPoint(f,h+e)]):(e=e?Math.max(0,Math.min(l,g)):l*Math.max(0,Math.min(1,g)),h=[new mxPoint(f,h),new mxPoint(O,h+e),new mxPoint(f+k,h),new mxPoint(f+k,h+l-e),new mxPoint(O,h+l),new mxPoint(f,h+l-e),new mxPoint(f,h)]);O=new mxPoint(O,a);d&&(c.xf+k?O.y=c.y:O.x=c.x);return mxUtils.getPerimeterPoint(h,O,c)};mxStyleRegistry.putValue("stepPerimeter",mxPerimeter.StepPerimeter);mxPerimeter.HexagonPerimeter2=function(a,b,c,d){var e=z.prototype.size;null!= +b&&(e=mxUtils.getValue(b.style,"size",e));var g=a.x,f=a.y,h=a.width,k=a.height,l=a.getCenterX();a=a.getCenterY();b=null!=b?mxUtils.getValue(b.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST):mxConstants.DIRECTION_EAST;b==mxConstants.DIRECTION_NORTH||b==mxConstants.DIRECTION_SOUTH?(e=k*Math.max(0,Math.min(1,e)),f=[new mxPoint(l,f),new mxPoint(g+h,f+e),new mxPoint(g+h,f+k-e),new mxPoint(l,f+k),new mxPoint(g,f+k-e),new mxPoint(g,f+e),new mxPoint(l,f)]):(e=h*Math.max(0,Math.min(1,e)),f=[new mxPoint(g+ +e,f),new mxPoint(g+h-e,f),new mxPoint(g+h,a),new mxPoint(g+h-e,f+k),new mxPoint(g+e,f+k),new mxPoint(g,a),new mxPoint(g+e,f)]);l=new mxPoint(l,a);d&&(c.xg+h?l.y=c.y:l.x=c.x);return mxUtils.getPerimeterPoint(f,l,c)};mxStyleRegistry.putValue("hexagonPerimeter2",mxPerimeter.HexagonPerimeter2);mxUtils.extend(N,mxShape);N.prototype.size=10;N.prototype.paintBackground=function(a,b,c,d,e){var g=parseFloat(mxUtils.getValue(this.style,"size",this.size));a.translate(b,c);a.ellipse((d-g)/2,0,g,g);a.fillAndStroke(); +a.begin();a.moveTo(d/2,g);a.lineTo(d/2,e);a.end();a.stroke()};mxCellRenderer.registerShape("lollipop",N);mxUtils.extend(Q,mxShape);Q.prototype.size=10;Q.prototype.inset=2;Q.prototype.paintBackground=function(a,b,c,d,e){var g=parseFloat(mxUtils.getValue(this.style,"size",this.size)),f=parseFloat(mxUtils.getValue(this.style,"inset",this.inset))+this.strokewidth;a.translate(b,c);a.begin();a.moveTo(d/2,g+f);a.lineTo(d/2,e);a.end();a.stroke();a.begin();a.moveTo((d-g)/2-f,g/2);a.quadTo((d-g)/2-f,g+f,d/ +2,g+f);a.quadTo((d+g)/2+f,g+f,(d+g)/2+f,g/2);a.end();a.stroke()};mxCellRenderer.registerShape("requires",Q);mxUtils.extend(P,mxCylinder);P.prototype.jettyWidth=32;P.prototype.jettyHeight=12;P.prototype.redrawPath=function(a,b,c,d,e,g){var f=parseFloat(mxUtils.getValue(this.style,"jettyWidth",this.jettyWidth));b=parseFloat(mxUtils.getValue(this.style,"jettyHeight",this.jettyHeight));c=f/2;var f=c+f/2,h=.3*e-b/2,k=.7*e-b/2;g?(a.moveTo(c,h),a.lineTo(f,h),a.lineTo(f,h+b),a.lineTo(c,h+b),a.moveTo(c,k), +a.lineTo(f,k),a.lineTo(f,k+b),a.lineTo(c,k+b)):(a.moveTo(c,0),a.lineTo(d,0),a.lineTo(d,e),a.lineTo(c,e),a.lineTo(c,k+b),a.lineTo(0,k+b),a.lineTo(0,k),a.lineTo(c,k),a.lineTo(c,h+b),a.lineTo(0,h+b),a.lineTo(0,h),a.lineTo(c,h),a.close());a.end()};mxCellRenderer.registerShape("component",P);mxUtils.extend(F,mxDoubleEllipse);F.prototype.outerStroke=!0;F.prototype.paintVertexShape=function(a,b,c,d,e){var g=Math.min(4,Math.min(d/5,e/5));0"],d=0;d");for(var e=0;e
");c.push("")}c.push("");return c.join("")}var d=this.editorUi.editor.graph;a=a.addItem("",null,mxUtils.bind(this,function(a){var b=d.getParentByName(mxEvent.getSource(a),"TD");if(null!=b){var e=d.getParentByName(b,"TR"),f=d.cellEditor.textarea.getElementsByTagName("table");a=[];for(var k=0;k';a.firstChild.innerHTML="";var f=function(a,c){var d=document.createElement("table");d.setAttribute("border","1");d.style.borderCollapse="collapse";mxClient.IS_QUIRKS||d.setAttribute("cellPadding", "8");for(var e=0;e.io',"Draw.io",null,null,this.getTagsForStencil("mxgraph.weblogos","drawio draw io draw.io","web logos logo").join(" ")),this.createVertexTemplateEntry(a+"dribbble;fillColor=#EB548D",67.4,67.2,"","Dribbble",null,null,this.getTagsForStencil("mxgraph.weblogos","dribbble","web logos logo").join(" ")),this.createVertexTemplateEntry(a+"dropbox;fillColor=#0287EA",73.4,62,"","Dropbox2",null, +null,this.getTagsForStencil("mxgraph.weblogos","dropbox","web logos logo").join(" ")),this.createVertexTemplateEntry(a+"drupal",60.6,69,"","Drupal",null,null,this.getTagsForStencil("mxgraph.weblogos","drupal","web logos logo").join(" ")),this.createVertexTemplateEntry(a+"dzone",.2*438,61.2,"","Dzone",null,null,this.getTagsForStencil("mxgraph.weblogos","dzone","web logos logo").join(" ")),this.createVertexTemplateEntry(a+"ebay",81.2,34.4,"","Ebay",null,null,this.getTagsForStencil("mxgraph.weblogos", +"ebay","web logos logo").join(" ")),this.createVertexTemplateEntry(a+"edmodo;fillColor=#276CB0;strokeColor=none",69.2,73.8,"","Edmodo",null,null,this.getTagsForStencil("mxgraph.weblogos","edmodo","web logos logo").join(" ")),this.createVertexTemplateEntry(a+"evernote;fillColor=#3F3F3F",.2*317,75.2,"","Evernote",null,null,this.getTagsForStencil("mxgraph.weblogos","evernote","web logos logo").join(" ")),this.createVertexTemplateEntry(a+"fancy;fillColor=#6DB3E3",39.2,79,"","Fancy",null,null,this.getTagsForStencil("mxgraph.weblogos", +"fancy","web logos logo").join(" ")),this.createVertexTemplateEntry(a+"fark;fillColor=#B1B0C7;gradientColor=#ffffff;strokeColor=#B1B0C7",44.2,70.2,"","Fark",null,null,this.getTagsForStencil("mxgraph.weblogos","fark","web logos logo").join(" ")),this.createVertexTemplateEntry(a+"fashiolista",.2*388,73.2,"","Fashiolista",null,null,this.getTagsForStencil("mxgraph.weblogos","fashiolista","web logos logo").join(" ")),this.createVertexTemplateEntry(a+"feed;fillColor=#000000",.2*302,59.2,"","Feed",null, +null,this.getTagsForStencil("mxgraph.weblogos","feed","web logos logo").join(" ")),this.createVertexTemplateEntry(a+"feedburner",68.4,74.4,"","Feedburner",null,null,this.getTagsForStencil("mxgraph.weblogos","feedburner","web logos logo").join(" ")),this.createVertexTemplateEntry("image;image=img/lib/atlassian/Fisheye_Logo.svg;",71,59,"","Fisheye",null,null,this.getTagsForStencil("mxgraph.weblogos","fisheye logo","web logos logo").join(" ")),this.createVertexTemplateEntry(a+"flickr",71.2,.2*156,"", +"Flickr",null,null,this.getTagsForStencil("mxgraph.weblogos","flickr","web logos logo").join(" ")),this.createVertexTemplateEntry(a+"folkd;fillColor=#165AA6",.2*419,43.6,"","Folkd",null,null,this.getTagsForStencil("mxgraph.weblogos","folkd","web logos logo").join(" ")),this.createVertexTemplateEntry(a+"forrst;fillColor=#27431F",.2*264,73.2,"","Forrst",null,null,this.getTagsForStencil("mxgraph.weblogos","forrst","web logos logo").join(" ")),this.createVertexTemplateEntry(a+"fotolog;fillColor=#000000;strokeColor=none", +47.6,47.6,"","Fotolog",null,null,this.getTagsForStencil("mxgraph.weblogos","fotolog","web logos logo").join(" ")),this.createVertexTemplateEntry(a+"freshbump;fillColor=#C2D952;strokeColor=none",71.2,76,"","Freshbump",null,null,this.getTagsForStencil("mxgraph.weblogos","freshbump","web logos logo").join(" ")),this.createVertexTemplateEntry(a+"fresqui",102.4,102.4,"","Fresqui",null,null,this.getTagsForStencil("mxgraph.weblogos","fresqui","web logos logo").join(" ")),this.createVertexTemplateEntry(a+ +"friendfeed;fillColor=#4172BB",73.8,71,"","Friendfeed",null,null,this.getTagsForStencil("mxgraph.weblogos","fiendfeed","web logos logo").join(" ")),this.createVertexTemplateEntry(a+"funp",75,40,"","Funp",null,null,this.getTagsForStencil("mxgraph.weblogos","funp","web logos logo").join(" ")),this.createVertexTemplateEntry(a+"fwisp;fillColor=#66676A;strokeColor=none",65.4,66,"","Fwisp",null,null,this.getTagsForStencil("mxgraph.weblogos","fwisp","web logos logo").join(" ")),this.createVertexTemplateEntry(a+ +"gabbr;fillColor=#F05B1E",64.4,66,"","Gabbr",null,null,this.getTagsForStencil("mxgraph.weblogos","gabbr","web logos logo").join(" ")),this.createVertexTemplateEntry(a+"gamespot",.2*408,.2*408,"","Gamespot",null,null,this.getTagsForStencil("mxgraph.weblogos","gamespot","web logos logo").join(" ")),this.createVertexTemplateEntry(a+"github",75,75,"","Github",null,null,this.getTagsForStencil("mxgraph.weblogos","github","web logos logo").join(" ")),this.createVertexTemplateEntry(a+"gmail",64.8,.2*234, +"","Gmail",null,null,this.getTagsForStencil("mxgraph.weblogos","gmail","web logos logo").join(" ")),this.createVertexTemplateEntry(a+"google",65.2,69.4,"","Google",null,null,this.getTagsForStencil("mxgraph.weblogos","google","web logos logo").join(" ")),this.createVertexTemplateEntry(a+"google_drive",66.4,58,"","Google Drive",null,null,this.getTagsForStencil("mxgraph.weblogos","google drive","web logos logo").join(" ")),this.createVertexTemplateEntry(a+"google_hangout;fillColor=#4BA139;strokeColor=none", +64.8,75.4,"","Google Hangout",null,null,this.getTagsForStencil("mxgraph.weblogos","google hangout","web logos logo").join(" ")),this.createVertexTemplateEntry(a+"google_play;fillColor=#000000",69.4,20.6,"","Google Play",null,null,this.getTagsForStencil("mxgraph.weblogos","google play","web logos logo").join(" ")),this.createVertexTemplateEntry(a+"google_play_light;fillColor=#66E8F3;gradientColor=#1C7CBA",60,10.4,"","Google Play Light",null,null,this.getTagsForStencil("mxgraph.weblogos","google play light", +"web logos logo").join(" ")),this.createVertexTemplateEntry(a+"google_photos",87.2,87.2,"","Google Photos",null,null,this.getTagsForStencil("mxgraph.weblogos","google photos","web logos logo").join(" ")),this.createVertexTemplateEntry(a+"google_plus;fillColor=#DD4C40;strokeColor=none",.2*328,44,"","Google+",null,null,this.getTagsForStencil("mxgraph.weblogos","google plus","web logos logo").join(" ")),this.createVertexTemplateEntry(a+"grooveshark;fillColor=#000000;strokeColor=none",62.2,62.2,"","Grooveshark", +null,null,this.getTagsForStencil("mxgraph.weblogos","grooveshark","web logos logo").join(" ")),this.createVertexTemplateEntry(a+"hatena",86.2,44.2,"","Hatena",null,null,this.getTagsForStencil("mxgraph.weblogos","hatena","web logos logo").join(" ")),this.createVertexTemplateEntry("image;image=img/lib/atlassian/Hipchat_Logo.svg;",66,62,"","Hipchat",null,null,this.getTagsForStencil("mxgraph.weblogos","hipchat logo atlassian","web logos logo").join(" ")),this.createVertexTemplateEntry(a+"html5",.2*262, +74,"","HTML5",null,null,this.getTagsForStencil("mxgraph.weblogos","html5 html","web logos logo").join(" ")),this.createVertexTemplateEntry(a+"identi.ca",74.2,47.6,"","Identi.ca",null,null,this.getTagsForStencil("mxgraph.weblogos","identi.ca","web logos logo").join(" ")),this.createVertexTemplateEntry(a+"instagram;fillColor=#6FC0E4;gradientColor=#1E305B",72.2,72.2,"","Instagram",null,null,this.getTagsForStencil("mxgraph.weblogos","instagram","web logos logo").join(" ")),this.createVertexTemplateEntry(a+ +"instapaper",27.6,70.2,"","Instapaper",null,null,this.getTagsForStencil("mxgraph.weblogos","instapaper","web logos logo").join(" ")),this.createVertexTemplateEntry(a+"ios;fillColor=#695D5D;gradientColor=#100E0E",.2*368,.2*197,"","iOS",null,null,this.getTagsForStencil("mxgraph.weblogos","ios","web logos logo").join(" ")),this.createVertexTemplateEntry(a+"jamespot;fillColor=#695D5D;gradientColor=#100E0E",78,78,"","Jamespot",null,null,this.getTagsForStencil("mxgraph.weblogos","jamespot","web logos logo").join(" ")), +this.createVertexTemplateEntry(a+"java",34.4,65,"","Java",null,null,this.getTagsForStencil("mxgraph.weblogos","java","web logos logo").join(" ")),this.createVertexTemplateEntry("image;image=img/lib/atlassian/Jira_Logo.svg;",72,72,"","Jira",null,null,this.getTagsForStencil("mxgraph.weblogos","jira logo","web logos logo").join(" ")),this.createVertexTemplateEntry("image;image=img/lib/atlassian/Jira_Core_Logo.svg;",55,66,"","Jira Core",null,null,this.getTagsForStencil("mxgraph.weblogos","jira core logo atlassian", +"web logos logo").join(" ")),this.createVertexTemplateEntry("image;image=img/lib/atlassian/Jira_Service_Desk_Logo.svg;",59,76,"","Jira Service Desk",null,null,this.getTagsForStencil("mxgraph.weblogos","jira service desk logo atlassian","web logos logo").join(" ")),this.createVertexTemplateEntry("image;image=img/lib/atlassian/Jira_Software_Logo.svg;",74,76,"","Jira Software",null,null,this.getTagsForStencil("mxgraph.weblogos","jira software logo atlassian","web logos logo").join(" ")),this.createVertexTemplateEntry(a+ +"joomla;fillColor=#1F457D;gradientColor=#081220",66,.2*328,"","Joomla",null,null,this.getTagsForStencil("mxgraph.weblogos","joomla","web logos logo").join(" ")),this.createVertexTemplateEntry(a+"jquery;fillColor=#0BB9EA;gradientColor=#032F80",73.8,67,"","Jquery",null,null,this.getTagsForStencil("mxgraph.weblogos","jquery","web logos logo").join(" ")),this.createVertexTemplateEntry(a+"json",70,75.8,"","JSON",null,null,this.getTagsForStencil("mxgraph.weblogos","json","web logos logo").join(" ")),this.createVertexTemplateEntry(a+ +"json_2",80.4,.2*126,"","JSON",null,null,this.getTagsForStencil("mxgraph.weblogos","json","web logos logo").join(" ")),this.createVertexTemplateEntry(a+"last.fm;fillColor=#F33543;gradientColor=#BD0E11",83.2,50,"","Last.fm",null,null,this.getTagsForStencil("mxgraph.weblogos","last.fm last fm","web logos logo").join(" ")),this.createVertexTemplateEntry(a+"linkagogo;fillColor=#F6F5FA;gradientColor=#C8C1E1",102.2,80,"","Linkagogo",null,null,this.getTagsForStencil("mxgraph.weblogos","linkagogo","web logos logo").join(" ")), +this.createVertexTemplateEntry(a+"linkedin;fillColor=#0095DB;gradientColor=#006391",.2*287,60.6,"","LinkedIn",null,null,this.getTagsForStencil("mxgraph.weblogos","linkedin","web logos logo").join(" ")),this.createVertexTemplateEntry(a+"livejournal;fillColor=#2690E5;gradientColor=#0A2463",64,.2*343,"","Livejournal",null,null,this.getTagsForStencil("mxgraph.weblogos","livejournal","web logos logo").join(" ")),this.createVertexTemplateEntry(a+"mail.ru;fillColor=#267BE0;gradientColor=#0A1F42",81.2,.2* +393,"","Mail.ru",null,null,this.getTagsForStencil("mxgraph.weblogos","mail.ru","web logos logo").join(" ")),this.createVertexTemplateEntry(a+"mathoverflow;fillColor=#656463;gradientColor=#F28711;gradientDirection=east",59,48.2,"","MathOverflow",null,null,this.getTagsForStencil("mxgraph.weblogos","mathoverflow","web logos logo").join(" ")),this.createVertexTemplateEntry(a+"meetup;fillColor=#413E3E;strokeColor=none",74.8,30,"","Meetup",null,null,this.getTagsForStencil("mxgraph.weblogos","meetup","web logos logo").join(" ")), +this.createVertexTemplateEntry(a+"meneame",76,.2*338,"","Meneame",null,null,this.getTagsForStencil("mxgraph.weblogos","meneame","web logos logo").join(" ")),this.createVertexTemplateEntry(a+"messenger",.2*413,.2*384,"","Messenger",null,null,this.getTagsForStencil("mxgraph.weblogos","messenger","web logos logo").join(" ")),this.createVertexTemplateEntry(a+"messenger_2",64.4,64.8,"","Messenger",null,null,this.getTagsForStencil("mxgraph.weblogos","messenger","web logos logo").join(" ")),this.createVertexTemplateEntry(a+ +"messenger_3;fillColor=#437BBD;strokeColor=#dddddd",64.4,64.8,"","Messenger",null,null,this.getTagsForStencil("mxgraph.weblogos","messenger","web logos logo").join(" ")),this.createVertexTemplateEntry(a+"mind_body_green;strokeColor=#888888",81.4,.2*464,"","Mind Body Green",null,null,this.getTagsForStencil("mxgraph.weblogos","mind body green","web logos logo").join(" ")),this.createVertexTemplateEntry(a+"mongodb",41.2,86.2,"","MongoDb",null,null,this.getTagsForStencil("mxgraph.weblogos","mongodb", +"web logos logo").join(" ")),this.createVertexTemplateEntry(a+"myspace;fillColor=#003399;strokeColor=none",63,70.2,"","MySpace",null,null,this.getTagsForStencil("mxgraph.weblogos","myspace","web logos logo").join(" ")),this.createVertexTemplateEntry(a+"n4g;fillColor=#000000;strokeColor=none",88.2,31.8,"","N4g",null,null,this.getTagsForStencil("mxgraph.weblogos","n4g","web logos logo").join(" ")),this.createVertexTemplateEntry(a+"netlog;fillColor=#F42424;strokeColor=none",.2*383,68.8,"","Netlog",null, +null,this.getTagsForStencil("mxgraph.weblogos","netlog","web logos logo").join(" ")),this.createVertexTemplateEntry(a+"netvibes;fillColor=#84BD00;strokeColor=none",.2*309,.2*309,"","Netvibes",null,null,this.getTagsForStencil("mxgraph.weblogos","netvibes","web logos logo").join(" ")),this.createVertexTemplateEntry(a+"netvouz",57.2,.2*287,"","Netvouz",null,null,this.getTagsForStencil("mxgraph.weblogos","netvouz","web logos logo").join(" ")),this.createVertexTemplateEntry(a+"networkedblogs",.2*394,.2* +394,"","Networkedblogs",null,null,this.getTagsForStencil("mxgraph.weblogos","networkedblogs","web logos logo").join(" ")),this.createVertexTemplateEntry(a+"newsvine;fillColor=#005221;strokeColor=none",40.6,77.2,"","Newsvine",null,null,this.getTagsForStencil("mxgraph.weblogos","newsvine","web logos logo").join(" ")),this.createVertexTemplateEntry(a+"odnoklassniki;fillColor=#F58220;strokeColor=none",.2*247,82,"","Odnoklassniki",null,null,this.getTagsForStencil("mxgraph.weblogos","odnoklassniki","web logos logo").join(" ")), +this.createVertexTemplateEntry(a+"oknotizie",.2*237,70.4,"","Oknotizie",null,null,this.getTagsForStencil("mxgraph.weblogos","oknotizie","web logos logo").join(" ")),this.createVertexTemplateEntry(a+"onedrive;fillColor=#094AB1;strokeColor=none",71.2,43.2,"","OneDrive",null,null,this.getTagsForStencil("mxgraph.weblogos","onedrive","web logos logo").join(" ")),this.createVertexTemplateEntry(a+"oracle;fillColor=#FF0000;strokeColor=none",90,23,"","Oracle",null,null,this.getTagsForStencil("mxgraph.weblogos", +"oracle","web logos logo").join(" ")),this.createVertexTemplateEntry(a+"paypal",51.2,58,"","Paypal",null,null,this.getTagsForStencil("mxgraph.weblogos","paypal","web logos logo").join(" ")),this.createVertexTemplateEntry(a+"phone;fillColor=#36BE0F;strokeColor=none",.2*289,54.2,"","Phone",null,null,this.getTagsForStencil("mxgraph.weblogos","phone","web logos logo").join(" ")),this.createVertexTemplateEntry(a+"phonefavs",64.4,.2*394,"","Phonefavs",null,null,this.getTagsForStencil("mxgraph.weblogos", +"phonefavs","web logos logo").join(" ")),this.createVertexTemplateEntry(a+"pinterest;fillColor=#BD081C;strokeColor=none",.2*384,74.4,"","Pinterest",null,null,this.getTagsForStencil("mxgraph.weblogos","pinterest","web logos logo").join(" ")),this.createVertexTemplateEntry(a+"plaxo;fillColor=#414F5C;strokeColor=none",80,80,"","Plaxo",null,null,this.getTagsForStencil("mxgraph.weblogos","plaxo","web logos logo").join(" ")),this.createVertexTemplateEntry(a+"playfire;fillColor=#FDA21A;gradientColor=#FEE635;strokeColor=none", +62,61.6,"","Playfire",null,null,this.getTagsForStencil("mxgraph.weblogos","playfire","web logos logo").join(" ")),this.createVertexTemplateEntry(a+"plurk;fillColor=#E9443D;strokeColor=none",102.4,102.4,"","Plurk",null,null,this.getTagsForStencil("mxgraph.weblogos","plurk","web logos logo").join(" ")),this.createVertexTemplateEntry(a+"pocket;fillColor=#EE4056;strokeColor=none",.2*314,.2*289,"","Pocket",null,null,this.getTagsForStencil("mxgraph.weblogos","pocket","web logos logo").join(" ")),this.createVertexTemplateEntry(a+ +"protopage;fillColor=#4B78C0;gradientColor=#294282",.2*394,80,"","Protopage",null,null,this.getTagsForStencil("mxgraph.weblogos","protopage","web logos logo").join(" ")),this.createVertexTemplateEntry(a+"readernaut;fillColor=#000000;strokeColor=none",72,72,"","Readernaut",null,null,this.getTagsForStencil("mxgraph.weblogos","readernaut","web logos logo").join(" ")),this.createVertexTemplateEntry(a+"reddit;fillColor=#F3F8FC;gradientColor=#B4D2F0",88,.2*368,"","Reddit",null,null,this.getTagsForStencil("mxgraph.weblogos", +"reddit","web logos logo").join(" ")),this.createVertexTemplateEntry(a+"rss;fillColor=#F56800;strokeColor=none",.2*408,.2*408,"","RSS",null,null,this.getTagsForStencil("mxgraph.weblogos","rss","web logos logo").join(" ")),this.createVertexTemplateEntry(a+"scoopit;fillColor=#6CAB36;strokeColor=none",58,70,"","Scoopit",null,null,this.getTagsForStencil("mxgraph.weblogos","scoopit","web logos logo").join(" ")),this.createVertexTemplateEntry(a+"scribd;fillColor=#3D3533;strokeColor=none",.2*289,69.2,"", +"Scribd",null,null,this.getTagsForStencil("mxgraph.weblogos","scribd","web logos logo").join(" ")),this.createVertexTemplateEntry(a+"segnalo",.2*403,.2*389,"","Segnalo",null,null,this.getTagsForStencil("mxgraph.weblogos","segnalo","web logos logo").join(" ")),this.createVertexTemplateEntry(a+"sina",.2*429,.2*343,"","Sina",null,null,this.getTagsForStencil("mxgraph.weblogos","sina","web logos logo").join(" ")),this.createVertexTemplateEntry(a+"sitejot",77.2,66,"","Sitejot",null,null,this.getTagsForStencil("mxgraph.weblogos", +"sitejot","web logos logo").join(" ")),this.createVertexTemplateEntry(a+"skype;fillColor=#2AACE2;strokeColor=none",.2*388,.2*394,"","Skype",null,null,this.getTagsForStencil("mxgraph.weblogos","skype","web logos logo").join(" ")),this.createVertexTemplateEntry(a+"skyrock;fillColor=#009AFF;strokeColor=none",67.8,70.4,"","Skyrock",null,null,this.getTagsForStencil("mxgraph.weblogos","skyrock","web logos logo").join(" ")),this.createVertexTemplateEntry(a+"slashdot;fillColor=#026664;strokeColor=none",.2* +262,62,"","Slashdot",null,null,this.getTagsForStencil("mxgraph.weblogos","slashdot","web logos logo").join(" ")),this.createVertexTemplateEntry(a+"sms;fillColor=#48B921;strokeColor=none",69.2,64,"","SMS",null,null,this.getTagsForStencil("mxgraph.weblogos","sms","web logos logo").join(" ")),this.createVertexTemplateEntry(a+"socialvibe;fillColor=#EE2F7F;strokeColor=none",50,50,"","Socialvibe",null,null,this.getTagsForStencil("mxgraph.weblogos","socialvibe","web logos logo").join(" ")),this.createVertexTemplateEntry(a+ +"society6;fillColor=#000000;strokeColor=none",74.8,53,"","Society6",null,null,this.getTagsForStencil("mxgraph.weblogos","society6","web logos logo").join(" ")),this.createVertexTemplateEntry(a+"sonico;fillColor=#01AEF0;strokeColor=none",69.2,63.2,"","Sonico",null,null,this.getTagsForStencil("mxgraph.weblogos","sonico","web logos logo").join(" ")),this.createVertexTemplateEntry(a+"soundcloud;fillColor=#FE4600;strokeColor=none",73.4,32.6,"","Soundcloud",null,null,this.getTagsForStencil("mxgraph.weblogos", +"soundcloud","web logos logo").join(" ")),this.createVertexTemplateEntry(a+"sourceforge",74.2,74.4,"","Sourceforge",null,null,this.getTagsForStencil("mxgraph.weblogos","sourceforge","web logos logo").join(" ")),this.createVertexTemplateEntry(a+"sourceforge_2;fillColor=#00547E;strokeColor=none",63.2,.2*234,"","Sourceforge",null,null,this.getTagsForStencil("mxgraph.weblogos","sourceforge","web logos logo").join(" ")),this.createVertexTemplateEntry("image;image=img/lib/atlassian/Sourcetree_Logo.svg;", +57,71,"","Sourcetree",null,null,this.getTagsForStencil("mxgraph.weblogos","sourcetree logo","web logos logo").join(" ")),this.createVertexTemplateEntry(a+"spring.me;fillColor=#0374B8;strokeColor=none",73.2,31.6,"","Spring.me",null,null,this.getTagsForStencil("mxgraph.weblogos","spring me","web logos logo").join(" ")),this.createVertexTemplateEntry(a+"stackexchange",.2*319,79,"","Stackexchange",null,null,this.getTagsForStencil("mxgraph.weblogos","stackexchange stack exchange","web logos logo").join(" ")), +this.createVertexTemplateEntry(a+"stackoverflow",.2*272,64,"","StackOverflow",null,null,this.getTagsForStencil("mxgraph.weblogos","stackoverflow stack overflow","web logos logo").join(" ")),this.createVertexTemplateEntry(a+"startaid;fillColor=#409FCF;strokeColor=none",41.2,42.6,"","Startaid",null,null,this.getTagsForStencil("mxgraph.weblogos","startaid","web logos logo").join(" ")),this.createVertexTemplateEntry(a+"startlap;fillColor=#B9E6F0;gradientColor=#3062A2",82,84.2,"","Startlap",null,null, +this.getTagsForStencil("mxgraph.weblogos","startlap","web logos logo").join(" ")),this.createVertexTemplateEntry("image;image=img/lib/atlassian/Statuspage_Logo.svg;",75,52,"","Statuspage",null,null,this.getTagsForStencil("mxgraph.weblogos","statuspage logo","web logos logo").join(" ")),this.createVertexTemplateEntry(a+"steam;fillColor=#695D5D;gradientColor=#100E0E",85.2,39.6,"","Steam",null,null,this.getTagsForStencil("mxgraph.weblogos","steam","web logos logo").join(" ")),this.createVertexTemplateEntry("image;image=img/lib/atlassian/Stride_Logo.svg;", +69,57,"","Stride",null,null,this.getTagsForStencil("mxgraph.weblogos","stride logo atlassian","web logos logo").join(" ")),this.createVertexTemplateEntry(a+"stumbleupon;fillColor=#EB4924;strokeColor=none",102.4,102.4,"","StumbleUpon",null,null,this.getTagsForStencil("mxgraph.weblogos","stumbleupon","web logos logo").join(" ")),this.createVertexTemplateEntry(a+"stumpedia",67,.2*338,"","Stumpedia",null,null,this.getTagsForStencil("mxgraph.weblogos","stumpedia","web logos logo").join(" ")),this.createVertexTemplateEntry(a+ +"translate",68.4,67,"","Translate",null,null,this.getTagsForStencil("mxgraph.weblogos","translate","web logos logo").join(" ")),this.createVertexTemplateEntry("image;image=img/lib/atlassian/Trello_Logo.svg;",70,70,"","Trello",null,null,this.getTagsForStencil("mxgraph.weblogos","trello logo","web logos logo").join(" ")),this.createVertexTemplateEntry(a+"tumblr;fillColor=#36465D;strokeColor=none",40.6,65.2,"","Tumblr",null,null,this.getTagsForStencil("mxgraph.weblogos","tumblr","web logos logo").join(" ")), +this.createVertexTemplateEntry(a+"tunein",70,70,"","Tunein",null,null,this.getTagsForStencil("mxgraph.weblogos","tunein","web logos logo").join(" ")),this.createVertexTemplateEntry(a+"twitter;fillColor=#1DA1F2;strokeColor=none",80,70,"","Twitter",null,null,this.getTagsForStencil("mxgraph.weblogos","twitter","web logos logo").join(" ")),this.createVertexTemplateEntry(a+"two;fillColor=#FF6D00;strokeColor=none",75.4,20,"","Two",null,null,this.getTagsForStencil("mxgraph.weblogos","two","web logos logo").join(" ")), +this.createVertexTemplateEntry(a+"typepad;fillColor=#ADB560;strokeColor=none",64.8,.2*192,"","Typepad",null,null,this.getTagsForStencil("mxgraph.weblogos","typepad","web logos logo").join(" ")),this.createVertexTemplateEntry(a+"viadeo",73.4,84,"","Viadeo",null,null,this.getTagsForStencil("mxgraph.weblogos","viadeo","web logos logo").join(" ")),this.createVertexTemplateEntry(a+"viber;fillColor=#7D539F;strokeColor=none",77.4,85.2,"","Viber",null,null,this.getTagsForStencil("mxgraph.weblogos","viber", +"web logos logo").join(" ")),this.createVertexTemplateEntry(a+"viddler;fillColor=#1896E0;gradientColor=#06253F",82,.2*106,"","Viddler",null,null,this.getTagsForStencil("mxgraph.weblogos","viddler","web logos logo").join(" ")),this.createVertexTemplateEntry(a+"vimeo;fillColor=#1AB7EA;strokeColor=none",62.6,58,"","Vimeo",null,null,this.getTagsForStencil("mxgraph.weblogos","vimeo","web logos logo").join(" ")),this.createVertexTemplateEntry(a+"virb;fillColor=#000000;strokeColor=none",66,.2*353,"","Virb", +null,null,this.getTagsForStencil("mxgraph.weblogos","virb","web logos logo").join(" ")),this.createVertexTemplateEntry(a+"vkontakte;fillColor=#4C75A3;strokeColor=none",70.4,40,"","Vkontakte",null,null,this.getTagsForStencil("mxgraph.weblogos","vkontakte","web logos logo").join(" ")),this.createVertexTemplateEntry(a+"wakoopa;fillColor=#FF6D00;strokeColor=none",.2*413,.2*224,"","Wakoopa",null,null,this.getTagsForStencil("mxgraph.weblogos","wakoopa","web logos logo").join(" ")),this.createVertexTemplateEntry(a+ +"weheartit;fillColor=#FF4577;strokeColor=none",82.2,.2*348,"","Weheartit",null,null,this.getTagsForStencil("mxgraph.weblogos","weheartit","web logos logo").join(" ")),this.createVertexTemplateEntry(a+"whatsapp;fillColor=#00E676;strokeColor=#dddddd",74.4,74.8,"","Whatsapp",null,null,this.getTagsForStencil("mxgraph.weblogos","whatsapp","web logos logo").join(" ")),this.createVertexTemplateEntry(a+"wix;strokeColor=#dddddd",74,61.6,"","Wix",null,null,this.getTagsForStencil("mxgraph.weblogos","wix","web logos logo").join(" ")), +this.createVertexTemplateEntry(a+"wordpress;fillColor=#00A7DA;strokeColor=none",.2*333,65.4,"","Wordpress",null,null,this.getTagsForStencil("mxgraph.weblogos","wordpress","web logos logo").join(" ")),this.createVertexTemplateEntry(a+"wordpress_2;fillColor=#00A7DA;strokeColor=none",68.8,68.8,"","Wordpress",null,null,this.getTagsForStencil("mxgraph.weblogos","wordpress","web logos logo").join(" ")),this.createVertexTemplateEntry(a+"xanga;fillColor=#000000;strokeColor=none",70,38,"","Xanga",null,null, +this.getTagsForStencil("mxgraph.weblogos","xanga","web logos logo").join(" ")),this.createVertexTemplateEntry(a+"xerpi;fillColor=#7F719B;gradientColor=#32264B;strokeColor=none",70.2,.2*328,"","Xerpi",null,null,this.getTagsForStencil("mxgraph.weblogos","xerpi","web logos logo").join(" ")),this.createVertexTemplateEntry(a+"xing",65,73.8,"","Xing",null,null,this.getTagsForStencil("mxgraph.weblogos","xing","web logos logo").join(" ")),this.createVertexTemplateEntry(a+"yahoo;fillColor=#65106E;strokeColor=none", +74.4,43.6,"","Yahoo",null,null,this.getTagsForStencil("mxgraph.weblogos","yahoo","web logos logo").join(" ")),this.createVertexTemplateEntry(a+"yahoo_2;fillColor=#65106E;strokeColor=none",80,46.6,"","Yahoo",null,null,this.getTagsForStencil("mxgraph.weblogos","yahoo","web logos logo").join(" ")),this.createVertexTemplateEntry(a+"yammer;fillColor=#0093BE;strokeColor=none",.2*348,59.6,"","Yammer",null,null,this.getTagsForStencil("mxgraph.weblogos","yammer","web logos logo").join(" ")),this.createVertexTemplateEntry(a+ +"yandex",31.8,66.4,"","Yandex",null,null,this.getTagsForStencil("mxgraph.weblogos","yandex","web logos logo").join(" ")),this.createVertexTemplateEntry(a+"yelp;fillColor=#C41200;strokeColor=none",.2*317,83,"","Yelp",null,null,this.getTagsForStencil("mxgraph.weblogos","yelp","web logos logo").join(" ")),this.createVertexTemplateEntry(a+"yoolink",79.2,79.2,"","Yoolink",null,null,this.getTagsForStencil("mxgraph.weblogos","yoolink","web logos logo").join(" ")),this.createVertexTemplateEntry(a+"youmob", +76,76.2,"","Youmob",null,null,this.getTagsForStencil("mxgraph.weblogos","youmob","web logos logo").join(" ")),this.createVertexTemplateEntry(a+"youtube;fillColor=#FF2626;gradientColor=#B5171F",.2*786,65.8,"","Youtube",null,null,this.getTagsForStencil("mxgraph.weblogos","youtube","web logos logo").join(" ")),this.createVertexTemplateEntry(a+"youtube_2;fillColor=#FF2626;gradientColor=#B5171F",.2*232,32.6,"","Youtube",null,null,this.getTagsForStencil("mxgraph.weblogos","youtube","web logos logo").join(" "))])}})(); DrawioFile=function(a,b){mxEventSource.call(this);this.ui=a;this.data=b||""};mxUtils.extend(DrawioFile,mxEventSource);DrawioFile.prototype.autosaveDelay=1500;DrawioFile.prototype.maxAutosaveDelay=3E4;DrawioFile.prototype.autosaveThread=null;DrawioFile.prototype.lastAutosave=null;DrawioFile.prototype.modified=!1;DrawioFile.prototype.changeListenerEnabled=!0;DrawioFile.prototype.lastAutosaveRevision=null;DrawioFile.prototype.maxAutosaveRevisionDelay=18E5;DrawioFile.prototype.descriptorChanged=function(){this.fireEvent(new mxEventObject("descriptorChanged"))}; DrawioFile.prototype.contentChanged=function(){this.fireEvent(new mxEventObject("contentChanged"))};DrawioFile.prototype.save=function(a,b,d,c){this.updateFileData();this.clearAutosave()};DrawioFile.prototype.updateFileData=function(){this.setData(this.ui.getFileData(null,null,null,null,null,null,null,null,this))};DrawioFile.prototype.saveAs=function(a,b,d){};DrawioFile.prototype.saveFile=function(a,b,d,c){};DrawioFile.prototype.getPublicUrl=function(a){a(null)}; DrawioFile.prototype.isRestricted=function(){return!1};DrawioFile.prototype.isModified=function(){return this.modified};DrawioFile.prototype.setModified=function(a){this.modified=a};DrawioFile.prototype.isAutosaveOptional=function(){return!1};DrawioFile.prototype.isAutosave=function(){return this.ui.editor.autosave};DrawioFile.prototype.isRenamable=function(){return!1};DrawioFile.prototype.rename=function(a,b,d){};DrawioFile.prototype.isMovable=function(){return!1}; @@ -6783,17 +6783,17 @@ StorageFile.prototype.saveFile=function(a,b,d,c){if(this.isEditable()){var e=mxU [a]),e,c):e()}))}else null!=d&&d()};StorageFile.prototype.rename=function(a,b,d){var c=this.getTitle();c!=a?this.ui.getLocalData(a,mxUtils.bind(this,function(e){var f=mxUtils.bind(this,function(){this.title=a;this.hasSameExtension(c,a)||this.setData(this.ui.getFileData());this.saveFile(a,!1,mxUtils.bind(this,function(){this.ui.removeLocalData(c,b)}),d)});null!=e?this.ui.confirm(mxResources.get("replaceIt",[a]),f,d):f()})):b()}; StorageFile.prototype.open=function(){DrawioFile.prototype.open.apply(this,arguments);this.saveFile(this.getTitle())};StorageFile.prototype.destroy=function(){DrawioFile.prototype.destroy.apply(this,arguments);null!=this.storageListener&&(mxEvent.removeListener(window,"storage",this.storageListener),this.storageListener=null)};StorageLibrary=function(a,b,d){StorageFile.call(this,a,b,d)};mxUtils.extend(StorageLibrary,StorageFile);StorageLibrary.prototype.isAutosave=function(){return!0};StorageLibrary.prototype.saveAs=function(a,b,d){this.saveFile(a,!1,b,d)};StorageLibrary.prototype.getHash=function(){return"L"+encodeURIComponent(this.title)};StorageLibrary.prototype.getTitle=function(){return".scratchpad"==this.title?mxResources.get("scratchpad"):this.title}; StorageLibrary.prototype.isRenamable=function(a,b,d){return".scratchpad"!=this.title};StorageLibrary.prototype.open=function(){};UrlLibrary=function(a,b,d){StorageFile.call(this,a,b,d);a=d;b=a.lastIndexOf("/");0<=b&&(a=a.substring(b+1));this.fname=a};mxUtils.extend(UrlLibrary,StorageFile);UrlLibrary.prototype.getHash=function(){return"U"+encodeURIComponent(this.title)};UrlLibrary.prototype.getTitle=function(){return this.fname};UrlLibrary.prototype.isAutosave=function(){return!1};UrlLibrary.prototype.isEditable=function(a,b,d){return!1};UrlLibrary.prototype.saveAs=function(a,b,d){};UrlLibrary.prototype.open=function(){};var StorageDialog=function(a,b,d){function c(c,e,f,u,w,t){function q(){mxEvent.addListener(p,"click",null!=t?t:function(){f!=App.MODE_GOOGLE||a.isDriveDomain()?f==App.MODE_GOOGLE&&a.spinner.spin(document.body,mxResources.get("authorizing"))?a.drive.checkToken(mxUtils.bind(this,function(){a.spinner.stop();a.setMode(f,g.checked);b()})):(a.setMode(f,g.checked),b()):window.location.hostname=DriveClient.prototype.newAppHostname})}var p=document.createElement("a");p.style.overflow="hidden";p.style.display= -mxClient.IS_QUIRKS?"inline":"inline-block";p.className="geBaseButton";p.style.boxSizing="border-box";p.style.fontSize="11px";p.style.position="relative";p.style.margin="4px";p.style.padding="8px 10px 12px 10px";p.style.width="88px";p.style.height="100px";p.style.whiteSpace="nowrap";p.setAttribute("title",e);mxClient.IS_QUIRKS&&(p.style.cssFloat="left",p.style.zoom="1");var v=document.createElement("div");v.style.textOverflow="ellipsis";v.style.overflow="hidden";if(null!=c){var x=document.createElement("img"); -x.setAttribute("src",c);x.setAttribute("border","0");x.setAttribute("align","absmiddle");x.style.width="60px";x.style.height="60px";x.style.paddingBottom="6px";p.appendChild(x)}else v.style.paddingTop="5px",v.style.whiteSpace="normal",mxClient.IS_IOS?(p.style.padding="0px 10px 20px 10px",p.style.top="6px"):mxClient.IS_FF&&(v.style.paddingTop="0px",v.style.marginTop="-2px");p.appendChild(v);mxUtils.write(v,e);if(null!=w)for(c=0;c=d&&(mxUtils.br(m),k=0)}d=null!=d?d:2;var e=document.createElement("div");e.style.textAlign="center";e.style.whiteSpace="nowrap";e.style.paddingTop="0px";e.style.paddingBottom="20px";var f=a.addLanguageMenu(e,!0);null!=f&&(f.style.bottom=parseInt("28px")-2+"px");if(!a.isOffline()&&1 '+mxResources.get("googleDriveMissingClickHere")+"",e.appendChild(n))},5E3);this.container= e},SplashDialog=function(a){var b=document.createElement("div");b.style.textAlign="center";a.addLanguageMenu(b,!0);var d=null,d=a.getServiceCount();if(!a.isOffline()&&1b.length?mxClient.IS_SF||null!=document.documentMode? g.className="geBtn gePrimaryBtn":(h.appendChild(k),k.className="geBtn gePrimaryBtn",g.className="geBtn"):(h.appendChild(m),g.className="geBtn",m.className="geBtn gePrimaryBtn");c.appendChild(h);this.container=c};EmbedDialog.showPreviewOption=!0; var GoogleSitesDialog=function(a,b){function d(){var a=null!=y.getTitle()?y.getTitle():this.defaultFilename;if(F.checked&&""!=q.value){var b="https://www.draw.io/gadget.xml?type=4&diagram="+encodeURIComponent(mxUtils.htmlEntities(q.value));null!=a&&(b+="&title="+encodeURIComponent(a));0a)return String.fromCharCode(48+a);a-=10;if(26>a)return String.fromCharCode(65+a);a-=26;if(26>a)return String.fromCharCode(97+a);a-=26;return 0==a?"-":1==a?"_":"?"},e=function(a,b,c){c1=a>>2;c2=(a&3)<<4|b>>4;c3=(b&15)<<2|c>>6;c4=c&63;r="";r+=k(c1&63);r+=k(c2&63);r+=k(c3&63);return r+= -k(c4&63)},n=new XMLHttpRequest;n.open("GET",d+function(a){r="";for(h=0;hthis.status)if("plantUmlTxt"==c){a.spinner.stop();g.getModel().beginUpdate();try{cell=g.insertVertex(null, -null,"
"+this.response+"
",f.x,f.y,1,1,"text;html=1;overflow=fill;"),g.updateCellSize(cell,!0)}finally{g.getModel().endUpdate()}g.setSelectionCell(cell);g.scrollCellToVisible(g.getSelectionCell())}else d=new FileReader,d.readAsDataURL(this.response),d.onload=function(c){var d=new Image;d.onload=function(){a.spinner.stop();var k=d.width,n=d.height;if(0==k&&0==n){var u=c.target.result,e=u.indexOf(","),u=decodeURIComponent(escape(atob(u.substring(e+1)))),u=mxUtils.parseXml(u).getElementsByTagName("svg"); -0a)return String.fromCharCode(48+a);a-=10;if(26>a)return String.fromCharCode(65+a);a-=26;if(26>a)return String.fromCharCode(97+a);a-=26;return 0==a?"-":1==a?"_":"?"},e=function(a,b,c){c1=a>>2;c2=(a&3)<<4|b>>4;c3=(b&15)<<2|c>>6;c4=c&63;r="";r+=k(c1&63);r+=k(c2&63);r+=k(c3&63);return r+= +k(c4&63)},n=new XMLHttpRequest;n.open("GET",c+function(a){r="";for(h=0;hthis.status)if("plantUmlTxt"==d){a.spinner.stop();g.getModel().beginUpdate();try{cell=g.insertVertex(null, +null,"
"+this.response+"
",f.x,f.y,1,1,"text;html=1;overflow=fill;"),g.updateCellSize(cell,!0)}finally{g.getModel().endUpdate()}g.setSelectionCell(cell);g.scrollCellToVisible(g.getSelectionCell())}else c=new FileReader,c.readAsDataURL(this.response),c.onload=function(c){var d=new Image;d.onload=function(){a.spinner.stop();var k=d.width,n=d.height;if(0==k&&0==n){var u=c.target.result,e=u.indexOf(","),u=decodeURIComponent(escape(atob(u.substring(e+1)))),u=mxUtils.parseXml(u).getElementsByTagName("svg"); +0");2<=B.length&&(q=m(B[0]),l=m(B[B.length-1]),B=new mxCell(2");2<=B.length&&(q=m(B[0]),l=m(B[B.length-1]),B=new mxCell(2 Bob: Authentication Request\nBob --\x3e Alice: Authentication Response\n\nAlice -> Bob: Another authentication Request\nAlice <-- Bob: another authentication Response\n@enduml": "plantUmlSvg"==l.value||"plantUmlTxt"==l.value?"@startuml\nskinparam shadowing false\nAlice -> Bob: Authentication Request\nBob --\x3e Alice: Authentication Response\n\nAlice -> Bob: Another authentication Request\nAlice <-- Bob: another authentication Response\n@enduml":";Example:\na->b\nb->edge label->c\nc->a\n"}var f=a.editor.graph.getFreeInsertPoint();b=document.createElement("div");b.style.textAlign="right";var h=document.createElement("textarea");h.style.resize="none";h.style.width="100%";h.style.height= "354px";h.style.marginBottom="16px";var l=document.createElement("select"),m=document.createElement("option");m.setAttribute("value","list");mxUtils.write(m,mxResources.get("list"));l.appendChild(m);null!=d&&"fromText"!=d||m.setAttribute("selected","selected");m=document.createElement("option");m.setAttribute("value","table");mxUtils.write(m,mxResources.get("formatSql"));l.appendChild(m);"formatSql"==d&&m.setAttribute("selected","selected");m=document.createElement("option");m.setAttribute("value", "diagram");mxUtils.write(m,mxResources.get("diagram"));l.appendChild(m);m=document.createElement("option");m.setAttribute("value","plantUmlSvg");mxUtils.write(m,mxResources.get("plantUml")+" ("+mxResources.get("formatSvg")+")");"plantUml"==d&&m.setAttribute("selected","selected");d=document.createElement("option");d.setAttribute("value","plantUmlPng");mxUtils.write(d,mxResources.get("plantUml")+" ("+mxResources.get("formatPng")+")");var g=document.createElement("option");g.setAttribute("value","plantUmlTxt"); mxUtils.write(g,mxResources.get("plantUml")+" ("+mxResources.get("text")+")");EditorUi.enablePlantUml&&Graph.fileSupport&&!a.isOffline()&&(l.appendChild(m),l.appendChild(d),l.appendChild(g));var k=e();h.value=k;b.appendChild(h);this.init=function(){h.focus()};Graph.fileSupport&&(h.addEventListener("dragover",function(a){a.stopPropagation();a.preventDefault()},!1),h.addEventListener("drop",function(a){a.stopPropagation();a.preventDefault();if(0=a.getStatus()&&(z(e,a.getText(),b),f&&x())}))});mxEvent.addListener(e,"dblclick",function(a){f=!0})}else e.innerHTML='
'+mxResources.get(c)+ -"
",g&&z(e),null!=n?mxEvent.addListener(e,"click",n):(mxEvent.addListener(e,"click",function(a){z(e)}),mxEvent.addListener(e,"dblclick",function(a){x()}));I.appendChild(e)}function w(){mxEvent.addListener(I,"scroll",function(a){I.scrollTop+I.clientHeight>=I.scrollHeight&&(v(),mxEvent.consume(a))});var a=null,b;for(b in V){var c=document.createElement("div"),d=mxResources.get(b),k=V[b];null==d&&(d=b.substring(0,1).toUpperCase()+b.substring(1));18=a.getStatus()&&(A(e,a.getText(),b),f&&x())}))});mxEvent.addListener(e,"dblclick",function(a){f=!0})}else e.innerHTML='
'+mxResources.get(c)+ +"
",g&&A(e),null!=n?mxEvent.addListener(e,"click",n):(mxEvent.addListener(e,"click",function(a){A(e)}),mxEvent.addListener(e,"dblclick",function(a){x()}));I.appendChild(e)}function w(){mxEvent.addListener(I,"scroll",function(a){I.scrollTop+I.clientHeight>=I.scrollHeight&&(v(),mxEvent.consume(a))});var a=null,b;for(b in V){var c=document.createElement("div"),d=mxResources.get(b),k=V[b];null==d&&(d=b.substring(0,1).toUpperCase()+b.substring(1));18a.maxImageSize||n>a.maxImageSize){var y=Math.min(1,Math.min(a.maxImageSize/Math.max(1,e)),a.maxImageSize/Math.max(1,n));e*=y;n*=y}E>C?(C=Math.round(100* -C/E),E=100):(E=Math.round(100*E/C),C=100);var D=document.createElement("div");D.setAttribute("draggable","true");D.style.display=mxClient.IS_QUIRKS?"inline":"inline-block";D.style.position="relative";D.style.cursor="move";mxUtils.setPrefixedStyle(D.style,"transition","transform .1s ease-in-out");if(null!=b){var A=document.createElement("img");A.setAttribute("src",w.convert(b));A.style.width=E+"px";A.style.height=C+"px";A.style.margin="10px";A.style.paddingBottom=Math.floor((100-C)/2)+"px";A.style.paddingLeft= -Math.floor((100-E)/2)+"px";D.appendChild(A)}else if(null!=f){var H=a.stringToCells(a.editor.graph.decompress(f.xml));0a.maxImageSize||n>a.maxImageSize){var y=Math.min(1,Math.min(a.maxImageSize/Math.max(1,e)),a.maxImageSize/Math.max(1,n));e*=y;n*=y}E>C?(C=Math.round(100* +C/E),E=100):(E=Math.round(100*E/C),C=100);var D=document.createElement("div");D.setAttribute("draggable","true");D.style.display=mxClient.IS_QUIRKS?"inline":"inline-block";D.style.position="relative";D.style.cursor="move";mxUtils.setPrefixedStyle(D.style,"transition","transform .1s ease-in-out");if(null!=b){var z=document.createElement("img");z.setAttribute("src",w.convert(b));z.style.width=E+"px";z.style.height=C+"px";z.style.margin="10px";z.style.paddingBottom=Math.floor((100-C)/2)+"px";z.style.paddingLeft= +Math.floor((100-E)/2)+"px";D.appendChild(z)}else if(null!=f){var H=a.stringToCells(a.editor.graph.decompress(f.xml));0x?z-1:z,0,k.splice(x,1)[0]),t.insertBefore(t.children[x],t.children[z])):(k.push(k.splice(x,1)[0]),t.appendChild(t.children[x]));else if(0x?A-1:A,0,k.splice(x,1)[0]),t.insertBefore(t.children[x],t.children[A])):(k.push(k.splice(x,1)[0]),t.appendChild(t.children[x]));else if(0= c.status&&(l(c.responseText,d,g,k,e,n,u,"fixed",mxEvent.isAltDown(b)?null:u.substring(0,u.lastIndexOf(".")).replace(/_/g," ")),t.scrollTop=t.scrollHeight))})):(l(c,d,g,k,e,n,u,"fixed",mxEvent.isAltDown(b)?null:u.substring(0,u.lastIndexOf(".")).replace(/_/g," ")),t.scrollTop=t.scrollHeight)}};mxEvent.addListener(t,"dragover",m);mxEvent.addListener(t,"drop",g);mxEvent.addListener(p,"dragover",m);mxEvent.addListener(p,"drop",g);d.appendChild(t);c=document.createElement("div");c.style.textAlign="right"; @@ -7036,22 +7036,22 @@ IMAGE_PATH+"/plus.png";Editor.spinImage=mxClient.IS_SVG?"data:image/gif;base64,R IMAGE_PATH+"/spin.gif";Editor.tweetImage=IMAGE_PATH+"/tweet.png";Editor.facebookImage=IMAGE_PATH+"/facebook.png";Editor.blankImage="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAACklEQVR4nGMAAQAABQABDQottAAAAABJRU5ErkJggg==";Editor.hiResImage=mxClient.IS_SVG?"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFAAAAA+CAMAAACLMWy1AAAAh1BMVEUAAABMTExERERBQUFBQUFFRUVAQEBCQkJAQEA6OjpDQ0NKSkpBQUFBQUFERERERERBQUFCQkJCQkJCQkJJSUlBQUFCQkJDQ0NDQ0NCQkJDQ0NBQUFBQUFCQkJBQUFCQkJCQkJDQ0NCQkJHR0dBQUFCQkJCQkJAQEBCQkJDQ0NAQEBERERCQkIk1hS2AAAAKnRSTlMAAjj96BL7PgQFRwfu3TYazKuVjRXl1V1DPCn1uLGjnWNVIgy9hU40eGqPkM38AAACG0lEQVRYw+2X63KbMBCFzwZblgGDceN74muatpLe//m6MHV3gHGFAv2RjM94MAbxzdnVsQbBDKwH8AH8MDAyafzjqYeyOG04XE7RS8nIRDXg6BlT+rA0nmtAPh+NQRDxIASIMG44rAMrGunBgHwy3uUldxggIStGKp2f+DQc2O4h4eQsX3O2IFB/oEbsjOKbStnjAEA+zJ0ylZTbgvoDn8xNyn6Dbj5Kd4GsNpABa6duQPfSdEj88TgMAhKuCWjAkgmFXPLnsD0pWd3OFGdrMugQII/eOMPEiGOzqPMIeWrcSoMCg71W1pXBPvCP+gS/OdXqQ3uW23+93XGWLl/OaBb805bNcBPoEIcVJsnHzcxpZH86u5KZ9gDby5dQCcnKqdbke4ItI4Tzd7IW9hZQt4EO6GG9b9sYuuK9Wwn8TIr2xKbF2+3Nhr+qxChJ/AI6pIfCu4z4Zowp4ZUNihz79vewzctnHDwTvQO/hCdFBzrUGDOPn2Y/F8YKT4oOATLvlhOznzmBSdFBJWtc58y7r+UVFOCQczy3wpN6pegDqHtsCPTGvH9JuTO0Dyg8icldYPk+RB6g8Aofj4m2EKBvtTmUPD9xDd1pPcSReV2U5iD/ik2yrngtvvqBfPzOvKiDTKTsCdoHZJ7pLLffgTwlJ5vJdtJV2/jiAYaLvLGhMAEDO5QcDg2M/jOw/8Zn+K3ZwJvHT7ZffgC/NvA3zcybTeIfE4EAAAAASUVORK5CYII=": IMAGE_PATH+"/img-hi-res.png";Editor.loResImage=mxClient.IS_SVG?"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFAAAAA+CAMAAACLMWy1AAAAS1BMVEVAQEAAAAA1NTVBQUFDQ0NDQ0NFRUVERERBQUFBQUFBQUFAQEBBQUFBQUFCQkJCQkJCQkJBQUFCQkJDQ0NDQ0NCQkJCQkJCQkJGRkb5/XqTAAAAGXRSTlP+AAWODlASCsesX+Lc2LyWe3pwa1tCPjohjSJfoAAAAI1JREFUWMPt1MkKhTAMRuG0anvneXr/J71nUypKcdqI/N8yhLMKMZE1CahnClDQzMPB44ED3EgeCubgDWnWQMHpwTtKwTe+UHD4sJ94wbUEHHFGhILlYDeSnsQeabeCgsPBgB0MOZZ9oGA5GJFiJSfUULAfjLjARrhCwX7wh2YCDwVbwZkUBKqFFJRN+wOcwSgR2sREcgAAAABJRU5ErkJggg==": IMAGE_PATH+"/img-lo-res.png";Editor.cameraLargeImage="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAAlwSFlzAAALEwAACxMBAJqcGAAAAVlpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iPgogICAgICAgICA8dGlmZjpPcmllbnRhdGlvbj4xPC90aWZmOk9yaWVudGF0aW9uPgogICAgICA8L3JkZjpEZXNjcmlwdGlvbj4KICAgPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4KTMInWQAAA/BJREFUWAnFl0uIjWEYx885buPSuGwmSYwtwsY1ikKSNYNclmQnadgrZSPlsnBLSlaGBdNYKY0Vdi4L4zYzIqxGxmXG//d+7//0+uY7nWMiT/2/53mf+3v7vnNKpf9M5UbrDw8Pj4m+wzmeT1FBUS6Xf+YNox6reMONukijMXUTM3NmI75PyXcJPwRWg5kS7xysDLNmfEUxpx2rceNE50IlYjyRklcLf0prY+x4BTqfmx3ZUHQaO9ISGngYq38V/1EH+ECPa+QaK1u1kVBQirDMChiS3CTeIkwWvghtwhKBpZ8g1CO2B99FynVU/KowSRgQ3mlrBsVZ1awmQlS0SGbfXglfBPbdRGMm5O8RXg2P835pDCvzWjghTHETcLpZLHwS8kTCtBEK1SN83Egam8YxyVZqc+Do5qkwS+gT9grNwkUBG6cbsG/gs3BTuC/0ChCxq4QtwgzBMdwUZBPyN4Ftfi4sYPZHktbOSRlIuutRP5jYj0ueZp88xyYcS/zZoiLyQT1IA/cTj7eSlwnrhI+JnkQbCwo2Sx/2M7VJt17wdhVtgxvrpoFnAuSAbJQ97biZAlKxBfD9wgOhV+BgIR/AZtJ4kwD5PGSj7OmmekjWEy0oAQHAS3+KpBpzXqYK3UItopHpSRMno2N+cm7gDYnfRCcr3QBqriMHLJDkeyhFfiG5aVbK+8rhtP9M6QcIEJHX5Fp9NMAyQlYiu+OOJNlODCIXyka/P23bncTdiC7OydC1+v1Bsb+5r84DK8S3Rdmf5cRUFW3bXtWUSt1Rdk6G4SyJV2o1YId+vNUxr+x5yCJiapFtcxQzLjrxboGcMxvFJwEOKnLwjIbkx/sdSmeSaUY++SwTAxV+4DJT7RVwkbk46gNCsifIItuy0e9PF33Cb4homhN5YRyzL5q5V2VNkv98kqgoGTo3YF9CnMM5Y5rItFfvBSi9JulVXOgI+VwIntkt+SaZ6weQfcovJf7zpTfl86P/wAF7Fz18NeKwmvAWCaX0Z/uMHQr42ZxvR/Rxcw5xM+9J/CJq8w2gduDhmDgso/QrBH47dEXQ1IqczyHpIOfIRtnTtV7SwO1oKXKkU3fbToFGSDHtMWcaH1WBuVYnDbRFi99iqSMySdzxXckrazUh23KBVYGIcfNBkTxca0e4ATJ0KukGYVBgr/MnlhPOtQq/ksUfCbzh+EFCjtnCUoHfjhA/OsiTv2HcEvJMELp0VakZDliTmriTdPivxU4VmEhtPrGV+KJhO7ZKt0doFZh1fgZSBWIW2AGEHwg3BUWOnKtH+suqdw07tYMfglCrWPD5mw9qVYuniaXkT0OtWaSuo5LJTY1RBf+roF9X5+y/5qU+DAAAAABJRU5ErkJggg=="; -Editor.defaultCustomLibraries=[];Editor.defaultCsvValue='##\n## Example CSV import. Use ## for comments and # for configuration. Paste CSV below.\n## The following names are reserved and should not be used (or ignored):\n## id, tooltip, placeholder(s), link and label (see below)\n##\n#\n## Node label with placeholders and HTML.\n## Default is \'%name_of_first_column%\'.\n#\n# label: %name%
%position%
Email\n#\n## Node style (placeholders are replaced once).\n## Default is the current style for nodes.\n#\n# style: label;image=%image%;whiteSpace=wrap;html=1;rounded=1;fillColor=%fill%;strokeColor=%stroke%;\n#\n## Uses the given column name as the identity for cells (updates existing cells).\n## Default is no identity (empty value or -).\n#\n# identity: -\n#\n## Adds a prefix to the identity of cells to make sure they do not collide with existing cells (whose\n## IDs are numbers from 0..n, sometimes with a GUID prefix in the context of realtime collaboration).\n## Default is csvimport-.\n#\n# namespace: csvimport-\n#\n## Connections between rows ("from": source colum, "to": target column).\n## Label, style and invert are optional. Defaults are \'\', current style and false.\n## In addition to label, an optional fromlabel and tolabel can be used to name the column\n## that contains the text for the label in the edges source or target (invert ignored).\n## The label is concatenated in the form fromlabel + label + tolabel if all are defined.\n## The target column may contain a comma-separated list of values.\n## Multiple connect entries are allowed.\n#\n# connect: {"from": "manager", "to": "name", "invert": true, "label": "manages", \\\n# "style": "curved=1;endArrow=blockThin;endFill=1;fontSize=11;"}\n# connect: {"from": "refs", "to": "id", "style": "curved=1;fontSize=11;"}\n#\n## Node x-coordinate. Possible value is a column name. Default is empty. Layouts will\n## override this value.\n#\n# left: \n#\n## Node y-coordinate. Possible value is a column name. Default is empty. Layouts will\n## override this value.\n#\n# top: \n#\n## Node width. Possible value is a number (in px), auto or an @ sign followed by a column\n## name that contains the value for the width. Default is auto.\n#\n# width: auto\n#\n## Node height. Possible value is a number (in px), auto or an @ sign followed by a column\n## name that contains the value for the height. Default is auto.\n#\n# height: auto\n#\n## Padding for autosize. Default is 0.\n#\n# padding: -12\n#\n## Comma-separated list of ignored columns for metadata. (These can be\n## used for connections and styles but will not be added as metadata.)\n#\n# ignore: id,image,fill,stroke\n#\n## Column to be renamed to link attribute (used as link).\n#\n# link: url\n#\n## Spacing between nodes. Default is 40.\n#\n# nodespacing: 40\n#\n## Spacing between parallel edges. Default is 40.\n#\n# edgespacing: 40\n#\n## Name of layout. Possible values are auto, none, verticaltree, horizontaltree,\n## verticalflow, horizontalflow, organic, circle. Default is auto.\n#\n# layout: auto\n#\n## ---- CSV below this line. First line are column names. ----\nname,position,id,location,manager,email,fill,stroke,refs,url,image\nEvan Miller,CFO,emi,Office 1,,me@example.com,#dae8fc,#6c8ebf,,https://www.draw.io,https://cdn3.iconfinder.com/data/icons/user-avatars-1/512/users-9-2-128.png\nEdward Morrison,Brand Manager,emo,Office 2,Evan Miller,me@example.com,#d5e8d4,#82b366,,https://www.draw.io,https://cdn3.iconfinder.com/data/icons/user-avatars-1/512/users-10-3-128.png\nRon Donovan,System Admin,rdo,Office 3,Evan Miller,me@example.com,#d5e8d4,#82b366,"emo,tva",https://www.draw.io,https://cdn3.iconfinder.com/data/icons/user-avatars-1/512/users-2-128.png\nTessa Valet,HR Director,tva,Office 4,Evan Miller,me@example.com,#d5e8d4,#82b366,,https://www.draw.io,https://cdn3.iconfinder.com/data/icons/user-avatars-1/512/users-3-128.png\n'; +Editor.defaultCustomLibraries=[];Editor.enableCustomLibraries=!0;Editor.defaultCsvValue='##\n## Example CSV import. Use ## for comments and # for configuration. Paste CSV below.\n## The following names are reserved and should not be used (or ignored):\n## id, tooltip, placeholder(s), link and label (see below)\n##\n#\n## Node label with placeholders and HTML.\n## Default is \'%name_of_first_column%\'.\n#\n# label: %name%
%position%
Email\n#\n## Node style (placeholders are replaced once).\n## Default is the current style for nodes.\n#\n# style: label;image=%image%;whiteSpace=wrap;html=1;rounded=1;fillColor=%fill%;strokeColor=%stroke%;\n#\n## Uses the given column name as the identity for cells (updates existing cells).\n## Default is no identity (empty value or -).\n#\n# identity: -\n#\n## Adds a prefix to the identity of cells to make sure they do not collide with existing cells (whose\n## IDs are numbers from 0..n, sometimes with a GUID prefix in the context of realtime collaboration).\n## Default is csvimport-.\n#\n# namespace: csvimport-\n#\n## Connections between rows ("from": source colum, "to": target column).\n## Label, style and invert are optional. Defaults are \'\', current style and false.\n## In addition to label, an optional fromlabel and tolabel can be used to name the column\n## that contains the text for the label in the edges source or target (invert ignored).\n## The label is concatenated in the form fromlabel + label + tolabel if all are defined.\n## The target column may contain a comma-separated list of values.\n## Multiple connect entries are allowed.\n#\n# connect: {"from": "manager", "to": "name", "invert": true, "label": "manages", \\\n# "style": "curved=1;endArrow=blockThin;endFill=1;fontSize=11;"}\n# connect: {"from": "refs", "to": "id", "style": "curved=1;fontSize=11;"}\n#\n## Node x-coordinate. Possible value is a column name. Default is empty. Layouts will\n## override this value.\n#\n# left: \n#\n## Node y-coordinate. Possible value is a column name. Default is empty. Layouts will\n## override this value.\n#\n# top: \n#\n## Node width. Possible value is a number (in px), auto or an @ sign followed by a column\n## name that contains the value for the width. Default is auto.\n#\n# width: auto\n#\n## Node height. Possible value is a number (in px), auto or an @ sign followed by a column\n## name that contains the value for the height. Default is auto.\n#\n# height: auto\n#\n## Padding for autosize. Default is 0.\n#\n# padding: -12\n#\n## Comma-separated list of ignored columns for metadata. (These can be\n## used for connections and styles but will not be added as metadata.)\n#\n# ignore: id,image,fill,stroke\n#\n## Column to be renamed to link attribute (used as link).\n#\n# link: url\n#\n## Spacing between nodes. Default is 40.\n#\n# nodespacing: 40\n#\n## Spacing between parallel edges. Default is 40.\n#\n# edgespacing: 40\n#\n## Name of layout. Possible values are auto, none, verticaltree, horizontaltree,\n## verticalflow, horizontalflow, organic, circle. Default is auto.\n#\n# layout: auto\n#\n## ---- CSV below this line. First line are column names. ----\nname,position,id,location,manager,email,fill,stroke,refs,url,image\nEvan Miller,CFO,emi,Office 1,,me@example.com,#dae8fc,#6c8ebf,,https://www.draw.io,https://cdn3.iconfinder.com/data/icons/user-avatars-1/512/users-9-2-128.png\nEdward Morrison,Brand Manager,emo,Office 2,Evan Miller,me@example.com,#d5e8d4,#82b366,,https://www.draw.io,https://cdn3.iconfinder.com/data/icons/user-avatars-1/512/users-10-3-128.png\nRon Donovan,System Admin,rdo,Office 3,Evan Miller,me@example.com,#d5e8d4,#82b366,"emo,tva",https://www.draw.io,https://cdn3.iconfinder.com/data/icons/user-avatars-1/512/users-2-128.png\nTessa Valet,HR Director,tva,Office 4,Evan Miller,me@example.com,#d5e8d4,#82b366,,https://www.draw.io,https://cdn3.iconfinder.com/data/icons/user-avatars-1/512/users-3-128.png\n'; Editor.shadowOptionEnabled=!0;Editor.configure=function(a){if(null!=a){Editor.configVersion=a.version;Menus.prototype.defaultFonts=a.defaultFonts||Menus.prototype.defaultFonts;ColorDialog.prototype.presetColors=a.presetColors||ColorDialog.prototype.presetColors;ColorDialog.prototype.defaultColors=a.defaultColors||ColorDialog.prototype.defaultColors;StyleFormatPanel.prototype.defaultColorSchemes=a.defaultColorSchemes||StyleFormatPanel.prototype.defaultColorSchemes;Graph.prototype.defaultEdgeLength= -a.defaultEdgeLength||Graph.prototype.defaultEdgeLength;if(null!=a.css){var b=document.createElement("style");b.setAttribute("type","text/css");b.appendChild(document.createTextNode(a.css));var c=document.getElementsByTagName("script")[0];c.parentNode.insertBefore(b,c)}null!=a.defaultLibraries&&(Sidebar.prototype.defaultEntries=a.defaultLibraries);null!=a.defaultCustomLibraries&&(Editor.defaultCustomLibraries=a.defaultCustomLibraries);null!=a.defaultVertexStyle&&(Graph.prototype.defaultVertexStyle= -a.defaultVertexStyle);null!=a.defaultEdgeStyle&&(Graph.prototype.defaultEdgeStyle=a.defaultEdgeStyle);a.emptyDiagramXml&&(EditorUi.prototype.emptyDiagramXml=a.emptyDiagramXml);a.thumbWidth&&(Sidebar.prototype.thumbWidth=a.thumbWidth);a.thumbHeight&&(Sidebar.prototype.thumbHeight=a.thumbHeight);a.emptyLibraryXml&&(EditorUi.prototype.emptyLibraryXml=a.emptyLibraryXml);a.sidebarWidth&&(EditorUi.prototype.hsplitPosition=a.sidebarWidth);a.fontCss&&(b=document.createElement("style"),b.setAttribute("type", -"text/css"),b.appendChild(document.createTextNode(a.fontCss)),c=document.getElementsByTagName("script")[0],c.parentNode.insertBefore(b,c),Editor.prototype.fontCss=a.fontCss);if(null!=a.plugins)for(App.initPluginCallback(),b=0;b'),b.writeln(a.editor.fontCss),b.writeln(""))};if("undefined"!==typeof MathJax){var t=c.renderPage;c.renderPage=function(a,b,c,d,g,k){var e=t.apply(this,arguments);this.graph.mathEnabled?this.mathEnabled=!0:e.className="geDisableMathJax";return e}}c.open(null,null,g,!0)}else{f=b.background;if(null==f||""==f||f==mxConstants.NONE)f="#ffffff";c.backgroundColor=f;c.autoOrigin=h;c.appendGraph(b,u,e,n,g,!0)}return c}var d=parseInt(U.value)/100;isNaN(d)&&(d=1,U.value= "100 %");var d=.75*d,k=l.value,e=p.value,n=!q.checked,u=null;n&&(n=k==f&&e==f);if(!n&&null!=a.pages&&a.pages.length){var h=0,n=a.pages.length-1;q.checked||(h=parseInt(k)-1,n=parseInt(e)-1);for(var t=h;t<=n;t++){var w=a.pages[t],k=w==a.currentPage?g:null;if(null==k){var k=a.createTemporaryGraph(g.getStylesheet()),e=!0,h=!1,v=null,m=null;null==w.viewState&&null==w.mapping&&null==w.root&&a.updatePageRoot(w);null!=w.viewState?(e=w.viewState.pageVisible,h=w.viewState.mathEnabled,v=w.viewState.background, m=w.viewState.backgroundImage):null!=w.mapping&&null!=w.mapping.diagramMap&&(h="0"!=w.mapping.diagramMap.get("mathEnabled"),v=w.mapping.diagramMap.get("background"),m=w.mapping.diagramMap.get("backgroundImage"),m=null!=m&&0'),n.writeln("MathJax.Hub.Config({"),n.writeln('messageStyle: "none",'),n.writeln('jax: ["input/TeX", "input/MathML", "input/AsciiMath", "output/HTML-CSS"],'),n.writeln('extensions: ["tex2jax.js", "mml2jax.js", "asciimath2jax.js"],'),n.writeln("TeX: {"),n.writeln('extensions: ["AMSmath.js", "AMSsymbols.js", "noErrors.js", "noUndefined.js"]'), -n.writeln("},"),n.writeln("tex2jax: {"),n.writeln('\tignoreClass: "geDisableMathJax"'),n.writeln("},"),n.writeln("asciimath2jax: {"),n.writeln('\tignoreClass: "geDisableMathJax"'),n.writeln("}"),n.writeln("});"),b&&(n.writeln("MathJax.Hub.Queue(function () {"),n.writeln("window.print();"),n.writeln("});")),n.writeln("\x3c/script>"),n.writeln(''); - doc.writeln(''); + doc.writeln(''); } pv.closeDocument(); diff --git a/src/main/webapp/js/diagramly/EditorUi.js b/src/main/webapp/js/diagramly/EditorUi.js index 0ed9ff03..d25ebf66 100644 --- a/src/main/webapp/js/diagramly/EditorUi.js +++ b/src/main/webapp/js/diagramly/EditorUi.js @@ -1040,7 +1040,7 @@ * @param {number} dx X-coordinate of the translation. * @param {number} dy Y-coordinate of the translation. */ - EditorUi.prototype.getBaseFilename = function() + EditorUi.prototype.getBaseFilename = function(ignorePageName) { var file = this.getCurrentFile(); var basename = (file != null && file.getTitle() != null) ? file.getTitle() : this.defaultFilename; @@ -1050,6 +1050,13 @@ { basename = basename.substring(0, basename.lastIndexOf('.')); } + + if (!ignorePageName && this.pages != null && this.pages.length > 1 && + this.currentPage != null && this.currentPage.node.getAttribute('name') != null && + this.currentPage.getName().length > 0) + { + basename = basename + '-' + this.currentPage.getName(); + } return basename; }; @@ -1065,7 +1072,7 @@ try { ignoreSelection = (ignoreSelection != null) ? ignoreSelection : this.editor.graph.isSelectionEmpty(); - var basename = this.getBaseFilename(); + var basename = this.getBaseFilename(!currentPage); var filename = basename + '.' + format; if (format == 'xml') @@ -2572,8 +2579,8 @@ else { this.handleError({message: mxResources.get((xhr.status == 413) ? - 'drawingTooLarge' : 'invalidOrMissingFile')}, - mxResources.get('errorLoadingFile')); + 'drawingTooLarge' : 'invalidOrMissingFile')}, + mxResources.get('errorLoadingFile')); } } })); @@ -2608,7 +2615,7 @@ } btn = btn.cloneNode(false); - btn.setAttribute('src', IMAGE_PATH + '/edit.gif'); + btn.setAttribute('src', Editor.editImage); btn.setAttribute('title', mxResources.get('edit')); buttons.insertBefore(btn, buttons.firstChild); @@ -6956,6 +6963,19 @@ return c; }; + EditorUi.prototype.crc32 = function(str) + { + this.crcTable = this.crcTable || this.createCrcTable(); + var crc = 0 ^ (-1); + + for (var i = 0; i < str.length; i++ ) + { + crc = (crc >>> 8) ^ this.crcTable[(crc ^ str.charCodeAt(i)) & 0xFF]; + } + + return (crc ^ (-1)) >>> 0; + }; + /** * Adds the given text to the compressed or non-compressed text chunk. */ @@ -10362,10 +10382,14 @@ // while waiting for file data var libsEnabled = urlParams['embed'] != '1' || this.editor.graph.isEnabled(); - this.menus.get('openLibraryFrom').setEnabled(libsEnabled); - this.menus.get('newLibrary').setEnabled(libsEnabled); this.menus.get('extras').setEnabled(libsEnabled); + if (Editor.enableCustomLibraries) + { + this.menus.get('openLibraryFrom').setEnabled(libsEnabled); + this.menus.get('newLibrary').setEnabled(libsEnabled); + } + // Disables actions in the toolbar var editable = (urlParams['embed'] == '1' && this.editor.graph.isEnabled()) || @@ -10546,7 +10570,7 @@ this.actions.get('find').setEnabled(enabled); this.actions.get('layers').setEnabled(enabled); this.actions.get('outline').setEnabled(enabled); - this.actions.get('rename').setEnabled(file != null && file.isRenamable()); + this.actions.get('rename').setEnabled((file != null && file.isRenamable()) || urlParams['embed'] == '1'); this.actions.get('close').setEnabled(file != null); this.menus.get('publish').setEnabled(file != null && !file.isRestricted()); diff --git a/src/main/webapp/js/diagramly/Embed.js b/src/main/webapp/js/diagramly/Embed.js index 7713180f..8471de58 100644 --- a/src/main/webapp/js/diagramly/Embed.js +++ b/src/main/webapp/js/diagramly/Embed.js @@ -50,7 +50,16 @@ messageStyle: 'none', AuthorInit: function () { - MathJax.Hub.Config({"HTML-CSS":{availableFonts:[],webFont:"STIX-Web",imageFont:null}}); + MathJax.Hub.Config({ + jax: ['input/TeX', 'input/MathML', 'input/AsciiMath', 'output/HTML-CSS'], + extensions: ['tex2jax.js', 'mml2jax.js', 'asciimath2jax.js'], + 'HTML-CSS': { + imageFont: null + }, + TeX: { + extensions: ['AMSmath.js', 'AMSsymbols.js', 'noErrors.js', 'noUndefined.js'] + } + }); MathJax.Hub.Register.StartupHook('Begin', function() { @@ -64,7 +73,7 @@ var script = document.createElement('script'); script.type = 'text/javascript'; - script.src = 'https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-MML-AM_HTMLorMML'; + script.src = 'https://math.draw.io/current/MathJax.js?config=TeX-MML-AM_HTMLorMML'; document.getElementsByTagName('head')[0].appendChild(script); } }; diff --git a/src/main/webapp/js/diagramly/Menus.js b/src/main/webapp/js/diagramly/Menus.js index 4863dd92..557dfbfe 100644 --- a/src/main/webapp/js/diagramly/Menus.js +++ b/src/main/webapp/js/diagramly/Menus.js @@ -172,7 +172,7 @@ editorUi.createHtml(publicUrl, zoomEnabled, initialZoom, linkTarget, linkColor, fit, allPages, layers, lightbox, editLink, mxUtils.bind(this, function(html, scriptTag) { - var basename = editorUi.getBaseFilename(); + var basename = editorUi.getBaseFilename(allPages); var result = '\n' + '\n\n\n' + mxUtils.htmlEntities(basename) + '\n' + '\n\n' + html + '\n' + scriptTag + '\n\n'; @@ -1830,7 +1830,7 @@ } }))); - this.editorUi.actions.addAction('rename...', mxUtils.bind(this, function() + var renameAction = this.editorUi.actions.addAction('rename...', mxUtils.bind(this, function() { var file = this.editorUi.getCurrentFile(); @@ -1867,11 +1867,15 @@ this.editorUi.showDialog(dlg.container, 300, 80, true, true); dlg.init(); } - })).isEnabled = function() + })); + + renameAction.isEnabled = function() { return this.enabled && isGraphEnabled.apply(this, arguments); } + renameAction.visible = urlParams['embed'] != '1'; + editorUi.actions.addAction('makeCopy...', mxUtils.bind(this, function() { var file = editorUi.getCurrentFile(); @@ -2279,240 +2283,243 @@ } })); - this.put('newLibrary', new Menu(function(menu, parent) + if (Editor.enableCustomLibraries) { - if (typeof(google) != 'undefined' && typeof(google.picker) != 'undefined') + this.put('newLibrary', new Menu(function(menu, parent) { - if (editorUi.drive != null) + if (typeof(google) != 'undefined' && typeof(google.picker) != 'undefined') { - menu.addItem(mxResources.get('googleDrive') + '...', null, function() + if (editorUi.drive != null) { - editorUi.showLibraryDialog(null, null, null, null, App.MODE_GOOGLE); - }, parent); - } - else if (googleEnabled) - { - menu.addItem(mxResources.get('googleDrive') + ' (' + mxResources.get('loading') + '...)', null, function() - { - // do nothing - }, parent, null, false); - } - } - - if (editorUi.gitHub != null) - { - menu.addItem(mxResources.get('github') + '...', null, function() - { - editorUi.showLibraryDialog(null, null, null, null, App.MODE_GITHUB); - }, parent); - } - - if (editorUi.dropbox != null) - { - menu.addItem(mxResources.get('dropbox') + '...', null, function() - { - editorUi.showLibraryDialog(null, null, null, null, App.MODE_DROPBOX); - }, parent); - } - else if (dropboxEnabled) - { - menu.addItem(mxResources.get('dropbox') + ' (' + mxResources.get('loading') + '...)', null, function() - { - // do nothing - }, parent, null, false); - } - - if (editorUi.oneDrive != null) - { - menu.addItem(mxResources.get('oneDrive') + '...', null, function() - { - editorUi.showLibraryDialog(null, null, null, null, App.MODE_ONEDRIVE); - }, parent); - } - else if (oneDriveEnabled) - { - menu.addItem(mxResources.get('oneDrive') + ' (' + mxResources.get('loading') + '...)', null, function() - { - // do nothing - }, parent, null, false); - } - - if (editorUi.trello != null) - { - menu.addItem(mxResources.get('trello') + '...', null, function() - { - editorUi.showLibraryDialog(null, null, null, null, App.MODE_TRELLO); - }, parent); - } - else if (trelloEnabled) - { - menu.addItem(mxResources.get('trello') + ' (' + mxResources.get('loading') + '...)', null, function() - { - // do nothing - }, parent, null, false); - } - - menu.addSeparator(parent); - - if (isLocalStorage && urlParams['browser'] != '0') - { - menu.addItem(mxResources.get('browser') + '...', null, function() - { - editorUi.showLibraryDialog(null, null, null, null, App.MODE_BROWSER); - }, parent); - } - - if (!mxClient.IS_IOS) - { - menu.addItem(mxResources.get('device') + '...', null, function() - { - editorUi.showLibraryDialog(null, null, null, null, App.MODE_DEVICE); - }, parent); - } - })); - - this.put('openLibraryFrom', new Menu(function(menu, parent) - { - if (typeof(google) != 'undefined' && typeof(google.picker) != 'undefined') - { - if (editorUi.drive != null) - { - menu.addItem(mxResources.get('googleDrive') + '...', null, function() - { - editorUi.pickLibrary(App.MODE_GOOGLE); - }, parent); - } - else if (googleEnabled) - { - menu.addItem(mxResources.get('googleDrive') + ' (' + mxResources.get('loading') + '...)', null, function() - { - // do nothing - }, parent, null, false); - } - } - - if (editorUi.gitHub != null) - { - menu.addItem(mxResources.get('github') + '...', null, function() - { - editorUi.pickLibrary(App.MODE_GITHUB); - }, parent); - } - - if (editorUi.dropbox != null) - { - menu.addItem(mxResources.get('dropbox') + '...', null, function() - { - editorUi.pickLibrary(App.MODE_DROPBOX); - }, parent); - } - else if (dropboxEnabled) - { - menu.addItem(mxResources.get('dropbox') + ' (' + mxResources.get('loading') + '...)', null, function() - { - // do nothing - }, parent, null, false); - } - - if (editorUi.oneDrive != null) - { - menu.addItem(mxResources.get('oneDrive') + '...', null, function() - { - editorUi.pickLibrary(App.MODE_ONEDRIVE); - }, parent); - } - else if (oneDriveEnabled) - { - menu.addItem(mxResources.get('oneDrive') + ' (' + mxResources.get('loading') + '...)', null, function() - { - // do nothing - }, parent, null, false); - } - - if (editorUi.trello != null) - { - menu.addItem(mxResources.get('trello') + '...', null, function() - { - editorUi.pickLibrary(App.MODE_TRELLO); - }, parent); - } - else if (trelloEnabled) - { - menu.addItem(mxResources.get('trello') + ' (' + mxResources.get('loading') + '...)', null, function() - { - // do nothing - }, parent, null, false); - } - - menu.addSeparator(parent); - - if (isLocalStorage && urlParams['browser'] != '0') - { - menu.addItem(mxResources.get('browser') + '...', null, function() - { - editorUi.pickLibrary(App.MODE_BROWSER); - }, parent); - } - - if (!mxClient.IS_IOS) - { - menu.addItem(mxResources.get('device') + '...', null, function() - { - editorUi.pickLibrary(App.MODE_DEVICE); - }, parent); - } - - if (!editorUi.isOffline()) - { - menu.addSeparator(parent); - - menu.addItem(mxResources.get('url') + '...', null, function() - { - var dlg = new FilenameDialog(editorUi, '', mxResources.get('open'), function(fileUrl) - { - if (fileUrl != null && fileUrl.length > 0 && editorUi.spinner.spin(document.body, mxResources.get('loading'))) + menu.addItem(mxResources.get('googleDrive') + '...', null, function() { - var realUrl = fileUrl; - - if (!editorUi.isCorsEnabledForUrl(fileUrl)) + editorUi.showLibraryDialog(null, null, null, null, App.MODE_GOOGLE); + }, parent); + } + else if (googleEnabled) + { + menu.addItem(mxResources.get('googleDrive') + ' (' + mxResources.get('loading') + '...)', null, function() + { + // do nothing + }, parent, null, false); + } + } + + if (editorUi.gitHub != null) + { + menu.addItem(mxResources.get('github') + '...', null, function() + { + editorUi.showLibraryDialog(null, null, null, null, App.MODE_GITHUB); + }, parent); + } + + if (editorUi.dropbox != null) + { + menu.addItem(mxResources.get('dropbox') + '...', null, function() + { + editorUi.showLibraryDialog(null, null, null, null, App.MODE_DROPBOX); + }, parent); + } + else if (dropboxEnabled) + { + menu.addItem(mxResources.get('dropbox') + ' (' + mxResources.get('loading') + '...)', null, function() + { + // do nothing + }, parent, null, false); + } + + if (editorUi.oneDrive != null) + { + menu.addItem(mxResources.get('oneDrive') + '...', null, function() + { + editorUi.showLibraryDialog(null, null, null, null, App.MODE_ONEDRIVE); + }, parent); + } + else if (oneDriveEnabled) + { + menu.addItem(mxResources.get('oneDrive') + ' (' + mxResources.get('loading') + '...)', null, function() + { + // do nothing + }, parent, null, false); + } + + if (editorUi.trello != null) + { + menu.addItem(mxResources.get('trello') + '...', null, function() + { + editorUi.showLibraryDialog(null, null, null, null, App.MODE_TRELLO); + }, parent); + } + else if (trelloEnabled) + { + menu.addItem(mxResources.get('trello') + ' (' + mxResources.get('loading') + '...)', null, function() + { + // do nothing + }, parent, null, false); + } + + menu.addSeparator(parent); + + if (isLocalStorage && urlParams['browser'] != '0') + { + menu.addItem(mxResources.get('browser') + '...', null, function() + { + editorUi.showLibraryDialog(null, null, null, null, App.MODE_BROWSER); + }, parent); + } + + if (!mxClient.IS_IOS) + { + menu.addItem(mxResources.get('device') + '...', null, function() + { + editorUi.showLibraryDialog(null, null, null, null, App.MODE_DEVICE); + }, parent); + } + })); + + this.put('openLibraryFrom', new Menu(function(menu, parent) + { + if (typeof(google) != 'undefined' && typeof(google.picker) != 'undefined') + { + if (editorUi.drive != null) + { + menu.addItem(mxResources.get('googleDrive') + '...', null, function() + { + editorUi.pickLibrary(App.MODE_GOOGLE); + }, parent); + } + else if (googleEnabled) + { + menu.addItem(mxResources.get('googleDrive') + ' (' + mxResources.get('loading') + '...)', null, function() + { + // do nothing + }, parent, null, false); + } + } + + if (editorUi.gitHub != null) + { + menu.addItem(mxResources.get('github') + '...', null, function() + { + editorUi.pickLibrary(App.MODE_GITHUB); + }, parent); + } + + if (editorUi.dropbox != null) + { + menu.addItem(mxResources.get('dropbox') + '...', null, function() + { + editorUi.pickLibrary(App.MODE_DROPBOX); + }, parent); + } + else if (dropboxEnabled) + { + menu.addItem(mxResources.get('dropbox') + ' (' + mxResources.get('loading') + '...)', null, function() + { + // do nothing + }, parent, null, false); + } + + if (editorUi.oneDrive != null) + { + menu.addItem(mxResources.get('oneDrive') + '...', null, function() + { + editorUi.pickLibrary(App.MODE_ONEDRIVE); + }, parent); + } + else if (oneDriveEnabled) + { + menu.addItem(mxResources.get('oneDrive') + ' (' + mxResources.get('loading') + '...)', null, function() + { + // do nothing + }, parent, null, false); + } + + if (editorUi.trello != null) + { + menu.addItem(mxResources.get('trello') + '...', null, function() + { + editorUi.pickLibrary(App.MODE_TRELLO); + }, parent); + } + else if (trelloEnabled) + { + menu.addItem(mxResources.get('trello') + ' (' + mxResources.get('loading') + '...)', null, function() + { + // do nothing + }, parent, null, false); + } + + menu.addSeparator(parent); + + if (isLocalStorage && urlParams['browser'] != '0') + { + menu.addItem(mxResources.get('browser') + '...', null, function() + { + editorUi.pickLibrary(App.MODE_BROWSER); + }, parent); + } + + if (!mxClient.IS_IOS) + { + menu.addItem(mxResources.get('device') + '...', null, function() + { + editorUi.pickLibrary(App.MODE_DEVICE); + }, parent); + } + + if (!editorUi.isOffline()) + { + menu.addSeparator(parent); + + menu.addItem(mxResources.get('url') + '...', null, function() + { + var dlg = new FilenameDialog(editorUi, '', mxResources.get('open'), function(fileUrl) + { + if (fileUrl != null && fileUrl.length > 0 && editorUi.spinner.spin(document.body, mxResources.get('loading'))) { - realUrl = PROXY_URL + '?url=' + encodeURIComponent(fileUrl); - } - - // Uses proxy to avoid CORS issues - mxUtils.get(realUrl, function(req) - { - if (req.getStatus() >= 200 && req.getStatus() <= 299) + var realUrl = fileUrl; + + if (!editorUi.isCorsEnabledForUrl(fileUrl)) { - editorUi.spinner.stop(); - - try - { - editorUi.loadLibrary(new UrlLibrary(this, req.getText(), fileUrl)); - } - catch (e) - { - editorUi.handleError(e, mxResources.get('errorLoadingFile')); - } + realUrl = PROXY_URL + '?url=' + encodeURIComponent(fileUrl); } - else + + // Uses proxy to avoid CORS issues + mxUtils.get(realUrl, function(req) + { + if (req.getStatus() >= 200 && req.getStatus() <= 299) + { + editorUi.spinner.stop(); + + try + { + editorUi.loadLibrary(new UrlLibrary(this, req.getText(), fileUrl)); + } + catch (e) + { + editorUi.handleError(e, mxResources.get('errorLoadingFile')); + } + } + else + { + editorUi.spinner.stop(); + editorUi.handleError(null, mxResources.get('errorLoadingFile')); + } + }, function() { editorUi.spinner.stop(); editorUi.handleError(null, mxResources.get('errorLoadingFile')); - } - }, function() - { - editorUi.spinner.stop(); - editorUi.handleError(null, mxResources.get('errorLoadingFile')); - }); - } - }, mxResources.get('url')); - editorUi.showDialog(dlg.container, 300, 80, true, true); - dlg.init(); - }, parent); - } - })); - + }); + } + }, mxResources.get('url')); + editorUi.showDialog(dlg.container, 300, 80, true, true); + dlg.init(); + }, parent); + } + })); + } + // Overrides edit menu to add find this.put('edit', new Menu(mxUtils.bind(this, function(menu, parent) { @@ -2586,7 +2593,7 @@ { this.addMenuItem(menu, 'plugins', parent); } - + menu.addSeparator(parent); this.addMenuItem(menu, 'tags', parent); }))); @@ -2606,7 +2613,7 @@ this.addSubmenu('openLibraryFrom', menu, parent); } - this.addMenuItems(menu, ['-', 'pageSetup', 'print', '-', 'save'], parent); + this.addMenuItems(menu, ['-', 'pageSetup', 'print', '-', 'rename', 'save'], parent); if (urlParams['saveAndExit'] == '1') { diff --git a/src/main/webapp/js/diagramly/Minimal.js b/src/main/webapp/js/diagramly/Minimal.js index ce4a6467..3cdf5d5e 100644 --- a/src/main/webapp/js/diagramly/Minimal.js +++ b/src/main/webapp/js/diagramly/Minimal.js @@ -123,17 +123,9 @@ EditorUi.initMinimalTheme = function() return format; }); - ui.formatWindow.window.addListener('show', function() - { - ui.fireEvent(new mxEventObject('format')); - }); - ui.formatWindow.window.addListener('format', function() - { - ui.fireEvent(new mxEventObject('format')); - }); + ui.formatWindow.window.minimumSize = new mxRectangle(0, 0, 240, 80); ui.formatWindow.window.setVisible(true); - ui.fireEvent(new mxEventObject('sidebar')); } else { @@ -192,7 +184,7 @@ EditorUi.initMinimalTheme = function() return elt; } - if (urlParams['embed'] != '1' || urlParams['libraries'] == '1') + if (Editor.enableCustomLibraries && (urlParams['embed'] != '1' || urlParams['libraries'] == '1')) { // Defined in native apps together with openLibrary if (ui.actions.get('newLibrary') != null) @@ -241,17 +233,9 @@ EditorUi.initMinimalTheme = function() return container; }); - ui.sidebarWindow.window.addListener('show', function() - { - ui.fireEvent(new mxEventObject('sidebar')); - }); - ui.sidebarWindow.window.addListener('sidebar', function() - { - ui.fireEvent(new mxEventObject('sidebar')); - }); + ui.sidebarWindow.window.minimumSize = new mxRectangle(0, 0, 90, 90); ui.sidebarWindow.window.setVisible(true); - ui.fireEvent(new mxEventObject('sidebar')); ui.getLocalData('sidebar', function(value) { @@ -569,7 +553,7 @@ EditorUi.initMinimalTheme = function() } }; - DiagramFormatPanel.prototype.isMathOptionVisible = function(div) + DiagramFormatPanel.prototype.isMathOptionVisible = function() { return true; }; diff --git a/src/main/webapp/js/diagramly/Pages.js b/src/main/webapp/js/diagramly/Pages.js index 3a758f47..d385ee13 100644 --- a/src/main/webapp/js/diagramly/Pages.js +++ b/src/main/webapp/js/diagramly/Pages.js @@ -328,8 +328,6 @@ EditorUi.prototype.initPages = function() graphViewValidateBackground.apply(graph.view, arguments); }); - // Math workaround is only needed for initial rendering - var ignorePendingMath = false; var lastPage = null; var updateTabs = mxUtils.bind(this, function() @@ -376,28 +374,19 @@ EditorUi.prototype.initPages = function() if (typeof(MathJax) !== 'undefined' && typeof(MathJax.Hub) !== 'undefined') { // Pending math should not be rendered if the graph has no math enabled - if (!ignorePendingMath && this.editor != null) + if (MathJax.Hub.queue.pending == 1 && this.editor != null && !this.editor.graph.mathEnabled) { - if (MathJax.Hub.queue.pending == 1 && !this.editor.graph.mathEnabled) - { - // Since there is no way to stop/undo mathjax or - // clear the queue, we do a refresh after typeset - MathJax.Hub.Queue(mxUtils.bind(this, function() - { - this.editor.graph.refresh(); - })); - } - + // Since there is no way to stop/undo mathjax or + // clear the queue we have to refresh after typeset MathJax.Hub.Queue(mxUtils.bind(this, function() { - ignorePendingMath = true; + this.editor.graph.refresh(); })); } } else if (typeof(Editor.MathJaxClear) !== 'undefined' && (this.editor == null || !this.editor.graph.mathEnabled)) { // Clears our own queue for async loading - ignorePendingMath = true; Editor.MathJaxClear(); } }); diff --git a/src/main/webapp/js/diagramly/sidebar/Sidebar-WebIcons.js b/src/main/webapp/js/diagramly/sidebar/Sidebar-WebIcons.js index 4c444b51..79cd75a5 100644 --- a/src/main/webapp/js/diagramly/sidebar/Sidebar-WebIcons.js +++ b/src/main/webapp/js/diagramly/sidebar/Sidebar-WebIcons.js @@ -4,7 +4,7 @@ Sidebar.prototype.addWebIconsPalette = function() { var sb = this; - var s = 'dashed=0;html=1;' + mxConstants.STYLE_SHAPE + "=mxgraph.webicons."; + var s = 'dashed=0;html=1;align=center;labelPosition=center;verticalLabelPosition=bottom;verticalAlign=top;' + mxConstants.STYLE_SHAPE + "=mxgraph.webicons."; var gn = 'mxgraph.webicons'; var dt = 'web icons icon'; var w = 0.2; @@ -92,10 +92,8 @@ w * 512, h * 512, '', 'Diigo', null, null, this.getTagsForStencil(gn, 'diiigo', dt).join(' ')), this.createVertexTemplateEntry(s + 'dopplr;fillColor=#FFFFFF;gradientColor=#DFDEDE', w * 512, h * 512, '', 'Dopplr', null, null, this.getTagsForStencil(gn, 'dopplr', dt).join(' ')), - this.createVertexTemplateEntry(s + 'drawio1;fillColor=#2174CE;gradientColor=#134277', - w * 512, h * 512, '', 'Draw.io', null, null, this.getTagsForStencil(gn, 'drawio draw io', dt).join(' ')), this.createVertexTemplateEntry(s + 'drawio2;fillColor=#2174CE;gradientColor=#134277', - w * 512, h * 512, '', 'Draw.io', null, null, this.getTagsForStencil(gn, 'drawio draw io', dt).join(' ')), + w * 512, h * 512, '', 'Draw.io', null, null, this.getTagsForStencil(gn, 'drawio draw io draw.io', dt).join(' ')), this.createVertexTemplateEntry(s + 'dribbble;fillColor=#FFFFFF;gradientColor=#DFDEDE', w * 512, h * 512, '', 'Dribbble', null, null, this.getTagsForStencil(gn, 'dribbble', dt).join(' ')), this.createVertexTemplateEntry(s + 'dropbox;fillColor=#0BAAFE;gradientColor=#0080E6', @@ -371,7 +369,7 @@ Sidebar.prototype.addWebLogosPalette = function() { var sb = this; - var s = 'dashed=0;html=1;' + mxConstants.STYLE_SHAPE + "=mxgraph.weblogos."; + var s = 'dashed=0;html=1;align=center;labelPosition=center;verticalLabelPosition=bottom;verticalAlign=top;' + mxConstants.STYLE_SHAPE + "=mxgraph.weblogos."; var gn = 'mxgraph.weblogos'; var dt = 'web logos logo'; var w = 0.2; @@ -467,10 +465,10 @@ w * 306, h * 344, '', 'Diigo', null, null, this.getTagsForStencil(gn, 'diiigo', dt).join(' ')), this.createVertexTemplateEntry(s + 'dopplr;fillColor=#F9634D;strokeColor=none', w * 512, h * 512, '', 'Dopplr', null, null, this.getTagsForStencil(gn, 'dopplr', dt).join(' ')), - this.createVertexTemplateEntry(s + 'drawio1;fillColor=#1A5BA3', - w * 248, h * 341, '', 'Draw.io', null, null, this.getTagsForStencil(gn, 'drawio draw io', dt).join(' ')), this.createVertexTemplateEntry(s + 'drawio2;fillColor=#1A5BA3', - w * 261, h * 354, '', 'Draw.io', null, null, this.getTagsForStencil(gn, 'drawio draw io', dt).join(' ')), + w * 261, h * 354, '', 'Draw.io', null, null, this.getTagsForStencil(gn, 'drawio draw io draw.io', dt).join(' ')), + this.createVertexTemplateEntry(s + 'drawio3;fillColor=#1A5BA3;fontSize=15;fontColor=#1A5BA3;fontStyle=1', + w * 261, h * 261, 'draw.io', 'Draw.io', null, null, this.getTagsForStencil(gn, 'drawio draw io draw.io', dt).join(' ')), this.createVertexTemplateEntry(s + 'dribbble;fillColor=#EB548D', w * 337, h * 336, '', 'Dribbble', null, null, this.getTagsForStencil(gn, 'dribbble', dt).join(' ')), this.createVertexTemplateEntry(s + 'dropbox;fillColor=#0287EA', diff --git a/src/main/webapp/js/diagramly/vsdx/importer.js b/src/main/webapp/js/diagramly/vsdx/importer.js index 4d4935ec..24d5f16f 100644 --- a/src/main/webapp/js/diagramly/vsdx/importer.js +++ b/src/main/webapp/js/diagramly/vsdx/importer.js @@ -54,6 +54,36 @@ var com; return mxVsdxCodec.vsdxPlaceholder; }; + mxVsdxCodec.parsererrorNS_$LI$ = function () + { + if (mxVsdxCodec.parsererrorNS == null) + { + var parser = new DOMParser(); + mxVsdxCodec.parsererrorNS = parser.parseFromString('<', 'text/xml').getElementsByTagName("parsererror")[0].namespaceURI; + } + + return mxVsdxCodec.parsererrorNS; + }; + + mxVsdxCodec.isParseError = function (doc) + { + return doc.getElementsByTagNameNS(mxVsdxCodec.parsererrorNS, 'parsererror').length > 0; + }; + + //TODO Optimize this function + mxVsdxCodec.decodeUTF16LE = function ( binaryStr ) + { + var cp = ""; + for( var i = 0; i < binaryStr.length; i+=2) + { + cp += String.fromCharCode( + binaryStr.charCodeAt(i) | + ( binaryStr.charCodeAt(i+1) << 8 ) + ); + } + + return cp ; + } /** * Parses the input VSDX format and uses the information to populate * the specified graph. @@ -170,7 +200,24 @@ var com; { var dateAfter = new Date(); //console.log(processedFiles + " File extracted in " + (dateAfter - dateBefore) + "ms"); - allDone(); + try + { + allDone(); + } + catch(e) + { + console.log(e); + + if (onerror != null) + { + onerror(); + } + else + { + callback(""); + } + } + } }; @@ -199,21 +246,22 @@ var com; filesCount++; zipEntry.async("string").then(function (str) { - if (!(str.length === 0)) { + if (!(str.length === 0)) { //UTF-8 BOM causes exception while parsing, so remove it //TODO is the text encoding will be correct or string must be re-read as UTF-8? - if ((function (str, searchString, position) { - if (position === void 0) { position = 0; } - return str.substr(position, searchString.length) === searchString; - })(str, "\u00ef\u00bb\u00bf")) - str = str.substring(3); + if (str.charCodeAt(0) == 65279) + { + str = str.substring(1); + } + var doc = mxUtils.parseXml(str); - if (doc == null) { //FIXME TODO find a way to change encoding in javascript - // var outBytes = out.toByteArray(); - // if (outBytes[1] === 0 && outBytes[3] === 0 && outBytes[5] === 0) { - // str = out.toString("UTF-16LE"); - // doc = mxUtils.parseXml(str); - // } + + if ( mxVsdxCodec.isParseError(doc)) + { + if (str.charCodeAt(1) === 0 && str.charCodeAt(3) === 0 && str.charCodeAt(5) === 0) + { + doc = mxUtils.parseXml(mxVsdxCodec.decodeUTF16LE(str)); + } //TODO add any other non-standard encoding that may be needed } doc.vsdxFileName = filename; @@ -11687,6 +11735,7 @@ com.mxgraph.io.vsdx.mxVsdxConstants.SET_VALUES_$LI$(); com.mxgraph.io.vsdx.mxPropertiesManager.defaultColors_$LI$(); com.mxgraph.io.vsdx.mxPropertiesManager.__static_initialize(); com.mxgraph.io.mxVsdxCodec.vsdxPlaceholder_$LI$(); +com.mxgraph.io.mxVsdxCodec.parsererrorNS_$LI$(); EditorUi.prototype.doImportVisio = function(file, done, onerror) { diff --git a/src/main/webapp/js/embed-static.min.js b/src/main/webapp/js/embed-static.min.js index 26a4b82b..fbbc07a4 100644 --- a/src/main/webapp/js/embed-static.min.js +++ b/src/main/webapp/js/embed-static.min.js @@ -184,7 +184,7 @@ f)+"\n"+t+"}":"{"+z.join(",")+"}";f=t;return l}}"function"!==typeof Date.prototy e=/[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,f,g,h={"\b":"\\b","\t":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"},k;"function"!==typeof JSON.stringify&&(JSON.stringify=function(a,b,d){var e;g=f="";if("number"===typeof d)for(e=0;enavigator.userAgent.indexOf("MSIE")&& +window.STYLE_PATH=window.STYLE_PATH||"styles";window.CSS_PATH=window.CSS_PATH||"styles";window.OPEN_FORM=window.OPEN_FORM||"open.html";window.mxBasePath=window.mxBasePath||"../../../src";window.mxLanguage=window.mxLanguage||urlParams.lang;window.mxLanguages=window.mxLanguages||["de"];var mxClient={VERSION:"8.6.9",IS_IE:0<=navigator.userAgent.indexOf("MSIE"),IS_IE6:0<=navigator.userAgent.indexOf("MSIE 6"),IS_IE11:!!navigator.userAgent.match(/Trident\/7\./),IS_EDGE:!!navigator.userAgent.match(/Edge\//),IS_QUIRKS:0<=navigator.userAgent.indexOf("MSIE")&&(null==document.documentMode||5==document.documentMode),IS_EM:"spellcheck"in document.createElement("textarea")&&8==document.documentMode,VML_PREFIX:"v",OFFICE_PREFIX:"o",IS_NS:0<=navigator.userAgent.indexOf("Mozilla/")&&0>navigator.userAgent.indexOf("MSIE")&& 0>navigator.userAgent.indexOf("Edge/"),IS_OP:0<=navigator.userAgent.indexOf("Opera/")||0<=navigator.userAgent.indexOf("OPR/"),IS_OT: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:0<=navigator.userAgent.indexOf("AppleWebKit/")&& 0>navigator.userAgent.indexOf("Chrome/")&&0>navigator.userAgent.indexOf("Edge/"),IS_IOS:navigator.userAgent.match(/(iPad|iPhone|iPod)/g)?!0:!1,IS_GC:0<=navigator.userAgent.indexOf("Chrome/")&&0>navigator.userAgent.indexOf("Edge/"),IS_CHROMEAPP:null!=window.chrome&&null!=chrome.app&&null!=chrome.app.runtime,IS_FF:0<=navigator.userAgent.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:0<=navigator.userAgent.indexOf("Firefox/")||0<=navigator.userAgent.indexOf("Iceweasel/")||0<=navigator.userAgent.indexOf("Seamonkey/")||0<=navigator.userAgent.indexOf("Iceape/")||0<=navigator.userAgent.indexOf("Galeon/")|| @@ -485,9 +485,9 @@ mxShape.prototype.updateHtmlColors=function(a){var b=this.stroke;null!=b&&b!=mxC mxUtils.addTransparentBackgroundFilter(a):this.setTransparentBackgroundImage(a)}; mxShape.prototype.updateHtmlBounds=function(a){var b=9<=document.documentMode?0:Math.ceil(this.strokewidth*this.scale);a.style.borderWidth=Math.max(1,b)+"px";a.style.overflow="hidden";a.style.left=Math.round(this.bounds.x-b/2)+"px";a.style.top=Math.round(this.bounds.y-b/2)+"px";"CSS1Compat"==document.compatMode&&(b=-b);a.style.width=Math.round(Math.max(0,this.bounds.width+b))+"px";a.style.height=Math.round(Math.max(0,this.bounds.height+b))+"px"}; mxShape.prototype.destroyCanvas=function(a){if(a instanceof mxSvgCanvas2D){for(var b in a.gradients){var c=a.gradients[b];null!=c&&(c.mxRefCount=(c.mxRefCount||0)+1)}this.releaseSvgGradients(this.oldGradients);this.oldGradients=a.gradients}}; -mxShape.prototype.paint=function(a){var b=this.scale,c=this.bounds.x/b,d=this.bounds.y/b,e=this.bounds.width/b,f=this.bounds.height/b;if(this.isPaintBoundsInverted())var g=(e-f)/2,c=c+g,d=d-g,g=e,e=f,f=g;this.updateTransform(a,c,d,e,f);this.configureCanvas(a,c,d,e,f);g=null;if(null==this.stencil&&null==this.points&&this.shapePointerEvents||null!=this.stencil&&this.stencilPointerEvents){var h=this.createBoundingBox();this.dialect==mxConstants.DIALECT_SVG?(g=this.createTransparentSvgRectangle(h.x,h.y, -h.width,h.height),this.node.appendChild(g)):(h=a.createRect("rect",h.x/b,h.y/b,h.width/b,h.height/b),h.appendChild(a.createTransparentFill()),h.stroked="false",a.root.appendChild(h))}if(null!=this.stencil)this.stencil.drawShape(a,this,c,d,e,f);else if(a.setStrokeWidth(this.strokewidth),null!=this.points){c=[];for(d=0;d").replace(/&gt;/g,">").replace(/&lt;/g,"<").replace(/&quot;/g,""").replace(/ /g,"\n"):"%3C"==l.substring(0,3)?decodeURIComponent(l):c.decompress(l),h=mxUtils.parseXml(l), -d=null,f=null;null!=h.documentElement&&"mxfile"==h.documentElement.nodeName&&(f=h.documentElement.getElementsByTagName("diagram"),d=h.documentElement,0M||e>M)&&this.clear()}}else if(null==this.currentState||b.getState()!=this.currentState&& -null!=b.getState()||!c.intersects(this.currentState,b.getGraphX(),b.getGraphY()))g=c.view.getState(b.getCell()),g!=this.currentState&&(null!=this.currentState&&this.clear(),this.currentState=g,null!=this.currentState&&this.activate(this.currentState))},mouseUp:function(a,b){var c=this.currentLink;this.clear();null!=c&&("#"==c.charAt(0)?window.location.hash=c:window.open(c))},activate:function(g){this.currentLink=c.getLinkForCell(g.cell);null!=this.currentLink&&(a.style.cursor="pointer",null!=this.highlight&& -this.highlight.highlight(g))},clear:function(){a.style.cursor=Q;this.currentLink=this.currentState=null;null!=this.highlight&&this.highlight.hide()}})}var R=Number(d.getAttribute("x0")||0),S=Number(d.getAttribute("y0")||0);c.view.translate.x=-R+v;c.view.translate.y=-S+v;var n=d.getAttribute("url");if(null!=n)try{var q=0").replace(/&gt;/g,">").replace(/&lt;/g,"<").replace(/&quot;/g,""").replace(/ /g,"\n"):"%3C"==l.substring(0,3)?decodeURIComponent(l):c.decompress(l),h=mxUtils.parseXml(l),d=null,f=null;null!=h.documentElement&& +"mxfile"==h.documentElement.nodeName&&(f=h.documentElement.getElementsByTagName("diagram"),d=h.documentElement,0M||e>M)&&this.clear()}}else if(null==this.currentState||b.getState()!=this.currentState&&null!=b.getState()||!c.intersects(this.currentState,b.getGraphX(),b.getGraphY()))g= +c.view.getState(b.getCell()),g!=this.currentState&&(null!=this.currentState&&this.clear(),this.currentState=g,null!=this.currentState&&this.activate(this.currentState))},mouseUp:function(a,b){var c=this.currentLink;this.clear();null!=c&&("#"==c.charAt(0)?window.location.hash=c:window.open(c))},activate:function(g){this.currentLink=c.getLinkForCell(g.cell);null!=this.currentLink&&(a.style.cursor="pointer",null!=this.highlight&&this.highlight.highlight(g))},clear:function(){a.style.cursor=Q;this.currentLink= +this.currentState=null;null!=this.highlight&&this.highlight.hide()}})}var R=Number(d.getAttribute("x0")||0),S=Number(d.getAttribute("y0")||0);c.view.translate.x=-R+v;c.view.translate.y=-S+v;var n=d.getAttribute("url");if(null!=n)try{var q=0'); \ No newline at end of file diff --git a/src/main/webapp/js/embed.dev.js b/src/main/webapp/js/embed.dev.js index c6bf6fa0..c5507faa 100644 --- a/src/main/webapp/js/embed.dev.js +++ b/src/main/webapp/js/embed.dev.js @@ -50,7 +50,16 @@ messageStyle: 'none', AuthorInit: function () { - MathJax.Hub.Config({"HTML-CSS":{availableFonts:[],webFont:"STIX-Web",imageFont:null}}); + MathJax.Hub.Config({ + jax: ['input/TeX', 'input/MathML', 'input/AsciiMath', 'output/HTML-CSS'], + extensions: ['tex2jax.js', 'mml2jax.js', 'asciimath2jax.js'], + 'HTML-CSS': { + imageFont: null + }, + TeX: { + extensions: ['AMSmath.js', 'AMSsymbols.js', 'noErrors.js', 'noUndefined.js'] + } + }); MathJax.Hub.Register.StartupHook('Begin', function() { @@ -64,7 +73,7 @@ var script = document.createElement('script'); script.type = 'text/javascript'; - script.src = 'https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-MML-AM_HTMLorMML'; + script.src = 'https://math.draw.io/current/MathJax.js?config=TeX-MML-AM_HTMLorMML'; document.getElementsByTagName('head')[0].appendChild(script); } }; diff --git a/src/main/webapp/js/embed.min.js b/src/main/webapp/js/embed.min.js index 5386bdeb..efc9aaba 100644 --- a/src/main/webapp/js/embed.min.js +++ b/src/main/webapp/js/embed.min.js @@ -1,20 +1,21 @@ -(function(x,r){function N(){if(!t){t=!0;window.MathJax={skipStartupTypeset:!0,showMathMenu:!1,messageStyle:"none",AuthorInit:function(){MathJax.Hub.Config({"HTML-CSS":{availableFonts:[],webFont:"STIX-Web",imageFont:null}});MathJax.Hub.Register.StartupHook("Begin",function(){for(var a=0;a").replace(/&gt;/g,">").replace(/&lt;/g,"<").replace(/&quot;/g,""").replace(/ /g,"\n"):"%3C"==l.substring(0,3)?decodeURIComponent(l):c.decompress(l),h=mxUtils.parseXml(l), -d=null,f=null;null!=h.documentElement&&"mxfile"==h.documentElement.nodeName&&(f=h.documentElement.getElementsByTagName("diagram"),d=h.documentElement,0M||e>M)&&this.clear()}}else if(null==this.currentState||b.getState()!=this.currentState&& -null!=b.getState()||!c.intersects(this.currentState,b.getGraphX(),b.getGraphY()))g=c.view.getState(b.getCell()),g!=this.currentState&&(null!=this.currentState&&this.clear(),this.currentState=g,null!=this.currentState&&this.activate(this.currentState))},mouseUp:function(a,b){var c=this.currentLink;this.clear();null!=c&&("#"==c.charAt(0)?window.location.hash=c:window.open(c))},activate:function(g){this.currentLink=c.getLinkForCell(g.cell);null!=this.currentLink&&(a.style.cursor="pointer",null!=this.highlight&& -this.highlight.highlight(g))},clear:function(){a.style.cursor=Q;this.currentLink=this.currentState=null;null!=this.highlight&&this.highlight.hide()}})}var R=Number(d.getAttribute("x0")||0),S=Number(d.getAttribute("y0")||0);c.view.translate.x=-R+v;c.view.translate.y=-S+v;var n=d.getAttribute("url");if(null!=n)try{var q=0").replace(/&gt;/g,">").replace(/&lt;/g,"<").replace(/&quot;/g,""").replace(/ /g,"\n"):"%3C"==l.substring(0,3)?decodeURIComponent(l):c.decompress(l),h=mxUtils.parseXml(l),d=null,f=null;null!=h.documentElement&& +"mxfile"==h.documentElement.nodeName&&(f=h.documentElement.getElementsByTagName("diagram"),d=h.documentElement,0M||e>M)&&this.clear()}}else if(null==this.currentState||b.getState()!=this.currentState&&null!=b.getState()||!c.intersects(this.currentState,b.getGraphX(),b.getGraphY()))g= +c.view.getState(b.getCell()),g!=this.currentState&&(null!=this.currentState&&this.clear(),this.currentState=g,null!=this.currentState&&this.activate(this.currentState))},mouseUp:function(a,b){var c=this.currentLink;this.clear();null!=c&&("#"==c.charAt(0)?window.location.hash=c:window.open(c))},activate:function(g){this.currentLink=c.getLinkForCell(g.cell);null!=this.currentLink&&(a.style.cursor="pointer",null!=this.highlight&&this.highlight.highlight(g))},clear:function(){a.style.cursor=Q;this.currentLink= +this.currentState=null;null!=this.highlight&&this.highlight.hide()}})}var R=Number(d.getAttribute("x0")||0),S=Number(d.getAttribute("y0")||0);c.view.translate.x=-R+v;c.view.translate.y=-S+v;var n=d.getAttribute("url");if(null!=n)try{var q=0');return d+=Graph.prototype.compress(a)};h.prototype.isJpg=function(c,b){return 255===c[b]&&216===c[b+1]&&255===c[b+ -2]};h.prototype.isPng=function(c,b){return 137===c[b]&&80===c[b+1]&&78===c[b+2]&&71===c[b+3]&&13===c[b+4]&&10===c[b+5]&&26===c[b+6]&&10===c[b+7]};h.prototype.scalePoint=function(c,b){null!=c&&(c.x*=b,c.y*=b);return c};h.prototype.scaleRect=function(c,b){null!=c&&(c.x*=b,c.y*=b,c.height*=b,c.width*=b);return c};h.prototype.importNodes=function(c,b,a,d){var g=a.lastIndexOf("/"),p=a,f=a;if(-1!==g&&(p=a.substring(0,g),f=a.substring(g+1,a.length),a=function(a,b){return a[b]?a[b]:null}(d,p+"/_rels/"+f+ -".rels"),null!=a)){var C=a.getElementsByTagName("Relationship");a={};for(g=0;g');return d+=Graph.prototype.compress(a)}; +h.prototype.isJpg=function(c,b){return 255===c[b]&&216===c[b+1]&&255===c[b+2]};h.prototype.isPng=function(c,b){return 137===c[b]&&80===c[b+1]&&78===c[b+2]&&71===c[b+3]&&13===c[b+4]&&10===c[b+5]&&26===c[b+6]&&10===c[b+7]};h.prototype.scalePoint=function(c,b){null!=c&&(c.x*=b,c.y*=b);return c};h.prototype.scaleRect=function(c,b){null!=c&&(c.x*=b,c.y*=b,c.height*=b,c.width*=b);return c};h.prototype.importNodes=function(c,b,a,d){var g=a.lastIndexOf("/"),p=a,f=a;if(-1!==g&&(p=a.substring(0,g),f=a.substring(g+ +1,a.length),a=function(a,b){return a[b]?a[b]:null}(d,p+"/_rels/"+f+".rels"),null!=a)){var C=a.getElementsByTagName("Relationship");a={};for(g=0;g"+b+""};f.htmlEntities=function(b){return b.replace(RegExp("&","g"),"&").replace(RegExp('"',"g"),""").replace(RegExp("'","g"),"′").replace(RegExp("<","g"),"<").replace(RegExp(">","g"),">")};f.toInitialCapital= -function(b){b=b.split(" ");for(var a="",d=0;d=(null=="a".charCodeAt?"a":97)&&(null==c.charCodeAt?c:c.charCodeAt(0))<=(null=="z".charCodeAt?"z":122)?(c=(new String(c)).toString(),c=c.toUpperCase(),d+=''+c+""):d+=c}return d};f.getStyleMap=function(b,a){for(var d={},g=b.split(";"),c=0;cd&&0h&&0b?!0:!1};return f}();h.screenCoordinatesPerCm=40;h.CENTIMETERS_PER_INCHES=2.54;l.mxVsdxUtils=h;h.__class="com.mxgraph.io.vsdx.mxVsdxUtils"})(m.vsdx|| +function(b){b=b.split(" ");for(var a="",d=0;d=(null=="a".charCodeAt?"a":97)&&(null==f.charCodeAt?f:f.charCodeAt(0))<=(null=="z".charCodeAt?"z":122)?(f=(new String(f)).toString(),f=f.toUpperCase(),d+=''+f+""):d+=f}return d};f.getStyleMap=function(b,a){for(var d={},g=b.split(";"),c=0;cd&&0h&&0b?!0:!1};return f}();h.screenCoordinatesPerCm=40;h.CENTIMETERS_PER_INCHES=2.54;l.mxVsdxUtils=h;h.__class="com.mxgraph.io.vsdx.mxVsdxUtils"})(m.vsdx|| (m.vsdx={}))})(m.io||(m.io={}))})(c.mxgraph||(c.mxgraph={}))})(com||(com={})); (function(c){(function(c){(function(c){(function(c){var h=function(){function c(b,a,d,g){this.paraIndex=this.fields=this.charIndices=this.values=null;this.values=[];0",b+=this.getTextParagraphFormated("

")):function(a,b){return a&&a.equals?a.equals(b):a===b}(l.nodeName,"fld")?(this.fld=this.getIndex(l),l=null,null!=this.fields&&(l=function(a,b){return a[b]?a[b]:null}(this.fields,this.fld)),null==l&&null!=this.masterShape&&null!=this.masterShape.fields&&(l=function(a,b){return a[b]? @@ -1004,7 +1005,7 @@ d=0;4>m;m++){var w=h.IA_$LI$()[c.charAt(f++).charCodeAt(0)];0<=w?d|=w<<18-6*m:m- 61==function(a){return null==a.charCodeAt?a:a.charCodeAt(0)}(c.charAt(d-1))?2:1:0,l=d-a+1,m=76>3)-f,b=function(a){for(var b=[];0>16|0;b[w++]=z>>8|0;b[w++]= z|0;0>c|0}return b};return h}();l.__static_initialized=!1;m.mxBase64=l;l.__class="com.mxgraph.online.mxBase64"})(m.online||(m.online={}))})(c.mxgraph||(c.mxgraph={}))})(com||(com={}));com.mxgraph.online.mxBase64.IA_$LI$();com.mxgraph.online.mxBase64.CA_$LI$();com.mxgraph.online.mxBase64.__static_initialize();com.mxgraph.io.vsdx.VsdxShape.__com_mxgraph_io_vsdx_VsdxShape_LOGGER_$LI$(); com.mxgraph.io.vsdx.VsdxShape.arrowTypes_$LI$();com.mxgraph.io.vsdx.VsdxShape.arrowSizes_$LI$();com.mxgraph.io.vsdx.VsdxShape.OFFSET_ARRAY_$LI$();com.mxgraph.io.vsdx.VsdxShape.__static_initialize();com.mxgraph.io.vsdx.Shape.UNICODE_LINE_SEP_$LI$();com.mxgraph.io.vsdx.Style.lineDashPatterns_$LI$();com.mxgraph.io.vsdx.Style.styleTypes_$LI$();com.mxgraph.io.vsdx.Style.__static_initialize();com.mxgraph.online.Constants.MAX_AREA_$LI$();com.mxgraph.io.vsdx.theme.Color.NONE_$LI$();com.mxgraph.io.vsdx.mxVsdxUtils.conversionFactor_$LI$(); -com.mxgraph.io.vsdx.mxVsdxTheme.colorIds_$LI$();com.mxgraph.io.vsdx.mxVsdxTheme.themesIds_$LI$();com.mxgraph.io.vsdx.mxVsdxTheme.__static_initialize();com.mxgraph.io.vsdx.mxVsdxConstants.MY_SET_$LI$();com.mxgraph.io.vsdx.mxVsdxConstants.SET_VALUES_$LI$();com.mxgraph.io.vsdx.mxPropertiesManager.defaultColors_$LI$();com.mxgraph.io.vsdx.mxPropertiesManager.__static_initialize();com.mxgraph.io.mxVsdxCodec.vsdxPlaceholder_$LI$(); +com.mxgraph.io.vsdx.mxVsdxTheme.colorIds_$LI$();com.mxgraph.io.vsdx.mxVsdxTheme.themesIds_$LI$();com.mxgraph.io.vsdx.mxVsdxTheme.__static_initialize();com.mxgraph.io.vsdx.mxVsdxConstants.MY_SET_$LI$();com.mxgraph.io.vsdx.mxVsdxConstants.SET_VALUES_$LI$();com.mxgraph.io.vsdx.mxPropertiesManager.defaultColors_$LI$();com.mxgraph.io.vsdx.mxPropertiesManager.__static_initialize();com.mxgraph.io.mxVsdxCodec.vsdxPlaceholder_$LI$();com.mxgraph.io.mxVsdxCodec.parsererrorNS_$LI$(); EditorUi.prototype.doImportVisio=function(c,m,w){null!=c.name&&/(\.vssx)($|\?)/i.test(c.name)?(new com.mxgraph.io.mxVssxCodec).decodeVssx(c,m):(new com.mxgraph.io.mxVsdxCodec).decodeVsdx(c,m,null,w)};/*! JSZip v3.1.3 - A Javascript class for generating and reading zip files diff --git a/src/main/webapp/js/mxgraph/Actions.js b/src/main/webapp/js/mxgraph/Actions.js index d5974aae..48b289ee 100644 --- a/src/main/webapp/js/mxgraph/Actions.js +++ b/src/main/webapp/js/mxgraph/Actions.js @@ -587,8 +587,8 @@ Actions.prototype.init = function() if (mxUtils.hasScrollbars(graph.container)) { var pad = graph.getPagePadding(); - graph.container.scrollTop = pad.y * graph.view.scale; - graph.container.scrollLeft = Math.min(pad.x * graph.view.scale, (graph.container.scrollWidth - graph.container.clientWidth) / 2); + graph.container.scrollTop = pad.y * graph.view.scale - 1; + graph.container.scrollLeft = Math.min(pad.x * graph.view.scale, (graph.container.scrollWidth - graph.container.clientWidth) / 2) - 1; } }), null, null, Editor.ctrlKey + '+J'); this.addAction('fitTwoPages', mxUtils.bind(this, function() diff --git a/src/main/webapp/js/mxgraph/Editor.js b/src/main/webapp/js/mxgraph/Editor.js index 9fbd4efa..32f8cafa 100644 --- a/src/main/webapp/js/mxgraph/Editor.js +++ b/src/main/webapp/js/mxgraph/Editor.js @@ -144,6 +144,11 @@ Editor.previousImage = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCA */ Editor.nextImage = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAABmJLR0QA/wD/AP+gvaeTAAAAi0lEQVQ4jeXUIQ7CUAwA0MeGxWI2yylwnALJUdBcgYvM7QYLmjOQIAkIPmJZghiIvypoUtX0tfnJL38X5ZfaEgUeUcManFBHgS0SLlhHggk3bCPBhCf2keCQR8wjwYTDp6YiZxJmOU1jGw7vGALescuBxsArNlOwd/CM1VSM/ut1qCIw+uOwiMJ+OF4CQzBCXm3hyAAAAABJRU5ErkJggg=='; +/** + * Specifies the image URL to be used for the transparent background. + */ +Editor.editImage = (mxClient.IS_SVG) ? 'data:image/gif;base64,R0lGODlhCwALAIABAFdXV////yH5BAEAAAEALAAAAAALAAsAAAIZjB8AiKuc4jvLOGqzrjX6zmkWyChXaUJBAQA7' : IMAGE_PATH + '/edit.gif'; + /** * Specifies the image URL to be used for the transparent background. */ diff --git a/src/main/webapp/js/mxgraph/EditorUi.js b/src/main/webapp/js/mxgraph/EditorUi.js index 67df5c96..0315ac19 100644 --- a/src/main/webapp/js/mxgraph/EditorUi.js +++ b/src/main/webapp/js/mxgraph/EditorUi.js @@ -2449,8 +2449,9 @@ EditorUi.prototype.resetScrollbars = function() if (graph.pageVisible) { var pad = graph.getPagePadding(); - graph.container.scrollTop = Math.floor(pad.y - this.editor.initialTopSpacing); - graph.container.scrollLeft = Math.floor(Math.min(pad.x, (graph.container.scrollWidth - graph.container.clientWidth) / 2)); + graph.container.scrollTop = Math.floor(pad.y - this.editor.initialTopSpacing) - 1; + graph.container.scrollLeft = Math.floor(Math.min(pad.x, + (graph.container.scrollWidth - graph.container.clientWidth) / 2)) - 1; // Scrolls graph to visible area var bounds = graph.getGraphBounds(); diff --git a/src/main/webapp/js/mxgraph/Graph.js b/src/main/webapp/js/mxgraph/Graph.js index 3014bca1..a72775ba 100644 --- a/src/main/webapp/js/mxgraph/Graph.js +++ b/src/main/webapp/js/mxgraph/Graph.js @@ -7690,7 +7690,7 @@ if (typeof mxVertexHandler != 'undefined') if (this.graph.isEnabled() && typeof this.graph.editLink === 'function') { var changeLink = document.createElement('img'); - changeLink.setAttribute('src', IMAGE_PATH + '/edit.gif'); + changeLink.setAttribute('src', Editor.editImage); changeLink.setAttribute('title', mxResources.get('editLink')); changeLink.setAttribute('width', '11'); changeLink.setAttribute('height', '11'); diff --git a/src/main/webapp/js/mxgraph/Menus.js b/src/main/webapp/js/mxgraph/Menus.js index f0c56127..6f2de30f 100644 --- a/src/main/webapp/js/mxgraph/Menus.js +++ b/src/main/webapp/js/mxgraph/Menus.js @@ -512,12 +512,17 @@ Menus.prototype.get = function(name) */ Menus.prototype.addSubmenu = function(name, menu, parent, label) { - var enabled = this.get(name).isEnabled(); - - if (menu.showDisabled || enabled) + var entry = this.get(name); + + if (entry != null) { - var submenu = menu.addItem(label || mxResources.get(name), null, null, parent, null, enabled); - this.addMenu(name, menu, submenu); + var enabled = entry.isEnabled(); + + if (menu.showDisabled || enabled) + { + var submenu = menu.addItem(label || mxResources.get(name), null, null, parent, null, enabled); + this.addMenu(name, menu, submenu); + } } }; diff --git a/src/main/webapp/js/reader.min.js b/src/main/webapp/js/reader.min.js index 6a51b414..06022077 100644 --- a/src/main/webapp/js/reader.min.js +++ b/src/main/webapp/js/reader.min.js @@ -184,7 +184,7 @@ f)+"\n"+t+"}":"{"+z.join(",")+"}";f=t;return l}}"function"!==typeof Date.prototy e=/[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,f,g,h={"\b":"\\b","\t":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"},k;"function"!==typeof JSON.stringify&&(JSON.stringify=function(a,b,d){var e;g=f="";if("number"===typeof d)for(e=0;enavigator.userAgent.indexOf("MSIE")&& +window.STYLE_PATH=window.STYLE_PATH||"styles";window.CSS_PATH=window.CSS_PATH||"styles";window.OPEN_FORM=window.OPEN_FORM||"open.html";window.mxBasePath=window.mxBasePath||"../../../src";window.mxLanguage=window.mxLanguage||urlParams.lang;window.mxLanguages=window.mxLanguages||["de"];var mxClient={VERSION:"8.6.9",IS_IE:0<=navigator.userAgent.indexOf("MSIE"),IS_IE6:0<=navigator.userAgent.indexOf("MSIE 6"),IS_IE11:!!navigator.userAgent.match(/Trident\/7\./),IS_EDGE:!!navigator.userAgent.match(/Edge\//),IS_QUIRKS:0<=navigator.userAgent.indexOf("MSIE")&&(null==document.documentMode||5==document.documentMode),IS_EM:"spellcheck"in document.createElement("textarea")&&8==document.documentMode,VML_PREFIX:"v",OFFICE_PREFIX:"o",IS_NS:0<=navigator.userAgent.indexOf("Mozilla/")&&0>navigator.userAgent.indexOf("MSIE")&& 0>navigator.userAgent.indexOf("Edge/"),IS_OP:0<=navigator.userAgent.indexOf("Opera/")||0<=navigator.userAgent.indexOf("OPR/"),IS_OT: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:0<=navigator.userAgent.indexOf("AppleWebKit/")&& 0>navigator.userAgent.indexOf("Chrome/")&&0>navigator.userAgent.indexOf("Edge/"),IS_IOS:navigator.userAgent.match(/(iPad|iPhone|iPod)/g)?!0:!1,IS_GC:0<=navigator.userAgent.indexOf("Chrome/")&&0>navigator.userAgent.indexOf("Edge/"),IS_CHROMEAPP:null!=window.chrome&&null!=chrome.app&&null!=chrome.app.runtime,IS_FF:0<=navigator.userAgent.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:0<=navigator.userAgent.indexOf("Firefox/")||0<=navigator.userAgent.indexOf("Iceweasel/")||0<=navigator.userAgent.indexOf("Seamonkey/")||0<=navigator.userAgent.indexOf("Iceape/")||0<=navigator.userAgent.indexOf("Galeon/")|| @@ -485,9 +485,9 @@ mxShape.prototype.updateHtmlColors=function(a){var b=this.stroke;null!=b&&b!=mxC mxUtils.addTransparentBackgroundFilter(a):this.setTransparentBackgroundImage(a)}; mxShape.prototype.updateHtmlBounds=function(a){var b=9<=document.documentMode?0:Math.ceil(this.strokewidth*this.scale);a.style.borderWidth=Math.max(1,b)+"px";a.style.overflow="hidden";a.style.left=Math.round(this.bounds.x-b/2)+"px";a.style.top=Math.round(this.bounds.y-b/2)+"px";"CSS1Compat"==document.compatMode&&(b=-b);a.style.width=Math.round(Math.max(0,this.bounds.width+b))+"px";a.style.height=Math.round(Math.max(0,this.bounds.height+b))+"px"}; mxShape.prototype.destroyCanvas=function(a){if(a instanceof mxSvgCanvas2D){for(var b in a.gradients){var c=a.gradients[b];null!=c&&(c.mxRefCount=(c.mxRefCount||0)+1)}this.releaseSvgGradients(this.oldGradients);this.oldGradients=a.gradients}}; -mxShape.prototype.paint=function(a){var b=this.scale,c=this.bounds.x/b,d=this.bounds.y/b,e=this.bounds.width/b,f=this.bounds.height/b;if(this.isPaintBoundsInverted())var g=(e-f)/2,c=c+g,d=d-g,g=e,e=f,f=g;this.updateTransform(a,c,d,e,f);this.configureCanvas(a,c,d,e,f);g=null;if(null==this.stencil&&null==this.points&&this.shapePointerEvents||null!=this.stencil&&this.stencilPointerEvents){var h=this.createBoundingBox();this.dialect==mxConstants.DIALECT_SVG?(g=this.createTransparentSvgRectangle(h.x,h.y, -h.width,h.height),this.node.appendChild(g)):(h=a.createRect("rect",h.x/b,h.y/b,h.width/b,h.height/b),h.appendChild(a.createTransparentFill()),h.stroked="false",a.root.appendChild(h))}if(null!=this.stencil)this.stencil.drawShape(a,this,c,d,e,f);else if(a.setStrokeWidth(this.strokewidth),null!=this.points){c=[];for(d=0;dnavigator.userAgent.indexOf("MSIE")&& +window.STYLE_PATH=window.STYLE_PATH||"styles";window.CSS_PATH=window.CSS_PATH||"styles";window.OPEN_FORM=window.OPEN_FORM||"open.html";window.mxBasePath=window.mxBasePath||"../../../src";window.mxLanguage=window.mxLanguage||urlParams.lang;window.mxLanguages=window.mxLanguages||["de"];var mxClient={VERSION:"3.9.6",IS_IE:0<=navigator.userAgent.indexOf("MSIE"),IS_IE6:0<=navigator.userAgent.indexOf("MSIE 6"),IS_IE11:!!navigator.userAgent.match(/Trident\/7\./),IS_EDGE:!!navigator.userAgent.match(/Edge\//),IS_QUIRKS:0<=navigator.userAgent.indexOf("MSIE")&&(null==document.documentMode||5==document.documentMode),IS_EM:"spellcheck"in document.createElement("textarea")&&8==document.documentMode,VML_PREFIX:"v",OFFICE_PREFIX:"o",IS_NS:0<=navigator.userAgent.indexOf("Mozilla/")&&0>navigator.userAgent.indexOf("MSIE")&& 0>navigator.userAgent.indexOf("Edge/"),IS_OP:0<=navigator.userAgent.indexOf("Opera/")||0<=navigator.userAgent.indexOf("OPR/"),IS_OT: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:0<=navigator.userAgent.indexOf("AppleWebKit/")&& 0>navigator.userAgent.indexOf("Chrome/")&&0>navigator.userAgent.indexOf("Edge/"),IS_IOS:navigator.userAgent.match(/(iPad|iPhone|iPod)/g)?!0:!1,IS_GC:0<=navigator.userAgent.indexOf("Chrome/")&&0>navigator.userAgent.indexOf("Edge/"),IS_CHROMEAPP:null!=window.chrome&&null!=chrome.app&&null!=chrome.app.runtime,IS_FF:0<=navigator.userAgent.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:0<=navigator.userAgent.indexOf("Firefox/")||0<=navigator.userAgent.indexOf("Iceweasel/")||0<=navigator.userAgent.indexOf("Seamonkey/")||0<=navigator.userAgent.indexOf("Iceape/")||0<=navigator.userAgent.indexOf("Galeon/")|| @@ -533,9 +533,9 @@ mxShape.prototype.updateHtmlColors=function(a){var b=this.stroke;null!=b&&b!=mxC mxUtils.addTransparentBackgroundFilter(a):this.setTransparentBackgroundImage(a)}; mxShape.prototype.updateHtmlBounds=function(a){var b=9<=document.documentMode?0:Math.ceil(this.strokewidth*this.scale);a.style.borderWidth=Math.max(1,b)+"px";a.style.overflow="hidden";a.style.left=Math.round(this.bounds.x-b/2)+"px";a.style.top=Math.round(this.bounds.y-b/2)+"px";"CSS1Compat"==document.compatMode&&(b=-b);a.style.width=Math.round(Math.max(0,this.bounds.width+b))+"px";a.style.height=Math.round(Math.max(0,this.bounds.height+b))+"px"}; mxShape.prototype.destroyCanvas=function(a){if(a instanceof mxSvgCanvas2D){for(var b in a.gradients){var c=a.gradients[b];null!=c&&(c.mxRefCount=(c.mxRefCount||0)+1)}this.releaseSvgGradients(this.oldGradients);this.oldGradients=a.gradients}}; -mxShape.prototype.paint=function(a){var b=this.scale,c=this.bounds.x/b,d=this.bounds.y/b,e=this.bounds.width/b,f=this.bounds.height/b;if(this.isPaintBoundsInverted())var g=(e-f)/2,c=c+g,d=d-g,g=e,e=f,f=g;this.updateTransform(a,c,d,e,f);this.configureCanvas(a,c,d,e,f);g=null;if(null==this.stencil&&null==this.points&&this.shapePointerEvents||null!=this.stencil&&this.stencilPointerEvents){var k=this.createBoundingBox();this.dialect==mxConstants.DIALECT_SVG?(g=this.createTransparentSvgRectangle(k.x,k.y, -k.width,k.height),this.node.appendChild(g)):(k=a.createRect("rect",k.x/b,k.y/b,k.width/b,k.height/b),k.appendChild(a.createTransparentFill()),k.stroked="false",a.root.appendChild(k))}if(null!=this.stencil)this.stencil.drawShape(a,this,c,d,e,f);else if(a.setStrokeWidth(this.strokewidth),null!=this.points){c=[];for(d=0;ddocument.documentMode)&&(v=80);e+=v;c+=v;var d=e,f=c,g=Math.max(document.body.clientHeight,document.documentElement.clientHeight),n=Math.max(1,Math.round((document.body.clientWidth-e-64)/2)),r=Math.max(1,Math.round((g-c-a.footerHeight)/3));mxClient.IS_QUIRKS||(b.style.maxHeight="100%");e=Math.min(e,document.body.scrollWidth-64);c=Math.min(c,g-64);0m.clientHeight-64&&(b.style.overflowY="auto");l&&(l=document.createElement("img"),l.setAttribute("src",Dialog.prototype.closeImage),l.setAttribute("title",mxResources.get("close")),l.className="geDialogClose",l.style.top=r+14+"px",l.style.left=n+e+38-v+"px",l.style.zIndex=this.zIndex,mxEvent.addListener(l,"click", -mxUtils.bind(this,function(){a.hideDialog(!0)})),document.body.appendChild(l),this.dialogImg=l,mxEvent.addGestureListeners(this.bg,null,null,mxUtils.bind(this,function(d){a.hideDialog(!0)})));this.resizeListener=mxUtils.bind(this,function(){g=Math.max(document.body.clientHeight,document.documentElement.clientHeight);this.bg.style.height=g+"px";n=Math.max(1,Math.round((document.body.clientWidth-e-64)/2));r=Math.max(1,Math.round((g-c-a.footerHeight)/3));e=Math.min(d,document.body.scrollWidth-64);c= -Math.min(f,g-64);var h=this.getPosition(n,r,e,c);n=h.x;r=h.y;m.style.left=n+"px";m.style.top=r+"px";m.style.width=e+"px";m.style.height=c+"px";!p&&b.clientHeight>m.clientHeight-64&&(b.style.overflowY="auto");null!=this.dialogImg&&(this.dialogImg.style.top=r+14+"px",this.dialogImg.style.left=n+e+38-v+"px")});mxEvent.addListener(window,"resize",this.resizeListener);this.onDialogClose=q;this.container=m;a.editor.fireEvent(new mxEventObject("showDialog"))}Dialog.backdropColor="white"; +function Dialog(a,b,e,c,k,l,q,p){var v=0;mxClient.IS_VML&&(null==document.documentMode||8>document.documentMode)&&(v=80);e+=v;c+=v;var d=e,f=c,g=Math.max(document.body.clientHeight,document.documentElement.clientHeight),m=Math.max(1,Math.round((document.body.clientWidth-e-64)/2)),r=Math.max(1,Math.round((g-c-a.footerHeight)/3));mxClient.IS_QUIRKS||(b.style.maxHeight="100%");e=Math.min(e,document.body.scrollWidth-64);c=Math.min(c,g-64);0n.clientHeight-64&&(b.style.overflowY="auto");l&&(l=document.createElement("img"),l.setAttribute("src",Dialog.prototype.closeImage),l.setAttribute("title",mxResources.get("close")),l.className="geDialogClose",l.style.top=r+14+"px",l.style.left=m+e+38-v+"px",l.style.zIndex=this.zIndex,mxEvent.addListener(l,"click", +mxUtils.bind(this,function(){a.hideDialog(!0)})),document.body.appendChild(l),this.dialogImg=l,mxEvent.addGestureListeners(this.bg,null,null,mxUtils.bind(this,function(d){a.hideDialog(!0)})));this.resizeListener=mxUtils.bind(this,function(){g=Math.max(document.body.clientHeight,document.documentElement.clientHeight);this.bg.style.height=g+"px";m=Math.max(1,Math.round((document.body.clientWidth-e-64)/2));r=Math.max(1,Math.round((g-c-a.footerHeight)/3));e=Math.min(d,document.body.scrollWidth-64);c= +Math.min(f,g-64);var h=this.getPosition(m,r,e,c);m=h.x;r=h.y;n.style.left=m+"px";n.style.top=r+"px";n.style.width=e+"px";n.style.height=c+"px";!p&&b.clientHeight>n.clientHeight-64&&(b.style.overflowY="auto");null!=this.dialogImg&&(this.dialogImg.style.top=r+14+"px",this.dialogImg.style.left=m+e+38-v+"px")});mxEvent.addListener(window,"resize",this.resizeListener);this.onDialogClose=q;this.container=n;a.editor.fireEvent(new mxEventObject("showDialog"))}Dialog.backdropColor="white"; Dialog.prototype.zIndex=mxPopupMenu.prototype.zIndex-1; Dialog.prototype.noColorImage=mxClient.IS_SVG?"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyBpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBXaW5kb3dzIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkEzRDlBMUUwODYxMTExRTFCMzA4RDdDMjJBMEMxRDM3IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkEzRDlBMUUxODYxMTExRTFCMzA4RDdDMjJBMEMxRDM3Ij4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6QTNEOUExREU4NjExMTFFMUIzMDhEN0MyMkEwQzFEMzciIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6QTNEOUExREY4NjExMTFFMUIzMDhEN0MyMkEwQzFEMzciLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz5xh3fmAAAABlBMVEX////MzMw46qqDAAAAGElEQVR42mJggAJGKGAYIIGBth8KAAIMAEUQAIElnLuQAAAAAElFTkSuQmCC":IMAGE_PATH+ "/nocolor.png";Dialog.prototype.closeImage=mxClient.IS_SVG?"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJAQMAAADaX5RTAAAABlBMVEV7mr3///+wksspAAAAAnRSTlP/AOW3MEoAAAAdSURBVAgdY9jXwCDDwNDRwHCwgeExmASygSL7GgB12QiqNHZZIwAAAABJRU5ErkJggg==":IMAGE_PATH+"/close.png"; @@ -2000,30 +2000,30 @@ Dialog.prototype.lockedImage=mxClient.IS_SVG?"data:image/png;base64,iVBORw0KGgoA Dialog.prototype.unlockedImage=mxClient.IS_SVG?"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAMAAABhq6zVAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBNYWNpbnRvc2giIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MzdDMDZCN0QxNzIxMTFFNUI0RTk5NTg4OTcyMUUyODEiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MzdDMDZCN0UxNzIxMTFFNUI0RTk5NTg4OTcyMUUyODEiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDozN0MwNkI3QjE3MjExMUU1QjRFOTk1ODg5NzIxRTI4MSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDozN0MwNkI3QzE3MjExMUU1QjRFOTk1ODg5NzIxRTI4MSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PkKMpVwAAAAYUExURZmZmbKysr+/v6ysrOXl5czMzLGxsf///zHN5lwAAAAIdFJOU/////////8A3oO9WQAAADxJREFUeNpUzFESACAEBNBVsfe/cZJU+8Mzs8CIABCidtfGOndnYsT40HDSiCcbPdoJo10o9aI677cpwACRoAF3dFNlswAAAABJRU5ErkJggg==":IMAGE_PATH+ "/unlocked.png";Dialog.prototype.bgOpacity=80;Dialog.prototype.getPosition=function(a,b){return new mxPoint(a,b)};Dialog.prototype.close=function(a){null!=this.onDialogClose&&(this.onDialogClose(a),this.onDialogClose=null);null!=this.dialogImg&&(this.dialogImg.parentNode.removeChild(this.dialogImg),this.dialogImg=null);null!=this.bg&&null!=this.bg.parentNode&&this.bg.parentNode.removeChild(this.bg);mxEvent.removeListener(window,"resize",this.resizeListener);this.container.parentNode.removeChild(this.container)}; var PrintDialog=function(a,b){this.create(a,b)}; -PrintDialog.prototype.create=function(a){function b(a){var c=p.checked||d.checked,b=parseInt(g.value)/100;isNaN(b)&&(b=1,g.value="100%");var b=.75*b,n=e.pageFormat||mxConstants.PAGE_FORMAT_A4_PORTRAIT,r=1/e.pageScale;if(c){var t=p.checked?1:parseInt(f.value);isNaN(t)||(r=mxUtils.getScaleForPageCount(t,e,n))}e.getGraphBounds();var x=t=0,n=mxRectangle.fromRectangle(n);n.width=Math.ceil(n.width*b);n.height=Math.ceil(n.height*b);r*=b;!c&&e.pageVisible?(b=e.getPageLayout(),t-=b.x*n.width,x-=b.y*n.height): -c=!0;c=PrintDialog.createPrintPreview(e,r,n,0,t,x,c);c.open();a&&PrintDialog.printPreview(c)}var e=a.editor.graph,c,k,l=document.createElement("table");l.style.width="100%";l.style.height="100%";var q=document.createElement("tbody");c=document.createElement("tr");var p=document.createElement("input");p.setAttribute("type","checkbox");k=document.createElement("td");k.setAttribute("colspan","2");k.style.fontSize="10pt";k.appendChild(p);var v=document.createElement("span");mxUtils.write(v," "+mxResources.get("fitPage")); +PrintDialog.prototype.create=function(a){function b(a){var c=p.checked||d.checked,b=parseInt(g.value)/100;isNaN(b)&&(b=1,g.value="100%");var b=.75*b,m=e.pageFormat||mxConstants.PAGE_FORMAT_A4_PORTRAIT,r=1/e.pageScale;if(c){var t=p.checked?1:parseInt(f.value);isNaN(t)||(r=mxUtils.getScaleForPageCount(t,e,m))}e.getGraphBounds();var x=t=0,m=mxRectangle.fromRectangle(m);m.width=Math.ceil(m.width*b);m.height=Math.ceil(m.height*b);r*=b;!c&&e.pageVisible?(b=e.getPageLayout(),t-=b.x*m.width,x-=b.y*m.height): +c=!0;c=PrintDialog.createPrintPreview(e,r,m,0,t,x,c);c.open();a&&PrintDialog.printPreview(c)}var e=a.editor.graph,c,k,l=document.createElement("table");l.style.width="100%";l.style.height="100%";var q=document.createElement("tbody");c=document.createElement("tr");var p=document.createElement("input");p.setAttribute("type","checkbox");k=document.createElement("td");k.setAttribute("colspan","2");k.style.fontSize="10pt";k.appendChild(p);var v=document.createElement("span");mxUtils.write(v," "+mxResources.get("fitPage")); k.appendChild(v);mxEvent.addListener(v,"click",function(a){p.checked=!p.checked;d.checked=!p.checked;mxEvent.consume(a)});mxEvent.addListener(p,"change",function(){d.checked=!p.checked});c.appendChild(k);q.appendChild(c);c=c.cloneNode(!1);var d=document.createElement("input");d.setAttribute("type","checkbox");k=document.createElement("td");k.style.fontSize="10pt";k.appendChild(d);v=document.createElement("span");mxUtils.write(v," "+mxResources.get("posterPrint")+":");k.appendChild(v);mxEvent.addListener(v, "click",function(a){d.checked=!d.checked;p.checked=!d.checked;mxEvent.consume(a)});c.appendChild(k);var f=document.createElement("input");f.setAttribute("value","1");f.setAttribute("type","number");f.setAttribute("min","1");f.setAttribute("size","4");f.setAttribute("disabled","disabled");f.style.width="50px";k=document.createElement("td");k.style.fontSize="10pt";k.appendChild(f);mxUtils.write(k," "+mxResources.get("pages")+" (max)");c.appendChild(k);q.appendChild(c);mxEvent.addListener(d,"change", function(){d.checked?f.removeAttribute("disabled"):f.setAttribute("disabled","disabled");p.checked=!d.checked});c=c.cloneNode(!1);k=document.createElement("td");mxUtils.write(k,mxResources.get("pageScale")+":");c.appendChild(k);k=document.createElement("td");var g=document.createElement("input");g.setAttribute("value","100 %");g.setAttribute("size","5");g.style.width="50px";k.appendChild(g);c.appendChild(k);q.appendChild(c);c=document.createElement("tr");k=document.createElement("td");k.colSpan=2; -k.style.paddingTop="20px";k.setAttribute("align","right");v=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});v.className="geBtn";a.editor.cancelFirst&&k.appendChild(v);if(PrintDialog.previewEnabled){var n=mxUtils.button(mxResources.get("preview"),function(){a.hideDialog();b(!1)});n.className="geBtn";k.appendChild(n)}n=mxUtils.button(mxResources.get(PrintDialog.previewEnabled?"print":"ok"),function(){a.hideDialog();b(!0)});n.className="geBtn gePrimaryBtn";k.appendChild(n);a.editor.cancelFirst|| +k.style.paddingTop="20px";k.setAttribute("align","right");v=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});v.className="geBtn";a.editor.cancelFirst&&k.appendChild(v);if(PrintDialog.previewEnabled){var m=mxUtils.button(mxResources.get("preview"),function(){a.hideDialog();b(!1)});m.className="geBtn";k.appendChild(m)}m=mxUtils.button(mxResources.get(PrintDialog.previewEnabled?"print":"ok"),function(){a.hideDialog();b(!0)});m.className="geBtn gePrimaryBtn";k.appendChild(m);a.editor.cancelFirst|| k.appendChild(v);c.appendChild(k);q.appendChild(c);l.appendChild(q);this.container=l};PrintDialog.printPreview=function(a){if(null!=a.wnd){var b=function(){a.wnd.focus();a.wnd.print();a.wnd.close()};mxClient.IS_GC?window.setTimeout(b,500):b()}}; PrintDialog.createPrintPreview=function(a,b,e,c,k,l,q){b=new mxPrintPreview(a,b,e,c,k,l);b.title=mxResources.get("preview");b.printBackgroundImage=!0;b.autoOrigin=q;a=a.background;if(null==a||""==a||a==mxConstants.NONE)a="#ffffff";b.backgroundColor=a;var p=b.writeHead;b.writeHead=function(a){p.apply(this,arguments);a.writeln('")};return b}; PrintDialog.previewEnabled=!0; -var PageSetupDialog=function(a){function b(){null==f||f==mxConstants.NONE?(d.style.backgroundColor="",d.style.backgroundImage="url('"+Dialog.prototype.noColorImage+"')"):(d.style.backgroundColor=f,d.style.backgroundImage="")}function e(){null==r?(n.removeAttribute("title"),n.style.fontSize="",n.innerHTML=mxResources.get("change")+"..."):(n.setAttribute("title",r.src),n.style.fontSize="11px",n.innerHTML=r.src.substring(0,42)+"...")}var c=a.editor.graph,k,l,q=document.createElement("table");q.style.width= +var PageSetupDialog=function(a){function b(){null==f||f==mxConstants.NONE?(d.style.backgroundColor="",d.style.backgroundImage="url('"+Dialog.prototype.noColorImage+"')"):(d.style.backgroundColor=f,d.style.backgroundImage="")}function e(){null==r?(m.removeAttribute("title"),m.style.fontSize="",m.innerHTML=mxResources.get("change")+"..."):(m.setAttribute("title",r.src),m.style.fontSize="11px",m.innerHTML=r.src.substring(0,42)+"...")}var c=a.editor.graph,k,l,q=document.createElement("table");q.style.width= "100%";q.style.height="100%";var p=document.createElement("tbody");k=document.createElement("tr");l=document.createElement("td");l.style.verticalAlign="top";l.style.fontSize="10pt";mxUtils.write(l,mxResources.get("paperSize")+":");k.appendChild(l);l=document.createElement("td");l.style.verticalAlign="top";l.style.fontSize="10pt";var v=PageSetupDialog.addPageFormatPanel(l,"pagesetupdialog",c.pageFormat);k.appendChild(l);p.appendChild(k);k=document.createElement("tr");l=document.createElement("td"); mxUtils.write(l,mxResources.get("background")+":");k.appendChild(l);l=document.createElement("td");l.style.whiteSpace="nowrap";document.createElement("input").setAttribute("type","text");var d=document.createElement("button");d.style.width="18px";d.style.height="18px";d.style.marginRight="20px";d.style.backgroundPosition="center center";d.style.backgroundRepeat="no-repeat";var f=c.background;b();mxEvent.addListener(d,"click",function(d){a.pickColor(f||"none",function(a){f=a;b()});mxEvent.consume(d)}); l.appendChild(d);mxUtils.write(l,mxResources.get("gridSize")+":");var g=document.createElement("input");g.setAttribute("type","number");g.setAttribute("min","0");g.style.width="40px";g.style.marginLeft="6px";g.value=c.getGridSize();l.appendChild(g);mxEvent.addListener(g,"change",function(){var a=parseInt(g.value);g.value=Math.max(1,isNaN(a)?c.getGridSize():a)});k.appendChild(l);p.appendChild(k);k=document.createElement("tr");l=document.createElement("td");mxUtils.write(l,mxResources.get("image")+ -":");k.appendChild(l);l=document.createElement("td");var n=document.createElement("a");n.style.textDecoration="underline";n.style.cursor="pointer";n.style.color="#a0a0a0";var r=c.backgroundImage;mxEvent.addListener(n,"click",function(d){a.showBackgroundImageDialog(function(a){r=a;e()});mxEvent.consume(d)});e();l.appendChild(n);k.appendChild(l);p.appendChild(k);k=document.createElement("tr");l=document.createElement("td");l.colSpan=2;l.style.paddingTop="16px";l.setAttribute("align","right");var h= -mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});h.className="geBtn";a.editor.cancelFirst&&l.appendChild(h);var m=mxUtils.button(mxResources.get("apply"),function(){a.hideDialog();c.gridSize!==g.value&&c.setGridSize(parseInt(g.value));var d=new ChangePageSetup(a,f,r,v.get());d.ignoreColor=c.background==f;d.ignoreImage=(null!=c.backgroundImage?c.backgroundImage.src:null)===(null!=r?r.src:null);c.pageFormat.width==d.previousFormat.width&&c.pageFormat.height==d.previousFormat.height&& -d.ignoreColor&&d.ignoreImage||c.model.execute(d)});m.className="geBtn gePrimaryBtn";l.appendChild(m);a.editor.cancelFirst||l.appendChild(h);k.appendChild(l);p.appendChild(k);q.appendChild(p);this.container=q}; -PageSetupDialog.addPageFormatPanel=function(a,b,e,c){function k(a,d,c){if(c||g!=document.activeElement&&n!=document.activeElement){a=!1;for(d=0;d'};var a=mxGraph.prototype.panGraph;mxGraph.prototype.panGraph=function(c,b){a.apply(this,arguments);if(null!=this.shiftPreview1){var d= -this.view.canvas;null!=d.ownerSVGElement&&(d=d.ownerSVGElement);var f=this.gridSize*this.view.scale*this.view.gridSteps,f=-Math.round(f-mxUtils.mod(this.view.translate.x*this.view.scale+c,f))+"px "+-Math.round(f-mxUtils.mod(this.view.translate.y*this.view.scale+b,f))+"px";d.style.backgroundPosition=f}};mxGraph.prototype.updatePageBreaks=function(a,c,d){var b=this.view.scale,g=this.view.translate,e=this.pageFormat,r=b*this.pageScale,h=this.view.getBackgroundPageBounds();c=h.width;d=h.height;var m= -new mxRectangle(b*g.x,b*g.y,e.width*r,e.height*r),u=(a=a&&Math.min(m.width,m.height)>this.minPageBreakDist)?Math.ceil(d/m.height)-1:0,w=a?Math.ceil(c/m.width)-1:0,t=h.x+c,x=h.y+d;null==this.horizontalPageBreaks&&0this.minPageBreakDist)?Math.ceil(d/n.height)-1:0,w=a?Math.ceil(c/n.width)-1:0,t=h.x+c,x=h.y+d;null==this.horizontalPageBreaks&&0mxUtils.indexOf(this.toolbar.staticElements,a)&&(a.parentNode.removeChild(a),b.push(a));a=e}a=this.toolbar.fontMenu;e=this.toolbar.sizeMenu;if(null==n)this.toolbar.createTextToolbar();else{for(var h=0;hmxUtils.indexOf(this.toolbar.staticElements,a)&&(a.parentNode.removeChild(a),b.push(a));a=e}a=this.toolbar.fontMenu;e=this.toolbar.sizeMenu;if(null==m)this.toolbar.createTextToolbar();else{for(var h=0;hmxUtils.indexOf(t,x[a])&&t.push(x[a]);var B=function(a,d){var b=c.getModel(); -b.beginUpdate();try{if(d)for(var f=b.isEdge(h),g=f?c.currentEdgeStyle:c.currentVertexStyle,f=["fontSize","fontFamily","fontColor"],e=0;emxUtils.indexOf(x,D))||(v=mxUtils.setStyle(v,D,B))}b.setStyle(h,v)}}finally{b.endUpdate()}};c.addListener("cellsInserted",function(a,d){B(d.getProperty("cells"))});c.addListener("textInserted",function(a,d){B(d.getProperty("cells"),!0)});c.connectionHandler.addListener(mxEvent.CONNECT, -function(a,d){var b=[d.getProperty("cell")];d.getProperty("terminalInserted")&&b.push(d.getProperty("terminal"));B(b)});this.addListener("styleChanged",mxUtils.bind(this,function(a,d){var b=d.getProperty("cells"),f=!1,g=!1;if(0mxUtils.indexOf(x,D))||(v=mxUtils.setStyle(v,D,B))}b.setStyle(h,v)}}finally{b.endUpdate()}};c.addListener("cellsInserted",function(a,d){B(d.getProperty("cells"))});c.addListener("textInserted",function(a,d){B(d.getProperty("cells"),!0)});c.connectionHandler.addListener(mxEvent.CONNECT, +function(a,d){var b=[d.getProperty("cell")];d.getProperty("terminalInserted")&&b.push(d.getProperty("terminal"));B(b)});this.addListener("styleChanged",mxUtils.bind(this,function(a,d){var b=d.getProperty("cells"),f=!1,g=!1;if(0a.container.scrollLeft+.9*a.container.clientWidth&&(a.container.scrollLeft=Math.min(b.x+b.width-a.container.clientWidth,b.x-10)),b.y>a.container.scrollTop+.9*a.container.clientHeight&&(a.container.scrollTop=Math.min(b.y+b.height-a.container.clientHeight,b.y-10)))}else{var b=a.getGraphBounds(),e=Math.max(b.width,a.scrollTileSize.width*a.view.scale);a.container.scrollTop=Math.floor(Math.max(0,b.y-Math.max(20,(a.container.clientHeight-Math.max(b.height, +EditorUi.prototype.resetScrollbars=function(){var a=this.editor.graph;if(!this.editor.extendCanvas)a.container.scrollTop=0,a.container.scrollLeft=0,mxUtils.hasScrollbars(a.container)||a.view.setTranslate(0,0);else if(!this.editor.isChromelessView())if(mxUtils.hasScrollbars(a.container))if(a.pageVisible){var b=a.getPagePadding();a.container.scrollTop=Math.floor(b.y-this.editor.initialTopSpacing)-1;a.container.scrollLeft=Math.floor(Math.min(b.x,(a.container.scrollWidth-a.container.clientWidth)/2))- +1;b=a.getGraphBounds();0a.container.scrollLeft+.9*a.container.clientWidth&&(a.container.scrollLeft=Math.min(b.x+b.width-a.container.clientWidth,b.x-10)),b.y>a.container.scrollTop+.9*a.container.clientHeight&&(a.container.scrollTop=Math.min(b.y+b.height-a.container.clientHeight,b.y-10)))}else{var b=a.getGraphBounds(),e=Math.max(b.width,a.scrollTileSize.width*a.view.scale);a.container.scrollTop=Math.floor(Math.max(0,b.y-Math.max(20,(a.container.clientHeight-Math.max(b.height, a.scrollTileSize.height*a.view.scale))/4)));a.container.scrollLeft=Math.floor(Math.max(0,b.x-Math.max(0,(a.container.clientWidth-e)/2)))}else a.pageVisible?(b=a.view.getBackgroundPageBounds(),a.view.setTranslate(Math.floor(Math.max(0,(a.container.clientWidth-b.width)/2)-b.x),Math.floor(Math.max(0,(a.container.clientHeight-b.height)/2)-b.y))):(b=a.getGraphBounds(),a.view.setTranslate(Math.floor(Math.max(0,Math.max(0,(a.container.clientWidth-b.width)/2)-b.x)),Math.floor(Math.max(0,Math.max(20,(a.container.clientHeight- b.height)/4))-b.y)))}; EditorUi.prototype.setPageVisible=function(a){var b=this.editor.graph,e=mxUtils.hasScrollbars(b.container),c=0,k=0;e&&(c=b.view.translate.x*b.view.scale-b.container.scrollLeft,k=b.view.translate.y*b.view.scale-b.container.scrollTop);b.pageVisible=a;b.pageBreaksVisible=a;b.preferPageSize=a;b.view.validateBackground();e&&(a=b.getSelectionCells(),b.clearSelection(),b.setSelectionCells(a));b.sizeDidChange();e&&(b.container.scrollLeft=b.view.translate.x*b.view.scale-c,b.container.scrollTop=b.view.translate.y* @@ -2189,15 +2189,15 @@ e=g.bends.length-1:null!=h&&(2==f.length||3==f.length&&(0==Math.round(f[0].x-f[1 b.getGraphY()),e.grow(mxEdgeHandler.prototype.handleImage.width/2),null!=c.text&&null!=c.text.boundingBox&&mxUtils.contains(c.text.boundingBox,b.getGraphX(),b.getGraphY()))g="move";else if(mxUtils.contains(e,f[0].x,f[0].y)||mxUtils.contains(e,f[f.length-1].x,f[f.length-1].y))g="pointer";else if(null!=c.visibleSourceState||null!=c.visibleTargetState)h=this.view.getEdgeStyle(c),g="crosshair",h!=mxEdgeStyle.EntityRelation&&this.isOrthogonal(c)&&(h=mxUtils.findNearestSegment(c,b.getGraphX(),b.getGraphY()), hmxUtils.indexOf(d,f)&&b.push(f)):b.push(d[c])}return b};this.connectionHandler.createTargetVertex=function(a,d){var b=this.graph.view.getState(d),b=null!=b?b.style:this.graph.getCellStyle(d);mxUtils.getValue(b,"part",!1)&&(b=this.graph.model.getParent(d),this.graph.model.isVertex(b)&&(d=b));return mxConnectionHandler.prototype.createTargetVertex.apply(this,arguments)};var g=new mxRubberband(this); -this.getRubberband=function(){return g};var n=(new Date).getTime(),r=0,h=this.connectionHandler.mouseMove;this.connectionHandler.mouseMove=function(){var a=this.currentState;h.apply(this,arguments);a!=this.currentState?(n=(new Date).getTime(),r=0):r=(new Date).getTime()-n};var m=this.connectionHandler.isOutlineConnectEvent;this.connectionHandler.isOutlineConnectEvent=function(a){return null!=this.currentState&&a.getState()==this.currentState&&2E3=a&&t.y+t.height<=n&&t.y>=d&&t.x+t.width<=h&&g.push(r);this.getAllCells(a,d,b,c,r,g)}}}return g};var D=this.graphHandler.shouldRemoveCellsFromParent;this.graphHandler.shouldRemoveCellsFromParent=function(a,d,b){return this.graph.isCellSelected(a)?!1:D.apply(this, +this.isCellLocked(a)){if(null!=this.getLinkForCell(a))return"pointer";if(this.isCellLocked(a))return"default"}return F.apply(this,arguments)};this.selectRegion=function(a,d){var b=this.getAllCells(a.x,a.y,a.width,a.height);this.selectCellsForEvent(b,d);return b};this.getAllCells=function(a,d,b,c,f,g){g=null!=g?g:[];if(0=a&&t.y+t.height<=m&&t.y>=d&&t.x+t.width<=h&&g.push(r);this.getAllCells(a,d,b,c,r,g)}}}return g};var D=this.graphHandler.shouldRemoveCellsFromParent;this.graphHandler.shouldRemoveCellsFromParent=function(a,d,b){return this.graph.isCellSelected(a)?!1:D.apply(this, arguments)};this.isCellLocked=function(a){for(a=this.view.getState(a);null!=a;){if("1"==mxUtils.getValue(a.style,"locked","0"))return!0;a=this.view.getState(this.model.getParent(a.cell))}return!1};var G=null;this.addListener(mxEvent.FIRE_MOUSE_EVENT,mxUtils.bind(this,function(a,d){if("mouseDown"==d.getProperty("eventName")){var b=d.getProperty("event").getState();G=null==b||this.isSelectionEmpty()||this.isCellSelected(b.cell)?null:this.getSelectionCells()}}));this.addListener(mxEvent.TAP_AND_HOLD, mxUtils.bind(this,function(a,d){if(!mxEvent.isMultiTouchEvent(d)){var b=d.getProperty("event"),c=d.getProperty("cell");null==c?(b=mxUtils.convertPoint(this.container,mxEvent.getClientX(b),mxEvent.getClientY(b)),g.start(b.x,b.y)):null!=G?this.addSelectionCells(G):1n?"a":"p",tt:12>n?"am":"pm",T:12>n?"A":"P",TT:12>n?"AM":"PM",Z:e?"UTC":(String(a).match(k)||[""]).pop().replace(l,""),o:(0m?"a":"p",tt:12>m?"am":"pm",T:12>m?"A":"P",TT:12>m?"AM":"PM",Z:e?"UTC":(String(a).match(k)||[""]).pop().replace(l,""),o:(0r||Math.abs(t.y-q.y)>r)&&(Math.abs(t.x-l.x)>r||Math.abs(t.y-l.y)>r)){l=t.x-u.x;q=t.y-u.y;t={distSq:l*l+q*q,x:t.x,y:t.y};for(l=0;lt.distSq){w.splice(l,0,t);t=null;break}null==t||0!=w.length&&w[w.length-1].x===t.x&&w[w.length-1].y===t.y||w.push(t)}}}for(k=0;kf*f&&0f*f&&(q=new mxPoint(l.x-t.x,l.y-t.y),p=new mxPoint(l.x+t.x,l.y+t.y),h.push(q),this.addPoints(a,h,b,c,!1, -null,m),h=0>Math.round(t.x)||0==Math.round(t.x)&&0>=Math.round(t.y)?1:-1,m=!1,"sharp"==e?(a.lineTo(q.x-t.y*h,q.y+t.x*h),a.lineTo(p.x-t.y*h,p.y+t.x*h),a.lineTo(p.x,p.y)):"arc"==e?(h*=1.3,a.curveTo(q.x-t.y*h,q.y+t.x*h,p.x-t.y*h,p.y+t.x*h,p.x,p.y)):(a.moveTo(p.x,p.y),m=!0),h=[p],q=!0))}else t=null;q||(h.push(l),u=l)}this.addPoints(a,h,b,c,!1,null,m);a.stroke()}};var l=mxGraphView.prototype.updateFloatingTerminalPoint;mxGraphView.prototype.updateFloatingTerminalPoint=function(a,d,b,c){if(null==d||null== -a||"1"!=d.style.snapToPoint&&"1"!=a.style.snapToPoint)l.apply(this,arguments);else{d=this.getTerminalPort(a,d,c);var f=this.getNextPoint(a,b,c),g=this.graph.isOrthogonal(a),e=mxUtils.toRadians(Number(d.style[mxConstants.STYLE_ROTATION]||"0")),m=new mxPoint(d.getCenterX(),d.getCenterY());if(0!=e)var u=Math.cos(-e),w=Math.sin(-e),f=mxUtils.getRotatedPoint(f,u,w,m);u=parseFloat(a.style[mxConstants.STYLE_PERIMETER_SPACING]||0);u+=parseFloat(a.style[c?mxConstants.STYLE_SOURCE_PERIMETER_SPACING:mxConstants.STYLE_TARGET_PERIMETER_SPACING]|| -0);f=this.getPerimeterPoint(d,f,0==e&&g,u);0!=e&&(u=Math.cos(e),w=Math.sin(e),f=mxUtils.getRotatedPoint(f,u,w,m));a.setAbsoluteTerminalPoint(this.snapToAnchorPoint(a,d,b,c,f),c)}};mxGraphView.prototype.snapToAnchorPoint=function(a,d,b,c,e){if(null!=d&&null!=a){a=this.graph.getAllConnectionConstraints(d);c=b=null;for(var f=0;fMath.round(t.x)||0==Math.round(t.x)&&0>=Math.round(t.y)?1:-1,n=!1,"sharp"==e?(a.lineTo(q.x-t.y*h,q.y+t.x*h),a.lineTo(p.x-t.y*h,p.y+t.x*h),a.lineTo(p.x,p.y)):"arc"==e?(h*=1.3,a.curveTo(q.x-t.y*h,q.y+t.x*h,p.x-t.y*h,p.y+t.x*h,p.x,p.y)):(a.moveTo(p.x,p.y),n=!0),h=[p],q=!0))}else t=null;q||(h.push(l),u=l)}this.addPoints(a,h,b,c,!1,null,n);a.stroke()}};var l=mxGraphView.prototype.updateFloatingTerminalPoint;mxGraphView.prototype.updateFloatingTerminalPoint=function(a,d,b,c){if(null==d||null== +a||"1"!=d.style.snapToPoint&&"1"!=a.style.snapToPoint)l.apply(this,arguments);else{d=this.getTerminalPort(a,d,c);var f=this.getNextPoint(a,b,c),g=this.graph.isOrthogonal(a),e=mxUtils.toRadians(Number(d.style[mxConstants.STYLE_ROTATION]||"0")),n=new mxPoint(d.getCenterX(),d.getCenterY());if(0!=e)var u=Math.cos(-e),w=Math.sin(-e),f=mxUtils.getRotatedPoint(f,u,w,n);u=parseFloat(a.style[mxConstants.STYLE_PERIMETER_SPACING]||0);u+=parseFloat(a.style[c?mxConstants.STYLE_SOURCE_PERIMETER_SPACING:mxConstants.STYLE_TARGET_PERIMETER_SPACING]|| +0);f=this.getPerimeterPoint(d,f,0==e&&g,u);0!=e&&(u=Math.cos(e),w=Math.sin(e),f=mxUtils.getRotatedPoint(f,u,w,n));a.setAbsoluteTerminalPoint(this.snapToAnchorPoint(a,d,b,c,f),c)}};mxGraphView.prototype.snapToAnchorPoint=function(a,d,b,c,e){if(null!=d&&null!=a){a=this.graph.getAllConnectionConstraints(d);c=b=null;for(var f=0;f=l.getStatus()&&eval.call(window,l.getText())}}catch(q){null!=window.console&&console.log("error in getStencil:",k,q)}}mxStencilRegistry.packages[e]=1}}else e=e.replace("_-_","_"),mxStencilRegistry.loadStencilSet(STENCIL_PATH+"/"+e+".xml",null);b=mxStencilRegistry.stencils[a]}}return b}; mxStencilRegistry.getBasenameForStencil=function(a){var b=null;if(null!=a&&(a=a.split("."),0e||c>e)&&this.clear()}}else{for(b=d.getSource();null!=b&&"a"!=b.nodeName.toLowerCase();)b=b.parentNode;null!=b?this.clear():(null!=g.tooltipHandler&&null!=this.currentLink&&null!=this.currentState&&g.tooltipHandler.reset(d,!0,this.currentState),(null==this.currentState|| -d.getState()!=this.currentState&&null!=d.sourceState||!g.intersects(this.currentState,d.getGraphX(),d.getGraphY()))&&this.updateCurrentState(d))}},mouseUp:function(a,c){for(var f=c.getSource(),h=c.getEvent();null!=f&&"a"!=f.nodeName.toLowerCase();)f=f.parentNode;null==f&&Math.abs(this.scrollLeft-g.container.scrollLeft)g||c>g)&&this.clear()}}else{for(b=d.getSource();null!=b&&"a"!=b.nodeName.toLowerCase();)b=b.parentNode;null!=b?this.clear():(null!=e.tooltipHandler&&null!=this.currentLink&&null!=this.currentState&&e.tooltipHandler.reset(d,!0,this.currentState),(null==this.currentState|| +d.getState()!=this.currentState&&null!=d.sourceState||!e.intersects(this.currentState,d.getGraphX(),d.getGraphY()))&&this.updateCurrentState(d))}},mouseUp:function(a,c){for(var f=c.getSource(),h=c.getEvent();null!=f&&"a"!=f.nodeName.toLowerCase();)f=f.parentNode;null==f&&Math.abs(this.scrollLeft-e.container.scrollLeft)d&& b[c].deleteCell(d)};Graph.prototype.pasteHtmlAtCaret=function(a){var d;if(window.getSelection){if(d=window.getSelection(),d.getRangeAt&&d.rangeCount){d=d.getRangeAt(0);d.deleteContents();var b=document.createElement("div");b.innerHTML=a;a=document.createDocumentFragment();for(var c;c=b.firstChild;)lastNode=a.appendChild(c);d.insertNode(a)}}else(d=document.selection)&&"Control"!=d.type&&d.createRange().pasteHTML(a)};Graph.prototype.createLinkForHint=function(a,d){d=null!=d?d:a;var b=document.createElement("a"); b.setAttribute("href",this.getAbsoluteUrl(a));b.setAttribute("title",a);null!=this.linkTarget&&b.setAttribute("target",this.linkTarget);40"):h,!0);this.textarea.className="mxCellEditor geContentEditable";var c=mxUtils.getValue(a.style,mxConstants.STYLE_FONTSIZE,mxConstants.DEFAULT_FONTSIZE),d=mxUtils.getValue(a.style,mxConstants.STYLE_FONTFAMILY,mxConstants.DEFAULT_FONTFAMILY),f=mxUtils.getValue(a.style,mxConstants.STYLE_ALIGN,mxConstants.ALIGN_LEFT),e=(mxUtils.getValue(a.style,mxConstants.STYLE_FONTSTYLE,0)&mxConstants.FONT_BOLD)== -mxConstants.FONT_BOLD,g=(mxUtils.getValue(a.style,mxConstants.STYLE_FONTSTYLE,0)&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC,a=(mxUtils.getValue(a.style,mxConstants.STYLE_FONTSTYLE,0)&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE;this.textarea.style.lineHeight=mxConstants.ABSOLUTE_LINE_HEIGHT?Math.round(c*mxConstants.LINE_HEIGHT)+"px":mxConstants.LINE_HEIGHT;this.textarea.style.fontSize=Math.round(c)+"px";this.textarea.style.textDecoration=a?"underline":"";this.textarea.style.fontWeight= -e?"bold":"normal";this.textarea.style.fontStyle=g?"italic":"";this.textarea.style.fontFamily=d;this.textarea.style.textAlign=f;this.textarea.style.padding="0px";this.textarea.innerHTML!=h&&(this.textarea.innerHTML=h,0==this.textarea.innerHTML.length&&(this.textarea.innerHTML=this.getEmptyLabelText(),this.clearOnChange=0"):h,!0);this.textarea.className="mxCellEditor geContentEditable";var c=mxUtils.getValue(a.style,mxConstants.STYLE_FONTSIZE,mxConstants.DEFAULT_FONTSIZE),d=mxUtils.getValue(a.style,mxConstants.STYLE_FONTFAMILY,mxConstants.DEFAULT_FONTFAMILY),f=mxUtils.getValue(a.style,mxConstants.STYLE_ALIGN,mxConstants.ALIGN_LEFT),g=(mxUtils.getValue(a.style,mxConstants.STYLE_FONTSTYLE,0)&mxConstants.FONT_BOLD)== +mxConstants.FONT_BOLD,e=(mxUtils.getValue(a.style,mxConstants.STYLE_FONTSTYLE,0)&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC,a=(mxUtils.getValue(a.style,mxConstants.STYLE_FONTSTYLE,0)&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE;this.textarea.style.lineHeight=mxConstants.ABSOLUTE_LINE_HEIGHT?Math.round(c*mxConstants.LINE_HEIGHT)+"px":mxConstants.LINE_HEIGHT;this.textarea.style.fontSize=Math.round(c)+"px";this.textarea.style.textDecoration=a?"underline":"";this.textarea.style.fontWeight= +g?"bold":"normal";this.textarea.style.fontStyle=e?"italic":"";this.textarea.style.fontFamily=d;this.textarea.style.textAlign=f;this.textarea.style.padding="0px";this.textarea.innerHTML!=h&&(this.textarea.innerHTML=h,0==this.textarea.innerHTML.length&&(this.textarea.innerHTML=this.getEmptyLabelText(),this.clearOnChange=0
"));h=this.graph.sanitizeHtml(d?h.replace(/\n/g,"").replace(/<br\s*.?>/g,"
"):h,!0);this.textarea.className="mxCellEditor mxPlainTextEditor";var c=mxConstants.DEFAULT_FONTSIZE;this.textarea.style.lineHeight=mxConstants.ABSOLUTE_LINE_HEIGHT?Math.round(c*mxConstants.LINE_HEIGHT)+"px":mxConstants.LINE_HEIGHT;this.textarea.style.fontSize=Math.round(c)+ "px";this.textarea.style.textDecoration="";this.textarea.style.fontWeight="normal";this.textarea.style.fontStyle="";this.textarea.style.fontFamily=mxConstants.DEFAULT_FONTFAMILY;this.textarea.style.textAlign="left";this.textarea.style.padding="2px";this.textarea.innerHTML!=h&&(this.textarea.innerHTML=h);this.codeViewMode=!0}this.textarea.focus();null!=this.switchSelectionState&&this.restoreSelection(this.switchSelectionState);this.switchSelectionState=b;this.resize()};var v=mxCellEditor.prototype.resize; mxCellEditor.prototype.resize=function(a,d){if(null!=this.textarea)if(a=this.graph.getView().getState(this.editingCell),this.codeViewMode&&null!=a){var b=a.view.scale;this.bounds=mxRectangle.fromRectangle(a);if(0==this.bounds.width&&0==this.bounds.height){this.bounds.width=160*b;this.bounds.height=60*b;var c=null!=a.text?a.text.margin:null;null==c&&(c=mxUtils.getAlignmentAsPoint(mxUtils.getValue(a.style,mxConstants.STYLE_ALIGN,mxConstants.ALIGN_CENTER),mxUtils.getValue(a.style,mxConstants.STYLE_VERTICAL_ALIGN, @@ -2376,11 +2376,11 @@ function(){try{this.graph.container.focus()}catch(Q){}};var f=mxCellEditor.proto !1)}}finally{this.graph.getModel().endUpdate()}};mxCellEditor.prototype.getBackgroundColor=function(a){var d=null;if(this.graph.getModel().isEdge(a.cell)||this.graph.getModel().isEdge(this.graph.getModel().getParent(a.cell)))d=mxUtils.getValue(a.style,mxConstants.STYLE_LABEL_BACKGROUNDCOLOR,null),d==mxConstants.NONE&&(d=null);return d};mxCellEditor.prototype.getMinimumSize=function(a){var d=this.graph.getView().scale;return new mxRectangle(0,0,null==a.text?30:a.text.size*d+20,30)};var g=mxGraphHandler.prototype.moveCells; mxGraphHandler.prototype.moveCells=function(a,d,b,c,f,e){mxEvent.isAltDown(e)&&(f=null);g.apply(this,arguments)};mxGraphHandler.prototype.updateHint=function(d){if(null!=this.shape){null==this.hint&&(this.hint=a(),this.graph.container.appendChild(this.hint));var b=this.graph.view.translate,c=this.graph.view.scale;d=this.roundLength((this.bounds.x+this.currentDx)/c-b.x);b=this.roundLength((this.bounds.y+this.currentDy)/c-b.y);this.hint.innerHTML=d+", "+b;this.hint.style.left=this.shape.bounds.x+Math.round((this.shape.bounds.width- this.hint.clientWidth)/2)+"px";this.hint.style.top=this.shape.bounds.y+this.shape.bounds.height+12+"px"}};mxGraphHandler.prototype.removeHint=function(){null!=this.hint&&(this.hint.parentNode.removeChild(this.hint),this.hint=null)};mxVertexHandler.prototype.isRecursiveResize=function(a,d){return!this.graph.isSwimlane(a.cell)&&0'):new mxImage(IMAGE_PATH+"/handle-main.png",17,17);HoverIcons.prototype.secondaryHandle=mxClient.IS_SVG?Graph.createSvgImage(16,16,''):new mxImage(IMAGE_PATH+"/handle-secondary.png",17,17);HoverIcons.prototype.fixedHandle=mxClient.IS_SVG?Graph.createSvgImage(18,18,''): new mxImage(IMAGE_PATH+"/handle-fixed.png",17,17);HoverIcons.prototype.terminalHandle=mxClient.IS_SVG?Graph.createSvgImage(18,18,''):new mxImage(IMAGE_PATH+"/handle-terminal.png",17,17);HoverIcons.prototype.rotationHandle=new mxImage(mxClient.IS_SVG?"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABMAAAAVCAYAAACkCdXRAAAACXBIWXMAAAsTAAALEwEAmpwYAAAKT2lDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjanVNnVFPpFj333vRCS4iAlEtvUhUIIFJCi4AUkSYqIQkQSoghodkVUcERRUUEG8igiAOOjoCMFVEsDIoK2AfkIaKOg6OIisr74Xuja9a89+bN/rXXPues852zzwfACAyWSDNRNYAMqUIeEeCDx8TG4eQuQIEKJHAAEAizZCFz/SMBAPh+PDwrIsAHvgABeNMLCADATZvAMByH/w/qQplcAYCEAcB0kThLCIAUAEB6jkKmAEBGAYCdmCZTAKAEAGDLY2LjAFAtAGAnf+bTAICd+Jl7AQBblCEVAaCRACATZYhEAGg7AKzPVopFAFgwABRmS8Q5ANgtADBJV2ZIALC3AMDOEAuyAAgMADBRiIUpAAR7AGDIIyN4AISZABRG8lc88SuuEOcqAAB4mbI8uSQ5RYFbCC1xB1dXLh4ozkkXKxQ2YQJhmkAuwnmZGTKBNA/g88wAAKCRFRHgg/P9eM4Ors7ONo62Dl8t6r8G/yJiYuP+5c+rcEAAAOF0ftH+LC+zGoA7BoBt/qIl7gRoXgugdfeLZrIPQLUAoOnaV/Nw+H48PEWhkLnZ2eXk5NhKxEJbYcpXff5nwl/AV/1s+X48/Pf14L7iJIEyXYFHBPjgwsz0TKUcz5IJhGLc5o9H/LcL//wd0yLESWK5WCoU41EScY5EmozzMqUiiUKSKcUl0v9k4t8s+wM+3zUAsGo+AXuRLahdYwP2SycQWHTA4vcAAPK7b8HUKAgDgGiD4c93/+8//UegJQCAZkmScQAAXkQkLlTKsz/HCAAARKCBKrBBG/TBGCzABhzBBdzBC/xgNoRCJMTCQhBCCmSAHHJgKayCQiiGzbAdKmAv1EAdNMBRaIaTcA4uwlW4Dj1wD/phCJ7BKLyBCQRByAgTYSHaiAFiilgjjggXmYX4IcFIBBKLJCDJiBRRIkuRNUgxUopUIFVIHfI9cgI5h1xGupE7yAAygvyGvEcxlIGyUT3UDLVDuag3GoRGogvQZHQxmo8WoJvQcrQaPYw2oefQq2gP2o8+Q8cwwOgYBzPEbDAuxsNCsTgsCZNjy7EirAyrxhqwVqwDu4n1Y8+xdwQSgUXACTYEd0IgYR5BSFhMWE7YSKggHCQ0EdoJNwkDhFHCJyKTqEu0JroR+cQYYjIxh1hILCPWEo8TLxB7iEPENyQSiUMyJ7mQAkmxpFTSEtJG0m5SI+ksqZs0SBojk8naZGuyBzmULCAryIXkneTD5DPkG+Qh8lsKnWJAcaT4U+IoUspqShnlEOU05QZlmDJBVaOaUt2ooVQRNY9aQq2htlKvUYeoEzR1mjnNgxZJS6WtopXTGmgXaPdpr+h0uhHdlR5Ol9BX0svpR+iX6AP0dwwNhhWDx4hnKBmbGAcYZxl3GK+YTKYZ04sZx1QwNzHrmOeZD5lvVVgqtip8FZHKCpVKlSaVGyovVKmqpqreqgtV81XLVI+pXlN9rkZVM1PjqQnUlqtVqp1Q61MbU2epO6iHqmeob1Q/pH5Z/YkGWcNMw09DpFGgsV/jvMYgC2MZs3gsIWsNq4Z1gTXEJrHN2Xx2KruY/R27iz2qqaE5QzNKM1ezUvOUZj8H45hx+Jx0TgnnKKeX836K3hTvKeIpG6Y0TLkxZVxrqpaXllirSKtRq0frvTau7aedpr1Fu1n7gQ5Bx0onXCdHZ4/OBZ3nU9lT3acKpxZNPTr1ri6qa6UbobtEd79up+6Ynr5egJ5Mb6feeb3n+hx9L/1U/W36p/VHDFgGswwkBtsMzhg8xTVxbzwdL8fb8VFDXcNAQ6VhlWGX4YSRudE8o9VGjUYPjGnGXOMk423GbcajJgYmISZLTepN7ppSTbmmKaY7TDtMx83MzaLN1pk1mz0x1zLnm+eb15vft2BaeFostqi2uGVJsuRaplnutrxuhVo5WaVYVVpds0atna0l1rutu6cRp7lOk06rntZnw7Dxtsm2qbcZsOXYBtuutm22fWFnYhdnt8Wuw+6TvZN9un2N/T0HDYfZDqsdWh1+c7RyFDpWOt6azpzuP33F9JbpL2dYzxDP2DPjthPLKcRpnVOb00dnF2e5c4PziIuJS4LLLpc+Lpsbxt3IveRKdPVxXeF60vWdm7Obwu2o26/uNu5p7ofcn8w0nymeWTNz0MPIQ+BR5dE/C5+VMGvfrH5PQ0+BZ7XnIy9jL5FXrdewt6V3qvdh7xc+9j5yn+M+4zw33jLeWV/MN8C3yLfLT8Nvnl+F30N/I/9k/3r/0QCngCUBZwOJgUGBWwL7+Hp8Ib+OPzrbZfay2e1BjKC5QRVBj4KtguXBrSFoyOyQrSH355jOkc5pDoVQfujW0Adh5mGLw34MJ4WHhVeGP45wiFga0TGXNXfR3ENz30T6RJZE3ptnMU85ry1KNSo+qi5qPNo3ujS6P8YuZlnM1VidWElsSxw5LiquNm5svt/87fOH4p3iC+N7F5gvyF1weaHOwvSFpxapLhIsOpZATIhOOJTwQRAqqBaMJfITdyWOCnnCHcJnIi/RNtGI2ENcKh5O8kgqTXqS7JG8NXkkxTOlLOW5hCepkLxMDUzdmzqeFpp2IG0yPTq9MYOSkZBxQqohTZO2Z+pn5mZ2y6xlhbL+xW6Lty8elQfJa7OQrAVZLQq2QqboVFoo1yoHsmdlV2a/zYnKOZarnivN7cyzytuQN5zvn//tEsIS4ZK2pYZLVy0dWOa9rGo5sjxxedsK4xUFK4ZWBqw8uIq2Km3VT6vtV5eufr0mek1rgV7ByoLBtQFr6wtVCuWFfevc1+1dT1gvWd+1YfqGnRs+FYmKrhTbF5cVf9go3HjlG4dvyr+Z3JS0qavEuWTPZtJm6ebeLZ5bDpaql+aXDm4N2dq0Dd9WtO319kXbL5fNKNu7g7ZDuaO/PLi8ZafJzs07P1SkVPRU+lQ27tLdtWHX+G7R7ht7vPY07NXbW7z3/T7JvttVAVVN1WbVZftJ+7P3P66Jqun4lvttXa1ObXHtxwPSA/0HIw6217nU1R3SPVRSj9Yr60cOxx++/p3vdy0NNg1VjZzG4iNwRHnk6fcJ3/ceDTradox7rOEH0x92HWcdL2pCmvKaRptTmvtbYlu6T8w+0dbq3nr8R9sfD5w0PFl5SvNUyWna6YLTk2fyz4ydlZ19fi753GDborZ752PO32oPb++6EHTh0kX/i+c7vDvOXPK4dPKy2+UTV7hXmq86X23qdOo8/pPTT8e7nLuarrlca7nuer21e2b36RueN87d9L158Rb/1tWeOT3dvfN6b/fF9/XfFt1+cif9zsu72Xcn7q28T7xf9EDtQdlD3YfVP1v+3Njv3H9qwHeg89HcR/cGhYPP/pH1jw9DBY+Zj8uGDYbrnjg+OTniP3L96fynQ89kzyaeF/6i/suuFxYvfvjV69fO0ZjRoZfyl5O/bXyl/erA6xmv28bCxh6+yXgzMV70VvvtwXfcdx3vo98PT+R8IH8o/2j5sfVT0Kf7kxmTk/8EA5jz/GMzLdsAAAAgY0hSTQAAeiUAAICDAAD5/wAAgOkAAHUwAADqYAAAOpgAABdvkl/FRgAAA6ZJREFUeNqM001IY1cUB/D/fYmm2sbR2lC1zYlgoRG6MpEyBlpxM9iFIGKFIm3s0lCKjOByhCLZCFqLBF1YFVJdSRbdFHRhBbULtRuFVBTzYRpJgo2mY5OX5N9Fo2TG+eiFA/dd3vvd8+65ByTxshARTdf1JySp6/oTEdFe9T5eg5lIcnBwkCSZyWS+exX40oyur68/KxaLf5Okw+H4X+A9JBaLfUySZ2dnnJqaosPhIAACeC34DJRKpb7IZrMcHx+nwWCgUopGo/EOKwf9fn/1CzERUevr6+9ls1mOjIwQAH0+H4PBIKPR6D2ofAQCgToRUeVYJUkuLy8TANfW1kiS8/PzCy84Mw4MDBAAZ2dnmc/nub+/X0MSEBF1cHDwMJVKsaGhgV6vl+l0mqOjo1+KyKfl1dze3l4NBoM/PZ+diFSLiIKIGBOJxA9bW1sEwNXVVSaTyQMRaRaRxrOzs+9J8ujoaE5EPhQRq67rcZ/PRwD0+/3Udf03EdEgIqZisZibnJykwWDg4eEhd3Z2xkXELCJvPpdBrYjUiEhL+Xo4HH4sIhUaAKNSqiIcDsNkMqG+vh6RSOQQQM7tdhsAQCkFAHC73UUATxcWFqypVApmsxnDw8OwWq2TADQNgAYAFosF+XweyWQSdru9BUBxcXFRB/4rEgDcPouIIx6P4+bmBi0tLSCpAzBqAIqnp6c/dnZ2IpfLYXNzE62traMADACKNputpr+/v8lms9UAKAAwiMjXe3t7KBQKqKurQy6Xi6K0i2l6evpROp1mbW0t29vbGY/Hb8/IVIqq2zlJXl1dsaOjg2azmefn5wwEAl+JSBVExCgi75PkzMwMlVJsbGxkIpFgPp8PX15ePopEIs3JZPITXdf/iEajbGpqolKKExMT1HWdHo/nIxGpgIgoEXnQ3d39kCTHxsYIgC6Xi3NzcwyHw8xkMozFYlxaWmJbWxuVUuzt7WUul6PX6/1cRN4WEe2uA0SkaWVl5XGpRVhdXU0A1DSNlZWVdz3qdDrZ09PDWCzG4+Pjn0XEWvp9KJKw2WwKwBsA3gHQHAqFfr24uMDGxgZ2d3cRiUQAAHa7HU6nE319fTg5Ofmlq6vrGwB/AngaCoWK6rbsNptNA1AJoA7Aux6Pp3NoaMhjsVg+QNmIRqO/u1yubwFEASRKUAEA7rASqABUAKgC8KAUb5XWCOAfAFcA/gJwDSB7C93DylCtdM8qABhLc5TumV6KQigUeubjfwcAHkQJ94ndWeYAAAAASUVORK5CYII=": IMAGE_PATH+"/handle-rotate.png",19,21);mxClient.IS_SVG&&(mxConstraintHandler.prototype.pointImage=Graph.createSvgImage(5,5,''));mxVertexHandler.prototype.handleImage=HoverIcons.prototype.mainHandle;mxVertexHandler.prototype.secondaryHandleImage=HoverIcons.prototype.secondaryHandle;mxEdgeHandler.prototype.handleImage=HoverIcons.prototype.mainHandle;mxEdgeHandler.prototype.terminalHandleImage=HoverIcons.prototype.terminalHandle;mxEdgeHandler.prototype.fixedHandleImage= @@ -2390,14 +2390,14 @@ Sidebar.prototype.roundDrop=HoverIcons.prototype.roundDrop);mxClient.IS_SVG||((n -20;mxEdgeHandler.prototype.parentHighlightEnabled=!0;mxEdgeHandler.prototype.dblClickRemoveEnabled=!0;mxEdgeHandler.prototype.straightRemoveEnabled=!0;mxEdgeHandler.prototype.virtualBendsEnabled=!0;mxEdgeHandler.prototype.mergeRemoveEnabled=!0;mxEdgeHandler.prototype.manageLabelHandle=!0;mxEdgeHandler.prototype.outlineConnect=!0;mxEdgeHandler.prototype.isAddVirtualBendEvent=function(a){return!mxEvent.isShiftDown(a.getEvent())};mxEdgeHandler.prototype.isCustomHandleEvent=function(a){return!mxEvent.isShiftDown(a.getEvent())}; if(Graph.touchStyle){if(mxClient.IS_TOUCH||0g||Math.abs(e)>g)null==this.div&&(this.div=this.createShape()),mxUtils.clearSelection(),this.update(c,b), +(this.useLeftButtonForPanning&&null==a.getState()||mxEvent.isControlDown(d)&&!mxEvent.isShiftDown(d))||this.usePopupTrigger&&mxEvent.isPopupTrigger(d)};mxRubberband.prototype.isSpaceEvent=function(a){return this.graph.isEnabled()&&!this.graph.isCellLocked(this.graph.getDefaultParent())&&mxEvent.isControlDown(a.getEvent())&&mxEvent.isShiftDown(a.getEvent())};mxRubberband.prototype.mouseUp=function(a,d){var b=null!=this.div&&"none"!=this.div.style.display,c=null,f=null,g=null,e=null;null!=this.first&& +null!=this.currentX&&null!=this.currentY&&(c=this.first.x,f=this.first.y,g=(this.currentX-c)/this.graph.view.scale,e=(this.currentY-f)/this.graph.view.scale,mxEvent.isAltDown(d.getEvent())||(g=this.graph.snap(g),e=this.graph.snap(e),this.graph.isGridEnabled()||(Math.abs(g)e||Math.abs(g)>e)null==this.div&&(this.div=this.createShape()),mxUtils.clearSelection(),this.update(c,b), this.isSpaceEvent(d)?(c=this.x+this.width,b=this.y+this.height,f=this.graph.view.scale,mxEvent.isAltDown(d.getEvent())||(this.width=this.graph.snap(this.width/f)*f,this.height=this.graph.snap(this.height/f)*f,this.graph.isGridEnabled()||(this.width=this.width?"0px 1px 0px 0px":"0px 1px 0px 1px",null==this.secondDiv&&(this.secondDiv=this.div.cloneNode(!0),this.div.parentNode.appendChild(this.secondDiv)),this.secondDiv.style.left=this.x+"px",this.secondDiv.style.top=this.y+"px",this.secondDiv.style.width=this.graph.container.clientWidth+"px",this.secondDiv.style.height= Math.max(0,this.height)+"px",this.secondDiv.style.borderWidth=0>=this.height?"1px 0px 0px 0px":"1px 0px 1px 0px"):(this.div.style.backgroundColor="",this.div.style.borderWidth="",this.div.style.borderStyle="",null!=this.secondDiv&&(this.secondDiv.parentNode.removeChild(this.secondDiv),this.secondDiv=null)),d.consume()}};var h=mxRubberband.prototype.reset;mxRubberband.prototype.reset=function(){null!=this.secondDiv&&(this.secondDiv.parentNode.removeChild(this.secondDiv),this.secondDiv=null);h.apply(this, -arguments)};var m=(new Date).getTime(),u=0,w=mxEdgeHandler.prototype.updatePreviewState;mxEdgeHandler.prototype.updatePreviewState=function(a,d,b,c){w.apply(this,arguments);b!=this.currentTerminalState?(m=(new Date).getTime(),u=0):u=(new Date).getTime()-m;this.currentTerminalState=b};var t=mxEdgeHandler.prototype.isOutlineConnectEvent;mxEdgeHandler.prototype.isOutlineConnectEvent=function(a){return null!=this.currentTerminalState&&a.getState()==this.currentTerminalState&&2E3=this.state.absolutePoints.length-1||this.constructor==mxElbowEdgeHandler&&2==a)?this.graph.getConnectionConstraint(this.state,c,b):null,b=null!=(null!=f?this.graph.getConnectionPoint(this.state.getVisibleTerminalState(b), f):null)?this.fixedHandleImage:null!=f&&null!=c?this.terminalHandleImage:this.handleImage;if(null!=b)return b=new mxImageShape(new mxRectangle(0,0,b.width,b.height),b.src),b.preserveImageAspect=!1,b;b=mxConstants.HANDLE_SIZE;this.preferHtml&&--b;return new mxRectangleShape(new mxRectangle(0,0,b,b),mxConstants.HANDLE_FILLCOLOR,mxConstants.HANDLE_STROKECOLOR)};var x=mxVertexHandler.prototype.createSizerShape;mxVertexHandler.prototype.createSizerShape=function(a,d,b){this.handleImage=d==mxEvent.ROTATION_HANDLE? HoverIcons.prototype.rotationHandle:d==mxEvent.LABEL_HANDLE?this.secondaryHandleImage:this.handleImage;return x.apply(this,arguments)};var F=mxGraphHandler.prototype.getBoundingBox;mxGraphHandler.prototype.getBoundingBox=function(a){if(null!=a&&1==a.length){var d=this.graph.getModel(),b=d.getParent(a[0]),c=this.graph.getCellGeometry(a[0]);if(d.isEdge(b)&&null!=c&&c.relative&&(d=this.graph.view.getState(a[0]),null!=d&&2>d.width&&2>d.height&&null!=d.text&&null!=d.text.boundingBox))return mxRectangle.fromRectangle(d.text.boundingBox)}return F.apply(this, @@ -2408,7 +2408,7 @@ function(a,d){y.apply(this,arguments);null!=this.rotationShape&&null!=this.rotat 1==this.graph.getSelectionCount()?"":"none");null!=this.specialHandle&&(this.specialHandle.node.style.display=this.graph.isEnabled()&&this.graph.getSelectionCount()a?-1:1:a===a?0:NaN:NaN},c=Math.abs(a-this.lastX),f=Math.abs(d-this.lastY),e=Math.sqrt(c*c+f*f);if(2>e){this.originalLineTo.apply(this.canvas,arguments);this.lastX=a;this.lastY=d;return}var g=Math.round(e/10),la=this.defaultVariation;5>g&&(g=5,la/=3);for(var h=b(a-this.lastX)*c/g,b=b(d-this.lastY)*f/g,c=c/e,f=f/e,e=0;ea?-1:1:a===a?0:NaN:NaN},c=Math.abs(a-this.lastX),f=Math.abs(d-this.lastY),g=Math.sqrt(c*c+f*f);if(2>g){this.originalLineTo.apply(this.canvas,arguments);this.lastX=a;this.lastY=d;return}var e=Math.round(g/10),la=this.defaultVariation;5>e&&(e=5,la/=3);for(var h=b(a-this.lastX)*c/e,b=b(d-this.lastY)*f/e,c=c/g,f=f/g,g=0;gg+m?a.y=b.y:a.x=b.x);return mxUtils.getPerimeterPoint(h,a,b)};mxStyleRegistry.putValue("parallelogramPerimeter",mxPerimeter.ParallelogramPerimeter);mxPerimeter.TrapezoidPerimeter=function(a,d,b,c){var f=g.prototype.size;null!=d&&(f= +d.view.scale))),d.style),d,b,c)};mxStyleRegistry.putValue("calloutPerimeter",mxPerimeter.CalloutPerimeter);mxPerimeter.ParallelogramPerimeter=function(a,d,b,c){var g=f.prototype.size;null!=d&&(g=mxUtils.getValue(d.style,"size",g));var e=a.x,h=a.y,m=a.width,n=a.height;d=null!=d?mxUtils.getValue(d.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST):mxConstants.DIRECTION_EAST;d==mxConstants.DIRECTION_NORTH||d==mxConstants.DIRECTION_SOUTH?(g=n*Math.max(0,Math.min(1,g)),h=[new mxPoint(e,h),new mxPoint(e+ +m,h+g),new mxPoint(e+m,h+n),new mxPoint(e,h+n-g),new mxPoint(e,h)]):(g=m*Math.max(0,Math.min(1,g)),h=[new mxPoint(e+g,h),new mxPoint(e+m,h),new mxPoint(e+m-g,h+n),new mxPoint(e,h+n),new mxPoint(e+g,h)]);n=a.getCenterX();a=a.getCenterY();a=new mxPoint(n,a);c&&(b.xe+m?a.y=b.y:a.x=b.x);return mxUtils.getPerimeterPoint(h,a,b)};mxStyleRegistry.putValue("parallelogramPerimeter",mxPerimeter.ParallelogramPerimeter);mxPerimeter.TrapezoidPerimeter=function(a,d,b,c){var f=g.prototype.size;null!=d&&(f= mxUtils.getValue(d.style,"size",f));var e=a.x,h=a.y,m=a.width,n=a.height;d=null!=d?mxUtils.getValue(d.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST):mxConstants.DIRECTION_EAST;d==mxConstants.DIRECTION_EAST?(f=m*Math.max(0,Math.min(1,f)),h=[new mxPoint(e+f,h),new mxPoint(e+m-f,h),new mxPoint(e+m,h+n),new mxPoint(e,h+n),new mxPoint(e+f,h)]):d==mxConstants.DIRECTION_WEST?(f=m*Math.max(0,Math.min(1,f)),h=[new mxPoint(e,h),new mxPoint(e+m,h),new mxPoint(e+m-f,h+n),new mxPoint(e+f,h+n),new mxPoint(e, h)]):d==mxConstants.DIRECTION_NORTH?(f=n*Math.max(0,Math.min(1,f)),h=[new mxPoint(e,h+f),new mxPoint(e+m,h),new mxPoint(e+m,h+n),new mxPoint(e,h+n-f),new mxPoint(e,h+f)]):(f=n*Math.max(0,Math.min(1,f)),h=[new mxPoint(e,h),new mxPoint(e+m,h+f),new mxPoint(e+m,h+n-f),new mxPoint(e,h+n),new mxPoint(e,h)]);n=a.getCenterX();a=a.getCenterY();a=new mxPoint(n,a);c&&(b.xe+m?a.y=b.y:a.x=b.x);return mxUtils.getPerimeterPoint(h,a,b)};mxStyleRegistry.putValue("trapezoidPerimeter",mxPerimeter.TrapezoidPerimeter); -mxPerimeter.StepPerimeter=function(a,d,b,c){var f="0"!=mxUtils.getValue(d.style,"fixedSize","0"),e=f?t.prototype.fixedSize:t.prototype.size;null!=d&&(e=mxUtils.getValue(d.style,"size",e));var g=a.x,h=a.y,m=a.width,n=a.height,u=a.getCenterX();a=a.getCenterY();d=null!=d?mxUtils.getValue(d.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST):mxConstants.DIRECTION_EAST;d==mxConstants.DIRECTION_EAST?(f=f?Math.max(0,Math.min(m,e)):m*Math.max(0,Math.min(1,e)),h=[new mxPoint(g,h),new mxPoint(g+m- -f,h),new mxPoint(g+m,a),new mxPoint(g+m-f,h+n),new mxPoint(g,h+n),new mxPoint(g+f,a),new mxPoint(g,h)]):d==mxConstants.DIRECTION_WEST?(f=f?Math.max(0,Math.min(m,e)):m*Math.max(0,Math.min(1,e)),h=[new mxPoint(g+f,h),new mxPoint(g+m,h),new mxPoint(g+m-f,a),new mxPoint(g+m,h+n),new mxPoint(g+f,h+n),new mxPoint(g,a),new mxPoint(g+f,h)]):d==mxConstants.DIRECTION_NORTH?(f=f?Math.max(0,Math.min(n,e)):n*Math.max(0,Math.min(1,e)),h=[new mxPoint(g,h+f),new mxPoint(u,h),new mxPoint(g+m,h+f),new mxPoint(g+m, -h+n),new mxPoint(u,h+n-f),new mxPoint(g,h+n),new mxPoint(g,h+f)]):(f=f?Math.max(0,Math.min(n,e)):n*Math.max(0,Math.min(1,e)),h=[new mxPoint(g,h),new mxPoint(u,h+f),new mxPoint(g+m,h),new mxPoint(g+m,h+n-f),new mxPoint(u,h+n),new mxPoint(g,h+n-f),new mxPoint(g,h)]);u=new mxPoint(u,a);c&&(b.xg+m?u.y=b.y:u.x=b.x);return mxUtils.getPerimeterPoint(h,u,b)};mxStyleRegistry.putValue("stepPerimeter",mxPerimeter.StepPerimeter);mxPerimeter.HexagonPerimeter2=function(a,d,b,c){var f=x.prototype.size;null!= -d&&(f=mxUtils.getValue(d.style,"size",f));var e=a.x,g=a.y,h=a.width,m=a.height,n=a.getCenterX();a=a.getCenterY();d=null!=d?mxUtils.getValue(d.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST):mxConstants.DIRECTION_EAST;d==mxConstants.DIRECTION_NORTH||d==mxConstants.DIRECTION_SOUTH?(f=m*Math.max(0,Math.min(1,f)),g=[new mxPoint(n,g),new mxPoint(e+h,g+f),new mxPoint(e+h,g+m-f),new mxPoint(n,g+m),new mxPoint(e,g+m-f),new mxPoint(e,g+f),new mxPoint(n,g)]):(f=h*Math.max(0,Math.min(1,f)),g=[new mxPoint(e+ -f,g),new mxPoint(e+h-f,g),new mxPoint(e+h,a),new mxPoint(e+h-f,g+m),new mxPoint(e+f,g+m),new mxPoint(e,a),new mxPoint(e+f,g)]);n=new mxPoint(n,a);c&&(b.xe+h?n.y=b.y:n.x=b.x);return mxUtils.getPerimeterPoint(g,n,b)};mxStyleRegistry.putValue("hexagonPerimeter2",mxPerimeter.HexagonPerimeter2);mxUtils.extend(J,mxShape);J.prototype.size=10;J.prototype.paintBackground=function(a,d,b,c,f){var e=parseFloat(mxUtils.getValue(this.style,"size",this.size));a.translate(d,b);a.ellipse((c-e)/2,0,e,e);a.fillAndStroke(); -a.begin();a.moveTo(c/2,e);a.lineTo(c/2,f);a.end();a.stroke()};mxCellRenderer.registerShape("lollipop",J);mxUtils.extend(R,mxShape);R.prototype.size=10;R.prototype.inset=2;R.prototype.paintBackground=function(a,d,b,c,f){var e=parseFloat(mxUtils.getValue(this.style,"size",this.size)),g=parseFloat(mxUtils.getValue(this.style,"inset",this.inset))+this.strokewidth;a.translate(d,b);a.begin();a.moveTo(c/2,e+g);a.lineTo(c/2,f);a.end();a.stroke();a.begin();a.moveTo((c-e)/2-g,e/2);a.quadTo((c-e)/2-g,e+g,c/ -2,e+g);a.quadTo((c+e)/2+g,e+g,(c+e)/2+g,e/2);a.end();a.stroke()};mxCellRenderer.registerShape("requires",R);mxUtils.extend(Y,mxCylinder);Y.prototype.jettyWidth=32;Y.prototype.jettyHeight=12;Y.prototype.redrawPath=function(a,d,b,c,f,e){var g=parseFloat(mxUtils.getValue(this.style,"jettyWidth",this.jettyWidth));d=parseFloat(mxUtils.getValue(this.style,"jettyHeight",this.jettyHeight));b=g/2;var g=b+g/2,h=.3*f-d/2,m=.7*f-d/2;e?(a.moveTo(b,h),a.lineTo(g,h),a.lineTo(g,h+d),a.lineTo(b,h+d),a.moveTo(b,m), -a.lineTo(g,m),a.lineTo(g,m+d),a.lineTo(b,m+d)):(a.moveTo(b,0),a.lineTo(c,0),a.lineTo(c,f),a.lineTo(b,f),a.lineTo(b,m+d),a.lineTo(0,m+d),a.lineTo(0,m),a.lineTo(b,m),a.lineTo(b,h+d),a.lineTo(0,h+d),a.lineTo(0,h),a.lineTo(b,h),a.close());a.end()};mxCellRenderer.registerShape("component",Y);mxUtils.extend(aa,mxDoubleEllipse);aa.prototype.outerStroke=!0;aa.prototype.paintVertexShape=function(a,d,b,c,f){var e=Math.min(4,Math.min(c/5,f/5));0e+m?u.y=b.y:u.x=b.x);return mxUtils.getPerimeterPoint(h,u,b)};mxStyleRegistry.putValue("stepPerimeter",mxPerimeter.StepPerimeter);mxPerimeter.HexagonPerimeter2=function(a,d,b,c){var f=x.prototype.size;null!= +d&&(f=mxUtils.getValue(d.style,"size",f));var g=a.x,e=a.y,h=a.width,m=a.height,n=a.getCenterX();a=a.getCenterY();d=null!=d?mxUtils.getValue(d.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST):mxConstants.DIRECTION_EAST;d==mxConstants.DIRECTION_NORTH||d==mxConstants.DIRECTION_SOUTH?(f=m*Math.max(0,Math.min(1,f)),e=[new mxPoint(n,e),new mxPoint(g+h,e+f),new mxPoint(g+h,e+m-f),new mxPoint(n,e+m),new mxPoint(g,e+m-f),new mxPoint(g,e+f),new mxPoint(n,e)]):(f=h*Math.max(0,Math.min(1,f)),e=[new mxPoint(g+ +f,e),new mxPoint(g+h-f,e),new mxPoint(g+h,a),new mxPoint(g+h-f,e+m),new mxPoint(g+f,e+m),new mxPoint(g,a),new mxPoint(g+f,e)]);n=new mxPoint(n,a);c&&(b.xg+h?n.y=b.y:n.x=b.x);return mxUtils.getPerimeterPoint(e,n,b)};mxStyleRegistry.putValue("hexagonPerimeter2",mxPerimeter.HexagonPerimeter2);mxUtils.extend(J,mxShape);J.prototype.size=10;J.prototype.paintBackground=function(a,d,b,c,f){var g=parseFloat(mxUtils.getValue(this.style,"size",this.size));a.translate(d,b);a.ellipse((c-g)/2,0,g,g);a.fillAndStroke(); +a.begin();a.moveTo(c/2,g);a.lineTo(c/2,f);a.end();a.stroke()};mxCellRenderer.registerShape("lollipop",J);mxUtils.extend(R,mxShape);R.prototype.size=10;R.prototype.inset=2;R.prototype.paintBackground=function(a,d,b,c,f){var g=parseFloat(mxUtils.getValue(this.style,"size",this.size)),e=parseFloat(mxUtils.getValue(this.style,"inset",this.inset))+this.strokewidth;a.translate(d,b);a.begin();a.moveTo(c/2,g+e);a.lineTo(c/2,f);a.end();a.stroke();a.begin();a.moveTo((c-g)/2-e,g/2);a.quadTo((c-g)/2-e,g+e,c/ +2,g+e);a.quadTo((c+g)/2+e,g+e,(c+g)/2+e,g/2);a.end();a.stroke()};mxCellRenderer.registerShape("requires",R);mxUtils.extend(Y,mxCylinder);Y.prototype.jettyWidth=32;Y.prototype.jettyHeight=12;Y.prototype.redrawPath=function(a,d,b,c,f,g){var e=parseFloat(mxUtils.getValue(this.style,"jettyWidth",this.jettyWidth));d=parseFloat(mxUtils.getValue(this.style,"jettyHeight",this.jettyHeight));b=e/2;var e=b+e/2,h=.3*f-d/2,m=.7*f-d/2;g?(a.moveTo(b,h),a.lineTo(e,h),a.lineTo(e,h+d),a.lineTo(b,h+d),a.moveTo(b,m), +a.lineTo(e,m),a.lineTo(e,m+d),a.lineTo(b,m+d)):(a.moveTo(b,0),a.lineTo(c,0),a.lineTo(c,f),a.lineTo(b,f),a.lineTo(b,m+d),a.lineTo(0,m+d),a.lineTo(0,m),a.lineTo(b,m),a.lineTo(b,h+d),a.lineTo(0,h+d),a.lineTo(0,h),a.lineTo(b,h),a.close());a.end()};mxCellRenderer.registerShape("component",Y);mxUtils.extend(aa,mxDoubleEllipse);aa.prototype.outerStroke=!0;aa.prototype.paintVertexShape=function(a,d,b,c,f){var g=Math.min(4,Math.min(c/5,f/5));0/g,"\n"));var f=document.createElement("div");f.innerHTML=d;d=mxUtils.extractTextWithWhitespace(f.childNodes);c.cellLabelChanged(a.cell,d)}else d=mxUtils.htmlEntities(c.convertValueToString(a.cell),!1),"0"!=mxUtils.getValue(a.style,"nl2Br","1")&&(d=d.replace(/\n/g,"
")),c.cellLabelChanged(a.cell, c.sanitizeHtml(d));c.setCellStyles("html",e);b.fireEvent(new mxEventObject("styleChanged","keys",["html"],"values",[null!=e?e:"0"],"cells",c.getSelectionCells()))}finally{c.getModel().endUpdate()}}});this.addAction("wordWrap",function(){var a=c.getView().getState(c.getSelectionCell()),b="wrap";c.stopEditing();null!=a&&"wrap"==a.style[mxConstants.STYLE_WHITE_SPACE]&&(b=null);c.setCellStyles(mxConstants.STYLE_WHITE_SPACE,b)});this.addAction("rotation",function(){var a="0",e=c.getView().getState(c.getSelectionCell()); null!=e&&(a=e.style[mxConstants.STYLE_ROTATION]||a);a=new FilenameDialog(b,a,mxResources.get("apply"),function(a){null!=a&&0%position%
Email\n#\n## Node style (placeholders are replaced once).\n## Default is the current style for nodes.\n#\n# style: label;image=%image%;whiteSpace=wrap;html=1;rounded=1;fillColor=%fill%;strokeColor=%stroke%;\n#\n## Uses the given column name as the identity for cells (updates existing cells).\n## Default is no identity (empty value or -).\n#\n# identity: -\n#\n## Adds a prefix to the identity of cells to make sure they do not collide with existing cells (whose\n## IDs are numbers from 0..n, sometimes with a GUID prefix in the context of realtime collaboration).\n## Default is csvimport-.\n#\n# namespace: csvimport-\n#\n## Connections between rows ("from": source colum, "to": target column).\n## Label, style and invert are optional. Defaults are \'\', current style and false.\n## In addition to label, an optional fromlabel and tolabel can be used to name the column\n## that contains the text for the label in the edges source or target (invert ignored).\n## The label is concatenated in the form fromlabel + label + tolabel if all are defined.\n## The target column may contain a comma-separated list of values.\n## Multiple connect entries are allowed.\n#\n# connect: {"from": "manager", "to": "name", "invert": true, "label": "manages", \\\n# "style": "curved=1;endArrow=blockThin;endFill=1;fontSize=11;"}\n# connect: {"from": "refs", "to": "id", "style": "curved=1;fontSize=11;"}\n#\n## Node x-coordinate. Possible value is a column name. Default is empty. Layouts will\n## override this value.\n#\n# left: \n#\n## Node y-coordinate. Possible value is a column name. Default is empty. Layouts will\n## override this value.\n#\n# top: \n#\n## Node width. Possible value is a number (in px), auto or an @ sign followed by a column\n## name that contains the value for the width. Default is auto.\n#\n# width: auto\n#\n## Node height. Possible value is a number (in px), auto or an @ sign followed by a column\n## name that contains the value for the height. Default is auto.\n#\n# height: auto\n#\n## Padding for autosize. Default is 0.\n#\n# padding: -12\n#\n## Comma-separated list of ignored columns for metadata. (These can be\n## used for connections and styles but will not be added as metadata.)\n#\n# ignore: id,image,fill,stroke\n#\n## Column to be renamed to link attribute (used as link).\n#\n# link: url\n#\n## Spacing between nodes. Default is 40.\n#\n# nodespacing: 40\n#\n## Spacing between parallel edges. Default is 40.\n#\n# edgespacing: 40\n#\n## Name of layout. Possible values are auto, none, verticaltree, horizontaltree,\n## verticalflow, horizontalflow, organic, circle. Default is auto.\n#\n# layout: auto\n#\n## ---- CSV below this line. First line are column names. ----\nname,position,id,location,manager,email,fill,stroke,refs,url,image\nEvan Miller,CFO,emi,Office 1,,me@example.com,#dae8fc,#6c8ebf,,https://www.draw.io,https://cdn3.iconfinder.com/data/icons/user-avatars-1/512/users-9-2-128.png\nEdward Morrison,Brand Manager,emo,Office 2,Evan Miller,me@example.com,#d5e8d4,#82b366,,https://www.draw.io,https://cdn3.iconfinder.com/data/icons/user-avatars-1/512/users-10-3-128.png\nRon Donovan,System Admin,rdo,Office 3,Evan Miller,me@example.com,#d5e8d4,#82b366,"emo,tva",https://www.draw.io,https://cdn3.iconfinder.com/data/icons/user-avatars-1/512/users-2-128.png\nTessa Valet,HR Director,tva,Office 4,Evan Miller,me@example.com,#d5e8d4,#82b366,,https://www.draw.io,https://cdn3.iconfinder.com/data/icons/user-avatars-1/512/users-3-128.png\n'; +Editor.defaultCustomLibraries=[];Editor.enableCustomLibraries=!0;Editor.defaultCsvValue='##\n## Example CSV import. Use ## for comments and # for configuration. Paste CSV below.\n## The following names are reserved and should not be used (or ignored):\n## id, tooltip, placeholder(s), link and label (see below)\n##\n#\n## Node label with placeholders and HTML.\n## Default is \'%name_of_first_column%\'.\n#\n# label: %name%
%position%
Email\n#\n## Node style (placeholders are replaced once).\n## Default is the current style for nodes.\n#\n# style: label;image=%image%;whiteSpace=wrap;html=1;rounded=1;fillColor=%fill%;strokeColor=%stroke%;\n#\n## Uses the given column name as the identity for cells (updates existing cells).\n## Default is no identity (empty value or -).\n#\n# identity: -\n#\n## Adds a prefix to the identity of cells to make sure they do not collide with existing cells (whose\n## IDs are numbers from 0..n, sometimes with a GUID prefix in the context of realtime collaboration).\n## Default is csvimport-.\n#\n# namespace: csvimport-\n#\n## Connections between rows ("from": source colum, "to": target column).\n## Label, style and invert are optional. Defaults are \'\', current style and false.\n## In addition to label, an optional fromlabel and tolabel can be used to name the column\n## that contains the text for the label in the edges source or target (invert ignored).\n## The label is concatenated in the form fromlabel + label + tolabel if all are defined.\n## The target column may contain a comma-separated list of values.\n## Multiple connect entries are allowed.\n#\n# connect: {"from": "manager", "to": "name", "invert": true, "label": "manages", \\\n# "style": "curved=1;endArrow=blockThin;endFill=1;fontSize=11;"}\n# connect: {"from": "refs", "to": "id", "style": "curved=1;fontSize=11;"}\n#\n## Node x-coordinate. Possible value is a column name. Default is empty. Layouts will\n## override this value.\n#\n# left: \n#\n## Node y-coordinate. Possible value is a column name. Default is empty. Layouts will\n## override this value.\n#\n# top: \n#\n## Node width. Possible value is a number (in px), auto or an @ sign followed by a column\n## name that contains the value for the width. Default is auto.\n#\n# width: auto\n#\n## Node height. Possible value is a number (in px), auto or an @ sign followed by a column\n## name that contains the value for the height. Default is auto.\n#\n# height: auto\n#\n## Padding for autosize. Default is 0.\n#\n# padding: -12\n#\n## Comma-separated list of ignored columns for metadata. (These can be\n## used for connections and styles but will not be added as metadata.)\n#\n# ignore: id,image,fill,stroke\n#\n## Column to be renamed to link attribute (used as link).\n#\n# link: url\n#\n## Spacing between nodes. Default is 40.\n#\n# nodespacing: 40\n#\n## Spacing between parallel edges. Default is 40.\n#\n# edgespacing: 40\n#\n## Name of layout. Possible values are auto, none, verticaltree, horizontaltree,\n## verticalflow, horizontalflow, organic, circle. Default is auto.\n#\n# layout: auto\n#\n## ---- CSV below this line. First line are column names. ----\nname,position,id,location,manager,email,fill,stroke,refs,url,image\nEvan Miller,CFO,emi,Office 1,,me@example.com,#dae8fc,#6c8ebf,,https://www.draw.io,https://cdn3.iconfinder.com/data/icons/user-avatars-1/512/users-9-2-128.png\nEdward Morrison,Brand Manager,emo,Office 2,Evan Miller,me@example.com,#d5e8d4,#82b366,,https://www.draw.io,https://cdn3.iconfinder.com/data/icons/user-avatars-1/512/users-10-3-128.png\nRon Donovan,System Admin,rdo,Office 3,Evan Miller,me@example.com,#d5e8d4,#82b366,"emo,tva",https://www.draw.io,https://cdn3.iconfinder.com/data/icons/user-avatars-1/512/users-2-128.png\nTessa Valet,HR Director,tva,Office 4,Evan Miller,me@example.com,#d5e8d4,#82b366,,https://www.draw.io,https://cdn3.iconfinder.com/data/icons/user-avatars-1/512/users-3-128.png\n'; Editor.shadowOptionEnabled=!0;Editor.configure=function(a){if(null!=a){Editor.configVersion=a.version;Menus.prototype.defaultFonts=a.defaultFonts||Menus.prototype.defaultFonts;ColorDialog.prototype.presetColors=a.presetColors||ColorDialog.prototype.presetColors;ColorDialog.prototype.defaultColors=a.defaultColors||ColorDialog.prototype.defaultColors;StyleFormatPanel.prototype.defaultColorSchemes=a.defaultColorSchemes||StyleFormatPanel.prototype.defaultColorSchemes;Graph.prototype.defaultEdgeLength= -a.defaultEdgeLength||Graph.prototype.defaultEdgeLength;if(null!=a.css){var d=document.createElement("style");d.setAttribute("type","text/css");d.appendChild(document.createTextNode(a.css));var b=document.getElementsByTagName("script")[0];b.parentNode.insertBefore(d,b)}null!=a.defaultLibraries&&(Sidebar.prototype.defaultEntries=a.defaultLibraries);null!=a.defaultCustomLibraries&&(Editor.defaultCustomLibraries=a.defaultCustomLibraries);null!=a.defaultVertexStyle&&(Graph.prototype.defaultVertexStyle= -a.defaultVertexStyle);null!=a.defaultEdgeStyle&&(Graph.prototype.defaultEdgeStyle=a.defaultEdgeStyle);a.emptyDiagramXml&&(EditorUi.prototype.emptyDiagramXml=a.emptyDiagramXml);a.thumbWidth&&(Sidebar.prototype.thumbWidth=a.thumbWidth);a.thumbHeight&&(Sidebar.prototype.thumbHeight=a.thumbHeight);a.emptyLibraryXml&&(EditorUi.prototype.emptyLibraryXml=a.emptyLibraryXml);a.sidebarWidth&&(EditorUi.prototype.hsplitPosition=a.sidebarWidth);a.fontCss&&(d=document.createElement("style"),d.setAttribute("type", -"text/css"),d.appendChild(document.createTextNode(a.fontCss)),b=document.getElementsByTagName("script")[0],b.parentNode.insertBefore(d,b),Editor.prototype.fontCss=a.fontCss);if(null!=a.plugins)for(App.initPluginCallback(),d=0;ddocument.documentMode)?d.style.filter="progid:DXImageTransform.Microsoft.Gradient(StartColorStr='"+a.fill+"', EndColorStr='"+a.gradient+"', GradientType=0)":d.style.backgroundImage="linear-gradient("+ a.fill+" 0px,"+a.gradient+" 100%)":d.style.backgroundColor=a.fill,d.style.border="1px solid "+a.stroke):(d.style.backgroundColor="#ffffff",d.style.border="1px solid #000000");f.appendChild(d)}f.innerHTML="";for(var b=0;b'),d.writeln(a.editor.fontCss),d.writeln(""))};if("undefined"!==typeof MathJax){var k=b.renderPage;b.renderPage=function(a,d,b,c,f,e){var g=k.apply(this,arguments);this.graph.mathEnabled?this.mathEnabled=!0:g.className="geDisableMathJax";return g}}b.open(null,null,f,!0)}else{m=d.background;if(null==m||""==m||m==mxConstants.NONE)m="#ffffff";b.backgroundColor=m;b.autoOrigin=r;b.appendGraph(d,n,g,h,f,!0)}return b}var c=parseInt(T.value)/100;isNaN(c)&&(c=1,T.value= -"100 %");var c=.75*c,e=k.value,g=w.value,h=!r.checked,n=null;h&&(h=e==m&&g==m);if(!h&&null!=a.pages&&a.pages.length){var t=0,h=a.pages.length-1;r.checked||(t=parseInt(e)-1,h=parseInt(g)-1);for(var u=t;u<=h;u++){var l=a.pages[u],e=l==a.currentPage?f:null;if(null==e){var e=a.createTemporaryGraph(f.getStylesheet()),g=!0,t=!1,z=null,x=null;null==l.viewState&&null==l.mapping&&null==l.root&&a.updatePageRoot(l);null!=l.viewState?(g=l.viewState.pageVisible,t=l.viewState.mathEnabled,z=l.viewState.background, -x=l.viewState.backgroundImage):null!=l.mapping&&null!=l.mapping.diagramMap&&(t="0"!=l.mapping.diagramMap.get("mathEnabled"),z=l.mapping.diagramMap.get("background"),x=l.mapping.diagramMap.get("backgroundImage"),x=null!=x&&0'),h.writeln("MathJax.Hub.Config({"),h.writeln('messageStyle: "none",'),h.writeln('jax: ["input/TeX", "input/MathML", "input/AsciiMath", "output/HTML-CSS"],'),h.writeln('extensions: ["tex2jax.js", "mml2jax.js", "asciimath2jax.js"],'),h.writeln("TeX: {"),h.writeln('extensions: ["AMSmath.js", "AMSsymbols.js", "noErrors.js", "noUndefined.js"]'), -h.writeln("},"),h.writeln("tex2jax: {"),h.writeln('\tignoreClass: "geDisableMathJax"'),h.writeln("},"),h.writeln("asciimath2jax: {"),h.writeln('\tignoreClass: "geDisableMathJax"'),h.writeln("}"),h.writeln("});"),d&&(h.writeln("MathJax.Hub.Queue(function () {"),h.writeln("window.print();"),h.writeln("});")),h.writeln("\x3c/script>"),h.writeln('