From 6fbf5bc048f99af6d3d20ac1ada6b2eaa8a9d79a Mon Sep 17 00:00:00 2001 From: David Benson <david@jgraph.com> Date: Wed, 7 Nov 2018 16:49:01 +0000 Subject: [PATCH] 9.3.4 release --- ChangeLog | 9 + VERSION | 2 +- etc/mxgraph/mxClient.js | 2 +- etc/vsd/README.txt | 2 +- .../importer/GliffyDiagramConverter.java | 3 +- .../io/gliffy/importer/SVGImporterUtils.java | 131 ++ .../mxgraph/io/gliffy/model/GliffyObject.java | 5 +- src/main/webapp/WEB-INF/lib/mxgraph-core.jar | Bin 463555 -> 468185 bytes src/main/webapp/cache.manifest | 2 +- src/main/webapp/index.html | 114 +- src/main/webapp/js/app.min.js | 1680 ++++++++------- src/main/webapp/js/atlas-viewer.min.js | 1907 +++++++++-------- src/main/webapp/js/atlas.min.js | 791 +++---- src/main/webapp/js/diagramly/App.js | 67 +- .../webapp/js/diagramly/DistanceGuides.js | 214 +- src/main/webapp/js/diagramly/DrawioFile.js | 139 +- src/main/webapp/js/diagramly/DriveClient.js | 571 ++++- src/main/webapp/js/diagramly/DriveFile.js | 467 +++- src/main/webapp/js/diagramly/DriveRealtime.js | 47 +- src/main/webapp/js/diagramly/Editor.js | 26 +- src/main/webapp/js/diagramly/EditorUi.js | 49 +- src/main/webapp/js/diagramly/GitHubClient.js | 2 +- src/main/webapp/js/diagramly/Menus.js | 63 +- src/main/webapp/js/diagramly/Minimal.js | 11 +- src/main/webapp/js/diagramly/Pages.js | 8 +- src/main/webapp/js/diagramly/vsdx/importer.js | 16 +- src/main/webapp/js/embed-static.min.js | 23 +- src/main/webapp/js/extensions.min.js | 16 +- src/main/webapp/js/mxgraph/Dialogs.js | 10 +- src/main/webapp/js/mxgraph/Graph.js | 12 + src/main/webapp/js/reader.min.js | 23 +- src/main/webapp/js/sanitizer/sanitizer.min.js | 3 +- src/main/webapp/js/viewer.min.js | 1907 +++++++++-------- src/main/webapp/resources/dia.txt | 4 +- src/main/webapp/resources/dia_am.txt | 4 +- src/main/webapp/resources/dia_ar.txt | 4 +- src/main/webapp/resources/dia_bg.txt | 2 + src/main/webapp/resources/dia_bn.txt | 4 +- src/main/webapp/resources/dia_bs.txt | 2 + src/main/webapp/resources/dia_ca.txt | 2 + src/main/webapp/resources/dia_cs.txt | 2 + src/main/webapp/resources/dia_da.txt | 2 + src/main/webapp/resources/dia_de.txt | 4 +- src/main/webapp/resources/dia_el.txt | 2 + src/main/webapp/resources/dia_eo.txt | 20 +- src/main/webapp/resources/dia_es.txt | 2 + src/main/webapp/resources/dia_et.txt | 2 + src/main/webapp/resources/dia_fa.txt | 2 + src/main/webapp/resources/dia_fi.txt | 2 + src/main/webapp/resources/dia_fil.txt | 2 + src/main/webapp/resources/dia_fr.txt | 2 + src/main/webapp/resources/dia_gu.txt | 4 +- src/main/webapp/resources/dia_he.txt | 2 + src/main/webapp/resources/dia_hi.txt | 4 +- src/main/webapp/resources/dia_hr.txt | 4 +- src/main/webapp/resources/dia_hu.txt | 2 + src/main/webapp/resources/dia_i18n.txt | 2 + src/main/webapp/resources/dia_id.txt | 2 + src/main/webapp/resources/dia_it.txt | 2 + src/main/webapp/resources/dia_ja.txt | 2 + src/main/webapp/resources/dia_kn.txt | 4 +- src/main/webapp/resources/dia_ko.txt | 2 + src/main/webapp/resources/dia_lt.txt | 4 +- src/main/webapp/resources/dia_lv.txt | 4 +- src/main/webapp/resources/dia_ml.txt | 4 +- src/main/webapp/resources/dia_mr.txt | 4 +- src/main/webapp/resources/dia_ms.txt | 2 + src/main/webapp/resources/dia_nl.txt | 14 +- src/main/webapp/resources/dia_no.txt | 2 + src/main/webapp/resources/dia_pl.txt | 2 + src/main/webapp/resources/dia_pt-br.txt | 2 + src/main/webapp/resources/dia_pt.txt | 2 + src/main/webapp/resources/dia_ro.txt | 2 + src/main/webapp/resources/dia_ru.txt | 2 + src/main/webapp/resources/dia_sk.txt | 4 +- src/main/webapp/resources/dia_sl.txt | 4 +- src/main/webapp/resources/dia_sr.txt | 2 + src/main/webapp/resources/dia_sv.txt | 2 + src/main/webapp/resources/dia_sw.txt | 4 +- src/main/webapp/resources/dia_ta.txt | 4 +- src/main/webapp/resources/dia_te.txt | 4 +- src/main/webapp/resources/dia_th.txt | 2 + src/main/webapp/resources/dia_tr.txt | 2 + src/main/webapp/resources/dia_uk.txt | 2 + src/main/webapp/resources/dia_vi.txt | 2 + src/main/webapp/resources/dia_zh-tw.txt | 2 + src/main/webapp/resources/dia_zh.txt | 2 + 87 files changed, 5033 insertions(+), 3463 deletions(-) create mode 100644 src/main/java/com/mxgraph/io/gliffy/importer/SVGImporterUtils.java diff --git a/ChangeLog b/ChangeLog index 565b55391..c25cc3c8e 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,12 @@ +06-NOV-2018: 9.3.4 + +- Improves sanity check for Google Drive files +- Uses mxGraph 3.9.11 beta 4 + +02-NOV-2018: 9.3.2 + +- Adds sanity check for Google Drive files + 26-OCT-2018: 9.3.1 - Adds current page index to JSON protocol diff --git a/VERSION b/VERSION index 4fb2e5db3..ca327ca07 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -9.3.1 \ No newline at end of file +9.3.4 \ No newline at end of file diff --git a/etc/mxgraph/mxClient.js b/etc/mxgraph/mxClient.js index fa940fd73..c75a30185 100644 --- a/etc/mxgraph/mxClient.js +++ b/etc/mxgraph/mxClient.js @@ -556,7 +556,7 @@ mxSwimlane.prototype.paintDivider=function(a,b,c,d,e,f,g){g||a.setShadow(!1);a.b mxSwimlane.prototype.getImageBounds=function(a,b,c,d){return this.isHorizontal()?new mxRectangle(a+c-this.imageSize,b,this.imageSize,this.imageSize):new mxRectangle(a,b,this.imageSize,this.imageSize)};function mxGraphLayout(a){this.graph=a}mxGraphLayout.prototype.graph=null;mxGraphLayout.prototype.useBoundingBox=!0;mxGraphLayout.prototype.parent=null;mxGraphLayout.prototype.moveCell=function(a,b,c){};mxGraphLayout.prototype.execute=function(a){};mxGraphLayout.prototype.getGraph=function(){return this.graph}; mxGraphLayout.prototype.getConstraint=function(a,b,c,d){c=this.graph.view.getState(b);b=null!=c?c.style:this.graph.getCellStyle(b);return null!=b?b[a]:null}; mxGraphLayout.traverse=function(a,b,c,d,e){if(null!=c&&null!=a&&(b=null!=b?b:!0,e=e||new mxDictionary,!e.get(a)&&(e.put(a,!0),d=c(a,d),null==d||d))&&(d=this.graph.model.getEdgeCount(a),0<d))for(var f=0;f<d;f++){var g=this.graph.model.getEdgeAt(a,f),k=this.graph.model.getTerminal(g,!0)==a;if(!b||k)k=this.graph.view.getVisibleTerminal(g,!k),this.traverse(k,b,c,g,e)}}; -mxGraphLayout.prototype.isAncestor=function(a,b,c){if(!c)return this.graph.model.getParent(cell)==a;if(b==a)return!1;for(;null!=b&&b!=a;)b=this.graph.model.getParent(b);return b==a};mxGraphLayout.prototype.isVertexMovable=function(a){return this.graph.isCellMovable(a)};mxGraphLayout.prototype.isVertexIgnored=function(a){return!this.graph.getModel().isVertex(a)||!this.graph.isCellVisible(a)}; +mxGraphLayout.prototype.isAncestor=function(a,b,c){if(!c)return this.graph.model.getParent(b)==a;if(b==a)return!1;for(;null!=b&&b!=a;)b=this.graph.model.getParent(b);return b==a};mxGraphLayout.prototype.isVertexMovable=function(a){return this.graph.isCellMovable(a)};mxGraphLayout.prototype.isVertexIgnored=function(a){return!this.graph.getModel().isVertex(a)||!this.graph.isCellVisible(a)}; mxGraphLayout.prototype.isEdgeIgnored=function(a){var b=this.graph.getModel();return!b.isEdge(a)||!this.graph.isCellVisible(a)||null==b.getTerminal(a,!0)||null==b.getTerminal(a,!1)};mxGraphLayout.prototype.setEdgeStyleEnabled=function(a,b){this.graph.setCellStyles(mxConstants.STYLE_NOEDGESTYLE,b?"0":"1",[a])};mxGraphLayout.prototype.setOrthogonalEdge=function(a,b){this.graph.setCellStyles(mxConstants.STYLE_ORTHOGONAL,b?"1":"0",[a])}; mxGraphLayout.prototype.getParentOffset=function(a){var b=new mxPoint;if(null!=a&&a!=this.parent){var c=this.graph.getModel();if(c.isAncestor(this.parent,a))for(var d=c.getGeometry(a);a!=this.parent;)b.x+=d.x,b.y+=d.y,a=c.getParent(a),d=c.getGeometry(a)}return b}; mxGraphLayout.prototype.setEdgePoints=function(a,b){if(null!=a){var c=this.graph.model,d=c.getGeometry(a);null==d?(d=new mxGeometry,d.setRelative(!0)):d=d.clone();if(null!=this.parent&&null!=b)for(var e=c.getParent(a),e=this.getParentOffset(e),f=0;f<b.length;f++)b[f].x-=e.x,b[f].y-=e.y;d.points=b;c.setGeometry(a,d)}}; diff --git a/etc/vsd/README.txt b/etc/vsd/README.txt index 2242b6126..b6f50e904 100644 --- a/etc/vsd/README.txt +++ b/etc/vsd/README.txt @@ -36,7 +36,7 @@ Running the conversion site without Hyper-V: ======================================== Running the conversion site with Hyper-V: -1- Run VsdConverterApp TCP sever +1- Run VsdConverterApp TCP sever (Also disable QuickEdit Mode: Property > Options > Edit Options > QuickEdit Mode) 2- Deploy VsdConverter to IIS (manually or using Web Deployment Tool). In details (Ignore Hyper-V steps if it is running directly on the server): diff --git a/src/main/java/com/mxgraph/io/gliffy/importer/GliffyDiagramConverter.java b/src/main/java/com/mxgraph/io/gliffy/importer/GliffyDiagramConverter.java index 9aa6c01b8..e2552dbaa 100644 --- a/src/main/java/com/mxgraph/io/gliffy/importer/GliffyDiagramConverter.java +++ b/src/main/java/com/mxgraph/io/gliffy/importer/GliffyDiagramConverter.java @@ -811,7 +811,8 @@ public class GliffyDiagramConverter cell.setVertex(true); style.append("shape=image;imageAspect=0;"); Resource res = gliffyDiagram.embeddedResources.get(svg.embeddedResourceId); - + SVGImporterUtils svgUtils = new SVGImporterUtils(); + res.data = svgUtils.setViewBox(res.data); style.append("image=data:image/svg+xml,").append(res.getBase64EncodedData()).append(";"); } } diff --git a/src/main/java/com/mxgraph/io/gliffy/importer/SVGImporterUtils.java b/src/main/java/com/mxgraph/io/gliffy/importer/SVGImporterUtils.java new file mode 100644 index 000000000..7a81a8bd5 --- /dev/null +++ b/src/main/java/com/mxgraph/io/gliffy/importer/SVGImporterUtils.java @@ -0,0 +1,131 @@ +package com.mxgraph.io.gliffy.importer; + +import java.io.ByteArrayInputStream; +import java.io.InputStream; +import java.lang.reflect.Method; +import java.nio.charset.StandardCharsets; +import java.util.logging.Level; +import java.util.logging.Logger; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +/** + * Class is used to stripe large unused white areas on SVG files and return only important parts. + * For example, if you have centered square of 50x50 size on 200x200 canvas this class will remove + * unused portions of the canvas and return larger square from the center. + * + */ +public class SVGImporterUtils +{ + + private static final Pattern SVG_PATTERN = Pattern.compile("viewBox=\"(.*?)\""); + + private final static Logger LOGGER = Logger.getLogger(SVGImporterUtils.class.getName()); + + public SVGImporterUtils() + { + } + + /** + * This is main method that will return new viewBox value. Then we use this value to update existing SVG string in Gliffy object. + * + * @param svgString original SVG string from Gliffy Object. + * @return recalculated viewBox parameters as a String + */ + public String setViewBox(String svgString) + { + try + { + Matcher m = SVG_PATTERN.matcher(svgString); + while (m.find()) + { + String oldViewBox = m.group(); + String newViewBox = getNewViewBox(svgString); + if (newViewBox != null) + { + return svgString.replace(oldViewBox, newViewBox); + } + } + } + catch (Throwable exc) + { + //perfectly fine to blow-up, just ignore - original string will be returned if something goes wrong + LOGGER.log(Level.WARNING, "Cannot set viewBox for: " + svgString + " with error " + exc); + } + + return svgString; + } + + private String getNewViewBox(String svgString) throws Exception + { + String result = null; + Object svg = createSVGDocument(svgString); + buildDocument(svg); + result = getViewBoxString(svg); + return result; + } + + private Object createSVGDocument(String svgString) throws Exception + { + InputStream stream = new ByteArrayInputStream(svgString.getBytes(StandardCharsets.UTF_8)); + Class<?> myClass = Class.forName("org.apache.batik.dom.svg.SAXSVGDocumentFactory"); + Method myMethod = myClass.getDeclaredMethod("createSVGDocument", String.class, InputStream.class); + String param = null; + Object newInstance = myClass.getConstructor(String.class).newInstance(param); + Object o = myMethod.invoke(newInstance, "http://www.w3.org/2000/svg", stream); + return o; + } + + private void buildDocument(Object svg) throws Exception + { + Class<?> bridgeContextClass = Class.forName("org.apache.batik.bridge.BridgeContext"); + Class<?> userAgentAdapterClass = Class.forName("org.apache.batik.bridge.UserAgentAdapter"); + Class<?> userAgentClass = Class.forName("org.apache.batik.bridge.UserAgent"); + Class<?> gvtBuilderClass = Class.forName("org.apache.batik.bridge.GVTBuilder"); + Class<?> documentClass = Class.forName("org.w3c.dom.Document"); + + Method myBuildMethod = gvtBuilderClass.getDeclaredMethod("build", bridgeContextClass, documentClass); + Object newBuilderInstance = gvtBuilderClass.getConstructor().newInstance(); + Object newUserAgentAdapterInstance = userAgentAdapterClass.getConstructor().newInstance(); + Object newBridgeContextClass = bridgeContextClass.getConstructor(userAgentClass).newInstance(newUserAgentAdapterInstance); + myBuildMethod.invoke(newBuilderInstance, newBridgeContextClass, svg); + + } + + private String getViewBoxString(Object svg) throws Exception + { + Class<?> svgDocumentClass = Class.forName("org.apache.batik.dom.svg.SVGOMDocument"); + Class<?> svgSVGElement = Class.forName("org.apache.batik.dom.svg.SVGOMSVGElement"); + Class<?> svgRect = Class.forName("org.w3c.dom.svg.SVGRect"); + + Method getRootElement = svgDocumentClass.getDeclaredMethod("getRootElement"); + Method getBBox = svgSVGElement.getDeclaredMethod("getBBox"); + Method getX = svgRect.getDeclaredMethod("getX"); + Method getY = svgRect.getDeclaredMethod("getY"); + Method getHeight = svgRect.getDeclaredMethod("getHeight"); + Method getWidth = svgRect.getDeclaredMethod("getWidth"); + + Object root = getRootElement.invoke(svg); + Object bbox = getBBox.invoke(root); + Object x = getX.invoke(bbox); + Object y = getY.invoke(bbox); + Object height = getHeight.invoke(bbox); + Object width = getWidth.invoke(bbox); + + String result = String.format("viewBox=\"%s %s %s %s\"", getIntValue(x.toString()), getIntValue(y.toString()), + getIntValue(width.toString()), getIntValue(height.toString())); + return result; + + } + + private String getIntValue(String value) + { + int dot = value.indexOf("."); + if (dot > 0) + { + return value.substring(0, dot); + } + return value; + } + +} diff --git a/src/main/java/com/mxgraph/io/gliffy/model/GliffyObject.java b/src/main/java/com/mxgraph/io/gliffy/model/GliffyObject.java index 2e26c5b85..8bb7e46e4 100644 --- a/src/main/java/com/mxgraph/io/gliffy/model/GliffyObject.java +++ b/src/main/java/com/mxgraph/io/gliffy/model/GliffyObject.java @@ -284,7 +284,10 @@ public class GliffyObject implements PostDeserializable public String getText() { - return graphic.getText().getHtml(); + GliffyText text = graphic.getText(); + //TODO These values are hurestics based on analyzing many files. 6 is a range from 2 to 6 so used the maximum + int widthDiff = "none".equals(text.overflow)? -3 : 6; + return "<div style='width: "+ (width + widthDiff) +"px;height: "+ height +"px;word-break: break-word;'>" + text.getHtml() + "</div>"; } /** diff --git a/src/main/webapp/WEB-INF/lib/mxgraph-core.jar b/src/main/webapp/WEB-INF/lib/mxgraph-core.jar index 8984743d13fd980eec4917a74c806df19b39e500..a2f7829941af263449b7d5648b943e84fb6c63f0 100644 GIT binary patch delta 339163 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�f5a&c1($ocS5+MVc8CO#FDQ7(ImLuO)mz&A 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%0A!lC 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≤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�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 IkzM%b|2vd^VgLXD delta 334332 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%0D$+L2Sh$sug=cOD# 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� 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%0AE2YMrH=R&NB8zxglOy>${Mm?CcMr`_lUmK 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 diff --git a/src/main/webapp/cache.manifest b/src/main/webapp/cache.manifest index 8f38eed01..f5ee32e0b 100644 --- a/src/main/webapp/cache.manifest +++ b/src/main/webapp/cache.manifest @@ -1,7 +1,7 @@ CACHE MANIFEST # THIS FILE WAS GENERATED. DO NOT MODIFY! -# 10/26/2018 05:46 PM +# 11/06/2018 04:33 PM app.html index.html?offline=1 diff --git a/src/main/webapp/index.html b/src/main/webapp/index.html index 604ccf543..4ca516a3b 100644 --- a/src/main/webapp/index.html +++ b/src/main/webapp/index.html @@ -410,7 +410,119 @@ /** * Main */ -App.main(); +App.main(function (ui) +{ + // ************************************************** + // TESTING JSON TO XML CONVERTER FOR EOL OF GOOGLE RT + // ************************************************** +// ui.JSON_CHECK = 'JSON-CHECK7'; + +// DriveFile.prototype.runCheck = function(json, fileNode, fileData) +// { +// try +// { +// this.debug('JSON Check', this.desc, json); + +// if (this.ui.getCurrentFile() == this && !this.isModified()) +// { +// // Gets comparable XML structures +// var convert = (json != null) ? this.getComparableFile(this.ui.drive.convertJsonToXml(json, true)) : null; +// var remote = (fileNode != null) ? this.getComparableFile(fileNode) : null; +// var local = this.getComparableFile(this.ui.getXmlFileData()); + +// // Uses the newer of the two +// var age = this.ui.drive.getRealtimeAge(this.desc, json); +// var relevant = (age < 0 && convert != null) ? convert : remote; + +// if (local == null || relevant == null || !local.isEqualNode(relevant)) +// { +// this.log('FAIL-REPORT'); + +// var summary = ((relevant == convert) ? 'Source: Convert' : 'Source: Remote') + +// '\nFile modified: ' + new Date(this.desc.modifiedDate).toUTCString(); + +// if (json != null) +// { +// var mod = (json.value != null && json.value.modifiedDate != null) ? json.value.modifiedDate.json : null; + +// if (mod != null) +// { +// summary += '\nJson modified: ' + new Date(mod).toUTCString(); +// } + +// var bak = (json.value != null && json.value.backupDate != null) ? json.value.backupDate.json : null; + +// if (bak != null) +// { +// summary += '\nJson backedup: ' + new Date(bak).toUTCString(); +// } +// } + +// if (local != null) +// { +// if (convert != null) +// { +// summary += '\nConvert-Equals-Local: ' + convert.isEqualNode(local); +// } + +// if (remote != null) +// { +// summary += '\nRemote-Equals-Local: ' + remote.isEqualNode(local); +// } +// } + +// this.report('Realtime Error Report ' + new Date() + +// '\n\nDescription: ' + JSON.stringify({version: this.ui.JSON_CHECK, +// realtimeAge: age, title: this.desc.title, editable: this.desc.editable, +// copyable: this.desc.copyable, labels: this.desc.labels, id: this.desc.id, +// userPermission: this.desc.userPermission, fileSize: this.desc.fileSize, +// fileExtension: this.desc.fileExtension, modifiedDate: this.desc.modifiedDate, +// mimeType: this.desc.mimeType}) + +// '\n\nSummary:\n' + summary + +// '\n\nLocal:\n' + this.getAnonymizedXml(local) + +// '\n\nRemote:\n' + this.getAnonymizedXml(remote) + +// ((remote == null) ? ('\n\nData:\n' + fileData) : '') + +// '\n\nConvert:\n' + this.getAnonymizedXml(convert) + +// '\n\nJSON:\n' + this.getAnonymizedJson(json)); +// } +// else +// { +// this.log('OK-age.' + age + '.'); +// } +// } +// } +// catch (e) +// { +// this.log('CATCH-RUNCHECK-' + e.stack, true); +// this.debug(e); +// } +// }; + +// ui.editor.addListener('fileLoaded', mxUtils.bind(this, function() +// { +// try +// { +// var file = ui.getCurrentFile(); + +// if (file != null && file.constructor == DriveFile && file.realtime != null) +// { +// // With a 30% probability +// if (urlParams['json-check'] != '0' && (urlParams['json-check'] == '1' || +// (Math.random() > 0.3 && urlParams['dev'] != '1'))) +// { +// file.checkConvert(); +// } +// } +// } +// catch (e) +// { +// // ignore +// } +// })); + // *********** + // END OF TEST + // *********** +}); </script> </body> </html> diff --git a/src/main/webapp/js/app.min.js b/src/main/webapp/js/app.min.js index 23b09f686..aad70d0e5 100644 --- a/src/main/webapp/js/app.min.js +++ b/src/main/webapp/js/app.min.js @@ -1,6 +1,7 @@ //fgnass.github.com/spin.js#v2.0.0 !function(a,b){"object"==typeof exports?module.exports=b():"function"==typeof define&&define.amd?define(b):a.Spinner=b()}(this,function(){"use strict";function a(a,b){var c,d=document.createElement(a||"div");for(c in b)d[c]=b[c];return d}function b(a){for(var b=1,c=arguments.length;c>b;b++)a.appendChild(arguments[b]);return a}function c(a,b,c,d){var e=["opacity",b,~~(100*a),c,d].join("-"),f=.01+c/d*100,g=Math.max(1-(1-a)/b*(100-f),a),h=j.substring(0,j.indexOf("Animation")).toLowerCase(),i=h&&"-"+h+"-"||"";return l[e]||(m.insertRule("@"+i+"keyframes "+e+"{0%{opacity:"+g+"}"+f+"%{opacity:"+a+"}"+(f+.01)+"%{opacity:1}"+(f+b)%100+"%{opacity:"+a+"}100%{opacity:"+g+"}}",m.cssRules.length),l[e]=1),e}function d(a,b){var c,d,e=a.style;for(b=b.charAt(0).toUpperCase()+b.slice(1),d=0;d<k.length;d++)if(c=k[d]+b,void 0!==e[c])return c;return void 0!==e[b]?b:void 0}function e(a,b){for(var c in b)a.style[d(a,c)||c]=b[c];return a}function f(a){for(var b=1;b<arguments.length;b++){var c=arguments[b];for(var d in c)void 0===a[d]&&(a[d]=c[d])}return a}function g(a,b){return"string"==typeof a?a:a[b%a.length]}function h(a){this.opts=f(a||{},h.defaults,n)}function i(){function c(b,c){return a("<"+b+' xmlns="urn:schemas-microsoft.com:vml" class="spin-vml">',c)}m.addRule(".spin-vml","behavior:url(#default#VML)"),h.prototype.lines=function(a,d){function f(){return e(c("group",{coordsize:k+" "+k,coordorigin:-j+" "+-j}),{width:k,height:k})}function h(a,h,i){b(m,b(e(f(),{rotation:360/d.lines*a+"deg",left:~~h}),b(e(c("roundrect",{arcsize:d.corners}),{width:j,height:d.width,left:d.radius,top:-d.width>>1,filter:i}),c("fill",{color:g(d.color,a),opacity:d.opacity}),c("stroke",{opacity:0}))))}var i,j=d.length+d.width,k=2*j,l=2*-(d.width+d.length)+"px",m=e(f(),{position:"absolute",top:l,left:l});if(d.shadow)for(i=1;i<=d.lines;i++)h(i,-2,"progid:DXImageTransform.Microsoft.Blur(pixelradius=2,makeshadow=1,shadowopacity=.3)");for(i=1;i<=d.lines;i++)h(i);return b(a,m)},h.prototype.opacity=function(a,b,c,d){var e=a.firstChild;d=d.shadow&&d.lines||0,e&&b+d<e.childNodes.length&&(e=e.childNodes[b+d],e=e&&e.firstChild,e=e&&e.firstChild,e&&(e.opacity=c))}}var j,k=["webkit","Moz","ms","O"],l={},m=function(){var c=a("style",{type:"text/css"});return b(document.getElementsByTagName("head")[0],c),c.sheet||c.styleSheet}(),n={lines:12,length:7,width:5,radius:10,rotate:0,corners:1,color:"#000",direction:1,speed:1,trail:100,opacity:.25,fps:20,zIndex:2e9,className:"spinner",top:"50%",left:"50%",position:"absolute"};h.defaults={},f(h.prototype,{spin:function(b){this.stop();{var c=this,d=c.opts,f=c.el=e(a(0,{className:d.className}),{position:d.position,width:0,zIndex:d.zIndex});d.radius+d.length+d.width}if(b&&(b.insertBefore(f,b.firstChild||null),e(f,{left:d.left,top:d.top})),f.setAttribute("role","progressbar"),c.lines(f,c.opts),!j){var g,h=0,i=(d.lines-1)*(1-d.direction)/2,k=d.fps,l=k/d.speed,m=(1-d.opacity)/(l*d.trail/100),n=l/d.lines;!function o(){h++;for(var a=0;a<d.lines;a++)g=Math.max(1-(h+(d.lines-a)*n)%l*m,d.opacity),c.opacity(f,a*d.direction+i,g,d);c.timeout=c.el&&setTimeout(o,~~(1e3/k))}()}return c},stop:function(){var a=this.el;return a&&(clearTimeout(this.timeout),a.parentNode&&a.parentNode.removeChild(a),this.el=void 0),this},lines:function(d,f){function h(b,c){return e(a(),{position:"absolute",width:f.length+f.width+"px",height:f.width+"px",background:b,boxShadow:c,transformOrigin:"left",transform:"rotate("+~~(360/f.lines*k+f.rotate)+"deg) translate("+f.radius+"px,0)",borderRadius:(f.corners*f.width>>1)+"px"})}for(var i,k=0,l=(f.lines-1)*(1-f.direction)/2;k<f.lines;k++)i=e(a(),{position:"absolute",top:1+~(f.width/2)+"px",transform:f.hwaccel?"translate3d(0,0,0)":"",opacity:f.opacity,animation:j&&c(f.opacity,f.trail,l+k*f.direction,f.lines)+" "+1/f.speed+"s linear infinite"}),f.shadow&&b(i,e(h("#000","0 0 4px #000"),{top:"2px"})),b(d,b(i,h(g(f.color,k),"0 0 1px rgba(0,0,0,.1)")));return d},opacity:function(a,b,c){b<a.childNodes.length&&(a.childNodes[b].style.opacity=c)}});var o=e(a("group"),{behavior:"url(#default#VML)"});return!d(o,"transform")&&o.adj?i():j=d(o,"animation"),h}); // NOTE: Modified to support data URIs for images, ie. data:image/* +// Modified to allow "word-break: break-word" in styles. It is done by adding "break-word" which is at index 55 of J array J[55] to "cssLitGroup" of "word-break" (function(){var c=void 0,n=!0,s=null,C=!1,J=["aliceblue,antiquewhite,aqua,aquamarine,azure,beige,bisque,black,blanchedalmond,blue,blueviolet,brown,burlywood,cadetblue,chartreuse,chocolate,coral,cornflowerblue,cornsilk,crimson,cyan,darkblue,darkcyan,darkgoldenrod,darkgray,darkgreen,darkkhaki,darkmagenta,darkolivegreen,darkorange,darkorchid,darkred,darksalmon,darkseagreen,darkslateblue,darkslategray,darkturquoise,darkviolet,deeppink,deepskyblue,dimgray,dodgerblue,firebrick,floralwhite,forestgreen,fuchsia,gainsboro,ghostwhite,gold,goldenrod,gray,green,greenyellow,honeydew,hotpink,indianred,indigo,ivory,khaki,lavender,lavenderblush,lawngreen,lemonchiffon,lightblue,lightcoral,lightcyan,lightgoldenrodyellow,lightgreen,lightgrey,lightpink,lightsalmon,lightseagreen,lightskyblue,lightslategray,lightsteelblue,lightyellow,lime,limegreen,linen,magenta,maroon,mediumaquamarine,mediumblue,mediumorchid,mediumpurple,mediumseagreen,mediumslateblue,mediumspringgreen,mediumturquoise,mediumvioletred,midnightblue,mintcream,mistyrose,moccasin,navajowhite,navy,oldlace,olive,olivedrab,orange,orangered,orchid,palegoldenrod,palegreen,paleturquoise,palevioletred,papayawhip,peachpuff,peru,pink,plum,powderblue,purple,red,rosybrown,royalblue,saddlebrown,salmon,sandybrown,seagreen,seashell,sienna,silver,skyblue,slateblue,slategray,snow,springgreen,steelblue,tan,teal,thistle,tomato,transparent,turquoise,violet,wheat,white,whitesmoke,yellow,yellowgreen".split(","), "all-scroll,col-resize,crosshair,default,e-resize,hand,help,move,n-resize,ne-resize,no-drop,not-allowed,nw-resize,pointer,progress,row-resize,s-resize,se-resize,sw-resize,text,vertical-text,w-resize,wait".split(","),"armenian,decimal,decimal-leading-zero,disc,georgian,lower-alpha,lower-greek,lower-latin,lower-roman,square,upper-alpha,upper-latin,upper-roman".split(","),"100,200,300,400,500,600,700,800,900,bold,bolder,lighter".split(","),"block-level,inline-level,table-caption,table-cell,table-column,table-column-group,table-footer-group,table-header-group,table-row,table-row-group".split(","), "condensed,expanded,extra-condensed,extra-expanded,narrower,semi-condensed,semi-expanded,ultra-condensed,ultra-expanded,wider".split(","),"inherit,inline,inline-block,inline-box,inline-flex,inline-grid,inline-list-item,inline-stack,inline-table,run-in".split(","),"behind,center-left,center-right,far-left,far-right,left-side,leftwards,right-side,rightwards".split(","),"large,larger,small,smaller,x-large,x-small,xx-large,xx-small".split(","),"dashed,dotted,double,groove,outset,ridge,solid".split(","), @@ -25,7 +26,7 @@ position:{cssPropBits:0,cssLitGroup:[J[23]],cssFns:[]},quotes:{cssPropBits:8,css cssLitGroup:[J[14],J[69]],cssFns:[]},stress:"border-bottom-left-radius","table-layout":{cssPropBits:0,cssLitGroup:[J[52],J[61]],cssFns:[]},"text-align":{cssPropBits:0,cssLitGroup:[J[42],J[56],J[66]],cssFns:[]},"text-decoration":{cssPropBits:0,cssLitGroup:[J[19],J[71]],cssFns:[]},"text-indent":"border-bottom-left-radius","text-overflow":{cssPropBits:8,cssLitGroup:[J[33]],cssFns:[]},"text-shadow":"box-shadow","text-transform":{cssPropBits:0,cssLitGroup:[J[26],J[71]],cssFns:[]},"text-wrap":{cssPropBits:0, cssLitGroup:[J[46],J[71],J[72]],cssFns:[]},top:"bottom",transform:{cssPropBits:0,cssLitGroup:[J[71]],cssFns:"matrix(),perspective(),rotate(),rotate3d(),rotatex(),rotatey(),rotatez(),scale(),scale3d(),scalex(),scaley(),scalez(),skew(),skewx(),skewy(),translate(),translate3d(),translatex(),translatey(),translatez()".split(",")},"transform-origin":"perspective-origin","transform-style":{cssPropBits:0,cssLitGroup:[J[37]],cssFns:[]},transition:{cssPropBits:1029,cssLitGroup:[J[10],J[48],J[50],J[71]],cssFns:["cubic-bezier()", "steps()"]},"transition-delay":"animation-delay","transition-duration":"animation-delay","transition-property":{cssPropBits:1024,cssLitGroup:[J[48],J[50]],cssFns:[]},"transition-timing-function":"animation-timing-function","unicode-bidi":{cssPropBits:0,cssLitGroup:[J[30],J[72]],cssFns:[]},"vertical-align":{cssPropBits:5,cssLitGroup:[J[12],J[31]],cssFns:[]},visibility:"backface-visibility","voice-family":{cssPropBits:8,cssLitGroup:[J[27],J[48]],cssFns:[]},volume:{cssPropBits:1,cssLitGroup:[J[17],J[69]], -cssFns:[]},"white-space":{cssPropBits:0,cssLitGroup:[J[22],J[72]],cssFns:[]},width:"min-height","word-break":{cssPropBits:0,cssLitGroup:[J[32],J[72]],cssFns:[]},"word-spacing":"letter-spacing","word-wrap":"overflow-wrap","z-index":"bottom",zoom:"line-height","cubic-bezier()":"animation-delay","steps()":{cssPropBits:5,cssLitGroup:[J[36],J[48]],cssFns:[]},"image()":{cssPropBits:18,cssLitGroup:[J[0],J[48]],cssFns:["rgb()","rgba()"]},"linear-gradient()":{cssPropBits:7,cssLitGroup:[J[0],J[31],J[42],J[48], +cssFns:[]},"white-space":{cssPropBits:0,cssLitGroup:[J[22],J[72]],cssFns:[]},width:"min-height","word-break":{cssPropBits:0,cssLitGroup:[J[32],J[72],J[55]],cssFns:[]},"word-spacing":"letter-spacing","word-wrap":"overflow-wrap","z-index":"bottom",zoom:"line-height","cubic-bezier()":"animation-delay","steps()":{cssPropBits:5,cssLitGroup:[J[36],J[48]],cssFns:[]},"image()":{cssPropBits:18,cssLitGroup:[J[0],J[48]],cssFns:["rgb()","rgba()"]},"linear-gradient()":{cssPropBits:7,cssLitGroup:[J[0],J[31],J[42],J[48], J[79]],cssFns:["rgb()","rgba()"]},"radial-gradient()":{cssPropBits:7,cssLitGroup:[J[0],J[11],J[31],J[42],J[48],J[56],J[57]],cssFns:["rgb()","rgba()"]},"repeating-linear-gradient()":"linear-gradient()","repeating-radial-gradient()":"radial-gradient()","rgb()":{cssPropBits:1,cssLitGroup:[J[48]],cssFns:[]},"rgba()":"rgb()","rect()":{cssPropBits:5,cssLitGroup:[J[48],J[52]],cssFns:[]},"alpha()":{cssPropBits:1,cssLitGroup:[J[28]],cssFns:[]},"matrix()":"animation-delay","perspective()":"border-bottom-left-radius", "rotate()":"border-bottom-left-radius","rotate3d()":"animation-delay","rotatex()":"border-bottom-left-radius","rotatey()":"border-bottom-left-radius","rotatez()":"border-bottom-left-radius","scale()":"animation-delay","scale3d()":"animation-delay","scalex()":"border-bottom-left-radius","scaley()":"border-bottom-left-radius","scalez()":"border-bottom-left-radius","skew()":"animation-delay","skewx()":"border-bottom-left-radius","skewy()":"border-bottom-left-radius","translate()":"animation-delay","translate3d()":"animation-delay", "translatex()":"border-bottom-left-radius","translatey()":"border-bottom-left-radius","translatez()":"border-bottom-left-radius"},O;for(O in L)"string"===typeof L[O]&&Object.hasOwnProperty.call(L,O)&&(L[O]=L[L[O]]);"undefined"!==typeof window&&(window.cssSchema=L);var U,X; @@ -663,7 +664,7 @@ mxSwimlane.prototype.paintDivider=function(a,b,c,d,e,f,g){g||a.setShadow(!1);a.b mxSwimlane.prototype.getImageBounds=function(a,b,c,d){return this.isHorizontal()?new mxRectangle(a+c-this.imageSize,b,this.imageSize,this.imageSize):new mxRectangle(a,b,this.imageSize,this.imageSize)};function mxGraphLayout(a){this.graph=a}mxGraphLayout.prototype.graph=null;mxGraphLayout.prototype.useBoundingBox=!0;mxGraphLayout.prototype.parent=null;mxGraphLayout.prototype.moveCell=function(a,b,c){};mxGraphLayout.prototype.execute=function(a){};mxGraphLayout.prototype.getGraph=function(){return this.graph}; mxGraphLayout.prototype.getConstraint=function(a,b,c,d){c=this.graph.view.getState(b);b=null!=c?c.style:this.graph.getCellStyle(b);return null!=b?b[a]:null}; mxGraphLayout.traverse=function(a,b,c,d,e){if(null!=c&&null!=a&&(b=null!=b?b:!0,e=e||new mxDictionary,!e.get(a)&&(e.put(a,!0),d=c(a,d),null==d||d))&&(d=this.graph.model.getEdgeCount(a),0<d))for(var f=0;f<d;f++){var g=this.graph.model.getEdgeAt(a,f),k=this.graph.model.getTerminal(g,!0)==a;if(!b||k)k=this.graph.view.getVisibleTerminal(g,!k),this.traverse(k,b,c,g,e)}}; -mxGraphLayout.prototype.isAncestor=function(a,b,c){if(!c)return this.graph.model.getParent(cell)==a;if(b==a)return!1;for(;null!=b&&b!=a;)b=this.graph.model.getParent(b);return b==a};mxGraphLayout.prototype.isVertexMovable=function(a){return this.graph.isCellMovable(a)};mxGraphLayout.prototype.isVertexIgnored=function(a){return!this.graph.getModel().isVertex(a)||!this.graph.isCellVisible(a)}; +mxGraphLayout.prototype.isAncestor=function(a,b,c){if(!c)return this.graph.model.getParent(b)==a;if(b==a)return!1;for(;null!=b&&b!=a;)b=this.graph.model.getParent(b);return b==a};mxGraphLayout.prototype.isVertexMovable=function(a){return this.graph.isCellMovable(a)};mxGraphLayout.prototype.isVertexIgnored=function(a){return!this.graph.getModel().isVertex(a)||!this.graph.isCellVisible(a)}; mxGraphLayout.prototype.isEdgeIgnored=function(a){var b=this.graph.getModel();return!b.isEdge(a)||!this.graph.isCellVisible(a)||null==b.getTerminal(a,!0)||null==b.getTerminal(a,!1)};mxGraphLayout.prototype.setEdgeStyleEnabled=function(a,b){this.graph.setCellStyles(mxConstants.STYLE_NOEDGESTYLE,b?"0":"1",[a])};mxGraphLayout.prototype.setOrthogonalEdge=function(a,b){this.graph.setCellStyles(mxConstants.STYLE_ORTHOGONAL,b?"1":"0",[a])}; mxGraphLayout.prototype.getParentOffset=function(a){var b=new mxPoint;if(null!=a&&a!=this.parent){var c=this.graph.getModel();if(c.isAncestor(this.parent,a))for(var d=c.getGeometry(a);a!=this.parent;)b.x+=d.x,b.y+=d.y,a=c.getParent(a),d=c.getGeometry(a)}return b}; mxGraphLayout.prototype.setEdgePoints=function(a,b){if(null!=a){var c=this.graph.model,d=c.getGeometry(a);null==d?(d=new mxGeometry,d.setRelative(!0)):d=d.clone();if(null!=this.parent&&null!=b)for(var e=c.getParent(a),e=this.getParentOffset(e),f=0;f<b.length;f++)b[f].x-=e.x,b[f].y-=e.y;d.points=b;c.setGeometry(a,d)}}; @@ -2461,13 +2462,14 @@ Graph.prototype.isCellFoldable=function(a){var c=this.view.getState(a),c=null!=c Graph.prototype.zoom=function(a,c){a=Math.max(.01,Math.min(this.view.scale*a,160))/this.view.scale;mxGraph.prototype.zoom.apply(this,arguments)};Graph.prototype.zoomIn=function(){.15>this.view.scale?this.zoom((this.view.scale+.01)/this.view.scale):this.zoom(Math.round(this.view.scale*this.zoomFactor*20)/20/this.view.scale)};Graph.prototype.zoomOut=function(){.15>=this.view.scale?this.zoom((this.view.scale-.01)/this.view.scale):this.zoom(Math.round(1/this.zoomFactor*this.view.scale*20)/20/this.view.scale)}; Graph.prototype.getTooltipForCell=function(a){var c="";if(mxUtils.isNode(a.value)){var d=a.value.getAttribute("tooltip");if(null!=d)null!=d&&this.isReplacePlaceholders(a)&&(d=this.replacePlaceholders(a,d)),c=this.sanitizeHtml(d);else{d=this.builtInProperties;a=a.value.attributes;var b=[];this.isEnabled()&&d.push("link");for(var f=0;f<a.length;f++)0>mxUtils.indexOf(d,a[f].nodeName)&&0<a[f].nodeValue.length&&b.push({name:a[f].nodeName,value:a[f].nodeValue});b.sort(function(a,b){return a.name<b.name? -1:a.name>b.name?1:0});for(f=0;f<b.length;f++)"link"==b[f].name&&this.isCustomLink(b[f].value)||(c+=("link"!=b[f].name?"<b>"+b[f].name+":</b> ":"")+mxUtils.htmlEntities(b[f].value)+"\n");0<c.length&&(c=c.substring(0,c.length-1),mxClient.IS_SVG&&(c='<div style="max-width:360px;">'+c+"</div>"))}}return c};Graph.prototype.stringToBytes=function(a){for(var c=Array(a.length),d=0;d<a.length;d++)c[d]=a.charCodeAt(d);return c}; -Graph.prototype.bytesToString=function(a){for(var c=Array(a.length),d=0;d<a.length;d++)c[d]=String.fromCharCode(a[d]);return c.join("")};Graph.prototype.compress=function(a){if(null==a||0==a.length||"undefined"===typeof pako)return a;a=this.bytesToString(pako.deflateRaw(encodeURIComponent(a)));return window.btoa?btoa(a):Base64.encode(a,!0)};Graph.prototype.decompress=function(a){if(null==a||0==a.length||"undefined"===typeof pako)return a;a=window.atob?atob(a):Base64.decode(a,!0);return this.zapGremlins(decodeURIComponent(this.bytesToString(pako.inflateRaw(a))))}; -Graph.prototype.zapGremlins=function(a){for(var c=[],d=0;d<a.length;d++){var b=a.charCodeAt(d);(32<=b||9==b||10==b||13==b)&&c.push(a.charAt(d))}return c.join("")};HoverIcons=function(a){this.graph=a;this.init()};HoverIcons.prototype.arrowSpacing=2;HoverIcons.prototype.updateDelay=500;HoverIcons.prototype.activationDelay=140;HoverIcons.prototype.currentState=null;HoverIcons.prototype.activeArrow=null;HoverIcons.prototype.inactiveOpacity=15;HoverIcons.prototype.cssCursor="copy"; -HoverIcons.prototype.checkCollisions=!0;HoverIcons.prototype.arrowFill="#29b6f2";HoverIcons.prototype.triangleUp=mxClient.IS_SVG?Graph.createSvgImage(18,28,'<path d="m 6 26 L 12 26 L 12 12 L 18 12 L 9 1 L 1 12 L 6 12 z" stroke="#fff" fill="'+HoverIcons.prototype.arrowFill+'"/>'):new mxImage(IMAGE_PATH+"/triangle-up.png",26,14); -HoverIcons.prototype.triangleRight=mxClient.IS_SVG?Graph.createSvgImage(26,18,'<path d="m 1 6 L 14 6 L 14 1 L 26 9 L 14 18 L 14 12 L 1 12 z" stroke="#fff" fill="'+HoverIcons.prototype.arrowFill+'"/>'):new mxImage(IMAGE_PATH+"/triangle-right.png",14,26);HoverIcons.prototype.triangleDown=mxClient.IS_SVG?Graph.createSvgImage(18,26,'<path d="m 6 1 L 6 14 L 1 14 L 9 26 L 18 14 L 12 14 L 12 1 z" stroke="#fff" fill="'+HoverIcons.prototype.arrowFill+'"/>'):new mxImage(IMAGE_PATH+"/triangle-down.png",26,14); -HoverIcons.prototype.triangleLeft=mxClient.IS_SVG?Graph.createSvgImage(28,18,'<path d="m 1 9 L 12 1 L 12 6 L 26 6 L 26 12 L 12 12 L 12 18 z" stroke="#fff" fill="'+HoverIcons.prototype.arrowFill+'"/>'):new mxImage(IMAGE_PATH+"/triangle-left.png",14,26);HoverIcons.prototype.roundDrop=mxClient.IS_SVG?Graph.createSvgImage(26,26,'<circle cx="13" cy="13" r="12" stroke="#fff" fill="'+HoverIcons.prototype.arrowFill+'"/>'):new mxImage(IMAGE_PATH+"/round-drop.png",26,26); -HoverIcons.prototype.refreshTarget=new mxImage(mxClient.IS_SVG?"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACYAAAAmCAYAAACoPemuAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBNYWNpbnRvc2giIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NDQxNERDRTU1QjY1MTFFNDkzNTRFQTVEMTdGMTdBQjciIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NDQxNERDRTY1QjY1MTFFNDkzNTRFQTVEMTdGMTdBQjciPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo0NDE0RENFMzVCNjUxMUU0OTM1NEVBNUQxN0YxN0FCNyIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo0NDE0RENFNDVCNjUxMUU0OTM1NEVBNUQxN0YxN0FCNyIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PsvuX50AAANaSURBVHja7FjRZ1tRGD9ZJ1NCyIQSwrivI4Q8hCpjlFDyFEoYfSp9Ko1QWnmo0If+BSXkIfo0QirTMUpeGo2EPfWllFYjZMLKLDJn53d3biU337m5J223bPbxk5t7v+/c3/2+73znO8fDOWezKM/YjMpz68Lj8ejY+QTeCCwLxOS9qPxtyN+6wAeBTwJ31CCO0cJDjXBGBN4LfIepSwykTUT1bgpuib0SONIgo8KRHOtRiCFcvUcgZeGrHPNBxLIyFPyRgTGz0xLbegJCdmzpElue5KlAIMDX19d5uVzm5+fnfDAYmMA17uEZdOx2Yvb/sHlu2S0xwymn5ufneTab5b1ej08S6EAXNrDd2dnhiUTim21MvMtwQ6yiIrWwsMDPzs64rsBmf3/fvM7n89TYlUnEllSkQqEQv7q64g+Vk5MTVXosORErU0Zer5f0FEIlw2N6MxwO82QyaXql2+2SxDqdjopYWUUsqEp45IldqtWq6UWVh/1+P7+8vCTJ4QMUJSRIEXuneoH96w8PDyeWAnhSJfCqwm6NIlaklFdXV0cGhRcQ2mlJQXK5nMq2YPEZbnteU1U2lUqN/D84OGD9fl+5fgnSrFarsUwmw0qlEru4uBjTicViTk3Cr27HSnxR+Doyz0ZE1CAWiUTusbu7y9rttlZv5fP5WDQavYfIMba4uEipfhF8XtqJoZXx/uH+sC/4vPg7OljZZQbsCmLtYzc3N6zRaJhotVrmfx0xDINtbm6athYUeXpHdbBNaqZUKpWxWXV7e2vex+xaWVnhc3NzjrPUXgexyCt0m67LBV7uJMITjqRE4o8tZeg8FPpFitgapYxiOC0poFgsji1jKNo6BZZckrAGUtJsNk1vqAihCBcKhTE7hNWhqw2qFnGy5UFOUYJVIJ1OjzSE+BCEilon0URavRmBqnbbQ00AXbm+vnZc9O1tj72OnQoc2+cwygRkb2+P1et17ZoEm3g87lRmjgWZ00kbXkNuse6/Bu2wlegIxfb2tuvWGroO4bO2c4bbzUh60mxDXm1sbJhhxkQYnhS4h2fUZoRAWnf7lv8N27f8P7Xhnekjgpk+VKGOoQbsiY+hhhtF3YO7twIJ+ULvUGv+GQ2fQEvWxI/THNx5/p/BaspPAQYAqStgiSQwCDoAAAAASUVORK5CYII=": -IMAGE_PATH+"/refresh.png",38,38);HoverIcons.prototype.tolerance=mxClient.IS_TOUCH?6:0; +Graph.prototype.bytesToString=function(a){for(var c=Array(a.length),d=0;d<a.length;d++)c[d]=String.fromCharCode(a[d]);return c.join("")};Graph.prototype.compressNode=function(a){return this.compress(this.zapGremlins(mxUtils.getXml(a)))};Graph.prototype.compress=function(a){if(null==a||0==a.length||"undefined"===typeof pako)return a;a=this.bytesToString(pako.deflateRaw(encodeURIComponent(a)));return window.btoa?btoa(a):Base64.encode(a,!0)}; +Graph.prototype.decompress=function(a){if(null==a||0==a.length||"undefined"===typeof pako)return a;a=window.atob?atob(a):Base64.decode(a,!0);return this.zapGremlins(decodeURIComponent(this.bytesToString(pako.inflateRaw(a))))};Graph.prototype.zapGremlins=function(a){for(var c=[],d=0;d<a.length;d++){var b=a.charCodeAt(d);(32<=b||9==b||10==b||13==b)&&c.push(a.charAt(d))}return c.join("")};HoverIcons=function(a){this.graph=a;this.init()};HoverIcons.prototype.arrowSpacing=2; +HoverIcons.prototype.updateDelay=500;HoverIcons.prototype.activationDelay=140;HoverIcons.prototype.currentState=null;HoverIcons.prototype.activeArrow=null;HoverIcons.prototype.inactiveOpacity=15;HoverIcons.prototype.cssCursor="copy";HoverIcons.prototype.checkCollisions=!0;HoverIcons.prototype.arrowFill="#29b6f2"; +HoverIcons.prototype.triangleUp=mxClient.IS_SVG?Graph.createSvgImage(18,28,'<path d="m 6 26 L 12 26 L 12 12 L 18 12 L 9 1 L 1 12 L 6 12 z" stroke="#fff" fill="'+HoverIcons.prototype.arrowFill+'"/>'):new mxImage(IMAGE_PATH+"/triangle-up.png",26,14);HoverIcons.prototype.triangleRight=mxClient.IS_SVG?Graph.createSvgImage(26,18,'<path d="m 1 6 L 14 6 L 14 1 L 26 9 L 14 18 L 14 12 L 1 12 z" stroke="#fff" fill="'+HoverIcons.prototype.arrowFill+'"/>'):new mxImage(IMAGE_PATH+"/triangle-right.png",14,26); +HoverIcons.prototype.triangleDown=mxClient.IS_SVG?Graph.createSvgImage(18,26,'<path d="m 6 1 L 6 14 L 1 14 L 9 26 L 18 14 L 12 14 L 12 1 z" stroke="#fff" fill="'+HoverIcons.prototype.arrowFill+'"/>'):new mxImage(IMAGE_PATH+"/triangle-down.png",26,14);HoverIcons.prototype.triangleLeft=mxClient.IS_SVG?Graph.createSvgImage(28,18,'<path d="m 1 9 L 12 1 L 12 6 L 26 6 L 26 12 L 12 12 L 12 18 z" stroke="#fff" fill="'+HoverIcons.prototype.arrowFill+'"/>'):new mxImage(IMAGE_PATH+"/triangle-left.png",14,26); +HoverIcons.prototype.roundDrop=mxClient.IS_SVG?Graph.createSvgImage(26,26,'<circle cx="13" cy="13" r="12" stroke="#fff" fill="'+HoverIcons.prototype.arrowFill+'"/>'):new mxImage(IMAGE_PATH+"/round-drop.png",26,26); +HoverIcons.prototype.refreshTarget=new mxImage(mxClient.IS_SVG?"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACYAAAAmCAYAAACoPemuAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBNYWNpbnRvc2giIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NDQxNERDRTU1QjY1MTFFNDkzNTRFQTVEMTdGMTdBQjciIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NDQxNERDRTY1QjY1MTFFNDkzNTRFQTVEMTdGMTdBQjciPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo0NDE0RENFMzVCNjUxMUU0OTM1NEVBNUQxN0YxN0FCNyIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo0NDE0RENFNDVCNjUxMUU0OTM1NEVBNUQxN0YxN0FCNyIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PsvuX50AAANaSURBVHja7FjRZ1tRGD9ZJ1NCyIQSwrivI4Q8hCpjlFDyFEoYfSp9Ko1QWnmo0If+BSXkIfo0QirTMUpeGo2EPfWllFYjZMLKLDJn53d3biU337m5J223bPbxk5t7v+/c3/2+73znO8fDOWezKM/YjMpz68Lj8ejY+QTeCCwLxOS9qPxtyN+6wAeBTwJ31CCO0cJDjXBGBN4LfIepSwykTUT1bgpuib0SONIgo8KRHOtRiCFcvUcgZeGrHPNBxLIyFPyRgTGz0xLbegJCdmzpElue5KlAIMDX19d5uVzm5+fnfDAYmMA17uEZdOx2Yvb/sHlu2S0xwymn5ufneTab5b1ej08S6EAXNrDd2dnhiUTim21MvMtwQ6yiIrWwsMDPzs64rsBmf3/fvM7n89TYlUnEllSkQqEQv7q64g+Vk5MTVXosORErU0Zer5f0FEIlw2N6MxwO82QyaXql2+2SxDqdjopYWUUsqEp45IldqtWq6UWVh/1+P7+8vCTJ4QMUJSRIEXuneoH96w8PDyeWAnhSJfCqwm6NIlaklFdXV0cGhRcQ2mlJQXK5nMq2YPEZbnteU1U2lUqN/D84OGD9fl+5fgnSrFarsUwmw0qlEru4uBjTicViTk3Cr27HSnxR+Doyz0ZE1CAWiUTusbu7y9rttlZv5fP5WDQavYfIMba4uEipfhF8XtqJoZXx/uH+sC/4vPg7OljZZQbsCmLtYzc3N6zRaJhotVrmfx0xDINtbm6athYUeXpHdbBNaqZUKpWxWXV7e2vex+xaWVnhc3NzjrPUXgexyCt0m67LBV7uJMITjqRE4o8tZeg8FPpFitgapYxiOC0poFgsji1jKNo6BZZckrAGUtJsNk1vqAihCBcKhTE7hNWhqw2qFnGy5UFOUYJVIJ1OjzSE+BCEilon0URavRmBqnbbQ00AXbm+vnZc9O1tj72OnQoc2+cwygRkb2+P1et17ZoEm3g87lRmjgWZ00kbXkNuse6/Bu2wlegIxfb2tuvWGroO4bO2c4bbzUh60mxDXm1sbJhhxkQYnhS4h2fUZoRAWnf7lv8N27f8P7Xhnekjgpk+VKGOoQbsiY+hhhtF3YO7twIJ+ULvUGv+GQ2fQEvWxI/THNx5/p/BaspPAQYAqStgiSQwCDoAAAAASUVORK5CYII=":IMAGE_PATH+ +"/refresh.png",38,38);HoverIcons.prototype.tolerance=mxClient.IS_TOUCH?6:0; HoverIcons.prototype.init=function(){this.arrowUp=this.createArrow(this.triangleUp,mxResources.get("plusTooltip"));this.arrowRight=this.createArrow(this.triangleRight,mxResources.get("plusTooltip"));this.arrowDown=this.createArrow(this.triangleDown,mxResources.get("plusTooltip"));this.arrowLeft=this.createArrow(this.triangleLeft,mxResources.get("plusTooltip"));this.elts=[this.arrowUp,this.arrowRight,this.arrowDown,this.arrowLeft];this.repaintHandler=mxUtils.bind(this,function(){this.repaint()});this.graph.selectionModel.addListener(mxEvent.CHANGE, this.repaintHandler);this.graph.model.addListener(mxEvent.CHANGE,this.repaintHandler);this.graph.view.addListener(mxEvent.SCALE_AND_TRANSLATE,this.repaintHandler);this.graph.view.addListener(mxEvent.TRANSLATE,this.repaintHandler);this.graph.view.addListener(mxEvent.SCALE,this.repaintHandler);this.graph.view.addListener(mxEvent.DOWN,this.repaintHandler);this.graph.view.addListener(mxEvent.UP,this.repaintHandler);this.graph.addListener(mxEvent.ROOT,this.repaintHandler);this.graph.addListener(mxEvent.ESCAPE, mxUtils.bind(this,function(){this.mouseDownPoint=null}));mxEvent.addListener(this.graph.container,"mouseleave",mxUtils.bind(this,function(a){null!=a.relatedTarget&&mxEvent.getSource(a)==this.graph.container&&this.setDisplay("none")}));this.graph.addListener(mxEvent.START_EDITING,mxUtils.bind(this,function(a){this.reset()}));var a=this.graph.click;this.graph.click=mxUtils.bind(this,function(c){a.apply(this.graph,arguments);null==this.currentState||this.graph.isCellSelected(this.currentState.cell)|| @@ -3169,9 +3171,8 @@ c=mxUtils.button(e||mxResources.get("cancel"),function(){a.hideDialog();null!=f& "right";var d=document.createElement("textarea");d.setAttribute("wrap","off");d.setAttribute("spellcheck","false");d.setAttribute("autocorrect","off");d.setAttribute("autocomplete","off");d.setAttribute("autocapitalize","off");d.style.overflow="auto";d.style.resize="none";d.style.width="600px";d.style.height="360px";d.style.marginBottom="16px";d.value=mxUtils.getPrettyXml(a.editor.getGraphXml());c.appendChild(d);this.init=function(){d.focus()};Graph.fileSupport&&(d.addEventListener("dragover",function(a){a.stopPropagation(); a.preventDefault()},!1),d.addEventListener("drop",function(b){b.stopPropagation();b.preventDefault();if(0<b.dataTransfer.files.length){b=b.dataTransfer.files[0];var c=new FileReader;c.onload=function(a){d.value=a.target.result};c.readAsText(b)}else d.value=a.extractGraphModelFromEvent(b)},!1));var b=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});b.className="geBtn";a.editor.cancelFirst&&c.appendChild(b);var f=document.createElement("select");f.style.width="180px";f.className= "geBtn";if(a.editor.graph.isEnabled()){var e=document.createElement("option");e.setAttribute("value","replace");mxUtils.write(e,mxResources.get("replaceExistingDrawing"));f.appendChild(e)}e=document.createElement("option");e.setAttribute("value","new");mxUtils.write(e,mxResources.get("openInNewWindow"));EditDiagramDialog.showNewWindowOption&&f.appendChild(e);a.editor.graph.isEnabled()&&(e=document.createElement("option"),e.setAttribute("value","import"),mxUtils.write(e,mxResources.get("addToExistingDrawing")), -f.appendChild(e));c.appendChild(f);e=mxUtils.button(mxResources.get("ok"),function(){var b=a.editor.graph.zapGremlins(mxUtils.trim(d.value)),c=null;if("new"==f.value)window.openFile=new OpenFile(function(){a.hideDialog();window.openFile=null}),window.openFile.setData(b,null),a.editor.graph.openLink(a.getUrl());else if("replace"==f.value){a.editor.graph.model.beginUpdate();try{a.editor.setGraphXml(mxUtils.parseXml(b).documentElement),a.hideDialog()}catch(p){c=p}finally{a.editor.graph.model.endUpdate()}}else if("import"== -f.value){a.editor.graph.model.beginUpdate();try{var e=mxUtils.parseXml(b),l=new mxGraphModel;(new mxCodec(e)).decode(e.documentElement,l);var m=l.getChildren(l.getChildAt(l.getRoot(),0));a.editor.graph.setSelectionCells(a.editor.graph.importCells(m));a.hideDialog()}catch(p){c=p}finally{a.editor.graph.model.endUpdate()}}null!=c&&mxUtils.alert(c.message)});e.className="geBtn gePrimaryBtn";c.appendChild(e);a.editor.cancelFirst||c.appendChild(b);this.container=c}; -EditDiagramDialog.showNewWindowOption=!0; +f.appendChild(e));c.appendChild(f);e=mxUtils.button(mxResources.get("ok"),function(){var b=a.editor.graph.zapGremlins(mxUtils.trim(d.value)),c=null;if("new"==f.value)a.hideDialog(),a.editor.editAsNew(b);else if("replace"==f.value){a.editor.graph.model.beginUpdate();try{a.editor.setGraphXml(mxUtils.parseXml(b).documentElement),a.hideDialog()}catch(p){c=p}finally{a.editor.graph.model.endUpdate()}}else if("import"==f.value){a.editor.graph.model.beginUpdate();try{var e=mxUtils.parseXml(b),l=new mxGraphModel; +(new mxCodec(e)).decode(e.documentElement,l);var m=l.getChildren(l.getChildAt(l.getRoot(),0));a.editor.graph.setSelectionCells(a.editor.graph.importCells(m));a.hideDialog()}catch(p){c=p}finally{a.editor.graph.model.endUpdate()}}null!=c&&mxUtils.alert(c.message)});e.className="geBtn gePrimaryBtn";c.appendChild(e);a.editor.cancelFirst||c.appendChild(b);this.container=c};EditDiagramDialog.showNewWindowOption=!0; var ExportDialog=function(a){function c(){var a=m.value,b=a.lastIndexOf(".");m.value=0<b?a.substring(0,b+1)+p.value:a+"."+p.value;"xml"===p.value?(n.setAttribute("disabled","true"),q.setAttribute("disabled","true"),r.setAttribute("disabled","true"),t.setAttribute("disabled","true")):(n.removeAttribute("disabled"),q.removeAttribute("disabled"),r.removeAttribute("disabled"),t.removeAttribute("disabled"));"png"===p.value||"svg"===p.value?u.removeAttribute("disabled"):u.setAttribute("disabled","disabled")} function d(){q.style.backgroundColor=q.value*r.value>MAX_AREA||0>=q.value?"red":"";r.style.backgroundColor=q.value*r.value>MAX_AREA||0>=r.value?"red":""}var b=a.editor.graph,f=b.getGraphBounds(),e=b.view.scale,h=Math.ceil(f.width/e),g=Math.ceil(f.height/e),k,e=document.createElement("table"),l=document.createElement("tbody");e.setAttribute("cellpadding",mxClient.IS_SF?"0":"2");f=document.createElement("tr");k=document.createElement("td");k.style.fontSize="10pt";k.style.width="100px";mxUtils.write(k, mxResources.get("filename")+":");f.appendChild(k);var m=document.createElement("input");m.setAttribute("value",a.editor.getOrCreateFilename());m.style.width="180px";k=document.createElement("td");k.appendChild(m);f.appendChild(k);l.appendChild(f);f=document.createElement("tr");k=document.createElement("td");k.style.fontSize="10pt";mxUtils.write(k,mxResources.get("format")+":");f.appendChild(k);var p=document.createElement("select");p.style.width="180px";k=document.createElement("option");k.setAttribute("value", @@ -7163,17 +7164,18 @@ DrawioFile=function(a,b){mxEventSource.call(this);this.ui=a;this.data=b||""};mxU DrawioFile.prototype.contentChanged=function(){this.fireEvent(new mxEventObject("contentChanged"))};DrawioFile.prototype.save=function(a,b,c,d){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,c){};DrawioFile.prototype.saveFile=function(a,b,c,d){};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,c){};DrawioFile.prototype.isMovable=function(){return!1}; DrawioFile.prototype.move=function(a,b,c){};DrawioFile.prototype.getHash=function(){return""};DrawioFile.prototype.getId=function(){return""};DrawioFile.prototype.isEditable=function(){return!this.ui.editor.isChromelessView()||this.ui.editor.editable};DrawioFile.prototype.getUi=function(){return this.ui};DrawioFile.prototype.getTitle=function(){return""};DrawioFile.prototype.setData=function(a){this.data=a};DrawioFile.prototype.getData=function(){return this.data}; -DrawioFile.prototype.open=function(){this.ui.setFileData(this.getData());this.changeListener=mxUtils.bind(this,function(a,b){var c=null!=b?b.getProperty("edit"):null;!this.changeListenerEnabled||!this.isEditable()||null!=c&&c.ignoreEdit||(this.setModified(!0),this.isAutosave()?(this.ui.editor.setStatus(mxUtils.htmlEntities(mxResources.get("saving"))+"..."),this.autosave(this.autosaveDelay,this.maxAutosaveDelay,mxUtils.bind(this,function(a){null!=this.autosaveThread||this.ui.getCurrentFile()!=this|| -this.isModified()||this.addAllSavedStatus()}),mxUtils.bind(this,function(a){this.ui.getCurrentFile()==this&&this.addUnsavedStatus(a)}))):this.addUnsavedStatus())});this.ui.editor.graph.model.addListener(mxEvent.CHANGE,this.changeListener);this.ui.editor.graph.addListener("gridSizeChanged",this.changeListener);this.ui.editor.graph.addListener("shadowVisibleChanged",this.changeListener);this.ui.addListener("pageFormatChanged",this.changeListener);this.ui.addListener("pageScaleChanged",this.changeListener); -this.ui.addListener("backgroundColorChanged",this.changeListener);this.ui.addListener("backgroundImageChanged",this.changeListener);this.ui.addListener("foldingEnabledChanged",this.changeListener);this.ui.addListener("mathEnabledChanged",this.changeListener);this.ui.addListener("gridEnabledChanged",this.changeListener);this.ui.addListener("guidesEnabledChanged",this.changeListener);this.ui.addListener("pageViewChanged",this.changeListener)}; -DrawioFile.prototype.addAllSavedStatus=function(){var a=this.ui.getCurrentFile();null==a||a.constructor!=DriveFile&&a.constructor!=DropboxFile?this.ui.editor.setStatus(mxUtils.htmlEntities(mxResources.get("allChangesSaved"))):(this.ui.editor.setStatus('<span title="'+mxUtils.htmlEntities(mxResources.get("revisionHistory"))+'" style="text-decoration:underline;cursor:pointer;">'+mxUtils.htmlEntities(mxResources.get("allChangesSaved"))+"</span>"),null!=this.ui.statusContainer&&(a=this.ui.statusContainer.getElementsByTagName("span"), -0<a.length&&mxEvent.addListener(a[0],"click",mxUtils.bind(this,function(){this.ui.actions.get("revisionHistory").funct()}))))}; -DrawioFile.prototype.addUnsavedStatus=function(a){a instanceof Error&&null!=a.message?this.ui.editor.setStatus('<div class="geStatusAlert" style="overflow:hidden;">'+mxUtils.htmlEntities(mxResources.get("unsavedChanges"))+" ("+mxUtils.htmlEntities(a.message)+")</div>"):(this.ui.editor.setStatus('<div class="geStatusAlert" style="cursor:pointer;overflow:hidden;">'+mxUtils.htmlEntities(mxResources.get("unsavedChangesClickHereToSave"))+"</div>"),null!=this.ui.statusContainer&&(a=this.ui.statusContainer.getElementsByTagName("div"), -0<a.length&&mxEvent.addListener(a[0],"click",mxUtils.bind(this,function(){this.ui.actions.get(null==this.ui.mode?"saveAs":"save").funct()}))))}; -DrawioFile.prototype.autosave=function(a,b,c,d){null==this.lastAutosave&&(this.lastAutosave=(new Date).getTime());a=(new Date).getTime()-this.lastAutosave<b?a:0;this.clearAutosave();this.autosaveThread=window.setTimeout(mxUtils.bind(this,function(){this.lastAutosave=this.autosaveThread=null;if(this.isModified()&&this.isAutosaveNow()){var a=this.isAutosaveRevision();a&&(this.lastAutosaveRevision=(new Date).getTime());this.save(a,mxUtils.bind(this,function(a){this.autosaveCompleted();null!=c&&c(a)}), -mxUtils.bind(this,function(a){null!=d&&d(a)}))}else null!=c&&c(null)}),a)};DrawioFile.prototype.isAutosaveNow=function(){return!0};DrawioFile.prototype.autosaveCompleted=function(){};DrawioFile.prototype.clearAutosave=function(){null!=this.autosaveThread&&(window.clearTimeout(this.autosaveThread),this.autosaveThread=null)};DrawioFile.prototype.isAutosaveRevision=function(){var a=(new Date).getTime();return null==this.lastAutosaveRevision||a-this.lastAutosaveRevision>this.maxAutosaveRevisionDelay}; -DrawioFile.prototype.close=function(a){this.isAutosave()&&this.isModified()&&this.save(this.isAutosaveRevision(),null,null,a);this.destroy()};DrawioFile.prototype.hasSameExtension=function(a,b){if(null!=a&&null!=b){var c=a.lastIndexOf("."),d=0<c?a.substring(c):"",c=b.lastIndexOf(".");return d===(0<c?b.substring(c):"")}return a==b}; -DrawioFile.prototype.destroy=function(){this.clearAutosave();null!=this.changeListener&&(this.ui.editor.graph.model.removeListener(this.changeListener),this.ui.editor.graph.removeListener(this.changeListener),this.ui.removeListener(this.changeListener),this.changeListener=null)};LocalFile=function(a,b,c,d){DrawioFile.call(this,a,b);this.title=c;this.mode=d?null:App.MODE_DEVICE};mxUtils.extend(LocalFile,DrawioFile);LocalFile.prototype.isAutosave=function(){return!1};LocalFile.prototype.getMode=function(){return this.mode};LocalFile.prototype.getTitle=function(){return this.title};LocalFile.prototype.isRenamable=function(){return!0};LocalFile.prototype.save=function(a,b,c){this.saveAs(this.title,b,c)};LocalFile.prototype.saveAs=function(a,b,c){this.saveFile(a,!1,b,c)}; +DrawioFile.prototype.open=function(){var a=this.getData();null!=a&&this.ui.setFileData(a);this.changeListener=mxUtils.bind(this,function(a,c){var b=null!=c?c.getProperty("edit"):null;!this.changeListenerEnabled||!this.isEditable()||null!=b&&b.ignoreEdit||this.fileChanged()});this.ui.editor.graph.model.addListener(mxEvent.CHANGE,this.changeListener);this.ui.editor.graph.addListener("gridSizeChanged",this.changeListener);this.ui.editor.graph.addListener("shadowVisibleChanged",this.changeListener);this.ui.addListener("pageFormatChanged", +this.changeListener);this.ui.addListener("pageScaleChanged",this.changeListener);this.ui.addListener("backgroundColorChanged",this.changeListener);this.ui.addListener("backgroundImageChanged",this.changeListener);this.ui.addListener("foldingEnabledChanged",this.changeListener);this.ui.addListener("mathEnabledChanged",this.changeListener);this.ui.addListener("gridEnabledChanged",this.changeListener);this.ui.addListener("guidesEnabledChanged",this.changeListener);this.ui.addListener("pageViewChanged", +this.changeListener)}; +DrawioFile.prototype.addAllSavedStatus=function(){var a=this.ui.getCurrentFile();null==a||a.constructor!=DriveFile&&a.constructor!=DropboxFile?this.ui.editor.setStatus(mxUtils.htmlEntities(mxResources.get("allChangesSaved"))):(this.ui.editor.setStatus('<div title="'+mxUtils.htmlEntities(mxResources.get("revisionHistory"))+'" style="text-decoration:underline;cursor:pointer;">'+mxUtils.htmlEntities(mxResources.get("allChangesSaved"))+"</div>"),a=null!=this.ui.statusContainer?this.ui.statusContainer.getElementsByTagName("div"):null, +0<a.length&&mxEvent.addListener(a[0],"click",mxUtils.bind(this,function(){this.ui.actions.get("revisionHistory").funct()})))}; +DrawioFile.prototype.fileChanged=function(){this.setModified(!0);this.isAutosave()?(this.ui.editor.setStatus(mxUtils.htmlEntities(mxResources.get("saving"))+"..."),this.autosave(this.autosaveDelay,this.maxAutosaveDelay,mxUtils.bind(this,function(a){null!=this.autosaveThread||this.ui.getCurrentFile()!=this||this.isModified()||this.addAllSavedStatus()}),mxUtils.bind(this,function(a){this.ui.getCurrentFile()==this&&this.addUnsavedStatus(a)}))):this.addUnsavedStatus()}; +DrawioFile.prototype.addUnsavedStatus=function(a){a instanceof Error&&null!=a.message?this.ui.editor.setStatus('<div class="geStatusAlert" style="overflow:hidden;">'+mxUtils.htmlEntities(mxResources.get("unsavedChanges"))+" ("+mxUtils.htmlEntities(a.message)+")</div>"):(this.ui.editor.setStatus('<div class="geStatusAlert" style="cursor:pointer;overflow:hidden;">'+mxUtils.htmlEntities(mxResources.get("unsavedChangesClickHereToSave"))+"</div>"),a=null!=this.ui.statusContainer?this.ui.statusContainer.getElementsByTagName("div"): +null,null!=a&&0<a.length?mxEvent.addListener(a[0],"click",mxUtils.bind(this,function(){this.ui.actions.get(null==this.ui.mode?"saveAs":"save").funct()})):this.ui.editor.setStatus('<div class="geStatusAlert" style="overflow:hidden;">'+mxUtils.htmlEntities(mxResources.get("unsavedChanges"))+"</div>"))}; +DrawioFile.prototype.autosave=function(a,b,c,d){null==this.lastAutosave&&(this.lastAutosave=(new Date).getTime());a=(new Date).getTime()-this.lastAutosave<b?a:0;this.clearAutosave();var e=window.setTimeout(mxUtils.bind(this,function(){this.lastAutosave=null;this.autosaveThead==e&&(this.autosaveThread=null);if(this.isModified()&&this.isAutosaveNow()){var a=this.isAutosaveRevision();a&&(this.lastAutosaveRevision=(new Date).getTime());this.save(a,mxUtils.bind(this,function(a){this.autosaveCompleted(); +null!=c&&c(a)}),mxUtils.bind(this,function(a){null!=d&&d(a)}))}else this.isModified()||this.ui.editor.setStatus(""),null!=c&&c(null)}),a);this.autosaveThread=e};DrawioFile.prototype.isAutosaveNow=function(){return!0};DrawioFile.prototype.autosaveCompleted=function(){};DrawioFile.prototype.clearAutosave=function(){null!=this.autosaveThread&&(window.clearTimeout(this.autosaveThread),this.autosaveThread=null)}; +DrawioFile.prototype.isAutosaveRevision=function(){var a=(new Date).getTime();return null==this.lastAutosaveRevision||a-this.lastAutosaveRevision>this.maxAutosaveRevisionDelay};DrawioFile.prototype.close=function(a){this.isAutosave()&&this.isModified()&&this.save(this.isAutosaveRevision(),null,null,a);this.destroy()}; +DrawioFile.prototype.hasSameExtension=function(a,b){if(null!=a&&null!=b){var c=a.lastIndexOf("."),d=0<c?a.substring(c):"",c=b.lastIndexOf(".");return d===(0<c?b.substring(c):"")}return a==b};DrawioFile.prototype.destroy=function(){this.clearAutosave();null!=this.changeListener&&(this.ui.editor.graph.model.removeListener(this.changeListener),this.ui.editor.graph.removeListener(this.changeListener),this.ui.removeListener(this.changeListener),this.changeListener=null)};LocalFile=function(a,b,c,d){DrawioFile.call(this,a,b);this.title=c;this.mode=d?null:App.MODE_DEVICE};mxUtils.extend(LocalFile,DrawioFile);LocalFile.prototype.isAutosave=function(){return!1};LocalFile.prototype.getMode=function(){return this.mode};LocalFile.prototype.getTitle=function(){return this.title};LocalFile.prototype.isRenamable=function(){return!0};LocalFile.prototype.save=function(a,b,c){this.saveAs(this.title,b,c)};LocalFile.prototype.saveAs=function(a,b,c){this.saveFile(a,!1,b,c)}; LocalFile.prototype.saveFile=function(a,b,c,d){this.title=a;this.updateFileData();b=this.getData();var e=this.ui.useCanvasForExport&&/(\.png)$/i.test(this.getTitle()),g=mxUtils.bind(this,function(b){if(this.ui.isOfflineApp()||this.ui.isLocalFileSave())this.ui.doSaveLocalFile(b,a,e?"image/png":"text/xml",e);else if(b.length<MAX_REQUEST_SIZE){var d=a.lastIndexOf("."),d=0<d?a.substring(d+1):"xml";(new mxXmlRequest(SAVE_URL,"format="+d+"&xml="+encodeURIComponent(b)+"&filename="+encodeURIComponent(a)+ (e?"&binary=1":""))).simulate(document,"_blank")}else this.ui.handleError({message:mxResources.get("drawingTooLarge")},mxResources.get("error"),mxUtils.bind(this,function(){mxUtils.popup(b)}));this.setModified(!1);this.contentChanged();null!=c&&c()});e?this.ui.getEmbeddedPng(mxUtils.bind(this,function(a){g(a)}),d,this.ui.getCurrentFile()!=this?this.getData():null):g(b)};LocalFile.prototype.rename=function(a,b,c){this.title=a;this.descriptorChanged();null!=b&&b()}; LocalFile.prototype.open=function(){this.ui.setFileData(this.getData());this.changeListener=mxUtils.bind(this,function(a,b){this.setModified(!0);this.addUnsavedStatus()});this.ui.editor.graph.model.addListener(mxEvent.CHANGE,this.changeListener)};LocalLibrary=function(a,b,c){LocalFile.call(this,a,b,c)};mxUtils.extend(LocalLibrary,LocalFile);LocalLibrary.prototype.getHash=function(){return"F"+this.getTitle()};LocalLibrary.prototype.isAutosave=function(){return!1};LocalLibrary.prototype.saveAs=function(a,b,c){this.saveFile(a,!1,b,c)};LocalLibrary.prototype.updateFileData=function(){};LocalLibrary.prototype.open=function(){};StorageFile=function(a,b,c){DrawioFile.call(this,a,b);this.title=c};mxUtils.extend(StorageFile,DrawioFile);StorageFile.prototype.autosaveDelay=2E3;StorageFile.prototype.maxAutosaveDelay=2E4;StorageFile.prototype.getMode=function(){return App.MODE_BROWSER};StorageFile.prototype.isAutosaveOptional=function(){return!0};StorageFile.prototype.getHash=function(){return"L"+encodeURIComponent(this.getTitle())};StorageFile.prototype.getTitle=function(){return this.title}; @@ -7181,282 +7183,282 @@ StorageFile.prototype.isRenamable=function(){return!0};StorageFile.prototype.sav StorageFile.prototype.saveFile=function(a,b,c,d){if(this.isEditable()){var e=mxUtils.bind(this,function(){this.isRenamable()&&(this.title=a);try{this.ui.setLocalData(this.title,this.getData(),mxUtils.bind(this,function(){this.setModified(!1);this.contentChanged();null!=c&&c()}))}catch(g){null!=d&&d(g)}});this.isRenamable()&&"."==a.charAt(0)&&null!=d?d({message:mxResources.get("invalidName")}):this.ui.getLocalData(a,mxUtils.bind(this,function(b){this.isRenamable()&&this.getTitle()!=a&&null!=b?this.ui.confirm(mxResources.get("replaceIt", [a]),e,d):e()}))}else null!=c&&c()};StorageFile.prototype.rename=function(a,b,c){var d=this.getTitle();d!=a?this.ui.getLocalData(a,mxUtils.bind(this,function(e){var g=mxUtils.bind(this,function(){this.title=a;this.hasSameExtension(d,a)||this.setData(this.ui.getFileData());this.saveFile(a,!1,mxUtils.bind(this,function(){this.ui.removeLocalData(d,b)}),c)});null!=e?this.ui.confirm(mxResources.get("replaceIt",[a]),g,c):g()})):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,c){StorageFile.call(this,a,b,c)};mxUtils.extend(StorageLibrary,StorageFile);StorageLibrary.prototype.isAutosave=function(){return!0};StorageLibrary.prototype.saveAs=function(a,b,c){this.saveFile(a,!1,b,c)};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,c){return".scratchpad"!=this.title};StorageLibrary.prototype.open=function(){};UrlLibrary=function(a,b,c){StorageFile.call(this,a,b,c);a=c;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,c){return!1};UrlLibrary.prototype.saveAs=function(a,b,c){};UrlLibrary.prototype.open=function(){};var StorageDialog=function(a,b,c){function d(d,e,g,t,w,u){function q(){mxEvent.addListener(v,"click",null!=u?u:function(){g!=App.MODE_GOOGLE||a.isDriveDomain()?g==App.MODE_GOOGLE&&a.spinner.spin(document.body,mxResources.get("authorizing"))?a.drive.checkToken(mxUtils.bind(this,function(){a.spinner.stop();a.setMode(g,f.checked);b()})):(a.setMode(g,f.checked),b()):window.location.hostname=DriveClient.prototype.newAppHostname})}var v=document.createElement("a");v.style.overflow="hidden";v.style.display= -mxClient.IS_QUIRKS?"inline":"inline-block";v.className="geBaseButton";v.style.boxSizing="border-box";v.style.fontSize="11px";v.style.position="relative";v.style.margin="4px";v.style.padding="8px 10px 12px 10px";v.style.width="88px";v.style.height="100px";v.style.whiteSpace="nowrap";v.setAttribute("title",e);mxClient.IS_QUIRKS&&(v.style.cssFloat="left",v.style.zoom="1");var x=document.createElement("div");x.style.textOverflow="ellipsis";x.style.overflow="hidden";if(null!=d){var p=document.createElement("img"); -p.setAttribute("src",d);p.setAttribute("border","0");p.setAttribute("align","absmiddle");p.style.width="60px";p.style.height="60px";p.style.paddingBottom="6px";v.appendChild(p)}else x.style.paddingTop="5px",x.style.whiteSpace="normal",mxClient.IS_IOS?(v.style.padding="0px 10px 20px 10px",v.style.top="6px"):mxClient.IS_FF&&(x.style.paddingTop="0px",x.style.marginTop="-2px");v.appendChild(x);mxUtils.write(x,e);if(null!=w)for(d=0;d<w.length;d++)mxUtils.br(x),mxUtils.write(x,w[d]);if(null!=t&&null==a[t]){p.style.visibility= -"hidden";mxUtils.setOpacity(x,10);var l=new Spinner({lines:12,length:12,width:5,radius:10,rotate:0,color:"dark"==uiTheme?"#c0c0c0":"#000",speed:1.5,trail:60,shadow:!1,hwaccel:!1,top:"40%",zIndex:2E9});l.spin(v);var m=window.setTimeout(function(){null==a[t]&&(l.stop(),v.style.display="none")},3E4);a.addListener("clientLoaded",mxUtils.bind(this,function(){null!=a[t]&&(window.clearTimeout(m),mxUtils.setOpacity(x,100),p.style.visibility="",l.stop(),q(),"drive"==t&&null!=k.parentNode&&k.parentNode.removeChild(k))}))}else q(); -n.appendChild(v);++h>=c&&(mxUtils.br(n),h=0)}c=null!=c?c:2;var e=document.createElement("div");e.style.textAlign="center";e.style.whiteSpace="nowrap";e.style.paddingTop="0px";e.style.paddingBottom="20px";var g=a.addLanguageMenu(e,!0);null!=g&&(g.style.bottom=parseInt("28px")-2+"px");if(!a.isOffline()&&1<a.getServiceCount()){g=document.createElement("a");g.setAttribute("href","https://about.draw.io/support/");g.setAttribute("title",mxResources.get("help"));g.setAttribute("target","_blank");g.style.position= -"absolute";g.style.textDecoration="none";g.style.cursor="pointer";g.style.fontSize="12px";g.style.bottom="28px";g.style.left="26px";g.style.color="gray";var l=document.createElement("img");l.setAttribute("border","0");l.setAttribute("valign","bottom");l.setAttribute("src",Editor.helpImage);l.style.marginRight="2px";g.appendChild(l);mxUtils.write(g,mxResources.get("help"));e.appendChild(g)}var m=document.createElement("div");m.style.position="absolute";m.style.cursor="pointer";m.style.fontSize="12px"; -m.style.bottom="28px";m.style.color="gray";mxUtils.write(m,mxResources.get("decideLater"));a.isOfflineApp()?m.style.right="20px":(mxUtils.setPrefixedStyle(m.style,"transform","translate(-50%,0)"),m.style.left="50%");this.init=function(){if(mxClient.IS_QUIRKS||8==document.documentMode)m.style.marginLeft=-Math.round(m.clientWidth/2)+"px"};e.appendChild(m);mxEvent.addListener(m,"click",function(){a.hideDialog();var b=Editor.useLocalStorage;a.createFile(a.defaultFilename,null,null,null,null,null,null, -!0);Editor.useLocalStorage=b});var n=document.createElement("div");mxClient.IS_QUIRKS&&(n.style.whiteSpace="nowrap",n.style.cssFloat="left");n.style.border="1px solid #d3d3d3";n.style.borderWidth="1px 0px 1px 0px";n.style.padding="12px 0px 12px 0px";var f=document.createElement("input");f.setAttribute("type","checkbox");f.setAttribute("checked","checked");f.defaultChecked=!0;var h=0,k=document.createElement("p"),g=document.createElement("p");g.style.fontSize="16pt";g.style.padding="0px";g.style.paddingTop= +StorageLibrary.prototype.isRenamable=function(a,b,c){return".scratchpad"!=this.title};StorageLibrary.prototype.open=function(){};UrlLibrary=function(a,b,c){StorageFile.call(this,a,b,c);a=c;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,c){return!1};UrlLibrary.prototype.saveAs=function(a,b,c){};UrlLibrary.prototype.open=function(){};var StorageDialog=function(a,b,c){function d(d,e,g,t,w,u){function v(){mxEvent.addListener(p,"click",null!=u?u:function(){g!=App.MODE_GOOGLE||a.isDriveDomain()?g==App.MODE_GOOGLE&&a.spinner.spin(document.body,mxResources.get("authorizing"))?a.drive.checkToken(mxUtils.bind(this,function(){a.spinner.stop();a.setMode(g,f.checked);b()})):(a.setMode(g,f.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 x=document.createElement("div");x.style.textOverflow="ellipsis";x.style.overflow="hidden";if(null!=d){var q=document.createElement("img"); +q.setAttribute("src",d);q.setAttribute("border","0");q.setAttribute("align","absmiddle");q.style.width="60px";q.style.height="60px";q.style.paddingBottom="6px";p.appendChild(q)}else x.style.paddingTop="5px",x.style.whiteSpace="normal",mxClient.IS_IOS?(p.style.padding="0px 10px 20px 10px",p.style.top="6px"):mxClient.IS_FF&&(x.style.paddingTop="0px",x.style.marginTop="-2px");p.appendChild(x);mxUtils.write(x,e);if(null!=w)for(d=0;d<w.length;d++)mxUtils.br(x),mxUtils.write(x,w[d]);if(null!=t&&null==a[t]){q.style.visibility= +"hidden";mxUtils.setOpacity(x,10);var k=new Spinner({lines:12,length:12,width:5,radius:10,rotate:0,color:"dark"==uiTheme?"#c0c0c0":"#000",speed:1.5,trail:60,shadow:!1,hwaccel:!1,top:"40%",zIndex:2E9});k.spin(p);var l=window.setTimeout(function(){null==a[t]&&(k.stop(),p.style.display="none")},3E4);a.addListener("clientLoaded",mxUtils.bind(this,function(){null!=a[t]&&(window.clearTimeout(l),mxUtils.setOpacity(x,100),q.style.visibility="",k.stop(),v(),"drive"==t&&null!=n.parentNode&&n.parentNode.removeChild(n))}))}else v(); +m.appendChild(p);++h>=c&&(mxUtils.br(m),h=0)}c=null!=c?c:2;var e=document.createElement("div");e.style.textAlign="center";e.style.whiteSpace="nowrap";e.style.paddingTop="0px";e.style.paddingBottom="20px";var g=a.addLanguageMenu(e,!0);null!=g&&(g.style.bottom=parseInt("28px")-2+"px");if(!a.isOffline()&&1<a.getServiceCount()){g=document.createElement("a");g.setAttribute("href","https://about.draw.io/support/");g.setAttribute("title",mxResources.get("help"));g.setAttribute("target","_blank");g.style.position= +"absolute";g.style.textDecoration="none";g.style.cursor="pointer";g.style.fontSize="12px";g.style.bottom="28px";g.style.left="26px";g.style.color="gray";var k=document.createElement("img");k.setAttribute("border","0");k.setAttribute("valign","bottom");k.setAttribute("src",Editor.helpImage);k.style.marginRight="2px";g.appendChild(k);mxUtils.write(g,mxResources.get("help"));e.appendChild(g)}var l=document.createElement("div");l.style.position="absolute";l.style.cursor="pointer";l.style.fontSize="12px"; +l.style.bottom="28px";l.style.color="gray";mxUtils.write(l,mxResources.get("decideLater"));a.isOfflineApp()?l.style.right="20px":(mxUtils.setPrefixedStyle(l.style,"transform","translate(-50%,0)"),l.style.left="50%");this.init=function(){if(mxClient.IS_QUIRKS||8==document.documentMode)l.style.marginLeft=-Math.round(l.clientWidth/2)+"px"};e.appendChild(l);mxEvent.addListener(l,"click",function(){a.hideDialog();var b=Editor.useLocalStorage;a.createFile(a.defaultFilename,null,null,null,null,null,null, +!0);Editor.useLocalStorage=b});var m=document.createElement("div");mxClient.IS_QUIRKS&&(m.style.whiteSpace="nowrap",m.style.cssFloat="left");m.style.border="1px solid #d3d3d3";m.style.borderWidth="1px 0px 1px 0px";m.style.padding="12px 0px 12px 0px";var f=document.createElement("input");f.setAttribute("type","checkbox");f.setAttribute("checked","checked");f.defaultChecked=!0;var h=0,n=document.createElement("p"),g=document.createElement("p");g.style.fontSize="16pt";g.style.padding="0px";g.style.paddingTop= "4px";g.style.paddingBottom="16px";g.style.margin="0px";g.style.color="gray";mxUtils.write(g,mxResources.get("saveDiagramsTo")+":");e.appendChild(g);"function"===typeof window.DriveClient&&d(IMAGE_PATH+"/google-drive-logo.svg",mxResources.get("googleDrive"),App.MODE_GOOGLE,"drive");"function"===typeof window.OneDriveClient&&d(IMAGE_PATH+"/onedrive-logo.svg",mxResources.get("oneDrive"),App.MODE_ONEDRIVE,"oneDrive");mxClient.IS_IOS&&"device"!=urlParams.storage||d(IMAGE_PATH+"/osa_drive-harddisk.png", -mxResources.get("device"),App.MODE_DEVICE);!isLocalStorage||"1"!=urlParams.browser&&"1"!=urlParams.offline||d(IMAGE_PATH+"/osa_database.png",mxResources.get("browser"),App.MODE_BROWSER);e.appendChild(n);g=document.createElement("p");g.style.marginTop="12px";g.style.marginBottom="6px";g.appendChild(f);l=document.createElement("span");l.style.color="gray";l.style.fontSize="12px";mxUtils.write(l," "+mxResources.get("rememberThisSetting"));g.appendChild(l);mxUtils.br(g);var q=a.getRecent();if(null!=q&& -0<q.length){var u=document.createElement("select");u.style.marginTop="8px";u.style.width="140px";var p=document.createElement("option");p.setAttribute("value","");p.setAttribute("selected","selected");p.style.textAlign="center";mxUtils.write(p,mxResources.get("openRecent")+"...");u.appendChild(p);for(p=0;p<q.length;p++)(function(a){var b=a.mode;b==App.MODE_GOOGLE?b="googleDrive":b==App.MODE_ONEDRIVE&&(b="oneDrive");var c=document.createElement("option");c.setAttribute("value",a.id);mxUtils.write(c, -a.title+" ("+mxResources.get(b)+")");u.appendChild(c)})(q[p]);g.appendChild(u);mxEvent.addListener(u,"change",function(b){""!=u.value&&a.loadFile(u.value)})}else g.style.marginTop="20px",n.style.padding="30px 0px 26px 0px";!Graph.fileSupport||mxClient.IS_IE||mxClient.IS_IE11||(q=document.createElement("div"),q.style.cursor="pointer",q.style.padding="18px 0px 6px 0px",q.style.fontSize="12px",q.style.color="gray",mxUtils.write(q,mxResources.get("import")+": "+mxResources.get("gliffy")+", "+mxResources.get("formatVssx")+ -", "+mxResources.get("formatVsdx")+", "+mxResources.get("lucidchart")+"..."),mxEvent.addListener(q,"click",function(){var b=document.createElement("input");b.setAttribute("type","file");mxEvent.addListener(b,"change",function(){null!=b.files&&(a.hideDialog(),a.openFiles(b.files,!0))});b.click()}),g.appendChild(q),n.style.paddingBottom="4px");n.appendChild(g);mxEvent.addListener(l,"click",function(a){f.checked=!f.checked;mxEvent.consume(a)});mxClient.IS_SVG&&isLocalStorage&&"0"!=urlParams.gapi&&(null== -document.documentMode||10<=document.documentMode)&&window.setTimeout(function(){null==a.drive&&(k.style.padding="8px",k.style.fontSize="9pt",k.style.marginTop="-14px",k.innerHTML='<a style="background-color:#dcdcdc;padding:5px;color:black;text-decoration:none;" href="https://plus.google.com/u/0/+DrawIo1/posts/1HTrfsb5wDN" target="_blank"><img border="0" src="'+mxGraph.prototype.warningImage.src+'" align="top"> '+mxResources.get("googleDriveMissingClickHere")+"</a>",e.appendChild(k))},5E3);this.container= +mxResources.get("device"),App.MODE_DEVICE);!isLocalStorage||"1"!=urlParams.browser&&"1"!=urlParams.offline||d(IMAGE_PATH+"/osa_database.png",mxResources.get("browser"),App.MODE_BROWSER);e.appendChild(m);g=document.createElement("p");g.style.marginTop="12px";g.style.marginBottom="6px";g.appendChild(f);k=document.createElement("span");k.style.color="gray";k.style.fontSize="12px";mxUtils.write(k," "+mxResources.get("rememberThisSetting"));g.appendChild(k);mxUtils.br(g);var u=a.getRecent();if(null!=u&& +0<u.length){var p=document.createElement("select");p.style.marginTop="8px";p.style.width="140px";var q=document.createElement("option");q.setAttribute("value","");q.setAttribute("selected","selected");q.style.textAlign="center";mxUtils.write(q,mxResources.get("openRecent")+"...");p.appendChild(q);for(q=0;q<u.length;q++)(function(a){var b=a.mode;b==App.MODE_GOOGLE?b="googleDrive":b==App.MODE_ONEDRIVE&&(b="oneDrive");var c=document.createElement("option");c.setAttribute("value",a.id);mxUtils.write(c, +a.title+" ("+mxResources.get(b)+")");p.appendChild(c)})(u[q]);g.appendChild(p);mxEvent.addListener(p,"change",function(b){""!=p.value&&a.loadFile(p.value)})}else g.style.marginTop="20px",m.style.padding="30px 0px 26px 0px";!Graph.fileSupport||mxClient.IS_IE||mxClient.IS_IE11||(u=document.createElement("div"),u.style.cursor="pointer",u.style.padding="18px 0px 6px 0px",u.style.fontSize="12px",u.style.color="gray",mxUtils.write(u,mxResources.get("import")+": "+mxResources.get("gliffy")+", "+mxResources.get("formatVssx")+ +", "+mxResources.get("formatVsdx")+", "+mxResources.get("lucidchart")+"..."),mxEvent.addListener(u,"click",function(){var b=document.createElement("input");b.setAttribute("type","file");mxEvent.addListener(b,"change",function(){null!=b.files&&(a.hideDialog(),a.openFiles(b.files,!0))});b.click()}),g.appendChild(u),m.style.paddingBottom="4px");m.appendChild(g);mxEvent.addListener(k,"click",function(a){f.checked=!f.checked;mxEvent.consume(a)});mxClient.IS_SVG&&isLocalStorage&&"0"!=urlParams.gapi&&(null== +document.documentMode||10<=document.documentMode)&&window.setTimeout(function(){null==a.drive&&(n.style.padding="8px",n.style.fontSize="9pt",n.style.marginTop="-14px",n.innerHTML='<a style="background-color:#dcdcdc;padding:5px;color:black;text-decoration:none;" href="https://plus.google.com/u/0/+DrawIo1/posts/1HTrfsb5wDN" target="_blank"><img border="0" src="'+mxGraph.prototype.warningImage.src+'" align="top"> '+mxResources.get("googleDriveMissingClickHere")+"</a>",e.appendChild(n))},5E3);this.container= e},SplashDialog=function(a){var b=document.createElement("div");b.style.textAlign="center";a.addLanguageMenu(b,!0);var c=null,c=a.getServiceCount();if(!a.isOffline()&&1<c){c=document.createElement("a");c.setAttribute("href","https://about.draw.io/support/");c.setAttribute("title",mxResources.get("help"));c.setAttribute("target","_blank");c.style.position="absolute";c.style.fontSize="12px";c.style.textDecoration="none";c.style.cursor="pointer";c.style.bottom="22px";c.style.left="26px";c.style.color= "gray";var d=document.createElement("img");d.setAttribute("border","0");d.setAttribute("valign","bottom");d.setAttribute("src",Editor.helpImage);d.style.marginRight="2px";c.appendChild(d);mxUtils.write(c,mxResources.get("help"));b.appendChild(c)}c=document.createElement("p");c.style.fontSize="16pt";c.style.padding="0px";c.style.paddingTop="2px";c.style.margin="0px";c.style.color="gray";d=document.createElement("img");d.setAttribute("border","0");d.setAttribute("align","absmiddle");d.style.width="40px"; d.style.height="40px";d.style.marginRight="12px";d.style.paddingBottom="4px";var e="";a.mode==App.MODE_GOOGLE?(d.src=IMAGE_PATH+"/google-drive-logo.svg",e=mxResources.get("googleDrive")):a.mode==App.MODE_DROPBOX?(d.src=IMAGE_PATH+"/dropbox-logo.svg",e=mxResources.get("dropbox")):a.mode==App.MODE_ONEDRIVE?(d.src=IMAGE_PATH+"/onedrive-logo.svg",e=mxResources.get("oneDrive")):a.mode==App.MODE_GITHUB?(d.src=IMAGE_PATH+"/github-logo.svg",e=mxResources.get("github")):a.mode==App.MODE_TRELLO?(d.src=IMAGE_PATH+ -"/trello-logo.svg",e=mxResources.get("trello")):a.mode==App.MODE_BROWSER?(d.src=IMAGE_PATH+"/osa_database.png",e=mxResources.get("browser")):(d.src=IMAGE_PATH+"/osa_drive-harddisk.png",e=mxResources.get("device"));var g=document.createElement("div");g.style.margin="4px 0px 0px 0px";var l=document.createElement("button");l.className="geBigButton";l.style.overflow="hidden";l.style.width="340px";mxClient.IS_CHROMEAPP||EditorUi.isElectronApp?(g.style.padding="42px 0px 56px 0px",l.style.marginBottom="12px"): -(c.appendChild(d),mxUtils.write(c,e),b.appendChild(c),g.style.border="1px solid #d3d3d3",g.style.borderWidth="1px 0px 1px 0px",g.style.padding="18px 0px 24px 0px",l.style.marginBottom="8px");mxClient.IS_QUIRKS&&(g.style.whiteSpace="nowrap",g.style.cssFloat="left");mxClient.IS_QUIRKS&&(l.style.width="340px");mxUtils.write(l,mxResources.get("createNewDiagram"));mxEvent.addListener(l,"click",function(){a.hideDialog();a.actions.get("new").funct()});g.appendChild(l);mxUtils.br(g);l=document.createElement("button"); -l.className="geBigButton";l.style.marginBottom="22px";l.style.overflow="hidden";l.style.width="340px";mxClient.IS_QUIRKS&&(l.style.width="340px");mxUtils.write(l,mxResources.get("openExistingDiagram"));mxEvent.addListener(l,"click",function(){a.actions.get("open").funct()});g.appendChild(l);c="undefined";a.mode==App.MODE_GOOGLE?c=mxResources.get("googleDrive"):a.mode==App.MODE_DROPBOX?c=mxResources.get("dropbox"):a.mode==App.MODE_ONEDRIVE?c=mxResources.get("oneDrive"):a.mode==App.MODE_GITHUB?c=mxResources.get("github"): -a.mode==App.MODE_TRELLO?c=mxResources.get("trello"):a.mode==App.MODE_DEVICE?c=mxResources.get("device"):a.mode==App.MODE_BROWSER&&(c=mxResources.get("browser"));mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||(e=function(b){l.style.marginBottom="24px";var c=document.createElement("a");c.setAttribute("href","javascript:void(0)");c.style.display="inline-block";c.style.marginTop="6px";mxUtils.write(c,mxResources.get("signOut"));l.style.marginBottom="16px";g.style.paddingBottom="18px";mxEvent.addListener(c, -"click",function(){a.confirm(mxResources.get("areYouSure"),function(){b()})});g.appendChild(c)},d=null!=a.drive?a.drive.getUser():null,a.mode==App.MODE_GOOGLE&&null!=d?(l.style.marginBottom="24px",e=document.createElement("a"),e.setAttribute("href","javascript:void(0)"),e.style.display="inline-block",e.style.marginTop="6px",mxUtils.write(e,mxResources.get("changeUser")+" ("+d.displayName+")"),l.style.marginBottom="16px",g.style.paddingBottom="18px",mxEvent.addListener(e,"click",function(){a.hideDialog(); +"/trello-logo.svg",e=mxResources.get("trello")):a.mode==App.MODE_BROWSER?(d.src=IMAGE_PATH+"/osa_database.png",e=mxResources.get("browser")):(d.src=IMAGE_PATH+"/osa_drive-harddisk.png",e=mxResources.get("device"));var g=document.createElement("div");g.style.margin="4px 0px 0px 0px";var k=document.createElement("button");k.className="geBigButton";k.style.overflow="hidden";k.style.width="340px";mxClient.IS_CHROMEAPP||EditorUi.isElectronApp?(g.style.padding="42px 0px 56px 0px",k.style.marginBottom="12px"): +(c.appendChild(d),mxUtils.write(c,e),b.appendChild(c),g.style.border="1px solid #d3d3d3",g.style.borderWidth="1px 0px 1px 0px",g.style.padding="18px 0px 24px 0px",k.style.marginBottom="8px");mxClient.IS_QUIRKS&&(g.style.whiteSpace="nowrap",g.style.cssFloat="left");mxClient.IS_QUIRKS&&(k.style.width="340px");mxUtils.write(k,mxResources.get("createNewDiagram"));mxEvent.addListener(k,"click",function(){a.hideDialog();a.actions.get("new").funct()});g.appendChild(k);mxUtils.br(g);k=document.createElement("button"); +k.className="geBigButton";k.style.marginBottom="22px";k.style.overflow="hidden";k.style.width="340px";mxClient.IS_QUIRKS&&(k.style.width="340px");mxUtils.write(k,mxResources.get("openExistingDiagram"));mxEvent.addListener(k,"click",function(){a.actions.get("open").funct()});g.appendChild(k);c="undefined";a.mode==App.MODE_GOOGLE?c=mxResources.get("googleDrive"):a.mode==App.MODE_DROPBOX?c=mxResources.get("dropbox"):a.mode==App.MODE_ONEDRIVE?c=mxResources.get("oneDrive"):a.mode==App.MODE_GITHUB?c=mxResources.get("github"): +a.mode==App.MODE_TRELLO?c=mxResources.get("trello"):a.mode==App.MODE_DEVICE?c=mxResources.get("device"):a.mode==App.MODE_BROWSER&&(c=mxResources.get("browser"));mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||(e=function(b){k.style.marginBottom="24px";var c=document.createElement("a");c.setAttribute("href","javascript:void(0)");c.style.display="inline-block";c.style.marginTop="6px";mxUtils.write(c,mxResources.get("signOut"));k.style.marginBottom="16px";g.style.paddingBottom="18px";mxEvent.addListener(c, +"click",function(){a.confirm(mxResources.get("areYouSure"),function(){b()})});g.appendChild(c)},d=null!=a.drive?a.drive.getUser():null,a.mode==App.MODE_GOOGLE&&null!=d?(k.style.marginBottom="24px",e=document.createElement("a"),e.setAttribute("href","javascript:void(0)"),e.style.display="inline-block",e.style.marginTop="6px",mxUtils.write(e,mxResources.get("changeUser")+" ("+d.displayName+")"),k.style.marginBottom="16px",g.style.paddingBottom="18px",mxEvent.addListener(e,"click",function(){a.hideDialog(); a.drive.clearUserId();a.drive.setUser(null);gapi.auth.signOut();a.setMode(App.MODE_GOOGLE);a.hideDialog();a.showSplash();a.drive.authorize(!1,mxUtils.bind(this,mxUtils.bind(this,function(){a.hideDialog();a.showSplash()})),mxUtils.bind(this,function(b){a.handleError(b,null,function(){a.hideDialog();a.showSplash()})}))}),g.appendChild(e)):a.mode==App.MODE_ONEDRIVE&&null!=a.oneDrive?e(function(){a.oneDrive.logout()}):a.mode==App.MODE_GITHUB&&null!=a.gitHub?e(function(){a.gitHub.logout();a.openLink("https://www.github.com/logout")}): a.mode==App.MODE_TRELLO&&null!=a.trello?a.trello.isAuthorized()&&e(function(){a.trello.logout()}):a.mode==App.MODE_DROPBOX&&null!=a.dropbox&&e(function(){a.dropbox.logout();a.openLink("https://www.dropbox.com/logout")}),mxUtils.br(g),e=document.createElement("a"),e.setAttribute("href","javascript:void(0)"),e.style.display="inline-block",e.style.marginTop="8px",mxUtils.write(e,mxResources.get("notUsingService",[c])),mxEvent.addListener(e,"click",function(){a.hideDialog(!1);a.setMode(null);a.clearMode(); -a.showSplash(!0)}),g.appendChild(e));b.appendChild(g);this.container=b},ConfirmDialog=function(a,b,c,d,e,g,l,m,n){var f=document.createElement("div");f.style.textAlign="center";var h=document.createElement("div");h.style.padding="6px";h.style.overflow="auto";h.style.maxHeight="44px";mxClient.IS_QUIRKS&&(h.style.height="60px");mxUtils.write(h,b);f.appendChild(h);h=document.createElement("div");h.style.textAlign="center";h.style.whiteSpace="nowrap";var k=document.createElement("input");k.setAttribute("type", -"checkbox");g=mxUtils.button(g||mxResources.get("cancel"),function(){a.hideDialog();null!=d&&d(k.checked)});g.className="geBtn";null!=m&&(g.innerHTML=m+"<br>"+g.innerHTML,g.style.paddingBottom="8px",g.style.paddingTop="8px",g.style.height="auto",g.style.width="40%");a.editor.cancelFirst&&h.appendChild(g);e=mxUtils.button(e||mxResources.get("ok"),function(){a.hideDialog();null!=c&&c(k.checked)});h.appendChild(e);null!=l?(e.innerHTML=l+"<br>"+e.innerHTML+"<br>",e.style.paddingBottom="8px",e.style.paddingTop= -"8px",e.style.height="auto",e.className="geBtn",e.style.width="40%"):e.className="geBtn gePrimaryBtn";a.editor.cancelFirst||h.appendChild(g);f.appendChild(h);n?(h.style.marginTop="10px",h=document.createElement("p"),h.style.marginTop="20px",h.appendChild(k),l=document.createElement("span"),mxUtils.write(l," "+mxResources.get("rememberThisSetting")),h.appendChild(l),f.appendChild(h),mxEvent.addListener(l,"click",function(a){k.checked=!k.checked;mxEvent.consume(a)})):h.style.marginTop="16px";this.container= -f},EmbedDialog=function(a,b,c,d,e,g){d=document.createElement("div");var l=/^https?:\/\//.test(b)||/^mailto:\/\//.test(b);null!=g?mxUtils.write(d,g):mxUtils.write(d,mxResources.get(5E5>b.length?l?"link":"mainEmbedNotice":"preview")+":");mxUtils.br(d);g=document.createElement("div");g.style.position="absolute";g.style.top="30px";g.style.right="30px";g.style.color="gray";mxUtils.write(g,a.formatFileSize(b.length));d.appendChild(g);var m=document.createElement("textarea");m.setAttribute("autocomplete", -"off");m.setAttribute("autocorrect","off");m.setAttribute("autocapitalize","off");m.setAttribute("spellcheck","false");m.style.marginTop="10px";m.style.resize="none";m.style.height="150px";m.style.width="440px";m.style.border="1px solid gray";m.value=mxResources.get("updatingDocument");d.appendChild(m);mxUtils.br(d);this.init=function(){window.setTimeout(function(){5E5>b.length?(m.value=b,m.focus(),mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode||mxClient.IS_QUIRKS?m.select():document.execCommand("selectAll", -!1,null)):(m.setAttribute("readonly","true"),m.value=b.substring(0,340)+"... ("+mxResources.get("drawingTooLarge")+")")},0)};g=document.createElement("div");g.style.position="absolute";g.style.bottom="36px";g.style.right="32px";var n=null;!EmbedDialog.showPreviewOption||mxClient.IS_CHROMEAPP&&!l||navigator.standalone||!(l||mxClient.IS_SVG&&(null==document.documentMode||9<document.documentMode))||(n=mxUtils.button(mxResources.get(5E5>b.length?"preview":"openInNewWindow"),function(){var d=5E5>b.length? -m.value:b;if(null!=e)e(d);else if(l)try{var f=a.openLink(d);null!=f&&(null==c||0<c)&&window.setTimeout(mxUtils.bind(this,function(){null!=f&&null!=f.location.href&&f.location.href.substring(0,8)!=d.substring(0,8)&&(f.close(),a.handleError({message:mxResources.get("drawingTooLarge")}))}),c||500)}catch(p){a.handleError({message:p.message||mxResources.get("drawingTooLarge")})}else{var h=window.open().document;h.writeln("<html><head><title>"+encodeURIComponent(mxResources.get("preview"))+'</title><meta charset="utf-8"></head><body>'+ -b+"</body></html>");h.close()}}),n.className="geBtn",g.appendChild(n));if(!l||7500<b.length){var f=mxUtils.button(mxResources.get("download"),function(){a.hideDialog();a.saveData("embed.txt","txt",b,"text/plain")});f.className="geBtn";g.appendChild(f)}if(l&&(!a.isOffline()||mxClient.IS_CHROMEAPP)){if(51200>b.length){var h=mxUtils.button("",function(){try{var b="https://www.facebook.com/sharer.php?p[url]="+encodeURIComponent(m.value);a.openLink(b)}catch(q){a.handleError({message:q.message||mxResources.get("drawingTooLarge")})}}), +a.showSplash(!0)}),g.appendChild(e));b.appendChild(g);this.container=b},ConfirmDialog=function(a,b,c,d,e,g,k,l,m){var f=document.createElement("div");f.style.textAlign="center";var h=document.createElement("div");h.style.padding="6px";h.style.overflow="auto";h.style.maxHeight="44px";mxClient.IS_QUIRKS&&(h.style.height="60px");mxUtils.write(h,b);f.appendChild(h);h=document.createElement("div");h.style.textAlign="center";h.style.whiteSpace="nowrap";var n=document.createElement("input");n.setAttribute("type", +"checkbox");g=mxUtils.button(g||mxResources.get("cancel"),function(){a.hideDialog();null!=d&&d(n.checked)});g.className="geBtn";null!=l&&(g.innerHTML=l+"<br>"+g.innerHTML,g.style.paddingBottom="8px",g.style.paddingTop="8px",g.style.height="auto",g.style.width="40%");a.editor.cancelFirst&&h.appendChild(g);e=mxUtils.button(e||mxResources.get("ok"),function(){a.hideDialog();null!=c&&c(n.checked)});h.appendChild(e);null!=k?(e.innerHTML=k+"<br>"+e.innerHTML+"<br>",e.style.paddingBottom="8px",e.style.paddingTop= +"8px",e.style.height="auto",e.className="geBtn",e.style.width="40%"):e.className="geBtn gePrimaryBtn";a.editor.cancelFirst||h.appendChild(g);f.appendChild(h);m?(h.style.marginTop="10px",h=document.createElement("p"),h.style.marginTop="20px",h.appendChild(n),k=document.createElement("span"),mxUtils.write(k," "+mxResources.get("rememberThisSetting")),h.appendChild(k),f.appendChild(h),mxEvent.addListener(k,"click",function(a){n.checked=!n.checked;mxEvent.consume(a)})):h.style.marginTop="16px";this.container= +f},EmbedDialog=function(a,b,c,d,e,g){d=document.createElement("div");var k=/^https?:\/\//.test(b)||/^mailto:\/\//.test(b);null!=g?mxUtils.write(d,g):mxUtils.write(d,mxResources.get(5E5>b.length?k?"link":"mainEmbedNotice":"preview")+":");mxUtils.br(d);g=document.createElement("div");g.style.position="absolute";g.style.top="30px";g.style.right="30px";g.style.color="gray";mxUtils.write(g,a.formatFileSize(b.length));d.appendChild(g);var l=document.createElement("textarea");l.setAttribute("autocomplete", +"off");l.setAttribute("autocorrect","off");l.setAttribute("autocapitalize","off");l.setAttribute("spellcheck","false");l.style.marginTop="10px";l.style.resize="none";l.style.height="150px";l.style.width="440px";l.style.border="1px solid gray";l.value=mxResources.get("updatingDocument");d.appendChild(l);mxUtils.br(d);this.init=function(){window.setTimeout(function(){5E5>b.length?(l.value=b,l.focus(),mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode||mxClient.IS_QUIRKS?l.select():document.execCommand("selectAll", +!1,null)):(l.setAttribute("readonly","true"),l.value=b.substring(0,340)+"... ("+mxResources.get("drawingTooLarge")+")")},0)};g=document.createElement("div");g.style.position="absolute";g.style.bottom="36px";g.style.right="32px";var m=null;!EmbedDialog.showPreviewOption||mxClient.IS_CHROMEAPP&&!k||navigator.standalone||!(k||mxClient.IS_SVG&&(null==document.documentMode||9<document.documentMode))||(m=mxUtils.button(mxResources.get(5E5>b.length?"preview":"openInNewWindow"),function(){var d=5E5>b.length? +l.value:b;if(null!=e)e(d);else if(k)try{var f=a.openLink(d);null!=f&&(null==c||0<c)&&window.setTimeout(mxUtils.bind(this,function(){null!=f&&null!=f.location.href&&f.location.href.substring(0,8)!=d.substring(0,8)&&(f.close(),a.handleError({message:mxResources.get("drawingTooLarge")}))}),c||500)}catch(q){a.handleError({message:q.message||mxResources.get("drawingTooLarge")})}else{var h=window.open().document;h.writeln("<html><head><title>"+encodeURIComponent(mxResources.get("preview"))+'</title><meta charset="utf-8"></head><body>'+ +b+"</body></html>");h.close()}}),m.className="geBtn",g.appendChild(m));if(!k||7500<b.length){var f=mxUtils.button(mxResources.get("download"),function(){a.hideDialog();a.saveData("embed.txt","txt",b,"text/plain")});f.className="geBtn";g.appendChild(f)}if(k&&(!a.isOffline()||mxClient.IS_CHROMEAPP)){if(51200>b.length){var h=mxUtils.button("",function(){try{var b="https://www.facebook.com/sharer.php?p[url]="+encodeURIComponent(l.value);a.openLink(b)}catch(u){a.handleError({message:u.message||mxResources.get("drawingTooLarge")})}}), f=document.createElement("img");f.setAttribute("src",Editor.facebookImage);f.setAttribute("width","18");f.setAttribute("height","18");f.setAttribute("border","0");h.appendChild(f);h.setAttribute("title",mxResources.get("facebook")+" ("+a.formatFileSize(51200)+" max)");h.style.verticalAlign="bottom";h.style.paddingTop="4px";h.style.minWidth="46px";h.className="geBtn";g.appendChild(h)}7168>b.length&&(h=mxUtils.button("",function(){try{var b="https://twitter.com/intent/tweet?text="+encodeURIComponent("Check out the diagram I made using @drawio")+ -"&url="+encodeURIComponent(m.value);a.openLink(b)}catch(q){a.handleError({message:q.message||mxResources.get("drawingTooLarge")})}}),f=document.createElement("img"),f.setAttribute("src",Editor.tweetImage),f.setAttribute("width","18"),f.setAttribute("height","18"),f.setAttribute("border","0"),f.style.marginBottom="5px",h.appendChild(f),h.setAttribute("title",mxResources.get("twitter")+" ("+a.formatFileSize(7168)+" max)"),h.style.verticalAlign="bottom",h.style.paddingTop="4px",h.style.minWidth="46px", -h.className="geBtn",g.appendChild(h))}f=mxUtils.button(mxResources.get("close"),function(){a.hideDialog()});g.appendChild(f);h=mxUtils.button(mxResources.get("copy"),function(){m.focus();mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode||mxClient.IS_QUIRKS?m.select():document.execCommand("selectAll",!1,null);document.execCommand("copy");a.alert(mxResources.get("copiedToClipboard"))});5E5>b.length?mxClient.IS_SF||null!=document.documentMode?f.className="geBtn gePrimaryBtn":(g.appendChild(h), -h.className="geBtn gePrimaryBtn",f.className="geBtn"):(g.appendChild(n),f.className="geBtn",n.className="geBtn gePrimaryBtn");d.appendChild(g);this.container=d};EmbedDialog.showPreviewOption=!0; -var GoogleSitesDialog=function(a,b){function c(){var a=null!=z.getTitle()?z.getTitle():this.defaultFilename;if(x.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));0<C.length&&(b+="&s="+C);""!=u.value&&"0"!=u.value&&(b+="&border="+u.value);""!=k.value&&(b+="&height="+k.value);b+="&pan="+(p.checked?"1":"0");b+="&zoom="+(v.checked?"1":"0");b+="&fit="+(w.checked?"1":"0");b+="&resize="+ -(t.checked?"1":"0");b+="&x0="+Number(h.value);b+="&y0="+n;e.mathEnabled&&(b+="&math=1");A.checked?b+="&edit=_blank":y.checked&&(b+="&edit="+encodeURIComponent(mxUtils.htmlEntities(window.location.href)));f.value=b}else z.constructor==DriveFile||z.constructor==DropboxFile?(b="https://www.draw.io/gadget.xml?embed=0&diagram=",""!=q.value?b+=encodeURIComponent(mxUtils.htmlEntities(q.value))+"&type=3":(b+=z.getHash().substring(1),b=z.constructor==DropboxFile?b+"&type=2":b+"&type=1"),null!=a&&(b+="&title="+ -encodeURIComponent(a)),""!=k.value&&(a=parseInt(k.value)+parseInt(h.value),b+="&height="+a),f.value=b):f.value=""}var d=document.createElement("div"),e=a.editor.graph,g=e.getGraphBounds(),l=e.view.scale,m=Math.floor(g.x/l-e.view.translate.x),n=Math.floor(g.y/l-e.view.translate.y);mxUtils.write(d,mxResources.get("googleGadget")+":");mxUtils.br(d);var f=document.createElement("input");f.setAttribute("type","text");f.style.marginBottom="8px";f.style.marginTop="2px";f.style.width="410px";d.appendChild(f); -mxUtils.br(d);this.init=function(){f.focus();mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode||mxClient.IS_QUIRKS?f.select():document.execCommand("selectAll",!1,null)};mxUtils.write(d,mxResources.get("top")+":");var h=document.createElement("input");h.setAttribute("type","text");h.setAttribute("size","4");h.style.marginRight="16px";h.style.marginLeft="4px";h.value=m;d.appendChild(h);mxUtils.write(d,mxResources.get("height")+":");var k=document.createElement("input");k.setAttribute("type", -"text");k.setAttribute("size","4");k.style.marginLeft="4px";k.value=Math.ceil(g.height/l);d.appendChild(k);mxUtils.br(d);g=document.createElement("hr");g.setAttribute("size","1");g.style.marginBottom="16px";g.style.marginTop="16px";d.appendChild(g);mxUtils.write(d,mxResources.get("publicDiagramUrl")+":");mxUtils.br(d);var q=document.createElement("input");q.setAttribute("type","text");q.setAttribute("size","28");q.style.marginBottom="8px";q.style.marginTop="2px";q.style.width="410px";q.value=b||""; -d.appendChild(q);mxUtils.br(d);mxUtils.write(d,mxResources.get("borderWidth")+":");var u=document.createElement("input");u.setAttribute("type","text");u.setAttribute("size","3");u.style.marginBottom="8px";u.style.marginLeft="4px";u.value="0";d.appendChild(u);mxUtils.br(d);var p=document.createElement("input");p.setAttribute("type","checkbox");p.setAttribute("checked","checked");p.defaultChecked=!0;p.style.marginLeft="16px";d.appendChild(p);mxUtils.write(d,mxResources.get("pan")+" ");var v=document.createElement("input"); -v.setAttribute("type","checkbox");v.setAttribute("checked","checked");v.defaultChecked=!0;v.style.marginLeft="8px";d.appendChild(v);mxUtils.write(d,mxResources.get("zoom")+" ");var y=document.createElement("input");y.setAttribute("type","checkbox");y.style.marginLeft="8px";y.setAttribute("title",window.location.href);d.appendChild(y);mxUtils.write(d,mxResources.get("edit")+" ");var A=document.createElement("input");A.setAttribute("type","checkbox");A.style.marginLeft="8px";d.appendChild(A);mxUtils.write(d, +"&url="+encodeURIComponent(l.value);a.openLink(b)}catch(u){a.handleError({message:u.message||mxResources.get("drawingTooLarge")})}}),f=document.createElement("img"),f.setAttribute("src",Editor.tweetImage),f.setAttribute("width","18"),f.setAttribute("height","18"),f.setAttribute("border","0"),f.style.marginBottom="5px",h.appendChild(f),h.setAttribute("title",mxResources.get("twitter")+" ("+a.formatFileSize(7168)+" max)"),h.style.verticalAlign="bottom",h.style.paddingTop="4px",h.style.minWidth="46px", +h.className="geBtn",g.appendChild(h))}f=mxUtils.button(mxResources.get("close"),function(){a.hideDialog()});g.appendChild(f);h=mxUtils.button(mxResources.get("copy"),function(){l.focus();mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode||mxClient.IS_QUIRKS?l.select():document.execCommand("selectAll",!1,null);document.execCommand("copy");a.alert(mxResources.get("copiedToClipboard"))});5E5>b.length?mxClient.IS_SF||null!=document.documentMode?f.className="geBtn gePrimaryBtn":(g.appendChild(h), +h.className="geBtn gePrimaryBtn",f.className="geBtn"):(g.appendChild(m),f.className="geBtn",m.className="geBtn gePrimaryBtn");d.appendChild(g);this.container=d};EmbedDialog.showPreviewOption=!0; +var GoogleSitesDialog=function(a,b){function c(){var a=null!=z.getTitle()?z.getTitle():this.defaultFilename;if(x.checked&&""!=u.value){var b="https://www.draw.io/gadget.xml?type=4&diagram="+encodeURIComponent(mxUtils.htmlEntities(u.value));null!=a&&(b+="&title="+encodeURIComponent(a));0<C.length&&(b+="&s="+C);""!=p.value&&"0"!=p.value&&(b+="&border="+p.value);""!=n.value&&(b+="&height="+n.value);b+="&pan="+(q.checked?"1":"0");b+="&zoom="+(v.checked?"1":"0");b+="&fit="+(w.checked?"1":"0");b+="&resize="+ +(t.checked?"1":"0");b+="&x0="+Number(h.value);b+="&y0="+m;e.mathEnabled&&(b+="&math=1");B.checked?b+="&edit=_blank":y.checked&&(b+="&edit="+encodeURIComponent(mxUtils.htmlEntities(window.location.href)));f.value=b}else z.constructor==DriveFile||z.constructor==DropboxFile?(b="https://www.draw.io/gadget.xml?embed=0&diagram=",""!=u.value?b+=encodeURIComponent(mxUtils.htmlEntities(u.value))+"&type=3":(b+=z.getHash().substring(1),b=z.constructor==DropboxFile?b+"&type=2":b+"&type=1"),null!=a&&(b+="&title="+ +encodeURIComponent(a)),""!=n.value&&(a=parseInt(n.value)+parseInt(h.value),b+="&height="+a),f.value=b):f.value=""}var d=document.createElement("div"),e=a.editor.graph,g=e.getGraphBounds(),k=e.view.scale,l=Math.floor(g.x/k-e.view.translate.x),m=Math.floor(g.y/k-e.view.translate.y);mxUtils.write(d,mxResources.get("googleGadget")+":");mxUtils.br(d);var f=document.createElement("input");f.setAttribute("type","text");f.style.marginBottom="8px";f.style.marginTop="2px";f.style.width="410px";d.appendChild(f); +mxUtils.br(d);this.init=function(){f.focus();mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode||mxClient.IS_QUIRKS?f.select():document.execCommand("selectAll",!1,null)};mxUtils.write(d,mxResources.get("top")+":");var h=document.createElement("input");h.setAttribute("type","text");h.setAttribute("size","4");h.style.marginRight="16px";h.style.marginLeft="4px";h.value=l;d.appendChild(h);mxUtils.write(d,mxResources.get("height")+":");var n=document.createElement("input");n.setAttribute("type", +"text");n.setAttribute("size","4");n.style.marginLeft="4px";n.value=Math.ceil(g.height/k);d.appendChild(n);mxUtils.br(d);g=document.createElement("hr");g.setAttribute("size","1");g.style.marginBottom="16px";g.style.marginTop="16px";d.appendChild(g);mxUtils.write(d,mxResources.get("publicDiagramUrl")+":");mxUtils.br(d);var u=document.createElement("input");u.setAttribute("type","text");u.setAttribute("size","28");u.style.marginBottom="8px";u.style.marginTop="2px";u.style.width="410px";u.value=b||""; +d.appendChild(u);mxUtils.br(d);mxUtils.write(d,mxResources.get("borderWidth")+":");var p=document.createElement("input");p.setAttribute("type","text");p.setAttribute("size","3");p.style.marginBottom="8px";p.style.marginLeft="4px";p.value="0";d.appendChild(p);mxUtils.br(d);var q=document.createElement("input");q.setAttribute("type","checkbox");q.setAttribute("checked","checked");q.defaultChecked=!0;q.style.marginLeft="16px";d.appendChild(q);mxUtils.write(d,mxResources.get("pan")+" ");var v=document.createElement("input"); +v.setAttribute("type","checkbox");v.setAttribute("checked","checked");v.defaultChecked=!0;v.style.marginLeft="8px";d.appendChild(v);mxUtils.write(d,mxResources.get("zoom")+" ");var y=document.createElement("input");y.setAttribute("type","checkbox");y.style.marginLeft="8px";y.setAttribute("title",window.location.href);d.appendChild(y);mxUtils.write(d,mxResources.get("edit")+" ");var B=document.createElement("input");B.setAttribute("type","checkbox");B.style.marginLeft="8px";d.appendChild(B);mxUtils.write(d, mxResources.get("asNew")+" ");mxUtils.br(d);var t=document.createElement("input");t.setAttribute("type","checkbox");t.setAttribute("checked","checked");t.defaultChecked=!0;t.style.marginLeft="16px";d.appendChild(t);mxUtils.write(d,mxResources.get("resize")+" ");var w=document.createElement("input");w.setAttribute("type","checkbox");w.style.marginLeft="8px";d.appendChild(w);mxUtils.write(d,mxResources.get("fit")+" ");var x=document.createElement("input");x.setAttribute("type","checkbox");x.style.marginLeft= -"8px";d.appendChild(x);mxUtils.write(d,mxResources.get("embed")+" ");var C=a.getBasenames().join(";"),z=a.getCurrentFile();mxEvent.addListener(p,"change",c);mxEvent.addListener(v,"change",c);mxEvent.addListener(t,"change",c);mxEvent.addListener(w,"change",c);mxEvent.addListener(y,"change",c);mxEvent.addListener(A,"change",c);mxEvent.addListener(x,"change",c);mxEvent.addListener(k,"change",c);mxEvent.addListener(h,"change",c);mxEvent.addListener(u,"change",c);mxEvent.addListener(q,"change",c);c(); -mxEvent.addListener(f,"click",function(){f.focus();mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode||mxClient.IS_QUIRKS?f.select():document.execCommand("selectAll",!1,null)});g=document.createElement("div");g.style.paddingTop="12px";g.style.textAlign="right";l=mxUtils.button(mxResources.get("close"),function(){a.hideDialog()});l.className="geBtn gePrimaryBtn";g.appendChild(l);d.appendChild(g);this.container=d},CreateGraphDialog=function(a,b,c){var d=document.createElement("div");d.style.textAlign= -"right";this.init=function(){var b=document.createElement("div");b.style.position="relative";b.style.border="1px solid gray";b.style.width="100%";b.style.height="360px";b.style.overflow="hidden";b.style.marginBottom="16px";mxEvent.disableContextMenu(b);d.appendChild(b);var g=new Graph(b);g.setCellsCloneable(!0);g.setPanning(!0);g.setAllowDanglingEdges(!1);g.connectionHandler.select=!1;g.view.setTranslate(20,20);g.border=20;g.panningHandler.useLeftButtonForPanning=!0;var l="curved=1;";g.cellRenderer.installCellOverlayListeners= +"8px";d.appendChild(x);mxUtils.write(d,mxResources.get("embed")+" ");var C=a.getBasenames().join(";"),z=a.getCurrentFile();mxEvent.addListener(q,"change",c);mxEvent.addListener(v,"change",c);mxEvent.addListener(t,"change",c);mxEvent.addListener(w,"change",c);mxEvent.addListener(y,"change",c);mxEvent.addListener(B,"change",c);mxEvent.addListener(x,"change",c);mxEvent.addListener(n,"change",c);mxEvent.addListener(h,"change",c);mxEvent.addListener(p,"change",c);mxEvent.addListener(u,"change",c);c(); +mxEvent.addListener(f,"click",function(){f.focus();mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode||mxClient.IS_QUIRKS?f.select():document.execCommand("selectAll",!1,null)});g=document.createElement("div");g.style.paddingTop="12px";g.style.textAlign="right";k=mxUtils.button(mxResources.get("close"),function(){a.hideDialog()});k.className="geBtn gePrimaryBtn";g.appendChild(k);d.appendChild(g);this.container=d},CreateGraphDialog=function(a,b,c){var d=document.createElement("div");d.style.textAlign= +"right";this.init=function(){var b=document.createElement("div");b.style.position="relative";b.style.border="1px solid gray";b.style.width="100%";b.style.height="360px";b.style.overflow="hidden";b.style.marginBottom="16px";mxEvent.disableContextMenu(b);d.appendChild(b);var g=new Graph(b);g.setCellsCloneable(!0);g.setPanning(!0);g.setAllowDanglingEdges(!1);g.connectionHandler.select=!1;g.view.setTranslate(20,20);g.border=20;g.panningHandler.useLeftButtonForPanning=!0;var k="curved=1;";g.cellRenderer.installCellOverlayListeners= function(a,b,c){mxCellRenderer.prototype.installCellOverlayListeners.apply(this,arguments);mxEvent.addListener(c.node,mxClient.IS_POINTER?"pointerdown":"mousedown",function(c){b.fireEvent(new mxEventObject("pointerdown","event",c,"state",a))});!mxClient.IS_POINTER&&mxClient.IS_TOUCH&&mxEvent.addListener(c.node,"touchstart",function(c){b.fireEvent(new mxEventObject("pointerdown","event",c,"state",a))})};g.getAllConnectionConstraints=function(){return null};g.connectionHandler.marker.highlight.keepOnTop= -!1;g.connectionHandler.createEdgeState=function(a){a=g.createEdge(null,null,null,null,null,l);return new mxCellState(this.graph.view,a,this.graph.getCellStyle(a))};var m=g.getDefaultParent(),n=mxUtils.bind(this,function(a){var b=new mxCellOverlay(this.connectImage,"Add outgoing");b.cursor="hand";b.addListener(mxEvent.CLICK,function(b,c){g.connectionHandler.reset();g.clearSelection();var d=g.getCellGeometry(a),f;k(function(){f=g.insertVertex(m,null,"Entry",d.x,d.y,80,30,"rounded=1;");n(f);g.view.refresh(f); -g.insertEdge(m,null,"",a,f,l)},function(){g.scrollCellToVisible(f)})});b.addListener("pointerdown",function(a,b){var c=b.getProperty("event"),d=b.getProperty("state");g.popupMenuHandler.hideMenu();g.stopEditing(!1);var f=mxUtils.convertPoint(g.container,mxEvent.getClientX(c),mxEvent.getClientY(c));g.connectionHandler.start(d,f.x,f.y);g.isMouseDown=!0;g.isMouseTrigger=mxEvent.isMouseEvent(c);mxEvent.consume(c)});g.addCellOverlay(a,b)});g.getModel().beginUpdate();var f;try{f=g.insertVertex(m,null,"Start", -0,0,80,30,"ellipse"),n(f)}finally{g.getModel().endUpdate()}var h;"horizontalTree"==c?(h=new mxCompactTreeLayout(g),h.edgeRouting=!1,h.levelDistance=30,l="edgeStyle=elbowEdgeStyle;elbow=horizontal;"):"verticalTree"==c?(h=new mxCompactTreeLayout(g,!1),h.edgeRouting=!1,h.levelDistance=30,l="edgeStyle=elbowEdgeStyle;elbow=vertical;"):"radialTree"==c?(h=new mxRadialTreeLayout(g,!1),h.edgeRouting=!1,h.levelDistance=80):"verticalFlow"==c?h=new mxHierarchicalLayout(g,mxConstants.DIRECTION_NORTH):"horizontalFlow"== -c?h=new mxHierarchicalLayout(g,mxConstants.DIRECTION_WEST):"organic"==c?(h=new mxFastOrganicLayout(g,!1),h.forceConstant=80):"circle"==c&&(h=new mxCircleLayout(g));if(null!=h){var k=function(a,b){g.getModel().beginUpdate();try{null!=a&&a(),h.execute(g.getDefaultParent(),f)}catch(t){throw t;}finally{var c=new mxMorphing(g);c.addListener(mxEvent.DONE,mxUtils.bind(this,function(){g.getModel().endUpdate();null!=b&&b()}));c.startAnimation()}},q=mxEdgeHandler.prototype.connect;mxEdgeHandler.prototype.connect= -function(a,b,c,d,f){q.apply(this,arguments);k()};g.resizeCell=function(){mxGraph.prototype.resizeCell.apply(this,arguments);k()};g.connectionHandler.addListener(mxEvent.CONNECT,function(){k()})}var u=mxUtils.button(mxResources.get("close"),function(){a.confirm(mxResources.get("areYouSure"),function(){null!=b.parentNode&&(g.destroy(),b.parentNode.removeChild(b));a.hideDialog()})});u.className="geBtn";a.editor.cancelFirst&&d.appendChild(u);var p=mxUtils.button(mxResources.get("insert"),function(){g.clearCellOverlays(); -var c=a.editor.graph.getFreeInsertPoint(),c=a.editor.graph.importCells(g.getModel().getChildren(g.getDefaultParent()),c.x,c.y),d=a.editor.graph.view,f=d.getBounds(c);f.x-=d.translate.x;f.y-=d.translate.y;a.editor.graph.scrollRectToVisible(f);a.editor.graph.setSelectionCells(c);null!=b.parentNode&&(g.destroy(),b.parentNode.removeChild(b));a.hideDialog()});d.appendChild(p);p.className="geBtn gePrimaryBtn";a.editor.cancelFirst||d.appendChild(u)};this.container=d}; +!1;g.connectionHandler.createEdgeState=function(a){a=g.createEdge(null,null,null,null,null,k);return new mxCellState(this.graph.view,a,this.graph.getCellStyle(a))};var l=g.getDefaultParent(),m=mxUtils.bind(this,function(a){var b=new mxCellOverlay(this.connectImage,"Add outgoing");b.cursor="hand";b.addListener(mxEvent.CLICK,function(b,c){g.connectionHandler.reset();g.clearSelection();var d=g.getCellGeometry(a),f;n(function(){f=g.insertVertex(l,null,"Entry",d.x,d.y,80,30,"rounded=1;");m(f);g.view.refresh(f); +g.insertEdge(l,null,"",a,f,k)},function(){g.scrollCellToVisible(f)})});b.addListener("pointerdown",function(a,b){var c=b.getProperty("event"),d=b.getProperty("state");g.popupMenuHandler.hideMenu();g.stopEditing(!1);var f=mxUtils.convertPoint(g.container,mxEvent.getClientX(c),mxEvent.getClientY(c));g.connectionHandler.start(d,f.x,f.y);g.isMouseDown=!0;g.isMouseTrigger=mxEvent.isMouseEvent(c);mxEvent.consume(c)});g.addCellOverlay(a,b)});g.getModel().beginUpdate();var f;try{f=g.insertVertex(l,null,"Start", +0,0,80,30,"ellipse"),m(f)}finally{g.getModel().endUpdate()}var h;"horizontalTree"==c?(h=new mxCompactTreeLayout(g),h.edgeRouting=!1,h.levelDistance=30,k="edgeStyle=elbowEdgeStyle;elbow=horizontal;"):"verticalTree"==c?(h=new mxCompactTreeLayout(g,!1),h.edgeRouting=!1,h.levelDistance=30,k="edgeStyle=elbowEdgeStyle;elbow=vertical;"):"radialTree"==c?(h=new mxRadialTreeLayout(g,!1),h.edgeRouting=!1,h.levelDistance=80):"verticalFlow"==c?h=new mxHierarchicalLayout(g,mxConstants.DIRECTION_NORTH):"horizontalFlow"== +c?h=new mxHierarchicalLayout(g,mxConstants.DIRECTION_WEST):"organic"==c?(h=new mxFastOrganicLayout(g,!1),h.forceConstant=80):"circle"==c&&(h=new mxCircleLayout(g));if(null!=h){var n=function(a,b){g.getModel().beginUpdate();try{null!=a&&a(),h.execute(g.getDefaultParent(),f)}catch(t){throw t;}finally{var c=new mxMorphing(g);c.addListener(mxEvent.DONE,mxUtils.bind(this,function(){g.getModel().endUpdate();null!=b&&b()}));c.startAnimation()}},u=mxEdgeHandler.prototype.connect;mxEdgeHandler.prototype.connect= +function(a,b,c,d,f){u.apply(this,arguments);n()};g.resizeCell=function(){mxGraph.prototype.resizeCell.apply(this,arguments);n()};g.connectionHandler.addListener(mxEvent.CONNECT,function(){n()})}var p=mxUtils.button(mxResources.get("close"),function(){a.confirm(mxResources.get("areYouSure"),function(){null!=b.parentNode&&(g.destroy(),b.parentNode.removeChild(b));a.hideDialog()})});p.className="geBtn";a.editor.cancelFirst&&d.appendChild(p);var q=mxUtils.button(mxResources.get("insert"),function(){g.clearCellOverlays(); +var c=a.editor.graph.getFreeInsertPoint(),c=a.editor.graph.importCells(g.getModel().getChildren(g.getDefaultParent()),c.x,c.y),d=a.editor.graph.view,f=d.getBounds(c);f.x-=d.translate.x;f.y-=d.translate.y;a.editor.graph.scrollRectToVisible(f);a.editor.graph.setSelectionCells(c);null!=b.parentNode&&(g.destroy(),b.parentNode.removeChild(b));a.hideDialog()});d.appendChild(q);q.className="geBtn gePrimaryBtn";a.editor.cancelFirst||d.appendChild(p)};this.container=d}; CreateGraphDialog.prototype.connectImage=new mxImage(mxClient.IS_SVG?"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAAaCAYAAACpSkzOAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBNYWNpbnRvc2giIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6RjQ3OTk0QjMyRDcyMTFFNThGQThGNDVBMjNBMjFDMzkiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6RjQ3OTk0QjQyRDcyMTFFNThGQThGNDVBMjNBMjFDMzkiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDoyRjA0N0I2MjJENzExMUU1OEZBOEY0NUEyM0EyMUMzOSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpGNDc5OTRCMjJENzIxMUU1OEZBOEY0NUEyM0EyMUMzOSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PjIf+MgAAATlSURBVHjanFZraFxFFD735u4ru3ls0yZG26ShgmJoKK1J2vhIYzBgRdtIURHyw1hQUH9IxIgI2h8iCEUF/1RRlNQYCsYfCTHVhiTtNolpZCEStqSC22xIsrs1bDfu7t37Gs/cO3Ozxs1DBw73zpk555vzmHNGgJ0NYatFgmNLYUHYUoHASMz5ijmgVLmxgfKCUiBxC4ACJAeSG8nb1dVVOTc3dyoSibwWDofPBIPBJzo7O8vpGtvjpDICGztxkciECpF2LS0tvZtOpwNkk5FKpcYXFxffwL1+JuPgllPj8nk1F6RoaGjoKCqZ5ApljZDZO4SMRA0SuG2QUJIQRV8HxMOM9vf3H0ZZH9Nhg20MMl2QkFwjIyNHWlpahtADnuUMwLcRHX5aNSBjCJYEsSSLUeLEbhGe3ytCmQtA1/XY+Pj46dbW1iDuyCJp9BC5ycBj4hoeHq5ra2sbw0Xn1ZgBZ+dVkA1Lc+6p0Ck2p0QS4Ox9EhwpEylYcmBg4LH29vYQLilIOt0u5FhDfevNZDI/u93uw6PLOrwTUtjxrbPYbhD42WgMrF8JmR894ICmCgnQjVe8Xu8pXEkzMJKbuo5oNPomBbm1ZsD7s2kwFA1JZ6QBUXWT1nmGNc/qoMgavDcrQzxjQGFh4aOYIJ0sFAXcEtui4uLiVjr5KpSBVFYDDZVrWUaKRRWSAYeK0fmKykgDXbVoNaPChRuyqdDv97czL5nXxQbq6empQmsaklkDBiNpSwFVrmr2P6UyicD5piI4f8wHh0oEm8/p4h8pyGiEWvVQd3e3nxtjAzU1NR2jP7NRBWQ8GbdEzzJAmc0V3RR4cI8Dvmwuhc8fKUFA0d6/ltHg5p+Kuaejo6OeY0jcNJ/PV00ZS0nFUoZRvvFS1bZFsKHCCQ2Pl8H0chY+C96B6ZUsrCQ1qKtwQVFRURW/QhIXMAzDPAZ6BgOr8tTa8dDxCmiYGApaJbJMxSzV+brE8pdgWkcpY5dbMF1AR9XH8/xu2ilef48bvn92n82ZwHh+8ssqTEXS9p7dHisiiURikd8PbpExNTU1UVNTA3V3Y7lC16n0gpB/NwpNcZjfa7dScC4Qh0kOQCwnlEgi3F/hMVl9fX0zvKrzSk2lfXjRhj0eT/2rvWG4+Pta3oJY7XfC3hInXAv/ldeFLx8shQ+eqQL0UAAz7ylkpej5eNZRVBWL6BU6ef14OYiY1oqyTtmsavr/5koaRucT1pzx+ZpL1+GV5nLutksUgIcmtwTRiuuVZXnU5XId7A2swJkfFsymRWC91hHg1Viw6x23+7vn9sPJ+j20BE1hCXqSWaNSQ8ScbknRZWxub1PGCw/fBV+c3AeijlUbY5bBjEqr9GuYZP4jP41WudGSC6erTRCqdGZm5i1WvXWeDHnbBCZGc2Nj4wBl/hZOwrmBBfgmlID1HmGJutHaF+tKoevp/XCgstDkjo2NtWKLuc6AVN4mNjY+s1XQxoenOoFuDPHGtnRbJj9ej5GvL0dI7+giuRyMk1giazc+DP6vgUDgOJVlOv7R+PJ12QIeL6SyeDz+Kfp8ZrNWjgDTsVjsQ7qXyTjztXJhm9ePxFLfMTg4eG9tbe1RTP9KFFYQfHliYmIS69kCC7jKYmKwxxD5P88tkVkqbPPcIps9t4T/+HjcuJ/s5BFJgf4WYABCtxGuxIZ90gAAAABJRU5ErkJggg==": IMAGE_PATH+"/handle-connect.png",26,26); var BackgroundImageDialog=function(a,b){var c=document.createElement("div");c.style.whiteSpace="nowrap";var d=document.createElement("h2");mxUtils.write(d,mxResources.get("backgroundImage"));d.style.marginTop="0px";c.appendChild(d);mxUtils.write(c,mxResources.get("image")+" "+mxResources.get("url")+":");mxUtils.br(c);var d=a.editor.graph.backgroundImage,e=document.createElement("input");e.setAttribute("type","text");e.style.marginTop="4px";e.style.marginBottom="4px";e.style.width="350px";e.value= -null!=d?d.src:"";var g=!1,l=function(){g||""==e.value||a.isOffline()?(m.value="",n.value=""):a.loadImage(mxUtils.trim(e.value),function(a){m.value=a.width;n.value=a.height},function(){a.showError(mxResources.get("error"),mxResources.get("fileNotFound"),mxResources.get("ok"));e.value="";m.value="";n.value=""})};this.init=function(){e.focus();if(Graph.fileSupport){e.setAttribute("placeholder",mxResources.get("dragImagesHere"));var b=c.parentNode,d=null;mxEvent.addListener(b,"dragleave",function(a){null!= -d&&(d.parentNode.removeChild(d),d=null);a.stopPropagation();a.preventDefault()});mxEvent.addListener(b,"dragover",mxUtils.bind(this,function(c){null==d&&(!mxClient.IS_IE||10<document.documentMode)&&(d=a.highlightElement(b));c.stopPropagation();c.preventDefault()}));mxEvent.addListener(b,"drop",mxUtils.bind(this,function(b){null!=d&&(d.parentNode.removeChild(d),d=null);if(0<b.dataTransfer.files.length)a.importFiles(b.dataTransfer.files,0,0,a.maxBackgroundSize,function(a,b,c,d,f,h){e.value=a;l()},function(){}, -function(a){return"image/"==a.type.substring(0,6)},function(a){for(var b=0;b<a.length;b++)a[b]()},!0,a.maxBackgroundBytes,a.maxBackgroundBytes);else if(0<=mxUtils.indexOf(b.dataTransfer.types,"text/uri-list")){var c=b.dataTransfer.getData("text/uri-list");/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(c)&&(e.value=decodeURIComponent(c),l())}b.stopPropagation();b.preventDefault()}),!1)}};c.appendChild(e);mxUtils.br(c);mxUtils.br(c);mxUtils.write(c,mxResources.get("width")+":");var m=document.createElement("input"); -m.setAttribute("type","text");m.style.width="60px";m.style.marginLeft="4px";m.style.marginRight="16px";m.value=null!=d?d.width:"";c.appendChild(m);mxUtils.write(c,mxResources.get("height")+":");var n=document.createElement("input");n.setAttribute("type","text");n.style.width="60px";n.style.marginLeft="4px";n.style.marginRight="16px";n.value=null!=d?d.height:"";c.appendChild(n);d=mxUtils.button(mxResources.get("reset"),function(){e.value="";m.value="";n.value="";g=!1});mxEvent.addListener(d,"mousedown", -function(){g=!0});mxEvent.addListener(d,"touchstart",function(){g=!0});d.className="geBtn";d.width="100";c.appendChild(d);mxUtils.br(c);mxEvent.addListener(e,"change",l);ImageDialog.filePicked=function(a){a.action==google.picker.Action.PICKED&&null!=a.docs[0].thumbnails&&(a=a.docs[0].thumbnails[a.docs[0].thumbnails.length-1],null!=a&&(e.value=a.url,l()));e.focus()};d=document.createElement("div");d.style.marginTop="40px";d.style.textAlign="right";var f=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()}); +null!=d?d.src:"";var g=!1,k=function(){g||""==e.value||a.isOffline()?(l.value="",m.value=""):a.loadImage(mxUtils.trim(e.value),function(a){l.value=a.width;m.value=a.height},function(){a.showError(mxResources.get("error"),mxResources.get("fileNotFound"),mxResources.get("ok"));e.value="";l.value="";m.value=""})};this.init=function(){e.focus();if(Graph.fileSupport){e.setAttribute("placeholder",mxResources.get("dragImagesHere"));var b=c.parentNode,d=null;mxEvent.addListener(b,"dragleave",function(a){null!= +d&&(d.parentNode.removeChild(d),d=null);a.stopPropagation();a.preventDefault()});mxEvent.addListener(b,"dragover",mxUtils.bind(this,function(c){null==d&&(!mxClient.IS_IE||10<document.documentMode)&&(d=a.highlightElement(b));c.stopPropagation();c.preventDefault()}));mxEvent.addListener(b,"drop",mxUtils.bind(this,function(b){null!=d&&(d.parentNode.removeChild(d),d=null);if(0<b.dataTransfer.files.length)a.importFiles(b.dataTransfer.files,0,0,a.maxBackgroundSize,function(a,b,c,d,f,h){e.value=a;k()},function(){}, +function(a){return"image/"==a.type.substring(0,6)},function(a){for(var b=0;b<a.length;b++)a[b]()},!0,a.maxBackgroundBytes,a.maxBackgroundBytes);else if(0<=mxUtils.indexOf(b.dataTransfer.types,"text/uri-list")){var c=b.dataTransfer.getData("text/uri-list");/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(c)&&(e.value=decodeURIComponent(c),k())}b.stopPropagation();b.preventDefault()}),!1)}};c.appendChild(e);mxUtils.br(c);mxUtils.br(c);mxUtils.write(c,mxResources.get("width")+":");var l=document.createElement("input"); +l.setAttribute("type","text");l.style.width="60px";l.style.marginLeft="4px";l.style.marginRight="16px";l.value=null!=d?d.width:"";c.appendChild(l);mxUtils.write(c,mxResources.get("height")+":");var m=document.createElement("input");m.setAttribute("type","text");m.style.width="60px";m.style.marginLeft="4px";m.style.marginRight="16px";m.value=null!=d?d.height:"";c.appendChild(m);d=mxUtils.button(mxResources.get("reset"),function(){e.value="";l.value="";m.value="";g=!1});mxEvent.addListener(d,"mousedown", +function(){g=!0});mxEvent.addListener(d,"touchstart",function(){g=!0});d.className="geBtn";d.width="100";c.appendChild(d);mxUtils.br(c);mxEvent.addListener(e,"change",k);ImageDialog.filePicked=function(a){a.action==google.picker.Action.PICKED&&null!=a.docs[0].thumbnails&&(a=a.docs[0].thumbnails[a.docs[0].thumbnails.length-1],null!=a&&(e.value=a.url,k()));e.focus()};d=document.createElement("div");d.style.marginTop="40px";d.style.textAlign="right";var f=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()}); f.className="geBtn";a.editor.cancelFirst&&d.appendChild(f);if(!a.isOffline()&&"undefined"!=typeof google&&"undefined"!=typeof google.picker&&window.self===window.top){var h=mxUtils.button(mxResources.get("search"),function(){if(null==a.imageSearchPicker){var b=(new google.picker.PickerBuilder).setLocale(mxLanguage).addView(google.picker.ViewId.IMAGE_SEARCH).enableFeature(google.picker.Feature.NAV_HIDDEN);a.imageSearchPicker=b.setCallback(function(a){ImageDialog.filePicked(a)}).build()}a.imageSearchPicker.setVisible(!0)}); h.className="geBtn";d.appendChild(h);null!=a.drive&&"1"==urlParams.photos&&(h=mxUtils.button(mxResources.get("googlePlus"),function(){a.spinner.spin(document.body,mxResources.get("authorizing"))&&a.drive.checkToken(mxUtils.bind(this,function(){a.spinner.stop();if(null==a.photoPicker){var b=gapi.auth.getToken().access_token,b=(new google.picker.PickerBuilder).setAppId(a.drive.appId).setLocale(mxLanguage).setOAuthToken(b).addView(google.picker.ViewId.PHOTOS).addView(google.picker.ViewId.PHOTO_ALBUMS).addView(google.picker.ViewId.PHOTO_UPLOAD); -a.photoPicker=b.setCallback(function(a){ImageDialog.filePicked(a)}).build()}a.photoPicker.setVisible(!0)}))}),h.className="geBtn",d.appendChild(h))}h=mxUtils.button(mxResources.get("apply"),function(){a.hideDialog();b(""!=e.value?new mxImage(mxUtils.trim(e.value),m.value,n.value):null)});h.className="geBtn gePrimaryBtn";d.appendChild(h);a.editor.cancelFirst||d.appendChild(f);c.appendChild(d);this.container=c},ParseDialog=function(a,b,c){function d(b,c){var d=b.split("\n");if("plantUmlPng"==c||"plantUmlSvg"== -c||"plantUmlTxt"==c){var d="plantUmlTxt"==c?PLANT_URL+"/txt/":"plantUmlPng"==c?PLANT_URL+"/png/":PLANT_URL+"/svg/",f=a.editor.graph;if(a.spinner.spin(document.body,mxResources.get("inserting"))){var h=function(a){if(10>a)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,d){c1=a>>2;c2=(a&3)<<4|b>>4;c3=(b&15)<<2|d>>6;c4=d&63;r="";r+=h(c1&63);r+=h(c2&63);r+=h(c3&63);return r+= -h(c4&63)},k=new XMLHttpRequest;k.open("GET",d+function(a){r="";for(q=0;q<a.length;q+=3)r=q+2==a.length?r+e(a.charCodeAt(q),a.charCodeAt(q+1),0):q+1==a.length?r+e(a.charCodeAt(q),0,0):r+e(a.charCodeAt(q),a.charCodeAt(q+1),a.charCodeAt(q+2));return r}(f.bytesToString(pako.deflateRaw(unescape(encodeURIComponent(b))))),!0);"plantUmlTxt"!=c&&(k.responseType="blob");k.onload=function(d){if(200<=this.status&&300>this.status)if("plantUmlTxt"==c)a.spinner.stop(),f.setSelectionCell(a.insertAsPreText(this.response, -g.x,g.y)),f.scrollCellToVisible(f.getSelectionCell());else{var h=new FileReader;h.readAsDataURL(this.response);h.onloadend=function(d){var c=new Image;c.onload=function(){a.spinner.stop();var d=c.width,k=c.height;if(0==d&&0==k){var e=h.result,w=e.indexOf(","),e=decodeURIComponent(escape(atob(e.substring(w+1)))),e=mxUtils.parseXml(e).getElementsByTagName("svg");0<e.length&&(d=parseFloat(e[0].getAttribute("width")),k=parseFloat(e[0].getAttribute("height")))}f.getModel().beginUpdate();try{cell=f.insertVertex(null, -null,b,g.x,g.y,d,k,"shape=image;noLabel=1;verticalAlign=top;aspect=fixed;imageAspect=0;image="+a.convertDataUri(h.result)+";")}finally{f.getModel().endUpdate()}f.setSelectionCell(cell);f.scrollCellToVisible(f.getSelectionCell())};c.src=h.result};h.onerror=function(b){a.handleError(b)}}else a.spinner.stop(),a.handleError(d)};k.onerror=function(b){a.handleError(b)};k.send()}}else if("table"==c){for(var w=null,x=[],u=0,q=0;q<d.length;q++)if(k=mxUtils.trim(d[q]),"create table"==k.substring(0,12).toLowerCase())k= -mxUtils.trim(k.substring(12)),"("==k.charAt(k.length-1)&&(k=k.substring(0,k.lastIndexOf(" "))),w=new mxCell(k,new mxGeometry(u,0,160,26),"swimlane;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=26;fillColor=#e0e0e0;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;marginBottom=0;swimlaneFillColor=#ffffff;align=center;"),w.vertex=!0,x.push(w),k=a.editor.graph.getPreferredSizeForCell(m),null!=k&&(w.geometry.width=k.width+10);else if(null!=w&&")"==k.charAt(0))u+=w.geometry.width+ -40,w=null;else if("("!=k&&null!=w&&(k=k.substring(0,","==k.charAt(k.length-1)?k.length-1:k.length),"primary key"!=k.substring(0,11).toLowerCase())){var l=k.toLowerCase().indexOf("primary key"),k=k.replace(/primary key/i,""),m=new mxCell(k,new mxGeometry(0,0,90,26),"shape=partialRectangle;top=0;left=0;right=0;bottom=0;align=left;verticalAlign=top;spacingTop=-2;fillColor=none;spacingLeft=34;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;dropTarget=0;");m.vertex= -!0;k=sb.cloneCell(m,0<l?"PK":"");k.connectable=!1;k.style="shape=partialRectangle;top=0;left=0;bottom=0;fillColor=none;align=left;verticalAlign=middle;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[];portConstraint=eastwest;part=1;";k.geometry.width=30;k.geometry.height=26;m.insert(k);k=a.editor.graph.getPreferredSizeForCell(m);null!=k&&w.geometry.width<k.width+10&&(w.geometry.width=Math.min(220,k.width+10));w.insert(m);w.geometry.height+=26}0<x.length&&(f=a.editor.graph,d=f.view, -k=f.getGraphBounds(),f.setSelectionCells(f.importCells(x,Math.ceil(Math.max(0,k.x/d.scale-d.translate.x)+4*f.gridSize),Math.ceil(Math.max(0,(k.y+k.height)/d.scale-d.translate.y)+4*f.gridSize))),f.scrollCellToVisible(f.getSelectionCell()))}else if("list"==c){if(0<d.length){f=a.editor.graph;w=new mxCell(d[0],new mxGeometry(0,0,160,30),"swimlane;fontStyle=1;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;marginBottom=0;swimlaneFillColor=#ffffff;"); -w.vertex=!0;k=f.getPreferredSizeForCell(w);null!=k&&w.geometry.width<k.width+10&&(w.geometry.width=k.width+10);m=[w];if(1<d.length)for(q=1;q<d.length;q++)"--"==d[q]?(k=new mxCell("",new mxGeometry(0,0,40,8),"line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;"),k.vertex=!0,w.geometry.height+=k.geometry.height,w.insert(k),m.push(k)):0<d[q].length&&";"!=d[q].charAt(0)&&(u=new mxCell(d[q], -new mxGeometry(0,0,60,26),"text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;"),u.vertex=!0,k=f.getPreferredSizeForCell(u),null!=k&&u.geometry.width<k.width&&(u.geometry.width=k.width),w.geometry.width=Math.max(w.geometry.width,u.geometry.width),w.geometry.height+=u.geometry.height,w.insert(u),m.push(u));f.getModel().beginUpdate();try{w=f.importCells([w],g.x,g.y)[0],f.fireEvent(new mxEventObject("cellsInserted", -"cells",[w].concat(w.children)))}finally{f.getModel().endUpdate()}f.setSelectionCell(w);f.scrollCellToVisible(f.getSelectionCell())}}else{for(var m=function(a){var b=n[a];null==b&&(b=new mxCell(a,new mxGeometry(0,0,80,30),"whiteSpace=wrap;html=1;"),b.vertex=!0,n[a]=b,x.push(b));return b},n={},x=[],q=0;q<d.length;q++)if(";"!=d[q].charAt(0)){var I=d[q].split("->");2<=I.length&&(u=m(I[0]),l=m(I[I.length-1]),I=new mxCell(2<I.length?I[1]:"",new mxGeometry),I.edge=!0,u.insertEdge(I,!0),l.insertEdge(I,!1), -x.push(I))}if(0<x.length){d=document.createElement("div");d.style.visibility="hidden";document.body.appendChild(d);f=new Graph(d);f.getModel().beginUpdate();try{x=f.importCells(x);for(q=0;q<x.length;q++)f.getModel().isVertex(x[q])&&(k=f.getPreferredSizeForCell(x[q]),x[q].geometry.width=Math.max(x[q].geometry.width,k.width),x[q].geometry.height=Math.max(x[q].geometry.height,k.height));w=new mxFastOrganicLayout(f);w.disableEdgeStyle=!1;w.forceConstant=120;w.execute(f.getDefaultParent())}finally{f.getModel().endUpdate()}f.clearCellOverlays(); -m=[];a.editor.graph.getModel().beginUpdate();try{m=a.editor.graph.importCells(f.getModel().getChildren(f.getDefaultParent()),g.x,g.y),a.editor.graph.fireEvent(new mxEventObject("cellsInserted","cells",m))}finally{a.editor.graph.getModel().endUpdate()}a.editor.graph.setSelectionCells(m);a.editor.graph.scrollCellToVisible(a.editor.graph.getSelectionCell());f.destroy();d.parentNode.removeChild(d)}}}function e(){return"list"==m.value?"Person\n-name: String\n-birthDate: Date\n--\n+getName(): String\n+setName(String): void\n+isBirthday(): boolean": -"table"==m.value?"CREATE TABLE Suppliers\n(\nsupplier_id int NOT NULL PRIMARY KEY,\nsupplier_name char(50) NOT NULL,\ncontact_name char(50),\n);\nCREATE TABLE Customers\n(\ncustomer_id int NOT NULL PRIMARY KEY,\ncustomer_name char(50) NOT NULL,\naddress char(50),\ncity char(50),\nstate char(25),\nzip_code char(10)\n);\n":"plantUmlPng"==m.value?"@startuml\nskinparam backgroundcolor transparent\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": -"plantUmlSvg"==m.value||"plantUmlTxt"==m.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 g=a.editor.graph.getFreeInsertPoint();b=document.createElement("div");b.style.textAlign="right";var l=document.createElement("textarea");l.style.resize="none";l.style.width="100%";l.style.height= -"354px";l.style.marginBottom="16px";var m=document.createElement("select");"formatSql"==c&&(m.style.display="none");var n=document.createElement("option");n.setAttribute("value","list");mxUtils.write(n,mxResources.get("list"));"plantUml"!=c&&m.appendChild(n);null!=c&&"fromText"!=c||n.setAttribute("selected","selected");n=document.createElement("option");n.setAttribute("value","table");mxUtils.write(n,mxResources.get("formatSql"));"formatSql"==c&&(m.appendChild(n),n.setAttribute("selected","selected")); -n=document.createElement("option");n.setAttribute("value","diagram");mxUtils.write(n,mxResources.get("diagram"));"plantUml"!=c&&m.appendChild(n);n=document.createElement("option");n.setAttribute("value","plantUmlSvg");mxUtils.write(n,mxResources.get("plantUml")+" ("+mxResources.get("formatSvg")+")");"plantUml"==c&&n.setAttribute("selected","selected");var f=document.createElement("option");f.setAttribute("value","plantUmlPng");mxUtils.write(f,mxResources.get("plantUml")+" ("+mxResources.get("formatPng")+ -")");var h=document.createElement("option");h.setAttribute("value","plantUmlTxt");mxUtils.write(h,mxResources.get("plantUml")+" ("+mxResources.get("text")+")");EditorUi.enablePlantUml&&Graph.fileSupport&&!a.isOffline()&&"plantUml"==c&&(m.appendChild(n),m.appendChild(f),m.appendChild(h));var k=e();l.value=k;b.appendChild(l);this.init=function(){l.focus()};Graph.fileSupport&&(l.addEventListener("dragover",function(a){a.stopPropagation();a.preventDefault()},!1),l.addEventListener("drop",function(a){a.stopPropagation(); -a.preventDefault();if(0<a.dataTransfer.files.length){a=a.dataTransfer.files[0];var b=new FileReader;b.onload=function(a){l.value=a.target.result};b.readAsText(a)}},!1));b.appendChild(m);mxEvent.addListener(m,"change",function(){var a=e();if(0==l.value.length||l.value==k)k=a,l.value=k});c=mxUtils.button(mxResources.get("close"),function(){l.value==k?a.hideDialog():a.confirm(mxResources.get("areYouSure"),function(){a.hideDialog()})});c.className="geBtn";a.editor.cancelFirst&&b.appendChild(c);n=mxUtils.button(mxResources.get("insert"), -function(){a.hideDialog();d(l.value,m.value)});b.appendChild(n);n.className="geBtn gePrimaryBtn";a.editor.cancelFirst||b.appendChild(c);this.container=b},NewDialog=function(a,b,c,d,e,g,l,m,n,f,h,k,q,u,p){function v(){for(var a=!0;E<O.length&&(a||0!=mxUtils.mod(E,30));)a=O[E++],t(a.url,a.libs,a.title,a.tooltip?a.tooltip:a.title,a.select,a.imgUrl,a.info,a.onClick,a.preview),a=!1}function y(){if(aa)c||a.hideDialog(),u(aa,Z,F.value);else if(d)c||a.hideDialog(),d(P,F.value);else{var b=F.value;null!=b&& -0<b.length&&a.pickFolder(a.mode,function(d){a.createFile(b,P,null!=T&&0<T.length?T:null,null,function(){a.hideDialog()},null,d)},a.mode!=App.MODE_GOOGLE||null==a.stateArg||null==a.stateArg.folderId)}}function A(a,b,d,c,f){null!=S&&(S.style.backgroundColor="transparent",S.style.border="1px solid transparent");G.removeAttribute("disabled");P=b;T=d;S=a;aa=c;Z=f;S.style.backgroundColor=m;S.style.border=n}function t(b,d,c,f,h,k,e,w,g){var t=document.createElement("div");t.className="geTemplate";t.style.height= -Q+"px";t.style.width=L+"px";null!=f&&0<f.length&&t.setAttribute("title",f);if(null!=k)t.style.backgroundImage="url("+k+")",t.style.backgroundSize="contain",t.style.backgroundPosition="center center",t.style.backgroundRepeat="no-repeat",mxEvent.addListener(t,"click",function(a){A(t,null,null,b,e)}),mxEvent.addListener(t,"dblclick",function(a){y()});else if(null!=b&&0<b.length){c=g||TEMPLATE_PATH+"/"+b.substring(0,b.length-4)+".png";t.style.backgroundImage="url("+c+")";t.style.backgroundPosition="center center"; -t.style.backgroundRepeat="no-repeat";var q=!1;mxEvent.addListener(t,"click",function(c){G.setAttribute("disabled","disabled");t.style.backgroundColor="transparent";t.style.border="1px solid transparent";c=b;c=/^https?:\/\//.test(c)&&!a.isCorsEnabledForUrl(c)?PROXY_URL+"?url="+encodeURIComponent(c):TEMPLATE_PATH+"/"+c;mxUtils.get(c,mxUtils.bind(this,function(a){200<=a.getStatus()&&299>=a.getStatus()&&(A(t,a.getText(),d),q&&y())}))});mxEvent.addListener(t,"dblclick",function(a){q=!0})}else t.innerHTML= -'<table width="100%" height="100%"><tr><td align="center" valign="middle">'+mxResources.get(c)+"</td></tr></table>",h&&A(t),null!=w?mxEvent.addListener(t,"click",w):(mxEvent.addListener(t,"click",function(a){A(t)}),mxEvent.addListener(t,"dblclick",function(a){y()}));N.appendChild(t)}function w(){mxEvent.addListener(N,"scroll",function(a){N.scrollTop+N.clientHeight>=N.scrollHeight&&(v(),mxEvent.consume(a))});var a=null,b;for(b in U){var c=document.createElement("div"),d=mxResources.get(b),h=U[b];null== -d&&(d=b.substring(0,1).toUpperCase()+b.substring(1));18<d.length&&(d=d.substring(0,18)+"…");c.style.cssText="display:block;cursor:pointer;padding:6px;white-space:nowrap;margin-bottom:-1px;overflow:hidden;text-overflow:ellipsis;";c.setAttribute("title",d+" ("+h.length+")");mxUtils.write(c,c.getAttribute("title"));null!=f&&(c.style.padding=f);Y.appendChild(c);null==a&&(a=c,a.style.backgroundColor=l);(function(b,d){mxEvent.addListener(c,"click",function(){a!=d&&(a.style.backgroundColor="",a=d, -a.style.backgroundColor=l,N.scrollTop=0,N.innerHTML="",E=0,O=U[b],B=null,v())})})(b,c)}v()}c=null!=c?c:!0;e=null!=e?e:!1;l=null!=l?l:"#ebf2f9";m=null!=m?m:"#e6eff8";n=null!=n?n:"1px solid #ccd9ea";h=null!=h?h:EditorUi.templateFile;var x=document.createElement("div");x.style.height="100%";var C=document.createElement("div");C.style.whiteSpace="nowrap";C.style.height="46px";c&&x.appendChild(C);var z=document.createElement("img");z.setAttribute("border","0");z.setAttribute("align","absmiddle");z.style.width= +a.photoPicker=b.setCallback(function(a){ImageDialog.filePicked(a)}).build()}a.photoPicker.setVisible(!0)}))}),h.className="geBtn",d.appendChild(h))}h=mxUtils.button(mxResources.get("apply"),function(){a.hideDialog();b(""!=e.value?new mxImage(mxUtils.trim(e.value),l.value,m.value):null)});h.className="geBtn gePrimaryBtn";d.appendChild(h);a.editor.cancelFirst||d.appendChild(f);c.appendChild(d);this.container=c},ParseDialog=function(a,b,c){function d(b,c){var d=b.split("\n");if("plantUmlPng"==c||"plantUmlSvg"== +c||"plantUmlTxt"==c){var d="plantUmlTxt"==c?PLANT_URL+"/txt/":"plantUmlPng"==c?PLANT_URL+"/png/":PLANT_URL+"/svg/",f=a.editor.graph;if(a.spinner.spin(document.body,mxResources.get("inserting"))){var h=function(a){if(10>a)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+=h(c1&63);r+=h(c2&63);r+=h(c3&63);return r+= +h(c4&63)},n=new XMLHttpRequest;n.open("GET",d+function(a){r="";for(p=0;p<a.length;p+=3)r=p+2==a.length?r+e(a.charCodeAt(p),a.charCodeAt(p+1),0):p+1==a.length?r+e(a.charCodeAt(p),0,0):r+e(a.charCodeAt(p),a.charCodeAt(p+1),a.charCodeAt(p+2));return r}(f.bytesToString(pako.deflateRaw(unescape(encodeURIComponent(b))))),!0);"plantUmlTxt"!=c&&(n.responseType="blob");n.onload=function(d){if(200<=this.status&&300>this.status)if("plantUmlTxt"==c)a.spinner.stop(),f.setSelectionCell(a.insertAsPreText(this.response, +g.x,g.y)),f.scrollCellToVisible(f.getSelectionCell());else{var h=new FileReader;h.readAsDataURL(this.response);h.onloadend=function(c){var d=new Image;d.onload=function(){a.spinner.stop();var c=d.width,n=d.height;if(0==c&&0==n){var e=h.result,w=e.indexOf(","),e=decodeURIComponent(escape(atob(e.substring(w+1)))),e=mxUtils.parseXml(e).getElementsByTagName("svg");0<e.length&&(c=parseFloat(e[0].getAttribute("width")),n=parseFloat(e[0].getAttribute("height")))}f.getModel().beginUpdate();try{cell=f.insertVertex(null, +null,b,g.x,g.y,c,n,"shape=image;noLabel=1;verticalAlign=top;aspect=fixed;imageAspect=0;image="+a.convertDataUri(h.result)+";")}finally{f.getModel().endUpdate()}f.setSelectionCell(cell);f.scrollCellToVisible(f.getSelectionCell())};d.src=h.result};h.onerror=function(b){a.handleError(b)}}else a.spinner.stop(),a.handleError(d)};n.onerror=function(b){a.handleError(b)};n.send()}}else if("table"==c){for(var w=null,x=[],u=0,p=0;p<d.length;p++)if(n=mxUtils.trim(d[p]),"create table"==n.substring(0,12).toLowerCase())n= +mxUtils.trim(n.substring(12)),"("==n.charAt(n.length-1)&&(n=n.substring(0,n.lastIndexOf(" "))),w=new mxCell(n,new mxGeometry(u,0,160,26),"swimlane;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=26;fillColor=#e0e0e0;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;marginBottom=0;swimlaneFillColor=#ffffff;align=center;"),w.vertex=!0,x.push(w),n=a.editor.graph.getPreferredSizeForCell(l),null!=n&&(w.geometry.width=n.width+10);else if(null!=w&&")"==n.charAt(0))u+=w.geometry.width+ +40,w=null;else if("("!=n&&null!=w&&(n=n.substring(0,","==n.charAt(n.length-1)?n.length-1:n.length),"primary key"!=n.substring(0,11).toLowerCase())){var k=n.toLowerCase().indexOf("primary key"),n=n.replace(/primary key/i,""),l=new mxCell(n,new mxGeometry(0,0,90,26),"shape=partialRectangle;top=0;left=0;right=0;bottom=0;align=left;verticalAlign=top;spacingTop=-2;fillColor=none;spacingLeft=34;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;dropTarget=0;");l.vertex= +!0;n=sb.cloneCell(l,0<k?"PK":"");n.connectable=!1;n.style="shape=partialRectangle;top=0;left=0;bottom=0;fillColor=none;align=left;verticalAlign=middle;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[];portConstraint=eastwest;part=1;";n.geometry.width=30;n.geometry.height=26;l.insert(n);n=a.editor.graph.getPreferredSizeForCell(l);null!=n&&w.geometry.width<n.width+10&&(w.geometry.width=Math.min(220,n.width+10));w.insert(l);w.geometry.height+=26}0<x.length&&(f=a.editor.graph,d=f.view, +n=f.getGraphBounds(),f.setSelectionCells(f.importCells(x,Math.ceil(Math.max(0,n.x/d.scale-d.translate.x)+4*f.gridSize),Math.ceil(Math.max(0,(n.y+n.height)/d.scale-d.translate.y)+4*f.gridSize))),f.scrollCellToVisible(f.getSelectionCell()))}else if("list"==c){if(0<d.length){f=a.editor.graph;w=new mxCell(d[0],new mxGeometry(0,0,160,30),"swimlane;fontStyle=1;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;marginBottom=0;swimlaneFillColor=#ffffff;"); +w.vertex=!0;n=f.getPreferredSizeForCell(w);null!=n&&w.geometry.width<n.width+10&&(w.geometry.width=n.width+10);l=[w];if(1<d.length)for(p=1;p<d.length;p++)"--"==d[p]?(n=new mxCell("",new mxGeometry(0,0,40,8),"line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;"),n.vertex=!0,w.geometry.height+=n.geometry.height,w.insert(n),l.push(n)):0<d[p].length&&";"!=d[p].charAt(0)&&(u=new mxCell(d[p], +new mxGeometry(0,0,60,26),"text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;"),u.vertex=!0,n=f.getPreferredSizeForCell(u),null!=n&&u.geometry.width<n.width&&(u.geometry.width=n.width),w.geometry.width=Math.max(w.geometry.width,u.geometry.width),w.geometry.height+=u.geometry.height,w.insert(u),l.push(u));f.getModel().beginUpdate();try{w=f.importCells([w],g.x,g.y)[0],f.fireEvent(new mxEventObject("cellsInserted", +"cells",[w].concat(w.children)))}finally{f.getModel().endUpdate()}f.setSelectionCell(w);f.scrollCellToVisible(f.getSelectionCell())}}else{for(var l=function(a){var b=m[a];null==b&&(b=new mxCell(a,new mxGeometry(0,0,80,30),"whiteSpace=wrap;html=1;"),b.vertex=!0,m[a]=b,x.push(b));return b},m={},x=[],p=0;p<d.length;p++)if(";"!=d[p].charAt(0)){var I=d[p].split("->");2<=I.length&&(u=l(I[0]),k=l(I[I.length-1]),I=new mxCell(2<I.length?I[1]:"",new mxGeometry),I.edge=!0,u.insertEdge(I,!0),k.insertEdge(I,!1), +x.push(I))}if(0<x.length){d=document.createElement("div");d.style.visibility="hidden";document.body.appendChild(d);f=new Graph(d);f.getModel().beginUpdate();try{x=f.importCells(x);for(p=0;p<x.length;p++)f.getModel().isVertex(x[p])&&(n=f.getPreferredSizeForCell(x[p]),x[p].geometry.width=Math.max(x[p].geometry.width,n.width),x[p].geometry.height=Math.max(x[p].geometry.height,n.height));w=new mxFastOrganicLayout(f);w.disableEdgeStyle=!1;w.forceConstant=120;w.execute(f.getDefaultParent())}finally{f.getModel().endUpdate()}f.clearCellOverlays(); +l=[];a.editor.graph.getModel().beginUpdate();try{l=a.editor.graph.importCells(f.getModel().getChildren(f.getDefaultParent()),g.x,g.y),a.editor.graph.fireEvent(new mxEventObject("cellsInserted","cells",l))}finally{a.editor.graph.getModel().endUpdate()}a.editor.graph.setSelectionCells(l);a.editor.graph.scrollCellToVisible(a.editor.graph.getSelectionCell());f.destroy();d.parentNode.removeChild(d)}}}function e(){return"list"==l.value?"Person\n-name: String\n-birthDate: Date\n--\n+getName(): String\n+setName(String): void\n+isBirthday(): boolean": +"table"==l.value?"CREATE TABLE Suppliers\n(\nsupplier_id int NOT NULL PRIMARY KEY,\nsupplier_name char(50) NOT NULL,\ncontact_name char(50),\n);\nCREATE TABLE Customers\n(\ncustomer_id int NOT NULL PRIMARY KEY,\ncustomer_name char(50) NOT NULL,\naddress char(50),\ncity char(50),\nstate char(25),\nzip_code char(10)\n);\n":"plantUmlPng"==l.value?"@startuml\nskinparam backgroundcolor transparent\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": +"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 g=a.editor.graph.getFreeInsertPoint();b=document.createElement("div");b.style.textAlign="right";var k=document.createElement("textarea");k.style.resize="none";k.style.width="100%";k.style.height= +"354px";k.style.marginBottom="16px";var l=document.createElement("select");"formatSql"==c&&(l.style.display="none");var m=document.createElement("option");m.setAttribute("value","list");mxUtils.write(m,mxResources.get("list"));"plantUml"!=c&&l.appendChild(m);null!=c&&"fromText"!=c||m.setAttribute("selected","selected");m=document.createElement("option");m.setAttribute("value","table");mxUtils.write(m,mxResources.get("formatSql"));"formatSql"==c&&(l.appendChild(m),m.setAttribute("selected","selected")); +m=document.createElement("option");m.setAttribute("value","diagram");mxUtils.write(m,mxResources.get("diagram"));"plantUml"!=c&&l.appendChild(m);m=document.createElement("option");m.setAttribute("value","plantUmlSvg");mxUtils.write(m,mxResources.get("plantUml")+" ("+mxResources.get("formatSvg")+")");"plantUml"==c&&m.setAttribute("selected","selected");var f=document.createElement("option");f.setAttribute("value","plantUmlPng");mxUtils.write(f,mxResources.get("plantUml")+" ("+mxResources.get("formatPng")+ +")");var h=document.createElement("option");h.setAttribute("value","plantUmlTxt");mxUtils.write(h,mxResources.get("plantUml")+" ("+mxResources.get("text")+")");EditorUi.enablePlantUml&&Graph.fileSupport&&!a.isOffline()&&"plantUml"==c&&(l.appendChild(m),l.appendChild(f),l.appendChild(h));var n=e();k.value=n;b.appendChild(k);this.init=function(){k.focus()};Graph.fileSupport&&(k.addEventListener("dragover",function(a){a.stopPropagation();a.preventDefault()},!1),k.addEventListener("drop",function(a){a.stopPropagation(); +a.preventDefault();if(0<a.dataTransfer.files.length){a=a.dataTransfer.files[0];var b=new FileReader;b.onload=function(a){k.value=a.target.result};b.readAsText(a)}},!1));b.appendChild(l);mxEvent.addListener(l,"change",function(){var a=e();if(0==k.value.length||k.value==n)n=a,k.value=n});c=mxUtils.button(mxResources.get("close"),function(){k.value==n?a.hideDialog():a.confirm(mxResources.get("areYouSure"),function(){a.hideDialog()})});c.className="geBtn";a.editor.cancelFirst&&b.appendChild(c);m=mxUtils.button(mxResources.get("insert"), +function(){a.hideDialog();d(k.value,l.value)});b.appendChild(m);m.className="geBtn gePrimaryBtn";a.editor.cancelFirst||b.appendChild(c);this.container=b},NewDialog=function(a,b,c,d,e,g,k,l,m,f,h,n,u,p,q){function v(){for(var a=!0;E<O.length&&(a||0!=mxUtils.mod(E,30));)a=O[E++],t(a.url,a.libs,a.title,a.tooltip?a.tooltip:a.title,a.select,a.imgUrl,a.info,a.onClick,a.preview),a=!1}function y(){if(aa)c||a.hideDialog(),p(aa,Z,F.value);else if(d)c||a.hideDialog(),d(P,F.value);else{var b=F.value;null!=b&& +0<b.length&&a.pickFolder(a.mode,function(c){a.createFile(b,P,null!=T&&0<T.length?T:null,null,function(){a.hideDialog()},null,c)},a.mode!=App.MODE_GOOGLE||null==a.stateArg||null==a.stateArg.folderId)}}function B(a,b,c,d,f){null!=S&&(S.style.backgroundColor="transparent",S.style.border="1px solid transparent");G.removeAttribute("disabled");P=b;T=c;S=a;aa=d;Z=f;S.style.backgroundColor=l;S.style.border=m}function t(b,c,d,f,h,n,e,w,g){var t=document.createElement("div");t.className="geTemplate";t.style.height= +Q+"px";t.style.width=L+"px";null!=f&&0<f.length&&t.setAttribute("title",f);if(null!=n)t.style.backgroundImage="url("+n+")",t.style.backgroundSize="contain",t.style.backgroundPosition="center center",t.style.backgroundRepeat="no-repeat",mxEvent.addListener(t,"click",function(a){B(t,null,null,b,e)}),mxEvent.addListener(t,"dblclick",function(a){y()});else if(null!=b&&0<b.length){d=g||TEMPLATE_PATH+"/"+b.substring(0,b.length-4)+".png";t.style.backgroundImage="url("+d+")";t.style.backgroundPosition="center center"; +t.style.backgroundRepeat="no-repeat";var p=!1;mxEvent.addListener(t,"click",function(d){G.setAttribute("disabled","disabled");t.style.backgroundColor="transparent";t.style.border="1px solid transparent";d=b;d=/^https?:\/\//.test(d)&&!a.isCorsEnabledForUrl(d)?PROXY_URL+"?url="+encodeURIComponent(d):TEMPLATE_PATH+"/"+d;mxUtils.get(d,mxUtils.bind(this,function(a){200<=a.getStatus()&&299>=a.getStatus()&&(B(t,a.getText(),c),p&&y())}))});mxEvent.addListener(t,"dblclick",function(a){p=!0})}else t.innerHTML= +'<table width="100%" height="100%"><tr><td align="center" valign="middle">'+mxResources.get(d)+"</td></tr></table>",h&&B(t),null!=w?mxEvent.addListener(t,"click",w):(mxEvent.addListener(t,"click",function(a){B(t)}),mxEvent.addListener(t,"dblclick",function(a){y()}));N.appendChild(t)}function w(){mxEvent.addListener(N,"scroll",function(a){N.scrollTop+N.clientHeight>=N.scrollHeight&&(v(),mxEvent.consume(a))});var a=null,b;for(b in U){var c=document.createElement("div"),d=mxResources.get(b),h=U[b];null== +d&&(d=b.substring(0,1).toUpperCase()+b.substring(1));18<d.length&&(d=d.substring(0,18)+"…");c.style.cssText="display:block;cursor:pointer;padding:6px;white-space:nowrap;margin-bottom:-1px;overflow:hidden;text-overflow:ellipsis;";c.setAttribute("title",d+" ("+h.length+")");mxUtils.write(c,c.getAttribute("title"));null!=f&&(c.style.padding=f);Y.appendChild(c);null==a&&(a=c,a.style.backgroundColor=k);(function(b,d){mxEvent.addListener(c,"click",function(){a!=d&&(a.style.backgroundColor="",a=d, +a.style.backgroundColor=k,N.scrollTop=0,N.innerHTML="",E=0,O=U[b],A=null,v())})})(b,c)}v()}c=null!=c?c:!0;e=null!=e?e:!1;k=null!=k?k:"#ebf2f9";l=null!=l?l:"#e6eff8";m=null!=m?m:"1px solid #ccd9ea";h=null!=h?h:EditorUi.templateFile;var x=document.createElement("div");x.style.height="100%";var C=document.createElement("div");C.style.whiteSpace="nowrap";C.style.height="46px";c&&x.appendChild(C);var z=document.createElement("img");z.setAttribute("border","0");z.setAttribute("align","absmiddle");z.style.width= "40px";z.style.height="40px";z.style.marginRight="10px";z.style.paddingBottom="4px";z.src=a.mode==App.MODE_GOOGLE?IMAGE_PATH+"/google-drive-logo.svg":a.mode==App.MODE_DROPBOX?IMAGE_PATH+"/dropbox-logo.svg":a.mode==App.MODE_ONEDRIVE?IMAGE_PATH+"/onedrive-logo.svg":a.mode==App.MODE_GITHUB?IMAGE_PATH+"/github-logo.svg":a.mode==App.MODE_TRELLO?IMAGE_PATH+"/trello-logo.svg":a.mode==App.MODE_BROWSER?IMAGE_PATH+"/osa_database.png":IMAGE_PATH+"/osa_drive-harddisk.png";!b&&c&&C.appendChild(z);c&&mxUtils.write(C, (null==a.mode||a.mode==App.MODE_GOOGLE||a.mode==App.MODE_BROWSER?mxResources.get("diagramName"):mxResources.get("filename"))+":");z=".xml";a.mode==App.MODE_GOOGLE&&null!=a.drive?z=a.drive.extension:a.mode==App.MODE_DROPBOX&&null!=a.dropbox?z=a.dropbox.extension:a.mode==App.MODE_ONEDRIVE&&null!=a.oneDrive?z=a.oneDrive.extension:a.mode==App.MODE_GITHUB&&null!=a.gitHub?z=a.gitHub.extension:a.mode==App.MODE_TRELLO&&null!=a.trello&&(z=a.trello.extension);var F=document.createElement("input");F.setAttribute("value", -a.defaultFilename+z);F.style.marginRight="20px";F.style.marginLeft="10px";F.style.width=b?"220px":"430px";this.init=function(){c&&(F.focus(),mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode||mxClient.IS_QUIRKS?F.select():document.execCommand("selectAll",!1,null))};c&&C.appendChild(F);var C=!1,E=0,G=mxUtils.button(mxResources.get("create"),function(){G.setAttribute("disabled","disabled");y();G.removeAttribute("disabled")});G.className="geBtn gePrimaryBtn";if(k||q){var I=[],B=null,D=function(a){G.setAttribute("disabled", -"disabled");for(var b=0;b<I.length;b++)I[b].className=b==a?"geBtn gePrimaryBtn":"geBtn"},C=!0,z=document.createElement("div");z.style.whiteSpace="nowrap";z.style.height="30px";x.appendChild(z);var H=mxUtils.button(mxResources.get("Templates",null,"Templates"),function(){Y.style.display="";N.style.left="160px";D(0);N.scrollTop=0;N.innerHTML="";E=0;B!=O&&(O=B,v(),B=null)});I.push(H);z.appendChild(H);var M=function(a){Y.style.display="none";N.style.left="30px";D(a?-1:1);null==B&&(B=O);N.scrollTop=0; -N.innerHTML="";var b=new Spinner({lines:12,length:10,width:5,radius:10,rotate:0,color:"#000",speed:1.5,trail:60,shadow:!1,hwaccel:!1,top:"40%",zIndex:2E9});b.spin(N);E=0;var c=function(a,c){b.stop();O=a;c?N.innerHTML=c:0==a.length?N.innerHTML=mxResources.get("noDiagrams",null,"No Diagrams Found"):(N.innerHTML="",v())};a?q(K.value,c):k(c)};k&&(H=mxUtils.button(mxResources.get("Recent",null,"Recent"),function(){M()}),z.appendChild(H),I.push(H));if(q){H=document.createElement("span");H.style.marginLeft= +a.defaultFilename+z);F.style.marginRight="20px";F.style.marginLeft="10px";F.style.width=b?"220px":"430px";this.init=function(){c&&(F.focus(),mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode||mxClient.IS_QUIRKS?F.select():document.execCommand("selectAll",!1,null))};c&&C.appendChild(F);var C=!1,E=0,G=mxUtils.button(mxResources.get("create"),function(){G.setAttribute("disabled","disabled");y();G.removeAttribute("disabled")});G.className="geBtn gePrimaryBtn";if(n||u){var I=[],A=null,D=function(a){G.setAttribute("disabled", +"disabled");for(var b=0;b<I.length;b++)I[b].className=b==a?"geBtn gePrimaryBtn":"geBtn"},C=!0,z=document.createElement("div");z.style.whiteSpace="nowrap";z.style.height="30px";x.appendChild(z);var H=mxUtils.button(mxResources.get("Templates",null,"Templates"),function(){Y.style.display="";N.style.left="160px";D(0);N.scrollTop=0;N.innerHTML="";E=0;A!=O&&(O=A,v(),A=null)});I.push(H);z.appendChild(H);var M=function(a){Y.style.display="none";N.style.left="30px";D(a?-1:1);null==A&&(A=O);N.scrollTop=0; +N.innerHTML="";var b=new Spinner({lines:12,length:10,width:5,radius:10,rotate:0,color:"#000",speed:1.5,trail:60,shadow:!1,hwaccel:!1,top:"40%",zIndex:2E9});b.spin(N);E=0;var c=function(a,c){b.stop();O=a;c?N.innerHTML=c:0==a.length?N.innerHTML=mxResources.get("noDiagrams",null,"No Diagrams Found"):(N.innerHTML="",v())};a?u(K.value,c):n(c)};n&&(H=mxUtils.button(mxResources.get("Recent",null,"Recent"),function(){M()}),z.appendChild(H),I.push(H));if(u){H=document.createElement("span");H.style.marginLeft= "10px";H.innerHTML=mxResources.get("search")+":";z.appendChild(H);var K=document.createElement("input");K.style.marginRight="10px";K.style.marginLeft="10px";K.style.width="220px";mxEvent.addListener(K,"keypress",function(a){13==a.keyCode&&M(!0)});z.appendChild(K);H=mxUtils.button(mxResources.get("search"),function(){M(!0)});H.className="geBtn";z.appendChild(H)}D(0)}var T=null,P=null,S=null,aa=null,Z=null,N=document.createElement("div");N.style.border="1px solid #d3d3d3";N.style.position="absolute"; N.style.left="160px";N.style.right="34px";C=(c?72:40)+(C?30:0);N.style.top=C+"px";N.style.bottom="68px";N.style.margin="6px 0 0 -1px";N.style.padding="6px";N.style.overflow="auto";var Y=document.createElement("div");Y.style.cssText="position:absolute;left:30px;width:128px;top:"+C+"px;bottom:68px;margin-top:6px;overflow:auto;border:1px solid #d3d3d3;";var Q=140,L=140,U={},R=1;U.basic=[{title:"blankDiagram",select:!0}];var O=U.basic;if(!b){x.appendChild(Y);x.appendChild(N);var V=!1;/^https?:\/\//.test(h)&& !a.isCorsEnabledForUrl(h)&&(h=PROXY_URL+"?url="+encodeURIComponent(h));mxUtils.get(h,function(a){if(!V){V=!0;for(a=a.getXml().documentElement.firstChild;null!=a;){if("undefined"!==typeof a.getAttribute){var b=a.getAttribute("url");if(null!=b){var c=a.getAttribute("section");null==c&&(c=b.indexOf("/"),c=b.substring(0,c));b=U[c];null==b&&(R++,b=[],U[c]=b);b.push({url:a.getAttribute("url"),libs:a.getAttribute("libs"),title:a.getAttribute("title"),tooltip:a.getAttribute("url"),preview:a.getAttribute("preview")})}}a= a.nextSibling}w()}})}mxEvent.addListener(F,"keypress",function(a){13==a.keyCode&&y()});h=document.createElement("div");h.style.marginTop=b?"4px":"16px";h.style.textAlign="right";h.style.position="absolute";h.style.left="40px";h.style.bottom="24px";h.style.right="40px";C=mxUtils.button(mxResources.get("cancel"),function(){null!=g&&g();a.hideDialog(!0)});C.className="geBtn";!a.editor.cancelFirst||e&&null==g||h.appendChild(C);b||a.isOffline()||!c||null!=d||e||(z=mxUtils.button(mxResources.get("help"), function(){a.openLink("https://support.draw.io/display/DO/Creating+and+Opening+Files")}),z.className="geBtn",h.appendChild(z));b||"1"==urlParams.embed||e||(b=mxUtils.button(mxResources.get("fromTemplateUrl"),function(){var b=new FilenameDialog(a,"",mxResources.get("create"),function(b){null!=b&&0<b.length&&(b=a.getUrl(window.location.pathname+"?mode="+a.mode+"&title="+encodeURIComponent(F.value)+"&create="+encodeURIComponent(b)),null==a.getCurrentFile()?window.location.href=b:window.openWindow(b))}, -mxResources.get("url"));a.showDialog(b.container,300,80,!0,!0);b.init()}),b.className="geBtn",h.appendChild(b));Graph.fileSupport&&p&&(p=mxUtils.button(mxResources.get("import"),function(){var b=document.createElement("input");b.setAttribute("multiple","multiple");b.setAttribute("type","file");mxEvent.addListener(b,"change",function(c){a.openFiles(b.files,!0)});b.click()}),p.className="geBtn",h.appendChild(p));h.appendChild(G);a.editor.cancelFirst||null!=d||e&&null==g||h.appendChild(C);x.appendChild(h); -this.container=x},CreateDialog=function(a,b,c,d,e,g,l,m,n,f,h,k,q,u,p){function v(c,d,f,h){function e(){mxEvent.addListener(g,"click",function(){var c=f;if(l){var d=w.value,h=d.lastIndexOf(".");if(0>b.lastIndexOf(".")&&0>h){var c=null!=c?c:z.value,k="";c==App.MODE_GOOGLE?k=a.drive.extension:c==App.MODE_GITHUB?k=a.gitHub.extension:c==App.MODE_TRELLO?k=a.trello.extension:c==App.MODE_DROPBOX?k=a.dropbox.extension:c==App.MODE_ONEDRIVE?k=a.oneDrive.extension:c==App.MODE_DEVICE&&(k=".xml");0<=h&&(d=d.substring(0, -h));w.value=d+k}}y(f)})}var g=document.createElement("a");g.style.overflow="hidden";var t=document.createElement("img");t.src=c;t.setAttribute("border","0");t.setAttribute("align","absmiddle");t.style.width="60px";t.style.height="60px";t.style.paddingBottom="6px";g.style.display=mxClient.IS_QUIRKS?"inline":"inline-block";g.className="geBaseButton";g.style.position="relative";g.style.margin="4px";g.style.padding="8px 8px 10px 8px";g.style.whiteSpace="nowrap";g.appendChild(t);mxClient.IS_QUIRKS&&(g.style.cssFloat= -"left",g.style.zoom="1");g.style.color="gray";g.style.fontSize="11px";var q=document.createElement("div");g.appendChild(q);mxUtils.write(q,d);if(null!=h&&null==a[h]){t.style.visibility="hidden";mxUtils.setOpacity(q,10);var u=new Spinner({lines:12,length:12,width:5,radius:10,rotate:0,color:"#000",speed:1.5,trail:60,shadow:!1,hwaccel:!1,top:"40%",zIndex:2E9});u.spin(g);var v=window.setTimeout(function(){null==a[h]&&(u.stop(),g.style.display="none")},3E4);a.addListener("clientLoaded",mxUtils.bind(this, -function(){null!=a[h]&&(window.clearTimeout(v),mxUtils.setOpacity(q,100),t.style.visibility="",u.stop(),e())}))}else e();x.appendChild(g);++C==k&&(mxUtils.br(x),C=0)}function y(b){var d=w.value;if(null==b||null!=d&&0<d.length)a.hideDialog(),c(d,b)}l=null!=l?l:!0;m=null!=m?m:!0;k=null!=k?k:4;var A=document.createElement("div");null==d&&a.addLanguageMenu(A);var t=document.createElement("h2");mxUtils.write(t,e||mxResources.get("create"));t.style.marginTop="0px";t.style.marginBottom="24px";A.appendChild(t); -mxUtils.write(A,mxResources.get("filename")+":");var w=document.createElement("input");w.setAttribute("value",b);w.style.width="280px";w.style.marginLeft="10px";w.style.marginBottom="20px";this.init=function(){w.focus();mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode||mxClient.IS_QUIRKS?w.select():document.execCommand("selectAll",!1,null)};A.appendChild(w);null!=q&&null!=u&&"image/"==u.substring(0,6)&&(w.style.width="160px",e=null,"image/svg+xml"==u&&mxClient.IS_SVG?(e=document.createElement("div"), -e.innerHTML=mxUtils.trim(q),q=e.getElementsByTagName("svg")[0],u=parseInt(q.getAttribute("width")),p=parseInt(q.getAttribute("height")),q.setAttribute("viewBox","0 0 "+u+" "+p),q.setAttribute("width","120px"),q.setAttribute("height","80px")):(e=document.createElement("img"),e.setAttribute("src","data:"+u+(p?";base64,":";utf8,")+q)),e.style.position="absolute",e.style.top="70px",e.style.right="100px",e.style.maxWidth="120px",e.style.maxHeight="80px",mxUtils.setPrefixedStyle(e.style,"transform","translate(50%,-50%)"), -A.appendChild(e),n&&Editor.popupsAllowed&&(e.style.cursor="pointer",mxEvent.addListener(e,"click",function(){y("_blank")})));mxUtils.br(A);var x=document.createElement("div");x.style.textAlign="center";var C=0;x.style.marginTop="6px";A.appendChild(x);var z=document.createElement("select");z.style.marginLeft="10px";a.isOfflineApp()||a.isOffline()||("function"===typeof window.DriveClient&&(e=document.createElement("option"),e.setAttribute("value",App.MODE_GOOGLE),mxUtils.write(e,mxResources.get("googleDrive")), +mxResources.get("url"));a.showDialog(b.container,300,80,!0,!0);b.init()}),b.className="geBtn",h.appendChild(b));Graph.fileSupport&&q&&(q=mxUtils.button(mxResources.get("import"),function(){var b=document.createElement("input");b.setAttribute("multiple","multiple");b.setAttribute("type","file");mxEvent.addListener(b,"change",function(c){a.openFiles(b.files,!0)});b.click()}),q.className="geBtn",h.appendChild(q));h.appendChild(G);a.editor.cancelFirst||null!=d||e&&null==g||h.appendChild(C);x.appendChild(h); +this.container=x},CreateDialog=function(a,b,c,d,e,g,k,l,m,f,h,n,u,p,q){function v(c,d,f,h){function e(){mxEvent.addListener(g,"click",function(){var c=f;if(k){var d=w.value,h=d.lastIndexOf(".");if(0>b.lastIndexOf(".")&&0>h){var c=null!=c?c:z.value,n="";c==App.MODE_GOOGLE?n=a.drive.extension:c==App.MODE_GITHUB?n=a.gitHub.extension:c==App.MODE_TRELLO?n=a.trello.extension:c==App.MODE_DROPBOX?n=a.dropbox.extension:c==App.MODE_ONEDRIVE?n=a.oneDrive.extension:c==App.MODE_DEVICE&&(n=".xml");0<=h&&(d=d.substring(0, +h));w.value=d+n}}y(f)})}var g=document.createElement("a");g.style.overflow="hidden";var t=document.createElement("img");t.src=c;t.setAttribute("border","0");t.setAttribute("align","absmiddle");t.style.width="60px";t.style.height="60px";t.style.paddingBottom="6px";g.style.display=mxClient.IS_QUIRKS?"inline":"inline-block";g.className="geBaseButton";g.style.position="relative";g.style.margin="4px";g.style.padding="8px 8px 10px 8px";g.style.whiteSpace="nowrap";g.appendChild(t);mxClient.IS_QUIRKS&&(g.style.cssFloat= +"left",g.style.zoom="1");g.style.color="gray";g.style.fontSize="11px";var p=document.createElement("div");g.appendChild(p);mxUtils.write(p,d);if(null!=h&&null==a[h]){t.style.visibility="hidden";mxUtils.setOpacity(p,10);var u=new Spinner({lines:12,length:12,width:5,radius:10,rotate:0,color:"#000",speed:1.5,trail:60,shadow:!1,hwaccel:!1,top:"40%",zIndex:2E9});u.spin(g);var q=window.setTimeout(function(){null==a[h]&&(u.stop(),g.style.display="none")},3E4);a.addListener("clientLoaded",mxUtils.bind(this, +function(){null!=a[h]&&(window.clearTimeout(q),mxUtils.setOpacity(p,100),t.style.visibility="",u.stop(),e())}))}else e();x.appendChild(g);++C==n&&(mxUtils.br(x),C=0)}function y(b){var d=w.value;if(null==b||null!=d&&0<d.length)a.hideDialog(),c(d,b)}k=null!=k?k:!0;l=null!=l?l:!0;n=null!=n?n:4;var B=document.createElement("div");null==d&&a.addLanguageMenu(B);var t=document.createElement("h2");mxUtils.write(t,e||mxResources.get("create"));t.style.marginTop="0px";t.style.marginBottom="24px";B.appendChild(t); +mxUtils.write(B,mxResources.get("filename")+":");var w=document.createElement("input");w.setAttribute("value",b);w.style.width="280px";w.style.marginLeft="10px";w.style.marginBottom="20px";this.init=function(){w.focus();mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode||mxClient.IS_QUIRKS?w.select():document.execCommand("selectAll",!1,null)};B.appendChild(w);null!=u&&null!=p&&"image/"==p.substring(0,6)&&(w.style.width="160px",e=null,"image/svg+xml"==p&&mxClient.IS_SVG?(e=document.createElement("div"), +e.innerHTML=mxUtils.trim(u),u=e.getElementsByTagName("svg")[0],p=parseInt(u.getAttribute("width")),q=parseInt(u.getAttribute("height")),u.setAttribute("viewBox","0 0 "+p+" "+q),u.setAttribute("width","120px"),u.setAttribute("height","80px")):(e=document.createElement("img"),e.setAttribute("src","data:"+p+(q?";base64,":";utf8,")+u)),e.style.position="absolute",e.style.top="70px",e.style.right="100px",e.style.maxWidth="120px",e.style.maxHeight="80px",mxUtils.setPrefixedStyle(e.style,"transform","translate(50%,-50%)"), +B.appendChild(e),m&&Editor.popupsAllowed&&(e.style.cursor="pointer",mxEvent.addListener(e,"click",function(){y("_blank")})));mxUtils.br(B);var x=document.createElement("div");x.style.textAlign="center";var C=0;x.style.marginTop="6px";B.appendChild(x);var z=document.createElement("select");z.style.marginLeft="10px";a.isOfflineApp()||a.isOffline()||("function"===typeof window.DriveClient&&(e=document.createElement("option"),e.setAttribute("value",App.MODE_GOOGLE),mxUtils.write(e,mxResources.get("googleDrive")), z.appendChild(e),v(IMAGE_PATH+"/google-drive-logo.svg",mxResources.get("googleDrive"),App.MODE_GOOGLE,"drive")),"function"===typeof window.OneDriveClient&&(e=document.createElement("option"),e.setAttribute("value",App.MODE_ONEDRIVE),mxUtils.write(e,mxResources.get("oneDrive")),z.appendChild(e),a.mode==App.MODE_ONEDRIVE&&e.setAttribute("selected","selected"),v(IMAGE_PATH+"/onedrive-logo.svg",mxResources.get("oneDrive"),App.MODE_ONEDRIVE,"oneDrive")),"function"===typeof window.DropboxClient&&(e=document.createElement("option"), e.setAttribute("value",App.MODE_DROPBOX),mxUtils.write(e,mxResources.get("dropbox")),z.appendChild(e),a.mode==App.MODE_DROPBOX&&e.setAttribute("selected","selected"),v(IMAGE_PATH+"/dropbox-logo.svg",mxResources.get("dropbox"),App.MODE_DROPBOX,"dropbox")),null!=a.gitHub&&(e=document.createElement("option"),e.setAttribute("value",App.MODE_GITHUB),mxUtils.write(e,mxResources.get("github")),z.appendChild(e),v(IMAGE_PATH+"/github-logo.svg",mxResources.get("github"),App.MODE_GITHUB,"gitHub")),null!=a.trello&& -(e=document.createElement("option"),e.setAttribute("value",App.MODE_TRELLO),mxUtils.write(e,mxResources.get("trello")),z.appendChild(e),v(IMAGE_PATH+"/trello-logo.svg",mxResources.get("trello"),App.MODE_TRELLO,"trello")));if(!Editor.useLocalStorage||"device"==urlParams.storage||null!=a.getCurrentFile()&&!mxClient.IS_IOS)e=document.createElement("option"),e.setAttribute("value",App.MODE_DEVICE),mxUtils.write(e,mxResources.get("device")),z.appendChild(e),a.mode!=App.MODE_DEVICE&&m||e.setAttribute("selected", -"selected"),h&&v(IMAGE_PATH+"/osa_drive-harddisk.png",mxResources.get("device"),App.MODE_DEVICE);m&&isLocalStorage&&"0"!=urlParams.browser&&(m=document.createElement("option"),m.setAttribute("value",App.MODE_BROWSER),mxUtils.write(m,mxResources.get("browser")),z.appendChild(m),a.mode==App.MODE_BROWSER&&m.setAttribute("selected","selected"),v(IMAGE_PATH+"/osa_database.png",mxResources.get("browser"),App.MODE_BROWSER));m=document.createElement("div");m.style.marginTop="26px";m.style.textAlign="center"; -null!=f&&(e=mxUtils.button(mxResources.get("help"),function(){a.openLink(f)}),e.className="geBtn",m.appendChild(e));e=mxUtils.button(mxResources.get("cancel"),function(){null!=d?d():(a.fileLoaded(null),a.hideDialog(),window.close(),window.location.href=a.getUrl())});e.className="geBtn";a.editor.cancelFirst&&m.appendChild(e);null==d&&(q=mxUtils.button(mxResources.get("decideLater"),function(){y(null)}),q.className="geBtn",m.appendChild(q));n&&Editor.popupsAllowed&&(n=mxUtils.button(mxResources.get("openInNewWindow"), -function(){y("_blank")}),n.className="geBtn",m.appendChild(n));mxClient.IS_IOS||(g=mxUtils.button(g||mxResources.get("create"),function(){y(h?"download":App.MODE_DEVICE)}),g.className="geBtn gePrimaryBtn",m.appendChild(g));a.editor.cancelFirst||m.appendChild(e);mxEvent.addListener(w,"keypress",function(b){13==b.keyCode?y(App.MODE_DEVICE):27==b.keyCode&&(a.fileLoaded(null),a.hideDialog(),window.close())});A.appendChild(m);this.container=A},PopupDialog=function(a,b,c,d,e){e=null!=e?e:!0;var g=document.createElement("div"); -g.style.textAlign="left";mxUtils.write(g,mxResources.get("fileOpenLocation"));mxUtils.br(g);mxUtils.br(g);var l=mxUtils.button(mxResources.get("openInThisWindow"),function(){e&&a.hideDialog();null!=d&&d()});l.className="geBtn";l.style.marginBottom="8px";l.style.width="280px";g.appendChild(l);mxUtils.br(g);var m=mxUtils.button(mxResources.get("openInNewWindow"),function(){e&&a.hideDialog();null!=c&&c();a.openLink(b,null,!0)});m.className="geBtn gePrimaryBtn";m.style.width=l.style.width;g.appendChild(m); -mxUtils.br(g);mxUtils.br(g);mxUtils.write(g,mxResources.get("allowPopups"));this.container=g},ImageDialog=function(a,b,c,d,e,g){g=null!=g?g:!0;var l=a.editor.graph,m=document.createElement("div");mxUtils.write(m,b);b=document.createElement("div");b.className="geTitle";b.style.backgroundColor="transparent";b.style.borderColor="transparent";b.style.whiteSpace="nowrap";b.style.textOverflow="clip";b.style.cursor="default";mxClient.IS_VML||(b.style.paddingRight="20px");var n=document.createElement("input"); -n.setAttribute("value",c);n.setAttribute("type","text");n.setAttribute("spellcheck","false");n.setAttribute("autocorrect","off");n.setAttribute("autocomplete","off");n.setAttribute("autocapitalize","off");n.style.marginTop="6px";n.style.width=(Graph.fileSupport?420:340)+(mxClient.IS_QUIRKS?20:-20)+"px";n.style.backgroundImage="url('"+Dialog.prototype.clearImage+"')";n.style.backgroundRepeat="no-repeat";n.style.backgroundPosition="100% 50%";n.style.paddingRight="14px";c=document.createElement("div"); -c.setAttribute("title",mxResources.get("reset"));c.style.position="relative";c.style.left="-16px";c.style.width="12px";c.style.height="14px";c.style.cursor="pointer";c.style.display=mxClient.IS_VML?"inline":"inline-block";c.style.top=(mxClient.IS_VML?0:3)+"px";c.style.background="url('"+a.editor.transparentImage+"')";mxEvent.addListener(c,"click",function(){n.value="";n.focus()});b.appendChild(n);b.appendChild(c);m.appendChild(b);var f=function(b,c,f,h){var k="data:"==b.substring(0,5);!a.isOffline()|| -k&&"undefined"===typeof chrome?0<b.length&&a.spinner.spin(document.body,mxResources.get("inserting"))?a.loadImage(b,function(k){a.spinner.stop();a.hideDialog();var e=!1===h?1:null!=c&&null!=f?Math.max(c/k.width,f/k.height):Math.min(1,Math.min(520/k.width,520/k.height));g&&(b=a.convertDataUri(b));d(b,Math.round(Number(k.width)*e),Math.round(Number(k.height)*e))},function(){a.spinner.stop();d(null);a.showError(mxResources.get("error"),mxResources.get("fileNotFound"),mxResources.get("ok"))}):(a.hideDialog(), -d(b)):(b=a.convertDataUri(b),c=null==c?120:c,f=null==f?100:f,a.hideDialog(),d(b,c,f))},h=function(b,c){if(null!=b){var h=e?null:l.getModel().getGeometry(l.getSelectionCell());null!=h?f(b,h.width,h.height,c):f(b,null,null,c)}else a.hideDialog(),d(null)};this.init=function(){n.focus();if(Graph.fileSupport){n.setAttribute("placeholder",mxResources.get("dragImagesHere"));var b=m.parentNode,c=null;mxEvent.addListener(b,"dragleave",function(a){null!=c&&(c.parentNode.removeChild(c),c=null);a.stopPropagation(); -a.preventDefault()});mxEvent.addListener(b,"dragover",mxUtils.bind(this,function(d){null==c&&(!mxClient.IS_IE||10<document.documentMode)&&(c=a.highlightElement(b));d.stopPropagation();d.preventDefault()}));mxEvent.addListener(b,"drop",mxUtils.bind(this,function(b){null!=c&&(c.parentNode.removeChild(c),c=null);if(0<b.dataTransfer.files.length)a.importFiles(b.dataTransfer.files,0,0,a.maxImageSize,function(a,b,c,d,f,k,e,g){h(a,g)},function(){},function(a){return"image/"==a.type.substring(0,6)},function(a){for(var b= +(e=document.createElement("option"),e.setAttribute("value",App.MODE_TRELLO),mxUtils.write(e,mxResources.get("trello")),z.appendChild(e),v(IMAGE_PATH+"/trello-logo.svg",mxResources.get("trello"),App.MODE_TRELLO,"trello")));if(!Editor.useLocalStorage||"device"==urlParams.storage||null!=a.getCurrentFile()&&!mxClient.IS_IOS)e=document.createElement("option"),e.setAttribute("value",App.MODE_DEVICE),mxUtils.write(e,mxResources.get("device")),z.appendChild(e),a.mode!=App.MODE_DEVICE&&l||e.setAttribute("selected", +"selected"),h&&v(IMAGE_PATH+"/osa_drive-harddisk.png",mxResources.get("device"),App.MODE_DEVICE);l&&isLocalStorage&&"0"!=urlParams.browser&&(l=document.createElement("option"),l.setAttribute("value",App.MODE_BROWSER),mxUtils.write(l,mxResources.get("browser")),z.appendChild(l),a.mode==App.MODE_BROWSER&&l.setAttribute("selected","selected"),v(IMAGE_PATH+"/osa_database.png",mxResources.get("browser"),App.MODE_BROWSER));l=document.createElement("div");l.style.marginTop="26px";l.style.textAlign="center"; +null!=f&&(e=mxUtils.button(mxResources.get("help"),function(){a.openLink(f)}),e.className="geBtn",l.appendChild(e));e=mxUtils.button(mxResources.get("cancel"),function(){null!=d?d():(a.fileLoaded(null),a.hideDialog(),window.close(),window.location.href=a.getUrl())});e.className="geBtn";a.editor.cancelFirst&&l.appendChild(e);null==d&&(u=mxUtils.button(mxResources.get("decideLater"),function(){y(null)}),u.className="geBtn",l.appendChild(u));m&&Editor.popupsAllowed&&(m=mxUtils.button(mxResources.get("openInNewWindow"), +function(){y("_blank")}),m.className="geBtn",l.appendChild(m));mxClient.IS_IOS||(g=mxUtils.button(g||mxResources.get("create"),function(){y(h?"download":App.MODE_DEVICE)}),g.className="geBtn gePrimaryBtn",l.appendChild(g));a.editor.cancelFirst||l.appendChild(e);mxEvent.addListener(w,"keypress",function(b){13==b.keyCode?y(App.MODE_DEVICE):27==b.keyCode&&(a.fileLoaded(null),a.hideDialog(),window.close())});B.appendChild(l);this.container=B},PopupDialog=function(a,b,c,d,e){e=null!=e?e:!0;var g=document.createElement("div"); +g.style.textAlign="left";mxUtils.write(g,mxResources.get("fileOpenLocation"));mxUtils.br(g);mxUtils.br(g);var k=mxUtils.button(mxResources.get("openInThisWindow"),function(){e&&a.hideDialog();null!=d&&d()});k.className="geBtn";k.style.marginBottom="8px";k.style.width="280px";g.appendChild(k);mxUtils.br(g);var l=mxUtils.button(mxResources.get("openInNewWindow"),function(){e&&a.hideDialog();null!=c&&c();a.openLink(b,null,!0)});l.className="geBtn gePrimaryBtn";l.style.width=k.style.width;g.appendChild(l); +mxUtils.br(g);mxUtils.br(g);mxUtils.write(g,mxResources.get("allowPopups"));this.container=g},ImageDialog=function(a,b,c,d,e,g){g=null!=g?g:!0;var k=a.editor.graph,l=document.createElement("div");mxUtils.write(l,b);b=document.createElement("div");b.className="geTitle";b.style.backgroundColor="transparent";b.style.borderColor="transparent";b.style.whiteSpace="nowrap";b.style.textOverflow="clip";b.style.cursor="default";mxClient.IS_VML||(b.style.paddingRight="20px");var m=document.createElement("input"); +m.setAttribute("value",c);m.setAttribute("type","text");m.setAttribute("spellcheck","false");m.setAttribute("autocorrect","off");m.setAttribute("autocomplete","off");m.setAttribute("autocapitalize","off");m.style.marginTop="6px";m.style.width=(Graph.fileSupport?420:340)+(mxClient.IS_QUIRKS?20:-20)+"px";m.style.backgroundImage="url('"+Dialog.prototype.clearImage+"')";m.style.backgroundRepeat="no-repeat";m.style.backgroundPosition="100% 50%";m.style.paddingRight="14px";c=document.createElement("div"); +c.setAttribute("title",mxResources.get("reset"));c.style.position="relative";c.style.left="-16px";c.style.width="12px";c.style.height="14px";c.style.cursor="pointer";c.style.display=mxClient.IS_VML?"inline":"inline-block";c.style.top=(mxClient.IS_VML?0:3)+"px";c.style.background="url('"+a.editor.transparentImage+"')";mxEvent.addListener(c,"click",function(){m.value="";m.focus()});b.appendChild(m);b.appendChild(c);l.appendChild(b);var f=function(b,c,f,h){var n="data:"==b.substring(0,5);!a.isOffline()|| +n&&"undefined"===typeof chrome?0<b.length&&a.spinner.spin(document.body,mxResources.get("inserting"))?a.loadImage(b,function(n){a.spinner.stop();a.hideDialog();var e=!1===h?1:null!=c&&null!=f?Math.max(c/n.width,f/n.height):Math.min(1,Math.min(520/n.width,520/n.height));g&&(b=a.convertDataUri(b));d(b,Math.round(Number(n.width)*e),Math.round(Number(n.height)*e))},function(){a.spinner.stop();d(null);a.showError(mxResources.get("error"),mxResources.get("fileNotFound"),mxResources.get("ok"))}):(a.hideDialog(), +d(b)):(b=a.convertDataUri(b),c=null==c?120:c,f=null==f?100:f,a.hideDialog(),d(b,c,f))},h=function(b,c){if(null!=b){var h=e?null:k.getModel().getGeometry(k.getSelectionCell());null!=h?f(b,h.width,h.height,c):f(b,null,null,c)}else a.hideDialog(),d(null)};this.init=function(){m.focus();if(Graph.fileSupport){m.setAttribute("placeholder",mxResources.get("dragImagesHere"));var b=l.parentNode,c=null;mxEvent.addListener(b,"dragleave",function(a){null!=c&&(c.parentNode.removeChild(c),c=null);a.stopPropagation(); +a.preventDefault()});mxEvent.addListener(b,"dragover",mxUtils.bind(this,function(d){null==c&&(!mxClient.IS_IE||10<document.documentMode)&&(c=a.highlightElement(b));d.stopPropagation();d.preventDefault()}));mxEvent.addListener(b,"drop",mxUtils.bind(this,function(b){null!=c&&(c.parentNode.removeChild(c),c=null);if(0<b.dataTransfer.files.length)a.importFiles(b.dataTransfer.files,0,0,a.maxImageSize,function(a,b,c,d,f,n,e,g){h(a,g)},function(){},function(a){return"image/"==a.type.substring(0,6)},function(a){for(var b= 0;b<a.length;b++)a[b]()},!mxEvent.isControlDown(b));else if(0<=mxUtils.indexOf(b.dataTransfer.types,"text/uri-list")){var d=b.dataTransfer.getData("text/uri-list");/\.(gif|jpg|jpeg|tiff|png|svg)($|\?)/i.test(d)&&h(decodeURIComponent(d))}b.stopPropagation();b.preventDefault()}),!1)}};c=document.createElement("div");c.style.marginTop=mxClient.IS_QUIRKS?"22px":"14px";c.style.textAlign="right";b=mxUtils.button(mxResources.get("cancel"),function(){a.spinner.stop();a.hideDialog()});b.className="geBtn"; -a.editor.cancelFirst&&c.appendChild(b);ImageDialog.filePicked=function(a){a.action==google.picker.Action.PICKED&&null!=a.docs[0].thumbnails&&(a=a.docs[0].thumbnails[a.docs[0].thumbnails.length-1],null!=a&&(n.value=a.url));n.focus()};if(Graph.fileSupport){var k=document.createElement("input");k.setAttribute("multiple","multiple");k.setAttribute("type","file");if(null==document.documentMode){mxEvent.addListener(k,"change",function(b){a.importFiles(k.files,0,0,a.maxImageSize,function(a,b,c,d,f,k){h(a)}, -function(){},function(a){return"image/"==a.type.substring(0,6)},function(a){for(var b=0;b<a.length;b++)a[b]()},!0)});var q=mxUtils.button(mxResources.get("open"),function(){k.click()});q.className="geBtn";c.appendChild(q)}}document.createElement("canvas").getContext&&"data:image/"==n.value.substring(0,11)&&"data:image/svg"!=n.value.substring(0,14)&&(q=mxUtils.button(mxResources.get("crop"),function(){var b=new CropImageDialog(a,n.value,function(a){n.value=a});a.showDialog(b.container,200,185,!0,!0); -b.init()}),q.className="geBtn",c.appendChild(q));"undefined"!=typeof google&&"undefined"!=typeof google.picker&&window.self===window.top&&(q=mxUtils.button(mxResources.get("search"),function(){if(null==a.imageSearchPicker){var b=(new google.picker.PickerBuilder).setLocale(mxLanguage).addView(google.picker.ViewId.IMAGE_SEARCH).enableFeature(google.picker.Feature.NAV_HIDDEN);a.imageSearchPicker=b.setCallback(function(a){ImageDialog.filePicked(a)}).build()}a.imageSearchPicker.setVisible(!0)}),q.className= -"geBtn",c.appendChild(q),null!=a.drive&&"1"==urlParams.photos&&(q=mxUtils.button(mxResources.get("googlePlus"),function(){a.spinner.spin(document.body,mxResources.get("authorizing"))&&a.drive.checkToken(mxUtils.bind(this,function(){a.spinner.stop();if(null==a.photoPicker){var b=gapi.auth.getToken().access_token,b=(new google.picker.PickerBuilder).setAppId(a.drive.appId).setLocale(mxLanguage).setOAuthToken(b).addView(google.picker.ViewId.PHOTOS).addView(google.picker.ViewId.PHOTO_ALBUMS).addView(google.picker.ViewId.PHOTO_UPLOAD); -a.photoPicker=b.setCallback(function(a){ImageDialog.filePicked(a)}).build()}a.photoPicker.setVisible(!0)}))}),q.className="geBtn",c.appendChild(q)));mxEvent.addListener(n,"keypress",function(a){13==a.keyCode&&h(n.value)});q=mxUtils.button(mxResources.get("apply"),function(){h(n.value)});q.className="geBtn gePrimaryBtn";c.appendChild(q);a.editor.cancelFirst||c.appendChild(b);Graph.fileSupport&&(c.style.marginTop="120px",m.style.backgroundImage="url('"+IMAGE_PATH+"/droptarget.png')",m.style.backgroundPosition= -"center 65%",m.style.backgroundRepeat="no-repeat",b=document.createElement("div"),b.style.position="absolute",b.style.width="420px",b.style.top="58%",b.style.textAlign="center",b.style.fontSize="18px",b.style.color="#a0c3ff",mxUtils.write(b,mxResources.get("dragImagesHere")),m.appendChild(b));m.appendChild(c);this.container=m},LinkDialog=function(a,b,c,d,e){function g(a,b,c){c=mxUtils.button("",c);c.className="geBtn";c.setAttribute("title",b);b=document.createElement("img");b.style.height="26px"; -b.style.width="26px";b.setAttribute("src",a);c.style.minWidth="42px";c.style.verticalAlign="middle";c.appendChild(b);y.appendChild(c)}var l=document.createElement("div");mxUtils.write(l,mxResources.get("editLink")+":");var m=document.createElement("div");m.className="geTitle";m.style.backgroundColor="transparent";m.style.borderColor="transparent";m.style.whiteSpace="nowrap";m.style.textOverflow="clip";m.style.cursor="default";mxClient.IS_VML||(m.style.paddingRight="20px");var n=document.createElement("input"); -n.setAttribute("placeholder",mxResources.get("dragUrlsHere"));n.setAttribute("type","text");n.style.marginTop="6px";n.style.width="440px";n.style.backgroundImage="url('"+Dialog.prototype.clearImage+"')";n.style.backgroundRepeat="no-repeat";n.style.backgroundPosition="100% 50%";n.style.paddingRight="14px";var f=document.createElement("div");f.setAttribute("title",mxResources.get("reset"));f.style.position="relative";f.style.left="-16px";f.style.width="12px";f.style.height="14px";f.style.cursor="pointer"; -f.style.display=mxClient.IS_VML?"inline":"inline-block";f.style.top=(mxClient.IS_VML?0:3)+"px";f.style.background="url('"+a.editor.transparentImage+"')";mxEvent.addListener(f,"click",function(){n.value="";n.focus()});var h=document.createElement("input");h.style.cssText="margin-right:8px;margin-bottom:8px;";h.setAttribute("value","url");h.setAttribute("type","radio");h.setAttribute("name","current-linkdialog");var k=document.createElement("input");k.style.cssText="margin-right:8px;margin-bottom:8px;"; -k.setAttribute("value","url");k.setAttribute("type","radio");k.setAttribute("name","current-linkdialog");var q=document.createElement("select");q.style.width="420px";if(e&&null!=a.pages){null!=b&&"data:page/id,"==b.substring(0,13)?(k.setAttribute("checked","checked"),k.defaultChecked=!0):(n.setAttribute("value",b),h.setAttribute("checked","checked"),h.defaultChecked=!0);n.style.width="420px";m.appendChild(h);m.appendChild(n);m.appendChild(f);mxUtils.br(m);m.appendChild(k);e=!1;for(f=0;f<a.pages.length;f++){var u= -document.createElement("option");mxUtils.write(u,a.pages[f].getName()||mxResources.get("pageWithNumber",[f+1]));u.setAttribute("value","data:page/id,"+a.pages[f].getId());b==u.getAttribute("value")&&(u.setAttribute("selected","selected"),e=!0);q.appendChild(u)}if(!e&&k.checked){var p=document.createElement("option");mxUtils.write(p,mxResources.get("pageNotFound"));p.setAttribute("disabled","disabled");p.setAttribute("selected","selected");p.setAttribute("value","pageNotFound");q.appendChild(p);mxEvent.addListener(q, -"change",function(){null==p.parentNode||p.selected||p.parentNode.removeChild(p)})}m.appendChild(q)}else n.setAttribute("value",b),m.appendChild(n),m.appendChild(f);l.appendChild(m);var v=mxUtils.button(c,function(){a.hideDialog();d(k.checked?"pageNotFound"!==q.value?q.value:b:n.value,LinkDialog.selectedDocs)});v.style.verticalAlign="middle";v.className="geBtn gePrimaryBtn";this.init=function(){k.checked?q.focus():(n.focus(),mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode||mxClient.IS_QUIRKS? -n.select():document.execCommand("selectAll",!1,null));mxEvent.addListener(q,"focus",function(){h.removeAttribute("checked");k.setAttribute("checked","checked");k.checked=!0});mxEvent.addListener(n,"focus",function(){k.removeAttribute("checked");h.setAttribute("checked","checked");h.checked=!0});if(Graph.fileSupport){var b=l.parentNode,c=null;mxEvent.addListener(b,"dragleave",function(a){null!=c&&(c.parentNode.removeChild(c),c=null);a.stopPropagation();a.preventDefault()});mxEvent.addListener(b,"dragover", -mxUtils.bind(this,function(d){null==c&&(!mxClient.IS_IE||10<document.documentMode)&&(c=a.highlightElement(b));d.stopPropagation();d.preventDefault()}));mxEvent.addListener(b,"drop",mxUtils.bind(this,function(a){null!=c&&(c.parentNode.removeChild(c),c=null);0<=mxUtils.indexOf(a.dataTransfer.types,"text/uri-list")&&(n.value=decodeURIComponent(a.dataTransfer.getData("text/uri-list")),h.setAttribute("checked","checked"),h.checked=!0,v.click());a.stopPropagation();a.preventDefault()}),!1)}};var y=document.createElement("div"); -y.style.marginTop="20px";y.style.textAlign="right";c=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});c.style.verticalAlign="middle";c.className="geBtn";a.editor.cancelFirst&&y.appendChild(c);m=mxUtils.button(mxResources.get("help"),function(){a.openLink("https://desk.draw.io/solution/articles/16000080137")});m.style.verticalAlign="middle";m.className="geBtn";y.appendChild(m);a.isOffline()&&!mxClient.IS_CHROMEAPP&&(m.style.display="none");LinkDialog.selectedDocs=null;LinkDialog.filePicked= +a.editor.cancelFirst&&c.appendChild(b);ImageDialog.filePicked=function(a){a.action==google.picker.Action.PICKED&&null!=a.docs[0].thumbnails&&(a=a.docs[0].thumbnails[a.docs[0].thumbnails.length-1],null!=a&&(m.value=a.url));m.focus()};if(Graph.fileSupport){var n=document.createElement("input");n.setAttribute("multiple","multiple");n.setAttribute("type","file");if(null==document.documentMode){mxEvent.addListener(n,"change",function(b){a.importFiles(n.files,0,0,a.maxImageSize,function(a,b,c,d,f,n){h(a)}, +function(){},function(a){return"image/"==a.type.substring(0,6)},function(a){for(var b=0;b<a.length;b++)a[b]()},!0)});var u=mxUtils.button(mxResources.get("open"),function(){n.click()});u.className="geBtn";c.appendChild(u)}}document.createElement("canvas").getContext&&"data:image/"==m.value.substring(0,11)&&"data:image/svg"!=m.value.substring(0,14)&&(u=mxUtils.button(mxResources.get("crop"),function(){var b=new CropImageDialog(a,m.value,function(a){m.value=a});a.showDialog(b.container,200,185,!0,!0); +b.init()}),u.className="geBtn",c.appendChild(u));"undefined"!=typeof google&&"undefined"!=typeof google.picker&&window.self===window.top&&(u=mxUtils.button(mxResources.get("search"),function(){if(null==a.imageSearchPicker){var b=(new google.picker.PickerBuilder).setLocale(mxLanguage).addView(google.picker.ViewId.IMAGE_SEARCH).enableFeature(google.picker.Feature.NAV_HIDDEN);a.imageSearchPicker=b.setCallback(function(a){ImageDialog.filePicked(a)}).build()}a.imageSearchPicker.setVisible(!0)}),u.className= +"geBtn",c.appendChild(u),null!=a.drive&&"1"==urlParams.photos&&(u=mxUtils.button(mxResources.get("googlePlus"),function(){a.spinner.spin(document.body,mxResources.get("authorizing"))&&a.drive.checkToken(mxUtils.bind(this,function(){a.spinner.stop();if(null==a.photoPicker){var b=gapi.auth.getToken().access_token,b=(new google.picker.PickerBuilder).setAppId(a.drive.appId).setLocale(mxLanguage).setOAuthToken(b).addView(google.picker.ViewId.PHOTOS).addView(google.picker.ViewId.PHOTO_ALBUMS).addView(google.picker.ViewId.PHOTO_UPLOAD); +a.photoPicker=b.setCallback(function(a){ImageDialog.filePicked(a)}).build()}a.photoPicker.setVisible(!0)}))}),u.className="geBtn",c.appendChild(u)));mxEvent.addListener(m,"keypress",function(a){13==a.keyCode&&h(m.value)});u=mxUtils.button(mxResources.get("apply"),function(){h(m.value)});u.className="geBtn gePrimaryBtn";c.appendChild(u);a.editor.cancelFirst||c.appendChild(b);Graph.fileSupport&&(c.style.marginTop="120px",l.style.backgroundImage="url('"+IMAGE_PATH+"/droptarget.png')",l.style.backgroundPosition= +"center 65%",l.style.backgroundRepeat="no-repeat",b=document.createElement("div"),b.style.position="absolute",b.style.width="420px",b.style.top="58%",b.style.textAlign="center",b.style.fontSize="18px",b.style.color="#a0c3ff",mxUtils.write(b,mxResources.get("dragImagesHere")),l.appendChild(b));l.appendChild(c);this.container=l},LinkDialog=function(a,b,c,d,e){function g(a,b,c){c=mxUtils.button("",c);c.className="geBtn";c.setAttribute("title",b);b=document.createElement("img");b.style.height="26px"; +b.style.width="26px";b.setAttribute("src",a);c.style.minWidth="42px";c.style.verticalAlign="middle";c.appendChild(b);y.appendChild(c)}var k=document.createElement("div");mxUtils.write(k,mxResources.get("editLink")+":");var l=document.createElement("div");l.className="geTitle";l.style.backgroundColor="transparent";l.style.borderColor="transparent";l.style.whiteSpace="nowrap";l.style.textOverflow="clip";l.style.cursor="default";mxClient.IS_VML||(l.style.paddingRight="20px");var m=document.createElement("input"); +m.setAttribute("placeholder",mxResources.get("dragUrlsHere"));m.setAttribute("type","text");m.style.marginTop="6px";m.style.width="440px";m.style.backgroundImage="url('"+Dialog.prototype.clearImage+"')";m.style.backgroundRepeat="no-repeat";m.style.backgroundPosition="100% 50%";m.style.paddingRight="14px";var f=document.createElement("div");f.setAttribute("title",mxResources.get("reset"));f.style.position="relative";f.style.left="-16px";f.style.width="12px";f.style.height="14px";f.style.cursor="pointer"; +f.style.display=mxClient.IS_VML?"inline":"inline-block";f.style.top=(mxClient.IS_VML?0:3)+"px";f.style.background="url('"+a.editor.transparentImage+"')";mxEvent.addListener(f,"click",function(){m.value="";m.focus()});var h=document.createElement("input");h.style.cssText="margin-right:8px;margin-bottom:8px;";h.setAttribute("value","url");h.setAttribute("type","radio");h.setAttribute("name","current-linkdialog");var n=document.createElement("input");n.style.cssText="margin-right:8px;margin-bottom:8px;"; +n.setAttribute("value","url");n.setAttribute("type","radio");n.setAttribute("name","current-linkdialog");var u=document.createElement("select");u.style.width="420px";if(e&&null!=a.pages){null!=b&&"data:page/id,"==b.substring(0,13)?(n.setAttribute("checked","checked"),n.defaultChecked=!0):(m.setAttribute("value",b),h.setAttribute("checked","checked"),h.defaultChecked=!0);m.style.width="420px";l.appendChild(h);l.appendChild(m);l.appendChild(f);mxUtils.br(l);l.appendChild(n);e=!1;for(f=0;f<a.pages.length;f++){var p= +document.createElement("option");mxUtils.write(p,a.pages[f].getName()||mxResources.get("pageWithNumber",[f+1]));p.setAttribute("value","data:page/id,"+a.pages[f].getId());b==p.getAttribute("value")&&(p.setAttribute("selected","selected"),e=!0);u.appendChild(p)}if(!e&&n.checked){var q=document.createElement("option");mxUtils.write(q,mxResources.get("pageNotFound"));q.setAttribute("disabled","disabled");q.setAttribute("selected","selected");q.setAttribute("value","pageNotFound");u.appendChild(q);mxEvent.addListener(u, +"change",function(){null==q.parentNode||q.selected||q.parentNode.removeChild(q)})}l.appendChild(u)}else m.setAttribute("value",b),l.appendChild(m),l.appendChild(f);k.appendChild(l);var v=mxUtils.button(c,function(){a.hideDialog();d(n.checked?"pageNotFound"!==u.value?u.value:b:m.value,LinkDialog.selectedDocs)});v.style.verticalAlign="middle";v.className="geBtn gePrimaryBtn";this.init=function(){n.checked?u.focus():(m.focus(),mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode||mxClient.IS_QUIRKS? +m.select():document.execCommand("selectAll",!1,null));mxEvent.addListener(u,"focus",function(){h.removeAttribute("checked");n.setAttribute("checked","checked");n.checked=!0});mxEvent.addListener(m,"focus",function(){n.removeAttribute("checked");h.setAttribute("checked","checked");h.checked=!0});if(Graph.fileSupport){var b=k.parentNode,c=null;mxEvent.addListener(b,"dragleave",function(a){null!=c&&(c.parentNode.removeChild(c),c=null);a.stopPropagation();a.preventDefault()});mxEvent.addListener(b,"dragover", +mxUtils.bind(this,function(d){null==c&&(!mxClient.IS_IE||10<document.documentMode)&&(c=a.highlightElement(b));d.stopPropagation();d.preventDefault()}));mxEvent.addListener(b,"drop",mxUtils.bind(this,function(a){null!=c&&(c.parentNode.removeChild(c),c=null);0<=mxUtils.indexOf(a.dataTransfer.types,"text/uri-list")&&(m.value=decodeURIComponent(a.dataTransfer.getData("text/uri-list")),h.setAttribute("checked","checked"),h.checked=!0,v.click());a.stopPropagation();a.preventDefault()}),!1)}};var y=document.createElement("div"); +y.style.marginTop="20px";y.style.textAlign="right";c=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});c.style.verticalAlign="middle";c.className="geBtn";a.editor.cancelFirst&&y.appendChild(c);l=mxUtils.button(mxResources.get("help"),function(){a.openLink("https://desk.draw.io/solution/articles/16000080137")});l.style.verticalAlign="middle";l.className="geBtn";y.appendChild(l);a.isOffline()&&!mxClient.IS_CHROMEAPP&&(l.style.display="none");LinkDialog.selectedDocs=null;LinkDialog.filePicked= function(a){if(a.action==google.picker.Action.PICKED){LinkDialog.selectedDocs=a.docs;var b=a.docs[0].url;"application/mxe"==a.docs[0].mimeType||"application/vnd.jgraph.mxfile"==a.docs[0].mimeType?(b=DriveClient.prototype.oldAppHostname,b="https://"+b+"/#G"+a.docs[0].id):"application/mxr"==a.docs[0].mimeType||"application/vnd.jgraph.mxfile.realtime"==a.docs[0].mimeType?(b=DriveClient.prototype.newAppHostname,b="https://"+b+"/#G"+a.docs[0].id):"application/vnd.google-apps.folder"==a.docs[0].mimeType&& -(b="https://drive.google.com/#folders/"+a.docs[0].id);n.value=b;n.focus()}else LinkDialog.selectedDocs=null;n.focus()};"undefined"!=typeof google&&"undefined"!=typeof google.picker&&null!=a.drive&&g(IMAGE_PATH+"/google-drive-logo.svg",mxResources.get("googlePlus"),function(){a.spinner.spin(document.body,mxResources.get("authorizing"))&&a.drive.checkToken(mxUtils.bind(this,function(){a.spinner.stop();if(null==a.linkPicker){var b=gapi.auth.getToken().access_token,c=(new google.picker.DocsView(google.picker.ViewId.FOLDERS)).setParent("root").setIncludeFolders(!0).setSelectFolderEnabled(!0), +(b="https://drive.google.com/#folders/"+a.docs[0].id);m.value=b;m.focus()}else LinkDialog.selectedDocs=null;m.focus()};"undefined"!=typeof google&&"undefined"!=typeof google.picker&&null!=a.drive&&g(IMAGE_PATH+"/google-drive-logo.svg",mxResources.get("googlePlus"),function(){a.spinner.spin(document.body,mxResources.get("authorizing"))&&a.drive.checkToken(mxUtils.bind(this,function(){a.spinner.stop();if(null==a.linkPicker){var b=gapi.auth.getToken().access_token,c=(new google.picker.DocsView(google.picker.ViewId.FOLDERS)).setParent("root").setIncludeFolders(!0).setSelectFolderEnabled(!0), d=(new google.picker.DocsView).setIncludeFolders(!0).setSelectFolderEnabled(!0),f=(new google.picker.DocsView).setIncludeFolders(!0).setEnableTeamDrives(!0).setSelectFolderEnabled(!0),b=(new google.picker.PickerBuilder).setAppId(a.drive.appId).setLocale(mxLanguage).setOAuthToken(b).enableFeature(google.picker.Feature.SUPPORT_TEAM_DRIVES).addView(c).addView(d).addView(f).addView(google.picker.ViewId.RECENTLY_PICKED).addView(google.picker.ViewId.IMAGE_SEARCH).addView(google.picker.ViewId.VIDEO_SEARCH).addView(google.picker.ViewId.MAPS); -"1"==urlParams.photos&&b.addView(google.picker.ViewId.PHOTOS).addView(google.picker.ViewId.PHOTO_ALBUMS).addView(google.picker.ViewId.PHOTO_UPLOAD);a.linkPicker=b.setCallback(function(a){LinkDialog.filePicked(a)}).build()}a.linkPicker.setVisible(!0)}))});"undefined"!=typeof Dropbox&&"undefined"!=typeof Dropbox.choose&&g(IMAGE_PATH+"/dropbox-logo.svg",mxResources.get("dropbox"),function(){Dropbox.choose({linkType:"direct",cancel:function(){},success:function(a){n.value=a[0].link;n.focus()}})});null!= -a.oneDrive&&g(IMAGE_PATH+"/onedrive-logo.svg",mxResources.get("oneDrive"),function(){a.oneDrive.pickFile(function(a,b){n.value=b.value[0].webUrl;n.focus()})});null!=a.gitHub&&g(IMAGE_PATH+"/github-logo.svg",mxResources.get("github"),function(){a.gitHub.pickFile(function(a){if(null!=a){a=a.split("/");var b=a[0],c=a[1],d=a[2];a=a.slice(3,a.length).join("/");n.value="https://github.com/"+b+"/"+c+"/blob/"+d+"/"+a;n.focus()}})});mxEvent.addListener(n,"keypress",function(b){13==b.keyCode&&(a.hideDialog(), -d(k.checked?q.value:n.value,LinkDialog.selectedDocs))});y.appendChild(v);a.editor.cancelFirst||y.appendChild(c);l.appendChild(y);this.container=l},AboutDialog=function(a){var b=document.createElement("div");b.style.marginTop="6px";b.setAttribute("align","center");var c=document.createElement("img");c.style.border="0px";mxClient.IS_SVG?(c.setAttribute("width","164"),c.setAttribute("height","221"),c.style.width="164px",c.style.height="221px",c.setAttribute("src",IMAGE_PATH+"/drawlogo-text-bottom.svg")): +"1"==urlParams.photos&&b.addView(google.picker.ViewId.PHOTOS).addView(google.picker.ViewId.PHOTO_ALBUMS).addView(google.picker.ViewId.PHOTO_UPLOAD);a.linkPicker=b.setCallback(function(a){LinkDialog.filePicked(a)}).build()}a.linkPicker.setVisible(!0)}))});"undefined"!=typeof Dropbox&&"undefined"!=typeof Dropbox.choose&&g(IMAGE_PATH+"/dropbox-logo.svg",mxResources.get("dropbox"),function(){Dropbox.choose({linkType:"direct",cancel:function(){},success:function(a){m.value=a[0].link;m.focus()}})});null!= +a.oneDrive&&g(IMAGE_PATH+"/onedrive-logo.svg",mxResources.get("oneDrive"),function(){a.oneDrive.pickFile(function(a,b){m.value=b.value[0].webUrl;m.focus()})});null!=a.gitHub&&g(IMAGE_PATH+"/github-logo.svg",mxResources.get("github"),function(){a.gitHub.pickFile(function(a){if(null!=a){a=a.split("/");var b=a[0],c=a[1],d=a[2];a=a.slice(3,a.length).join("/");m.value="https://github.com/"+b+"/"+c+"/blob/"+d+"/"+a;m.focus()}})});mxEvent.addListener(m,"keypress",function(b){13==b.keyCode&&(a.hideDialog(), +d(n.checked?u.value:m.value,LinkDialog.selectedDocs))});y.appendChild(v);a.editor.cancelFirst||y.appendChild(c);k.appendChild(y);this.container=k},AboutDialog=function(a){var b=document.createElement("div");b.style.marginTop="6px";b.setAttribute("align","center");var c=document.createElement("img");c.style.border="0px";mxClient.IS_SVG?(c.setAttribute("width","164"),c.setAttribute("height","221"),c.style.width="164px",c.style.height="221px",c.setAttribute("src",IMAGE_PATH+"/drawlogo-text-bottom.svg")): (c.setAttribute("width","176"),c.setAttribute("height","219"),c.style.width="170px",c.style.height="219px",c.setAttribute("src",IMAGE_PATH+"/logo-flat.png"));b.appendChild(c);mxUtils.br(b);c=document.createElement("small");c.innerHTML="v "+EditorUi.VERSION;c.style.color="#505050";b.appendChild(c);mxUtils.br(b);mxUtils.br(b);c=document.createElement("small");c.style.color="#505050";c.innerHTML='© 2005-2018 <a href="https://about.draw.io/" style="color:inherit;" target="_blank">JGraph Ltd</a>.<br>All Rights Reserved.'; b.appendChild(c);mxEvent.addListener(b,"click",function(b){"A"!=mxEvent.getSource(b).nodeName&&a.hideDialog()});this.container=b},FeedbackDialog=function(a){var b=document.createElement("div"),c=document.createElement("div");mxUtils.write(c,mxResources.get("sendYourFeedbackToDrawIo"));c.style.fontSize="18px";c.style.marginBottom="18px";b.appendChild(c);c=document.createElement("div");mxUtils.write(c,mxResources.get("yourEmailAddress")+" ("+mxResources.get("required")+")");b.appendChild(c);var d=document.createElement("input"); -d.setAttribute("type","text");d.style.marginTop="6px";d.style.width="600px";var e=mxUtils.button(mxResources.get("sendMessage"),function(){var b=(l.checked?"\nDiagram:\n"+a.getFileData():"")+"\nBrowser:\n"+navigator.userAgent;b.length>FeedbackDialog.maxAttachmentSize?a.alert(mxResources.get("drawingTooLarge")):(a.hideDialog(),a.spinner.spin(document.body)&&mxUtils.post(null!=FeedbackDialog.feedbackUrl?FeedbackDialog.feedbackUrl:"/email","email="+encodeURIComponent(d.value)+"&version="+encodeURIComponent(EditorUi.VERSION)+ -"&url="+encodeURIComponent(window.location.href)+"&body="+encodeURIComponent("Feedback:\n"+n.value+b),function(b){a.spinner.stop();200<=b.getStatus()&&299>=b.getStatus()?a.alert(mxResources.get("feedbackSent")):a.alert(mxResources.get("errorSendingFeedback"))},function(){a.spinner.stop();a.alert(mxResources.get("errorSendingFeedback"))}))});e.className="geBtn gePrimaryBtn";e.setAttribute("disabled","disabled");var g=/^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/; -mxEvent.addListener(d,"change",function(){0<d.value.length&&0<g.test(d.value)?e.removeAttribute("disabled"):e.setAttribute("disabled","disabled")});mxEvent.addListener(d,"keyup",function(){0<d.value.length&&g.test(d.value)?e.removeAttribute("disabled"):e.setAttribute("disabled","disabled")});b.appendChild(d);this.init=function(){d.focus()};var l=document.createElement("input");l.setAttribute("type","checkbox");l.setAttribute("checked","checked");l.defaultChecked=!0;c=document.createElement("p");c.style.marginTop= -"14px";c.appendChild(l);var m=document.createElement("span");mxUtils.write(m," "+mxResources.get("includeCopyOfMyDiagram"));c.appendChild(m);mxEvent.addListener(m,"click",function(a){l.checked=!l.checked;mxEvent.consume(a)});b.appendChild(c);c=document.createElement("div");mxUtils.write(c,mxResources.get("feedback"));b.appendChild(c);var n=document.createElement("textarea");n.style.resize="none";n.style.width="600px";n.style.height="140px";n.style.marginTop="6px";n.setAttribute("placeholder",mxResources.get("commentsNotes")); -b.appendChild(n);c=document.createElement("div");c.style.marginTop="26px";c.style.textAlign="right";m=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});m.className="geBtn";a.editor.cancelFirst?(c.appendChild(m),c.appendChild(e)):(c.appendChild(e),c.appendChild(m));b.appendChild(c);this.container=b};FeedbackDialog.maxAttachmentSize=1E6; -var RevisionDialog=function(a,b,c){var d=document.createElement("div"),e=document.createElement("h3");e.style.marginTop="0px";mxUtils.write(e,mxResources.get("revisionHistory"));d.appendChild(e);var g=document.createElement("div");g.style.position="absolute";g.style.overflow="auto";g.style.width="170px";g.style.height="378px";d.appendChild(g);var l=document.createElement("div");l.style.position="absolute";l.style.border="1px solid lightGray";l.style.left="199px";l.style.width="470px";l.style.height= -"376px";l.style.overflow="hidden";mxEvent.disableContextMenu(l);d.appendChild(l);var m=new Graph(l);m.setEnabled(!1);m.setPanning(!0);m.panningHandler.ignoreCell=!0;m.panningHandler.useLeftButtonForPanning=!0;m.minFitScale=null;m.maxFitScale=null;m.centerZoom=!0;var n=0,f=null,h=0,k=m.getGlobalVariable;m.getGlobalVariable=function(a){return"page"==a&&null!=f&&null!=f[h]?f[h].getAttribute("name"):"pagenumber"==a?h+1:k.apply(this,arguments)};m.getLinkForCell=function(){return null};Editor.MathJaxRender&& -m.addListener(mxEvent.SIZE,mxUtils.bind(this,function(b,c){a.editor.graph.mathEnabled&&Editor.MathJaxRender(m.container)}));var q=new Spinner({lines:11,length:15,width:6,radius:10,corners:1,rotate:0,direction:1,color:"#000",speed:1.4,trail:60,shadow:!1,hwaccel:!1,className:"spinner",zIndex:2E9,top:"50%",left:"50%"}),u=a.getCurrentFile(),p=null,v=null,y=null,A=null,t=mxUtils.button("",function(){null!=y&&m.zoomIn()});t.className="geSprite geSprite-zoomin";t.setAttribute("title",mxResources.get("zoomIn")); -t.style.outline="none";t.style.border="none";t.style.margin="2px";t.setAttribute("disabled","disabled");mxUtils.setOpacity(t,20);var w=mxUtils.button("",function(){null!=y&&m.zoomOut()});w.className="geSprite geSprite-zoomout";w.setAttribute("title",mxResources.get("zoomOut"));w.style.outline="none";w.style.border="none";w.style.margin="2px";w.setAttribute("disabled","disabled");mxUtils.setOpacity(w,20);var x=mxUtils.button("",function(){null!=y&&(m.maxFitScale=8,m.fit(8),m.center())});x.className= -"geSprite geSprite-fit";x.setAttribute("title",mxResources.get("fit"));x.style.outline="none";x.style.border="none";x.style.margin="2px";x.setAttribute("disabled","disabled");mxUtils.setOpacity(x,20);var C=mxUtils.button("",function(){null!=y&&(m.zoomActual(),m.center())});C.className="geSprite geSprite-actualsize";C.setAttribute("title",mxResources.get("actualSize"));C.style.outline="none";C.style.border="none";C.style.margin="2px";C.setAttribute("disabled","disabled");mxUtils.setOpacity(C,20);var z= +d.setAttribute("type","text");d.style.marginTop="6px";d.style.width="600px";var e=mxUtils.button(mxResources.get("sendMessage"),function(){var b=(k.checked?"\nDiagram:\n"+a.getFileData():"")+"\nBrowser:\n"+navigator.userAgent;b.length>FeedbackDialog.maxAttachmentSize?a.alert(mxResources.get("drawingTooLarge")):(a.hideDialog(),a.spinner.spin(document.body)&&mxUtils.post(null!=FeedbackDialog.feedbackUrl?FeedbackDialog.feedbackUrl:"/email","email="+encodeURIComponent(d.value)+"&version="+encodeURIComponent(EditorUi.VERSION)+ +"&url="+encodeURIComponent(window.location.href)+"&body="+encodeURIComponent("Feedback:\n"+m.value+b),function(b){a.spinner.stop();200<=b.getStatus()&&299>=b.getStatus()?a.alert(mxResources.get("feedbackSent")):a.alert(mxResources.get("errorSendingFeedback"))},function(){a.spinner.stop();a.alert(mxResources.get("errorSendingFeedback"))}))});e.className="geBtn gePrimaryBtn";e.setAttribute("disabled","disabled");var g=/^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/; +mxEvent.addListener(d,"change",function(){0<d.value.length&&0<g.test(d.value)?e.removeAttribute("disabled"):e.setAttribute("disabled","disabled")});mxEvent.addListener(d,"keyup",function(){0<d.value.length&&g.test(d.value)?e.removeAttribute("disabled"):e.setAttribute("disabled","disabled")});b.appendChild(d);this.init=function(){d.focus()};var k=document.createElement("input");k.setAttribute("type","checkbox");k.setAttribute("checked","checked");k.defaultChecked=!0;c=document.createElement("p");c.style.marginTop= +"14px";c.appendChild(k);var l=document.createElement("span");mxUtils.write(l," "+mxResources.get("includeCopyOfMyDiagram"));c.appendChild(l);mxEvent.addListener(l,"click",function(a){k.checked=!k.checked;mxEvent.consume(a)});b.appendChild(c);c=document.createElement("div");mxUtils.write(c,mxResources.get("feedback"));b.appendChild(c);var m=document.createElement("textarea");m.style.resize="none";m.style.width="600px";m.style.height="140px";m.style.marginTop="6px";m.setAttribute("placeholder",mxResources.get("commentsNotes")); +b.appendChild(m);c=document.createElement("div");c.style.marginTop="26px";c.style.textAlign="right";l=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});l.className="geBtn";a.editor.cancelFirst?(c.appendChild(l),c.appendChild(e)):(c.appendChild(e),c.appendChild(l));b.appendChild(c);this.container=b};FeedbackDialog.maxAttachmentSize=1E6; +var RevisionDialog=function(a,b,c){var d=document.createElement("div"),e=document.createElement("h3");e.style.marginTop="0px";mxUtils.write(e,mxResources.get("revisionHistory"));d.appendChild(e);var g=document.createElement("div");g.style.position="absolute";g.style.overflow="auto";g.style.width="170px";g.style.height="378px";d.appendChild(g);var k=document.createElement("div");k.style.position="absolute";k.style.border="1px solid lightGray";k.style.left="199px";k.style.width="470px";k.style.height= +"376px";k.style.overflow="hidden";mxEvent.disableContextMenu(k);d.appendChild(k);var l=new Graph(k);l.setEnabled(!1);l.setPanning(!0);l.panningHandler.ignoreCell=!0;l.panningHandler.useLeftButtonForPanning=!0;l.minFitScale=null;l.maxFitScale=null;l.centerZoom=!0;var m=0,f=null,h=0,n=l.getGlobalVariable;l.getGlobalVariable=function(a){return"page"==a&&null!=f&&null!=f[h]?f[h].getAttribute("name"):"pagenumber"==a?h+1:n.apply(this,arguments)};l.getLinkForCell=function(){return null};Editor.MathJaxRender&& +l.addListener(mxEvent.SIZE,mxUtils.bind(this,function(b,c){a.editor.graph.mathEnabled&&Editor.MathJaxRender(l.container)}));var u=new Spinner({lines:11,length:15,width:6,radius:10,corners:1,rotate:0,direction:1,color:"#000",speed:1.4,trail:60,shadow:!1,hwaccel:!1,className:"spinner",zIndex:2E9,top:"50%",left:"50%"}),p=a.getCurrentFile(),q=null,v=null,y=null,B=null,t=mxUtils.button("",function(){null!=y&&l.zoomIn()});t.className="geSprite geSprite-zoomin";t.setAttribute("title",mxResources.get("zoomIn")); +t.style.outline="none";t.style.border="none";t.style.margin="2px";t.setAttribute("disabled","disabled");mxUtils.setOpacity(t,20);var w=mxUtils.button("",function(){null!=y&&l.zoomOut()});w.className="geSprite geSprite-zoomout";w.setAttribute("title",mxResources.get("zoomOut"));w.style.outline="none";w.style.border="none";w.style.margin="2px";w.setAttribute("disabled","disabled");mxUtils.setOpacity(w,20);var x=mxUtils.button("",function(){null!=y&&(l.maxFitScale=8,l.fit(8),l.center())});x.className= +"geSprite geSprite-fit";x.setAttribute("title",mxResources.get("fit"));x.style.outline="none";x.style.border="none";x.style.margin="2px";x.setAttribute("disabled","disabled");mxUtils.setOpacity(x,20);var C=mxUtils.button("",function(){null!=y&&(l.zoomActual(),l.center())});C.className="geSprite geSprite-actualsize";C.setAttribute("title",mxResources.get("actualSize"));C.style.outline="none";C.style.border="none";C.style.margin="2px";C.setAttribute("disabled","disabled");mxUtils.setOpacity(C,20);var z= document.createElement("div");z.style.position="absolute";z.style.textAlign="right";z.style.color="gray";z.style.marginTop="10px";z.style.backgroundColor="transparent";z.style.top="440px";z.style.right="32px";z.style.maxWidth="380px";z.style.cursor="default";var F=mxUtils.button(mxResources.get("download"),function(){if(null!=y){var b=a.getCurrentFile(),b=null!=b&&null!=b.getTitle()?b.getTitle():a.defaultFilename,c=mxUtils.getXml(y.documentElement);a.isLocalFileSave()?a.saveLocalFile(c,b,"text/xml"): -(c="undefined"===typeof pako?"&xml="+encodeURIComponent(c):"&data="+encodeURIComponent(a.editor.graph.compress(c)),(new mxXmlRequest(SAVE_URL,"filename="+encodeURIComponent(b)+"&format=xml"+c)).simulate(document,"_blank"))}});F.className="geBtn";F.setAttribute("disabled","disabled");var E=mxUtils.button(mxResources.get("restore"),function(){null!=y&&null!=A&&a.confirm(mxResources.get("areYouSure"),function(){null!=c?c(A):a.spinner.spin(document.body,mxResources.get("restoring"))&&u.save(!0,function(b){a.spinner.stop(); -a.replaceFileData(A);a.hideDialog()},function(b){a.spinner.stop();a.editor.setStatus("");a.handleError(b,null!=b?mxResources.get("errorSavingFile"):null)})})});E.className="geBtn";E.setAttribute("disabled","disabled");var G=document.createElement("select");G.setAttribute("disabled","disabled");G.style.maxWidth="80px";G.style.position="relative";G.style.top="-2px";G.style.verticalAlign="bottom";G.style.marginRight="6px";G.style.display="none";var I=null;mxEvent.addListener(G,"change",function(a){null!= -I&&(I(a),mxEvent.consume(a))});var B=mxUtils.button(mxResources.get("openInNewWindow"),function(){null!=y&&(window.openFile=new OpenFile(function(){window.openFile=null}),window.openFile.setData(mxUtils.getXml(y.documentElement)),window.openWindow(a.getUrl()))});B.className="geBtn";B.setAttribute("disabled","disabled");null!=c&&(B.style.display="none");var D=mxUtils.button(mxResources.get("show"),function(){null!=v&&a.openLink(v.getUrl())});D.className="geBtn gePrimaryBtn";D.setAttribute("disabled", -"disabled");null!=c&&(D.style.display="none",E.className="geBtn gePrimaryBtn");e=document.createElement("div");e.style.position="absolute";e.style.top="482px";e.style.width="640px";e.style.textAlign="right";var H=document.createElement("div");H.className="geToolbarContainer";H.style.backgroundColor="transparent";H.style.padding="2px";H.style.border="none";H.style.left="199px";H.style.top="442px";var M=null;if(null!=b&&0<b.length){l.style.cursor="move";var K=document.createElement("table");K.style.border= -"1px solid lightGray";K.style.borderCollapse="collapse";K.style.borderSpacing="0px";K.style.width="100%";var T=document.createElement("tbody"),P=(new Date).toDateString();null!=a.currentPage&&null!=a.pages&&(n=mxUtils.indexOf(a.pages,a.currentPage));for(var S=b.length-1;0<=S;S--){var aa=function(c){var d=new Date(c.modifiedDate),k=null;if(0<=d.getTime()){var e=function(b){q.stop();var c=mxUtils.parseXml(b),e=a.editor.extractGraphModel(c.documentElement,!0);if(null!=e){var g=function(b){null!=b&&(b= -v(mxUtils.parseXml(a.editor.graph.decompress(mxUtils.getTextContent(b))).documentElement));return b},v=function(a){var b=a.getAttribute("background");if(null==b||""==b||b==mxConstants.NONE)b="#ffffff";l.style.backgroundColor=b;(new mxCodec(a.ownerDocument)).decode(a,m.getModel());m.maxFitScale=1;m.fit(8);m.center();return a};G.style.display="none";G.innerHTML="";y=c;A=b;f=parseSelectFunction=null;h=0;if("mxfile"==e.nodeName){c=e.getElementsByTagName("diagram");f=[];for(b=0;b<c.length;b++)f.push(c[b]); -h=Math.min(n,f.length-1);0<f.length&&g(f[h]);if(1<f.length)for(G.removeAttribute("disabled"),G.style.display="",b=0;b<f.length;b++)c=document.createElement("option"),mxUtils.write(c,f[b].getAttribute("name")||mxResources.get("pageWithNumber",[b+1])),c.setAttribute("value",b),b==h&&c.setAttribute("selected","selected"),G.appendChild(c);I=function(){h=n=parseInt(G.value);g(f[n])}}else v(e);z.innerHTML="";mxUtils.write(z,d.toLocaleDateString()+" "+d.toLocaleTimeString());z.setAttribute("title",k.getAttribute("title")); -t.removeAttribute("disabled");w.removeAttribute("disabled");x.removeAttribute("disabled");C.removeAttribute("disabled");null!=u&&u.isRestricted()||(a.editor.graph.isEnabled()&&E.removeAttribute("disabled"),F.removeAttribute("disabled"),D.removeAttribute("disabled"),B.removeAttribute("disabled"));mxUtils.setOpacity(t,60);mxUtils.setOpacity(w,60);mxUtils.setOpacity(x,60);mxUtils.setOpacity(C,60)}else G.style.display="none",G.innerHTML="",z.innerHTML="",mxUtils.write(z,mxResources.get("errorLoadingFile"))}, -k=document.createElement("tr");k.style.borderBottom="1px solid lightGray";k.style.fontSize="12px";k.style.cursor="pointer";var g=document.createElement("td");g.style.padding="6px";g.style.whiteSpace="nowrap";c==b[b.length-1]?mxUtils.write(g,mxResources.get("current")):d.toDateString()===P?mxUtils.write(g,d.toLocaleTimeString()):mxUtils.write(g,d.toLocaleDateString()+" "+d.toLocaleTimeString());k.appendChild(g);k.setAttribute("title",d.toLocaleDateString()+" "+d.toLocaleTimeString()+" "+a.formatFileSize(parseInt(c.fileSize))+ -(null!=c.lastModifyingUserName?" "+c.lastModifyingUserName:""));mxEvent.addListener(k,"click",function(a){v!=c&&(q.stop(),null!=p&&(p.style.backgroundColor=""),v=c,p=k,p.style.backgroundColor="#ebf2f9",A=y=null,z.removeAttribute("title"),z.innerHTML=mxResources.get("loading")+"...",l.style.backgroundColor="#ffffff",m.getModel().clear(),E.setAttribute("disabled","disabled"),F.setAttribute("disabled","disabled"),t.setAttribute("disabled","disabled"),w.setAttribute("disabled","disabled"),C.setAttribute("disabled", -"disabled"),x.setAttribute("disabled","disabled"),B.setAttribute("disabled","disabled"),D.setAttribute("disabled","disabled"),G.setAttribute("disabled","disabled"),mxUtils.setOpacity(t,20),mxUtils.setOpacity(w,20),mxUtils.setOpacity(x,20),mxUtils.setOpacity(C,20),q.spin(l),c.getXml(function(a){v==c&&e(a)},function(a){q.stop();G.style.display="none";G.innerHTML="";z.innerHTML="";mxUtils.write(z,mxResources.get("errorLoadingFile"))}),mxEvent.consume(a))});mxEvent.addListener(k,"dblclick",function(a){D.click(); -window.getSelection?window.getSelection().removeAllRanges():document.selection&&document.selection.empty();mxEvent.consume(a)},!1);T.appendChild(k)}return k}(b[S]);null!=aa&&S==b.length-1&&(M=aa)}K.appendChild(T);g.appendChild(K)}else null==u||null==a.drive&&u.constructor==window.DriveFile||null==a.dropbox&&u.constructor==window.DropboxFile?(l.style.display="none",H.style.display="none",mxUtils.write(g,mxResources.get("notAvailable"))):(l.style.display="none",H.style.display="none",mxUtils.write(g, -mxResources.get("noRevisions")));this.init=function(){null!=M&&M.click()};g=mxUtils.button(mxResources.get("close"),function(){a.hideDialog()});g.className="geBtn";H.appendChild(G);H.appendChild(t);H.appendChild(w);H.appendChild(C);H.appendChild(x);a.editor.cancelFirst?(e.appendChild(g),e.appendChild(F),e.appendChild(B),e.appendChild(E),e.appendChild(D)):(e.appendChild(F),e.appendChild(B),e.appendChild(E),e.appendChild(D),e.appendChild(g));d.appendChild(e);d.appendChild(H);d.appendChild(z);this.container= -d},DraftDialog=function(a,b,c,d,e,g,l,m){var n=document.createElement("div"),f=document.createElement("div");f.style.marginTop="0px";f.style.whiteSpace="nowrap";f.style.overflow="auto";mxUtils.write(f,b);n.appendChild(f);var h=document.createElement("div");h.style.position="absolute";h.style.border="1px solid lightGray";h.style.marginTop="10px";h.style.width="640px";h.style.top="46px";h.style.bottom="74px";h.style.overflow="hidden";mxEvent.disableContextMenu(h);n.appendChild(h);var k=new Graph(h); -k.setEnabled(!1);k.setPanning(!0);k.panningHandler.ignoreCell=!0;k.panningHandler.useLeftButtonForPanning=!0;k.minFitScale=null;k.maxFitScale=null;k.centerZoom=!0;b=mxUtils.parseXml(c);var q=a.editor.extractGraphModel(b.documentElement,!0),u=0,p=null,v=k.getGlobalVariable;k.getGlobalVariable=function(a){return"page"==a&&null!=p&&null!=p[u]?p[u].getAttribute("name"):"pagenumber"==a?u+1:v.apply(this,arguments)};k.getLinkForCell=function(){return null};b=mxUtils.button("",function(){k.zoomIn()});b.className= -"geSprite geSprite-zoomin";b.setAttribute("title",mxResources.get("zoomIn"));b.style.outline="none";b.style.border="none";b.style.margin="2px";mxUtils.setOpacity(b,60);c=mxUtils.button("",function(){k.zoomOut()});c.className="geSprite geSprite-zoomout";c.setAttribute("title",mxResources.get("zoomOut"));c.style.outline="none";c.style.border="none";c.style.margin="2px";mxUtils.setOpacity(c,60);f=mxUtils.button("",function(){k.maxFitScale=8;k.fit(8);k.center()});f.className="geSprite geSprite-fit";f.setAttribute("title", -mxResources.get("fit"));f.style.outline="none";f.style.border="none";f.style.margin="2px";mxUtils.setOpacity(f,60);var y=mxUtils.button("",function(){k.zoomActual();k.center()});y.className="geSprite geSprite-actualsize";y.setAttribute("title",mxResources.get("actualSize"));y.style.outline="none";y.style.border="none";y.style.margin="2px";mxUtils.setOpacity(y,60);e=mxUtils.button(l||mxResources.get("discard"),e);e.className="geBtn";var A=document.createElement("select");A.style.maxWidth="80px";A.style.position= -"relative";A.style.top="-2px";A.style.verticalAlign="bottom";A.style.marginRight="6px";A.style.display="none";d=mxUtils.button(g||mxResources.get("edit"),d);d.className="geBtn gePrimaryBtn";g=document.createElement("div");g.style.position="absolute";g.style.bottom="30px";g.style.width="640px";g.style.textAlign="right";l=document.createElement("div");l.className="geToolbarContainer";l.style.cssText="box-shadow:none !important;background-color:transparent;padding:2px;border-style:none !important;bottom:30px;"; -this.init=function(){function b(a){if(null!=a){var b=a.getAttribute("background");if(null==b||""==b||b==mxConstants.NONE)b="#ffffff";h.style.backgroundColor=b;(new mxCodec(a.ownerDocument)).decode(a,k.getModel());k.maxFitScale=1;k.fit(8);k.center()}}function c(c){null!=c&&(c=b(mxUtils.parseXml(a.editor.graph.decompress(mxUtils.getTextContent(c))).documentElement));return c}mxEvent.addListener(A,"change",function(a){u=parseInt(A.value);c(p[u]);mxEvent.consume(a)});if("mxfile"==q.nodeName){var d=q.getElementsByTagName("diagram"); -p=[];for(var f=0;f<d.length;f++)p.push(d[f]);0<p.length&&c(p[u]);if(1<p.length)for(A.style.display="",f=0;f<p.length;f++)d=document.createElement("option"),mxUtils.write(d,p[f].getAttribute("name")||mxResources.get("pageWithNumber",[f+1])),d.setAttribute("value",f),f==u&&d.setAttribute("selected","selected"),A.appendChild(d)}else b(q)};l.appendChild(A);l.appendChild(b);l.appendChild(c);l.appendChild(y);l.appendChild(f);b=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog(!0)});b.className= -"geBtn";m=null!=m?mxUtils.button(mxResources.get("ignore"),m):null;null!=m&&(m.className="geBtn");a.editor.cancelFirst?(g.appendChild(b),null!=m&&g.appendChild(m),g.appendChild(e),g.appendChild(d)):(g.appendChild(d),g.appendChild(e),null!=m&&g.appendChild(m),g.appendChild(b));n.appendChild(g);n.appendChild(l);this.container=n},FindWindow=function(a,b,c,d,e){function g(a,b,c){if("object"===typeof b.value&&null!=b.value.attributes){b=b.value.attributes;for(var d=0;d<b.length;d++)if("label"!=b[d].nodeName){var f= -mxUtils.trim(b[d].nodeValue.replace(/[\x00-\x1F\x7F-\x9F]|\s+/g," ")).toLowerCase();if(null==a&&f.substring(0,c.length)===c||null!=a&&a.test(f))return!0}}return!1}function l(){var a=n.model.getDescendants(n.model.getRoot()),b=q.value.toLowerCase(),c=u.checked?new RegExp(b):null,d=null;f!=b&&(f=b,h=null);var k=null==h;if(0<b.length)for(var e=0;e<a.length;e++){var m=n.view.getState(a[e]);if(null!=m&&null!=m.cell.value&&(k||null==d)&&(n.model.isVertex(m.cell)||n.model.isEdge(m.cell))&&(n.isHtmlLabel(m.cell)? -(p.innerHTML=n.getLabel(m.cell),label=mxUtils.extractTextWithWhitespace([p])):label=n.getLabel(m.cell),label=mxUtils.trim(label.replace(/[\x00-\x1F\x7F-\x9F]|\s+/g," ")).toLowerCase(),null==c&&(label.substring(0,b.length)===b||g(c,m.cell,b))||null!=c&&(c.test(label)||g(c,m.cell,b))))if(k){d=m;break}else null==d&&(d=m);k=k||m==h}null!=d?(h=d,n.scrollCellToVisible(h.cell),n.isEnabled()?n.setSelectionCell(h.cell):n.highlightCell(h.cell)):n.isEnabled()&&n.clearSelection();return 0==b.length||null!=d} -var m=a.actions.get("find"),n=a.editor.graph,f=null,h=null,k=document.createElement("div");k.style.userSelect="none";k.style.overflow="hidden";k.style.padding="10px";k.style.height="100%";var q=document.createElement("input");q.setAttribute("placeholder",mxResources.get("find"));q.setAttribute("type","text");q.style.marginTop="4px";q.style.marginBottom="6px";q.style.width="200px";q.style.fontSize="12px";q.style.borderRadius="4px";q.style.padding="6px";k.appendChild(q);mxUtils.br(k);var u=document.createElement("input"); -u.setAttribute("type","checkbox");u.style.marginRight="4px";k.appendChild(u);mxUtils.write(k,mxResources.get("regularExpression"));var p=document.createElement("div");mxUtils.br(k);var v=mxUtils.button(mxResources.get("reset"),function(){q.value="";q.style.backgroundColor="";f=h=null;q.focus()});v.setAttribute("title",mxResources.get("reset"));v.style.marginTop="6px";v.style.marginRight="4px";v.className="geBtn";k.appendChild(v);v=mxUtils.button(mxResources.get("find"),function(){try{q.style.backgroundColor= -l()?"":"#ffcfcf"}catch(y){a.handleError(y)}});v.setAttribute("title",mxResources.get("find")+" (Enter)");v.style.marginTop="6px";v.className="geBtn gePrimaryBtn";k.appendChild(v);mxEvent.addListener(q,"keyup",function(a){if(91==a.keyCode||17==a.keyCode)mxEvent.consume(a);else if(27==a.keyCode)m.funct();else if(f!=q.value.toLowerCase()||13==a.keyCode)try{q.style.backgroundColor=l()?"":"#ffcfcf"}catch(A){q.style.backgroundColor="#ffcfcf"}});mxEvent.addListener(k,"keydown",function(b){70==b.keyCode&& -a.keyHandler.isControlDown(b)&&!mxEvent.isShiftDown(b)&&(m.funct(),mxEvent.consume(b))});this.window=new mxWindow(mxResources.get("find"),k,b,c,d,e,!0,!0);this.window.destroyOnClose=!1;this.window.setMaximizable(!1);this.window.setResizable(!1);this.window.setClosable(!0);this.window.addListener("show",mxUtils.bind(this,function(){this.window.isVisible()?(q.focus(),mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode||mxClient.IS_QUIRKS?q.select():document.execCommand("selectAll",!1,null)):n.container.focus()}))}, -TagsWindow=function(a,b,c,d,e){var g=a.editor.graph,l="tags",m=document.createElement("div");m.style.userSelect="none";m.style.overflow="hidden";m.style.padding="10px";m.style.height="100%";var n=document.createElement("input");n.setAttribute("placeholder",mxResources.get("allTags"));n.setAttribute("type","text");n.style.marginTop="4px";n.style.width="260px";n.style.fontSize="12px";n.style.borderRadius="4px";n.style.padding="6px";m.appendChild(n);if(!a.isOffline()||mxClient.IS_CHROMEAPP){n.style.width= -"240px";var f=a.menus.createHelpLink("https://desk.draw.io/support/solutions/articles/16000046966");f.firstChild.style.marginBottom="6px";f.style.marginLeft="6px";m.appendChild(f)}mxEvent.addListener(n,"dblclick",function(){var b=new FilenameDialog(a,l,mxResources.get("ok"),mxUtils.bind(this,function(a){null!=a&&0<a.length&&(l=a)}),mxResources.get("enterPropertyName"));a.showDialog(b.container,300,80,!0,!0);b.init()});n.setAttribute("title",mxResources.get("doubleClickChangeProperty"));mxUtils.br(m); -f=mxUtils.button(mxResources.get("hide"),function(){var a=g.getCellsForTags(n.value.split(" "),void 0,l);g.setCellsVisible(a,!1)});f.setAttribute("title",mxResources.get("hide"));f.style.marginTop="8px";f.style.marginRight="4px";f.className="geBtn";m.appendChild(f);f=mxUtils.button(mxResources.get("show"),function(){var a=g.getCellsForTags(n.value.split(" "),void 0,l);g.setCellsVisible(a,!0);if(g.isEnabled())g.setSelectionCells(a);else for(var b=0;b<a.length;b++)g.highlightCell(a[b])});f.setAttribute("title", -mxResources.get("show"));f.style.marginTop="8px";f.style.marginRight="4px";f.className="geBtn";m.appendChild(f);var h=a.actions.get("tags"),f=mxUtils.button(mxResources.get("close"),function(){h.funct()});f.setAttribute("title",mxResources.get("close")+" (Enter/Esc)");f.style.marginTop="8px";f.className="geBtn gePrimaryBtn";m.appendChild(f);mxEvent.addListener(n,"keyup",function(a){13!=a.keyCode&&27!=a.keyCode||h.funct()});this.window=new mxWindow(mxResources.get("tags"),m,b,c,d,e,!0,!0);this.window.destroyOnClose= -!1;this.window.setMaximizable(!1);this.window.setResizable(!1);this.window.setClosable(!0);this.window.addListener("show",mxUtils.bind(this,function(){this.window.isVisible()?(n.focus(),mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode||mxClient.IS_QUIRKS?n.select():document.execCommand("selectAll",!1,null)):g.container.focus()}))},AuthDialog=function(a,b,c,d){var e=document.createElement("div");e.style.textAlign="center";var g=document.createElement("p");g.style.fontSize="16pt";g.style.padding= -"0px";g.style.margin="0px";g.style.color="gray";mxUtils.write(g,mxResources.get("authorizationRequired"));var l="Unknown",m=document.createElement("img");m.setAttribute("border","0");m.setAttribute("align","absmiddle");m.style.marginRight="10px";b==a.drive?(l=mxResources.get("googleDrive"),m.src=IMAGE_PATH+"/google-drive-logo-white.svg"):b==a.dropbox?(l=mxResources.get("dropbox"),m.src=IMAGE_PATH+"/dropbox-logo-white.svg"):b==a.oneDrive?(l=mxResources.get("oneDrive"),m.src=IMAGE_PATH+"/onedrive-logo-white.svg"): -b==a.gitHub?(l=mxResources.get("github"),m.src=IMAGE_PATH+"/github-logo-white.svg"):b==a.trello&&(l=mxResources.get("trello"),m.src=IMAGE_PATH+"/trello-logo-white.svg");a=document.createElement("p");mxUtils.write(a,mxResources.get("authorizeThisAppIn",[l]));var n=document.createElement("input");n.setAttribute("type","checkbox");l=mxUtils.button(mxResources.get("authorize"),function(){d(n.checked)});l.insertBefore(m,l.firstChild);l.style.marginTop="6px";l.className="geBigButton";e.appendChild(g);e.appendChild(a); -e.appendChild(l);c&&(c=document.createElement("p"),c.style.marginTop="20px",c.appendChild(n),g=document.createElement("span"),mxUtils.write(g," "+mxResources.get("rememberMe")),c.appendChild(g),e.appendChild(c),n.checked=!0,n.defaultChecked=!0,mxEvent.addListener(g,"click",function(a){n.checked=!n.checked;mxEvent.consume(a)}));this.container=e},MoreShapesDialog=function(a,b,c){c=null!=c?c:a.sidebar.entries;var d=document.createElement("div"),e=[];if(null!=a.sidebar.customEntries)for(var g=0;g<a.sidebar.customEntries.length;g++){for(var l= -a.sidebar.customEntries[g],m={title:a.getResource(l.title),entries:[]},n=0;n<l.entries.length;n++){var f=l.entries[n];m.entries.push({id:f.id,title:a.getResource(f.title),desc:a.getResource(f.desc),image:f.preview})}e.push(m)}for(g=0;g<c.length;g++)if(null==a.sidebar.enabledLibraries)e.push(c[g]);else{m={title:c[g].title,entries:[]};for(n=0;n<c[g].entries.length;n++)0<=mxUtils.indexOf(a.sidebar.enabledLibraries,c[g].entries[n].id)&&m.entries.push(c[g].entries[n]);0<m.entries.length&&e.push(m)}c=e; -if(b){n=document.createElement("div");n.className="geDialogTitle";mxUtils.write(n,mxResources.get("shapes"));n.style.position="absolute";n.style.top="0px";n.style.left="0px";n.style.lineHeight="40px";n.style.height="40px";n.style.right="0px";mxClient.IS_QUIRKS&&(n.style.width="718px");var h=document.createElement("div"),k=document.createElement("div");h.style.position="absolute";h.style.top="40px";h.style.left="0px";h.style.width="202px";h.style.bottom="60px";h.style.overflow="auto";mxClient.IS_QUIRKS&& -(h.style.height="437px",h.style.marginTop="1px");k.style.position="absolute";k.style.left="202px";k.style.right="0px";k.style.top="40px";k.style.bottom="60px";k.style.overflow="auto";k.style.borderLeft="1px solid rgb(211, 211, 211)";k.style.textAlign="center";mxClient.IS_QUIRKS&&(k.style.width=parseInt(n.style.width)-202+"px",k.style.height=h.style.height,k.style.marginTop=h.style.marginTop);var q=null,u=[],p=document.createElement("div");p.style.position="relative";p.style.left="0px";p.style.right= -"0px";for(g=0;g<c.length;g++)(function(b){var c=p.cloneNode(!1);c.style.fontWeight="bold";c.style.backgroundColor="dark"==uiTheme?"#505759":"#e5e5e5";c.style.padding="6px 0px 6px 20px";mxUtils.write(c,b.title);h.appendChild(c);for(var d=0;d<b.entries.length;d++)(function(b){var c=p.cloneNode(!1);c.style.cursor="pointer";c.style.padding="4px 0px 4px 20px";var f=document.createElement("input");f.setAttribute("type","checkbox");f.checked=a.sidebar.isEntryVisible(b.id);f.defaultChecked=f.checked;c.appendChild(f); -mxUtils.write(c," "+b.title);h.appendChild(c);var e=function(a){if(null==a||"INPUT"!=mxEvent.getSource(a).nodeName){k.style.textAlign="center";k.style.padding="0px";k.style.color="";k.innerHTML="";if(null!=b.desc){var d=document.createElement("pre");d.style.boxSizing="border-box";d.style.fontFamily="inherit";d.style.margin="20px";d.style.right="0px";d.style.textAlign="left";mxUtils.write(d,b.desc);k.appendChild(d)}null!=b.imageCallback?b.imageCallback(k):null!=b.image?k.innerHTML+='<img border="0" src="'+ -b.image+'"/>':null==b.desc&&(k.style.padding="20px",k.style.color="rgb(179, 179, 179)",mxUtils.write(k,mxResources.get("noPreview")));null!=q&&(q.style.backgroundColor="");q=c;q.style.backgroundColor="dark"==uiTheme?"#505759":"#ebf2f9";null!=a&&mxEvent.consume(a)}};mxEvent.addListener(c,"click",e);mxEvent.addListener(c,"dblclick",function(a){f.checked=!f.checked;mxEvent.consume(a)});u.push(function(){return f.checked?b.id:null});0==g&&0==d&&e()})(b.entries[d])})(c[g]);d.style.padding="30px";d.appendChild(n); -d.appendChild(h);d.appendChild(k);c=document.createElement("div");c.className="geDialogFooter";c.style.position="absolute";c.style.paddingRight="16px";c.style.color="gray";c.style.left="0px";c.style.right="0px";c.style.bottom="0px";c.style.height="60px";c.style.lineHeight="52px";mxClient.IS_QUIRKS&&(c.style.width=n.style.width,c.style.paddingTop="12px");var v=document.createElement("input");v.setAttribute("type","checkbox");if(isLocalStorage||mxClient.IS_CHROMEAPP)n=document.createElement("span"), -n.style.paddingRight="20px",n.appendChild(v),mxUtils.write(n," "+mxResources.get("rememberThisSetting")),v.checked=!0,v.defaultChecked=!0,mxEvent.addListener(n,"click",function(a){mxEvent.getSource(a)!=v&&(v.checked=!v.checked,mxEvent.consume(a))}),mxClient.IS_QUIRKS&&(n.style.position="relative",n.style.top="-6px"),c.appendChild(n);n=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});n.className="geBtn";b=mxUtils.button(mxResources.get("apply"),function(){a.hideDialog();for(var b= -[],c=0;c<u.length;c++){var d=u[c].apply(this,arguments);null!=d&&b.push(d)}a.sidebar.showEntries(b.join(";"),v.checked,!0)});b.className="geBtn gePrimaryBtn"}else{var y=document.createElement("table"),n=document.createElement("tbody");d.style.height="100%";d.style.overflow="auto";m=document.createElement("tr");y.style.width="100%";b=document.createElement("td");var e=document.createElement("td"),l=document.createElement("td"),A=mxUtils.bind(this,function(b,c,d){var f=document.createElement("input"); -f.type="checkbox";y.appendChild(f);f.checked=a.sidebar.isEntryVisible(d);var h=document.createElement("span");mxUtils.write(h,c);c=document.createElement("div");c.style.display="block";c.appendChild(f);c.appendChild(h);mxEvent.addListener(h,"click",function(a){f.checked=!f.checked;mxEvent.consume(a)});b.appendChild(c);return function(){return f.checked?d:null}});m.appendChild(b);m.appendChild(e);m.appendChild(l);n.appendChild(m);y.appendChild(n);for(var u=[],t=0,g=0;g<c.length;g++)for(n=0;n<c[g].entries.length;n++)t++; -for(var w=[b,e,l],x=0,g=0;g<c.length;g++)(function(a){for(var b=0;b<a.entries.length;b++){var c=a.entries[b];u.push(A(w[Math.floor(x/(t/3))],c.title,c.id));x++}})(c[g]);d.appendChild(y);c=document.createElement("div");c.style.marginTop="18px";c.style.textAlign="center";v=document.createElement("input");isLocalStorage&&(v.setAttribute("type","checkbox"),v.checked=!0,v.defaultChecked=!0,c.appendChild(v),n=document.createElement("span"),mxUtils.write(n," "+mxResources.get("rememberThisSetting")),c.appendChild(n), -mxEvent.addListener(n,"click",function(a){v.checked=!v.checked;mxEvent.consume(a)}));d.appendChild(c);n=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});n.className="geBtn";b=mxUtils.button(mxResources.get("apply"),function(){for(var b=["search"],c=0;c<u.length;c++){var d=u[c].apply(this,arguments);null!=d&&b.push(d)}a.sidebar.showEntries(0<b.length?b.join(";"):"",v.checked);a.hideDialog()});b.className="geBtn gePrimaryBtn";c=document.createElement("div");c.style.marginTop="26px"; -c.style.textAlign="right"}a.editor.cancelFirst?(c.appendChild(n),c.appendChild(b)):(c.appendChild(b),c.appendChild(n));d.appendChild(c);this.container=d},PluginsDialog=function(a){function b(){if(0==e.length)d.innerHTML=mxResources.get("noPlugins");else{d.innerHTML="";for(var c=0;c<e.length;c++){var f=document.createElement("span");f.style.whiteSpace="nowrap";var g=document.createElement("span");g.className="geSprite geSprite-delete";g.style.position="relative";g.style.cursor="pointer";g.style.top= +(c="undefined"===typeof pako?"&xml="+encodeURIComponent(c):"&data="+encodeURIComponent(a.editor.graph.compress(c)),(new mxXmlRequest(SAVE_URL,"filename="+encodeURIComponent(b)+"&format=xml"+c)).simulate(document,"_blank"))}});F.className="geBtn";F.setAttribute("disabled","disabled");var E=mxUtils.button(mxResources.get("restore"),function(){null!=y&&null!=B&&a.confirm(mxResources.get("areYouSure"),function(){null!=c?c(B):a.spinner.spin(document.body,mxResources.get("restoring"))&&p.save(!0,function(b){a.spinner.stop(); +a.replaceFileData(B);a.hideDialog()},function(b){a.spinner.stop();a.editor.setStatus("");a.handleError(b,null!=b?mxResources.get("errorSavingFile"):null)})})});E.className="geBtn";E.setAttribute("disabled","disabled");var G=document.createElement("select");G.setAttribute("disabled","disabled");G.style.maxWidth="80px";G.style.position="relative";G.style.top="-2px";G.style.verticalAlign="bottom";G.style.marginRight="6px";G.style.display="none";var I=null;mxEvent.addListener(G,"change",function(a){null!= +I&&(I(a),mxEvent.consume(a))});var A=mxUtils.button(mxResources.get("openInNewWindow"),function(){null!=y&&(window.openFile=new OpenFile(function(){window.openFile=null}),window.openFile.setData(mxUtils.getXml(y.documentElement)),window.openWindow(a.getUrl()))});A.className="geBtn";A.setAttribute("disabled","disabled");null!=c&&(A.style.display="none");var D=mxUtils.button(mxResources.get("show"),function(){null!=v&&a.openLink(v.getUrl())});D.className="geBtn gePrimaryBtn";D.setAttribute("disabled", +"disabled");null!=c&&(D.style.display="none",E.className="geBtn gePrimaryBtn");e=document.createElement("div");e.style.position="absolute";e.style.top="482px";e.style.width="640px";e.style.textAlign="right";var H=document.createElement("div");H.className="geToolbarContainer";H.style.backgroundColor="transparent";H.style.padding="2px";H.style.border="none";H.style.left="199px";H.style.top="442px";var M=null;if(null!=b&&0<b.length){k.style.cursor="move";var K=document.createElement("table");K.style.border= +"1px solid lightGray";K.style.borderCollapse="collapse";K.style.borderSpacing="0px";K.style.width="100%";var T=document.createElement("tbody"),P=(new Date).toDateString();null!=a.currentPage&&null!=a.pages&&(m=mxUtils.indexOf(a.pages,a.currentPage));for(var S=b.length-1;0<=S;S--){var aa=function(c){var d=new Date(c.modifiedDate),n=null;if(0<=d.getTime()){var e=function(b){u.stop();var c=mxUtils.parseXml(b),e=a.editor.extractGraphModel(c.documentElement,!0);if(null!=e){var g=function(b){null!=b&&(b= +q(mxUtils.parseXml(a.editor.graph.decompress(mxUtils.getTextContent(b))).documentElement));return b},q=function(a){var b=a.getAttribute("background");if(null==b||""==b||b==mxConstants.NONE)b="#ffffff";k.style.backgroundColor=b;(new mxCodec(a.ownerDocument)).decode(a,l.getModel());l.maxFitScale=1;l.fit(8);l.center();return a};G.style.display="none";G.innerHTML="";y=c;B=b;f=parseSelectFunction=null;h=0;if("mxfile"==e.nodeName){c=e.getElementsByTagName("diagram");f=[];for(b=0;b<c.length;b++)f.push(c[b]); +h=Math.min(m,f.length-1);0<f.length&&g(f[h]);if(1<f.length)for(G.removeAttribute("disabled"),G.style.display="",b=0;b<f.length;b++)c=document.createElement("option"),mxUtils.write(c,f[b].getAttribute("name")||mxResources.get("pageWithNumber",[b+1])),c.setAttribute("value",b),b==h&&c.setAttribute("selected","selected"),G.appendChild(c);I=function(){h=m=parseInt(G.value);g(f[m])}}else q(e);z.innerHTML="";mxUtils.write(z,d.toLocaleDateString()+" "+d.toLocaleTimeString());z.setAttribute("title",n.getAttribute("title")); +t.removeAttribute("disabled");w.removeAttribute("disabled");x.removeAttribute("disabled");C.removeAttribute("disabled");null!=p&&p.isRestricted()||(a.editor.graph.isEnabled()&&E.removeAttribute("disabled"),F.removeAttribute("disabled"),D.removeAttribute("disabled"),A.removeAttribute("disabled"));mxUtils.setOpacity(t,60);mxUtils.setOpacity(w,60);mxUtils.setOpacity(x,60);mxUtils.setOpacity(C,60)}else G.style.display="none",G.innerHTML="",z.innerHTML="",mxUtils.write(z,mxResources.get("errorLoadingFile"))}, +n=document.createElement("tr");n.style.borderBottom="1px solid lightGray";n.style.fontSize="12px";n.style.cursor="pointer";var g=document.createElement("td");g.style.padding="6px";g.style.whiteSpace="nowrap";c==b[b.length-1]?mxUtils.write(g,mxResources.get("current")):d.toDateString()===P?mxUtils.write(g,d.toLocaleTimeString()):mxUtils.write(g,d.toLocaleDateString()+" "+d.toLocaleTimeString());n.appendChild(g);n.setAttribute("title",d.toLocaleDateString()+" "+d.toLocaleTimeString()+" "+a.formatFileSize(parseInt(c.fileSize))+ +(null!=c.lastModifyingUserName?" "+c.lastModifyingUserName:""));mxEvent.addListener(n,"click",function(a){v!=c&&(u.stop(),null!=q&&(q.style.backgroundColor=""),v=c,q=n,q.style.backgroundColor="#ebf2f9",B=y=null,z.removeAttribute("title"),z.innerHTML=mxResources.get("loading")+"...",k.style.backgroundColor="#ffffff",l.getModel().clear(),E.setAttribute("disabled","disabled"),F.setAttribute("disabled","disabled"),t.setAttribute("disabled","disabled"),w.setAttribute("disabled","disabled"),C.setAttribute("disabled", +"disabled"),x.setAttribute("disabled","disabled"),A.setAttribute("disabled","disabled"),D.setAttribute("disabled","disabled"),G.setAttribute("disabled","disabled"),mxUtils.setOpacity(t,20),mxUtils.setOpacity(w,20),mxUtils.setOpacity(x,20),mxUtils.setOpacity(C,20),u.spin(k),c.getXml(function(a){v==c&&e(a)},function(a){u.stop();G.style.display="none";G.innerHTML="";z.innerHTML="";mxUtils.write(z,mxResources.get("errorLoadingFile"))}),mxEvent.consume(a))});mxEvent.addListener(n,"dblclick",function(a){D.click(); +window.getSelection?window.getSelection().removeAllRanges():document.selection&&document.selection.empty();mxEvent.consume(a)},!1);T.appendChild(n)}return n}(b[S]);null!=aa&&S==b.length-1&&(M=aa)}K.appendChild(T);g.appendChild(K)}else null==p||null==a.drive&&p.constructor==window.DriveFile||null==a.dropbox&&p.constructor==window.DropboxFile?(k.style.display="none",H.style.display="none",mxUtils.write(g,mxResources.get("notAvailable"))):(k.style.display="none",H.style.display="none",mxUtils.write(g, +mxResources.get("noRevisions")));this.init=function(){null!=M&&M.click()};g=mxUtils.button(mxResources.get("close"),function(){a.hideDialog()});g.className="geBtn";H.appendChild(G);H.appendChild(t);H.appendChild(w);H.appendChild(C);H.appendChild(x);a.editor.cancelFirst?(e.appendChild(g),e.appendChild(F),e.appendChild(A),e.appendChild(E),e.appendChild(D)):(e.appendChild(F),e.appendChild(A),e.appendChild(E),e.appendChild(D),e.appendChild(g));d.appendChild(e);d.appendChild(H);d.appendChild(z);this.container= +d},DraftDialog=function(a,b,c,d,e,g,k,l){var m=document.createElement("div"),f=document.createElement("div");f.style.marginTop="0px";f.style.whiteSpace="nowrap";f.style.overflow="auto";mxUtils.write(f,b);m.appendChild(f);var h=document.createElement("div");h.style.position="absolute";h.style.border="1px solid lightGray";h.style.marginTop="10px";h.style.width="640px";h.style.top="46px";h.style.bottom="74px";h.style.overflow="hidden";mxEvent.disableContextMenu(h);m.appendChild(h);var n=new Graph(h); +n.setEnabled(!1);n.setPanning(!0);n.panningHandler.ignoreCell=!0;n.panningHandler.useLeftButtonForPanning=!0;n.minFitScale=null;n.maxFitScale=null;n.centerZoom=!0;b=mxUtils.parseXml(c);var u=a.editor.extractGraphModel(b.documentElement,!0),p=0,q=null,v=n.getGlobalVariable;n.getGlobalVariable=function(a){return"page"==a&&null!=q&&null!=q[p]?q[p].getAttribute("name"):"pagenumber"==a?p+1:v.apply(this,arguments)};n.getLinkForCell=function(){return null};b=mxUtils.button("",function(){n.zoomIn()});b.className= +"geSprite geSprite-zoomin";b.setAttribute("title",mxResources.get("zoomIn"));b.style.outline="none";b.style.border="none";b.style.margin="2px";mxUtils.setOpacity(b,60);c=mxUtils.button("",function(){n.zoomOut()});c.className="geSprite geSprite-zoomout";c.setAttribute("title",mxResources.get("zoomOut"));c.style.outline="none";c.style.border="none";c.style.margin="2px";mxUtils.setOpacity(c,60);f=mxUtils.button("",function(){n.maxFitScale=8;n.fit(8);n.center()});f.className="geSprite geSprite-fit";f.setAttribute("title", +mxResources.get("fit"));f.style.outline="none";f.style.border="none";f.style.margin="2px";mxUtils.setOpacity(f,60);var y=mxUtils.button("",function(){n.zoomActual();n.center()});y.className="geSprite geSprite-actualsize";y.setAttribute("title",mxResources.get("actualSize"));y.style.outline="none";y.style.border="none";y.style.margin="2px";mxUtils.setOpacity(y,60);e=mxUtils.button(k||mxResources.get("discard"),e);e.className="geBtn";var B=document.createElement("select");B.style.maxWidth="80px";B.style.position= +"relative";B.style.top="-2px";B.style.verticalAlign="bottom";B.style.marginRight="6px";B.style.display="none";d=mxUtils.button(g||mxResources.get("edit"),d);d.className="geBtn gePrimaryBtn";g=document.createElement("div");g.style.position="absolute";g.style.bottom="30px";g.style.width="640px";g.style.textAlign="right";k=document.createElement("div");k.className="geToolbarContainer";k.style.cssText="box-shadow:none !important;background-color:transparent;padding:2px;border-style:none !important;bottom:30px;"; +this.init=function(){function b(a){if(null!=a){var b=a.getAttribute("background");if(null==b||""==b||b==mxConstants.NONE)b="#ffffff";h.style.backgroundColor=b;(new mxCodec(a.ownerDocument)).decode(a,n.getModel());n.maxFitScale=1;n.fit(8);n.center()}}function c(c){null!=c&&(c=b(mxUtils.parseXml(a.editor.graph.decompress(mxUtils.getTextContent(c))).documentElement));return c}mxEvent.addListener(B,"change",function(a){p=parseInt(B.value);c(q[p]);mxEvent.consume(a)});if("mxfile"==u.nodeName){var d=u.getElementsByTagName("diagram"); +q=[];for(var f=0;f<d.length;f++)q.push(d[f]);0<q.length&&c(q[p]);if(1<q.length)for(B.style.display="",f=0;f<q.length;f++)d=document.createElement("option"),mxUtils.write(d,q[f].getAttribute("name")||mxResources.get("pageWithNumber",[f+1])),d.setAttribute("value",f),f==p&&d.setAttribute("selected","selected"),B.appendChild(d)}else b(u)};k.appendChild(B);k.appendChild(b);k.appendChild(c);k.appendChild(y);k.appendChild(f);b=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog(!0)});b.className= +"geBtn";l=null!=l?mxUtils.button(mxResources.get("ignore"),l):null;null!=l&&(l.className="geBtn");a.editor.cancelFirst?(g.appendChild(b),null!=l&&g.appendChild(l),g.appendChild(e),g.appendChild(d)):(g.appendChild(d),g.appendChild(e),null!=l&&g.appendChild(l),g.appendChild(b));m.appendChild(g);m.appendChild(k);this.container=m},FindWindow=function(a,b,c,d,e){function g(a,b,c){if("object"===typeof b.value&&null!=b.value.attributes){b=b.value.attributes;for(var d=0;d<b.length;d++)if("label"!=b[d].nodeName){var f= +mxUtils.trim(b[d].nodeValue.replace(/[\x00-\x1F\x7F-\x9F]|\s+/g," ")).toLowerCase();if(null==a&&f.substring(0,c.length)===c||null!=a&&a.test(f))return!0}}return!1}function k(){var a=m.model.getDescendants(m.model.getRoot()),b=u.value.toLowerCase(),c=p.checked?new RegExp(b):null,d=null;f!=b&&(f=b,h=null);var n=null==h;if(0<b.length)for(var e=0;e<a.length;e++){var k=m.view.getState(a[e]);if(null!=k&&null!=k.cell.value&&(n||null==d)&&(m.model.isVertex(k.cell)||m.model.isEdge(k.cell))&&(m.isHtmlLabel(k.cell)? +(q.innerHTML=m.getLabel(k.cell),label=mxUtils.extractTextWithWhitespace([q])):label=m.getLabel(k.cell),label=mxUtils.trim(label.replace(/[\x00-\x1F\x7F-\x9F]|\s+/g," ")).toLowerCase(),null==c&&(label.substring(0,b.length)===b||g(c,k.cell,b))||null!=c&&(c.test(label)||g(c,k.cell,b))))if(n){d=k;break}else null==d&&(d=k);n=n||k==h}null!=d?(h=d,m.scrollCellToVisible(h.cell),m.isEnabled()?m.setSelectionCell(h.cell):m.highlightCell(h.cell)):m.isEnabled()&&m.clearSelection();return 0==b.length||null!=d} +var l=a.actions.get("find"),m=a.editor.graph,f=null,h=null,n=document.createElement("div");n.style.userSelect="none";n.style.overflow="hidden";n.style.padding="10px";n.style.height="100%";var u=document.createElement("input");u.setAttribute("placeholder",mxResources.get("find"));u.setAttribute("type","text");u.style.marginTop="4px";u.style.marginBottom="6px";u.style.width="200px";u.style.fontSize="12px";u.style.borderRadius="4px";u.style.padding="6px";n.appendChild(u);mxUtils.br(n);var p=document.createElement("input"); +p.setAttribute("type","checkbox");p.style.marginRight="4px";n.appendChild(p);mxUtils.write(n,mxResources.get("regularExpression"));var q=document.createElement("div");mxUtils.br(n);var v=mxUtils.button(mxResources.get("reset"),function(){u.value="";u.style.backgroundColor="";f=h=null;u.focus()});v.setAttribute("title",mxResources.get("reset"));v.style.marginTop="6px";v.style.marginRight="4px";v.className="geBtn";n.appendChild(v);v=mxUtils.button(mxResources.get("find"),function(){try{u.style.backgroundColor= +k()?"":"#ffcfcf"}catch(y){a.handleError(y)}});v.setAttribute("title",mxResources.get("find")+" (Enter)");v.style.marginTop="6px";v.className="geBtn gePrimaryBtn";n.appendChild(v);mxEvent.addListener(u,"keyup",function(a){if(91==a.keyCode||17==a.keyCode)mxEvent.consume(a);else if(27==a.keyCode)l.funct();else if(f!=u.value.toLowerCase()||13==a.keyCode)try{u.style.backgroundColor=k()?"":"#ffcfcf"}catch(B){u.style.backgroundColor="#ffcfcf"}});mxEvent.addListener(n,"keydown",function(b){70==b.keyCode&& +a.keyHandler.isControlDown(b)&&!mxEvent.isShiftDown(b)&&(l.funct(),mxEvent.consume(b))});this.window=new mxWindow(mxResources.get("find"),n,b,c,d,e,!0,!0);this.window.destroyOnClose=!1;this.window.setMaximizable(!1);this.window.setResizable(!1);this.window.setClosable(!0);this.window.addListener("show",mxUtils.bind(this,function(){this.window.isVisible()?(u.focus(),mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode||mxClient.IS_QUIRKS?u.select():document.execCommand("selectAll",!1,null)):m.container.focus()}))}, +TagsWindow=function(a,b,c,d,e){var g=a.editor.graph,k="tags",l=document.createElement("div");l.style.userSelect="none";l.style.overflow="hidden";l.style.padding="10px";l.style.height="100%";var m=document.createElement("input");m.setAttribute("placeholder",mxResources.get("allTags"));m.setAttribute("type","text");m.style.marginTop="4px";m.style.width="260px";m.style.fontSize="12px";m.style.borderRadius="4px";m.style.padding="6px";l.appendChild(m);if(!a.isOffline()||mxClient.IS_CHROMEAPP){m.style.width= +"240px";var f=a.menus.createHelpLink("https://desk.draw.io/support/solutions/articles/16000046966");f.firstChild.style.marginBottom="6px";f.style.marginLeft="6px";l.appendChild(f)}mxEvent.addListener(m,"dblclick",function(){var b=new FilenameDialog(a,k,mxResources.get("ok"),mxUtils.bind(this,function(a){null!=a&&0<a.length&&(k=a)}),mxResources.get("enterPropertyName"));a.showDialog(b.container,300,80,!0,!0);b.init()});m.setAttribute("title",mxResources.get("doubleClickChangeProperty"));mxUtils.br(l); +f=mxUtils.button(mxResources.get("hide"),function(){var a=g.getCellsForTags(m.value.split(" "),void 0,k);g.setCellsVisible(a,!1)});f.setAttribute("title",mxResources.get("hide"));f.style.marginTop="8px";f.style.marginRight="4px";f.className="geBtn";l.appendChild(f);f=mxUtils.button(mxResources.get("show"),function(){var a=g.getCellsForTags(m.value.split(" "),void 0,k);g.setCellsVisible(a,!0);if(g.isEnabled())g.setSelectionCells(a);else for(var b=0;b<a.length;b++)g.highlightCell(a[b])});f.setAttribute("title", +mxResources.get("show"));f.style.marginTop="8px";f.style.marginRight="4px";f.className="geBtn";l.appendChild(f);var h=a.actions.get("tags"),f=mxUtils.button(mxResources.get("close"),function(){h.funct()});f.setAttribute("title",mxResources.get("close")+" (Enter/Esc)");f.style.marginTop="8px";f.className="geBtn gePrimaryBtn";l.appendChild(f);mxEvent.addListener(m,"keyup",function(a){13!=a.keyCode&&27!=a.keyCode||h.funct()});this.window=new mxWindow(mxResources.get("tags"),l,b,c,d,e,!0,!0);this.window.destroyOnClose= +!1;this.window.setMaximizable(!1);this.window.setResizable(!1);this.window.setClosable(!0);this.window.addListener("show",mxUtils.bind(this,function(){this.window.isVisible()?(m.focus(),mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode||mxClient.IS_QUIRKS?m.select():document.execCommand("selectAll",!1,null)):g.container.focus()}))},AuthDialog=function(a,b,c,d){var e=document.createElement("div");e.style.textAlign="center";var g=document.createElement("p");g.style.fontSize="16pt";g.style.padding= +"0px";g.style.margin="0px";g.style.color="gray";mxUtils.write(g,mxResources.get("authorizationRequired"));var k="Unknown",l=document.createElement("img");l.setAttribute("border","0");l.setAttribute("align","absmiddle");l.style.marginRight="10px";b==a.drive?(k=mxResources.get("googleDrive"),l.src=IMAGE_PATH+"/google-drive-logo-white.svg"):b==a.dropbox?(k=mxResources.get("dropbox"),l.src=IMAGE_PATH+"/dropbox-logo-white.svg"):b==a.oneDrive?(k=mxResources.get("oneDrive"),l.src=IMAGE_PATH+"/onedrive-logo-white.svg"): +b==a.gitHub?(k=mxResources.get("github"),l.src=IMAGE_PATH+"/github-logo-white.svg"):b==a.trello&&(k=mxResources.get("trello"),l.src=IMAGE_PATH+"/trello-logo-white.svg");a=document.createElement("p");mxUtils.write(a,mxResources.get("authorizeThisAppIn",[k]));var m=document.createElement("input");m.setAttribute("type","checkbox");k=mxUtils.button(mxResources.get("authorize"),function(){d(m.checked)});k.insertBefore(l,k.firstChild);k.style.marginTop="6px";k.className="geBigButton";e.appendChild(g);e.appendChild(a); +e.appendChild(k);c&&(c=document.createElement("p"),c.style.marginTop="20px",c.appendChild(m),g=document.createElement("span"),mxUtils.write(g," "+mxResources.get("rememberMe")),c.appendChild(g),e.appendChild(c),m.checked=!0,m.defaultChecked=!0,mxEvent.addListener(g,"click",function(a){m.checked=!m.checked;mxEvent.consume(a)}));this.container=e},MoreShapesDialog=function(a,b,c){c=null!=c?c:a.sidebar.entries;var d=document.createElement("div"),e=[];if(null!=a.sidebar.customEntries)for(var g=0;g<a.sidebar.customEntries.length;g++){for(var k= +a.sidebar.customEntries[g],l={title:a.getResource(k.title),entries:[]},m=0;m<k.entries.length;m++){var f=k.entries[m];l.entries.push({id:f.id,title:a.getResource(f.title),desc:a.getResource(f.desc),image:f.preview})}e.push(l)}for(g=0;g<c.length;g++)if(null==a.sidebar.enabledLibraries)e.push(c[g]);else{l={title:c[g].title,entries:[]};for(m=0;m<c[g].entries.length;m++)0<=mxUtils.indexOf(a.sidebar.enabledLibraries,c[g].entries[m].id)&&l.entries.push(c[g].entries[m]);0<l.entries.length&&e.push(l)}c=e; +if(b){m=document.createElement("div");m.className="geDialogTitle";mxUtils.write(m,mxResources.get("shapes"));m.style.position="absolute";m.style.top="0px";m.style.left="0px";m.style.lineHeight="40px";m.style.height="40px";m.style.right="0px";mxClient.IS_QUIRKS&&(m.style.width="718px");var h=document.createElement("div"),n=document.createElement("div");h.style.position="absolute";h.style.top="40px";h.style.left="0px";h.style.width="202px";h.style.bottom="60px";h.style.overflow="auto";mxClient.IS_QUIRKS&& +(h.style.height="437px",h.style.marginTop="1px");n.style.position="absolute";n.style.left="202px";n.style.right="0px";n.style.top="40px";n.style.bottom="60px";n.style.overflow="auto";n.style.borderLeft="1px solid rgb(211, 211, 211)";n.style.textAlign="center";mxClient.IS_QUIRKS&&(n.style.width=parseInt(m.style.width)-202+"px",n.style.height=h.style.height,n.style.marginTop=h.style.marginTop);var u=null,p=[],q=document.createElement("div");q.style.position="relative";q.style.left="0px";q.style.right= +"0px";for(g=0;g<c.length;g++)(function(b){var c=q.cloneNode(!1);c.style.fontWeight="bold";c.style.backgroundColor="dark"==uiTheme?"#505759":"#e5e5e5";c.style.padding="6px 0px 6px 20px";mxUtils.write(c,b.title);h.appendChild(c);for(var d=0;d<b.entries.length;d++)(function(b){var c=q.cloneNode(!1);c.style.cursor="pointer";c.style.padding="4px 0px 4px 20px";var f=document.createElement("input");f.setAttribute("type","checkbox");f.checked=a.sidebar.isEntryVisible(b.id);f.defaultChecked=f.checked;c.appendChild(f); +mxUtils.write(c," "+b.title);h.appendChild(c);var e=function(a){if(null==a||"INPUT"!=mxEvent.getSource(a).nodeName){n.style.textAlign="center";n.style.padding="0px";n.style.color="";n.innerHTML="";if(null!=b.desc){var d=document.createElement("pre");d.style.boxSizing="border-box";d.style.fontFamily="inherit";d.style.margin="20px";d.style.right="0px";d.style.textAlign="left";mxUtils.write(d,b.desc);n.appendChild(d)}null!=b.imageCallback?b.imageCallback(n):null!=b.image?n.innerHTML+='<img border="0" src="'+ +b.image+'"/>':null==b.desc&&(n.style.padding="20px",n.style.color="rgb(179, 179, 179)",mxUtils.write(n,mxResources.get("noPreview")));null!=u&&(u.style.backgroundColor="");u=c;u.style.backgroundColor="dark"==uiTheme?"#505759":"#ebf2f9";null!=a&&mxEvent.consume(a)}};mxEvent.addListener(c,"click",e);mxEvent.addListener(c,"dblclick",function(a){f.checked=!f.checked;mxEvent.consume(a)});p.push(function(){return f.checked?b.id:null});0==g&&0==d&&e()})(b.entries[d])})(c[g]);d.style.padding="30px";d.appendChild(m); +d.appendChild(h);d.appendChild(n);c=document.createElement("div");c.className="geDialogFooter";c.style.position="absolute";c.style.paddingRight="16px";c.style.color="gray";c.style.left="0px";c.style.right="0px";c.style.bottom="0px";c.style.height="60px";c.style.lineHeight="52px";mxClient.IS_QUIRKS&&(c.style.width=m.style.width,c.style.paddingTop="12px");var v=document.createElement("input");v.setAttribute("type","checkbox");if(isLocalStorage||mxClient.IS_CHROMEAPP)m=document.createElement("span"), +m.style.paddingRight="20px",m.appendChild(v),mxUtils.write(m," "+mxResources.get("rememberThisSetting")),v.checked=!0,v.defaultChecked=!0,mxEvent.addListener(m,"click",function(a){mxEvent.getSource(a)!=v&&(v.checked=!v.checked,mxEvent.consume(a))}),mxClient.IS_QUIRKS&&(m.style.position="relative",m.style.top="-6px"),c.appendChild(m);m=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});m.className="geBtn";b=mxUtils.button(mxResources.get("apply"),function(){a.hideDialog();for(var b= +[],c=0;c<p.length;c++){var d=p[c].apply(this,arguments);null!=d&&b.push(d)}a.sidebar.showEntries(b.join(";"),v.checked,!0)});b.className="geBtn gePrimaryBtn"}else{var y=document.createElement("table"),m=document.createElement("tbody");d.style.height="100%";d.style.overflow="auto";l=document.createElement("tr");y.style.width="100%";b=document.createElement("td");var e=document.createElement("td"),k=document.createElement("td"),B=mxUtils.bind(this,function(b,c,d){var f=document.createElement("input"); +f.type="checkbox";y.appendChild(f);f.checked=a.sidebar.isEntryVisible(d);var h=document.createElement("span");mxUtils.write(h,c);c=document.createElement("div");c.style.display="block";c.appendChild(f);c.appendChild(h);mxEvent.addListener(h,"click",function(a){f.checked=!f.checked;mxEvent.consume(a)});b.appendChild(c);return function(){return f.checked?d:null}});l.appendChild(b);l.appendChild(e);l.appendChild(k);m.appendChild(l);y.appendChild(m);for(var p=[],t=0,g=0;g<c.length;g++)for(m=0;m<c[g].entries.length;m++)t++; +for(var w=[b,e,k],x=0,g=0;g<c.length;g++)(function(a){for(var b=0;b<a.entries.length;b++){var c=a.entries[b];p.push(B(w[Math.floor(x/(t/3))],c.title,c.id));x++}})(c[g]);d.appendChild(y);c=document.createElement("div");c.style.marginTop="18px";c.style.textAlign="center";v=document.createElement("input");isLocalStorage&&(v.setAttribute("type","checkbox"),v.checked=!0,v.defaultChecked=!0,c.appendChild(v),m=document.createElement("span"),mxUtils.write(m," "+mxResources.get("rememberThisSetting")),c.appendChild(m), +mxEvent.addListener(m,"click",function(a){v.checked=!v.checked;mxEvent.consume(a)}));d.appendChild(c);m=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});m.className="geBtn";b=mxUtils.button(mxResources.get("apply"),function(){for(var b=["search"],c=0;c<p.length;c++){var d=p[c].apply(this,arguments);null!=d&&b.push(d)}a.sidebar.showEntries(0<b.length?b.join(";"):"",v.checked);a.hideDialog()});b.className="geBtn gePrimaryBtn";c=document.createElement("div");c.style.marginTop="26px"; +c.style.textAlign="right"}a.editor.cancelFirst?(c.appendChild(m),c.appendChild(b)):(c.appendChild(b),c.appendChild(m));d.appendChild(c);this.container=d},PluginsDialog=function(a){function b(){if(0==e.length)d.innerHTML=mxResources.get("noPlugins");else{d.innerHTML="";for(var c=0;c<e.length;c++){var f=document.createElement("span");f.style.whiteSpace="nowrap";var g=document.createElement("span");g.className="geSprite geSprite-delete";g.style.position="relative";g.style.cursor="pointer";g.style.top= "5px";g.style.marginRight="4px";g.style.display="inline-block";f.appendChild(g);mxUtils.write(f,e[c]);d.appendChild(f);mxUtils.br(d);mxEvent.addListener(g,"click",function(c){return function(){a.confirm(window.parent.mxResources.get("delete")+' "'+e[c]+'"?',function(){e.splice(c,1);b()})}}(c))}}}var c=document.createElement("div"),d=document.createElement("div");d.style.height="120px";d.style.overflow="auto";var e=mxSettings.getPlugins().slice();c.appendChild(d);b();var g=mxUtils.button(mxResources.get("add"), function(){var c="",d=urlParams.p;if(null!=d&&0<d.length){for(var f=d.split(";"),d=0;d<f.length;d++){var g=App.pluginRegistry[f[d]];null!=g&&(c+=g+";")}";"==c.charAt(c.length-1)&&(c=c.substring(0,c.length-1))}c=new FilenameDialog(a,c,mxResources.get("add"),function(a){if(null!=a&&0<a.length){f=a.split(";");for(a=0;a<f.length;a++){var c=f[a],d=App.pluginRegistry[c];null!=d&&(c=d);0<c.length&&0>mxUtils.indexOf(e,c)&&e.push(c)}b()}},mxResources.get("enterValue")+" ("+mxResources.get("url")+")");a.showDialog(c.container, -300,80,!0,!0);c.init()});g.className="geBtn";var l=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});l.className="geBtn";var m=mxUtils.button(mxResources.get("apply"),function(){mxSettings.setPlugins(e);mxSettings.save();a.hideDialog();a.alert(mxResources.get("restartForChangeRequired"))});m.className="geBtn gePrimaryBtn";var n=mxUtils.button(mxResources.get("help"),function(){a.openLink("https://desk.draw.io/support/solutions/articles/16000056430")});n.className="geBtn";a.isOffline()&& -!mxClient.IS_CHROMEAPP&&(n.style.display="none");var f=document.createElement("div");f.style.marginTop="14px";f.style.textAlign="right";a.editor.cancelFirst?(f.appendChild(l),f.appendChild(n),f.appendChild(g),f.appendChild(m)):(f.appendChild(n),f.appendChild(g),f.appendChild(m),f.appendChild(l));c.appendChild(f);this.container=c},CropImageDialog=function(a,b,c){var d=document.createElement("div"),e=document.createElement("table"),g=document.createElement("tbody"),l=document.createElement("tr"),m= -document.createElement("td");m.style.whiteSpace="nowrap";m.setAttribute("colspan","2");mxUtils.write(m,mxResources.get("loading")+"...");l.appendChild(m);g.appendChild(l);var l=document.createElement("tr"),n=document.createElement("td"),f=document.createElement("td");e.style.paddingLeft="6px";mxUtils.write(n,mxResources.get("left")+":");var h=document.createElement("input");h.setAttribute("type","text");h.style.width="100px";h.value="0";this.init=function(){h.focus();h.select()};f.appendChild(h); -l.appendChild(n);l.appendChild(f);g.appendChild(l);l=document.createElement("tr");n=document.createElement("td");f=document.createElement("td");mxUtils.write(n,mxResources.get("top")+":");var k=document.createElement("input");k.setAttribute("type","text");k.style.width="100px";k.value="0";f.appendChild(k);l.appendChild(n);l.appendChild(f);g.appendChild(l);l=document.createElement("tr");n=document.createElement("td");f=document.createElement("td");mxUtils.write(n,mxResources.get("right")+":");var q= -document.createElement("input");q.setAttribute("type","text");q.style.width="100px";q.value="0";f.appendChild(q);l.appendChild(n);l.appendChild(f);g.appendChild(l);l=document.createElement("tr");n=document.createElement("td");f=document.createElement("td");mxUtils.write(n,mxResources.get("bottom")+":");var u=document.createElement("input");u.setAttribute("type","text");u.style.width="100px";u.value="0";f.appendChild(u);l.appendChild(n);l.appendChild(f);g.appendChild(l);l=document.createElement("tr"); -n=document.createElement("td");f=document.createElement("td");mxUtils.write(n,mxResources.get("circle")+":");l.appendChild(n);var p=document.createElement("input");p.setAttribute("type","checkbox");f.appendChild(p);l.appendChild(f);g.appendChild(l);e.appendChild(g);d.appendChild(e);var e=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()}),v=new Image,y=mxUtils.button(mxResources.get("apply"),function(){a.hideDialog();var b=document.createElement("canvas"),d=b.getContext("2d"),f=v.width, -e=v.height,g=parseInt(h.value),m=parseInt(k.value),f=Math.max(1,f-g-parseInt(q.value)),e=Math.max(1,e-m-parseInt(u.value));b.width=f;b.height=e;p.checked&&(d.fillStyle="#000000",d.arc(f/2,e/2,Math.min(f/2,e/2),0,2*Math.PI),d.fill(),d.globalCompositeOperation="source-in");d.drawImage(v,g,m,f,e,0,0,f,e);c(b.toDataURL())});y.setAttribute("disabled","disabled");v.onload=function(){y.removeAttribute("disabled");m.innerHTML="";mxUtils.write(m,mxResources.get("width")+": "+v.width+" "+mxResources.get("height")+ -": "+v.height)};v.src=b;mxEvent.addListener(d,"keypress",function(a){13==a.keyCode&&y.click()});b=document.createElement("div");b.style.marginTop="20px";b.style.textAlign="right";a.editor.cancelFirst?(b.appendChild(e),b.appendChild(y)):(b.appendChild(y),b.appendChild(e));d.appendChild(b);this.container=d},EditGeometryDialog=function(a,b){var c=a.editor.graph,d=1==b.length?c.getCellGeometry(b[0]):null,e=document.createElement("div"),g=document.createElement("table"),l=document.createElement("tbody"), -m=document.createElement("tr"),n=document.createElement("td"),f=document.createElement("td");g.style.paddingLeft="6px";mxUtils.write(n,mxResources.get("relative")+":");var h=document.createElement("input");h.setAttribute("type","checkbox");null!=d&&d.relative&&(h.setAttribute("checked","checked"),h.defaultChecked=!0);this.init=function(){h.focus()};f.appendChild(h);m.appendChild(n);m.appendChild(f);l.appendChild(m);m=document.createElement("tr");n=document.createElement("td");f=document.createElement("td"); -mxUtils.write(n,mxResources.get("left")+":");var k=document.createElement("input");k.setAttribute("type","text");k.style.width="100px";k.value=null!=d?d.x:"";f.appendChild(k);m.appendChild(n);m.appendChild(f);l.appendChild(m);m=document.createElement("tr");n=document.createElement("td");f=document.createElement("td");mxUtils.write(n,mxResources.get("top")+":");var q=document.createElement("input");q.setAttribute("type","text");q.style.width="100px";q.value=null!=d?d.y:"";f.appendChild(q);m.appendChild(n); -m.appendChild(f);l.appendChild(m);m=document.createElement("tr");n=document.createElement("td");f=document.createElement("td");mxUtils.write(n,mxResources.get("dx")+":");var u=document.createElement("input");u.setAttribute("type","text");u.style.width="100px";u.value=null!=d&&null!=d.offset?d.offset.x:"";f.appendChild(u);m.appendChild(n);m.appendChild(f);l.appendChild(m);m=document.createElement("tr");n=document.createElement("td");f=document.createElement("td");mxUtils.write(n,mxResources.get("dy")+ -":");var p=document.createElement("input");p.setAttribute("type","text");p.style.width="100px";p.value=null!=d&&null!=d.offset?d.offset.y:"";f.appendChild(p);m.appendChild(n);m.appendChild(f);l.appendChild(m);m=document.createElement("tr");n=document.createElement("td");f=document.createElement("td");mxUtils.write(n,mxResources.get("width")+":");var v=document.createElement("input");v.setAttribute("type","text");v.style.width="100px";v.value=null!=d?d.width:"";f.appendChild(v);m.appendChild(n);m.appendChild(f); -l.appendChild(m);m=document.createElement("tr");n=document.createElement("td");f=document.createElement("td");mxUtils.write(n,mxResources.get("height")+":");var y=document.createElement("input");y.setAttribute("type","text");y.style.width="100px";y.value=null!=d?d.height:"";f.appendChild(y);m.appendChild(n);m.appendChild(f);l.appendChild(m);m=document.createElement("tr");n=document.createElement("td");f=document.createElement("td");mxUtils.write(n,mxResources.get("rotation")+":");var A=document.createElement("input"); -A.setAttribute("type","text");A.style.width="100px";A.value=1==b.length?mxUtils.getValue(c.getCellStyle(b[0]),mxConstants.STYLE_ROTATION,0):"";f.appendChild(A);m.appendChild(n);m.appendChild(f);l.appendChild(m);g.appendChild(l);e.appendChild(g);d=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});d.className="geBtn";var t=mxUtils.button(mxResources.get("apply"),function(){a.hideDialog();c.getModel().beginUpdate();try{for(var d=0;d<b.length;d++){var f=c.getCellGeometry(b[d]);null!= -f&&(f=f.clone(),c.isCellMovable(b[d])&&(f.relative=h.checked,0<mxUtils.trim(k.value).length&&(f.x=Number(k.value)),0<mxUtils.trim(q.value).length&&(f.y=Number(q.value)),0<mxUtils.trim(u.value).length&&(null==f.offset&&(f.offset=new mxPoint),f.offset.x=Number(u.value)),0<mxUtils.trim(p.value).length&&(null==f.offset&&(f.offset=new mxPoint),f.offset.y=Number(p.value))),c.isCellResizable(b[d])&&(0<mxUtils.trim(v.value).length&&(f.width=Number(v.value)),0<mxUtils.trim(y.value).length&&(f.height=Number(y.value))), -c.getModel().setGeometry(b[d],f));0<mxUtils.trim(A.value).length&&c.setCellStyles(mxConstants.STYLE_ROTATION,Number(A.value),[b[d]])}}finally{c.getModel().endUpdate()}});t.className="geBtn gePrimaryBtn";mxEvent.addListener(e,"keypress",function(a){13==a.keyCode&&t.click()});g=document.createElement("div");g.style.marginTop="20px";g.style.textAlign="right";a.editor.cancelFirst?(g.appendChild(d),g.appendChild(t)):(g.appendChild(t),g.appendChild(d));e.appendChild(g);this.container=e},LibraryDialog=function(a, -b,c,d,e,g){function l(a){for(a=document.elementFromPoint(a.clientX,a.clientY);null!=a&&a.parentNode!=u;)a=a.parentNode;var b=null;if(null!=a)for(var c=u.firstChild,b=0;null!=c&&c!=a;)c=c.nextSibling,b++;return b}function m(b,c,d,f,k,e,g,q,n){try{if(null==c||"image/"==c.substring(0,6))if(null==b&&null!=g||null==v[b]){var C=function(){D.innerHTML="";D.style.cursor="pointer";D.style.whiteSpace="nowrap";D.style.textOverflow="ellipsis";mxUtils.write(D,null!=M.title&&0<M.title.length?M.title:mxResources.get("untitled")); -D.style.color=null==M.title||0==M.title.length?"#d0d0d0":""};u.style.backgroundImage="";p.style.display="none";var A=k,z=e;if(k>a.maxImageSize||e>a.maxImageSize){var B=Math.min(1,Math.min(a.maxImageSize/Math.max(1,k)),a.maxImageSize/Math.max(1,e));k*=B;e*=B}A>z?(z=Math.round(100*z/A),A=100):(A=Math.round(100*A/z),z=100);var F=document.createElement("div");F.setAttribute("draggable","true");F.style.display=mxClient.IS_QUIRKS?"inline":"inline-block";F.style.position="relative";F.style.cursor="move"; -mxUtils.setPrefixedStyle(F.style,"transition","transform .1s ease-in-out");if(null!=b){var E=document.createElement("img");E.setAttribute("src",w.convert(b));E.style.width=A+"px";E.style.height=z+"px";E.style.margin="10px";E.style.paddingBottom=Math.floor((100-z)/2)+"px";E.style.paddingLeft=Math.floor((100-A)/2)+"px";F.appendChild(E)}else if(null!=g){var G=a.stringToCells(a.editor.graph.decompress(g.xml));0<G.length&&(a.sidebar.createThumb(G,100,100,F,null,!0,!1),F.firstChild.style.display=mxClient.IS_QUIRKS? +300,80,!0,!0);c.init()});g.className="geBtn";var k=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});k.className="geBtn";var l=mxUtils.button(mxResources.get("apply"),function(){mxSettings.setPlugins(e);mxSettings.save();a.hideDialog();a.alert(mxResources.get("restartForChangeRequired"))});l.className="geBtn gePrimaryBtn";var m=mxUtils.button(mxResources.get("help"),function(){a.openLink("https://desk.draw.io/support/solutions/articles/16000056430")});m.className="geBtn";a.isOffline()&& +!mxClient.IS_CHROMEAPP&&(m.style.display="none");var f=document.createElement("div");f.style.marginTop="14px";f.style.textAlign="right";a.editor.cancelFirst?(f.appendChild(k),f.appendChild(m),f.appendChild(g),f.appendChild(l)):(f.appendChild(m),f.appendChild(g),f.appendChild(l),f.appendChild(k));c.appendChild(f);this.container=c},CropImageDialog=function(a,b,c){var d=document.createElement("div"),e=document.createElement("table"),g=document.createElement("tbody"),k=document.createElement("tr"),l= +document.createElement("td");l.style.whiteSpace="nowrap";l.setAttribute("colspan","2");mxUtils.write(l,mxResources.get("loading")+"...");k.appendChild(l);g.appendChild(k);var k=document.createElement("tr"),m=document.createElement("td"),f=document.createElement("td");e.style.paddingLeft="6px";mxUtils.write(m,mxResources.get("left")+":");var h=document.createElement("input");h.setAttribute("type","text");h.style.width="100px";h.value="0";this.init=function(){h.focus();h.select()};f.appendChild(h); +k.appendChild(m);k.appendChild(f);g.appendChild(k);k=document.createElement("tr");m=document.createElement("td");f=document.createElement("td");mxUtils.write(m,mxResources.get("top")+":");var n=document.createElement("input");n.setAttribute("type","text");n.style.width="100px";n.value="0";f.appendChild(n);k.appendChild(m);k.appendChild(f);g.appendChild(k);k=document.createElement("tr");m=document.createElement("td");f=document.createElement("td");mxUtils.write(m,mxResources.get("right")+":");var u= +document.createElement("input");u.setAttribute("type","text");u.style.width="100px";u.value="0";f.appendChild(u);k.appendChild(m);k.appendChild(f);g.appendChild(k);k=document.createElement("tr");m=document.createElement("td");f=document.createElement("td");mxUtils.write(m,mxResources.get("bottom")+":");var p=document.createElement("input");p.setAttribute("type","text");p.style.width="100px";p.value="0";f.appendChild(p);k.appendChild(m);k.appendChild(f);g.appendChild(k);k=document.createElement("tr"); +m=document.createElement("td");f=document.createElement("td");mxUtils.write(m,mxResources.get("circle")+":");k.appendChild(m);var q=document.createElement("input");q.setAttribute("type","checkbox");f.appendChild(q);k.appendChild(f);g.appendChild(k);e.appendChild(g);d.appendChild(e);var e=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()}),v=new Image,y=mxUtils.button(mxResources.get("apply"),function(){a.hideDialog();var b=document.createElement("canvas"),d=b.getContext("2d"),f=v.width, +e=v.height,g=parseInt(h.value),k=parseInt(n.value),f=Math.max(1,f-g-parseInt(u.value)),e=Math.max(1,e-k-parseInt(p.value));b.width=f;b.height=e;q.checked&&(d.fillStyle="#000000",d.arc(f/2,e/2,Math.min(f/2,e/2),0,2*Math.PI),d.fill(),d.globalCompositeOperation="source-in");d.drawImage(v,g,k,f,e,0,0,f,e);c(b.toDataURL())});y.setAttribute("disabled","disabled");v.onload=function(){y.removeAttribute("disabled");l.innerHTML="";mxUtils.write(l,mxResources.get("width")+": "+v.width+" "+mxResources.get("height")+ +": "+v.height)};v.src=b;mxEvent.addListener(d,"keypress",function(a){13==a.keyCode&&y.click()});b=document.createElement("div");b.style.marginTop="20px";b.style.textAlign="right";a.editor.cancelFirst?(b.appendChild(e),b.appendChild(y)):(b.appendChild(y),b.appendChild(e));d.appendChild(b);this.container=d},EditGeometryDialog=function(a,b){var c=a.editor.graph,d=1==b.length?c.getCellGeometry(b[0]):null,e=document.createElement("div"),g=document.createElement("table"),k=document.createElement("tbody"), +l=document.createElement("tr"),m=document.createElement("td"),f=document.createElement("td");g.style.paddingLeft="6px";mxUtils.write(m,mxResources.get("relative")+":");var h=document.createElement("input");h.setAttribute("type","checkbox");null!=d&&d.relative&&(h.setAttribute("checked","checked"),h.defaultChecked=!0);this.init=function(){h.focus()};f.appendChild(h);l.appendChild(m);l.appendChild(f);k.appendChild(l);l=document.createElement("tr");m=document.createElement("td");f=document.createElement("td"); +mxUtils.write(m,mxResources.get("left")+":");var n=document.createElement("input");n.setAttribute("type","text");n.style.width="100px";n.value=null!=d?d.x:"";f.appendChild(n);l.appendChild(m);l.appendChild(f);k.appendChild(l);l=document.createElement("tr");m=document.createElement("td");f=document.createElement("td");mxUtils.write(m,mxResources.get("top")+":");var u=document.createElement("input");u.setAttribute("type","text");u.style.width="100px";u.value=null!=d?d.y:"";f.appendChild(u);l.appendChild(m); +l.appendChild(f);k.appendChild(l);l=document.createElement("tr");m=document.createElement("td");f=document.createElement("td");mxUtils.write(m,mxResources.get("dx")+":");var p=document.createElement("input");p.setAttribute("type","text");p.style.width="100px";p.value=null!=d&&null!=d.offset?d.offset.x:"";f.appendChild(p);l.appendChild(m);l.appendChild(f);k.appendChild(l);l=document.createElement("tr");m=document.createElement("td");f=document.createElement("td");mxUtils.write(m,mxResources.get("dy")+ +":");var q=document.createElement("input");q.setAttribute("type","text");q.style.width="100px";q.value=null!=d&&null!=d.offset?d.offset.y:"";f.appendChild(q);l.appendChild(m);l.appendChild(f);k.appendChild(l);l=document.createElement("tr");m=document.createElement("td");f=document.createElement("td");mxUtils.write(m,mxResources.get("width")+":");var v=document.createElement("input");v.setAttribute("type","text");v.style.width="100px";v.value=null!=d?d.width:"";f.appendChild(v);l.appendChild(m);l.appendChild(f); +k.appendChild(l);l=document.createElement("tr");m=document.createElement("td");f=document.createElement("td");mxUtils.write(m,mxResources.get("height")+":");var y=document.createElement("input");y.setAttribute("type","text");y.style.width="100px";y.value=null!=d?d.height:"";f.appendChild(y);l.appendChild(m);l.appendChild(f);k.appendChild(l);l=document.createElement("tr");m=document.createElement("td");f=document.createElement("td");mxUtils.write(m,mxResources.get("rotation")+":");var B=document.createElement("input"); +B.setAttribute("type","text");B.style.width="100px";B.value=1==b.length?mxUtils.getValue(c.getCellStyle(b[0]),mxConstants.STYLE_ROTATION,0):"";f.appendChild(B);l.appendChild(m);l.appendChild(f);k.appendChild(l);g.appendChild(k);e.appendChild(g);d=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});d.className="geBtn";var t=mxUtils.button(mxResources.get("apply"),function(){a.hideDialog();c.getModel().beginUpdate();try{for(var d=0;d<b.length;d++){var f=c.getCellGeometry(b[d]);null!= +f&&(f=f.clone(),c.isCellMovable(b[d])&&(f.relative=h.checked,0<mxUtils.trim(n.value).length&&(f.x=Number(n.value)),0<mxUtils.trim(u.value).length&&(f.y=Number(u.value)),0<mxUtils.trim(p.value).length&&(null==f.offset&&(f.offset=new mxPoint),f.offset.x=Number(p.value)),0<mxUtils.trim(q.value).length&&(null==f.offset&&(f.offset=new mxPoint),f.offset.y=Number(q.value))),c.isCellResizable(b[d])&&(0<mxUtils.trim(v.value).length&&(f.width=Number(v.value)),0<mxUtils.trim(y.value).length&&(f.height=Number(y.value))), +c.getModel().setGeometry(b[d],f));0<mxUtils.trim(B.value).length&&c.setCellStyles(mxConstants.STYLE_ROTATION,Number(B.value),[b[d]])}}finally{c.getModel().endUpdate()}});t.className="geBtn gePrimaryBtn";mxEvent.addListener(e,"keypress",function(a){13==a.keyCode&&t.click()});g=document.createElement("div");g.style.marginTop="20px";g.style.textAlign="right";a.editor.cancelFirst?(g.appendChild(d),g.appendChild(t)):(g.appendChild(t),g.appendChild(d));e.appendChild(g);this.container=e},LibraryDialog=function(a, +b,c,d,e,g){function k(a){for(a=document.elementFromPoint(a.clientX,a.clientY);null!=a&&a.parentNode!=p;)a=a.parentNode;var b=null;if(null!=a)for(var c=p.firstChild,b=0;null!=c&&c!=a;)c=c.nextSibling,b++;return b}function l(b,c,d,f,e,n,g,u,m){try{if(null==c||"image/"==c.substring(0,6))if(null==b&&null!=g||null==v[b]){var C=function(){D.innerHTML="";D.style.cursor="pointer";D.style.whiteSpace="nowrap";D.style.textOverflow="ellipsis";mxUtils.write(D,null!=M.title&&0<M.title.length?M.title:mxResources.get("untitled")); +D.style.color=null==M.title||0==M.title.length?"#d0d0d0":""};p.style.backgroundImage="";q.style.display="none";var B=e,z=n;if(e>a.maxImageSize||n>a.maxImageSize){var A=Math.min(1,Math.min(a.maxImageSize/Math.max(1,e)),a.maxImageSize/Math.max(1,n));e*=A;n*=A}B>z?(z=Math.round(100*z/B),B=100):(B=Math.round(100*B/z),z=100);var F=document.createElement("div");F.setAttribute("draggable","true");F.style.display=mxClient.IS_QUIRKS?"inline":"inline-block";F.style.position="relative";F.style.cursor="move"; +mxUtils.setPrefixedStyle(F.style,"transition","transform .1s ease-in-out");if(null!=b){var E=document.createElement("img");E.setAttribute("src",w.convert(b));E.style.width=B+"px";E.style.height=z+"px";E.style.margin="10px";E.style.paddingBottom=Math.floor((100-z)/2)+"px";E.style.paddingLeft=Math.floor((100-B)/2)+"px";F.appendChild(E)}else if(null!=g){var G=a.stringToCells(a.editor.graph.decompress(g.xml));0<G.length&&(a.sidebar.createThumb(G,100,100,F,null,!0,!1),F.firstChild.style.display=mxClient.IS_QUIRKS? "inline":"inline-block",F.firstChild.style.cursor="")}var H=document.createElement("img");H.setAttribute("src",Editor.closeImage);H.setAttribute("border","0");H.setAttribute("title",mxResources.get("delete"));H.setAttribute("align","top");H.style.paddingTop="4px";H.style.position="absolute";H.style.marginLeft="-12px";H.style.zIndex="1";H.style.cursor="pointer";mxEvent.addListener(H,"dragstart",function(a){mxEvent.consume(a)});(function(a,b,c){mxEvent.addListener(H,"click",function(d){v[b]=null;for(var f= -0;f<h.length;f++)if(null!=h[f].data&&h[f].data==b||null!=h[f].xml&&null!=c&&h[f].xml==c.xml){h.splice(f,1);break}F.parentNode.removeChild(a);0==h.length&&(u.style.backgroundImage="url('"+IMAGE_PATH+"/droptarget.png')",p.style.display="");mxEvent.consume(d)});mxEvent.addListener(H,"dblclick",function(a){mxEvent.consume(a)})})(F,b,g);F.appendChild(H);F.style.marginBottom="30px";var D=document.createElement("div");D.style.position="absolute";D.style.boxSizing="border-box";D.style.bottom="-18px";D.style.left= -"10px";D.style.right="10px";D.style.backgroundColor="#ffffff";D.style.overflow="hidden";D.style.textAlign="center";var M=null;null!=b?(M={data:b,w:k,h:e,title:n},null!=q&&(M.aspect=q),v[b]=E,h.push(M)):null!=g&&(g.aspect="fixed",h.push(g),M=g);mxEvent.addListener(D,"keydown",function(a){13==a.keyCode&&null!=t&&(t(),t=null,mxEvent.consume(a))});C();F.appendChild(D);mxEvent.addListener(D,"mousedown",function(a){"true"!=D.getAttribute("contentEditable")&&mxEvent.consume(a)});G=function(b){if(mxClient.IS_IOS|| +0;f<h.length;f++)if(null!=h[f].data&&h[f].data==b||null!=h[f].xml&&null!=c&&h[f].xml==c.xml){h.splice(f,1);break}F.parentNode.removeChild(a);0==h.length&&(p.style.backgroundImage="url('"+IMAGE_PATH+"/droptarget.png')",q.style.display="");mxEvent.consume(d)});mxEvent.addListener(H,"dblclick",function(a){mxEvent.consume(a)})})(F,b,g);F.appendChild(H);F.style.marginBottom="30px";var D=document.createElement("div");D.style.position="absolute";D.style.boxSizing="border-box";D.style.bottom="-18px";D.style.left= +"10px";D.style.right="10px";D.style.backgroundColor="#ffffff";D.style.overflow="hidden";D.style.textAlign="center";var M=null;null!=b?(M={data:b,w:e,h:n,title:m},null!=u&&(M.aspect=u),v[b]=E,h.push(M)):null!=g&&(g.aspect="fixed",h.push(g),M=g);mxEvent.addListener(D,"keydown",function(a){13==a.keyCode&&null!=t&&(t(),t=null,mxEvent.consume(a))});C();F.appendChild(D);mxEvent.addListener(D,"mousedown",function(a){"true"!=D.getAttribute("contentEditable")&&mxEvent.consume(a)});G=function(b){if(mxClient.IS_IOS|| mxClient.IS_QUIRKS||mxClient.IS_FF||!(null==document.documentMode||9<document.documentMode)){var c=new FilenameDialog(a,M.title||"",mxResources.get("ok"),function(a){null!=a&&(M.title=a,C())},mxResources.get("enterValue"));a.showDialog(c.container,300,80,!0,!0);c.init();mxEvent.consume(b)}else if("true"!=D.getAttribute("contentEditable")){null!=t&&(t(),t=null);if(null==M.title||0==M.title.length)D.innerHTML="";D.style.textOverflow="";D.style.whiteSpace="";D.style.cursor="text";D.style.color="";D.setAttribute("contentEditable", -"true");D.focus();document.execCommand("selectAll",!1,null);t=function(){D.removeAttribute("contentEditable");D.style.cursor="pointer";M.title=D.innerHTML;C()};mxEvent.consume(b)}};mxEvent.addListener(D,"click",G);mxEvent.addListener(F,"dblclick",G);u.appendChild(F);mxEvent.addListener(F,"dragstart",function(a){null==b&&null!=g&&(H.style.visibility="hidden",D.style.visibility="hidden");mxClient.IS_FF&&null!=g.xml&&a.dataTransfer.setData("Text",g.xml);y=l(a);mxClient.IS_GC&&(F.style.opacity="0.9"); -window.setTimeout(function(){mxUtils.setPrefixedStyle(F.style,"transform","scale(0.5,0.5)");mxUtils.setOpacity(F,30);H.style.visibility="";D.style.visibility=""},0)});mxEvent.addListener(F,"dragend",function(a){"hidden"==H.style.visibility&&(H.style.visibility="",D.style.visibility="");y=null;mxUtils.setOpacity(F,100);mxUtils.setPrefixedStyle(F.style,"transform",null)})}else x||(x=!0,a.handleError({message:mxResources.get("fileExists")}));else{k=!1;try{if(a.spinner.stop(),A=mxUtils.parseXml(b),"mxlibrary"== -A.documentElement.nodeName){z=JSON.parse(mxUtils.getTextContent(A.documentElement));if(null!=z&&0<z.length)for(var K=0;K<z.length;K++)null!=z[K].xml?m(null,null,0,0,0,0,z[K]):m(z[K].data,null,0,0,z[K].w,z[K].h,null,"fixed",z[K].title);k=!0}else if("mxfile"==A.documentElement.nodeName){for(var I=A.documentElement.getElementsByTagName("diagram"),K=0;K<I.length;K++){var z=mxUtils.getTextContent(I[K]),G=a.stringToCells(a.editor.graph.decompress(z)),V=a.editor.graph.getBoundingBoxFromGeometry(G);m(null, -null,0,0,0,0,{xml:z,w:V.width,h:V.height})}k=!0}}catch(J){}k||(a.spinner.stop(),a.handleError({message:mxResources.get("errorLoadingFile")}))}}catch(J){}return null}function n(a){a.dataTransfer.dropEffect=null!=y?"move":"copy";a.stopPropagation();a.preventDefault()}function f(b){b.stopPropagation();b.preventDefault();x=!1;A=l(b);if(null!=y)null!=A&&A<u.children.length?(h.splice(A>y?A-1:A,0,h.splice(y,1)[0]),u.insertBefore(u.children[y],u.children[A])):(h.push(h.splice(y,1)[0]),u.appendChild(u.children[y])); -else if(0<b.dataTransfer.files.length)a.importFiles(b.dataTransfer.files,0,0,a.maxImageSize,C(b));else if(0<=mxUtils.indexOf(b.dataTransfer.types,"text/uri-list")){var c=decodeURIComponent(b.dataTransfer.getData("text/uri-list"));(/(\.jpg)($|\?)/i.test(c)||/(\.png)($|\?)/i.test(c)||/(\.gif)($|\?)/i.test(c)||/(\.svg)($|\?)/i.test(c))&&a.loadImage(c,function(a){m(c,null,0,0,a.width,a.height);u.scrollTop=u.scrollHeight})}b.stopPropagation();b.preventDefault()}var h=[];c=document.createElement("div"); -c.style.height="100%";var k=document.createElement("div");k.style.whiteSpace="nowrap";k.style.height="40px";c.appendChild(k);mxUtils.write(k,mxResources.get("filename")+":");null==b&&(b=a.defaultLibraryName+".xml");var q=document.createElement("input");q.setAttribute("value",b);q.style.marginRight="20px";q.style.marginLeft="10px";q.style.width="500px";null==e||e.isRenamable()||q.setAttribute("disabled","true");this.init=function(){if(null==e||e.isRenamable())q.focus(),mxClient.IS_GC||mxClient.IS_FF|| -5<=document.documentMode||mxClient.IS_QUIRKS?q.select():document.execCommand("selectAll",!1,null)};k.appendChild(q);var u=document.createElement("div");u.style.borderWidth="1px 0px 1px 0px";u.style.borderColor="#d3d3d3";u.style.borderStyle="solid";u.style.marginTop="6px";u.style.overflow="auto";u.style.height="340px";u.style.backgroundPosition="center center";u.style.backgroundRepeat="no-repeat";0==h.length&&Graph.fileSupport&&(u.style.backgroundImage="url('"+IMAGE_PATH+"/droptarget.png')");var p= -document.createElement("div");p.style.position="absolute";p.style.width="640px";p.style.top="260px";p.style.textAlign="center";p.style.fontSize="22px";p.style.color="#a0c3ff";mxUtils.write(p,mxResources.get("dragImagesHere"));c.appendChild(p);var v={},y=null,A=null,t=null;b=function(a){"true"!=mxEvent.getSource(a).getAttribute("contentEditable")&&null!=t&&(t(),t=null,mxEvent.consume(a))};mxEvent.addListener(u,"mousedown",b);mxEvent.addListener(u,"pointerdown",b);mxEvent.addListener(u,"touchstart", -b);var w=new mxUrlConverter,x=!1;if(null!=d)for(b=0;b<d.length;b++)k=d[b],m(k.data,null,0,0,k.w,k.h,k,k.aspect,k.title);mxEvent.addListener(u,"dragleave",function(a){p.style.cursor="";for(var b=mxEvent.getSource(a);null!=b;){if(b==u||b==p){a.stopPropagation();a.preventDefault();break}b=b.parentNode}});var C=function(b){return function(c,d,f,h,k,e,g,w,t){null!=t&&(/(\.vsdx)($|\?)/i.test(t.name)||/(\.vssx)($|\?)/i.test(t.name))?a.importVisio(t,mxUtils.bind(this,function(c){a.spinner.stop();m(c,d,f, -h,k,e,g,"fixed",mxEvent.isAltDown(b)?null:g.substring(0,g.lastIndexOf(".")).replace(/_/g," "))})):null!=t&&!a.isOffline()&&(new XMLHttpRequest).upload&&a.isRemoteFileFormat(c,t.name)?a.parseFile(t,mxUtils.bind(this,function(c){4==c.readyState&&(a.spinner.stop(),200<=c.status&&299>=c.status&&(m(c.responseText,d,f,h,k,e,g,"fixed",mxEvent.isAltDown(b)?null:g.substring(0,g.lastIndexOf(".")).replace(/_/g," ")),u.scrollTop=u.scrollHeight))})):(m(c,d,f,h,k,e,g,"fixed",mxEvent.isAltDown(b)?null:g.substring(0, -g.lastIndexOf(".")).replace(/_/g," ")),u.scrollTop=u.scrollHeight)}};mxEvent.addListener(u,"dragover",n);mxEvent.addListener(u,"drop",f);mxEvent.addListener(p,"dragover",n);mxEvent.addListener(p,"drop",f);c.appendChild(u);d=document.createElement("div");d.style.textAlign="right";d.style.marginTop="20px";b=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog(!0)});b.setAttribute("id","btnCancel");b.className="geBtn";a.editor.cancelFirst&&d.appendChild(b);k=mxUtils.button(mxResources.get("export"), -function(){var b=a.createLibraryDataFromImages(h),c=q.value;/(\.xml)$/i.test(c)||(c+=".xml");a.isLocalFileSave()?a.saveLocalFile(b,c,"text/xml",null,null,!0):(new mxXmlRequest(SAVE_URL,"filename="+encodeURIComponent(c)+"&format=xml&xml="+encodeURIComponent(b))).simulate(document,"_blank")});k.setAttribute("id","btnDownload");k.className="geBtn";d.appendChild(k);var z=document.createElement("input");z.setAttribute("multiple","multiple");z.setAttribute("type","file");null==document.documentMode&&(mxEvent.addListener(z, -"change",function(b){x=!1;a.importFiles(z.files,0,0,a.maxImageSize,function(a,c,d,f,h,k,e,g,w){C(b)(a,c,d,f,h,k,e,g,w);z.value=""});u.scrollTop=u.scrollHeight}),k=mxUtils.button(mxResources.get("import"),function(){null!=t&&(t(),t=null);z.click()}),k.setAttribute("id","btnAddImage"),k.className="geBtn",d.appendChild(k));k=mxUtils.button(mxResources.get("addImageUrl"),function(){null!=t&&(t(),t=null);a.showImageDialog(mxResources.get("addImageUrl"),"",function(a,b,c){x=!1;if(null!=a){if("data:image/"== -a.substring(0,11)){var d=a.indexOf(",");0<d&&(a=a.substring(0,d)+";base64,"+a.substring(d+1))}m(a,null,0,0,b,c);u.scrollTop=u.scrollHeight}})});k.setAttribute("id","btnAddImageUrl");k.className="geBtn";d.appendChild(k);this.saveBtnClickHandler=function(b,c,d,f){a.saveLibrary(b,c,d,f)};k=mxUtils.button(mxResources.get("save"),mxUtils.bind(this,function(){null!=t&&(t(),t=null);this.saveBtnClickHandler(q.value,h,e,g)}));k.setAttribute("id","btnSave");k.className="geBtn gePrimaryBtn";d.appendChild(k); -a.editor.cancelFirst||d.appendChild(b);c.appendChild(d);this.container=c},EditShapeDialog=function(a,b,c,d,e){d=null!=d?d:300;e=null!=e?e:120;var g,l,m=document.createElement("table"),n=document.createElement("tbody");m.style.cellPadding="4px";g=document.createElement("tr");l=document.createElement("td");l.setAttribute("colspan","2");l.style.fontSize="10pt";mxUtils.write(l,c);g.appendChild(l);n.appendChild(g);g=document.createElement("tr");l=document.createElement("td");var f=document.createElement("textarea"); -f.style.outline="none";f.style.resize="none";f.style.width=d-200+"px";f.style.height=e+"px";this.textarea=f;this.init=function(){f.focus();f.scrollTop=0};l.appendChild(f);g.appendChild(l);l=document.createElement("td");c=document.createElement("div");c.style.position="relative";c.style.border="1px solid gray";c.style.top="6px";c.style.width="200px";c.style.height=e+4+"px";c.style.overflow="hidden";c.style.marginBottom="16px";mxEvent.disableContextMenu(c);l.appendChild(c);var h=new Graph(c);h.setEnabled(!1); -var k=a.editor.graph.cloneCells([b])[0];h.addCells([k]);c=h.view.getState(k);var q="";null!=c.shape&&null!=c.shape.stencil&&(q=mxUtils.getPrettyXml(c.shape.stencil.desc));mxUtils.write(f,q||"");c=h.getGraphBounds();e=Math.min(160/c.width,(e-40)/c.height);h.view.scaleAndTranslate(e,20/e-c.x,20/e-c.y);g.appendChild(l);n.appendChild(g);g=document.createElement("tr");l=document.createElement("td");l.setAttribute("colspan","2");l.style.paddingTop="2px";l.style.whiteSpace="nowrap";l.setAttribute("align", -"right");e=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});e.className="geBtn";a.editor.cancelFirst&&l.appendChild(e);a.isOffline()||(c=mxUtils.button(mxResources.get("help"),function(){a.openLink("https://desk.draw.io/support/solutions/articles/16000052874")}),c.className="geBtn",l.appendChild(c));var u=function(b,c,d){var h=f.value,k=mxUtils.parseXml(h),h=mxUtils.getPrettyXml(k.documentElement),k=k.documentElement.getElementsByTagName("parsererror");if(null!=k&&0<k.length)a.showError(mxResources.get("error"), -mxResources.get("containsValidationErrors"),mxResources.get("ok"));else if(d&&a.hideDialog(),k=!b.model.contains(c),!d||k||h!=q){h=a.editor.graph.compress(h);b.getModel().beginUpdate();try{if(k){var e=a.editor.graph.getInsertPoint();c.geometry.x=e.x;c.geometry.y=e.y;b.addCell(c)}b.setCellStyles(mxConstants.STYLE_SHAPE,"stencil("+h+")",[c])}catch(x){throw x;}finally{b.getModel().endUpdate()}k&&b.setSelectionCell(c)}};c=mxUtils.button(mxResources.get("preview"),function(){u(h,k,!1)});c.className="geBtn"; -l.appendChild(c);c=mxUtils.button(mxResources.get("apply"),function(){u(a.editor.graph,b,!0)});c.className="geBtn gePrimaryBtn";l.appendChild(c);a.editor.cancelFirst||l.appendChild(e);g.appendChild(l);n.appendChild(g);m.appendChild(n);this.container=m},CustomDialog=function(a,b,c,d,e,g,l,m){var n=document.createElement("div");n.appendChild(b);b=document.createElement("div");b.style.marginTop="16px";b.style.textAlign="center";null!=l&&b.appendChild(l);l=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog(); -null!=d&&d()});l.className="geBtn";m&&(l.style.display="none");a.editor.cancelFirst&&b.appendChild(l);a.isOffline()||null==g||(m=mxUtils.button(mxResources.get("help"),function(){a.openLink(g)}),m.className="geBtn",b.appendChild(m));e=mxUtils.button(e||mxResources.get("ok"),function(){a.hideDialog();null!=c&&c()});b.appendChild(e);e.className="geBtn gePrimaryBtn";a.editor.cancelFirst||b.appendChild(l);n.appendChild(b);this.cancelBtn=l;this.okButton=e;this.container=n},TemplatesDialog=function(){var a= +"true");D.focus();document.execCommand("selectAll",!1,null);t=function(){D.removeAttribute("contentEditable");D.style.cursor="pointer";M.title=D.innerHTML;C()};mxEvent.consume(b)}};mxEvent.addListener(D,"click",G);mxEvent.addListener(F,"dblclick",G);p.appendChild(F);mxEvent.addListener(F,"dragstart",function(a){null==b&&null!=g&&(H.style.visibility="hidden",D.style.visibility="hidden");mxClient.IS_FF&&null!=g.xml&&a.dataTransfer.setData("Text",g.xml);y=k(a);mxClient.IS_GC&&(F.style.opacity="0.9"); +window.setTimeout(function(){mxUtils.setPrefixedStyle(F.style,"transform","scale(0.5,0.5)");mxUtils.setOpacity(F,30);H.style.visibility="";D.style.visibility=""},0)});mxEvent.addListener(F,"dragend",function(a){"hidden"==H.style.visibility&&(H.style.visibility="",D.style.visibility="");y=null;mxUtils.setOpacity(F,100);mxUtils.setPrefixedStyle(F.style,"transform",null)})}else x||(x=!0,a.handleError({message:mxResources.get("fileExists")}));else{e=!1;try{if(a.spinner.stop(),B=mxUtils.parseXml(b),"mxlibrary"== +B.documentElement.nodeName){z=JSON.parse(mxUtils.getTextContent(B.documentElement));if(null!=z&&0<z.length)for(var K=0;K<z.length;K++)null!=z[K].xml?l(null,null,0,0,0,0,z[K]):l(z[K].data,null,0,0,z[K].w,z[K].h,null,"fixed",z[K].title);e=!0}else if("mxfile"==B.documentElement.nodeName){for(var I=B.documentElement.getElementsByTagName("diagram"),K=0;K<I.length;K++){var z=mxUtils.getTextContent(I[K]),G=a.stringToCells(a.editor.graph.decompress(z)),V=a.editor.graph.getBoundingBoxFromGeometry(G);l(null, +null,0,0,0,0,{xml:z,w:V.width,h:V.height})}e=!0}}catch(J){}e||(a.spinner.stop(),a.handleError({message:mxResources.get("errorLoadingFile")}))}}catch(J){}return null}function m(a){a.dataTransfer.dropEffect=null!=y?"move":"copy";a.stopPropagation();a.preventDefault()}function f(b){b.stopPropagation();b.preventDefault();x=!1;B=k(b);if(null!=y)null!=B&&B<p.children.length?(h.splice(B>y?B-1:B,0,h.splice(y,1)[0]),p.insertBefore(p.children[y],p.children[B])):(h.push(h.splice(y,1)[0]),p.appendChild(p.children[y])); +else if(0<b.dataTransfer.files.length)a.importFiles(b.dataTransfer.files,0,0,a.maxImageSize,C(b));else if(0<=mxUtils.indexOf(b.dataTransfer.types,"text/uri-list")){var c=decodeURIComponent(b.dataTransfer.getData("text/uri-list"));(/(\.jpg)($|\?)/i.test(c)||/(\.png)($|\?)/i.test(c)||/(\.gif)($|\?)/i.test(c)||/(\.svg)($|\?)/i.test(c))&&a.loadImage(c,function(a){l(c,null,0,0,a.width,a.height);p.scrollTop=p.scrollHeight})}b.stopPropagation();b.preventDefault()}var h=[];c=document.createElement("div"); +c.style.height="100%";var n=document.createElement("div");n.style.whiteSpace="nowrap";n.style.height="40px";c.appendChild(n);mxUtils.write(n,mxResources.get("filename")+":");null==b&&(b=a.defaultLibraryName+".xml");var u=document.createElement("input");u.setAttribute("value",b);u.style.marginRight="20px";u.style.marginLeft="10px";u.style.width="500px";null==e||e.isRenamable()||u.setAttribute("disabled","true");this.init=function(){if(null==e||e.isRenamable())u.focus(),mxClient.IS_GC||mxClient.IS_FF|| +5<=document.documentMode||mxClient.IS_QUIRKS?u.select():document.execCommand("selectAll",!1,null)};n.appendChild(u);var p=document.createElement("div");p.style.borderWidth="1px 0px 1px 0px";p.style.borderColor="#d3d3d3";p.style.borderStyle="solid";p.style.marginTop="6px";p.style.overflow="auto";p.style.height="340px";p.style.backgroundPosition="center center";p.style.backgroundRepeat="no-repeat";0==h.length&&Graph.fileSupport&&(p.style.backgroundImage="url('"+IMAGE_PATH+"/droptarget.png')");var q= +document.createElement("div");q.style.position="absolute";q.style.width="640px";q.style.top="260px";q.style.textAlign="center";q.style.fontSize="22px";q.style.color="#a0c3ff";mxUtils.write(q,mxResources.get("dragImagesHere"));c.appendChild(q);var v={},y=null,B=null,t=null;b=function(a){"true"!=mxEvent.getSource(a).getAttribute("contentEditable")&&null!=t&&(t(),t=null,mxEvent.consume(a))};mxEvent.addListener(p,"mousedown",b);mxEvent.addListener(p,"pointerdown",b);mxEvent.addListener(p,"touchstart", +b);var w=new mxUrlConverter,x=!1;if(null!=d)for(b=0;b<d.length;b++)n=d[b],l(n.data,null,0,0,n.w,n.h,n,n.aspect,n.title);mxEvent.addListener(p,"dragleave",function(a){q.style.cursor="";for(var b=mxEvent.getSource(a);null!=b;){if(b==p||b==q){a.stopPropagation();a.preventDefault();break}b=b.parentNode}});var C=function(b){return function(c,d,f,h,e,n,g,w,t){null!=t&&(/(\.vsdx)($|\?)/i.test(t.name)||/(\.vssx)($|\?)/i.test(t.name))?a.importVisio(t,mxUtils.bind(this,function(c){a.spinner.stop();l(c,d,f, +h,e,n,g,"fixed",mxEvent.isAltDown(b)?null:g.substring(0,g.lastIndexOf(".")).replace(/_/g," "))})):null!=t&&!a.isOffline()&&(new XMLHttpRequest).upload&&a.isRemoteFileFormat(c,t.name)?a.parseFile(t,mxUtils.bind(this,function(c){4==c.readyState&&(a.spinner.stop(),200<=c.status&&299>=c.status&&(l(c.responseText,d,f,h,e,n,g,"fixed",mxEvent.isAltDown(b)?null:g.substring(0,g.lastIndexOf(".")).replace(/_/g," ")),p.scrollTop=p.scrollHeight))})):(l(c,d,f,h,e,n,g,"fixed",mxEvent.isAltDown(b)?null:g.substring(0, +g.lastIndexOf(".")).replace(/_/g," ")),p.scrollTop=p.scrollHeight)}};mxEvent.addListener(p,"dragover",m);mxEvent.addListener(p,"drop",f);mxEvent.addListener(q,"dragover",m);mxEvent.addListener(q,"drop",f);c.appendChild(p);d=document.createElement("div");d.style.textAlign="right";d.style.marginTop="20px";b=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog(!0)});b.setAttribute("id","btnCancel");b.className="geBtn";a.editor.cancelFirst&&d.appendChild(b);n=mxUtils.button(mxResources.get("export"), +function(){var b=a.createLibraryDataFromImages(h),c=u.value;/(\.xml)$/i.test(c)||(c+=".xml");a.isLocalFileSave()?a.saveLocalFile(b,c,"text/xml",null,null,!0):(new mxXmlRequest(SAVE_URL,"filename="+encodeURIComponent(c)+"&format=xml&xml="+encodeURIComponent(b))).simulate(document,"_blank")});n.setAttribute("id","btnDownload");n.className="geBtn";d.appendChild(n);var z=document.createElement("input");z.setAttribute("multiple","multiple");z.setAttribute("type","file");null==document.documentMode&&(mxEvent.addListener(z, +"change",function(b){x=!1;a.importFiles(z.files,0,0,a.maxImageSize,function(a,c,d,f,h,e,n,g,w){C(b)(a,c,d,f,h,e,n,g,w);z.value=""});p.scrollTop=p.scrollHeight}),n=mxUtils.button(mxResources.get("import"),function(){null!=t&&(t(),t=null);z.click()}),n.setAttribute("id","btnAddImage"),n.className="geBtn",d.appendChild(n));n=mxUtils.button(mxResources.get("addImageUrl"),function(){null!=t&&(t(),t=null);a.showImageDialog(mxResources.get("addImageUrl"),"",function(a,b,c){x=!1;if(null!=a){if("data:image/"== +a.substring(0,11)){var d=a.indexOf(",");0<d&&(a=a.substring(0,d)+";base64,"+a.substring(d+1))}l(a,null,0,0,b,c);p.scrollTop=p.scrollHeight}})});n.setAttribute("id","btnAddImageUrl");n.className="geBtn";d.appendChild(n);this.saveBtnClickHandler=function(b,c,d,f){a.saveLibrary(b,c,d,f)};n=mxUtils.button(mxResources.get("save"),mxUtils.bind(this,function(){null!=t&&(t(),t=null);this.saveBtnClickHandler(u.value,h,e,g)}));n.setAttribute("id","btnSave");n.className="geBtn gePrimaryBtn";d.appendChild(n); +a.editor.cancelFirst||d.appendChild(b);c.appendChild(d);this.container=c},EditShapeDialog=function(a,b,c,d,e){d=null!=d?d:300;e=null!=e?e:120;var g,k,l=document.createElement("table"),m=document.createElement("tbody");l.style.cellPadding="4px";g=document.createElement("tr");k=document.createElement("td");k.setAttribute("colspan","2");k.style.fontSize="10pt";mxUtils.write(k,c);g.appendChild(k);m.appendChild(g);g=document.createElement("tr");k=document.createElement("td");var f=document.createElement("textarea"); +f.style.outline="none";f.style.resize="none";f.style.width=d-200+"px";f.style.height=e+"px";this.textarea=f;this.init=function(){f.focus();f.scrollTop=0};k.appendChild(f);g.appendChild(k);k=document.createElement("td");c=document.createElement("div");c.style.position="relative";c.style.border="1px solid gray";c.style.top="6px";c.style.width="200px";c.style.height=e+4+"px";c.style.overflow="hidden";c.style.marginBottom="16px";mxEvent.disableContextMenu(c);k.appendChild(c);var h=new Graph(c);h.setEnabled(!1); +var n=a.editor.graph.cloneCells([b])[0];h.addCells([n]);c=h.view.getState(n);var u="";null!=c.shape&&null!=c.shape.stencil&&(u=mxUtils.getPrettyXml(c.shape.stencil.desc));mxUtils.write(f,u||"");c=h.getGraphBounds();e=Math.min(160/c.width,(e-40)/c.height);h.view.scaleAndTranslate(e,20/e-c.x,20/e-c.y);g.appendChild(k);m.appendChild(g);g=document.createElement("tr");k=document.createElement("td");k.setAttribute("colspan","2");k.style.paddingTop="2px";k.style.whiteSpace="nowrap";k.setAttribute("align", +"right");e=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});e.className="geBtn";a.editor.cancelFirst&&k.appendChild(e);a.isOffline()||(c=mxUtils.button(mxResources.get("help"),function(){a.openLink("https://desk.draw.io/support/solutions/articles/16000052874")}),c.className="geBtn",k.appendChild(c));var p=function(b,c,d){var h=f.value,e=mxUtils.parseXml(h),h=mxUtils.getPrettyXml(e.documentElement),e=e.documentElement.getElementsByTagName("parsererror");if(null!=e&&0<e.length)a.showError(mxResources.get("error"), +mxResources.get("containsValidationErrors"),mxResources.get("ok"));else if(d&&a.hideDialog(),e=!b.model.contains(c),!d||e||h!=u){h=a.editor.graph.compress(h);b.getModel().beginUpdate();try{if(e){var n=a.editor.graph.getInsertPoint();c.geometry.x=n.x;c.geometry.y=n.y;b.addCell(c)}b.setCellStyles(mxConstants.STYLE_SHAPE,"stencil("+h+")",[c])}catch(x){throw x;}finally{b.getModel().endUpdate()}e&&b.setSelectionCell(c)}};c=mxUtils.button(mxResources.get("preview"),function(){p(h,n,!1)});c.className="geBtn"; +k.appendChild(c);c=mxUtils.button(mxResources.get("apply"),function(){p(a.editor.graph,b,!0)});c.className="geBtn gePrimaryBtn";k.appendChild(c);a.editor.cancelFirst||k.appendChild(e);g.appendChild(k);m.appendChild(g);l.appendChild(m);this.container=l},CustomDialog=function(a,b,c,d,e,g,k,l){var m=document.createElement("div");m.appendChild(b);b=document.createElement("div");b.style.marginTop="16px";b.style.textAlign="center";null!=k&&b.appendChild(k);k=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog(); +null!=d&&d()});k.className="geBtn";l&&(k.style.display="none");a.editor.cancelFirst&&b.appendChild(k);a.isOffline()||null==g||(l=mxUtils.button(mxResources.get("help"),function(){a.openLink(g)}),l.className="geBtn",b.appendChild(l));e=mxUtils.button(e||mxResources.get("ok"),function(){a.hideDialog();null!=c&&c()});b.appendChild(e);e.className="geBtn gePrimaryBtn";a.editor.cancelFirst||b.appendChild(k);m.appendChild(b);this.cancelBtn=k;this.okButton=e;this.container=m},TemplatesDialog=function(){var a= '<div class="geTempDlgHeader"><img src="/images/draw.io-logo.svg" class="geTempDlgHeaderLogo"><input type="search" class="geTempDlgSearchBox" placeholder="'+mxResources.get("search",null,"Search")+'"></div><div class="geTemplatesList"><div class="geTempDlgNewDiagramlbl">'+mxResources.get("newDiagram",null,"New Diagram")+'</div><div class="geTempDlgHLine"></div><div class="geTemplatesLbl">'+mxResources.get("templates",null,"Templates")+'</div></div><div class="geTempDlgContent"><div class="geTempDlgNewDiagramCat"><div class="geTempDlgNewDiagramCatLbl">'+ mxResources.get("newDiagram",null,"New Diagram")+'</div><div class="geTempDlgNewDiagramCatList"></div><div class="geTempDlgNewDiagramCatFooter"><div class="geTempDlgShowAllBtn">'+mxResources.get("showAll",null,"+ Show all")+'</div></div></div><div class="geTempDlgDiagramsList"><div class="geTempDlgDiagramsListHeader"><div class="geTempDlgDiagramsListTitle"></div><div class="geTempDlgDiagramsListBtns"><div class="geTempDlgRadioBtn geTempDlgRadioBtnLarge" data-id="myDiagramsBtn"><img src="/images/my-diagrams.svg" class="geTempDlgMyDiagramsBtnImg"> <span>'+ mxResources.get("myDiagrams",null,"My diagrams")+'</span></div><div class="geTempDlgRadioBtn geTempDlgRadioBtnLarge geTempDlgRadioBtnActive" data-id="allDiagramsBtn"><img src="/images/all-diagrams-sel.svg" class="geTempDlgAllDiagramsBtnImg"> <span>'+mxResources.get("allDiagrams",null,"All diagrams")+'</span></div><div class="geTempDlgSpacer"> </div><div class="geTempDlgRadioBtn geTempDlgRadioBtnSmall geTempDlgRadioBtnActive" data-id="tilesBtn"><img src="/images/tiles-sel.svg" class="geTempDlgTilesBtnImg"></div><div class="geTempDlgRadioBtn geTempDlgRadioBtnSmall" data-id="listBtn"><img src="/images/list.svg" class="geTempDlgListBtnImg"></div></div></div><div class="geTempDlgDiagramsTiles"></div></div></div><br style="clear:both;"/><div class="geTempDlgFooter"><span class="geTempDlgLinkToDiagram geTempDlgLinkToDiagramHint">🛈 '+ mxResources.get("linkToDiagramHint",null,"Add a link to this diagram. The diagram can only be edited from the page that owns it.")+'</span><button class="geTempDlgLinkToDiagram geTempDlgLinkToDiagramBtn">'+mxResources.get("linkToDiagram",null,"Link to Diagram")+'</button><div class="geTempDlgCreateBtn">'+mxResources.get("create",null,"Create")+'</div><div class="geTempDlgCancelBtn">'+mxResources.get("cancel",null,"Cancel")+"</div></div>",b=document.createElement("div");b.innerHTML=a;b.className="geTemplateDlg"; var a=window.innerWidth,c=window.innerHeight,d=987,e=712;.9*a<d&&(d=Math.max(.9*a,600),b.style.width=d+"px");.9*c<e&&(e=Math.max(.9*c,300),b.style.height=e+"px");this.width=d;this.height=e;this.container=b}; -TemplatesDialog.prototype.init=function(a,b,c,d,e,g,l,m,n,f){function h(){null!=E&&(E.style.fontWeight="normal",E.style.textDecoration="none",E=null)}function k(a,b,c,d,f,h,k){if(-1<a.className.indexOf("geTempDlgRadioBtnActive"))return!1;a.className+=" geTempDlgRadioBtnActive";C.querySelector(".geTempDlgRadioBtn[data-id="+d+"]").className="geTempDlgRadioBtn "+(k?"geTempDlgRadioBtnLarge":"geTempDlgRadioBtnSmall");C.querySelector("."+b).src="/images/"+c+"-sel.svg";C.querySelector("."+f).src="/images/"+ -h+".svg";return!0}function q(a){function b(a){Z.removeChild(d);C.removeChild(c);Z.scrollTop=h}a=a.prevImgUrl||a.imgUrl||TEMPLATE_PATH+"/"+a.url.substring(0,a.url.length-4)+".png";var c=document.createElement("div");c.className="geTempDlgDialogMask";C.appendChild(c);var d=document.createElement("div");d.className="geTempDlgDiagramPreviewBox";var f=document.createElement("img");f.src=a;d.appendChild(f);a=document.createElement("img");a.src="/images/close.png";a.className="geTempDlgPreviewCloseBtn"; -a.setAttribute("title",mxResources.get("close"));d.appendChild(a);var h=Z.scrollTop;mxEvent.addListener(a,"click",b);mxEvent.addListener(c,"click",b);Z.appendChild(d);Z.scrollTop=0;d.style.lineHeight=d.clientHeight+"px"}function u(a,b,c){if(null!=G){for(var d=G.className.split(" "),f=0;f<d.length;f++)if(-1<d[f].indexOf("Active")){d.splice(f,1);break}G.className=d.join(" ")}null!=a?(G=a,G.className+=" "+b,I=c,L.className="geTempDlgCreateBtn"):(I=G=null,L.className="geTempDlgCreateBtn geTempDlgCreateBtnDisabled")} -function p(c){if(null!=I){var d=I;I=null;L.className="geTempDlgCreateBtn geTempDlgCreateBtnDisabled geTempDlgCreateBtnBusy";d.isExternal?(1==c?f(d.url,d,"nameInput.value"):n(d.url,d,"nameInput.value"),a.hideDialog(!0)):mxUtils.get(TEMPLATE_PATH+"/"+d.url,mxUtils.bind(this,function(c){200<=c.getStatus()&&299>=c.getStatus()&&(b(c.getText(),"nameInput.value"),a.hideDialog(!0))}))}}function v(a){a=a?"":"none";for(var b=C.querySelectorAll(".geTempDlgLinkToDiagram"),c=0;c<b.length;c++)b[c].style.display= -a}function y(a,b,c){function d(){L.innerHTML=b?mxResources.get("create"):mxResources.get("copy");v(!b)}P.innerHTML="";u();M=a;var f=null;if(c){f=document.createElement("table");f.className="geTempDlgDiagramsListGrid";var h=document.createElement("tr"),k=document.createElement("th");k.style.width="50%";k.innerHTML=mxResources.get("diagram",null,"Diagram");h.appendChild(k);k=document.createElement("th");k.style.width="25%";k.innerHTML=mxResources.get("changedBy",null,"Changed By");h.appendChild(k); -k=document.createElement("th");k.style.width="25%";k.innerHTML=mxResources.get("lastModifiedOn",null,"Last modified on");h.appendChild(k);f.appendChild(h);P.appendChild(f)}for(h=0;h<a.length;h++){a[h].isExternal=!b;var e=a[h].url,k=mxUtils.htmlEntities(a[h].title),g=a[h].tooltip||a[h].title,w=a[h].imgUrl,t=mxUtils.htmlEntities(a[h].changedBy||""),m=mxUtils.htmlEntities(a[h].lastModifiedOn||"");w||(w=TEMPLATE_PATH+"/"+e.substring(0,e.length-4)+".png");e=c?50:15;null!=k&&k.length>e&&(k=k.substring(0, -e)+"…");if(c){var x=document.createElement("tr"),w=document.createElement("td"),l=document.createElement("img");l.src="/images/icon-search.svg";l.className="geTempDlgDiagramListPreviewBtn";l.setAttribute("title",mxResources.get("preview"));w.appendChild(l);g=document.createElement("span");g.className="geTempDlgDiagramTitle";g.innerHTML=k;w.appendChild(g);x.appendChild(w);w=document.createElement("td");w.innerHTML=t;x.appendChild(w);w=document.createElement("td");w.innerHTML=m;x.appendChild(w); -f.appendChild(x);null==G&&(d(),u(x,"geTempDlgDiagramsListGridActive",a[h]));(function(a,b){mxEvent.addListener(x,"click",function(){G!=b&&(d(),u(b,"geTempDlgDiagramsListGridActive",a))});mxEvent.addListener(x,"dblclick",p);mxEvent.addListener(l,"click",function(){q(a)})})(a[h],x)}else{var n=document.createElement("div");n.className="geTempDlgDiagramTile";n.setAttribute("title",g);null==G&&(d(),u(n,"geTempDlgDiagramTileActive",a[h]));t=document.createElement("div");t.className="geTempDlgDiagramTileImg geTempDlgDiagramTileImgLoading"; -var C=document.createElement("img");C.style.display="none";(function(a,b){C.onload=function(){b.className="geTempDlgDiagramTileImg";a.style.display=""};C.onerror=function(){b.className="geTempDlgDiagramTileImg geTempDlgDiagramTileImgError"}})(C,t);C.src=w;t.appendChild(C);n.appendChild(t);t=document.createElement("div");t.className="geTempDlgDiagramTileLbl";t.innerHTML=null!=k?k:"";n.appendChild(t);l=document.createElement("img");l.src="/images/icon-search.svg";l.className="geTempDlgDiagramPreviewBtn"; -l.setAttribute("title",mxResources.get("preview"));n.appendChild(l);(function(a,b){mxEvent.addListener(n,"click",function(){G!=b&&(d(),u(b,"geTempDlgDiagramTileActive",a))});mxEvent.addListener(n,"dblclick",p);mxEvent.addListener(l,"click",function(){q(a)})})(a[h],n);P.appendChild(n)}}}function A(a,b){Q.innerHTML="";u();for(var c=!b&&5<a.length?5:a.length,d=0;d<c;d++){var f=a[d];f.isCategory=!0;var h=document.createElement("div"),k=mxResources.get(f.title);null==k&&(k=f.title.substring(0,1).toUpperCase()+ -f.title.substring(1));h.className="geTempDlgNewDiagramCatItem";h.setAttribute("title",k);k=mxUtils.htmlEntities(k);15<k.length&&(k=k.substring(0,15)+"…");null==G&&(L.innerHTML=mxResources.get("create"),v(),u(h,"geTempDlgNewDiagramCatItemActive",f));var e=document.createElement("div");e.className="geTempDlgNewDiagramCatItemImg";var g=document.createElement("img");g.src=NEW_DIAGRAM_CATS_PATH+"/"+f.img;e.appendChild(g);h.appendChild(e);e=document.createElement("div");e.className="geTempDlgNewDiagramCatItemLbl"; -e.innerHTML=k;h.appendChild(e);Q.appendChild(h);(function(a,b){mxEvent.addListener(h,"click",function(){G!=b&&(L.innerHTML=mxResources.get("create"),v(),u(b,"geTempDlgNewDiagramCatItemActive",a))});mxEvent.addListener(h,"dblclick",p)})(f,h)}T.style.display=5>a.length?"none":""}function t(a){var b=C.querySelector(".geTemplatesList"),c;for(c in a){var d=document.createElement("div"),f=mxResources.get(c),h=a[c];null==f&&(f=c.substring(0,1).toUpperCase()+c.substring(1));d.className="geTemplateCatLink"; -d.setAttribute("title",f+" ("+h.length+")");f=mxUtils.htmlEntities(f);15<f.length&&(f=f.substring(0,15)+"…");d.innerHTML=f+" ("+h.length+")";b.appendChild(d);(function(b,c,f){mxEvent.addListener(d,"click",function(){E!=f&&(null!=E?(E.style.fontWeight="normal",E.style.textDecoration="none"):(Y.style.display="none",N.style.minHeight="100%"),E=f,E.style.fontWeight="bold",E.style.textDecoration="underline",Z.scrollTop=0,z&&(F=!0),S.innerHTML=c,aa.style.display="none",y(a[b],!0))})})(c,f,d)}}function w(a){l&& -(Z.scrollTop=0,P.innerHTML="",U.spin(P),F=!1,z=!0,S.innerHTML=mxResources.get("recentDiag",null,"Recent Diagrams"),K=null,l(W,a?null:g))}function x(a){h();Z.scrollTop=0;P.innerHTML="";U.spin(P);F=!1;z=!0;da=null;S.innerHTML=mxResources.get("searchResults",null,"Search Results")+' "'+mxUtils.htmlEntities(a)+'"';m(a,W,D?null:g);K=a}d=null!=d?d:TEMPLATE_PATH+"/index.xml";e=null!=e?e:NEW_DIAGRAM_CATS_PATH+"/index.xml";var C=this.container,z=!1,F=!1,E=null,G=null,I=null,B=!1,D=!0,H=!1,M=[],K,T=C.querySelector(".geTempDlgShowAllBtn"), +TemplatesDialog.prototype.init=function(a,b,c,d,e,g,k,l,m,f){function h(){null!=E&&(E.style.fontWeight="normal",E.style.textDecoration="none",E=null)}function n(a,b,c,d,f,h,e){if(-1<a.className.indexOf("geTempDlgRadioBtnActive"))return!1;a.className+=" geTempDlgRadioBtnActive";C.querySelector(".geTempDlgRadioBtn[data-id="+d+"]").className="geTempDlgRadioBtn "+(e?"geTempDlgRadioBtnLarge":"geTempDlgRadioBtnSmall");C.querySelector("."+b).src="/images/"+c+"-sel.svg";C.querySelector("."+f).src="/images/"+ +h+".svg";return!0}function u(a){function b(a){Z.removeChild(d);C.removeChild(c);Z.scrollTop=h}a=a.prevImgUrl||a.imgUrl||TEMPLATE_PATH+"/"+a.url.substring(0,a.url.length-4)+".png";var c=document.createElement("div");c.className="geTempDlgDialogMask";C.appendChild(c);var d=document.createElement("div");d.className="geTempDlgDiagramPreviewBox";var f=document.createElement("img");f.src=a;d.appendChild(f);a=document.createElement("img");a.src="/images/close.png";a.className="geTempDlgPreviewCloseBtn"; +a.setAttribute("title",mxResources.get("close"));d.appendChild(a);var h=Z.scrollTop;mxEvent.addListener(a,"click",b);mxEvent.addListener(c,"click",b);Z.appendChild(d);Z.scrollTop=0;d.style.lineHeight=d.clientHeight+"px"}function p(a,b,c){if(null!=G){for(var d=G.className.split(" "),f=0;f<d.length;f++)if(-1<d[f].indexOf("Active")){d.splice(f,1);break}G.className=d.join(" ")}null!=a?(G=a,G.className+=" "+b,I=c,L.className="geTempDlgCreateBtn"):(I=G=null,L.className="geTempDlgCreateBtn geTempDlgCreateBtnDisabled")} +function q(c){if(null!=I){var d=I;I=null;L.className="geTempDlgCreateBtn geTempDlgCreateBtnDisabled geTempDlgCreateBtnBusy";d.isExternal?(1==c?f(d.url,d,"nameInput.value"):m(d.url,d,"nameInput.value"),a.hideDialog(!0)):mxUtils.get(TEMPLATE_PATH+"/"+d.url,mxUtils.bind(this,function(c){200<=c.getStatus()&&299>=c.getStatus()&&(b(c.getText(),"nameInput.value"),a.hideDialog(!0))}))}}function v(a){a=a?"":"none";for(var b=C.querySelectorAll(".geTempDlgLinkToDiagram"),c=0;c<b.length;c++)b[c].style.display= +a}function y(a,b,c){function d(){L.innerHTML=b?mxResources.get("create"):mxResources.get("copy");v(!b)}P.innerHTML="";p();M=a;var f=null;if(c){f=document.createElement("table");f.className="geTempDlgDiagramsListGrid";var h=document.createElement("tr"),e=document.createElement("th");e.style.width="50%";e.innerHTML=mxResources.get("diagram",null,"Diagram");h.appendChild(e);e=document.createElement("th");e.style.width="25%";e.innerHTML=mxResources.get("changedBy",null,"Changed By");h.appendChild(e); +e=document.createElement("th");e.style.width="25%";e.innerHTML=mxResources.get("lastModifiedOn",null,"Last modified on");h.appendChild(e);f.appendChild(h);P.appendChild(f)}for(h=0;h<a.length;h++){a[h].isExternal=!b;var n=a[h].url,e=mxUtils.htmlEntities(a[h].title),g=a[h].tooltip||a[h].title,w=a[h].imgUrl,t=mxUtils.htmlEntities(a[h].changedBy||""),k=mxUtils.htmlEntities(a[h].lastModifiedOn||"");w||(w=TEMPLATE_PATH+"/"+n.substring(0,n.length-4)+".png");n=c?50:15;null!=e&&e.length>n&&(e=e.substring(0, +n)+"…");if(c){var x=document.createElement("tr"),w=document.createElement("td"),l=document.createElement("img");l.src="/images/icon-search.svg";l.className="geTempDlgDiagramListPreviewBtn";l.setAttribute("title",mxResources.get("preview"));w.appendChild(l);g=document.createElement("span");g.className="geTempDlgDiagramTitle";g.innerHTML=e;w.appendChild(g);x.appendChild(w);w=document.createElement("td");w.innerHTML=t;x.appendChild(w);w=document.createElement("td");w.innerHTML=k;x.appendChild(w); +f.appendChild(x);null==G&&(d(),p(x,"geTempDlgDiagramsListGridActive",a[h]));(function(a,b){mxEvent.addListener(x,"click",function(){G!=b&&(d(),p(b,"geTempDlgDiagramsListGridActive",a))});mxEvent.addListener(x,"dblclick",q);mxEvent.addListener(l,"click",function(){u(a)})})(a[h],x)}else{var m=document.createElement("div");m.className="geTempDlgDiagramTile";m.setAttribute("title",g);null==G&&(d(),p(m,"geTempDlgDiagramTileActive",a[h]));t=document.createElement("div");t.className="geTempDlgDiagramTileImg geTempDlgDiagramTileImgLoading"; +var C=document.createElement("img");C.style.display="none";(function(a,b){C.onload=function(){b.className="geTempDlgDiagramTileImg";a.style.display=""};C.onerror=function(){b.className="geTempDlgDiagramTileImg geTempDlgDiagramTileImgError"}})(C,t);C.src=w;t.appendChild(C);m.appendChild(t);t=document.createElement("div");t.className="geTempDlgDiagramTileLbl";t.innerHTML=null!=e?e:"";m.appendChild(t);l=document.createElement("img");l.src="/images/icon-search.svg";l.className="geTempDlgDiagramPreviewBtn"; +l.setAttribute("title",mxResources.get("preview"));m.appendChild(l);(function(a,b){mxEvent.addListener(m,"click",function(){G!=b&&(d(),p(b,"geTempDlgDiagramTileActive",a))});mxEvent.addListener(m,"dblclick",q);mxEvent.addListener(l,"click",function(){u(a)})})(a[h],m);P.appendChild(m)}}}function B(a,b){Q.innerHTML="";p();for(var c=!b&&5<a.length?5:a.length,d=0;d<c;d++){var f=a[d];f.isCategory=!0;var h=document.createElement("div"),e=mxResources.get(f.title);null==e&&(e=f.title.substring(0,1).toUpperCase()+ +f.title.substring(1));h.className="geTempDlgNewDiagramCatItem";h.setAttribute("title",e);e=mxUtils.htmlEntities(e);15<e.length&&(e=e.substring(0,15)+"…");null==G&&(L.innerHTML=mxResources.get("create"),v(),p(h,"geTempDlgNewDiagramCatItemActive",f));var n=document.createElement("div");n.className="geTempDlgNewDiagramCatItemImg";var g=document.createElement("img");g.src=NEW_DIAGRAM_CATS_PATH+"/"+f.img;n.appendChild(g);h.appendChild(n);n=document.createElement("div");n.className="geTempDlgNewDiagramCatItemLbl"; +n.innerHTML=e;h.appendChild(n);Q.appendChild(h);(function(a,b){mxEvent.addListener(h,"click",function(){G!=b&&(L.innerHTML=mxResources.get("create"),v(),p(b,"geTempDlgNewDiagramCatItemActive",a))});mxEvent.addListener(h,"dblclick",q)})(f,h)}T.style.display=5>a.length?"none":""}function t(a){var b=C.querySelector(".geTemplatesList"),c;for(c in a){var d=document.createElement("div"),f=mxResources.get(c),h=a[c];null==f&&(f=c.substring(0,1).toUpperCase()+c.substring(1));d.className="geTemplateCatLink"; +d.setAttribute("title",f+" ("+h.length+")");f=mxUtils.htmlEntities(f);15<f.length&&(f=f.substring(0,15)+"…");d.innerHTML=f+" ("+h.length+")";b.appendChild(d);(function(b,c,f){mxEvent.addListener(d,"click",function(){E!=f&&(null!=E?(E.style.fontWeight="normal",E.style.textDecoration="none"):(Y.style.display="none",N.style.minHeight="100%"),E=f,E.style.fontWeight="bold",E.style.textDecoration="underline",Z.scrollTop=0,z&&(F=!0),S.innerHTML=c,aa.style.display="none",y(a[b],!0))})})(c,f,d)}}function w(a){k&& +(Z.scrollTop=0,P.innerHTML="",U.spin(P),F=!1,z=!0,S.innerHTML=mxResources.get("recentDiag",null,"Recent Diagrams"),K=null,k(W,a?null:g))}function x(a){h();Z.scrollTop=0;P.innerHTML="";U.spin(P);F=!1;z=!0;da=null;S.innerHTML=mxResources.get("searchResults",null,"Search Results")+' "'+mxUtils.htmlEntities(a)+'"';l(a,W,D?null:g);K=a}d=null!=d?d:TEMPLATE_PATH+"/index.xml";e=null!=e?e:NEW_DIAGRAM_CATS_PATH+"/index.xml";var C=this.container,z=!1,F=!1,E=null,G=null,I=null,A=!1,D=!0,H=!1,M=[],K,T=C.querySelector(".geTempDlgShowAllBtn"), P=C.querySelector(".geTempDlgDiagramsTiles"),S=C.querySelector(".geTempDlgDiagramsListTitle"),aa=C.querySelector(".geTempDlgDiagramsListBtns"),Z=C.querySelector(".geTempDlgContent"),N=C.querySelector(".geTempDlgDiagramsList"),Y=C.querySelector(".geTempDlgNewDiagramCat"),Q=C.querySelector(".geTempDlgNewDiagramCatList"),L=C.querySelector(".geTempDlgCreateBtn"),U=new Spinner({lines:12,length:10,width:5,radius:10,rotate:0,color:"#000",speed:1.5,trail:60,shadow:!1,hwaccel:!1,top:"50px",zIndex:2E9});mxEvent.addListener(C.querySelector(".geTempDlgNewDiagramlbl"), -"click",function(){h();Y.style.display="";N.style.minHeight="calc(100% - 280px)";w(D)});mxEvent.addListener(C.querySelector(".geTempDlgRadioBtn[data-id=allDiagramsBtn]"),"click",function(){k(this,"geTempDlgAllDiagramsBtnImg","all-diagrams","myDiagramsBtn","geTempDlgMyDiagramsBtnImg","my-diagrams",!0)&&(D=!0,null==K?w(D):x(K))});mxEvent.addListener(C.querySelector(".geTempDlgRadioBtn[data-id=myDiagramsBtn]"),"click",function(){k(this,"geTempDlgMyDiagramsBtnImg","my-diagrams","allDiagramsBtn","geTempDlgAllDiagramsBtnImg", -"all-diagrams",!0)&&(D=!1,null==K?w(D):x(K))});mxEvent.addListener(C.querySelector(".geTempDlgRadioBtn[data-id=listBtn]"),"click",function(){k(this,"geTempDlgListBtnImg","list","tilesBtn","geTempDlgTilesBtnImg","tiles",!1)&&(H=!0,y(M,!1,H))});mxEvent.addListener(C.querySelector(".geTempDlgRadioBtn[data-id=tilesBtn]"),"click",function(){k(this,"geTempDlgTilesBtnImg","tiles","listBtn","geTempDlgListBtnImg","list",!1)&&(H=!1,y(M,!1,H))});mxEvent.addListener(T,"click",function(){B?(Y.style.height="280px", -Q.style.height="190px",T.innerHTML=mxResources.get("showAll",null,"+ Show all"),A(J)):(Y.style.height="440px",Q.style.height="355px",T.innerHTML=mxResources.get("showLess",null,"- Show less"),A(J,!0));B=!B});var R=!1,O=!1,V={},J=[],X=1;mxUtils.get(d,function(a){if(!R){R=!0;for(a=a.getXml().documentElement.firstChild;null!=a;){if("undefined"!==typeof a.getAttribute){var b=a.getAttribute("url");if(null!=b){var c=b.indexOf("/"),b=b.substring(0,c),c=V[b];null==c&&(X++,c=[],V[b]=c);c.push({url:a.getAttribute("url"), -libs:a.getAttribute("libs"),title:a.getAttribute("title"),tooltip:a.getAttribute("url"),imgUrl:a.getAttribute("imgUrl")})}}a=a.nextSibling}t(V)}});mxUtils.get(e,function(a){if(!O){O=!0;for(a=a.getXml().documentElement.firstChild;null!=a;)"undefined"!==typeof a.getAttribute&&null!=a.getAttribute("title")&&J.push({img:a.getAttribute("img"),libs:a.getAttribute("libs"),title:a.getAttribute("title")}),a=a.nextSibling;A(J)}});var W=function(a,b){aa.style.display="";U.stop();z=!1;F?F=!1:b?P.innerHTML=b: -0==a.length?P.innerHTML=mxResources.get("noDiagrams",null,"No Diagrams Found"):y(a,!1,H)};w(D);var da=null;m&&mxEvent.addListener(C.querySelector(".geTempDlgSearchBox"),"keyup",function(a){var b=this;null!=da&&clearTimeout(da);13==a.keyCode?x(b.value):da=setTimeout(function(){x(b.value)},500)});mxEvent.addListener(L,"click",p);mxEvent.addListener(C.querySelector(".geTempDlgLinkToDiagramBtn"),"click",function(a){p(!0)});mxEvent.addListener(C.querySelector(".geTempDlgCancelBtn"),"click",function(){null!= +"click",function(){h();Y.style.display="";N.style.minHeight="calc(100% - 280px)";w(D)});mxEvent.addListener(C.querySelector(".geTempDlgRadioBtn[data-id=allDiagramsBtn]"),"click",function(){n(this,"geTempDlgAllDiagramsBtnImg","all-diagrams","myDiagramsBtn","geTempDlgMyDiagramsBtnImg","my-diagrams",!0)&&(D=!0,null==K?w(D):x(K))});mxEvent.addListener(C.querySelector(".geTempDlgRadioBtn[data-id=myDiagramsBtn]"),"click",function(){n(this,"geTempDlgMyDiagramsBtnImg","my-diagrams","allDiagramsBtn","geTempDlgAllDiagramsBtnImg", +"all-diagrams",!0)&&(D=!1,null==K?w(D):x(K))});mxEvent.addListener(C.querySelector(".geTempDlgRadioBtn[data-id=listBtn]"),"click",function(){n(this,"geTempDlgListBtnImg","list","tilesBtn","geTempDlgTilesBtnImg","tiles",!1)&&(H=!0,y(M,!1,H))});mxEvent.addListener(C.querySelector(".geTempDlgRadioBtn[data-id=tilesBtn]"),"click",function(){n(this,"geTempDlgTilesBtnImg","tiles","listBtn","geTempDlgListBtnImg","list",!1)&&(H=!1,y(M,!1,H))});mxEvent.addListener(T,"click",function(){A?(Y.style.height="280px", +Q.style.height="190px",T.innerHTML=mxResources.get("showAll",null,"+ Show all"),B(J)):(Y.style.height="440px",Q.style.height="355px",T.innerHTML=mxResources.get("showLess",null,"- Show less"),B(J,!0));A=!A});var R=!1,O=!1,V={},J=[],X=1;mxUtils.get(d,function(a){if(!R){R=!0;for(a=a.getXml().documentElement.firstChild;null!=a;){if("undefined"!==typeof a.getAttribute){var b=a.getAttribute("url");if(null!=b){var c=b.indexOf("/"),b=b.substring(0,c),c=V[b];null==c&&(X++,c=[],V[b]=c);c.push({url:a.getAttribute("url"), +libs:a.getAttribute("libs"),title:a.getAttribute("title"),tooltip:a.getAttribute("url"),imgUrl:a.getAttribute("imgUrl")})}}a=a.nextSibling}t(V)}});mxUtils.get(e,function(a){if(!O){O=!0;for(a=a.getXml().documentElement.firstChild;null!=a;)"undefined"!==typeof a.getAttribute&&null!=a.getAttribute("title")&&J.push({img:a.getAttribute("img"),libs:a.getAttribute("libs"),title:a.getAttribute("title")}),a=a.nextSibling;B(J)}});var W=function(a,b){aa.style.display="";U.stop();z=!1;F?F=!1:b?P.innerHTML=b: +0==a.length?P.innerHTML=mxResources.get("noDiagrams",null,"No Diagrams Found"):y(a,!1,H)};w(D);var da=null;l&&mxEvent.addListener(C.querySelector(".geTempDlgSearchBox"),"keyup",function(a){var b=this;null!=da&&clearTimeout(da);13==a.keyCode?x(b.value):da=setTimeout(function(){x(b.value)},500)});mxEvent.addListener(L,"click",q);mxEvent.addListener(C.querySelector(".geTempDlgLinkToDiagramBtn"),"click",function(a){q(!0)});mxEvent.addListener(C.querySelector(".geTempDlgCancelBtn"),"click",function(){null!= c&&c();a.hideDialog(!0)})};(function(){Editor.prototype.appName="draw.io";Editor.closeImage=mxClient.IS_SVG?"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABkAAAAZCAMAAADzN3VRAAAApVBMVEUAAAD////k5OT///8AAAB1dXXMzMz9/f39/f37+/v5+fn+/v7///9iYmJaWlqFhYWnp6ejo6OHh4f////////////////7+/v5+fnx8fH///8AAAD///8bGxv7+/v5+fkoKCghISFDQ0MYGBjh4eHY2Njb29tQUFBvb29HR0c/Pz82NjYrKyu/v78SEhLu7u7s7OzV1dVVVVU7OzsVFRXAv78QEBBzqehMAAAAG3RSTlMAA/7p/vz5xZlrTiPL/v78+/v7+OXd2TYQDs8L70ZbAAABKUlEQVQoz3VS13LCMBBUXHChd8iukDslQChJ/v/TchaG4cXS+OSb1c7trU7V60OpdRz2ZtNZL4zXNlcN8BEtSG6+NxIXkeRPoBuQ1cjvZ31/VJFB10ISli6diYfH8iYO3WUNCcNlB0gTrXOtkxTo0O1aKKiBBMhhv2MNBQKoiA5wxlZo0JDzD3AYKbWacyj3fs01wxey0pyEP+R8pWKWXoqtIZ0DDg5pbki9krEKOa6LVDQsdoXEsi46Zqh69KFz7B1u7Hb2yDV8firXDKBlZ4UFiswKGRhXTS93/ECK7yxnJ3+S3y/ThpO+cfSD017nqa18aasabU0/t7d+tk0/1oMEJ1NaD67iwdF68OabFSLn+eHb0+vjy+uk8br9fdrftH0O2menfd7+AQfYM/lNjoDHAAAAAElFTkSuQmCC": IMAGE_PATH+"/delete.png";Editor.plusImage=mxClient.IS_SVG?"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBNYWNpbnRvc2giIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MDdCMTdENjVCOEM4MTFFNDlCRjVBNDdCODU5NjNBNUMiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MDdCMTdENjZCOEM4MTFFNDlCRjVBNDdCODU5NjNBNUMiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDowN0IxN0Q2M0I4QzgxMUU0OUJGNUE0N0I4NTk2M0E1QyIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDowN0IxN0Q2NEI4QzgxMUU0OUJGNUE0N0I4NTk2M0E1QyIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PtjrjmgAAAAtSURBVHjaYvz//z8DMigvLwcLdHZ2MiKLMzEQCaivkLGsrOw/dU0cAr4GCDAARQsQbTFrv10AAAAASUVORK5CYII=": IMAGE_PATH+"/plus.png";Editor.spinImage=mxClient.IS_SVG?"data:image/gif;base64,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": @@ -7469,8 +7471,9 @@ dispName:"Source Port Constraint",type:"enum",defVal:"none",enumList:[{val:"none type:"bool",defVal:!0},{name:"backgroundOutline",dispName:"Background Outline",type:"bool",defVal:!1},{name:"bendable",dispName:"Bendable",type:"bool",defVal:!0},{name:"movable",dispName:"Movable",type:"bool",defVal:!0},{name:"cloneable",dispName:"Cloneable",type:"bool",defVal:!0},{name:"deletable",dispName:"Deletable",type:"bool",defVal:!0},{name:"loopStyle",dispName:"Loop Style",type:"bool",defVal:!0}];Editor.commonVertexProperties=[{type:"separator"},{name:"fillOpacity",dispName:"Fill Opacity", type:"int",min:0,max:100,defVal:100},{name:"strokeOpacity",dispName:"Stroke Opacity",type:"int",min:0,max:100,defVal:100},{name:"overflow",dispName:"Text Overflow",defVal:"visible",type:"enum",enumList:[{val:"visible",dispName:"Visible"},{val:"hidden",dispName:"Hidden"},{val:"fill",dispName:"Fill"},{val:"width",dispName:"Width"}]},{name:"noLabel",dispName:"Hide Label",type:"bool",defVal:!1},{name:"labelPadding",dispName:"Label Padding",type:"float",defVal:0},{name:"direction",dispName:"Direction", type:"enum",defVal:"east",enumList:[{val:"east",dispName:"East"},{val:"north",dispName:"North"},{val:"south",dispName:"South"},{val:"west",dispName:"West"}]},{name:"portConstraint",dispName:"Port Constraint",type:"enum",defVal:"none",enumList:[{val:"none",dispName:"None"},{val:"east",dispName:"East"},{val:"north",dispName:"North"},{val:"south",dispName:"South"},{val:"west",dispName:"West"}]},{name:"portConstraintRotation",dispName:"Port Const. Rot.",type:"bool",defVal:!1},{name:"snapToPoint",dispName:"Snap to Point", -type:"bool",defVal:!1},{name:"fixDash",dispName:"Fixed Dash",type:"bool",defVal:!1},{name:"autosize",dispName:"Autosize",type:"bool",defVal:!1},{name:"collapsible",dispName:"Collapsible",type:"bool",defVal:!1},{name:"editable",dispName:"Editable",type:"bool",defVal:!0},{name:"backgroundOutline",dispName:"Background Outline",type:"bool",defVal:!1},{name:"movable",dispName:"Movable",type:"bool",defVal:!0},{name:"resizable",dispName:"Resizable",type:"bool",defVal:!0},{name:"resizeWidth",dispName:"Resize Width", -type:"bool",defVal:!1},{name:"resizeHeight",dispName:"Resize Height",type:"bool",defVal:!1},{name:"rotatable",dispName:"Rotatable",type:"bool",defVal:!0},{name:"cloneable",dispName:"Cloneable",type:"bool",defVal:!0},{name:"deletable",dispName:"Deletable",type:"bool",defVal:!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%<br><i style="color:gray;">%position%</i><br><a href="mailto:%email%">Email</a>\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## Parent style for nodes with child nodes (placeholders are replaced once).\n#\n# parentstyle: swimlane;whiteSpace=wrap;html=1;childLayout=stackLayout;horizontal=1;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;\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## Uses the given column name as the parent reference for cells. Default is no parent (empty or -).\n## The identity above is used for resolving the reference so it must be specified.\n#\n# parent: -\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 levels of hierarchical layouts. Default is 100.\n#\n# levelspacing: 100\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'; +type:"bool",defVal:!1},{name:"perimeter",dispName:"Perimeter",defVal:"none",type:"enum",enumList:[{val:"none",dispName:"None"},{val:"rectanglePerimeter",dispName:"Rectangle"},{val:"ellipsePerimeter",dispName:"Ellipse"},{val:"rhombusPerimeter",dispName:"Rhombus"},{val:"trianglePerimeter",dispName:"Triangle"},{val:"hexagonPerimeter2",dispName:"Hexagon"},{val:"lifelinePerimeter",dispName:"Lifeline"},{val:"orthogonalPerimeter",dispName:"Orthogonal"},{val:"backbonePerimeter",dispName:"Backbone"},{val:"calloutPerimeter", +dispName:"Callout"},{val:"parallelogramPerimeter",dispName:"Parallelogram"},{val:"trapezoidPerimeter",dispName:"Trapezoid"},{val:"stepPerimeter",dispName:"Step"}]},{name:"fixDash",dispName:"Fixed Dash",type:"bool",defVal:!1},{name:"autosize",dispName:"Autosize",type:"bool",defVal:!1},{name:"collapsible",dispName:"Collapsible",type:"bool",defVal:!1},{name:"editable",dispName:"Editable",type:"bool",defVal:!0},{name:"backgroundOutline",dispName:"Background Outline",type:"bool",defVal:!1},{name:"movable", +dispName:"Movable",type:"bool",defVal:!0},{name:"resizable",dispName:"Resizable",type:"bool",defVal:!0},{name:"resizeWidth",dispName:"Resize Width",type:"bool",defVal:!1},{name:"resizeHeight",dispName:"Resize Height",type:"bool",defVal:!1},{name:"rotatable",dispName:"Rotatable",type:"bool",defVal:!0},{name:"cloneable",dispName:"Cloneable",type:"bool",defVal:!0},{name:"deletable",dispName:"Deletable",type:"bool",defVal:!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%<br><i style="color:gray;">%position%</i><br><a href="mailto:%email%">Email</a>\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## Parent style for nodes with child nodes (placeholders are replaced once).\n#\n# parentstyle: swimlane;whiteSpace=wrap;html=1;childLayout=stackLayout;horizontal=1;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;\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## Uses the given column name as the parent reference for cells. Default is no parent (empty or -).\n## The identity above is used for resolving the reference so it must be specified.\n#\n# parent: -\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 levels of hierarchical layouts. Default is 100.\n#\n# levelspacing: 100\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.config=null;Editor.configVersion=null;Editor.configure=function(a,b){if(null!=a){Editor.config=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;null!=a.templateFile&&(EditorUi.templateFile=a.templateFile);a.customFonts&&(Menus.prototype.defaultFonts=a.customFonts.concat(Menus.prototype.defaultFonts));a.customPresetColors&&(ColorDialog.prototype.presetColors=a.customPresetColors.concat(ColorDialog.prototype.presetColors));null!=a.customColorSchemes&&(StyleFormatPanel.prototype.defaultColorSchemes=a.customColorSchemes.concat(StyleFormatPanel.prototype.defaultColorSchemes)); if(null!=a.css){var c=document.createElement("style");c.setAttribute("type","text/css");c.appendChild(document.createTextNode(a.css));var d=document.getElementsByTagName("script")[0];d.parentNode.insertBefore(c,d)}null!=a.libraries&&(Sidebar.prototype.customEntries=a.libraries);null!=a.enabledLibraries&&(Sidebar.prototype.enabledLibraries=a.enabledLibraries);null!=a.defaultLibraries&&(Sidebar.prototype.defaultEntries=a.defaultLibraries);null!=a.defaultCustomLibraries&&(Editor.defaultCustomLibraries= @@ -7490,8 +7493,8 @@ showMathMenu:!1,messageStyle:"none",AuthorInit:function(){MathJax.Hub.Config(b|| Editor.MathJaxRender=function(a){"undefined"!==typeof MathJax&&"undefined"!==typeof MathJax.Hub?Editor.doMathJaxRender(a):Editor.mathJaxQueue.push(a)};Editor.MathJaxClear=function(){Editor.mathJaxQueue=[]};var c=Editor.prototype.init;Editor.prototype.init=function(){c.apply(this,arguments);this.graph.addListener(mxEvent.SIZE,mxUtils.bind(this,function(a,b){null!=this.graph.container&&this.graph.mathEnabled&&Editor.MathJaxRender(this.graph.container)}))};var d=document.getElementsByTagName("script"); if(null!=d&&0<d.length){var f=document.createElement("script");f.type="text/javascript";f.src=a;d[0].parentNode.appendChild(f)}};Editor.prototype.csvToArray=function(a){if(!/^\s*(?:'[^'\\]*(?:\\[\S\s][^'\\]*)*'|"[^"\\]*(?:\\[\S\s][^"\\]*)*"|[^,'"\s\\]*(?:\s+[^,'"\s\\]+)*)\s*(?:,\s*(?:'[^'\\]*(?:\\[\S\s][^'\\]*)*'|"[^"\\]*(?:\\[\S\s][^"\\]*)*"|[^,'"\s\\]*(?:\s+[^,'"\s\\]+)*)\s*)*$/.test(a))return null;var b=[];a.replace(/(?!\s*$)\s*(?:'([^'\\]*(?:\\[\S\s][^'\\]*)*)'|"([^"\\]*(?:\\[\S\s][^"\\]*)*)"|([^,'"\s\\]*(?:\s+[^,'"\s\\]+)*))\s*(?:,|$)/g, function(a,c,d,f){void 0!==c?b.push(c.replace(/\\'/g,"'")):void 0!==d?b.push(d.replace(/\\"/g,'"')):void 0!==f&&b.push(f);return""});/,\s*$/.test(a)&&b.push("");return b};if(window.ColorDialog){var e=ColorDialog.addRecentColor;ColorDialog.addRecentColor=function(a,b){e.apply(this,arguments);mxSettings.setRecentColors(ColorDialog.recentColors);mxSettings.save()};var g=ColorDialog.resetRecentColors;ColorDialog.resetRecentColors=function(){g.apply(this,arguments);mxSettings.setRecentColors(ColorDialog.recentColors); -mxSettings.save()}}window.EditDataDialog&&(EditDataDialog.getDisplayIdForCell=function(a,b){var c=null;null!=a.editor.graph.getModel().getParent(b)?c=b.getId():null!=a.currentPage&&(c=a.currentPage.getId());return c});if(null!=window.StyleFormatPanel){var l=Format.prototype.init;Format.prototype.init=function(){l.apply(this,arguments);this.editorUi.editor.addListener("fileLoaded",this.update)};var m=Format.prototype.refresh;Format.prototype.refresh=function(){null!=this.editorUi.getCurrentFile()|| -"1"==urlParams.embed||this.editorUi.editor.chromeless?m.apply(this,arguments):this.clear()};DiagramFormatPanel.prototype.isShadowOptionVisible=function(){var a=this.editorUi.getCurrentFile();return"1"==urlParams.embed||null!=a&&a.isEditable()};DiagramFormatPanel.prototype.isMathOptionVisible=function(a){return!1};var n=DiagramFormatPanel.prototype.addView;DiagramFormatPanel.prototype.addView=function(a){a=n.apply(this,arguments);this.editorUi.getCurrentFile();if(mxClient.IS_SVG&&this.isShadowOptionVisible()){var b= +mxSettings.save()}}window.EditDataDialog&&(EditDataDialog.getDisplayIdForCell=function(a,b){var c=null;null!=a.editor.graph.getModel().getParent(b)?c=b.getId():null!=a.currentPage&&(c=a.currentPage.getId());return c});if(null!=window.StyleFormatPanel){var k=Format.prototype.init;Format.prototype.init=function(){k.apply(this,arguments);this.editorUi.editor.addListener("fileLoaded",this.update)};var l=Format.prototype.refresh;Format.prototype.refresh=function(){null!=this.editorUi.getCurrentFile()|| +"1"==urlParams.embed||this.editorUi.editor.chromeless?l.apply(this,arguments):this.clear()};DiagramFormatPanel.prototype.isShadowOptionVisible=function(){var a=this.editorUi.getCurrentFile();return"1"==urlParams.embed||null!=a&&a.isEditable()};DiagramFormatPanel.prototype.isMathOptionVisible=function(a){return!1};var m=DiagramFormatPanel.prototype.addView;DiagramFormatPanel.prototype.addView=function(a){a=m.apply(this,arguments);this.editorUi.getCurrentFile();if(mxClient.IS_SVG&&this.isShadowOptionVisible()){var b= this.editorUi,c=b.editor.graph,d=this.createOption(mxResources.get("shadow"),function(){return c.shadowVisible},function(a){var d=new ChangePageSetup(b);d.ignoreColor=!0;d.ignoreImage=!0;d.shadowVisible=a;c.model.execute(d)},{install:function(a){this.listener=function(){a(c.shadowVisible)};b.addListener("shadowVisibleChanged",this.listener)},destroy:function(){b.removeListener(this.listener)}});Editor.shadowOptionEnabled||(d.getElementsByTagName("input")[0].setAttribute("disabled","disabled"),mxUtils.setOpacity(d, 60));a.appendChild(d)}return a};var f=DiagramFormatPanel.prototype.addOptions;DiagramFormatPanel.prototype.addOptions=function(a){a=f.apply(this,arguments);var b=this.editorUi,c=b.editor.graph;if(c.isEnabled()){var d=b.getCurrentFile();null!=d&&d.isAutosaveOptional()&&(d=this.createOption(mxResources.get("autosave"),function(){return b.editor.autosave},function(a){b.editor.setAutosave(a)},{install:function(a){this.listener=function(){a(b.editor.autosave)};b.editor.addListener("autosaveChanged",this.listener)}, destroy:function(){b.editor.removeListener(this.listener)}}),a.appendChild(d))}if(this.isMathOptionVisible()&&c.isEnabled()&&"undefined"!==typeof MathJax){d=this.createOption(mxResources.get("mathematicalTypesetting"),function(){return c.mathEnabled},function(a){b.actions.get("mathematicalTypesetting").funct()},{install:function(a){this.listener=function(){a(c.mathEnabled)};b.addListener("mathEnabledChanged",this.listener)},destroy:function(){b.removeListener(this.listener)}});d.style.paddingTop= @@ -7517,44 +7520,44 @@ font:"#ffffff"},{fill:"#6d8764",stroke:"#6d8764",font:"#ffffff"},{fill:"#647687" gradient:"#b3b3b3"},{fill:"#dae8fc",stroke:"#6c8ebf",gradient:"#7ea6e0"},{fill:"#d5e8d4",stroke:"#82b366",gradient:"#97d077"},{fill:"#ffcd28",stroke:"#d79b00",gradient:"#ffa500"},{fill:"#fff2cc",stroke:"#d6b656",gradient:"#ffd966"},{fill:"#f8cecc",stroke:"#b85450",gradient:"#ea6b66"},{fill:"#e6d0de",stroke:"#996185",gradient:"#d5739d"}],[null,{fill:"#eeeeee",stroke:"#36393d"},{fill:"#f9f7ed",stroke:"#36393d"},{fill:"#ffcc99",stroke:"#36393d"},{fill:"#cce5ff",stroke:"#36393d"},{fill:"#ffff88",stroke:"#36393d"}, {fill:"#cdeb8b",stroke:"#36393d"},{fill:"#ffcccc",stroke:"#36393d"}]];StyleFormatPanel.prototype.customColorSchemes=null;StyleFormatPanel.prototype.findCommonProperties=function(a,b,c){if(null!=b){var d=function(a){if(null!=a)if(c)for(var d=0;d<a.length;d++)b[a[d].name]=a[d];else for(var f in b){for(var h=!1,d=0;d<a.length;d++)if(a[d].name==f&&a[d].type==b[f].type){h=!0;break}h||delete b[f]}},f=this.editorUi.editor.graph.view.getState(a);null!=f&&(f.shape.commonCustomPropAdded||(f.shape.commonCustomPropAdded= !0,f.shape.customProperties=f.shape.customProperties||[],f.cell.vertex?Array.prototype.push.apply(f.shape.customProperties,Editor.commonVertexProperties):Array.prototype.push.apply(f.shape.customProperties,Editor.commonEdgeProperties)),d(f.shape.customProperties));a=a.getAttribute("customProperties");if(null!=a)try{d(JSON.parse(a))}catch(E){}}};var h=StyleFormatPanel.prototype.init;StyleFormatPanel.prototype.init=function(){var a=this.format.createSelectionState();"image"!=a.style.shape&&this.container.appendChild(this.addStyles(this.createPanel())); -h.apply(this,arguments);if(Editor.enableCustomProperties){for(var b={},c=a.vertices,d=a.edges,f=0;f<c.length;f++)this.findCommonProperties(c[f],b,0==f);for(f=0;f<d.length;f++)this.findCommonProperties(d[f],b,0==c.length&&0==f);0<Object.getOwnPropertyNames(b).length&&this.container.appendChild(this.addProperties(this.createPanel(),b,a))}};var k=StyleFormatPanel.prototype.addStyleOps;StyleFormatPanel.prototype.addStyleOps=function(a){var b=mxUtils.button(mxResources.get("copyStyle"),mxUtils.bind(this, +h.apply(this,arguments);if(Editor.enableCustomProperties){for(var b={},c=a.vertices,d=a.edges,f=0;f<c.length;f++)this.findCommonProperties(c[f],b,0==f);for(f=0;f<d.length;f++)this.findCommonProperties(d[f],b,0==c.length&&0==f);0<Object.getOwnPropertyNames(b).length&&this.container.appendChild(this.addProperties(this.createPanel(),b,a))}};var n=StyleFormatPanel.prototype.addStyleOps;StyleFormatPanel.prototype.addStyleOps=function(a){var b=mxUtils.button(mxResources.get("copyStyle"),mxUtils.bind(this, function(a){this.editorUi.actions.get("copyStyle").funct()}));b.setAttribute("title",mxResources.get("copyStyle")+" ("+this.editorUi.actions.get("copyStyle").shortcut+")");b.style.marginBottom="2px";b.style.width="100px";b.style.marginRight="2px";a.appendChild(b);b=mxUtils.button(mxResources.get("pasteStyle"),mxUtils.bind(this,function(a){this.editorUi.actions.get("pasteStyle").funct()}));b.setAttribute("title",mxResources.get("pasteStyle")+" ("+this.editorUi.actions.get("pasteStyle").shortcut+")"); -b.style.marginBottom="2px";b.style.width="100px";a.appendChild(b);mxUtils.br(a);return k.apply(this,arguments)};EditorUi.prototype.propertiesCollapsed=!0;StyleFormatPanel.prototype.addProperties=function(a,b,c){function d(a,b,c,d){w.getModel().beginUpdate();try{var f=[],h=[];if(null!=c.index){for(var k=[],e=c.parentRow.nextSibling;e&&e.getAttribute("data-pName")==a;)k.push(e.getAttribute("data-pValue")),e=e.nextSibling;c.index<k.length?null!=d?k.splice(d,1):k[c.index]=b:k.push(b);null!=c.size&&k.length> -c.size&&(k=k.slice(0,c.size));b=k.join(",");null!=c.countProperty&&(w.setCellStyles(c.countProperty,k.length,w.getSelectionCells()),f.push(c.countProperty),h.push(k.length))}w.setCellStyles(a,b,w.getSelectionCells());f.push(a);h.push(b);if(null!=c.dependentProps)for(a=0;a<c.dependentProps.length;a++){var g=c.dependentPropsDefVal[a],t=c.dependentPropsVals[a];if(t.length>b)t=t.slice(0,b);else for(var l=t.length;l<b;l++)t.push(g);t=t.join(",");w.setCellStyles(c.dependentProps[a],t,w.getSelectionCells()); -f.push(c.dependentProps[a]);h.push(t)}q.editorUi.fireEvent(new mxEventObject("styleChanged","keys",f,"values",h,"cells",w.getSelectionCells()))}finally{w.getModel().endUpdate()}}function f(b,c,d){var f=mxUtils.getOffset(a,!0),h=mxUtils.getOffset(b,!0);c.style.position="absolute";c.style.left=h.x-f.x+"px";c.style.top=h.y-f.y+"px";c.style.width=b.offsetWidth+"px";c.style.height=b.offsetHeight-(d?4:0)+"px";c.style.zIndex=5}function h(a,b,c){var f=document.createElement("div");f.style.width="32px";f.style.height= -"4px";f.style.margin="2px";f.style.border="1px solid black";f.style.background=b&&"none"!=b?b:"url('"+Dialog.prototype.noColorImage+"')";btn=mxUtils.button("",mxUtils.bind(q,function(h){this.editorUi.pickColor(b,function(b){f.style.background="none"==b?"url('"+Dialog.prototype.noColorImage+"')":b;d(a,b,c)});mxEvent.consume(h)}));btn.style.height="12px";btn.style.width="40px";btn.className="geColorBtn";btn.appendChild(f);return btn}function k(a,b,c,f,h,k,e){null!=b&&(b=b.split(","),m.push({name:a, -values:b,type:c,defVal:f,countProperty:h,parentRow:k,isDeletable:!0,flipBkg:e}));btn=mxUtils.button("+",mxUtils.bind(q,function(b){for(var g=k,q=0;null!=g.nextSibling;)if(g.nextSibling.getAttribute("data-pName")==a)g=g.nextSibling,q++;else break;var w={type:c,parentRow:k,index:q,isDeletable:!0,defVal:f,countProperty:h},q=t(a,"",w,0==q%2,e);d(a,f,w);g.parentNode.insertBefore(q,g.nextSibling);mxEvent.consume(b)}));btn.style.height="16px";btn.style.width="25px";btn.className="geColorBtn";return btn} -function e(a,b,c,d,f,h,k){if(0<f){var e=Array(f);b=null!=b?b.split(","):[];for(var g=0;g<f;g++)e[g]=null!=b[g]?b[g]:null!=d?d:"";m.push({name:a,values:e,type:c,defVal:d,parentRow:h,flipBkg:k,size:f})}return document.createElement("div")}function g(a,b,c){var f=document.createElement("input");f.type="checkbox";f.checked="1"==b;mxEvent.addListener(f,"change",function(){d(a,f.checked?"1":"0",c)});return f}function t(b,c,t,w,l){var m=t.dispName,u=t.type,v=document.createElement("tr");v.className="gePropRow"+ -(l?"Dark":"")+(w?"Alt":"")+" gePropNonHeaderRow";v.setAttribute("data-pName",b);v.setAttribute("data-pValue",c);w=!1;null!=t.index&&(v.setAttribute("data-index",t.index),m=(null!=m?m:"")+"["+t.index+"]",w=!0);var p=document.createElement("td");p.className="gePropRowCell";p.innerHTML=mxUtils.htmlEntities(mxResources.get(m,null,m));w&&(p.style.textAlign="right");v.appendChild(p);p=document.createElement("td");p.className="gePropRowCell";if("color"==u)p.appendChild(h(b,c,t));else if("bool"==u||"boolean"== -u)p.appendChild(g(b,c,t));else if("enum"==u){var x=t.enumList;for(l=0;l<x.length;l++)if(m=x[l],m.val==c){p.innerHTML=mxUtils.htmlEntities(mxResources.get(m.dispName,null,m.dispName));break}mxEvent.addListener(p,"click",mxUtils.bind(q,function(){var h=document.createElement("select");f(p,h);for(var k=0;k<x.length;k++){var e=x[k],g=document.createElement("option");g.value=mxUtils.htmlEntities(e.val);g.innerHTML=mxUtils.htmlEntities(mxResources.get(e.dispName,null,e.dispName));h.appendChild(g)}h.value= -c;a.appendChild(h);mxEvent.addListener(h,"change",function(){var a=mxUtils.htmlEntities(h.value);d(b,a,t)});h.focus();mxEvent.addListener(h,"blur",function(){a.removeChild(h)})}))}else"dynamicArr"==u?p.appendChild(k(b,c,t.subType,t.subDefVal,t.countProperty,v,l)):"staticArr"==u?p.appendChild(e(b,c,t.subType,t.subDefVal,t.size,v,l)):(p.innerHTML=c,mxEvent.addListener(p,"click",mxUtils.bind(q,function(){function h(){var a=k.value;null!=t.min&&a<t.min?a=t.min:null!=t.max&&a>t.max&&(a=t.max);a=mxUtils.htmlEntities(("int"== -u?parseInt(a):a)+"");d(b,a,t)}var k=document.createElement("input");f(p,k,!0);k.value=c;k.className="gePropEditor";if("int"==u||"float"==u)k.type="number",k.step="int"==u?"1":"any",null!=t.min&&(k.min=parseFloat(t.min)),null!=t.max&&(k.max=parseFloat(t.max));a.appendChild(k);mxEvent.addListener(k,"change",h);mxEvent.addListener(k,"keypress",function(a){13==a.keyCode&&h()});k.focus();mxEvent.addListener(k,"blur",function(){a.removeChild(k)})})));t.isDeletable&&(l=mxUtils.button("-",mxUtils.bind(q, -function(a){d(b,"",t,t.index);mxEvent.consume(a)})),l.style.height="16px",l.style.width="25px",l.style["float"]="right",l.className="geColorBtn",p.appendChild(l));v.appendChild(p);return v}var q=this,w=this.editorUi.editor.graph,m=[];a.style.position="relative";a.style.padding="0";var u=document.createElement("table");u.style.whiteSpace="nowrap";u.style.width="100%";var l=document.createElement("tr");l.className="gePropHeader";var v=document.createElement("th");v.className="gePropHeaderCell";var p= -document.createElement("img");p.src=Sidebar.prototype.expandedImage;v.appendChild(p);mxUtils.write(v,mxResources.get("property",null,"Property"));l.style.cursor="pointer";var x=function(){var b=u.querySelectorAll(".gePropNonHeaderRow"),c;if(q.editorUi.propertiesCollapsed){p.src=Sidebar.prototype.collapsedImage;c="none";for(var d=a.childNodes.length-1;0<=d;d--)try{var f=a.childNodes[d],h=f.nodeName.toUpperCase();"INPUT"!=h&&"SELECT"!=h||a.removeChild(f)}catch(ea){}}else p.src=Sidebar.prototype.expandedImage, -c="";for(d=0;d<b.length;d++)b[d].style.display=c};mxEvent.addListener(l,"click",function(){q.editorUi.propertiesCollapsed=!q.editorUi.propertiesCollapsed;x()});l.appendChild(v);v=document.createElement("th");v.className="gePropHeaderCell";v.innerHTML=mxResources.get("value",null,"Value");l.appendChild(v);u.appendChild(l);var n=!1,A=!1,y;for(y in b){var l=b[y],C=null!=c.style[y]?mxUtils.htmlEntities(c.style[y]+""):l.defVal;if("separator"==l.type)A=!A;else{if("staticArr"==l.type)l.size=parseInt(c.style[l.sizeProperty]|| -b[l.sizeProperty].defVal)||0;else if(null!=l.dependentProps){for(var U=l.dependentProps,R=[],O=[],v=0;v<U.length;v++){var V=c.style[U[v]];O.push(b[U[v]].subDefVal);R.push(null!=V?V.split(","):[])}l.dependentPropsDefVal=O;l.dependentPropsVals=R}u.appendChild(t(y,C,l,n,A));n=!n}}for(v=0;v<m.length;v++)for(l=m[v],b=l.parentRow,c=0;c<l.values.length;c++)y=t(l.name,l.values[c],{type:l.type,parentRow:l.parentRow,isDeletable:l.isDeletable,index:c,defVal:l.defVal,countProperty:l.countProperty,size:l.size}, -0==c%2,l.flipBkg),b.parentNode.insertBefore(y,b.nextSibling),b=y;a.appendChild(u);x();return a};StyleFormatPanel.prototype.addStyles=function(a){function b(a){function b(a){var b=mxUtils.button("",function(b){d.getModel().beginUpdate();try{var c=d.getSelectionCells();for(b=0;b<c.length;b++){for(var f=d.getModel().getStyle(c[b]),k=0;k<h.length;k++)f=mxUtils.removeStylename(f,h[k]);var e=d.getModel().isVertex(c[b])?d.defaultVertexStyle:d.defaultEdgeStyle;null!=a?(f=mxUtils.setStyle(f,mxConstants.STYLE_FILLCOLOR, -a.fill||mxUtils.getValue(e,mxConstants.STYLE_FILLCOLOR,null)),f=mxUtils.setStyle(f,mxConstants.STYLE_STROKECOLOR,a.stroke||mxUtils.getValue(e,mxConstants.STYLE_STROKECOLOR,null)),f=mxUtils.setStyle(f,mxConstants.STYLE_GRADIENTCOLOR,a.gradient||mxUtils.getValue(e,mxConstants.STYLE_GRADIENTCOLOR,null)),d.getModel().isVertex(c[b])&&(f=mxUtils.setStyle(f,mxConstants.STYLE_FONTCOLOR,a.font||mxUtils.getValue(e,mxConstants.STYLE_FONTCOLOR,null)))):(f=mxUtils.setStyle(f,mxConstants.STYLE_FILLCOLOR,mxUtils.getValue(e, -mxConstants.STYLE_FILLCOLOR,"#ffffff")),f=mxUtils.setStyle(f,mxConstants.STYLE_STROKECOLOR,mxUtils.getValue(e,mxConstants.STYLE_STROKECOLOR,"#000000")),f=mxUtils.setStyle(f,mxConstants.STYLE_GRADIENTCOLOR,mxUtils.getValue(e,mxConstants.STYLE_GRADIENTCOLOR,null)),d.getModel().isVertex(c[b])&&(f=mxUtils.setStyle(f,mxConstants.STYLE_FONTCOLOR,mxUtils.getValue(e,mxConstants.STYLE_FONTCOLOR,null))));d.getModel().setStyle(c[b],f)}}finally{d.getModel().endUpdate()}});b.className="geStyleButton";b.style.width= -"36px";b.style.height="30px";b.style.margin="0px 6px 6px 0px";if(null!=a)null!=a.gradient?mxClient.IS_IE&&(mxClient.IS_QUIRKS||10>document.documentMode)?b.style.filter="progid:DXImageTransform.Microsoft.Gradient(StartColorStr='"+a.fill+"', EndColorStr='"+a.gradient+"', GradientType=0)":b.style.backgroundImage="linear-gradient("+a.fill+" 0px,"+a.gradient+" 100%)":a.fill==mxConstants.NONE?b.style.background="url('"+Dialog.prototype.noColorImage+"')":b.style.backgroundColor=a.fill||mxUtils.getValue(d.defaultVertexStyle, -mxConstants.STYLE_FILLCOLOR,"#ffffff"),b.style.border="1px solid "+(a.stroke||mxUtils.getValue(d.defaultVertexStyle,mxConstants.STYLE_STROKECOLOR,"#000000"));else{var c=mxUtils.getValue(d.defaultVertexStyle,mxConstants.STYLE_FILLCOLOR,"#ffffff"),k=mxUtils.getValue(d.defaultVertexStyle,mxConstants.STYLE_STROKECOLOR,"#000000");b.style.backgroundColor=c;b.style.border="1px solid "+k}f.appendChild(b)}f.innerHTML="";for(var c=0;c<a.length;c++)0<c&&0==mxUtils.mod(c,4)&&mxUtils.br(f),b(a[c])}function c(a){mxEvent.addListener(a, -"mouseenter",function(){a.style.opacity="1"});mxEvent.addListener(a,"mouseleave",function(){a.style.opacity="0.5"})}var d=this.editorUi.editor.graph,f=document.createElement("div");f.style.whiteSpace="nowrap";f.style.paddingLeft="24px";f.style.paddingRight="20px";a.style.paddingLeft="16px";a.style.paddingBottom="6px";a.style.position="relative";a.appendChild(f);var h="plain-gray plain-blue plain-green plain-turquoise plain-orange plain-yellow plain-red plain-pink plain-purple gray blue green turquoise orange yellow red pink purple".split(" "); -null==this.editorUi.currentScheme&&(this.editorUi.currentScheme=0);var k=document.createElement("div");k.style.cssText="position:absolute;left:10px;top:8px;bottom:8px;width:20px;margin:4px;opacity:0.5;background-repeat:no-repeat;background-position:center center;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAQBAMAAADQT4M0AAAAIVBMVEUAAAB2dnZ4eHh3d3d1dXVxcXF2dnZ2dnZ2dnZxcXF2dnYmb3w1AAAACnRSTlMAfCTkhhvb7cQSPH2JPgAAADRJREFUCNdjwACMAmBKaiGYs2oJmLPKAZ3DabU8AMRTXpUKopislqFyVzCAuUZgikkBZjoAcMYLnp53P/UAAAAASUVORK5CYII=);"; -mxEvent.addListener(k,"click",mxUtils.bind(this,function(){this.editorUi.currentScheme=mxUtils.mod(this.editorUi.currentScheme-1,this.defaultColorSchemes.length);b(this.defaultColorSchemes[this.editorUi.currentScheme])}));var e=document.createElement("div");e.style.cssText="position:absolute;left:202px;top:8px;bottom:8px;width:20px;margin:4px;opacity:0.5;background-repeat:no-repeat;background-position:center center;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAQBAMAAADQT4M0AAAAIVBMVEUAAAB2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnYBuwCcAAAACnRSTlMAfCTkhhvb7cQSPH2JPgAAADZJREFUCNdjQAOMAmBKaiGY8loF5rKswsZlrVo8AUiFrTICcbIWK8A5DF1gDoMymMPApIAwHwCS0Qx/U7qCBQAAAABJRU5ErkJggg==);"; -1<this.defaultColorSchemes.length&&(a.appendChild(k),a.appendChild(e));mxEvent.addListener(e,"click",mxUtils.bind(this,function(){this.editorUi.currentScheme=mxUtils.mod(this.editorUi.currentScheme+1,this.defaultColorSchemes.length);b(this.defaultColorSchemes[this.editorUi.currentScheme])}));c(k);c(e);b(this.defaultColorSchemes[this.editorUi.currentScheme]);return a};StyleFormatPanel.prototype.addEditOps=function(a){var b=this.format.getSelectionState(),c=null;1==this.editorUi.editor.graph.getSelectionCount()&& +b.style.marginBottom="2px";b.style.width="100px";a.appendChild(b);mxUtils.br(a);return n.apply(this,arguments)};EditorUi.prototype.propertiesCollapsed=!0;StyleFormatPanel.prototype.addProperties=function(a,b,c){function d(a,b,c,d){u.getModel().beginUpdate();try{var f=[],h=[];if(null!=c.index){for(var e=[],n=c.parentRow.nextSibling;n&&n.getAttribute("data-pName")==a;)e.push(n.getAttribute("data-pValue")),n=n.nextSibling;c.index<e.length?null!=d?e.splice(d,1):e[c.index]=b:e.push(b);null!=c.size&&e.length> +c.size&&(e=e.slice(0,c.size));b=e.join(",");null!=c.countProperty&&(u.setCellStyles(c.countProperty,e.length,u.getSelectionCells()),f.push(c.countProperty),h.push(e.length))}u.setCellStyles(a,b,u.getSelectionCells());f.push(a);h.push(b);if(null!=c.dependentProps)for(a=0;a<c.dependentProps.length;a++){var g=c.dependentPropsDefVal[a],t=c.dependentPropsVals[a];if(t.length>b)t=t.slice(0,b);else for(var w=t.length;w<b;w++)t.push(g);t=t.join(",");u.setCellStyles(c.dependentProps[a],t,u.getSelectionCells()); +f.push(c.dependentProps[a]);h.push(t)}p.editorUi.fireEvent(new mxEventObject("styleChanged","keys",f,"values",h,"cells",u.getSelectionCells()))}finally{u.getModel().endUpdate()}}function f(b,c,d){var f=mxUtils.getOffset(a,!0),h=mxUtils.getOffset(b,!0);c.style.position="absolute";c.style.left=h.x-f.x+"px";c.style.top=h.y-f.y+"px";c.style.width=b.offsetWidth+"px";c.style.height=b.offsetHeight-(d?4:0)+"px";c.style.zIndex=5}function h(a,b,c){var f=document.createElement("div");f.style.width="32px";f.style.height= +"4px";f.style.margin="2px";f.style.border="1px solid black";f.style.background=b&&"none"!=b?b:"url('"+Dialog.prototype.noColorImage+"')";btn=mxUtils.button("",mxUtils.bind(p,function(h){this.editorUi.pickColor(b,function(b){f.style.background="none"==b?"url('"+Dialog.prototype.noColorImage+"')":b;d(a,b,c)});mxEvent.consume(h)}));btn.style.height="12px";btn.style.width="40px";btn.className="geColorBtn";btn.appendChild(f);return btn}function e(a,b,c,f,h,e,n){null!=b&&(b=b.split(","),w.push({name:a, +values:b,type:c,defVal:f,countProperty:h,parentRow:e,isDeletable:!0,flipBkg:n}));btn=mxUtils.button("+",mxUtils.bind(p,function(b){for(var g=e,p=0;null!=g.nextSibling;)if(g.nextSibling.getAttribute("data-pName")==a)g=g.nextSibling,p++;else break;var u={type:c,parentRow:e,index:p,isDeletable:!0,defVal:f,countProperty:h},p=t(a,"",u,0==p%2,n);d(a,f,u);g.parentNode.insertBefore(p,g.nextSibling);mxEvent.consume(b)}));btn.style.height="16px";btn.style.width="25px";btn.className="geColorBtn";return btn} +function n(a,b,c,d,f,h,e){if(0<f){var n=Array(f);b=null!=b?b.split(","):[];for(var g=0;g<f;g++)n[g]=null!=b[g]?b[g]:null!=d?d:"";w.push({name:a,values:n,type:c,defVal:d,parentRow:h,flipBkg:e,size:f})}return document.createElement("div")}function g(a,b,c){var f=document.createElement("input");f.type="checkbox";f.checked="1"==b;mxEvent.addListener(f,"change",function(){d(a,f.checked?"1":"0",c)});return f}function t(b,c,t,u,w){var k=t.dispName,l=t.type,q=document.createElement("tr");q.className="gePropRow"+ +(w?"Dark":"")+(u?"Alt":"")+" gePropNonHeaderRow";q.setAttribute("data-pName",b);q.setAttribute("data-pValue",c);u=!1;null!=t.index&&(q.setAttribute("data-index",t.index),k=(null!=k?k:"")+"["+t.index+"]",u=!0);var v=document.createElement("td");v.className="gePropRowCell";v.innerHTML=mxUtils.htmlEntities(mxResources.get(k,null,k));u&&(v.style.textAlign="right");q.appendChild(v);v=document.createElement("td");v.className="gePropRowCell";if("color"==l)v.appendChild(h(b,c,t));else if("bool"==l||"boolean"== +l)v.appendChild(g(b,c,t));else if("enum"==l){var m=t.enumList;for(w=0;w<m.length;w++)if(k=m[w],k.val==c){v.innerHTML=mxUtils.htmlEntities(mxResources.get(k.dispName,null,k.dispName));break}mxEvent.addListener(v,"click",mxUtils.bind(p,function(){var h=document.createElement("select");f(v,h);for(var e=0;e<m.length;e++){var n=m[e],g=document.createElement("option");g.value=mxUtils.htmlEntities(n.val);g.innerHTML=mxUtils.htmlEntities(mxResources.get(n.dispName,null,n.dispName));h.appendChild(g)}h.value= +c;a.appendChild(h);mxEvent.addListener(h,"change",function(){var a=mxUtils.htmlEntities(h.value);d(b,a,t)});h.focus();mxEvent.addListener(h,"blur",function(){a.removeChild(h)})}))}else"dynamicArr"==l?v.appendChild(e(b,c,t.subType,t.subDefVal,t.countProperty,q,w)):"staticArr"==l?v.appendChild(n(b,c,t.subType,t.subDefVal,t.size,q,w)):(v.innerHTML=c,mxEvent.addListener(v,"click",mxUtils.bind(p,function(){function h(){var a=e.value,a=0==a.length&&"string"!=l?0:a;t.allowAuto&&("auto"==a.trim().toLowerCase()? +(a="auto",l="string"):(a=parseFloat(a),a=isNaN(a)?0:a));null!=t.min&&a<t.min?a=t.min:null!=t.max&&a>t.max&&(a=t.max);a=mxUtils.htmlEntities(("int"==l?parseInt(a):a)+"");d(b,a,t)}var e=document.createElement("input");f(v,e,!0);e.value=c;e.className="gePropEditor";"int"!=l&&"float"!=l||t.allowAuto||(e.type="number",e.step="int"==l?"1":"any",null!=t.min&&(e.min=parseFloat(t.min)),null!=t.max&&(e.max=parseFloat(t.max)));a.appendChild(e);mxEvent.addListener(e,"change",h);mxEvent.addListener(e,"keypress", +function(a){13==a.keyCode&&h()});e.focus();mxEvent.addListener(e,"blur",function(){a.removeChild(e)})})));t.isDeletable&&(w=mxUtils.button("-",mxUtils.bind(p,function(a){d(b,"",t,t.index);mxEvent.consume(a)})),w.style.height="16px",w.style.width="25px",w.style["float"]="right",w.className="geColorBtn",v.appendChild(w));q.appendChild(v);return q}var p=this,u=this.editorUi.editor.graph,w=[];a.style.position="relative";a.style.padding="0";var k=document.createElement("table");k.style.whiteSpace="nowrap"; +k.style.width="100%";var l=document.createElement("tr");l.className="gePropHeader";var q=document.createElement("th");q.className="gePropHeaderCell";var v=document.createElement("img");v.src=Sidebar.prototype.expandedImage;q.appendChild(v);mxUtils.write(q,mxResources.get("property",null,"Property"));l.style.cursor="pointer";var m=function(){var b=k.querySelectorAll(".gePropNonHeaderRow"),c;if(p.editorUi.propertiesCollapsed){v.src=Sidebar.prototype.collapsedImage;c="none";for(var d=a.childNodes.length- +1;0<=d;d--)try{var f=a.childNodes[d],h=f.nodeName.toUpperCase();"INPUT"!=h&&"SELECT"!=h||a.removeChild(f)}catch(ea){}}else v.src=Sidebar.prototype.expandedImage,c="";for(d=0;d<b.length;d++)b[d].style.display=c};mxEvent.addListener(l,"click",function(){p.editorUi.propertiesCollapsed=!p.editorUi.propertiesCollapsed;m()});l.appendChild(q);q=document.createElement("th");q.className="gePropHeaderCell";q.innerHTML=mxResources.get("value",null,"Value");l.appendChild(q);k.appendChild(l);var x=!1,B=!1,y;for(y in b){var l= +b[y],C=null!=c.style[y]?mxUtils.htmlEntities(c.style[y]+""):l.defVal;if("separator"==l.type)B=!B;else{if("staticArr"==l.type)l.size=parseInt(c.style[l.sizeProperty]||b[l.sizeProperty].defVal)||0;else if(null!=l.dependentProps){for(var U=l.dependentProps,R=[],O=[],q=0;q<U.length;q++){var V=c.style[U[q]];O.push(b[U[q]].subDefVal);R.push(null!=V?V.split(","):[])}l.dependentPropsDefVal=O;l.dependentPropsVals=R}k.appendChild(t(y,C,l,x,B));x=!x}}for(q=0;q<w.length;q++)for(l=w[q],b=l.parentRow,c=0;c<l.values.length;c++)y= +t(l.name,l.values[c],{type:l.type,parentRow:l.parentRow,isDeletable:l.isDeletable,index:c,defVal:l.defVal,countProperty:l.countProperty,size:l.size},0==c%2,l.flipBkg),b.parentNode.insertBefore(y,b.nextSibling),b=y;a.appendChild(k);m();return a};StyleFormatPanel.prototype.addStyles=function(a){function b(a){function b(a){var b=mxUtils.button("",function(b){d.getModel().beginUpdate();try{var c=d.getSelectionCells();for(b=0;b<c.length;b++){for(var f=d.getModel().getStyle(c[b]),e=0;e<h.length;e++)f=mxUtils.removeStylename(f, +h[e]);var n=d.getModel().isVertex(c[b])?d.defaultVertexStyle:d.defaultEdgeStyle;null!=a?(f=mxUtils.setStyle(f,mxConstants.STYLE_FILLCOLOR,a.fill||mxUtils.getValue(n,mxConstants.STYLE_FILLCOLOR,null)),f=mxUtils.setStyle(f,mxConstants.STYLE_STROKECOLOR,a.stroke||mxUtils.getValue(n,mxConstants.STYLE_STROKECOLOR,null)),f=mxUtils.setStyle(f,mxConstants.STYLE_GRADIENTCOLOR,a.gradient||mxUtils.getValue(n,mxConstants.STYLE_GRADIENTCOLOR,null)),d.getModel().isVertex(c[b])&&(f=mxUtils.setStyle(f,mxConstants.STYLE_FONTCOLOR, +a.font||mxUtils.getValue(n,mxConstants.STYLE_FONTCOLOR,null)))):(f=mxUtils.setStyle(f,mxConstants.STYLE_FILLCOLOR,mxUtils.getValue(n,mxConstants.STYLE_FILLCOLOR,"#ffffff")),f=mxUtils.setStyle(f,mxConstants.STYLE_STROKECOLOR,mxUtils.getValue(n,mxConstants.STYLE_STROKECOLOR,"#000000")),f=mxUtils.setStyle(f,mxConstants.STYLE_GRADIENTCOLOR,mxUtils.getValue(n,mxConstants.STYLE_GRADIENTCOLOR,null)),d.getModel().isVertex(c[b])&&(f=mxUtils.setStyle(f,mxConstants.STYLE_FONTCOLOR,mxUtils.getValue(n,mxConstants.STYLE_FONTCOLOR, +null))));d.getModel().setStyle(c[b],f)}}finally{d.getModel().endUpdate()}});b.className="geStyleButton";b.style.width="36px";b.style.height="30px";b.style.margin="0px 6px 6px 0px";if(null!=a)null!=a.gradient?mxClient.IS_IE&&(mxClient.IS_QUIRKS||10>document.documentMode)?b.style.filter="progid:DXImageTransform.Microsoft.Gradient(StartColorStr='"+a.fill+"', EndColorStr='"+a.gradient+"', GradientType=0)":b.style.backgroundImage="linear-gradient("+a.fill+" 0px,"+a.gradient+" 100%)":a.fill==mxConstants.NONE? +b.style.background="url('"+Dialog.prototype.noColorImage+"')":b.style.backgroundColor=a.fill||mxUtils.getValue(d.defaultVertexStyle,mxConstants.STYLE_FILLCOLOR,"#ffffff"),b.style.border="1px solid "+(a.stroke||mxUtils.getValue(d.defaultVertexStyle,mxConstants.STYLE_STROKECOLOR,"#000000"));else{var c=mxUtils.getValue(d.defaultVertexStyle,mxConstants.STYLE_FILLCOLOR,"#ffffff"),e=mxUtils.getValue(d.defaultVertexStyle,mxConstants.STYLE_STROKECOLOR,"#000000");b.style.backgroundColor=c;b.style.border="1px solid "+ +e}f.appendChild(b)}f.innerHTML="";for(var c=0;c<a.length;c++)0<c&&0==mxUtils.mod(c,4)&&mxUtils.br(f),b(a[c])}function c(a){mxEvent.addListener(a,"mouseenter",function(){a.style.opacity="1"});mxEvent.addListener(a,"mouseleave",function(){a.style.opacity="0.5"})}var d=this.editorUi.editor.graph,f=document.createElement("div");f.style.whiteSpace="nowrap";f.style.paddingLeft="24px";f.style.paddingRight="20px";a.style.paddingLeft="16px";a.style.paddingBottom="6px";a.style.position="relative";a.appendChild(f); +var h="plain-gray plain-blue plain-green plain-turquoise plain-orange plain-yellow plain-red plain-pink plain-purple gray blue green turquoise orange yellow red pink purple".split(" ");null==this.editorUi.currentScheme&&(this.editorUi.currentScheme=0);var e=document.createElement("div");e.style.cssText="position:absolute;left:10px;top:8px;bottom:8px;width:20px;margin:4px;opacity:0.5;background-repeat:no-repeat;background-position:center center;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAQBAMAAADQT4M0AAAAIVBMVEUAAAB2dnZ4eHh3d3d1dXVxcXF2dnZ2dnZ2dnZxcXF2dnYmb3w1AAAACnRSTlMAfCTkhhvb7cQSPH2JPgAAADRJREFUCNdjwACMAmBKaiGYs2oJmLPKAZ3DabU8AMRTXpUKopislqFyVzCAuUZgikkBZjoAcMYLnp53P/UAAAAASUVORK5CYII=);"; +mxEvent.addListener(e,"click",mxUtils.bind(this,function(){this.editorUi.currentScheme=mxUtils.mod(this.editorUi.currentScheme-1,this.defaultColorSchemes.length);b(this.defaultColorSchemes[this.editorUi.currentScheme])}));var n=document.createElement("div");n.style.cssText="position:absolute;left:202px;top:8px;bottom:8px;width:20px;margin:4px;opacity:0.5;background-repeat:no-repeat;background-position:center center;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAQBAMAAADQT4M0AAAAIVBMVEUAAAB2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnYBuwCcAAAACnRSTlMAfCTkhhvb7cQSPH2JPgAAADZJREFUCNdjQAOMAmBKaiGY8loF5rKswsZlrVo8AUiFrTICcbIWK8A5DF1gDoMymMPApIAwHwCS0Qx/U7qCBQAAAABJRU5ErkJggg==);"; +1<this.defaultColorSchemes.length&&(a.appendChild(e),a.appendChild(n));mxEvent.addListener(n,"click",mxUtils.bind(this,function(){this.editorUi.currentScheme=mxUtils.mod(this.editorUi.currentScheme+1,this.defaultColorSchemes.length);b(this.defaultColorSchemes[this.editorUi.currentScheme])}));c(e);c(n);b(this.defaultColorSchemes[this.editorUi.currentScheme]);return a};StyleFormatPanel.prototype.addEditOps=function(a){var b=this.format.getSelectionState(),c=null;1==this.editorUi.editor.graph.getSelectionCount()&& (c=mxUtils.button(mxResources.get("editStyle"),mxUtils.bind(this,function(a){this.editorUi.actions.get("editStyle").funct()})),c.setAttribute("title",mxResources.get("editStyle")+" ("+this.editorUi.actions.get("editStyle").shortcut+")"),c.style.width="202px",c.style.marginBottom="2px",a.appendChild(c));var d=this.editorUi.editor.graph,f=d.view.getState(d.getSelectionCell());1==d.getSelectionCount()&&null!=f&&null!=f.shape&&null!=f.shape.stencil?(b=mxUtils.button(mxResources.get("editShape"),mxUtils.bind(this, function(a){this.editorUi.actions.get("editShape").funct()})),b.setAttribute("title",mxResources.get("editShape")),b.style.marginBottom="2px",null==c?b.style.width="202px":(c.style.width="100px",b.style.width="100px",b.style.marginLeft="2px"),a.appendChild(b)):b.image&&(b=mxUtils.button(mxResources.get("editImage"),mxUtils.bind(this,function(a){this.editorUi.actions.get("image").funct()})),b.setAttribute("title",mxResources.get("editImage")),b.style.marginBottom="2px",null==c?b.style.width="202px": (c.style.width="100px",b.style.width="100px",b.style.marginLeft="2px"),a.appendChild(b));return a}}Graph.prototype.defaultThemeName="default-style2";Graph.prototype.lastPasteXml=null;Graph.prototype.pasteCounter=0;Graph.prototype.defaultScrollbars="0"!=urlParams.sb;Graph.prototype.defaultPageVisible="0"!=urlParams.pv;Graph.prototype.shadowId="dropShadow";Graph.prototype.svgShadowColor="#3D4574";Graph.prototype.svgShadowOpacity="0.4";Graph.prototype.svgShadowBlur="1.7";Graph.prototype.svgShadowSize= -"3";Graph.prototype.edgeMode="move"!=urlParams.edge;var q=Graph.prototype.init;Graph.prototype.init=function(){function a(a){b=a;if(mxClient.IS_QUIRKS||7==document.documentMode||8==document.documentMode)b=mxUtils.clone(a)}q.apply(this,arguments);var b=null;mxEvent.addListener(this.container,"mouseenter",a);mxEvent.addListener(this.container,"mousemove",a);mxEvent.addListener(this.container,"mouseleave",function(a){b=null});this.isMouseInsertPoint=function(){return null!=b};var c=this.getInsertPoint; +"3";Graph.prototype.edgeMode="move"!=urlParams.edge;var u=Graph.prototype.init;Graph.prototype.init=function(){function a(a){b=a;if(mxClient.IS_QUIRKS||7==document.documentMode||8==document.documentMode)b=mxUtils.clone(a)}u.apply(this,arguments);var b=null;mxEvent.addListener(this.container,"mouseenter",a);mxEvent.addListener(this.container,"mousemove",a);mxEvent.addListener(this.container,"mouseleave",function(a){b=null});this.isMouseInsertPoint=function(){return null!=b};var c=this.getInsertPoint; this.getInsertPoint=function(){return null!=b?this.getPointForEvent(b):c.apply(this,arguments)};var d=this.layoutManager.getLayout;this.layoutManager.getLayout=function(a){var b=this.graph.view.getState(a),b=null!=b?b.style:this.graph.getCellStyle(a);if("undefined"!=typeof mxRackContainer&&"rack"==b.childLayout){var c=new mxStackLayout(this.graph,!1);c.setChildGeometry=function(a,b){b.height=Math.max(b.height,20);if(1<b.height/20){var c=b.height%20;b.height+=10<c?20-c:-c}this.graph.getModel().setGeometry(a, -b)};c.fill=!0;c.unitSize=mxRackContainer.unitSize|20;c.marginLeft=b.marginLeft||0;c.marginRight=b.marginRight||0;c.marginTop=b.marginTop||0;c.marginBottom=b.marginBottom||0;c.resizeParent=!1;return c}return d.apply(this,arguments)}};var u=Graph.prototype.isCssTransformsSupported;Graph.prototype.isCssTransformsSupported=function(){return u.apply(this,arguments)&&!mxClient.IS_SF};var p=Graph.prototype.getGlobalVariable;Graph.prototype.getGlobalVariable=function(a){var b=p.apply(this,arguments);if(null== +b)};c.fill=!0;c.unitSize=mxRackContainer.unitSize|20;c.marginLeft=b.marginLeft||0;c.marginRight=b.marginRight||0;c.marginTop=b.marginTop||0;c.marginBottom=b.marginBottom||0;c.resizeParent=!1;return c}return d.apply(this,arguments)}};var p=Graph.prototype.isCssTransformsSupported;Graph.prototype.isCssTransformsSupported=function(){return p.apply(this,arguments)&&!mxClient.IS_SF};var q=Graph.prototype.getGlobalVariable;Graph.prototype.getGlobalVariable=function(a){var b=q.apply(this,arguments);if(null== b){if(null==this.globalUrlVars&&null!=urlParams.vars)try{this.globalUrlVars=JSON.parse(decodeURIComponent(urlParams.vars))}catch(C){null!=window.console&&console.log("Error in vars URL parameter: "+C)}null!=this.globalUrlVars&&(b=this.globalUrlVars[a])}return b};var v=mxGraphView.prototype.validateBackgroundPage;mxGraphView.prototype.validateBackgroundPage=function(){v.apply(this,arguments);if(mxClient.IS_GC&&null!=this.getDrawPane()){var a=this.getDrawPane().parentNode;!this.graph.mathEnabled||mxClient.NO_FO|| null!=this.webKitForceRepaintNode&&null!=this.webKitForceRepaintNode.parentNode||"svg"!=this.graph.container.firstChild.nodeName?null==this.webKitForceRepaintNode||this.graph.mathEnabled&&("svg"==this.graph.container.firstChild.nodeName||this.graph.container.firstChild==this.webKitForceRepaintNode)||(null!=this.webKitForceRepaintNode.parentNode&&this.webKitForceRepaintNode.parentNode.removeChild(this.webKitForceRepaintNode),this.webKitForceRepaintNode=null):(this.webKitForceRepaintNode=document.createElement("div"), this.webKitForceRepaintNode.style.cssText="position:absolute;",a.ownerSVGElement.parentNode.insertBefore(this.webKitForceRepaintNode,a.ownerSVGElement))}};var y=Graph.prototype.loadStylesheet;Graph.prototype.loadStylesheet=function(){y.apply(this,arguments);this.currentStyle="default-style2"};Graph.prototype.handleCustomLink=function(a){if("data:action/json,"==a.substring(0,17)&&(a=JSON.parse(a.substring(17)),null!=a.actions)){for(var b=0;b<a.actions.length;b++)if(null!=a.actions[b].open)if(this.isCustomLink(a.actions[b].open)){if(!this.customLinkClicked(a.actions[b].open))return}else this.openLink(a.actions[b].open); this.model.beginUpdate();try{for(b=0;b<a.actions.length;b++)this.handleLinkAction(a.actions[b])}finally{this.model.endUpdate()}}};Graph.prototype.handleLinkAction=function(a){var b=[];null!=a.select&&this.isEnabled()&&(b=this.getCellsForAction(a.select),this.setSelectionCells(b));null!=a.highlight&&(b=this.getCellsForAction(a.highlight),this.highlightCells(b,a.highlight.color,a.highlight.duration,a.highlight.opacity));null!=a.toggle&&this.toggleCells(this.getCellsForAction(a.toggle));null!=a.show&& this.setCellsVisible(this.getCellsForAction(a.show),!0);null!=a.hide&&this.setCellsVisible(this.getCellsForAction(a.hide),!1);null!=a.scroll&&(b=this.getCellsForAction(a.scroll));0<b.length&&this.scrollCellToVisible(b[0])};Graph.prototype.getCellsForAction=function(a){return this.getCellsById(a.cells).concat(this.getCellsForTags(a.tags))};Graph.prototype.getCellsById=function(a){var b=[];if(null!=a)for(var c=0;c<a.length;c++)if("*"==a[c])var d=this.getDefaultParent(),b=b.concat(this.model.filterDescendants(function(a){return a!= -d},d));else{var f=this.model.getCell(a[c]);null!=f&&b.push(f)}return b};Graph.prototype.getCellsForTags=function(a,b,c){var d=[];if(null!=a){b=null!=b?b:this.model.getDescendants(this.model.getRoot());c=null!=c?c:"tags";for(var f=0;f<b.length;f++)if(this.model.isVertex(b[f])||this.model.isEdge(b[f])){var h=null!=b[f].value&&"object"==typeof b[f].value?mxUtils.trim(b[f].value.getAttribute(c)||""):"",k=!0;if(0<h.length)for(var h=h.toLowerCase().split(" "),e=0;e<a.length&&k;e++)var g=mxUtils.trim(a[e]).toLowerCase(), -k=k&&(0==g.length||0<=mxUtils.indexOf(h,g));else k=0==a.length;k&&d.push(b[f])}}return d};Graph.prototype.toggleCells=function(a){this.model.beginUpdate();try{for(var b=0;b<a.length;b++)this.model.setVisible(a[b],!this.model.isVisible(a[b]))}finally{this.model.endUpdate()}};Graph.prototype.setCellsVisible=function(a,b){this.model.beginUpdate();try{for(var c=0;c<a.length;c++)this.model.setVisible(a[c],b)}finally{this.model.endUpdate()}};Graph.prototype.highlightCells=function(a,b,c,d){for(var f=0;f< +d},d));else{var f=this.model.getCell(a[c]);null!=f&&b.push(f)}return b};Graph.prototype.getCellsForTags=function(a,b,c){var d=[];if(null!=a){b=null!=b?b:this.model.getDescendants(this.model.getRoot());c=null!=c?c:"tags";for(var f=0;f<b.length;f++)if(this.model.isVertex(b[f])||this.model.isEdge(b[f])){var h=null!=b[f].value&&"object"==typeof b[f].value?mxUtils.trim(b[f].value.getAttribute(c)||""):"",e=!0;if(0<h.length)for(var h=h.toLowerCase().split(" "),n=0;n<a.length&&e;n++)var g=mxUtils.trim(a[n]).toLowerCase(), +e=e&&(0==g.length||0<=mxUtils.indexOf(h,g));else e=0==a.length;e&&d.push(b[f])}}return d};Graph.prototype.toggleCells=function(a){this.model.beginUpdate();try{for(var b=0;b<a.length;b++)this.model.setVisible(a[b],!this.model.isVisible(a[b]))}finally{this.model.endUpdate()}};Graph.prototype.setCellsVisible=function(a,b){this.model.beginUpdate();try{for(var c=0;c<a.length;c++)this.model.setVisible(a[c],b)}finally{this.model.endUpdate()}};Graph.prototype.highlightCells=function(a,b,c,d){for(var f=0;f< a.length;f++)this.highlightCell(a[f],b,c,d)};Graph.prototype.highlightCell=function(a,b,c,d){b=null!=b?b:mxConstants.DEFAULT_VALID_COLOR;c=null!=c?c:1E3;a=this.view.getState(a);if(null!=a){var f=Math.max(5,mxUtils.getValue(a.style,mxConstants.STYLE_STROKEWIDTH,1)+4),h=new mxCellHighlight(this,b,f,!1);null!=d&&(h.opacity=d);h.highlight(a);window.setTimeout(function(){null!=h.shape&&(mxUtils.setPrefixedStyle(h.shape.node.style,"transition","all 1200ms ease-in-out"),h.shape.node.style.opacity=0);window.setTimeout(function(){h.destroy()}, 1200)},c)}};Graph.prototype.addSvgShadow=function(a,b,c){c=null!=c?c:!1;var d=a.ownerDocument,f=null!=d.createElementNS?d.createElementNS(mxConstants.NS_SVG,"filter"):d.createElement("filter");f.setAttribute("id",this.shadowId);var h=null!=d.createElementNS?d.createElementNS(mxConstants.NS_SVG,"feGaussianBlur"):d.createElement("feGaussianBlur");h.setAttribute("in","SourceAlpha");h.setAttribute("stdDeviation",this.svgShadowBlur);h.setAttribute("result","blur");f.appendChild(h);h=null!=d.createElementNS? d.createElementNS(mxConstants.NS_SVG,"feOffset"):d.createElement("feOffset");h.setAttribute("in","blur");h.setAttribute("dx",this.svgShadowSize);h.setAttribute("dy",this.svgShadowSize);h.setAttribute("result","offsetBlur");f.appendChild(h);h=null!=d.createElementNS?d.createElementNS(mxConstants.NS_SVG,"feFlood"):d.createElement("feFlood");h.setAttribute("flood-color",this.svgShadowColor);h.setAttribute("flood-opacity",this.svgShadowOpacity);h.setAttribute("result","offsetColor");f.appendChild(h); @@ -7568,98 +7571,99 @@ mxStencilRegistry.libraries.mockup=[SHAPES_PATH+"/mockup/mxMockupButtons.js"];mx [SHAPES_PATH+"/mockup/mxMockupNavigation.js",STENCIL_PATH+"/mockup/misc.xml"];mxStencilRegistry.libraries["mockup/text"]=[SHAPES_PATH+"/mockup/mxMockupText.js"];mxStencilRegistry.libraries.floorplan=[SHAPES_PATH+"/mxFloorplan.js",STENCIL_PATH+"/floorplan.xml"];mxStencilRegistry.libraries.bootstrap=[SHAPES_PATH+"/mxBootstrap.js",STENCIL_PATH+"/bootstrap.xml"];mxStencilRegistry.libraries.gmdl=[SHAPES_PATH+"/mxGmdl.js",STENCIL_PATH+"/gmdl.xml"];mxStencilRegistry.libraries.gcp2=[SHAPES_PATH+"/mxGCP2.js", STENCIL_PATH+"/gcp2.xml"];mxStencilRegistry.libraries.cabinets=[SHAPES_PATH+"/mxCabinets.js",STENCIL_PATH+"/cabinets.xml"];mxStencilRegistry.libraries.archimate=[SHAPES_PATH+"/mxArchiMate.js"];mxStencilRegistry.libraries.archimate3=[SHAPES_PATH+"/mxArchiMate3.js"];mxStencilRegistry.libraries.sysml=[SHAPES_PATH+"/mxSysML.js"];mxStencilRegistry.libraries.eip=[SHAPES_PATH+"/mxEip.js",STENCIL_PATH+"/eip.xml"];mxStencilRegistry.libraries.networks=[SHAPES_PATH+"/mxNetworks.js",STENCIL_PATH+"/networks.xml"]; mxStencilRegistry.libraries.aws3d=[SHAPES_PATH+"/mxAWS3D.js",STENCIL_PATH+"/aws3d.xml"];mxStencilRegistry.libraries.veeam=[STENCIL_PATH+"/veeam/2d.xml",STENCIL_PATH+"/veeam/3d.xml",STENCIL_PATH+"/veeam/veeam.xml"];mxStencilRegistry.libraries.pid2inst=[SHAPES_PATH+"/pid2/mxPidInstruments.js"];mxStencilRegistry.libraries.pid2misc=[SHAPES_PATH+"/pid2/mxPidMisc.js",STENCIL_PATH+"/pid/misc.xml"];mxStencilRegistry.libraries.pid2valves=[SHAPES_PATH+"/pid2/mxPidValves.js"];mxStencilRegistry.libraries.pidFlowSensors= -[STENCIL_PATH+"/pid/flow_sensors.xml"];mxMarker.getPackageForType=function(a){var b=null;null!=a&&0<a.length&&("ER"==a.substring(0,2)?b="mxgraph.er":"sysML"==a.substring(0,5)&&(b="mxgraph.sysml"));return b};var A=mxMarker.createMarker;mxMarker.createMarker=function(a,b,c,d,f,h,k,e,g,t){if(null!=c&&null==mxMarker.markers[c]){var q=this.getPackageForType(c);null!=q&&mxStencilRegistry.getStencil(q)}return A.apply(this,arguments)};PrintDialog.prototype.create=function(a,b){function c(){u.value=Math.max(1, -Math.min(e,Math.max(parseInt(u.value),parseInt(m.value))));m.value=Math.max(1,Math.min(e,Math.min(parseInt(u.value),parseInt(m.value))))}function d(b){function c(b,c,f){var h=b.getGraphBounds(),k=0,e=0,g=da.get(),t=1/b.pageScale,q=n.checked;if(q)var t=parseInt(X.value),l=parseInt(W.value),t=Math.min(g.height*l/(h.height/b.view.scale),g.width*t/(h.width/b.view.scale));else t=parseInt(w.value)/(100*b.pageScale),isNaN(t)&&(d=1/b.pageScale,w.value="100 %");g=mxRectangle.fromRectangle(g);g.width=Math.ceil(g.width* -d);g.height=Math.ceil(g.height*d);t*=d;!q&&b.pageVisible?(h=b.getPageLayout(),k-=h.x*g.width,e-=h.y*g.height):q=!0;if(null==c){c=PrintDialog.createPrintPreview(b,t,g,0,k,e,q);c.pageSelector=!1;c.mathEnabled=!1;b=a.getCurrentFile();null!=b&&(c.title=b.getTitle());var m=c.writeHead;c.writeHead=function(b){m.apply(this,arguments);null!=a.editor.fontCss&&(b.writeln('<style type="text/css">'),b.writeln(a.editor.fontCss),b.writeln("</style>"))};if("undefined"!==typeof MathJax){var u=c.renderPage;c.renderPage= -function(a,b,c,d,f,h){var k=mxClient.NO_FO;mxClient.NO_FO=this.graph.mathEnabled&&!this.useForeignObjectForMath?!0:this.originalNoForeignObject;var e=u.apply(this,arguments);mxClient.NO_FO=k;this.graph.mathEnabled?this.mathEnabled=this.mathEnabled||!0:e.className="geDisableMathJax";return e}}c.open(null,null,f,!0)}else{g=b.background;if(null==g||""==g||g==mxConstants.NONE)g="#ffffff";c.backgroundColor=g;c.autoOrigin=q;c.appendGraph(b,t,k,e,f,!0)}return c}var d=parseInt(ba.value)/100;isNaN(d)&&(d= -1,ba.value="100 %");var d=.75*d,h=m.value,k=u.value,e=!q.checked,t=null;e&&(e=h==g&&k==g);if(!e&&null!=a.pages&&a.pages.length){var l=0,e=a.pages.length-1;q.checked||(l=parseInt(h)-1,e=parseInt(k)-1);for(var v=l;v<=e;v++){var p=a.pages[v],h=p==a.currentPage?f:null;if(null==h){var h=a.createTemporaryGraph(f.getStylesheet()),k=!0,l=!1,x=null,A=null;null==p.viewState&&null==p.mapping&&null==p.root&&a.updatePageRoot(p);null!=p.viewState?(k=p.viewState.pageVisible,l=p.viewState.mathEnabled,x=p.viewState.background, -A=p.viewState.backgroundImage):null!=p.mapping&&null!=p.mapping.diagramMap&&(l="0"!=p.mapping.diagramMap.get("mathEnabled"),x=p.mapping.diagramMap.get("background"),A=p.mapping.diagramMap.get("backgroundImage"),A=null!=A&&0<A.length?JSON.parse(A):null);h.background=x;h.backgroundImage=null!=A?new mxImage(A.src,A.width,A.height):null;h.pageVisible=k;h.mathEnabled=l;var y=h.getGlobalVariable;h.getGlobalVariable=function(a){return"page"==a?p.getName():"pagenumber"==a?v+1:y.apply(this,arguments)};document.body.appendChild(h.container); -a.updatePageRoot(p);h.model.setRoot(p.root)}t=c(h,t,v!=e);h!=f&&h.container.parentNode.removeChild(h.container)}}else t=c(f);t.mathEnabled&&(e=t.wnd.document,e.writeln('<script type="text/x-mathjax-config">'),e.writeln("MathJax.Hub.Config({"),e.writeln("showMathMenu: false,"),e.writeln('messageStyle: "none",'),e.writeln('jax: ["input/TeX", "input/MathML", "input/AsciiMath", "output/HTML-CSS"],'),e.writeln('extensions: ["tex2jax.js", "mml2jax.js", "asciimath2jax.js"],'),e.writeln('"HTML-CSS": {'), -e.writeln("imageFont: null"),e.writeln("},"),e.writeln("TeX: {"),e.writeln('extensions: ["AMSmath.js", "AMSsymbols.js", "noErrors.js", "noUndefined.js"]'),e.writeln("},"),e.writeln("tex2jax: {"),e.writeln('\tignoreClass: "geDisableMathJax"'),e.writeln("},"),e.writeln("asciimath2jax: {"),e.writeln('\tignoreClass: "geDisableMathJax"'),e.writeln("}"),e.writeln("});"),b&&(e.writeln("MathJax.Hub.Queue(function () {"),e.writeln("window.print();"),e.writeln("});")),e.writeln("\x3c/script>"),e.writeln('<script type="text/javascript" src="https://math.draw.io/current/MathJax.js">\x3c/script>')); -t.closeDocument();!t.mathEnabled&&b&&PrintDialog.printPreview(t)}var f=a.editor.graph,h=document.createElement("div"),k=document.createElement("h3");k.style.width="100%";k.style.textAlign="center";k.style.marginTop="0px";mxUtils.write(k,b||mxResources.get("print"));h.appendChild(k);var e=1,g=1,t=document.createElement("div");t.style.cssText="border-bottom:1px solid lightGray;padding-bottom:12px;margin-bottom:12px;";var q=document.createElement("input");q.style.cssText="margin-right:8px;margin-bottom:8px;"; -q.setAttribute("value","all");q.setAttribute("type","radio");q.setAttribute("name","pages-printdialog");t.appendChild(q);k=document.createElement("span");mxUtils.write(k,mxResources.get("printAllPages"));t.appendChild(k);mxUtils.br(t);var l=q.cloneNode(!0);q.setAttribute("checked","checked");l.setAttribute("value","range");t.appendChild(l);k=document.createElement("span");mxUtils.write(k,mxResources.get("pages")+":");t.appendChild(k);var m=document.createElement("input");m.style.cssText="margin:0 8px 0 8px;"; -m.setAttribute("value","1");m.setAttribute("type","number");m.setAttribute("min","1");m.style.width="50px";t.appendChild(m);k=document.createElement("span");mxUtils.write(k,mxResources.get("to"));t.appendChild(k);var u=m.cloneNode(!0);t.appendChild(u);mxEvent.addListener(m,"focus",function(){l.checked=!0});mxEvent.addListener(u,"focus",function(){l.checked=!0});mxEvent.addListener(m,"change",c);mxEvent.addListener(u,"change",c);if(null!=a.pages&&(e=a.pages.length,null!=a.currentPage))for(k=0;k<a.pages.length;k++)if(a.currentPage== -a.pages[k]){g=k+1;m.value=g;u.value=g;break}m.setAttribute("max",e);u.setAttribute("max",e);1<e&&h.appendChild(t);var v=document.createElement("div");v.style.marginBottom="10px";var p=document.createElement("input");p.style.marginRight="8px";p.setAttribute("value","adjust");p.setAttribute("type","radio");p.setAttribute("name","printZoom");v.appendChild(p);k=document.createElement("span");mxUtils.write(k,mxResources.get("adjustTo"));v.appendChild(k);var w=document.createElement("input");w.style.cssText= -"margin:0 8px 0 8px;";w.setAttribute("value","100 %");w.style.width="50px";v.appendChild(w);mxEvent.addListener(w,"focus",function(){p.checked=!0});h.appendChild(v);var t=t.cloneNode(!1),n=p.cloneNode(!0);n.setAttribute("value","fit");p.setAttribute("checked","checked");k=document.createElement("div");k.style.cssText="display:inline-block;height:100%;vertical-align:top;padding-top:2px;";k.appendChild(n);t.appendChild(k);v=document.createElement("table");v.style.display="inline-block";var x=document.createElement("tbody"), -A=document.createElement("tr"),y=A.cloneNode(!0),L=document.createElement("td"),U=L.cloneNode(!0),R=L.cloneNode(!0),O=L.cloneNode(!0),V=L.cloneNode(!0),J=L.cloneNode(!0);L.style.textAlign="right";O.style.textAlign="right";mxUtils.write(L,mxResources.get("fitTo"));var X=document.createElement("input");X.style.cssText="margin:0 8px 0 8px;";X.setAttribute("value","1");X.setAttribute("min","1");X.setAttribute("type","number");X.style.width="40px";U.appendChild(X);k=document.createElement("span");mxUtils.write(k, -mxResources.get("fitToSheetsAcross"));R.appendChild(k);mxUtils.write(O,mxResources.get("fitToBy"));var W=X.cloneNode(!0);V.appendChild(W);mxEvent.addListener(X,"focus",function(){n.checked=!0});mxEvent.addListener(W,"focus",function(){n.checked=!0});k=document.createElement("span");mxUtils.write(k,mxResources.get("fitToSheetsDown"));J.appendChild(k);A.appendChild(L);A.appendChild(U);A.appendChild(R);y.appendChild(O);y.appendChild(V);y.appendChild(J);x.appendChild(A);x.appendChild(y);v.appendChild(x); -t.appendChild(v);h.appendChild(t);t=document.createElement("div");k=document.createElement("div");k.style.fontWeight="bold";k.style.marginBottom="12px";mxUtils.write(k,mxResources.get("paperSize"));t.appendChild(k);k=document.createElement("div");k.style.marginBottom="12px";var da=PageSetupDialog.addPageFormatPanel(k,"printdialog",a.editor.graph.pageFormat||mxConstants.PAGE_FORMAT_A4_PORTRAIT);t.appendChild(k);k=document.createElement("span");mxUtils.write(k,mxResources.get("pageScale"));t.appendChild(k); -var ba=document.createElement("input");ba.style.cssText="margin:0 8px 0 8px;";ba.setAttribute("value","100 %");ba.style.width="60px";t.appendChild(ba);h.appendChild(t);k=document.createElement("div");k.style.cssText="text-align:right;margin:48px 0 0 0;";t=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});t.className="geBtn";a.editor.cancelFirst&&k.appendChild(t);a.isOffline()||(v=mxUtils.button(mxResources.get("help"),function(){f.openLink("https://desk.draw.io/support/solutions/articles/16000048947")}), -v.className="geBtn",k.appendChild(v));PrintDialog.previewEnabled&&(v=mxUtils.button(mxResources.get("preview"),function(){a.hideDialog();d(!1)}),v.className="geBtn",k.appendChild(v));v=mxUtils.button(mxResources.get(PrintDialog.previewEnabled?"print":"ok"),function(){a.hideDialog();d(!0)});v.className="geBtn gePrimaryBtn";k.appendChild(v);a.editor.cancelFirst||k.appendChild(t);h.appendChild(k);this.container=h};var t=ChangePageSetup.prototype.execute;ChangePageSetup.prototype.execute=function(){null== +[STENCIL_PATH+"/pid/flow_sensors.xml"];mxMarker.getPackageForType=function(a){var b=null;null!=a&&0<a.length&&("ER"==a.substring(0,2)?b="mxgraph.er":"sysML"==a.substring(0,5)&&(b="mxgraph.sysml"));return b};var B=mxMarker.createMarker;mxMarker.createMarker=function(a,b,c,d,f,h,e,n,g,t){if(null!=c&&null==mxMarker.markers[c]){var p=this.getPackageForType(c);null!=p&&mxStencilRegistry.getStencil(p)}return B.apply(this,arguments)};PrintDialog.prototype.create=function(a,b){function c(){l.value=Math.max(1, +Math.min(n,Math.max(parseInt(l.value),parseInt(k.value))));k.value=Math.max(1,Math.min(n,Math.min(parseInt(l.value),parseInt(k.value))))}function d(b){function c(b,c,f){var h=b.getGraphBounds(),e=0,n=0,g=da.get(),t=1/b.pageScale,p=w.checked;if(p)var t=parseInt(X.value),u=parseInt(W.value),t=Math.min(g.height*u/(h.height/b.view.scale),g.width*t/(h.width/b.view.scale));else t=parseInt(m.value)/(100*b.pageScale),isNaN(t)&&(d=1/b.pageScale,m.value="100 %");g=mxRectangle.fromRectangle(g);g.width=Math.ceil(g.width* +d);g.height=Math.ceil(g.height*d);t*=d;!p&&b.pageVisible?(h=b.getPageLayout(),e-=h.x*g.width,n-=h.y*g.height):p=!0;if(null==c){c=PrintDialog.createPrintPreview(b,t,g,0,e,n,p);c.pageSelector=!1;c.mathEnabled=!1;b=a.getCurrentFile();null!=b&&(c.title=b.getTitle());var k=c.writeHead;c.writeHead=function(b){k.apply(this,arguments);null!=a.editor.fontCss&&(b.writeln('<style type="text/css">'),b.writeln(a.editor.fontCss),b.writeln("</style>"))};if("undefined"!==typeof MathJax){var l=c.renderPage;c.renderPage= +function(a,b,c,d,f,h){var e=mxClient.NO_FO;mxClient.NO_FO=this.graph.mathEnabled&&!this.useForeignObjectForMath?!0:this.originalNoForeignObject;var n=l.apply(this,arguments);mxClient.NO_FO=e;this.graph.mathEnabled?this.mathEnabled=this.mathEnabled||!0:n.className="geDisableMathJax";return n}}c.open(null,null,f,!0)}else{g=b.background;if(null==g||""==g||g==mxConstants.NONE)g="#ffffff";c.backgroundColor=g;c.autoOrigin=p;c.appendGraph(b,t,e,n,f,!0)}return c}var d=parseInt(ba.value)/100;isNaN(d)&&(d= +1,ba.value="100 %");var d=.75*d,h=k.value,e=l.value,n=!p.checked,t=null;n&&(n=h==g&&e==g);if(!n&&null!=a.pages&&a.pages.length){var u=0,n=a.pages.length-1;p.checked||(u=parseInt(h)-1,n=parseInt(e)-1);for(var q=u;q<=n;q++){var v=a.pages[q],h=v==a.currentPage?f:null;if(null==h){var h=a.createTemporaryGraph(f.getStylesheet()),e=!0,u=!1,B=null,x=null;null==v.viewState&&null==v.mapping&&null==v.root&&a.updatePageRoot(v);null!=v.viewState?(e=v.viewState.pageVisible,u=v.viewState.mathEnabled,B=v.viewState.background, +x=v.viewState.backgroundImage):null!=v.mapping&&null!=v.mapping.diagramMap&&(u="0"!=v.mapping.diagramMap.get("mathEnabled"),B=v.mapping.diagramMap.get("background"),x=v.mapping.diagramMap.get("backgroundImage"),x=null!=x&&0<x.length?JSON.parse(x):null);h.background=B;h.backgroundImage=null!=x?new mxImage(x.src,x.width,x.height):null;h.pageVisible=e;h.mathEnabled=u;var y=h.getGlobalVariable;h.getGlobalVariable=function(a){return"page"==a?v.getName():"pagenumber"==a?q+1:y.apply(this,arguments)};document.body.appendChild(h.container); +a.updatePageRoot(v);h.model.setRoot(v.root)}t=c(h,t,q!=n);h!=f&&h.container.parentNode.removeChild(h.container)}}else t=c(f);t.mathEnabled&&(n=t.wnd.document,n.writeln('<script type="text/x-mathjax-config">'),n.writeln("MathJax.Hub.Config({"),n.writeln("showMathMenu: false,"),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('"HTML-CSS": {'), +n.writeln("imageFont: null"),n.writeln("},"),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('<script type="text/javascript" src="https://math.draw.io/current/MathJax.js">\x3c/script>')); +t.closeDocument();!t.mathEnabled&&b&&PrintDialog.printPreview(t)}var f=a.editor.graph,h=document.createElement("div"),e=document.createElement("h3");e.style.width="100%";e.style.textAlign="center";e.style.marginTop="0px";mxUtils.write(e,b||mxResources.get("print"));h.appendChild(e);var n=1,g=1,t=document.createElement("div");t.style.cssText="border-bottom:1px solid lightGray;padding-bottom:12px;margin-bottom:12px;";var p=document.createElement("input");p.style.cssText="margin-right:8px;margin-bottom:8px;"; +p.setAttribute("value","all");p.setAttribute("type","radio");p.setAttribute("name","pages-printdialog");t.appendChild(p);e=document.createElement("span");mxUtils.write(e,mxResources.get("printAllPages"));t.appendChild(e);mxUtils.br(t);var u=p.cloneNode(!0);p.setAttribute("checked","checked");u.setAttribute("value","range");t.appendChild(u);e=document.createElement("span");mxUtils.write(e,mxResources.get("pages")+":");t.appendChild(e);var k=document.createElement("input");k.style.cssText="margin:0 8px 0 8px;"; +k.setAttribute("value","1");k.setAttribute("type","number");k.setAttribute("min","1");k.style.width="50px";t.appendChild(k);e=document.createElement("span");mxUtils.write(e,mxResources.get("to"));t.appendChild(e);var l=k.cloneNode(!0);t.appendChild(l);mxEvent.addListener(k,"focus",function(){u.checked=!0});mxEvent.addListener(l,"focus",function(){u.checked=!0});mxEvent.addListener(k,"change",c);mxEvent.addListener(l,"change",c);if(null!=a.pages&&(n=a.pages.length,null!=a.currentPage))for(e=0;e<a.pages.length;e++)if(a.currentPage== +a.pages[e]){g=e+1;k.value=g;l.value=g;break}k.setAttribute("max",n);l.setAttribute("max",n);1<n&&h.appendChild(t);var q=document.createElement("div");q.style.marginBottom="10px";var v=document.createElement("input");v.style.marginRight="8px";v.setAttribute("value","adjust");v.setAttribute("type","radio");v.setAttribute("name","printZoom");q.appendChild(v);e=document.createElement("span");mxUtils.write(e,mxResources.get("adjustTo"));q.appendChild(e);var m=document.createElement("input");m.style.cssText= +"margin:0 8px 0 8px;";m.setAttribute("value","100 %");m.style.width="50px";q.appendChild(m);mxEvent.addListener(m,"focus",function(){v.checked=!0});h.appendChild(q);var t=t.cloneNode(!1),w=v.cloneNode(!0);w.setAttribute("value","fit");v.setAttribute("checked","checked");e=document.createElement("div");e.style.cssText="display:inline-block;height:100%;vertical-align:top;padding-top:2px;";e.appendChild(w);t.appendChild(e);q=document.createElement("table");q.style.display="inline-block";var B=document.createElement("tbody"), +x=document.createElement("tr"),y=x.cloneNode(!0),L=document.createElement("td"),U=L.cloneNode(!0),R=L.cloneNode(!0),O=L.cloneNode(!0),V=L.cloneNode(!0),J=L.cloneNode(!0);L.style.textAlign="right";O.style.textAlign="right";mxUtils.write(L,mxResources.get("fitTo"));var X=document.createElement("input");X.style.cssText="margin:0 8px 0 8px;";X.setAttribute("value","1");X.setAttribute("min","1");X.setAttribute("type","number");X.style.width="40px";U.appendChild(X);e=document.createElement("span");mxUtils.write(e, +mxResources.get("fitToSheetsAcross"));R.appendChild(e);mxUtils.write(O,mxResources.get("fitToBy"));var W=X.cloneNode(!0);V.appendChild(W);mxEvent.addListener(X,"focus",function(){w.checked=!0});mxEvent.addListener(W,"focus",function(){w.checked=!0});e=document.createElement("span");mxUtils.write(e,mxResources.get("fitToSheetsDown"));J.appendChild(e);x.appendChild(L);x.appendChild(U);x.appendChild(R);y.appendChild(O);y.appendChild(V);y.appendChild(J);B.appendChild(x);B.appendChild(y);q.appendChild(B); +t.appendChild(q);h.appendChild(t);t=document.createElement("div");e=document.createElement("div");e.style.fontWeight="bold";e.style.marginBottom="12px";mxUtils.write(e,mxResources.get("paperSize"));t.appendChild(e);e=document.createElement("div");e.style.marginBottom="12px";var da=PageSetupDialog.addPageFormatPanel(e,"printdialog",a.editor.graph.pageFormat||mxConstants.PAGE_FORMAT_A4_PORTRAIT);t.appendChild(e);e=document.createElement("span");mxUtils.write(e,mxResources.get("pageScale"));t.appendChild(e); +var ba=document.createElement("input");ba.style.cssText="margin:0 8px 0 8px;";ba.setAttribute("value","100 %");ba.style.width="60px";t.appendChild(ba);h.appendChild(t);e=document.createElement("div");e.style.cssText="text-align:right;margin:48px 0 0 0;";t=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});t.className="geBtn";a.editor.cancelFirst&&e.appendChild(t);a.isOffline()||(q=mxUtils.button(mxResources.get("help"),function(){f.openLink("https://desk.draw.io/support/solutions/articles/16000048947")}), +q.className="geBtn",e.appendChild(q));PrintDialog.previewEnabled&&(q=mxUtils.button(mxResources.get("preview"),function(){a.hideDialog();d(!1)}),q.className="geBtn",e.appendChild(q));q=mxUtils.button(mxResources.get(PrintDialog.previewEnabled?"print":"ok"),function(){a.hideDialog();d(!0)});q.className="geBtn gePrimaryBtn";e.appendChild(q);a.editor.cancelFirst||e.appendChild(t);h.appendChild(e);this.container=h};var t=ChangePageSetup.prototype.execute;ChangePageSetup.prototype.execute=function(){null== this.page&&(this.page=this.ui.currentPage);this.page!=this.ui.currentPage?null!=this.page.viewState&&(this.ignoreColor||(this.page.viewState.background=this.color),this.ignoreImage||(this.page.viewState.backgroundImage=this.image),null!=this.format&&(this.page.viewState.pageFormat=this.format),null!=this.mathEnabled&&(this.page.viewState.mathEnabled=this.mathEnabled),null!=this.shadowVisible&&(this.page.viewState.shadowVisible=this.shadowVisible)):(t.apply(this,arguments),null!=this.mathEnabled&& this.mathEnabled!=this.ui.isMathEnabled()&&(this.ui.setMathEnabled(this.mathEnabled),this.mathEnabled=!this.mathEnabled),null!=this.shadowVisible&&this.shadowVisible!=this.ui.editor.graph.shadowVisible&&(this.ui.editor.graph.setShadowVisible(this.shadowVisible),this.shadowVisible=!this.shadowVisible))}})(); -var ErrorDialog=function(a,b,c,d,e,g,l,m,n,f,h){n=null!=n?n:!0;var k=document.createElement("div");k.style.textAlign="center";if(null!=b){var q=document.createElement("div");q.style.padding="0px";q.style.margin="0px";q.style.fontSize="18px";q.style.paddingBottom="16px";q.style.marginBottom="16px";q.style.borderBottom="1px solid #c0c0c0";q.style.color="gray";mxUtils.write(q,b);k.appendChild(q)}b=document.createElement("div");b.style.padding="6px";b.innerHTML=c;k.appendChild(b);c=document.createElement("div"); -c.style.marginTop="16px";c.style.textAlign="center";null!=g&&(b=mxUtils.button(mxResources.get("tryAgain"),function(){a.hideDialog();g()}),b.className="geBtn",c.appendChild(b),c.style.textAlign="center");null!=f&&(f=mxUtils.button(f,function(){null!=h&&h()}),f.className="geBtn",c.appendChild(f));var u=mxUtils.button(d,function(){n&&a.hideDialog();null!=e&&e()});u.className="geBtn";c.appendChild(u);null!=l&&(d=mxUtils.button(l,function(){n&&a.hideDialog();null!=m&&m()}),d.className="geBtn gePrimaryBtn", -c.appendChild(d));this.init=function(){u.focus()};k.appendChild(c);this.container=k}; -(function(){var a=new mxObjectCodec(new ChangePageSetup,["ui","previousColor","previousImage","previousFormat"]);a.beforeDecode=function(a,c,d){d.ui=a.ui;return c};a.afterDecode=function(a,c,d){d.previousColor=d.color;d.previousImage=d.image;d.previousFormat=d.format;null!=d.foldingEnabled&&(d.foldingEnabled=!d.foldingEnabled);null!=d.mathEnabled&&(d.mathEnabled=!d.mathEnabled);null!=d.shadowVisible&&(d.shadowVisible=!d.shadowVisible);return d};mxCodecRegistry.register(a)})();(function(){EditorUi.VERSION="9.3.1";EditorUi.compactUi="atlas"!=uiTheme;EditorUi.enableLogging=/.*\.draw\.io$/.test(window.location.hostname)&&"support.draw.io"!=window.location.hostname;EditorUi.templateFile=TEMPLATE_PATH+"/index.xml";EditorUi.enablePlantUml=EditorUi.enableLogging;EditorUi.isElectronApp=null!=window&&null!=window.process&&null!=window.process.versions&&null!=window.process.versions.electron;EditorUi.scratchpadHelpLink="https://desk.draw.io/support/solutions/articles/16000042367"; +var ErrorDialog=function(a,b,c,d,e,g,k,l,m,f,h){m=null!=m?m:!0;var n=document.createElement("div");n.style.textAlign="center";if(null!=b){var u=document.createElement("div");u.style.padding="0px";u.style.margin="0px";u.style.fontSize="18px";u.style.paddingBottom="16px";u.style.marginBottom="16px";u.style.borderBottom="1px solid #c0c0c0";u.style.color="gray";mxUtils.write(u,b);n.appendChild(u)}b=document.createElement("div");b.style.padding="6px";b.innerHTML=c;n.appendChild(b);c=document.createElement("div"); +c.style.marginTop="16px";c.style.textAlign="center";null!=g&&(b=mxUtils.button(mxResources.get("tryAgain"),function(){a.hideDialog();g()}),b.className="geBtn",c.appendChild(b),c.style.textAlign="center");null!=f&&(f=mxUtils.button(f,function(){null!=h&&h()}),f.className="geBtn",c.appendChild(f));var p=mxUtils.button(d,function(){m&&a.hideDialog();null!=e&&e()});p.className="geBtn";c.appendChild(p);null!=k&&(d=mxUtils.button(k,function(){m&&a.hideDialog();null!=l&&l()}),d.className="geBtn gePrimaryBtn", +c.appendChild(d));this.init=function(){p.focus()};n.appendChild(c);this.container=n}; +(function(){var a=new mxObjectCodec(new ChangePageSetup,["ui","previousColor","previousImage","previousFormat"]);a.beforeDecode=function(a,c,d){d.ui=a.ui;return c};a.afterDecode=function(a,c,d){d.previousColor=d.color;d.previousImage=d.image;d.previousFormat=d.format;null!=d.foldingEnabled&&(d.foldingEnabled=!d.foldingEnabled);null!=d.mathEnabled&&(d.mathEnabled=!d.mathEnabled);null!=d.shadowVisible&&(d.shadowVisible=!d.shadowVisible);return d};mxCodecRegistry.register(a)})();(function(){EditorUi.VERSION="9.3.4";EditorUi.compactUi="atlas"!=uiTheme;EditorUi.enableLogging=/.*\.draw\.io$/.test(window.location.hostname)&&"support.draw.io"!=window.location.hostname;EditorUi.templateFile=TEMPLATE_PATH+"/index.xml";EditorUi.enablePlantUml=EditorUi.enableLogging;EditorUi.isElectronApp=null!=window&&null!=window.process&&null!=window.process.versions&&null!=window.process.versions.electron;EditorUi.scratchpadHelpLink="https://desk.draw.io/support/solutions/articles/16000042367"; EditorUi.prototype.emptyDiagramXml='<mxGraphModel><root><mxCell id="0"/><mxCell id="1" parent="0"/></root></mxGraphModel>';EditorUi.prototype.emptyLibraryXml="<mxlibrary>[]</mxlibrary>";EditorUi.prototype.mode=null;EditorUi.prototype.sidebarFooterHeight=36;EditorUi.prototype.defaultCustomShapeStyle="shape=stencil(tZRtTsQgEEBPw1+DJR7AoN6DbWftpAgE0Ortd/jYRGq72R+YNE2YgTePloEJGWblgA18ZuKFDcMj5/Sm8boZq+BgjCX4pTyqk6ZlKROitwusOMXKQDODx5iy4pXxZ5qTHiFHawxB0JrQZH7lCabQ0Fr+XWC1/E8zcsT/gAi+Subo2/3Mh6d/oJb5nU1b5tW7r2knautaa3T+U32o7f7vZwpJkaNDLORJjcu7t59m2jXxqX9un+tt022acsfmoKaQZ+vhhswZtS6Ne/ThQGt0IV0N3Yyv6P3CeT9/tHO0XFI5cAE=);whiteSpace=wrap;html=1;"; EditorUi.prototype.svgBrokenImage=Graph.createSvgImage(10,10,'<rect x="0" y="0" width="10" height="10" stroke="#000" fill="transparent"/><path d="m 0 0 L 10 10 L 0 10 L 10 0" stroke="#000" fill="transparent"/>');EditorUi.prototype.crossOriginImages=!mxClient.IS_IE;EditorUi.prototype.maxBackgroundSize=1600;EditorUi.prototype.maxImageSize=520;EditorUi.prototype.resampleThreshold=1E5;EditorUi.prototype.maxImageBytes=1E6;EditorUi.prototype.maxBackgroundBytes=25E5;EditorUi.prototype.currentFile=null;EditorUi.prototype.printPdfExport= -!1;EditorUi.prototype.pdfPageExport=!0;EditorUi.prototype.formatEnabled="0"!=urlParams.format;EditorUi.prototype.closableScratchpad=!0;(function(){EditorUi.prototype.useCanvasForExport=!1;EditorUi.prototype.jpgSupported=!1;try{var a=document.createElement("canvas");EditorUi.prototype.canvasSupported=!(!a.getContext||!a.getContext("2d"))}catch(u){}try{var b=document.createElement("canvas"),c=new Image;c.onload=function(){try{b.getContext("2d").drawImage(c,0,0);var a=b.toDataURL("image/png");EditorUi.prototype.useCanvasForExport= -null!=a&&6<a.length}catch(p){}};c.src="data:image/svg+xml;base64,"+btoa(unescape(encodeURIComponent('<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="1px" height="1px" version="1.1"><foreignObject pointer-events="all" width="1" height="1"><div xmlns="http://www.w3.org/1999/xhtml"></div></foreignObject></svg>')))}catch(u){}try{b=document.createElement("canvas");b.width=b.height=1;var d=b.toDataURL("image/jpeg");EditorUi.prototype.jpgSupported=null!==d.match("image/jpeg")}catch(u){}})(); +!1;EditorUi.prototype.pdfPageExport=!0;EditorUi.prototype.formatEnabled="0"!=urlParams.format;EditorUi.prototype.closableScratchpad=!0;(function(){EditorUi.prototype.useCanvasForExport=!1;EditorUi.prototype.jpgSupported=!1;try{var a=document.createElement("canvas");EditorUi.prototype.canvasSupported=!(!a.getContext||!a.getContext("2d"))}catch(p){}try{var b=document.createElement("canvas"),c=new Image;c.onload=function(){try{b.getContext("2d").drawImage(c,0,0);var a=b.toDataURL("image/png");EditorUi.prototype.useCanvasForExport= +null!=a&&6<a.length}catch(q){}};c.src="data:image/svg+xml;base64,"+btoa(unescape(encodeURIComponent('<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="1px" height="1px" version="1.1"><foreignObject pointer-events="all" width="1" height="1"><div xmlns="http://www.w3.org/1999/xhtml"></div></foreignObject></svg>')))}catch(p){}try{b=document.createElement("canvas");b.width=b.height=1;var d=b.toDataURL("image/jpeg");EditorUi.prototype.jpgSupported=null!==d.match("image/jpeg")}catch(p){}})(); EditorUi.prototype.openLink=function(a,b,c){return this.editor.graph.openLink(a,b,c)};EditorUi.prototype.showSplash=function(a){};EditorUi.prototype.getLocalData=function(a,b){b(localStorage.getItem(a))};EditorUi.prototype.setLocalData=function(a,b,c){localStorage.setItem(a,b);null!=c&&c()};EditorUi.prototype.removeLocalData=function(a,b){localStorage.removeItem(a);b()};EditorUi.prototype.setMathEnabled=function(a){this.editor.graph.mathEnabled=a;this.editor.updateGraphComponents();this.editor.graph.refresh(); this.fireEvent(new mxEventObject("mathEnabledChanged"))};EditorUi.prototype.isMathEnabled=function(a){return this.editor.graph.mathEnabled};EditorUi.prototype.isAppCache=function(){return"1"==urlParams.appcache||this.isOfflineApp()};EditorUi.prototype.isOfflineApp=function(){return"1"==urlParams.offline};EditorUi.prototype.isOffline=function(){return this.isOfflineApp()||!navigator.onLine||"1"==urlParams.stealth};EditorUi.prototype.createSpinner=function(a,b,c){c=null!=c?c:24;var d=new Spinner({lines:12, -length:c,width:Math.round(c/3),radius:Math.round(c/2),rotate:0,color:"dark"==uiTheme?"#c0c0c0":"#000",speed:1.5,trail:60,shadow:!1,hwaccel:!1,zIndex:2E9}),f=d.spin;d.spin=function(c,h){var k=!1;this.active||(f.call(this,c),this.active=!0,null!=h&&(k=document.createElement("div"),k.style.position="absolute",k.style.whiteSpace="nowrap",k.style.background="#4B4243",k.style.color="white",k.style.fontFamily="Helvetica, Arial",k.style.fontSize="9pt",k.style.padding="6px",k.style.paddingLeft="10px",k.style.paddingRight= -"10px",k.style.zIndex=2E9,k.style.left=Math.max(0,a)+"px",k.style.top=Math.max(0,b+70)+"px",mxUtils.setPrefixedStyle(k.style,"borderRadius","6px"),mxUtils.setPrefixedStyle(k.style,"transform","translate(-50%,-50%)"),"dark"!=uiTheme&&mxUtils.setPrefixedStyle(k.style,"boxShadow","2px 2px 3px 0px #ddd"),k.innerHTML=h+"...",c.appendChild(k),d.status=k,mxClient.IS_VML&&(null==document.documentMode||8>=document.documentMode)&&(k.style.left=Math.round(Math.max(0,a-k.offsetWidth/2))+"px",k.style.top=Math.round(Math.max(0, -b+70-k.offsetHeight/2))+"px")),this.pause=mxUtils.bind(this,function(){var a=function(){};this.active&&(a=mxUtils.bind(this,function(){this.spin(c,h)}));this.stop();return a}),k=!0);return k};var h=d.stop;d.stop=function(){h.call(this);this.active=!1;null!=d.status&&(d.status.parentNode.removeChild(d.status),d.status=null)};d.pause=function(){return function(){}};return d};EditorUi.parsePng=function(a,b,c){function d(a,b){var c=h;h+=b;return a.substring(c,h)}function f(a){a=d(a,4);return a.charCodeAt(3)+ -(a.charCodeAt(2)<<8)+(a.charCodeAt(1)<<16)+(a.charCodeAt(0)<<24)}var h=0;if(d(a,8)!=String.fromCharCode(137)+"PNG"+String.fromCharCode(13,10,26,10))null!=c&&c();else if(d(a,4),"IHDR"!=d(a,4))null!=c&&c();else{d(a,17);do{c=f(a);var k=d(a,4);if(null!=b&&b(h-8,k,c))break;value=d(a,c);d(a,4);if("IEND"==k)break}while(c)}};EditorUi.prototype.isCompatibleString=function(a){try{var b=mxUtils.parseXml(a),c=this.editor.extractGraphModel(b.documentElement,!0);return null!=c&&0==c.getElementsByTagName("parsererror").length}catch(q){}return!1}; +length:c,width:Math.round(c/3),radius:Math.round(c/2),rotate:0,color:"dark"==uiTheme?"#c0c0c0":"#000",speed:1.5,trail:60,shadow:!1,hwaccel:!1,zIndex:2E9}),f=d.spin;d.spin=function(c,h){var e=!1;this.active||(f.call(this,c),this.active=!0,null!=h&&(e=document.createElement("div"),e.style.position="absolute",e.style.whiteSpace="nowrap",e.style.background="#4B4243",e.style.color="white",e.style.fontFamily="Helvetica, Arial",e.style.fontSize="9pt",e.style.padding="6px",e.style.paddingLeft="10px",e.style.paddingRight= +"10px",e.style.zIndex=2E9,e.style.left=Math.max(0,a)+"px",e.style.top=Math.max(0,b+70)+"px",mxUtils.setPrefixedStyle(e.style,"borderRadius","6px"),mxUtils.setPrefixedStyle(e.style,"transform","translate(-50%,-50%)"),"dark"!=uiTheme&&mxUtils.setPrefixedStyle(e.style,"boxShadow","2px 2px 3px 0px #ddd"),e.innerHTML=h+"...",c.appendChild(e),d.status=e,mxClient.IS_VML&&(null==document.documentMode||8>=document.documentMode)&&(e.style.left=Math.round(Math.max(0,a-e.offsetWidth/2))+"px",e.style.top=Math.round(Math.max(0, +b+70-e.offsetHeight/2))+"px")),this.pause=mxUtils.bind(this,function(){var a=function(){};this.active&&(a=mxUtils.bind(this,function(){this.spin(c,h)}));this.stop();return a}),e=!0);return e};var h=d.stop;d.stop=function(){h.call(this);this.active=!1;null!=d.status&&(d.status.parentNode.removeChild(d.status),d.status=null)};d.pause=function(){return function(){}};return d};EditorUi.parsePng=function(a,b,c){function d(a,b){var c=h;h+=b;return a.substring(c,h)}function f(a){a=d(a,4);return a.charCodeAt(3)+ +(a.charCodeAt(2)<<8)+(a.charCodeAt(1)<<16)+(a.charCodeAt(0)<<24)}var h=0;if(d(a,8)!=String.fromCharCode(137)+"PNG"+String.fromCharCode(13,10,26,10))null!=c&&c();else if(d(a,4),"IHDR"!=d(a,4))null!=c&&c();else{d(a,17);do{c=f(a);var e=d(a,4);if(null!=b&&b(h-8,e,c))break;value=d(a,c);d(a,4);if("IEND"==e)break}while(c)}};EditorUi.prototype.isCompatibleString=function(a){try{var b=mxUtils.parseXml(a),c=this.editor.extractGraphModel(b.documentElement,!0);return null!=c&&0==c.getElementsByTagName("parsererror").length}catch(u){}return!1}; var a=EditorUi.prototype.extractGraphModelFromHtml;EditorUi.prototype.extractGraphModelFromHtml=function(b){var c=a.apply(this,arguments);if(null==c)try{var d=b.indexOf("<mxfile ");if(0<=d){var f=b.lastIndexOf("</mxfile>");f>d&&(c=b.substring(d,f+15).replace(/>/g,">").replace(/</g,"<").replace(/\\"/g,'"').replace(/\n/g,""))}else var e=mxUtils.parseXml(b),g=this.editor.extractGraphModel(e.documentElement,null!=this.pages||"hidden"==this.diagramContainer.style.visibility),c=null!= g?mxUtils.getXml(g):""}catch(v){}return c};EditorUi.prototype.validateFileData=function(a){if(null!=a&&0<a.length){var b=a.indexOf('<meta charset="utf-8">');0<=b&&(a=a.slice(0,b)+'<meta charset="utf-8"/>'+a.slice(b+23-1,a.length))}return a};EditorUi.prototype.replaceFileData=function(a){a=this.validateFileData(a);a=null!=a&&0<a.length?mxUtils.parseXml(a).documentElement:null;var b=null!=a?this.editor.extractGraphModel(a,!0):null;null!=b&&(a=b);if(null!=a){b=this.editor.graph;b.model.beginUpdate(); try{var c=null!=this.pages?this.pages.slice():null,d=a.getElementsByTagName("diagram");if("0"!=urlParams.pages||1<d.length||1==d.length&&d[0].hasAttribute("name")){this.fileNode=a;this.pages=null!=this.pages?this.pages:[];for(var f=d.length-1;0<=f;f--){var e=this.updatePageRoot(new DiagramPage(d[f]));null==e.getName()&&e.setName(mxResources.get("pageWithNumber",[f+1]));b.model.execute(new ChangePage(this,e,0==f?e:null,0))}}else"0"!=urlParams.pages&&null==this.fileNode&&(this.fileNode=a.ownerDocument.createElement("mxfile"), -this.currentPage=new DiagramPage(a.ownerDocument.createElement("diagram")),this.currentPage.setName(mxResources.get("pageWithNumber",[1])),b.model.execute(new ChangePage(this,this.currentPage,this.currentPage,0))),this.editor.setGraphXml(a),null!=this.currentPage&&(this.currentPage.root=this.editor.graph.model.root);if(null!=c)for(f=0;f<c.length;f++)b.model.execute(new ChangePage(this,c[f],null))}finally{b.model.endUpdate()}}};EditorUi.prototype.createFileData=function(a,b,c,d,e,g,l,m,n,t){b=null!= -b?b:this.editor.graph;e=null!=e?e:!1;n=null!=n?n:!0;var f,h=null;null==c||c.getMode()==App.MODE_DEVICE||c.getMode()==App.MODE_BROWSER?f="_blank":h=f=d;if(null==a)return"";var k=a;if("mxfile"!=k.nodeName.toLowerCase()){var q=b.zapGremlins(mxUtils.getXml(a)),k=b.compress(q);if(b.decompress(k)!=q)return q;q=a.ownerDocument.createElement("diagram");mxUtils.setTextContent(q,k);k=a.ownerDocument.createElement("mxfile");k.appendChild(q)}t?(k=k.cloneNode(!0),k.removeAttribute("userAgent"),k.removeAttribute("version"), -k.removeAttribute("editor"),k.removeAttribute("type")):(k.setAttribute("userAgent",navigator.userAgent),k.setAttribute("version",EditorUi.VERSION),k.setAttribute("editor","www.draw.io"),a=null!=c?c.getMode():this.mode,null!=a&&k.setAttribute("type",a));a=mxUtils.getXml(k);if(!g&&!e&&(l||null!=c&&/(\.html)$/i.test(c.getTitle())))a=this.getHtml2(mxUtils.getXml(k),b,null!=c?c.getTitle():null,f,h);else if(g||!e&&null!=c&&/(\.svg)$/i.test(c.getTitle()))null==c||c.getMode()!=App.MODE_DEVICE&&c.getMode()!= -App.MODE_BROWSER||(d=null),a=this.getEmbeddedSvg(a,b,d,null,m,n,h);return a};EditorUi.prototype.getXmlFileData=function(a,b){a=null!=a?a:!0;b=null!=b?b:!1;var c=this.editor.getGraphXml(a);if(a&&null!=this.fileNode&&null!=this.currentPage){var d=this.editor.graph.compress(this.editor.graph.zapGremlins(mxUtils.getXml(c)));mxUtils.setTextContent(this.currentPage.node,d);c=this.fileNode.cloneNode(!1);if(b)c.appendChild(this.currentPage.node);else for(var f=0;f<this.pages.length;f++){var h=this.pages[f].mapping; -this.currentPage!=this.pages[f]&&null!=h&&h.needsUpdate&&(d=(new mxCodec(mxUtils.createXmlDocument())).encode(h.graphModel),h.writeRealtimeToNode(d),d=this.editor.graph.compress(this.editor.graph.zapGremlins(mxUtils.getXml(d))),mxUtils.setTextContent(this.pages[f].node,d),h.needsUpdate=!1);c.appendChild(this.pages[f].node)}}return c};EditorUi.prototype.getFileData=function(a,b,c,d,e,g,l,m,n){e=null!=e?e:!0;l=null!=l?l:this.getXmlFileData(e,null!=g?g:!1);n=null!=n?n:this.getCurrentFile();g=this.editor.graph; -if(null!=this.pages&&this.currentPage!=this.pages[0]&&(b||!a&&null!=n&&/(\.svg)$/i.test(n.getTitle()))){g=this.createTemporaryGraph(g.getStylesheet());var f=g.getGlobalVariable,h=this.pages[0];g.getGlobalVariable=function(a){return"page"==a?h.getName():"pagenumber"==a?1:f.apply(this,arguments)};document.body.appendChild(g.container);g.model.setRoot(h.root)}a=this.createFileData(l,g,n,window.location.href,a,b,c,d,e,m);g!=this.editor.graph&&g.container.parentNode.removeChild(g.container);return a}; -EditorUi.prototype.getHtml=function(a,b,c,d,e,g){g=null!=g?g:!0;var f=null,h="https://www.draw.io/js/embed-static.min.js";if(null!=b){var f=g?b.getGraphBounds():b.getBoundingBox(b.getSelectionCells()),k=b.view.scale;g=Math.floor(f.x/k-b.view.translate.x);k=Math.floor(f.y/k-b.view.translate.y);f=b.background;null==e&&(b=this.getBasenames().join(";"),0<b.length&&(h="https://www.draw.io/embed.js?s="+b));a.setAttribute("x0",g);a.setAttribute("y0",k)}null!=a&&(a.setAttribute("pan","1"),a.setAttribute("zoom", -"1"),a.setAttribute("resize","0"),a.setAttribute("fit","0"),a.setAttribute("border","20"),a.setAttribute("links","1"),null!=d&&a.setAttribute("edit",d));null!=e&&(e=e.replace(/&/g,"&"));a=null!=a?this.editor.graph.zapGremlins(mxUtils.getXml(a)):"";d=this.editor.graph.compress(a);this.editor.graph.decompress(d)!=a&&(d=encodeURIComponent(a));return(null==e?'\x3c!--[if IE]><meta http-equiv="X-UA-Compatible" content="IE=5,IE=9" ><![endif]--\x3e\n':"")+"<!DOCTYPE html>\n<html"+(null!=e?' xmlns="http://www.w3.org/1999/xhtml">': +this.currentPage=new DiagramPage(a.ownerDocument.createElement("diagram")),this.currentPage.setName(mxResources.get("pageWithNumber",[1])),b.model.execute(new ChangePage(this,this.currentPage,this.currentPage,0))),this.editor.setGraphXml(a),null!=this.currentPage&&(this.currentPage.root=this.editor.graph.model.root);if(null!=c)for(f=0;f<c.length;f++)b.model.execute(new ChangePage(this,c[f],null))}finally{b.model.endUpdate()}}};EditorUi.prototype.createFileData=function(a,b,c,d,e,g,k,l,m,t){b=null!= +b?b:this.editor.graph;e=null!=e?e:!1;m=null!=m?m:!0;var f,h=null;null==c||c.getMode()==App.MODE_DEVICE||c.getMode()==App.MODE_BROWSER?f="_blank":h=f=d;if(null==a)return"";var n=a;if("mxfile"!=n.nodeName.toLowerCase()){var p=b.zapGremlins(mxUtils.getXml(a)),n=b.compress(p);if(b.decompress(n)!=p)return p;p=a.ownerDocument.createElement("diagram");p.setAttribute("id",Editor.guid());mxUtils.setTextContent(p,n);n=a.ownerDocument.createElement("mxfile");n.appendChild(p)}t?(n=n.cloneNode(!0),n.removeAttribute("userAgent"), +n.removeAttribute("version"),n.removeAttribute("editor"),n.removeAttribute("type")):(n.setAttribute("userAgent",navigator.userAgent),n.setAttribute("version",EditorUi.VERSION),n.setAttribute("editor","www.draw.io"),a=null!=c?c.getMode():this.mode,null!=a&&n.setAttribute("type",a));a=mxUtils.getXml(n);if(!g&&!e&&(k||null!=c&&/(\.html)$/i.test(c.getTitle())))a=this.getHtml2(mxUtils.getXml(n),b,null!=c?c.getTitle():null,f,h);else if(g||!e&&null!=c&&/(\.svg)$/i.test(c.getTitle()))null==c||c.getMode()!= +App.MODE_DEVICE&&c.getMode()!=App.MODE_BROWSER||(d=null),a=this.getEmbeddedSvg(a,b,d,null,l,m,h);return a};EditorUi.prototype.getXmlFileData=function(a,b){a=null!=a?a:!0;b=null!=b?b:!1;var c=this.editor.getGraphXml(a);if(a&&null!=this.fileNode&&null!=this.currentPage)if(c=this.editor.graph.compress(this.editor.graph.zapGremlins(mxUtils.getXml(c))),mxUtils.setTextContent(this.currentPage.node,c),c=this.fileNode.cloneNode(!1),b)c.appendChild(this.currentPage.node);else for(var d=0;d<this.pages.length;d++){var f= +this.pages[d].mapping;if(this.currentPage!=this.pages[d]&&null!=f&&f.needsUpdate){var e=(new mxCodec(mxUtils.createXmlDocument())).encode(f.graphModel);f.writeRealtimeToNode(e);mxUtils.setTextContent(this.pages[d].node,this.editor.graph.compressNode(e));f.needsUpdate=!1}c.appendChild(this.pages[d].node)}return c};EditorUi.prototype.getFileData=function(a,b,c,d,e,g,k,l,m){e=null!=e?e:!0;k=null!=k?k:this.getXmlFileData(e,null!=g?g:!1);m=null!=m?m:this.getCurrentFile();g=this.editor.graph;if(null!=this.pages&& +this.currentPage!=this.pages[0]&&(b||!a&&null!=m&&/(\.svg)$/i.test(m.getTitle()))){g=this.createTemporaryGraph(g.getStylesheet());var f=g.getGlobalVariable,h=this.pages[0];g.getGlobalVariable=function(a){return"page"==a?h.getName():"pagenumber"==a?1:f.apply(this,arguments)};document.body.appendChild(g.container);g.model.setRoot(h.root)}a=this.createFileData(k,g,m,window.location.href,a,b,c,d,e,l);g!=this.editor.graph&&g.container.parentNode.removeChild(g.container);return a};EditorUi.prototype.getHtml= +function(a,b,c,d,e,g){g=null!=g?g:!0;var f=null,h="https://www.draw.io/js/embed-static.min.js";if(null!=b){var f=g?b.getGraphBounds():b.getBoundingBox(b.getSelectionCells()),n=b.view.scale;g=Math.floor(f.x/n-b.view.translate.x);n=Math.floor(f.y/n-b.view.translate.y);f=b.background;null==e&&(b=this.getBasenames().join(";"),0<b.length&&(h="https://www.draw.io/embed.js?s="+b));a.setAttribute("x0",g);a.setAttribute("y0",n)}null!=a&&(a.setAttribute("pan","1"),a.setAttribute("zoom","1"),a.setAttribute("resize", +"0"),a.setAttribute("fit","0"),a.setAttribute("border","20"),a.setAttribute("links","1"),null!=d&&a.setAttribute("edit",d));null!=e&&(e=e.replace(/&/g,"&"));a=null!=a?this.editor.graph.zapGremlins(mxUtils.getXml(a)):"";d=this.editor.graph.compress(a);this.editor.graph.decompress(d)!=a&&(d=encodeURIComponent(a));return(null==e?'\x3c!--[if IE]><meta http-equiv="X-UA-Compatible" content="IE=5,IE=9" ><![endif]--\x3e\n':"")+"<!DOCTYPE html>\n<html"+(null!=e?' xmlns="http://www.w3.org/1999/xhtml">': ">")+"\n<head>\n"+(null==e?null!=c?"<title>"+mxUtils.htmlEntities(c)+"</title>\n":"":"<title>Draw.io Diagram</title>\n")+(null!=e?'<meta http-equiv="refresh" content="0;URL=\''+e+"'\"/>\n":"")+"</head>\n<body"+(null==e&&null!=f&&f!=mxConstants.NONE?' style="background-color:'+f+';">':">")+'\n<div class="mxgraph" style="position:relative;overflow:auto;width:100%;">\n<div style="width:1px;height:1px;overflow:hidden;">'+d+"</div>\n</div>\n"+(null==e?'<script type="text/javascript" src="'+h+'">\x3c/script>': '<a style="position:absolute;top:50%;left:50%;margin-top:-128px;margin-left:-64px;" href="'+e+'" target="_blank"><img border="0" src="https://www.draw.io/images/drawlogo128.png"/></a>')+"\n</body>\n</html>\n"};EditorUi.prototype.getHtml2=function(a,b,c,d,e){null!=e&&(e=e.replace(/&/g,"&"));a={highlight:"#0000ff",nav:this.editor.graph.foldingEnabled,resize:!0,xml:this.editor.graph.zapGremlins(a),toolbar:"pages zoom layers lightbox"};null!=this.pages&&null!=this.currentPage&&(a.page=mxUtils.indexOf(this.pages, this.currentPage));return(null==e?'\x3c!--[if IE]><meta http-equiv="X-UA-Compatible" content="IE=5,IE=9" ><![endif]--\x3e\n':"")+"<!DOCTYPE html>\n<html"+(null!=e?' xmlns="http://www.w3.org/1999/xhtml">':">")+"\n<head>\n"+(null==e?null!=c?"<title>"+mxUtils.htmlEntities(c)+"</title>\n":"":"<title>Draw.io Diagram</title>\n")+(null!=e?'<meta http-equiv="refresh" content="0;URL=\''+e+"'\"/>\n":"")+'<meta charset="utf-8"/>\n</head>\n<body>\n<div class="mxgraph" style="max-width:100%;border:1px solid transparent;" data-mxgraph="'+ mxUtils.htmlEntities(JSON.stringify(a))+'"></div>\n'+(null==e?'<script type="text/javascript" src="https://www.draw.io/js/viewer.min.js">\x3c/script>':'<a style="position:absolute;top:50%;left:50%;margin-top:-128px;margin-left:-64px;" href="'+e+'" target="_blank"><img border="0" src="https://www.draw.io/images/drawlogo128.png"/></a>')+"\n</body>\n</html>\n"};EditorUi.prototype.setFileData=function(a){a=this.validateFileData(a);this.pages=this.fileNode=this.currentPage=null;var b=null!=a&&0<a.length? mxUtils.parseXml(a).documentElement:null;a=null!=b?this.editor.extractGraphModel(b,!0):null;null!=a&&(b=a);if(null!=b&&"mxfile"==b.nodeName&&(a=b.getElementsByTagName("diagram"),"0"!=urlParams.pages||1<a.length||1==a.length&&a[0].hasAttribute("name"))){this.fileNode=b;this.pages=[];for(b=0;b<a.length;b++){var c=new DiagramPage(a[b]);null==c.getName()&&c.setName(mxResources.get("pageWithNumber",[b+1]));this.pages.push(c)}this.currentPage=this.pages[Math.max(0,Math.min(this.pages.length-1,urlParams.page|| 0))];b=this.currentPage.node}"0"!=urlParams.pages&&null==this.fileNode&&null!=b&&(this.fileNode=b.ownerDocument.createElement("mxfile"),this.currentPage=new DiagramPage(b.ownerDocument.createElement("diagram")),this.currentPage.setName(mxResources.get("pageWithNumber",[1])),this.pages=[this.currentPage]);this.editor.setGraphXml(b);null!=this.currentPage&&(this.currentPage.root=this.editor.graph.model.root)};EditorUi.prototype.getBaseFilename=function(a){var b=this.getCurrentFile(),b=null!=b&&null!= -b.getTitle()?b.getTitle():this.defaultFilename;if(/(\.xml)$/i.test(b)||/(\.html)$/i.test(b)||/(\.svg)$/i.test(b)||/(\.png)$/i.test(b))b=b.substring(0,b.lastIndexOf("."));!a&&null!=this.pages&&1<this.pages.length&&null!=this.currentPage&&null!=this.currentPage.node.getAttribute("name")&&0<this.currentPage.getName().length&&(b=b+"-"+this.currentPage.getName());return b};EditorUi.prototype.downloadFile=function(a,b,c,d,e,g,l){try{d=null!=d?d:this.editor.graph.isSelectionEmpty();var f=this.getBaseFilename(!e), -h=f+"."+a;if("xml"==a){var k='<?xml version="1.0" encoding="UTF-8"?>\n'+(b?mxUtils.getXml(this.editor.getGraphXml(d)):this.getFileData(!0,null,null,null,d,e));this.saveData(h,a,k,"text/xml")}else if("html"==a)k=this.getHtml2(this.getFileData(!0),this.editor.graph,f),this.saveData(h,a,k,"text/html");else if("svg"!=a&&"xmlsvg"!=a||!this.spinner.spin(document.body,mxResources.get("export")))"xmlpng"==a?h=f+".png":"jpeg"==a&&(h=f+".jpg"),this.saveRequest(h,a,mxUtils.bind(this,function(b,c){try{var f= -this.editor.graph.pageVisible;null!=g&&(this.editor.graph.pageVisible=g);var h=this.createDownloadRequest(b,a,d,c,l);this.editor.graph.pageVisible=f;return h}catch(B){this.handleError(B)}}));else{var m=null,q=mxUtils.bind(this,function(a){a.length<=MAX_REQUEST_SIZE?this.saveData(h,"svg",a,"image/svg+xml"):this.handleError({message:mxResources.get("drawingTooLarge")},mxResources.get("error"),mxUtils.bind(this,function(){mxUtils.popup(m)}))});if("svg"==a){var v=this.editor.graph.background;if(l||v== -mxConstants.NONE)v=null;var u=this.editor.graph.getSvg(v,null,null,null,null,d);c&&this.editor.graph.addSvgShadow(u);this.convertImages(u,mxUtils.bind(this,mxUtils.bind(this,function(a){this.spinner.stop();q('<?xml version="1.0" encoding="UTF-8"?>\n<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">\n'+mxUtils.getXml(a))})))}else h=f+".svg",m=this.getFileData(!1,!0,null,mxUtils.bind(this,function(a){this.spinner.stop();q(a)}),d)}}catch(F){this.handleError(F)}}; -EditorUi.prototype.createDownloadRequest=function(a,b,c,d,e){var f=this.editor.graph.getGraphBounds();c=this.getFileData(!0,null,null,null,c,"xmlpng"!=b);var h="";if(f.width*f.height>MAX_AREA||c.length>MAX_REQUEST_SIZE)throw{message:mxResources.get("drawingTooLarge")};f="0";if("xmlpng"==b&&(f="1",b="png",null!=this.pages&&null!=this.currentPage))for(var k=0;k<this.pages.length;k++)if(this.pages[k]==this.currentPage){h="&from="+k;break}k=this.editor.graph.background;"png"==b&&e&&(k=mxConstants.NONE); -return new mxXmlRequest(EXPORT_URL,"format="+b+h+"&bg="+(null!=k?k:mxConstants.NONE)+"&base64="+d+"&embedXml="+f+"&xml="+encodeURIComponent(c)+(null!=a?"&filename="+encodeURIComponent(a):""))};EditorUi.prototype.setMode=function(a,b){this.mode=a};EditorUi.prototype.loadDescriptor=function(a,b,c){var d=window.location.hash,f=mxUtils.bind(this,function(c){var f=null!=a.data?a.data:"";null!=c&&0<c.length&&(0<f.length&&(f+="\n"),f+=c);c=new LocalFile(this,"csv"!=a.format&&0<f.length?f:this.emptyDiagramXml, -null!=urlParams.title?decodeURIComponent(urlParams.title):this.defaultFilename,!0);c.getHash=function(){return d};this.fileLoaded(c);"csv"==a.format&&this.importCsv(f,mxUtils.bind(this,function(a){this.editor.undoManager.clear();this.editor.setModified(!1);this.editor.setStatus("")}));if(null!=a.update){var h=null!=a.interval?parseInt(a.interval):6E4,k=null,e=mxUtils.bind(this,function(){var b=this.currentPage;mxUtils.post(a.update,"xml="+encodeURIComponent(mxUtils.getXml(this.editor.getGraphXml())), -mxUtils.bind(this,function(a){b===this.currentPage&&(200<=a.getStatus()&&300>=a.getStatus()?(this.updateDiagram(a.getText()),g()):this.handleError({message:mxResources.get("error")+" "+a.getStatus()}))}),mxUtils.bind(this,function(a){this.handleError(a)}))}),g=mxUtils.bind(this,function(){window.clearTimeout(k);k=window.setTimeout(e,h)});this.editor.addListener("pageSelected",mxUtils.bind(this,function(){g();e()}));g();e()}null!=b&&b()});if(null!=a.url&&0<a.url.length){var h=a.url;/^https?:\/\//.test(h)&& -!this.isCorsEnabledForUrl(h)&&(h=PROXY_URL+"?url="+encodeURIComponent(a.url));this.loadUrl(h,mxUtils.bind(this,function(a){f(a)}),mxUtils.bind(this,function(a){null!=c&&c(a)}))}else f("")};EditorUi.prototype.updateDiagram=function(a){function b(a){var b=new mxCellOverlay(a.image||d.warningImage,a.tooltip,a.align,a.valign,a.offset);b.addListener(mxEvent.CLICK,function(b,c){editorUi.alert(a.tooltip)});return b}var c=null;if(null!=a&&0<a.length&&(c=mxUtils.parseXml(a),a=null!=c?c.documentElement:null, -null!=a&&"updates"==a.nodeName)){var d=this.editor.graph,f=d.getModel();f.beginUpdate();var e=null;try{for(a=a.firstChild;null!=a;){if("update"==a.nodeName){var g=f.getCell(a.getAttribute("id"));if(null!=g){try{var l=a.getAttribute("value");if(null!=l){var m=mxUtils.parseXml(l).documentElement;if(null!=m)if("1"==m.getAttribute("replace-value"))f.setValue(g,m);else for(var t=m.attributes,n=0;n<t.length;n++)d.setAttributeForCell(g,t[n].nodeName,0<t[n].nodeValue.length?t[n].nodeValue:null)}}catch(B){null!= -window.console&&console.log("Error in value for "+g.id+": "+B)}try{var x=a.getAttribute("style");null!=x&&d.model.setStyle(g,x)}catch(B){null!=window.console&&console.log("Error in style for "+g.id+": "+B)}try{var C=a.getAttribute("icon");if(null!=C){var z=0<C.length?JSON.parse(C):null;null!=z&&z.append||d.removeCellOverlays(g);null!=z&&d.addCellOverlay(g,b(z))}}catch(B){null!=window.console&&console.log("Error in icon for "+g.id+": "+B)}try{var F=a.getAttribute("geometry");if(null!=F){var F=JSON.parse(F), -E=d.getCellGeometry(g);if(null!=E){E=E.clone();for(key in F){var G=parseFloat(F[key]);"dx"==key?E.x+=G:"dy"==key?E.y+=G:"dw"==key?E.width+=G:"dh"==key?E.height+=G:E[key]=parseFloat(F[key])}d.model.setGeometry(g,E)}}}catch(B){null!=window.console&&console.log("Error in icon for "+g.id+": "+B)}}}else if("model"==a.nodeName){for(var I=a.firstChild;null!=I&&I.nodeType!=mxConstants.NODETYPE_ELEMENT;)I=I.nextSibling;null!=I&&(new mxCodec(a.firstChild)).decode(I,f)}else if("view"==a.nodeName){if(a.hasAttribute("scale")&& -(d.view.scale=parseFloat(a.getAttribute("scale"))),a.hasAttribute("dx")||a.hasAttribute("dy"))d.view.translate=new mxPoint(parseFloat(a.getAttribute("dx")||0),parseFloat(a.getAttribute("dy")||0))}else"fit"==a.nodeName&&(e=a.hasAttribute("max-scale")?parseFloat(a.getAttribute("max-scale")):1);a=a.nextSibling}}finally{f.endUpdate()}null!=e&&this.chromelessResize&&this.chromelessResize(!0,e)}return c};EditorUi.prototype.fileLoaded=function(a){var b=!1;this.hideDialog();var c=this.getCurrentFile();this.setCurrentFile(null); -null!=c&&(c.removeListener(this.descriptorChangedListener),c.close());this.editor.graph.model.clear();this.editor.undoManager.clear();var d=mxUtils.bind(this,function(){this.setGraphEnabled(!1);this.setCurrentFile(null);null!=c&&this.updateDocumentTitle();this.editor.graph.model.clear();this.editor.undoManager.clear();this.setBackgroundImage(null);null!=window.location.hash&&0<window.location.hash.length&&(window.location.hash="");null!=this.fname&&(this.fnameWrapper.style.display="none",this.fname.innerHTML= -"",this.fname.setAttribute("title",mxResources.get("rename")));this.editor.setStatus("");this.updateUi();this.showSplash()});if(null!=a)try{this.setCurrentFile(a);a.addListener("descriptorChanged",this.descriptorChangedListener);a.addListener("contentChanged",this.descriptorChangedListener);a.open();this.setGraphEnabled(!0);this.setMode(a.getMode());this.editor.undoManager.clear();this.descriptorChanged();this.updateUi();null==a.realtime&&(a.isEditable()?this.editor.setStatus(""):this.editor.setStatus('<span class="geStatusAlert" style="margin-left:8px;">'+ -mxUtils.htmlEntities(mxResources.get("readOnly"))+"</span>"));!this.editor.isChromelessView()||this.editor.editable?(this.editor.graph.selectUnlockedLayer(),this.showLayersDialog(),this.restoreLibraries(),window.self!==window.top&&window.focus()):this.editor.graph.isLightboxView()&&this.lightboxFit();this.chromelessResize&&this.chromelessResize();this.editor.fireEvent(new mxEventObject("fileLoaded"));b=!0;this.isOffline()||null==a.getMode()||this.logEvent({category:"File",action:"open",label:a.getMode()}); -if(this.mode==a.getMode()&&a.getMode()!=App.MODE_DEVICE&&null!=a.getMode())try{this.addRecent({id:a.getHash(),title:a.getTitle(),mode:a.getMode()})}catch(u){}try{mxSettings.setOpenCounter(mxSettings.getOpenCounter()+1),mxSettings.save()}catch(u){}}catch(u){null!=window.console&&console.log("error in fileLoaded:",a,u);if(EditorUi.enableLogging&&!this.isOffline())try{(new Image).src=(null!=window.DRAWIO_LOG_URL?window.DRAWIO_LOG_URL:"")+"/log?v="+encodeURIComponent(EditorUi.VERSION)+"&msg=errorInFileLoaded:url:"+ -encodeURIComponent(window.location.href)+(null!=u&&null!=u.message?":err:"+encodeURIComponent(u.message):"")+(null!=u&&null!=u.stack?"&stack="+encodeURIComponent(u.stack):"")}catch(p){}this.handleError(u,mxResources.get("errorLoadingFile"),mxUtils.bind(this,function(){null!=urlParams.url&&this.spinner.spin(document.body,mxResources.get("reconnecting"))?window.location.search=this.getSearch(["url"]):null!=c?c.constructor==DriveFile?this.loadFile(c.getHash()):this.fileLoaded(c):d()}))}else d();return b}; -EditorUi.prototype.descriptorChanged=function(){};EditorUi.prototype.logEvent=function(a){if(EditorUi.enableLogging)try{var b=null!=window.DRAWIO_LOG_URL?window.DRAWIO_LOG_URL:"";(new Image).src=b+"/images/1x1.png?v="+encodeURIComponent(EditorUi.VERSION)+(null!=a?"&data="+encodeURIComponent(JSON.stringify(a)):"")}catch(k){}};EditorUi.prototype.restoreLibraries=function(){};EditorUi.prototype.saveLibrary=function(a,b,c,d,e,g,l){};EditorUi.prototype.isScratchpadEnabled=function(){return isLocalStorage|| -mxClient.IS_CHROMEAPP};EditorUi.prototype.toggleScratchpad=function(){this.isScratchpadEnabled()&&(null==this.scratchpad?this.getLocalData(".scratchpad",mxUtils.bind(this,function(a){null==a&&(a=this.emptyLibraryXml);this.loadLibrary(new StorageLibrary(this,a,".scratchpad"))})):this.closeLibrary(this.scratchpad))};EditorUi.prototype.createLibraryDataFromImages=function(a){var b=mxUtils.createXmlDocument(),c=b.createElement("mxlibrary");mxUtils.setTextContent(c,JSON.stringify(a));b.appendChild(c); -return mxUtils.getXml(b)};EditorUi.prototype.closeLibrary=function(a){null!=a&&(this.removeLibrarySidebar(a.getHash()),a.constructor!=LocalLibrary&&mxSettings.removeCustomLibrary(a.getHash()),".scratchpad"==a.title&&(this.scratchpad=null))};EditorUi.prototype.removeLibrarySidebar=function(a){var b=this.sidebar.palettes[a];if(null!=b){for(var c=0;c<b.length;c++)b[c].parentNode.removeChild(b[c]);delete this.sidebar.palettes[a]}};EditorUi.prototype.repositionLibrary=function(a){var b=this.sidebar.container; -if(null==a){var c=this.sidebar.palettes["L.scratchpad"];null==c&&(c=this.sidebar.palettes.search);null!=c&&(a=c[c.length-1].nextSibling)}a=null!=a?a:b.firstChild.nextSibling.nextSibling;var c=b.lastChild,d=c.previousSibling;b.insertBefore(c,a);b.insertBefore(d,c)};EditorUi.prototype.loadLibrary=function(a){var b=mxUtils.parseXml(a.getData());if("mxlibrary"==b.documentElement.nodeName){var c=JSON.parse(mxUtils.getTextContent(b.documentElement));this.libraryLoaded(a,c,b.documentElement.getAttribute("title"))}else throw{message:mxResources.get("notALibraryFile")}; -};EditorUi.prototype.getLibraryStorageHint=function(a){return""};EditorUi.prototype.libraryLoaded=function(a,b,c){if(null!=this.sidebar){a.constructor!=LocalLibrary&&mxSettings.addCustomLibrary(a.getHash());".scratchpad"==a.title&&(this.scratchpad=a);var d=this.sidebar.palettes[a.getHash()],d=null!=d?d[d.length-1].nextSibling:null;this.removeLibrarySidebar(a.getHash());var f=null,h=mxUtils.bind(this,function(b,c){0==b.length&&a.isEditable()?(null==f&&(f=document.createElement("div"),mxUtils.setPrefixedStyle(f.style, -"borderRadius","6px"),f.style.border="3px dotted lightGray",f.style.textAlign="center",f.style.padding="8px",f.style.color="#B3B3B3",mxUtils.write(f,mxResources.get("dragElementsHere"))),c.appendChild(f)):this.addLibraryEntries(b,c)});if(null!=this.sidebar&&null!=b)for(var e=0;e<b.length;e++)mxUtils.bind(this,function(a){var b=a.data;null!=b&&null!=a.title?this.sidebar.addEntry(a.title,mxUtils.bind(this,function(){b=this.convertDataUri(b);var c="shape=image;verticalLabelPosition=bottom;verticalAlign=top;imageAspect=0;"; -"fixed"==a.aspect&&(c+="aspect=fixed;");return this.sidebar.createVertexTemplate(c+"image="+b,a.w,a.h,"",a.title||"",!1,!1,!0)})):null!=a.xml&&null!=a.title&&this.sidebar.addEntry(a.title,mxUtils.bind(this,function(){var b=this.stringToCells(this.editor.graph.decompress(a.xml));return this.sidebar.createVertexTemplateFromCells(b,a.w,a.h,a.title||"",!0,!1,!0)}))})(b[e]);c=null!=c&&0<c.length?c:a.getTitle();var k=this.sidebar.addPalette(a.getHash(),c,!0,mxUtils.bind(this,function(a){h(b,a)}));this.repositionLibrary(d); -var g=k.parentNode.previousSibling;c=g.getAttribute("title");null!=c&&0<c.length&&".scratchpad"!=a.title&&g.setAttribute("title",this.getLibraryStorageHint(a)+"\n"+c);var t=document.createElement("div");t.style.position="absolute";t.style.right="0px";t.style.top="0px";t.style.padding="8px";mxClient.IS_QUIRKS||8==document.documentMode||(t.style.backgroundColor="inherit");g.style.position="relative";var l=document.createElement("img");l.setAttribute("src",Dialog.prototype.closeImage);l.setAttribute("title", -mxResources.get("close"));l.setAttribute("valign","absmiddle");l.setAttribute("border","0");l.style.margin="0 3px";var m=null;if(".scratchpad"!=a.title||this.closableScratchpad)t.appendChild(l),mxEvent.addListener(l,"click",mxUtils.bind(this,function(b){if(!mxEvent.isConsumed(b)){var c=mxUtils.bind(this,function(){this.closeLibrary(a)});null!=m?this.confirm(mxResources.get("allChangesLost"),null,c,mxResources.get("cancel"),mxResources.get("discardChanges")):c();mxEvent.consume(b)}}));if(a.isEditable()){var n= -this.editor.graph,z=null,F=mxUtils.bind(this,function(c){this.showLibraryDialog(a.getTitle(),k,b,a,a.getMode());mxEvent.consume(c)}),E=mxUtils.bind(this,function(c){a.setModified(!0);a.isAutosave()?(null!=z&&null!=z.parentNode&&z.parentNode.removeChild(z),z=l.cloneNode(!1),z.setAttribute("src",Editor.spinImage),z.setAttribute("title",mxResources.get("saving")),z.style.cursor="default",z.style.marginRight="2px",z.style.marginTop="-2px",t.insertBefore(z,t.firstChild),g.style.paddingRight=18*t.childNodes.length+ -"px",this.saveLibrary(a.getTitle(),b,a,a.getMode(),!0,!0,function(){null!=z&&null!=z.parentNode&&(z.parentNode.removeChild(z),g.style.paddingRight=18*t.childNodes.length+"px")})):null==m&&(m=l.cloneNode(!1),m.setAttribute("src",IMAGE_PATH+"/download.png"),m.setAttribute("title",mxResources.get("save")),t.insertBefore(m,t.firstChild),mxEvent.addListener(m,"click",mxUtils.bind(this,function(c){this.saveLibrary(a.getTitle(),b,a,a.getMode(),a.constructor==LocalLibrary,!0,function(){null==m||a.isModified()|| -(g.style.paddingRight=18*t.childNodes.length+"px",m.parentNode.removeChild(m),m=null)});mxEvent.consume(c)})),g.style.paddingRight=18*t.childNodes.length+"px")}),G=mxUtils.bind(this,function(a,c,d,h){a=n.cloneCells(mxUtils.sortCells(n.model.getTopmostCells(a)));for(var e=0;e<a.length;e++){var g=n.getCellGeometry(a[e]);null!=g&&g.translate(-c.x,-c.y)}k.appendChild(this.sidebar.createVertexTemplateFromCells(a,c.width,c.height,h||"",!0,!1,!1));a={xml:this.editor.graph.compress(mxUtils.getXml(this.editor.graph.encodeCells(a))), -w:c.width,h:c.height};null!=h&&(a.title=h);b.push(a);E(d);null!=f&&null!=f.parentNode&&0<b.length&&(f.parentNode.removeChild(f),f=null)}),I=mxUtils.bind(this,function(a){if(n.isSelectionEmpty())n.getRubberband().isActive()?(n.getRubberband().execute(a),n.getRubberband().reset()):this.showError(mxResources.get("error"),mxResources.get("nothingIsSelected"),mxResources.get("ok"));else{var b=n.getSelectionCells(),c=n.view.getBounds(b),d=n.view.scale;c.x/=d;c.y/=d;c.width/=d;c.height/=d;c.x-=n.view.translate.x; -c.y-=n.view.translate.y;G(b,c)}mxEvent.consume(a)});k.style.border="3px solid transparent";mxEvent.addGestureListeners(k,function(){},mxUtils.bind(this,function(a){n.isMouseDown&&null!=n.panningManager&&null!=n.graphHandler.shape&&(n.graphHandler.shape.node.style.visibility="hidden",null!=f?f.style.border="3px dotted rgb(254, 137, 12)":k.style.border="3px dotted rgb(254, 137, 12)",k.style.cursor="copy",n.panningManager.stop(),n.autoScroll=!1,null!=n.graphHandler.guide&&n.graphHandler.guide.setVisible(!1), -null!=n.graphHandler.hint&&(n.graphHandler.hint.style.visibility="hidden"),mxEvent.consume(a))}),mxUtils.bind(this,function(a){n.isMouseDown&&null!=n.panningManager&&null!=n.graphHandler&&(k.style.border="3px solid transparent",null!=f&&(f.style.border="3px dotted lightGray"),k.style.cursor="default",this.sidebar.showTooltips=!0,n.panningManager.stop(),n.graphHandler.reset(),n.isMouseDown=!1,n.autoScroll=!0,I(a),mxEvent.consume(a))}));mxEvent.addListener(k,"mouseleave",mxUtils.bind(this,function(a){n.isMouseDown&& -null!=n.graphHandler.shape&&(n.graphHandler.shape.node.style.visibility="visible",k.style.border="3px solid transparent",k.style.cursor="",n.autoScroll=!0,null!=n.graphHandler.guide&&n.graphHandler.guide.setVisible(!0),null!=n.graphHandler.hint&&(n.graphHandler.hint.style.visibility="visible"),null!=f&&(f.style.border="3px dotted lightGray"))}));Graph.fileSupport&&(mxEvent.addListener(k,"dragover",mxUtils.bind(this,function(a){null!=f?f.style.border="3px dotted rgb(254, 137, 12)":k.style.border="3px dotted rgb(254, 137, 12)"; -a.dataTransfer.dropEffect="copy";k.style.cursor="copy";this.sidebar.hideTooltip();a.stopPropagation();a.preventDefault()})),mxEvent.addListener(k,"drop",mxUtils.bind(this,function(a){k.style.border="3px solid transparent";k.style.cursor="";null!=f&&(f.style.border="3px dotted lightGray");0<a.dataTransfer.files.length&&this.importFiles(a.dataTransfer.files,0,0,this.maxImageSize,mxUtils.bind(this,function(c,d,e,g,t,l,m,q,n){if(null!=c&&"image/"==d.substring(0,6))c="shape=image;verticalLabelPosition=bottom;verticalAlign=top;aspect=fixed;image="+ -this.convertDataUri(c),c=[new mxCell("",new mxGeometry(0,0,t,l),c)],c[0].vertex=!0,G(c,new mxRectangle(0,0,t,l),a,mxEvent.isAltDown(a)?null:m.substring(0,m.lastIndexOf(".")).replace(/_/g," ")),null!=f&&null!=f.parentNode&&0<b.length&&(f.parentNode.removeChild(f),f=null);else{var v=!1,u=mxUtils.bind(this,function(c,d){if(null!=c&&"text/xml"==d){var e=mxUtils.parseXml(c);if("mxlibrary"==e.documentElement.nodeName)try{var g=JSON.parse(mxUtils.getTextContent(e.documentElement));h(g,k);b=b.concat(g);E(a); -this.spinner.stop();v=!0}catch(X){}else if("mxfile"==e.documentElement.nodeName)try{for(var t=e.documentElement.getElementsByTagName("diagram"),e=0;e<t.length;e++){var g=mxUtils.getTextContent(t[e]),l=this.stringToCells(this.editor.graph.decompress(g)),m=this.editor.graph.getBoundingBoxFromGeometry(l);G(l,new mxRectangle(0,0,m.width,m.height),a)}v=!0}catch(X){null!=window.console&&console.log("error in drop handler:",X)}}v||(this.spinner.stop(),this.handleError({message:mxResources.get("errorLoadingFile")})); -null!=f&&null!=f.parentNode&&0<b.length&&(f.parentNode.removeChild(f),f=null)});null!=n&&null!=m&&(/(\.v(dx|sdx?))($|\?)/i.test(m)||/(\.vs(x|sx?))($|\?)/i.test(m))?this.importVisio(n,function(a){u(a,"text/xml")},null,m):!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(c,m)&&null!=n?this.parseFile(n,mxUtils.bind(this,function(a){4==a.readyState&&(this.spinner.stop(),200<=a.status&&299>=a.status?u(a.responseText,"text/xml"):this.handleError({message:mxResources.get(413==a.status? -"drawingTooLarge":"invalidOrMissingFile")},mxResources.get("errorLoadingFile")))})):u(c,d)}}));a.stopPropagation();a.preventDefault()})),mxEvent.addListener(k,"dragleave",function(a){null!=f?f.style.border="3px dotted lightGray":(k.style.border="3px solid transparent",k.style.cursor="");a.stopPropagation();a.preventDefault()}));l=l.cloneNode(!1);l.setAttribute("src",Editor.editImage);l.setAttribute("title",mxResources.get("edit"));t.insertBefore(l,t.firstChild);mxEvent.addListener(l,"click",F);mxEvent.addListener(k, -"dblclick",function(a){mxEvent.getSource(a)==k&&F(a)});c=l.cloneNode(!1);c.setAttribute("src",Editor.plusImage);c.setAttribute("title",mxResources.get("add"));t.insertBefore(c,t.firstChild);mxEvent.addListener(c,"click",I);this.isOffline()||".scratchpad"!=a.title||null==EditorUi.scratchpadHelpLink||(c=document.createElement("span"),c.setAttribute("title",mxResources.get("help")),c.style.cssText="color:#a3a3a3;text-decoration:none;margin-right:2px;",mxUtils.write(c,"?"),mxEvent.addGestureListeners(c, -mxUtils.bind(this,function(a){this.openLink(EditorUi.scratchpadHelpLink);mxEvent.consume(a)})),t.insertBefore(c,t.firstChild))}g.appendChild(t);g.style.paddingRight=18*t.childNodes.length+"px"}};EditorUi.prototype.addLibraryEntries=function(a,b){for(var c=0;c<a.length;c++){var d=a[c],f=d.data;if(null!=f){var f=this.convertDataUri(f),h="shape=image;verticalLabelPosition=bottom;verticalAlign=top;imageAspect=0;";"fixed"==d.aspect&&(h+="aspect=fixed;");b.appendChild(this.sidebar.createVertexTemplate(h+ +b.getTitle()?b.getTitle():this.defaultFilename;if(/(\.xml)$/i.test(b)||/(\.html)$/i.test(b)||/(\.svg)$/i.test(b)||/(\.png)$/i.test(b))b=b.substring(0,b.lastIndexOf("."));!a&&null!=this.pages&&1<this.pages.length&&null!=this.currentPage&&null!=this.currentPage.node.getAttribute("name")&&0<this.currentPage.getName().length&&(b=b+"-"+this.currentPage.getName());return b};EditorUi.prototype.downloadFile=function(a,b,c,d,e,g,k){try{d=null!=d?d:this.editor.graph.isSelectionEmpty();var f=this.getBaseFilename(!e), +h=f+"."+a;if("xml"==a){var n='<?xml version="1.0" encoding="UTF-8"?>\n'+(b?mxUtils.getXml(this.editor.getGraphXml(d)):this.getFileData(!0,null,null,null,d,e));this.saveData(h,a,n,"text/xml")}else if("html"==a)n=this.getHtml2(this.getFileData(!0),this.editor.graph,f),this.saveData(h,a,n,"text/html");else if("svg"!=a&&"xmlsvg"!=a||!this.spinner.spin(document.body,mxResources.get("export")))"xmlpng"==a?h=f+".png":"jpeg"==a&&(h=f+".jpg"),this.saveRequest(h,a,mxUtils.bind(this,function(b,c){try{var f= +this.editor.graph.pageVisible;null!=g&&(this.editor.graph.pageVisible=g);var e=this.createDownloadRequest(b,a,d,c,k);this.editor.graph.pageVisible=f;return e}catch(A){this.handleError(A)}}));else{var l=null,p=mxUtils.bind(this,function(a){a.length<=MAX_REQUEST_SIZE?this.saveData(h,"svg",a,"image/svg+xml"):this.handleError({message:mxResources.get("drawingTooLarge")},mxResources.get("error"),mxUtils.bind(this,function(){mxUtils.popup(l)}))});if("svg"==a){var u=this.editor.graph.background;if(k||u== +mxConstants.NONE)u=null;var v=this.editor.graph.getSvg(u,null,null,null,null,d);c&&this.editor.graph.addSvgShadow(v);this.convertImages(v,mxUtils.bind(this,mxUtils.bind(this,function(a){this.spinner.stop();p('<?xml version="1.0" encoding="UTF-8"?>\n<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">\n'+mxUtils.getXml(a))})))}else h=f+".svg",l=this.getFileData(!1,!0,null,mxUtils.bind(this,function(a){this.spinner.stop();p(a)}),d)}}catch(F){this.handleError(F)}}; +EditorUi.prototype.createDownloadRequest=function(a,b,c,d,e){var f=this.editor.graph.getGraphBounds();c=this.getFileData(!0,null,null,null,c,"xmlpng"!=b);var h="";if(f.width*f.height>MAX_AREA||c.length>MAX_REQUEST_SIZE)throw{message:mxResources.get("drawingTooLarge")};f="0";if("xmlpng"==b&&(f="1",b="png",null!=this.pages&&null!=this.currentPage))for(var n=0;n<this.pages.length;n++)if(this.pages[n]==this.currentPage){h="&from="+n;break}n=this.editor.graph.background;"png"==b&&e&&(n=mxConstants.NONE); +return new mxXmlRequest(EXPORT_URL,"format="+b+h+"&bg="+(null!=n?n:mxConstants.NONE)+"&base64="+d+"&embedXml="+f+"&xml="+encodeURIComponent(c)+(null!=a?"&filename="+encodeURIComponent(a):""))};EditorUi.prototype.setMode=function(a,b){this.mode=a};EditorUi.prototype.loadDescriptor=function(a,b,c){var d=window.location.hash,f=mxUtils.bind(this,function(c){var f=null!=a.data?a.data:"";null!=c&&0<c.length&&(0<f.length&&(f+="\n"),f+=c);c=new LocalFile(this,"csv"!=a.format&&0<f.length?f:this.emptyDiagramXml, +null!=urlParams.title?decodeURIComponent(urlParams.title):this.defaultFilename,!0);c.getHash=function(){return d};this.fileLoaded(c);"csv"==a.format&&this.importCsv(f,mxUtils.bind(this,function(a){this.editor.undoManager.clear();this.editor.setModified(!1);this.editor.setStatus("")}));if(null!=a.update){var e=null!=a.interval?parseInt(a.interval):6E4,h=null,n=mxUtils.bind(this,function(){var b=this.currentPage;mxUtils.post(a.update,"xml="+encodeURIComponent(mxUtils.getXml(this.editor.getGraphXml())), +mxUtils.bind(this,function(a){b===this.currentPage&&(200<=a.getStatus()&&300>=a.getStatus()?(this.updateDiagram(a.getText()),g()):this.handleError({message:mxResources.get("error")+" "+a.getStatus()}))}),mxUtils.bind(this,function(a){this.handleError(a)}))}),g=mxUtils.bind(this,function(){window.clearTimeout(h);h=window.setTimeout(n,e)});this.editor.addListener("pageSelected",mxUtils.bind(this,function(){g();n()}));g();n()}null!=b&&b()});if(null!=a.url&&0<a.url.length){var e=a.url;/^https?:\/\//.test(e)&& +!this.isCorsEnabledForUrl(e)&&(e=PROXY_URL+"?url="+encodeURIComponent(a.url));this.loadUrl(e,mxUtils.bind(this,function(a){f(a)}),mxUtils.bind(this,function(a){null!=c&&c(a)}))}else f("")};EditorUi.prototype.updateDiagram=function(a){function b(a){var b=new mxCellOverlay(a.image||d.warningImage,a.tooltip,a.align,a.valign,a.offset);b.addListener(mxEvent.CLICK,function(b,c){editorUi.alert(a.tooltip)});return b}var c=null;if(null!=a&&0<a.length&&(c=mxUtils.parseXml(a),a=null!=c?c.documentElement:null, +null!=a&&"updates"==a.nodeName)){var d=this.editor.graph,f=d.getModel();f.beginUpdate();var e=null;try{for(a=a.firstChild;null!=a;){if("update"==a.nodeName){var g=f.getCell(a.getAttribute("id"));if(null!=g){try{var k=a.getAttribute("value");if(null!=k){var l=mxUtils.parseXml(k).documentElement;if(null!=l)if("1"==l.getAttribute("replace-value"))f.setValue(g,l);else for(var t=l.attributes,m=0;m<t.length;m++)d.setAttributeForCell(g,t[m].nodeName,0<t[m].nodeValue.length?t[m].nodeValue:null)}}catch(A){null!= +window.console&&console.log("Error in value for "+g.id+": "+A)}try{var x=a.getAttribute("style");null!=x&&d.model.setStyle(g,x)}catch(A){null!=window.console&&console.log("Error in style for "+g.id+": "+A)}try{var C=a.getAttribute("icon");if(null!=C){var z=0<C.length?JSON.parse(C):null;null!=z&&z.append||d.removeCellOverlays(g);null!=z&&d.addCellOverlay(g,b(z))}}catch(A){null!=window.console&&console.log("Error in icon for "+g.id+": "+A)}try{var F=a.getAttribute("geometry");if(null!=F){var F=JSON.parse(F), +E=d.getCellGeometry(g);if(null!=E){E=E.clone();for(key in F){var G=parseFloat(F[key]);"dx"==key?E.x+=G:"dy"==key?E.y+=G:"dw"==key?E.width+=G:"dh"==key?E.height+=G:E[key]=parseFloat(F[key])}d.model.setGeometry(g,E)}}}catch(A){null!=window.console&&console.log("Error in icon for "+g.id+": "+A)}}}else if("model"==a.nodeName){for(var I=a.firstChild;null!=I&&I.nodeType!=mxConstants.NODETYPE_ELEMENT;)I=I.nextSibling;null!=I&&(new mxCodec(a.firstChild)).decode(I,f)}else if("view"==a.nodeName){if(a.hasAttribute("scale")&& +(d.view.scale=parseFloat(a.getAttribute("scale"))),a.hasAttribute("dx")||a.hasAttribute("dy"))d.view.translate=new mxPoint(parseFloat(a.getAttribute("dx")||0),parseFloat(a.getAttribute("dy")||0))}else"fit"==a.nodeName&&(e=a.hasAttribute("max-scale")?parseFloat(a.getAttribute("max-scale")):1);a=a.nextSibling}}finally{f.endUpdate()}null!=e&&this.chromelessResize&&this.chromelessResize(!0,e)}return c};EditorUi.prototype.getCopyFilename=function(a,b){var c=null!=a&&null!=a.getTitle()?a.getTitle():this.defaultFilename, +d="",f=c.lastIndexOf(".");0<=f&&(d=c.substring(f),c=c.substring(0,f));if(b)var e=new Date,f=e.getFullYear(),h=e.getMonth()+1,g=e.getDate(),k=e.getHours(),t=e.getMinutes(),e=e.getSeconds(),c=c+("-"+(f+"-"+h+"-"+g+"-"+k+"-"+t+"-"+e));return c=mxResources.get("copyOf",[c])+d};EditorUi.prototype.fileLoaded=function(a){var b=!1;this.hideDialog();var c=this.getCurrentFile();this.setCurrentFile(null);null!=c&&(c.removeListener(this.descriptorChangedListener),c.close());this.editor.graph.model.clear();this.editor.undoManager.clear(); +var d=mxUtils.bind(this,function(){this.setGraphEnabled(!1);this.setCurrentFile(null);null!=c&&this.updateDocumentTitle();this.editor.graph.model.clear();this.editor.undoManager.clear();this.setBackgroundImage(null);null!=window.location.hash&&0<window.location.hash.length&&(window.location.hash="");null!=this.fname&&(this.fnameWrapper.style.display="none",this.fname.innerHTML="",this.fname.setAttribute("title",mxResources.get("rename")));this.editor.setStatus("");this.updateUi();this.showSplash()}); +if(null!=a)try{this.setCurrentFile(a);a.addListener("descriptorChanged",this.descriptorChangedListener);a.addListener("contentChanged",this.descriptorChangedListener);a.open();this.setGraphEnabled(!0);this.setMode(a.getMode());this.editor.undoManager.clear();this.descriptorChanged();this.updateUi();null==a.realtime&&(a.isEditable()?this.editor.setStatus(""):this.editor.setStatus('<span class="geStatusAlert" style="margin-left:8px;">'+mxUtils.htmlEntities(mxResources.get("readOnly"))+"</span>"));!this.editor.isChromelessView()|| +this.editor.editable?(this.editor.graph.selectUnlockedLayer(),this.showLayersDialog(),this.restoreLibraries(),window.self!==window.top&&window.focus()):this.editor.graph.isLightboxView()&&this.lightboxFit();this.chromelessResize&&this.chromelessResize();this.editor.fireEvent(new mxEventObject("fileLoaded"));b=!0;this.isOffline()||null==a.getMode()||this.logEvent({category:"File",action:"open",label:a.getMode()});if(this.mode==a.getMode()&&a.getMode()!=App.MODE_DEVICE&&null!=a.getMode())try{this.addRecent({id:a.getHash(), +title:a.getTitle(),mode:a.getMode()})}catch(p){}try{mxSettings.setOpenCounter(mxSettings.getOpenCounter()+1),mxSettings.save()}catch(p){}}catch(p){null!=window.console&&console.log("error in fileLoaded:",a,p);if(EditorUi.enableLogging&&!this.isOffline())try{(new Image).src=(null!=window.DRAWIO_LOG_URL?window.DRAWIO_LOG_URL:"")+"/log?v="+encodeURIComponent(EditorUi.VERSION)+"&msg=errorInFileLoaded:url:"+encodeURIComponent(window.location.href)+(null!=p&&null!=p.message?":err:"+encodeURIComponent(p.message): +"")+(null!=p&&null!=p.stack?"&stack="+encodeURIComponent(p.stack):"")}catch(q){}this.handleError(p,mxResources.get("errorLoadingFile"),mxUtils.bind(this,function(){null!=urlParams.url&&this.spinner.spin(document.body,mxResources.get("reconnecting"))?window.location.search=this.getSearch(["url"]):null!=c?c.constructor==DriveFile?this.loadFile(c.getHash()):this.fileLoaded(c):d()}))}else d();return b};EditorUi.prototype.descriptorChanged=function(){};EditorUi.prototype.logEvent=function(a){if(EditorUi.enableLogging)try{var b= +null!=window.DRAWIO_LOG_URL?window.DRAWIO_LOG_URL:"";(new Image).src=b+"/images/1x1.png?v="+encodeURIComponent(EditorUi.VERSION)+(null!=a?"&data="+encodeURIComponent(JSON.stringify(a)):"")}catch(n){}};EditorUi.prototype.restoreLibraries=function(){};EditorUi.prototype.saveLibrary=function(a,b,c,d,e,g,k){};EditorUi.prototype.isScratchpadEnabled=function(){return isLocalStorage||mxClient.IS_CHROMEAPP};EditorUi.prototype.toggleScratchpad=function(){this.isScratchpadEnabled()&&(null==this.scratchpad? +this.getLocalData(".scratchpad",mxUtils.bind(this,function(a){null==a&&(a=this.emptyLibraryXml);this.loadLibrary(new StorageLibrary(this,a,".scratchpad"))})):this.closeLibrary(this.scratchpad))};EditorUi.prototype.createLibraryDataFromImages=function(a){var b=mxUtils.createXmlDocument(),c=b.createElement("mxlibrary");mxUtils.setTextContent(c,JSON.stringify(a));b.appendChild(c);return mxUtils.getXml(b)};EditorUi.prototype.closeLibrary=function(a){null!=a&&(this.removeLibrarySidebar(a.getHash()),a.constructor!= +LocalLibrary&&mxSettings.removeCustomLibrary(a.getHash()),".scratchpad"==a.title&&(this.scratchpad=null))};EditorUi.prototype.removeLibrarySidebar=function(a){var b=this.sidebar.palettes[a];if(null!=b){for(var c=0;c<b.length;c++)b[c].parentNode.removeChild(b[c]);delete this.sidebar.palettes[a]}};EditorUi.prototype.repositionLibrary=function(a){var b=this.sidebar.container;if(null==a){var c=this.sidebar.palettes["L.scratchpad"];null==c&&(c=this.sidebar.palettes.search);null!=c&&(a=c[c.length-1].nextSibling)}a= +null!=a?a:b.firstChild.nextSibling.nextSibling;var c=b.lastChild,d=c.previousSibling;b.insertBefore(c,a);b.insertBefore(d,c)};EditorUi.prototype.loadLibrary=function(a){var b=mxUtils.parseXml(a.getData());if("mxlibrary"==b.documentElement.nodeName){var c=JSON.parse(mxUtils.getTextContent(b.documentElement));this.libraryLoaded(a,c,b.documentElement.getAttribute("title"))}else throw{message:mxResources.get("notALibraryFile")};};EditorUi.prototype.getLibraryStorageHint=function(a){return""};EditorUi.prototype.libraryLoaded= +function(a,b,c){if(null!=this.sidebar){a.constructor!=LocalLibrary&&mxSettings.addCustomLibrary(a.getHash());".scratchpad"==a.title&&(this.scratchpad=a);var d=this.sidebar.palettes[a.getHash()],d=null!=d?d[d.length-1].nextSibling:null;this.removeLibrarySidebar(a.getHash());var f=null,e=mxUtils.bind(this,function(b,c){0==b.length&&a.isEditable()?(null==f&&(f=document.createElement("div"),mxUtils.setPrefixedStyle(f.style,"borderRadius","6px"),f.style.border="3px dotted lightGray",f.style.textAlign= +"center",f.style.padding="8px",f.style.color="#B3B3B3",mxUtils.write(f,mxResources.get("dragElementsHere"))),c.appendChild(f)):this.addLibraryEntries(b,c)});if(null!=this.sidebar&&null!=b)for(var h=0;h<b.length;h++)mxUtils.bind(this,function(a){var b=a.data;null!=b&&null!=a.title?this.sidebar.addEntry(a.title,mxUtils.bind(this,function(){b=this.convertDataUri(b);var c="shape=image;verticalLabelPosition=bottom;verticalAlign=top;imageAspect=0;";"fixed"==a.aspect&&(c+="aspect=fixed;");return this.sidebar.createVertexTemplate(c+ +"image="+b,a.w,a.h,"",a.title||"",!1,!1,!0)})):null!=a.xml&&null!=a.title&&this.sidebar.addEntry(a.title,mxUtils.bind(this,function(){var b=this.stringToCells(this.editor.graph.decompress(a.xml));return this.sidebar.createVertexTemplateFromCells(b,a.w,a.h,a.title||"",!0,!1,!0)}))})(b[h]);c=null!=c&&0<c.length?c:a.getTitle();var n=this.sidebar.addPalette(a.getHash(),c,!0,mxUtils.bind(this,function(a){e(b,a)}));this.repositionLibrary(d);var g=n.parentNode.previousSibling;c=g.getAttribute("title");null!= +c&&0<c.length&&".scratchpad"!=a.title&&g.setAttribute("title",this.getLibraryStorageHint(a)+"\n"+c);var t=document.createElement("div");t.style.position="absolute";t.style.right="0px";t.style.top="0px";t.style.padding="8px";mxClient.IS_QUIRKS||8==document.documentMode||(t.style.backgroundColor="inherit");g.style.position="relative";var k=document.createElement("img");k.setAttribute("src",Dialog.prototype.closeImage);k.setAttribute("title",mxResources.get("close"));k.setAttribute("valign","absmiddle"); +k.setAttribute("border","0");k.style.margin="0 3px";var l=null;if(".scratchpad"!=a.title||this.closableScratchpad)t.appendChild(k),mxEvent.addListener(k,"click",mxUtils.bind(this,function(b){if(!mxEvent.isConsumed(b)){var c=mxUtils.bind(this,function(){this.closeLibrary(a)});null!=l?this.confirm(mxResources.get("allChangesLost"),null,c,mxResources.get("cancel"),mxResources.get("discardChanges")):c();mxEvent.consume(b)}}));if(a.isEditable()){var m=this.editor.graph,z=null,F=mxUtils.bind(this,function(c){this.showLibraryDialog(a.getTitle(), +n,b,a,a.getMode());mxEvent.consume(c)}),E=mxUtils.bind(this,function(c){a.setModified(!0);a.isAutosave()?(null!=z&&null!=z.parentNode&&z.parentNode.removeChild(z),z=k.cloneNode(!1),z.setAttribute("src",Editor.spinImage),z.setAttribute("title",mxResources.get("saving")),z.style.cursor="default",z.style.marginRight="2px",z.style.marginTop="-2px",t.insertBefore(z,t.firstChild),g.style.paddingRight=18*t.childNodes.length+"px",this.saveLibrary(a.getTitle(),b,a,a.getMode(),!0,!0,function(){null!=z&&null!= +z.parentNode&&(z.parentNode.removeChild(z),g.style.paddingRight=18*t.childNodes.length+"px")})):null==l&&(l=k.cloneNode(!1),l.setAttribute("src",IMAGE_PATH+"/download.png"),l.setAttribute("title",mxResources.get("save")),t.insertBefore(l,t.firstChild),mxEvent.addListener(l,"click",mxUtils.bind(this,function(c){this.saveLibrary(a.getTitle(),b,a,a.getMode(),a.constructor==LocalLibrary,!0,function(){null==l||a.isModified()||(g.style.paddingRight=18*t.childNodes.length+"px",l.parentNode.removeChild(l), +l=null)});mxEvent.consume(c)})),g.style.paddingRight=18*t.childNodes.length+"px")}),G=mxUtils.bind(this,function(a,c,d,e){a=m.cloneCells(mxUtils.sortCells(m.model.getTopmostCells(a)));for(var h=0;h<a.length;h++){var g=m.getCellGeometry(a[h]);null!=g&&g.translate(-c.x,-c.y)}n.appendChild(this.sidebar.createVertexTemplateFromCells(a,c.width,c.height,e||"",!0,!1,!1));a={xml:this.editor.graph.compress(mxUtils.getXml(this.editor.graph.encodeCells(a))),w:c.width,h:c.height};null!=e&&(a.title=e);b.push(a); +E(d);null!=f&&null!=f.parentNode&&0<b.length&&(f.parentNode.removeChild(f),f=null)}),I=mxUtils.bind(this,function(a){if(m.isSelectionEmpty())m.getRubberband().isActive()?(m.getRubberband().execute(a),m.getRubberband().reset()):this.showError(mxResources.get("error"),mxResources.get("nothingIsSelected"),mxResources.get("ok"));else{var b=m.getSelectionCells(),c=m.view.getBounds(b),d=m.view.scale;c.x/=d;c.y/=d;c.width/=d;c.height/=d;c.x-=m.view.translate.x;c.y-=m.view.translate.y;G(b,c)}mxEvent.consume(a)}); +n.style.border="3px solid transparent";mxEvent.addGestureListeners(n,function(){},mxUtils.bind(this,function(a){m.isMouseDown&&null!=m.panningManager&&null!=m.graphHandler.shape&&(m.graphHandler.shape.node.style.visibility="hidden",null!=f?f.style.border="3px dotted rgb(254, 137, 12)":n.style.border="3px dotted rgb(254, 137, 12)",n.style.cursor="copy",m.panningManager.stop(),m.autoScroll=!1,null!=m.graphHandler.guide&&m.graphHandler.guide.setVisible(!1),null!=m.graphHandler.hint&&(m.graphHandler.hint.style.visibility= +"hidden"),mxEvent.consume(a))}),mxUtils.bind(this,function(a){m.isMouseDown&&null!=m.panningManager&&null!=m.graphHandler&&(n.style.border="3px solid transparent",null!=f&&(f.style.border="3px dotted lightGray"),n.style.cursor="default",this.sidebar.showTooltips=!0,m.panningManager.stop(),m.graphHandler.reset(),m.isMouseDown=!1,m.autoScroll=!0,I(a),mxEvent.consume(a))}));mxEvent.addListener(n,"mouseleave",mxUtils.bind(this,function(a){m.isMouseDown&&null!=m.graphHandler.shape&&(m.graphHandler.shape.node.style.visibility= +"visible",n.style.border="3px solid transparent",n.style.cursor="",m.autoScroll=!0,null!=m.graphHandler.guide&&m.graphHandler.guide.setVisible(!0),null!=m.graphHandler.hint&&(m.graphHandler.hint.style.visibility="visible"),null!=f&&(f.style.border="3px dotted lightGray"))}));Graph.fileSupport&&(mxEvent.addListener(n,"dragover",mxUtils.bind(this,function(a){null!=f?f.style.border="3px dotted rgb(254, 137, 12)":n.style.border="3px dotted rgb(254, 137, 12)";a.dataTransfer.dropEffect="copy";n.style.cursor= +"copy";this.sidebar.hideTooltip();a.stopPropagation();a.preventDefault()})),mxEvent.addListener(n,"drop",mxUtils.bind(this,function(a){n.style.border="3px solid transparent";n.style.cursor="";null!=f&&(f.style.border="3px dotted lightGray");0<a.dataTransfer.files.length&&this.importFiles(a.dataTransfer.files,0,0,this.maxImageSize,mxUtils.bind(this,function(c,d,h,g,t,k,l,m,u){if(null!=c&&"image/"==d.substring(0,6))c="shape=image;verticalLabelPosition=bottom;verticalAlign=top;aspect=fixed;image="+this.convertDataUri(c), +c=[new mxCell("",new mxGeometry(0,0,t,k),c)],c[0].vertex=!0,G(c,new mxRectangle(0,0,t,k),a,mxEvent.isAltDown(a)?null:l.substring(0,l.lastIndexOf(".")).replace(/_/g," ")),null!=f&&null!=f.parentNode&&0<b.length&&(f.parentNode.removeChild(f),f=null);else{var p=!1,v=mxUtils.bind(this,function(c,d){if(null!=c&&"text/xml"==d){var h=mxUtils.parseXml(c);if("mxlibrary"==h.documentElement.nodeName)try{var g=JSON.parse(mxUtils.getTextContent(h.documentElement));e(g,n);b=b.concat(g);E(a);this.spinner.stop(); +p=!0}catch(X){}else if("mxfile"==h.documentElement.nodeName)try{for(var t=h.documentElement.getElementsByTagName("diagram"),h=0;h<t.length;h++){var g=mxUtils.getTextContent(t[h]),k=this.stringToCells(this.editor.graph.decompress(g)),l=this.editor.graph.getBoundingBoxFromGeometry(k);G(k,new mxRectangle(0,0,l.width,l.height),a)}p=!0}catch(X){null!=window.console&&console.log("error in drop handler:",X)}}p||(this.spinner.stop(),this.handleError({message:mxResources.get("errorLoadingFile")}));null!=f&& +null!=f.parentNode&&0<b.length&&(f.parentNode.removeChild(f),f=null)});null!=u&&null!=l&&(/(\.v(dx|sdx?))($|\?)/i.test(l)||/(\.vs(x|sx?))($|\?)/i.test(l))?this.importVisio(u,function(a){v(a,"text/xml")},null,l):!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(c,l)&&null!=u?this.parseFile(u,mxUtils.bind(this,function(a){4==a.readyState&&(this.spinner.stop(),200<=a.status&&299>=a.status?v(a.responseText,"text/xml"):this.handleError({message:mxResources.get(413==a.status?"drawingTooLarge": +"invalidOrMissingFile")},mxResources.get("errorLoadingFile")))})):v(c,d)}}));a.stopPropagation();a.preventDefault()})),mxEvent.addListener(n,"dragleave",function(a){null!=f?f.style.border="3px dotted lightGray":(n.style.border="3px solid transparent",n.style.cursor="");a.stopPropagation();a.preventDefault()}));k=k.cloneNode(!1);k.setAttribute("src",Editor.editImage);k.setAttribute("title",mxResources.get("edit"));t.insertBefore(k,t.firstChild);mxEvent.addListener(k,"click",F);mxEvent.addListener(n, +"dblclick",function(a){mxEvent.getSource(a)==n&&F(a)});c=k.cloneNode(!1);c.setAttribute("src",Editor.plusImage);c.setAttribute("title",mxResources.get("add"));t.insertBefore(c,t.firstChild);mxEvent.addListener(c,"click",I);this.isOffline()||".scratchpad"!=a.title||null==EditorUi.scratchpadHelpLink||(c=document.createElement("span"),c.setAttribute("title",mxResources.get("help")),c.style.cssText="color:#a3a3a3;text-decoration:none;margin-right:2px;",mxUtils.write(c,"?"),mxEvent.addGestureListeners(c, +mxUtils.bind(this,function(a){this.openLink(EditorUi.scratchpadHelpLink);mxEvent.consume(a)})),t.insertBefore(c,t.firstChild))}g.appendChild(t);g.style.paddingRight=18*t.childNodes.length+"px"}};EditorUi.prototype.addLibraryEntries=function(a,b){for(var c=0;c<a.length;c++){var d=a[c],f=d.data;if(null!=f){var f=this.convertDataUri(f),e="shape=image;verticalLabelPosition=bottom;verticalAlign=top;imageAspect=0;";"fixed"==d.aspect&&(e+="aspect=fixed;");b.appendChild(this.sidebar.createVertexTemplate(e+ "image="+f,d.w,d.h,"",d.title||"",!1,!1,!0))}else null!=d.xml&&(f=this.stringToCells(this.editor.graph.decompress(d.xml)),0<f.length&&b.appendChild(this.sidebar.createVertexTemplateFromCells(f,d.w,d.h,d.title||"",!0,!1,!0)))}};EditorUi.prototype.getResource=function(a){return null!=a?a[mxLanguage]||a.main:null};"1"==urlParams.offline||EditorUi.isElectronApp?EditorUi.prototype.footerHeight=4:("1"==urlParams.savesidebar&&(Sidebar.prototype.thumbWidth=64,Sidebar.prototype.thumbHeight=64),EditorUi.prototype.footerHeight= 760<=screen.width&&240<=screen.height?46:0,EditorUi.prototype.createFooter=function(){var a=document.getElementById("geFooter");if(null!=a){a.style.visibility="visible";var b=document.createElement("img");b.setAttribute("border","0");b.setAttribute("src",Dialog.prototype.closeImage);b.setAttribute("title",mxResources.get("hide"));a.appendChild(b);mxClient.IS_QUIRKS&&(b.style.position="relative",b.style.styleFloat="right",b.style.top="-30px",b.style.left="164px",b.style.cursor="pointer");mxEvent.addListener(b, "click",mxUtils.bind(this,function(){this.hideFooter()}))}return a});EditorUi.initTheme=function(){"atlas"==uiTheme?(mxClient.link("stylesheet",STYLE_PATH+"/atlas.css"),"undefined"!==typeof Toolbar&&(Toolbar.prototype.unselectedBackground=mxClient.IS_QUIRKS?"none":"linear-gradient(rgb(255, 255, 255) 0px, rgb(242, 242, 242) 100%)",Toolbar.prototype.selectedBackground="rgb(242, 242, 242)"),Editor.prototype.initialTopSpacing=3,EditorUi.prototype.menubarHeight=41,EditorUi.prototype.toolbarHeight=38,EditorUi.prototype.hsplitPosition= @@ -7670,142 +7674,142 @@ Editor.checkmarkImage="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABUAAAAVCAM !0;this.editor.graph.model.execute(a)});var b=new BackgroundImageDialog(this,mxUtils.bind(this,function(b){a(b)}));this.showDialog(b.container,360,200,!0,!0);b.init()};EditorUi.prototype.showLibraryDialog=function(a,b,c,d,e){a=new LibraryDialog(this,a,b,c,d,e);this.showDialog(a.container,620,440,!0,!1,mxUtils.bind(this,function(a){a&&null==this.getCurrentFile()&&"1"!=urlParams.embed&&this.showSplash()}));a.init()};EditorUi.prototype.createSidebarFooterContainer=function(){var a=this.createDiv("geSidebarContainer"); a.style.position="absolute";a.style.overflow="hidden";a.style.borderWidth="3px";var b=document.createElement("a");b.setAttribute("href","javascript:void(0);");b.className="geTitle";b.style.height="100%";b.style.paddingTop="9px";mxUtils.write(b,mxResources.get("moreShapes")+"...");mxEvent.addListener(b,"click",mxUtils.bind(this,function(a){this.actions.get("shapes").funct();mxEvent.consume(a)}));a.appendChild(b);return a};EditorUi.prototype.handleError=function(a,b,c){var d=null!=this.spinner&&null!= this.spinner.pause?this.spinner.pause():function(){},f=null!=a&&null!=a.error?a.error:a;if(null!=f||null!=b){a=mxUtils.htmlEntities(mxResources.get("unknownError"));var e=mxResources.get("ok"),h=null;b=null!=b?b:mxResources.get("error");if(null!=f)if(null!=f.retry&&(e=mxResources.get("cancel"),h=function(){d();f.retry()}),"undefined"!=typeof gapi&&"undefined"!=typeof gapi.drive&&"undefined"!=typeof gapi.drive.realtime&&f.type==gapi.drive.realtime.ErrorType.FORBIDDEN)a=mxUtils.htmlEntities(mxResources.get("forbidden")); -else if(404==f.code||404==f.status||"undefined"!=typeof gapi&&"undefined"!=typeof gapi.drive&&"undefined"!=typeof gapi.drive.realtime&&f.type==gapi.drive.realtime.ErrorType.NOT_FOUND){a=mxUtils.htmlEntities(mxResources.get("fileNotFoundOrDenied"));var k=window.location.hash;null!=k&&"#G"==k.substring(0,2)&&(k=k.substring(2),a+=' <a href="https://drive.google.com/open?id='+k+'" target="_blank">'+mxUtils.htmlEntities(mxResources.get("tryOpeningViaThisPage"))+"</a>")}else null!=f.message?a=mxUtils.htmlEntities(f.message): -null!=f.response&&null!=f.response.error?a=mxUtils.htmlEntities(f.response.error):"undefined"!==window.App&&(f.code==App.ERROR_TIMEOUT?a=mxUtils.htmlEntities(mxResources.get("timeout")):f.code==App.ERROR_BUSY&&(a=mxUtils.htmlEntities(mxResources.get("busy"))));this.showError(b,a,e,c,h)}else null!=c&&c()};EditorUi.prototype.showError=function(a,b,c,d,e,g,l,m,n,t,w,x){a=new ErrorDialog(this,a,b,c||mxResources.get("ok"),d,e,g,l,x,m,n);this.showDialog(a.container,t||340,w||150,!0,!1);a.init()};EditorUi.prototype.alert= +else if(404==f.code||404==f.status||"undefined"!=typeof gapi&&"undefined"!=typeof gapi.drive&&"undefined"!=typeof gapi.drive.realtime&&f.type==gapi.drive.realtime.ErrorType.NOT_FOUND){a=mxUtils.htmlEntities(mxResources.get("fileNotFoundOrDenied"));var n=window.location.hash;null!=n&&"#G"==n.substring(0,2)&&(n=n.substring(2),a+=' <a href="https://drive.google.com/open?id='+n+'" target="_blank">'+mxUtils.htmlEntities(mxResources.get("tryOpeningViaThisPage"))+"</a>")}else null!=f.message?a=mxUtils.htmlEntities(f.message): +null!=f.response&&null!=f.response.error?a=mxUtils.htmlEntities(f.response.error):"undefined"!==window.App&&(f.code==App.ERROR_TIMEOUT?a=mxUtils.htmlEntities(mxResources.get("timeout")):f.code==App.ERROR_BUSY&&(a=mxUtils.htmlEntities(mxResources.get("busy"))));this.showError(b,a,e,c,h)}else null!=c&&c()};EditorUi.prototype.showError=function(a,b,c,d,e,g,k,l,m,t,w,x){a=new ErrorDialog(this,a,b,c||mxResources.get("ok"),d,e,g,k,x,l,m);this.showDialog(a.container,t||340,w||150,!0,!1);a.init()};EditorUi.prototype.alert= function(a,b){var c=new ErrorDialog(this,null,a,mxResources.get("ok"),b);this.showDialog(c.container,340,100,!0,!1);c.init()};EditorUi.prototype.confirm=function(a,b,c,d,e){var f=null!=this.spinner&&null!=this.spinner.pause?this.spinner.pause():function(){};this.showDialog((new ConfirmDialog(this,a,function(){f();null!=b&&b()},function(){f();null!=c&&c()},d,e)).container,340,90,!0,!1)};EditorUi.prototype.setCurrentFile=function(a){this.currentFile=a};EditorUi.prototype.getCurrentFile=function(){return this.currentFile}; EditorUi.prototype.isExportToCanvas=function(){return mxClient.IS_CHROMEAPP||!this.editor.graph.mathEnabled&&this.useCanvasForExport};EditorUi.prototype.createSvgDataUri=function(a){return"data:image/svg+xml;base64,"+btoa(unescape(encodeURIComponent(a)))};EditorUi.prototype.createImageDataUri=function(a,b,c){var d=a.toDataURL("image/"+c);if(6>=d.length||d==a.cloneNode(!1).toDataURL("image/"+c))throw{message:"Invalid image"};null!=b&&(d=this.writeGraphModelToPng(d,"zTXt","mxGraphModel",atob(this.editor.graph.compress(b)))); return d};EditorUi.prototype.saveCanvas=function(a,b,c){var d="jpeg"==c?"jpg":c,f=this.getBaseFilename()+"."+d;a=this.createImageDataUri(a,b,c);this.saveData(f,d,a.substring(a.lastIndexOf(",")+1),"image/"+c,!0)};EditorUi.prototype.isLocalFileSave=function(){return"remote"!=urlParams.save&&(mxClient.IS_IE||"undefined"!==typeof window.Blob&&"undefined"!==typeof window.URL)&&9!=document.documentMode&&8!=document.documentMode&&7!=document.documentMode&&!mxClient.IS_QUIRKS||this.isOfflineApp()||mxClient.IS_IOS}; EditorUi.prototype.doSaveLocalFile=function(a,b,c,d,e){if(window.Blob&&navigator.msSaveOrOpenBlob)a=d?this.base64ToBlob(a,c):new Blob([a],{type:c}),navigator.msSaveOrOpenBlob(a,b);else if(mxClient.IS_IE)c=window.open("about:blank","_blank"),null==c?mxUtils.popup(a,!0):(c.document.write(a),c.document.close(),c.document.execCommand("SaveAs",!0,b),c.close());else if(mxClient.IS_IOS)b=new TextareaDialog(this,b+":",a,null,null,mxResources.get("close")),b.textarea.style.width="600px",b.textarea.style.height= -"380px",this.showDialog(b.container,620,460,!0,!0),b.init(),document.execCommand("selectall",!1,null);else{var f=document.createElement("a"),h=!mxClient.IS_SF&&0>navigator.userAgent.indexOf("PaleMoon/")&&"undefined"!==typeof f.download;if(mxClient.IS_GC)var k=navigator.userAgent.match(/Chrom(e|ium)\/([0-9]+)\./),h=65==(k?parseInt(k[2],10):!1)?!1:h;if(h||this.isOffline()){f.href=URL.createObjectURL(d?this.base64ToBlob(a,c):new Blob([a],{type:c}));h?f.download=b:f.setAttribute("target","_blank");document.body.appendChild(f); -try{window.setTimeout(function(){URL.revokeObjectURL(f.href)},0),f.click(),f.parentNode.removeChild(f)}catch(A){}}else this.createEchoRequest(a,b,c,d,e).simulate(document,"_blank")}};EditorUi.prototype.createEchoRequest=function(a,b,c,d,e,g){a="xml="+encodeURIComponent(a);return new mxXmlRequest(SAVE_URL,a+(null!=c?"&mime="+c:"")+(null!=e?"&format="+e:"")+(null!=g?"&base64="+g:"")+(null!=b?"&filename="+encodeURIComponent(b):"")+(d?"&binary=1":""))};EditorUi.prototype.base64ToBlob=function(a,b){b= -b||"";for(var c=atob(a),d=c.length,f=Math.ceil(d/1024),e=Array(f),h=0;h<f;++h){for(var g=1024*h,l=Math.min(g+1024,d),t=Array(l-g),m=0;g<l;++m,++g)t[m]=c[g].charCodeAt(0);e[h]=new Uint8Array(t)}return new Blob(e,{type:b})};EditorUi.prototype.saveLocalFile=function(a,b,c,d,e,g,l){g=null!=g?g:!1;l=null!=l?l:"vsdx"!=e&&(!mxClient.IS_IOS||!navigator.standalone);e=this.getServiceCount(g);b=new CreateDialog(this,b,mxUtils.bind(this,function(b,f){try{if("_blank"==f)if(null==c||"image/"!=c.substring(0,6)|| +"380px",this.showDialog(b.container,620,460,!0,!0),b.init(),document.execCommand("selectall",!1,null);else{var f=document.createElement("a"),h=!mxClient.IS_SF&&0>navigator.userAgent.indexOf("PaleMoon/")&&"undefined"!==typeof f.download;if(mxClient.IS_GC)var g=navigator.userAgent.match(/Chrom(e|ium)\/([0-9]+)\./),h=65==(g?parseInt(g[2],10):!1)?!1:h;if(h||this.isOffline()){f.href=URL.createObjectURL(d?this.base64ToBlob(a,c):new Blob([a],{type:c}));h?f.download=b:f.setAttribute("target","_blank");document.body.appendChild(f); +try{window.setTimeout(function(){URL.revokeObjectURL(f.href)},0),f.click(),f.parentNode.removeChild(f)}catch(B){}}else this.createEchoRequest(a,b,c,d,e).simulate(document,"_blank")}};EditorUi.prototype.createEchoRequest=function(a,b,c,d,e,g){a="xml="+encodeURIComponent(a);return new mxXmlRequest(SAVE_URL,a+(null!=c?"&mime="+c:"")+(null!=e?"&format="+e:"")+(null!=g?"&base64="+g:"")+(null!=b?"&filename="+encodeURIComponent(b):"")+(d?"&binary=1":""))};EditorUi.prototype.base64ToBlob=function(a,b){b= +b||"";for(var c=atob(a),d=c.length,f=Math.ceil(d/1024),e=Array(f),h=0;h<f;++h){for(var g=1024*h,k=Math.min(g+1024,d),t=Array(k-g),l=0;g<k;++l,++g)t[l]=c[g].charCodeAt(0);e[h]=new Uint8Array(t)}return new Blob(e,{type:b})};EditorUi.prototype.saveLocalFile=function(a,b,c,d,e,g,k){g=null!=g?g:!1;k=null!=k?k:"vsdx"!=e&&(!mxClient.IS_IOS||!navigator.standalone);e=this.getServiceCount(g);b=new CreateDialog(this,b,mxUtils.bind(this,function(b,f){try{if("_blank"==f)if(null==c||"image/"!=c.substring(0,6)|| "image/svg"==c.substring(0,9)&&!mxClient.IS_SVG){var e=window.open("about:blank");null==e?mxUtils.popup(a,!0):(e.document.write(mxUtils.htmlEntities(a,!1)),e.document.close())}else this.openInNewWindow(a,c,d);else f==App.MODE_DEVICE||"download"==f?this.doSaveLocalFile(a,b,c,d):null!=b&&0<b.length&&this.pickFolder(f,mxUtils.bind(this,function(e){try{this.exportFile(a,b,c,d,f,e)}catch(x){this.handleError(x)}}))}catch(w){this.handleError(w)}}),mxUtils.bind(this,function(){this.hideDialog()}),mxResources.get("saveAs"), -mxResources.get("download"),!1,g,l,null,1<e,4<e&&(!g||6>e)?3:4,a,c,d);this.showDialog(b.container,420,e==(mxClient.IS_IOS?0:1)?160:4<e?390:270,!0,!0);b.init()};EditorUi.prototype.openInNewWindow=function(a,b,c){if(mxClient.IS_GC||mxClient.IS_EDGE||11==document.documentMode||10==document.documentMode){var d=window.open("about:blank");null==d?mxUtils.popup(a,!0):("image/svg+xml"==b?d.document.write("<html>"+a+"</html>"):d.document.write('<html><img src="data:'+b+(c?";base64,"+a:";charset=utf8,"+encodeURIComponent(a))+ +mxResources.get("download"),!1,g,k,null,1<e,4<e&&(!g||6>e)?3:4,a,c,d);this.showDialog(b.container,420,e==(mxClient.IS_IOS?0:1)?160:4<e?390:270,!0,!0);b.init()};EditorUi.prototype.openInNewWindow=function(a,b,c){if(mxClient.IS_GC||mxClient.IS_EDGE||11==document.documentMode||10==document.documentMode){var d=window.open("about:blank");null==d?mxUtils.popup(a,!0):("image/svg+xml"==b?d.document.write("<html>"+a+"</html>"):d.document.write('<html><img src="data:'+b+(c?";base64,"+a:";charset=utf8,"+encodeURIComponent(a))+ '"/></html>'),d.document.close())}else d=window.open("data:"+b+(c?";base64,"+a:";charset=utf8,"+encodeURIComponent(a))),null==d&&mxUtils.popup(a,!0)};var b=EditorUi.prototype.addChromelessToolbarItems;EditorUi.prototype.addChromelessToolbarItems=function(a){if(this.isExportToCanvas()){this.exportDialog=null;var c=a(mxUtils.bind(this,function(a){var b=mxUtils.bind(this,function(){mxEvent.removeListener(this.editor.graph.container,"click",b);null!=this.exportDialog&&(this.exportDialog.parentNode.removeChild(this.exportDialog), this.exportDialog=null)});if(null!=this.exportDialog)b.apply(this);else{this.exportDialog=document.createElement("div");var d=c.getBoundingClientRect();mxUtils.setPrefixedStyle(this.exportDialog.style,"borderRadius","5px");this.exportDialog.style.position="fixed";this.exportDialog.style.textAlign="center";this.exportDialog.style.fontFamily="Helvetica,Arial";this.exportDialog.style.backgroundColor="#000000";this.exportDialog.style.width="50px";this.exportDialog.style.height="50px";this.exportDialog.style.padding= "4px 2px 4px 2px";this.exportDialog.style.color="#ffffff";mxUtils.setOpacity(this.exportDialog,70);this.exportDialog.style.left=d.left+"px";this.exportDialog.style.bottom=parseInt(this.chromelessToolbar.style.bottom)+this.chromelessToolbar.offsetHeight+4+"px";d=mxUtils.getCurrentStyle(this.editor.graph.container);this.exportDialog.style.zIndex=d.zIndex;var f=new Spinner({lines:8,length:6,width:5,radius:6,rotate:0,color:"#fff",speed:1.5,trail:60,shadow:!1,hwaccel:!1,top:"28px",zIndex:2E9});f.spin(this.exportDialog); this.exportToCanvas(mxUtils.bind(this,function(a){f.stop();this.exportDialog.style.width="auto";this.exportDialog.style.height="auto";this.exportDialog.style.padding="10px";var c=this.createImageDataUri(a,null,"png");a=document.createElement("img");a.style.maxWidth="140px";a.style.maxHeight="140px";a.style.cursor="pointer";a.style.backgroundColor="white";a.setAttribute("title",mxResources.get("openInNewWindow"));a.setAttribute("border","0");a.setAttribute("src",c);this.exportDialog.appendChild(a); mxEvent.addListener(a,"click",mxUtils.bind(this,function(){this.openInNewWindow(c.substring(c.indexOf(",")+1),"image/png",!0);b.apply(this,arguments)}))}),null,this.thumbImageCache,null,mxUtils.bind(this,function(a){this.spinner.stop();this.handleError(a)}));mxEvent.addListener(this.editor.graph.container,"click",b);document.body.appendChild(this.exportDialog)}mxEvent.consume(a)}),Editor.cameraLargeImage,mxResources.get("export"))}b.apply(this,arguments)};EditorUi.prototype.saveData=function(a,b, -c,d,e){this.isLocalFileSave()?this.saveLocalFile(c,a,d,e,b):this.saveRequest(a,b,mxUtils.bind(this,function(a,f){return this.createEchoRequest(c,a,d,e,b,f)}),c,e,d)};EditorUi.prototype.saveRequest=function(a,b,c,d,e,g,l){l=null!=l?l:!mxClient.IS_IOS||!navigator.standalone;var f=this.getServiceCount(!1);a=new CreateDialog(this,a,mxUtils.bind(this,function(a,f){if("_blank"==f||null!=a&&0<a.length){var e=c("_blank"==f?null:a,f==App.MODE_DEVICE||"download"==f||null==f||"_blank"==f?"0":"1");null!=e&&(f== -App.MODE_DEVICE||"download"==f||"_blank"==f?e.simulate(document,"_blank"):this.pickFolder(f,mxUtils.bind(this,function(c){g=null!=g?g:"pdf"==b?"application/pdf":"image/"+b;if(null!=d)try{this.exportFile(d,a,g,!0,f,c)}catch(C){this.handleError(C)}else this.spinner.spin(document.body,mxResources.get("saving"))&&e.send(mxUtils.bind(this,function(){this.spinner.stop();if(200<=e.getStatus()&&299>=e.getStatus())try{this.exportFile(e.getText(),a,g,!0,f,c)}catch(C){this.handleError(C)}else this.handleError({message:mxResources.get("errorSavingFile")})}), -function(a){this.spinner.stop();this.handleError(a)})})))}}),mxUtils.bind(this,function(){this.hideDialog()}),mxResources.get("saveAs"),mxResources.get("download"),!1,!1,l,null,1<f,4<f?3:4,d,g,e);this.showDialog(a.container,380,f==(mxClient.IS_IOS?0:1)?160:4<f?390:270,!0,!0);a.init()};EditorUi.prototype.getEditBlankXml=function(){return this.getFileData(!0)};EditorUi.prototype.exportFile=function(a,b,c,d,e,g){};EditorUi.prototype.pickFolder=function(a,b,c){b(null)};EditorUi.prototype.exportSvg=function(a, -b,c,d,e,g,l,m,n,t){if(this.spinner.spin(document.body,mxResources.get("export"))){var f=this.editor.graph.isSelectionEmpty();c=null!=c?c:f;f=b?null:this.editor.graph.background;f==mxConstants.NONE&&(f=null);null==f&&0==b&&(f="#ffffff");var h=this.editor.graph.getSvg(f,a,l,m,null,c,null,null,"blank"==t?"_blank":"self"==t?"_top":null);d&&this.editor.graph.addSvgShadow(h);var k=this.getBaseFilename()+".svg",q=mxUtils.bind(this,function(a){this.spinner.stop();e&&a.setAttribute("content",this.getFileData(!0, -null,null,null,c,n));if(null!=this.editor.fontCss){var b=a.ownerDocument,b=null!=b.createElementNS?b.createElementNS(mxConstants.NS_SVG,"style"):b.createElement("style");b.setAttribute("type","text/css");mxUtils.setTextContent(b,this.editor.fontCss);a.getElementsByTagName("defs")[0].appendChild(b)}var d='<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">\n'+mxUtils.getXml(a);this.isLocalFileSave()||d.length<=MAX_REQUEST_SIZE?this.saveData(k,"svg",d, -"image/svg+xml"):this.handleError({message:mxResources.get("drawingTooLarge")},mxResources.get("error"),mxUtils.bind(this,function(){mxUtils.popup(d)}))});this.convertMath(this.editor.graph,h,!1,mxUtils.bind(this,function(){g?(null==this.thumbImageCache&&(this.thumbImageCache={}),this.convertImages(h,q,this.thumbImageCache)):q(h)}))}};EditorUi.prototype.addCheckbox=function(a,b,c,d,e,g){g=null!=g?g:!0;var f=document.createElement("input");f.style.marginRight="8px";f.style.marginTop="16px";f.setAttribute("type", +c,d,e){this.isLocalFileSave()?this.saveLocalFile(c,a,d,e,b):this.saveRequest(a,b,mxUtils.bind(this,function(a,f){return this.createEchoRequest(c,a,d,e,b,f)}),c,e,d)};EditorUi.prototype.saveRequest=function(a,b,c,d,e,g,k){k=null!=k?k:!mxClient.IS_IOS||!navigator.standalone;var f=this.getServiceCount(!1);a=new CreateDialog(this,a,mxUtils.bind(this,function(a,e){if("_blank"==e||null!=a&&0<a.length){var f=c("_blank"==e?null:a,e==App.MODE_DEVICE||"download"==e||null==e||"_blank"==e?"0":"1");null!=f&&(e== +App.MODE_DEVICE||"download"==e||"_blank"==e?f.simulate(document,"_blank"):this.pickFolder(e,mxUtils.bind(this,function(c){g=null!=g?g:"pdf"==b?"application/pdf":"image/"+b;if(null!=d)try{this.exportFile(d,a,g,!0,e,c)}catch(C){this.handleError(C)}else this.spinner.spin(document.body,mxResources.get("saving"))&&f.send(mxUtils.bind(this,function(){this.spinner.stop();if(200<=f.getStatus()&&299>=f.getStatus())try{this.exportFile(f.getText(),a,g,!0,e,c)}catch(C){this.handleError(C)}else this.handleError({message:mxResources.get("errorSavingFile")})}), +function(a){this.spinner.stop();this.handleError(a)})})))}}),mxUtils.bind(this,function(){this.hideDialog()}),mxResources.get("saveAs"),mxResources.get("download"),!1,!1,k,null,1<f,4<f?3:4,d,g,e);this.showDialog(a.container,380,f==(mxClient.IS_IOS?0:1)?160:4<f?390:270,!0,!0);a.init()};EditorUi.prototype.getEditBlankXml=function(){return this.getFileData(!0)};EditorUi.prototype.exportFile=function(a,b,c,d,e,g){};EditorUi.prototype.pickFolder=function(a,b,c){b(null)};EditorUi.prototype.exportSvg=function(a, +b,c,d,e,g,k,l,m,t){if(this.spinner.spin(document.body,mxResources.get("export"))){var f=this.editor.graph.isSelectionEmpty();c=null!=c?c:f;f=b?null:this.editor.graph.background;f==mxConstants.NONE&&(f=null);null==f&&0==b&&(f="#ffffff");var h=this.editor.graph.getSvg(f,a,k,l,null,c,null,null,"blank"==t?"_blank":"self"==t?"_top":null);d&&this.editor.graph.addSvgShadow(h);var n=this.getBaseFilename()+".svg",u=mxUtils.bind(this,function(a){this.spinner.stop();e&&a.setAttribute("content",this.getFileData(!0, +null,null,null,c,m));if(null!=this.editor.fontCss){var b=a.ownerDocument,b=null!=b.createElementNS?b.createElementNS(mxConstants.NS_SVG,"style"):b.createElement("style");b.setAttribute("type","text/css");mxUtils.setTextContent(b,this.editor.fontCss);a.getElementsByTagName("defs")[0].appendChild(b)}var d='<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">\n'+mxUtils.getXml(a);this.isLocalFileSave()||d.length<=MAX_REQUEST_SIZE?this.saveData(n,"svg",d, +"image/svg+xml"):this.handleError({message:mxResources.get("drawingTooLarge")},mxResources.get("error"),mxUtils.bind(this,function(){mxUtils.popup(d)}))});this.convertMath(this.editor.graph,h,!1,mxUtils.bind(this,function(){g?(null==this.thumbImageCache&&(this.thumbImageCache={}),this.convertImages(h,u,this.thumbImageCache)):u(h)}))}};EditorUi.prototype.addCheckbox=function(a,b,c,d,e,g){g=null!=g?g:!0;var f=document.createElement("input");f.style.marginRight="8px";f.style.marginTop="16px";f.setAttribute("type", "checkbox");c&&(f.setAttribute("checked","checked"),f.defaultChecked=!0);d&&f.setAttribute("disabled","disabled");g&&(a.appendChild(f),c=document.createElement("span"),mxUtils.write(c,b),a.appendChild(c),e||mxUtils.br(a),mxEvent.addListener(c,"click",mxUtils.bind(this,function(a){"disabled"!=f.getAttribute("disabled")&&(f.checked=!f.checked,mxEvent.consume(a))})));return f};EditorUi.prototype.addEditButton=function(a,b){var c=this.addCheckbox(a,mxResources.get("edit")+":",!0,null,!0);c.style.marginLeft= -"24px";var d=this.getCurrentFile(),f="";null!=d&&d.getMode()!=App.MODE_DEVICE&&d.getMode()!=App.MODE_BROWSER&&(f=window.location.href);var e=document.createElement("select");e.style.width="120px";e.style.marginLeft="8px";e.style.marginRight="10px";e.className="geBtn";d=document.createElement("option");d.setAttribute("value","blank");mxUtils.write(d,mxResources.get("makeCopy"));e.appendChild(d);d=document.createElement("option");d.setAttribute("value","custom");mxUtils.write(d,mxResources.get("custom")+ -"...");e.appendChild(d);a.appendChild(e);mxEvent.addListener(e,"change",mxUtils.bind(this,function(){if("custom"==e.value){var a=new FilenameDialog(this,f,mxResources.get("ok"),function(a){null!=a?f=a:e.value="blank"},mxResources.get("url"),null,null,null,null,function(){e.value="blank"});this.showDialog(a.container,300,80,!0,!1);a.init()}}));mxEvent.addListener(c,"change",mxUtils.bind(this,function(){c.checked&&(null==b||b.checked)?e.removeAttribute("disabled"):e.setAttribute("disabled","disabled")})); -mxUtils.br(a);return{getLink:function(){return c.checked?"blank"===e.value?"_blank":f:null},getEditInput:function(){return c},getEditSelect:function(){return e}}};EditorUi.prototype.addLinkSection=function(a,b){function c(){h.innerHTML='<div style="width:100%;height:100%;box-sizing:border-box;'+(null!=e&&e!=mxConstants.NONE?"border:1px solid black;background-color:"+e:"background-position:center center;background-repeat:no-repeat;background-image:url('"+Dialog.prototype.closeImage+"')")+';"></div>'} +"24px";var d=this.getCurrentFile(),e="";null!=d&&d.getMode()!=App.MODE_DEVICE&&d.getMode()!=App.MODE_BROWSER&&(e=window.location.href);var f=document.createElement("select");f.style.width="120px";f.style.marginLeft="8px";f.style.marginRight="10px";f.className="geBtn";d=document.createElement("option");d.setAttribute("value","blank");mxUtils.write(d,mxResources.get("makeCopy"));f.appendChild(d);d=document.createElement("option");d.setAttribute("value","custom");mxUtils.write(d,mxResources.get("custom")+ +"...");f.appendChild(d);a.appendChild(f);mxEvent.addListener(f,"change",mxUtils.bind(this,function(){if("custom"==f.value){var a=new FilenameDialog(this,e,mxResources.get("ok"),function(a){null!=a?e=a:f.value="blank"},mxResources.get("url"),null,null,null,null,function(){f.value="blank"});this.showDialog(a.container,300,80,!0,!1);a.init()}}));mxEvent.addListener(c,"change",mxUtils.bind(this,function(){c.checked&&(null==b||b.checked)?f.removeAttribute("disabled"):f.setAttribute("disabled","disabled")})); +mxUtils.br(a);return{getLink:function(){return c.checked?"blank"===f.value?"_blank":e:null},getEditInput:function(){return c},getEditSelect:function(){return f}}};EditorUi.prototype.addLinkSection=function(a,b){function c(){h.innerHTML='<div style="width:100%;height:100%;box-sizing:border-box;'+(null!=e&&e!=mxConstants.NONE?"border:1px solid black;background-color:"+e:"background-position:center center;background-repeat:no-repeat;background-image:url('"+Dialog.prototype.closeImage+"')")+';"></div>'} mxUtils.write(a,mxResources.get("links")+":");var d=document.createElement("select");d.style.width="100px";d.style.marginLeft="8px";d.style.marginRight="10px";d.className="geBtn";var f=document.createElement("option");f.setAttribute("value","auto");mxUtils.write(f,mxResources.get("automatic"));d.appendChild(f);f=document.createElement("option");f.setAttribute("value","blank");mxUtils.write(f,mxResources.get("openInNewWindow"));d.appendChild(f);f=document.createElement("option");f.setAttribute("value", "self");mxUtils.write(f,mxResources.get("openInThisWindow"));d.appendChild(f);b&&(f=document.createElement("option"),f.setAttribute("value","frame"),mxUtils.write(f,mxResources.get("openInThisWindow")+" ("+mxResources.get("iframe")+")"),d.appendChild(f));a.appendChild(d);mxUtils.write(a,mxResources.get("borderColor")+":");var e="#0000ff",h=null,h=mxUtils.button("",mxUtils.bind(this,function(a){this.pickColor(e||"none",function(a){e=a;c()});mxEvent.consume(a)}));c();h.style.padding=mxClient.IS_FF? -"4px 2px 4px 2px":"4px";h.style.marginLeft="4px";h.style.height="22px";h.style.width="22px";h.style.position="relative";h.style.top=mxClient.IS_IE||mxClient.IS_IE11||mxClient.IS_EDGE?"6px":"1px";h.className="geColorBtn";a.appendChild(h);mxUtils.br(a);return{getColor:function(){return e},getTarget:function(){return d.value},focus:function(){d.focus()}}};EditorUi.prototype.createLink=function(a,b,c,d,e,g,l,m){var f=this.getCurrentFile(),h=[];d&&(h.push("lightbox=1"),"auto"!=a&&h.push("target="+a),null!= -b&&b!=mxConstants.NONE&&h.push("highlight="+("#"==b.charAt(0)?b.substring(1):b)),null!=e&&0<e.length&&h.push("edit="+encodeURIComponent(e)),g&&h.push("layers=1"),this.editor.graph.foldingEnabled&&h.push("nav=1"));c&&(a=this.getSelectedPageIndex(),0<a&&h.push("page="+a));a=!0;null!=l?c="#U"+encodeURIComponent(l):(f=this.getCurrentFile(),m||null==f||f.constructor!=window.DriveFile?c="#R"+encodeURIComponent(c?this.getFileData(!0,null,null,null,null,null,null,!0):this.editor.graph.compress(mxUtils.getXml(this.editor.getGraphXml()))): -(c="#"+f.getHash(),a=!1));a&&null!=f&&null!=f.getTitle()&&f.getTitle()!=this.defaultFilename&&h.push("title="+encodeURIComponent(f.getTitle()));return(mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||!/.*\.draw\.io$/.test(window.location.hostname)?"https://www.draw.io/":"https://"+window.location.host+"/")+(0<h.length?"?"+h.join("&"):"")+c};EditorUi.prototype.createHtml=function(a,b,c,d,e,g,l,m,n,t,w){this.getBasenames();var f={};""!=e&&e!=mxConstants.NONE&&(f.highlight=e);"auto"!==d&&(f.target=d); -n||(f.lightbox=!1);f.nav=this.editor.graph.foldingEnabled;c=parseInt(c);isNaN(c)||100==c||(f.zoom=c/100);c=[];l&&(c.push("pages"),f.resize=!0,null!=this.pages&&null!=this.currentPage&&(f.page=mxUtils.indexOf(this.pages,this.currentPage)));b&&(c.push("zoom"),f.resize=!0);m&&c.push("layers");0<c.length&&(n&&c.push("lightbox"),f.toolbar=c.join(" "));null!=t&&0<t.length&&(f.edit=t);null!=a?f.url=a:f.xml=this.getFileData(!0,null,null,null,null,!l);b='<div class="mxgraph" style="'+(g?"max-width:100%;": +"4px 2px 4px 2px":"4px";h.style.marginLeft="4px";h.style.height="22px";h.style.width="22px";h.style.position="relative";h.style.top=mxClient.IS_IE||mxClient.IS_IE11||mxClient.IS_EDGE?"6px":"1px";h.className="geColorBtn";a.appendChild(h);mxUtils.br(a);return{getColor:function(){return e},getTarget:function(){return d.value},focus:function(){d.focus()}}};EditorUi.prototype.createLink=function(a,b,c,d,e,g,k,l){var f=this.getCurrentFile(),h=[];d&&(h.push("lightbox=1"),"auto"!=a&&h.push("target="+a),null!= +b&&b!=mxConstants.NONE&&h.push("highlight="+("#"==b.charAt(0)?b.substring(1):b)),null!=e&&0<e.length&&h.push("edit="+encodeURIComponent(e)),g&&h.push("layers=1"),this.editor.graph.foldingEnabled&&h.push("nav=1"));c&&(a=this.getSelectedPageIndex(),0<a&&h.push("page="+a));a=!0;null!=k?c="#U"+encodeURIComponent(k):(f=this.getCurrentFile(),l||null==f||f.constructor!=window.DriveFile?c="#R"+encodeURIComponent(c?this.getFileData(!0,null,null,null,null,null,null,!0):this.editor.graph.compress(mxUtils.getXml(this.editor.getGraphXml()))): +(c="#"+f.getHash(),a=!1));a&&null!=f&&null!=f.getTitle()&&f.getTitle()!=this.defaultFilename&&h.push("title="+encodeURIComponent(f.getTitle()));return(mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||!/.*\.draw\.io$/.test(window.location.hostname)?"https://www.draw.io/":"https://"+window.location.host+"/")+(0<h.length?"?"+h.join("&"):"")+c};EditorUi.prototype.createHtml=function(a,b,c,d,e,g,k,l,m,t,w){this.getBasenames();var f={};""!=e&&e!=mxConstants.NONE&&(f.highlight=e);"auto"!==d&&(f.target=d); +m||(f.lightbox=!1);f.nav=this.editor.graph.foldingEnabled;c=parseInt(c);isNaN(c)||100==c||(f.zoom=c/100);c=[];k&&(c.push("pages"),f.resize=!0,null!=this.pages&&null!=this.currentPage&&(f.page=mxUtils.indexOf(this.pages,this.currentPage)));b&&(c.push("zoom"),f.resize=!0);l&&c.push("layers");0<c.length&&(m&&c.push("lightbox"),f.toolbar=c.join(" "));null!=t&&0<t.length&&(f.edit=t);null!=a?f.url=a:f.xml=this.getFileData(!0,null,null,null,null,!k);b='<div class="mxgraph" style="'+(g?"max-width:100%;": "")+(""!=c?"border:1px solid transparent;":"")+'" data-mxgraph="'+mxUtils.htmlEntities(JSON.stringify(f))+'"></div>';a=null!=a?"&fetch="+encodeURIComponent(a):"";w(b,'<script type="text/javascript" src="'+(0<a.length?("1"==urlParams.dev?"https://test.draw.io/embed2.js?dev=1":"https://www.draw.io/embed2.js?")+a:"1"==urlParams.dev?"https://test.draw.io/js/viewer.min.js":"https://www.draw.io/js/viewer.min.js")+'">\x3c/script>')};EditorUi.prototype.showHtmlDialog=function(a,b,c,d){var f=document.createElement("div"); f.style.whiteSpace="nowrap";var e=document.createElement("h3");mxUtils.write(e,mxResources.get("html"));e.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:12px";f.appendChild(e);var h=document.createElement("div");h.style.cssText="border-bottom:1px solid lightGray;padding-bottom:8px;margin-bottom:12px;";var g=document.createElement("input");g.style.cssText="margin-right:8px;margin-top:8px;margin-bottom:8px;";g.setAttribute("value","url");g.setAttribute("type","radio");g.setAttribute("name", -"type-embedhtmldialog");e=g.cloneNode(!0);e.setAttribute("value","copy");h.appendChild(e);var k=document.createElement("span");mxUtils.write(k,mxResources.get("includeCopyOfMyDiagram"));h.appendChild(k);mxUtils.br(h);h.appendChild(g);k=document.createElement("span");mxUtils.write(k,mxResources.get("publicDiagramUrl"));h.appendChild(k);var t=this.getCurrentFile();null==c&&null!=t&&t.constructor==window.DriveFile&&(k=document.createElement("a"),k.style.paddingLeft="12px",k.style.color="gray",k.setAttribute("href", -"javascript:void(0);"),mxUtils.write(k,mxResources.get("share")),h.appendChild(k),mxEvent.addListener(k,"click",mxUtils.bind(this,function(){this.hideDialog();this.drive.showPermissions(t.getId())})));e.setAttribute("checked","checked");null==c&&g.setAttribute("disabled","disabled");f.appendChild(h);var l=this.addLinkSection(f),m=this.addCheckbox(f,mxResources.get("zoom"),!0,null,!0);mxUtils.write(f,":");var n=document.createElement("input");n.setAttribute("type","text");n.style.marginRight="16px"; -n.style.width="60px";n.style.marginLeft="4px";n.style.marginRight="12px";n.value="100%";f.appendChild(n);var q=this.addCheckbox(f,mxResources.get("fit"),!0),h=null!=this.pages&&1<this.pages.length,F=F=this.addCheckbox(f,mxResources.get("allPages"),h,!h),E=this.addCheckbox(f,mxResources.get("layers"),!0),G=this.addCheckbox(f,mxResources.get("lightbox"),!0),I=this.addEditButton(f,G),B=I.getEditInput();B.style.marginBottom="16px";mxEvent.addListener(G,"change",function(){G.checked?B.removeAttribute("disabled"): -B.setAttribute("disabled","disabled");B.checked&&G.checked?I.getEditSelect().removeAttribute("disabled"):I.getEditSelect().setAttribute("disabled","disabled")});a=new CustomDialog(this,f,mxUtils.bind(this,function(){d(g.checked?c:null,m.checked,n.value,l.getTarget(),l.getColor(),q.checked,F.checked,E.checked,G.checked,I.getLink())}),null,a,b);this.showDialog(a.container,340,384,!0,!0);e.focus()};EditorUi.prototype.showPublishLinkDialog=function(a,b,c,d,e,g){var f=document.createElement("div");f.style.whiteSpace= -"nowrap";var h=document.createElement("h3");mxUtils.write(h,a||mxResources.get("link"));h.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:12px";f.appendChild(h);var k=this.getCurrentFile(),h="https://desk.draw.io/support/solutions/articles/16000051941";a=0;if(null!=k&&k.constructor==window.DriveFile&&!b){a=80;var h="https://desk.draw.io/support/solutions/articles/16000039384",t=document.createElement("div");t.style.cssText="border-bottom:1px solid lightGray;padding-bottom:14px;padding-top:6px;margin-bottom:14px;text-align:center;"; -var l=document.createElement("div");l.style.whiteSpace="normal";mxUtils.write(l,mxResources.get("linkAccountRequired"));t.appendChild(l);l=mxUtils.button(mxResources.get("share"),mxUtils.bind(this,function(){this.drive.showPermissions(k.getId())}));l.style.marginTop="12px";l.className="geBtn";t.appendChild(l);f.appendChild(t);l=document.createElement("a");l.style.paddingLeft="12px";l.style.color="gray";l.style.fontSize="11px";l.setAttribute("href","javascript:void(0);");mxUtils.write(l,mxResources.get("check")); -t.appendChild(l);mxEvent.addListener(l,"click",mxUtils.bind(this,function(){this.spinner.spin(document.body,mxResources.get("loading"))&&this.getPublicUrl(this.getCurrentFile(),mxUtils.bind(this,function(a){this.spinner.stop();a=new ErrorDialog(this,null,mxResources.get(null!=a?"diagramIsPublic":"diagramIsNotPublic"),mxResources.get("ok"));this.showDialog(a.container,300,80,!0,!1);a.init()}))}))}var m=null,n=null;if(null!=c||null!=d)a+=30,mxUtils.write(f,mxResources.get("width")+":"),m=document.createElement("input"), -m.setAttribute("type","text"),m.style.marginRight="16px",m.style.width="50px",m.style.marginLeft="6px",m.style.marginRight="16px",m.style.marginBottom="10px",m.value="100%",f.appendChild(m),mxUtils.write(f,mxResources.get("height")+":"),n=document.createElement("input"),n.setAttribute("type","text"),n.style.width="50px",n.style.marginLeft="6px",n.style.marginBottom="10px",n.value=d+"px",f.appendChild(n),mxUtils.br(f);var q=this.addLinkSection(f,g);c=null!=this.pages&&1<this.pages.length;var p=null; -if(null==k||k.constructor!=window.DriveFile||b)p=this.addCheckbox(f,mxResources.get("allPages"),c,!c);var u=this.addCheckbox(f,mxResources.get("lightbox"),!0),G=this.addEditButton(f,u),I=G.getEditInput(),B=this.addCheckbox(f,mxResources.get("layers"),!0);B.style.marginLeft=I.style.marginLeft;B.style.marginBottom="16px";B.style.marginTop="8px";mxEvent.addListener(u,"change",function(){u.checked?(B.removeAttribute("disabled"),I.removeAttribute("disabled")):(B.setAttribute("disabled","disabled"),I.setAttribute("disabled", -"disabled"));I.checked&&u.checked?G.getEditSelect().removeAttribute("disabled"):G.getEditSelect().setAttribute("disabled","disabled")});b=new CustomDialog(this,f,mxUtils.bind(this,function(){e(q.getTarget(),q.getColor(),null==p?!0:p.checked,u.checked,G.getLink(),B.checked,null!=m?m.value:null,null!=n?n.value:null)}),null,mxResources.get("create"),h);this.showDialog(b.container,340,254+a,!0,!0);null!=m?(m.focus(),mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode||mxClient.IS_QUIRKS?m.select(): -document.execCommand("selectAll",!1,null)):q.focus()};EditorUi.prototype.showRemoteExportDialog=function(a,b,c,d){var f=document.createElement("div");f.style.whiteSpace="nowrap";var e=document.createElement("h3");mxUtils.write(e,mxResources.get("image"));e.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:4px";f.appendChild(e);var h=this.addCheckbox(f,mxResources.get("selectionOnly"),!1,this.editor.graph.isSelectionEmpty()),g=d?null:this.addCheckbox(f,mxResources.get("includeCopyOfMyDiagram"), -!0),e=this.editor.graph,k=d?null:this.addCheckbox(f,mxResources.get("transparentBackground"),e.background==mxConstants.NONE||null==e.background);null!=k&&(k.style.marginBottom="16px");a=new CustomDialog(this,f,mxUtils.bind(this,function(){c(!h.checked,null!=g?g.checked:!1,null!=k?k.checked:!1)}),null,a,b);this.showDialog(a.container,300,d?100:186,!0,!0)};EditorUi.prototype.showExportDialog=function(a,b,c,d,e,g,l,m){l=null!=l?l:!0;var f=document.createElement("div");f.style.whiteSpace="nowrap";var h= -this.editor.graph,k="jpeg"==m?196:300,n=document.createElement("h3");mxUtils.write(n,a);n.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:10px";f.appendChild(n);mxUtils.write(f,mxResources.get("zoom")+":");var q=document.createElement("input");q.setAttribute("type","text");q.style.marginRight="16px";q.style.width="60px";q.style.marginLeft="4px";q.style.marginRight="12px";q.value=this.lastExportZoom||"100%";f.appendChild(q);mxUtils.write(f,mxResources.get("borderWidth")+":"); -var v=document.createElement("input");v.setAttribute("type","text");v.style.marginRight="16px";v.style.width="60px";v.style.marginLeft="4px";v.value=this.lastExportBorder||"0";f.appendChild(v);mxUtils.br(f);var p=this.addCheckbox(f,mxResources.get("transparentBackground"),h.background==mxConstants.NONE||null==h.background,null,null,"jpeg"!=m),u=this.addCheckbox(f,mxResources.get("selectionOnly"),!1,h.isSelectionEmpty()),y=document.createElement("input");y.style.marginTop="16px";y.style.marginRight= -"8px";y.style.marginLeft="24px";y.setAttribute("disabled","disabled");y.setAttribute("type","checkbox");g&&(f.appendChild(y),mxUtils.write(f,mxResources.get("crop")),mxUtils.br(f),k+=26,mxEvent.addListener(u,"change",function(){u.checked?y.removeAttribute("disabled"):y.setAttribute("disabled","disabled")}));h.isSelectionEmpty()||(y.setAttribute("checked","checked"),y.defaultChecked=!0);var I=this.addCheckbox(f,mxResources.get("shadow"),h.shadowVisible),B=document.createElement("input");B.style.marginTop= -"16px";B.style.marginRight="8px";B.setAttribute("type","checkbox");!this.isOffline()&&this.canvasSupported||B.setAttribute("disabled","disabled");b&&(f.appendChild(B),mxUtils.write(f,mxResources.get("embedImages")),mxUtils.br(f),k+=26);var D=this.addCheckbox(f,mxResources.get("includeCopyOfMyDiagram"),l,null,null,"jpeg"!=m),H=null!=this.pages&&1<this.pages.length,M=this.addCheckbox(f,H?mxResources.get("allPages"):"",H,!H,null,"jpeg"!=m);M.style.marginLeft="24px";M.style.marginBottom="16px";H||(M.style.display= -"none");mxEvent.addListener(D,"change",function(){D.checked&&H?M.removeAttribute("disabled"):M.setAttribute("disabled","disabled")});l&&H||M.setAttribute("disabled","disabled");var K=document.createElement("select");K.style.maxWidth="260px";K.style.marginLeft="8px";K.style.marginRight="10px";K.className="geBtn";a=document.createElement("option");a.setAttribute("value","auto");mxUtils.write(a,mxResources.get("automatic"));K.appendChild(a);a=document.createElement("option");a.setAttribute("value","blank"); -mxUtils.write(a,mxResources.get("openInNewWindow"));K.appendChild(a);a=document.createElement("option");a.setAttribute("value","self");mxUtils.write(a,mxResources.get("openInThisWindow"));K.appendChild(a);"svg"==m&&(mxUtils.write(f,mxResources.get("links")+":"),f.appendChild(K),mxUtils.br(f),mxUtils.br(f),k+=26);c=new CustomDialog(this,f,mxUtils.bind(this,function(){this.lastExportBorder=v.value;this.lastExportZoom=q.value;e(q.value,p.checked,!u.checked,I.checked,D.checked,B.checked,v.value,y.checked, -!M.checked,K.value)}),null,c,d);this.showDialog(c.container,340,k,!0,!0);q.focus();mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode||mxClient.IS_QUIRKS?q.select():document.execCommand("selectAll",!1,null)};EditorUi.prototype.showEmbedImageDialog=function(a,b,c,d,e){var f=document.createElement("div");f.style.whiteSpace="nowrap";var h=this.editor.graph;if(null!=b){var g=document.createElement("h3");mxUtils.write(g,b);g.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:4px"; -f.appendChild(g)}var k=this.addCheckbox(f,mxResources.get("fit"),!0),l=this.addCheckbox(f,mxResources.get("shadow"),h.shadowVisible&&d,!d),m=this.addCheckbox(f,c),n=this.addCheckbox(f,mxResources.get("lightbox"),!0),q=this.addEditButton(f,n),u=q.getEditInput(),F=1<h.model.getChildCount(h.model.getRoot()),E=this.addCheckbox(f,mxResources.get("layers"),F,!F);E.style.marginLeft=u.style.marginLeft;E.style.marginBottom="12px";E.style.marginTop="8px";mxEvent.addListener(n,"change",function(){n.checked? -(F&&E.removeAttribute("disabled"),u.removeAttribute("disabled")):(E.setAttribute("disabled","disabled"),u.setAttribute("disabled","disabled"));u.checked&&n.checked?q.getEditSelect().removeAttribute("disabled"):q.getEditSelect().setAttribute("disabled","disabled")});b=new CustomDialog(this,f,mxUtils.bind(this,function(){a(k.checked,l.checked,m.checked,n.checked,q.getLink(),E.checked)}),null,mxResources.get("embed"),e);this.showDialog(b.container,280,280,!0,!0)};EditorUi.prototype.createEmbedImage= -function(a,b,c,d,e,g,l,m){function f(b){var f=" ",k="";d&&(f=" onclick=\"(function(img){if(img.wnd!=null&&!img.wnd.closed){img.wnd.focus();}else{var r=function(evt){if(evt.data=='ready'&&evt.source==img.wnd){img.wnd.postMessage(decodeURIComponent(img.getAttribute('src')),'*');window.removeEventListener('message',r);}};window.addEventListener('message',r);img.wnd=window.open('https://www.draw.io/?client=1&lightbox=1"+(e?"&edit=_blank":"")+(g?"&layers=1":"")+"');}})(this);\"",k+="cursor:pointer;"); -a&&(k+="max-width:100%;");var m="";c&&(m=' width="'+Math.round(h.width)+'" height="'+Math.round(h.height)+'"');l('<img src="'+b+'"'+m+(""!=k?' style="'+k+'"':"")+f+"/>")}var h=this.editor.graph.getGraphBounds();if(this.isExportToCanvas())this.exportToCanvas(mxUtils.bind(this,function(a){var b=d?this.getFileData(!0):null;a=this.createImageDataUri(a,b,"png");f(a)}),null,null,null,mxUtils.bind(this,function(a){m({message:mxResources.get("unknownError")})}),null,!0,c?2:1,null,b);else if(b=this.getFileData(!0), -h.width*h.height<=MAX_AREA&&b.length<=MAX_REQUEST_SIZE){var k="";c&&(k="&w="+Math.round(2*h.width)+"&h="+Math.round(2*h.height));var n=new mxXmlRequest(EXPORT_URL,"format=png&base64=1&embedXml="+(d?"1":"0")+k+"&xml="+encodeURIComponent(b));n.send(mxUtils.bind(this,function(){200<=n.getStatus()&&299>=n.getStatus()?f("data:image/png;base64,"+n.getText()):m({message:mxResources.get("unknownError")})}))}else m({message:mxResources.get("drawingTooLarge")})};EditorUi.prototype.createEmbedSvg=function(a, -b,c,d,e,g,l){var f=this.editor.graph.getSvg(),h=f.getElementsByTagName("a");if(null!=h)for(var k=0;k<h.length;k++){var m=h[k].getAttribute("href");null!=m&&"#"==m.charAt(0)&&"_blank"==h[k].getAttribute("target")&&h[k].removeAttribute("target")}d&&f.setAttribute("content",this.getFileData(!0));b&&this.editor.graph.addSvgShadow(f);if(c){var n=" ",q="";d&&(n="onclick=\"(function(img){if(img.wnd!=null&&!img.wnd.closed){img.wnd.focus();}else{var r=function(evt){if(evt.data=='ready'&&evt.source==img.wnd){img.wnd.postMessage(decodeURIComponent(img.getAttribute('src')),'*');window.removeEventListener('message',r);}};window.addEventListener('message',r);img.wnd=window.open('https://www.draw.io/?client=1&lightbox=1"+ -(e?"&edit=_blank":"")+(g?"&layers=1":"")+"');}})(this);\"",q+="cursor:pointer;");a&&(q+="max-width:100%;");this.convertImages(f,mxUtils.bind(this,function(a){l('<img src="'+this.createSvgDataUri(mxUtils.getXml(a))+'"'+(""!=q?' style="'+q+'"':"")+n+"/>")}))}else q="",d&&(f.setAttribute("onclick","(function(svg){var src=window.event.target||window.event.srcElement;while (src!=null&&src.nodeName.toLowerCase()!='a'){src=src.parentNode;}if(src==null){if(svg.wnd!=null&&!svg.wnd.closed){svg.wnd.focus();}else{var r=function(evt){if(evt.data=='ready'&&evt.source==svg.wnd){svg.wnd.postMessage(decodeURIComponent(svg.getAttribute('content')),'*');window.removeEventListener('message',r);}};window.addEventListener('message',r);svg.wnd=window.open('https://www.draw.io/?client=1&lightbox=1"+ -(e?"&edit=_blank":"")+(g?"&layers=1":"")+"');}}})(this);"),q+="cursor:pointer;"),a&&(a=parseInt(f.getAttribute("width")),b=parseInt(f.getAttribute("height")),f.setAttribute("viewBox","0 0 "+a+" "+b),q+="max-width:100%;max-height:"+b+"px;",f.removeAttribute("height")),""!=q&&f.setAttribute("style",q),l(mxUtils.getXml(f))};EditorUi.prototype.timeSince=function(a){a=Math.floor((new Date-a)/1E3);var b=Math.floor(a/31536E3);if(1<b)return b+" "+mxResources.get("years");b=Math.floor(a/2592E3);if(1<b)return b+ +"type-embedhtmldialog");e=g.cloneNode(!0);e.setAttribute("value","copy");h.appendChild(e);var n=document.createElement("span");mxUtils.write(n,mxResources.get("includeCopyOfMyDiagram"));h.appendChild(n);mxUtils.br(h);h.appendChild(g);n=document.createElement("span");mxUtils.write(n,mxResources.get("publicDiagramUrl"));h.appendChild(n);var t=this.getCurrentFile();null==c&&null!=t&&t.constructor==window.DriveFile&&(n=document.createElement("a"),n.style.paddingLeft="12px",n.style.color="gray",n.setAttribute("href", +"javascript:void(0);"),mxUtils.write(n,mxResources.get("share")),h.appendChild(n),mxEvent.addListener(n,"click",mxUtils.bind(this,function(){this.hideDialog();this.drive.showPermissions(t.getId())})));e.setAttribute("checked","checked");null==c&&g.setAttribute("disabled","disabled");f.appendChild(h);var k=this.addLinkSection(f),l=this.addCheckbox(f,mxResources.get("zoom"),!0,null,!0);mxUtils.write(f,":");var m=document.createElement("input");m.setAttribute("type","text");m.style.marginRight="16px"; +m.style.width="60px";m.style.marginLeft="4px";m.style.marginRight="12px";m.value="100%";f.appendChild(m);var u=this.addCheckbox(f,mxResources.get("fit"),!0),h=null!=this.pages&&1<this.pages.length,F=F=this.addCheckbox(f,mxResources.get("allPages"),h,!h),E=this.addCheckbox(f,mxResources.get("layers"),!0),G=this.addCheckbox(f,mxResources.get("lightbox"),!0),I=this.addEditButton(f,G),A=I.getEditInput();A.style.marginBottom="16px";mxEvent.addListener(G,"change",function(){G.checked?A.removeAttribute("disabled"): +A.setAttribute("disabled","disabled");A.checked&&G.checked?I.getEditSelect().removeAttribute("disabled"):I.getEditSelect().setAttribute("disabled","disabled")});a=new CustomDialog(this,f,mxUtils.bind(this,function(){d(g.checked?c:null,l.checked,m.value,k.getTarget(),k.getColor(),u.checked,F.checked,E.checked,G.checked,I.getLink())}),null,a,b);this.showDialog(a.container,340,384,!0,!0);e.focus()};EditorUi.prototype.showPublishLinkDialog=function(a,b,c,d,e,g){var f=document.createElement("div");f.style.whiteSpace= +"nowrap";var h=document.createElement("h3");mxUtils.write(h,a||mxResources.get("link"));h.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:12px";f.appendChild(h);var n=this.getCurrentFile(),h="https://desk.draw.io/support/solutions/articles/16000051941";a=0;if(null!=n&&n.constructor==window.DriveFile&&!b){a=80;var h="https://desk.draw.io/support/solutions/articles/16000039384",t=document.createElement("div");t.style.cssText="border-bottom:1px solid lightGray;padding-bottom:14px;padding-top:6px;margin-bottom:14px;text-align:center;"; +var k=document.createElement("div");k.style.whiteSpace="normal";mxUtils.write(k,mxResources.get("linkAccountRequired"));t.appendChild(k);k=mxUtils.button(mxResources.get("share"),mxUtils.bind(this,function(){this.drive.showPermissions(n.getId())}));k.style.marginTop="12px";k.className="geBtn";t.appendChild(k);f.appendChild(t);k=document.createElement("a");k.style.paddingLeft="12px";k.style.color="gray";k.style.fontSize="11px";k.setAttribute("href","javascript:void(0);");mxUtils.write(k,mxResources.get("check")); +t.appendChild(k);mxEvent.addListener(k,"click",mxUtils.bind(this,function(){this.spinner.spin(document.body,mxResources.get("loading"))&&this.getPublicUrl(this.getCurrentFile(),mxUtils.bind(this,function(a){this.spinner.stop();a=new ErrorDialog(this,null,mxResources.get(null!=a?"diagramIsPublic":"diagramIsNotPublic"),mxResources.get("ok"));this.showDialog(a.container,300,80,!0,!1);a.init()}))}))}var l=null,m=null;if(null!=c||null!=d)a+=30,mxUtils.write(f,mxResources.get("width")+":"),l=document.createElement("input"), +l.setAttribute("type","text"),l.style.marginRight="16px",l.style.width="50px",l.style.marginLeft="6px",l.style.marginRight="16px",l.style.marginBottom="10px",l.value="100%",f.appendChild(l),mxUtils.write(f,mxResources.get("height")+":"),m=document.createElement("input"),m.setAttribute("type","text"),m.style.width="50px",m.style.marginLeft="6px",m.style.marginBottom="10px",m.value=d+"px",f.appendChild(m),mxUtils.br(f);var u=this.addLinkSection(f,g);c=null!=this.pages&&1<this.pages.length;var p=null; +if(null==n||n.constructor!=window.DriveFile||b)p=this.addCheckbox(f,mxResources.get("allPages"),c,!c);var q=this.addCheckbox(f,mxResources.get("lightbox"),!0),G=this.addEditButton(f,q),I=G.getEditInput(),A=this.addCheckbox(f,mxResources.get("layers"),!0);A.style.marginLeft=I.style.marginLeft;A.style.marginBottom="16px";A.style.marginTop="8px";mxEvent.addListener(q,"change",function(){q.checked?(A.removeAttribute("disabled"),I.removeAttribute("disabled")):(A.setAttribute("disabled","disabled"),I.setAttribute("disabled", +"disabled"));I.checked&&q.checked?G.getEditSelect().removeAttribute("disabled"):G.getEditSelect().setAttribute("disabled","disabled")});b=new CustomDialog(this,f,mxUtils.bind(this,function(){e(u.getTarget(),u.getColor(),null==p?!0:p.checked,q.checked,G.getLink(),A.checked,null!=l?l.value:null,null!=m?m.value:null)}),null,mxResources.get("create"),h);this.showDialog(b.container,340,254+a,!0,!0);null!=l?(l.focus(),mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode||mxClient.IS_QUIRKS?l.select(): +document.execCommand("selectAll",!1,null)):u.focus()};EditorUi.prototype.showRemoteExportDialog=function(a,b,c,d){var f=document.createElement("div");f.style.whiteSpace="nowrap";var e=document.createElement("h3");mxUtils.write(e,mxResources.get("image"));e.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:4px";f.appendChild(e);var h=this.addCheckbox(f,mxResources.get("selectionOnly"),!1,this.editor.graph.isSelectionEmpty()),g=d?null:this.addCheckbox(f,mxResources.get("includeCopyOfMyDiagram"), +!0),e=this.editor.graph,n=d?null:this.addCheckbox(f,mxResources.get("transparentBackground"),e.background==mxConstants.NONE||null==e.background);null!=n&&(n.style.marginBottom="16px");a=new CustomDialog(this,f,mxUtils.bind(this,function(){c(!h.checked,null!=g?g.checked:!1,null!=n?n.checked:!1)}),null,a,b);this.showDialog(a.container,300,d?100:186,!0,!0)};EditorUi.prototype.showExportDialog=function(a,b,c,d,e,g,k,l){k=null!=k?k:!0;var f=document.createElement("div");f.style.whiteSpace="nowrap";var h= +this.editor.graph,n="jpeg"==l?196:300,m=document.createElement("h3");mxUtils.write(m,a);m.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:10px";f.appendChild(m);mxUtils.write(f,mxResources.get("zoom")+":");var u=document.createElement("input");u.setAttribute("type","text");u.style.marginRight="16px";u.style.width="60px";u.style.marginLeft="4px";u.style.marginRight="12px";u.value=this.lastExportZoom||"100%";f.appendChild(u);mxUtils.write(f,mxResources.get("borderWidth")+":"); +var p=document.createElement("input");p.setAttribute("type","text");p.style.marginRight="16px";p.style.width="60px";p.style.marginLeft="4px";p.value=this.lastExportBorder||"0";f.appendChild(p);mxUtils.br(f);var q=this.addCheckbox(f,mxResources.get("transparentBackground"),h.background==mxConstants.NONE||null==h.background,null,null,"jpeg"!=l),v=this.addCheckbox(f,mxResources.get("selectionOnly"),!1,h.isSelectionEmpty()),y=document.createElement("input");y.style.marginTop="16px";y.style.marginRight= +"8px";y.style.marginLeft="24px";y.setAttribute("disabled","disabled");y.setAttribute("type","checkbox");g&&(f.appendChild(y),mxUtils.write(f,mxResources.get("crop")),mxUtils.br(f),n+=26,mxEvent.addListener(v,"change",function(){v.checked?y.removeAttribute("disabled"):y.setAttribute("disabled","disabled")}));h.isSelectionEmpty()||(y.setAttribute("checked","checked"),y.defaultChecked=!0);var I=this.addCheckbox(f,mxResources.get("shadow"),h.shadowVisible),A=document.createElement("input");A.style.marginTop= +"16px";A.style.marginRight="8px";A.setAttribute("type","checkbox");!this.isOffline()&&this.canvasSupported||A.setAttribute("disabled","disabled");b&&(f.appendChild(A),mxUtils.write(f,mxResources.get("embedImages")),mxUtils.br(f),n+=26);var D=this.addCheckbox(f,mxResources.get("includeCopyOfMyDiagram"),k,null,null,"jpeg"!=l),H=null!=this.pages&&1<this.pages.length,M=this.addCheckbox(f,H?mxResources.get("allPages"):"",H,!H,null,"jpeg"!=l);M.style.marginLeft="24px";M.style.marginBottom="16px";H||(M.style.display= +"none");mxEvent.addListener(D,"change",function(){D.checked&&H?M.removeAttribute("disabled"):M.setAttribute("disabled","disabled")});k&&H||M.setAttribute("disabled","disabled");var K=document.createElement("select");K.style.maxWidth="260px";K.style.marginLeft="8px";K.style.marginRight="10px";K.className="geBtn";a=document.createElement("option");a.setAttribute("value","auto");mxUtils.write(a,mxResources.get("automatic"));K.appendChild(a);a=document.createElement("option");a.setAttribute("value","blank"); +mxUtils.write(a,mxResources.get("openInNewWindow"));K.appendChild(a);a=document.createElement("option");a.setAttribute("value","self");mxUtils.write(a,mxResources.get("openInThisWindow"));K.appendChild(a);"svg"==l&&(mxUtils.write(f,mxResources.get("links")+":"),f.appendChild(K),mxUtils.br(f),mxUtils.br(f),n+=26);c=new CustomDialog(this,f,mxUtils.bind(this,function(){this.lastExportBorder=p.value;this.lastExportZoom=u.value;e(u.value,q.checked,!v.checked,I.checked,D.checked,A.checked,p.value,y.checked, +!M.checked,K.value)}),null,c,d);this.showDialog(c.container,340,n,!0,!0);u.focus();mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode||mxClient.IS_QUIRKS?u.select():document.execCommand("selectAll",!1,null)};EditorUi.prototype.showEmbedImageDialog=function(a,b,c,d,e){var f=document.createElement("div");f.style.whiteSpace="nowrap";var h=this.editor.graph;if(null!=b){var g=document.createElement("h3");mxUtils.write(g,b);g.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:4px"; +f.appendChild(g)}var n=this.addCheckbox(f,mxResources.get("fit"),!0),k=this.addCheckbox(f,mxResources.get("shadow"),h.shadowVisible&&d,!d),l=this.addCheckbox(f,c),m=this.addCheckbox(f,mxResources.get("lightbox"),!0),u=this.addEditButton(f,m),p=u.getEditInput(),F=1<h.model.getChildCount(h.model.getRoot()),E=this.addCheckbox(f,mxResources.get("layers"),F,!F);E.style.marginLeft=p.style.marginLeft;E.style.marginBottom="12px";E.style.marginTop="8px";mxEvent.addListener(m,"change",function(){m.checked? +(F&&E.removeAttribute("disabled"),p.removeAttribute("disabled")):(E.setAttribute("disabled","disabled"),p.setAttribute("disabled","disabled"));p.checked&&m.checked?u.getEditSelect().removeAttribute("disabled"):u.getEditSelect().setAttribute("disabled","disabled")});b=new CustomDialog(this,f,mxUtils.bind(this,function(){a(n.checked,k.checked,l.checked,m.checked,u.getLink(),E.checked)}),null,mxResources.get("embed"),e);this.showDialog(b.container,280,280,!0,!0)};EditorUi.prototype.createEmbedImage= +function(a,b,c,d,e,g,k,l){function f(b){var f=" ",n="";d&&(f=" onclick=\"(function(img){if(img.wnd!=null&&!img.wnd.closed){img.wnd.focus();}else{var r=function(evt){if(evt.data=='ready'&&evt.source==img.wnd){img.wnd.postMessage(decodeURIComponent(img.getAttribute('src')),'*');window.removeEventListener('message',r);}};window.addEventListener('message',r);img.wnd=window.open('https://www.draw.io/?client=1&lightbox=1"+(e?"&edit=_blank":"")+(g?"&layers=1":"")+"');}})(this);\"",n+="cursor:pointer;"); +a&&(n+="max-width:100%;");var t="";c&&(t=' width="'+Math.round(h.width)+'" height="'+Math.round(h.height)+'"');k('<img src="'+b+'"'+t+(""!=n?' style="'+n+'"':"")+f+"/>")}var h=this.editor.graph.getGraphBounds();if(this.isExportToCanvas())this.exportToCanvas(mxUtils.bind(this,function(a){var b=d?this.getFileData(!0):null;a=this.createImageDataUri(a,b,"png");f(a)}),null,null,null,mxUtils.bind(this,function(a){l({message:mxResources.get("unknownError")})}),null,!0,c?2:1,null,b);else if(b=this.getFileData(!0), +h.width*h.height<=MAX_AREA&&b.length<=MAX_REQUEST_SIZE){var n="";c&&(n="&w="+Math.round(2*h.width)+"&h="+Math.round(2*h.height));var m=new mxXmlRequest(EXPORT_URL,"format=png&base64=1&embedXml="+(d?"1":"0")+n+"&xml="+encodeURIComponent(b));m.send(mxUtils.bind(this,function(){200<=m.getStatus()&&299>=m.getStatus()?f("data:image/png;base64,"+m.getText()):l({message:mxResources.get("unknownError")})}))}else l({message:mxResources.get("drawingTooLarge")})};EditorUi.prototype.createEmbedSvg=function(a, +b,c,d,e,g,k){var f=this.editor.graph.getSvg(),h=f.getElementsByTagName("a");if(null!=h)for(var n=0;n<h.length;n++){var l=h[n].getAttribute("href");null!=l&&"#"==l.charAt(0)&&"_blank"==h[n].getAttribute("target")&&h[n].removeAttribute("target")}d&&f.setAttribute("content",this.getFileData(!0));b&&this.editor.graph.addSvgShadow(f);if(c){var m=" ",u="";d&&(m="onclick=\"(function(img){if(img.wnd!=null&&!img.wnd.closed){img.wnd.focus();}else{var r=function(evt){if(evt.data=='ready'&&evt.source==img.wnd){img.wnd.postMessage(decodeURIComponent(img.getAttribute('src')),'*');window.removeEventListener('message',r);}};window.addEventListener('message',r);img.wnd=window.open('https://www.draw.io/?client=1&lightbox=1"+ +(e?"&edit=_blank":"")+(g?"&layers=1":"")+"');}})(this);\"",u+="cursor:pointer;");a&&(u+="max-width:100%;");this.convertImages(f,mxUtils.bind(this,function(a){k('<img src="'+this.createSvgDataUri(mxUtils.getXml(a))+'"'+(""!=u?' style="'+u+'"':"")+m+"/>")}))}else u="",d&&(f.setAttribute("onclick","(function(svg){var src=window.event.target||window.event.srcElement;while (src!=null&&src.nodeName.toLowerCase()!='a'){src=src.parentNode;}if(src==null){if(svg.wnd!=null&&!svg.wnd.closed){svg.wnd.focus();}else{var r=function(evt){if(evt.data=='ready'&&evt.source==svg.wnd){svg.wnd.postMessage(decodeURIComponent(svg.getAttribute('content')),'*');window.removeEventListener('message',r);}};window.addEventListener('message',r);svg.wnd=window.open('https://www.draw.io/?client=1&lightbox=1"+ +(e?"&edit=_blank":"")+(g?"&layers=1":"")+"');}}})(this);"),u+="cursor:pointer;"),a&&(a=parseInt(f.getAttribute("width")),b=parseInt(f.getAttribute("height")),f.setAttribute("viewBox","0 0 "+a+" "+b),u+="max-width:100%;max-height:"+b+"px;",f.removeAttribute("height")),""!=u&&f.setAttribute("style",u),k(mxUtils.getXml(f))};EditorUi.prototype.timeSince=function(a){a=Math.floor((new Date-a)/1E3);var b=Math.floor(a/31536E3);if(1<b)return b+" "+mxResources.get("years");b=Math.floor(a/2592E3);if(1<b)return b+ " "+mxResources.get("months");b=Math.floor(a/86400);if(1<b)return b+" "+mxResources.get("days");b=Math.floor(a/3600);if(1<b)return b+" "+mxResources.get("hours");b=Math.floor(a/60);return 1<b?b+" "+mxResources.get("minutes"):1==b?b+" "+mxResources.get("minute"):null};EditorUi.prototype.convertMath=function(a,b,c,d){a.mathEnabled&&"undefined"!==typeof MathJax&&"undefined"!==typeof MathJax.Hub?(Editor.MathJaxRender(b),window.setTimeout(mxUtils.bind(this,function(){MathJax.Hub.Queue(mxUtils.bind(this, function(){d()}))}),0)):d()};EditorUi.prototype.decodeNodeIntoGraph=function(a,b){if(null!=a){var c=null;if("diagram"==a.nodeName)c=a;else if("mxfile"==a.nodeName){var d=a.getElementsByTagName("diagram");if(0<d.length){var c=d[0],f=b.getGlobalVariable;b.getGlobalVariable=function(a){return"page"==a?c.getAttribute("name")||mxResources.get("pageWithNumber",[1]):"pagenumber"==a?1:f.apply(this,arguments)}}}null!=c&&(d=b.decompress(mxUtils.getTextContent(c)),null!=d&&0<d.length&&(a=mxUtils.parseXml(d).documentElement))}d= -this.editor.graph;try{this.editor.graph=b,this.editor.setGraphXml(a)}catch(p){}finally{this.editor.graph=d}return a};EditorUi.prototype.getEmbeddedPng=function(a,b,c){var d=this.editor.graph,f=null;if(null!=c&&0<c.length)d=this.createTemporaryGraph(this.editor.graph.getStylesheet()),document.body.appendChild(d.container),this.decodeNodeIntoGraph(this.editor.extractGraphModel(mxUtils.parseXml(c).documentElement,!0),d),f=c;else if(null!=this.pages&&this.currentPage!=this.pages[0]){var d=this.createTemporaryGraph(d.getStylesheet()), +this.editor.graph;try{this.editor.graph=b,this.editor.setGraphXml(a)}catch(q){}finally{this.editor.graph=d}return a};EditorUi.prototype.getEmbeddedPng=function(a,b,c){var d=this.editor.graph,f=null;if(null!=c&&0<c.length)d=this.createTemporaryGraph(this.editor.graph.getStylesheet()),document.body.appendChild(d.container),this.decodeNodeIntoGraph(this.editor.extractGraphModel(mxUtils.parseXml(c).documentElement,!0),d),f=c;else if(null!=this.pages&&this.currentPage!=this.pages[0]){var d=this.createTemporaryGraph(d.getStylesheet()), e=d.getGlobalVariable,h=this.pages[0];d.getGlobalVariable=function(a){return"page"==a?h.getName():"pagenumber"==a?1:e.apply(this,arguments)};document.body.appendChild(d.container);d.model.setRoot(h.root)}this.exportToCanvas(mxUtils.bind(this,function(c){try{null==f&&(f=this.getFileData(!0));var e=c.toDataURL("image/png"),e=this.writeGraphModelToPng(e,"zTXt","mxGraphModel",atob(this.editor.graph.compress(f)));a(e.substring(e.lastIndexOf(",")+1));d!=this.editor.graph&&d.container.parentNode.removeChild(d.container)}catch(t){null!= -b&&b(t)}}),null,null,null,mxUtils.bind(this,function(a){null!=b&&b(a)}),null,null,null,null,d.shadowVisible,null,d)};EditorUi.prototype.getEmbeddedSvg=function(a,b,c,d,e,g,l){l=b.background;l==mxConstants.NONE&&(l=null);b=b.getSvg(l,null,null,null,null,g);null!=a&&b.setAttribute("content",a);null!=c&&b.setAttribute("resource",c);if(null!=e)this.convertImages(b,mxUtils.bind(this,function(a){e((d?"":'<?xml version="1.0" encoding="UTF-8"?>\n<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">\n')+ -mxUtils.getXml(a))}));else return(d?"":'<?xml version="1.0" encoding="UTF-8"?>\n<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">\n')+mxUtils.getXml(b)};EditorUi.prototype.exportImage=function(a,b,c,d,e,g,l,m,n){n=null!=n?n:"png";if(this.spinner.spin(document.body,mxResources.get("exporting"))){var f=this.editor.graph.isSelectionEmpty();c=null!=c?c:f;null==this.thumbImageCache&&(this.thumbImageCache={});try{this.exportToCanvas(mxUtils.bind(this,function(a){this.spinner.stop(); -try{this.saveCanvas(a,e?this.getFileData(!0,null,null,null,c,m):null,n)}catch(x){"Invalid image"==x.message?this.downloadFile(n):this.handleError(x)}}),null,this.thumbImageCache,null,mxUtils.bind(this,function(a){this.spinner.stop();this.handleError(a)}),null,c,a||1,b,d,null,null,g,l)}catch(w){this.spinner.stop(),this.handleError(w)}}};EditorUi.prototype.loadFonts=function(a){if(null!=this.editor.fontCss&&null==this.editor.resolvedFontCss){var b=function(a){return a.replace(RegExp("^[\\s\"']+","g"), -"").replace(RegExp("[\\s\"']+$","g"),"")},c=this.editor.fontCss.split("url("),d=0,f={},e=mxUtils.bind(this,function(){if(0==d){for(var e=[c[0]],h=1;h<c.length;h++){var g=c[h].indexOf(")");e.push('url("');e.push(f[b(c[h].substring(0,g))]);e.push('"'+c[h].substring(g))}this.editor.resolvedFontCss=e.join("");a()}});if(0<c.length)for(var g=1;g<c.length;g++){var l=c[g].indexOf(")"),m=null,t=c[g].indexOf("format(",l);0<t&&(m=b(c[g].substring(t+7,c[g].indexOf(")",t))));mxUtils.bind(this,function(a){if(null== -f[a]){f[a]=a;d++;var b="application/x-font-ttf";if("svg"==m||/(\.svg)($|\?)/i.test(a))b="image/svg+xml";else if("otf"==m||"embedded-opentype"==m||/(\.otf)($|\?)/i.test(a))b="application/x-font-opentype";else if("woff"==m||/(\.woff)($|\?)/i.test(a))b="application/font-woff";else if("woff2"==m||/(\.woff2)($|\?)/i.test(a))b="application/font-woff2";else if("eot"==m||/(\.eot)($|\?)/i.test(a))b="application/vnd.ms-fontobject";else if("sfnt"==m||/(\.sfnt)($|\?)/i.test(a))b="application/font-sfnt";var c= -a;/^https?:\/\//.test(c)&&!this.isCorsEnabledForUrl(c)&&(c=PROXY_URL+"?url="+encodeURIComponent(a));this.loadUrl(c,mxUtils.bind(this,function(b){f[a]=b;d--;e()}),mxUtils.bind(this,function(a){d--;e()}),!0,null,"data:"+b+";charset=utf-8;base64,")}})(b(c[g].substring(0,l)),m)}}else a()};EditorUi.prototype.exportToCanvas=function(a,b,c,d,e,g,l,m,n,t,w,x,C,z){g=null!=g?g:!0;x=null!=x?x:this.editor.graph;C=null!=C?C:0;var f=n?null:x.background;f==mxConstants.NONE&&(f=null);null==f&&(f=d);null==f&&0==n&& -(f=this.editor.graph.defaultPageBackgroundColor);this.convertImages(x.getSvg(f,null,null,z,null,null!=l?l:!0),mxUtils.bind(this,function(c){var d=new Image;d.onload=mxUtils.bind(this,function(){try{var h=document.createElement("canvas"),k=parseInt(c.getAttribute("width")),l=parseInt(c.getAttribute("height"));m=null!=m?m:1;null!=b&&(m=g?Math.min(1,Math.min(3*b/(4*l),b/k)):b/k);k=Math.ceil(m*k)+2*C;l=Math.ceil(m*l)+2*C;h.setAttribute("width",k);h.setAttribute("height",l);var t=h.getContext("2d");null!= -f&&(t.beginPath(),t.rect(0,0,k,l),t.fillStyle=f,t.fill());t.scale(m,m);mxClient.IS_SF?window.setTimeout(function(){t.drawImage(d,C/m,C/m);a(h)},0):(t.drawImage(d,C/m,C/m),a(h))}catch(K){null!=e&&e(K)}});d.onerror=function(a){null!=e&&e(a)};try{t&&this.editor.graph.addSvgShadow(c);var h=mxUtils.bind(this,function(){if(null!=this.editor.resolvedFontCss){var a=document.createElement("style");a.setAttribute("type","text/css");a.innerHTML=this.editor.resolvedFontCss;c.getElementsByTagName("defs")[0].appendChild(a)}this.convertMath(x, -c,!0,mxUtils.bind(this,function(){d.src=this.createSvgDataUri(mxUtils.getXml(c))}))});this.loadFonts(h)}catch(B){null!=e&&e(B)}}),c,w)};EditorUi.prototype.createImageUrlConverter=function(){var a=new mxUrlConverter;a.updateBaseUrl();var b=a.convert,c=this;a.convert=function(d){if(null!=d){var f="http://"==d.substring(0,7)||"https://"==d.substring(0,8);f&&!navigator.onLine?d=c.svgBrokenImage.src:!f||d.substring(0,a.baseUrl.length)==a.baseUrl||c.crossOriginImages&&c.isCorsEnabledForUrl(d)?"chrome-extension://"!= -d.substring(0,19)&&(d=b.apply(this,arguments)):d=PROXY_URL+"?url="+encodeURIComponent(d)}return d};return a};EditorUi.prototype.convertImages=function(a,b,c,d){null==d&&(d=this.createImageUrlConverter());var f=0,e=c||{};c=mxUtils.bind(this,function(c,g){for(var h=a.getElementsByTagName(c),k=0;k<h.length;k++)mxUtils.bind(this,function(c){var h=d.convert(c.getAttribute(g));if(null!=h&&"data:"!=h.substring(0,5)){var k=e[h];null==k?(f++,this.convertImageToDataUri(h,function(d){null!=d&&(e[h]=d,c.setAttribute(g, -d));f--;0==f&&b(a)})):c.setAttribute(g,k)}else null!=h&&c.setAttribute(g,h)})(h[k])});c("image","xlink:href");c("img","src");0==f&&b(a)};EditorUi.prototype.loadUrl=function(a,b,c,d,e,g){try{var f=d||/(\.png)($|\?)/i.test(a)||/(\.jpe?g)($|\?)/i.test(a)||/(\.gif)($|\?)/i.test(a);e=null!=e?e:!0;var h=mxUtils.bind(this,function(){mxUtils.get(a,mxUtils.bind(this,function(a){if(200<=a.getStatus()&&299>=a.getStatus()){if(null!=b){var d=a.getText();if(f){if((9==document.documentMode||10==document.documentMode)&& -"undefined"!==typeof window.mxUtilsBinaryToArray){a=mxUtilsBinaryToArray(a.request.responseBody).toArray();for(var d=Array(a.length),e=0;e<a.length;e++)d[e]=String.fromCharCode(a[e]);d=d.join("")}g=null!=g?g:"data:image/png;base64,";d=g+this.base64Encode(d)}b(d)}}else null!=c&&c({code:App.ERROR_UNKNOWN},a)}),function(){null!=c&&c({code:App.ERROR_UNKNOWN})},f,this.timeout,function(){e&&null!=c&&c({code:App.ERROR_TIMEOUT,retry:h})})});h()}catch(A){null!=c&&c(A)}};EditorUi.prototype.isCorsEnabledForUrl= +b&&b(t)}}),null,null,null,mxUtils.bind(this,function(a){null!=b&&b(a)}),null,null,null,null,d.shadowVisible,null,d)};EditorUi.prototype.getEmbeddedSvg=function(a,b,c,d,e,g,k){k=b.background;k==mxConstants.NONE&&(k=null);b=b.getSvg(k,null,null,null,null,g);null!=a&&b.setAttribute("content",a);null!=c&&b.setAttribute("resource",c);if(null!=e)this.convertImages(b,mxUtils.bind(this,function(a){e((d?"":'<?xml version="1.0" encoding="UTF-8"?>\n<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">\n')+ +mxUtils.getXml(a))}));else return(d?"":'<?xml version="1.0" encoding="UTF-8"?>\n<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">\n')+mxUtils.getXml(b)};EditorUi.prototype.exportImage=function(a,b,c,d,e,g,k,l,m){m=null!=m?m:"png";if(this.spinner.spin(document.body,mxResources.get("exporting"))){var f=this.editor.graph.isSelectionEmpty();c=null!=c?c:f;null==this.thumbImageCache&&(this.thumbImageCache={});try{this.exportToCanvas(mxUtils.bind(this,function(a){this.spinner.stop(); +try{this.saveCanvas(a,e?this.getFileData(!0,null,null,null,c,l):null,m)}catch(x){"Invalid image"==x.message?this.downloadFile(m):this.handleError(x)}}),null,this.thumbImageCache,null,mxUtils.bind(this,function(a){this.spinner.stop();this.handleError(a)}),null,c,a||1,b,d,null,null,g,k)}catch(w){this.spinner.stop(),this.handleError(w)}}};EditorUi.prototype.loadFonts=function(a){if(null!=this.editor.fontCss&&null==this.editor.resolvedFontCss){var b=function(a){return a.replace(RegExp("^[\\s\"']+","g"), +"").replace(RegExp("[\\s\"']+$","g"),"")},c=this.editor.fontCss.split("url("),d=0,f={},e=mxUtils.bind(this,function(){if(0==d){for(var e=[c[0]],g=1;g<c.length;g++){var h=c[g].indexOf(")");e.push('url("');e.push(f[b(c[g].substring(0,h))]);e.push('"'+c[g].substring(h))}this.editor.resolvedFontCss=e.join("");a()}});if(0<c.length)for(var g=1;g<c.length;g++){var k=c[g].indexOf(")"),l=null,t=c[g].indexOf("format(",k);0<t&&(l=b(c[g].substring(t+7,c[g].indexOf(")",t))));mxUtils.bind(this,function(a){if(null== +f[a]){f[a]=a;d++;var b="application/x-font-ttf";if("svg"==l||/(\.svg)($|\?)/i.test(a))b="image/svg+xml";else if("otf"==l||"embedded-opentype"==l||/(\.otf)($|\?)/i.test(a))b="application/x-font-opentype";else if("woff"==l||/(\.woff)($|\?)/i.test(a))b="application/font-woff";else if("woff2"==l||/(\.woff2)($|\?)/i.test(a))b="application/font-woff2";else if("eot"==l||/(\.eot)($|\?)/i.test(a))b="application/vnd.ms-fontobject";else if("sfnt"==l||/(\.sfnt)($|\?)/i.test(a))b="application/font-sfnt";var c= +a;/^https?:\/\//.test(c)&&!this.isCorsEnabledForUrl(c)&&(c=PROXY_URL+"?url="+encodeURIComponent(a));this.loadUrl(c,mxUtils.bind(this,function(b){f[a]=b;d--;e()}),mxUtils.bind(this,function(a){d--;e()}),!0,null,"data:"+b+";charset=utf-8;base64,")}})(b(c[g].substring(0,k)),l)}}else a()};EditorUi.prototype.exportToCanvas=function(a,b,c,d,e,g,k,l,m,t,w,x,C,z){g=null!=g?g:!0;x=null!=x?x:this.editor.graph;C=null!=C?C:0;var f=m?null:x.background;f==mxConstants.NONE&&(f=null);null==f&&(f=d);null==f&&0==m&& +(f=this.editor.graph.defaultPageBackgroundColor);this.convertImages(x.getSvg(f,null,null,z,null,null!=k?k:!0),mxUtils.bind(this,function(c){var d=new Image;d.onload=mxUtils.bind(this,function(){try{var h=document.createElement("canvas"),n=parseInt(c.getAttribute("width")),k=parseInt(c.getAttribute("height"));l=null!=l?l:1;null!=b&&(l=g?Math.min(1,Math.min(3*b/(4*k),b/n)):b/n);n=Math.ceil(l*n)+2*C;k=Math.ceil(l*k)+2*C;h.setAttribute("width",n);h.setAttribute("height",k);var t=h.getContext("2d");null!= +f&&(t.beginPath(),t.rect(0,0,n,k),t.fillStyle=f,t.fill());t.scale(l,l);mxClient.IS_SF?window.setTimeout(function(){t.drawImage(d,C/l,C/l);a(h)},0):(t.drawImage(d,C/l,C/l),a(h))}catch(K){null!=e&&e(K)}});d.onerror=function(a){null!=e&&e(a)};try{t&&this.editor.graph.addSvgShadow(c);var h=mxUtils.bind(this,function(){if(null!=this.editor.resolvedFontCss){var a=document.createElement("style");a.setAttribute("type","text/css");a.innerHTML=this.editor.resolvedFontCss;c.getElementsByTagName("defs")[0].appendChild(a)}this.convertMath(x, +c,!0,mxUtils.bind(this,function(){d.src=this.createSvgDataUri(mxUtils.getXml(c))}))});this.loadFonts(h)}catch(A){null!=e&&e(A)}}),c,w)};EditorUi.prototype.createImageUrlConverter=function(){var a=new mxUrlConverter;a.updateBaseUrl();var b=a.convert,c=this;a.convert=function(d){if(null!=d){var e="http://"==d.substring(0,7)||"https://"==d.substring(0,8);e&&!navigator.onLine?d=c.svgBrokenImage.src:!e||d.substring(0,a.baseUrl.length)==a.baseUrl||c.crossOriginImages&&c.isCorsEnabledForUrl(d)?"chrome-extension://"!= +d.substring(0,19)&&(d=b.apply(this,arguments)):d=PROXY_URL+"?url="+encodeURIComponent(d)}return d};return a};EditorUi.prototype.convertImages=function(a,b,c,d){null==d&&(d=this.createImageUrlConverter());var e=0,f=c||{};c=mxUtils.bind(this,function(c,g){for(var h=a.getElementsByTagName(c),n=0;n<h.length;n++)mxUtils.bind(this,function(c){var h=d.convert(c.getAttribute(g));if(null!=h&&"data:"!=h.substring(0,5)){var n=f[h];null==n?(e++,this.convertImageToDataUri(h,function(d){null!=d&&(f[h]=d,c.setAttribute(g, +d));e--;0==e&&b(a)})):c.setAttribute(g,n)}else null!=h&&c.setAttribute(g,h)})(h[n])});c("image","xlink:href");c("img","src");0==e&&b(a)};EditorUi.prototype.loadUrl=function(a,b,c,d,e,g){try{var f=d||/(\.png)($|\?)/i.test(a)||/(\.jpe?g)($|\?)/i.test(a)||/(\.gif)($|\?)/i.test(a);e=null!=e?e:!0;var h=mxUtils.bind(this,function(){mxUtils.get(a,mxUtils.bind(this,function(a){if(200<=a.getStatus()&&299>=a.getStatus()){if(null!=b){var d=a.getText();if(f){if((9==document.documentMode||10==document.documentMode)&& +"undefined"!==typeof window.mxUtilsBinaryToArray){a=mxUtilsBinaryToArray(a.request.responseBody).toArray();for(var d=Array(a.length),e=0;e<a.length;e++)d[e]=String.fromCharCode(a[e]);d=d.join("")}g=null!=g?g:"data:image/png;base64,";d=g+this.base64Encode(d)}b(d)}}else null!=c&&c({code:App.ERROR_UNKNOWN},a)}),function(){null!=c&&c({code:App.ERROR_UNKNOWN})},f,this.timeout,function(){e&&null!=c&&c({code:App.ERROR_TIMEOUT,retry:h})})});h()}catch(B){null!=c&&c(B)}};EditorUi.prototype.isCorsEnabledForUrl= function(a){null!=urlParams.cors&&null==this.corsRegExp&&(this.corsRegExp=new RegExp(decodeURIComponent(urlParams.cors)));return null!=this.corsRegExp&&this.corsRegExp.test(a)||"https://raw.githubusercontent.com/"===a.substring(0,34)||"https://cdn.rawgit.com/"===a.substring(0,23)||"https://rawgit.com/"===a.substring(0,19)||/^https?:\/\/[^\/]*\.iconfinder.com\//.test(a)||/^https?:\/\/[^\/]*\.draw\.io\/proxy/.test(a)||/^https?:\/\/[^\/]*\.github\.io\//.test(a)};EditorUi.prototype.convertImageToDataUri= -function(a,b){if(/(\.svg)$/i.test(a))mxUtils.get(a,mxUtils.bind(this,function(a){b(this.createSvgDataUri(a.getText()))}),function(){b(this.svgBrokenImage.src)});else{var c=new Image,d=this;this.crossOriginImages&&(c.crossOrigin="anonymous");c.onload=function(){var a=document.createElement("canvas"),f=a.getContext("2d");a.height=c.height;a.width=c.width;f.drawImage(c,0,0);try{b(a.toDataURL())}catch(v){b(d.svgBrokenImage.src)}};c.onerror=function(){b(d.svgBrokenImage.src)};c.src=a}};EditorUi.prototype.importXml= -function(a,b,c,d,e){b=null!=b?b:0;c=null!=c?c:0;var f=[];try{var g=this.editor.graph;if(null!=a&&0<a.length){var h=mxUtils.parseXml(a),k=this.editor.extractGraphModel(h.documentElement,null!=this.pages);if(null!=k&&"mxfile"==k.nodeName&&null!=this.pages){var l=k.getElementsByTagName("diagram");if(1==l.length)k=mxUtils.parseXml(g.decompress(mxUtils.getTextContent(l[0]))).documentElement;else if(1<l.length){g.model.beginUpdate();try{for(a=0;a<l.length;a++){l[a].removeAttribute("id");var m=this.updatePageRoot(new DiagramPage(l[a])), -n=this.pages.length;null==m.getName()&&m.setName(mxResources.get("pageWithNumber",[n+1]));g.model.execute(new ChangePage(this,m,m,n))}}finally{g.model.endUpdate()}}}null!=k&&"mxGraphModel"===k.nodeName&&(f=g.importGraphModel(k,b,c,d))}}catch(C){throw e||this.handleError(C,mxResources.get("invalidOrMissingFile")),C;}return f};EditorUi.prototype.isRemoteVisioFormat=function(a){return/(\.v(sd|dx))($|\?)/i.test(a)||/(\.vs(s|x))($|\?)/i.test(a)};EditorUi.prototype.importVisio=function(a,b,c,d){d=null!= -d?d:a.name;c=null!=c?c:mxUtils.bind(this,function(a){this.handleError(a)});var f=mxUtils.bind(this,function(){this.loadingExtensions=!1;if(this.doImportVisio)if(this.isRemoteVisioFormat(d)&&null!=VSD_CONVERT_URL){var f=new FormData;f.append("file1",a,d);var e=new XMLHttpRequest;e.open("POST",VSD_CONVERT_URL);e.responseType="blob";e.onreadystatechange=mxUtils.bind(this,function(){if(4==e.readyState)if(200<=e.status&&299>=e.status)try{e.response.name=d,this.doImportVisio(e.response,b,c)}catch(y){c(y)}else c({})}); -e.send(f)}else try{this.doImportVisio(a,b,c)}catch(y){c(y)}});this.doImportVisio||this.loadingExtensions||this.isOffline()?f():(this.loadingExtensions=!0,mxscript("js/extensions.min.js",f))};EditorUi.prototype.exportVisio=function(){var a=mxUtils.bind(this,function(){this.loadingExtensions=!1;if("undefined"!==typeof VsdxExport)try{(new VsdxExport(this)).exportCurrentDiagrams()}catch(h){this.handleError(h)}});"undefined"!==typeof VsdxExport||this.loadingExtensions||this.isOffline()?a():(this.loadingExtensions= -!0,mxscript("js/extensions.min.js",a))};EditorUi.prototype.convertLucidChart=function(a,b,c){var d=mxUtils.bind(this,function(){this.loadingExtensions=!1;if("undefined"!==typeof window.LucidImporter)try{b(LucidImporter.importState(JSON.parse(a)))}catch(u){c(u)}else c({message:mxResources.get("serviceUnavailableOrBlocked")})});"undefined"!==typeof window.LucidImporter||this.loadingExtensions||this.isOffline()?window.setTimeout(d,0):(this.loadingExtensions=!0,"1"==urlParams.dev?mxscript("js/diagramly/Extensions.js", -d):mxscript("js/extensions.min.js",d))};EditorUi.prototype.insertAsPreText=function(a,b,c){var d=this.editor.graph,f=null;d.getModel().beginUpdate();try{f=d.insertVertex(null,null,"<pre>"+a+"</pre>",b,c,1,1,"text;html=1;align=center;verticalAlign=middle;"),d.updateCellSize(f,!0)}finally{d.getModel().endUpdate()}return f};EditorUi.prototype.insertTextAt=function(a,b,c,d,e,g,l){g=null!=g?g:!0;l=null!=l?l:!0;if(null!=a)if(Graph.fileSupport&&!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(a))this.parseFile(new Blob([a.replace(/\s+/g, -" ")],{type:"application/octet-stream"}),mxUtils.bind(this,function(a){4==a.readyState&&200<=a.status&&299>=a.status&&this.editor.graph.setSelectionCells(this.insertTextAt(a.responseText,b,c,!0))}));else if("data:"==a.substring(0,5)||!this.isOffline()&&(e||/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(a))){var f=this.editor.graph;if("data:image/png;base64,"==a.substring(0,22)){var h=this.extractGraphModelFromPng(a),k=this.importXml(h,b,c,g,!0);if(0<k.length)return k}if("data:image/svg+xml;"==a.substring(0, -19))try{if(h=null,"data:image/svg+xml;base64,"==a.substring(0,26)?(h=a.substring(a.indexOf(",")+1),h=window.atob&&!mxClient.IS_SF?atob(h):Base64.decode(h,!0)):h=decodeURIComponent(a.substring(a.indexOf(",")+1)),k=this.importXml(h,b,c,g,!0),0<k.length)return k}catch(w){}this.loadImage(a,mxUtils.bind(this,function(d){if("data:"==a.substring(0,5))this.resizeImage(d,a,mxUtils.bind(this,function(a,d,e){f.setSelectionCell(f.insertVertex(null,null,"",f.snap(b),f.snap(c),d,e,"shape=image;verticalLabelPosition=bottom;labelBackgroundColor=#ffffff;verticalAlign=top;aspect=fixed;imageAspect=0;image="+ -this.convertDataUri(a)+";"))}),l,this.maxImageSize);else{var e=Math.min(1,Math.min(this.maxImageSize/d.width,this.maxImageSize/d.height)),g=Math.round(d.width*e);d=Math.round(d.height*e);f.setSelectionCell(f.insertVertex(null,null,"",f.snap(b),f.snap(c),g,d,"shape=image;verticalLabelPosition=bottom;labelBackgroundColor=#ffffff;verticalAlign=top;aspect=fixed;imageAspect=0;image="+a+";"))}}),mxUtils.bind(this,function(){var e=null;f.getModel().beginUpdate();try{e=f.insertVertex(f.getDefaultParent(), -null,a,f.snap(b),f.snap(c),1,1,"text;"+(d?"html=1;":"")),f.updateCellSize(e),f.fireEvent(new mxEventObject("textInserted","cells",[e]))}finally{f.getModel().endUpdate()}f.setSelectionCell(e)}))}else{a=this.editor.graph.zapGremlins(mxUtils.trim(a));if(this.isCompatibleString(a))return this.importXml(a,b,c,g);if(0<a.length)if(this.isLucidChartData(a))this.convertLucidChart(a,mxUtils.bind(this,function(a){this.editor.graph.setSelectionCells(this.importXml(a,b,c,g))}),mxUtils.bind(this,function(a){this.handleError(a)})); -else{f=this.editor.graph;e=null;f.getModel().beginUpdate();try{e=f.insertVertex(f.getDefaultParent(),null,"",f.snap(b),f.snap(c),1,1,"text;"+(d?"html=1;":"")),f.fireEvent(new mxEventObject("textInserted","cells",[e])),"<"==a.charAt(0)&&a.indexOf(">")==a.length-1&&(a=mxUtils.htmlEntities(a)),e.value=a,f.updateCellSize(e),/\b((?:[a-z][\w-]+:(?:\/{1,3}|[a-z0-9%])|www\d{0,3}[.]|[a-z0-9.\-]+[.][a-z]{2,4}\/)(?:[^\s()<>]+|\(([^\s()<>]+|(\([^\s()<>]+\)))*\))+(?:\(([^\s()<>]+|(\([^\s()<>]+\)))*\)|[^\s`!()\[\]{};:'".,<>?«»“â€â€˜â€™]))/i.test(e.value)&& +function(a,b){if(/(\.svg)$/i.test(a))mxUtils.get(a,mxUtils.bind(this,function(a){b(this.createSvgDataUri(a.getText()))}),function(){b(this.svgBrokenImage.src)});else{var c=new Image,d=this;this.crossOriginImages&&(c.crossOrigin="anonymous");c.onload=function(){var a=document.createElement("canvas"),e=a.getContext("2d");a.height=c.height;a.width=c.width;e.drawImage(c,0,0);try{b(a.toDataURL())}catch(v){b(d.svgBrokenImage.src)}};c.onerror=function(){b(d.svgBrokenImage.src)};c.src=a}};EditorUi.prototype.importXml= +function(a,b,c,d,e){b=null!=b?b:0;c=null!=c?c:0;var f=[];try{var g=this.editor.graph;if(null!=a&&0<a.length){var h=mxUtils.parseXml(a),n=this.editor.extractGraphModel(h.documentElement,null!=this.pages);if(null!=n&&"mxfile"==n.nodeName&&null!=this.pages){var k=n.getElementsByTagName("diagram");if(1==k.length)n=mxUtils.parseXml(g.decompress(mxUtils.getTextContent(k[0]))).documentElement;else if(1<k.length){g.model.beginUpdate();try{for(a=0;a<k.length;a++){k[a].removeAttribute("id");var l=this.updatePageRoot(new DiagramPage(k[a])), +m=this.pages.length;null==l.getName()&&(l.setName(mxResources.get("pageWithNumber",[m+1])),l.needsUpdate=!0);g.model.execute(new ChangePage(this,l,l,m))}}finally{g.model.endUpdate()}}}null!=n&&"mxGraphModel"===n.nodeName&&(f=g.importGraphModel(n,b,c,d))}}catch(C){throw e||this.handleError(C,mxResources.get("invalidOrMissingFile")),C;}return f};EditorUi.prototype.isRemoteVisioFormat=function(a){return/(\.v(sd|dx))($|\?)/i.test(a)||/(\.vs(s|x))($|\?)/i.test(a)};EditorUi.prototype.importVisio=function(a, +b,c,d){d=null!=d?d:a.name;c=null!=c?c:mxUtils.bind(this,function(a){this.handleError(a)});var e=mxUtils.bind(this,function(){this.loadingExtensions=!1;if(this.doImportVisio)if(this.isRemoteVisioFormat(d)&&null!=VSD_CONVERT_URL){var e=new FormData;e.append("file1",a,d);var f=new XMLHttpRequest;f.open("POST",VSD_CONVERT_URL);f.responseType="blob";f.onreadystatechange=mxUtils.bind(this,function(){if(4==f.readyState)if(200<=f.status&&299>=f.status)try{f.response.name=d,this.doImportVisio(f.response,b, +c)}catch(y){c(y)}else c({})});f.send(e)}else try{this.doImportVisio(a,b,c)}catch(y){c(y)}});this.doImportVisio||this.loadingExtensions||this.isOffline()?e():(this.loadingExtensions=!0,mxscript("js/extensions.min.js",e))};EditorUi.prototype.exportVisio=function(){var a=mxUtils.bind(this,function(){this.loadingExtensions=!1;if("undefined"!==typeof VsdxExport)try{(new VsdxExport(this)).exportCurrentDiagrams()}catch(h){this.handleError(h)}});"undefined"!==typeof VsdxExport||this.loadingExtensions||this.isOffline()? +a():(this.loadingExtensions=!0,mxscript("js/extensions.min.js",a))};EditorUi.prototype.convertLucidChart=function(a,b,c){var d=mxUtils.bind(this,function(){this.loadingExtensions=!1;if("undefined"!==typeof window.LucidImporter)try{b(LucidImporter.importState(JSON.parse(a)))}catch(p){c(p)}else c({message:mxResources.get("serviceUnavailableOrBlocked")})});"undefined"!==typeof window.LucidImporter||this.loadingExtensions||this.isOffline()?window.setTimeout(d,0):(this.loadingExtensions=!0,"1"==urlParams.dev? +mxscript("js/diagramly/Extensions.js",d):mxscript("js/extensions.min.js",d))};EditorUi.prototype.insertAsPreText=function(a,b,c){var d=this.editor.graph,e=null;d.getModel().beginUpdate();try{e=d.insertVertex(null,null,"<pre>"+a+"</pre>",b,c,1,1,"text;html=1;align=center;verticalAlign=middle;"),d.updateCellSize(e,!0)}finally{d.getModel().endUpdate()}return e};EditorUi.prototype.insertTextAt=function(a,b,c,d,e,g,k){g=null!=g?g:!0;k=null!=k?k:!0;if(null!=a)if(Graph.fileSupport&&!this.isOffline()&&(new XMLHttpRequest).upload&& +this.isRemoteFileFormat(a))this.parseFile(new Blob([a.replace(/\s+/g," ")],{type:"application/octet-stream"}),mxUtils.bind(this,function(a){4==a.readyState&&200<=a.status&&299>=a.status&&this.editor.graph.setSelectionCells(this.insertTextAt(a.responseText,b,c,!0))}));else if("data:"==a.substring(0,5)||!this.isOffline()&&(e||/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(a))){var f=this.editor.graph;if("data:image/png;base64,"==a.substring(0,22)){var h=this.extractGraphModelFromPng(a),n=this.importXml(h,b, +c,g,!0);if(0<n.length)return n}if("data:image/svg+xml;"==a.substring(0,19))try{if(h=null,"data:image/svg+xml;base64,"==a.substring(0,26)?(h=a.substring(a.indexOf(",")+1),h=window.atob&&!mxClient.IS_SF?atob(h):Base64.decode(h,!0)):h=decodeURIComponent(a.substring(a.indexOf(",")+1)),n=this.importXml(h,b,c,g,!0),0<n.length)return n}catch(w){}this.loadImage(a,mxUtils.bind(this,function(d){if("data:"==a.substring(0,5))this.resizeImage(d,a,mxUtils.bind(this,function(a,d,e){f.setSelectionCell(f.insertVertex(null, +null,"",f.snap(b),f.snap(c),d,e,"shape=image;verticalLabelPosition=bottom;labelBackgroundColor=#ffffff;verticalAlign=top;aspect=fixed;imageAspect=0;image="+this.convertDataUri(a)+";"))}),k,this.maxImageSize);else{var e=Math.min(1,Math.min(this.maxImageSize/d.width,this.maxImageSize/d.height)),g=Math.round(d.width*e);d=Math.round(d.height*e);f.setSelectionCell(f.insertVertex(null,null,"",f.snap(b),f.snap(c),g,d,"shape=image;verticalLabelPosition=bottom;labelBackgroundColor=#ffffff;verticalAlign=top;aspect=fixed;imageAspect=0;image="+ +a+";"))}}),mxUtils.bind(this,function(){var e=null;f.getModel().beginUpdate();try{e=f.insertVertex(f.getDefaultParent(),null,a,f.snap(b),f.snap(c),1,1,"text;"+(d?"html=1;":"")),f.updateCellSize(e),f.fireEvent(new mxEventObject("textInserted","cells",[e]))}finally{f.getModel().endUpdate()}f.setSelectionCell(e)}))}else{a=this.editor.graph.zapGremlins(mxUtils.trim(a));if(this.isCompatibleString(a))return this.importXml(a,b,c,g);if(0<a.length)if(this.isLucidChartData(a))this.convertLucidChart(a,mxUtils.bind(this, +function(a){this.editor.graph.setSelectionCells(this.importXml(a,b,c,g))}),mxUtils.bind(this,function(a){this.handleError(a)}));else{f=this.editor.graph;e=null;f.getModel().beginUpdate();try{e=f.insertVertex(f.getDefaultParent(),null,"",f.snap(b),f.snap(c),1,1,"text;"+(d?"html=1;":"")),f.fireEvent(new mxEventObject("textInserted","cells",[e])),"<"==a.charAt(0)&&a.indexOf(">")==a.length-1&&(a=mxUtils.htmlEntities(a)),e.value=a,f.updateCellSize(e),/\b((?:[a-z][\w-]+:(?:\/{1,3}|[a-z0-9%])|www\d{0,3}[.]|[a-z0-9.\-]+[.][a-z]{2,4}\/)(?:[^\s()<>]+|\(([^\s()<>]+|(\([^\s()<>]+\)))*\))+(?:\(([^\s()<>]+|(\([^\s()<>]+\)))*\)|[^\s`!()\[\]{};:'".,<>?«»“â€â€˜â€™]))/i.test(e.value)&& f.setLinkForCell(e,e.value),e.geometry.width+=f.gridSize,e.geometry.height+=f.gridSize}finally{f.getModel().endUpdate()}return[e]}}return[]};EditorUi.prototype.formatFileSize=function(a){var b=-1;do a/=1024,b++;while(1024<a);return Math.max(a,.1).toFixed(1)+" kB; MB; GB; TB;PB;EB;ZB;YB".split(";")[b]};EditorUi.prototype.convertDataUri=function(a){if("data:"==a.substring(0,5)){var b=a.indexOf(";");0<b&&(a=a.substring(0,b)+a.substring(a.indexOf(",",b+1)))}return a};EditorUi.prototype.isRemoteFileFormat= function(a,b){return/(\"contentType\":\s*\"application\/gliffy\+json\")/.test(a)};EditorUi.prototype.isLucidChartData=function(a){return null!=a&&'{"state":"{\\"Properties\\":'==a.substring(0,26)};EditorUi.prototype.importLocalFile=function(a,b){if(a&&Graph.fileSupport&&(!mxClient.IS_IE&&!mxClient.IS_IE11||0>navigator.appVersion.indexOf("Windows NT 6.1"))){var c=document.createElement("input");c.setAttribute("type","file");mxEvent.addListener(c,"change",mxUtils.bind(this,function(){null!=c.files&& this.importFiles(c.files,null,null,this.maxImageSize)}));c.click()}else{window.openNew=!1;window.openKey="import";if(!b){var d=Editor.useLocalStorage;Editor.useLocalStorage=!a}window.openFile=new OpenFile(mxUtils.bind(this,function(a){this.hideDialog(a)}));window.openFile.setConsumer(mxUtils.bind(this,function(a,b){if(null!=b&&Graph.fileSupport&&/(\.v(dx|sdx?))($|\?)/i.test(b)){var c=new Blob([a],{type:"application/octet-stream"});this.importVisio(c,mxUtils.bind(this,function(a){this.importXml(a)}), -null,b)}else this.editor.graph.setSelectionCells(this.importXml(a))}));this.showDialog((new OpenDialog(this)).container,360,220,!0,!0,function(){window.openFile=null});if(!b){var f=this.dialog,e=f.close;this.dialog.close=mxUtils.bind(this,function(a){Editor.useLocalStorage=d;e.apply(f,arguments);a&&null==this.getCurrentFile()&&"1"!=urlParams.embed&&this.showSplash()})}}};EditorUi.prototype.importFile=function(a,b,c,d,e,g,l,m,n,t,w){t=null!=t?t:!0;var f=!1,h=null,k=mxUtils.bind(this,function(a){var b= -null;null!=a&&"<mxlibrary"==a.substring(0,10)?this.loadLibrary(new LocalLibrary(this,a,l)):b=this.importXml(a,c,d,t);null!=m&&m(b)});"image"==b.substring(0,5)?(n=!1,"image/png"==b.substring(0,9)&&(b=w?null:this.extractGraphModelFromPng(a),null!=b&&0<b.length&&(h=this.importXml(b,c,d,t),n=!0)),n||(h=this.editor.graph,b=a.indexOf(";"),0<b&&(a=a.substring(0,b)+a.substring(a.indexOf(",",b+1))),t&&h.isGridEnabled()&&(c=h.snap(c),d=h.snap(d)),h=[h.insertVertex(null,null,"",c,d,e,g,"shape=image;verticalLabelPosition=bottom;labelBackgroundColor=#ffffff;verticalAlign=top;aspect=fixed;imageAspect=0;image="+ -a+";")])):/(\.*<graphml )/.test(a)&&"undefined"!==typeof window.mxGraphMlCodec?(new mxGraphMlCodec).decode(a,mxUtils.bind(this,function(a){a=this.importXml(a,c,d,t);null!=m&&m(a)})):null!=n&&null!=l&&(/(\.v(dx|sdx?))($|\?)/i.test(l)||/(\.vs(x|sx?))($|\?)/i.test(l))?(f=!0,this.importVisio(n,k)):!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(a,l)?(f=!0,this.parseFile(null!=n?n:new Blob([a],{type:"application/octet-stream"}),mxUtils.bind(this,function(a){4==a.readyState&&(200<= -a.status&&299>=a.status?k(a.responseText):null!=m&&m(null))}),l)):/(\.v(sd|dx))($|\?)/i.test(l)||/(\.vs(s|x))($|\?)/i.test(l)||(h=this.insertTextAt(this.validateFileData(a),c,d,!0,null,t));f||null==m||m(h);return h};EditorUi.prototype.base64Encode=function(a){for(var b="",c=0,d=a.length,f,e,g;c<d;){f=a.charCodeAt(c++)&255;if(c==d){b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(f>>2);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((f&3)<<4); -b+="==";break}e=a.charCodeAt(c++);if(c==d){b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(f>>2);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((f&3)<<4|(e&240)>>4);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((e&15)<<2);b+="=";break}g=a.charCodeAt(c++);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(f>>2);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((f& -3)<<4|(e&240)>>4);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((e&15)<<2|(g&192)>>6);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(g&63)}return b};EditorUi.prototype.importFiles=function(a,b,c,d,e,g,l,m,n,t,w,x){b=null!=b?b:0;c=null!=c?c:0;d=null!=d?d:this.maxImageSize;t=null!=t?t:this.maxImageBytes;var f=null!=b&&null!=c,h=!0,k=!1;if(!mxClient.IS_CHROMEAPP&&null!=a)for(var q=w||this.resampleThreshold,v=0;v<a.length;v++)if("image/"==a[v].type.substring(0, -6)&&a[v].size>q){k=!0;break}var p=mxUtils.bind(this,function(){var k=this.editor.graph,n=k.gridSize;e=null!=e?e:mxUtils.bind(this,function(a,b,c,d,e,g,h,k,l){return null!=a&&"<mxlibrary"==a.substring(0,10)?(this.spinner.stop(),this.loadLibrary(new LocalLibrary(this,a,h)),null):this.importFile(a,b,c,d,e,g,h,k,l,f,x)});g=null!=g?g:mxUtils.bind(this,function(a){k.setSelectionCells(a)});if(this.spinner.spin(document.body,mxResources.get("loading")))for(var q=a.length,v=q,p=[],u=mxUtils.bind(this,function(a, -b){p[a]=b;if(0==--v){this.spinner.stop();if(null!=m)m(p);else{var c=[];k.getModel().beginUpdate();try{for(var d=0;d<p.length;d++){var f=p[d]();null!=f&&(c=c.concat(f))}}finally{k.getModel().endUpdate()}}g(c)}}),A=0;A<q;A++)mxUtils.bind(this,function(f){var g=a[f],m=new FileReader;m.onload=mxUtils.bind(this,function(a){if(null==l||l(g))if("image/"==g.type.substring(0,6))if("image/svg"==g.type.substring(0,9)){var m=a.target.result,q=m.indexOf(","),v=decodeURIComponent(escape(atob(m.substring(q+1)))), -p=mxUtils.parseXml(v),v=p.getElementsByTagName("svg");if(0<v.length){var v=v[0],B=x?null:v.getAttribute("content");null!=B&&"<"!=B.charAt(0)&&"%"!=B.charAt(0)&&(B=unescape(window.atob?atob(B):Base64.decode(B,!0)));null!=B&&"%"==B.charAt(0)&&(B=decodeURIComponent(B));null==B||"<mxfile "!==B.substring(0,8)&&"<mxGraphModel "!==B.substring(0,14)?u(f,mxUtils.bind(this,function(){try{if(m.substring(0,q+1),null!=p){var a=p.getElementsByTagName("svg");if(0<a.length){var h=a[0],l=parseFloat(h.getAttribute("width")), -t=parseFloat(h.getAttribute("height")),v=h.getAttribute("viewBox");if(null==v||0==v.length)h.setAttribute("viewBox","0 0 "+l+" "+t);else if(isNaN(l)||isNaN(t)){var w=v.split(" ");3<w.length&&(l=parseFloat(w[2]),t=parseFloat(w[3]))}m=this.createSvgDataUri(mxUtils.getXml(h));var u=Math.min(1,Math.min(d/Math.max(1,l)),d/Math.max(1,t)),x=e(m,g.type,b+f*n,c+f*n,Math.max(1,Math.round(l*u)),Math.max(1,Math.round(t*u)),g.name);if(isNaN(l)||isNaN(t)){var B=new Image;B.onload=mxUtils.bind(this,function(){l= -Math.max(1,B.width);t=Math.max(1,B.height);x[0].geometry.width=l;x[0].geometry.height=t;h.setAttribute("viewBox","0 0 "+l+" "+t);m=this.createSvgDataUri(mxUtils.getXml(h));var a=m.indexOf(";");0<a&&(m=m.substring(0,a)+m.substring(m.indexOf(",",a+1)));k.setCellStyles("image",m,[x[0]])});B.src=this.createSvgDataUri(mxUtils.getXml(h))}return x}}}catch(fa){}return null})):u(f,mxUtils.bind(this,function(){return e(B,"text/xml",b+f*n,c+f*n,0,0,g.name)}))}else u(f,mxUtils.bind(this,function(){return null}))}else{v= -!1;if("image/png"==g.type){var A=x?null:this.extractGraphModelFromPng(a.target.result);if(null!=A&&0<A.length){var y=new Image;y.src=a.target.result;u(f,mxUtils.bind(this,function(){return e(A,"text/xml",b+f*n,c+f*n,y.width,y.height,g.name)}));v=!0}}v||(mxClient.IS_CHROMEAPP?(this.spinner.stop(),this.showError(mxResources.get("error"),mxResources.get("dragAndDropNotSupported"),mxResources.get("cancel"),mxUtils.bind(this,function(){}),null,mxResources.get("ok"),mxUtils.bind(this,function(){this.actions.get("import").funct()}))): -this.loadImage(a.target.result,mxUtils.bind(this,function(k){this.resizeImage(k,a.target.result,mxUtils.bind(this,function(k,l,m){u(f,mxUtils.bind(this,function(){if(null!=k&&k.length<t){var q=h&&this.isResampleImage(a.target.result,w)?Math.min(1,Math.min(d/l,d/m)):1;return e(k,g.type,b+f*n,c+f*n,Math.round(l*q),Math.round(m*q),g.name)}this.handleError({message:mxResources.get("imageTooBig")});return null}))}),h,d,w)}),mxUtils.bind(this,function(){this.handleError({message:mxResources.get("invalidOrMissingFile")})})))}else e(a.target.result, -g.type,b+f*n,c+f*n,240,160,g.name,function(a){u(f,function(){return a})})});/(\.v(dx|sdx?))($|\?)/i.test(g.name)||/(\.vs(x|sx?))($|\?)/i.test(g.name)?e(null,g.type,b+f*n,c+f*n,240,160,g.name,function(a){u(f,function(){return a})},g):"image"==g.type.substring(0,5)?m.readAsDataURL(g):m.readAsText(g)})(A)});k?this.confirmImageResize(function(a){h=a;p()},n):p()};EditorUi.prototype.confirmImageResize=function(a,b){b=null!=b?b:!1;var c=null!=this.spinner&&null!=this.spinner.pause?this.spinner.pause():function(){}, -d=isLocalStorage||mxClient.IS_CHROMEAPP?mxSettings.getResizeImages():null,f=function(d,f){if(d||b)mxSettings.setResizeImages(d?f:null),mxSettings.save();c();a(f)};null==d||b?this.showDialog((new ConfirmDialog(this,mxResources.get("resizeLargeImages"),function(a){f(a,!0)},function(a){f(a,!1)},mxResources.get("resize"),mxResources.get("actualSize"),'<img style="margin-top:8px;" src="'+Editor.loResImage+'"/>','<img style="margin-top:8px;" src="'+Editor.hiResImage+'"/>',isLocalStorage||mxClient.IS_CHROMEAPP)).container, -340,isLocalStorage||mxClient.IS_CHROMEAPP?220:200,!0,!0):f(!1,d)};EditorUi.prototype.parseFile=function(a,b,c){c=null!=c?c:a.name;var d=new FormData;d.append("format","xml");d.append("upfile",a,c);var f=new XMLHttpRequest;f.open("POST",OPEN_URL);f.onreadystatechange=function(){b(f)};f.send(d)};EditorUi.prototype.isResampleImage=function(a,b){b=null!=b?b:this.resampleThreshold;return a.length>b};EditorUi.prototype.resizeImage=function(a,b,c,d,e,g){e=null!=e?e:this.maxImageSize;var f=Math.max(1,a.width), -h=Math.max(1,a.height);if(d&&this.isResampleImage(b,g))try{var k=Math.max(f/e,h/e);if(1<k){var l=Math.round(f/k),m=Math.round(h/k),n=document.createElement("canvas");n.width=l;n.height=m;n.getContext("2d").drawImage(a,0,0,l,m);var q=n.toDataURL();if(q.length<b.length){var p=document.createElement("canvas");p.width=l;p.height=m;var u=p.toDataURL();q!==u&&(b=q,f=l,h=m)}}}catch(E){}c(b,f,h)};EditorUi.prototype.crcTable=[];for(var c=0;256>c;c++)for(var d=c,e=0;8>e;e++)d=1==(d&1)?3988292384^d>>>1:d>>> -1,EditorUi.prototype.crcTable[c]=d;EditorUi.prototype.updateCRC=function(a,b,c,d){for(var f=0;f<d;f++)a=EditorUi.prototype.crcTable[(a^b[c+f])&255]^a>>>8;return a};EditorUi.prototype.crc32=function(a){this.crcTable=this.crcTable||this.createCrcTable();for(var b=-1,c=0;c<a.length;c++)b=b>>>8^this.crcTable[(b^a.charCodeAt(c))&255];return(b^-1)>>>0};EditorUi.prototype.writeGraphModelToPng=function(a,b,c,d,e){function f(a,b){var c=k;k+=b;return a.substring(c,k)}function g(a){a=f(a,4);return a.charCodeAt(3)+ -(a.charCodeAt(2)<<8)+(a.charCodeAt(1)<<16)+(a.charCodeAt(0)<<24)}function h(a){return String.fromCharCode(a>>24&255,a>>16&255,a>>8&255,a&255)}a=a.substring(a.indexOf(",")+1);a=window.atob?atob(a):Base64.decode(a,!0);var k=0;if(f(a,8)!=String.fromCharCode(137)+"PNG"+String.fromCharCode(13,10,26,10))null!=e&&e();else if(f(a,4),"IHDR"!=f(a,4))null!=e&&e();else{f(a,17);e=a.substring(0,k);do{var l=g(a);if("IDAT"==f(a,4)){e=a.substring(0,k-8);c=c+String.fromCharCode(0)+("zTXt"==b?String.fromCharCode(0): -"")+d;d=4294967295;d=this.updateCRC(d,b,0,4);d=this.updateCRC(d,c,0,c.length);e+=h(c.length)+b+c+h(d^4294967295);e+=a.substring(k-8,a.length);break}e+=a.substring(k-8,k-4+l);f(a,l);f(a,4)}while(l);return"data:image/png;base64,"+(window.btoa?btoa(e):Base64.encode(e,!0))}};EditorUi.prototype.extractGraphModelFromPng=function(a){var b=null;try{var c=a.substring(a.indexOf(",")+1),d=window.atob&&!mxClient.IS_SF?atob(c):Base64.decode(c,!0);EditorUi.parsePng(d,mxUtils.bind(this,function(a,c,f){a=d.substring(a+ -8,a+8+f);"zTXt"==c?(f=a.indexOf(String.fromCharCode(0)),"mxGraphModel"==a.substring(0,f)&&(a=this.editor.graph.bytesToString(pako.inflateRaw(a.substring(f+2))).replace(/\+/g," "),null!=a&&0<a.length&&(b=a))):"tEXt"==c&&(a=a.split(String.fromCharCode(0)),1<a.length&&"mxGraphModel"==a[0]&&(b=a[1]));if(null!=b||"IDAT"==c)return!0}))}catch(u){}null!=b&&"%"==b.charAt(0)&&(b=decodeURIComponent(b));null!=b&&"%"==b.charAt(0)&&(b=decodeURIComponent(b));return b};EditorUi.prototype.loadImage=function(a,b,c){var d= -new Image;d.onload=function(){b(d)};null!=c&&(d.onerror=c);d.src=a};var g=EditorUi.prototype.init;EditorUi.prototype.init=function(){mxStencilRegistry.allowEval=mxStencilRegistry.allowEval&&!this.isOfflineApp();"undefined"!==typeof window.mxSettings&&(this.formatWidth=mxSettings.getFormatWidth());var a=this,b=this.editor.graph;b.getLinkTitle=function(b){return a.getLinkTitle(b)};b.customLinkClicked=function(b){var c=!1;try{a.handleCustomLink(b),c=!0}catch(B){a.handleError(B)}return c};var c=this.clearDefaultStyle; +null,b)}else this.editor.graph.setSelectionCells(this.importXml(a))}));this.showDialog((new OpenDialog(this)).container,360,220,!0,!0,function(){window.openFile=null});if(!b){var e=this.dialog,f=e.close;this.dialog.close=mxUtils.bind(this,function(a){Editor.useLocalStorage=d;f.apply(e,arguments);a&&null==this.getCurrentFile()&&"1"!=urlParams.embed&&this.showSplash()})}}};EditorUi.prototype.importFile=function(a,b,c,d,e,g,k,l,m,t,w){t=null!=t?t:!0;var f=!1,h=null,n=mxUtils.bind(this,function(a){var b= +null;null!=a&&"<mxlibrary"==a.substring(0,10)?this.loadLibrary(new LocalLibrary(this,a,k)):b=this.importXml(a,c,d,t);null!=l&&l(b)});"image"==b.substring(0,5)?(m=!1,"image/png"==b.substring(0,9)&&(b=w?null:this.extractGraphModelFromPng(a),null!=b&&0<b.length&&(h=this.importXml(b,c,d,t),m=!0)),m||(h=this.editor.graph,b=a.indexOf(";"),0<b&&(a=a.substring(0,b)+a.substring(a.indexOf(",",b+1))),t&&h.isGridEnabled()&&(c=h.snap(c),d=h.snap(d)),h=[h.insertVertex(null,null,"",c,d,e,g,"shape=image;verticalLabelPosition=bottom;labelBackgroundColor=#ffffff;verticalAlign=top;aspect=fixed;imageAspect=0;image="+ +a+";")])):/(\.*<graphml )/.test(a)&&"undefined"!==typeof window.mxGraphMlCodec?(new mxGraphMlCodec).decode(a,mxUtils.bind(this,function(a){a=this.importXml(a,c,d,t);null!=l&&l(a)})):null!=m&&null!=k&&(/(\.v(dx|sdx?))($|\?)/i.test(k)||/(\.vs(x|sx?))($|\?)/i.test(k))?(f=!0,this.importVisio(m,n)):!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(a,k)?(f=!0,this.parseFile(null!=m?m:new Blob([a],{type:"application/octet-stream"}),mxUtils.bind(this,function(a){4==a.readyState&&(200<= +a.status&&299>=a.status?n(a.responseText):null!=l&&l(null))}),k)):/(\.v(sd|dx))($|\?)/i.test(k)||/(\.vs(s|x))($|\?)/i.test(k)||(h=this.insertTextAt(this.validateFileData(a),c,d,!0,null,t));f||null==l||l(h);return h};EditorUi.prototype.base64Encode=function(a){for(var b="",c=0,d=a.length,e,f,g;c<d;){e=a.charCodeAt(c++)&255;if(c==d){b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(e>>2);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((e&3)<<4); +b+="==";break}f=a.charCodeAt(c++);if(c==d){b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(e>>2);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((e&3)<<4|(f&240)>>4);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((f&15)<<2);b+="=";break}g=a.charCodeAt(c++);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(e>>2);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((e& +3)<<4|(f&240)>>4);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((f&15)<<2|(g&192)>>6);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(g&63)}return b};EditorUi.prototype.importFiles=function(a,b,c,d,e,g,k,l,m,t,w,x){b=null!=b?b:0;c=null!=c?c:0;d=null!=d?d:this.maxImageSize;t=null!=t?t:this.maxImageBytes;var f=null!=b&&null!=c,h=!0,n=!1;if(!mxClient.IS_CHROMEAPP&&null!=a)for(var u=w||this.resampleThreshold,p=0;p<a.length;p++)if("image/"==a[p].type.substring(0, +6)&&a[p].size>u){n=!0;break}var q=mxUtils.bind(this,function(){var n=this.editor.graph,m=n.gridSize;e=null!=e?e:mxUtils.bind(this,function(a,b,c,d,e,g,h,n,k){return null!=a&&"<mxlibrary"==a.substring(0,10)?(this.spinner.stop(),this.loadLibrary(new LocalLibrary(this,a,h)),null):this.importFile(a,b,c,d,e,g,h,n,k,f,x)});g=null!=g?g:mxUtils.bind(this,function(a){n.setSelectionCells(a)});if(this.spinner.spin(document.body,mxResources.get("loading")))for(var u=a.length,p=u,q=[],v=mxUtils.bind(this,function(a, +b){q[a]=b;if(0==--p){this.spinner.stop();if(null!=l)l(q);else{var c=[];n.getModel().beginUpdate();try{for(var d=0;d<q.length;d++){var e=q[d]();null!=e&&(c=c.concat(e))}}finally{n.getModel().endUpdate()}}g(c)}}),B=0;B<u;B++)mxUtils.bind(this,function(f){var g=a[f],l=new FileReader;l.onload=mxUtils.bind(this,function(a){if(null==k||k(g))if("image/"==g.type.substring(0,6))if("image/svg"==g.type.substring(0,9)){var l=a.target.result,u=l.indexOf(","),p=decodeURIComponent(escape(atob(l.substring(u+1)))), +q=mxUtils.parseXml(p),p=q.getElementsByTagName("svg");if(0<p.length){var p=p[0],A=x?null:p.getAttribute("content");null!=A&&"<"!=A.charAt(0)&&"%"!=A.charAt(0)&&(A=unescape(window.atob?atob(A):Base64.decode(A,!0)));null!=A&&"%"==A.charAt(0)&&(A=decodeURIComponent(A));null==A||"<mxfile "!==A.substring(0,8)&&"<mxGraphModel "!==A.substring(0,14)?v(f,mxUtils.bind(this,function(){try{if(l.substring(0,u+1),null!=q){var a=q.getElementsByTagName("svg");if(0<a.length){var h=a[0],k=parseFloat(h.getAttribute("width")), +t=parseFloat(h.getAttribute("height")),p=h.getAttribute("viewBox");if(null==p||0==p.length)h.setAttribute("viewBox","0 0 "+k+" "+t);else if(isNaN(k)||isNaN(t)){var w=p.split(" ");3<w.length&&(k=parseFloat(w[2]),t=parseFloat(w[3]))}l=this.createSvgDataUri(mxUtils.getXml(h));var v=Math.min(1,Math.min(d/Math.max(1,k)),d/Math.max(1,t)),x=e(l,g.type,b+f*m,c+f*m,Math.max(1,Math.round(k*v)),Math.max(1,Math.round(t*v)),g.name);if(isNaN(k)||isNaN(t)){var A=new Image;A.onload=mxUtils.bind(this,function(){k= +Math.max(1,A.width);t=Math.max(1,A.height);x[0].geometry.width=k;x[0].geometry.height=t;h.setAttribute("viewBox","0 0 "+k+" "+t);l=this.createSvgDataUri(mxUtils.getXml(h));var a=l.indexOf(";");0<a&&(l=l.substring(0,a)+l.substring(l.indexOf(",",a+1)));n.setCellStyles("image",l,[x[0]])});A.src=this.createSvgDataUri(mxUtils.getXml(h))}return x}}}catch(fa){}return null})):v(f,mxUtils.bind(this,function(){return e(A,"text/xml",b+f*m,c+f*m,0,0,g.name)}))}else v(f,mxUtils.bind(this,function(){return null}))}else{p= +!1;if("image/png"==g.type){var B=x?null:this.extractGraphModelFromPng(a.target.result);if(null!=B&&0<B.length){var y=new Image;y.src=a.target.result;v(f,mxUtils.bind(this,function(){return e(B,"text/xml",b+f*m,c+f*m,y.width,y.height,g.name)}));p=!0}}p||(mxClient.IS_CHROMEAPP?(this.spinner.stop(),this.showError(mxResources.get("error"),mxResources.get("dragAndDropNotSupported"),mxResources.get("cancel"),mxUtils.bind(this,function(){}),null,mxResources.get("ok"),mxUtils.bind(this,function(){this.actions.get("import").funct()}))): +this.loadImage(a.target.result,mxUtils.bind(this,function(n){this.resizeImage(n,a.target.result,mxUtils.bind(this,function(n,k,l){v(f,mxUtils.bind(this,function(){if(null!=n&&n.length<t){var u=h&&this.isResampleImage(a.target.result,w)?Math.min(1,Math.min(d/k,d/l)):1;return e(n,g.type,b+f*m,c+f*m,Math.round(k*u),Math.round(l*u),g.name)}this.handleError({message:mxResources.get("imageTooBig")});return null}))}),h,d,w)}),mxUtils.bind(this,function(){this.handleError({message:mxResources.get("invalidOrMissingFile")})})))}else e(a.target.result, +g.type,b+f*m,c+f*m,240,160,g.name,function(a){v(f,function(){return a})})});/(\.v(dx|sdx?))($|\?)/i.test(g.name)||/(\.vs(x|sx?))($|\?)/i.test(g.name)?e(null,g.type,b+f*m,c+f*m,240,160,g.name,function(a){v(f,function(){return a})},g):"image"==g.type.substring(0,5)?l.readAsDataURL(g):l.readAsText(g)})(B)});n?this.confirmImageResize(function(a){h=a;q()},m):q()};EditorUi.prototype.confirmImageResize=function(a,b){b=null!=b?b:!1;var c=null!=this.spinner&&null!=this.spinner.pause?this.spinner.pause():function(){}, +d=isLocalStorage||mxClient.IS_CHROMEAPP?mxSettings.getResizeImages():null,e=function(d,e){if(d||b)mxSettings.setResizeImages(d?e:null),mxSettings.save();c();a(e)};null==d||b?this.showDialog((new ConfirmDialog(this,mxResources.get("resizeLargeImages"),function(a){e(a,!0)},function(a){e(a,!1)},mxResources.get("resize"),mxResources.get("actualSize"),'<img style="margin-top:8px;" src="'+Editor.loResImage+'"/>','<img style="margin-top:8px;" src="'+Editor.hiResImage+'"/>',isLocalStorage||mxClient.IS_CHROMEAPP)).container, +340,isLocalStorage||mxClient.IS_CHROMEAPP?220:200,!0,!0):e(!1,d)};EditorUi.prototype.parseFile=function(a,b,c){c=null!=c?c:a.name;var d=new FormData;d.append("format","xml");d.append("upfile",a,c);var e=new XMLHttpRequest;e.open("POST",OPEN_URL);e.onreadystatechange=function(){b(e)};e.send(d)};EditorUi.prototype.isResampleImage=function(a,b){b=null!=b?b:this.resampleThreshold;return a.length>b};EditorUi.prototype.resizeImage=function(a,b,c,d,e,g){e=null!=e?e:this.maxImageSize;var f=Math.max(1,a.width), +h=Math.max(1,a.height);if(d&&this.isResampleImage(b,g))try{var n=Math.max(f/e,h/e);if(1<n){var k=Math.round(f/n),l=Math.round(h/n),m=document.createElement("canvas");m.width=k;m.height=l;m.getContext("2d").drawImage(a,0,0,k,l);var u=m.toDataURL();if(u.length<b.length){var p=document.createElement("canvas");p.width=k;p.height=l;var q=p.toDataURL();u!==q&&(b=u,f=k,h=l)}}}catch(E){}c(b,f,h)};EditorUi.prototype.crcTable=[];for(var c=0;256>c;c++)for(var d=c,e=0;8>e;e++)d=1==(d&1)?3988292384^d>>>1:d>>> +1,EditorUi.prototype.crcTable[c]=d;EditorUi.prototype.updateCRC=function(a,b,c,d){for(var e=0;e<d;e++)a=EditorUi.prototype.crcTable[(a^b[c+e])&255]^a>>>8;return a};EditorUi.prototype.crc32=function(a){this.crcTable=this.crcTable||this.createCrcTable();for(var b=-1,c=0;c<a.length;c++)b=b>>>8^this.crcTable[(b^a.charCodeAt(c))&255];return(b^-1)>>>0};EditorUi.prototype.writeGraphModelToPng=function(a,b,c,d,e){function f(a,b){var c=n;n+=b;return a.substring(c,n)}function g(a){a=f(a,4);return a.charCodeAt(3)+ +(a.charCodeAt(2)<<8)+(a.charCodeAt(1)<<16)+(a.charCodeAt(0)<<24)}function h(a){return String.fromCharCode(a>>24&255,a>>16&255,a>>8&255,a&255)}a=a.substring(a.indexOf(",")+1);a=window.atob?atob(a):Base64.decode(a,!0);var n=0;if(f(a,8)!=String.fromCharCode(137)+"PNG"+String.fromCharCode(13,10,26,10))null!=e&&e();else if(f(a,4),"IHDR"!=f(a,4))null!=e&&e();else{f(a,17);e=a.substring(0,n);do{var k=g(a);if("IDAT"==f(a,4)){e=a.substring(0,n-8);c=c+String.fromCharCode(0)+("zTXt"==b?String.fromCharCode(0): +"")+d;d=4294967295;d=this.updateCRC(d,b,0,4);d=this.updateCRC(d,c,0,c.length);e+=h(c.length)+b+c+h(d^4294967295);e+=a.substring(n-8,a.length);break}e+=a.substring(n-8,n-4+k);f(a,k);f(a,4)}while(k);return"data:image/png;base64,"+(window.btoa?btoa(e):Base64.encode(e,!0))}};EditorUi.prototype.extractGraphModelFromPng=function(a){var b=null;try{var c=a.substring(a.indexOf(",")+1),d=window.atob&&!mxClient.IS_SF?atob(c):Base64.decode(c,!0);EditorUi.parsePng(d,mxUtils.bind(this,function(a,c,e){a=d.substring(a+ +8,a+8+e);"zTXt"==c?(e=a.indexOf(String.fromCharCode(0)),"mxGraphModel"==a.substring(0,e)&&(a=this.editor.graph.bytesToString(pako.inflateRaw(a.substring(e+2))).replace(/\+/g," "),null!=a&&0<a.length&&(b=a))):"tEXt"==c&&(a=a.split(String.fromCharCode(0)),1<a.length&&"mxGraphModel"==a[0]&&(b=a[1]));if(null!=b||"IDAT"==c)return!0}))}catch(p){}null!=b&&"%"==b.charAt(0)&&(b=decodeURIComponent(b));null!=b&&"%"==b.charAt(0)&&(b=decodeURIComponent(b));return b};EditorUi.prototype.loadImage=function(a,b,c){var d= +new Image;d.onload=function(){b(d)};null!=c&&(d.onerror=c);d.src=a};var g=EditorUi.prototype.init;EditorUi.prototype.init=function(){mxStencilRegistry.allowEval=mxStencilRegistry.allowEval&&!this.isOfflineApp();"undefined"!==typeof window.mxSettings&&(this.formatWidth=mxSettings.getFormatWidth());var a=this,b=this.editor.graph;b.getLinkTitle=function(b){return a.getLinkTitle(b)};b.customLinkClicked=function(b){var c=!1;try{a.handleCustomLink(b),c=!0}catch(A){a.handleError(A)}return c};var c=this.clearDefaultStyle; this.clearDefaultStyle=function(){c.apply(this,arguments)};this.isOffline()||"undefined"===typeof window.EditDataDialog||(EditDataDialog.placeholderHelpLink="https://desk.draw.io/support/solutions/articles/16000051979");var d=a.editor.getEditBlankUrl;this.editor.getEditBlankUrl=function(b){b=null!=b?b:"";if(null!=a.pages&&null!=a.currentPage)for(var c=0;c<a.pages.length;c++)if(a.pages[c]==a.currentPage){0<c&&(b+=(0<b.length?"&":"?")+"page="+c);break}"1"==urlParams.dev&&(b+=(0<b.length?"&":"?")+"dev=1&drawdev=1"); return d.apply(this,arguments)};var e=b.addClickHandler;b.addClickHandler=function(a,c,d){var f=c;c=function(a,c){if(null==c){var d=mxEvent.getSource(a);"a"==d.nodeName.toLowerCase()&&(c=d.getAttribute("href"))}null!=c&&b.isCustomLink(c)&&(mxEvent.isTouchEvent(a)||!mxEvent.isPopupTrigger(a))&&b.customLinkClicked(c)&&mxEvent.consume(a);null!=f&&f(a,c)};e.call(this,a,c,d)};g.apply(this,arguments);mxClient.IS_SVG&&this.editor.graph.addSvgShadow(b.view.canvas.ownerSVGElement,null,!0);a.actions.get("print").funct= -function(){a.showDialog((new PrintDialog(a)).container,360,null!=a.pages&&1<a.pages.length?420:360,!0,!0)};this.defaultFilename=mxResources.get("untitledDiagram");var l=b.getGlobalVariable;b.getGlobalVariable=function(b){return"page"==b&&null!=a.currentPage?a.currentPage.getName():"pagenumber"==b?null!=a.currentPage&&null!=a.pages?mxUtils.indexOf(a.pages,a.currentPage)+1:1:l.apply(this,arguments)};var m=b.labelLinkClicked;b.labelLinkClicked=function(a,c,d){var e=c.getAttribute("href");if(null==e|| -!b.isCustomLink(e)||!mxEvent.isTouchEvent(d)&&mxEvent.isPopupTrigger(d))m.apply(this,arguments);else{if(!b.isEnabled()||null!=a&&b.isCellLocked(a.cell))b.customLinkClicked(e),b.getRubberband().reset();mxEvent.consume(d)}};this.editor.getOrCreateFilename=function(){var b=a.defaultFilename,c=a.getCurrentFile();null!=c&&(b=null!=c.getTitle()?c.getTitle():b);return b};var n=this.actions.get("print");n.setEnabled(!mxClient.IS_IOS||!navigator.standalone);n.visible=n.isEnabled();if(!this.editor.chromeless|| -this.editor.editable){var A=function(){window.setTimeout(function(){t.innerHTML=" ";t.focus();document.execCommand("selectAll",!1,null)},0)};this.keyHandler.bindAction(70,!0,"find");this.keyHandler.bindAction(67,!0,"copyStyle",!0);this.keyHandler.bindAction(86,!0,"pasteStyle",!0);this.keyHandler.bindAction(77,!0,"editGeometry",!0);this.keyHandler.bindAction(88,!0,"insertText",!0);this.keyHandler.bindAction(75,!0,"insertRectangle");this.keyHandler.bindAction(75,!0,"insertEllipse",!0);mxClient.IS_IE|| +function(){a.showDialog((new PrintDialog(a)).container,360,null!=a.pages&&1<a.pages.length?420:360,!0,!0)};this.defaultFilename=mxResources.get("untitledDiagram");var k=b.getGlobalVariable;b.getGlobalVariable=function(b){return"page"==b&&null!=a.currentPage?a.currentPage.getName():"pagenumber"==b?null!=a.currentPage&&null!=a.pages?mxUtils.indexOf(a.pages,a.currentPage)+1:1:k.apply(this,arguments)};var l=b.labelLinkClicked;b.labelLinkClicked=function(a,c,d){var e=c.getAttribute("href");if(null==e|| +!b.isCustomLink(e)||!mxEvent.isTouchEvent(d)&&mxEvent.isPopupTrigger(d))l.apply(this,arguments);else{if(!b.isEnabled()||null!=a&&b.isCellLocked(a.cell))b.customLinkClicked(e),b.getRubberband().reset();mxEvent.consume(d)}};this.editor.getOrCreateFilename=function(){var b=a.defaultFilename,c=a.getCurrentFile();null!=c&&(b=null!=c.getTitle()?c.getTitle():b);return b};var m=this.actions.get("print");m.setEnabled(!mxClient.IS_IOS||!navigator.standalone);m.visible=m.isEnabled();if(!this.editor.chromeless|| +this.editor.editable){var B=function(){window.setTimeout(function(){t.innerHTML=" ";t.focus();document.execCommand("selectAll",!1,null)},0)};this.keyHandler.bindAction(70,!0,"find");this.keyHandler.bindAction(67,!0,"copyStyle",!0);this.keyHandler.bindAction(86,!0,"pasteStyle",!0);this.keyHandler.bindAction(77,!0,"editGeometry",!0);this.keyHandler.bindAction(88,!0,"insertText",!0);this.keyHandler.bindAction(75,!0,"insertRectangle");this.keyHandler.bindAction(75,!0,"insertEllipse",!0);mxClient.IS_IE|| b.container.addEventListener("paste",mxUtils.bind(this,function(a){var b=this.editor.graph;if(!mxEvent.isConsumed(a))try{for(var c=a.clipboardData||a.originalEvent.clipboardData,d=!1,e=0;e<c.types.length;e++)if("text/"===c.types[e].substring(0,5)){d=!0;break}if(!d){var f=c.items;for(index in f){var g=f[index];if("file"===g.kind){if(b.isEditing())this.importFiles([g.getAsFile()],0,0,this.maxImageSize,function(a,c,d,e,f,g){b.insertImage(a,f,g)},function(){},function(a){return"image/"==a.type.substring(0, 6)},function(a){for(var b=0;b<a.length;b++)a[b]()});else{var h=this.editor.graph.getInsertPoint();this.importFiles([g.getAsFile()],h.x,h.y,this.maxImageSize);mxEvent.consume(a)}break}}}}catch(P){}}),!1);var t=document.createElement("div");t.style.position="absolute";t.style.whiteSpace="nowrap";t.style.overflow="hidden";t.style.display="block";t.contentEditable=!0;mxUtils.setOpacity(t,0);t.style.width="1px";t.style.height="1px";t.innerHTML=" ";var w=!1;this.keyHandler.bindControlKey(88,null); this.keyHandler.bindControlKey(67,null);this.keyHandler.bindControlKey(86,null);mxEvent.addListener(document,"keydown",mxUtils.bind(this,function(a){var c=mxEvent.getSource(a);null==b.container||!b.isEnabled()||b.isMouseDown||b.isEditing()||null!=this.dialog||"INPUT"==c.nodeName||"TEXTAREA"==c.nodeName||!(224==a.keyCode||!mxClient.IS_MAC&&17==a.keyCode||mxClient.IS_MAC&&91==a.keyCode)||w||(t.style.left=b.container.scrollLeft+10+"px",t.style.top=b.container.scrollTop+10+"px",b.container.appendChild(t), w=!0,mxClient.IS_QUIRKS?window.setTimeout(function(){t.focus();document.execCommand("selectAll",!1,null)},0):(t.focus(),document.execCommand("selectAll",!1,null)))}));mxEvent.addListener(document,"keyup",mxUtils.bind(this,function(a){var c=a.keyCode;window.setTimeout(mxUtils.bind(this,function(){!w||224!=c&&17!=c&&91!=c||(w=!1,b.isEditing()||null!=this.dialog||null==b.container||b.container.focus(),t.parentNode.removeChild(t),null==this.dialog&&mxUtils.clearSelection())}),0)}));mxEvent.addListener(t, -"copy",mxUtils.bind(this,function(a){b.isEnabled()&&(mxClipboard.copy(b),this.copyCells(t),A())}));mxEvent.addListener(t,"cut",mxUtils.bind(this,function(a){b.isEnabled()&&(mxClipboard.copy(b),this.copyCells(t,!0),A())}));mxEvent.addListener(t,"paste",mxUtils.bind(this,function(a){b.isEnabled()&&!b.isCellLocked(b.getDefaultParent())&&(t.innerHTML=" ",t.focus(),window.setTimeout(mxUtils.bind(this,function(){this.pasteCells(a,t);t.innerHTML=" "}),0))}),!0);var x=this.isSelectionAllowed;this.isSelectionAllowed= +"copy",mxUtils.bind(this,function(a){b.isEnabled()&&(mxClipboard.copy(b),this.copyCells(t),B())}));mxEvent.addListener(t,"cut",mxUtils.bind(this,function(a){b.isEnabled()&&(mxClipboard.copy(b),this.copyCells(t,!0),B())}));mxEvent.addListener(t,"paste",mxUtils.bind(this,function(a){b.isEnabled()&&!b.isCellLocked(b.getDefaultParent())&&(t.innerHTML=" ",t.focus(),window.setTimeout(mxUtils.bind(this,function(){this.pasteCells(a,t);t.innerHTML=" "}),0))}),!0);var x=this.isSelectionAllowed;this.isSelectionAllowed= function(a){return mxEvent.getSource(a)==t?!0:x.apply(this,arguments)}}this.spinner=this.createSpinner(document.body.clientWidth/2-2,Math.max(document.body.clientHeight||0,document.documentElement.clientHeight||0)/2,24);Graph.fileSupport&&this.editor.graph.addListener(mxEvent.EDITING_STARTED,mxUtils.bind(this,function(a){var b=this.editor.graph,c=b.cellEditor.text2,d=null;null!=c&&(mxEvent.addListener(c,"dragleave",function(a){null!=d&&(d.parentNode.removeChild(d),d=null);a.stopPropagation();a.preventDefault()}), mxEvent.addListener(c,"dragover",mxUtils.bind(this,function(a){null==d&&(!mxClient.IS_IE||10<document.documentMode)&&(d=this.highlightElement(c));a.stopPropagation();a.preventDefault()})),mxEvent.addListener(c,"drop",mxUtils.bind(this,function(a){null!=d&&(d.parentNode.removeChild(d),d=null);if(0<a.dataTransfer.files.length)this.importFiles(a.dataTransfer.files,0,0,this.maxImageSize,function(a,c,d,e,f,g){b.insertImage(a,f,g)},function(){},function(a){return"image/"==a.type.substring(0,6)},function(a){for(var b= 0;b<a.length;b++)a[b]()},mxEvent.isControlDown(a));else if(0<=mxUtils.indexOf(a.dataTransfer.types,"text/uri-list")){var c=a.dataTransfer.getData("text/uri-list");/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(c)?this.loadImage(decodeURIComponent(c),mxUtils.bind(this,function(a){var d=Math.max(1,a.width);a=Math.max(1,a.height);var e=this.maxImageSize,e=Math.min(1,Math.min(e/Math.max(1,d)),e/Math.max(1,a));b.insertImage(decodeURIComponent(c),d*e,a*e)})):document.execCommand("insertHTML",!1,a.dataTransfer.getData("text/plain"))}else 0<= -mxUtils.indexOf(a.dataTransfer.types,"text/html")?document.execCommand("insertHTML",!1,a.dataTransfer.getData("text/html")):0<=mxUtils.indexOf(a.dataTransfer.types,"text/plain")&&document.execCommand("insertHTML",!1,a.dataTransfer.getData("text/plain"));a.stopPropagation();a.preventDefault()})))}));if("1"==urlParams.ruler&&"undefined"!==typeof mxRuler){n=document.createElement("div");n.style.position="absolute";n.style.top="95px";n.style.left="250px";n.style.width="2000px";n.style.height="30px";n.style.background= -"whiteSmoke";document.body.appendChild(n);var C=document.createElement("div");C.style.position="absolute";C.style.top="125px";C.style.left="220px";C.style.width="30px";C.style.height="1000px";C.style.background="whiteSmoke";document.body.appendChild(C);var z=document.createElement("div");z.style.position="absolute";z.style.top="95px";z.style.left="220px";z.style.width="30px";z.style.height="30px";z.style.background="whiteSmoke";document.body.appendChild(z);this.vRuler=new mxRuler(this.editor.graph, -C,!0);this.hRuler=new mxRuler(this.editor.graph,n,!1)}if("1"==urlParams.styledev){n=document.getElementById("geFooter");null!=n&&(this.styleInput=document.createElement("input"),this.styleInput.setAttribute("type","text"),this.styleInput.style.position="absolute",this.styleInput.style.top="14px",this.styleInput.style.left="2px",this.styleInput.style.width="98%",this.styleInput.style.visibility="hidden",this.styleInput.style.opacity="0.9",mxEvent.addListener(this.styleInput,"change",mxUtils.bind(this, -function(){this.editor.graph.getModel().setStyle(this.editor.graph.getSelectionCell(),this.styleInput.value)})),n.appendChild(this.styleInput),this.editor.graph.getSelectionModel().addListener(mxEvent.CHANGE,mxUtils.bind(this,function(a,b){if(0<this.editor.graph.getSelectionCount()){var c=this.editor.graph.getSelectionCell(),c=this.editor.graph.getModel().getStyle(c);this.styleInput.value=c||"";this.styleInput.style.visibility="visible"}else this.styleInput.style.visibility="hidden"})));var F=this.isSelectionAllowed; -this.isSelectionAllowed=function(a){return mxEvent.getSource(a)==this.styleInput?!0:F.apply(this,arguments)}}n=document.getElementById("geInfo");null!=n&&n.parentNode.removeChild(n);if(Graph.fileSupport&&(!this.editor.chromeless||this.editor.editable)){var E=null;mxEvent.addListener(b.container,"dragleave",function(a){b.isEnabled()&&(null!=E&&(E.parentNode.removeChild(E),E=null),a.stopPropagation(),a.preventDefault())});mxEvent.addListener(b.container,"dragover",mxUtils.bind(this,function(a){null== +mxUtils.indexOf(a.dataTransfer.types,"text/html")?document.execCommand("insertHTML",!1,a.dataTransfer.getData("text/html")):0<=mxUtils.indexOf(a.dataTransfer.types,"text/plain")&&document.execCommand("insertHTML",!1,a.dataTransfer.getData("text/plain"));a.stopPropagation();a.preventDefault()})))}));if("1"==urlParams.ruler&&"undefined"!==typeof mxRuler){m=document.createElement("div");m.style.position="absolute";m.style.top="95px";m.style.left="250px";m.style.width="2000px";m.style.height="30px";m.style.background= +"whiteSmoke";document.body.appendChild(m);var C=document.createElement("div");C.style.position="absolute";C.style.top="125px";C.style.left="220px";C.style.width="30px";C.style.height="1000px";C.style.background="whiteSmoke";document.body.appendChild(C);var z=document.createElement("div");z.style.position="absolute";z.style.top="95px";z.style.left="220px";z.style.width="30px";z.style.height="30px";z.style.background="whiteSmoke";document.body.appendChild(z);this.vRuler=new mxRuler(this.editor.graph, +C,!0);this.hRuler=new mxRuler(this.editor.graph,m,!1)}if("1"==urlParams.styledev){m=document.getElementById("geFooter");null!=m&&(this.styleInput=document.createElement("input"),this.styleInput.setAttribute("type","text"),this.styleInput.style.position="absolute",this.styleInput.style.top="14px",this.styleInput.style.left="2px",this.styleInput.style.width="98%",this.styleInput.style.visibility="hidden",this.styleInput.style.opacity="0.9",mxEvent.addListener(this.styleInput,"change",mxUtils.bind(this, +function(){this.editor.graph.getModel().setStyle(this.editor.graph.getSelectionCell(),this.styleInput.value)})),m.appendChild(this.styleInput),this.editor.graph.getSelectionModel().addListener(mxEvent.CHANGE,mxUtils.bind(this,function(a,b){if(0<this.editor.graph.getSelectionCount()){var c=this.editor.graph.getSelectionCell(),c=this.editor.graph.getModel().getStyle(c);this.styleInput.value=c||"";this.styleInput.style.visibility="visible"}else this.styleInput.style.visibility="hidden"})));var F=this.isSelectionAllowed; +this.isSelectionAllowed=function(a){return mxEvent.getSource(a)==this.styleInput?!0:F.apply(this,arguments)}}m=document.getElementById("geInfo");null!=m&&m.parentNode.removeChild(m);if(Graph.fileSupport&&(!this.editor.chromeless||this.editor.editable)){var E=null;mxEvent.addListener(b.container,"dragleave",function(a){b.isEnabled()&&(null!=E&&(E.parentNode.removeChild(E),E=null),a.stopPropagation(),a.preventDefault())});mxEvent.addListener(b.container,"dragover",mxUtils.bind(this,function(a){null== E&&(!mxClient.IS_IE||10<document.documentMode)&&(E=this.highlightElement(b.container));null!=this.sidebar&&this.sidebar.hideTooltip();a.stopPropagation();a.preventDefault()}));mxEvent.addListener(b.container,"drop",mxUtils.bind(this,function(a){null!=E&&(E.parentNode.removeChild(E),E=null);if(b.isEnabled()){var c=mxUtils.convertPoint(b.container,mxEvent.getClientX(a),mxEvent.getClientY(a)),d=b.view.translate,e=b.view.scale,f=c.x/e-d.x,g=c.y/e-d.y;mxEvent.isAltDown(a)&&(g=f=0);if(0<a.dataTransfer.files.length)this.importFiles(a.dataTransfer.files, -f,g,this.maxImageSize,null,null,null,null,mxEvent.isControlDown(a),null,null,mxEvent.isShiftDown(a));else{var h=0<=mxUtils.indexOf(a.dataTransfer.types,"text/uri-list")?a.dataTransfer.getData("text/uri-list"):null,c=this.extractGraphModelFromEvent(a,null!=this.pages);if(null!=c)b.setSelectionCells(this.importXml(c,f,g,!0));else if(0<=mxUtils.indexOf(a.dataTransfer.types,"text/html")){var k=a.dataTransfer.getData("text/html"),c=document.createElement("div");c.innerHTML=k;var l=null,d=c.getElementsByTagName("img"); -null!=d&&1==d.length?(k=d[0].getAttribute("src"),/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(k)||(l=!0)):(c=c.getElementsByTagName("a"),null!=c&&1==c.length&&(k=c[0].getAttribute("href")));var m=!0,t=mxUtils.bind(this,function(){b.setSelectionCells(this.insertTextAt(k,f,g,!0,l,null,m))});l&&k.length>this.resampleThreshold?this.confirmImageResize(function(a){m=a;t()},mxEvent.isControlDown(a)):t()}else null!=h&&/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(h)?this.loadImage(decodeURIComponent(h),mxUtils.bind(this, +f,g,this.maxImageSize,null,null,null,null,mxEvent.isControlDown(a),null,null,mxEvent.isShiftDown(a));else{var h=0<=mxUtils.indexOf(a.dataTransfer.types,"text/uri-list")?a.dataTransfer.getData("text/uri-list"):null,c=this.extractGraphModelFromEvent(a,null!=this.pages);if(null!=c)b.setSelectionCells(this.importXml(c,f,g,!0));else if(0<=mxUtils.indexOf(a.dataTransfer.types,"text/html")){var k=a.dataTransfer.getData("text/html"),c=document.createElement("div");c.innerHTML=k;var n=null,d=c.getElementsByTagName("img"); +null!=d&&1==d.length?(k=d[0].getAttribute("src"),/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(k)||(n=!0)):(c=c.getElementsByTagName("a"),null!=c&&1==c.length&&(k=c[0].getAttribute("href")));var l=!0,t=mxUtils.bind(this,function(){b.setSelectionCells(this.insertTextAt(k,f,g,!0,n,null,l))});n&&k.length>this.resampleThreshold?this.confirmImageResize(function(a){l=a;t()},mxEvent.isControlDown(a)):t()}else null!=h&&/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(h)?this.loadImage(decodeURIComponent(h),mxUtils.bind(this, function(a){var c=Math.max(1,a.width);a=Math.max(1,a.height);var d=this.maxImageSize,d=Math.min(1,Math.min(d/Math.max(1,c)),d/Math.max(1,a));b.setSelectionCell(b.insertVertex(null,null,"",f,g,c*d,a*d,"shape=image;verticalLabelPosition=bottom;labelBackgroundColor=#ffffff;verticalAlign=top;aspect=fixed;imageAspect=0;image="+h+";"))}),mxUtils.bind(this,function(a){b.setSelectionCells(this.insertTextAt(h,f,g,!0))})):0<=mxUtils.indexOf(a.dataTransfer.types,"text/plain")&&b.setSelectionCells(this.insertTextAt(a.dataTransfer.getData("text/plain"), f,g,!0))}}a.stopPropagation();a.preventDefault()}),!1)}this.initPages();"1"==urlParams.embed&&this.initializeEmbedMode();this.installSettings()};EditorUi.prototype.getLinkTitle=function(a){var b=Graph.prototype.getLinkTitle.apply(this,arguments);if("data:page/id,"==a.substring(0,13)){var c=a.indexOf(",");0<c&&(b=this.getPageById(a.substring(c+1)),b=null!=b?b.getName():mxResources.get("pageNotFound"))}else"data:"==a.substring(0,5)&&(b=mxResources.get("action"));return b};EditorUi.prototype.handleCustomLink= function(a){if("data:page/id,"==a.substring(0,13)){var b=a.indexOf(",");if(a=this.getPageById(a.substring(b+1)))this.selectPage(a);else throw Error(mxResources.get("pageNotFound")||"Page not found");}else this.editor.graph.handleCustomLink(a)};EditorUi.prototype.isSettingsEnabled=function(){return"undefined"!==typeof window.mxSettings&&(isLocalStorage||mxClient.IS_CHROMEAPP)};EditorUi.prototype.installSettings=function(){if(this.isSettingsEnabled()){ColorDialog.recentColors=mxSettings.getRecentColors(); @@ -7813,9 +7817,9 @@ this.fireEvent(new mxEventObject("styleChanged","keys",[],"values",[],"cells",[] function(a,b){mxSettings.setPageFormat(this.editor.graph.pageFormat);mxSettings.save()}));this.editor.graph.view.gridColor=mxSettings.getGridColor();this.addListener("gridColorChanged",mxUtils.bind(this,function(a,b){mxSettings.setGridColor(this.editor.graph.view.gridColor);mxSettings.save()}));if(mxClient.IS_CHROMEAPP||EditorUi.isElectronApp)this.editor.addListener("autosaveChanged",mxUtils.bind(this,function(a,b){mxSettings.setAutosave(this.editor.autosave);mxSettings.save()})),this.editor.autosave= mxSettings.getAutosave();null!=this.sidebar&&this.sidebar.showPalette("search",mxSettings.settings.search);this.editor.chromeless&&!this.editor.editable||null==this.sidebar||!(mxSettings.settings.isNew||8>=parseInt(mxSettings.settings.version||0))||(this.toggleScratchpad(),mxSettings.save());this.addListener("formatWidthChanged",function(){mxSettings.setFormatWidth(this.formatWidth);mxSettings.save()})}};EditorUi.prototype.copyCells=function(a,b){var c=this.editor.graph;if(c.isSelectionEmpty())a.innerHTML= "";else{var d=mxUtils.sortCells(c.model.getTopmostCells(c.getSelectionCells())),e=mxUtils.getXml(this.editor.graph.encodeCells(d));mxUtils.setTextContent(a,encodeURIComponent(e));b?(c.removeCells(d,!1),c.lastPasteXml=null):(c.lastPasteXml=e,c.pasteCounter=0);a.focus();document.execCommand("selectAll",!1,null)}};EditorUi.prototype.pasteCells=function(a,b){if(!mxEvent.isConsumed(a)){var c=b.getElementsByTagName("span");if(null!=c&&0<c.length&&"application/vnd.lucid.chart.objects"===c[0].getAttribute("data-lucid-type")){var d= -c[0].getAttribute("data-lucid-content");null!=d&&0<d.length&&(this.convertLucidChart(d,mxUtils.bind(this,function(a){this.editor.graph.setSelectionCells(this.importXml(a,0,0))}),mxUtils.bind(this,function(a){this.handleError(a)})),mxEvent.consume(a))}else{var d=this.editor.graph,e=mxUtils.trim(mxClient.IS_QUIRKS||8==document.documentMode?mxUtils.getTextContent(b):b.textContent),f=!1;try{var g=e.lastIndexOf("%3E");0<=g&&g<e.length-3&&(e=e.substring(0,g+3))}catch(A){}try{var c=b.getElementsByTagName("span"), -h=null!=c&&0<c.length?mxUtils.trim(decodeURIComponent(c[0].textContent)):decodeURIComponent(e);this.isCompatibleString(h)&&(f=!0,e=h)}catch(A){}d.lastPasteXml==e?d.pasteCounter++:(d.lastPasteXml=e,d.pasteCounter=0);c=d.pasteCounter*d.gridSize;if(null!=e&&0<e.length&&(f||this.isCompatibleString(e)?d.setSelectionCells(this.importXml(e,c,c)):(f=d.getInsertPoint(),d.isMouseInsertPoint()&&(c=0,d.lastPasteXml==e&&0<d.pasteCounter&&d.pasteCounter--),d.setSelectionCells(this.insertTextAt(e,f.x+c,f.y+c,!0))), -!d.isSelectionEmpty())){d.scrollCellToVisible(d.getSelectionCell());null!=this.hoverIcons&&this.hoverIcons.update(d.view.getState(d.getSelectionCell()));try{mxEvent.consume(a)}catch(A){}}}}};EditorUi.prototype.addFileDropHandler=function(a){if(Graph.fileSupport)for(var b=null,c=0;c<a.length;c++)mxEvent.addListener(a[c],"dragleave",function(a){null!=b&&(b.parentNode.removeChild(b),b=null);a.stopPropagation();a.preventDefault()}),mxEvent.addListener(a[c],"dragover",mxUtils.bind(this,function(a){(this.editor.graph.isEnabled()|| +c[0].getAttribute("data-lucid-content");null!=d&&0<d.length&&(this.convertLucidChart(d,mxUtils.bind(this,function(a){this.editor.graph.setSelectionCells(this.importXml(a,0,0))}),mxUtils.bind(this,function(a){this.handleError(a)})),mxEvent.consume(a))}else{var d=this.editor.graph,e=mxUtils.trim(mxClient.IS_QUIRKS||8==document.documentMode?mxUtils.getTextContent(b):b.textContent),f=!1;try{var g=e.lastIndexOf("%3E");0<=g&&g<e.length-3&&(e=e.substring(0,g+3))}catch(B){}try{var c=b.getElementsByTagName("span"), +h=null!=c&&0<c.length?mxUtils.trim(decodeURIComponent(c[0].textContent)):decodeURIComponent(e);this.isCompatibleString(h)&&(f=!0,e=h)}catch(B){}d.lastPasteXml==e?d.pasteCounter++:(d.lastPasteXml=e,d.pasteCounter=0);c=d.pasteCounter*d.gridSize;if(null!=e&&0<e.length&&(f||this.isCompatibleString(e)?d.setSelectionCells(this.importXml(e,c,c)):(f=d.getInsertPoint(),d.isMouseInsertPoint()&&(c=0,d.lastPasteXml==e&&0<d.pasteCounter&&d.pasteCounter--),d.setSelectionCells(this.insertTextAt(e,f.x+c,f.y+c,!0))), +!d.isSelectionEmpty())){d.scrollCellToVisible(d.getSelectionCell());null!=this.hoverIcons&&this.hoverIcons.update(d.view.getState(d.getSelectionCell()));try{mxEvent.consume(a)}catch(B){}}}}};EditorUi.prototype.addFileDropHandler=function(a){if(Graph.fileSupport)for(var b=null,c=0;c<a.length;c++)mxEvent.addListener(a[c],"dragleave",function(a){null!=b&&(b.parentNode.removeChild(b),b=null);a.stopPropagation();a.preventDefault()}),mxEvent.addListener(a[c],"dragover",mxUtils.bind(this,function(a){(this.editor.graph.isEnabled()|| "1"!=urlParams.embed)&&null==b&&(!mxClient.IS_IE||10<document.documentMode&&12>document.documentMode)&&(b=this.highlightElement());a.stopPropagation();a.preventDefault()})),mxEvent.addListener(a[c],"drop",mxUtils.bind(this,function(a){null!=b&&(b.parentNode.removeChild(b),b=null);if(this.editor.graph.isEnabled()||"1"!=urlParams.embed)if(0<a.dataTransfer.files.length)this.hideDialog(),"1"==urlParams.embed?this.importFiles(a.dataTransfer.files,0,0,this.maxImageSize,null,null,null,null,!mxEvent.isControlDown(a)&& !mxEvent.isShiftDown(a)):this.openFiles(a.dataTransfer.files,!0);else{var c=this.extractGraphModelFromEvent(a);if(null==c){var d=null!=a.dataTransfer?a.dataTransfer:a.clipboardData;null!=d&&(10==document.documentMode||11==document.documentMode?c=d.getData("Text"):(c=null,c=0<=mxUtils.indexOf(d.types,"text/uri-list")?a.dataTransfer.getData("text/uri-list"):0<=mxUtils.indexOf(d.types,"text/html")?d.getData("text/html"):null,null!=c&&0<c.length?(d=document.createElement("div"),d.innerHTML=c,d=d.getElementsByTagName("img"), 0<d.length&&(c=d[0].getAttribute("src"))):0<=mxUtils.indexOf(d.types,"text/plain")&&(c=d.getData("text/plain"))),null!=c&&("data:image/png;base64,"==c.substring(0,22)?(c=this.extractGraphModelFromPng(c),null!=c&&0<c.length&&this.openLocalFile(c,null,!0)):!this.isOffline()&&this.isRemoteFileFormat(c)?(new mxXmlRequest(OPEN_URL,"format=xml&data="+encodeURIComponent(c))).send(mxUtils.bind(this,function(a){200<=a.getStatus()&&299>=a.getStatus()&&this.openLocalFile(a.getText(),null,!0)})):/^https?:\/\//.test(c)&& @@ -7840,12 +7844,12 @@ k=new FilenameDialog(this,h.defaultValue||"",null!=h.okKey?mxResources.get(h.okK result:"edit",message:h}),"*")}),mxUtils.bind(this,function(){this.hideDialog();g.postMessage(JSON.stringify({event:"draft",result:"discard",message:h}),"*")}),h.editKey?mxResources.get(h.editKey):null,h.discardKey?mxResources.get(h.discardKey):null,h.ignore?mxUtils.bind(this,function(){this.hideDialog();g.postMessage(JSON.stringify({event:"draft",result:"ignore",message:h}),"*")}):null);this.showDialog(k.container,640,480,!0,!1,mxUtils.bind(this,function(a){a&&this.actions.get("exit").funct()})); try{k.init()}catch(H){g.postMessage(JSON.stringify({event:"draft",error:H.toString(),message:h}),"*")}return}if("template"==h.action){this.spinner.stop();k=1==h.enableRecent;l=1==h.enableSearch;k=new NewDialog(this,!1,null!=h.callback,mxUtils.bind(this,function(b,c){b=b||this.emptyDiagramXml;null!=h.callback?g.postMessage(JSON.stringify({event:"template",xml:b,blank:b==this.emptyDiagramXml,name:c}),"*"):(a(b,f,b!=this.emptyDiagramXml),this.editor.modified||this.editor.setStatus(""))}),null,null,null, null,null,null,null,k?mxUtils.bind(this,function(a){this.recentReadyCallback=a;g.postMessage(JSON.stringify({event:"recentDocs"}),"*")}):null,l?mxUtils.bind(this,function(a,b){this.searchReadyCallback=b;g.postMessage(JSON.stringify({event:"searchDocs",searchStr:a}),"*")}):null,function(a,b,c){g.postMessage(JSON.stringify({event:"template",docUrl:a,info:b,name:c}),"*")});this.showDialog(k.container,620,440,!0,!1,mxUtils.bind(this,function(a){a&&this.actions.get("exit").funct()}));k.init();return}if("searchDocsList"== -h.action)this.searchReadyCallback(h.list,h.errorMsg);else if("recentDocsList"==h.action)this.recentReadyCallback(h.list,h.errorMsg);else{if("textContent"==h.action){this.editor.graph.setEnabled(!1);var m=this.editor.graph,k="";if(null!=this.pages)for(l=0;l<this.pages.length;l++){var n=m;this.currentPage!=this.pages[l]&&(n=this.createTemporaryGraph(m.getStylesheet()),n.model.setRoot(this.pages[l].root));k+=this.pages[l].getName()+" "+n.getIndexableText()+" "}else k=m.getIndexableText();this.editor.graph.setEnabled(!0); +h.action)this.searchReadyCallback(h.list,h.errorMsg);else if("recentDocsList"==h.action)this.recentReadyCallback(h.list,h.errorMsg);else{if("textContent"==h.action){this.editor.graph.setEnabled(!1);var n=this.editor.graph,k="";if(null!=this.pages)for(l=0;l<this.pages.length;l++){var m=n;this.currentPage!=this.pages[l]&&(m=this.createTemporaryGraph(n.getStylesheet()),m.model.setRoot(this.pages[l].root));k+=this.pages[l].getName()+" "+m.getIndexableText()+" "}else k=n.getIndexableText();this.editor.graph.setEnabled(!0); g.postMessage(JSON.stringify({event:"textContent",data:k,message:h}),"*");return}if("status"==h.action){null!=h.messageKey?this.editor.setStatus(mxUtils.htmlEntities(mxResources.get(h.messageKey))):null!=h.message&&this.editor.setStatus(mxUtils.htmlEntities(h.message));null!=h.modified&&(this.editor.modified=h.modified);return}if("spinner"==h.action){var v=null!=h.messageKey?mxResources.get(h.messageKey):h.message;null==h.show||h.show?this.spinner.spin(document.body,v):this.spinner.stop();return}if("export"== -h.action){if("png"==h.format||"xmlpng"==h.format){if(null==h.spin&&null==h.spinKey||this.spinner.spin(document.body,null!=h.spinKey?mxResources.get(h.spinKey):h.spin)){var q=null!=h.xml?h.xml:this.getFileData(!0);this.editor.graph.setEnabled(!1);var m=this.editor.graph,p=mxUtils.bind(this,function(a){this.editor.graph.setEnabled(!0);this.spinner.stop();var b=this.createLoadMessage("export");b.format=h.format;b.message=h;b.data=a;b.xml=encodeURIComponent(q);g.postMessage(JSON.stringify(b),"*")}),u= -mxUtils.bind(this,function(a){null==a&&(a=Editor.blankImage);"xmlpng"==h.format&&(a=this.writeGraphModelToPng(a,"zTXt","mxGraphModel",atob(this.editor.graph.compress(q))));m!=this.editor.graph&&m.container.parentNode.removeChild(m.container);p(a)});if(this.isExportToCanvas()){if(null!=this.pages&&this.currentPage!=this.pages[0]){var m=this.createTemporaryGraph(m.getStylesheet()),y=m.getGlobalVariable,B=this.pages[0];m.getGlobalVariable=function(a){return"page"==a?B.getName():"pagenumber"==a?1:y.apply(this, -arguments)};document.body.appendChild(m.container);m.model.setRoot(B.root)}this.exportToCanvas(mxUtils.bind(this,function(a){u(a.toDataURL("image/png"))}),null,null,null,mxUtils.bind(this,function(){u(null)}),null,null,null,null,null,null,m)}else(new mxXmlRequest(EXPORT_URL,"format=png&embedXml="+("xmlpng"==h.format?"1":"0")+"&base64=1&xml="+encodeURIComponent(encodeURIComponent(q)))).send(mxUtils.bind(this,function(a){200<=a.getStatus()&&299>=a.getStatus()?p("data:image/png;base64,"+a.getText()): -u(null)}),mxUtils.bind(this,function(){u(null)}))}}else{null!=h.xml&&0<h.xml.length&&this.setFileData(h.xml);v=this.createLoadMessage("export");if("html2"==h.format||"html"==h.format&&("0"!=urlParams.pages||null!=this.pages&&1<this.pages.length))k=this.getXmlFileData(),v.xml=mxUtils.getXml(k),v.data=this.getFileData(null,null,!0,null,null,null,k),v.format=h.format;else if("html"==h.format)q=this.editor.getGraphXml(),v.data=this.getHtml(q,this.editor.graph),v.xml=mxUtils.getXml(q),v.format=h.format; +h.action){if("png"==h.format||"xmlpng"==h.format){if(null==h.spin&&null==h.spinKey||this.spinner.spin(document.body,null!=h.spinKey?mxResources.get(h.spinKey):h.spin)){var q=null!=h.xml?h.xml:this.getFileData(!0);this.editor.graph.setEnabled(!1);var n=this.editor.graph,u=mxUtils.bind(this,function(a){this.editor.graph.setEnabled(!0);this.spinner.stop();var b=this.createLoadMessage("export");b.format=h.format;b.message=h;b.data=a;b.xml=encodeURIComponent(q);g.postMessage(JSON.stringify(b),"*")}),p= +mxUtils.bind(this,function(a){null==a&&(a=Editor.blankImage);"xmlpng"==h.format&&(a=this.writeGraphModelToPng(a,"zTXt","mxGraphModel",atob(this.editor.graph.compress(q))));n!=this.editor.graph&&n.container.parentNode.removeChild(n.container);u(a)});if(this.isExportToCanvas()){if(null!=this.pages&&this.currentPage!=this.pages[0]){var n=this.createTemporaryGraph(n.getStylesheet()),y=n.getGlobalVariable,A=this.pages[0];n.getGlobalVariable=function(a){return"page"==a?A.getName():"pagenumber"==a?1:y.apply(this, +arguments)};document.body.appendChild(n.container);n.model.setRoot(A.root)}this.exportToCanvas(mxUtils.bind(this,function(a){p(a.toDataURL("image/png"))}),null,null,null,mxUtils.bind(this,function(){p(null)}),null,null,null,null,null,null,n)}else(new mxXmlRequest(EXPORT_URL,"format=png&embedXml="+("xmlpng"==h.format?"1":"0")+"&base64=1&xml="+encodeURIComponent(encodeURIComponent(q)))).send(mxUtils.bind(this,function(a){200<=a.getStatus()&&299>=a.getStatus()?u("data:image/png;base64,"+a.getText()): +p(null)}),mxUtils.bind(this,function(){p(null)}))}}else{null!=h.xml&&0<h.xml.length&&this.setFileData(h.xml);v=this.createLoadMessage("export");if("html2"==h.format||"html"==h.format&&("0"!=urlParams.pages||null!=this.pages&&1<this.pages.length))k=this.getXmlFileData(),v.xml=mxUtils.getXml(k),v.data=this.getFileData(null,null,!0,null,null,null,k),v.format=h.format;else if("html"==h.format)q=this.editor.getGraphXml(),v.data=this.getHtml(q,this.editor.graph),v.xml=mxUtils.getXml(q),v.format=h.format; else{mxSvgCanvas2D.prototype.foAltText=null;k=this.editor.graph.background;k==mxConstants.NONE&&(k=null);v.xml=this.getFileData(!0);v.format="svg";if(h.embedImages||null==h.embedImages){if(null==h.spin&&null==h.spinKey||this.spinner.spin(document.body,null!=h.spinKey?mxResources.get(h.spinKey):h.spin))this.editor.graph.setEnabled(!1),"xmlsvg"==h.format?this.getEmbeddedSvg(v.xml,this.editor.graph,null,!0,mxUtils.bind(this,function(a){this.editor.graph.setEnabled(!0);this.spinner.stop();v.data=this.createSvgDataUri(a); g.postMessage(JSON.stringify(v),"*")})):this.convertImages(this.editor.graph.getSvg(k),mxUtils.bind(this,function(a){this.editor.graph.setEnabled(!0);this.spinner.stop();v.data=this.createSvgDataUri(mxUtils.getXml(a));g.postMessage(JSON.stringify(v),"*")}));return}k="xmlsvg"==h.format?this.getEmbeddedSvg(this.getFileData(!0),this.editor.graph,null,!0):mxUtils.getXml(this.editor.graph.getSvg(k));v.data=this.createSvgDataUri(k)}g.postMessage(JSON.stringify(v),"*")}return}if("load"==h.action)d=1==h.autosave, this.hideDialog(),null!=h.modified&&null==urlParams.modified&&(urlParams.modified=h.modified),null!=h.saveAndExit&&null==urlParams.saveAndExit&&(urlParams.saveAndExit=h.saveAndExit),null!=h.title&&null!=this.buttonContainer&&(l=document.createElement("span"),mxUtils.write(l,h.title),"atlas"==uiTheme?(this.buttonContainer.style.paddingRight="12px",this.buttonContainer.style.paddingTop="12px"):"min"!=uiTheme&&(this.buttonContainer.style.paddingRight="38px",this.buttonContainer.style.paddingTop="6px"), @@ -7857,19 +7861,19 @@ b),this.addListener("pageScaleChanged",b),this.addListener("backgroundColorChang document.createElement("div");a.style.display="inline-block";a.style.position="absolute";a.style.paddingTop="atlas"==uiTheme?"2px":"3px";a.style.paddingLeft="8px";a.style.paddingBottom="2px";var b=document.createElement("button");mxUtils.write(b,mxResources.get("save"));b.setAttribute("title",mxResources.get("save")+" ("+Editor.ctrlKey+"+S)");b.className="geBigButton";b.style.fontSize="12px";b.style.padding="4px 6px 4px 6px";b.style.borderRadius="3px";mxEvent.addListener(b,"click",mxUtils.bind(this, function(){this.actions.get("save").funct()}));a.appendChild(b);"1"==urlParams.saveAndExit&&(b=document.createElement("a"),mxUtils.write(b,mxResources.get("saveAndExit")),b.setAttribute("title",mxResources.get("saveAndExit")),b.style.fontSize="12px",b.style.marginLeft="6px",b.style.padding="4px",b.style.cursor="pointer",mxEvent.addListener(b,"click",mxUtils.bind(this,function(){this.actions.get("saveAndExit").funct()})),a.appendChild(b));b=document.createElement("a");mxUtils.write(b,mxResources.get("exit")); b.setAttribute("title",mxResources.get("exit"));b.style.fontSize="12px";b.style.marginLeft="6px";b.style.marginRight="20px";b.style.padding="4px";b.style.cursor="pointer";mxEvent.addListener(b,"click",mxUtils.bind(this,function(){this.actions.get("exit").funct()}));a.appendChild(b);this.toolbar.container.appendChild(a);this.toolbar.staticElements.push(a);a.style.right="atlas"!=uiTheme?"52px":"42px"}};EditorUi.prototype.showImportCsvDialog=function(){null==this.importCsvDialog&&(this.importCsvDialog= -new TextareaDialog(this,mxResources.get("csv")+":",Editor.defaultCsvValue,mxUtils.bind(this,function(a){this.importCsv(a)}),null,null,620,430,null,!0,!0,mxResources.get("import")));this.showDialog(this.importCsvDialog.container,640,520,!0,!0);this.importCsvDialog.init()};EditorUi.prototype.importCsv=function(a,b){try{var c=a.split("\n"),d=[];if(0<c.length){var e={},f=null,g=null,h=null,l=null,m="",n="auto",x="auto",C=null,z=null,F=40,E=40,G=100,I=0,B=this.editor.graph;B.getGraphBounds();for(var D= -function(){null!=b?b(ea):(B.setSelectionCells(ea),B.scrollCellToVisible(B.getSelectionCell()))},H=B.getFreeInsertPoint(),M=H.x,K=H.y,H=K,T=null,P="auto",l=null,S=[],aa=null,Z=null,N=0;N<c.length&&"#"==c[N].charAt(0);){a=c[N];for(N++;N<c.length&&"\\"==a.charAt(a.length-1)&&"#"==c[N].charAt(0);)a=a.substring(0,a.length-1)+mxUtils.trim(c[N].substring(1)),N++;if("#"!=a.charAt(1)){var Y=a.indexOf(":");if(0<Y){var Q=mxUtils.trim(a.substring(1,Y)),L=mxUtils.trim(a.substring(Y+1));"label"==Q?T=B.sanitizeHtml(L): -"style"==Q?f=L:"parentstyle"==Q?g=L:"identity"==Q&&0<L.length&&"-"!=L?h=L:"parent"==Q&&0<L.length&&"-"!=L?l=L:"namespace"==Q&&0<L.length&&"-"!=L?m=L:"width"==Q?n=L:"height"==Q?x=L:"left"==Q&&0<L.length?C=L:"top"==Q&&0<L.length?z=L:"ignore"==Q?Z=L.split(","):"connect"==Q?S.push(JSON.parse(L)):"link"==Q?aa=L:"padding"==Q?I=parseFloat(L):"edgespacing"==Q?F=parseFloat(L):"nodespacing"==Q?E=parseFloat(L):"levelspacing"==Q?G=parseFloat(L):"layout"==Q&&(P=L)}}}var U=this.editor.csvToArray(c[N]),Q=Y=null; -if(null!=h||null!=l)for(var R=0;R<U.length;R++)h==U[R]&&(Y=R),l==U[R]&&(Q=R);null==T&&(T="%"+U[0]+"%");if(null!=S)for(var O=0;O<S.length;O++)null==e[S[O].to]&&(e[S[O].to]={});B.model.beginUpdate();try{for(R=N+1;R<c.length;R++){var V=this.editor.csvToArray(c[R]);if(V.length==U.length){var J=null,X=null!=Y?m+V[Y]:null;null!=X&&(J=B.model.getCell(X));null==J&&(J=new mxCell(T,new mxGeometry(M,H,0,0),f||"whiteSpace=wrap;html=1;"),J.vertex=!0,J.id=X);for(var W=0;W<V.length;W++)B.setAttributeForCell(J,U[W], -V[W]);B.setAttributeForCell(J,"placeholders","1");J.style=B.replacePlaceholders(J,J.style);for(O=0;O<S.length;O++)e[S[O].to][J.getAttribute(S[O].to)]=J;null!=aa&&"link"!=aa&&(B.setLinkForCell(J,J.getAttribute(aa)),B.setAttributeForCell(J,aa,null));B.fireEvent(new mxEventObject("cellsInserted","cells",[J]));var da=this.editor.graph.getPreferredSizeForCell(J);J.vertex&&(null!=C&&null!=J.getAttribute(C)&&(J.geometry.x=M+parseFloat(J.getAttribute(C))),null!=z&&null!=J.getAttribute(z)&&(J.geometry.y=K+ -parseFloat(J.getAttribute(z))),"@"==n.charAt(0)&&null!=J.getAttribute(n.substring(1))?J.geometry.width=parseFloat(J.getAttribute(n.substring(1))):J.geometry.width="auto"==n?da.width+I:parseFloat(n),"@"==x.charAt(0)&&null!=J.getAttribute(x.substring(1))?J.geometry.height=parseFloat(J.getAttribute(x.substring(1))):J.geometry.height="auto"==x?da.height+I:parseFloat(x),H+=J.geometry.height+E);l=null!=Q?B.model.getCell(m+V[Q]):null;null!=l?(l.style=B.replacePlaceholders(l,g),B.addCell(J,l)):d.push(B.addCell(J))}}for(var ba= -d.slice(),ea=d.slice(),O=0;O<S.length;O++)for(var ca=S[O],R=0;R<d.length;R++){var J=d[R],la=J.getAttribute(ca.from);if(null!=la){B.setAttributeForCell(J,ca.from,null);for(var ma=la.split(","),W=0;W<ma.length;W++){var fa=e[ca.to][ma[W]];null!=fa&&(T=ca.label,null!=ca.fromlabel&&(T=(J.getAttribute(ca.fromlabel)||"")+(T||"")),null!=ca.tolabel&&(T=(T||"")+(fa.getAttribute(ca.tolabel)||"")),ea.push(B.insertEdge(null,null,T||"",ca.invert?fa:J,ca.invert?J:fa,ca.style||B.createCurrentEdgeStyle())),mxUtils.remove(ca.invert? -J:fa,ba))}}}if(null!=Z)for(R=0;R<d.length;R++)for(J=d[R],W=0;W<Z.length;W++)B.setAttributeForCell(J,mxUtils.trim(Z[W]),null);var ia=new mxParallelEdgeLayout(B);ia.spacing=F;var na=function(){ia.execute(B.getDefaultParent());for(var a=0;a<d.length;a++){var b=B.getCellGeometry(d[a]);b.x=Math.round(B.snap(b.x));b.y=Math.round(B.snap(b.y));"auto"==n&&(b.width=Math.round(B.snap(b.width)));"auto"==x&&(b.height=Math.round(B.snap(b.height)))}};if("circle"==P){var ja=new mxCircleLayout(B);ja.resetEdges=!1; -var oa=ja.isVertexIgnored;ja.isVertexIgnored=function(a){return oa.apply(this,arguments)||0>mxUtils.indexOf(d,a)};this.executeLayout(function(){ja.execute(B.getDefaultParent());na()},!0,D);D=null}else if("horizontaltree"==P||"verticaltree"==P||"auto"==P&&ea.length==2*d.length-1&&1==ba.length){B.view.validate();var ka=new mxCompactTreeLayout(B,"horizontaltree"==P);ka.levelDistance=E;ka.edgeRouting=!1;ka.resetEdges=!1;this.executeLayout(function(){ka.execute(B.getDefaultParent(),0<ba.length?ba[0]:null)}, -!0,D);D=null}else if("horizontalflow"==P||"verticalflow"==P||"auto"==P&&1==ba.length){B.view.validate();var ga=new mxHierarchicalLayout(B,"horizontalflow"==P?mxConstants.DIRECTION_WEST:mxConstants.DIRECTION_NORTH);ga.intraCellSpacing=E;ga.parallelEdgeSpacing=F;ga.interRankCellSpacing=G;ga.disableEdgeStyle=!1;this.executeLayout(function(){ga.execute(B.getDefaultParent(),ea);B.moveCells(ea,M,K)},!0,D);D=null}else if("organic"==P||"auto"==P&&ea.length>d.length){B.view.validate();var ha=new mxFastOrganicLayout(B); -ha.forceConstant=3*E;ha.resetEdges=!1;var pa=ha.isVertexIgnored;ha.isVertexIgnored=function(a){return pa.apply(this,arguments)||0>mxUtils.indexOf(d,a)};ia=new mxParallelEdgeLayout(B);ia.spacing=F;this.executeLayout(function(){ha.execute(B.getDefaultParent());na()},!0,D);D=null}this.hideDialog()}finally{B.model.endUpdate()}null!=D&&D()}}catch(qa){this.handleError(qa)}};EditorUi.prototype.getSearch=function(a){var b="";if("1"!=urlParams.offline&&"1"!=urlParams.demo&&null!=a&&0<window.location.search.length){var c= +new TextareaDialog(this,mxResources.get("csv")+":",Editor.defaultCsvValue,mxUtils.bind(this,function(a){this.importCsv(a)}),null,null,620,430,null,!0,!0,mxResources.get("import")));this.showDialog(this.importCsvDialog.container,640,520,!0,!0);this.importCsvDialog.init()};EditorUi.prototype.importCsv=function(a,b){try{var c=a.split("\n"),d=[];if(0<c.length){var e={},f=null,g=null,h=null,k=null,l="",m="auto",x="auto",C=null,z=null,F=40,E=40,G=100,I=0,A=this.editor.graph;A.getGraphBounds();for(var D= +function(){null!=b?b(ea):(A.setSelectionCells(ea),A.scrollCellToVisible(A.getSelectionCell()))},H=A.getFreeInsertPoint(),M=H.x,K=H.y,H=K,T=null,P="auto",k=null,S=[],aa=null,Z=null,N=0;N<c.length&&"#"==c[N].charAt(0);){a=c[N];for(N++;N<c.length&&"\\"==a.charAt(a.length-1)&&"#"==c[N].charAt(0);)a=a.substring(0,a.length-1)+mxUtils.trim(c[N].substring(1)),N++;if("#"!=a.charAt(1)){var Y=a.indexOf(":");if(0<Y){var Q=mxUtils.trim(a.substring(1,Y)),L=mxUtils.trim(a.substring(Y+1));"label"==Q?T=A.sanitizeHtml(L): +"style"==Q?f=L:"parentstyle"==Q?g=L:"identity"==Q&&0<L.length&&"-"!=L?h=L:"parent"==Q&&0<L.length&&"-"!=L?k=L:"namespace"==Q&&0<L.length&&"-"!=L?l=L:"width"==Q?m=L:"height"==Q?x=L:"left"==Q&&0<L.length?C=L:"top"==Q&&0<L.length?z=L:"ignore"==Q?Z=L.split(","):"connect"==Q?S.push(JSON.parse(L)):"link"==Q?aa=L:"padding"==Q?I=parseFloat(L):"edgespacing"==Q?F=parseFloat(L):"nodespacing"==Q?E=parseFloat(L):"levelspacing"==Q?G=parseFloat(L):"layout"==Q&&(P=L)}}}var U=this.editor.csvToArray(c[N]),Q=Y=null; +if(null!=h||null!=k)for(var R=0;R<U.length;R++)h==U[R]&&(Y=R),k==U[R]&&(Q=R);null==T&&(T="%"+U[0]+"%");if(null!=S)for(var O=0;O<S.length;O++)null==e[S[O].to]&&(e[S[O].to]={});A.model.beginUpdate();try{for(R=N+1;R<c.length;R++){var V=this.editor.csvToArray(c[R]);if(V.length==U.length){var J=null,X=null!=Y?l+V[Y]:null;null!=X&&(J=A.model.getCell(X));null==J&&(J=new mxCell(T,new mxGeometry(M,H,0,0),f||"whiteSpace=wrap;html=1;"),J.vertex=!0,J.id=X);for(var W=0;W<V.length;W++)A.setAttributeForCell(J,U[W], +V[W]);A.setAttributeForCell(J,"placeholders","1");J.style=A.replacePlaceholders(J,J.style);for(O=0;O<S.length;O++)e[S[O].to][J.getAttribute(S[O].to)]=J;null!=aa&&"link"!=aa&&(A.setLinkForCell(J,J.getAttribute(aa)),A.setAttributeForCell(J,aa,null));A.fireEvent(new mxEventObject("cellsInserted","cells",[J]));var da=this.editor.graph.getPreferredSizeForCell(J);J.vertex&&(null!=C&&null!=J.getAttribute(C)&&(J.geometry.x=M+parseFloat(J.getAttribute(C))),null!=z&&null!=J.getAttribute(z)&&(J.geometry.y=K+ +parseFloat(J.getAttribute(z))),"@"==m.charAt(0)&&null!=J.getAttribute(m.substring(1))?J.geometry.width=parseFloat(J.getAttribute(m.substring(1))):J.geometry.width="auto"==m?da.width+I:parseFloat(m),"@"==x.charAt(0)&&null!=J.getAttribute(x.substring(1))?J.geometry.height=parseFloat(J.getAttribute(x.substring(1))):J.geometry.height="auto"==x?da.height+I:parseFloat(x),H+=J.geometry.height+E);k=null!=Q?A.model.getCell(l+V[Q]):null;null!=k?(k.style=A.replacePlaceholders(k,g),A.addCell(J,k)):d.push(A.addCell(J))}}for(var ba= +d.slice(),ea=d.slice(),O=0;O<S.length;O++)for(var ca=S[O],R=0;R<d.length;R++){var J=d[R],la=J.getAttribute(ca.from);if(null!=la){A.setAttributeForCell(J,ca.from,null);for(var ma=la.split(","),W=0;W<ma.length;W++){var fa=e[ca.to][ma[W]];null!=fa&&(T=ca.label,null!=ca.fromlabel&&(T=(J.getAttribute(ca.fromlabel)||"")+(T||"")),null!=ca.tolabel&&(T=(T||"")+(fa.getAttribute(ca.tolabel)||"")),ea.push(A.insertEdge(null,null,T||"",ca.invert?fa:J,ca.invert?J:fa,ca.style||A.createCurrentEdgeStyle())),mxUtils.remove(ca.invert? +J:fa,ba))}}}if(null!=Z)for(R=0;R<d.length;R++)for(J=d[R],W=0;W<Z.length;W++)A.setAttributeForCell(J,mxUtils.trim(Z[W]),null);var ia=new mxParallelEdgeLayout(A);ia.spacing=F;var na=function(){ia.execute(A.getDefaultParent());for(var a=0;a<d.length;a++){var b=A.getCellGeometry(d[a]);b.x=Math.round(A.snap(b.x));b.y=Math.round(A.snap(b.y));"auto"==m&&(b.width=Math.round(A.snap(b.width)));"auto"==x&&(b.height=Math.round(A.snap(b.height)))}};if("circle"==P){var ja=new mxCircleLayout(A);ja.resetEdges=!1; +var oa=ja.isVertexIgnored;ja.isVertexIgnored=function(a){return oa.apply(this,arguments)||0>mxUtils.indexOf(d,a)};this.executeLayout(function(){ja.execute(A.getDefaultParent());na()},!0,D);D=null}else if("horizontaltree"==P||"verticaltree"==P||"auto"==P&&ea.length==2*d.length-1&&1==ba.length){A.view.validate();var ka=new mxCompactTreeLayout(A,"horizontaltree"==P);ka.levelDistance=E;ka.edgeRouting=!1;ka.resetEdges=!1;this.executeLayout(function(){ka.execute(A.getDefaultParent(),0<ba.length?ba[0]:null)}, +!0,D);D=null}else if("horizontalflow"==P||"verticalflow"==P||"auto"==P&&1==ba.length){A.view.validate();var ga=new mxHierarchicalLayout(A,"horizontalflow"==P?mxConstants.DIRECTION_WEST:mxConstants.DIRECTION_NORTH);ga.intraCellSpacing=E;ga.parallelEdgeSpacing=F;ga.interRankCellSpacing=G;ga.disableEdgeStyle=!1;this.executeLayout(function(){ga.execute(A.getDefaultParent(),ea);A.moveCells(ea,M,K)},!0,D);D=null}else if("organic"==P||"auto"==P&&ea.length>d.length){A.view.validate();var ha=new mxFastOrganicLayout(A); +ha.forceConstant=3*E;ha.resetEdges=!1;var pa=ha.isVertexIgnored;ha.isVertexIgnored=function(a){return pa.apply(this,arguments)||0>mxUtils.indexOf(d,a)};ia=new mxParallelEdgeLayout(A);ia.spacing=F;this.executeLayout(function(){ha.execute(A.getDefaultParent());na()},!0,D);D=null}this.hideDialog()}finally{A.model.endUpdate()}null!=D&&D()}}catch(qa){this.handleError(qa)}};EditorUi.prototype.getSearch=function(a){var b="";if("1"!=urlParams.offline&&"1"!=urlParams.demo&&null!=a&&0<window.location.search.length){var c= "?",d;for(d in urlParams)0>mxUtils.indexOf(a,d)&&null!=urlParams[d]&&(b+=c+d+"="+urlParams[d],c="&")}else b=window.location.search;return b};EditorUi.prototype.getUrl=function(a){a=null!=a?a:window.location.pathname;var b=0<a.indexOf("?")?1:0;if("1"==urlParams.offline)a+=window.location.search;else{var c="tmp libs clibs state fileId code share notitle data url embed client create title splash".split(" "),d;for(d in urlParams)0>mxUtils.indexOf(c,d)&&(a=0==b?a+"?":a+"&",null!=urlParams[d]&&(a+=d+"="+ -urlParams[d],b++))}return a};EditorUi.prototype.showLinkDialog=function(a,b,c){a=new LinkDialog(this,a,b,c,!0);this.showDialog(a.container,480,130,!0,!0);a.init()};var l=EditorUi.prototype.createOutline;EditorUi.prototype.createOutline=function(a){var b=l.apply(this,arguments),c=this.editor.graph,d=b.getSourceGraphBounds;b.getSourceGraphBounds=function(){if(mxUtils.hasScrollbars(c.container)&&c.pageVisible&&null!=this.source.minimumGraphSize){var a=this.source.getPagePadding(),b=this.source.view.scale; +urlParams[d],b++))}return a};EditorUi.prototype.showLinkDialog=function(a,b,c){a=new LinkDialog(this,a,b,c,!0);this.showDialog(a.container,480,130,!0,!0);a.init()};var k=EditorUi.prototype.createOutline;EditorUi.prototype.createOutline=function(a){var b=k.apply(this,arguments),c=this.editor.graph,d=b.getSourceGraphBounds;b.getSourceGraphBounds=function(){if(mxUtils.hasScrollbars(c.container)&&c.pageVisible&&null!=this.source.minimumGraphSize){var a=this.source.getPagePadding(),b=this.source.view.scale; return new mxRectangle(0,0,Math.ceil(this.source.minimumGraphSize.width-2*a.x/b),Math.ceil(this.source.minimumGraphSize.height-2*a.y/b))}return d.apply(this,arguments)};var e=b.getSourceContainerSize;b.getSourceContainerSize=function(){if(mxUtils.hasScrollbars(c.container)&&null!=this.source.minimumGraphSize){var a=this.source.getPagePadding(),b=this.source.view.scale;return new mxRectangle(0,0,Math.ceil(this.source.minimumGraphSize.width*b-2*a.x),Math.ceil(this.source.minimumGraphSize.height*b-2* a.y))}return e.apply(this,arguments)};b.getOutlineOffset=function(a){if(mxUtils.hasScrollbars(c.container)&&null!=this.source.minimumGraphSize){var d=this.source.getPagePadding();return new mxPoint(Math.round(Math.max(0,(b.outline.container.clientWidth/a-(this.source.minimumGraphSize.width-2*d.x))/2)-d.x),Math.round(Math.max(0,(b.outline.container.clientHeight/a-(this.source.minimumGraphSize.height-2*d.y))/2)-d.y-5/a))}return new mxPoint(8/a,8/a)};var f=b.init;b.init=function(){f.apply(this,arguments); b.outline.view.getBackgroundPageBounds=function(){var a=c.getPageLayout(),b=c.getPageSize();return new mxRectangle(this.scale*(this.translate.x+a.x*b.width),this.scale*(this.translate.y+a.y*b.height),this.scale*a.width*b.width,this.scale*a.height*b.height)};b.outline.view.validateBackgroundPage()};this.editor.addListener("pageSelected",function(a,c){var d=c.getProperty("change"),e=b.source,f=b.outline;f.pageScale=e.pageScale;f.pageFormat=e.pageFormat;f.background=e.background;f.pageVisible=e.pageVisible; @@ -7881,12 +7885,12 @@ if(this.isAppCache()){var d=applicationCache;if(null!=d&&null==this.offlineStatu "";this.menubarContainer.appendChild(this.offlineStatus);mxEvent.addListener(this.offlineStatus,"click",mxUtils.bind(this,function(){var a=this.offlineStatus.getElementsByTagName("img");null!=a&&0<a.length&&this.alert(a[0].getAttribute("title"))}));var d=window.applicationCache,e=null,b=mxUtils.bind(this,function(){var a=d.status,b;a==d.CHECKING&&(a=d.DOWNLOADING);switch(a){case d.UNCACHED:b="";break;case d.IDLE:b="min"==uiTheme?"":'<img title="draw.io is up to date." border="0" src="'+IMAGE_PATH+ '/checkmark.gif"/>';break;case d.DOWNLOADING:b='<img title="Downloading new version..." border="0" src="'+IMAGE_PATH+'/spin.gif"/>';break;case d.UPDATEREADY:b='<img title="'+mxUtils.htmlEntities(mxResources.get("restartForChangeRequired"))+'" border="0" src="'+IMAGE_PATH+'/download.png"/>';break;case d.OBSOLETE:b='<img title="Obsolete" border="0" src="'+IMAGE_PATH+'/clear.gif"/>';break;default:b='<img title="Unknown" border="0" src="'+IMAGE_PATH+'/clear.gif"/>'}a!=e&&(this.offlineStatus.innerHTML= b,e=a)});mxEvent.addListener(d,"checking",b);mxEvent.addListener(d,"noupdate",b);mxEvent.addListener(d,"downloading",b);mxEvent.addListener(d,"progress",b);mxEvent.addListener(d,"cached",b);mxEvent.addListener(d,"updateready",b);mxEvent.addListener(d,"obsolete",b);mxEvent.addListener(d,"error",b);b()}}else this.updateUserElement()};EditorUi.prototype.updateButtonContainer=function(){};EditorUi.prototype.updateUserElement=function(){};EditorUi.prototype.isDiagramActive=function(){var a=this.getCurrentFile(); -return null!=a&&a.isEditable()||"1"==urlParams.embed&&this.editor.graph.isEnabled()};var m=EditorUi.prototype.updateActionStates;EditorUi.prototype.updateActionStates=function(){m.apply(this,arguments);var a=this.editor.graph,b=this.isDiagramActive(),c=this.getCurrentFile();this.actions.get("pageSetup").setEnabled(b);this.actions.get("autosave").setEnabled(null!=c&&c.isEditable()&&c.isAutosaveOptional());this.actions.get("guides").setEnabled(b);this.actions.get("editData").setEnabled(b);this.actions.get("shadowVisible").setEnabled(b); +return null!=a&&a.isEditable()||"1"==urlParams.embed&&this.editor.graph.isEnabled()};var l=EditorUi.prototype.updateActionStates;EditorUi.prototype.updateActionStates=function(){l.apply(this,arguments);var a=this.editor.graph,b=this.isDiagramActive(),c=this.getCurrentFile();this.actions.get("pageSetup").setEnabled(b);this.actions.get("autosave").setEnabled(null!=c&&c.isEditable()&&c.isAutosaveOptional());this.actions.get("guides").setEnabled(b);this.actions.get("editData").setEnabled(b);this.actions.get("shadowVisible").setEnabled(b); this.actions.get("connectionArrows").setEnabled(b);this.actions.get("connectionPoints").setEnabled(b);this.actions.get("copyStyle").setEnabled(b&&!a.isSelectionEmpty());this.actions.get("pasteStyle").setEnabled(b&&!a.isSelectionEmpty());this.actions.get("editGeometry").setEnabled(a.getModel().isVertex(a.getSelectionCell()));this.actions.get("createShape").setEnabled(b);this.actions.get("createRevision").setEnabled(b);this.actions.get("moveToFolder").setEnabled(null!=c);this.actions.get("makeCopy").setEnabled(null!= c&&!c.isRestricted());this.actions.get("editDiagram").setEnabled(b&&(null==c||!c.isRestricted()));this.actions.get("publishLink").setEnabled(null!=c&&!c.isRestricted());this.actions.get("tags").setEnabled("hidden"!=this.diagramContainer.style.visibility);this.actions.get("find").setEnabled("hidden"!=this.diagramContainer.style.visibility);this.actions.get("layers").setEnabled("hidden"!=this.diagramContainer.style.visibility);this.actions.get("outline").setEnabled("hidden"!=this.diagramContainer.style.visibility); -this.actions.get("rename").setEnabled(null!=c&&c.isRenamable()||"1"==urlParams.embed);this.actions.get("close").setEnabled(null!=c);this.menus.get("publish").setEnabled(null!=c&&!c.isRestricted());a=a.view.getState(a.getSelectionCell());this.actions.get("editShape").setEnabled(b&&null!=a&&null!=a.shape&&null!=a.shape.stencil)};var n=EditorUi.prototype.destroy;EditorUi.prototype.destroy=function(){null!=this.exportDialog&&(this.exportDialog.parentNode.removeChild(this.exportDialog),this.exportDialog= -null);n.apply(this,arguments)};null!=window.ExportDialog&&(ExportDialog.showXmlOption=!1,ExportDialog.showGifOption=!1,ExportDialog.exportFile=function(a,b,c,d,e,g){var f=a.editor.graph;if("xml"==c)a.hideDialog(),a.saveData(b,"xml",mxUtils.getXml(a.editor.getGraphXml()),"text/xml");else if("svg"==c)a.hideDialog(),a.saveData(b,"svg",mxUtils.getXml(f.getSvg(d,e,g)),"image/svg+xml");else{var h=a.getFileData(!0,null,null,null,null,!0),l=f.getGraphBounds(),m=Math.floor(l.width*e/f.view.scale),k=Math.floor(l.height* -e/f.view.scale);h.length<=MAX_REQUEST_SIZE&&m*k<MAX_AREA?(a.hideDialog(),a.saveRequest(b,c,function(a,b){return new mxXmlRequest(EXPORT_URL,"format="+c+"&base64="+(b||"0")+(null!=a?"&filename="+encodeURIComponent(a):"")+"&bg="+(null!=d?d:"none")+"&w="+m+"&h="+k+"&border="+g+"&xml="+encodeURIComponent(h))})):mxUtils.alert(mxResources.get("drawingTooLarge"))}})})();var mxSettings={currentVersion:17,defaultFormatWidth:600>screen.width?"0":"240",key:".drawio-config",getLanguage:function(){return mxSettings.settings.language},setLanguage:function(a){mxSettings.settings.language=a},getUi:function(){return mxSettings.settings.ui},setUi:function(a){mxSettings.settings.ui=a},getShowStartScreen:function(){return mxSettings.settings.showStartScreen},setShowStartScreen:function(a){mxSettings.settings.showStartScreen=a},getGridColor:function(){return mxSettings.settings.gridColor}, +this.actions.get("rename").setEnabled(null!=c&&c.isRenamable()||"1"==urlParams.embed);this.actions.get("close").setEnabled(null!=c);this.menus.get("publish").setEnabled(null!=c&&!c.isRestricted());a=a.view.getState(a.getSelectionCell());this.actions.get("editShape").setEnabled(b&&null!=a&&null!=a.shape&&null!=a.shape.stencil)};var m=EditorUi.prototype.destroy;EditorUi.prototype.destroy=function(){null!=this.exportDialog&&(this.exportDialog.parentNode.removeChild(this.exportDialog),this.exportDialog= +null);m.apply(this,arguments)};null!=window.ExportDialog&&(ExportDialog.showXmlOption=!1,ExportDialog.showGifOption=!1,ExportDialog.exportFile=function(a,b,c,d,e,g){var f=a.editor.graph;if("xml"==c)a.hideDialog(),a.saveData(b,"xml",mxUtils.getXml(a.editor.getGraphXml()),"text/xml");else if("svg"==c)a.hideDialog(),a.saveData(b,"svg",mxUtils.getXml(f.getSvg(d,e,g)),"image/svg+xml");else{var h=a.getFileData(!0,null,null,null,null,!0),k=f.getGraphBounds(),l=Math.floor(k.width*e/f.view.scale),n=Math.floor(k.height* +e/f.view.scale);h.length<=MAX_REQUEST_SIZE&&l*n<MAX_AREA?(a.hideDialog(),a.saveRequest(b,c,function(a,b){return new mxXmlRequest(EXPORT_URL,"format="+c+"&base64="+(b||"0")+(null!=a?"&filename="+encodeURIComponent(a):"")+"&bg="+(null!=d?d:"none")+"&w="+l+"&h="+n+"&border="+g+"&xml="+encodeURIComponent(h))})):mxUtils.alert(mxResources.get("drawingTooLarge"))}})})();var mxSettings={currentVersion:17,defaultFormatWidth:600>screen.width?"0":"240",key:".drawio-config",getLanguage:function(){return mxSettings.settings.language},setLanguage:function(a){mxSettings.settings.language=a},getUi:function(){return mxSettings.settings.ui},setUi:function(a){mxSettings.settings.ui=a},getShowStartScreen:function(){return mxSettings.settings.showStartScreen},setShowStartScreen:function(a){mxSettings.settings.showStartScreen=a},getGridColor:function(){return mxSettings.settings.gridColor}, setGridColor:function(a){mxSettings.settings.gridColor=a},getAutosave:function(){return mxSettings.settings.autosave},setAutosave:function(a){mxSettings.settings.autosave=a},getResizeImages:function(){return mxSettings.settings.resizeImages},setResizeImages:function(a){mxSettings.settings.resizeImages=a},getOpenCounter:function(){return mxSettings.settings.openCounter},setOpenCounter:function(a){mxSettings.settings.openCounter=a},getLibraries:function(){return mxSettings.settings.libraries},setLibraries:function(a){mxSettings.settings.libraries= a},addCustomLibrary:function(a){mxSettings.load();0>mxUtils.indexOf(mxSettings.settings.customLibraries,a)&&("L.scratchpad"===a?mxSettings.settings.customLibraries.splice(0,0,a):mxSettings.settings.customLibraries.push(a));mxSettings.save()},removeCustomLibrary:function(a){mxSettings.load();mxUtils.remove(a,mxSettings.settings.customLibraries);mxSettings.save()},getCustomLibraries:function(){return mxSettings.settings.customLibraries},getPlugins:function(){return mxSettings.settings.plugins},setPlugins:function(a){mxSettings.settings.plugins= a},getRecentColors:function(){return mxSettings.settings.recentColors},setRecentColors:function(a){mxSettings.settings.recentColors=a},getFormatWidth:function(){return parseInt(mxSettings.settings.formatWidth)},setFormatWidth:function(a){mxSettings.settings.formatWidth=a},isCreateTarget:function(){return mxSettings.settings.createTarget},setCreateTarget:function(a){mxSettings.settings.createTarget=a},getPageFormat:function(){return mxSettings.settings.pageFormat},setPageFormat:function(a){mxSettings.settings.pageFormat= @@ -7899,29 +7903,29 @@ Graph.prototype.defaultThemes.darkTheme=mxUtils.parseXml('<mxStylesheet><add as= mxAsyncCanvas.prototype.decWaitCounter=function(){this.waitCounter--;0==this.waitCounter&&null!=this.onComplete&&(this.onComplete(),this.onComplete=null)};mxAsyncCanvas.prototype.updateFont=function(){var a="";(this.state.fontStyle&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD&&(a+="bold ");(this.state.fontStyle&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC&&(a+="italic ");this.ctx.font=a+this.state.fontSize+"px "+this.state.fontFamily};mxAsyncCanvas.prototype.rotate=function(a,b,c,d,e){}; mxAsyncCanvas.prototype.setAlpha=function(a){this.state.alpha=a};mxAsyncCanvas.prototype.setFontColor=function(a){this.state.fontColor=a};mxAsyncCanvas.prototype.setFontBackgroundColor=function(a){a==mxConstants.NONE&&(a=null);this.state.fontBackgroundColor=a};mxAsyncCanvas.prototype.setFontBorderColor=function(a){a==mxConstants.NONE&&(a=null);this.state.fontBorderColor=a};mxAsyncCanvas.prototype.setFontSize=function(a){this.state.fontSize=a}; mxAsyncCanvas.prototype.setFontFamily=function(a){this.state.fontFamily=a};mxAsyncCanvas.prototype.setFontStyle=function(a){this.state.fontStyle=a};mxAsyncCanvas.prototype.rect=function(a,b,c,d){};mxAsyncCanvas.prototype.roundrect=function(a,b,c,d,e,g){};mxAsyncCanvas.prototype.ellipse=function(a,b,c,d){};mxAsyncCanvas.prototype.rewriteImageSource=function(a){if("http://"==a.substring(0,7)||"https://"==a.substring(0,8))a="/proxy?url="+encodeURIComponent(a);return a}; -mxAsyncCanvas.prototype.image=function(a,b,c,d,e,g,l,m){e=this.rewriteImageSource(e);a=this.htmlCanvas.images[e];null==a&&(a=new Image,a.onload=mxUtils.bind(this,function(){this.decWaitCounter()}),a.onerror=mxUtils.bind(this,function(){this.decWaitCounter()}),this.incWaitCounter(),this.htmlCanvas.images[e]=a,a.src=e)};mxAsyncCanvas.prototype.fill=function(){};mxAsyncCanvas.prototype.stroke=function(){};mxAsyncCanvas.prototype.fillAndStroke=function(){}; -mxAsyncCanvas.prototype.text=function(a,b,c,d,e,g,l,m,n,f,h,k){if(null!=e&&0!=e.length&&(a=this.state.scale,"html"==n&&"function"===typeof html2canvas)){this.incWaitCounter();var q=this.canvasIndex++;html2canvas(e,{onrendered:mxUtils.bind(this,function(a){this.htmlCanvas.subCanvas[q]=a;this.decWaitCounter()}),scale:a,logging:!0})}};mxAsyncCanvas.prototype.finish=function(a){0==this.waitCounter?a():this.onComplete=a};function mxJsCanvas(a){mxAbstractCanvas2D.call(this);this.ctx=a.getContext("2d");this.ctx.textBaseline="top";this.ctx.fillStyle="rgba(255,255,255,0)";this.ctx.strokeStyle="rgba(0, 0, 0, 0)";this.M_RAD_PER_DEG=Math.PI/180;this.images=null==this.images?[]:this.images;this.subCanvas=null==this.subCanvas?[]:this.subCanvas}mxUtils.extend(mxJsCanvas,mxAbstractCanvas2D);mxJsCanvas.prototype.ctx=null;mxJsCanvas.prototype.waitCounter=0;mxJsCanvas.prototype.onComplete=null;mxJsCanvas.prototype.images=null; +mxAsyncCanvas.prototype.image=function(a,b,c,d,e,g,k,l){e=this.rewriteImageSource(e);a=this.htmlCanvas.images[e];null==a&&(a=new Image,a.onload=mxUtils.bind(this,function(){this.decWaitCounter()}),a.onerror=mxUtils.bind(this,function(){this.decWaitCounter()}),this.incWaitCounter(),this.htmlCanvas.images[e]=a,a.src=e)};mxAsyncCanvas.prototype.fill=function(){};mxAsyncCanvas.prototype.stroke=function(){};mxAsyncCanvas.prototype.fillAndStroke=function(){}; +mxAsyncCanvas.prototype.text=function(a,b,c,d,e,g,k,l,m,f,h,n){if(null!=e&&0!=e.length&&(a=this.state.scale,"html"==m&&"function"===typeof html2canvas)){this.incWaitCounter();var u=this.canvasIndex++;html2canvas(e,{onrendered:mxUtils.bind(this,function(a){this.htmlCanvas.subCanvas[u]=a;this.decWaitCounter()}),scale:a,logging:!0})}};mxAsyncCanvas.prototype.finish=function(a){0==this.waitCounter?a():this.onComplete=a};function mxJsCanvas(a){mxAbstractCanvas2D.call(this);this.ctx=a.getContext("2d");this.ctx.textBaseline="top";this.ctx.fillStyle="rgba(255,255,255,0)";this.ctx.strokeStyle="rgba(0, 0, 0, 0)";this.M_RAD_PER_DEG=Math.PI/180;this.images=null==this.images?[]:this.images;this.subCanvas=null==this.subCanvas?[]:this.subCanvas}mxUtils.extend(mxJsCanvas,mxAbstractCanvas2D);mxJsCanvas.prototype.ctx=null;mxJsCanvas.prototype.waitCounter=0;mxJsCanvas.prototype.onComplete=null;mxJsCanvas.prototype.images=null; mxJsCanvas.prototype.subCanvas=null;mxJsCanvas.prototype.canvasIndex=0;mxJsCanvas.prototype.hexToRgb=function(a){a=a.replace(/^#?([a-f\d])([a-f\d])([a-f\d])$/i,function(a,c,d,e){return c+c+d+d+e+e});return(a=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(a))?{r:parseInt(a[1],16),g:parseInt(a[2],16),b:parseInt(a[3],16)}:null};mxJsCanvas.prototype.incWaitCounter=function(){this.waitCounter++}; mxJsCanvas.prototype.decWaitCounter=function(){this.waitCounter--;0==this.waitCounter&&null!=this.onComplete&&(this.onComplete(),this.onComplete=null)};mxJsCanvas.prototype.updateFont=function(){var a="";(this.state.fontStyle&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD&&(a+="bold ");(this.state.fontStyle&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC&&(a+="italic ");this.ctx.font=a+this.state.fontSize+"px "+this.state.fontFamily}; mxJsCanvas.prototype.save=function(){this.states.push(this.state);this.state=mxUtils.clone(this.state);this.ctx.save()};mxJsCanvas.prototype.restore=function(){this.state=this.states.pop();this.ctx.restore()};mxJsCanvas.prototype.scale=function(a){this.state.scale*=a;this.state.strokeWidth*=a;this.ctx.scale(a,a)};mxJsCanvas.prototype.translate=function(a,b){this.state.dx+=a;this.state.dy+=b;this.ctx.translate(a,b)}; mxJsCanvas.prototype.rotate=function(a,b,c,d,e){d-=this.state.dx;e-=this.state.dy;this.ctx.translate(d,e);(b||c)&&this.ctx.scale(b?-1:1,c?-1:1);this.ctx.rotate(a*this.M_RAD_PER_DEG);this.ctx.translate(-d,-e)};mxJsCanvas.prototype.setAlpha=function(a){this.state.alpha=a;this.ctx.globalAlpha=a};mxJsCanvas.prototype.setFillColor=function(a){a==mxConstants.NONE&&(a=null);this.state.fillColor=a;this.state.gradientColor=null;this.ctx.fillStyle=a}; -mxJsCanvas.prototype.setGradient=function(a,b,c,d,e,g,l,m,n){c=this.ctx.createLinearGradient(0,d,0,d+g);d=this.state;d.fillColor=a;d.fillAlpha=null!=m?m:1;d.gradientColor=b;d.gradientAlpha=null!=n?n:1;d.gradientDirection=l;a=this.hexToRgb(a);b=this.hexToRgb(b);null!=a&&c.addColorStop(0,"rgba("+a.r+","+a.g+","+a.b+","+d.fillAlpha+")");null!=b&&c.addColorStop(1,"rgba("+b.r+","+b.g+","+b.b+","+d.gradientAlpha+")");this.ctx.fillStyle=c}; +mxJsCanvas.prototype.setGradient=function(a,b,c,d,e,g,k,l,m){c=this.ctx.createLinearGradient(0,d,0,d+g);d=this.state;d.fillColor=a;d.fillAlpha=null!=l?l:1;d.gradientColor=b;d.gradientAlpha=null!=m?m:1;d.gradientDirection=k;a=this.hexToRgb(a);b=this.hexToRgb(b);null!=a&&c.addColorStop(0,"rgba("+a.r+","+a.g+","+a.b+","+d.fillAlpha+")");null!=b&&c.addColorStop(1,"rgba("+b.r+","+b.g+","+b.b+","+d.gradientAlpha+")");this.ctx.fillStyle=c}; mxJsCanvas.prototype.setStrokeColor=function(a){null!=a&&(a==mxConstants.NONE?(this.state.strokeColor=null,this.ctx.strokeStyle="rgba(0, 0, 0, 0)"):(this.ctx.strokeStyle=a,this.state.strokeColor=a))};mxJsCanvas.prototype.setStrokeWidth=function(a){this.ctx.lineWidth=a};mxJsCanvas.prototype.setDashed=function(a){if(this.state.dashed=a){a=this.state.dashPattern.split(" ");for(var b=0;b<a.length;b++)a[b]=parseInt(a[b],10);this.setLineDash(a)}else this.setLineDash([0])}; mxJsCanvas.prototype.setLineDash=function(a){try{"function"===typeof this.ctx.setLineDash&&this.ctx.setLineDash(a)}catch(b){}};mxJsCanvas.prototype.setDashPattern=function(a){this.state.dashPattern=a;if(this.state.dashed){a=a.split(" ");for(var b=0;b<a.length;b++)a[b]=parseInt(a[b],10);this.ctx.setLineDash(a)}};mxJsCanvas.prototype.setLineCap=function(a){this.ctx.lineCap=a};mxJsCanvas.prototype.setLineJoin=function(a){this.ctx.lineJoin=a}; mxJsCanvas.prototype.setMiterLimit=function(a){this.ctx.lineJoin=a};mxJsCanvas.prototype.setFontColor=function(a){this.ctx.fillStyle=a};mxJsCanvas.prototype.setFontBackgroundColor=function(a){a==mxConstants.NONE&&(a=null);this.state.fontBackgroundColor=a};mxJsCanvas.prototype.setFontBorderColor=function(a){a==mxConstants.NONE&&(a=null);this.state.fontBorderColor=a};mxJsCanvas.prototype.setFontSize=function(a){this.state.fontSize=a}; mxJsCanvas.prototype.setFontFamily=function(a){this.state.fontFamily=a};mxJsCanvas.prototype.setFontStyle=function(a){this.state.fontStyle=a};mxJsCanvas.prototype.setShadow=function(a){(this.state.shadow=a)?(this.setShadowOffset(this.state.shadowDx,this.state.shadowDy),this.setShadowAlpha(this.state.shadowAlpha)):(this.ctx.shadowColor="transparent",this.ctx.shadowBlur=0,this.ctx.shadowOffsetX=0,this.ctx.shadowOffsetY=0)}; mxJsCanvas.prototype.setShadowColor=function(a){if(null==a||a==mxConstants.NONE)a=null,this.ctx.shadowColor="transparent";this.state.shadowColor=a;if(this.state.shadow&&null!=a){var b=null!=this.state.shadowAlpha?this.state.shadowAlpha:1;a=this.hexToRgb(a);this.ctx.shadowColor="rgba("+a.r+","+a.g+","+a.b+","+b+")"}};mxJsCanvas.prototype.setShadowAlpha=function(a){this.state.shadowAlpha=a;this.setShadowColor(this.state.shadowColor)}; mxJsCanvas.prototype.setShadowOffset=function(a,b){this.state.shadowDx=a;this.state.shadowDy=b;this.state.shadow&&(this.ctx.shadowOffsetX=a,this.ctx.shadowOffsetY=b)};mxJsCanvas.prototype.moveTo=function(a,b){this.ctx.moveTo(a,b);this.lastMoveX=a;this.lastMoveY=b};mxJsCanvas.prototype.lineTo=function(a,b){this.ctx.lineTo(a,b);this.lastMoveX=a;this.lastMoveY=b};mxJsCanvas.prototype.quadTo=function(a,b,c,d){this.ctx.quadraticCurveTo(a,b,c,d);this.lastMoveX=c;this.lastMoveY=d}; -mxJsCanvas.prototype.arcTo=function(a,b,c,d,e,g,l){a=mxUtils.arcToCurves(this.lastMoveX,this.lastMoveY,a,b,c,d,e,g,l);if(null!=a)for(b=0;b<a.length;b+=6)this.curveTo(a[b],a[b+1],a[b+2],a[b+3],a[b+4],a[b+5])};mxJsCanvas.prototype.curveTo=function(a,b,c,d,e,g){this.ctx.bezierCurveTo(a,b,c,d,e,g);this.lastMoveX=e;this.lastMoveY=g};mxJsCanvas.prototype.rect=function(a,b,c,d){this.begin();this.moveTo(a,b);this.lineTo(a+c,b);this.lineTo(a+c,b+d);this.lineTo(a,b+d);this.close()}; +mxJsCanvas.prototype.arcTo=function(a,b,c,d,e,g,k){a=mxUtils.arcToCurves(this.lastMoveX,this.lastMoveY,a,b,c,d,e,g,k);if(null!=a)for(b=0;b<a.length;b+=6)this.curveTo(a[b],a[b+1],a[b+2],a[b+3],a[b+4],a[b+5])};mxJsCanvas.prototype.curveTo=function(a,b,c,d,e,g){this.ctx.bezierCurveTo(a,b,c,d,e,g);this.lastMoveX=e;this.lastMoveY=g};mxJsCanvas.prototype.rect=function(a,b,c,d){this.begin();this.moveTo(a,b);this.lineTo(a+c,b);this.lineTo(a+c,b+d);this.lineTo(a,b+d);this.close()}; mxJsCanvas.prototype.roundrect=function(a,b,c,d,e,g){this.begin();this.moveTo(a+e,b);this.lineTo(a+c-e,b);this.quadTo(a+c,b,a+c,b+g);this.lineTo(a+c,b+d-g);this.quadTo(a+c,b+d,a+c-e,b+d);this.lineTo(a+e,b+d);this.quadTo(a,b+d,a,b+d-g);this.lineTo(a,b+g);this.quadTo(a,b,a+e,b)};mxJsCanvas.prototype.ellipse=function(a,b,c,d){this.ctx.save();this.ctx.translate(a+c/2,b+d/2);this.ctx.scale(c/2,d/2);this.ctx.beginPath();this.ctx.arc(0,0,1,0,2*Math.PI,!1);this.ctx.restore()}; mxJsCanvas.prototype.rewriteImageSource=function(a){if("http://"==a.substring(0,7)||"https://"==a.substring(0,8))a="/proxy?url="+encodeURIComponent(a);return a}; -mxJsCanvas.prototype.image=function(a,b,c,d,e,g,l,m){e=this.rewriteImageSource(e);e=this.images[e];if(null!=e&&0<e.height&&0<e.width){var n=this.ctx;n.save();if(g){g=e.width;var f=e.height,h=Math.min(c/g,d/f);a+=(c-g*h)/2;b+=(d-f*h)/2;c=g*h;d=f*h}l&&(n.translate(2*a+c,0),n.scale(-1,1));m&&(n.translate(0,2*b+d),n.scale(1,-1));n.drawImage(e,a,b,c,d);n.restore()}};mxJsCanvas.prototype.begin=function(){this.ctx.beginPath()};mxJsCanvas.prototype.close=function(){this.ctx.closePath()}; +mxJsCanvas.prototype.image=function(a,b,c,d,e,g,k,l){e=this.rewriteImageSource(e);e=this.images[e];if(null!=e&&0<e.height&&0<e.width){var m=this.ctx;m.save();if(g){g=e.width;var f=e.height,h=Math.min(c/g,d/f);a+=(c-g*h)/2;b+=(d-f*h)/2;c=g*h;d=f*h}k&&(m.translate(2*a+c,0),m.scale(-1,1));l&&(m.translate(0,2*b+d),m.scale(1,-1));m.drawImage(e,a,b,c,d);m.restore()}};mxJsCanvas.prototype.begin=function(){this.ctx.beginPath()};mxJsCanvas.prototype.close=function(){this.ctx.closePath()}; mxJsCanvas.prototype.fill=function(){this.ctx.fill()};mxJsCanvas.prototype.stroke=function(){this.ctx.stroke()};mxJsCanvas.prototype.fillAndStroke=function(){if(this.state.shadow){this.ctx.stroke();this.ctx.fill();var a=this.ctx.shadowColor,b=this.ctx.shadowOffsetX,c=this.ctx.shadowOffsetY;this.ctx.shadowColor="transparent";this.ctx.shadowOffsetX=0;this.ctx.shadowOffsetY=0;this.ctx.stroke();this.ctx.shadowColor=a;this.ctx.shadowOffsetX=b;this.ctx.shadowOffsetY=c}else this.ctx.fill(),this.ctx.stroke()}; -mxJsCanvas.prototype.text=function(a,b,c,d,e,g,l,m,n,f,h,k){if(null!=e&&0!=e.length){c=this.state.scale;0!=k&&(this.ctx.translate(Math.round(a),Math.round(b)),this.ctx.rotate(k*Math.PI/180),this.ctx.translate(Math.round(-a),Math.round(-b)));if("html"==n){e=this.subCanvas[this.canvasIndex++];n=e.height;k=e.width;switch(l){case mxConstants.ALIGN_MIDDLE:b-=n/2/c;break;case mxConstants.ALIGN_BOTTOM:b-=n/c}switch(g){case mxConstants.ALIGN_CENTER:a-=k/2/c;break;case mxConstants.ALIGN_RIGHT:a-=k/c}this.ctx.save(); +mxJsCanvas.prototype.text=function(a,b,c,d,e,g,k,l,m,f,h,n){if(null!=e&&0!=e.length){c=this.state.scale;0!=n&&(this.ctx.translate(Math.round(a),Math.round(b)),this.ctx.rotate(n*Math.PI/180),this.ctx.translate(Math.round(-a),Math.round(-b)));if("html"==m){e=this.subCanvas[this.canvasIndex++];m=e.height;n=e.width;switch(k){case mxConstants.ALIGN_MIDDLE:b-=m/2/c;break;case mxConstants.ALIGN_BOTTOM:b-=m/c}switch(g){case mxConstants.ALIGN_CENTER:a-=n/2/c;break;case mxConstants.ALIGN_RIGHT:a-=n/c}this.ctx.save(); if(null!=this.state.fontBackgroundColor||null!=this.state.fontBorderColor)null!=this.state.fontBackgroundColor&&(this.ctx.fillStyle=this.state.fontBackgroundColor,this.ctx.fillRect(Math.round(a)-.5,Math.round(b)-.5,Math.round(e.width/c),Math.round(e.height/c))),null!=this.state.fontBorderColor&&(this.ctx.strokeStyle=this.state.fontBorderColor,this.ctx.lineWidth=1,this.ctx.strokeRect(Math.round(a)-.5,Math.round(b)-.5,Math.round(e.width/c),Math.round(e.height/c)));this.ctx.scale(1/c,1/c);this.ctx.drawImage(e, -Math.round(a*c),Math.round(b*c))}else{this.ctx.save();this.updateFont();k=document.createElement("div");k.innerHTML=e;k.style.position="absolute";k.style.top="-9999px";k.style.left="-9999px";k.style.fontFamily=this.state.fontFamily;k.style.fontWeight="bold";k.style.fontSize=this.state.fontSize+"pt";document.body.appendChild(k);n=[k.offsetWidth,k.offsetHeight];document.body.removeChild(k);e=e.split("\n");k=n[1];this.ctx.textBaseline="top";n=b;switch(l){case mxConstants.ALIGN_MIDDLE:this.ctx.textBaseline= -"middle";b-=(e.length-1)*k/2;n=b-this.state.fontSize/2;break;case mxConstants.ALIGN_BOTTOM:this.ctx.textBaseline="alphabetic",b-=k*(e.length-1),n=b-this.state.fontSize}l=[];k=[];for(c=0;c<e.length;c++)k[c]=a,l[c]=this.ctx.measureText(e[c]).width,null!=g&&g!=mxConstants.ALIGN_LEFT&&(k[c]-=l[c],g==mxConstants.ALIGN_CENTER&&(k[c]+=l[c]/2));if(null!=this.state.fontBackgroundColor||null!=this.state.fontBorderColor){a=k[0];g=l[0];for(c=1;c<e.length;c++)a=Math.min(a,k[c]),g=Math.max(g,l[c]);this.ctx.save(); -a=Math.round(a)-.5;n=Math.round(n)-.5;null!=this.state.fontBackgroundColor&&(this.ctx.fillStyle=this.state.fontBackgroundColor,this.ctx.fillRect(a,n,g,this.state.fontSize*mxConstants.LINE_HEIGHT*e.length));null!=this.state.fontBorderColor&&(this.ctx.strokeStyle=this.state.fontBorderColor,this.ctx.lineWidth=1,this.ctx.strokeRect(a,n,g,this.state.fontSize*mxConstants.LINE_HEIGHT*e.length));this.ctx.restore()}for(c=0;c<e.length;c++)this.ctx.fillText(e[c],k[c],b),b+=this.state.fontSize*mxConstants.LINE_HEIGHT}this.ctx.restore()}}; +Math.round(a*c),Math.round(b*c))}else{this.ctx.save();this.updateFont();n=document.createElement("div");n.innerHTML=e;n.style.position="absolute";n.style.top="-9999px";n.style.left="-9999px";n.style.fontFamily=this.state.fontFamily;n.style.fontWeight="bold";n.style.fontSize=this.state.fontSize+"pt";document.body.appendChild(n);m=[n.offsetWidth,n.offsetHeight];document.body.removeChild(n);e=e.split("\n");n=m[1];this.ctx.textBaseline="top";m=b;switch(k){case mxConstants.ALIGN_MIDDLE:this.ctx.textBaseline= +"middle";b-=(e.length-1)*n/2;m=b-this.state.fontSize/2;break;case mxConstants.ALIGN_BOTTOM:this.ctx.textBaseline="alphabetic",b-=n*(e.length-1),m=b-this.state.fontSize}k=[];n=[];for(c=0;c<e.length;c++)n[c]=a,k[c]=this.ctx.measureText(e[c]).width,null!=g&&g!=mxConstants.ALIGN_LEFT&&(n[c]-=k[c],g==mxConstants.ALIGN_CENTER&&(n[c]+=k[c]/2));if(null!=this.state.fontBackgroundColor||null!=this.state.fontBorderColor){a=n[0];g=k[0];for(c=1;c<e.length;c++)a=Math.min(a,n[c]),g=Math.max(g,k[c]);this.ctx.save(); +a=Math.round(a)-.5;m=Math.round(m)-.5;null!=this.state.fontBackgroundColor&&(this.ctx.fillStyle=this.state.fontBackgroundColor,this.ctx.fillRect(a,m,g,this.state.fontSize*mxConstants.LINE_HEIGHT*e.length));null!=this.state.fontBorderColor&&(this.ctx.strokeStyle=this.state.fontBorderColor,this.ctx.lineWidth=1,this.ctx.strokeRect(a,m,g,this.state.fontSize*mxConstants.LINE_HEIGHT*e.length));this.ctx.restore()}for(c=0;c<e.length;c++)this.ctx.fillText(e[c],n[c],b),b+=this.state.fontSize*mxConstants.LINE_HEIGHT}this.ctx.restore()}}; mxJsCanvas.prototype.getCanvas=function(){return canvas};mxJsCanvas.prototype.finish=function(a){0==this.waitCounter?a():this.onComplete=a};DrawioClient=function(a,b){mxEventSource.call(this);this.ui=a;this.cookieName=b;this.token=this.getPersistentToken()};mxUtils.extend(DrawioClient,mxEventSource);DrawioClient.prototype.token=null;DrawioClient.prototype.user=null;DrawioClient.prototype.setUser=function(a){this.user=a;this.fireEvent(new mxEventObject("userChanged"))};DrawioClient.prototype.getUser=function(){return this.user}; DrawioClient.prototype.clearPersistentToken=function(){if(isLocalStorage)localStorage.removeItem("."+this.cookieName);else if("undefined"!=typeof Storage){var a=new Date;a.setYear(a.getFullYear()-1);document.cookie=this.cookieName+"=; expires="+a.toUTCString()}}; DrawioClient.prototype.getPersistentToken=function(){var a=null;isLocalStorage&&(a=localStorage.getItem("."+this.cookieName));if(null==a&&"undefined"!=typeof Storage){var b=document.cookie,c=this.cookieName+"=",d=b.indexOf(c);0<=d&&(d+=c.length,a=b.indexOf(";",d),0>a?a=b.length:postCookie=b.substring(a),a=b.substring(d,a),a=0<a.length?a:null,null!=a&&isLocalStorage&&(b=new Date,b.setYear(b.getFullYear()-1),document.cookie=c+"; expires="+b.toUTCString(),localStorage.setItem("."+this.cookieName,a)))}return a}; @@ -7930,15 +7934,16 @@ this.ui.drive.addListener("disconnected",this.disconnectListener);this.autosaveC a});this.ui.editor.addListener("autosaveChanged",this.autosaveChangeListener)}DriveRealtime.prototype.logLevel=2;DriveRealtime.prototype.updateStatusInterval=2E4;DriveRealtime.prototype.diagramsKey="diagrams";DriveRealtime.prototype.diagrams=null;DriveRealtime.prototype.rootKey="root";DriveRealtime.prototype.diagramMap=null;DriveRealtime.prototype.chatHistory=null;DriveRealtime.prototype.saving=!1;DriveRealtime.prototype.defaultRealtimeAutosaveDelay=5E3; DriveRealtime.prototype.defaultRealtimeMaxAutosaveDelay=6E4;DriveRealtime.prototype.realtimeHeartbeat=3E4;DriveRealtime.prototype.ignoreChange=!1;DriveRealtime.prototype.ignorePageFormatChanged=!1;DriveRealtime.prototype.ignoreScaleChanged=!1;DriveRealtime.prototype.ignoreBackgroundColorChanged=!1;DriveRealtime.prototype.ignoreShadowVisibleChanged=!1;DriveRealtime.prototype.ignoreBackgroundImageChanged=!1;DriveRealtime.prototype.ignoreMathEnabledChanged=!1; DriveRealtime.prototype.getDiagramMap=function(){return null!=this.ui.currentPage?this.ui.currentPage.mapping.diagramMap:this.diagramMap};DriveRealtime.prototype.getCurrentPage=function(){return null!=this.page?this.page:this.ui.currentPage}; -DriveRealtime.prototype.start=function(){"1"==urlParams.reset&&(this.root.clear(),this.log("reset realtime"));var a=this.createPrefix();this.model.prefix=a+"-";this.ui.editor.resetGraph();this.diagrams=this.root.get(this.diagramsKey);a=!1;null==this.diagrams&&(this.diagrams=this.rtModel.createList(),this.root.set(this.diagramsKey,this.diagrams),a=!0,this.log("realtime model initialized"));var b=!1;if(""!=this.file.getData()){this.ui.fileNode=null;this.ui.pages=null;this.ui.setFileData(this.file.getData()); -this.log("xml converted");if(this.root.has("cells")&&a)try{(new Image).src="https://log.draw.io/log?severity=CONFIG&msg=converted-oldrt&v="+encodeURIComponent(EditorUi.VERSION)+"&ts="+(new Date).getTime()}catch(e){}if(null!=this.ui.pages)for(a=0;a<this.ui.pages.length;a++){var c=this.ui.pages[a],d=this.rtModel.createMap();this.diagrams.push(d);this.ui.updatePageRoot(c);c.mapping=new RealtimeMapping(this,d,c);this.file.isEditable()&&(d.set("id",c.getId()),""!=c.getName()?d.set("name",c.getName()): -d.has("name")||d.set("name",mxResources.get("pageWithNumber",[a+1])));c.setName(d.get("name")||mxResources.get("pageWithNumber",[a+1]));c.mapping.init()}else"0"==urlParams.pages?(this.diagramMap=this.rtModel.createMap(),this.diagrams.push(this.diagramMap),this.page=new DiagramPage(document.createElement("diagram")),this.page.mapping=new RealtimeMapping(this,this.diagramMap,this.page),this.diagramMap.set("name",mxResources.get("pageWithNumber",[1])),this.diagramMap.set("id",this.page.getId()),this.page.setName(this.diagramMap.get("name")), -this.page.mapping.init()):(this.ui.fileNode=mxUtils.createXmlDocument().createElement("mxfile"),this.ui.pages=[],d=this.rtModel.createMap(),this.diagrams.push(d),c=new DiagramPage(this.ui.fileNode.ownerDocument.createElement("diagram")),c.mapping=new RealtimeMapping(this,d,c),this.ui.currentPage=c,this.file.isEditable()&&!c.mapping.diagramMap.has("name")&&(c.mapping.diagramMap.set("name",mxResources.get("pageWithNumber",[1])),c.mapping.diagramMap.set("id",c.getId())),c.setName(c.mapping.diagramMap.get("name")|| -mxResources.get("pageWithNumber",[1])),this.ui.pages.push(c),c.mapping.init());b=!0}else if(2>this.diagrams.length&&"0"==urlParams.pages)this.ui.fileNode=null,this.ui.pages=null,0==this.diagrams.length?(this.diagramMap=this.rtModel.createMap(),this.diagrams.push(this.diagramMap)):this.diagramMap=this.diagrams.get(0),c=document.createElement("diagram"),this.diagramMap.has("id")&&c.setAttribute("id",this.diagramMap.get("id")),this.page=new DiagramPage(c),this.page.mapping=new RealtimeMapping(this,this.diagramMap, -this.page),this.diagramMap.has("name")||this.diagramMap.set("name",mxResources.get("pageWithNumber",[1])),this.page.setName(this.page.mapping.diagramMap.get("name")),this.diagramMap.set("id",this.page.getId()),this.page.mapping.init(),this.ui.editor.fireEvent(new mxEventObject("resetGraphView"));else{this.ui.fileNode=mxUtils.createXmlDocument().createElement("mxfile");this.ui.pages=[];0==this.diagrams.length&&this.diagrams.push(this.rtModel.createMap());for(a=0;a<this.diagrams.length;a++)c=this.ui.fileNode.ownerDocument.createElement("diagram"), -d=this.diagrams.get(a),d.has("id")&&c.setAttribute("id",d.get("id")),c=new DiagramPage(c),c.mapping=new RealtimeMapping(this,d,c),this.file.isEditable()&&!d.has("name")&&d.set("name",mxResources.get("pageWithNumber",[a+1])),c.setName(d.get("name")||mxResources.get("pageWithNumber",[a+1])),this.file.isEditable()&&!d.has("id")&&d.set("id",c.getId()),this.ui.pages.push(c);this.ui.currentPage=this.ui.pages[Math.max(0,Math.min(this.ui.pages.length-1,urlParams.page||0))];for(a=0;a<this.ui.pages.length;a++)this.ui.pages[a].mapping.init()}this.installReadOnlyListener(); -this.installUiChangeListeners();this.installGraphModelListener();this.installPageSelectListener();this.chatHistory=this.root.get("chatHistory");null==this.chatHistory&&this.initializeChat();this.installSelectionModelListener();this.installCollaboratorListener();this.updateCollaborators();this.doc.addEventListener(gapi.drive.realtime.EventType.DOCUMENT_SAVE_STATE_CHANGED,mxUtils.bind(this,function(a){this.documentSaveStateChanged(a,b)}));a=mxUtils.bind(this,function(){this.resetUpdateStatusThread(); -this.ui.resetScrollbars();this.updateStatus();b=!1});b?(this.ui.editor.setStatus(mxUtils.htmlEntities(mxResources.get("saving"))+"..."),this.file.save(!1,a,a)):a();null==this.previousUndoListener&&(this.previousUndoListener=this.ui.editor.undoListener,this.ui.editor.undoListener=mxUtils.bind(this,function(a,b){this.ignoreChange||this.previousUndoListener.apply(this,arguments)}))}; +DriveRealtime.prototype.start=function(){"1"==urlParams.reset&&(this.root.clear(),this.log("reset realtime"));this.root.addEventListener(gapi.drive.realtime.EventType.VALUE_CHANGED,mxUtils.bind(this,function(a){"realtimeConverted"==a.property&&this.ui.showRefreshDialog()}));this.root.has("realtimeConverted")&&this.ui.showRefreshDialog();var a=this.createPrefix();this.model.prefix=a+"-";this.ui.editor.resetGraph();this.diagrams=this.root.get(this.diagramsKey);a=!1;null==this.diagrams&&(this.diagrams= +this.rtModel.createList(),this.root.set(this.diagramsKey,this.diagrams),a=!0,this.log("realtime model initialized"));var b=!1;if(""!=this.file.getData()){this.ui.fileNode=null;this.ui.pages=null;this.ui.setFileData(this.file.getData());this.log("xml converted");if(this.root.has("cells")&&a)try{(new Image).src="https://log.draw.io/log?severity=CONFIG&msg=converted-oldrt&v="+encodeURIComponent(EditorUi.VERSION)+"&ts="+(new Date).getTime()}catch(e){}if(null!=this.ui.pages)for(a=0;a<this.ui.pages.length;a++){var c= +this.ui.pages[a],d=this.rtModel.createMap();this.diagrams.push(d);this.ui.updatePageRoot(c);c.mapping=new RealtimeMapping(this,d,c);this.file.isEditable()&&(d.set("id",c.getId()),""!=c.getName()?d.set("name",c.getName()):d.has("name")||d.set("name",mxResources.get("pageWithNumber",[a+1])));c.setName(d.get("name")||mxResources.get("pageWithNumber",[a+1]));c.mapping.init()}else"0"==urlParams.pages?(this.diagramMap=this.rtModel.createMap(),this.diagrams.push(this.diagramMap),this.page=new DiagramPage(document.createElement("diagram")), +this.page.mapping=new RealtimeMapping(this,this.diagramMap,this.page),this.file.isEditable()&&(this.diagramMap.set("name",mxResources.get("pageWithNumber",[1])),this.diagramMap.set("id",this.page.getId())),this.page.setName(this.diagramMap.get("name")||mxResources.get("pageWithNumber",[1])),this.page.mapping.init()):(this.ui.fileNode=mxUtils.createXmlDocument().createElement("mxfile"),this.ui.pages=[],d=this.rtModel.createMap(),this.diagrams.push(d),c=new DiagramPage(this.ui.fileNode.ownerDocument.createElement("diagram")), +c.mapping=new RealtimeMapping(this,d,c),this.ui.currentPage=c,this.file.isEditable()&&(c.mapping.diagramMap.has("name")||c.mapping.diagramMap.set("name",mxResources.get("pageWithNumber",[1])),c.mapping.diagramMap.has("id")||c.mapping.diagramMap.set("id",c.getId())),c.setName(c.mapping.diagramMap.get("name")||mxResources.get("pageWithNumber",[1])),this.ui.pages.push(c),c.mapping.init());b=!0}else if(2>this.diagrams.length&&"0"==urlParams.pages)this.ui.fileNode=null,this.ui.pages=null,0==this.diagrams.length? +(this.diagramMap=this.rtModel.createMap(),this.diagrams.push(this.diagramMap)):this.diagramMap=this.diagrams.get(0),c=document.createElement("diagram"),this.diagramMap.has("id")&&c.setAttribute("id",this.diagramMap.get("id")),this.page=new DiagramPage(c),this.page.mapping=new RealtimeMapping(this,this.diagramMap,this.page),this.diagramMap.has("name")||this.diagramMap.set("name",mxResources.get("pageWithNumber",[1])),this.page.setName(this.page.mapping.diagramMap.get("name")),this.diagramMap.set("id", +this.page.getId()),this.page.mapping.init(),this.ui.editor.fireEvent(new mxEventObject("resetGraphView"));else{this.ui.fileNode=mxUtils.createXmlDocument().createElement("mxfile");this.ui.pages=[];0==this.diagrams.length&&this.diagrams.push(this.rtModel.createMap());for(a=0;a<this.diagrams.length;a++)c=this.ui.fileNode.ownerDocument.createElement("diagram"),d=this.diagrams.get(a),d.has("id")&&c.setAttribute("id",d.get("id")),c=new DiagramPage(c),c.mapping=new RealtimeMapping(this,d,c),this.file.isEditable()&& +!d.has("name")&&d.set("name",mxResources.get("pageWithNumber",[a+1])),c.setName(d.get("name")||mxResources.get("pageWithNumber",[a+1])),this.file.isEditable()&&!d.has("id")&&d.set("id",c.getId()),this.ui.pages.push(c);this.ui.currentPage=this.ui.pages[Math.max(0,Math.min(this.ui.pages.length-1,urlParams.page||0))];for(a=0;a<this.ui.pages.length;a++)this.ui.pages[a].mapping.init()}this.installReadOnlyListener();this.installUiChangeListeners();this.installGraphModelListener();this.installPageSelectListener(); +this.chatHistory=this.root.get("chatHistory");null==this.chatHistory&&this.initializeChat();this.installSelectionModelListener();this.installCollaboratorListener();this.updateCollaborators();this.doc.addEventListener(gapi.drive.realtime.EventType.DOCUMENT_SAVE_STATE_CHANGED,mxUtils.bind(this,function(a){this.documentSaveStateChanged(a,b)}));a=mxUtils.bind(this,function(){this.resetUpdateStatusThread();this.ui.resetScrollbars();this.updateStatus();b=!1});b?(this.ui.editor.setStatus(mxUtils.htmlEntities(mxResources.get("saving"))+ +"..."),this.file.save(!1,a,a)):a();null==this.previousUndoListener&&(this.previousUndoListener=this.ui.editor.undoListener,this.ui.editor.undoListener=mxUtils.bind(this,function(a,b){this.ignoreChange||this.previousUndoListener.apply(this,arguments)}))}; DriveRealtime.prototype.documentSaveStateChanged=function(a,b){!this.saving||a.isPending||a.isSaving||b||(this.ui.isLegacyDriveDomain()&&"1"!=urlParams.ignoremime&&this.ui.drive.verifyMimeType(this.file.getId()),this.file.isAutosave()?this.triggerAutosave():this.file.addAllSavedStatus(),this.saving=!1,this.connected=!0,this.resetUpdateStatusThread(),this.realtimeHeartbeat=DriveRealtime.prototype.realtimeHeartbeat,null!=this.isAliveThread&&(window.clearTimeout(this.isAliveThread),this.isAliveThread= null));if(this.file.isEditable()){var c=10485760-this.rtModel.bytesUsed;0<c&&5E5>c&&!this.sizeLimitWarningShown&&(this.sizeLimitWarningShown=!0,this.ui.showError(mxResources.get("warning"),mxResources.get("fileNearlyFullSeeFaq"),mxResources.get("close"),mxUtils.bind(this,function(){}),null,mxResources.get("show"),mxUtils.bind(this,function(){window.open("https://desk.draw.io/support/solutions/articles/16000041695")})))}}; DriveRealtime.prototype.triggerAutosave=function(){this.ui.editor.setStatus(mxUtils.htmlEntities(mxResources.get("updatingPreview")));this.file.autosave(this.realtimeAutosaveDelay,this.realtimeMaxAutosaveDelay,mxUtils.bind(this,function(a){this.realtimeAutosaveDelay=this.defaultRealtimeAutosaveDelay+Math.min(1E4,this.file.saveDelay);this.ui.getCurrentFile()!=this.file||this.saving||this.file.addAllSavedStatus()}),mxUtils.bind(this,function(a){this.ui.editor.setStatus(mxUtils.htmlEntities(mxResources.get("errorUpdatingPreview"))); @@ -7952,11 +7957,11 @@ mxUtils.bind(this,function(a,b){if(!this.ignoreBackgroundImageChanged)try{this.s DriveRealtime.prototype.timeSince=function(a){a=Math.floor((new Date-a)/1E3);var b=Math.floor(a/31536E3);if(1<b)return b+" "+mxResources.get("years");b=Math.floor(a/2592E3);if(1<b)return b+" "+mxResources.get("months");b=Math.floor(a/86400);if(1<b)return b+" "+mxResources.get("days");b=Math.floor(a/3600);if(1<b)return b+" "+mxResources.get("hours");b=Math.floor(a/60);return 1<b?b+" "+mxResources.get("minutes"):1==b?b+" "+mxResources.get("minute"):null}; DriveRealtime.prototype.updateStatus=function(){if(!this.saving&&this.connected){var a=this.root.get("modifiedDate");""!=a&&(a=this.ui.timeSince(new Date(a)),null==a&&(a=mxResources.get("lessThanAMinute")),this.ui.editor.setStatus('<span title="'+mxUtils.htmlEntities(mxResources.get("revisionHistory"))+'" style="text-decoration:underline;cursor:pointer;">'+mxUtils.htmlEntities(mxResources.get("lastChange",[a]))+"</span>"+(this.file.isEditable()?"":'<span class="geStatusAlert" style="margin-left:8px;">'+ mxUtils.htmlEntities(mxResources.get("readOnly"))+"</span>")),null!=this.ui.statusContainer&&(a=this.ui.statusContainer.getElementsByTagName("span"),0<a.length&&mxEvent.addListener(a[0],"click",mxUtils.bind(this,function(){this.ui.actions.get("revisionHistory").funct()}))))}};DriveRealtime.prototype.getPageIndexForMap=function(a){for(var b=0;b<this.ui.pages.length;b++)if(this.ui.pages[b].mapping.diagramMap==a)return b;return null}; -DriveRealtime.prototype.installPageSelectListener=function(){this.pageChangeListener=mxUtils.bind(this,function(a,b){var c=b.getProperty("change").relatedPage;null==c.mapping&&(c.mapping=new RealtimeMapping(this,this.rtModel.createMap(),c),c.mapping.init(),this.file.isEditable()&&c.mapping.diagramMap.set("name",c.getName()))});this.ui.editor.addListener("beforePageChange",this.pageChangeListener);this.viewStateListener=mxUtils.bind(this,function(a,b){var c=this.getCurrentPage();null==c.viewState&& -c.mapping.activate(!0)});this.ui.editor.addListener("setViewState",this.viewStateListener);this.diagrams.addEventListener(gapi.drive.realtime.EventType.VALUES_ADDED,mxUtils.bind(this,function(a){if(!this.isLocalEvent(a))if(null==a.movedFromList){this.ignoreChange=!0;null==this.ui.pages&&(this.ui.fileNode=mxUtils.createXmlDocument().createElement("mxfile"),this.ui.pages=[],null!=this.page&&(this.ui.currentPage=this.page,this.ui.pages.push(this.ui.currentPage),this.page=this.diagramMap=null));for(var b= -0;b<a.values.length;b++){var c=new DiagramPage(document.createElement("diagram"));c.mapping=new RealtimeMapping(this,a.values[b],c);c.setName(c.mapping.diagramMap.get("name")||mxResources.get("pageWithNumber",[this.ui.pages.length+1]));this.ui.pages.splice(a.index+b,0,c);c.mapping.init()}null!=this.ui.pages&&1<this.ui.pages.length&&null!=this.ui.tabContainer&&"0px"==this.ui.tabContainer.style.height&&this.ui.editor.graph.view.validateBackground();this.ui.updateTabContainer();this.ignoreChange=!1}else if(a.movedFromList== -this.diagrams&&null!=a.movedFromIndex){this.ignoreChange=!0;for(b=0;b<a.values.length;b++)c=this.getPageIndexForMap(a.values[b]),null!=c&&this.ui.movePage(c+b,a.index+b);this.ignoreChange=!1;this.ui.updateTabContainer()}}));this.diagrams.addEventListener(gapi.drive.realtime.EventType.VALUES_REMOVED,mxUtils.bind(this,function(a){if(!this.isLocalEvent(a)&&null==a.movedToList){this.ignoreChange=!0;for(var b=0;b<a.values.length;b++){var c=this.getPageIndexForMap(a.values[b]);null!=c&&(c=this.ui.pages[c], -null!=c&&(this.ui.removePage(c),c.mapping.destroy()))}this.ignoreChange=!1}}))}; +DriveRealtime.prototype.installPageSelectListener=function(){this.pageChangeListener=mxUtils.bind(this,function(a,b){var c=b.getProperty("change").relatedPage;null==c.mapping&&(c.mapping=new RealtimeMapping(this,this.rtModel.createMap(),c),c.mapping.init(),this.file.isEditable()&&(c.mapping.diagramMap.set("name",c.getName()),c.mapping.diagramMap.set("id",c.getId())))});this.ui.editor.addListener("beforePageChange",this.pageChangeListener);this.viewStateListener=mxUtils.bind(this,function(a,b){var c= +this.getCurrentPage();null==c.viewState&&c.mapping.activate(!0)});this.ui.editor.addListener("setViewState",this.viewStateListener);this.diagrams.addEventListener(gapi.drive.realtime.EventType.VALUES_ADDED,mxUtils.bind(this,function(a){if(!this.isLocalEvent(a))if(null==a.movedFromList){this.ignoreChange=!0;null==this.ui.pages&&(this.ui.fileNode=mxUtils.createXmlDocument().createElement("mxfile"),this.ui.pages=[],null!=this.page&&(this.ui.currentPage=this.page,this.ui.pages.push(this.ui.currentPage), +this.page=this.diagramMap=null));for(var b=0;b<a.values.length;b++){var c=new DiagramPage(document.createElement("diagram"));c.mapping=new RealtimeMapping(this,a.values[b],c);c.setName(c.mapping.diagramMap.get("name")||mxResources.get("pageWithNumber",[this.ui.pages.length+1]));c.mapping.diagramMap.has("id")&&c.node.setAttribute("id",c.mapping.diagramMap.get("id"));this.ui.pages.splice(a.index+b,0,c);c.mapping.init()}null!=this.ui.pages&&1<this.ui.pages.length&&null!=this.ui.tabContainer&&"0px"== +this.ui.tabContainer.style.height&&this.ui.editor.graph.view.validateBackground();this.ui.updateTabContainer();this.ignoreChange=!1}else if(a.movedFromList==this.diagrams&&null!=a.movedFromIndex){this.ignoreChange=!0;for(b=0;b<a.values.length;b++)c=this.getPageIndexForMap(a.values[b]),null!=c&&this.ui.movePage(c+b,a.index+b);this.ignoreChange=!1;this.ui.updateTabContainer()}}));this.diagrams.addEventListener(gapi.drive.realtime.EventType.VALUES_REMOVED,mxUtils.bind(this,function(a){if(!this.isLocalEvent(a)&& +null==a.movedToList){this.ignoreChange=!0;for(var b=0;b<a.values.length;b++){var c=this.getPageIndexForMap(a.values[b]);null!=c&&(c=this.ui.pages[c],null!=c&&(this.ui.removePage(c),c.mapping.destroy()))}this.ignoreChange=!1}}))}; DriveRealtime.prototype.processChange=function(a){if(a instanceof RenamePage)a.page.mapping.diagramMap.set("name",a.page.getName());else if(a instanceof ChangePage)null==a.previousIndex?this.diagrams.removeValue(a.relatedPage.mapping.diagramMap):this.diagrams.insert(a.previousIndex,a.relatedPage.mapping.diagramMap);else if(a instanceof MovePage)this.diagrams.move(a.newIndex,a.oldIndex+(a.newIndex<a.oldIndex?1:0));else if(a instanceof mxRootChange)a.root==this.model.root&&this.getCurrentPage().mapping.initRealtime(); else if(a instanceof mxChildChange){if(a.parent!=a.previous||a.index!=a.previousIndex){var b=a.child.rtCell;null==b&&(b=this.getCurrentPage().mapping.createRealtimeCell(a.child),this.getCurrentPage().mapping.saveRealtimeCell(b.cell));var c=null!=a.parent?a.parent.rtCell:null;if(null!=a.previous){var d=a.previous.rtCell;null!=d&&d.children.removeValue(b)}null!=c&&c.children.insert(Math.min(c.children.length,a.index),b);b.parent=c}}else null!=a.cell&&null!=a.cell.id&&(b=a.cell.rtCell,null!=b&&(a instanceof mxTerminalChange?b[a.source?"source":"target"]=null!=a.terminal?a.terminal.rtCell:null:a instanceof mxGeometryChange?b.geometry=null!=a.geometry?mxUtils.getXml(this.codec.encode(a.geometry)):null:a instanceof mxStyleChange?b.style=a.style:a instanceof mxValueChange?mxUtils.isNode(a.value)?(b.value=null,b.xmlValue=mxUtils.getXml(a.value)):(b.xmlValue=null,b.value=a.value):a instanceof mxCollapseChange?b.collapsed=a.collapsed?"1":"0":a instanceof mxVisibleChange&&(b.visible=a.visible?"1":"0")))}; @@ -8023,7 +8028,7 @@ RealtimeMapping.prototype.installRealtimeCellListeners=function(a){a.addEventLis RealtimeMapping.prototype.handleValueChanged=function(a,b){var c=a.cell;if(!this.driveRealtime.isLocalEvent(b)&&null!=c){var d=b.newValue,e=b.property,g=this.beginUpdate();"type"==e?(c.vertex="vertex"==d,c.edge="edge"==d):"connectable"==e?c.connectable="1"==d:"source"==e||"target"==e?null==d?null!=b.oldValue&&g.setTerminal(c,null,"source"==e):null!=d.cell&&this.containsRealtimeCell(d)&&null!=g.getCell(d.cellId)?g.setTerminal(c,d.cell,"source"==e):(null!=a.parent&&(a.parent.children.removeValue(a),a.parent= null),g.setTerminal(c,null,"source"==e),g.remove(a.cell),a[e]=null):"value"==e?g.setValue(c,d):"xmlValue"==e?g.setValue(c,mxUtils.parseXml(d).documentElement):"style"==e?g.setStyle(c,d):"geometry"==e?(d=null!=d?this.driveRealtime.codec.decode(mxUtils.parseXml(d).documentElement):null,g.setGeometry(c,d)):"collapsed"==e?g.setCollapsed(c,"1"==d):"visible"==e?g.setVisible(c,"1"==d):"parent"==e&&(null!=b.oldValue?b.oldValue.children.removeValue(a):(this.createCell(a),this.restoreCell(a)),null==d?g.remove(c): (c=d.children.indexOf(a),0<=c&&g.add(d.cell,a.cell,c)))}}; -RealtimeMapping.prototype.handleValuesAdded=function(a,b){if(!this.driveRealtime.isLocalEvent(b))for(var c=this.beginUpdate(),d=0;d<b.values.length;d++){var e=b.values[d];if(null!=e.parent)if(e.parent!=a)a.children.removeValue(e);else{if(null==e.cell||null==e.cell.parent)this.createCell(e),this.restoreCell(e);for(var g=a.children.indexOf(e),l=a.children.lastIndexOf(e);g!=l;)a.children.remove(l),l=a.children.lastIndexOf(e);e.parent==a&&c.add(a.cell,e.cell,Math.min(g,b.index+d))}}}; +RealtimeMapping.prototype.handleValuesAdded=function(a,b){if(!this.driveRealtime.isLocalEvent(b))for(var c=this.beginUpdate(),d=0;d<b.values.length;d++){var e=b.values[d];if(null!=e.parent)if(e.parent!=a)a.children.removeValue(e);else{if(null==e.cell||null==e.cell.parent)this.createCell(e),this.restoreCell(e);for(var g=a.children.indexOf(e),k=a.children.lastIndexOf(e);g!=k;)a.children.remove(k),k=a.children.lastIndexOf(e);e.parent==a&&c.add(a.cell,e.cell,Math.min(g,b.index+d))}}}; RealtimeMapping.prototype.handleValuesRemoved=function(a,b){if(!this.driveRealtime.isLocalEvent(b))for(var c=this.beginUpdate(),d=0;d<b.values.length;d++){var e=b.values[d];if(null!=e.cell)if(null!=e.parent&&e.parent!=a&&e.cell.parent!=e.parent.cell){var g=e.parent.children.indexOf(e);c.add(e.parent.cell,e.cell,g)}else g=a.children.indexOf(e),0<=g&&c.add(a.cell,e.cell,g)}}; RealtimeMapping.prototype.realtimePageFormatChanged=function(a,b){if(null!=a){var c=a.split(",");1<c.length&&(this.isActive()?b?this.graph.pageFormat=new mxRectangle(0,0,parseInt(c[0]),parseInt(c[1])):(this.driveRealtime.ignorePageFormatChanged=!0,this.ui.setPageFormat(new mxRectangle(0,0,parseInt(c[0]),parseInt(c[1]))),this.driveRealtime.ignorePageFormatChanged=!1):null!=this.page.viewState&&(this.page.viewState.pageFormat=new mxRectangle(0,0,parseInt(c[0]),parseInt(c[1]))))}}; RealtimeMapping.prototype.realtimePageScaleChanged=function(a,b){null!=a&&(this.isActive()?b?this.graph.pageScale=parseFloat(a):(this.driveRealtime.ignorePageScaleChanged=!0,this.ui.setPageScale(parseFloat(a)),this.driveRealtime.ignorePageScaleChanged=!1):null!=this.page.viewState&&(this.page.viewState.pageScale=parseFloat(a)))}; @@ -8033,17 +8038,30 @@ RealtimeMapping.prototype.realtimePageVisibleChanged=function(a,b){this.isActive RealtimeMapping.prototype.realtimeShadowVisibleChanged=function(a,b){this.isActive()?(this.driveRealtime.ignoreShadowVisibleChanged=!0,this.ui.editor.graph.setShadowVisible("1"==a),this.driveRealtime.ignoreShadowVisibleChanged=!1):null!=this.page.viewState&&(this.page.viewState.shadowVisible="1"==a)}; RealtimeMapping.prototype.realtimeBackgroundImageChanged=function(a,b){var c=null!=a&&0<a.length?JSON.parse(a):null;this.isActive()?b?this.graph.setBackgroundImage(null!=c?new mxImage(c.src,c.width,c.height):null):(this.driveRealtime.ignoreBackgroundImageChanged=!0,this.ui.setBackgroundImage(null!=c?new mxImage(c.src,c.width,c.height):null),this.driveRealtime.ignoreBackgroundImageChanged=!1):null!=this.page.viewState&&(this.page.viewState.backgroundImage=null!=c?new mxImage(c.src,c.width,c.height): null)};RealtimeMapping.prototype.realtimeMathEnabledChanged=function(a,b){this.isActive()?b?this.graph.mathEnabled="1"==urlParams.math||"1"==a:(this.driveRealtime.ignoreMathEnabledChanged=!0,this.ui.setMathEnabled("1"==urlParams.math||"1"==a),this.driveRealtime.ignoreMathEnabledChanged=!1):null!=this.page.viewState&&(this.page.viewState.mathEnabled="1"==urlParams.math||"1"==a)}; -RealtimeMapping.prototype.removeAllRealtimeCellListeners=function(a){if(null!=a){a.removeAllEventListeners();a.children.removeAllEventListeners();for(var b=0;b<a.children.length;b++)this.removeAllRealtimeCellListeners(a.children.get(b))}};RealtimeMapping.prototype.destroy=function(){this.diagramMap.removeAllEventListeners();this.selectionMap.removeAllEventListeners();this.removeAllRealtimeCellListeners(this.diagramMap.get(this.driveRealtime.rootKey))};DriveFile=function(a,b,c,d){DrawioFile.call(this,a,b);this.desc=c;null!=d&&null!=d.getModel()&&null!=d.getModel().getRoot()&&(this.realtime=new DriveRealtime(this,d))};mxUtils.extend(DriveFile,DrawioFile);DriveFile.prototype.isRestricted=function(){return null!=this.desc.userPermission&&null!=this.desc.labels&&"reader"==this.desc.userPermission.role&&this.desc.labels.restricted};DriveFile.prototype.saveDelay=0;DriveFile.prototype.getMode=function(){return App.MODE_GOOGLE}; -DriveFile.prototype.getPublicUrl=function(a){gapi.client.drive.permissions.list({fileId:this.desc.id}).execute(mxUtils.bind(this,function(b){if(null!=b&&null!=b.items)for(var c=0;c<b.items.length;c++)if("anyoneWithLink"===b.items[c].id||"anyone"===b.items[c].id){a(this.desc.webContentLink);return}a(null)}))};DriveFile.prototype.isAutosaveOptional=function(){return!0};DriveFile.prototype.isAutosave=function(){return this.ui.editor.autosave||this.isAutosaveRevision()}; -DriveFile.prototype.isAutosaveNow=function(){if(null!=this.realtime&&null!=this.realtime.root){var a=parseInt(this.realtime.root.get("backupDate")),b=parseInt(this.realtime.root.get("modifiedDate"));return isNaN(a)||isNaN(b)||a<b}return!0};DriveFile.prototype.autosaveCompleted=function(){null!=this.realtime&&null!=this.realtime.root&&this.realtime.root.set("backupDate",(new Date).getTime())}; -DriveFile.prototype.isRenamable=function(){return this.isEditable()&&DrawioFile.prototype.isEditable.apply(this,arguments)};DriveFile.prototype.isMovable=function(){return this.isEditable()};DriveFile.prototype.save=function(a,b,c,d){DrawioFile.prototype.save.apply(this,arguments);this.saveFile(null,a,b,c,d)}; -DriveFile.prototype.saveFile=function(a,b,c,d,e){if(!this.isEditable())null!=c&&c();else if(!this.savingFile){this.savingFile=!0;var g=this.isModified,l=this.isModified();this.setModified(!1);this.ui.drive.saveFile(this,b,mxUtils.bind(this,function(a){this.savingFile=!1;this.isModified=g;0!=a?(b&&(this.lastAutosaveRevision=(new Date).getTime()),this.desc=a,this.contentChanged(),null!=c&&c(a)):(this.setModified(l||this.isModified()),null!=d&&d())}),mxUtils.bind(this,function(a){this.savingFile=!1; -this.isModified=g;this.setModified(l||this.isModified());null!=d&&d(a)}),e,e)}};DriveFile.prototype.saveAs=function(a,b,c){this.ui.drive.copyFile(this.getId(),a,b,c)};DriveFile.prototype.rename=function(a,b,c){this.ui.drive.renameFile(this.getId(),a,mxUtils.bind(this,function(d){this.hasSameExtension(a,this.getTitle())?(this.desc=d,this.descriptorChanged(),null!=b&&b(d)):(this.desc=d,this.save(!0,b,c))}),c)}; -DriveFile.prototype.move=function(a,b,c){this.ui.drive.moveFile(this.getId(),a,mxUtils.bind(this,function(a){this.desc=a;this.descriptorChanged();null!=b&&b(a)}),c)};DriveFile.prototype.getTitle=function(){return this.desc.title};DriveFile.prototype.getHash=function(){return"G"+this.getId()};DriveFile.prototype.getId=function(){return this.desc.id}; -DriveFile.prototype.isEditable=function(){var a=DrawioFile.prototype.isEditable.apply(this,arguments);return null!=this.realtime?a&&!this.realtime.rtModel.isReadOnly:a&&this.desc.editable};DriveFile.prototype.open=function(){null!=this.realtime?this.realtime.start():DrawioFile.prototype.open.apply(this,arguments)};DriveFile.prototype.close=function(a){a=null!=a?a:!1;DrawioFile.prototype.close.apply(this,arguments);null!=this.realtime&&(this.realtime.destroy(a),this.realtime=null)};DriveLibrary=function(a,b,c){DriveFile.call(this,a,b);this.desc=c};mxUtils.extend(DriveLibrary,DriveFile);DriveLibrary.prototype.isAutosave=function(){return!0};DriveLibrary.prototype.save=function(a,b,c){this.ui.drive.saveFile(this,a,mxUtils.bind(this,function(a){this.desc=a;null!=b&&b(a)}),c)};DriveLibrary.prototype.open=function(){};DriveClient=function(a){mxEventSource.call(this);this.ui=a;this.ui.editor.isChromelessView()&&"1"!=urlParams.rt?(this.appId="850530949725",this.clientId="850530949725.apps.googleusercontent.com",this.scopes=["https://www.googleapis.com/auth/drive.readonly","openid"],this.mimeType="all_types_supported"):this.ui.isDriveDomain()?(this.appId="671128082532",this.clientId="671128082532.apps.googleusercontent.com",this.mimeType="application/vnd.jgraph.mxfile.realtime"):(this.appId="420247213240",this.clientId= -"420247213240-hnbju1pt13seqrc1hhd5htpotk4g9q7u.apps.googleusercontent.com",this.mimeType="application/vnd.jgraph.mxfile.rtlegacy");this.mimeTypes="application/mxe,application/vnd.jgraph.mxfile,application/mxr,application/vnd.jgraph.mxfile.realtime,application/vnd.jgraph.mxfile.rtlegacy"};mxUtils.extend(DriveClient,mxEventSource); -DriveClient.prototype.scopes="1"==urlParams.photos?["https://www.googleapis.com/auth/drive.file","https://www.googleapis.com/auth/drive.install","https://www.googleapis.com/auth/photos","https://www.googleapis.com/auth/photos.upload","https://www.googleapis.com/auth/userinfo.profile"]:["https://www.googleapis.com/auth/drive.file","https://www.googleapis.com/auth/drive.install","https://www.googleapis.com/auth/userinfo.profile"];DriveClient.prototype.enableThumbnails=!0; -DriveClient.prototype.thumbnailWidth=1E3;DriveClient.prototype.maxThumbnailSize=2E6; +RealtimeMapping.prototype.removeAllRealtimeCellListeners=function(a){if(null!=a){a.removeAllEventListeners();a.children.removeAllEventListeners();for(var b=0;b<a.children.length;b++)this.removeAllRealtimeCellListeners(a.children.get(b))}};RealtimeMapping.prototype.destroy=function(){this.diagramMap.removeAllEventListeners();this.selectionMap.removeAllEventListeners();this.removeAllRealtimeCellListeners(this.diagramMap.get(this.driveRealtime.rootKey))};DriveFile=function(a,b,c,d){DrawioFile.call(this,a,b);this.desc=c;null!=d&&null!=d.getModel()&&null!=d.getModel().getRoot()&&(this.realtime=new DriveRealtime(this,d))};mxUtils.extend(DriveFile,DrawioFile);DriveFile.prototype.saveDelay=0;DriveFile.prototype.isRestricted=function(){return null!=this.desc.userPermission&&null!=this.desc.labels&&"reader"==this.desc.userPermission.role&&this.desc.labels.restricted};DriveFile.prototype.isConflict=function(a){return null!=a&&null!=a.error&&412==a.error.code}; +DriveFile.prototype.getMode=function(){return App.MODE_GOOGLE};DriveFile.prototype.getPublicUrl=function(a){gapi.client.drive.permissions.list({fileId:this.desc.id}).execute(mxUtils.bind(this,function(b){if(null!=b&&null!=b.items)for(var c=0;c<b.items.length;c++)if("anyoneWithLink"===b.items[c].id||"anyone"===b.items[c].id){a(this.desc.webContentLink);return}a(null)}))};DriveFile.prototype.isAutosaveOptional=function(){return!0}; +DriveFile.prototype.isAutosave=function(){return this.ui.editor.autosave||null!=this.realtime&&this.isAutosaveRevision()};DriveFile.prototype.isAutosaveNow=function(){if(null!=this.realtime&&null!=this.realtime.root){var a=parseInt(this.realtime.root.get("backupDate")),b=parseInt(this.realtime.root.get("modifiedDate"));return isNaN(a)||isNaN(b)||a<b}return!0};DriveFile.prototype.autosaveCompleted=function(){null!=this.realtime&&null!=this.realtime.root&&this.realtime.root.set("backupDate",(new Date).getTime())}; +DriveFile.prototype.isRenamable=function(){return this.isEditable()&&DrawioFile.prototype.isEditable.apply(this,arguments)};DriveFile.prototype.isMovable=function(){return this.isEditable()};DriveFile.prototype.save=function(a,b,c,d,e){DrawioFile.prototype.save.apply(this,arguments);this.saveFile(null,a,b,c,d,e)}; +DriveFile.prototype.saveFile=function(a,b,c,d,e,g){if(!this.isEditable())null!=c&&c();else if(!this.savingFile){var k=this.isModified,l=this.isModified();this.setModified(!1);this.isModified=function(){return!0};var m=mxUtils.bind(this,function(a,g){this.savingFile=!0;this.ui.drive.saveFile(this,g,mxUtils.bind(this,function(a){this.isModified=k;this.savingFile=!1;0!=a?(b&&(this.lastAutosaveRevision=(new Date).getTime()),this.desc=a,this.contentChanged(),null!=c&&c(a)):(this.setModified(l||this.isModified()), +null!=d&&d(a))}),mxUtils.bind(this,function(a){var b=mxUtils.bind(this,function(){this.setModified(l||this.isModified());this.isModified=k;this.savingFile=!1;null!=d&&d(a)});this.isConflict(a)?this.showConflictDialog(function(){m(!0,!0)},function(){a=null;b()}):b()}),e,e,a)});m(g,b)}}; +DriveFile.prototype.makeCopy=function(a,b,c){this.ui.spinner.spin(document.body,mxResources.get("saving"))&&this.saveAs(this.ui.getCopyFilename(this,c),mxUtils.bind(this,function(b){this.ui.spinner.stop();this.desc=b;a();this.setModified(!1)}),mxUtils.bind(this,function(){this.ui.spinner.stop();null!=b&&b()}))};DriveFile.prototype.saveAs=function(a,b,c){this.ui.drive.copyFile(this.getId(),a,b,c)}; +DriveFile.prototype.rename=function(a,b,c){this.ui.drive.renameFile(this.getId(),a,mxUtils.bind(this,function(d){this.hasSameExtension(a,this.getTitle())?(this.desc=d,this.descriptorChanged(),null!=b&&b(d)):(this.desc=d,this.save(!0,b,c))}),c)};DriveFile.prototype.move=function(a,b,c){this.ui.drive.moveFile(this.getId(),a,mxUtils.bind(this,function(a){this.desc=a;this.descriptorChanged();null!=b&&b(a)}),c)};DriveFile.prototype.getTitle=function(){return this.desc.title}; +DriveFile.prototype.getHash=function(){return"G"+this.getId()};DriveFile.prototype.getId=function(){return this.desc.id};DriveFile.prototype.isEditable=function(){var a=DrawioFile.prototype.isEditable.apply(this,arguments);return null!=this.realtime?a&&!this.realtime.rtModel.isReadOnly:a&&this.desc.editable};DriveFile.prototype.open=function(){null!=this.realtime?this.realtime.start():DrawioFile.prototype.open.apply(this,arguments)}; +DriveFile.prototype.close=function(a){a=null!=a?a:!1;DrawioFile.prototype.close.apply(this,arguments);null!=this.realtime&&(this.realtime.destroy(a),this.realtime=null)}; +DriveFile.prototype.showConflictDialog=function(a,b){if(!this.showingConflictDialog){var c=null!=this.ui.spinner&&null!=this.ui.spinner.pause?this.ui.spinner.pause():function(){},d=this.changeListenerEnabled;this.changeListenerEnabled=!1;this.showingConflictDialog=!0;this.ui.showError(mxResources.get("externalChanges"),mxResources.get("fileChangedOverwrite"),mxResources.get("makeCopy"),mxUtils.bind(this,function(){this.showingConflictDialog=!1;this.changeListenerEnabled=d;this.makeCopy(a,b,!0)}), +null,mxResources.get("overwrite"),mxUtils.bind(this,function(){this.showingConflictDialog=!1;this.changeListenerEnabled=d;c();a()}),mxResources.get("cancel"),mxUtils.bind(this,function(){this.showingConflictDialog=!1;this.changeListenerEnabled=d;this.ui.hideDialog();c();b()}),360,180);if(null!=this.ui.dialog&&null!=this.ui.dialog.container){var e=document.createElement("a");e.className="geStatusAlert";e.style.display="block";e.style.position="absolute";e.style.cursor="pointer";e.style.bottom="0"; +e.style.padding="8px 0 8px 0";e.style.marginBottom="26px";e.style.left="0";e.style.right="0";e.style.textAlign="center";e.style.borderRadius="0";e.style.borderLeftStyle="none";e.style.borderRightStyle="none";e.style.textDecoration="none";e.style.fontWeight="bold";e.setAttribute("href","https://desk.draw.io/support/solutions/articles/16000087215");e.setAttribute("target","_blank");mxUtils.write(e,mxResources.get("collaborativeEditingNotice"));this.ui.dialog.container.appendChild(e)}}}; +DriveFile.prototype.checkConvert=function(){var a=mxUtils.bind(this,function(a){try{this.ui.getCurrentFile()!=this||this.isModified()||this.ui.drive.getXmlFile(this.desc,null,mxUtils.bind(this,function(b){try{var c=b.getData(),e=null!=c?mxUtils.parseXml(c).documentElement:null;if(null!=e){var g=this.ui.editor.extractGraphModel(e,!0);null!=g&&(e=g)}null!=this.runCheck&&this.runCheck(a,e,c)}catch(k){this.log("CATCH-PARSEFILE-"+k.stack),this.runCheck(a,null,"CATCH-PARSEFILE-"+k.stack)}}),mxUtils.bind(this, +function(b){this.log("ERROR-GETFILE");this.runCheck(a,null,"ERROR-GETFILE")}),!0)}catch(c){this.log("CATCH-GETFILE-"+c.stack),this.runCheck(a,null,"CATCH-GETFILE-"+c.stack)}});try{this.ui.drive.getRealtimeData(this.desc.id,a,a)}catch(b){this.log("CATCH-GETJSON-"+b.stack,!0)}}; +DriveFile.prototype.getComparableFile=function(a){for(;0<a.attributes.length;)a.removeAttribute(a.attributes[0].name);for(var b=a.getElementsByTagName("diagram"),c=0;c<b.length;c++){b[c].removeAttribute("name");b[c].removeAttribute("id");var d=this.ui.editor.graph.decompress(mxUtils.getTextContent(b[c]));if(null!=d&&0<d.length){for(;null!=b[c].firstChild;)b[c].removeChild(b[c].firstChild);b[c].appendChild(mxUtils.parseXml(d).documentElement)}}b=a.getElementsByTagName("mxGraphModel");for(c=0;c<b.length;c++)for(;0< +b[c].attributes.length;)b[c].removeAttribute(b[c].attributes[0].name);return a};DriveFile.prototype.getAnonymizedXml=function(a){if(null!=a){for(var b=a.getElementsByTagName("mxCell"),c=0;c<b.length;c++)b[c].removeAttribute("style"),b[c].removeAttribute("value"),null!=b[c].parentNode&&"UserObject"==b[c].parentNode.nodeName&&null!=b[c].parentNode.parentNode&&b[c].parentNode.parentNode.replaceChild(b[c],b[c].parentNode);return mxUtils.getPrettyXml(a)}return"null"}; +DriveFile.prototype.getAnonymizedJson=function(a){if(null!=a){for(var b=a.value.diagrams.value,c=0;c<b.length;c++)null!=b[c].value&&null!=b[c].value.root&&this.anonymizeJsonCell(b[c].value.root.value);return JSON.stringify(a)}return"null"};DriveFile.prototype.anonymizeJsonCell=function(a){if(null!=a&&(delete a.xmlValue,delete a.value,delete a.style,null!=a.children&&null!=a.children.value))for(var b=0;b<a.children.value.length;b++)this.anonymizeJsonCell(a.children.value[b].value)}; +DriveFile.prototype.debug=function(){null!=window.console&&"1"==urlParams.test&&console.log.apply(console,arguments)}; +DriveFile.prototype.log=function(a,b){this.debug(a);try{this.ui.logEvent({category:this.ui.JSON_CHECK,action:a,label:this.desc.id}),b&&this.report("Realtime Log Report "+new Date+"\n\nDescription: "+JSON.stringify({version:this.ui.JSON_CHECK,title:this.desc.title,editable:this.desc.editable,copyable:this.desc.copyable,labels:this.desc.labels,id:this.desc.id,userPermission:this.desc.userPermission,fileSize:this.desc.fileSize,fileExtension:this.desc.fileExtension,modifiedDate:this.desc.modifiedDate, +mimeType:this.desc.mimeType})+"\n\nMessage:\n"+a)}catch(c){}};DriveFile.prototype.report=function(a){try{3E6<a.length&&(a=a.substring(0,3E6)+"\n...[REPORT SHORTENED]"),this.debug(a),mxUtils.post("/email","version="+encodeURIComponent(EditorUi.VERSION)+"&url="+encodeURIComponent(window.location.href)+"&data="+encodeURIComponent(a),mxUtils.bind(this,function(a){this.debug("report sent")}),mxUtils.bind(this,function(){this.debug("report failed")}))}catch(b){}};DriveLibrary=function(a,b,c){DriveFile.call(this,a,b);this.desc=c};mxUtils.extend(DriveLibrary,DriveFile);DriveLibrary.prototype.isAutosave=function(){return!0};DriveLibrary.prototype.save=function(a,b,c){this.ui.drive.saveFile(this,a,mxUtils.bind(this,function(a){this.desc=a;null!=b&&b(a)}),c)};DriveLibrary.prototype.open=function(){};DriveClient=function(a){mxEventSource.call(this);this.ui=a;this.xmlMimeType="application/vnd.jgraph.mxfile";this.ui.editor.isChromelessView()&&"1"!=urlParams.rt?(this.appId="850530949725",this.clientId="850530949725.apps.googleusercontent.com",this.scopes=["https://www.googleapis.com/auth/drive.readonly","openid"],this.mimeType="all_types_supported"):this.ui.isDriveDomain()?(this.appId="671128082532",this.clientId="671128082532.apps.googleusercontent.com",this.mimeType="application/vnd.jgraph.mxfile.realtime"): +(this.appId="420247213240",this.clientId="420247213240-hnbju1pt13seqrc1hhd5htpotk4g9q7u.apps.googleusercontent.com",this.mimeType="application/vnd.jgraph.mxfile.rtlegacy");this.mimeTypes=this.xmlMimeType+"application/mxe,application/mxr,application/vnd.jgraph.mxfile.realtime,application/vnd.jgraph.mxfile.rtlegacy"};mxUtils.extend(DriveClient,mxEventSource); +DriveClient.prototype.scopes="1"==urlParams.photos?["https://www.googleapis.com/auth/drive.file","https://www.googleapis.com/auth/drive.install","https://www.googleapis.com/auth/photos","https://www.googleapis.com/auth/photos.upload","https://www.googleapis.com/auth/userinfo.profile"]:["https://www.googleapis.com/auth/drive.file","https://www.googleapis.com/auth/drive.install","https://www.googleapis.com/auth/userinfo.profile"];DriveClient.prototype.allFields="kind,id,parents,headRevisionId,etag,title,mimeType,modifiedDate,editable,copyable,labels,properties,downloadUrl,webContentLink,userPermission"; +DriveClient.prototype.enableThumbnails=!0;DriveClient.prototype.thumbnailWidth=1E3;DriveClient.prototype.maxThumbnailSize=2E6; DriveClient.prototype.placeholderThumbnail="iVBORw0KGgoAAAANSUhEUgAAAJYAAACWCAMAAAAL34HQAAACN1BMVEXwhwXvhgX4iwXzhwXgbQzvhgXhbAzocgzqcwzldAoAAADhbgvjcQnmdgrlbgDwhgXsfwXufgjwhgXwgQfziAXxgADibgz4iwX4jAX3iwTpcwr1igXoewjsfgj3igX4iwXqcQv4jAX3iwXtfQnndQrvhAbibArwhwXgbQz//////v39jwX6jQX+/v7fagHfawzdVQDwhADgbhPgbhXwhwPocQ3uvKvwiA/faQDscgzxiAT97+XgciTgcSP6jAXgbQ3gcCHwiRfpcQzwhwfeXQD77ef74NLvhgTvegD66uPgbAf66+TvfADwjCzgcCfwiSD67ObhcjjwiBHhczvwiyrgbxj///777ujgcSHgcB/xiRzgbhveWgDeVwDhdEDgbRDqfgffYgDfXwD97+bvfQDxiz7//vvwiRr118rrcgztggbfZgDfZAD++PT98+3gbBPsgAb99vD33tPgcB7icAvuhAX//Pn66N/00sTyy7vuuqbjekLwhwzkcgr88er449n++vfutp/kh1vgcBvhbwvmdwnwgwDwgADeWQD87eLxxrTssJjqpIf0roHmjWTkhFP759n63czvvanomnjnlHDhczD22cr4y6/wwa/3xKX2wJ3rqpH0tY7qp4vpnoDymlbjf0vxjjntcwzldAroegj/kgX12s7518PzqnnnkWfynmLieUjpewjrdAD40Lj1uZTzpm3idTbiciLydQzzfwnyiQTsfgD3xqnzp3TxlkzgbCrdTwDdSwBLKUlNAAAAJ3RSTlP8/b2X/YH8wb+FAIuIggJbQin5opAM9+a/ubaubyD78NjSyr2WgRp4sjN4AAAI70lEQVR42u2cZ38SQRDGT8WGvfde4E4BxVMRRaKiUURRlJhQRDCCSgQVO/bee++9994+nMt5ywoezFJd/fm8uITi3p9n5mbYkcCpO6rVnVu2YEXd+3dRIySuo7pLv4GjGNKg7j3UHTl1l14PajmG9OFBnx7Ird4PumpYEtf1QXc112l0M7OGKXEfeg3guo3iNIyJG92Jaz61mYYxcaNacs1H/8f6j6X5j1WI/mMVIsawRFEzI49SjwOqAJa43emclk8Rp2c7AFZ+LDGyvXE2kmO2Q1Lq17RSd6ND48QIwFVuLNHTOPbEpTOz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".replace(/\+/g,"-").replace(/\//g, "_");DriveClient.prototype.placeholderMimeType="image/png";DriveClient.prototype.libraryMimeType="application/vnd.jgraph.mxlibrary";DriveClient.prototype.newAppHostname="www.draw.io";DriveClient.prototype.oldAppHostname="legacy.draw.io";DriveClient.prototype.extension=".html";DriveClient.prototype.tokenRefreshInterval=0;DriveClient.prototype.lastTokenRefresh=0;DriveClient.prototype.maxRetries=4;DriveClient.prototype.mimeTypeCheckCoolOff=6E4;DriveClient.prototype.user=null; DriveClient.prototype.setUser=function(a){this.user=a;null==this.user&&null!=this.tokenRefreshThread&&(window.clearTimeout(this.tokenRefreshThread),this.tokenRefreshThread=null);this.fireEvent(new mxEventObject("userChanged"))};DriveClient.prototype.getUser=function(){return this.user}; @@ -8051,35 +8069,40 @@ DriveClient.prototype.setUserId=function(a,b){if(b)if(isLocalStorage)localStorag DriveClient.prototype.getUserId=function(){var a=null;null!=this.user&&(a=this.user.id);null==a&&isLocalStorage&&(a=localStorage.getItem(".guid"));if(null==a&&"undefined"!=typeof Storage){for(var b=document.cookie.split(";"),c=0;c<b.length;c++){var d=mxUtils.trim(b[c]);if("GUID="==d.substring(0,5)){a=d.substring(5);break}}null!=a&&isLocalStorage&&(b=new Date,b.setYear(b.getFullYear()-1),document.cookie="GUID=; expires="+b.toUTCString(),localStorage.setItem(".guid",a))}return a}; DriveClient.prototype.execute=function(a){var b=mxUtils.bind(this,function(b){this.ui.showAuthDialog(this,!0,mxUtils.bind(this,function(b,c){this.authorize(!1,mxUtils.bind(this,function(){null!=c&&c();a()}),mxUtils.bind(this,function(a){var b=mxResources.get("cannotLogin");null!=a&&null!=a.error&&403==a.error.code&&null!=a.error.data&&0<a.error.data.length&&"domainPolicy"==a.error.data[0].reason&&(b=a.error.message);this.ui.drive.clearUserId();this.ui.drive.setUser(null);gapi.auth.signOut();this.ui.showError(mxResources.get("error"), b,mxResources.get("help"),mxUtils.bind(this,function(){this.ui.openLink("https://desk.draw.io/support/solutions/articles/16000074659")}),null,mxResources.get("ok"))}),b)}))});this.authorize(!0,a,b)}; -DriveClient.prototype.executeRequest=function(a,b,c){var d=!0,e=null,g=0;null!=this.requestThread&&window.clearTimeout(this.requestThread);var l=mxUtils.bind(this,function(){this.requestThread=null;this.currentRequest=a;null!=e&&window.clearTimeout(e);e=window.setTimeout(mxUtils.bind(this,function(){d=!1;null!=c&&c({code:App.ERROR_TIMEOUT,retry:l})}),this.ui.timeout);a.execute(mxUtils.bind(this,function(m){window.clearTimeout(e);d&&(null!=m&&null==m.error?null!=b&&b(m):null!=c&&null!=m&&null!=m.error&& -403==m.error.code&&("The requested mime type change is forbidden."==m.error.message||null!=m.error.data&&"domainPolicy"==m.error.data[0].reason)?c(m):null==m||null==m.error||401!=m.error.code&&403!=m.error.code?null!=m&&null!=m.error&&404!=m.error.code&&this.currentRequest==a&&g<this.maxRetries?(g++,this.requestThread=window.setTimeout(l,Math.round(Math.pow(2,g)*(1+.1*(Math.random()-.5))*1E3))):null!=c&&c(m):403==m.error.code&&null!=this.user?null!=c&&c(m):this.execute(l))}))});null==gapi.auth.getToken()? -this.execute(l):l()};DriveClient.prototype.authorize=function(a,b,c,d){var e=this.getUserId();null!=this.ui.stateArg&&null!=this.ui.stateArg.userId&&(e=this.ui.stateArg.userId);if(a&&null==e)null!=c&&c();else{var g={scope:this.scopes,client_id:this.clientId};a&&null!=e?(g.immediate=!0,g.user_id=e):(g.immediate=!1,g.authuser=-1);gapi.auth.authorize(g,mxUtils.bind(this,function(g){null!=g&&null==g.error?null!=this.user&&a&&this.user.id==e?null!=b&&b():this.updateUser(b,c,d):null!=c&&c(g);this.resetTokenRefresh(g)}))}}; +DriveClient.prototype.executeRequest=function(a,b,c){var d=!0,e=null,g=0;null!=this.requestThread&&window.clearTimeout(this.requestThread);var k=mxUtils.bind(this,function(){this.requestThread=null;this.currentRequest=a;null!=e&&window.clearTimeout(e);e=window.setTimeout(mxUtils.bind(this,function(){d=!1;null!=c&&c({code:App.ERROR_TIMEOUT,retry:k})}),this.ui.timeout);a.execute(mxUtils.bind(this,function(l){window.clearTimeout(e);d&&(null!=l&&null==l.error?null!=b&&b(l):null!=c&&null!=l&&null!=l.error&& +403==l.error.code&&("The requested mime type change is forbidden."==l.error.message||null!=l.error.data&&"domainPolicy"==l.error.data[0].reason)?c(l):null==l||null==l.error||401!=l.error.code&&403!=l.error.code?null!=l&&null!=l.error&&412!=l.error.code&&404!=l.error.code&&this.currentRequest==a&&g<this.maxRetries?(g++,this.requestThread=window.setTimeout(k,Math.round(Math.pow(2,g)*(1+.1*(Math.random()-.5))*1E3))):null!=c&&c(l):403==l.error.code&&null!=this.user?null!=c&&c(l):this.execute(k))}))}); +null==gapi.auth.getToken()?this.execute(k):k()}; +DriveClient.prototype.authorize=function(a,b,c,d){var e=this.getUserId();null!=this.ui.stateArg&&null!=this.ui.stateArg.userId&&(e=this.ui.stateArg.userId);if(a&&null==e)null!=c&&c();else{var g={scope:this.scopes,client_id:this.clientId};a&&null!=e?(g.immediate=!0,g.user_id=e):(g.immediate=!1,g.authuser=-1);gapi.auth.authorize(g,mxUtils.bind(this,function(g){null!=g&&null==g.error?null!=this.user&&a&&this.user.id==e?null!=b&&b():this.updateUser(b,c,d):null!=c&&c(g);this.resetTokenRefresh(g)}))}}; DriveClient.prototype.resetTokenRefresh=function(a){null!=this.tokenRefreshThread&&(window.clearTimeout(this.tokenRefreshThread),this.tokenRefreshThread=null);null!=a&&null==a.error&&0<a.expires_in&&(this.tokenRefreshInterval=1E3*parseInt(a.expires_in),this.lastTokenRefresh=(new Date).getTime(),this.tokenRefreshThread=window.setTimeout(mxUtils.bind(this,function(){this.authorize(!0,mxUtils.bind(this,function(){}),mxUtils.bind(this,function(){}))}),900*a.expires_in))}; DriveClient.prototype.checkToken=function(a){var b=0<this.lastTokenRefresh;(new Date).getTime()-this.lastTokenRefresh>this.tokenRefreshInterval||null==this.tokenRefreshThread?this.execute(mxUtils.bind(this,function(){a();b&&this.fireEvent(new mxEventObject("disconnected"))})):a()}; DriveClient.prototype.updateUser=function(a,b,c){var d=gapi.auth.getToken().access_token;this.ui.loadUrl("https://www.googleapis.com/oauth2/v2/userinfo?alt=json&access_token="+d,mxUtils.bind(this,function(d){var e=JSON.parse(d);this.executeRequest(gapi.client.drive.about.get(),mxUtils.bind(this,function(b){this.setUser(new DrawioUser(e.id,b.user.emailAddress,b.user.displayName,null!=b.user.picture?b.user.picture.url:null,e.locale));this.setUserId(e.id,c);null!=a&&a()}),b)}),b)}; -DriveClient.prototype.copyFile=function(a,b,c,d){null!=a&&null!=b&&this.executeRequest(gapi.client.drive.files.copy({fileId:a,resource:{title:b},supportsTeamDrives:!0}),c,d)};DriveClient.prototype.renameFile=function(a,b,c,d){null!=a&&null!=b&&this.executeRequest(this.createDriveRequest(a,{title:b}),c,d)};DriveClient.prototype.moveFile=function(a,b,c,d){null!=a&&null!=b&&this.executeRequest(this.createDriveRequest(a,{parents:[{kind:"drive#fileLink",id:b}]}),c,d)}; +DriveClient.prototype.copyFile=function(a,b,c,d){null!=a&&null!=b&&this.executeRequest(gapi.client.drive.files.copy({fileId:a,fields:this.allFields,supportsTeamDrives:!0,resource:{title:b}}),c,d)};DriveClient.prototype.renameFile=function(a,b,c,d){null!=a&&null!=b&&this.executeRequest(this.createDriveRequest(a,{title:b}),c,d)};DriveClient.prototype.moveFile=function(a,b,c,d){null!=a&&null!=b&&this.executeRequest(this.createDriveRequest(a,{parents:[{kind:"drive#fileLink",id:b}]}),c,d)}; DriveClient.prototype.createDriveRequest=function(a,b){return gapi.client.request({path:"/drive/v2/files/"+a,method:"PUT",params:{uploadType:"multipart",supportsTeamDrives:!0},headers:{"Content-Type":"application/json; charset=UTF-8"},body:JSON.stringify(b)})};DriveClient.prototype.getLibrary=function(a,b,c){return this.getFile(a,b,c,!0,!0)}; -DriveClient.prototype.getFile=function(a,b,c,d,e){d=null!=d?d:!1;e=null!=e?e:!1;null!=urlParams.rev?this.executeRequest(gapi.client.drive.revisions.get({fileId:a,revisionId:urlParams.rev}),mxUtils.bind(this,function(a){this.getXmlFile(a,null,b,c)}),c):this.executeRequest(gapi.client.drive.files.get({fileId:a,supportsTeamDrives:!0}),mxUtils.bind(this,function(a){if(null!=this.user){var g=/\.png$/i.test(a.title);/\.v(dx|sdx?)$/i.test(a.title)||/\.gliffy$/i.test(a.title)||!this.ui.useCanvasForExport&& -g?(g=a.downloadUrl+"&access_token="+gapi.auth.getToken().access_token,this.ui.convertFile(g,a.title,a.mimeType,this.extension,b,c)):d||e||a.mimeType==this.libraryMimeType?this.getXmlFile(a,null,b,c,!0,e):this.loadRealtime(a,mxUtils.bind(this,function(d){try{null==d||null==d.getModel()||null==d.getModel().getRoot()||d.getModel().getRoot().isEmpty()||d.getModel().getRoot().has("cells")&&!d.getModel().getRoot().has(DriveRealtime.prototype.diagramsKey)?this.getXmlFile(a,d,b,c):b(new DriveFile(this.ui, -null,a,d))}catch(n){c(n)}}),c)}else c({message:mxResources.get("loggedOut")})}),c)}; -DriveClient.prototype.loadRealtime=function(a,b,c){if("1"==urlParams.ignoremime||"420247213240"!=this.appId||"application/vnd.jgraph.mxfile.realtime"!=a.mimeType&&"application/mxr"!=a.mimeType)if("850530949725"!=this.appId&&(a.editable||"application/mxe"!=a.mimeType&&"application/vnd.jgraph.mxfile"!=a.mimeType)){var d=mxUtils.bind(this,function(){var e=!0,g=window.setTimeout(mxUtils.bind(this,function(){e=!1;c({code:App.ERROR_TIMEOUT,retry:d})}),this.ui.timeout);gapi.drive.realtime.load(a.id,mxUtils.bind(this, -function(a){window.clearTimeout(g);e&&b(a)}))});d()}else b();else this.redirectToNewApp(c,a.id)}; -DriveClient.prototype.getXmlFile=function(a,b,c,d,e,g){var l=gapi.auth.getToken().access_token;this.ui.loadUrl(a.downloadUrl+"&access_token="+l,mxUtils.bind(this,function(l){if(null==l)d({message:mxResources.get("invalidOrMissingFile")});else if(a.mimeType==this.libraryMimeType||g)a.mimeType!=this.libraryMimeType||g?c(new DriveLibrary(this.ui,l,a)):d({message:mxResources.get("notADiagramFile")});else{if(/\.png$/i.test(a.title)){var m=l.lastIndexOf(",");0<m&&(m=this.ui.extractGraphModelFromPng(l.substring(m+ -1)),null!=m&&0<m.length&&(l=m))}var f=new DriveFile(this.ui,l,a,b);!e&&"850530949725"!=this.appId&&f.isEditable()&&a.mimeType!=this.mimeType?this.saveFile(f,!0,mxUtils.bind(this,function(a){f.desc=a;c(f)}),d,!0):c(f)}}),d,"image/"==a.mimeType.substring(0,6)&&"image/svg"!=a.mimeType.substring(0,9)||/\.png$/i.test(a.title)||/\.jpe?g$/i.test(a.title))}; -DriveClient.prototype.saveFile=function(a,b,c,d,e,g){if(a.isEditable()){var l=(new Date).getTime();e=null!=e?e:!this.ui.isLegacyDriveDomain()||"1"==urlParams.ignoremime;g=null!=g?g:!1;var m=mxUtils.bind(this,function(e,h,k){var f={mimeType:a.constructor==DriveLibrary?this.libraryMimeType:this.mimeType,title:a.getTitle()};k||(null!=e||g||(e=this.placeholderThumbnail,h=this.placeholderMimeType),null!=e&&null!=h&&(f.thumbnail={image:e,mimeType:h}));var m=function(){a.saveDelay=(new Date).getTime()-l; -c.apply(this,arguments)},n=mxUtils.bind(this,function(c,e){this.executeRequest(this.createUploadRequest(a.getId(),f,c,b||a.desc.mimeType!=this.mimeType&&a.desc.mimeType!=this.libraryMimeType,e),m,d)});this.ui.useCanvasForExport&&/(\.png)$/i.test(a.getTitle())?this.ui.getEmbeddedPng(mxUtils.bind(this,function(a){n(a,!0)}),d,this.ui.getCurrentFile()!=a?a.getData():null):n(a.getData(),!1)}),n=mxUtils.bind(this,function(){!g&&a.constructor!=DriveLibrary&&this.enableThumbnails&&"0"!=urlParams.thumb&&(null== -a.realtime||a.realtime.connected)&&this.ui.getThumbnail(this.thumbnailWidth,mxUtils.bind(this,function(a){var b=null;if(null!=a)try{b=a.toDataURL("image/png")}catch(k){}b=null==b||b.length>this.maxThumbnailSize?null:b.substring(b.indexOf(",")+1).replace(/\+/g,"-").replace(/\//g,"_");m(b,"image/png")}))||m(null,null,a.constructor!=DriveLibrary&&(null==a.realtime||a.realtime.connected))});e||!b?n():this.verifyMimeType(a.getId(),n,!0)}else this.ui.editor.graph.reset(),null!=d&&d({message:mxResources.get("readOnly")})}; +DriveClient.prototype.loadDescriptor=function(a,b,c){this.executeRequest(gapi.client.drive.files.get({fileId:a,fields:this.allFields,supportsTeamDrives:!0}),b,c)};DriveClient.prototype.getChannelId=function(a){a=a.properties;var b=null;if(null!=a)for(var c=0;c<a.length;c++)if("channel"==a[c].key){b=a[c].value;break}return b}; +DriveClient.prototype.getFile=function(a,b,c,d,e){d=null!=d?d:!1;e=null!=e?e:!1;null!=urlParams.rev?this.executeRequest(gapi.client.drive.revisions.get({fileId:a,revisionId:urlParams.rev,supportsTeamDrives:!0}),mxUtils.bind(this,function(a){this.getXmlFile(a,null,b,c)}),c):this.loadDescriptor(a,mxUtils.bind(this,function(a){if(null!=this.user){var g=/\.png$/i.test(a.title);/\.v(dx|sdx?)$/i.test(a.title)||/\.gliffy$/i.test(a.title)||!this.ui.useCanvasForExport&&g?(g=a.downloadUrl+"&access_token="+ +gapi.auth.getToken().access_token,this.ui.convertFile(g,a.title,a.mimeType,this.extension,b,c)):d||e||a.mimeType==this.libraryMimeType||a.mimeType==this.xmlMimeType?this.getXmlFile(a,null,b,c,!0,e):App.GOOGLE_REALTIME?this.loadRealtime(a,mxUtils.bind(this,function(d){try{null==d||null==d.getModel()||null==d.getModel().getRoot()||d.getModel().getRoot().isEmpty()||d.getModel().getRoot().has("cells")&&!d.getModel().getRoot().has(DriveRealtime.prototype.diagramsKey)?this.getXmlFile(a,d,b,c):b(new DriveFile(this.ui, +null,a,d))}catch(m){c(m)}}),c):this.isGoogleRealtimeMimeType(a.mimeType)?this.convertRealtimeFile(a,mxUtils.bind(this,function(a){this.notifyRealtimeConverted(a);b(a)}),c):this.getXmlFile(a,null,b,c)}else c({message:mxResources.get("loggedOut")})}),c)};DriveClient.prototype.isGoogleRealtimeMimeType=function(a){return null!=a&&"application/vnd.jgraph.mxfile."==a.substring(0,30)}; +DriveClient.prototype.getRealtimeData=function(a,b,c,d){this.executeRequest(gapi.client.drive.realtime.get({fileId:a,supportsTeamDrives:!0}),mxUtils.bind(this,function(a){a=null!=a.result?a.result.data:null;null!=a&&null!=a.value&&null!=a.value.diagrams?b(a):null!=c&&c()}),mxUtils.bind(this,function(e){null==d&&(d=0);3>d?this.getRealtimeData(a,b,c,d+1):null!=c&&c()}))}; +DriveClient.prototype.loadRealtime=function(a,b,c){if("1"==urlParams.ignoremime||"420247213240"!=this.appId||"application/vnd.jgraph.mxfile.realtime"!=a.mimeType&&"application/mxr"!=a.mimeType)if("850530949725"!=this.appId&&(a.editable||"application/mxe"!=a.mimeType&&"application/vnd.jgraph.mxfile"!=a.mimeType)&&null!=gapi.drive.realtime){var d=mxUtils.bind(this,function(){var e=!0,g=window.setTimeout(mxUtils.bind(this,function(){e=!1;c({code:App.ERROR_TIMEOUT,retry:d})}),this.ui.timeout);gapi.drive.realtime.load(a.id, +mxUtils.bind(this,function(a){window.clearTimeout(g);e&&b(a)}))});d()}else b();else this.redirectToNewApp(c,a.id)}; +DriveClient.prototype.getXmlFile=function(a,b,c,d,e,g){var k=gapi.auth.getToken().access_token;this.ui.loadUrl(a.downloadUrl+"&access_token="+k,mxUtils.bind(this,function(k){if(null==k)d({message:mxResources.get("invalidOrMissingFile")});else if(a.mimeType==this.libraryMimeType||g)a.mimeType!=this.libraryMimeType||g?c(new DriveLibrary(this.ui,k,a)):d({message:mxResources.get("notADiagramFile")});else{if(/\.png$/i.test(a.title)){var l=k.lastIndexOf(",");0<l&&(l=this.ui.extractGraphModelFromPng(k.substring(l+ +1)),null!=l&&0<l.length&&(k=l))}var f=new DriveFile(this.ui,k,a,b);App.GOOGLE_REALTIME&&!e&&"850530949725"!=this.appId&&f.isEditable()&&a.mimeType!=this.mimeType?this.saveFile(f,!0,mxUtils.bind(this,function(a){f.desc=a;c(f)}),d,!0):c(f)}}),d,"image/"==a.mimeType.substring(0,6)&&"image/svg"!=a.mimeType.substring(0,9)||/\.png$/i.test(a.title)||/\.jpe?g$/i.test(a.title))}; +DriveClient.prototype.saveFile=function(a,b,c,d,e,g,k,l){if(a.isEditable()){var m=(new Date).getTime();e=null!=e?e:!this.ui.isLegacyDriveDomain()||"1"==urlParams.ignoremime;g=null!=g?g:!1;var f=mxUtils.bind(this,function(e,f,h){var n={mimeType:a.desc.mimeType,title:a.getTitle()};!App.GOOGLE_REALTIME&&null==a.realtime&&this.isGoogleRealtimeMimeType(a.desc.mimeType)&&(n.mimeType=this.xmlMimeType,b=!0);a.constructor==DriveFile&&null==this.getChannelId(a.desc)&&(null==l&&(l=[]),l.push({key:"channel", +value:Editor.guid()}));h||(null!=e||g||(e=this.placeholderThumbnail,f=this.placeholderMimeType),null!=e&&null!=f&&(n.thumbnail={image:e,mimeType:f}));var v=function(){a.saveDelay=(new Date).getTime()-m;c.apply(this,arguments)},p=mxUtils.bind(this,function(c,e){null!=l&&(n.properties=l);var f=k||a.constructor!=DriveFile||null!=a.realtime?null:a.desc.etag;this.executeRequest(this.createUploadRequest(a.getId(),n,c,b||a.desc.mimeType!=this.mimeType&&a.desc.mimeType!=this.libraryMimeType,e,f),v,d)});this.ui.useCanvasForExport&& +/(\.png)$/i.test(a.getTitle())?this.ui.getEmbeddedPng(mxUtils.bind(this,function(a){p(a,!0)}),d,this.ui.getCurrentFile()!=a?a.getData():null):p(a.getData(),!1)}),h=mxUtils.bind(this,function(){!g&&a.constructor!=DriveLibrary&&this.enableThumbnails&&"0"!=urlParams.thumb&&(null==a.realtime||a.realtime.connected)&&this.ui.getThumbnail(this.thumbnailWidth,mxUtils.bind(this,function(a){var b=null;if(null!=a)try{b=a.toDataURL("image/png")}catch(p){}b=null==b||b.length>this.maxThumbnailSize?null:b.substring(b.indexOf(",")+ +1).replace(/\+/g,"-").replace(/\//g,"_");f(b,"image/png")}))||f(null,null,a.constructor!=DriveLibrary&&(null==a.realtime||a.realtime.connected))});e||!b?h():this.verifyMimeType(a.getId(),h,!0)}else this.ui.editor.graph.reset(),null!=d&&d({message:mxResources.get("readOnly")})}; +DriveClient.prototype.notifyRealtimeConverted=function(a){try{null!=gapi.drive.realtime&&gapi.drive.realtime.load(a.getId(),mxUtils.bind(this,function(b){try{null!=b&&null!=b.getModel()&&null!=b.getModel().getRoot()&&b.getModel().getRoot().set("realtimeConverted",a.desc.headRevisionId)}catch(c){}}))}catch(b){}}; DriveClient.prototype.verifyMimeType=function(a,b,c,d){null==this.lastMimeCheck&&(this.lastMimeCheck=0);var e=(new Date).getTime();if(c||e-this.lastMimeCheck>this.mimeTypeCheckCoolOff)this.lastMimeCheck=e,this.checkingMimeType||(this.checkingMimeType=!0,this.executeRequest(gapi.client.drive.files.get({fileId:a,fields:"mimeType",supportsTeamDrives:!0}),mxUtils.bind(this,function(c){this.checkingMimeType=!1;null!=c&&"application/vnd.jgraph.mxfile.realtime"==c.mimeType?this.redirectToNewApp(d,a):null!= b&&b()})))}; DriveClient.prototype.redirectToNewApp=function(a,b){this.ui.spinner.stop();if(!this.redirectDialogShowing){this.redirectDialogShowing=!0;var c=window.location.protocol+"//"+this.newAppHostname+"/"+this.ui.getSearch("create title mode url drive splash".split(" "))+"#G"+b;null!=a?this.ui.confirm(mxResources.get("redirectToNewApp"),mxUtils.bind(this,function(){this.redirectDialogShowing=!1;window.location.href=c}),mxUtils.bind(this,function(){this.redirectDialogShowing=!1;null!=a&&a()})):this.ui.alert(mxResources.get("redirectToNewApp"), mxUtils.bind(this,function(){this.redirectDialogShowing=!1;window.location.href=c}))}}; -DriveClient.prototype.insertFile=function(a,b,c,d,e,g,l,m){g=null!=g?g:this.mimeType;m=null!=m?m:!0;a={mimeType:g,title:a};null!=c&&(a.parents=[{kind:"drive#fileLink",id:c}]);this.executeRequest(this.createUploadRequest(null,a,b,!1,l),mxUtils.bind(this,function(a){g==this.libraryMimeType?d(new DriveLibrary(this.ui,b,a)):0==a?null!=e&&e({message:mxResources.get("errorSavingFile")}):m?this.loadRealtime(a,mxUtils.bind(this,function(c){null!=this.user?(c=new DriveFile(this.ui,b,a,c),c.lastAutosaveRevision= -(new Date).getTime(),d(c)):null!=e&&e({message:mxResources.get("loggedOut")})}),e):d(a)}),e)}; -DriveClient.prototype.createUploadRequest=function(a,b,c,d,e){e=null!=e?e:!1;a={path:"/upload/drive/v2/files"+(null!=a?"/"+a:""),method:null!=a?"PUT":"POST",params:{uploadType:"multipart"},headers:{"Content-Type":'multipart/mixed; boundary="-------314159265358979323846"'},body:"\r\n---------314159265358979323846\r\nContent-Type: application/json\r\n\r\n"+JSON.stringify(b)+"\r\n---------314159265358979323846\r\nContent-Type: application/octect-stream\r\nContent-Transfer-Encoding: base64\r\n\r\n"+(null!= -c?e?c:Base64.encode(c):"")+"\r\n---------314159265358979323846--"};d||(a.params.newRevision=!1);a.params.supportsTeamDrives=!0;return gapi.client.request(a)}; +DriveClient.prototype.insertFile=function(a,b,c,d,e,g,k,l){g=null!=g?g:App.GOOGLE_REALTIME?this.mimeType:this.xmlMimeType;l=null!=l?l:!0;a={mimeType:g,title:a};null!=c&&(a.parents=[{kind:"drive#fileLink",id:c}]);this.executeRequest(this.createUploadRequest(null,a,b,!1,k),mxUtils.bind(this,function(a){g==this.libraryMimeType?d(new DriveLibrary(this.ui,b,a)):0==a?null!=e&&e({message:mxResources.get("errorSavingFile")}):App.GOOGLE_REALTIME&&l&&this.isGoogleRealtimeMimeType(a.mimeType)?this.loadRealtime(a, +mxUtils.bind(this,function(c){null!=this.user?(c=new DriveFile(this.ui,b,a,c),c.lastAutosaveRevision=(new Date).getTime(),d(c)):null!=e&&e({message:mxResources.get("loggedOut")})}),e,!1):d(new DriveFile(this.ui,b,a))}),e)}; +DriveClient.prototype.createUploadRequest=function(a,b,c,d,e,g){e=null!=e?e:!1;var k={"Content-Type":'multipart/mixed; boundary="-------314159265358979323846"'};null!=g&&(k["If-Match"]=g);a={path:"/upload/drive/v2/files"+(null!=a?"/"+a:""),method:null!=a?"PUT":"POST",params:{uploadType:"multipart"},headers:k,body:"\r\n---------314159265358979323846\r\nContent-Type: application/json\r\n\r\n"+JSON.stringify(b)+"\r\n---------314159265358979323846\r\nContent-Type: application/octect-stream\r\nContent-Transfer-Encoding: base64\r\n\r\n"+ +(null!=c?e?c:Base64.encode(c):"")+"\r\n---------314159265358979323846--"};d||(a.params.newRevision=!1);a.params.supportsTeamDrives=!0;a.params.fields=this.allFields;return gapi.client.request(a)}; DriveClient.prototype.pickFile=function(a,b){this.filePickerCallback=null!=a?a:mxUtils.bind(this,function(a){this.ui.loadFile("G"+a)});this.filePicked=mxUtils.bind(this,function(a){a.action==google.picker.Action.PICKED&&this.filePickerCallback(a.docs[0].id)});this.ui.spinner.spin(document.body,mxResources.get("authorizing"))&&this.execute(mxUtils.bind(this,function(){this.ui.spinner.stop();var a=gapi.auth.getToken().access_token,d=b?"genericPicker":"filePicker",e=mxUtils.bind(this,function(a){"picker modal-dialog-bg picker-dialog-bg"== -mxEvent.getSource(a).className&&(mxEvent.removeListener(document,"click",e),this[d].setVisible(!1))});if(null==this[d]||this[d+"Token"]!=a){this[d+"Token"]=a;var a=(new google.picker.DocsView(google.picker.ViewId.FOLDERS)).setParent("root").setIncludeFolders(!0),g=(new google.picker.DocsView).setIncludeFolders(!0),l=(new google.picker.DocsView).setEnableTeamDrives(!0).setIncludeFolders(!0),m=(new google.picker.DocsUploadView).setIncludeFolders(!0);b?(a.setMimeTypes("*/*"),g.setMimeTypes("*/*"),l.setMimeTypes("*/*")): -(a.setMimeTypes(this.mimeTypes),g.setMimeTypes(this.mimeTypes),l.setMimeTypes(this.mimeTypes));this[d]=(new google.picker.PickerBuilder).setOAuthToken(this[d+"Token"]).setLocale(mxLanguage).setAppId(this.appId).enableFeature(google.picker.Feature.SUPPORT_TEAM_DRIVES).addView(a).addView(g).addView(l).addView(google.picker.ViewId.RECENTLY_PICKED).addView(m).setCallback(mxUtils.bind(this,function(a){a.action!=google.picker.Action.PICKED&&a.action!=google.picker.Action.CANCEL||mxEvent.removeListener(document, +mxEvent.getSource(a).className&&(mxEvent.removeListener(document,"click",e),this[d].setVisible(!1))});if(null==this[d]||this[d+"Token"]!=a){this[d+"Token"]=a;var a=(new google.picker.DocsView(google.picker.ViewId.FOLDERS)).setParent("root").setIncludeFolders(!0),g=(new google.picker.DocsView).setIncludeFolders(!0),k=(new google.picker.DocsView).setEnableTeamDrives(!0).setIncludeFolders(!0),l=(new google.picker.DocsUploadView).setIncludeFolders(!0);b?(a.setMimeTypes("*/*"),g.setMimeTypes("*/*"),k.setMimeTypes("*/*")): +(a.setMimeTypes(this.mimeTypes),g.setMimeTypes(this.mimeTypes),k.setMimeTypes(this.mimeTypes));this[d]=(new google.picker.PickerBuilder).setOAuthToken(this[d+"Token"]).setLocale(mxLanguage).setAppId(this.appId).enableFeature(google.picker.Feature.SUPPORT_TEAM_DRIVES).addView(a).addView(g).addView(k).addView(google.picker.ViewId.RECENTLY_PICKED).addView(l).setCallback(mxUtils.bind(this,function(a){a.action!=google.picker.Action.PICKED&&a.action!=google.picker.Action.CANCEL||mxEvent.removeListener(document, "click",e);a.action==google.picker.Action.PICKED&&this.filePicked(a)})).build()}mxEvent.addListener(document,"click",e);this[d].setVisible(!0)}))}; DriveClient.prototype.pickFolder=function(a){this.folderPickerCallback=a;var b=mxUtils.bind(this,function(){this.ui.spinner.spin(document.body,mxResources.get("authorizing"))&&this.execute(mxUtils.bind(this,function(){this.ui.spinner.stop();var a=gapi.auth.getToken().access_token,b=mxUtils.bind(this,function(a){"picker modal-dialog-bg picker-dialog-bg"==mxEvent.getSource(a).className&&(mxEvent.removeListener(document,"click",b),this.folderPicker.setVisible(!1))});if(null==this.folderPicker||this.folderPickerToken!= a){this.folderPickerToken=a;var a=(new google.picker.DocsView(google.picker.ViewId.FOLDERS)).setParent("root").setIncludeFolders(!0).setSelectFolderEnabled(!0).setMimeTypes("application/vnd.google-apps.folder"),e=(new google.picker.DocsView).setIncludeFolders(!0).setSelectFolderEnabled(!0).setMimeTypes("application/vnd.google-apps.folder"),g=(new google.picker.DocsView).setIncludeFolders(!0).setEnableTeamDrives(!0).setSelectFolderEnabled(!0).setMimeTypes("application/vnd.google-apps.folder");this.folderPicker= @@ -8088,123 +8111,133 @@ a){this.folderPickerToken=a;var a=(new google.picker.DocsView(google.picker.View DriveClient.prototype.pickLibrary=function(a){this.filePickerCallback=a;this.filePicked=mxUtils.bind(this,function(a){a.action==google.picker.Action.PICKED?this.filePickerCallback(a.docs[0].id):a.action==google.picker.Action.CANCEL&&null==this.ui.getCurrentFile()&&this.ui.showSplash()});this.ui.spinner.spin(document.body,mxResources.get("authorizing"))&&this.execute(mxUtils.bind(this,function(){this.ui.spinner.stop();var a=mxUtils.bind(this,function(b){"picker modal-dialog-bg picker-dialog-bg"==mxEvent.getSource(b).className&& (mxEvent.removeListener(document,"click",a),this.libraryPicker.setVisible(!1))}),c=gapi.auth.getToken().access_token;if(null==this.libraryPicker||this.libraryPickerToken!=c){this.libraryPickerToken=c;var c=(new google.picker.DocsView(google.picker.ViewId.FOLDERS)).setParent("root").setIncludeFolders(!0).setMimeTypes(this.libraryMimeType+",application/xml,text/plain,application/octet-stream"),d=(new google.picker.DocsView).setIncludeFolders(!0).setMimeTypes(this.libraryMimeType+",application/xml,text/plain,application/octet-stream"), e=(new google.picker.DocsView).setEnableTeamDrives(!0).setIncludeFolders(!0).setMimeTypes(this.libraryMimeType+",application/xml,text/plain,application/octet-stream"),g=(new google.picker.DocsUploadView).setIncludeFolders(!0);this.libraryPicker=(new google.picker.PickerBuilder).setOAuthToken(this.libraryPickerToken).setLocale(mxLanguage).setAppId(this.appId).enableFeature(google.picker.Feature.SUPPORT_TEAM_DRIVES).addView(c).addView(d).addView(e).addView(google.picker.ViewId.RECENTLY_PICKED).addView(g).setCallback(mxUtils.bind(this, -function(b){b.action!=google.picker.Action.PICKED&&b.action!=google.picker.Action.CANCEL||mxEvent.removeListener(document,"click",a);b.action==google.picker.Action.PICKED&&this.filePicked(b)})).build()}mxEvent.addListener(document,"click",a);this.libraryPicker.setVisible(!0)}))};DriveClient.prototype.showPermissions=function(a){this.checkToken(mxUtils.bind(this,function(){var b=new gapi.drive.share.ShareClient(this.appId);b.setOAuthToken(gapi.auth.getToken().access_token);b.setItemIds([a]);b.showSettingsDialog()}))};DropboxFile=function(a,b,c){DrawioFile.call(this,a,b);this.stat=c};mxUtils.extend(DropboxFile,DrawioFile);DropboxFile.prototype.getHash=function(){return"D"+encodeURIComponent(this.stat.path_display.substring(1))};DropboxFile.prototype.getMode=function(){return App.MODE_DROPBOX};DropboxFile.prototype.isAutosaveOptional=function(){return!0};DropboxFile.prototype.getTitle=function(){return this.stat.name};DropboxFile.prototype.isRenamable=function(){return!0}; +function(b){b.action!=google.picker.Action.PICKED&&b.action!=google.picker.Action.CANCEL||mxEvent.removeListener(document,"click",a);b.action==google.picker.Action.PICKED&&this.filePicked(b)})).build()}mxEvent.addListener(document,"click",a);this.libraryPicker.setVisible(!0)}))};DriveClient.prototype.showPermissions=function(a){this.checkToken(mxUtils.bind(this,function(){var b=new gapi.drive.share.ShareClient(this.appId);b.setOAuthToken(gapi.auth.getToken().access_token);b.setItemIds([a]);b.showSettingsDialog()}))}; +DriveClient.prototype.getRealtimeAge=function(a,b){var c=null!=b&&null!=b.value&&null!=b.value.modifiedDate?b.value.modifiedDate.json:null,d=0;null!=c&&0<c&&(c=new Date(c),d=(new Date(a.modifiedDate)).getTime()-c.getTime());return d}; +DriveClient.prototype.convertRealtimeFile=function(a,b,c){this.getRealtimeData(a.id,mxUtils.bind(this,function(d){var e=this.getRealtimeAge(a,d);if(0>e){var g=this.convertJsonToXml(d);console.log("converted realtime model",e,d,g);b(new DriveFile(this.ui,mxUtils.getXml(g),a))}else console.log("using newer XML file",e,d),this.getXmlFile(a,null,b,c)}),mxUtils.bind(this,function(){console.log("no realtime data, using XML file");this.getXmlFile(a,null,b,c)}))}; +DriveClient.prototype.convertJsonToXml=function(a,b){if(null==a.value||null==a.value.diagrams)throw Error("Invalid JSON: no diagrams in root map");for(var c=mxUtils.createXmlDocument().createElement("mxfile"),d=a.value.diagrams.value,e=0;e<d.length;e++)try{var g=this.decodeJsonPage(d[e].value,c.ownerDocument.createElement("diagram"),b);c.appendChild(g)}catch(k){throw Error("Error on page "+e+": "+k.stack);}return c}; +DriveClient.prototype.decodeJsonPage=function(a,b,c){if(null==a)throw Error("Invalid JSON: json for page is null");var d=new mxCodec,e=this.createJsonCell(a.root,d);if(null==e)throw Error("Invalid JSON: no root cell for page");d=d.encode(new mxGraphModel(e));this.decodeJsonViewState(a,d);c?b.appendChild(d):mxUtils.setTextContent(b,this.ui.editor.graph.compressNode(d));null!=a.id?b.setAttribute("id",a.id.json):this.node.setAttribute("id",Editor.guid());null!=a.name&&b.setAttribute("name",a.name.json); +return b}; +DriveClient.prototype.decodeJsonViewState=function(a,b){var c=null!=a.pageFormat?a.pageFormat.json:null;null!=c&&0<c.length&&(c=c.split(","),1<c.length&&(b.setAttribute("pageWidth",c[0]),b.setAttribute("pageHeight",c[1])));c=null!=a.backgroundColor?a.backgroundColor.json:null;null!=c&&0<c.length&&b.setAttribute("background",c);c=null!=a.backgroundImage?a.backgroundImage.json:null;null!=c&&0<c.length&&b.setAttribute("backgroundImage",c);b.setAttribute("fold",null!=a.foldingEnabled?a.foldingEnabled.json:"0"); +b.setAttribute("pageScale",null!=a.pageScale?a.pageScale.json:mxGraph.prototype.pageScale);b.setAttribute("math",null!=a.mathEnabled?a.mathEnabled.json:"0");b.setAttribute("shadow",null!=a.shadowVisible?a.shadowVisible.json:"0");return b}; +DriveClient.prototype.createJsonCell=function(a,b){if(null!=a&&null!=a.id){var c=a.value,d=this.jsonToCell(c,b);b.putObject(a.id,d);d.source=null!=c.source?this.createJsonCell(c.source,b):null;d.target=null!=c.target?this.createJsonCell(c.target,b):null;this.createJsonCell(c.parent,b);for(var e=0;e<c.children.value.length;e++){var g=this.createJsonCell(c.children.value[e],b);if(null!=g)d.insert(g);else throw Error("Invalid JSON: no child "+e+" for cell "+a.id);}return d}return null!=a&&null!=a.ref? +b.objects[a.ref]:null}; +DriveClient.prototype.jsonToCell=function(a,b){var c=new mxCell;c.id=a.cellId.json;c.vertex="vertex"==a.type.json;c.edge="edge"==a.type.json;c.connectable="0"!=a.connectable.json;c.collapsed="1"==a.collapsed.json;c.visible="0"!=a.visible.json;c.style=null!=a.style?a.style.json:null;c.value=null!=a.xmlValue?mxUtils.parseXml(a.xmlValue.json).documentElement:null!=a.value?a.value.json:null;c.geometry=null!=a.geometry?b.decode(mxUtils.parseXml(a.geometry.json).documentElement):null;return c};DropboxFile=function(a,b,c){DrawioFile.call(this,a,b);this.stat=c};mxUtils.extend(DropboxFile,DrawioFile);DropboxFile.prototype.getHash=function(){return"D"+encodeURIComponent(this.stat.path_display.substring(1))};DropboxFile.prototype.getMode=function(){return App.MODE_DROPBOX};DropboxFile.prototype.isAutosaveOptional=function(){return!0};DropboxFile.prototype.getTitle=function(){return this.stat.name};DropboxFile.prototype.isRenamable=function(){return!0}; DropboxFile.prototype.save=function(a,b,c){this.doSave(this.getTitle(),b,c)};DropboxFile.prototype.saveAs=function(a,b,c){this.doSave(a,b,c)};DropboxFile.prototype.doSave=function(a,b,c){var d=this.stat.name;this.stat.name=a;DrawioFile.prototype.save.apply(this,arguments);this.stat.name=d;this.saveFile(a,!1,b,c)}; -DropboxFile.prototype.saveFile=function(a,b,c,d){this.isEditable()?this.savingFile?null!=d&&d({code:App.ERROR_BUSY}):(b=mxUtils.bind(this,function(b){if(b){this.savingFile=!0;var e=this.isModified,l=this.isModified(),m=mxUtils.bind(this,function(){this.setModified(!1);this.isModified=function(){return l}});m();var n=mxUtils.bind(this,function(b){var f=this.stat.path_display.lastIndexOf("/"),f=1<f?this.stat.path_display.substring(1,f+1):null;this.ui.dropbox.saveFile(a,b,mxUtils.bind(this,function(a){this.savingFile= -!1;this.isModified=e;this.stat=a;this.contentChanged();null!=c&&c()}),mxUtils.bind(this,function(a){this.savingFile=!1;this.isModified=e;this.setModified(l||this.isModified());if(null!=d){if(null!=a&&null!=a.retry){var b=a.retry;a.retry=function(){m();b()}}d(a)}}),f)});this.ui.useCanvasForExport&&/(\.png)$/i.test(this.getTitle())?this.ui.getEmbeddedPng(mxUtils.bind(this,function(a){n(this.ui.base64ToBlob(a,"image/png"))}),d,this.ui.getCurrentFile()!=this?this.getData():null):n(this.getData())}else null!= +DropboxFile.prototype.saveFile=function(a,b,c,d){this.isEditable()?this.savingFile?null!=d&&d({code:App.ERROR_BUSY}):(b=mxUtils.bind(this,function(b){if(b){this.savingFile=!0;var e=this.isModified,k=this.isModified(),l=mxUtils.bind(this,function(){this.setModified(!1);this.isModified=function(){return k}});l();var m=mxUtils.bind(this,function(b){var f=this.stat.path_display.lastIndexOf("/"),f=1<f?this.stat.path_display.substring(1,f+1):null;this.ui.dropbox.saveFile(a,b,mxUtils.bind(this,function(a){this.savingFile= +!1;this.isModified=e;this.stat=a;this.contentChanged();null!=c&&c()}),mxUtils.bind(this,function(a){this.savingFile=!1;this.isModified=e;this.setModified(k||this.isModified());if(null!=d){if(null!=a&&null!=a.retry){var b=a.retry;a.retry=function(){l();b()}}d(a)}}),f)});this.ui.useCanvasForExport&&/(\.png)$/i.test(this.getTitle())?this.ui.getEmbeddedPng(mxUtils.bind(this,function(a){m(this.ui.base64ToBlob(a,"image/png"))}),d,this.ui.getCurrentFile()!=this?this.getData():null):m(this.getData())}else null!= d&&d()}),this.getTitle()==a?b(!0):this.ui.dropbox.checkExists(a,b)):null!=c&&c()};DropboxFile.prototype.rename=function(a,b,c){this.ui.dropbox.renameFile(this,a,mxUtils.bind(this,function(d){this.hasSameExtension(a,this.getTitle())?(this.stat=d,this.descriptorChanged(),null!=b&&b()):(this.stat=d,this.descriptorChanged(),this.save(!0,b,c))}),c)};DropboxLibrary=function(a,b,c){DropboxFile.call(this,a,b,c)};mxUtils.extend(DropboxLibrary,DropboxFile);DropboxLibrary.prototype.isAutosave=function(){return!0};DropboxLibrary.prototype.doSave=function(a,b,c){this.saveFile(a,!1,b,c)};DropboxLibrary.prototype.open=function(){};DropboxClient=function(a){DrawioClient.call(this,a,"dbauth");this.client=new Dropbox({clientId:App.DROPBOX_APPKEY});this.client.setAccessToken(this.token)};mxUtils.extend(DropboxClient,DrawioClient);DropboxClient.prototype.appPath="/drawio/";DropboxClient.prototype.extension=".html";DropboxClient.prototype.writingFile=!1;DropboxClient.prototype.maxRetries=4; DropboxClient.prototype.logout=function(){this.clearPersistentToken();this.setUser(null);this.token=null;this.client.authTokenRevoke().then(mxUtils.bind(this,function(){this.client.setAccessToken(null)}))}; DropboxClient.prototype.updateUser=function(a,b,c){var d=!0,e=window.setTimeout(mxUtils.bind(this,function(){d=!1;b({code:App.ERROR_TIMEOUT})}),this.ui.timeout),g=this.client.usersGetCurrentAccount();g.then(mxUtils.bind(this,function(b){window.clearTimeout(e);d&&(this.setUser(new DrawioUser(b.account_id,b.email,b.name.display_name)),a())}));g["catch"](mxUtils.bind(this,function(g){window.clearTimeout(e);d&&(null==g||401!==g.status||c?b({message:mxResources.get("accessDenied")}):(this.setUser(null), this.client.setAccessToken(null),this.authenticate(mxUtils.bind(this,function(){this.updateUser(a,b,!0)}),b)))}))}; -DropboxClient.prototype.authenticate=function(a,b){if(null==window.onDropboxCallback){var c=mxUtils.bind(this,function(){var d=!0;this.ui.showAuthDialog(this,!0,mxUtils.bind(this,function(e,g){null!=window.open(this.client.getAuthenticationUrl("https://"+window.location.host+"/dropbox.html"),"dbauth")?window.onDropboxCallback=mxUtils.bind(this,function(l,m){if(d){window.onDropboxCallback=null;d=!1;try{null==l?b({message:mxResources.get("accessDenied"),retry:c}):(null!=g&&g(),this.client.setAccessToken(l), -this.setUser(null),e&&this.setPersistentToken(l),a())}catch(n){b(n)}finally{null!=m&&m.close()}}else null!=m&&m.close()}):b({message:mxResources.get("serviceUnavailableOrBlocked"),retry:c})}),mxUtils.bind(this,function(){d&&(window.onDropboxCallback=null,d=!1,b({message:mxResources.get("accessDenied"),retry:c}))}))});c()}else b({code:App.ERROR_BUSY})}; -DropboxClient.prototype.executePromise=function(a,b,c){var d=mxUtils.bind(this,function(g){var l=!0,m=window.setTimeout(mxUtils.bind(this,function(){l=!1;c({code:App.ERROR_TIMEOUT,retry:e})}),this.ui.timeout);a.then(mxUtils.bind(this,function(a){window.clearTimeout(m);l&&null!=b&&b(a)}));a["catch"](mxUtils.bind(this,function(a){window.clearTimeout(m);l&&(null==a||500!=a.status&&400!=a.status&&401!=a.status?c({message:mxResources.get("error")+" "+a.status}):(this.setUser(null),this.client.setAccessToken(null), +DropboxClient.prototype.authenticate=function(a,b){if(null==window.onDropboxCallback){var c=mxUtils.bind(this,function(){var d=!0;this.ui.showAuthDialog(this,!0,mxUtils.bind(this,function(e,g){null!=window.open(this.client.getAuthenticationUrl("https://"+window.location.host+"/dropbox.html"),"dbauth")?window.onDropboxCallback=mxUtils.bind(this,function(k,l){if(d){window.onDropboxCallback=null;d=!1;try{null==k?b({message:mxResources.get("accessDenied"),retry:c}):(null!=g&&g(),this.client.setAccessToken(k), +this.setUser(null),e&&this.setPersistentToken(k),a())}catch(m){b(m)}finally{null!=l&&l.close()}}else null!=l&&l.close()}):b({message:mxResources.get("serviceUnavailableOrBlocked"),retry:c})}),mxUtils.bind(this,function(){d&&(window.onDropboxCallback=null,d=!1,b({message:mxResources.get("accessDenied"),retry:c}))}))});c()}else b({code:App.ERROR_BUSY})}; +DropboxClient.prototype.executePromise=function(a,b,c){var d=mxUtils.bind(this,function(g){var k=!0,l=window.setTimeout(mxUtils.bind(this,function(){k=!1;c({code:App.ERROR_TIMEOUT,retry:e})}),this.ui.timeout);a.then(mxUtils.bind(this,function(a){window.clearTimeout(l);k&&null!=b&&b(a)}));a["catch"](mxUtils.bind(this,function(a){window.clearTimeout(l);k&&(null==a||500!=a.status&&400!=a.status&&401!=a.status?c({message:mxResources.get("error")+" "+a.status}):(this.setUser(null),this.client.setAccessToken(null), g?c({message:mxResources.get("accessDenied"),retry:mxUtils.bind(this,function(){this.authenticate(function(){e(!0)},c)})}):this.authenticate(function(){d(!0)},c)))}))}),e=mxUtils.bind(this,function(a){null==this.user?this.updateUser(function(){e(!0)},c,a):d(a)});null===this.client.getAccessToken()?this.authenticate(function(){e(!0)},c):e(!1)};DropboxClient.prototype.getLibrary=function(a,b,c){this.getFile(a,b,c,!0)}; -DropboxClient.prototype.getFile=function(a,b,c,d){d=null!=d?d:!1;var e=/\.png$/i.test(a);if(/^https:\/\//i.test(a)||/\.v(dx|sdx?)$/i.test(a)||/\.gliffy$/i.test(a)||!this.ui.useCanvasForExport&&e){var g=mxUtils.bind(this,function(){var d=a.split("/");this.ui.convertFile(a,0<d.length?d[d.length-1]:a,null,this.extension,b,c)});null!=this.token?g():this.authenticate(g,c)}else g={path:"/"+a},null!=urlParams.rev&&(g.rev=urlParams.rev),this.readFile(g,mxUtils.bind(this,function(c,g){var l=e?c.lastIndexOf(","): --1,f=null;0<l&&(l=this.ui.extractGraphModelFromPng(c.substring(l+1)),null!=l&&0<l.length?c=l:f=new LocalFile(this,c,a,!0));b(null!=f?f:d?new DropboxLibrary(this.ui,c,g):new DropboxFile(this.ui,c,g))}),c,e)}; -DropboxClient.prototype.readFile=function(a,b,c,d){var e=mxUtils.bind(this,function(l){var m=!0,n=window.setTimeout(mxUtils.bind(this,function(){m=!1;c({code:App.ERROR_TIMEOUT})}),this.ui.timeout),f=this.client.filesGetMetadata({path:"/"+a.path.substring(1),include_deleted:!1});f.then(mxUtils.bind(this,function(a){}));f["catch"](function(a){window.clearTimeout(n);m&&null!=a&&409==a.status&&(m=!1,c({message:mxResources.get("fileNotFound")}))});f=this.client.filesDownload(a);f.then(mxUtils.bind(this, -function(a){window.clearTimeout(n);if(m){m=!1;try{var e=new FileReader;e.onload=mxUtils.bind(this,function(c){b(e.result,a)});d?e.readAsDataURL(a.fileBlob):e.readAsText(a.fileBlob)}catch(q){c(q)}}}));f["catch"](mxUtils.bind(this,function(a){window.clearTimeout(n);m&&(m=!1,null==a||500!=a.status&&400!=a.status&&401!=a.status?c({message:mxResources.get("error")+" "+a.status}):(this.client.setAccessToken(null),this.setUser(null),l?c({message:mxResources.get("accessDenied"),retry:mxUtils.bind(this,function(){this.authenticate(function(){g(!0)}, +DropboxClient.prototype.getFile=function(a,b,c,d){d=null!=d?d:!1;var e=/\.png$/i.test(a);if(/^https:\/\//i.test(a)||/\.v(dx|sdx?)$/i.test(a)||/\.gliffy$/i.test(a)||!this.ui.useCanvasForExport&&e){var g=mxUtils.bind(this,function(){var d=a.split("/");this.ui.convertFile(a,0<d.length?d[d.length-1]:a,null,this.extension,b,c)});null!=this.token?g():this.authenticate(g,c)}else g={path:"/"+a},null!=urlParams.rev&&(g.rev=urlParams.rev),this.readFile(g,mxUtils.bind(this,function(c,g){var k=e?c.lastIndexOf(","): +-1,f=null;0<k&&(k=this.ui.extractGraphModelFromPng(c.substring(k+1)),null!=k&&0<k.length?c=k:f=new LocalFile(this,c,a,!0));b(null!=f?f:d?new DropboxLibrary(this.ui,c,g):new DropboxFile(this.ui,c,g))}),c,e)}; +DropboxClient.prototype.readFile=function(a,b,c,d){var e=mxUtils.bind(this,function(k){var l=!0,m=window.setTimeout(mxUtils.bind(this,function(){l=!1;c({code:App.ERROR_TIMEOUT})}),this.ui.timeout),f=this.client.filesGetMetadata({path:"/"+a.path.substring(1),include_deleted:!1});f.then(mxUtils.bind(this,function(a){}));f["catch"](function(a){window.clearTimeout(m);l&&null!=a&&409==a.status&&(l=!1,c({message:mxResources.get("fileNotFound")}))});f=this.client.filesDownload(a);f.then(mxUtils.bind(this, +function(a){window.clearTimeout(m);if(l){l=!1;try{var e=new FileReader;e.onload=mxUtils.bind(this,function(c){b(e.result,a)});d?e.readAsDataURL(a.fileBlob):e.readAsText(a.fileBlob)}catch(u){c(u)}}}));f["catch"](mxUtils.bind(this,function(a){window.clearTimeout(m);l&&(l=!1,null==a||500!=a.status&&400!=a.status&&401!=a.status?c({message:mxResources.get("error")+" "+a.status}):(this.client.setAccessToken(null),this.setUser(null),k?c({message:mxResources.get("accessDenied"),retry:mxUtils.bind(this,function(){this.authenticate(function(){g(!0)}, c)})}):this.authenticate(function(){e(!0)},c)))}))}),g=mxUtils.bind(this,function(a){null==this.user?this.updateUser(function(){g(!0)},c,a):e(a)});null===this.client.getAccessToken()?this.authenticate(function(){g(!0)},c):g(!1)}; DropboxClient.prototype.checkExists=function(a,b,c){var d=this.client.filesGetMetadata({path:"/"+a.toLowerCase(),include_deleted:!1});this.executePromise(d,mxUtils.bind(this,function(d){c?b(!1,!0,d):this.ui.confirm(mxResources.get("replaceIt",[a]),function(){b(!0,!0,d)},function(){b(!1,!0,d)})}),function(a){b(!0,!1)})}; -DropboxClient.prototype.renameFile=function(a,b,c,d){if(/[\\\/:\?\*"\|]/.test(b))d({message:mxResources.get("dropboxCharsNotAllowed")});else{if(null!=a&&null!=b){var e=a.stat.path_display.substring(1),g=e.lastIndexOf("/");0<g&&(b=e.substring(0,g+1)+b)}null!=a&&null!=b&&a.stat.path_lower.substring(1)!==b.toLowerCase()?this.checkExists(b,mxUtils.bind(this,function(e,g,n){e?(e=mxUtils.bind(this,function(e){e=this.client.filesMove({from_path:a.stat.path_display,to_path:"/"+b,autorename:!1});this.executePromise(e, -c,d)}),g&&n.path_lower.substring(1)!==b.toLowerCase()?(g=this.client.filesDelete({path:"/"+b.toLowerCase()}),this.executePromise(g,e,d)):e()):d()})):d({message:mxResources.get("invalidName")})}};DropboxClient.prototype.insertLibrary=function(a,b,c,d){this.insertFile(a,b,c,d,!0)}; +DropboxClient.prototype.renameFile=function(a,b,c,d){if(/[\\\/:\?\*"\|]/.test(b))d({message:mxResources.get("dropboxCharsNotAllowed")});else{if(null!=a&&null!=b){var e=a.stat.path_display.substring(1),g=e.lastIndexOf("/");0<g&&(b=e.substring(0,g+1)+b)}null!=a&&null!=b&&a.stat.path_lower.substring(1)!==b.toLowerCase()?this.checkExists(b,mxUtils.bind(this,function(e,g,m){e?(e=mxUtils.bind(this,function(e){e=this.client.filesMove({from_path:a.stat.path_display,to_path:"/"+b,autorename:!1});this.executePromise(e, +c,d)}),g&&m.path_lower.substring(1)!==b.toLowerCase()?(g=this.client.filesDelete({path:"/"+b.toLowerCase()}),this.executePromise(g,e,d)):e()):d()})):d({message:mxResources.get("invalidName")})}};DropboxClient.prototype.insertLibrary=function(a,b,c,d){this.insertFile(a,b,c,d,!0)}; DropboxClient.prototype.insertFile=function(a,b,c,d,e){e=null!=e?e:!1;this.checkExists(a,mxUtils.bind(this,function(g){g?this.saveFile(a,b,mxUtils.bind(this,function(a){e?c(new DropboxLibrary(this.ui,b,a)):c(new DropboxFile(this.ui,b,a))}),d):d()}))}; DropboxClient.prototype.saveFile=function(a,b,c,d,e){/[\\\/:\?\*"\|]/.test(a)?d({message:mxResources.get("dropboxCharsNotAllowed")}):15E7<=b.length?d({message:mxResources.get("drawingTooLarge")+" ("+this.ui.formatFileSize(b.length)+" / 150 MB)"}):(a=this.client.filesUpload({path:"/"+(null!=e?e:"")+a,mode:{".tag":"overwrite"},mute:!0,contents:new Blob([b],{type:"text/plain"})}),this.executePromise(a,c,d))}; -DropboxClient.prototype.pickLibrary=function(a){Dropbox.choose({linkType:"direct",cancel:mxUtils.bind(this,function(){}),success:mxUtils.bind(this,function(b){if(this.ui.spinner.spin(document.body,mxResources.get("loading"))){var c=mxUtils.bind(this,function(a){this.ui.spinner.stop();this.ui.handleError(a)}),d=b[0].link.indexOf(this.appPath);if(0<d){var e=decodeURIComponent(b[0].link.substring(d+this.appPath.length-1));this.readFile({path:e},mxUtils.bind(this,function(d,l){if(null!=l&&l.id==b[0].id)try{this.ui.spinner.stop(), -a(e.substring(1),new DropboxLibrary(this.ui,d,l))}catch(m){this.ui.handleError(m)}else this.createLibrary(b[0],a,c)}),c)}else this.createLibrary(b[0],a,c)}})})}; +DropboxClient.prototype.pickLibrary=function(a){Dropbox.choose({linkType:"direct",cancel:mxUtils.bind(this,function(){}),success:mxUtils.bind(this,function(b){if(this.ui.spinner.spin(document.body,mxResources.get("loading"))){var c=mxUtils.bind(this,function(a){this.ui.spinner.stop();this.ui.handleError(a)}),d=b[0].link.indexOf(this.appPath);if(0<d){var e=decodeURIComponent(b[0].link.substring(d+this.appPath.length-1));this.readFile({path:e},mxUtils.bind(this,function(d,k){if(null!=k&&k.id==b[0].id)try{this.ui.spinner.stop(), +a(e.substring(1),new DropboxLibrary(this.ui,d,k))}catch(l){this.ui.handleError(l)}else this.createLibrary(b[0],a,c)}),c)}else this.createLibrary(b[0],a,c)}})})}; DropboxClient.prototype.createLibrary=function(a,b,c){this.ui.confirm(mxResources.get("note")+": "+mxResources.get("fileWillBeSavedInAppFolder",[a.name]),mxUtils.bind(this,function(){this.ui.loadUrl(a.link,mxUtils.bind(this,function(d){this.insertFile(a.name,d,mxUtils.bind(this,function(a){try{this.ui.spinner.stop(),b(a.getHash().substring(1),a)}catch(g){c(g)}}),c,!0)}),c)}),mxUtils.bind(this,function(){this.ui.spinner.stop()}))}; DropboxClient.prototype.pickFile=function(a,b){null!=Dropbox.choose?(a=null!=a?a:mxUtils.bind(this,function(a,b){this.ui.loadFile(null!=a?"D"+encodeURIComponent(a):b.getHash(),null,b)}),Dropbox.choose({linkType:"direct",cancel:mxUtils.bind(this,function(){}),success:mxUtils.bind(this,function(c){if(this.ui.spinner.spin(document.body,mxResources.get("loading")))if(b)this.ui.spinner.stop(),a(c[0].link);else{var d=mxUtils.bind(this,function(a){this.ui.spinner.stop();this.ui.handleError(a)}),e=mxUtils.bind(this, -function(b,c){this.ui.spinner.stop();a(b,c)}),g=/\.png$/i.test(c[0].name);if(/\.vsdx$/i.test(c[0].name)||/\.gliffy$/i.test(c[0].name)||!this.ui.useCanvasForExport&&g)e(c[0].link);else{var l=c[0].link.indexOf(this.appPath);if(0<l){var m=decodeURIComponent(c[0].link.substring(l+this.appPath.length-1));this.readFile({path:m},mxUtils.bind(this,function(b,f){if(null!=f&&f.id==c[0].id){var h=g?b.lastIndexOf(","):-1;this.ui.spinner.stop();var l=null;0<h&&(h=this.ui.extractGraphModelFromPng(b.substring(h+ -1)),null!=h&&0<h.length?b=h:l=new LocalFile(this,b,m,!0));a(m.substring(1),null!=l?l:new DropboxFile(this.ui,b,f))}else this.createFile(c[0],e,d)}),d,g)}else this.createFile(c[0],e,d)}}})})):this.ui.handleError({message:mxResources.get("serviceUnavailableOrBlocked")})}; +function(b,c){this.ui.spinner.stop();a(b,c)}),g=/\.png$/i.test(c[0].name);if(/\.vsdx$/i.test(c[0].name)||/\.gliffy$/i.test(c[0].name)||!this.ui.useCanvasForExport&&g)e(c[0].link);else{var k=c[0].link.indexOf(this.appPath);if(0<k){var l=decodeURIComponent(c[0].link.substring(k+this.appPath.length-1));this.readFile({path:l},mxUtils.bind(this,function(b,f){if(null!=f&&f.id==c[0].id){var h=g?b.lastIndexOf(","):-1;this.ui.spinner.stop();var k=null;0<h&&(h=this.ui.extractGraphModelFromPng(b.substring(h+ +1)),null!=h&&0<h.length?b=h:k=new LocalFile(this,b,l,!0));a(l.substring(1),null!=k?k:new DropboxFile(this.ui,b,f))}else this.createFile(c[0],e,d)}),d,g)}else this.createFile(c[0],e,d)}}})})):this.ui.handleError({message:mxResources.get("serviceUnavailableOrBlocked")})}; DropboxClient.prototype.createFile=function(a,b,c){var d=/(\.png)$/i.test(a.name);this.ui.loadUrl(a.link,mxUtils.bind(this,function(e){null!=e&&0<e.length?this.ui.confirm(mxResources.get("note")+": "+mxResources.get("fileWillBeSavedInAppFolder",[a.name]),mxUtils.bind(this,function(){var g=d?e.lastIndexOf(","):-1;0<g&&(g=this.ui.extractGraphModelFromPng(e.substring(g+1)),null!=g&&0<g.length&&(e=g));this.insertFile(a.name,e,mxUtils.bind(this,function(c){b(a.name,c)}),c)}),mxUtils.bind(this,function(){this.ui.spinner.stop()})): (this.ui.spinner.stop(),c({message:mxResources.get("errorLoadingFile")}))}),c,d)};OneDriveFile=function(a,b,c){DrawioFile.call(this,a,b);this.meta=c};mxUtils.extend(OneDriveFile,DrawioFile);OneDriveFile.prototype.getIdOf=function(a,b){return(a.parentReference.driveId?a.parentReference.driveId+"/":"")+(b?a.parentReference.id:a.id)};OneDriveFile.prototype.getId=function(){return this.getIdOf(this.meta)};OneDriveFile.prototype.getParentId=function(){return this.getIdOf(this.meta,!0)};OneDriveFile.prototype.getHash=function(){return"W"+encodeURIComponent(this.getId())}; OneDriveFile.prototype.getMode=function(){return App.MODE_ONEDRIVE};OneDriveFile.prototype.isAutosaveOptional=function(){return!0};OneDriveFile.prototype.getTitle=function(){return this.meta.name};OneDriveFile.prototype.isRenamable=function(){return!0};OneDriveFile.prototype.save=function(a,b,c){this.doSave(this.getTitle(),b,c)};OneDriveFile.prototype.saveAs=function(a,b,c){this.doSave(a,b,c)}; OneDriveFile.prototype.doSave=function(a,b,c){var d=this.meta.name;this.meta.name=a;DrawioFile.prototype.save.apply(this,arguments);this.meta.name=d;this.saveFile(a,!1,b,c)}; -OneDriveFile.prototype.saveFile=function(a,b,c,d){if(this.isEditable())if(this.savingFile)null!=d&&d({code:App.ERROR_BUSY});else if(this.savingFile=!0,this.getTitle()==a){var e=this.isModified,g=this.isModified(),l=mxUtils.bind(this,function(){this.setModified(!1);this.isModified=function(){return g}});l();this.ui.oneDrive.saveFile(this,mxUtils.bind(this,function(a){this.savingFile=!1;this.isModified=e;this.meta=a;this.contentChanged();null!=c&&c()}),mxUtils.bind(this,function(a){this.savingFile= -!1;this.isModified=e;this.setModified(g||this.isModified());if(null!=d){if(null!=a&&null!=a.retry){var b=a.retry;a.retry=function(){l();b()}}d(a)}}))}else this.ui.oneDrive.insertFile(a,this.getData(),mxUtils.bind(this,function(a){this.savingFile=!1;null!=c&&c();this.ui.fileLoaded(a)}),mxUtils.bind(this,function(){this.savingFile=!1;null!=d&&d()}));else null!=c&&c()}; +OneDriveFile.prototype.saveFile=function(a,b,c,d){if(this.isEditable())if(this.savingFile)null!=d&&d({code:App.ERROR_BUSY});else if(this.savingFile=!0,this.getTitle()==a){var e=this.isModified,g=this.isModified(),k=mxUtils.bind(this,function(){this.setModified(!1);this.isModified=function(){return g}});k();this.ui.oneDrive.saveFile(this,mxUtils.bind(this,function(a){this.savingFile=!1;this.isModified=e;this.meta=a;this.contentChanged();null!=c&&c()}),mxUtils.bind(this,function(a){this.savingFile= +!1;this.isModified=e;this.setModified(g||this.isModified());if(null!=d){if(null!=a&&null!=a.retry){var b=a.retry;a.retry=function(){k();b()}}d(a)}}))}else this.ui.oneDrive.insertFile(a,this.getData(),mxUtils.bind(this,function(a){this.savingFile=!1;null!=c&&c();this.ui.fileLoaded(a)}),mxUtils.bind(this,function(){this.savingFile=!1;null!=d&&d()}));else null!=c&&c()}; OneDriveFile.prototype.rename=function(a,b,c){this.ui.oneDrive.renameFile(this,a,mxUtils.bind(this,function(d){this.hasSameExtension(a,this.getTitle())?(this.meta=d,this.descriptorChanged(),null!=b&&b()):(this.meta=d,this.save(!0,b,c))}),c)};OneDriveFile.prototype.move=function(a,b,c){this.ui.oneDrive.moveFile(this.getId(),a,mxUtils.bind(this,function(a){this.meta=a;this.descriptorChanged();null!=b&&b(a)}),c)};OneDriveLibrary=function(a,b,c){OneDriveFile.call(this,a,b,c)};mxUtils.extend(OneDriveLibrary,OneDriveFile);OneDriveLibrary.prototype.isAutosave=function(){return!0};OneDriveLibrary.prototype.doSave=function(a,b,c){this.saveFile(a,!1,b,c)};OneDriveLibrary.prototype.open=function(){};OneDriveClient=function(a){DrawioClient.call(this,a,"odauth");this.token=this.token};mxUtils.extend(OneDriveClient,DrawioClient);OneDriveClient.prototype.clientId="test.draw.io"==window.location.hostname?"2e598409-107f-4b59-89ca-d7723c8e00a4":"45c10911-200f-4e27-a666-9e9fca147395";OneDriveClient.prototype.scopes="user.read files.readwrite.all";OneDriveClient.prototype.redirectUri="https://"+window.location.hostname+"/onedrive3.html";OneDriveClient.prototype.extension=".html"; OneDriveClient.prototype.baseUrl="https://graph.microsoft.com/v1.0";OneDriveClient.prototype.get=function(a,b,c){a=new mxXmlRequest(a,null,"GET");a.setRequestHeaders=mxUtils.bind(this,function(a,b){a.setRequestHeader("Authorization","Bearer "+this.token)});a.send(b,c);return a}; OneDriveClient.prototype.updateUser=function(a,b,c){var d=!0,e=window.setTimeout(mxUtils.bind(this,function(){d=!1;b({code:App.ERROR_TIMEOUT})}),this.ui.timeout);this.get(this.baseUrl+"/me",mxUtils.bind(this,function(g){window.clearTimeout(e);d&&(200>g.getStatus()||300<=g.getStatus()?c?b({message:mxResources.get("accessDenied")}):(this.logout(),this.authenticate(mxUtils.bind(this,function(){this.updateUser(a,b,!0)}),b)):(g=JSON.parse(g.getText()),this.setUser(new DrawioUser(g.id,null,g.displayName)), a()))}),b)}; -OneDriveClient.prototype.authenticate=function(a,b){if(null==window.onOneDriveCallback){var c=mxUtils.bind(this,function(){var d=!0;this.ui.showAuthDialog(this,!0,mxUtils.bind(this,function(e,g){var l="https://login.microsoftonline.com/common/oauth2/v2.0/authorize?client_id="+this.clientId+"&response_type=token&redirect_uri="+encodeURIComponent(this.redirectUri)+"&scope="+encodeURIComponent(this.scopes)+"&response_mode=fragment",l=window.open(l,"odauth",["width=525,height=525","top="+(window.screenY+ -Math.max(window.outerHeight-525,0)/2),"left="+(window.screenX+Math.max(window.outerWidth-525,0)/2),"status=no,resizable=yes,toolbar=no,menubar=no,scrollbars=yes"].join());null!=l&&(window.onOneDriveCallback=mxUtils.bind(this,function(l,n){if(d){window.onOneDriveCallback=null;d=!1;try{null==l?b({message:mxResources.get("accessDenied"),retry:c}):(null!=g&&g(),this.setUser(null),this.token=l,e&&this.setPersistentToken(l),a())}catch(f){b(f)}finally{null!=n&&n.close()}}else null!=n&&n.close()}),l.focus())}), +OneDriveClient.prototype.authenticate=function(a,b){if(null==window.onOneDriveCallback){var c=mxUtils.bind(this,function(){var d=!0;this.ui.showAuthDialog(this,!0,mxUtils.bind(this,function(e,g){var k="https://login.microsoftonline.com/common/oauth2/v2.0/authorize?client_id="+this.clientId+"&response_type=token&redirect_uri="+encodeURIComponent(this.redirectUri)+"&scope="+encodeURIComponent(this.scopes)+"&response_mode=fragment",k=window.open(k,"odauth",["width=525,height=525","top="+(window.screenY+ +Math.max(window.outerHeight-525,0)/2),"left="+(window.screenX+Math.max(window.outerWidth-525,0)/2),"status=no,resizable=yes,toolbar=no,menubar=no,scrollbars=yes"].join());null!=k&&(window.onOneDriveCallback=mxUtils.bind(this,function(k,m){if(d){window.onOneDriveCallback=null;d=!1;try{null==k?b({message:mxResources.get("accessDenied"),retry:c}):(null!=g&&g(),this.setUser(null),this.token=k,e&&this.setPersistentToken(k),a())}catch(f){b(f)}finally{null!=m&&m.close()}}else null!=m&&m.close()}),k.focus())}), mxUtils.bind(this,function(){d&&(window.onOneDriveCallback=null,d=!1,b({message:mxResources.get("accessDenied"),retry:c}))}))});c()}else b({code:App.ERROR_BUSY})}; -OneDriveClient.prototype.executeRequest=function(a,b,c){var d=mxUtils.bind(this,function(g){var l=!0,m=window.setTimeout(mxUtils.bind(this,function(){l=!1;c({code:App.ERROR_TIMEOUT,retry:e})}),this.ui.timeout);this.get(a,mxUtils.bind(this,function(a){window.clearTimeout(m);l&&(200<=a.getStatus()&&299>=a.getStatus()||404==a.getStatus()?b(a):401===a.getStatus()||400===a.getStatus()?(this.clearPersistentToken(),this.setUser(null),this.token=null,g?c({message:mxResources.get("accessDenied"),retry:mxUtils.bind(this, +OneDriveClient.prototype.executeRequest=function(a,b,c){var d=mxUtils.bind(this,function(g){var k=!0,l=window.setTimeout(mxUtils.bind(this,function(){k=!1;c({code:App.ERROR_TIMEOUT,retry:e})}),this.ui.timeout);this.get(a,mxUtils.bind(this,function(a){window.clearTimeout(l);k&&(200<=a.getStatus()&&299>=a.getStatus()||404==a.getStatus()?b(a):401===a.getStatus()||400===a.getStatus()?(this.clearPersistentToken(),this.setUser(null),this.token=null,g?c({message:mxResources.get("accessDenied"),retry:mxUtils.bind(this, function(){this.authenticate(function(){e(!0)},c)})}):this.authenticate(function(){d(!0)},c)):c(this.parseRequestText(a)))}),c)}),e=mxUtils.bind(this,function(a){null==this.user?this.updateUser(function(){e(!0)},c,a):d(a)});null==this.token?this.authenticate(function(){e(!0)},c):e(!1)};OneDriveClient.prototype.getItemRef=function(a){var b=a.split("/");return 1<b.length?{driveId:b[0],id:b[1]}:{id:a}}; OneDriveClient.prototype.getItemURL=function(a,b){var c=a.split("/");return 1<c.length?(b?"":this.baseUrl)+"/drives/"+c[0]+"/items/"+c[1]:(b?"":this.baseUrl)+"/me/drive/items/"+a};OneDriveClient.prototype.getLibrary=function(a,b,c){this.getFile(a,b,c,!1,!0)}; -OneDriveClient.prototype.getFile=function(a,b,c,d,e){e=null!=e?e:!1;this.executeRequest(this.getItemURL(a),mxUtils.bind(this,function(a){if(200<=a.getStatus()&&299>=a.getStatus()){var d=JSON.parse(a.getText()),g=/\.png$/i.test(d.name);if(/\.v(dx|sdx?)$/i.test(d.name)||/\.gliffy$/i.test(d.name)||!this.ui.useCanvasForExport&&g)this.ui.convertFile(d["@microsoft.graph.downloadUrl"],d.name,null!=d.file?d.file.mimeType:null,this.extension,b,c);else{var n=!0,f=window.setTimeout(mxUtils.bind(this,function(){n= -!1;c({code:App.ERROR_TIMEOUT})}),this.ui.timeout);this.ui.loadUrl(d["@microsoft.graph.downloadUrl"],mxUtils.bind(this,function(a){window.clearTimeout(f);if(n){var c=g?a.lastIndexOf(","):-1,h=null;0<c&&(c=this.ui.extractGraphModelFromPng(a.substring(c+1)),null!=c&&0<c.length?a=c:h=new LocalFile(this.ui,a,d.name,!0));null!=h?b(h):e?b(new OneDriveLibrary(this.ui,a,d)):b(new OneDriveFile(this.ui,a,d))}}),mxUtils.bind(this,function(a){window.clearTimeout(f);n&&c(this.parseRequestText(a))}),g||null!=d.file&& +OneDriveClient.prototype.getFile=function(a,b,c,d,e){e=null!=e?e:!1;this.executeRequest(this.getItemURL(a),mxUtils.bind(this,function(a){if(200<=a.getStatus()&&299>=a.getStatus()){var d=JSON.parse(a.getText()),g=/\.png$/i.test(d.name);if(/\.v(dx|sdx?)$/i.test(d.name)||/\.gliffy$/i.test(d.name)||!this.ui.useCanvasForExport&&g)this.ui.convertFile(d["@microsoft.graph.downloadUrl"],d.name,null!=d.file?d.file.mimeType:null,this.extension,b,c);else{var m=!0,f=window.setTimeout(mxUtils.bind(this,function(){m= +!1;c({code:App.ERROR_TIMEOUT})}),this.ui.timeout);this.ui.loadUrl(d["@microsoft.graph.downloadUrl"],mxUtils.bind(this,function(a){window.clearTimeout(f);if(m){var c=g?a.lastIndexOf(","):-1,h=null;0<c&&(c=this.ui.extractGraphModelFromPng(a.substring(c+1)),null!=c&&0<c.length?a=c:h=new LocalFile(this.ui,a,d.name,!0));null!=h?b(h):e?b(new OneDriveLibrary(this.ui,a,d)):b(new OneDriveFile(this.ui,a,d))}}),mxUtils.bind(this,function(a){window.clearTimeout(f);m&&c(this.parseRequestText(a))}),g||null!=d.file&& null!=d.file.mimeType&&"image/"==d.file.mimeType.substring(0,6))}}else c(this.parseRequestText(a))}),c)};OneDriveClient.prototype.renameFile=function(a,b,c,d){null!=a&&null!=b&&this.checkExists(a.getParentId(),b,!1,mxUtils.bind(this,function(e){e?this.writeFile(this.getItemURL(a.getId()),JSON.stringify({name:b}),"PATCH","application/json",c,d):d()}))}; OneDriveClient.prototype.moveFile=function(a,b,c,d){b=this.getItemRef(b);var e=this.getItemRef(a);b.driveId!=e.driveId?d({message:mxResources.get("cannotMoveOneDrive",null,"Moving a file between accounts is not supported yet.")}):this.writeFile(this.getItemURL(a),JSON.stringify({parentReference:b}),"PATCH","application/json",c,d)};OneDriveClient.prototype.insertLibrary=function(a,b,c,d,e){this.insertFile(a,b,c,d,!0,e)}; -OneDriveClient.prototype.insertFile=function(a,b,c,d,e,g){e=null!=e?e:!1;this.checkExists(g,a,!0,mxUtils.bind(this,function(l){l?(l="/me/drive/root",null!=g&&(l=this.getItemURL(g,!0)),this.writeFile(this.baseUrl+l+"/children/"+a+"/content",b,"PUT",null,mxUtils.bind(this,function(a){e?c(new OneDriveLibrary(this.ui,b,a)):c(new OneDriveFile(this.ui,b,a))}),d)):d()}))}; +OneDriveClient.prototype.insertFile=function(a,b,c,d,e,g){e=null!=e?e:!1;this.checkExists(g,a,!0,mxUtils.bind(this,function(k){k?(k="/me/drive/root",null!=g&&(k=this.getItemURL(g,!0)),this.writeFile(this.baseUrl+k+"/children/"+a+"/content",b,"PUT",null,mxUtils.bind(this,function(a){e?c(new OneDriveLibrary(this.ui,b,a)):c(new OneDriveFile(this.ui,b,a))}),d)):d()}))}; OneDriveClient.prototype.checkExists=function(a,b,c,d){var e="/me/drive/root";null!=a&&(e=this.getItemURL(a,!0));this.executeRequest(this.baseUrl+e+"/children/"+b,mxUtils.bind(this,function(a){404==a.getStatus()?d(!0):c?(this.ui.spinner.stop(),this.ui.confirm(mxResources.get("replaceIt",[b]),function(){d(!0)},function(){d(!1)})):(this.ui.spinner.stop(),this.ui.showError(mxResources.get("error"),mxResources.get("fileExists"),mxResources.get("ok"),function(){d(!1)}))}),function(a){d(!1)},!0)}; OneDriveClient.prototype.saveFile=function(a,b,c){var d=mxUtils.bind(this,function(d){var e=this.getItemURL(a.getId())+"/content/";this.writeFile(e,d,"PUT",null,b,c)});this.ui.useCanvasForExport&&/(\.png)$/i.test(a.meta.name)?this.ui.getEmbeddedPng(mxUtils.bind(this,function(a){d(this.ui.base64ToBlob(a,"image/png"))}),c,this.ui.getCurrentFile()!=a?a.getData():null):d(a.getData())}; -OneDriveClient.prototype.writeFile=function(a,b,c,d,e,g){if(null!=a&&null!=b){var l=mxUtils.bind(this,function(n){var f=!0,h=window.setTimeout(mxUtils.bind(this,function(){f=!1;g({code:App.ERROR_TIMEOUT,retry:m})}),this.ui.timeout),k=new mxXmlRequest(a,b,c);k.setRequestHeaders=mxUtils.bind(this,function(a,b){a.setRequestHeader("Content-Type",d||" ");a.setRequestHeader("Authorization","Bearer "+this.token)});k.send(mxUtils.bind(this,function(a){window.clearTimeout(h);f&&(200<=a.getStatus()&&299>=a.getStatus()? -e(JSON.parse(a.getText())):401===a.getStatus()?(this.clearPersistentToken(),this.setUser(null),this.token=null,n?g({message:mxResources.get("accessDenied"),retry:mxUtils.bind(this,function(){this.authenticate(function(){m(!0)},g)})}):this.authenticate(function(){l(!0)},g)):g(this.parseRequestText(a)))}),mxUtils.bind(this,function(a){window.clearTimeout(h);f&&g(this.parseRequestText(a))}))}),m=mxUtils.bind(this,function(a){null==this.user?this.updateUser(function(){m(!0)},g,a):l(a)});null==this.token? -this.authenticate(function(){m(!0)},g):m(!1)}else g({message:mxResources.get("unknownError")})};OneDriveClient.prototype.parseRequestText=function(a){var b={message:mxResources.get("unknownError")};try{b=JSON.parse(a.getText())}catch(c){}return b};OneDriveClient.prototype.pickLibrary=function(a){this.pickFile(function(b){a(b)})}; +OneDriveClient.prototype.writeFile=function(a,b,c,d,e,g){if(null!=a&&null!=b){var k=mxUtils.bind(this,function(m){var f=!0,h=window.setTimeout(mxUtils.bind(this,function(){f=!1;g({code:App.ERROR_TIMEOUT,retry:l})}),this.ui.timeout),n=new mxXmlRequest(a,b,c);n.setRequestHeaders=mxUtils.bind(this,function(a,b){a.setRequestHeader("Content-Type",d||" ");a.setRequestHeader("Authorization","Bearer "+this.token)});n.send(mxUtils.bind(this,function(a){window.clearTimeout(h);f&&(200<=a.getStatus()&&299>=a.getStatus()? +e(JSON.parse(a.getText())):401===a.getStatus()?(this.clearPersistentToken(),this.setUser(null),this.token=null,m?g({message:mxResources.get("accessDenied"),retry:mxUtils.bind(this,function(){this.authenticate(function(){l(!0)},g)})}):this.authenticate(function(){k(!0)},g)):g(this.parseRequestText(a)))}),mxUtils.bind(this,function(a){window.clearTimeout(h);f&&g(this.parseRequestText(a))}))}),l=mxUtils.bind(this,function(a){null==this.user?this.updateUser(function(){l(!0)},g,a):k(a)});null==this.token? +this.authenticate(function(){l(!0)},g):l(!1)}else g({message:mxResources.get("unknownError")})};OneDriveClient.prototype.parseRequestText=function(a){var b={message:mxResources.get("unknownError")};try{b=JSON.parse(a.getText())}catch(c){}return b};OneDriveClient.prototype.pickLibrary=function(a){this.pickFile(function(b){a(b)})}; OneDriveClient.prototype.pickFolder=function(a){OneDrive.save({clientId:this.clientId,action:"query",openInNewWindow:!0,advanced:{redirectUri:this.redirectUri,queryParameters:"select=id,name,parentReference"},success:mxUtils.bind(this,function(b){this.token=b.accessToken;a(b)}),cancel:function(){},error:mxUtils.bind(this,function(a){this.ui.showError(mxResources.get("error"),a)})})}; OneDriveClient.prototype.pickFile=function(a){a=null!=a?a:mxUtils.bind(this,function(a){this.ui.loadFile("W"+encodeURIComponent(a))});OneDrive.open({clientId:this.clientId,action:"query",multiSelect:!1,advanced:{redirectUri:this.redirectUri,queryParameters:"select=id,name,parentReference"},success:mxUtils.bind(this,function(b){null!=b&&null!=b.value&&0<b.value.length&&(this.token=b.accessToken,a(OneDriveFile.prototype.getIdOf(b.value[0]),b))}),cancel:function(){},error:mxUtils.bind(this,function(a){this.ui.showError(mxResources.get("error"), a)})})};OneDriveClient.prototype.logout=function(){if(isLocalStorage){var a=localStorage.getItem("odpickerv7cache");null!=a&&'{"odsdkLoginHint":{'==a.substring(0,19)&&localStorage.removeItem("odpickerv7cache")}this.clearPersistentToken();this.setUser(null);this.token=null};GitHubFile=function(a,b,c){DrawioFile.call(this,a,b);this.meta=c};mxUtils.extend(GitHubFile,DrawioFile);GitHubFile.prototype.getHash=function(){return encodeURIComponent("H"+encodeURIComponent(this.meta.org)+"/"+(null!=this.meta.repo?encodeURIComponent(this.meta.repo)+"/"+(null!=this.meta.ref?this.meta.ref+(null!=this.meta.path?"/"+this.meta.path:""):""):""))}; GitHubFile.prototype.getPublicUrl=function(a){null!=this.meta.download_url?mxUtils.get(this.meta.download_url,mxUtils.bind(this,function(b){a(200<=b.getStatus()&&299>=b.getStatus()?this.meta.download_url:null)}),mxUtils.bind(this,function(){a(null)})):a(null)};GitHubFile.prototype.getMode=function(){return App.MODE_GITHUB};GitHubFile.prototype.isAutosave=function(){return!1};GitHubFile.prototype.getTitle=function(){return this.meta.name};GitHubFile.prototype.isRenamable=function(){return!1}; GitHubFile.prototype.save=function(a,b,c){this.doSave(this.getTitle(),b,c)};GitHubFile.prototype.saveAs=function(a,b,c){this.doSave(a,b,c)};GitHubFile.prototype.doSave=function(a,b,c){var d=this.meta.name;this.meta.name=a;DrawioFile.prototype.save.apply(this,arguments);this.meta.name=d;this.saveFile(a,!1,b,c)}; -GitHubFile.prototype.saveFile=function(a,b,c,d){if(this.isEditable())if(this.savingFile)null!=d&&d({code:App.ERROR_BUSY});else if(this.savingFile=!0,this.getTitle()==a){var e=this.isModified,g=this.isModified(),l=mxUtils.bind(this,function(){this.setModified(!1);this.isModified=function(){return g}});l();this.ui.gitHub.saveFile(this,mxUtils.bind(this,function(a){this.savingFile=!1;this.isModified=e;this.meta.sha=a.content.sha;this.meta.html_url=a.content.html_url;this.meta.download_url=a.content.download_url; -this.contentChanged();null!=c&&c()}),mxUtils.bind(this,function(a){this.savingFile=!1;this.isModified=e;this.setModified(g||this.isModified());this.isModified()&&this.addUnsavedStatus();if(null!=d){if(null!=a&&null!=a.retry){var b=a.retry;a.retry=function(){l();b()}}d(a)}}))}else this.ui.pickFolder(App.MODE_GITHUB,mxUtils.bind(this,function(b){this.ui.gitHub.insertFile(a,this.getData(),mxUtils.bind(this,function(a){this.savingFile=!1;null!=c&&c();this.ui.fileLoaded(a)}),mxUtils.bind(this,function(){this.savingFile= +GitHubFile.prototype.saveFile=function(a,b,c,d){if(this.isEditable())if(this.savingFile)null!=d&&d({code:App.ERROR_BUSY});else if(this.savingFile=!0,this.getTitle()==a){var e=this.isModified,g=this.isModified(),k=mxUtils.bind(this,function(){this.setModified(!1);this.isModified=function(){return g}});k();this.ui.gitHub.saveFile(this,mxUtils.bind(this,function(a){this.savingFile=!1;this.isModified=e;this.meta.sha=a.content.sha;this.meta.html_url=a.content.html_url;this.meta.download_url=a.content.download_url; +this.contentChanged();null!=c&&c()}),mxUtils.bind(this,function(a){this.savingFile=!1;this.isModified=e;this.setModified(g||this.isModified());this.isModified()&&this.addUnsavedStatus();if(null!=d){if(null!=a&&null!=a.retry){var b=a.retry;a.retry=function(){k();b()}}d(a)}}))}else this.ui.pickFolder(App.MODE_GITHUB,mxUtils.bind(this,function(b){this.ui.gitHub.insertFile(a,this.getData(),mxUtils.bind(this,function(a){this.savingFile=!1;null!=c&&c();this.ui.fileLoaded(a)}),mxUtils.bind(this,function(){this.savingFile= !1;null!=d&&d()}),!1,b)}));else null!=c&&c()};GitHubLibrary=function(a,b,c){GitHubFile.call(this,a,b,c)};mxUtils.extend(GitHubLibrary,GitHubFile);GitHubLibrary.prototype.doSave=function(a,b,c){this.saveFile(a,!1,b,c)};GitHubLibrary.prototype.open=function(){};GitHubClient=function(a){DrawioClient.call(this,a,"ghauth")};mxUtils.extend(GitHubClient,DrawioClient);GitHubClient.prototype.clientId="test.draw.io"==window.location.hostname?"23bc97120b9035515661":"89c9e4624ca416554489";GitHubClient.prototype.scope="repo";GitHubClient.prototype.extension=".xml";GitHubClient.prototype.baseUrl="https://api.github.com";GitHubClient.prototype.maxFileSize=1E6; GitHubClient.prototype.updateUser=function(a,b,c){var d=!0,e=window.setTimeout(mxUtils.bind(this,function(){d=!1;b({code:App.ERROR_TIMEOUT})}),this.ui.timeout);mxUtils.get(this.baseUrl+"/user?access_token="+this.token,mxUtils.bind(this,function(g){window.clearTimeout(e);d&&(401===g.getStatus()?c?b({message:mxResources.get("accessDenied")}):(this.logout(),this.authenticate(mxUtils.bind(this,function(){this.updateUser(a,b,!0)}),b)):200>g.getStatus()||300<=g.getStatus()?b({message:mxResources.get("accessDenied")}): (g=JSON.parse(g.getText()),this.setUser(new DrawioUser(g.id,g.email,g.name)),a()))}))}; -GitHubClient.prototype.authenticate=function(a,b){if(null==window.onGitHubCallback){var c=mxUtils.bind(this,function(){var d=!0;this.ui.showAuthDialog(this,!0,mxUtils.bind(this,function(e,g){null!=window.open("https://github.com/login/oauth/authorize?client_id="+this.clientId+"&scope="+this.scope,"ghauth")?window.onGitHubCallback=mxUtils.bind(this,function(l,m){if(d)if(window.onGitHubCallback=null,d=!1,null==l)b({message:mxResources.get("accessDenied"),retry:c});else{var n=mxUtils.bind(this,function(){var c= -!0,d=window.setTimeout(mxUtils.bind(this,function(){c=!1;b({code:App.ERROR_TIMEOUT,retry:n})}),this.ui.timeout);mxUtils.get("/github?client_id="+this.clientId+"&code="+l,mxUtils.bind(this,function(f){window.clearTimeout(d);if(c)try{if(200>f.getStatus()||300<=f.getStatus())b({message:mxResources.get("cannotLogin")});else{null!=g&&g();var h=f.getText();this.token=h.substring(h.indexOf("=")+1,h.indexOf("&"));this.setUser(null);e&&this.setPersistentToken(this.token);a()}}catch(u){b(u)}finally{null!=m&& -m.close()}}))});n()}else null!=m&&m.close()}):b({message:mxResources.get("serviceUnavailableOrBlocked"),retry:c})}),mxUtils.bind(this,function(){d&&(window.onGitHubCallback=null,d=!1,b({message:mxResources.get("accessDenied"),retry:c}))}))});c()}else b({code:App.ERROR_BUSY})}; -GitHubClient.prototype.executeRequest=function(a,b,c){var d=mxUtils.bind(this,function(g){var l=!0,m=window.setTimeout(mxUtils.bind(this,function(){l=!1;c({code:App.ERROR_TIMEOUT,retry:e})}),this.ui.timeout),n=this.token;a.setRequestHeaders=function(a,b){a.setRequestHeader("Authorization","token "+n)};a.send(mxUtils.bind(this,function(){window.clearTimeout(m);if(l)if(200<=a.getStatus()&&299>=a.getStatus())b(a);else if(401===a.getStatus())g?c({message:mxResources.get("accessDenied"),retry:mxUtils.bind(this, -function(){this.authenticate(function(){e(!0)},c)})}):this.authenticate(function(){d(!0)},c);else if(403===a.getStatus()){var f=!1;try{var h=JSON.parse(a.getText());null!=h&&null!=h.errors&&0<h.errors.length&&(f="too_large"==h.errors[0].code)}catch(k){}c({message:mxResources.get(f?"drawingTooLarge":"forbidden")})}else 404===a.getStatus()?c({message:mxResources.get("fileNotFound")}):409===a.getStatus()?c({status:409}):c({message:mxResources.get("error")+" "+a.getStatus()})}),c)}),e=mxUtils.bind(this, +GitHubClient.prototype.authenticate=function(a,b){if(null==window.onGitHubCallback){var c=mxUtils.bind(this,function(){var d=!0;this.ui.showAuthDialog(this,!0,mxUtils.bind(this,function(e,g){null!=window.open("https://github.com/login/oauth/authorize?client_id="+this.clientId+"&scope="+this.scope,"ghauth")?window.onGitHubCallback=mxUtils.bind(this,function(k,l){if(d)if(window.onGitHubCallback=null,d=!1,null==k)b({message:mxResources.get("accessDenied"),retry:c});else{var m=mxUtils.bind(this,function(){var c= +!0,d=window.setTimeout(mxUtils.bind(this,function(){c=!1;b({code:App.ERROR_TIMEOUT,retry:m})}),this.ui.timeout);mxUtils.get("/github?client_id="+this.clientId+"&code="+k,mxUtils.bind(this,function(f){window.clearTimeout(d);if(c)try{if(200>f.getStatus()||300<=f.getStatus())b({message:mxResources.get("cannotLogin")});else{null!=g&&g();var h=f.getText();this.token=h.substring(h.indexOf("=")+1,h.indexOf("&"));this.setUser(null);e&&this.setPersistentToken(this.token);a()}}catch(p){b(p)}finally{null!=l&& +l.close()}}))});m()}else null!=l&&l.close()}):b({message:mxResources.get("serviceUnavailableOrBlocked"),retry:c})}),mxUtils.bind(this,function(){d&&(window.onGitHubCallback=null,d=!1,b({message:mxResources.get("accessDenied"),retry:c}))}))});c()}else b({code:App.ERROR_BUSY})}; +GitHubClient.prototype.executeRequest=function(a,b,c){var d=mxUtils.bind(this,function(g){var k=!0,l=window.setTimeout(mxUtils.bind(this,function(){k=!1;c({code:App.ERROR_TIMEOUT,retry:e})}),this.ui.timeout),m=this.token;a.setRequestHeaders=function(a,b){a.setRequestHeader("Authorization","token "+m)};a.send(mxUtils.bind(this,function(){window.clearTimeout(l);if(k)if(200<=a.getStatus()&&299>=a.getStatus())b(a);else if(401===a.getStatus())g?c({message:mxResources.get("accessDenied"),retry:mxUtils.bind(this, +function(){this.authenticate(function(){e(!0)},c)})}):this.authenticate(function(){d(!0)},c);else if(403===a.getStatus()){var f=!1;try{var h=JSON.parse(a.getText());null!=h&&null!=h.errors&&0<h.errors.length&&(f="too_large"==h.errors[0].code)}catch(n){}c({message:mxResources.get(f?"drawingTooLarge":"forbidden")})}else 404===a.getStatus()?c({message:mxResources.get("fileNotFound")}):409===a.getStatus()?c({status:409}):c({message:mxResources.get("error")+" "+a.getStatus()})}),c)}),e=mxUtils.bind(this, function(a){null==this.user?this.updateUser(function(){e(!0)},c,a):d(a)});null==this.token?this.authenticate(function(){e(!0)},c):e(!1)};GitHubClient.prototype.getLibrary=function(a,b,c){this.getFile(a,b,c,!0)}; -GitHubClient.prototype.getFile=function(a,b,c,d,e){d=null!=d?d:!1;var g=a.split("/"),l=g[0],m=g[1],n=g[2];a=g.slice(3,g.length).join("/");g=/\.png$/i.test(a);!e&&(/\.v(dx|sdx?)$/i.test(a)||/\.gliffy$/i.test(a)||!this.ui.useCanvasForExport&&g)?null!=this.token?(e=this.baseUrl+"/repos/"+l+"/"+m+"/contents/"+a+"?ref="+n+"&token="+this.token,g=a.split("/"),this.ui.convertFile(e,0<g.length?g[g.length-1]:a,null,this.extension,b,c)):c({message:mxResources.get("accessDenied")}):(a=new mxXmlRequest(this.baseUrl+ -"/repos/"+l+"/"+m+"/contents/"+a+"?ref="+n,null,"GET"),this.executeRequest(a,mxUtils.bind(this,function(a){try{b(this.createGitHubFile(l,m,n,JSON.parse(a.getText()),d))}catch(h){c(h)}}),c))}; +GitHubClient.prototype.getFile=function(a,b,c,d,e){d=null!=d?d:!1;var g=a.split("/"),k=g[0],l=g[1],m=g[2];a=g.slice(3,g.length).join("/");g=/\.png$/i.test(a);!e&&(/\.v(dx|sdx?)$/i.test(a)||/\.gliffy$/i.test(a)||!this.ui.useCanvasForExport&&g)?null!=this.token?(e=this.baseUrl+"/repos/"+k+"/"+l+"/contents/"+a+"?ref="+m+"&token="+this.token,g=a.split("/"),this.ui.convertFile(e,0<g.length?g[g.length-1]:a,null,this.extension,b,c)):c({message:mxResources.get("accessDenied")}):(a=new mxXmlRequest(this.baseUrl+ +"/repos/"+k+"/"+l+"/contents/"+a+"?ref="+m,null,"GET"),this.executeRequest(a,mxUtils.bind(this,function(a){try{b(this.createGitHubFile(k,l,m,JSON.parse(a.getText()),d))}catch(h){c(h)}}),c))}; GitHubClient.prototype.createGitHubFile=function(a,b,c,d,e){a={org:a,repo:b,ref:c,name:d.name,path:d.path,sha:d.sha,html_url:d.html_url,download_url:d.download_url};b=d.content;"base64"===d.encoding&&(/\.jpe?g$/i.test(d.name)?b="data:image/jpeg;base64,"+b:/\.gif$/i.test(d.name)?b="data:image/gif;base64,"+b:/\.png$/i.test(d.name)?(d=this.ui.extractGraphModelFromPng(b),b=null!=d&&0<d.length?d:"data:image/png;base64,"+b):b=Base64.decode(b));return e?new GitHubLibrary(this.ui,b,a):new GitHubFile(this.ui, b,a)};GitHubClient.prototype.insertLibrary=function(a,b,c,d,e){this.insertFile(a,b,c,d,!0,e,!1)}; -GitHubClient.prototype.insertFile=function(a,b,c,d,e,g,l){e=null!=e?e:!1;g=g.split("/");var m=g[0],n=g[1],f=g[2],h=g.slice(3,g.length).join("/");0<h.length&&(h+="/");h+=a;this.checkExists(m+"/"+n+"/"+f+"/"+h,!0,mxUtils.bind(this,function(g,q){g?e?(l||(b=Base64.encode(b)),this.showCommitDialog(a,!0,mxUtils.bind(this,function(a){this.writeFile(m,n,f,h,a,b,q,mxUtils.bind(this,function(a){try{var b=JSON.parse(a.getText());c(this.createGitHubFile(m,n,f,b.content,e))}catch(y){d(y)}}),d)}),d)):c(new GitHubFile(this.ui, -b,{org:m,repo:n,ref:f,name:a,path:h,sha:q,isNew:!0})):d()}))};GitHubClient.prototype.showCommitDialog=function(a,b,c,d){var e=this.ui.spinner.pause();a=new FilenameDialog(this.ui,mxResources.get(b?"addedFile":"updateFile",[a]),mxResources.get("ok"),mxUtils.bind(this,function(a){e();c(a)}),mxResources.get("commitMessage"),null,null,null,null,mxUtils.bind(this,function(){d()}));this.ui.showDialog(a.container,300,80,!0,!1);a.init()}; -GitHubClient.prototype.writeFile=function(a,b,c,d,e,g,l,m,n){g.length>=this.maxFileSize?n({message:mxResources.get("drawingTooLarge")+" ("+this.ui.formatFileSize(g.length)+" / 1 MB)"}):(c={path:d,branch:decodeURIComponent(c),message:e,content:g},null!=l&&(c.sha=l),a=new mxXmlRequest(this.baseUrl+"/repos/"+a+"/"+b+"/contents/"+d,JSON.stringify(c),"PUT"),this.executeRequest(a,mxUtils.bind(this,function(a){m(a)}),n))}; +GitHubClient.prototype.insertFile=function(a,b,c,d,e,g,k){e=null!=e?e:!1;g=g.split("/");var l=g[0],m=g[1],f=g[2],h=g.slice(3,g.length).join("/");0<h.length&&(h+="/");h+=a;this.checkExists(l+"/"+m+"/"+f+"/"+h,!0,mxUtils.bind(this,function(g,u){g?e?(k||(b=Base64.encode(b)),this.showCommitDialog(a,!0,mxUtils.bind(this,function(a){this.writeFile(l,m,f,h,a,b,u,mxUtils.bind(this,function(a){try{var b=JSON.parse(a.getText());c(this.createGitHubFile(l,m,f,b.content,e))}catch(y){d(y)}}),d)}),d)):c(new GitHubFile(this.ui, +b,{org:l,repo:m,ref:f,name:a,path:h,sha:u,isNew:!0})):d()}))};GitHubClient.prototype.showCommitDialog=function(a,b,c,d){var e=this.ui.spinner.pause();a=new FilenameDialog(this.ui,mxResources.get(b?"addedFile":"updateFile",[a]),mxResources.get("ok"),mxUtils.bind(this,function(a){e();c(a)}),mxResources.get("commitMessage"),null,null,null,null,mxUtils.bind(this,function(){d()}));this.ui.showDialog(a.container,300,80,!0,!1);a.init()}; +GitHubClient.prototype.writeFile=function(a,b,c,d,e,g,k,l,m){g.length>=this.maxFileSize?m({message:mxResources.get("drawingTooLarge")+" ("+this.ui.formatFileSize(g.length)+" / 1 MB)"}):(c={path:d,branch:decodeURIComponent(c),message:e,content:g},null!=k&&(c.sha=k),a=new mxXmlRequest(this.baseUrl+"/repos/"+a+"/"+b+"/contents/"+d,JSON.stringify(c),"PUT"),this.executeRequest(a,mxUtils.bind(this,function(a){l(a)}),m))}; GitHubClient.prototype.checkExists=function(a,b,c){this.getFile(a,mxUtils.bind(this,function(d){if(b&&null!=d.meta){var e=this.ui.spinner.pause();this.ui.confirm(mxResources.get("replaceIt",[a]),function(){e();c(!0,d.meta.sha)},function(){e();c(!1)})}else this.ui.spinner.stop(),this.ui.showError(mxResources.get("error"),mxResources.get("fileExists"),mxResources.get("ok"),function(){c(!1)})}),mxUtils.bind(this,function(a){c(!0)}),null,!0)}; -GitHubClient.prototype.saveFile=function(a,b,c){var d=a.meta.org,e=a.meta.repo,g=a.meta.ref,l=a.meta.path;this.showCommitDialog(a.meta.name,null==a.meta.sha||a.meta.isNew,mxUtils.bind(this,function(m){var n=mxUtils.bind(this,function(f,h){this.writeFile(d,e,g,l,m,h,f,mxUtils.bind(this,function(c){delete a.meta.isNew;b(JSON.parse(c.getText()))}),mxUtils.bind(this,function(a){null!=a&&409==a.status?(resume=this.ui.spinner.pause(),a=new ErrorDialog(this.ui,mxResources.get("errorSavingFile"),mxResources.get("fileChangedOverwrite"), -mxResources.get("cancel"),mxUtils.bind(this,function(){c()}),null,mxResources.get("overwrite"),mxUtils.bind(this,function(){resume();this.getFile(d+"/"+e+"/"+g+"/"+l,mxUtils.bind(this,function(a){n(a.meta.sha,h)}),mxUtils.bind(this,function(){n(null,h)}))})),this.ui.showDialog(a.container,340,150,!0,!1),a.init()):c(a)}))});this.ui.useCanvasForExport&&/(\.png)$/i.test(l)?this.ui.getEmbeddedPng(mxUtils.bind(this,function(b){n(a.meta.sha,b)}),c,this.ui.getCurrentFile()!=a?a.getData():null):n(a.meta.sha, +GitHubClient.prototype.saveFile=function(a,b,c){var d=a.meta.org,e=a.meta.repo,g=a.meta.ref,k=a.meta.path;this.showCommitDialog(a.meta.name,null==a.meta.sha||a.meta.isNew,mxUtils.bind(this,function(l){var m=mxUtils.bind(this,function(f,h){this.writeFile(d,e,g,k,l,h,f,mxUtils.bind(this,function(c){delete a.meta.isNew;b(JSON.parse(c.getText()))}),mxUtils.bind(this,function(a){null!=a&&409==a.status?(resume=this.ui.spinner.pause(),a=new ErrorDialog(this.ui,mxResources.get("externalChanges"),mxResources.get("fileChangedOverwrite"), +mxResources.get("cancel"),mxUtils.bind(this,function(){c()}),null,mxResources.get("overwrite"),mxUtils.bind(this,function(){resume();this.getFile(d+"/"+e+"/"+g+"/"+k,mxUtils.bind(this,function(a){m(a.meta.sha,h)}),mxUtils.bind(this,function(){m(null,h)}))})),this.ui.showDialog(a.container,340,150,!0,!1),a.init()):c(a)}))});this.ui.useCanvasForExport&&/(\.png)$/i.test(k)?this.ui.getEmbeddedPng(mxUtils.bind(this,function(b){m(a.meta.sha,b)}),c,this.ui.getCurrentFile()!=a?a.getData():null):m(a.meta.sha, Base64.encode(a.getData()))}),mxUtils.bind(this,function(){c()}))};GitHubClient.prototype.pickLibrary=function(a){this.pickFile(a)};GitHubClient.prototype.pickFolder=function(a){this.showGitHubDialog(!1,a)};GitHubClient.prototype.pickFile=function(a){a=null!=a?a:mxUtils.bind(this,function(a){this.ui.loadFile("H"+encodeURIComponent(a))});this.showGitHubDialog(!0,a)}; -GitHubClient.prototype.showGitHubDialog=function(a,b){var c=null,d=null,e=null,g=null,l=document.createElement("div");l.style.whiteSpace="nowrap";l.style.overflow="hidden";l.style.height="224px";var m=document.createElement("h3");mxUtils.write(m,mxResources.get(a?"selectFile":"selectFolder"));m.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:12px";l.appendChild(m);var n=document.createElement("div");n.style.whiteSpace="nowrap";n.style.overflow="auto";n.style.height="194px"; -l.appendChild(n);var f=new CustomDialog(this.ui,l,mxUtils.bind(this,function(){b(c+"/"+d+"/"+encodeURIComponent(e)+"/"+g)}));this.ui.showDialog(f.container,340,270,!0,!0);a&&f.okButton.parentNode.removeChild(f.okButton);var h=mxUtils.bind(this,function(a,b){var c=document.createElement("a");c.setAttribute("href","javascript:void(0);");mxUtils.write(c,a);mxEvent.addListener(c,"click",b);return c}),k=mxUtils.bind(this,function(a){var b=document.createElement("div");b.style.marginBottom="8px";b.appendChild(h(c+ -"/"+d,mxUtils.bind(this,function(){g=null;A()})));a||(mxUtils.write(b," / "),b.appendChild(h(decodeURIComponent(e),mxUtils.bind(this,function(){g=null;y()}))));if(null!=g&&0<g.length){var f=g.split("/");for(a=0;a<f.length;a++)(function(a){mxUtils.write(b," / ");b.appendChild(h(f[a],mxUtils.bind(this,function(){g=f.slice(0,a+1).join("/");u()})))})(a)}n.appendChild(b)}),q=mxUtils.bind(this,function(a){this.ui.handleError(a,null,mxUtils.bind(this,function(){this.ui.spinner.stop();null!=this.getUser()? -(g=e=d=c=null,A()):this.ui.hideDialog()}))}),u=mxUtils.bind(this,function(){var l=new mxXmlRequest(this.baseUrl+"/repos/"+c+"/"+d+"/contents/"+g+"?ref="+encodeURIComponent(e),null,"GET");f.okButton.removeAttribute("disabled");n.innerHTML="";this.ui.spinner.spin(n,mxResources.get("loading"));this.executeRequest(l,mxUtils.bind(this,function(f){k();this.ui.spinner.stop();var l=JSON.parse(f.getText());n.appendChild(h("../ [Up]",mxUtils.bind(this,function(){if(""==g)g=null,A();else{var a=g.split("/"); -g=a.slice(0,a.length-1).join("/");u()}})));mxUtils.br(n);null==l||0==l.length?mxUtils.write(n,mxResources.get("noFiles")):(f=mxUtils.bind(this,function(f){for(var k=0;k<l.length;k++)mxUtils.bind(this,function(l){f==("dir"==l.type)&&(n.appendChild(h(l.name+("dir"==l.type?"/":""),mxUtils.bind(this,function(){"dir"==l.type?(g=l.path,u()):a&&"file"==l.type&&(this.ui.hideDialog(),b(c+"/"+d+"/"+encodeURIComponent(e)+"/"+l.path))}))),mxUtils.br(n))})(l[k])}),f(!0),a&&f(!1))}),q)}),p=null,v=null,y=mxUtils.bind(this, -function(a){null==a&&(n.innerHTML="",a=1);var b=new mxXmlRequest(this.baseUrl+"/repos/"+c+"/"+d+"/branches?per_page=100&page="+a,null,"GET");f.okButton.setAttribute("disabled","disabled");this.ui.spinner.spin(n,mxResources.get("loading"));null!=p&&null!=p.parentNode&&p.parentNode.removeChild(p);p=document.createElement("a");p.style.display="block";p.setAttribute("href","javascript:void(0);");mxUtils.write(p,mxResources.get("more")+"...");var l=mxUtils.bind(this,function(){mxEvent.removeListener(n, -"scroll",v);y(a+1)});mxEvent.addListener(p,"click",l);this.executeRequest(b,mxUtils.bind(this,function(b){this.ui.spinner.stop();1==a&&(k(!0),n.appendChild(h("../ [Up]",mxUtils.bind(this,function(){g=null;A()}))),mxUtils.br(n));b=JSON.parse(b.getText());if(null==b||0==b.length)mxUtils.write(n,mxResources.get("noFiles"));else{for(var c=0;c<b.length;c++)mxUtils.bind(this,function(a){n.appendChild(h(a.name,mxUtils.bind(this,function(){e=a.name;g="";u()})));mxUtils.br(n)})(b[c]);100==b.length&&(n.appendChild(p), -v=function(){n.scrollTop>=n.scrollHeight-n.offsetHeight&&l()},mxEvent.addListener(n,"scroll",v))}}),q)}),A=mxUtils.bind(this,function(a){null==a&&(n.innerHTML="",a=1);var b=new mxXmlRequest(this.baseUrl+"/user/repos?per_page=100&page="+a,null,"GET");f.okButton.setAttribute("disabled","disabled");this.ui.spinner.spin(n,mxResources.get("loading"));null!=p&&null!=p.parentNode&&p.parentNode.removeChild(p);p=document.createElement("a");p.style.display="block";p.setAttribute("href","javascript:void(0);"); -mxUtils.write(p,mxResources.get("more")+"...");var l=mxUtils.bind(this,function(){mxEvent.removeListener(n,"scroll",v);A(a+1)});mxEvent.addListener(p,"click",l);this.executeRequest(b,mxUtils.bind(this,function(b){this.ui.spinner.stop();b=JSON.parse(b.getText());if(null==b||0==b.length)mxUtils.write(n,mxResources.get("noFiles"));else{1==a&&(n.appendChild(h(mxResources.get("enterValue")+"...",mxUtils.bind(this,function(){var a=new FilenameDialog(this.ui,"org/repo/ref",mxResources.get("ok"),mxUtils.bind(this, -function(a){if(null!=a){var b=a.split("/");if(1<b.length){a=b[0];var f=b[1];3>b.length?(c=a,d=f,g=e=null,y()):this.ui.spinner.spin(n,mxResources.get("loading"))&&(b=encodeURIComponent(b.slice(2,b.length).join("/")),this.getFile(a+"/"+f+"/"+b,mxUtils.bind(this,function(a){this.ui.spinner.stop();c=a.meta.org;d=a.meta.repo;e=decodeURIComponent(a.meta.ref);g="";u()}),mxUtils.bind(this,function(a){this.ui.spinner.stop();this.ui.handleError({message:mxResources.get("fileNotFound")})})))}else this.ui.spinner.stop(), -this.ui.handleError({message:mxResources.get("invalidName")})}}),mxResources.get("enterValue"));this.ui.showDialog(a.container,300,80,!0,!1);a.init()}))),mxUtils.br(n),mxUtils.br(n));for(var f=0;f<b.length;f++)mxUtils.bind(this,function(a){n.appendChild(h(a.full_name,mxUtils.bind(this,function(){c=a.owner.login;d=a.name;e=a.default_branch;g="";u()})));mxUtils.br(n)})(b[f])}100==b.length&&(n.appendChild(p),v=function(){n.scrollTop>=n.scrollHeight-n.offsetHeight&&l()},mxEvent.addListener(n,"scroll", -v))}),q)});A()};GitHubClient.prototype.logout=function(){this.clearPersistentToken();this.setUser(null);this.token=null};TrelloFile=function(a,b,c){DrawioFile.call(this,a,b);this.meta=c;this.saveNeededCounter=0};mxUtils.extend(TrelloFile,DrawioFile);TrelloFile.prototype.getHash=function(){return"T"+encodeURIComponent(this.meta.compoundId)};TrelloFile.prototype.getMode=function(){return App.MODE_TRELLO};TrelloFile.prototype.isAutosave=function(){return!0};TrelloFile.prototype.getTitle=function(){return this.meta.name};TrelloFile.prototype.isRenamable=function(){return!1}; +GitHubClient.prototype.showGitHubDialog=function(a,b){var c=null,d=null,e=null,g=null,k=document.createElement("div");k.style.whiteSpace="nowrap";k.style.overflow="hidden";k.style.height="224px";var l=document.createElement("h3");mxUtils.write(l,mxResources.get(a?"selectFile":"selectFolder"));l.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:12px";k.appendChild(l);var m=document.createElement("div");m.style.whiteSpace="nowrap";m.style.overflow="auto";m.style.height="194px"; +k.appendChild(m);var f=new CustomDialog(this.ui,k,mxUtils.bind(this,function(){b(c+"/"+d+"/"+encodeURIComponent(e)+"/"+g)}));this.ui.showDialog(f.container,340,270,!0,!0);a&&f.okButton.parentNode.removeChild(f.okButton);var h=mxUtils.bind(this,function(a,b){var c=document.createElement("a");c.setAttribute("href","javascript:void(0);");mxUtils.write(c,a);mxEvent.addListener(c,"click",b);return c}),n=mxUtils.bind(this,function(a){var b=document.createElement("div");b.style.marginBottom="8px";b.appendChild(h(c+ +"/"+d,mxUtils.bind(this,function(){g=null;B()})));a||(mxUtils.write(b," / "),b.appendChild(h(decodeURIComponent(e),mxUtils.bind(this,function(){g=null;y()}))));if(null!=g&&0<g.length){var f=g.split("/");for(a=0;a<f.length;a++)(function(a){mxUtils.write(b," / ");b.appendChild(h(f[a],mxUtils.bind(this,function(){g=f.slice(0,a+1).join("/");p()})))})(a)}m.appendChild(b)}),u=mxUtils.bind(this,function(a){this.ui.handleError(a,null,mxUtils.bind(this,function(){this.ui.spinner.stop();null!=this.getUser()? +(g=e=d=c=null,B()):this.ui.hideDialog()}))}),p=mxUtils.bind(this,function(){var k=new mxXmlRequest(this.baseUrl+"/repos/"+c+"/"+d+"/contents/"+g+"?ref="+encodeURIComponent(e),null,"GET");f.okButton.removeAttribute("disabled");m.innerHTML="";this.ui.spinner.spin(m,mxResources.get("loading"));this.executeRequest(k,mxUtils.bind(this,function(f){n();this.ui.spinner.stop();var k=JSON.parse(f.getText());m.appendChild(h("../ [Up]",mxUtils.bind(this,function(){if(""==g)g=null,B();else{var a=g.split("/"); +g=a.slice(0,a.length-1).join("/");p()}})));mxUtils.br(m);null==k||0==k.length?mxUtils.write(m,mxResources.get("noFiles")):(f=mxUtils.bind(this,function(f){for(var l=0;l<k.length;l++)mxUtils.bind(this,function(k){f==("dir"==k.type)&&(m.appendChild(h(k.name+("dir"==k.type?"/":""),mxUtils.bind(this,function(){"dir"==k.type?(g=k.path,p()):a&&"file"==k.type&&(this.ui.hideDialog(),b(c+"/"+d+"/"+encodeURIComponent(e)+"/"+k.path))}))),mxUtils.br(m))})(k[l])}),f(!0),a&&f(!1))}),u)}),q=null,v=null,y=mxUtils.bind(this, +function(a){null==a&&(m.innerHTML="",a=1);var b=new mxXmlRequest(this.baseUrl+"/repos/"+c+"/"+d+"/branches?per_page=100&page="+a,null,"GET");f.okButton.setAttribute("disabled","disabled");this.ui.spinner.spin(m,mxResources.get("loading"));null!=q&&null!=q.parentNode&&q.parentNode.removeChild(q);q=document.createElement("a");q.style.display="block";q.setAttribute("href","javascript:void(0);");mxUtils.write(q,mxResources.get("more")+"...");var k=mxUtils.bind(this,function(){mxEvent.removeListener(m, +"scroll",v);y(a+1)});mxEvent.addListener(q,"click",k);this.executeRequest(b,mxUtils.bind(this,function(b){this.ui.spinner.stop();1==a&&(n(!0),m.appendChild(h("../ [Up]",mxUtils.bind(this,function(){g=null;B()}))),mxUtils.br(m));b=JSON.parse(b.getText());if(null==b||0==b.length)mxUtils.write(m,mxResources.get("noFiles"));else{for(var c=0;c<b.length;c++)mxUtils.bind(this,function(a){m.appendChild(h(a.name,mxUtils.bind(this,function(){e=a.name;g="";p()})));mxUtils.br(m)})(b[c]);100==b.length&&(m.appendChild(q), +v=function(){m.scrollTop>=m.scrollHeight-m.offsetHeight&&k()},mxEvent.addListener(m,"scroll",v))}}),u)}),B=mxUtils.bind(this,function(a){null==a&&(m.innerHTML="",a=1);var b=new mxXmlRequest(this.baseUrl+"/user/repos?per_page=100&page="+a,null,"GET");f.okButton.setAttribute("disabled","disabled");this.ui.spinner.spin(m,mxResources.get("loading"));null!=q&&null!=q.parentNode&&q.parentNode.removeChild(q);q=document.createElement("a");q.style.display="block";q.setAttribute("href","javascript:void(0);"); +mxUtils.write(q,mxResources.get("more")+"...");var k=mxUtils.bind(this,function(){mxEvent.removeListener(m,"scroll",v);B(a+1)});mxEvent.addListener(q,"click",k);this.executeRequest(b,mxUtils.bind(this,function(b){this.ui.spinner.stop();b=JSON.parse(b.getText());if(null==b||0==b.length)mxUtils.write(m,mxResources.get("noFiles"));else{1==a&&(m.appendChild(h(mxResources.get("enterValue")+"...",mxUtils.bind(this,function(){var a=new FilenameDialog(this.ui,"org/repo/ref",mxResources.get("ok"),mxUtils.bind(this, +function(a){if(null!=a){var b=a.split("/");if(1<b.length){a=b[0];var f=b[1];3>b.length?(c=a,d=f,g=e=null,y()):this.ui.spinner.spin(m,mxResources.get("loading"))&&(b=encodeURIComponent(b.slice(2,b.length).join("/")),this.getFile(a+"/"+f+"/"+b,mxUtils.bind(this,function(a){this.ui.spinner.stop();c=a.meta.org;d=a.meta.repo;e=decodeURIComponent(a.meta.ref);g="";p()}),mxUtils.bind(this,function(a){this.ui.spinner.stop();this.ui.handleError({message:mxResources.get("fileNotFound")})})))}else this.ui.spinner.stop(), +this.ui.handleError({message:mxResources.get("invalidName")})}}),mxResources.get("enterValue"));this.ui.showDialog(a.container,300,80,!0,!1);a.init()}))),mxUtils.br(m),mxUtils.br(m));for(var f=0;f<b.length;f++)mxUtils.bind(this,function(a){m.appendChild(h(a.full_name,mxUtils.bind(this,function(){c=a.owner.login;d=a.name;e=a.default_branch;g="";p()})));mxUtils.br(m)})(b[f])}100==b.length&&(m.appendChild(q),v=function(){m.scrollTop>=m.scrollHeight-m.offsetHeight&&k()},mxEvent.addListener(m,"scroll", +v))}),u)});B()};GitHubClient.prototype.logout=function(){this.clearPersistentToken();this.setUser(null);this.token=null};TrelloFile=function(a,b,c){DrawioFile.call(this,a,b);this.meta=c;this.saveNeededCounter=0};mxUtils.extend(TrelloFile,DrawioFile);TrelloFile.prototype.getHash=function(){return"T"+encodeURIComponent(this.meta.compoundId)};TrelloFile.prototype.getMode=function(){return App.MODE_TRELLO};TrelloFile.prototype.isAutosave=function(){return!0};TrelloFile.prototype.getTitle=function(){return this.meta.name};TrelloFile.prototype.isRenamable=function(){return!1}; TrelloFile.prototype.save=function(a,b,c){this.doSave(this.getTitle(),b,c)};TrelloFile.prototype.saveAs=function(a,b,c){this.doSave(a,b,c)};TrelloFile.prototype.doSave=function(a,b,c){var d=this.meta.name;this.meta.name=a;DrawioFile.prototype.save.apply(this,arguments);this.meta.name=d;this.saveFile(a,!1,b,c)}; -TrelloFile.prototype.saveFile=function(a,b,c,d){if(this.isEditable())if(this.savingFile)null!=d&&(this.saveNeededCounter++,d({code:App.ERROR_BUSY}));else if(this.savingFile=!0,this.getTitle()==a){var e=this.isModified,g=this.isModified(),l=mxUtils.bind(this,function(){this.setModified(!1);this.isModified=function(){return g}});l();this.ui.trello.saveFile(this,mxUtils.bind(this,function(g){this.savingFile=!1;this.isModified=e;this.meta=g;this.contentChanged();null!=c&&c();0<this.saveNeededCounter&& -(this.saveNeededCounter--,this.saveFile(a,b,c,d))}),mxUtils.bind(this,function(a){this.savingFile=!1;this.isModified=e;this.setModified(g||this.isModified());if(null!=d){if(null!=a&&null!=a.retry){var b=a.retry;a.retry=function(){l();b()}}d(a)}}))}else this.ui.pickFolder(App.MODE_TRELLO,mxUtils.bind(this,function(e){this.ui.trello.insertFile(a,this.getData(),mxUtils.bind(this,function(e){this.savingFile=!1;null!=c&&c();this.ui.fileLoaded(e);0<this.saveNeededCounter&&(this.saveNeededCounter--,this.saveFile(a, +TrelloFile.prototype.saveFile=function(a,b,c,d){if(this.isEditable())if(this.savingFile)null!=d&&(this.saveNeededCounter++,d({code:App.ERROR_BUSY}));else if(this.savingFile=!0,this.getTitle()==a){var e=this.isModified,g=this.isModified(),k=mxUtils.bind(this,function(){this.setModified(!1);this.isModified=function(){return g}});k();this.ui.trello.saveFile(this,mxUtils.bind(this,function(g){this.savingFile=!1;this.isModified=e;this.meta=g;this.contentChanged();null!=c&&c();0<this.saveNeededCounter&& +(this.saveNeededCounter--,this.saveFile(a,b,c,d))}),mxUtils.bind(this,function(a){this.savingFile=!1;this.isModified=e;this.setModified(g||this.isModified());if(null!=d){if(null!=a&&null!=a.retry){var b=a.retry;a.retry=function(){k();b()}}d(a)}}))}else this.ui.pickFolder(App.MODE_TRELLO,mxUtils.bind(this,function(e){this.ui.trello.insertFile(a,this.getData(),mxUtils.bind(this,function(e){this.savingFile=!1;null!=c&&c();this.ui.fileLoaded(e);0<this.saveNeededCounter&&(this.saveNeededCounter--,this.saveFile(a, b,c,d))}),mxUtils.bind(this,function(){this.savingFile=!1;null!=d&&d()}),!1,e)}));else null!=c&&c()};TrelloLibrary=function(a,b,c){TrelloFile.call(this,a,b,c)};mxUtils.extend(TrelloLibrary,TrelloFile);TrelloLibrary.prototype.doSave=function(a,b,c){this.saveFile(a,!1,b,c)};TrelloLibrary.prototype.open=function(){};TrelloClient=function(a){DrawioClient.call(this,a,"tauth");Trello.setKey(this.key)};mxUtils.extend(TrelloClient,DrawioClient);TrelloClient.prototype.key="e73615c79cf7e381aef91c85936e9553";TrelloClient.prototype.baseUrl="https://api.trello.com/1/";TrelloClient.prototype.SEPARATOR="|$|";TrelloClient.prototype.maxFileSize=1E7;TrelloClient.prototype.extension=".xml"; TrelloClient.prototype.authenticate=function(a,b,c){c&&this.logout();c=mxUtils.bind(this,function(c,e){Trello.authorize({type:"popup",name:"draw.io",scope:{read:"true",write:"true"},expiration:c?"never":"1hour",success:function(){null!=e&&e();a()},error:function(){null!=e&&e();null!=b&&b(mxResources.get("loggedOut"))}})});this.isAuthorized()?c(!0):this.ui.showAuthDialog(this,!0,c)};TrelloClient.prototype.getLibrary=function(a,b,c){this.getFile(a,b,c,!1,!0)}; -TrelloClient.prototype.getFile=function(a,b,c,d,e){e=null!=e?e:!1;var g=mxUtils.bind(this,function(){var d=a.split(this.SEPARATOR),m=!0,n=window.setTimeout(mxUtils.bind(this,function(){m=!1;c({code:App.ERROR_TIMEOUT,retry:g})}),this.ui.timeout);Trello.cards.get(d[0]+"/attachments/"+d[1],mxUtils.bind(this,function(d){window.clearTimeout(n);if(m){var f=/\.png$/i.test(d.name);/\.v(dx|sdx?)$/i.test(d.name)||/\.gliffy$/i.test(d.name)||!this.ui.useCanvasForExport&&f?this.ui.convertFile(PROXY_URL+"?url="+ -encodeURIComponent(d.url),d.name,d.mimeType,this.extension,b,c):(m=!0,n=window.setTimeout(mxUtils.bind(this,function(){m=!1;c({code:App.ERROR_TIMEOUT})}),this.ui.timeout),this.ui.loadUrl(PROXY_URL+"?url="+encodeURIComponent(d.url),mxUtils.bind(this,function(c){window.clearTimeout(n);if(m){d.compoundId=a;var g=f?c.lastIndexOf(","):-1;0<g&&(g=this.ui.extractGraphModelFromPng(c.substring(g+1)),null!=g&&0<g.length&&(c=g));e?b(new TrelloLibrary(this.ui,c,d)):b(new TrelloFile(this.ui,c,d))}}),mxUtils.bind(this, -function(a,b){window.clearTimeout(n);m&&(401==b.status?this.authenticate(g,c,!0):c())}),f||null!=d.mimeType&&"image/"==d.mimeType.substring(0,6)))}}),mxUtils.bind(this,function(a){window.clearTimeout(n);m&&(401==a.status?this.authenticate(g,c,!0):c())}))});this.authenticate(g,c)};TrelloClient.prototype.insertLibrary=function(a,b,c,d,e){this.insertFile(a,b,c,d,!0,e)}; -TrelloClient.prototype.insertFile=function(a,b,c,d,e,g){e=null!=e?e:!1;var l=mxUtils.bind(this,function(){var l=mxUtils.bind(this,function(l){this.writeFile(a,l,g,mxUtils.bind(this,function(a){e?c(new TrelloLibrary(this.ui,b,a)):c(new TrelloFile(this.ui,b,a))}),d)});this.ui.useCanvasForExport&&/(\.png)$/i.test(a)?this.ui.getEmbeddedPng(mxUtils.bind(this,function(a){l(this.ui.base64ToBlob(a,"image/png"))}),d,b):l(b)});this.authenticate(l,d)}; +TrelloClient.prototype.getFile=function(a,b,c,d,e){e=null!=e?e:!1;var g=mxUtils.bind(this,function(){var d=a.split(this.SEPARATOR),l=!0,m=window.setTimeout(mxUtils.bind(this,function(){l=!1;c({code:App.ERROR_TIMEOUT,retry:g})}),this.ui.timeout);Trello.cards.get(d[0]+"/attachments/"+d[1],mxUtils.bind(this,function(d){window.clearTimeout(m);if(l){var f=/\.png$/i.test(d.name);/\.v(dx|sdx?)$/i.test(d.name)||/\.gliffy$/i.test(d.name)||!this.ui.useCanvasForExport&&f?this.ui.convertFile(PROXY_URL+"?url="+ +encodeURIComponent(d.url),d.name,d.mimeType,this.extension,b,c):(l=!0,m=window.setTimeout(mxUtils.bind(this,function(){l=!1;c({code:App.ERROR_TIMEOUT})}),this.ui.timeout),this.ui.loadUrl(PROXY_URL+"?url="+encodeURIComponent(d.url),mxUtils.bind(this,function(c){window.clearTimeout(m);if(l){d.compoundId=a;var g=f?c.lastIndexOf(","):-1;0<g&&(g=this.ui.extractGraphModelFromPng(c.substring(g+1)),null!=g&&0<g.length&&(c=g));e?b(new TrelloLibrary(this.ui,c,d)):b(new TrelloFile(this.ui,c,d))}}),mxUtils.bind(this, +function(a,b){window.clearTimeout(m);l&&(401==b.status?this.authenticate(g,c,!0):c())}),f||null!=d.mimeType&&"image/"==d.mimeType.substring(0,6)))}}),mxUtils.bind(this,function(a){window.clearTimeout(m);l&&(401==a.status?this.authenticate(g,c,!0):c())}))});this.authenticate(g,c)};TrelloClient.prototype.insertLibrary=function(a,b,c,d,e){this.insertFile(a,b,c,d,!0,e)}; +TrelloClient.prototype.insertFile=function(a,b,c,d,e,g){e=null!=e?e:!1;var k=mxUtils.bind(this,function(){var k=mxUtils.bind(this,function(k){this.writeFile(a,k,g,mxUtils.bind(this,function(a){e?c(new TrelloLibrary(this.ui,b,a)):c(new TrelloFile(this.ui,b,a))}),d)});this.ui.useCanvasForExport&&/(\.png)$/i.test(a)?this.ui.getEmbeddedPng(mxUtils.bind(this,function(a){k(this.ui.base64ToBlob(a,"image/png"))}),d,b):k(b)});this.authenticate(k,d)}; TrelloClient.prototype.saveFile=function(a,b,c){var d=a.meta.compoundId.split(this.SEPARATOR),e=mxUtils.bind(this,function(e){this.writeFile(a.meta.name,e,d[0],function(a){Trello.del("cards/"+d[0]+"/attachments/"+d[1],mxUtils.bind(this,function(){b(a)}),mxUtils.bind(this,function(a){401==a.status?this.authenticate(g,c,!0):c()}))},c)}),g=mxUtils.bind(this,function(){this.ui.useCanvasForExport&&/(\.png)$/i.test(a.meta.name)?this.ui.getEmbeddedPng(mxUtils.bind(this,function(a){e(this.ui.base64ToBlob(a, "image/png"))}),c,this.ui.getCurrentFile()!=a?a.getData():null):e(a.getData())});this.authenticate(g,c)}; -TrelloClient.prototype.writeFile=function(a,b,c,d,e){if(null!=a&&null!=b)if(b.length>=this.maxFileSize)e({message:mxResources.get("drawingTooLarge")+" ("+this.ui.formatFileSize(b.length)+" / 10 MB)"});else{var g=mxUtils.bind(this,function(){var l=!0,m=window.setTimeout(mxUtils.bind(this,function(){l=!1;e({code:App.ERROR_TIMEOUT,retry:g})}),this.ui.timeout),n=new FormData;n.append("key",Trello.key());n.append("token",Trello.token());n.append("file","string"===typeof b?new Blob([b]):b,a);n.append("name", -a);var f=new XMLHttpRequest;f.responseType="json";f.onreadystatechange=mxUtils.bind(this,function(){if(4===f.readyState&&(window.clearTimeout(m),l))if(200==f.status){var a=f.response;a.compoundId=c+this.SEPARATOR+a.id;d(a)}else 401==f.status?this.authenticate(g,e,!0):e()});f.open("POST",this.baseUrl+"cards/"+c+"/attachments");f.send(n)});this.authenticate(g,e)}else e({message:mxResources.get("unknownError")})};TrelloClient.prototype.pickLibrary=function(a){this.pickFile(a)}; +TrelloClient.prototype.writeFile=function(a,b,c,d,e){if(null!=a&&null!=b)if(b.length>=this.maxFileSize)e({message:mxResources.get("drawingTooLarge")+" ("+this.ui.formatFileSize(b.length)+" / 10 MB)"});else{var g=mxUtils.bind(this,function(){var k=!0,l=window.setTimeout(mxUtils.bind(this,function(){k=!1;e({code:App.ERROR_TIMEOUT,retry:g})}),this.ui.timeout),m=new FormData;m.append("key",Trello.key());m.append("token",Trello.token());m.append("file","string"===typeof b?new Blob([b]):b,a);m.append("name", +a);var f=new XMLHttpRequest;f.responseType="json";f.onreadystatechange=mxUtils.bind(this,function(){if(4===f.readyState&&(window.clearTimeout(l),k))if(200==f.status){var a=f.response;a.compoundId=c+this.SEPARATOR+a.id;d(a)}else 401==f.status?this.authenticate(g,e,!0):e()});f.open("POST",this.baseUrl+"cards/"+c+"/attachments");f.send(m)});this.authenticate(g,e)}else e({message:mxResources.get("unknownError")})};TrelloClient.prototype.pickLibrary=function(a){this.pickFile(a)}; TrelloClient.prototype.pickFolder=function(a){this.authenticate(mxUtils.bind(this,function(){this.showTrelloDialog(!1,a)}),mxUtils.bind(this,function(a){this.ui.showError(mxResources.get("error"),a)}))};TrelloClient.prototype.pickFile=function(a,b){a=null!=a?a:mxUtils.bind(this,function(a){this.ui.loadFile("T"+encodeURIComponent(a))});this.authenticate(mxUtils.bind(this,function(){this.showTrelloDialog(!0,a)}),mxUtils.bind(this,function(a){this.ui.showError(mxResources.get("error"),a,mxResources.get("ok"))}))}; -TrelloClient.prototype.showTrelloDialog=function(a,b){var c=null,d="@me",e=0,g=document.createElement("div");g.style.whiteSpace="nowrap";g.style.overflow="hidden";g.style.height="224px";var l=document.createElement("h3");mxUtils.write(l,a?mxResources.get("selectFile"):mxResources.get("selectCard"));l.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:12px";g.appendChild(l);var m=document.createElement("div");m.style.whiteSpace="nowrap";m.style.overflow="auto";m.style.height= -"194px";g.appendChild(m);g=new CustomDialog(this.ui,g);this.ui.showDialog(g.container,340,270,!0,!0);g.okButton.parentNode.removeChild(g.okButton);var n=mxUtils.bind(this,function(a,b,c){e++;var d=document.createElement("div");d.style="width:100%;text-overflow:ellipsis;overflow:hidden;vertical-align:middle;background:"+(0==e%2?"#eee":"#fff");var f=document.createElement("a");f.setAttribute("href","javascript:void(0);");if(null!=c){var g=document.createElement("img");g.src=c.url;g.width=c.width;g.height= -c.height;g.style="border: 1px solid black;margin:5px;vertical-align:middle";f.appendChild(g)}mxUtils.write(f,a);mxEvent.addListener(f,"click",b);d.appendChild(f);return d}),f=mxUtils.bind(this,function(a){this.ui.handleError(a,null,mxUtils.bind(this,function(){this.ui.spinner.stop();this.ui.hideDialog()}))}),h=mxUtils.bind(this,function(){e=0;m.innerHTML="";this.ui.spinner.spin(m,mxResources.get("loading"));var a=mxUtils.bind(this,function(){Trello.cards.get(c+"/attachments",{fields:"id,name,previews"}, -mxUtils.bind(this,function(a){this.ui.spinner.stop();m.appendChild(n("../ [Up]",mxUtils.bind(this,function(){u()})));mxUtils.br(m);null==a||0==a.length?mxUtils.write(m,mxResources.get("noFiles")):mxUtils.bind(this,function(){for(var d=0;d<a.length;d++)mxUtils.bind(this,function(a){m.appendChild(n(a.name,mxUtils.bind(this,function(){this.ui.hideDialog();b(c+this.SEPARATOR+a.id)}),null!=a.previews?a.previews[0]:null))})(a[d])})()}),mxUtils.bind(this,function(b){401==b.status?this.authenticate(a,f,!0): -null!=f&&f(b)}))});a()}),k=null,q=null,u=mxUtils.bind(this,function(g){null==g&&(e=0,m.innerHTML="",g=1);this.ui.spinner.spin(m,mxResources.get("loading"));null!=k&&null!=k.parentNode&&k.parentNode.removeChild(k);k=document.createElement("a");k.style.display="block";k.setAttribute("href","javascript:void(0);");mxUtils.write(k,mxResources.get("more")+"...");var l=mxUtils.bind(this,function(){mxEvent.removeListener(m,"scroll",q);u(g+1)});mxEvent.addListener(k,"click",l);var p=mxUtils.bind(this,function(){Trello.get("search", -{query:""==mxUtils.trim(d)?"is:open":d,cards_limit:100,cards_page:g-1},mxUtils.bind(this,function(e){this.ui.spinner.stop();e=null!=e?e.cards:null;if(null==e||0==e.length)mxUtils.write(m,mxResources.get("noFiles"));else{1==g&&(m.appendChild(n(mxResources.get("filterCards")+"...",mxUtils.bind(this,function(){var a=new FilenameDialog(this.ui,d,mxResources.get("ok"),mxUtils.bind(this,function(a){null!=a&&(d=a,u())}),mxResources.get("filterCards"),null,null,"http://help.trello.com/article/808-searching-for-cards-all-boards"); -this.ui.showDialog(a.container,300,80,!0,!1);a.init()}))),mxUtils.br(m));for(var f=0;f<e.length;f++)mxUtils.bind(this,function(d){m.appendChild(n(d.name,mxUtils.bind(this,function(){a?(c=d.id,h()):(this.ui.hideDialog(),b(d.id))})))})(e[f]);100==e.length&&(m.appendChild(k),q=function(){m.scrollTop>=m.scrollHeight-m.offsetHeight&&l()},mxEvent.addListener(m,"scroll",q))}}),mxUtils.bind(this,function(a){401==a.status?this.authenticate(p,f,!0):null!=f&&f({message:a.responseText})}))});p()});u()}; -TrelloClient.prototype.isAuthorized=function(){try{return null!=localStorage.trello_token}catch(a){}return!1};TrelloClient.prototype.logout=function(){localStorage.removeItem("trello_token");Trello.deauthorize()};function ChatWindow(a,b,c,d,e,g,l,m){this.editorUi=a;this.doc=m.doc;this.rtModel=m.rt;this.chatHistory=m.chatHistory;this.chatMap=m.chatMap;this.configCollabInfo();c=document.createElement("div");c.id="mainDiv";m=document.createElement("div");m.style.padding="3px";c.appendChild(m);var n=document.createElement("div");n.style.paddingLeft="3px";n.style.paddingRight="15px";a.editor.graph.isEnabled()&&c.appendChild(n);this.chatArea=document.createElement("div");this.chatArea.style.backgroundColor="white"; -this.chatArea.style.overflowX="hidden";this.chatArea.style.overflowY="auto";this.chatArea.style.width="98%";this.chatArea.style.resize="none";m.appendChild(this.chatArea);this.chatLineArea=document.createElement("textarea");this.chatLineArea.style.resize="none";this.chatLineArea.rows=1;this.chatLineArea.onkeydown=mxUtils.bind(this,function(a){13==(a.keyCode||window.event.keyCode)&&""!=this.chatLineArea.value&&this.sendMessage()});this.sendBtn=document.createElement("button");this.sendBtn.style.cssFloat= -"right";this.sendBtn.style.styleFloat="right";mxUtils.write(this.sendBtn,mxResources.get("sendMessage"));mxEvent.addListener(this.sendBtn,"click",mxUtils.bind(this,function(a){""!=this.chatLineArea.value&&this.sendMessage()}));n.appendChild(this.chatLineArea);n.appendChild(this.sendBtn);this.window=new mxWindow(b,c,d,e,g,l,!0,!0);this.window.destroyOnClose=!1;this.window.setMaximizable(!0);this.window.setScrollable(!0);this.window.setResizable(!0);this.window.setClosable(!0);this.window.setVisible(!0); +TrelloClient.prototype.showTrelloDialog=function(a,b){var c=null,d="@me",e=0,g=document.createElement("div");g.style.whiteSpace="nowrap";g.style.overflow="hidden";g.style.height="224px";var k=document.createElement("h3");mxUtils.write(k,a?mxResources.get("selectFile"):mxResources.get("selectCard"));k.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:12px";g.appendChild(k);var l=document.createElement("div");l.style.whiteSpace="nowrap";l.style.overflow="auto";l.style.height= +"194px";g.appendChild(l);g=new CustomDialog(this.ui,g);this.ui.showDialog(g.container,340,270,!0,!0);g.okButton.parentNode.removeChild(g.okButton);var m=mxUtils.bind(this,function(a,b,c){e++;var d=document.createElement("div");d.style="width:100%;text-overflow:ellipsis;overflow:hidden;vertical-align:middle;background:"+(0==e%2?"#eee":"#fff");var f=document.createElement("a");f.setAttribute("href","javascript:void(0);");if(null!=c){var g=document.createElement("img");g.src=c.url;g.width=c.width;g.height= +c.height;g.style="border: 1px solid black;margin:5px;vertical-align:middle";f.appendChild(g)}mxUtils.write(f,a);mxEvent.addListener(f,"click",b);d.appendChild(f);return d}),f=mxUtils.bind(this,function(a){this.ui.handleError(a,null,mxUtils.bind(this,function(){this.ui.spinner.stop();this.ui.hideDialog()}))}),h=mxUtils.bind(this,function(){e=0;l.innerHTML="";this.ui.spinner.spin(l,mxResources.get("loading"));var a=mxUtils.bind(this,function(){Trello.cards.get(c+"/attachments",{fields:"id,name,previews"}, +mxUtils.bind(this,function(a){this.ui.spinner.stop();l.appendChild(m("../ [Up]",mxUtils.bind(this,function(){p()})));mxUtils.br(l);null==a||0==a.length?mxUtils.write(l,mxResources.get("noFiles")):mxUtils.bind(this,function(){for(var d=0;d<a.length;d++)mxUtils.bind(this,function(a){l.appendChild(m(a.name,mxUtils.bind(this,function(){this.ui.hideDialog();b(c+this.SEPARATOR+a.id)}),null!=a.previews?a.previews[0]:null))})(a[d])})()}),mxUtils.bind(this,function(b){401==b.status?this.authenticate(a,f,!0): +null!=f&&f(b)}))});a()}),n=null,u=null,p=mxUtils.bind(this,function(g){null==g&&(e=0,l.innerHTML="",g=1);this.ui.spinner.spin(l,mxResources.get("loading"));null!=n&&null!=n.parentNode&&n.parentNode.removeChild(n);n=document.createElement("a");n.style.display="block";n.setAttribute("href","javascript:void(0);");mxUtils.write(n,mxResources.get("more")+"...");var k=mxUtils.bind(this,function(){mxEvent.removeListener(l,"scroll",u);p(g+1)});mxEvent.addListener(n,"click",k);var q=mxUtils.bind(this,function(){Trello.get("search", +{query:""==mxUtils.trim(d)?"is:open":d,cards_limit:100,cards_page:g-1},mxUtils.bind(this,function(e){this.ui.spinner.stop();e=null!=e?e.cards:null;if(null==e||0==e.length)mxUtils.write(l,mxResources.get("noFiles"));else{1==g&&(l.appendChild(m(mxResources.get("filterCards")+"...",mxUtils.bind(this,function(){var a=new FilenameDialog(this.ui,d,mxResources.get("ok"),mxUtils.bind(this,function(a){null!=a&&(d=a,p())}),mxResources.get("filterCards"),null,null,"http://help.trello.com/article/808-searching-for-cards-all-boards"); +this.ui.showDialog(a.container,300,80,!0,!1);a.init()}))),mxUtils.br(l));for(var f=0;f<e.length;f++)mxUtils.bind(this,function(d){l.appendChild(m(d.name,mxUtils.bind(this,function(){a?(c=d.id,h()):(this.ui.hideDialog(),b(d.id))})))})(e[f]);100==e.length&&(l.appendChild(n),u=function(){l.scrollTop>=l.scrollHeight-l.offsetHeight&&k()},mxEvent.addListener(l,"scroll",u))}}),mxUtils.bind(this,function(a){401==a.status?this.authenticate(q,f,!0):null!=f&&f({message:a.responseText})}))});q()});p()}; +TrelloClient.prototype.isAuthorized=function(){try{return null!=localStorage.trello_token}catch(a){}return!1};TrelloClient.prototype.logout=function(){localStorage.removeItem("trello_token");Trello.deauthorize()};function ChatWindow(a,b,c,d,e,g,k,l){this.editorUi=a;this.doc=l.doc;this.rtModel=l.rt;this.chatHistory=l.chatHistory;this.chatMap=l.chatMap;this.configCollabInfo();c=document.createElement("div");c.id="mainDiv";l=document.createElement("div");l.style.padding="3px";c.appendChild(l);var m=document.createElement("div");m.style.paddingLeft="3px";m.style.paddingRight="15px";a.editor.graph.isEnabled()&&c.appendChild(m);this.chatArea=document.createElement("div");this.chatArea.style.backgroundColor="white"; +this.chatArea.style.overflowX="hidden";this.chatArea.style.overflowY="auto";this.chatArea.style.width="98%";this.chatArea.style.resize="none";l.appendChild(this.chatArea);this.chatLineArea=document.createElement("textarea");this.chatLineArea.style.resize="none";this.chatLineArea.rows=1;this.chatLineArea.onkeydown=mxUtils.bind(this,function(a){13==(a.keyCode||window.event.keyCode)&&""!=this.chatLineArea.value&&this.sendMessage()});this.sendBtn=document.createElement("button");this.sendBtn.style.cssFloat= +"right";this.sendBtn.style.styleFloat="right";mxUtils.write(this.sendBtn,mxResources.get("sendMessage"));mxEvent.addListener(this.sendBtn,"click",mxUtils.bind(this,function(a){""!=this.chatLineArea.value&&this.sendMessage()}));m.appendChild(this.chatLineArea);m.appendChild(this.sendBtn);this.window=new mxWindow(b,c,d,e,g,k,!0,!0);this.window.destroyOnClose=!1;this.window.setMaximizable(!0);this.window.setScrollable(!0);this.window.setResizable(!0);this.window.setClosable(!0);this.window.setVisible(!0); this.handleResize();this.window.addListener(mxEvent.RESIZE,mxUtils.bind(this,this.handleResize));this.window.addListener(mxEvent.MAXIMIZE,mxUtils.bind(this,this.handleResize));this.window.addListener(mxEvent.NORMALIZE,mxUtils.bind(this,this.handleResize));if(null!=this.chatHistory){for(a=Math.max(0,this.chatHistory.length-this.chatHistoryShow);a<this.chatHistory.length;a++)this.updateChatArea(this.chatHistory.get(a));this.chatHistory.addEventListener(gapi.drive.realtime.EventType.VALUES_ADDED,mxUtils.bind(this, function(a){this.updateChatArea(a.target.get(a.index))}))}this.doc.addEventListener(gapi.drive.realtime.EventType.COLLABORATOR_JOINED,mxUtils.bind(this,this.collaboratorListener));this.doc.addEventListener(gapi.drive.realtime.EventType.COLLABORATOR_LEFT,mxUtils.bind(this,this.collaboratorListener));null!=this.chatMap&&this.chatMap.addEventListener(gapi.drive.realtime.EventType.VALUE_CHANGED,mxUtils.bind(this,function(a){this.updateChatArea(a.target.get(a.property))}))} ChatWindow.prototype.window=null;ChatWindow.prototype.doc=null;ChatWindow.prototype.chatHistory=null;ChatWindow.prototype.chatMap=null;ChatWindow.prototype.chatHistoryShow=10;ChatWindow.prototype.chatHistorySize=0;ChatWindow.prototype.setChatMap=function(a){this.chatMap=a}; @@ -8213,9 +8246,10 @@ ChatWindow.prototype.updateChatArea=function(a){a='<span style="color : '+a.coll ChatWindow.prototype.handleResize=function(){var a=this.window.getElement(),b=this.editorUi.editor.graph.isEnabled()?70:40;this.chatArea.style.height=Math.max(0,a.offsetHeight-b)+"px";this.chatLineArea.style.width=a.offsetWidth-this.sendBtn.offsetWidth-40+"px"}; ChatWindow.prototype.collaboratorListener=function(a){if(!a.collaborator.isMe){if(a.type==gapi.drive.realtime.EventType.COLLABORATOR_JOINED)a='<span style="color : '+a.collaborator.color+';">▲</span><i>'+mxResources.get("chatJoined",[a.collaborator.displayName])+"</i>";else if(a.type==gapi.drive.realtime.EventType.COLLABORATOR_LEFT)a='<span style="color : '+a.collaborator.color+';">▼</span><i>'+mxResources.get("chatLeft",[a.collaborator.displayName])+"</i>";else return;this.chatArea.innerHTML= this.chatArea.innerHTML+a+"<br>";this.chatArea.scrollTop=this.chatArea.scrollHeight}};ChatWindow.prototype.configCollabInfo=function(){for(var a=this.doc.getCollaborators(),b=0;b<a.length;b++){var c=a[b];c.isMe&&(this.collabColor=c.color,this.displayName=c.displayName)}};ChatWindow.prototype.destroy=function(){this.window.destroy()};ChatWindow.prototype.htmlEscape=function(a){return a.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")};App=function(a,b,c){EditorUi.call(this,a,b,null!=c?c:"1"==urlParams.lightbox||"min"==uiTheme&&"0"!=urlParams.chrome);mxClient.IS_SVG?mxGraph.prototype.warningImage.src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAE7SURBVHjaYvz//z8DJQAggBjwGXDuHMP/tWuD/uPTCxBAOA0AaQRK/f/+XeJ/cbHlf1wGAAQQTgPu3QNLgfHSpZo4DQAIIKwGwGyH4e/fFbG6AiQJEEAs2Ew2NFzH8OOHBMO6dT/A/KCg7wxGRh+wuhQggDBcALMdFIAcHBxgDGJjcwVIIUAAYbhAUXEdVos4OO4DXcGBIQ4QQCguQPY7sgtgAYruCpAgQACx4LJdU1OCwctLEcyWlLwPJF+AXQE0EMUBAAEEdwF6yMOiD4RRY0QT7gqQAEAAseDzu6XldYYPH9DD4joQa8L5AAEENgWb7SBcXa0JDQMBrK4AcQACiAlfyOMCEFdAnAYQQEz4FLa0XGf4/v0H0IIPONUABBAjyBmMjIwMS5cK/L927QORbtBkaG29DtYLEGAAH6f7oq3Zc+kAAAAASUVORK5CYII=": -(new Image).src=mxGraph.prototype.warningImage.src;window.openWindow=mxUtils.bind(this,function(a,b,c){var d=null;try{d=window.open(a)}catch(m){}null==d||void 0===d?this.showDialog((new PopupDialog(this,a,b,c)).container,320,140,!0,!0):null!=b&&b()});this.updateDocumentTitle();this.updateUi();window.showOpenAlert=mxUtils.bind(this,function(a){null!=window.openFile&&window.openFile.cancel(!0);this.handleError(a)});this.editor.chromeless&&!this.editor.editable||this.addFileDropHandler([document]);if(null!= +(new Image).src=mxGraph.prototype.warningImage.src;window.openWindow=mxUtils.bind(this,function(a,b,c){var d=null;try{d=window.open(a)}catch(l){}null==d||void 0===d?this.showDialog((new PopupDialog(this,a,b,c)).container,320,140,!0,!0):null!=b&&b()});this.updateDocumentTitle();this.updateUi();window.showOpenAlert=mxUtils.bind(this,function(a){null!=window.openFile&&window.openFile.cancel(!0);this.handleError(a)});this.editor.chromeless&&!this.editor.editable||this.addFileDropHandler([document]);if(null!= App.DrawPlugins){for(a=0;a<App.DrawPlugins.length;a++)try{App.DrawPlugins[a](this)}catch(d){null!=window.console&&console.log("Plugin Error:",d,App.DrawPlugins[a])}window.Draw.loadPlugin=mxUtils.bind(this,function(a){a(this)})}this.load()};App.ERROR_TIMEOUT="timeout";App.ERROR_BUSY="busy";App.ERROR_UNKNOWN="unknown";App.MODE_GOOGLE="google";App.MODE_DROPBOX="dropbox";App.MODE_ONEDRIVE="onedrive";App.MODE_GITHUB="github";App.MODE_DEVICE="device";App.MODE_BROWSER="browser";App.MODE_TRELLO="trello"; -App.DROPBOX_APPKEY="libwls2fa9szdji";App.DROPBOX_URL="js/dropbox/Dropbox-sdk.min.js";App.DROPINS_URL="https://www.dropbox.com/static/api/2/dropins.js";App.ONEDRIVE_URL="https://js.live.net/v7.2/OneDrive.js";App.TRELLO_URL="https://api.trello.com/1/client.js";App.TRELLO_JQUERY_URL="https://code.jquery.com/jquery-1.7.1.min.js";App.FOOTER_PLUGIN_URL="https://www.jgraph.com/drawio-footer.js"; +App.DROPBOX_APPKEY="libwls2fa9szdji";App.DROPBOX_URL="js/dropbox/Dropbox-sdk.min.js";App.DROPINS_URL="https://www.dropbox.com/static/api/2/dropins.js";App.ONEDRIVE_URL="https://js.live.net/v7.2/OneDrive.js";App.TRELLO_URL="https://api.trello.com/1/client.js";App.TRELLO_JQUERY_URL="https://code.jquery.com/jquery-1.7.1.min.js";App.FOOTER_PLUGIN_URL="https://www.jgraph.com/drawio-footer.js";App.GOOGLE_REALTIME="0"!=urlParams["google-realtime"]; +App.GOOGLE_APIS="client,drive-share"+(App.GOOGLE_REALTIME?",drive-realtime":""); App.pluginRegistry={"4xAKTrabTpTzahoLthkwPNUn":"/plugins/explore.js",ex:"/plugins/explore.js",p1:"/plugins/p1.js",ac:"/plugins/connect.js",acj:"/plugins/connectJira.js",ac148:"/plugins/cConf-1-4-8.js",voice:"/plugins/voice.js",tips:"/plugins/tooltips.js",svgdata:"/plugins/svgdata.js",doors:"/plugins/doors.js",electron:"plugins/electron.js",number:"/plugins/number.js",sql:"/plugins/sql.js",props:"/plugins/props.js",text:"/plugins/text.js",anim:"/plugins/animation.js",update:"/plugins/update.js",trees:"/plugins/trees/trees.js", "import":"/plugins/import.js",replay:"/plugins/replay.js",anon:"/plugins/anonymize.js",tr:"/plugins/trello.js",f5:"/plugins/rackF5.js",tickets:"/plugins/tickets.js",flow:"/plugins/flow.js",webcola:"/plugins/webcola/webcola.js"}; App.getStoredMode=function(){var a=null;null==a&&isLocalStorage&&(a=localStorage.getItem(".mode"));if(null==a&&"undefined"!=typeof Storage){for(var b=document.cookie.split(";"),c=0;c<b.length;c++){var d=mxUtils.trim(b[c]);if("MODE="==d.substring(0,5)){a=d.substring(5);break}}null!=a&&isLocalStorage&&(b=new Date,b.setYear(b.getFullYear()-1),document.cookie="MODE=; expires="+b.toUTCString(),localStorage.setItem(".mode",a))}return a}; @@ -8228,12 +8262,12 @@ null!=window.DrawDropboxClientCallback&&("1"!=urlParams.embed&&"0"!=urlParams.db null!=window.DrawOneDriveClientCallback&&("1"!=urlParams.embed&&"0"!=urlParams.od||"1"==urlParams.embed&&"1"==urlParams.od)&&(0>navigator.userAgent.indexOf("MSIE")||10<=document.documentMode)?mxscript(App.ONEDRIVE_URL,window.DrawOneDriveClientCallback):"undefined"===typeof window.OneDrive&&(window.OneDriveClient=null);"function"===typeof window.TrelloClient&&"undefined"===typeof window.Trello&&null!=window.DrawTrelloClientCallback&&("1"!=urlParams.embed&&"0"!=urlParams.tr||"1"==urlParams.embed&&"1"== urlParams.tr)&&(0>navigator.userAgent.indexOf("MSIE")||10<=document.documentMode)?mxscript(App.TRELLO_JQUERY_URL,function(){mxscript(App.TRELLO_URL,function(){DrawTrelloClientCallback()})}):"undefined"===typeof window.Trello&&(window.TrelloClient=null)}null!=a&&a(c);"0"!=urlParams.chrome&&"1"==urlParams.test&&(mxLog.show(),mxLog.debug("Started in "+((new Date).getTime()-t0.getTime())+"ms"),mxLog.debug("Export:",EXPORT_URL),mxLog.debug("Development mode:","1"==urlParams.dev?"active":"inactive"),mxLog.debug("Test mode:", "1"==urlParams.test?"active":"inactive"))},function(a){document.getElementById("geStatus").innerHTML='Error loading page. <a href="javascript:void(0);">Please try refreshing.</a>';document.getElementById("geStatus").getElementsByTagName("a")[0].onclick=function(){mxLanguage="en";c(mxResources.getDefaultBundle(RESOURCE_BASE,mxLanguage)||mxResources.getSpecialBundle(RESOURCE_BASE,mxLanguage))}})}function d(){mxResources.loadDefaultBundle=!1;c(mxResources.getDefaultBundle(RESOURCE_BASE,mxLanguage)|| -mxResources.getSpecialBundle(RESOURCE_BASE,mxLanguage))}var e=null;EditorUi.enableLogging&&(window.onerror=function(a,b,c,d,f){try{if(a!=e&&(null==a||null==b||-1==a.indexOf("Script error")&&-1==a.indexOf("extension"))&&null!=a&&0>a.indexOf("DocumentClosedError")){e=a;var g=new Image,h=0<=a.indexOf("NetworkError")||0<=a.indexOf("SecurityError")||0<=a.indexOf("NS_ERROR_FAILURE")||0<=a.indexOf("out of memory")?"CONFIG":"SEVERE";g.src=(null!=window.DRAWIO_LOG_URL?window.DRAWIO_LOG_URL:"")+"/log?severity="+ -h+"&v="+encodeURIComponent(EditorUi.VERSION)+"&msg=clientError:"+encodeURIComponent(a)+":url:"+encodeURIComponent(window.location.href)+":lnum:"+encodeURIComponent(c)+(null!=d?":colno:"+encodeURIComponent(d):"")+(null!=f&&null!=f.stack?"&stack="+encodeURIComponent(f.stack):"")}}catch(x){}});if(null!=window.mxscript){if("1"==urlParams.offline||"1"==urlParams.appcache){mxscript("js/shapes.min.js");mxscript("js/stencils.min.js");mxscript("js/extensions.min.js");var g=document.createElement("iframe"); -g.setAttribute("width","0");g.setAttribute("height","0");g.setAttribute("src","offline.html");document.body.appendChild(g)}if("0"!=urlParams.plugins&&"1"!=urlParams.offline){var g=null!=mxSettings.settings?mxSettings.getPlugins():null,l={},m=urlParams.p;App.initPluginCallback();if(null!=m){var n="";"1"==urlParams.drawdev&&(n=document.location.protocol+"//drawhost.jgraph.com/");for(var f=m.split(";"),m=0;m<f.length;m++){var h=App.pluginRegistry[f[m]];null!=h&&null==l[h]?(l[h]=!0,mxscript(n+h)):null!= -window.console&&console.log("Unknown plugin:",f[m])}}else"0"==urlParams.chrome||EditorUi.isElectronApp||mxscript(App.FOOTER_PLUGIN_URL,null,null,null,mxClient.IS_SVG);if(null!=g&&0<g.length&&"0"!=urlParams.plugins){n=window.location.protocol+"//"+window.location.host;f=!0;for(m=0;m<g.length&&f;m++)"/"!=g[m].charAt(0)&&g[m].substring(0,n.length)!=n&&(f=!1);if(f||mxUtils.confirm(mxResources.replacePlaceholders("The page has requested to load the following plugin(s):\n \n {1}\n \n Would you like to load these plugin(s) now?\n \n NOTE : Only allow plugins to run if you fully understand the security implications of doing so.\n", -[g.join("\n")]).replace(/\\n/g,"\n")))for(m=0;m<g.length;m++)try{null==l[g[m]]&&(l[h]=!0,mxscript(g[m]))}catch(u){}}}"function"===typeof window.DriveClient&&"undefined"===typeof gapi&&("1"!=urlParams.embed&&"0"!=urlParams.gapi||"1"==urlParams.embed&&"1"==urlParams.gapi)&&isSvgBrowser&&isLocalStorage&&(null==document.documentMode||10<=document.documentMode)?mxscript("https://apis.google.com/js/api.js?onload=DrawGapiClientCallback",null,null,null,mxClient.IS_SVG):"undefined"===typeof window.gapi&&(window.DriveClient= -null)}"0"!=urlParams.math&&Editor.initMath();if("1"==urlParams.configure){var k=window.opener||window.parent,q=function(a){if(a.source==k)try{var b=JSON.parse(a.data);null!=b&&"configure"==b.action&&(mxEvent.removeListener(window,"message",q),Editor.configure(b.config,!0),mxSettings.load(),d())}catch(v){null!=window.console&&console.log("Error in configuration: "+v)}};mxEvent.addListener(window,"message",q);k.postMessage(JSON.stringify({event:"load"}),"*")}else d()};mxUtils.extend(App,EditorUi); +mxResources.getSpecialBundle(RESOURCE_BASE,mxLanguage))}var e=Editor.guid(),g=null;EditorUi.enableLogging&&(window.onerror=function(a,b,c,d,f){try{if(a!=g&&(null==a||null==b||-1==a.indexOf("Script error")&&-1==a.indexOf("extension"))&&null!=a&&0>a.indexOf("DocumentClosedError")){g=a;var h=0<=a.indexOf("NetworkError")||0<=a.indexOf("SecurityError")||0<=a.indexOf("NS_ERROR_FAILURE")||0<=a.indexOf("out of memory")?"CONFIG":"SEVERE",k=null!=window.DRAWIO_LOG_URL?window.DRAWIO_LOG_URL:"";(new Image).src= +k+"/log?severity="+h+"&v="+encodeURIComponent(EditorUi.VERSION)+"&msg=clientError:"+encodeURIComponent(a)+":url:"+encodeURIComponent(window.location.href)+":lnum:"+encodeURIComponent(c)+(null!=d?":colno:"+encodeURIComponent(d):"")+(null!=f&&null!=f.stack?"&stack="+encodeURIComponent(f.stack):"")+"&sid="+e}}catch(C){}});if(null!=window.mxscript){if("1"==urlParams.offline||"1"==urlParams.appcache){mxscript("js/shapes.min.js");mxscript("js/stencils.min.js");mxscript("js/extensions.min.js");var k=document.createElement("iframe"); +k.setAttribute("width","0");k.setAttribute("height","0");k.setAttribute("src","offline.html");document.body.appendChild(k)}if("0"!=urlParams.plugins&&"1"!=urlParams.offline){var k=null!=mxSettings.settings?mxSettings.getPlugins():null,l={},m=urlParams.p;App.initPluginCallback();if(null!=m){var f="";"1"==urlParams.drawdev&&(f=document.location.protocol+"//drawhost.jgraph.com/");for(var h=m.split(";"),m=0;m<h.length;m++){var n=App.pluginRegistry[h[m]];null!=n&&null==l[n]?(l[n]=!0,mxscript(f+n)):null!= +window.console&&console.log("Unknown plugin:",h[m])}}else"0"==urlParams.chrome||EditorUi.isElectronApp||mxscript(App.FOOTER_PLUGIN_URL,null,null,null,mxClient.IS_SVG);if(null!=k&&0<k.length&&"0"!=urlParams.plugins){f=window.location.protocol+"//"+window.location.host;h=!0;for(m=0;m<k.length&&h;m++)"/"!=k[m].charAt(0)&&k[m].substring(0,f.length)!=f&&(h=!1);if(h||mxUtils.confirm(mxResources.replacePlaceholders("The page has requested to load the following plugin(s):\n \n {1}\n \n Would you like to load these plugin(s) now?\n \n NOTE : Only allow plugins to run if you fully understand the security implications of doing so.\n", +[k.join("\n")]).replace(/\\n/g,"\n")))for(m=0;m<k.length;m++)try{null==l[k[m]]&&(l[n]=!0,mxscript(k[m]))}catch(q){}}}"function"===typeof window.DriveClient&&"undefined"===typeof gapi&&("1"!=urlParams.embed&&"0"!=urlParams.gapi||"1"==urlParams.embed&&"1"==urlParams.gapi)&&isSvgBrowser&&isLocalStorage&&(null==document.documentMode||10<=document.documentMode)?mxscript("https://apis.google.com/js/api.js?onload=DrawGapiClientCallback",null,null,null,mxClient.IS_SVG):"undefined"===typeof window.gapi&&(window.DriveClient= +null)}"0"!=urlParams.math&&Editor.initMath();if("1"==urlParams.configure){var u=window.opener||window.parent,p=function(a){if(a.source==u)try{var b=JSON.parse(a.data);null!=b&&"configure"==b.action&&(mxEvent.removeListener(window,"message",p),Editor.configure(b.config,!0),mxSettings.load(),d())}catch(y){null!=window.console&&console.log("Error in configuration: "+y)}};mxEvent.addListener(window,"message",p);u.postMessage(JSON.stringify({event:"load"}),"*")}else d()};mxUtils.extend(App,EditorUi); App.prototype.defaultUserPicture="https://lh3.googleusercontent.com/-HIzvXUy6QUY/AAAAAAAAAAI/AAAAAAAAAAA/giuR7PQyjEk/photo.jpg?sz=30";App.prototype.shareImage="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA2RpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDowOTgwMTE3NDA3MjA2ODExODhDNkFGMDBEQkQ0RTgwOSIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDoxMjU2NzdEMTcwRDIxMUUxQjc0MDkxRDhCNUQzOEFGRCIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDoxMjU2NzdEMDcwRDIxMUUxQjc0MDkxRDhCNUQzOEFGRCIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M1IFdpbmRvd3MiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDowNjgwMTE3NDA3MjA2ODExODcxRkM4MUY1OTFDMjQ5OCIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDowNzgwMTE3NDA3MjA2ODExODhDNkFGMDBEQkQ0RTgwOSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PrM/fs0AAADgSURBVHjaYmDAA/7//88MwgzkAKDGFiD+BsQ/QWxSNaf9RwN37twpI8WAS+gGfP78+RpQSoRYA36iG/D379+vQClNdLVMOMz4gi7w79+/n0CKg1gD9qELvH379hzIHGK9oA508ieY8//8+fO5rq4uFCilRKwL1JmYmNhhHEZGRiZ+fn6Q2meEbDYG4u3/cYCfP38uA7kOm0ZOIJ7zn0jw48ePPiDFhmzArv8kgi9fvuwB+w5qwH9ykjswbFSZyM4sEMDPBDTlL5BxkFSd7969OwZ2BZKYGhDzkmjOJ4AAAwBhpRqGnEFb8QAAAABJRU5ErkJggg=="; App.prototype.chevronUpImage=mxClient.IS_SVG?"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBNYWNpbnRvc2giIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NDg2NEE3NUY1MUVBMTFFM0I3MUVEMTc0N0YyOUI4QzEiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NDg2NEE3NjA1MUVBMTFFM0I3MUVEMTc0N0YyOUI4QzEiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo0ODY0QTc1RDUxRUExMUUzQjcxRUQxNzQ3RjI5QjhDMSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo0ODY0QTc1RTUxRUExMUUzQjcxRUQxNzQ3RjI5QjhDMSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Pg+qUokAAAAMUExURQAAANnZ2b+/v////5bgre4AAAAEdFJOU////wBAKqn0AAAAL0lEQVR42mJgRgMMRAswMKAKMDDARBjg8lARBoR6KImkH0wTbygT6YaS4DmAAAMAYPkClOEDDD0AAAAASUVORK5CYII=": IMAGE_PATH+"/chevron-up.png"; @@ -8247,43 +8281,45 @@ App.prototype.init=function(){EditorUi.prototype.init.apply(this,arguments);this if("1"!=urlParams.embed||"1"==urlParams.od){var a=mxUtils.bind(this,function(){"undefined"!==typeof OneDrive?(this.oneDrive=new OneDriveClient(this),this.oneDrive.addListener("userChanged",mxUtils.bind(this,function(){this.updateUserElement();this.restoreLibraries()})),this.fireEvent(new mxEventObject("clientLoaded","client",this.oneDrive))):null==window.DrawOneDriveClientCallback&&(window.DrawOneDriveClientCallback=a)});a()}if("1"!=urlParams.embed||"1"==urlParams.tr){var b=mxUtils.bind(this,function(){"undefined"!== typeof window.Trello?(this.trello=new TrelloClient(this),this.trello.addListener("userChanged",mxUtils.bind(this,function(){this.updateUserElement();this.restoreLibraries()})),this.fireEvent(new mxEventObject("clientLoaded","client",this.trello))):null==window.DrawTrelloClientCallback&&(window.DrawTrelloClientCallback=b)});b()}if("1"!=urlParams.embed||"1"==urlParams.gapi){var c=mxUtils.bind(this,function(){if("undefined"!==typeof gapi){var a=mxUtils.bind(this,function(){this.drive=new DriveClient(this); "420247213240"==this.drive.appId&&this.editor.addListener("fileLoaded",mxUtils.bind(this,function(){var a=this.getCurrentFile();null!=a&&a.constructor==DriveFile&&(a=document.getElementById("geFooterItem2"),null!=a&&(a.innerHTML='<a href="https://support.draw.io/display/DO/2014/11/27/Switching+application+in+Google+Drive" target="_blank" title="IMPORTANT NOTICE" >IMPORTANT NOTICE</a>'))}));this.drive.addListener("userChanged",mxUtils.bind(this,function(){this.updateUserElement();this.restoreLibraries(); -this.checkLicense()}));this.fireEvent(new mxEventObject("clientLoaded","client",this.drive))});null!=window.DrawGapiClientCallback?(gapi.load(("0"!=urlParams.picker?"picker,":"")+"auth:client,drive-realtime,drive-share",mxUtils.bind(this,function(b){null!=gapi.drive&&null!=gapi.drive.realtime&&gapi.client.load("drive","v2",mxUtils.bind(this,function(){this.defineCustomObjects();gapi.auth.init(mxUtils.bind(this,function(){null!=gapi.client.drive&&a()}))}))})),window.DrawGapiClientCallback=null):a()}else null== -window.DrawGapiClientCallback&&(window.DrawGapiClientCallback=c)});c()}if("1"!=urlParams.embed||"1"==urlParams.db){var d=mxUtils.bind(this,function(){"function"===typeof Dropbox&&"undefined"!==typeof Dropbox.choose?(window.DrawDropboxClientCallback=null,this.dropbox=new DropboxClient(this),this.dropbox.addListener("userChanged",mxUtils.bind(this,function(){this.updateUserElement();this.restoreLibraries()})),this.fireEvent(new mxEventObject("clientLoaded","client",this.dropbox))):null==window.DrawDropboxClientCallback&& -(window.DrawDropboxClientCallback=d)});d()}"1"!=urlParams.embed?(this.bg=this.createBackground(),document.body.appendChild(this.bg),this.diagramContainer.style.visibility="hidden",this.formatContainer.style.visibility="hidden",this.hsplit.style.display="none",this.sidebarContainer.style.display="none",this.sidebarFooterContainer.style.display="none","1"==urlParams.local?this.setMode(App.MODE_DEVICE):this.mode=App.mode):null!=this.menubar&&(this.menubar.container.style.paddingTop="0px");this.updateHeader(); -null!=this.menubar&&(this.buttonContainer=document.createElement("div"),this.buttonContainer.style.display="inline-block",this.buttonContainer.style.paddingRight="48px",this.buttonContainer.style.position="absolute",this.buttonContainer.style.right="0px",this.menubar.container.appendChild(this.buttonContainer));"atlas"==uiTheme&&null!=this.menubar&&(null!=this.toggleElement&&(this.toggleElement.click(),this.toggleElement.style.display="none"),this.icon=document.createElement("img"),this.icon.setAttribute("src", -IMAGE_PATH+"/logo-flat-small.png"),this.icon.setAttribute("title",mxResources.get("draw.io")),this.icon.style.paddingTop="11px",this.icon.style.marginLeft="4px",this.icon.style.marginRight="6px",mxClient.IS_QUIRKS&&(this.icon.style.marginTop="12px"),this.menubar.container.insertBefore(this.icon,this.menubar.container.firstChild))}; +this.checkLicense()}));this.fireEvent(new mxEventObject("clientLoaded","client",this.drive))});null!=window.DrawGapiClientCallback?(gapi.load(("0"!=urlParams.picker?"picker,":"")+"auth:"+App.GOOGLE_APIS,mxUtils.bind(this,function(b){null!=gapi.client&&gapi.client.load("drive","v2",mxUtils.bind(this,function(){this.defineCustomObjects();gapi.auth.init(mxUtils.bind(this,function(){null!=gapi.client.drive&&a()}))}))})),window.DrawGapiClientCallback=null):a()}else null==window.DrawGapiClientCallback&& +(window.DrawGapiClientCallback=c)});c()}if("1"!=urlParams.embed||"1"==urlParams.db){var d=mxUtils.bind(this,function(){"function"===typeof Dropbox&&"undefined"!==typeof Dropbox.choose?(window.DrawDropboxClientCallback=null,this.dropbox=new DropboxClient(this),this.dropbox.addListener("userChanged",mxUtils.bind(this,function(){this.updateUserElement();this.restoreLibraries()})),this.fireEvent(new mxEventObject("clientLoaded","client",this.dropbox))):null==window.DrawDropboxClientCallback&&(window.DrawDropboxClientCallback= +d)});d()}"1"!=urlParams.embed?(this.bg=this.createBackground(),document.body.appendChild(this.bg),this.diagramContainer.style.visibility="hidden",this.formatContainer.style.visibility="hidden",this.hsplit.style.display="none",this.sidebarContainer.style.display="none",this.sidebarFooterContainer.style.display="none","1"==urlParams.local?this.setMode(App.MODE_DEVICE):this.mode=App.mode):null!=this.menubar&&(this.menubar.container.style.paddingTop="0px");this.updateHeader();null!=this.menubar&&(this.buttonContainer= +document.createElement("div"),this.buttonContainer.style.display="inline-block",this.buttonContainer.style.paddingRight="48px",this.buttonContainer.style.position="absolute",this.buttonContainer.style.right="0px",this.menubar.container.appendChild(this.buttonContainer));"atlas"==uiTheme&&null!=this.menubar&&(null!=this.toggleElement&&(this.toggleElement.click(),this.toggleElement.style.display="none"),this.icon=document.createElement("img"),this.icon.setAttribute("src",IMAGE_PATH+"/logo-flat-small.png"), +this.icon.setAttribute("title",mxResources.get("draw.io")),this.icon.style.paddingTop="11px",this.icon.style.marginLeft="4px",this.icon.style.marginRight="6px",mxClient.IS_QUIRKS&&(this.icon.style.marginTop="12px"),this.menubar.container.insertBefore(this.icon,this.menubar.container.firstChild))}; App.prototype.isDriveDomain=function(){return"0"!=urlParams.drive&&("test.draw.io"==window.location.hostname||"cdn.draw.io"==window.location.hostname||"www.draw.io"==window.location.hostname||"drive.draw.io"==window.location.hostname||"jgraph.github.io"==window.location.hostname)};App.prototype.isLegacyDriveDomain=function(){return 0==urlParams.drive||"legacy.draw.io"==window.location.hostname}; App.prototype.checkLicense=function(){var a=this.drive.getUser(),b=("1"==urlParams.dev?urlParams.lic:null)||(null!=a?a.email:null);if(!this.isOffline()&&!this.editor.chromeless&&null!=b){var c=b.lastIndexOf("@"),d=b;0<=c&&(d=b.substring(c+1),b=this.crc32(b.substring(0,c))+"@"+d);mxUtils.post("/license","domain="+encodeURIComponent(d)+"&email="+encodeURIComponent(b)+"&ds="+encodeURIComponent(a.displayName)+"&lc="+encodeURIComponent(a.locale)+"&ts="+(new Date).getTime(),mxUtils.bind(this,function(a){try{if(200<= -a.getStatus()&&299>=a.getStatus()){var b=a.getText();if(0<b.length){var c=JSON.parse(b);null!=c&&this.handleLicense(c,d)}}}catch(m){}}))}}; -App.prototype.handleLicense=function(a,b){var c=document.getElementById("geFooter"),d=null;if(null!=c&&null!=a)if(d=a.expiry,null!=a.footer)c.innerHTML=decodeURIComponent(a.footer);else if(this.hideFooter(),null!=d&&"never"!=d){var e=new Date(Date.parse(d)),g=Math.round((e-Date.now())/864E5);if(90>g){var l="https://support.draw.io/display/DKB/draw.io+footer+state+that+license+is+expiring+on+Google+For+Work+account?domain="+encodeURIComponent(b);c.style.height="100%";c.style.margin="0px";c.style.display= -"";0>g?(this.footerHeight=80,c.innerHTML='<table height="100%"><tr><td valign="middle" align="center" class="geStatusAlert geBlink"><a href="'+l+'" style="padding-top:16px;" target="_blank"><img border="0" src="'+mxGraph.prototype.warningImage.src+'" align="top" style="margin-right:6px">'+mxResources.get("licenseHasExpired",[b,e.toLocaleDateString()])+"</a></td></tr></table>"):(this.footerHeight=46,c.innerHTML='<table height="100%"><tr><td valign="middle" align="center" class="geStatusAlert"><a href="'+ -l+'" target="_blank"><img border="0" src="'+mxGraph.prototype.warningImage.src+'" align="top" style="margin-right:6px">'+mxResources.get("licenseWillExpire",[b,e.toLocaleDateString()])+"</a></td></tr></table>");this.refresh()}}return d};App.prototype.getEditBlankXml=function(){var a=this.getCurrentFile();return null!=a&&this.editor.isChromelessView()&&this.editor.graph.isLightboxView()&&null==a.realtime?a.getData():this.getFileData(!0)}; +a.getStatus()&&299>=a.getStatus()){var b=a.getText();if(0<b.length){var c=JSON.parse(b);null!=c&&this.handleLicense(c,d)}}}catch(l){}}))}}; +App.prototype.handleLicense=function(a,b){var c=document.getElementById("geFooter"),d=null;if(null!=c&&null!=a)if(d=a.expiry,null!=a.footer)c.innerHTML=decodeURIComponent(a.footer);else if(this.hideFooter(),null!=d&&"never"!=d){var e=new Date(Date.parse(d)),g=Math.round((e-Date.now())/864E5);if(90>g){var k="https://support.draw.io/display/DKB/draw.io+footer+state+that+license+is+expiring+on+Google+For+Work+account?domain="+encodeURIComponent(b);c.style.height="100%";c.style.margin="0px";c.style.display= +"";0>g?(this.footerHeight=80,c.innerHTML='<table height="100%"><tr><td valign="middle" align="center" class="geStatusAlert geBlink"><a href="'+k+'" style="padding-top:16px;" target="_blank"><img border="0" src="'+mxGraph.prototype.warningImage.src+'" align="top" style="margin-right:6px">'+mxResources.get("licenseHasExpired",[b,e.toLocaleDateString()])+"</a></td></tr></table>"):(this.footerHeight=46,c.innerHTML='<table height="100%"><tr><td valign="middle" align="center" class="geStatusAlert"><a href="'+ +k+'" target="_blank"><img border="0" src="'+mxGraph.prototype.warningImage.src+'" align="top" style="margin-right:6px">'+mxResources.get("licenseWillExpire",[b,e.toLocaleDateString()])+"</a></td></tr></table>");this.refresh()}}return d};App.prototype.getEditBlankXml=function(){var a=this.getCurrentFile();return null!=a&&this.editor.isChromelessView()&&this.editor.graph.isLightboxView()&&null==a.realtime?a.getData():this.getFileData(!0)}; App.prototype.updateActionStates=function(){EditorUi.prototype.updateActionStates.apply(this,arguments);var a=this.getCurrentFile();this.actions.get("revisionHistory").setEnabled(null!=a&&(a.constructor==DriveFile&&a.isEditable()||a.constructor==DropboxFile))};App.prototype.updateDraft=function(){isLocalStorage&&null!=localStorage&&localStorage.setItem(".draft",JSON.stringify({modified:(new Date).getTime(),data:this.getFileData()}))};App.prototype.getDraft=function(){return null}; App.prototype.addRecent=function(a){if(isLocalStorage&&null!=localStorage){var b=this.getRecent();if(null==b)b=[];else for(var c=0;c<b.length;c++)b[c].id==a.id&&b.splice(c,1);null!=b&&(b.unshift(a),b=b.slice(0,5),localStorage.setItem(".recent",JSON.stringify(b)))}};App.prototype.getRecent=function(){if(isLocalStorage&&null!=localStorage){try{var a=localStorage.getItem(".recent");if(null!=a)return JSON.parse(a)}catch(b){}return null}}; App.prototype.resetRecent=function(a){if(isLocalStorage&&null!=localStorage)try{localStorage.removeItem(".recent")}catch(b){}};App.prototype.removeDraft=function(){if(isLocalStorage&&null!=localStorage&&"0"==urlParams.splash)try{localStorage.removeItem(".draft")}catch(a){}}; App.prototype.onBeforeUnload=function(){if("1"==urlParams.embed&&this.editor.modified)return mxResources.get("allChangesLost");var a=this.getCurrentFile();if(null!=a)if(a.constructor!=LocalFile||""!=a.getHash()||a.isModified()||"1"==urlParams.nowarn||this.isDiagramEmpty()||null!=urlParams.url||this.editor.isChromelessView()){if((a.constructor!=DriveFile||null==a.realtime||a.realtime.saving)&&a.isModified())return mxResources.get("allChangesLost");a.close(!0)}else return mxResources.get("ensureDataSaved")}; App.prototype.updateDocumentTitle=function(){if(!this.editor.graph.isLightboxView()){var a=this.editor.appName,b=this.getCurrentFile();this.isOfflineApp()&&(a+=" app");null!=b&&(a=(null!=b.getTitle()?b.getTitle():this.defaultFilename)+" - "+a);document.title=a}};App.prototype.createCrcTable=function(){for(var a=[],b,c=0;256>c;c++){b=c;for(var d=0;8>d;d++)b=b&1?3988292384^b>>>1:b>>>1;a[c]=b}return a}; App.prototype.getThumbnail=function(a,b){var c=!1;try{null==this.thumbImageCache&&(this.thumbImageCache={});var d=this.editor.graph;if(null!=this.pages&&this.currentPage!=this.pages[0]){var d=this.createTemporaryGraph(d.getStylesheet()),e=d.getGlobalVariable,g=this.pages[0];d.getGlobalVariable=function(a){return"page"==a?g.getName():"pagenumber"==a?1:e.apply(this,arguments)};document.body.appendChild(d.container);d.model.setRoot(g.root)}if(mxClient.IS_CHROMEAPP||!d.mathEnabled&&this.useCanvasForExport)this.exportToCanvas(mxUtils.bind(this, -function(a){d!=this.editor.graph&&d.container.parentNode.removeChild(d.container);b(a)}),a,this.thumbImageCache,"#ffffff",function(){b()},null,null,null,null,null,null,d),c=!0;else if(this.canvasSupported&&null!=this.getCurrentFile()){var l=document.createElement("canvas"),m=d.getGraphBounds(),n=a/m.width,n=Math.min(1,Math.min(3*a/(4*m.height),n)),f=Math.floor(m.x),h=Math.floor(m.y);l.setAttribute("width",Math.ceil(n*(m.width+4)));l.setAttribute("height",Math.ceil(n*(m.height+4)));var k=l.getContext("2d"); -k.scale(n,n);k.translate(-f,-h);var q=d.background;if(null==q||""==q||q==mxConstants.NONE)q="#ffffff";k.save();k.fillStyle=q;k.fillRect(f,h,Math.ceil(m.width+4),Math.ceil(m.height+4));k.restore();var u=new mxJsCanvas(l),p=new mxAsyncCanvas(this.thumbImageCache);u.images=this.thumbImageCache.images;var v=new mxImageExport;v.drawShape=function(a,b){a.shape instanceof mxShape&&a.shape.checkBounds()&&(b.save(),b.translate(.5,.5),a.shape.paint(b),b.translate(-.5,-.5),b.restore())};v.drawText=function(a, -b){};v.drawState(d.getView().getState(d.model.root),p);p.finish(mxUtils.bind(this,function(){v.drawState(d.getView().getState(d.model.root),u);d!=this.editor.graph&&d.container.parentNode.removeChild(d.container);b(l)}));c=!0}}catch(y){d!=this.editor.graph&&d.container.parentNode.removeChild(d.container)}return c}; +function(a){d!=this.editor.graph&&d.container.parentNode.removeChild(d.container);b(a)}),a,this.thumbImageCache,"#ffffff",function(){b()},null,null,null,null,null,null,d),c=!0;else if(this.canvasSupported&&null!=this.getCurrentFile()){var k=document.createElement("canvas"),l=d.getGraphBounds(),m=a/l.width,m=Math.min(1,Math.min(3*a/(4*l.height),m)),f=Math.floor(l.x),h=Math.floor(l.y);k.setAttribute("width",Math.ceil(m*(l.width+4)));k.setAttribute("height",Math.ceil(m*(l.height+4)));var n=k.getContext("2d"); +n.scale(m,m);n.translate(-f,-h);var u=d.background;if(null==u||""==u||u==mxConstants.NONE)u="#ffffff";n.save();n.fillStyle=u;n.fillRect(f,h,Math.ceil(l.width+4),Math.ceil(l.height+4));n.restore();var p=new mxJsCanvas(k),q=new mxAsyncCanvas(this.thumbImageCache);p.images=this.thumbImageCache.images;var v=new mxImageExport;v.drawShape=function(a,b){a.shape instanceof mxShape&&a.shape.checkBounds()&&(b.save(),b.translate(.5,.5),a.shape.paint(b),b.translate(-.5,-.5),b.restore())};v.drawText=function(a, +b){};v.drawState(d.getView().getState(d.model.root),q);q.finish(mxUtils.bind(this,function(){v.drawState(d.getView().getState(d.model.root),p);d!=this.editor.graph&&d.container.parentNode.removeChild(d.container);b(k)}));c=!0}}catch(y){d!=this.editor.graph&&d.container.parentNode.removeChild(d.container)}return c}; App.prototype.createBackground=function(){var a=this.createDiv("background");a.style.position="absolute";a.style.background="white";a.style.left="0px";a.style.top="0px";a.style.bottom="0px";a.style.right="0px";mxUtils.setOpacity(a,100);mxClient.IS_QUIRKS&&new mxDivResizer(a);return a}; (function(){var a=EditorUi.prototype.setMode;App.prototype.setMode=function(b,c){a.apply(this,arguments);null!=this.mode&&(Editor.useLocalStorage=this.mode==App.MODE_BROWSER);if(c)if(isLocalStorage)localStorage.setItem(".mode",b);else if("undefined"!=typeof Storage){var d=new Date;d.setYear(d.getFullYear()+1);document.cookie="MODE="+b+"; expires="+d.toUTCString()}null!=this.appIcon&&(d=this.getCurrentFile(),b=null!=d?d.getMode():null,b==App.MODE_GOOGLE?(this.appIcon.setAttribute("title",mxResources.get("openIt", [mxResources.get("googleDrive")])),this.appIcon.style.cursor="pointer"):b==App.MODE_DROPBOX?(this.appIcon.setAttribute("title",mxResources.get("openIt",[mxResources.get("dropbox")])),this.appIcon.style.cursor="pointer"):b==App.MODE_ONEDRIVE?(this.appIcon.setAttribute("title",mxResources.get("openIt",[mxResources.get("oneDrive")])),this.appIcon.style.cursor="pointer"):(this.appIcon.removeAttribute("title"),this.appIcon.style.cursor="default"))}})(); -App.prototype.appIconClicked=function(a){if(mxEvent.isAltDown(a))this.showSplash(!0);else{var b=this.getCurrentFile(),c=null!=b?b.getMode():null;c==App.MODE_GOOGLE?null!=b.desc&&0<b.desc.parents.length?this.openLink("https://drive.google.com/drive/folders/"+b.desc.parents[0].id):this.openLink("https://drive.google.com/?authuser=0"):c==App.MODE_DROPBOX?this.openLink("https://www.dropbox.com/"):c==App.MODE_ONEDRIVE?this.openLink("https://onedrive.live.com/"):c==App.MODE_TRELLO?this.openLink("https://trello.com/"): -c==App.MODE_GITHUB&&(null!=b&&b.constructor==GitHubFile?this.openLink(b.meta.html_url):this.openLink("https://github.com/"))}mxEvent.consume(a)};App.prototype.clearMode=function(){if(isLocalStorage)localStorage.removeItem(".mode");else if("undefined"!=typeof Storage){var a=new Date;a.setYear(a.getFullYear()-1);document.cookie="MODE=; expires="+a.toUTCString()}};App.prototype.getDiagramId=function(){var a=window.location.hash;null!=a&&0<a.length&&(a=a.substring(1));return a}; +App.prototype.appIconClicked=function(a){if(mxEvent.isAltDown(a))this.showSplash(!0);else{var b=this.getCurrentFile(),c=null!=b?b.getMode():null;c==App.MODE_GOOGLE?null!=b.desc&&null!=b.desc.parents&&0<b.desc.parents.length?this.openLink("https://drive.google.com/drive/folders/"+b.desc.parents[0].id):this.openLink("https://drive.google.com/?authuser=0"):c==App.MODE_DROPBOX?this.openLink("https://www.dropbox.com/"):c==App.MODE_ONEDRIVE?this.openLink("https://onedrive.live.com/"):c==App.MODE_TRELLO? +this.openLink("https://trello.com/"):c==App.MODE_GITHUB&&(null!=b&&b.constructor==GitHubFile?this.openLink(b.meta.html_url):this.openLink("https://github.com/"))}mxEvent.consume(a)};App.prototype.clearMode=function(){if(isLocalStorage)localStorage.removeItem(".mode");else if("undefined"!=typeof Storage){var a=new Date;a.setYear(a.getFullYear()-1);document.cookie="MODE=; expires="+a.toUTCString()}}; +App.prototype.getDiagramId=function(){var a=window.location.hash;null!=a&&0<a.length&&(a=a.substring(1));return a}; App.prototype.open=function(){try{if(null!=window.opener){var a=urlParams.create;null!=a&&(a=decodeURIComponent(a));if(null!=a&&0<a.length&&"http://"!=a.substring(0,7)&&"https://"!=a.substring(0,8)){var b=mxUtils.parseXml(window.opener[a]);this.editor.setGraphXml(b.documentElement)}else null!=window.opener.openFile&&window.opener.openFile.setConsumer(mxUtils.bind(this,function(a,b,e){this.spinner.stop();null==b&&(b=urlParams.title,e=!0,b=null!=b?decodeURIComponent(b):this.defaultFilename);0<(this.useCanvasForExport? -1:".png"==b.substring(b.length-4))&&(b=b.substring(0,b.length-4)+".xml");this.fileLoaded(mxClient.IS_IOS?new StorageFile(this,a,b):new LocalFile(this,a,b,e))}))}}catch(c){}}; -App.prototype.loadGapi=function(a){"undefined"!==typeof gapi&&gapi.load(("0"!=urlParams.picker?"picker,":"")+"auth:client,drive-realtime,drive-share",mxUtils.bind(this,function(b){null==gapi.drive||null==gapi.drive.realtime?(this.drive=this.mode=null,a()):gapi.client.load("drive","v2",mxUtils.bind(this,function(){gapi.auth.init(mxUtils.bind(this,function(){null==gapi.client.drive&&(this.drive=this.mode=null);a()}))}))}))}; +App.prototype.loadGapi=function(a){"undefined"!==typeof gapi&&gapi.load(("0"!=urlParams.picker?"picker,":"")+"auth:"+App.GOOGLE_APIS,mxUtils.bind(this,function(b){null==gapi.client?(this.mode=this.drive=null,a()):gapi.client.load("drive","v2",mxUtils.bind(this,function(){gapi.auth.init(mxUtils.bind(this,function(){null==gapi.client.drive&&(this.mode=this.drive=null);a()}))}))}))}; App.prototype.load=function(){if("1"!=urlParams.embed){if(this.spinner.spin(document.body,mxResources.get("starting"))){try{this.stateArg=null!=urlParams.state&&null!=this.drive?JSON.parse(decodeURIComponent(urlParams.state)):null}catch(a){}this.editor.graph.setEnabled(null!=this.getCurrentFile());null!=window.location.hash&&0!=window.location.hash.length||null==this.drive||null==this.stateArg||null==this.stateArg.userId||this.drive.setUserId(this.stateArg.userId);null!=urlParams.fileId?(window.location.hash= "G"+urlParams.fileId,window.location.search=this.getSearch(["fileId"])):null==this.drive?(this.mode==App.MODE_GOOGLE&&(this.mode=null),this.start()):this.loadGapi(mxUtils.bind(this,function(){this.start()}))}}else this.restoreLibraries(),"1"==urlParams.gapi&&this.loadGapi(function(){})}; +App.prototype.showRefreshDialog=function(a,b){this.showingRefreshDialog||(this.showingRefreshDialog=!0,this.showError(a||mxResources.get("error"),b||mxResources.get("redirectToNewApp"),mxResources.get("refresh"),mxUtils.bind(this,function(){this.spinner.spin(document.body,mxResources.get("connecting"));this.editor.graph.setEnabled(!1);window.location.reload()})))}; App.prototype.showAlert=function(a){if(null!=a&&0<a.length){var b=document.createElement("div");b.className="geAlert";b.style.zIndex=2E9;b.style.left="50%";b.style.top="-100%";mxUtils.setPrefixedStyle(b.style,"transform","translate(-50%,0%)");mxUtils.setPrefixedStyle(b.style,"transition","all 1s ease");b.innerHTML=a;a=document.createElement("a");a.className="geAlertLink";a.style.textAlign="right";a.style.marginTop="20px";a.style.display="block";a.setAttribute("href","javascript:void(0);");a.setAttribute("title", mxResources.get("close"));a.innerHTML=mxResources.get("close");b.appendChild(a);mxEvent.addListener(a,"click",function(a){null!=b.parentNode&&(b.parentNode.removeChild(b),mxEvent.consume(a))});document.body.appendChild(b);window.setTimeout(function(){b.style.top="30px"},10);window.setTimeout(function(){mxUtils.setPrefixedStyle(b.style,"transition","all 2s ease");b.style.opacity="0";window.setTimeout(function(){null!=b.parentNode&&b.parentNode.removeChild(b)},2E3)},15E3)}}; -App.prototype.start=function(){this.bg.parentNode.removeChild(this.bg);this.restoreLibraries();this.spinner.stop();try{if("1"!=urlParams.client&&"1"!=urlParams.embed&&mxEvent.addListener(window,"hashchange",mxUtils.bind(this,function(a){try{var b=this.getDiagramId(),c=this.getCurrentFile();null!=c&&c.getHash()==b||this.loadFile(b,!0)}catch(m){null!=document.body&&this.handleError(m,mxResources.get("errorLoadingFile"),mxUtils.bind(this,function(){var a=this.getCurrentFile();window.location.hash=null!= +App.prototype.start=function(){this.bg.parentNode.removeChild(this.bg);this.restoreLibraries();this.spinner.stop();try{if("1"!=urlParams.client&&"1"!=urlParams.embed&&mxEvent.addListener(window,"hashchange",mxUtils.bind(this,function(a){try{var b=this.getDiagramId(),c=this.getCurrentFile();null!=c&&c.getHash()==b||this.loadFile(b,!0)}catch(l){null!=document.body&&this.handleError(l,mxResources.get("errorLoadingFile"),mxUtils.bind(this,function(){var a=this.getCurrentFile();window.location.hash=null!= a?a.getHash():""}))}})),(null==window.location.hash||1>=window.location.hash.length)&&null!=urlParams.url)this.loadFile("U"+urlParams.url,!0);else if(null==this.getCurrentFile()){var a=mxUtils.bind(this,function(){if("1"==urlParams.client&&(null==window.location.hash||0==window.location.hash.length||"#P"==window.location.hash.substring(0,2))){var a=mxUtils.bind(this,function(a){"data:image/png;base64,"==a.substring(0,22)&&(a=this.extractGraphModelFromPng(a));var b=urlParams.title,b=null!=b?decodeURIComponent(b): this.defaultFilename;a=new LocalFile(this,a,b,!0);null!=window.location.hash&&"#P"==window.location.hash.substring(0,2)&&(a.getHash=function(){return window.location.hash.substring(1)});this.fileLoaded(a);this.getCurrentFile().setModified(!this.editor.chromeless)}),b=window.opener||window.parent;if(b!=window){var c=urlParams.create;null!=c?a(b[decodeURIComponent(c)]):(c=urlParams.data,null!=c?a(decodeURIComponent(c)):this.installMessageHandler(mxUtils.bind(this,function(c,d){d.source==b&&a(c)})))}}else if(null== -this.dialog)if("1"==urlParams.demo)c=Editor.useLocalStorage,this.createFile(this.defaultFilename,null,null,null,null,null,null,!0),Editor.useLocalStorage=c;else{c=!1;try{c=null!=window.opener&&null!=window.opener.openFile}catch(f){}if(c)this.spinner.spin(document.body,mxResources.get("loading"));else if(c=this.getDiagramId(),"0"!=urlParams.splash||null!=c&&0!=c.length)this.loadFile(c);else if(!mxClient.IS_CHROMEAPP){var d=this.getDraft(),n=null!=d?d.data:this.getFileData(),c=Editor.useLocalStorage; -this.createFile(this.defaultFilename,n,null,null,null,null,null,!0);Editor.useLocalStorage=c;null!=d&&(c=this.getCurrentFile(),null!=c&&c.addUnsavedStatus())}}});null!=this.drive&&this.defineCustomObjects();var b=decodeURIComponent(urlParams.create||"");if((null==window.location.hash||1>=window.location.hash.length)&&null!=b&&0<b.length&&this.spinner.spin(document.body,mxResources.get("loading"))){var c=mxUtils.bind(this,function(){this.spinner.spin(document.body,mxResources.get("reconnecting"))&& +this.dialog)if("1"==urlParams.demo)c=Editor.useLocalStorage,this.createFile(this.defaultFilename,null,null,null,null,null,null,!0),Editor.useLocalStorage=c;else{c=!1;try{c=null!=window.opener&&null!=window.opener.openFile}catch(f){}if(c)this.spinner.spin(document.body,mxResources.get("loading"));else if(c=this.getDiagramId(),"0"!=urlParams.splash||null!=c&&0!=c.length)this.loadFile(c);else if(!mxClient.IS_CHROMEAPP){var d=this.getDraft(),m=null!=d?d.data:this.getFileData(),c=Editor.useLocalStorage; +this.createFile(this.defaultFilename,m,null,null,null,null,null,!0);Editor.useLocalStorage=c;null!=d&&(c=this.getCurrentFile(),null!=c&&c.addUnsavedStatus())}}});null!=this.drive&&this.defineCustomObjects();var b=decodeURIComponent(urlParams.create||"");if((null==window.location.hash||1>=window.location.hash.length)&&null!=b&&0<b.length&&this.spinner.spin(document.body,mxResources.get("loading"))){var c=mxUtils.bind(this,function(){this.spinner.spin(document.body,mxResources.get("reconnecting"))&& (window.location.search=this.getSearch(["create","title"]))}),d=mxUtils.bind(this,function(a){this.spinner.stop();if("0"!=urlParams.splash){this.fileLoaded(new LocalFile(this,a,null));this.editor.graph.setEnabled(!1);this.mode=urlParams.mode;var b=urlParams.title,b=null!=b?decodeURIComponent(b):this.defaultFilename;a=this.getServiceCount(!0);var c=4>=a?4:3,b=new CreateDialog(this,b,mxUtils.bind(this,function(a,b){if(null==b){this.hideDialog();var c=Editor.useLocalStorage;this.createFile(0<a.length? a:this.defaultFilename,this.getFileData(),null,null,null,!0,null,!0);Editor.useLocalStorage=c}else this.pickFolder(b,mxUtils.bind(this,function(c){this.createFile(a,this.getFileData(!0),null,b,null,!0,c)}))}),null,null,null,null,"1"==urlParams.browser,null,null,!0,c);this.showDialog(b.container,380,a>c?390:270,!0,!1,mxUtils.bind(this,function(a){a&&null==this.getCurrentFile()&&this.showSplash()}));b.init()}}),b=decodeURIComponent(b);if("http://"!=b.substring(0,7)&&"https://"!=b.substring(0,8))try{null!= window.opener&&null!=window.opener[b]?d(window.opener[b]):this.handleError(null,mxResources.get("errorLoadingFile"))}catch(e){this.handleError(e,mxResources.get("errorLoadingFile"))}else this.loadTemplate(b,function(a){d(a)},mxUtils.bind(this,function(){this.handleError(null,mxResources.get("errorLoadingFile"),c)}))}else(null==window.location.hash||1>=window.location.hash.length)&&null!=urlParams.state&&null!=this.stateArg&&"open"==this.stateArg.action&&null!=this.stateArg.ids&&(window.location.hash= @@ -8299,28 +8335,28 @@ gapi.drive.realtime.custom.collaborativeField("children"),mxRtCell.prototype.sou App.prototype.pickFile=function(a){a=null!=a?a:this.mode;if(a==App.MODE_GOOGLE)null!=this.drive&&"undefined"!=typeof google&&"undefined"!=typeof google.picker?this.drive.pickFile():this.openLink("https://drive.google.com");else{var b=this.getPeerForMode(a);if(null!=b)b.pickFile();else if(a==App.MODE_DEVICE&&Graph.fileSupport&&(!mxClient.IS_IE&&!mxClient.IS_IE11||0>navigator.appVersion.indexOf("Windows NT 6.1"))){var c=document.createElement("input");c.setAttribute("type","file");mxEvent.addListener(c, "change",mxUtils.bind(this,function(){null!=c.files&&this.openFiles(c.files)}));c.click()}else{this.hideDialog();window.openNew=null!=this.getCurrentFile()&&!this.isDiagramEmpty();window.baseUrl=this.getUrl();window.openKey="open";var d=Editor.useLocalStorage;Editor.useLocalStorage=a==App.MODE_BROWSER;this.openFile();window.openFile.setConsumer(mxUtils.bind(this,function(b,c){this.useCanvasForExport||".png"!=c.substring(c.length-4)||(c=c.substring(0,c.length-4)+".xml");this.fileLoaded(a==App.MODE_BROWSER? new StorageFile(this,b,c):new LocalFile(this,b,c))}));var e=this.dialog,g=e.close;this.dialog.close=mxUtils.bind(this,function(a){Editor.useLocalStorage=d;g.apply(e,arguments);null==this.getCurrentFile()&&this.showSplash()})}}}; -App.prototype.pickLibrary=function(a){a=null!=a?a:this.mode;if(a==App.MODE_GOOGLE||a==App.MODE_DROPBOX||a==App.MODE_ONEDRIVE||a==App.MODE_GITHUB||a==App.MODE_TRELLO){var b=a==App.MODE_GOOGLE?this.drive:a==App.MODE_ONEDRIVE?this.oneDrive:a==App.MODE_GITHUB?this.gitHub:a==App.MODE_TRELLO?this.trello:this.dropbox;null!=b&&b.pickLibrary(mxUtils.bind(this,function(a,c){if(null!=c)try{this.loadLibrary(c)}catch(l){this.handleError(l,mxResources.get("errorLoadingFile"))}else this.spinner.spin(document.body, -mxResources.get("loading"))&&b.getLibrary(a,mxUtils.bind(this,function(a){this.spinner.stop();try{this.loadLibrary(a)}catch(m){this.handleError(m,mxResources.get("errorLoadingFile"))}}),mxUtils.bind(this,function(a){this.handleError(a,null!=a?mxResources.get("errorLoadingFile"):null)}))}))}else if(a!=App.MODE_DEVICE||!Graph.fileSupport||mxClient.IS_IE||mxClient.IS_IE11){window.openNew=!1;window.openKey="open";var c=Editor.useLocalStorage;Editor.useLocalStorage=a==App.MODE_BROWSER;window.openFile= -new OpenFile(mxUtils.bind(this,function(a){this.hideDialog(a)}));window.openFile.setConsumer(mxUtils.bind(this,function(b,c){try{this.loadLibrary(a==App.MODE_BROWSER?new StorageLibrary(this,b,c):new LocalLibrary(this,b,c))}catch(l){this.handleError(l,mxResources.get("errorLoadingFile"))}}));this.showDialog((new OpenDialog(this)).container,Editor.useLocalStorage?640:360,Editor.useLocalStorage?480:220,!0,!0,function(){Editor.useLocalStorage=c;window.openFile=null})}else{var d=document.createElement("input"); -d.setAttribute("type","file");mxEvent.addListener(d,"change",mxUtils.bind(this,function(){if(null!=d.files)for(var a=0;a<d.files.length;a++)mxUtils.bind(this,function(a){var b=new FileReader;b.onload=mxUtils.bind(this,function(b){try{this.loadLibrary(new LocalLibrary(this,b.target.result,a.name))}catch(n){this.handleError(n,mxResources.get("errorLoadingFile"))}});b.readAsText(a)})(d.files[a])}));d.click()}}; -App.prototype.saveLibrary=function(a,b,c,d,e,g,l){d=null!=d?d:this.mode;e=null!=e?e:!1;g=null!=g?g:!1;var m=this.createLibraryDataFromImages(b),n=mxUtils.bind(this,function(a){this.spinner.stop();null!=l&&l();this.handleError(a,null!=a?mxResources.get("errorSavingFile"):null)});null==c&&d==App.MODE_DEVICE&&(c=new LocalLibrary(this,m,a));if(null==c)this.pickFolder(d,mxUtils.bind(this,function(c){d==App.MODE_GOOGLE&&null!=this.drive&&this.spinner.spin(document.body,mxResources.get("inserting"))?this.drive.insertFile(a, -m,c,mxUtils.bind(this,function(a){this.spinner.stop();this.hideDialog(!0);this.libraryLoaded(a,b)}),n,this.drive.libraryMimeType):d==App.MODE_GITHUB&&null!=this.gitHub&&this.spinner.spin(document.body,mxResources.get("inserting"))?this.gitHub.insertLibrary(a,m,mxUtils.bind(this,function(a){this.spinner.stop();this.hideDialog(!0);this.libraryLoaded(a,b)}),n,c):d==App.MODE_TRELLO&&null!=this.trello&&this.spinner.spin(document.body,mxResources.get("inserting"))?this.trello.insertLibrary(a,m,mxUtils.bind(this, -function(a){this.spinner.stop();this.hideDialog(!0);this.libraryLoaded(a,b)}),n,c):d==App.MODE_DROPBOX&&null!=this.dropbox&&this.spinner.spin(document.body,mxResources.get("inserting"))?this.dropbox.insertLibrary(a,m,mxUtils.bind(this,function(a){this.spinner.stop();this.hideDialog(!0);this.libraryLoaded(a,b)}),n,c):d==App.MODE_ONEDRIVE&&null!=this.oneDrive&&this.spinner.spin(document.body,mxResources.get("inserting"))?this.oneDrive.insertLibrary(a,m,mxUtils.bind(this,function(a){this.spinner.stop(); -this.hideDialog(!0);this.libraryLoaded(a,b)}),n,c):d==App.MODE_BROWSER?(c=mxUtils.bind(this,function(){var c=new StorageLibrary(this,m,a);c.saveFile(a,!1,mxUtils.bind(this,function(){this.hideDialog(!0);this.libraryLoaded(c,b)}),n)}),null==localStorage.getItem(a)?c():this.confirm(mxResources.get("replaceIt",[a]),c)):this.handleError({message:mxResources.get("serviceUnavailableOrBlocked")})}));else if(e||this.spinner.spin(document.body,mxResources.get("saving"))){c.setData(m);var f=mxUtils.bind(this, -function(){c.save(!0,mxUtils.bind(this,function(a){this.spinner.stop();this.hideDialog(!0);g||this.libraryLoaded(c,b);null!=l&&l()}),n)});if(a!=c.getTitle()){var h=c.getHash();c.rename(a,mxUtils.bind(this,function(a){c.constructor!=LocalLibrary&&h!=c.getHash()&&(mxSettings.removeCustomLibrary(h),mxSettings.addCustomLibrary(c.getHash()));this.removeLibrarySidebar(h);f()}),n)}else f()}}; -App.prototype.saveFile=function(a){var b=this.getCurrentFile();if(null!=b){var c=mxUtils.bind(this,function(){this.removeDraft();b.getMode()!=App.MODE_DEVICE?this.editor.setStatus(mxUtils.htmlEntities(mxResources.get("allChangesSaved"))):this.editor.setStatus("")});if(a||null==b.getTitle()||null==this.mode){var d=null!=b.getTitle()?b.getTitle():this.defaultFilename,e=!mxClient.IS_IOS||!navigator.standalone,g=this.mode;a=this.getServiceCount(!0);isLocalStorage&&a++;var l=4>=a?2:6<a?4:3,d=new CreateDialog(this, +App.prototype.pickLibrary=function(a){a=null!=a?a:this.mode;if(a==App.MODE_GOOGLE||a==App.MODE_DROPBOX||a==App.MODE_ONEDRIVE||a==App.MODE_GITHUB||a==App.MODE_TRELLO){var b=a==App.MODE_GOOGLE?this.drive:a==App.MODE_ONEDRIVE?this.oneDrive:a==App.MODE_GITHUB?this.gitHub:a==App.MODE_TRELLO?this.trello:this.dropbox;null!=b&&b.pickLibrary(mxUtils.bind(this,function(a,c){if(null!=c)try{this.loadLibrary(c)}catch(k){this.handleError(k,mxResources.get("errorLoadingFile"))}else this.spinner.spin(document.body, +mxResources.get("loading"))&&b.getLibrary(a,mxUtils.bind(this,function(a){this.spinner.stop();try{this.loadLibrary(a)}catch(l){this.handleError(l,mxResources.get("errorLoadingFile"))}}),mxUtils.bind(this,function(a){this.handleError(a,null!=a?mxResources.get("errorLoadingFile"):null)}))}))}else if(a!=App.MODE_DEVICE||!Graph.fileSupport||mxClient.IS_IE||mxClient.IS_IE11){window.openNew=!1;window.openKey="open";var c=Editor.useLocalStorage;Editor.useLocalStorage=a==App.MODE_BROWSER;window.openFile= +new OpenFile(mxUtils.bind(this,function(a){this.hideDialog(a)}));window.openFile.setConsumer(mxUtils.bind(this,function(b,c){try{this.loadLibrary(a==App.MODE_BROWSER?new StorageLibrary(this,b,c):new LocalLibrary(this,b,c))}catch(k){this.handleError(k,mxResources.get("errorLoadingFile"))}}));this.showDialog((new OpenDialog(this)).container,Editor.useLocalStorage?640:360,Editor.useLocalStorage?480:220,!0,!0,function(){Editor.useLocalStorage=c;window.openFile=null})}else{var d=document.createElement("input"); +d.setAttribute("type","file");mxEvent.addListener(d,"change",mxUtils.bind(this,function(){if(null!=d.files)for(var a=0;a<d.files.length;a++)mxUtils.bind(this,function(a){var b=new FileReader;b.onload=mxUtils.bind(this,function(b){try{this.loadLibrary(new LocalLibrary(this,b.target.result,a.name))}catch(m){this.handleError(m,mxResources.get("errorLoadingFile"))}});b.readAsText(a)})(d.files[a])}));d.click()}}; +App.prototype.saveLibrary=function(a,b,c,d,e,g,k){d=null!=d?d:this.mode;e=null!=e?e:!1;g=null!=g?g:!1;var l=this.createLibraryDataFromImages(b),m=mxUtils.bind(this,function(a){this.spinner.stop();null!=k&&k();this.handleError(a,null!=a?mxResources.get("errorSavingFile"):null)});null==c&&d==App.MODE_DEVICE&&(c=new LocalLibrary(this,l,a));if(null==c)this.pickFolder(d,mxUtils.bind(this,function(c){d==App.MODE_GOOGLE&&null!=this.drive&&this.spinner.spin(document.body,mxResources.get("inserting"))?this.drive.insertFile(a, +l,c,mxUtils.bind(this,function(a){this.spinner.stop();this.hideDialog(!0);this.libraryLoaded(a,b)}),m,this.drive.libraryMimeType):d==App.MODE_GITHUB&&null!=this.gitHub&&this.spinner.spin(document.body,mxResources.get("inserting"))?this.gitHub.insertLibrary(a,l,mxUtils.bind(this,function(a){this.spinner.stop();this.hideDialog(!0);this.libraryLoaded(a,b)}),m,c):d==App.MODE_TRELLO&&null!=this.trello&&this.spinner.spin(document.body,mxResources.get("inserting"))?this.trello.insertLibrary(a,l,mxUtils.bind(this, +function(a){this.spinner.stop();this.hideDialog(!0);this.libraryLoaded(a,b)}),m,c):d==App.MODE_DROPBOX&&null!=this.dropbox&&this.spinner.spin(document.body,mxResources.get("inserting"))?this.dropbox.insertLibrary(a,l,mxUtils.bind(this,function(a){this.spinner.stop();this.hideDialog(!0);this.libraryLoaded(a,b)}),m,c):d==App.MODE_ONEDRIVE&&null!=this.oneDrive&&this.spinner.spin(document.body,mxResources.get("inserting"))?this.oneDrive.insertLibrary(a,l,mxUtils.bind(this,function(a){this.spinner.stop(); +this.hideDialog(!0);this.libraryLoaded(a,b)}),m,c):d==App.MODE_BROWSER?(c=mxUtils.bind(this,function(){var c=new StorageLibrary(this,l,a);c.saveFile(a,!1,mxUtils.bind(this,function(){this.hideDialog(!0);this.libraryLoaded(c,b)}),m)}),null==localStorage.getItem(a)?c():this.confirm(mxResources.get("replaceIt",[a]),c)):this.handleError({message:mxResources.get("serviceUnavailableOrBlocked")})}));else if(e||this.spinner.spin(document.body,mxResources.get("saving"))){c.setData(l);var f=mxUtils.bind(this, +function(){c.save(!0,mxUtils.bind(this,function(a){this.spinner.stop();this.hideDialog(!0);g||this.libraryLoaded(c,b);null!=k&&k()}),m)});if(a!=c.getTitle()){var h=c.getHash();c.rename(a,mxUtils.bind(this,function(a){c.constructor!=LocalLibrary&&h!=c.getHash()&&(mxSettings.removeCustomLibrary(h),mxSettings.addCustomLibrary(c.getHash()));this.removeLibrarySidebar(h);f()}),m)}else f()}}; +App.prototype.saveFile=function(a){var b=this.getCurrentFile();if(null!=b){var c=mxUtils.bind(this,function(){this.removeDraft();b.getMode()!=App.MODE_DEVICE?this.editor.setStatus(mxUtils.htmlEntities(mxResources.get("allChangesSaved"))):this.editor.setStatus("")});if(a||null==b.getTitle()||null==this.mode){var d=null!=b.getTitle()?b.getTitle():this.defaultFilename,e=!mxClient.IS_IOS||!navigator.standalone,g=this.mode;a=this.getServiceCount(!0);isLocalStorage&&a++;var k=4>=a?2:6<a?4:3,d=new CreateDialog(this, d,mxUtils.bind(this,function(a,b){null!=a&&0<a.length&&(null==g&&b==App.MODE_DEVICE?(this.setMode(App.MODE_DEVICE),this.save(a,c)):"download"==b?(new LocalFile(this,null,a)).save():"_blank"==b?(window.openFile=new OpenFile(function(){window.openFile=null}),window.openFile.setData(this.getFileData(!0)),this.openLink(this.getUrl(window.location.pathname),null,!0)):g!=b?this.pickFolder(b,mxUtils.bind(this,function(d){this.createFile(a,this.getFileData(/(\.xml)$/i.test(a)||0>a.indexOf("."),/(\.svg)$/i.test(a), -/(\.html)$/i.test(a)),null,b,c,null==this.mode,d)})):null!=b&&this.save(a,c))}),mxUtils.bind(this,function(){this.hideDialog()}),mxResources.get("saveAs"),mxResources.get("download"),null,null,e,this.isOffline()?null:"https://desk.draw.io/support/solutions/articles/16000042485",!0,l);this.showDialog(d.container,460,a>l?390:270,!0,!0);d.init()}else this.save(b.getTitle(),c)}}; +/(\.html)$/i.test(a)),null,b,c,null==this.mode,d)})):null!=b&&this.save(a,c))}),mxUtils.bind(this,function(){this.hideDialog()}),mxResources.get("saveAs"),mxResources.get("download"),null,null,e,this.isOffline()?null:"https://desk.draw.io/support/solutions/articles/16000042485",!0,k);this.showDialog(d.container,460,a>k?390:270,!0,!0);d.init()}else this.save(b.getTitle(),c)}}; App.prototype.loadTemplate=function(a,b,c){var d=a;this.isCorsEnabledForUrl(d)||(d="t="+(new Date).getTime(),d=PROXY_URL+"?url="+encodeURIComponent(a)+"&"+d);this.loadUrl(d,mxUtils.bind(this,function(d){/(\.vsdx)($|\?)/i.test(a)?this.importVisio(this.base64ToBlob(d.substring(d.indexOf(",")+1)),function(a){b(a)},c,a):!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(d,a)?this.parseFile(new Blob([d],{type:"application/octet-stream"}),mxUtils.bind(this,function(a){4==a.readyState&& 200<=a.status&&299>=a.status&&"<mxGraphModel"==a.responseText.substring(0,13)&&b(a.responseText)}),a):this.isLucidChartData(d)?this.convertLucidChart(d,mxUtils.bind(this,function(a){b(a)}),mxUtils.bind(this,function(a){c(a)})):(/(\.png)($|\?)/i.test(a)&&(d=this.extractGraphModelFromPng(d)),b(d))}),c,/(\.png)($|\?)/i.test(a)||/(\.vsdx)($|\?)/i.test(a))}; App.prototype.getPeerForMode=function(a){return a==App.MODE_GOOGLE?this.drive:a==App.MODE_GITHUB?this.gitHub:a==App.MODE_DROPBOX?this.dropbox:a==App.MODE_ONEDRIVE?this.oneDrive:a==App.MODE_TRELLO?this.trello:null}; -App.prototype.createFile=function(a,b,c,d,e,g,l,m){d=m?null:null!=d?d:this.mode;if(null!=a&&this.spinner.spin(document.body,mxResources.get("inserting"))){b=null!=b?b:this.emptyDiagramXml;var n=mxUtils.bind(this,function(){this.spinner.stop()}),f=mxUtils.bind(this,function(a){n();null==a&&null==this.getCurrentFile()&&null==this.dialog?this.showSplash():null!=a&&this.handleError(a)});try{if(d==App.MODE_GOOGLE&&null!=this.drive)null==l&&null!=this.stateArg&&null!=this.stateArg.folderId&&(l=this.stateArg.folderId), -this.drive.insertFile(a,b,l,mxUtils.bind(this,function(a){n();this.fileCreated(a,c,g,e)}),f);else if(d==App.MODE_GITHUB&&null!=this.gitHub)this.gitHub.insertFile(a,b,mxUtils.bind(this,function(a){n();this.fileCreated(a,c,g,e)}),f,!1,l);else if(d==App.MODE_TRELLO&&null!=this.trello)this.trello.insertFile(a,b,mxUtils.bind(this,function(a){n();this.fileCreated(a,c,g,e)}),f,!1,l);else if(d==App.MODE_DROPBOX&&null!=this.dropbox)this.dropbox.insertFile(a,b,mxUtils.bind(this,function(a){n();this.fileCreated(a, -c,g,e)}),f);else if(d==App.MODE_ONEDRIVE&&null!=this.oneDrive)this.oneDrive.insertFile(a,b,mxUtils.bind(this,function(a){n();this.fileCreated(a,c,g,e)}),f,!1,l);else if(d==App.MODE_BROWSER){n();var h=mxUtils.bind(this,function(){var d=new StorageFile(this,b,a);d.saveFile(a,!1,mxUtils.bind(this,function(){this.fileCreated(d,c,g,e)}),f)});null==localStorage.getItem(a)?h():this.confirm(mxResources.get("replaceIt",[a]),h,mxUtils.bind(this,function(){null==this.getCurrentFile()&&null==this.dialog&&this.showSplash()}))}else n(), -this.fileCreated(new LocalFile(this,b,a,null==d),c,g,e)}catch(k){n(),this.handleError(k)}}}; -App.prototype.fileCreated=function(a,b,c,d){var e=window.location.pathname;null!=b&&0<b.length&&(e+="?libs="+b);e=this.getUrl(e);a.getMode()!=App.MODE_DEVICE&&(e+="#"+a.getHash());if(this.spinner.spin(document.body,mxResources.get("inserting"))){var g=a.getData(),g=0<g.length?this.editor.extractGraphModel(mxUtils.parseXml(g).documentElement,!0):null,l=window.location.protocol+"//"+window.location.hostname+e,m=g,n=null;null!=g&&/\.svg$/i.test(a.getTitle())&&(n=this.createTemporaryGraph(this.editor.graph.getStylesheet()), -document.body.appendChild(n.container),m=this.decodeNodeIntoGraph(m,n));a.setData(this.createFileData(g,n,a,l));null!=n&&n.container.parentNode.removeChild(n.container);var f=mxUtils.bind(this,function(){this.spinner.stop()}),h=mxUtils.bind(this,function(){f();var g=this.getCurrentFile();null==c&&null!=g&&(c=!g.isModified()&&null==g.getMode());var h=mxUtils.bind(this,function(){window.openFile=null;this.fileLoaded(a);c&&this.editor.setStatus(mxUtils.htmlEntities(mxResources.get("allChangesSaved"))); -null!=b&&this.sidebar.showEntries(b)}),l=mxUtils.bind(this,function(){c||null==g||!g.isModified()?h():this.confirm(mxResources.get("allChangesLost"),null,h,mxResources.get("cancel"),mxResources.get("discardChanges"))});null!=d&&d();null==c||c?l():(a.constructor==LocalFile&&(window.openFile=new OpenFile(function(){window.openFile=null}),window.openFile.setData(a.getData(),a.getTitle(),null==a.getMode())),null!=d&&d(),window.openWindow(e,null,l))});a.constructor==LocalFile||a.constructor==DriveFile? +App.prototype.createFile=function(a,b,c,d,e,g,k,l){d=l?null:null!=d?d:this.mode;if(null!=a&&this.spinner.spin(document.body,mxResources.get("inserting"))){b=null!=b?b:this.emptyDiagramXml;var m=mxUtils.bind(this,function(){this.spinner.stop()}),f=mxUtils.bind(this,function(a){m();null==a&&null==this.getCurrentFile()&&null==this.dialog?this.showSplash():null!=a&&this.handleError(a)});try{if(d==App.MODE_GOOGLE&&null!=this.drive)null==k&&null!=this.stateArg&&null!=this.stateArg.folderId&&(k=this.stateArg.folderId), +this.drive.insertFile(a,b,k,mxUtils.bind(this,function(a){m();this.fileCreated(a,c,g,e)}),f);else if(d==App.MODE_GITHUB&&null!=this.gitHub)this.gitHub.insertFile(a,b,mxUtils.bind(this,function(a){m();this.fileCreated(a,c,g,e)}),f,!1,k);else if(d==App.MODE_TRELLO&&null!=this.trello)this.trello.insertFile(a,b,mxUtils.bind(this,function(a){m();this.fileCreated(a,c,g,e)}),f,!1,k);else if(d==App.MODE_DROPBOX&&null!=this.dropbox)this.dropbox.insertFile(a,b,mxUtils.bind(this,function(a){m();this.fileCreated(a, +c,g,e)}),f);else if(d==App.MODE_ONEDRIVE&&null!=this.oneDrive)this.oneDrive.insertFile(a,b,mxUtils.bind(this,function(a){m();this.fileCreated(a,c,g,e)}),f,!1,k);else if(d==App.MODE_BROWSER){m();var h=mxUtils.bind(this,function(){var d=new StorageFile(this,b,a);d.saveFile(a,!1,mxUtils.bind(this,function(){this.fileCreated(d,c,g,e)}),f)});null==localStorage.getItem(a)?h():this.confirm(mxResources.get("replaceIt",[a]),h,mxUtils.bind(this,function(){null==this.getCurrentFile()&&null==this.dialog&&this.showSplash()}))}else m(), +this.fileCreated(new LocalFile(this,b,a,null==d),c,g,e)}catch(n){m(),this.handleError(n)}}}; +App.prototype.fileCreated=function(a,b,c,d){var e=window.location.pathname;null!=b&&0<b.length&&(e+="?libs="+b);e=this.getUrl(e);a.getMode()!=App.MODE_DEVICE&&(e+="#"+a.getHash());if(this.spinner.spin(document.body,mxResources.get("inserting"))){var g=a.getData(),g=0<g.length?this.editor.extractGraphModel(mxUtils.parseXml(g).documentElement,!0):null,k=window.location.protocol+"//"+window.location.hostname+e,l=g,m=null;null!=g&&/\.svg$/i.test(a.getTitle())&&(m=this.createTemporaryGraph(this.editor.graph.getStylesheet()), +document.body.appendChild(m.container),l=this.decodeNodeIntoGraph(l,m));a.setData(this.createFileData(g,m,a,k));null!=m&&m.container.parentNode.removeChild(m.container);var f=mxUtils.bind(this,function(){this.spinner.stop()}),h=mxUtils.bind(this,function(){f();var g=this.getCurrentFile();null==c&&null!=g&&(c=!g.isModified()&&null==g.getMode());var h=mxUtils.bind(this,function(){window.openFile=null;this.fileLoaded(a);c&&this.editor.setStatus(mxUtils.htmlEntities(mxResources.get("allChangesSaved"))); +null!=b&&this.sidebar.showEntries(b)}),k=mxUtils.bind(this,function(){c||null==g||!g.isModified()?h():this.confirm(mxResources.get("allChangesLost"),null,h,mxResources.get("cancel"),mxResources.get("discardChanges"))});null!=d&&d();null==c||c?k():(a.constructor==LocalFile&&(window.openFile=new OpenFile(function(){window.openFile=null}),window.openFile.setData(a.getData(),a.getTitle(),null==a.getMode())),null!=d&&d(),window.openWindow(e,null,k))});a.constructor==LocalFile||a.constructor==DriveFile? h():a.saveFile(a.getTitle(),!1,mxUtils.bind(this,function(){h()}),mxUtils.bind(this,function(a){f();this.handleError(a)}))}}; App.prototype.loadFile=function(a,b,c,d){this.hideDialog();var e=mxUtils.bind(this,function(){if(null==a||0==a.length)this.editor.setStatus(""),this.fileLoaded(null);else if(this.spinner.spin(document.body,mxResources.get("loading")))if("L"==a.charAt(0))if(this.spinner.stop(),isLocalStorage)try{a=decodeURIComponent(a.substring(1));var e=localStorage.getItem(a);if(null!=e)this.fileLoaded(new StorageFile(this,e,a)),null!=d&&d();else throw{message:mxResources.get("fileNotFound")};}catch(h){this.handleError(h, mxResources.get("errorLoadingFile"),mxUtils.bind(this,function(){var a=this.getCurrentFile();window.location.hash=null!=a?a.getHash():""}))}else this.handleError({message:mxResources.get("serviceUnavailableOrBlocked")},mxResources.get("errorLoadingFile"),mxUtils.bind(this,function(){var a=this.getCurrentFile();window.location.hash=null!=a?a.getHash():""}));else if(null!=c)this.spinner.stop(),this.fileLoaded(c),null!=d&&d();else if("S"==a.charAt(0)){this.spinner.stop();try{this.loadDescriptor(JSON.parse(this.editor.graph.decompress(a.substring(1))), @@ -8328,20 +8364,20 @@ d,mxUtils.bind(this,function(a){this.handleError(a,mxResources.get("errorLoading f=mxUtils.bind(this,function(){if("https://drive.google.com/uc?id="!=g.substring(0,31)||null==this.drive&&"function"!==typeof window.DriveClient)return!1;this.hideDialog();var a=mxUtils.bind(this,function(){this.spinner.stop();return null!=this.drive?(this.loadFile("G"+g.substring(31,g.lastIndexOf("&ex")),b,d),!0):!1});!a()&&this.spinner.spin(document.body,mxResources.get("loading"))&&this.addListener("clientLoaded",a);return!0});this.loadTemplate(g,mxUtils.bind(this,function(b){this.spinner.stop(); if(null!=b&&0<b.length){var c=this.defaultFilename;if(null==urlParams.title&&"1"!=urlParams.notitle){var d=g,e=g.lastIndexOf("."),h=d.lastIndexOf("/");e>h&&0<h&&(d=d.substring(h+1,e),e=g.substring(e),this.useCanvasForExport||".png"!=e||(e=".xml"),".svg"===e||".xml"===e||".html"===e||".png"===e)&&(c=d+e)}b=new LocalFile(this,b,null!=urlParams.title?decodeURIComponent(urlParams.title):c,!0);b.getHash=function(){return a};this.fileLoaded(b)||f()}}),mxUtils.bind(this,function(){f()||(this.spinner.stop(), this.handleError({message:mxResources.get("fileNotFound")},mxResources.get("errorLoadingFile")))}))}else e=null,"G"==a.charAt(0)?e=this.drive:"D"==a.charAt(0)?e=this.dropbox:"W"==a.charAt(0)?e=this.oneDrive:"H"==a.charAt(0)?e=this.gitHub:"T"==a.charAt(0)&&(e=this.trello),null==e?this.handleError({message:mxResources.get("serviceUnavailableOrBlocked")},mxResources.get("errorLoadingFile"),mxUtils.bind(this,function(){var a=this.getCurrentFile();window.location.hash=null!=a?a.getHash():""})):(a=decodeURIComponent(a.substring(1)), -e.getFile(a,mxUtils.bind(this,function(a){this.spinner.stop();this.fileLoaded(a);null!=d&&d()}),mxUtils.bind(this,function(b){null!=window.console&&null!=b&&console.log("error in loadFile:",a,b);this.handleError(b,null!=b?mxResources.get("errorLoadingFile"):null,mxUtils.bind(this,function(){var a=this.getCurrentFile();null==a?(window.location.hash="",this.showSplash()):window.location.hash=a.getHash()}))})))}),g=this.getCurrentFile(),l=mxUtils.bind(this,function(){null!=g&&g.isModified()?this.confirm(mxResources.get("allChangesLost"), -mxUtils.bind(this,function(){null!=g&&(window.location.hash=g.getHash())}),e,mxResources.get("cancel"),mxResources.get("discardChanges")):e()});null==a||0==a.length?l():null!=g&&g.isModified()&&!b?window.openWindow(this.getUrl()+"#"+a,null,l):l()}; +e.getFile(a,mxUtils.bind(this,function(a){this.spinner.stop();this.fileLoaded(a);null!=d&&d()}),mxUtils.bind(this,function(b){null!=window.console&&null!=b&&console.log("error in loadFile:",a,b);this.handleError(b,null!=b?mxResources.get("errorLoadingFile"):null,mxUtils.bind(this,function(){var a=this.getCurrentFile();null==a?(window.location.hash="",this.showSplash()):window.location.hash=a.getHash()}))})))}),g=this.getCurrentFile(),k=mxUtils.bind(this,function(){null!=g&&g.isModified()?this.confirm(mxResources.get("allChangesLost"), +mxUtils.bind(this,function(){null!=g&&(window.location.hash=g.getHash())}),e,mxResources.get("cancel"),mxResources.get("discardChanges")):e()});null==a||0==a.length?k():null!=g&&g.isModified()&&!b?window.openWindow(this.getUrl()+"#"+a,null,k):k()}; App.prototype.getLibraryStorageHint=function(a){var b=a.getTitle();a.constructor!=LocalLibrary&&(b+="\n"+a.getHash());a.constructor==DriveLibrary?b+=" ("+mxResources.get("googleDrive")+")":a.constructor==GitHubLibrary?b+=" ("+mxResources.get("github")+")":a.constructor==TrelloLibrary?b+=" ("+mxResources.get("trello")+")":a.constructor==DropboxLibrary?b+=" ("+mxResources.get("dropbox")+")":a.constructor==OneDriveLibrary?b+=" ("+mxResources.get("oneDrive")+")":a.constructor==StorageLibrary?b+=" ("+ mxResources.get("browser")+")":a.constructor==LocalLibrary&&(b+=" ("+mxResources.get("device")+")");return b}; -App.prototype.restoreLibraries=function(){if(null!=this.sidebar){null==this.pendingLibraries&&(this.pendingLibraries={});var a=mxUtils.bind(this,function(a){mxSettings.removeCustomLibrary(a);delete this.pendingLibraries[a]}),b=mxUtils.bind(this,function(b,d){var c=0,g=[],l=mxUtils.bind(this,function(){if(0==c){if(null!=b)for(var a=b.length-1;0<=a;a--)null!=g[a]&&this.loadLibrary(g[a]);null!=d&&d()}});if(null!=b)for(var m=0;m<b.length;m++){var n=encodeURIComponent(decodeURIComponent(b[m]));mxUtils.bind(this, -function(b,d){if(null!=b&&0<b.length&&null==this.pendingLibraries[b]&&null==this.sidebar.palettes[b]){c++;var e=mxUtils.bind(this,function(a){delete this.pendingLibraries[b];g[d]=a;c--;l()}),f=mxUtils.bind(this,function(){a(b);c--;l()});this.pendingLibraries[b]=!0;var h=b.substring(0,1);if("L"==h)(isLocalStorage||mxClient.IS_CHROMEAPP)&&window.setTimeout(mxUtils.bind(this,function(){try{var a=decodeURIComponent(b.substring(1));this.getLocalData(a,mxUtils.bind(this,function(b){".scratchpad"==a&&null== -b&&(b=this.emptyLibraryXml);null!=b?e(new StorageLibrary(this,b,a)):f()}))}catch(A){f()}}),0);else if("U"==h){var m=decodeURIComponent(b.substring(1));if(!this.isOffline()){h=m;this.isCorsEnabledForUrl(h)||(h="t="+(new Date).getTime(),h=PROXY_URL+"?url="+encodeURIComponent(m)+"&"+h);try{mxUtils.get(h,mxUtils.bind(this,function(a){if(200<=a.getStatus()&&299>=a.getStatus())try{e(new UrlLibrary(this,a.getText(),m))}catch(A){f()}else f()}),function(){f()})}catch(y){f()}}}else{var n=null;"G"==h?null!= -this.drive&&null!=this.drive.user&&(n=this.drive):"H"==h?null!=this.gitHub&&null!=this.gitHub.getUser()&&(n=this.gitHub):"T"==h?null!=this.trello&&this.trello.isAuthorized()&&(n=this.trello):"D"==h?null!=this.dropbox&&null!=this.dropbox.getUser()&&(n=this.dropbox):"W"==h&&null!=this.oneDrive&&null!=this.oneDrive.getUser()&&(n=this.oneDrive);null!=n?n.getLibrary(decodeURIComponent(b.substring(1)),mxUtils.bind(this,function(a){try{e(a)}catch(A){f()}}),function(a){f()}):(delete this.pendingLibraries[b], -f())}}})(n,m)}l()});b(mxSettings.getCustomLibraries(),function(){b((urlParams.clibs||"").split(";"))})}}; +App.prototype.restoreLibraries=function(){if(null!=this.sidebar){null==this.pendingLibraries&&(this.pendingLibraries={});var a=mxUtils.bind(this,function(a){mxSettings.removeCustomLibrary(a);delete this.pendingLibraries[a]}),b=mxUtils.bind(this,function(b,d){var c=0,g=[],k=mxUtils.bind(this,function(){if(0==c){if(null!=b)for(var a=b.length-1;0<=a;a--)null!=g[a]&&this.loadLibrary(g[a]);null!=d&&d()}});if(null!=b)for(var l=0;l<b.length;l++){var m=encodeURIComponent(decodeURIComponent(b[l]));mxUtils.bind(this, +function(b,d){if(null!=b&&0<b.length&&null==this.pendingLibraries[b]&&null==this.sidebar.palettes[b]){c++;var e=mxUtils.bind(this,function(a){delete this.pendingLibraries[b];g[d]=a;c--;k()}),f=mxUtils.bind(this,function(){a(b);c--;k()});this.pendingLibraries[b]=!0;var h=b.substring(0,1);if("L"==h)(isLocalStorage||mxClient.IS_CHROMEAPP)&&window.setTimeout(mxUtils.bind(this,function(){try{var a=decodeURIComponent(b.substring(1));this.getLocalData(a,mxUtils.bind(this,function(b){".scratchpad"==a&&null== +b&&(b=this.emptyLibraryXml);null!=b?e(new StorageLibrary(this,b,a)):f()}))}catch(B){f()}}),0);else if("U"==h){var l=decodeURIComponent(b.substring(1));if(!this.isOffline()){h=l;this.isCorsEnabledForUrl(h)||(h="t="+(new Date).getTime(),h=PROXY_URL+"?url="+encodeURIComponent(l)+"&"+h);try{mxUtils.get(h,mxUtils.bind(this,function(a){if(200<=a.getStatus()&&299>=a.getStatus())try{e(new UrlLibrary(this,a.getText(),l))}catch(B){f()}else f()}),function(){f()})}catch(y){f()}}}else{var m=null;"G"==h?null!= +this.drive&&null!=this.drive.user&&(m=this.drive):"H"==h?null!=this.gitHub&&null!=this.gitHub.getUser()&&(m=this.gitHub):"T"==h?null!=this.trello&&this.trello.isAuthorized()&&(m=this.trello):"D"==h?null!=this.dropbox&&null!=this.dropbox.getUser()&&(m=this.dropbox):"W"==h&&null!=this.oneDrive&&null!=this.oneDrive.getUser()&&(m=this.oneDrive);null!=m?m.getLibrary(decodeURIComponent(b.substring(1)),mxUtils.bind(this,function(a){try{e(a)}catch(B){f()}}),function(a){f()}):(delete this.pendingLibraries[b], +f())}}})(m,l)}k()});b(mxSettings.getCustomLibraries(),function(){b((urlParams.clibs||"").split(";"))})}}; App.prototype.updateButtonContainer=function(){if(null!=this.buttonContainer){var a=this.getCurrentFile();null!=a&&a.constructor==DriveFile?null==this.shareButton&&(this.shareButton=document.createElement("div"),this.shareButton.className="geBtn gePrimaryBtn",this.shareButton.style.display="inline-block",this.shareButton.style.padding="0 10px 0 10px",this.shareButton.style.marginTop="-4px",this.shareButton.style.height="28px",this.shareButton.style.lineHeight="28px",this.shareButton.style.minWidth= "0px",this.shareButton.style.cssFloat="right",a=document.createElement("img"),a.setAttribute("src",this.shareImage),a.setAttribute("align","absmiddle"),a.style.marginRight="4px",a.style.marginTop="-3px",this.shareButton.appendChild(a),mxUtils.write(this.shareButton,mxResources.get("share")),mxEvent.addListener(this.shareButton,"click",mxUtils.bind(this,function(){this.actions.get("share").funct()})),this.buttonContainer.appendChild(this.shareButton)):null!=this.shareButton&&(this.shareButton.parentNode.removeChild(this.shareButton), this.shareButton=null)}}; App.prototype.save=function(a,b){var c=this.getCurrentFile(),d=mxResources.get("saving");null!=c&&c.constructor==DriveFile&&(d=mxResources.get("createRevision"));if(null!=c&&this.spinner.spin(document.body,d)){this.editor.setStatus("");this.editor.graph.isEditing()&&this.editor.graph.stopEditing();var d=mxUtils.bind(this,function(a){this.spinner.stop();this.getCurrentFile()==c&&(c.isModified()?c.isAutosave()||c.addUnsavedStatus():this.editor.setStatus(mxUtils.htmlEntities(mxResources.get("allChangesSaved"))));null!= -b&&b()}),e=mxUtils.bind(this,function(a){this.handleError(a,null!=a?mxResources.get("errorSavingFile"):null)});a==c.getTitle()?c.save(!0,d,e):c.saveAs(a,d,e)}}; +b&&b()}),e=mxUtils.bind(this,function(a){this.getCurrentFile()==c&&c.isModified()&&c.addUnsavedStatus();this.handleError(a,null!=a?mxResources.get("errorSavingFile"):null)});a==c.getTitle()?c.save(!0,d,e):c.saveAs(a,d,e)}}; App.prototype.pickFolder=function(a,b,c){c=null!=c?c:!0;var d=this.spinner.pause();c&&a==App.MODE_GOOGLE&&null!=this.drive?this.drive.pickFolder(mxUtils.bind(this,function(a){d();if(a.action==google.picker.Action.PICKED){var c=null;null!=a.docs&&0<a.docs.length&&"folder"==a.docs[0].type&&(c=a.docs[0].id);b(c)}})):c&&a==App.MODE_ONEDRIVE&&null!=this.oneDrive?this.oneDrive.pickFolder(mxUtils.bind(this,function(a){d();null!=a&&null!=a.value&&0<a.value.length&&(a=OneDriveFile.prototype.getIdOf(a.value[0]), b(a))})):c&&a==App.MODE_GITHUB&&null!=this.gitHub?this.gitHub.pickFolder(mxUtils.bind(this,function(a){d();b(a)})):c&&a==App.MODE_TRELLO&&null!=this.trello?this.trello.pickFolder(mxUtils.bind(this,function(a){d();b(a)})):EditorUi.prototype.pickFolder.apply(this,arguments)}; App.prototype.exportFile=function(a,b,c,d,e,g){e==App.MODE_DROPBOX?null!=this.dropbox&&this.spinner.spin(document.body,mxResources.get("saving"))&&this.dropbox.insertFile(b,d?this.base64ToBlob(a,c):a,mxUtils.bind(this,function(){this.spinner.stop()}),mxUtils.bind(this,function(a){this.spinner.stop();this.handleError(a)})):e==App.MODE_GOOGLE?null!=this.drive&&this.spinner.spin(document.body,mxResources.get("saving"))&&this.drive.insertFile(b,a,g,mxUtils.bind(this,function(a){this.spinner.stop()}), @@ -8350,10 +8386,10 @@ function(){this.spinner.stop()}),mxUtils.bind(this,function(a){this.spinner.stop c():this.confirm(mxResources.get("replaceIt",[b]),c))}; App.prototype.descriptorChanged=function(){var a=this.getCurrentFile();if(null!=a){if(null!=this.fname){this.fnameWrapper.style.display="block";this.fname.innerHTML="";var b=null!=a.getTitle()?a.getTitle():this.defaultFilename;mxUtils.write(this.fname,b);this.fname.setAttribute("title",b+" - "+mxResources.get("rename"))}this.editor.graph.setEnabled(a.isEditable());null==urlParams.rev&&(this.updateDocumentTitle(),a=a.getHash(),0<a.length?window.location.hash=a:0<window.location.hash.length&&(window.location.hash= ""))}};App.prototype.toggleChat=function(){var a=this.getCurrentFile();if(null!=a){if(null==a.chatWindow){var b=document.body.offsetWidth-300;a.chatWindow=new ChatWindow(this,mxResources.get("chatWindowTitle"),document.getElementById("geChat"),b,80,250,350,a.realtime);a.chatWindow.window.setVisible(!1)}a.chatWindow.window.setVisible(!a.chatWindow.window.isVisible())}}; -App.prototype.showAuthDialog=function(a,b,c,d){var e=this.spinner.pause();this.showDialog((new AuthDialog(this,a,b,mxUtils.bind(this,function(a){try{null!=c&&c(a,mxUtils.bind(this,function(){this.hideDialog();e()}))}catch(l){this.editor.setStatus(mxUtils.htmlEntities(l.message))}}))).container,300,b?180:140,!0,!0,mxUtils.bind(this,function(a){null!=d&&d();a&&null==this.getCurrentFile()&&null==this.dialog&&this.showSplash()}))}; -App.prototype.convertFile=function(a,b,c,d,e,g){var l=b;/\.svg$/i.test(l)||(l=l.substring(0,b.lastIndexOf("."))+d);var m=!1;null!=this.gitHub&&a.substring(0,this.gitHub.baseUrl.length)==this.gitHub.baseUrl&&(m=!0);if(/\.v(dx|sdx?)$/i.test(b)&&Graph.fileSupport&&(new XMLHttpRequest).upload&&"string"===typeof(new XMLHttpRequest).responseType){var n=new XMLHttpRequest;n.open("GET",a,!0);m||(n.responseType="blob");n.onload=mxUtils.bind(this,function(){var a=null;m?(a=JSON.parse(n.responseText),a=this.base64ToBlob(a.content, -"application/octet-stream")):a=new Blob([n.response],{type:"application/octet-stream"});this.importVisio(a,mxUtils.bind(this,function(a){e(new LocalFile(this,a,l,!0))}),g,b)});n.send()}else{var f=mxUtils.bind(this,function(c){try{/\.png$/i.test(b)?(temp=this.extractGraphModelFromPng(c),null!=temp?e(new LocalFile(this,temp,l,!0)):e(new LocalFile(this,c,b,!0))):Graph.fileSupport&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(c,a)?this.parseFile(new Blob([c],{type:"application/octet-stream"}), -mxUtils.bind(this,function(a){4==a.readyState&&(200<=a.status&&299>=a.status?e(new LocalFile(this,a.responseText,l,!0)):null!=g&&g({message:mxResources.get("errorLoadingFile")}))}),b):e(new LocalFile(this,c,l,!0))}catch(k){null!=g&&g(k)}});c=/\.png$/i.test(b)||/\.jpe?g$/i.test(b)||null!=c&&"image/"==c.substring(0,6);m?mxUtils.get(a,mxUtils.bind(this,function(a){if(200<=a.getStatus()&&299>=a.getStatus()){if(null!=e){a=JSON.parse(a.getText());var c=a.content;"base64"===a.encoding&&(c=/\.png$/i.test(b)? +App.prototype.showAuthDialog=function(a,b,c,d){var e=this.spinner.pause();this.showDialog((new AuthDialog(this,a,b,mxUtils.bind(this,function(a){try{null!=c&&c(a,mxUtils.bind(this,function(){this.hideDialog();e()}))}catch(k){this.editor.setStatus(mxUtils.htmlEntities(k.message))}}))).container,300,b?180:140,!0,!0,mxUtils.bind(this,function(a){null!=d&&d();a&&null==this.getCurrentFile()&&null==this.dialog&&this.showSplash()}))}; +App.prototype.convertFile=function(a,b,c,d,e,g){var k=b;/\.svg$/i.test(k)||(k=k.substring(0,b.lastIndexOf("."))+d);var l=!1;null!=this.gitHub&&a.substring(0,this.gitHub.baseUrl.length)==this.gitHub.baseUrl&&(l=!0);if(/\.v(dx|sdx?)$/i.test(b)&&Graph.fileSupport&&(new XMLHttpRequest).upload&&"string"===typeof(new XMLHttpRequest).responseType){var m=new XMLHttpRequest;m.open("GET",a,!0);l||(m.responseType="blob");m.onload=mxUtils.bind(this,function(){var a=null;l?(a=JSON.parse(m.responseText),a=this.base64ToBlob(a.content, +"application/octet-stream")):a=new Blob([m.response],{type:"application/octet-stream"});this.importVisio(a,mxUtils.bind(this,function(a){e(new LocalFile(this,a,k,!0))}),g,b)});m.send()}else{var f=mxUtils.bind(this,function(c){try{/\.png$/i.test(b)?(temp=this.extractGraphModelFromPng(c),null!=temp?e(new LocalFile(this,temp,k,!0)):e(new LocalFile(this,c,b,!0))):Graph.fileSupport&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(c,a)?this.parseFile(new Blob([c],{type:"application/octet-stream"}), +mxUtils.bind(this,function(a){4==a.readyState&&(200<=a.status&&299>=a.status?e(new LocalFile(this,a.responseText,k,!0)):null!=g&&g({message:mxResources.get("errorLoadingFile")}))}),b):e(new LocalFile(this,c,k,!0))}catch(n){null!=g&&g(n)}});c=/\.png$/i.test(b)||/\.jpe?g$/i.test(b)||null!=c&&"image/"==c.substring(0,6);l?mxUtils.get(a,mxUtils.bind(this,function(a){if(200<=a.getStatus()&&299>=a.getStatus()){if(null!=e){a=JSON.parse(a.getText());var c=a.content;"base64"===a.encoding&&(c=/\.png$/i.test(b)? "data:image/png;base64,"+c:!window.atob||mxClient.IS_IE||mxClient.IS_IE11?Base64.decode(c):atob(c));f(c)}}else null!=g&&g({code:App.ERROR_UNKNOWN})}),function(){null!=g&&g({code:App.ERROR_UNKNOWN})},!1,this.timeout,function(){null!=g&&g({code:App.ERROR_TIMEOUT,retry:fn})}):this.loadUrl(a,f,g,c)}}; App.prototype.updateHeader=function(){if(null!=this.menubar){this.appIcon=document.createElement("a");this.appIcon.style.display="block";this.appIcon.style.position="absolute";this.appIcon.style.width="40px";this.appIcon.style.backgroundColor="#f18808";this.appIcon.style.height=this.menubarHeight+"px";mxEvent.disableContextMenu(this.appIcon);mxEvent.addListener(this.appIcon,"click",mxUtils.bind(this,function(a){this.appIconClicked(a)}));var a=mxClient.IS_SVG?"url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcKICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIgogICB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiCiAgIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sOnNwYWNlPSJwcmVzZXJ2ZSIKICAgZW5hYmxlLWJhY2tncm91bmQ9Im5ldyAwIDAgMzA2LjE4NSAxMjAuMjk2IgogICB2aWV3Qm94PSIyNCAyNiA2OCA2OCIKICAgeT0iMHB4IgogICB4PSIwcHgiCiAgIHZlcnNpb249IjEuMSI+CiAgIAkgPGc+PGxpbmUKICAgICAgIHkyPSI3Mi4zOTQiCiAgICAgICB4Mj0iNDEuMDYxIgogICAgICAgeTE9IjQzLjM4NCIKICAgICAgIHgxPSI1OC4wNjkiCiAgICAgICBzdHJva2UtbWl0ZXJsaW1pdD0iMTAiCiAgICAgICBzdHJva2Utd2lkdGg9IjMuNTUyOCIKICAgICAgIHN0cm9rZT0iI0ZGRkZGRiIKICAgICAgIGZpbGw9Im5vbmUiIC8+PGxpbmUKICAgICAgIHkyPSI3Mi4zOTQiCiAgICAgICB4Mj0iNzUuMDc2IgogICAgICAgeTE9IjQzLjM4NCIKICAgICAgIHgxPSI1OC4wNjgiCiAgICAgICBzdHJva2UtbWl0ZXJsaW1pdD0iMTAiCiAgICAgICBzdHJva2Utd2lkdGg9IjMuNTAwOCIKICAgICAgIHN0cm9rZT0iI0ZGRkZGRiIKICAgICAgIGZpbGw9Im5vbmUiIC8+PGc+PHBhdGgKICAgICAgICAgZD0iTTUyLjc3Myw3Ny4wODRjMCwxLjk1NC0xLjU5OSwzLjU1My0zLjU1MywzLjU1M0gzNi45OTljLTEuOTU0LDAtMy41NTMtMS41OTktMy41NTMtMy41NTN2LTkuMzc5ICAgIGMwLTEuOTU0LDEuNTk5LTMuNTUzLDMuNTUzLTMuNTUzaDEyLjIyMmMxLjk1NCwwLDMuNTUzLDEuNTk5LDMuNTUzLDMuNTUzVjc3LjA4NHoiCiAgICAgICAgIGZpbGw9IiNGRkZGRkYiIC8+PC9nPjxnCiAgICAgICBpZD0iZzM0MTkiPjxwYXRoCiAgICAgICAgIGQ9Ik02Ny43NjIsNDguMDc0YzAsMS45NTQtMS41OTksMy41NTMtMy41NTMsMy41NTNINTEuOTg4Yy0xLjk1NCwwLTMuNTUzLTEuNTk5LTMuNTUzLTMuNTUzdi05LjM3OSAgICBjMC0xLjk1NCwxLjU5OS0zLjU1MywzLjU1My0zLjU1M0g2NC4yMWMxLjk1NCwwLDMuNTUzLDEuNTk5LDMuNTUzLDMuNTUzVjQ4LjA3NHoiCiAgICAgICAgIGZpbGw9IiNGRkZGRkYiIC8+PC9nPjxnPjxwYXRoCiAgICAgICAgIGQ9Ik04Mi43NTIsNzcuMDg0YzAsMS45NTQtMS41OTksMy41NTMtMy41NTMsMy41NTNINjYuOTc3Yy0xLjk1NCwwLTMuNTUzLTEuNTk5LTMuNTUzLTMuNTUzdi05LjM3OSAgICBjMC0xLjk1NCwxLjU5OS0zLjU1MywzLjU1My0zLjU1M2gxMi4yMjJjMS45NTQsMCwzLjU1MywxLjU5OSwzLjU1MywzLjU1M1Y3Ny4wODR6IgogICAgICAgICBmaWxsPSIjRkZGRkZGIiAvPjwvZz48L2c+PC9zdmc+)": "url('"+IMAGE_PATH+"/logo-white.png')";this.appIcon.style.backgroundImage=a;this.appIcon.style.backgroundPosition="center center";this.appIcon.style.backgroundRepeat="no-repeat";mxUtils.setPrefixedStyle(this.appIcon.style,"transition","all 125ms linear");mxEvent.addListener(this.appIcon,"mouseover",mxUtils.bind(this,function(){var a=this.getCurrentFile();null!=a&&(a=a.getMode(),a==App.MODE_GOOGLE?this.appIcon.style.backgroundImage="url("+IMAGE_PATH+"/google-drive-logo-white.svg)":a==App.MODE_DROPBOX? @@ -8379,8 +8415,8 @@ Dialog.prototype.closeImage);b.setAttribute("title",mxResources.get("close"));b. (null!=b.pictureUrl?'<img width="80" height="80" style="margin-right:10px;border-radius:50%;" src="'+b.pictureUrl+'"/>':'<img width="80" height="80" style="margin-right:4px;margin-top:2px;" src="'+this.defaultUserPicture+'"/>')+'</td><td valign="top" style="white-space:nowrap;'+(null!=b.pictureUrl?"padding-top:14px;":"")+'"><b>'+mxUtils.htmlEntities(b.displayName)+"</b><br><small>"+mxUtils.htmlEntities(b.email)+"</small><br><br><small>"+mxResources.get("googleDrive")+"</small></tr></table>",b=document.createElement("div"), b.style.textAlign="center",b.style.padding="12px",b.style.background="whiteSmoke",b.style.borderTop="1px solid #e0e0e0",b.style.whiteSpace="nowrap",b.appendChild(mxUtils.button(mxResources.get("signOut"),mxUtils.bind(this,function(){var a=this.getCurrentFile();null!=a&&a.constructor==DriveFile?this.confirm(mxResources.get("areYouSure"),mxUtils.bind(this,function(){this.spinner.spin(document.body,mxResources.get("signOut"));this.diagramContainer.style.display="none";this.formatContainer.style.display= "none";this.hsplit.style.display="none";this.sidebarContainer.style.display="none";this.sidebarFooterContainer.style.display="none";null!=this.tabContainer&&(this.tabContainer.style.display="none");a.close();window.setTimeout(mxUtils.bind(this,function(){this.showDialog=function(){};window.location.hash="";this.drive.clearUserId();gapi.auth.signOut();window.location.reload()}),null!=a&&a.constructor==DriveFile?2E3:0)})):(this.drive.clearUserId(),this.drive.setUser(null),gapi.auth.signOut())}))),this.userPanel.appendChild(b))); -b=mxUtils.bind(this,function(a,b,c,m){null!=a&&(d&&this.userPanel.appendChild(document.createElement("hr")),d=!0,this.userPanel.innerHTML+='<table style="font-size:10pt;padding:20px 20px 10px 10px;"><tr><td valign="top">'+(null!=b?'<img style="margin-right:10px;" src="'+b+'" width="40" height="40"/></td>':"")+'<td valign="middle" style="white-space:nowrap;"><b>'+mxUtils.htmlEntities(a.displayName)+"</b>"+(null!=a.email?'<br><font color="gray">'+mxUtils.htmlEntities(a.email)+"</font>":"")+(null!=m? -"<br><br><small>"+mxUtils.htmlEntities(m)+"</small>":"")+"</td></tr></table>",a=document.createElement("div"),a.style.textAlign="center",a.style.padding="12px",a.style.background="whiteSmoke",a.style.borderTop="1px solid #e0e0e0",a.style.whiteSpace="nowrap",null!=c&&a.appendChild(mxUtils.button(mxResources.get("signOut"),c)),this.userPanel.appendChild(a))});null!=this.dropbox&&b(this.dropbox.getUser(),IMAGE_PATH+"/dropbox-logo.svg",mxUtils.bind(this,function(){var a=this.getCurrentFile();if(null!= +b=mxUtils.bind(this,function(a,b,c,l){null!=a&&(d&&this.userPanel.appendChild(document.createElement("hr")),d=!0,this.userPanel.innerHTML+='<table style="font-size:10pt;padding:20px 20px 10px 10px;"><tr><td valign="top">'+(null!=b?'<img style="margin-right:10px;" src="'+b+'" width="40" height="40"/></td>':"")+'<td valign="middle" style="white-space:nowrap;"><b>'+mxUtils.htmlEntities(a.displayName)+"</b>"+(null!=a.email?'<br><font color="gray">'+mxUtils.htmlEntities(a.email)+"</font>":"")+(null!=l? +"<br><br><small>"+mxUtils.htmlEntities(l)+"</small>":"")+"</td></tr></table>",a=document.createElement("div"),a.style.textAlign="center",a.style.padding="12px",a.style.background="whiteSmoke",a.style.borderTop="1px solid #e0e0e0",a.style.whiteSpace="nowrap",null!=c&&a.appendChild(mxUtils.button(mxResources.get("signOut"),c)),this.userPanel.appendChild(a))});null!=this.dropbox&&b(this.dropbox.getUser(),IMAGE_PATH+"/dropbox-logo.svg",mxUtils.bind(this,function(){var a=this.getCurrentFile();if(null!= a&&a.constructor==DropboxFile){var b=mxUtils.bind(this,function(){this.dropbox.logout();window.location.hash=""});a.isModified()?this.confirm(mxResources.get("allChangesLost"),null,b,mxResources.get("cancel"),mxResources.get("discardChanges")):b()}else this.dropbox.logout()}),mxResources.get("dropbox"));null!=this.oneDrive&&b(this.oneDrive.getUser(),IMAGE_PATH+"/onedrive-logo.svg",mxUtils.bind(this,function(){var a=this.getCurrentFile();if(null!=a&&a.constructor==OneDriveFile){var b=mxUtils.bind(this, function(){this.oneDrive.logout();window.location.hash=""});a.isModified()?this.confirm(mxResources.get("allChangesLost"),null,b,mxResources.get("cancel"),mxResources.get("discardChanges")):b()}else this.oneDrive.logout()}),mxResources.get("oneDrive"));null!=this.gitHub&&b(this.gitHub.getUser(),IMAGE_PATH+"/github-logo.svg",mxUtils.bind(this,function(){var a=this.getCurrentFile();if(null!=a&&a.constructor==GitHubFile){var b=mxUtils.bind(this,function(){this.gitHub.logout();window.location.hash=""}); a.isModified()?this.confirm(mxResources.get("allChangesLost"),null,b,mxResources.get("cancel"),mxResources.get("discardChanges")):b()}else this.gitHub.logout()}),mxResources.get("github"));null!=this.trello&&b(this.trello.getUser(),IMAGE_PATH+"/trello-logo.svg",mxUtils.bind(this,function(){var a=this.getCurrentFile();if(null!=a&&a.constructor==TrelloFile){var b=mxUtils.bind(this,function(){this.trello.logout();window.location.hash=""});a.isModified()?this.confirm(mxResources.get("allChangesLost"), @@ -8388,12 +8424,12 @@ null,b,mxResources.get("cancel"),mxResources.get("discardChanges")):b()}else thi this.userPanel.parentNode.removeChild(this.userPanel)})));var a=null;null!=this.drive&&null!=this.drive.getUser()?a=this.drive.getUser():null!=this.oneDrive&&null!=this.oneDrive.getUser()?a=this.oneDrive.getUser():null!=this.dropbox&&null!=this.dropbox.getUser()?a=this.dropbox.getUser():null!=this.gitHub&&null!=this.gitHub.getUser()&&(a=this.gitHub.getUser());null!=a?(this.userElement.innerHTML="",560<screen.width&&(mxUtils.write(this.userElement,a.displayName),this.userElement.style.display="block")): this.userElement.style.display="none"}else null!=this.userElement&&(this.userElement.parentNode.removeChild(this.userElement),this.userElement=null)};var editorResetGraph=Editor.prototype.resetGraph;Editor.prototype.resetGraph=function(){editorResetGraph.apply(this,arguments);this.graph.pageFormat=mxSettings.getPageFormat()};(function(){var a=mxPopupMenu.prototype.showMenu;mxPopupMenu.prototype.showMenu=function(){a.apply(this,arguments);this.div.style.overflowY="auto";this.div.style.overflowX="hidden";this.div.style.maxHeight=Math.max(document.body.clientHeight,document.documentElement.clientHeight)-10+"px"};Menus.prototype.createHelpLink=function(a){var b=document.createElement("span");b.setAttribute("title",mxResources.get("help"));b.style.cssText="color:blue;text-decoration:underline;margin-left:12px;cursor:help;"; var c=document.createElement("img");c.setAttribute("border","0");c.setAttribute("valign","bottom");c.setAttribute("src",Editor.helpImage);b.appendChild(c);mxEvent.addGestureListeners(b,mxUtils.bind(this,function(b){null!=this.editorUi.menubar&&this.editorUi.menubar.hideMenu();this.editorUi.openLink(a);mxEvent.consume(b)}));return b};Menus.prototype.addLinkToItem=function(a,b){null!=a&&a.firstChild.nextSibling.appendChild(this.createHelpLink(b))};var b=Menus.prototype.init;Menus.prototype.init=function(){b.apply(this, -arguments);var a=this.editorUi,c=a.editor.graph,g=mxUtils.bind(c,c.isEnabled),l=("1"!=urlParams.embed&&"0"!=urlParams.gapi||"1"==urlParams.embed&&"1"==urlParams.gapi)&&mxClient.IS_SVG&&isLocalStorage&&(null==document.documentMode||10<=document.documentMode),m=("1"!=urlParams.embed&&"0"!=urlParams.db||"1"==urlParams.embed&&"1"==urlParams.db)&&mxClient.IS_SVG&&(null==document.documentMode||9<document.documentMode),n=("www.draw.io"==window.location.hostname||"test.draw.io"==window.location.hostname|| +arguments);var a=this.editorUi,c=a.editor.graph,g=mxUtils.bind(c,c.isEnabled),k=("1"!=urlParams.embed&&"0"!=urlParams.gapi||"1"==urlParams.embed&&"1"==urlParams.gapi)&&mxClient.IS_SVG&&isLocalStorage&&(null==document.documentMode||10<=document.documentMode),l=("1"!=urlParams.embed&&"0"!=urlParams.db||"1"==urlParams.embed&&"1"==urlParams.db)&&mxClient.IS_SVG&&(null==document.documentMode||9<document.documentMode),m=("www.draw.io"==window.location.hostname||"test.draw.io"==window.location.hostname|| "drive.draw.io"==window.location.hostname||"legacy.draw.io"==window.location.hostname)&&("1"!=urlParams.embed&&"0"!=urlParams.od||"1"==urlParams.embed&&"1"==urlParams.od)&&!navigator.userAgent.match(/(iPad|iPhone|iPod)/g)&&(0>navigator.userAgent.indexOf("MSIE")||10<=document.documentMode),f=("1"!=urlParams.embed&&"0"!=urlParams.tr||"1"==urlParams.embed&&"1"==urlParams.tr)&&mxClient.IS_SVG&&(null==document.documentMode||9<document.documentMode);mxClient.IS_SVG||a.isOffline()||((new Image).src=IMAGE_PATH+ -"/help.png");a.actions.addAction("new...",function(){var b=a.isOffline(),c=new NewDialog(a,b);a.showDialog(c.container,b?350:620,b?70:440,!0,!0,function(b){b&&null==a.getCurrentFile()&&a.showSplash()});c.init()});a.actions.put("exportSvg",new Action(mxResources.get("formatSvg")+"...",function(){a.showExportDialog(mxResources.get("formatSvg"),!0,mxResources.get("export"),"https://support.draw.io/display/DO/Exporting+Files",mxUtils.bind(this,function(b,c,d,e,f,g,h,l,k,m){b=parseInt(b);!isNaN(b)&&0< -b&&a.exportSvg(b/100,c,d,e,f,g,h,!l,k,m)}),!0,null,"svg")}));a.actions.put("exportXml",new Action(mxResources.get("formatXml")+"...",function(){var b=document.createElement("div");b.style.whiteSpace="nowrap";var d=null==a.pages||1>=a.pages.length,e=document.createElement("h3");mxUtils.write(e,mxResources.get("formatXml"));e.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:4px";b.appendChild(e);var f=a.addCheckbox(b,mxResources.get("selectionOnly"),!1,c.isSelectionEmpty()), +"/help.png");a.actions.addAction("new...",function(){var b=a.isOffline(),c=new NewDialog(a,b);a.showDialog(c.container,b?350:620,b?70:440,!0,!0,function(b){b&&null==a.getCurrentFile()&&a.showSplash()});c.init()});a.actions.put("exportSvg",new Action(mxResources.get("formatSvg")+"...",function(){a.showExportDialog(mxResources.get("formatSvg"),!0,mxResources.get("export"),"https://support.draw.io/display/DO/Exporting+Files",mxUtils.bind(this,function(b,c,d,e,f,g,h,k,l,m){b=parseInt(b);!isNaN(b)&&0< +b&&a.exportSvg(b/100,c,d,e,f,g,h,!k,l,m)}),!0,null,"svg")}));a.actions.put("exportXml",new Action(mxResources.get("formatXml")+"...",function(){var b=document.createElement("div");b.style.whiteSpace="nowrap";var d=null==a.pages||1>=a.pages.length,e=document.createElement("h3");mxUtils.write(e,mxResources.get("formatXml"));e.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:4px";b.appendChild(e);var f=a.addCheckbox(b,mxResources.get("selectionOnly"),!1,c.isSelectionEmpty()), g=a.addCheckbox(b,mxResources.get(d?"compressed":"allPages"),!0);g.style.marginBottom="16px";mxEvent.addListener(f,"change",function(){f.checked?g.setAttribute("disabled","disabled"):g.removeAttribute("disabled")});b=new CustomDialog(a,b,mxUtils.bind(this,function(){a.downloadFile("xml",d?!g.checked:null,null,!f.checked,d?null:!g.checked)}),null,mxResources.get("export"));a.showDialog(b.container,300,146,!0,!0)}));a.actions.put("exportUrl",new Action(mxResources.get("url")+"...",function(){a.showPublishLinkDialog(mxResources.get("url"), -!0,null,null,function(b,c,d,e,f,g){b=new EmbedDialog(a,a.createLink(b,c,d,e,f,g,null,!0));a.showDialog(b.container,440,240,!0,!0);b.init()})}));a.actions.put("exportHtml",new Action(mxResources.get("formatHtmlEmbedded")+"...",function(){a.spinner.spin(document.body,mxResources.get("loading"))&&a.getPublicUrl(a.getCurrentFile(),function(b){a.spinner.stop();a.showHtmlDialog(mxResources.get("export"),null,b,function(b,c,d,e,f,g,h,l,k,m){a.createHtml(b,c,d,e,f,g,h,l,k,m,mxUtils.bind(this,function(b,c){var d= +!0,null,null,function(b,c,d,e,f,g){b=new EmbedDialog(a,a.createLink(b,c,d,e,f,g,null,!0));a.showDialog(b.container,440,240,!0,!0);b.init()})}));a.actions.put("exportHtml",new Action(mxResources.get("formatHtmlEmbedded")+"...",function(){a.spinner.spin(document.body,mxResources.get("loading"))&&a.getPublicUrl(a.getCurrentFile(),function(b){a.spinner.stop();a.showHtmlDialog(mxResources.get("export"),null,b,function(b,c,d,e,f,g,h,k,l,m){a.createHtml(b,c,d,e,f,g,h,k,l,m,mxUtils.bind(this,function(b,c){var d= a.getBaseFilename(h),e='\x3c!--[if IE]><meta http-equiv="X-UA-Compatible" content="IE=5,IE=9" ><![endif]--\x3e\n<!DOCTYPE html>\n<html>\n<head>\n<title>'+mxUtils.htmlEntities(d)+'</title>\n<meta charset="utf-8"/>\n</head>\n<body>'+b+"\n"+c+"\n</body>\n</html>";a.saveData(d+".html","html",e,"text/html")}))})})}));a.actions.put("exportPdf",new Action(mxResources.get("formatPdf")+"...",function(){if(a.isOffline()||a.printPdfExport)a.showDialog((new PrintDialog(a,mxResources.get("formatPdf"))).container, 360,null!=a.pages&&1<a.pages.length?420:360,!0,!0);else{var b=document.createElement("div");b.style.whiteSpace="nowrap";var d=document.createElement("h3");mxUtils.write(d,mxResources.get("formatPdf"));d.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:4px";b.appendChild(d);var e=a.addCheckbox(b,mxResources.get("selectionOnly"),!1,c.isSelectionEmpty()),f=a.addCheckbox(b,mxResources.get("crop"),!c.pageVisible||!a.pdfPageExport,!a.pdfPageExport);f.style.marginBottom="16px";a.pdfPageExport|| mxEvent.addListener(e,"change",function(){e.checked?f.removeAttribute("disabled"):f.setAttribute("disabled","disabled")});b=new CustomDialog(a,b,mxUtils.bind(this,function(){a.downloadFile("pdf",null,null,!e.checked,null,!f.checked)}),null,mxResources.get("export"));a.showDialog(b.container,300,146,!0,!0)}}));a.actions.addAction("open...",function(){a.pickFile()});a.actions.addAction("close",function(){function b(){a.fileLoaded(null)}var c=a.getCurrentFile();null!=c&&c.isModified()?a.confirm(mxResources.get("allChangesLost"), @@ -8401,89 +8437,89 @@ null,b,mxResources.get("cancel"),mxResources.get("discardChanges")):b()});a.acti DriveFile&&b.constructor!=DropboxFile||null==a.drive&&b.constructor==DriveFile||null==a.dropbox&&b.constructor==DropboxFile)a.showError(mxResources.get("error"),mxResources.get("notAvailable"),mxResources.get("ok"));else if(a.spinner.spin(document.body,mxResources.get("loading")))if(b.constructor==DropboxFile){var c=a.dropbox.client.filesListRevisions({path:b.stat.path_lower,limit:100});c.then(mxUtils.bind(this,function(c){a.spinner.stop();try{for(var d=[],e=c.entries.length-1;0<=e;e--)(function(c){d.push({modifiedDate:c.client_modified, fileSize:c.size,getXml:function(d,e){a.dropbox.readFile({path:b.stat.path_lower,rev:c.rev},d,e)},getUrl:function(){return a.getUrl(window.location.pathname+"?rev="+c.rev+"&chrome=0&edit=_blank")+window.location.hash}})})(c.entries[e]);var f=new RevisionDialog(a,d);a.showDialog(f.container,640,480,!0,!0);f.init()}catch(E){a.handleError(E)}}));c["catch"](function(b){a.spinner.stop();a.handleError(b)})}else a.drive.executeRequest(gapi.client.drive.revisions.list({fileId:b.getId()}),function(c){a.spinner.stop(); for(var d=0;d<c.items.length;d++)(function(d){d.getXml=function(e,f){a.drive.executeRequest(gapi.client.drive.revisions.get({fileId:b.getId(),revisionId:c.items[c.items.length-1]===d?b.desc.headRevisionId:d.id}),function(b){a.drive.getXmlFile(b,null,function(a){e(a.getData())},function(a){f(a)})},function(a){f(a)})};d.getUrl=function(){return a.getUrl(window.location.pathname+"?rev="+d.id+"&chrome=0&edit=_blank")+window.location.hash}})(c.items[d]);d=new RevisionDialog(a,c.items);a.showDialog(d.container, -640,480,!0,!0);d.init()},function(b){a.spinner.stop();a.handleError(b)})});a.actions.addAction("createRevision",function(){a.actions.get("save").funct()},null,null,Editor.ctrlKey+"+S");a.actions.addAction("upload...",function(){var b=a.getCurrentFile();null!=b&&(window.drawdata=a.getFileData(),b=null!=b.getTitle()?b.getTitle():a.defaultFilename,a.openLink(window.location.protocol+"//"+window.location.host+"/?create=drawdata&"+(a.mode==App.MODE_DROPBOX?"mode=dropbox&":"")+"title="+encodeURIComponent(b), -null,!0))});if("undefined"!==typeof MathJax){var h=a.actions.addAction("mathematicalTypesetting",function(){var b=new ChangePageSetup(a);b.ignoreColor=!0;b.ignoreImage=!0;b.mathEnabled=!a.isMathEnabled();c.model.execute(b)});h.setToggleAction(!0);h.setSelectedCallback(function(){return a.isMathEnabled()});h.isEnabled=g}if(isLocalStorage||mxClient.IS_CHROMEAPP)h=a.actions.addAction("showStartScreen",function(){mxSettings.setShowStartScreen(!mxSettings.getShowStartScreen());mxSettings.save()}),h.setToggleAction(!0), -h.setSelectedCallback(function(){return mxSettings.getShowStartScreen()});var k=a.actions.addAction("autosave",function(){a.editor.setAutosave(!a.editor.autosave)});k.setToggleAction(!0);k.setSelectedCallback(function(){return k.isEnabled()&&a.editor.autosave});a.actions.addAction("editGeometry...",function(){for(var b=c.getSelectionCells(),d=[],e=0;e<b.length;e++)c.getModel().isVertex(b[e])&&d.push(b[e]);0<d.length&&(b=new EditGeometryDialog(a,d),a.showDialog(b.container,200,250,!0,!0),b.init())}, -null,null,Editor.ctrlKey+"+Shift+M");var q="rounded shadow dashed dashPattern fontFamily fontSize fontColor fontStyle align verticalAlign strokeColor strokeWidth fillColor gradientColor swimlaneFillColor textOpacity gradientDirection glass labelBackgroundColor labelBorderColor opacity spacing spacingTop spacingLeft spacingBottom spacingRight endFill endArrow endSize startStill startArrow startSize arcSize".split(" ");a.actions.addAction("copyStyle",function(){var b=c.view.getState(c.getSelectionCell()); -if(c.isEnabled()&&null!=b){a.copiedStyle=mxUtils.clone(b.style);for(var b=c.getModel().getStyle(b.cell),b=null!=b?b.split(";"):[],d=0;d<b.length;d++){var e=b[d],f=e.indexOf("=");if(0<=f){var g=e.substring(0,f),e=e.substring(f+1);null==a.copiedStyle[g]&&"none"==e&&(a.copiedStyle[g]="none")}}}},null,null,Editor.ctrlKey+"+Shift+C");a.actions.addAction("pasteStyle",function(){if(c.isEnabled()&&!c.isSelectionEmpty()&&null!=a.copiedStyle){c.getModel().beginUpdate();try{for(var b=c.getSelectionCells(),d= -0;d<b.length;d++)for(var e=c.view.getState(b[d]),f=0;f<q.length;f++){var g=q[f],h=a.copiedStyle[g];e.style[g]!=h&&c.setCellStyles(g,h,[b[d]])}}finally{c.getModel().endUpdate()}}},null,null,Editor.ctrlKey+"+Shift+V");a.actions.put("pageBackgroundImage",new Action(mxResources.get("backgroundImage")+"...",function(){if(!a.isOffline()){var b=new BackgroundImageDialog(a,function(b){a.setBackgroundImage(b)});a.showDialog(b.container,320,170,!0,!0);b.init()}}));a.actions.put("exportPng",new Action(mxResources.get("formatPng")+ -"...",function(){a.isExportToCanvas()?a.showExportDialog(mxResources.get("image"),!1,mxResources.get("export"),"https://support.draw.io/display/DO/Exporting+Files",mxUtils.bind(this,function(b,c,d,e,f,g,h,l,k){b=parseInt(b);!isNaN(b)&&0<b&&a.exportImage(b/100,c,d,e,f,h,!l,k)}),!0,!1,"png"):a.isOffline()||mxClient.IS_IOS&&navigator.standalone||a.showRemoteExportDialog(mxResources.get("export"),null,mxUtils.bind(this,function(b,c,d){a.downloadFile(c?"xmlpng":"png",null,null,b,null,null,d)}))}));a.actions.put("exportJpg", -new Action(mxResources.get("formatJpg")+"...",function(){a.isExportToCanvas()?a.showExportDialog(mxResources.get("image"),!1,mxResources.get("export"),"https://support.draw.io/display/DO/Exporting+Files",mxUtils.bind(this,function(b,c,d,e,f,g,h,l,k){b=parseInt(b);!isNaN(b)&&0<b&&a.exportImage(b/100,!1,d,e,!1,h,!l,!1,"jpeg")}),!0,!1,"jpeg"):a.isOffline()||mxClient.IS_IOS&&navigator.standalone||a.showRemoteExportDialog(mxResources.get("export"),null,mxUtils.bind(this,function(b,c){a.downloadFile("jpeg", -null,null,b)}),!0)}));h=a.actions.put("shadowVisible",new Action(mxResources.get("shadow"),function(){c.setShadowVisible(!c.shadowVisible)}));h.setToggleAction(!0);h.setSelectedCallback(function(){return c.shadowVisible});var u=!1;a.actions.put("about",new Action(mxResources.get("aboutDrawio")+"...",function(){u||(a.showDialog((new AboutDialog(a)).container,220,300,!0,!0,function(){u=!1}),u=!0)},null,null,"F1"));a.actions.addAction("userManual...",function(){a.openLink("https://support.draw.io/display/DO/Draw.io+Online+User+Manual")}); -a.actions.addAction("support...",function(){a.openLink("https://about.draw.io/support/")});a.actions.addAction("exportOptionsDisabled...",function(){a.handleError({message:mxResources.get("exportOptionsDisabledDetails")},mxResources.get("exportOptionsDisabled"))});a.actions.addAction("keyboardShortcuts...",function(){mxClient.IS_CHROMEAPP||EditorUi.isElectronApp?a.openLink("https://www.draw.io/shortcuts.svg"):mxClient.IS_SVG?a.openLink("shortcuts.svg"):a.openLink("https://www.draw.io/?lightbox=1#Uhttps%3A%2F%2Fwww.draw.io%2Fshortcuts.svg")}); -a.actions.addAction("feedback...",function(){var b=new FeedbackDialog(a);a.showDialog(b.container,610,360,!0,!0);b.init()});a.actions.addAction("quickStart...",function(){a.openLink("https://www.youtube.com/watch?v=Z0D96ZikMkc")});h=a.actions.addAction("tags...",mxUtils.bind(this,function(){null==this.tagsWindow?(this.tagsWindow=new TagsWindow(a,document.body.offsetWidth-380,230,300,120),this.tagsWindow.window.addListener("show",function(){a.fireEvent(new mxEventObject("tags"))}),this.tagsWindow.window.addListener("hide", -function(){a.fireEvent(new mxEventObject("tags"))}),this.tagsWindow.window.setVisible(!0),a.fireEvent(new mxEventObject("tags"))):this.tagsWindow.window.setVisible(!this.tagsWindow.window.isVisible())}));h.setToggleAction(!0);h.setSelectedCallback(mxUtils.bind(this,function(){return null!=this.tagsWindow&&this.tagsWindow.window.isVisible()}));h=a.actions.addAction("find...",mxUtils.bind(this,function(){null==this.findWindow?(this.findWindow=new FindWindow(a,document.body.offsetWidth-300,110,240,140), -this.findWindow.window.addListener("show",function(){a.fireEvent(new mxEventObject("find"))}),this.findWindow.window.addListener("hide",function(){a.fireEvent(new mxEventObject("find"))}),this.findWindow.window.setVisible(!0),a.fireEvent(new mxEventObject("find"))):this.findWindow.window.setVisible(!this.findWindow.window.isVisible())}));h.setToggleAction(!0);h.setSelectedCallback(mxUtils.bind(this,function(){return null!=this.findWindow&&this.findWindow.window.isVisible()}));a.actions.put("exportVsdx", -new Action(mxResources.get("formatVsdx")+" (beta)...",function(){a.exportVisio()}));if(mxClient.IS_CHROMEAPP||isLocalStorage&&"1"!=urlParams.offline)if(this.put("language",new Menu(mxUtils.bind(this,function(b,c){var d=mxUtils.bind(this,function(d){var e=""==d?mxResources.get("automatic"):mxLanguageMap[d],f=null;""!=e&&(f=b.addItem(e,null,mxUtils.bind(this,function(){mxSettings.setLanguage(d);mxSettings.save();mxClient.language=d;mxResources.loadDefaultBundle=!1;mxResources.add(RESOURCE_BASE);a.alert(mxResources.get("restartForChangeRequired"))}), -c),(d==mxLanguage||""==d&&null==mxLanguage)&&b.addCheckmark(f,Editor.checkmarkImage));return f});d("");b.addSeparator(c);for(var e in mxLanguageMap)d(e)}))),"atlas"!=uiTheme){var p=Menus.prototype.createMenubar;Menus.prototype.createMenubar=function(a){var b=p.apply(this,arguments);if(null!=b){var c=this.get("language");null!=c&&(c=b.addMenu("",c.funct),c.setAttribute("title",mxResources.get("language")),c.style.width="16px",c.style.paddingTop="2px",c.style.paddingLeft="4px",c.innerHTML='<div class="geIcon geSprite geSprite-globe"/>', -c.style.zIndex="1",c.style.position="absolute",c.style.top="2px",c.style.right="17px",c.style.display="block",mxClient.IS_VML||mxUtils.setOpacity(c,60),document.body.appendChild(c))}return b}}this.put("help",new Menu(mxUtils.bind(this,function(b,d){if(!mxClient.IS_CHROMEAPP&&a.isOffline())this.addMenuItems(b,["about"],d);else{var e=b.addItem("Search:",null,null,d,null,null,!1);e.style.backgroundColor="dark"==uiTheme?"#505759":"whiteSmoke";e.style.cursor="default";var f=document.createElement("input"); -f.setAttribute("type","text");f.setAttribute("size","25");f.style.marginLeft="8px";mxEvent.addListener(f,"keydown",mxUtils.bind(this,function(a){var b=mxUtils.trim(f.value);13==a.keyCode&&0<b.length?(this.editorUi.openLink("https://desk.draw.io/support/search/solutions?term="+encodeURIComponent(b)),f.value="",this.editorUi.logEvent({category:"Help",action:"search",label:b}),null!=this.editorUi.menubar&&window.setTimeout(mxUtils.bind(this,function(){this.editorUi.menubar.hideMenu()}),0)):27==a.keyCode&& -(f.value="")}));e.firstChild.nextSibling.appendChild(f);mxEvent.addGestureListeners(f,function(a){document.activeElement!=f&&f.focus();mxEvent.consume(a)},function(a){mxEvent.consume(a)},function(a){mxEvent.consume(a)});window.setTimeout(function(){f.focus()},0);this.addMenuItems(b,["-","quickStart","userManual","keyboardShortcuts","-"],d);mxClient.IS_CHROMEAPP||this.addMenuItems(b,["feedback"],d);this.addMenuItems(b,["support","-"],d);a.isOffline()||EditorUi.isElectronApp||navigator.standalone|| -"1"==urlParams.embed||this.addMenuItems(b,["downloadDesktop"],d);navigator.standalone||"1"==urlParams.embed||this.addMenuItems(b,["useOffline"],d);this.addMenuItems(b,["-","about"],d)}"1"==urlParams.ruler&&(mxResources.parse("rulerInch=Ruler unit: Inches"),this.editorUi.actions.addAction("rulerInch",mxUtils.bind(this,function(){this.editorUi.vRuler.setUnit(mxRuler.prototype.INCHES);this.editorUi.hRuler.setUnit(mxRuler.prototype.INCHES);this.editorUi.vRuler.drawRuler(!0);this.editorUi.hRuler.drawRuler(!0)})), -mxResources.parse("rulerCM=Ruler unit: CMs"),this.editorUi.actions.addAction("rulerCM",mxUtils.bind(this,function(){this.editorUi.vRuler.setUnit(mxRuler.prototype.CENTIMETER);this.editorUi.hRuler.setUnit(mxRuler.prototype.CENTIMETER);this.editorUi.vRuler.drawRuler(!0);this.editorUi.hRuler.drawRuler(!0)})),mxResources.parse("rulerPixel=Ruler unit: Pixels"),this.editorUi.actions.addAction("rulerPixel",mxUtils.bind(this,function(){this.editorUi.vRuler.setUnit(mxRuler.prototype.PIXELS);this.editorUi.hRuler.setUnit(mxRuler.prototype.PIXELS); -this.editorUi.vRuler.drawRuler(!0);this.editorUi.hRuler.drawRuler(!0)})),this.addMenuItems(b,["-","rulerInch","rulerCM","rulerPixel"],d));"1"==urlParams.test&&(mxResources.parse("showBoundingBox=Show bounding box"),this.editorUi.actions.addAction("showBoundingBox",mxUtils.bind(this,function(){var a=c.getGraphBounds(),b=c.view.translate,e=c.view.scale;c.insertVertex(d,null,"",a.x/e-b.x,a.y/e-b.y,a.width/e,a.height/e,"fillColor=none;strokeColor=red;")})),mxResources.parse("createSidebarEntry=Create sidebar entry"), -this.editorUi.actions.addAction("createSidebarEntry",mxUtils.bind(this,function(){c.isSelectionEmpty()||(mxLog.show(),mxLog.debug("sb.createVertexTemplateFromData('"+c.compress(mxUtils.getXml(c.encodeCells(c.getSelectionCells())))+"', width, height, 'Title');"))})),this.addMenuItems(b,["-","createSidebarEntry","showBoundingBox"],d),mxResources.parse("testXmlImageExport=XML Image Export"),this.editorUi.actions.addAction("testXmlImageExport",mxUtils.bind(this,function(){var a=new mxImageExport,b=c.getGraphBounds(), -d=c.view.scale,e=mxUtils.createXmlDocument(),f=e.createElement("output");e.appendChild(f);e=new mxXmlCanvas2D(f);e.translate(Math.floor((1-b.x)/d),Math.floor((1-b.y)/d));e.scale(1/d);var g=0,h=e.save;e.save=function(){g++;h.apply(this,arguments)};var l=e.restore;e.restore=function(){g--;l.apply(this,arguments)};var k=a.drawShape;a.drawShape=function(a){mxLog.debug("entering shape",a,g);k.apply(this,arguments);mxLog.debug("leaving shape",a,g)};a.drawState(c.getView().getState(c.model.root),e);mxLog.show(); -mxLog.debug(mxUtils.getXml(f));mxLog.debug("stateCounter",g)})),this.addMenuItems(b,["testXmlImageExport"],d),mxResources.parse("testShowRtModel=Show RT model"),mxResources.parse("testDebugRtModel=Debug RT model"),mxResources.parse("testDownloadRtModel=Download RT model"),this.editorUi.actions.addAction("testShowRtModel",mxUtils.bind(this,function(){null!=this.editorUi.getCurrentFile()&&null!=this.editorUi.getCurrentFile().realtime&&(console.log("bytesUsed",this.editorUi.getCurrentFile().realtime.rtModel.bytesUsed), -console.log("root",this.editorUi.getCurrentFile().realtime.dumpRoot()),this.editorUi.getCurrentFile().realtime.check())})),this.editorUi.actions.addAction("testDebugRtModel",mxUtils.bind(this,function(){gapi.drive.realtime.debug()})),this.editorUi.actions.addAction("testDownloadRtModel",mxUtils.bind(this,function(){var b=this.editorUi.getCurrentFile();null!=b&&null!=b.realtime&&a.spinner.spin(document.body,mxResources.get("export"))&&(b=new mxXmlRequest("https://www.googleapis.com/drive/v2/files/"+ -b.getHash().substring(1)+"/realtime",null,"GET"),b.setRequestHeaders=function(a){mxXmlRequest.prototype.setRequestHeaders.apply(this,arguments);var b=gapi.auth.getToken().access_token;a.setRequestHeader("authorization","Bearer "+b)},b.send(function(b){a.spinner.stop();200<=b.getStatus()&&299>=b.getStatus()&&a.saveLocalFile(b.getText(),"realtime.txt","text/plain")}))})),null!=this.editorUi.getCurrentFile()&&null!=this.editorUi.getCurrentFile().realtime&&this.addMenuItems(b,["-","testShowRtModel","testDebugRtModel", -"testDownloadRtModel"],d),mxResources.parse("testShowConsole=Show Console"),this.editorUi.actions.addAction("testShowConsole",function(){mxLog.isVisible()?mxLog.window.fit():mxLog.show();mxLog.window.div.style.zIndex=mxPopupMenu.prototype.zIndex-1}),this.addMenuItems(b,["-","testShowConsole"]))})));a.actions.addAction("shapes...",function(){mxClient.IS_CHROMEAPP||!a.isOffline()?a.showDialog((new MoreShapesDialog(a,!0)).container,640,isLocalStorage?mxClient.IS_IOS?480:460:440,!0,!0):a.showDialog((new MoreShapesDialog(a, -!1)).container,360,isLocalStorage?mxClient.IS_IOS?300:280:260,!0,!0)});a.actions.addAction("createShape...",function(){a.getCurrentFile();if(c.isEnabled()){var b=new mxCell("",new mxGeometry(0,0,120,120),a.defaultCustomShapeStyle);b.vertex=!0;b=new EditShapeDialog(a,b,mxResources.get("editShape")+":",630,400);a.showDialog(b.container,640,480,!0,!1);b.init()}});a.actions.put("embedHtml",new Action(mxResources.get("html")+"...",function(){a.spinner.spin(document.body,mxResources.get("loading"))&&a.getPublicUrl(a.getCurrentFile(), -function(b){a.spinner.stop();a.showHtmlDialog(mxResources.get("create"),"https://desk.draw.io/support/solutions/articles/16000042542",b,function(b,c,d,e,f,g,h,l,k,m){a.createHtml(b,c,d,e,f,g,h,l,k,m,mxUtils.bind(this,function(b,c){var d=new EmbedDialog(a,b+"\n"+c,null,null,function(){var a=window.open(),d=a.document;"CSS1Compat"===document.compatMode&&d.writeln("<!DOCTYPE html>");d.writeln("<html>");d.writeln("<head><title>"+encodeURIComponent(mxResources.get("preview"))+'</title><meta charset="utf-8"></head>'); -d.writeln("<body>");d.writeln(b);var e=mxClient.IS_IE||mxClient.IS_EDGE||null!=document.documentMode;e&&d.writeln(c);d.writeln("</body>");d.writeln("</html>");d.close();if(!e){var f=a.document.createElement("div");f.marginLeft="26px";f.marginTop="26px";mxUtils.write(f,mxResources.get("updatingDocument"));e=a.document.createElement("img");e.setAttribute("src",window.location.protocol+"//"+window.location.hostname+"/"+IMAGE_PATH+"/spin.gif");e.style.marginLeft="6px";f.appendChild(e);a.document.body.insertBefore(f, -a.document.body.firstChild);window.setTimeout(function(){var a=document.createElement("script");a.type="text/javascript";a.src=/<script.*?src="(.*?)"/.exec(c)[1];d.body.appendChild(a);f.parentNode.removeChild(f)},20)}});a.showDialog(d.container,440,240,!0,!0);d.init()}))})})}));a.actions.put("liveImage",new Action("Live image...",function(){a.spinner.spin(document.body,mxResources.get("loading"))&&a.getPublicUrl(a.getCurrentFile(),function(b){a.spinner.stop();null!=b?(b=encodeURIComponent(b),b=new EmbedDialog(a, -EXPORT_URL+"?format=png&url="+b,0),a.showDialog(b.container,440,240,!0,!0),b.init()):a.handleError({message:mxResources.get("invalidPublicUrl")})})}));a.actions.put("embedImage",new Action(mxResources.get("image")+"...",function(){a.showEmbedImageDialog(function(b,c,d,e,f,g){a.spinner.spin(document.body,mxResources.get("loading"))&&a.createEmbedImage(b,c,d,e,f,g,function(b){a.spinner.stop();b=new EmbedDialog(a,b);a.showDialog(b.container,440,240,!0,!0);b.init()},function(b){a.spinner.stop();a.handleError(b)})}, -mxResources.get("image"),mxResources.get("retina"),a.isExportToCanvas())}));a.actions.put("embedSvg",new Action(mxResources.get("formatSvg")+"...",function(){a.showEmbedImageDialog(function(b,c,d,e,f,g){a.spinner.spin(document.body,mxResources.get("loading"))&&a.createEmbedSvg(b,c,d,e,f,g,function(b){a.spinner.stop();b=new EmbedDialog(a,b);a.showDialog(b.container,440,240,!0,!0);b.init()},function(b){a.spinner.stop();a.handleError(b)})},mxResources.get("formatSvg"),mxResources.get("image"),!0,"https://desk.draw.io/support/solutions/articles/16000042548")})); -a.actions.put("embedIframe",new Action(mxResources.get("iframe")+"...",function(){var b=c.getGraphBounds();a.showPublishLinkDialog(mxResources.get("iframe"),null,"100%",Math.ceil((b.y+b.height-c.view.translate.y)/c.view.scale)+2,function(b,c,d,e,f,g,h,l){a.spinner.spin(document.body,mxResources.get("loading"))&&a.getPublicUrl(a.getCurrentFile(),function(k){a.spinner.stop();k=new EmbedDialog(a,'<iframe frameborder="0" style="width:'+h+";height:"+l+';" src="'+a.createLink(b,c,d,e,f,g,k)+'"></iframe>'); -a.showDialog(k.container,440,240,!0,!0);k.init()})},!0)}));a.actions.put("publishLink",new Action(mxResources.get("link")+"...",function(){a.showPublishLinkDialog(null,null,null,null,function(b,c,d,e,f,g){a.spinner.spin(document.body,mxResources.get("loading"))&&a.getPublicUrl(a.getCurrentFile(),function(h){a.spinner.stop();h=new EmbedDialog(a,a.createLink(b,c,d,e,f,g,h));a.showDialog(h.container,440,240,!0,!0);h.init()})})}));a.actions.addAction("googleDocs...",function(){a.openLink("http://docsaddon.draw.io")}); -a.actions.addAction("googleSites...",function(){a.spinner.spin(document.body,mxResources.get("loading"))&&a.getPublicUrl(a.getCurrentFile(),function(b){a.spinner.stop();b=new GoogleSitesDialog(a,b);a.showDialog(b.container,420,256,!0,!0);b.init()})});if(isLocalStorage||mxClient.IS_CHROMEAPP)h=a.actions.addAction("scratchpad",function(){a.toggleScratchpad()}),h.setToggleAction(!0),h.setSelectedCallback(function(){return null!=a.scratchpad}),a.actions.addAction("plugins...",function(){a.showDialog((new PluginsDialog(a)).container, -360,170,!0,!1)});h=a.actions.addAction("search",function(){var b=a.sidebar.isEntryVisible("search");a.sidebar.showPalette("search",!b);isLocalStorage&&(mxSettings.settings.search=!b,mxSettings.save())});h.setToggleAction(!0);h.setSelectedCallback(function(){return a.sidebar.isEntryVisible("search")});"1"==urlParams.embed&&(a.actions.get("save").funct=function(b){c.isEditing()&&c.stopEditing();var d="0"!=urlParams.pages||null!=a.pages&&1<a.pages.length?a.getFileData(!0):mxUtils.getXml(a.editor.getGraphXml()); -if("json"==urlParams.proto){var e=a.createLoadMessage("save");e.xml=d;b&&(e.exit=!0);d=JSON.stringify(e)}(window.opener||window.parent).postMessage(d,"*");"0"!=urlParams.modified&&"1"!=urlParams.keepmodified&&(a.editor.modified=!1,a.editor.setStatus(""));null!=a.getCurrentFile()&&a.saveFile()},a.actions.addAction("saveAndExit",function(){a.actions.get("save").funct(!0)}),a.actions.addAction("exit",function(){var b=function(){a.editor.modified=!1;var b="json"==urlParams.proto?JSON.stringify({event:"exit", -modified:a.editor.modified}):"";(window.opener||window.parent).postMessage(b,"*")};a.editor.modified?a.confirm(mxResources.get("allChangesLost"),null,b,mxResources.get("cancel"),mxResources.get("discardChanges")):b()}));this.put("exportAs",new Menu(mxUtils.bind(this,function(b,c){a.isExportToCanvas()?(this.addMenuItems(b,["exportPng"],c),a.jpgSupported&&this.addMenuItems(b,["exportJpg"],c)):a.isOffline()||mxClient.IS_IOS&&navigator.standalone||this.addMenuItems(b,["exportPng","exportJpg"],c);this.addMenuItems(b, -["exportSvg","-"],c);a.isOffline()||a.printPdfExport?this.addMenuItems(b,["exportPdf"],c):a.isOffline()||mxClient.IS_IOS&&navigator.standalone||this.addMenuItems(b,["exportPdf"],c);mxClient.IS_IE||"undefined"===typeof VsdxExport&&a.isOffline()||this.addMenuItems(b,["exportVsdx"],c);this.addMenuItems(b,["-","exportHtml","exportXml","exportUrl"],c);a.isOffline()||(b.addSeparator(c),this.addMenuItem(b,"export",c).firstChild.nextSibling.innerHTML=mxResources.get("advanced")+"...")})));this.editorUi.actions.addAction("chatWindowTitle...", -mxUtils.bind(this.editorUi,this.editorUi.toggleChat));this.put("importFrom",new Menu(function(b,d){function e(b){b.pickFile(function(c){a.spinner.spin(document.body,mxResources.get("loading"))&&b.getFile(c,function(b){var c=h(b.getTitle());/\.svg$/i.test(b.getTitle())&&!a.editor.isDataSvg(b.getData())&&(b.setData(a.createSvgDataUri(b.getData())),c="image/svg+xml");g(b.getData(),c,b.getTitle())},function(b){a.handleError(b,null!=b?mxResources.get("errorLoadingFile"):null)},b==a.drive)},!0)}var g=mxUtils.bind(this, -function(b,d,e){var f=c.view,g=c.getGraphBounds(),h=c.snap(Math.ceil(Math.max(0,g.x/f.scale-f.translate.x)+4*c.gridSize)),l=c.snap(Math.ceil(Math.max(0,(g.y+g.height)/f.scale-f.translate.y)+4*c.gridSize));"data:image/"==b.substring(0,11)?a.loadImage(b,mxUtils.bind(this,function(f){var g=!0,k=mxUtils.bind(this,function(){a.resizeImage(f,b,mxUtils.bind(this,function(f,k,m){f=g?Math.min(1,Math.min(a.maxImageSize/k,a.maxImageSize/m)):1;a.importFile(b,d,h,l,Math.round(k*f),Math.round(m*f),e,function(b){a.spinner.stop(); -c.setSelectionCells(b);c.scrollCellToVisible(c.getSelectionCell())})}),g)});b.length>a.resampleThreshold?a.confirmImageResize(function(a){g=a;k()}):k()}),mxUtils.bind(this,function(){a.handleError({message:mxResources.get("cannotOpenFile")})})):a.importFile(b,d,h,l,0,0,e,function(b){a.spinner.stop();c.setSelectionCells(b);c.scrollCellToVisible(c.getSelectionCell())})}),h=mxUtils.bind(this,function(a){var b="text/xml";/\.png$/i.test(a)?b="image/png":/\.jpe?g$/i.test(a)?b="image/jpg":/\.gif$/i.test(a)&& -(b="image/gif");return b});"undefined"!=typeof google&&"undefined"!=typeof google.picker&&(null!=a.drive?b.addItem(mxResources.get("googleDrive")+"...",null,function(){e(a.drive)},d):l&&b.addItem(mxResources.get("googleDrive")+" ("+mxResources.get("loading")+"...)",null,function(){},d,null,!1));null!=a.gitHub&&b.addItem(mxResources.get("github")+"...",null,function(){e(a.gitHub)},d);null!=a.dropbox?b.addItem(mxResources.get("dropbox")+"...",null,function(){e(a.dropbox)},d):m&&b.addItem(mxResources.get("dropbox")+ -" ("+mxResources.get("loading")+"...)",null,function(){},d,null,!1);null!=a.oneDrive?b.addItem(mxResources.get("oneDrive")+"...",null,function(){e(a.oneDrive)},d):n&&b.addItem(mxResources.get("oneDrive")+" ("+mxResources.get("loading")+"...)",null,function(){},d,null,!1);null!=a.trello?b.addItem(mxResources.get("trello")+"...",null,function(){e(a.trello)},d):f&&b.addItem(mxResources.get("trello")+" ("+mxResources.get("loading")+"...)",null,function(){},d,null,!1);b.addSeparator(d);isLocalStorage&& -"0"!=urlParams.browser&&b.addItem(mxResources.get("browser")+"...",null,function(){a.importLocalFile(!1)},d);mxClient.IS_IOS||b.addItem(mxResources.get("device")+"...",null,function(){a.importLocalFile(!0)},d);a.isOffline()||(b.addSeparator(d),b.addItem(mxResources.get("url")+"...",null,function(){var b=new FilenameDialog(a,"",mxResources.get("import"),function(b){if(null!=b&&0<b.length&&a.spinner.spin(document.body,mxResources.get("loading"))){var c=/(\.png)($|\?)/i.test(b)?"image/png":"text/xml"; -a.loadUrl(PROXY_URL+"?url="+encodeURIComponent(b),function(a){g(a,c,b)},function(){a.spinner.stop();a.handleError(null,mxResources.get("errorLoadingFile"))},"image/png"==c)}},mxResources.get("url"));a.showDialog(b.container,300,80,!0,!0);b.init()},d))})).isEnabled=g;this.put("theme",new Menu(mxUtils.bind(this,function(b,c){var d=mxSettings.getUi(),e=b.addItem(mxResources.get("automatic"),null,function(){mxSettings.setUi("");mxSettings.save();a.alert(mxResources.get("restartForChangeRequired"))},c); -"kennedy"!=d&&"atlas"!=d&&"dark"!=d&&"min"!=d&&b.addCheckmark(e,Editor.checkmarkImage);b.addSeparator(c);e=b.addItem(mxResources.get("kennedy"),null,function(){mxSettings.setUi("kennedy");mxSettings.save();a.alert(mxResources.get("restartForChangeRequired"))},c);"kennedy"==d&&b.addCheckmark(e,Editor.checkmarkImage);e=b.addItem(mxResources.get("minimal"),null,function(){mxSettings.setUi("min");mxSettings.save();a.alert(mxResources.get("restartForChangeRequired"))},c);"min"==d&&b.addCheckmark(e,Editor.checkmarkImage); -e=b.addItem(mxResources.get("atlas"),null,function(){mxSettings.setUi("atlas");mxSettings.save();a.alert(mxResources.get("restartForChangeRequired"))},c);"atlas"==d&&b.addCheckmark(e,Editor.checkmarkImage);e=b.addItem(mxResources.get("dark"),null,function(){mxSettings.setUi("dark");mxSettings.save();a.alert(mxResources.get("restartForChangeRequired"))},c);"dark"==d&&b.addCheckmark(e,Editor.checkmarkImage)})));h=this.editorUi.actions.addAction("rename...",mxUtils.bind(this,function(){var b=this.editorUi.getCurrentFile(); -if(null!=b){var c=null!=b.getTitle()?b.getTitle():this.editorUi.defaultFilename,c=new FilenameDialog(this.editorUi,c,mxResources.get("rename"),mxUtils.bind(this,function(a){null!=a&&0<a.length&&null!=b&&this.editorUi.spinner.spin(document.body,mxResources.get("renaming"))&&b.rename(a,mxUtils.bind(this,function(a){this.editorUi.spinner.stop()}),mxUtils.bind(this,function(a){this.editorUi.handleError(a,null!=a?mxResources.get("errorRenamingFile"):null)}))}),b.constructor==DriveFile||b.constructor== -StorageFile?mxResources.get("diagramName"):null,function(b){if(null!=b&&0<b.length)return!0;a.showError(mxResources.get("error"),mxResources.get("invalidName"),mxResources.get("ok"));return!1});this.editorUi.showDialog(c.container,300,80,!0,!0);c.init()}}));h.isEnabled=function(){return this.enabled&&g.apply(this,arguments)};h.visible="1"!=urlParams.embed;a.actions.addAction("makeCopy...",mxUtils.bind(this,function(){var b=a.getCurrentFile();if(null!=b){var c=null!=b.getTitle()?b.getTitle():a.defaultFilename, -d="",e=c.lastIndexOf(".");0<=e&&(d=c.substring(e),c=c.substring(0,e));c=mxResources.get("copyOf",[c])+d;b.constructor==DriveFile?(c=new CreateDialog(a,c,mxUtils.bind(this,function(c,d){"download"==d&&(d=App.MODE_GOOGLE);null!=c&&0<c.length&&(d==App.MODE_GOOGLE?a.spinner.spin(document.body,mxResources.get("saving"))&&b.save(!1,mxUtils.bind(this,function(){b.saveAs(c,mxUtils.bind(this,function(b){a.spinner.stop();var c=a.getUrl();window.openWindow(c+"#G"+b.id,null,mxUtils.bind(this,function(){window.location.hash= -"G"+b.id}))}),mxUtils.bind(this,function(b){a.handleError(b)}))}),mxUtils.bind(this,function(b){a.handleError(b)})):this.editorUi.createFile(c,this.editorUi.getFileData(!0),null,d))}),mxUtils.bind(this,function(){a.hideDialog()}),mxResources.get("makeCopy"),mxResources.get("create"),null,null,null,null,!0),a.showDialog(c.container,420,380,!0,!0),c.init()):a.editor.editAsNew(this.editorUi.getFileData(!0),c)}}));a.actions.addAction("moveToFolder...",mxUtils.bind(this,function(){var b=a.getCurrentFile(); -b.getMode()!=App.MODE_GOOGLE&&b.getMode()!=App.MODE_ONEDRIVE||a.pickFolder(b.getMode(),mxUtils.bind(this,function(c){a.spinner.spin(document.body,mxResources.get("moving"))&&b.move(c,mxUtils.bind(this,function(b){a.spinner.stop()}),mxUtils.bind(this,function(b){a.handleError(b)}))}))}));this.put("publish",new Menu(mxUtils.bind(this,function(a,b){this.addMenuItems(a,["publishLink"],b)})));a.actions.put("useOffline",new Action(mxResources.get("useOffline")+"...",function(){a.openLink("https://app.draw.io/")})); -a.actions.put("downloadDesktop",new Action(mxResources.get("downloadDesktop")+"...",function(){a.openLink("https://get.draw.io/")}));this.editorUi.actions.addAction("share...",mxUtils.bind(this,function(){var a=this.editorUi.getCurrentFile();null!=a&&this.editorUi.drive.showPermissions(a.getId())}));this.put("embed",new Menu(mxUtils.bind(this,function(b,c){"1"==urlParams.test&&this.addMenuItems(b,["liveImage","-"],c);this.addMenuItems(b,["embedImage","embedSvg","-","embedHtml"],c);navigator.standalone|| -a.isOffline()||this.addMenuItems(b,["embedIframe"],c);a.isOffline()||this.addMenuItems(b,["-","googleSites","googleDocs"],c)})));var v=function(b,c,d,e){("plantUml"!=e||EditorUi.enablePlantUml&&!a.isOffline())&&b.addItem(d,null,mxUtils.bind(this,function(){if("fromText"==e||"formatSql"==e||"plantUml"==e){var b=new ParseDialog(a,d,e);a.showDialog(b.container,620,420,!0,!1);a.dialog.container.style.overflow="auto"}else b=new CreateGraphDialog(a,d,e),a.showDialog(b.container,620,420,!0,!1);b.init()}), -c)},y=function(a,b,d,e){var f=c.isMouseInsertPoint()?c.getInsertPoint():c.getFreeInsertPoint();a=new mxCell(a,new mxGeometry(f.x,f.y,b,d),e);a.vertex=!0;c.getModel().beginUpdate();try{a=c.addCell(a),c.fireEvent(new mxEventObject("cellsInserted","cells",[a]))}finally{c.getModel().endUpdate()}c.scrollCellToVisible(a);c.setSelectionCell(a);c.container.focus();c.editAfterInsert&&c.startEditing(a);return a};a.actions.addAction("insertText",function(){c.isEnabled()&&!c.isCellLocked(c.getDefaultParent())&& -c.startEditingAtCell(y("Text",40,20,"text;html=1;resizable=0;autosize=1;align=center;verticalAlign=middle;points=[];fillColor=none;strokeColor=none;rounded=0;"))},null,null,Editor.ctrlKey+"+Shift+X").isEnabled=g;a.actions.addAction("insertRectangle",function(){c.isEnabled()&&!c.isCellLocked(c.getDefaultParent())&&y("",120,60,"whiteSpace=wrap;html=1;")},null,null,Editor.ctrlKey+"+K").isEnabled=g;a.actions.addAction("insertEllipse",function(){c.isEnabled()&&!c.isCellLocked(c.getDefaultParent())&&y("", -80,80,"ellipse;whiteSpace=wrap;html=1;")},null,null,Editor.ctrlKey+"+Shift+K").isEnabled=g;a.actions.addAction("insertRhombus",function(){c.isEnabled()&&!c.isCellLocked(c.getDefaultParent())&&y("",80,80,"rhombus;whiteSpace=wrap;html=1;")}).isEnabled=g;var A=mxUtils.bind(this,function(a,b,c){for(var d=0;d<c.length;d++)"-"==c[d]?a.addSeparator(b):v(a,b,mxResources.get(c[d])+"...",c[d])});this.put("insert",new Menu(mxUtils.bind(this,function(b,c){this.addMenuItems(b,"insertText insertRectangle - insertEllipse insertRhombus - insertLink insertImage".split(" "), -c);b.addSeparator(c);this.addSubmenu("insertLayout",b,c,mxResources.get("layout"));b.addSeparator(c);A(b,c,["fromText","plantUml","-","formatSql"]);b.addItem(mxResources.get("csv")+"...",null,function(){a.showImportCsvDialog()},c)})));this.put("insertLayout",new Menu(mxUtils.bind(this,function(a,b){A(a,b,"horizontalFlow verticalFlow - horizontalTree verticalTree radialTree - organic circle".split(" "))})));this.put("openRecent",new Menu(function(b,c){var d=a.getRecent();if(null!=d){for(var e=0;e< -d.length;e++)(function(d){var e=d.mode;e==App.MODE_GOOGLE?e="googleDrive":e==App.MODE_ONEDRIVE&&(e="oneDrive");b.addItem(d.title+" ("+mxResources.get(e)+")",null,function(){a.loadFile(d.id)},c)})(d[e]);b.addSeparator(c)}b.addItem(mxResources.get("reset"),null,function(){a.resetRecent()},c)}));this.put("openFrom",new Menu(function(b,c){null!=a.drive?b.addItem(mxResources.get("googleDrive")+"...",null,function(){a.pickFile(App.MODE_GOOGLE)},c):l&&b.addItem(mxResources.get("googleDrive")+" ("+mxResources.get("loading")+ -"...)",null,function(){},c,null,!1);null!=a.gitHub&&b.addItem(mxResources.get("github")+"...",null,function(){a.pickFile(App.MODE_GITHUB)},c);null!=a.dropbox?b.addItem(mxResources.get("dropbox")+"...",null,function(){a.pickFile(App.MODE_DROPBOX)},c):m&&b.addItem(mxResources.get("dropbox")+" ("+mxResources.get("loading")+"...)",null,function(){},c,null,!1);null!=a.oneDrive?b.addItem(mxResources.get("oneDrive")+"...",null,function(){a.pickFile(App.MODE_ONEDRIVE)},c):n&&b.addItem(mxResources.get("oneDrive")+ -" ("+mxResources.get("loading")+"...)",null,function(){},c,null,!1);null!=a.trello?b.addItem(mxResources.get("trello")+"...",null,function(){a.pickFile(App.MODE_TRELLO)},c):f&&b.addItem(mxResources.get("trello")+" ("+mxResources.get("loading")+"...)",null,function(){},c,null,!1);b.addSeparator(c);isLocalStorage&&"0"!=urlParams.browser&&b.addItem(mxResources.get("browser")+"...",null,function(){a.pickFile(App.MODE_BROWSER)},c);mxClient.IS_IOS||b.addItem(mxResources.get("device")+"...",null,function(){a.pickFile(App.MODE_DEVICE)}, -c);a.isOffline()||(b.addSeparator(c),b.addItem(mxResources.get("url")+"...",null,function(){var b=new FilenameDialog(a,"",mxResources.get("open"),function(b){null!=b&&0<b.length&&(null==a.getCurrentFile()?window.location.hash="#U"+encodeURIComponent(b):window.openWindow((mxClient.IS_CHROMEAPP?"https://www.draw.io/":"https://"+location.host+"/")+window.location.search+"#U"+encodeURIComponent(b)))},mxResources.get("url"));a.showDialog(b.container,300,80,!0,!0);b.init()},c))}));Editor.enableCustomLibraries&& -(this.put("newLibrary",new Menu(function(b,c){"undefined"!=typeof google&&"undefined"!=typeof google.picker&&(null!=a.drive?b.addItem(mxResources.get("googleDrive")+"...",null,function(){a.showLibraryDialog(null,null,null,null,App.MODE_GOOGLE)},c):l&&b.addItem(mxResources.get("googleDrive")+" ("+mxResources.get("loading")+"...)",null,function(){},c,null,!1));null!=a.gitHub&&b.addItem(mxResources.get("github")+"...",null,function(){a.showLibraryDialog(null,null,null,null,App.MODE_GITHUB)},c);null!= -a.dropbox?b.addItem(mxResources.get("dropbox")+"...",null,function(){a.showLibraryDialog(null,null,null,null,App.MODE_DROPBOX)},c):m&&b.addItem(mxResources.get("dropbox")+" ("+mxResources.get("loading")+"...)",null,function(){},c,null,!1);null!=a.oneDrive?b.addItem(mxResources.get("oneDrive")+"...",null,function(){a.showLibraryDialog(null,null,null,null,App.MODE_ONEDRIVE)},c):n&&b.addItem(mxResources.get("oneDrive")+" ("+mxResources.get("loading")+"...)",null,function(){},c,null,!1);null!=a.trello? -b.addItem(mxResources.get("trello")+"...",null,function(){a.showLibraryDialog(null,null,null,null,App.MODE_TRELLO)},c):f&&b.addItem(mxResources.get("trello")+" ("+mxResources.get("loading")+"...)",null,function(){},c,null,!1);b.addSeparator(c);isLocalStorage&&"0"!=urlParams.browser&&b.addItem(mxResources.get("browser")+"...",null,function(){a.showLibraryDialog(null,null,null,null,App.MODE_BROWSER)},c);mxClient.IS_IOS||b.addItem(mxResources.get("device")+"...",null,function(){a.showLibraryDialog(null, -null,null,null,App.MODE_DEVICE)},c)})),this.put("openLibraryFrom",new Menu(function(b,c){"undefined"!=typeof google&&"undefined"!=typeof google.picker&&(null!=a.drive?b.addItem(mxResources.get("googleDrive")+"...",null,function(){a.pickLibrary(App.MODE_GOOGLE)},c):l&&b.addItem(mxResources.get("googleDrive")+" ("+mxResources.get("loading")+"...)",null,function(){},c,null,!1));null!=a.gitHub&&b.addItem(mxResources.get("github")+"...",null,function(){a.pickLibrary(App.MODE_GITHUB)},c);null!=a.dropbox? -b.addItem(mxResources.get("dropbox")+"...",null,function(){a.pickLibrary(App.MODE_DROPBOX)},c):m&&b.addItem(mxResources.get("dropbox")+" ("+mxResources.get("loading")+"...)",null,function(){},c,null,!1);null!=a.oneDrive?b.addItem(mxResources.get("oneDrive")+"...",null,function(){a.pickLibrary(App.MODE_ONEDRIVE)},c):n&&b.addItem(mxResources.get("oneDrive")+" ("+mxResources.get("loading")+"...)",null,function(){},c,null,!1);null!=a.trello?b.addItem(mxResources.get("trello")+"...",null,function(){a.pickLibrary(App.MODE_TRELLO)}, -c):f&&b.addItem(mxResources.get("trello")+" ("+mxResources.get("loading")+"...)",null,function(){},c,null,!1);b.addSeparator(c);isLocalStorage&&"0"!=urlParams.browser&&b.addItem(mxResources.get("browser")+"...",null,function(){a.pickLibrary(App.MODE_BROWSER)},c);mxClient.IS_IOS||b.addItem(mxResources.get("device")+"...",null,function(){a.pickLibrary(App.MODE_DEVICE)},c);a.isOffline()||(b.addSeparator(c),b.addItem(mxResources.get("url")+"...",null,function(){var b=new FilenameDialog(a,"",mxResources.get("open"), -function(b){if(null!=b&&0<b.length&&a.spinner.spin(document.body,mxResources.get("loading"))){var c=b;a.isCorsEnabledForUrl(b)||(c=PROXY_URL+"?url="+encodeURIComponent(b));mxUtils.get(c,function(c){if(200<=c.getStatus()&&299>=c.getStatus()){a.spinner.stop();try{a.loadLibrary(new UrlLibrary(this,c.getText(),b))}catch(E){a.handleError(E,mxResources.get("errorLoadingFile"))}}else a.spinner.stop(),a.handleError(null,mxResources.get("errorLoadingFile"))},function(){a.spinner.stop();a.handleError(null, -mxResources.get("errorLoadingFile"))})}},mxResources.get("url"));a.showDialog(b.container,300,80,!0,!0);b.init()},c))})));this.put("edit",new Menu(mxUtils.bind(this,function(a,b){this.addMenuItems(a,"undo redo - cut copy paste delete - duplicate - find - editData editTooltip - editStyle editGeometry - edit - editLink openLink - selectVertices selectEdges selectAll selectNone - lockUnlock".split(" "))})));this.put("view",new Menu(mxUtils.bind(this,function(b,c){this.addMenuItems(b,(null!=this.editorUi.format? -["formatPanel"]:[]).concat(["outline","layers","-"]));this.addMenuItems(b,["-","search"],c);if(isLocalStorage||mxClient.IS_CHROMEAPP){var d=this.addMenuItem(b,"scratchpad",c);a.isOffline()&&!mxClient.IS_CHROMEAPP||this.addLinkToItem(d,"https://desk.draw.io/support/solutions/articles/16000042367")}this.addMenuItems(b,"shapes - pageView pageScale - scrollbars tooltips - grid guides".split(" "),c);mxClient.IS_SVG&&(null==document.documentMode||9<document.documentMode)&&this.addMenuItem(b,"shadowVisible", -c);this.addMenuItems(b,"- connectionArrows connectionPoints - resetView zoomIn zoomOut".split(" "),c)})));this.put("extras",new Menu(mxUtils.bind(this,function(b,c){"1"!=urlParams.embed&&(this.addSubmenu("theme",b,c),b.addSeparator(c));this.addMenuItems(b,["copyConnect","collapseExpand","-"],c);if("undefined"!==typeof MathJax){var d=this.addMenuItem(b,"mathematicalTypesetting",c);this.addLinkToItem(d,"https://desk.draw.io/support/solutions/articles/16000032875")}"1"!=urlParams.embed&&this.addMenuItems(b, -["autosave"],c);this.addMenuItems(b,["-","createShape","editDiagram"],c);b.addSeparator(c);"1"!=urlParams.embed&&(isLocalStorage||mxClient.IS_CHROMEAPP)&&this.addMenuItems(b,["showStartScreen"],c);!a.isOfflineApp()&&isLocalStorage&&this.addMenuItem(b,"plugins",c);b.addSeparator(c);this.addMenuItem(b,"tags",c);"1"==urlParams.newTempDlg&&(a.actions.addAction("templates",function(){var b=new TemplatesDialog;a.showDialog(b.container,b.width,b.height,!0,!1,null,!1,!0);b.init(a,function(a){console.log(a)}, -null,null,null,"user",function(a,b){setTimeout(function(){b?a([{url:"123",title:"Test 1Test 1Test 1Test 1Test 1Test 1Test 11Test 1Test 11Test 1Test 1dgdsgdfg fdg dfgdfg dfg dfg"},{url:"123",title:"Test 2",imgUrl:"https://www.google.com.eg/images/branding/googlelogo/2x/googlelogo_color_272x92dp.png"},{url:"123",title:"Test 3",changedBy:"Ashraf Teleb",lastModifiedOn:"Yesterday"},{url:"123",title:"Test 4"},{url:"123",title:"Test 5"},{url:"123",title:"Test 6"}]):a([{url:"123",title:"Test 4",imgUrl:"https://images.pexels.com/photos/459225/pexels-photo-459225.jpeg"}, -{url:"123",title:"Test 5"},{url:"123",title:"Test 6"},{url:"123",title:"Test 1Test 1Test 1Test 1Test 1Test 1Test 11Test 1Test 11Test 1Test 1dgdsgdfg fdg dfgdfg dfg dfg"},{url:"123",title:"Test 2",imgUrl:"https://www.google.com.eg/images/branding/googlelogo/2x/googlelogo_color_272x92dp.png"},{url:"123",title:"Test 3",changedBy:"Ashraf Teleb",lastModifiedOn:"Yesterday"}]);console.log(b)},1E3)},function(a,b,c){setTimeout(function(){b(c?[{url:"123",title:a+"Test 1Test 1Test 1Test 1Test 1Test 1Test 1"}, -{url:"123",title:a+"Test 2"},{url:"123",title:a+"Test 3"},{url:"123",title:a+"Test 4"},{url:"123",title:a+"Test 5"},{url:"123",title:a+"Test 6"}]:[{url:"123",title:a+"Test 5"},{url:"123",title:a+"Test 6"},{url:"123",title:a+"Test 1Test 1Test 1Test 1Test 1Test 1Test 1"},{url:"123",title:a+"Test 2"},{url:"123",title:a+"Test 3"},{url:"123",title:a+"Test 4"}])},2E3)},null)}),this.addMenuItem(b,"templates",c))})));this.put("file",new Menu(mxUtils.bind(this,function(b,c){if("1"==urlParams.embed)this.addSubmenu("importFrom", -b,c),this.addSubmenu("exportAs",b,c),this.addSubmenu("embed",b,c),"1"==urlParams.libraries&&(this.addMenuItems(b,["-"],c),this.addSubmenu("newLibrary",b,c),this.addSubmenu("openLibraryFrom",b,c)),this.addMenuItems(b,"- pageSetup print - rename save".split(" "),c),"1"==urlParams.saveAndExit&&this.addMenuItems(b,["saveAndExit"],c),this.addMenuItems(b,["exit"],c);else{var d=this.editorUi.getCurrentFile();null!=d&&d.constructor==DriveFile?(d.isRestricted()&&this.addMenuItems(b,["exportOptionsDisabled"], -c),null==d.realtime?this.addMenuItems(b,["save","share","-"],c):(d.isAutosave()||this.addMenuItems(b,["save"],c),this.addMenuItems(b,["share","chatWindowTitle","-"],c))):this.addMenuItems(b,["new"],c);this.addSubmenu("openFrom",b,c);isLocalStorage&&this.addSubmenu("openRecent",b,c);null!=d&&d.constructor==DriveFile?this.addMenuItems(b,["new","-","rename","makeCopy","moveToFolder"],c):(this.addMenuItems(b,["-","save","saveAs","-","rename"],c),a.isOfflineApp()?navigator.onLine&&"1"!=urlParams.stealth&& -this.addMenuItems(b,["upload"],c):(this.addMenuItems(b,["makeCopy"],c),null!=d&&d.constructor==OneDriveFile&&this.addMenuItems(b,["moveToFolder"],c)));b.addSeparator(c);this.addSubmenu("importFrom",b,c);this.addSubmenu("exportAs",b,c);b.addSeparator(c);this.addSubmenu("embed",b,c);this.addSubmenu("publish",b,c);b.addSeparator(c);this.addSubmenu("newLibrary",b,c);this.addSubmenu("openLibraryFrom",b,c);null==d||d.constructor!=DriveFile&&d.constructor!=DropboxFile||this.addMenuItems(b,["-","revisionHistory"], -c);null!=d&&d.constructor==DriveFile&&this.addMenuItems(b,["createRevision"],c);this.addMenuItems(b,["-","pageSetup"],c);mxClient.IS_IOS&&navigator.standalone||this.addMenuItems(b,["print"],c);this.addMenuItems(b,["-","close"])}})))};var c=Menus.prototype.menuCreated;Menus.prototype.menuCreated=function(a,b){if(480>=screen.width&&a==this.get("help")){b.style.paddingRight="0px";b.style.paddingLeft="0px";b.innerHTML="";var d=document.createElement("img");d.setAttribute("border","0");d.setAttribute("valign", -"bottom");d.setAttribute("src",Editor.helpImage);b.appendChild(d)}c.apply(this,arguments)}})();function DiagramPage(a){this.node=a;(null==this.node.hasAttribute&&null==this.node.getAttribute("id")||null!=this.node.hasAttribute&&!this.node.hasAttribute("id"))&&this.node.setAttribute("id",Editor.guid())}DiagramPage.prototype.node=null;DiagramPage.prototype.root=null;DiagramPage.prototype.viewState=null;DiagramPage.prototype.getId=function(){return this.node.getAttribute("id")};DiagramPage.prototype.getName=function(){return this.node.getAttribute("name")}; +640,480,!0,!0);d.init()},function(b){a.spinner.stop();a.handleError(b)})});a.actions.addAction("createRevision",function(){a.actions.get("save").funct()},null,null,Editor.ctrlKey+"+S");a.actions.addAction("refresh",function(){function b(){c.setModified(!1);a.loadFile(c.getHash(),!0)}var c=a.getCurrentFile();null!=c&&c.isModified()?a.confirm(mxResources.get("allChangesLost"),null,b,mxResources.get("cancel"),mxResources.get("discardChanges")):b()},null,null,"Alt+Shift+R");a.actions.addAction("upload...", +function(){var b=a.getCurrentFile();null!=b&&(window.drawdata=a.getFileData(),b=null!=b.getTitle()?b.getTitle():a.defaultFilename,a.openLink(window.location.protocol+"//"+window.location.host+"/?create=drawdata&"+(a.mode==App.MODE_DROPBOX?"mode=dropbox&":"")+"title="+encodeURIComponent(b),null,!0))});if("undefined"!==typeof MathJax){var h=a.actions.addAction("mathematicalTypesetting",function(){var b=new ChangePageSetup(a);b.ignoreColor=!0;b.ignoreImage=!0;b.mathEnabled=!a.isMathEnabled();c.model.execute(b)}); +h.setToggleAction(!0);h.setSelectedCallback(function(){return a.isMathEnabled()});h.isEnabled=g}if(isLocalStorage||mxClient.IS_CHROMEAPP)h=a.actions.addAction("showStartScreen",function(){mxSettings.setShowStartScreen(!mxSettings.getShowStartScreen());mxSettings.save()}),h.setToggleAction(!0),h.setSelectedCallback(function(){return mxSettings.getShowStartScreen()});var n=a.actions.addAction("autosave",function(){a.editor.setAutosave(!a.editor.autosave)});n.setToggleAction(!0);n.setSelectedCallback(function(){return n.isEnabled()&& +a.editor.autosave});a.actions.addAction("editGeometry...",function(){for(var b=c.getSelectionCells(),d=[],e=0;e<b.length;e++)c.getModel().isVertex(b[e])&&d.push(b[e]);0<d.length&&(b=new EditGeometryDialog(a,d),a.showDialog(b.container,200,250,!0,!0),b.init())},null,null,Editor.ctrlKey+"+Shift+M");var u="rounded shadow dashed dashPattern fontFamily fontSize fontColor fontStyle align verticalAlign strokeColor strokeWidth fillColor gradientColor swimlaneFillColor textOpacity gradientDirection glass labelBackgroundColor labelBorderColor opacity spacing spacingTop spacingLeft spacingBottom spacingRight endFill endArrow endSize startStill startArrow startSize arcSize".split(" "); +a.actions.addAction("copyStyle",function(){var b=c.view.getState(c.getSelectionCell());if(c.isEnabled()&&null!=b){a.copiedStyle=mxUtils.clone(b.style);for(var b=c.getModel().getStyle(b.cell),b=null!=b?b.split(";"):[],d=0;d<b.length;d++){var e=b[d],f=e.indexOf("=");if(0<=f){var g=e.substring(0,f),e=e.substring(f+1);null==a.copiedStyle[g]&&"none"==e&&(a.copiedStyle[g]="none")}}}},null,null,Editor.ctrlKey+"+Shift+C");a.actions.addAction("pasteStyle",function(){if(c.isEnabled()&&!c.isSelectionEmpty()&& +null!=a.copiedStyle){c.getModel().beginUpdate();try{for(var b=c.getSelectionCells(),d=0;d<b.length;d++)for(var e=c.view.getState(b[d]),f=0;f<u.length;f++){var g=u[f],h=a.copiedStyle[g];e.style[g]!=h&&c.setCellStyles(g,h,[b[d]])}}finally{c.getModel().endUpdate()}}},null,null,Editor.ctrlKey+"+Shift+V");a.actions.put("pageBackgroundImage",new Action(mxResources.get("backgroundImage")+"...",function(){if(!a.isOffline()){var b=new BackgroundImageDialog(a,function(b){a.setBackgroundImage(b)});a.showDialog(b.container, +320,170,!0,!0);b.init()}}));a.actions.put("exportPng",new Action(mxResources.get("formatPng")+"...",function(){a.isExportToCanvas()?a.showExportDialog(mxResources.get("image"),!1,mxResources.get("export"),"https://support.draw.io/display/DO/Exporting+Files",mxUtils.bind(this,function(b,c,d,e,f,g,h,k,l){b=parseInt(b);!isNaN(b)&&0<b&&a.exportImage(b/100,c,d,e,f,h,!k,l)}),!0,!1,"png"):a.isOffline()||mxClient.IS_IOS&&navigator.standalone||a.showRemoteExportDialog(mxResources.get("export"),null,mxUtils.bind(this, +function(b,c,d){a.downloadFile(c?"xmlpng":"png",null,null,b,null,null,d)}))}));a.actions.put("exportJpg",new Action(mxResources.get("formatJpg")+"...",function(){a.isExportToCanvas()?a.showExportDialog(mxResources.get("image"),!1,mxResources.get("export"),"https://support.draw.io/display/DO/Exporting+Files",mxUtils.bind(this,function(b,c,d,e,f,g,h,k,l){b=parseInt(b);!isNaN(b)&&0<b&&a.exportImage(b/100,!1,d,e,!1,h,!k,!1,"jpeg")}),!0,!1,"jpeg"):a.isOffline()||mxClient.IS_IOS&&navigator.standalone|| +a.showRemoteExportDialog(mxResources.get("export"),null,mxUtils.bind(this,function(b,c){a.downloadFile("jpeg",null,null,b)}),!0)}));h=a.actions.put("shadowVisible",new Action(mxResources.get("shadow"),function(){c.setShadowVisible(!c.shadowVisible)}));h.setToggleAction(!0);h.setSelectedCallback(function(){return c.shadowVisible});var p=!1;a.actions.put("about",new Action(mxResources.get("aboutDrawio")+"...",function(){p||(a.showDialog((new AboutDialog(a)).container,220,300,!0,!0,function(){p=!1}), +p=!0)},null,null,"F1"));a.actions.addAction("userManual...",function(){a.openLink("https://support.draw.io/display/DO/Draw.io+Online+User+Manual")});a.actions.addAction("support...",function(){a.openLink("https://about.draw.io/support/")});a.actions.addAction("exportOptionsDisabled...",function(){a.handleError({message:mxResources.get("exportOptionsDisabledDetails")},mxResources.get("exportOptionsDisabled"))});a.actions.addAction("keyboardShortcuts...",function(){mxClient.IS_CHROMEAPP||EditorUi.isElectronApp? +a.openLink("https://www.draw.io/shortcuts.svg"):mxClient.IS_SVG?a.openLink("shortcuts.svg"):a.openLink("https://www.draw.io/?lightbox=1#Uhttps%3A%2F%2Fwww.draw.io%2Fshortcuts.svg")});a.actions.addAction("feedback...",function(){var b=new FeedbackDialog(a);a.showDialog(b.container,610,360,!0,!0);b.init()});a.actions.addAction("quickStart...",function(){a.openLink("https://www.youtube.com/watch?v=Z0D96ZikMkc")});h=a.actions.addAction("tags...",mxUtils.bind(this,function(){null==this.tagsWindow?(this.tagsWindow= +new TagsWindow(a,document.body.offsetWidth-380,230,300,120),this.tagsWindow.window.addListener("show",function(){a.fireEvent(new mxEventObject("tags"))}),this.tagsWindow.window.addListener("hide",function(){a.fireEvent(new mxEventObject("tags"))}),this.tagsWindow.window.setVisible(!0),a.fireEvent(new mxEventObject("tags"))):this.tagsWindow.window.setVisible(!this.tagsWindow.window.isVisible())}));h.setToggleAction(!0);h.setSelectedCallback(mxUtils.bind(this,function(){return null!=this.tagsWindow&& +this.tagsWindow.window.isVisible()}));h=a.actions.addAction("find...",mxUtils.bind(this,function(){null==this.findWindow?(this.findWindow=new FindWindow(a,document.body.offsetWidth-300,110,240,140),this.findWindow.window.addListener("show",function(){a.fireEvent(new mxEventObject("find"))}),this.findWindow.window.addListener("hide",function(){a.fireEvent(new mxEventObject("find"))}),this.findWindow.window.setVisible(!0),a.fireEvent(new mxEventObject("find"))):this.findWindow.window.setVisible(!this.findWindow.window.isVisible())})); +h.setToggleAction(!0);h.setSelectedCallback(mxUtils.bind(this,function(){return null!=this.findWindow&&this.findWindow.window.isVisible()}));a.actions.put("exportVsdx",new Action(mxResources.get("formatVsdx")+" (beta)...",function(){a.exportVisio()}));if(mxClient.IS_CHROMEAPP||isLocalStorage&&"1"!=urlParams.offline)if(this.put("language",new Menu(mxUtils.bind(this,function(b,c){var d=mxUtils.bind(this,function(d){var e=""==d?mxResources.get("automatic"):mxLanguageMap[d],f=null;""!=e&&(f=b.addItem(e, +null,mxUtils.bind(this,function(){mxSettings.setLanguage(d);mxSettings.save();mxClient.language=d;mxResources.loadDefaultBundle=!1;mxResources.add(RESOURCE_BASE);a.alert(mxResources.get("restartForChangeRequired"))}),c),(d==mxLanguage||""==d&&null==mxLanguage)&&b.addCheckmark(f,Editor.checkmarkImage));return f});d("");b.addSeparator(c);for(var e in mxLanguageMap)d(e)}))),"atlas"!=uiTheme){var q=Menus.prototype.createMenubar;Menus.prototype.createMenubar=function(a){var b=q.apply(this,arguments);if(null!= +b){var c=this.get("language");null!=c&&(c=b.addMenu("",c.funct),c.setAttribute("title",mxResources.get("language")),c.style.width="16px",c.style.paddingTop="2px",c.style.paddingLeft="4px",c.innerHTML='<div class="geIcon geSprite geSprite-globe"/>',c.style.zIndex="1",c.style.position="absolute",c.style.top="2px",c.style.right="17px",c.style.display="block",mxClient.IS_VML||mxUtils.setOpacity(c,60),document.body.appendChild(c))}return b}}this.put("help",new Menu(mxUtils.bind(this,function(b,d){if(!mxClient.IS_CHROMEAPP&& +a.isOffline())this.addMenuItems(b,["about"],d);else{var e=b.addItem("Search:",null,null,d,null,null,!1);e.style.backgroundColor="dark"==uiTheme?"#505759":"whiteSmoke";e.style.cursor="default";var f=document.createElement("input");f.setAttribute("type","text");f.setAttribute("size","25");f.style.marginLeft="8px";mxEvent.addListener(f,"keydown",mxUtils.bind(this,function(a){var b=mxUtils.trim(f.value);13==a.keyCode&&0<b.length?(this.editorUi.openLink("https://desk.draw.io/support/search/solutions?term="+ +encodeURIComponent(b)),f.value="",this.editorUi.logEvent({category:"Help",action:"search",label:b}),null!=this.editorUi.menubar&&window.setTimeout(mxUtils.bind(this,function(){this.editorUi.menubar.hideMenu()}),0)):27==a.keyCode&&(f.value="")}));e.firstChild.nextSibling.appendChild(f);mxEvent.addGestureListeners(f,function(a){document.activeElement!=f&&f.focus();mxEvent.consume(a)},function(a){mxEvent.consume(a)},function(a){mxEvent.consume(a)});window.setTimeout(function(){f.focus()},0);this.addMenuItems(b, +["-","quickStart","userManual","keyboardShortcuts","-"],d);mxClient.IS_CHROMEAPP||this.addMenuItems(b,["feedback"],d);this.addMenuItems(b,["support","-"],d);a.isOffline()||EditorUi.isElectronApp||navigator.standalone||"1"==urlParams.embed||this.addMenuItems(b,["downloadDesktop"],d);navigator.standalone||"1"==urlParams.embed||this.addMenuItems(b,["useOffline"],d);this.addMenuItems(b,["-","about"],d)}"1"==urlParams.ruler&&(mxResources.parse("rulerInch=Ruler unit: Inches"),this.editorUi.actions.addAction("rulerInch", +mxUtils.bind(this,function(){this.editorUi.vRuler.setUnit(mxRuler.prototype.INCHES);this.editorUi.hRuler.setUnit(mxRuler.prototype.INCHES);this.editorUi.vRuler.drawRuler(!0);this.editorUi.hRuler.drawRuler(!0)})),mxResources.parse("rulerCM=Ruler unit: CMs"),this.editorUi.actions.addAction("rulerCM",mxUtils.bind(this,function(){this.editorUi.vRuler.setUnit(mxRuler.prototype.CENTIMETER);this.editorUi.hRuler.setUnit(mxRuler.prototype.CENTIMETER);this.editorUi.vRuler.drawRuler(!0);this.editorUi.hRuler.drawRuler(!0)})), +mxResources.parse("rulerPixel=Ruler unit: Pixels"),this.editorUi.actions.addAction("rulerPixel",mxUtils.bind(this,function(){this.editorUi.vRuler.setUnit(mxRuler.prototype.PIXELS);this.editorUi.hRuler.setUnit(mxRuler.prototype.PIXELS);this.editorUi.vRuler.drawRuler(!0);this.editorUi.hRuler.drawRuler(!0)})),this.addMenuItems(b,["-","rulerInch","rulerCM","rulerPixel"],d));"1"==urlParams.test&&(mxResources.parse("showBoundingBox=Show bounding box"),this.editorUi.actions.addAction("showBoundingBox",mxUtils.bind(this, +function(){var a=c.getGraphBounds(),b=c.view.translate,d=c.view.scale;c.insertVertex(c.getDefaultParent(),null,"",a.x/d-b.x,a.y/d-b.y,a.width/d,a.height/d,"fillColor=none;strokeColor=red;")})),mxResources.parse("createSidebarEntry=Create sidebar entry"),this.editorUi.actions.addAction("createSidebarEntry",mxUtils.bind(this,function(){c.isSelectionEmpty()||(mxLog.show(),mxLog.debug("sb.createVertexTemplateFromData('"+c.compress(mxUtils.getXml(c.encodeCells(c.getSelectionCells())))+"', width, height, 'Title');"))})), +this.addMenuItems(b,["-","createSidebarEntry","showBoundingBox"],d),mxResources.parse("testXmlImageExport=XML Image Export"),this.editorUi.actions.addAction("testXmlImageExport",mxUtils.bind(this,function(){var a=new mxImageExport,b=c.getGraphBounds(),d=c.view.scale,e=mxUtils.createXmlDocument(),f=e.createElement("output");e.appendChild(f);e=new mxXmlCanvas2D(f);e.translate(Math.floor((1-b.x)/d),Math.floor((1-b.y)/d));e.scale(1/d);var g=0,h=e.save;e.save=function(){g++;h.apply(this,arguments)};var k= +e.restore;e.restore=function(){g--;k.apply(this,arguments)};var l=a.drawShape;a.drawShape=function(a){mxLog.debug("entering shape",a,g);l.apply(this,arguments);mxLog.debug("leaving shape",a,g)};a.drawState(c.getView().getState(c.model.root),e);mxLog.show();mxLog.debug(mxUtils.getXml(f));mxLog.debug("stateCounter",g)})),this.addMenuItems(b,["testXmlImageExport"],d),mxResources.parse("testShowRtModel=Show RT model"),mxResources.parse("testDebugRtModel=Debug RT model"),mxResources.parse("testDownloadRtModel=Download RT model"), +this.editorUi.actions.addAction("testShowRtModel",mxUtils.bind(this,function(){null!=this.editorUi.getCurrentFile()&&null!=this.editorUi.getCurrentFile().realtime&&(console.log("bytesUsed",this.editorUi.getCurrentFile().realtime.rtModel.bytesUsed),console.log("root",this.editorUi.getCurrentFile().realtime.dumpRoot()),this.editorUi.getCurrentFile().realtime.check())})),this.editorUi.actions.addAction("testDebugRtModel",mxUtils.bind(this,function(){gapi.drive.realtime.debug()})),this.editorUi.actions.addAction("testDownloadRtModel", +mxUtils.bind(this,function(){var b=this.editorUi.getCurrentFile();null!=b&&null!=b.realtime&&a.spinner.spin(document.body,mxResources.get("export"))&&(b=new mxXmlRequest("https://www.googleapis.com/drive/v2/files/"+b.getHash().substring(1)+"/realtime",null,"GET"),b.setRequestHeaders=function(a){mxXmlRequest.prototype.setRequestHeaders.apply(this,arguments);var b=gapi.auth.getToken().access_token;a.setRequestHeader("authorization","Bearer "+b)},b.send(function(b){a.spinner.stop();200<=b.getStatus()&& +299>=b.getStatus()&&a.saveLocalFile(b.getText(),"realtime.txt","text/plain")}))})),null!=this.editorUi.getCurrentFile()&&null!=this.editorUi.getCurrentFile().realtime&&this.addMenuItems(b,["-","testShowRtModel","testDebugRtModel","testDownloadRtModel"],d),mxResources.parse("testShowConsole=Show Console"),this.editorUi.actions.addAction("testShowConsole",function(){mxLog.isVisible()?mxLog.window.fit():mxLog.show();mxLog.window.div.style.zIndex=mxPopupMenu.prototype.zIndex-1}),this.addMenuItems(b,["-", +"testShowConsole"]))})));a.actions.addAction("shapes...",function(){mxClient.IS_CHROMEAPP||!a.isOffline()?a.showDialog((new MoreShapesDialog(a,!0)).container,640,isLocalStorage?mxClient.IS_IOS?480:460:440,!0,!0):a.showDialog((new MoreShapesDialog(a,!1)).container,360,isLocalStorage?mxClient.IS_IOS?300:280:260,!0,!0)});a.actions.addAction("createShape...",function(){a.getCurrentFile();if(c.isEnabled()){var b=new mxCell("",new mxGeometry(0,0,120,120),a.defaultCustomShapeStyle);b.vertex=!0;b=new EditShapeDialog(a, +b,mxResources.get("editShape")+":",630,400);a.showDialog(b.container,640,480,!0,!1);b.init()}});a.actions.put("embedHtml",new Action(mxResources.get("html")+"...",function(){a.spinner.spin(document.body,mxResources.get("loading"))&&a.getPublicUrl(a.getCurrentFile(),function(b){a.spinner.stop();a.showHtmlDialog(mxResources.get("create"),"https://desk.draw.io/support/solutions/articles/16000042542",b,function(b,c,d,e,f,g,h,k,l,m){a.createHtml(b,c,d,e,f,g,h,k,l,m,mxUtils.bind(this,function(b,c){var d= +new EmbedDialog(a,b+"\n"+c,null,null,function(){var a=window.open(),d=a.document;"CSS1Compat"===document.compatMode&&d.writeln("<!DOCTYPE html>");d.writeln("<html>");d.writeln("<head><title>"+encodeURIComponent(mxResources.get("preview"))+'</title><meta charset="utf-8"></head>');d.writeln("<body>");d.writeln(b);var e=mxClient.IS_IE||mxClient.IS_EDGE||null!=document.documentMode;e&&d.writeln(c);d.writeln("</body>");d.writeln("</html>");d.close();if(!e){var f=a.document.createElement("div");f.marginLeft= +"26px";f.marginTop="26px";mxUtils.write(f,mxResources.get("updatingDocument"));e=a.document.createElement("img");e.setAttribute("src",window.location.protocol+"//"+window.location.hostname+"/"+IMAGE_PATH+"/spin.gif");e.style.marginLeft="6px";f.appendChild(e);a.document.body.insertBefore(f,a.document.body.firstChild);window.setTimeout(function(){var a=document.createElement("script");a.type="text/javascript";a.src=/<script.*?src="(.*?)"/.exec(c)[1];d.body.appendChild(a);f.parentNode.removeChild(f)}, +20)}});a.showDialog(d.container,440,240,!0,!0);d.init()}))})})}));a.actions.put("liveImage",new Action("Live image...",function(){a.spinner.spin(document.body,mxResources.get("loading"))&&a.getPublicUrl(a.getCurrentFile(),function(b){a.spinner.stop();null!=b?(b=encodeURIComponent(b),b=new EmbedDialog(a,EXPORT_URL+"?format=png&url="+b,0),a.showDialog(b.container,440,240,!0,!0),b.init()):a.handleError({message:mxResources.get("invalidPublicUrl")})})}));a.actions.put("embedImage",new Action(mxResources.get("image")+ +"...",function(){a.showEmbedImageDialog(function(b,c,d,e,f,g){a.spinner.spin(document.body,mxResources.get("loading"))&&a.createEmbedImage(b,c,d,e,f,g,function(b){a.spinner.stop();b=new EmbedDialog(a,b);a.showDialog(b.container,440,240,!0,!0);b.init()},function(b){a.spinner.stop();a.handleError(b)})},mxResources.get("image"),mxResources.get("retina"),a.isExportToCanvas())}));a.actions.put("embedSvg",new Action(mxResources.get("formatSvg")+"...",function(){a.showEmbedImageDialog(function(b,c,d,e,f, +g){a.spinner.spin(document.body,mxResources.get("loading"))&&a.createEmbedSvg(b,c,d,e,f,g,function(b){a.spinner.stop();b=new EmbedDialog(a,b);a.showDialog(b.container,440,240,!0,!0);b.init()},function(b){a.spinner.stop();a.handleError(b)})},mxResources.get("formatSvg"),mxResources.get("image"),!0,"https://desk.draw.io/support/solutions/articles/16000042548")}));a.actions.put("embedIframe",new Action(mxResources.get("iframe")+"...",function(){var b=c.getGraphBounds();a.showPublishLinkDialog(mxResources.get("iframe"), +null,"100%",Math.ceil((b.y+b.height-c.view.translate.y)/c.view.scale)+2,function(b,c,d,e,f,g,h,k){a.spinner.spin(document.body,mxResources.get("loading"))&&a.getPublicUrl(a.getCurrentFile(),function(l){a.spinner.stop();l=new EmbedDialog(a,'<iframe frameborder="0" style="width:'+h+";height:"+k+';" src="'+a.createLink(b,c,d,e,f,g,l)+'"></iframe>');a.showDialog(l.container,440,240,!0,!0);l.init()})},!0)}));a.actions.put("publishLink",new Action(mxResources.get("link")+"...",function(){a.showPublishLinkDialog(null, +null,null,null,function(b,c,d,e,f,g){a.spinner.spin(document.body,mxResources.get("loading"))&&a.getPublicUrl(a.getCurrentFile(),function(h){a.spinner.stop();h=new EmbedDialog(a,a.createLink(b,c,d,e,f,g,h));a.showDialog(h.container,440,240,!0,!0);h.init()})})}));a.actions.addAction("googleDocs...",function(){a.openLink("http://docsaddon.draw.io")});a.actions.addAction("googleSites...",function(){a.spinner.spin(document.body,mxResources.get("loading"))&&a.getPublicUrl(a.getCurrentFile(),function(b){a.spinner.stop(); +b=new GoogleSitesDialog(a,b);a.showDialog(b.container,420,256,!0,!0);b.init()})});if(isLocalStorage||mxClient.IS_CHROMEAPP)h=a.actions.addAction("scratchpad",function(){a.toggleScratchpad()}),h.setToggleAction(!0),h.setSelectedCallback(function(){return null!=a.scratchpad}),a.actions.addAction("plugins...",function(){a.showDialog((new PluginsDialog(a)).container,360,170,!0,!1)});h=a.actions.addAction("search",function(){var b=a.sidebar.isEntryVisible("search");a.sidebar.showPalette("search",!b);isLocalStorage&& +(mxSettings.settings.search=!b,mxSettings.save())});h.setToggleAction(!0);h.setSelectedCallback(function(){return a.sidebar.isEntryVisible("search")});"1"==urlParams.embed&&(a.actions.get("save").funct=function(b){c.isEditing()&&c.stopEditing();var d="0"!=urlParams.pages||null!=a.pages&&1<a.pages.length?a.getFileData(!0):mxUtils.getXml(a.editor.getGraphXml());if("json"==urlParams.proto){var e=a.createLoadMessage("save");e.xml=d;b&&(e.exit=!0);d=JSON.stringify(e)}(window.opener||window.parent).postMessage(d, +"*");"0"!=urlParams.modified&&"1"!=urlParams.keepmodified&&(a.editor.modified=!1,a.editor.setStatus(""));null!=a.getCurrentFile()&&a.saveFile()},a.actions.addAction("saveAndExit",function(){a.actions.get("save").funct(!0)}),a.actions.addAction("exit",function(){var b=function(){a.editor.modified=!1;var b="json"==urlParams.proto?JSON.stringify({event:"exit",modified:a.editor.modified}):"";(window.opener||window.parent).postMessage(b,"*")};a.editor.modified?a.confirm(mxResources.get("allChangesLost"), +null,b,mxResources.get("cancel"),mxResources.get("discardChanges")):b()}));this.put("exportAs",new Menu(mxUtils.bind(this,function(b,c){a.isExportToCanvas()?(this.addMenuItems(b,["exportPng"],c),a.jpgSupported&&this.addMenuItems(b,["exportJpg"],c)):a.isOffline()||mxClient.IS_IOS&&navigator.standalone||this.addMenuItems(b,["exportPng","exportJpg"],c);this.addMenuItems(b,["exportSvg","-"],c);a.isOffline()||a.printPdfExport?this.addMenuItems(b,["exportPdf"],c):a.isOffline()||mxClient.IS_IOS&&navigator.standalone|| +this.addMenuItems(b,["exportPdf"],c);mxClient.IS_IE||"undefined"===typeof VsdxExport&&a.isOffline()||this.addMenuItems(b,["exportVsdx"],c);this.addMenuItems(b,["-","exportHtml","exportXml","exportUrl"],c);a.isOffline()||(b.addSeparator(c),this.addMenuItem(b,"export",c).firstChild.nextSibling.innerHTML=mxResources.get("advanced")+"...")})));this.editorUi.actions.addAction("chatWindowTitle...",mxUtils.bind(this.editorUi,this.editorUi.toggleChat));this.put("importFrom",new Menu(function(b,d){function e(b){b.pickFile(function(c){a.spinner.spin(document.body, +mxResources.get("loading"))&&b.getFile(c,function(b){var c=h(b.getTitle());/\.svg$/i.test(b.getTitle())&&!a.editor.isDataSvg(b.getData())&&(b.setData(a.createSvgDataUri(b.getData())),c="image/svg+xml");g(b.getData(),c,b.getTitle())},function(b){a.handleError(b,null!=b?mxResources.get("errorLoadingFile"):null)},b==a.drive)},!0)}var g=mxUtils.bind(this,function(b,d,e){var f=c.view,g=c.getGraphBounds(),h=c.snap(Math.ceil(Math.max(0,g.x/f.scale-f.translate.x)+4*c.gridSize)),k=c.snap(Math.ceil(Math.max(0, +(g.y+g.height)/f.scale-f.translate.y)+4*c.gridSize));"data:image/"==b.substring(0,11)?a.loadImage(b,mxUtils.bind(this,function(f){var g=!0,l=mxUtils.bind(this,function(){a.resizeImage(f,b,mxUtils.bind(this,function(f,l,m){f=g?Math.min(1,Math.min(a.maxImageSize/l,a.maxImageSize/m)):1;a.importFile(b,d,h,k,Math.round(l*f),Math.round(m*f),e,function(b){a.spinner.stop();c.setSelectionCells(b);c.scrollCellToVisible(c.getSelectionCell())})}),g)});b.length>a.resampleThreshold?a.confirmImageResize(function(a){g= +a;l()}):l()}),mxUtils.bind(this,function(){a.handleError({message:mxResources.get("cannotOpenFile")})})):a.importFile(b,d,h,k,0,0,e,function(b){a.spinner.stop();c.setSelectionCells(b);c.scrollCellToVisible(c.getSelectionCell())})}),h=mxUtils.bind(this,function(a){var b="text/xml";/\.png$/i.test(a)?b="image/png":/\.jpe?g$/i.test(a)?b="image/jpg":/\.gif$/i.test(a)&&(b="image/gif");return b});"undefined"!=typeof google&&"undefined"!=typeof google.picker&&(null!=a.drive?b.addItem(mxResources.get("googleDrive")+ +"...",null,function(){e(a.drive)},d):k&&b.addItem(mxResources.get("googleDrive")+" ("+mxResources.get("loading")+"...)",null,function(){},d,null,!1));null!=a.gitHub&&b.addItem(mxResources.get("github")+"...",null,function(){e(a.gitHub)},d);null!=a.dropbox?b.addItem(mxResources.get("dropbox")+"...",null,function(){e(a.dropbox)},d):l&&b.addItem(mxResources.get("dropbox")+" ("+mxResources.get("loading")+"...)",null,function(){},d,null,!1);null!=a.oneDrive?b.addItem(mxResources.get("oneDrive")+"...", +null,function(){e(a.oneDrive)},d):m&&b.addItem(mxResources.get("oneDrive")+" ("+mxResources.get("loading")+"...)",null,function(){},d,null,!1);null!=a.trello?b.addItem(mxResources.get("trello")+"...",null,function(){e(a.trello)},d):f&&b.addItem(mxResources.get("trello")+" ("+mxResources.get("loading")+"...)",null,function(){},d,null,!1);b.addSeparator(d);isLocalStorage&&"0"!=urlParams.browser&&b.addItem(mxResources.get("browser")+"...",null,function(){a.importLocalFile(!1)},d);mxClient.IS_IOS||b.addItem(mxResources.get("device")+ +"...",null,function(){a.importLocalFile(!0)},d);a.isOffline()||(b.addSeparator(d),b.addItem(mxResources.get("url")+"...",null,function(){var b=new FilenameDialog(a,"",mxResources.get("import"),function(b){if(null!=b&&0<b.length&&a.spinner.spin(document.body,mxResources.get("loading"))){var c=/(\.png)($|\?)/i.test(b)?"image/png":"text/xml";a.loadUrl(PROXY_URL+"?url="+encodeURIComponent(b),function(a){g(a,c,b)},function(){a.spinner.stop();a.handleError(null,mxResources.get("errorLoadingFile"))},"image/png"== +c)}},mxResources.get("url"));a.showDialog(b.container,300,80,!0,!0);b.init()},d))})).isEnabled=g;this.put("theme",new Menu(mxUtils.bind(this,function(b,c){var d=mxSettings.getUi(),e=b.addItem(mxResources.get("automatic"),null,function(){mxSettings.setUi("");mxSettings.save();a.alert(mxResources.get("restartForChangeRequired"))},c);"kennedy"!=d&&"atlas"!=d&&"dark"!=d&&"min"!=d&&b.addCheckmark(e,Editor.checkmarkImage);b.addSeparator(c);e=b.addItem(mxResources.get("kennedy"),null,function(){mxSettings.setUi("kennedy"); +mxSettings.save();a.alert(mxResources.get("restartForChangeRequired"))},c);"kennedy"==d&&b.addCheckmark(e,Editor.checkmarkImage);e=b.addItem(mxResources.get("minimal"),null,function(){mxSettings.setUi("min");mxSettings.save();a.alert(mxResources.get("restartForChangeRequired"))},c);"min"==d&&b.addCheckmark(e,Editor.checkmarkImage);e=b.addItem(mxResources.get("atlas"),null,function(){mxSettings.setUi("atlas");mxSettings.save();a.alert(mxResources.get("restartForChangeRequired"))},c);"atlas"==d&&b.addCheckmark(e, +Editor.checkmarkImage);e=b.addItem(mxResources.get("dark"),null,function(){mxSettings.setUi("dark");mxSettings.save();a.alert(mxResources.get("restartForChangeRequired"))},c);"dark"==d&&b.addCheckmark(e,Editor.checkmarkImage)})));h=this.editorUi.actions.addAction("rename...",mxUtils.bind(this,function(){var b=this.editorUi.getCurrentFile();if(null!=b){var c=null!=b.getTitle()?b.getTitle():this.editorUi.defaultFilename,c=new FilenameDialog(this.editorUi,c,mxResources.get("rename"),mxUtils.bind(this, +function(a){null!=a&&0<a.length&&null!=b&&this.editorUi.spinner.spin(document.body,mxResources.get("renaming"))&&b.rename(a,mxUtils.bind(this,function(a){this.editorUi.spinner.stop()}),mxUtils.bind(this,function(a){this.editorUi.handleError(a,null!=a?mxResources.get("errorRenamingFile"):null)}))}),b.constructor==DriveFile||b.constructor==StorageFile?mxResources.get("diagramName"):null,function(b){if(null!=b&&0<b.length)return!0;a.showError(mxResources.get("error"),mxResources.get("invalidName"),mxResources.get("ok")); +return!1});this.editorUi.showDialog(c.container,300,80,!0,!0);c.init()}}));h.isEnabled=function(){return this.enabled&&g.apply(this,arguments)};h.visible="1"!=urlParams.embed;a.actions.addAction("makeCopy...",mxUtils.bind(this,function(){var b=a.getCurrentFile();if(null!=b){var c=a.getCopyFilename(b);b.constructor==DriveFile?(c=new CreateDialog(a,c,mxUtils.bind(this,function(c,d){"download"==d&&(d=App.MODE_GOOGLE);null!=c&&0<c.length&&(d==App.MODE_GOOGLE?a.spinner.spin(document.body,mxResources.get("saving"))&& +b.saveAs(c,mxUtils.bind(this,function(c){b.desc=c;b.save(!1,mxUtils.bind(this,function(){a.spinner.stop();b.setModified(!1);b.addAllSavedStatus()}),mxUtils.bind(this,function(b){a.handleError(b)}))}),mxUtils.bind(this,function(b){a.handleError(b)})):a.createFile(c,a.getFileData(!0),null,d))}),mxUtils.bind(this,function(){a.hideDialog()}),mxResources.get("makeCopy"),mxResources.get("create"),null,null,null,null,!0),a.showDialog(c.container,420,380,!0,!0),c.init()):a.editor.editAsNew(this.editorUi.getFileData(!0), +c)}}));a.actions.addAction("moveToFolder...",mxUtils.bind(this,function(){var b=a.getCurrentFile();b.getMode()!=App.MODE_GOOGLE&&b.getMode()!=App.MODE_ONEDRIVE||a.pickFolder(b.getMode(),mxUtils.bind(this,function(c){a.spinner.spin(document.body,mxResources.get("moving"))&&b.move(c,mxUtils.bind(this,function(b){a.spinner.stop()}),mxUtils.bind(this,function(b){a.handleError(b)}))}))}));this.put("publish",new Menu(mxUtils.bind(this,function(a,b){this.addMenuItems(a,["publishLink"],b)})));a.actions.put("useOffline", +new Action(mxResources.get("useOffline")+"...",function(){a.openLink("https://app.draw.io/")}));a.actions.put("downloadDesktop",new Action(mxResources.get("downloadDesktop")+"...",function(){a.openLink("https://get.draw.io/")}));this.editorUi.actions.addAction("share...",mxUtils.bind(this,function(){var a=this.editorUi.getCurrentFile();null!=a&&this.editorUi.drive.showPermissions(a.getId())}));this.put("embed",new Menu(mxUtils.bind(this,function(b,c){"1"==urlParams.test&&this.addMenuItems(b,["liveImage", +"-"],c);this.addMenuItems(b,["embedImage","embedSvg","-","embedHtml"],c);navigator.standalone||a.isOffline()||this.addMenuItems(b,["embedIframe"],c);a.isOffline()||this.addMenuItems(b,["-","googleSites","googleDocs"],c)})));var v=function(b,c,d,e){("plantUml"!=e||EditorUi.enablePlantUml&&!a.isOffline())&&b.addItem(d,null,mxUtils.bind(this,function(){if("fromText"==e||"formatSql"==e||"plantUml"==e){var b=new ParseDialog(a,d,e);a.showDialog(b.container,620,420,!0,!1);a.dialog.container.style.overflow= +"auto"}else b=new CreateGraphDialog(a,d,e),a.showDialog(b.container,620,420,!0,!1);b.init()}),c)},y=function(a,b,d,e){var f=c.isMouseInsertPoint()?c.getInsertPoint():c.getFreeInsertPoint();a=new mxCell(a,new mxGeometry(f.x,f.y,b,d),e);a.vertex=!0;c.getModel().beginUpdate();try{a=c.addCell(a),c.fireEvent(new mxEventObject("cellsInserted","cells",[a]))}finally{c.getModel().endUpdate()}c.scrollCellToVisible(a);c.setSelectionCell(a);c.container.focus();c.editAfterInsert&&c.startEditing(a);return a};a.actions.addAction("insertText", +function(){c.isEnabled()&&!c.isCellLocked(c.getDefaultParent())&&c.startEditingAtCell(y("Text",40,20,"text;html=1;resizable=0;autosize=1;align=center;verticalAlign=middle;points=[];fillColor=none;strokeColor=none;rounded=0;"))},null,null,Editor.ctrlKey+"+Shift+X").isEnabled=g;a.actions.addAction("insertRectangle",function(){c.isEnabled()&&!c.isCellLocked(c.getDefaultParent())&&y("",120,60,"whiteSpace=wrap;html=1;")},null,null,Editor.ctrlKey+"+K").isEnabled=g;a.actions.addAction("insertEllipse",function(){c.isEnabled()&& +!c.isCellLocked(c.getDefaultParent())&&y("",80,80,"ellipse;whiteSpace=wrap;html=1;")},null,null,Editor.ctrlKey+"+Shift+K").isEnabled=g;a.actions.addAction("insertRhombus",function(){c.isEnabled()&&!c.isCellLocked(c.getDefaultParent())&&y("",80,80,"rhombus;whiteSpace=wrap;html=1;")}).isEnabled=g;var B=mxUtils.bind(this,function(a,b,c){for(var d=0;d<c.length;d++)"-"==c[d]?a.addSeparator(b):v(a,b,mxResources.get(c[d])+"...",c[d])});this.put("insert",new Menu(mxUtils.bind(this,function(b,c){this.addMenuItems(b, +"insertText insertRectangle - insertEllipse insertRhombus - insertLink insertImage".split(" "),c);b.addSeparator(c);this.addSubmenu("insertLayout",b,c,mxResources.get("layout"));b.addSeparator(c);B(b,c,["fromText","plantUml","-","formatSql"]);b.addItem(mxResources.get("csv")+"...",null,function(){a.showImportCsvDialog()},c)})));this.put("insertLayout",new Menu(mxUtils.bind(this,function(a,b){B(a,b,"horizontalFlow verticalFlow - horizontalTree verticalTree radialTree - organic circle".split(" "))}))); +this.put("openRecent",new Menu(function(b,c){var d=a.getRecent();if(null!=d){for(var e=0;e<d.length;e++)(function(d){var e=d.mode;e==App.MODE_GOOGLE?e="googleDrive":e==App.MODE_ONEDRIVE&&(e="oneDrive");b.addItem(d.title+" ("+mxResources.get(e)+")",null,function(){a.loadFile(d.id)},c)})(d[e]);b.addSeparator(c)}b.addItem(mxResources.get("reset"),null,function(){a.resetRecent()},c)}));this.put("openFrom",new Menu(function(b,c){null!=a.drive?b.addItem(mxResources.get("googleDrive")+"...",null,function(){a.pickFile(App.MODE_GOOGLE)}, +c):k&&b.addItem(mxResources.get("googleDrive")+" ("+mxResources.get("loading")+"...)",null,function(){},c,null,!1);null!=a.gitHub&&b.addItem(mxResources.get("github")+"...",null,function(){a.pickFile(App.MODE_GITHUB)},c);null!=a.dropbox?b.addItem(mxResources.get("dropbox")+"...",null,function(){a.pickFile(App.MODE_DROPBOX)},c):l&&b.addItem(mxResources.get("dropbox")+" ("+mxResources.get("loading")+"...)",null,function(){},c,null,!1);null!=a.oneDrive?b.addItem(mxResources.get("oneDrive")+"...",null, +function(){a.pickFile(App.MODE_ONEDRIVE)},c):m&&b.addItem(mxResources.get("oneDrive")+" ("+mxResources.get("loading")+"...)",null,function(){},c,null,!1);null!=a.trello?b.addItem(mxResources.get("trello")+"...",null,function(){a.pickFile(App.MODE_TRELLO)},c):f&&b.addItem(mxResources.get("trello")+" ("+mxResources.get("loading")+"...)",null,function(){},c,null,!1);b.addSeparator(c);isLocalStorage&&"0"!=urlParams.browser&&b.addItem(mxResources.get("browser")+"...",null,function(){a.pickFile(App.MODE_BROWSER)}, +c);mxClient.IS_IOS||b.addItem(mxResources.get("device")+"...",null,function(){a.pickFile(App.MODE_DEVICE)},c);a.isOffline()||(b.addSeparator(c),b.addItem(mxResources.get("url")+"...",null,function(){var b=new FilenameDialog(a,"",mxResources.get("open"),function(b){null!=b&&0<b.length&&(null==a.getCurrentFile()?window.location.hash="#U"+encodeURIComponent(b):window.openWindow((mxClient.IS_CHROMEAPP?"https://www.draw.io/":"https://"+location.host+"/")+window.location.search+"#U"+encodeURIComponent(b)))}, +mxResources.get("url"));a.showDialog(b.container,300,80,!0,!0);b.init()},c))}));Editor.enableCustomLibraries&&(this.put("newLibrary",new Menu(function(b,c){"undefined"!=typeof google&&"undefined"!=typeof google.picker&&(null!=a.drive?b.addItem(mxResources.get("googleDrive")+"...",null,function(){a.showLibraryDialog(null,null,null,null,App.MODE_GOOGLE)},c):k&&b.addItem(mxResources.get("googleDrive")+" ("+mxResources.get("loading")+"...)",null,function(){},c,null,!1));null!=a.gitHub&&b.addItem(mxResources.get("github")+ +"...",null,function(){a.showLibraryDialog(null,null,null,null,App.MODE_GITHUB)},c);null!=a.dropbox?b.addItem(mxResources.get("dropbox")+"...",null,function(){a.showLibraryDialog(null,null,null,null,App.MODE_DROPBOX)},c):l&&b.addItem(mxResources.get("dropbox")+" ("+mxResources.get("loading")+"...)",null,function(){},c,null,!1);null!=a.oneDrive?b.addItem(mxResources.get("oneDrive")+"...",null,function(){a.showLibraryDialog(null,null,null,null,App.MODE_ONEDRIVE)},c):m&&b.addItem(mxResources.get("oneDrive")+ +" ("+mxResources.get("loading")+"...)",null,function(){},c,null,!1);null!=a.trello?b.addItem(mxResources.get("trello")+"...",null,function(){a.showLibraryDialog(null,null,null,null,App.MODE_TRELLO)},c):f&&b.addItem(mxResources.get("trello")+" ("+mxResources.get("loading")+"...)",null,function(){},c,null,!1);b.addSeparator(c);isLocalStorage&&"0"!=urlParams.browser&&b.addItem(mxResources.get("browser")+"...",null,function(){a.showLibraryDialog(null,null,null,null,App.MODE_BROWSER)},c);mxClient.IS_IOS|| +b.addItem(mxResources.get("device")+"...",null,function(){a.showLibraryDialog(null,null,null,null,App.MODE_DEVICE)},c)})),this.put("openLibraryFrom",new Menu(function(b,c){"undefined"!=typeof google&&"undefined"!=typeof google.picker&&(null!=a.drive?b.addItem(mxResources.get("googleDrive")+"...",null,function(){a.pickLibrary(App.MODE_GOOGLE)},c):k&&b.addItem(mxResources.get("googleDrive")+" ("+mxResources.get("loading")+"...)",null,function(){},c,null,!1));null!=a.gitHub&&b.addItem(mxResources.get("github")+ +"...",null,function(){a.pickLibrary(App.MODE_GITHUB)},c);null!=a.dropbox?b.addItem(mxResources.get("dropbox")+"...",null,function(){a.pickLibrary(App.MODE_DROPBOX)},c):l&&b.addItem(mxResources.get("dropbox")+" ("+mxResources.get("loading")+"...)",null,function(){},c,null,!1);null!=a.oneDrive?b.addItem(mxResources.get("oneDrive")+"...",null,function(){a.pickLibrary(App.MODE_ONEDRIVE)},c):m&&b.addItem(mxResources.get("oneDrive")+" ("+mxResources.get("loading")+"...)",null,function(){},c,null,!1);null!= +a.trello?b.addItem(mxResources.get("trello")+"...",null,function(){a.pickLibrary(App.MODE_TRELLO)},c):f&&b.addItem(mxResources.get("trello")+" ("+mxResources.get("loading")+"...)",null,function(){},c,null,!1);b.addSeparator(c);isLocalStorage&&"0"!=urlParams.browser&&b.addItem(mxResources.get("browser")+"...",null,function(){a.pickLibrary(App.MODE_BROWSER)},c);mxClient.IS_IOS||b.addItem(mxResources.get("device")+"...",null,function(){a.pickLibrary(App.MODE_DEVICE)},c);a.isOffline()||(b.addSeparator(c), +b.addItem(mxResources.get("url")+"...",null,function(){var b=new FilenameDialog(a,"",mxResources.get("open"),function(b){if(null!=b&&0<b.length&&a.spinner.spin(document.body,mxResources.get("loading"))){var c=b;a.isCorsEnabledForUrl(b)||(c=PROXY_URL+"?url="+encodeURIComponent(b));mxUtils.get(c,function(c){if(200<=c.getStatus()&&299>=c.getStatus()){a.spinner.stop();try{a.loadLibrary(new UrlLibrary(this,c.getText(),b))}catch(E){a.handleError(E,mxResources.get("errorLoadingFile"))}}else a.spinner.stop(), +a.handleError(null,mxResources.get("errorLoadingFile"))},function(){a.spinner.stop();a.handleError(null,mxResources.get("errorLoadingFile"))})}},mxResources.get("url"));a.showDialog(b.container,300,80,!0,!0);b.init()},c))})));this.put("edit",new Menu(mxUtils.bind(this,function(a,b){this.addMenuItems(a,"undo redo - cut copy paste delete - duplicate - find - editData editTooltip - editStyle editGeometry - edit - editLink openLink - selectVertices selectEdges selectAll selectNone - lockUnlock".split(" "))}))); +this.put("view",new Menu(mxUtils.bind(this,function(b,c){this.addMenuItems(b,(null!=this.editorUi.format?["formatPanel"]:[]).concat(["outline","layers","-"]));this.addMenuItems(b,["-","search"],c);if(isLocalStorage||mxClient.IS_CHROMEAPP){var d=this.addMenuItem(b,"scratchpad",c);a.isOffline()&&!mxClient.IS_CHROMEAPP||this.addLinkToItem(d,"https://desk.draw.io/support/solutions/articles/16000042367")}this.addMenuItems(b,"shapes - pageView pageScale - scrollbars tooltips - grid guides".split(" "),c); +mxClient.IS_SVG&&(null==document.documentMode||9<document.documentMode)&&this.addMenuItem(b,"shadowVisible",c);this.addMenuItems(b,"- connectionArrows connectionPoints - resetView zoomIn zoomOut".split(" "),c)})));this.put("extras",new Menu(mxUtils.bind(this,function(b,c){"1"!=urlParams.embed&&(this.addSubmenu("theme",b,c),b.addSeparator(c));this.addMenuItems(b,["copyConnect","collapseExpand","-"],c);if("undefined"!==typeof MathJax){var d=this.addMenuItem(b,"mathematicalTypesetting",c);this.addLinkToItem(d, +"https://desk.draw.io/support/solutions/articles/16000032875")}"1"!=urlParams.embed&&this.addMenuItems(b,["autosave"],c);this.addMenuItems(b,["-","createShape","editDiagram"],c);b.addSeparator(c);"1"!=urlParams.embed&&(isLocalStorage||mxClient.IS_CHROMEAPP)&&this.addMenuItems(b,["showStartScreen"],c);!a.isOfflineApp()&&isLocalStorage&&this.addMenuItem(b,"plugins",c);b.addSeparator(c);this.addMenuItem(b,"tags",c);"1"==urlParams.newTempDlg&&(a.actions.addAction("templates",function(){var b=new TemplatesDialog; +a.showDialog(b.container,b.width,b.height,!0,!1,null,!1,!0);b.init(a,function(a){console.log(a)},null,null,null,"user",function(a,b){setTimeout(function(){b?a([{url:"123",title:"Test 1Test 1Test 1Test 1Test 1Test 1Test 11Test 1Test 11Test 1Test 1dgdsgdfg fdg dfgdfg dfg dfg"},{url:"123",title:"Test 2",imgUrl:"https://www.google.com.eg/images/branding/googlelogo/2x/googlelogo_color_272x92dp.png"},{url:"123",title:"Test 3",changedBy:"Ashraf Teleb",lastModifiedOn:"Yesterday"},{url:"123",title:"Test 4"}, +{url:"123",title:"Test 5"},{url:"123",title:"Test 6"}]):a([{url:"123",title:"Test 4",imgUrl:"https://images.pexels.com/photos/459225/pexels-photo-459225.jpeg"},{url:"123",title:"Test 5"},{url:"123",title:"Test 6"},{url:"123",title:"Test 1Test 1Test 1Test 1Test 1Test 1Test 11Test 1Test 11Test 1Test 1dgdsgdfg fdg dfgdfg dfg dfg"},{url:"123",title:"Test 2",imgUrl:"https://www.google.com.eg/images/branding/googlelogo/2x/googlelogo_color_272x92dp.png"},{url:"123",title:"Test 3",changedBy:"Ashraf Teleb", +lastModifiedOn:"Yesterday"}]);console.log(b)},1E3)},function(a,b,c){setTimeout(function(){b(c?[{url:"123",title:a+"Test 1Test 1Test 1Test 1Test 1Test 1Test 1"},{url:"123",title:a+"Test 2"},{url:"123",title:a+"Test 3"},{url:"123",title:a+"Test 4"},{url:"123",title:a+"Test 5"},{url:"123",title:a+"Test 6"}]:[{url:"123",title:a+"Test 5"},{url:"123",title:a+"Test 6"},{url:"123",title:a+"Test 1Test 1Test 1Test 1Test 1Test 1Test 1"},{url:"123",title:a+"Test 2"},{url:"123",title:a+"Test 3"},{url:"123",title:a+ +"Test 4"}])},2E3)},null)}),this.addMenuItem(b,"templates",c))})));this.put("file",new Menu(mxUtils.bind(this,function(b,c){if("1"==urlParams.embed)this.addSubmenu("importFrom",b,c),this.addSubmenu("exportAs",b,c),this.addSubmenu("embed",b,c),"1"==urlParams.libraries&&(this.addMenuItems(b,["-"],c),this.addSubmenu("newLibrary",b,c),this.addSubmenu("openLibraryFrom",b,c)),this.addMenuItems(b,"- pageSetup print - rename save".split(" "),c),"1"==urlParams.saveAndExit&&this.addMenuItems(b,["saveAndExit"], +c),this.addMenuItems(b,["exit"],c);else{var d=this.editorUi.getCurrentFile();null!=d&&d.constructor==DriveFile?(d.isRestricted()&&this.addMenuItems(b,["exportOptionsDisabled"],c),null==d.realtime?this.addMenuItems(b,["save","share","-","refresh","-"],c):(d.isAutosave()||this.addMenuItems(b,["save"],c),this.addMenuItems(b,["share","chatWindowTitle","-"],c))):this.addMenuItems(b,["new"],c);this.addSubmenu("openFrom",b,c);isLocalStorage&&this.addSubmenu("openRecent",b,c);null!=d&&d.constructor==DriveFile? +this.addMenuItems(b,["new","-","rename","makeCopy","moveToFolder"],c):(this.addMenuItems(b,["-","save","saveAs","-","rename"],c),a.isOfflineApp()?navigator.onLine&&"1"!=urlParams.stealth&&this.addMenuItems(b,["upload"],c):(this.addMenuItems(b,["makeCopy"],c),null!=d&&d.constructor==OneDriveFile&&this.addMenuItems(b,["moveToFolder"],c)));b.addSeparator(c);this.addSubmenu("importFrom",b,c);this.addSubmenu("exportAs",b,c);b.addSeparator(c);this.addSubmenu("embed",b,c);this.addSubmenu("publish",b,c); +b.addSeparator(c);this.addSubmenu("newLibrary",b,c);this.addSubmenu("openLibraryFrom",b,c);null==d||d.constructor!=DriveFile&&d.constructor!=DropboxFile||this.addMenuItems(b,["-","revisionHistory"],c);null!=d&&d.constructor==DriveFile&&this.addMenuItems(b,["createRevision"],c);this.addMenuItems(b,["-","pageSetup"],c);mxClient.IS_IOS&&navigator.standalone||this.addMenuItems(b,["print"],c);this.addMenuItems(b,["-","close"])}})))};var c=Menus.prototype.menuCreated;Menus.prototype.menuCreated=function(a, +b){if(480>=screen.width&&a==this.get("help")){b.style.paddingRight="0px";b.style.paddingLeft="0px";b.innerHTML="";var d=document.createElement("img");d.setAttribute("border","0");d.setAttribute("valign","bottom");d.setAttribute("src",Editor.helpImage);b.appendChild(d)}c.apply(this,arguments)}})();function DiagramPage(a){this.node=a;(null==this.node.hasAttribute&&null==this.node.getAttribute("id")||null!=this.node.hasAttribute&&!this.node.hasAttribute("id"))&&this.node.setAttribute("id",Editor.guid())}DiagramPage.prototype.node=null;DiagramPage.prototype.root=null;DiagramPage.prototype.viewState=null;DiagramPage.prototype.getId=function(){return this.node.getAttribute("id")};DiagramPage.prototype.getName=function(){return this.node.getAttribute("name")}; DiagramPage.prototype.setName=function(a){null==a?this.node.removeAttribute("name"):this.node.setAttribute("name",a)};function RenamePage(a,b,c){this.ui=a;this.page=b;this.previous=this.name=c}RenamePage.prototype.execute=function(){var a=this.page.getName();this.page.setName(this.previous);this.name=this.previous;this.previous=a;this.ui.editor.graph.updatePlaceholders();this.ui.editor.fireEvent(new mxEventObject("pageRenamed"))}; function MovePage(a,b,c){this.ui=a;this.oldIndex=b;this.newIndex=c}MovePage.prototype.execute=function(){this.ui.pages.splice(this.newIndex,0,this.ui.pages.splice(this.oldIndex,1)[0]);var a=this.oldIndex;this.oldIndex=this.newIndex;this.newIndex=a;this.ui.editor.graph.updatePlaceholders();this.ui.editor.fireEvent(new mxEventObject("pageMoved"))}; function SelectPage(a,b){this.ui=a;this.previousPage=this.page=b;this.neverShown=!0;null!=b&&(this.neverShown=null==b.viewState,this.ui.updatePageRoot(b))} @@ -8496,12 +8532,12 @@ EditorUi.prototype.initPages=function(){this.actions.addAction("previousPage",mx null==this.fileNode||null==this.pages||1==this.pages.length&&"0"==urlParams.pages?"0px":"30px";c!=this.tabContainer.style.height&&this.refresh(!1)}b.apply(a.view,arguments)});var c=null,d=mxUtils.bind(this,function(){this.updateTabContainer();var b=this.currentPage;null!=b&&b!=c&&(null==b.viewState||null==b.viewState.scrollLeft?(this.resetScrollbars(),a.isLightboxView()&&this.lightboxFit(),null!=this.chromelessResize&&(a.container.scrollLeft=0,a.container.scrollTop=0,this.chromelessResize())):(a.container.scrollLeft= a.view.translate.x*a.view.scale+b.viewState.scrollLeft,a.container.scrollTop=a.view.translate.y*a.view.scale+b.viewState.scrollTop),c=b);null!=this.actions.layersWindow&&this.actions.layersWindow.refreshLayers();"undefined"!==typeof MathJax&&"undefined"!==typeof MathJax.Hub?1!=MathJax.Hub.queue.pending||null==this.editor||this.editor.graph.mathEnabled||MathJax.Hub.Queue(mxUtils.bind(this,function(){null!=this.editor&&this.editor.graph.refresh()})):"undefined"===typeof Editor.MathJaxClear||null!=this.editor&& this.editor.graph.mathEnabled||Editor.MathJaxClear()});this.editor.graph.model.addListener(mxEvent.CHANGE,mxUtils.bind(this,function(a,b){for(var c=b.getProperty("edit").changes,e=0;e<c.length;e++)if(c[e]instanceof SelectPage||c[e]instanceof RenamePage||c[e]instanceof MovePage||c[e]instanceof mxRootChange){d();break}}));null!=this.toolbar&&this.editor.addListener("pageSelected",this.toolbar.updateZoom)}; -Graph.prototype.createViewState=function(a){var b=a.getAttribute("page"),c=parseFloat(a.getAttribute("pageScale")),d=parseFloat(a.getAttribute("pageWidth")),e=parseFloat(a.getAttribute("pageHeight")),g=a.getAttribute("background"),l=a.getAttribute("backgroundImage"),l=null!=l&&0<l.length?JSON.parse(l):null;return{gridEnabled:"0"!=a.getAttribute("grid"),gridSize:parseFloat(a.getAttribute("gridSize"))||mxGraph.prototype.gridSize,guidesEnabled:"0"!=a.getAttribute("guides"),foldingEnabled:"0"!=a.getAttribute("fold"), -shadowVisible:"1"==a.getAttribute("shadow"),pageVisible:this.isLightboxView()?!1:null!=b?"0"!=b:this.defaultPageVisible,background:null!=g&&0<g.length?g:this.defaultGraphBackground,backgroundImage:null!=l?new mxImage(l.src,l.width,l.height):null,pageScale:isNaN(c)?mxGraph.prototype.pageScale:c,pageFormat:isNaN(d)||isNaN(e)?this.pageFormat:new mxRectangle(0,0,d,d),tooltips:"0"!=a.getAttribute("tooltips"),connect:"0"!=a.getAttribute("connect"),arrows:"0"!=a.getAttribute("arrows"),mathEnabled:"1"==a.getAttribute("math"), -selectionCells:null,defaultParent:null,scrollbars:this.defaultScrollbars,scale:1}}; +Graph.prototype.createViewState=function(a){var b=a.getAttribute("page"),c=parseFloat(a.getAttribute("pageScale")),d=parseFloat(a.getAttribute("pageWidth")),e=parseFloat(a.getAttribute("pageHeight")),g=a.getAttribute("background"),k=a.getAttribute("backgroundImage"),k=null!=k&&0<k.length?JSON.parse(k):null;return{gridEnabled:"0"!=a.getAttribute("grid"),gridSize:parseFloat(a.getAttribute("gridSize"))||mxGraph.prototype.gridSize,guidesEnabled:"0"!=a.getAttribute("guides"),foldingEnabled:"0"!=a.getAttribute("fold"), +shadowVisible:"1"==a.getAttribute("shadow"),pageVisible:this.isLightboxView()?!1:null!=b?"0"!=b:this.defaultPageVisible,background:null!=g&&0<g.length?g:this.defaultGraphBackground,backgroundImage:null!=k?new mxImage(k.src,k.width,k.height):null,pageScale:isNaN(c)?mxGraph.prototype.pageScale:c,pageFormat:isNaN(d)||isNaN(e)?mxSettings.getPageFormat():new mxRectangle(0,0,d,e),tooltips:"0"!=a.getAttribute("tooltips"),connect:"0"!=a.getAttribute("connect"),arrows:"0"!=a.getAttribute("arrows"),mathEnabled:"1"== +a.getAttribute("math"),selectionCells:null,defaultParent:null,scrollbars:this.defaultScrollbars,scale:1}}; Graph.prototype.saveViewState=function(a,b){b.setAttribute("grid",null==a||a.gridEnabled?"1":"0");b.setAttribute("gridSize",null!=a?a.gridSize:mxGraph.prototype.gridSize);b.setAttribute("guides",null==a||a.guidesEnabled?"1":"0");b.setAttribute("tooltips",null==a||a.tooltips?"1":"0");b.setAttribute("connect",null==a||a.connect?"1":"0");b.setAttribute("arrows",null==a||a.arrows?"1":"0");b.setAttribute("fold",null==a||a.foldingEnabled?"1":"0");b.setAttribute("page",null==a&&this.defaultPageVisible|| -null!=a&&a.pageVisible?"1":"0");b.setAttribute("pageScale",null!=a&&null!=a.pageScale?a.pageScale:mxGraph.prototype.pageScale);var c=null!=a?a.pageFormat:mxSettings.getPageFormat();null!=c&&(b.setAttribute("pageWidth",c.width),b.setAttribute("pageHeight",c.height));b.setAttribute("background",null!=a&&null!=a.background?a.background:this.defaultGraphBackground);null!=a&&null!=a.backgroundImage&&b.setAttribute("backgroundImage",JSON.stringify(a.backgroundImage));b.setAttribute("math",null!=a&&a.mathEnabled? -"1":"0");b.setAttribute("shadow",null!=a&&a.shadowVisible?"1":"0")}; +null!=a&&a.pageVisible?"1":"0");b.setAttribute("pageScale",null!=a&&null!=a.pageScale?a.pageScale:mxGraph.prototype.pageScale);var c=null!=a?a.pageFormat:mxSettings.getPageFormat();null!=c&&(b.setAttribute("pageWidth",c.width),b.setAttribute("pageHeight",c.height));null!=a&&null!=a.background&&b.setAttribute("background",a.background);null!=a&&null!=a.backgroundImage&&b.setAttribute("backgroundImage",JSON.stringify(a.backgroundImage));b.setAttribute("math",null!=a&&a.mathEnabled?"1":"0");b.setAttribute("shadow", +null!=a&&a.shadowVisible?"1":"0")}; Graph.prototype.getViewState=function(){return{defaultParent:this.defaultParent,currentRoot:this.view.currentRoot,gridEnabled:this.gridEnabled,gridSize:this.gridSize,guidesEnabled:this.graphHandler.guidesEnabled,foldingEnabled:this.foldingEnabled,shadowVisible:this.shadowVisible,scrollbars:this.scrollbars,pageVisible:this.pageVisible,background:this.background,backgroundImage:this.backgroundImage,pageScale:this.pageScale,pageFormat:this.pageFormat,tooltips:this.tooltipHandler.isEnabled(),connect:this.connectionHandler.isEnabled(), arrows:this.connectionArrowsEnabled,scale:this.view.scale,scrollLeft:this.container.scrollLeft-this.view.translate.x*this.view.scale,scrollTop:this.container.scrollTop-this.view.translate.y*this.view.scale,translate:this.view.translate.clone(),lastPasteXml:this.lastPasteXml,pasteCounter:this.pasteCounter,mathEnabled:this.mathEnabled}}; Graph.prototype.setViewState=function(a){null!=a?(this.lastPasteXml=a.lastPasteXml,this.pasteCounter=a.pasteCounter||0,this.mathEnabled=a.mathEnabled,this.gridEnabled=a.gridEnabled,this.gridSize=a.gridSize,this.graphHandler.guidesEnabled=a.guidesEnabled,this.foldingEnabled=a.foldingEnabled,this.setShadowVisible(a.shadowVisible,!1),this.scrollbars=a.scrollbars,this.pageVisible=a.pageVisible,this.background=a.background,this.backgroundImage=a.backgroundImage,this.pageScale=a.pageScale,this.pageFormat= @@ -8518,9 +8554,9 @@ EditorUi.prototype.createTabContainer=function(){var a=document.createElement("d EditorUi.prototype.updateTabContainer=function(){if(null!=this.tabContainer&&null!=this.pages){var a=this.editor.graph,b=document.createElement("div");b.style.position="relative";b.style.display=mxClient.IS_QUIRKS?"inline":"inline-block";b.style.verticalAlign="top";b.style.height=this.tabContainer.style.height;b.style.whiteSpace="nowrap";b.style.overflow="hidden";b.style.fontSize="12px";b.style.marginLeft="30px";for(var c=this.editor.isChromelessView()?29:59,d=Math.min(140,Math.max(20,(this.tabContainer.clientWidth- c)/this.pages.length)+1),e=null,g=0;g<this.pages.length;g++)mxUtils.bind(this,function(c,d){this.pages[c]==this.currentPage?(d.className="geActivePage",d.style.backgroundColor="dark"==uiTheme?"#2a2a2a":"#eeeeee",d.style.fontWeight="bold",d.style.borderTopStyle="none"):d.className="geInactivePage";d.setAttribute("draggable","true");mxEvent.addListener(d,"dragstart",mxUtils.bind(this,function(b){a.isEnabled()?(mxClient.IS_FF&&b.dataTransfer.setData("Text","<diagram/>"),e=c):mxEvent.consume(b)}));mxEvent.addListener(d, "dragend",mxUtils.bind(this,function(a){e=null;a.stopPropagation();a.preventDefault()}));mxEvent.addListener(d,"dragover",mxUtils.bind(this,function(a){null!=e&&(a.dataTransfer.dropEffect="move");a.stopPropagation();a.preventDefault()}));mxEvent.addListener(d,"drop",mxUtils.bind(this,function(a){null!=e&&c!=e&&this.movePage(e,c);a.stopPropagation();a.preventDefault()}));b.appendChild(d)})(g,this.createTabForPage(this.pages[g],d,this.pages[g]!=this.currentPage));this.tabContainer.innerHTML="";this.tabContainer.appendChild(b); -d=this.createPageMenuTab();this.tabContainer.appendChild(d);d=null;this.isPageInsertTabVisible()&&(d=this.createPageInsertTab(),this.tabContainer.appendChild(d));if(b.clientWidth>this.tabContainer.clientWidth-c){null!=d&&(d.style.position="absolute",d.style.right="0px",b.style.marginRight="30px");var l=this.createControlTab(4," ❮ ");l.style.position="absolute";l.style.right=this.editor.chromeless?"29px":"55px";l.style.fontSize="13pt";this.tabContainer.appendChild(l);var m=this.createControlTab(4, -" ❯");m.style.position="absolute";m.style.right=this.editor.chromeless?"0px":"29px";m.style.fontSize="13pt";this.tabContainer.appendChild(m);var n=Math.max(0,this.tabContainer.clientWidth-(this.editor.chromeless?86:116));b.style.width=n+"px";mxEvent.addListener(l,"click",mxUtils.bind(this,function(a){b.scrollLeft-=Math.max(20,n-20);mxUtils.setOpacity(l,0<b.scrollLeft?100:50);mxUtils.setOpacity(m,b.scrollLeft<b.scrollWidth-b.clientWidth?100:50);mxEvent.consume(a)}));mxUtils.setOpacity(l, -0<b.scrollLeft?100:50);mxUtils.setOpacity(m,b.scrollLeft<b.scrollWidth-b.clientWidth?100:50);mxEvent.addListener(m,"click",mxUtils.bind(this,function(a){b.scrollLeft+=Math.max(20,n-20);mxUtils.setOpacity(l,0<b.scrollLeft?100:50);mxUtils.setOpacity(m,b.scrollLeft<b.scrollWidth-b.clientWidth?100:50);mxEvent.consume(a)}))}}};EditorUi.prototype.isPageInsertTabVisible=function(){return 1==urlParams.embed||null!=this.getCurrentFile()&&this.getCurrentFile().isEditable()}; +d=this.createPageMenuTab();this.tabContainer.appendChild(d);d=null;this.isPageInsertTabVisible()&&(d=this.createPageInsertTab(),this.tabContainer.appendChild(d));if(b.clientWidth>this.tabContainer.clientWidth-c){null!=d&&(d.style.position="absolute",d.style.right="0px",b.style.marginRight="30px");var k=this.createControlTab(4," ❮ ");k.style.position="absolute";k.style.right=this.editor.chromeless?"29px":"55px";k.style.fontSize="13pt";this.tabContainer.appendChild(k);var l=this.createControlTab(4, +" ❯");l.style.position="absolute";l.style.right=this.editor.chromeless?"0px":"29px";l.style.fontSize="13pt";this.tabContainer.appendChild(l);var m=Math.max(0,this.tabContainer.clientWidth-(this.editor.chromeless?86:116));b.style.width=m+"px";mxEvent.addListener(k,"click",mxUtils.bind(this,function(a){b.scrollLeft-=Math.max(20,m-20);mxUtils.setOpacity(k,0<b.scrollLeft?100:50);mxUtils.setOpacity(l,b.scrollLeft<b.scrollWidth-b.clientWidth?100:50);mxEvent.consume(a)}));mxUtils.setOpacity(k, +0<b.scrollLeft?100:50);mxUtils.setOpacity(l,b.scrollLeft<b.scrollWidth-b.clientWidth?100:50);mxEvent.addListener(l,"click",mxUtils.bind(this,function(a){b.scrollLeft+=Math.max(20,m-20);mxUtils.setOpacity(k,0<b.scrollLeft?100:50);mxUtils.setOpacity(l,b.scrollLeft<b.scrollWidth-b.clientWidth?100:50);mxEvent.consume(a)}))}}};EditorUi.prototype.isPageInsertTabVisible=function(){return 1==urlParams.embed||null!=this.getCurrentFile()&&this.getCurrentFile().isEditable()}; EditorUi.prototype.createTab=function(a){var b=document.createElement("div");b.style.display=mxClient.IS_QUIRKS?"inline":"inline-block";b.style.whiteSpace="nowrap";b.style.boxSizing="border-box";b.style.position="relative";b.style.overflow="hidden";b.style.marginLeft="-1px";b.style.height=this.tabContainer.clientHeight+"px";b.style.padding="8px 4px 8px 4px";b.style.border="dark"==uiTheme?"1px solid #505759":"1px solid #c0c0c0";b.style.borderBottomStyle="solid";b.style.backgroundColor=this.tabContainer.style.backgroundColor; b.style.cursor="move";b.style.color="gray";a&&(mxEvent.addListener(b,"mouseenter",mxUtils.bind(this,function(a){this.editor.graph.isMouseDown||(b.style.backgroundColor="dark"==uiTheme?"black":"#d3d3d3",mxEvent.consume(a))})),mxEvent.addListener(b,"mouseleave",mxUtils.bind(this,function(a){b.style.backgroundColor=this.tabContainer.style.backgroundColor;mxEvent.consume(a)})));return b}; EditorUi.prototype.createControlTab=function(a,b){var c=this.createTab(!0);c.style.paddingTop=a+"px";c.style.cursor="pointer";c.style.width="30px";c.style.lineHeight="30px";c.innerHTML=b;null!=c.firstChild&&null!=c.firstChild.style&&mxUtils.setOpacity(c.firstChild,40);return c}; @@ -8530,51 +8566,51 @@ null,mxUtils.bind(this,function(){this.renamePage(d,d.getName())}),b),a.addSepar mxEvent.consume(a)}));return a};EditorUi.prototype.createPageInsertTab=function(){var a=this.createControlTab(4,'<div class="geSprite geSprite-plus" style="display:inline-block;width:21px;height:21px;"></div>');a.setAttribute("title",mxResources.get("insertPage"));mxEvent.addListener(a,"click",mxUtils.bind(this,function(a){this.insertPage();mxEvent.consume(a)}));return a}; EditorUi.prototype.createTabForPage=function(a,b,c){c=this.createTab(c);var d=a.getName();c.setAttribute("title",d);mxUtils.write(c,d);c.style.maxWidth=b+"px";c.style.width=b+"px";this.addTabListeners(a,c);42<b&&(c.style.textOverflow="ellipsis");return c}; EditorUi.prototype.addTabListeners=function(a,b){mxEvent.disableContextMenu(b);var c=this.editor.graph;mxEvent.addListener(b,"dblclick",mxUtils.bind(this,function(b){this.renamePage(a);mxEvent.consume(b)}));var d=!1,e=!1;mxEvent.addGestureListeners(b,mxUtils.bind(this,function(b){d=null!=this.currentMenu;e=a==this.currentPage;c.isMouseDown||e||this.selectPage(a)}),null,mxUtils.bind(this,function(g){if(c.isEnabled()&&!c.isMouseDown&&(mxEvent.isTouchEvent(g)&&e||mxEvent.isPopupTrigger(g))){c.popupMenuHandler.hideMenu(); -this.hideCurrentMenu();if(!mxEvent.isTouchEvent(g)||!d){var l=new mxPopupMenu(this.createPageMenu(a));l.div.className+=" geMenubarMenu";l.smartSeparators=!0;l.showDisabled=!0;l.autoExpand=!0;l.hideMenu=mxUtils.bind(this,function(){mxPopupMenu.prototype.hideMenu.apply(l,arguments);this.resetCurrentMenu();l.destroy()});var m=mxEvent.getClientX(g),n=mxEvent.getClientY(g);l.popup(m,n,null,g);this.setCurrentMenu(l,b)}mxEvent.consume(g)}}))}; +this.hideCurrentMenu();if(!mxEvent.isTouchEvent(g)||!d){var k=new mxPopupMenu(this.createPageMenu(a));k.div.className+=" geMenubarMenu";k.smartSeparators=!0;k.showDisabled=!0;k.autoExpand=!0;k.hideMenu=mxUtils.bind(this,function(){mxPopupMenu.prototype.hideMenu.apply(k,arguments);this.resetCurrentMenu();k.destroy()});var l=mxEvent.getClientX(g),m=mxEvent.getClientY(g);k.popup(l,m,null,g);this.setCurrentMenu(k,b)}mxEvent.consume(g)}}))}; EditorUi.prototype.createPageMenu=function(a,b){return mxUtils.bind(this,function(c,d){c.addItem(mxResources.get("insert"),null,mxUtils.bind(this,function(){this.insertPage(null,mxUtils.indexOf(this.pages,a)+1)}),d);c.addItem(mxResources.get("delete"),null,mxUtils.bind(this,function(){this.removePage(a)}),d);c.addItem(mxResources.get("rename"),null,mxUtils.bind(this,function(){this.renamePage(a,b)}),d);c.addSeparator(d);c.addItem(mxResources.get("duplicate"),null,mxUtils.bind(this,function(){this.duplicatePage(a, mxResources.get("copyOf",[a.getName()]))}),d)})};(function(){var a=EditorUi.prototype.refresh;EditorUi.prototype.refresh=function(b){a.apply(this,arguments);this.updateTabContainer()}})();(function(){mxCodecRegistry.getCodec(ChangePageSetup).exclude.push("page")})();(function(){var a=new mxObjectCodec(new MovePage,["ui"]);a.beforeDecode=function(a,c,d){d.ui=a.ui;return c};a.afterDecode=function(a,c,d){a=d.oldIndex;d.oldIndex=d.newIndex;d.newIndex=a;return d};mxCodecRegistry.register(a)})(); (function(){var a=new mxObjectCodec(new RenamePage,["ui","page"]);a.beforeDecode=function(a,c,d){d.ui=a.ui;return c};a.afterDecode=function(a,c,d){a=d.previous;d.previous=d.name;d.name=a;return d};mxCodecRegistry.register(a)})(); (function(){var a=new mxObjectCodec(new ChangePage,"ui relatedPage index neverShown page previousPage".split(" ")),b="defaultParent currentRoot scrollLeft scrollTop scale translate lastPasteXml pasteCounter".split(" ");a.afterEncode=function(a,d,e){e.setAttribute("relatedPage",d.relatedPage.getId());null==d.index&&(e.setAttribute("name",d.relatedPage.getName()),null!=d.relatedPage.viewState&&e.setAttribute("viewState",JSON.stringify(d.relatedPage.viewState,function(a,c){return 0>mxUtils.indexOf(b, a)?c:void 0})),null!=d.relatedPage.root&&a.encodeCell(d.relatedPage.root,e));return e};a.beforeDecode=function(a,b,e){e.ui=a.ui;e.relatedPage=e.ui.getPageById(b.getAttribute("relatedPage"));if(null==e.relatedPage){var c=b.ownerDocument.createElement("diagram");c.setAttribute("id",b.getAttribute("relatedPage"));c.setAttribute("name",b.getAttribute("name"));e.relatedPage=new DiagramPage(c);c=b.getAttribute("viewState");null!=c&&(e.relatedPage.viewState=JSON.parse(c),b.removeAttribute("viewState")); b=b.cloneNode(!0);c=b.firstChild;if(null!=c)for(e.relatedPage.root=a.decodeCell(c,!1),e=c.nextSibling,c.parentNode.removeChild(c),c=e;null!=c;){e=c.nextSibling;if(c.nodeType==mxConstants.NODETYPE_ELEMENT){var d=c.getAttribute("id");null==a.lookup(d)&&a.decodeCell(c)}c.parentNode.removeChild(c);c=e}}return b};a.afterDecode=function(a,b,e){e.index=e.previousIndex;return e};mxCodecRegistry.register(a)})();(function(){var a=mxClient.IS_SVG?"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAMAAABhEH5lAAAASFBMVEUAAAAAAAB/f3/9/f319fUfHx/7+/s+Pj69vb0AAAAAAAAAAAAAAAAAAAAAAAAAAAB2dnZ1dXUAAAAAAAAVFRX///8ZGRkGBgbOcI1hAAAAE3RSTlMA+vr9/f38+fb1893Bo00u+/tFvPJUBQAAAIRJREFUGNM0jEcSxCAQAxlydGqD///TNWxZBx1aXVIrWysplbapL3sFxgDq/idXBnHgBPK1nIxwc55vCXl6dRFtrV6svs/A/UjsPcpzA5tqyByD92HqQlMFh45BG6ND1DiKSoPDdm96N77bg5F+wyaEqRGb8ZiOwHQqdg9hehszcLAEIQB2lQ4p/sEpnAAAAABJRU5ErkJggg==":IMAGE_PATH+"/move.png";EditorUi.prototype.altShiftActions[68]= -"selectDescendants";var b=Graph.prototype.foldCells;Graph.prototype.foldCells=function(a,c,d,m,n){c=null!=c?c:!1;null==d&&(d=this.getFoldableCells(this.getSelectionCells(),a));this.stopEditing();this.model.beginUpdate();try{for(var e=d.slice(),g=[],l=0;l<d.length;l++){var q=this.view.getState(d[l]),u=null!=q?q.style:this.getCellStyle(d[l]);"1"==mxUtils.getValue(u,"treeFolding","0")&&(this.traverse(d[l],!0,mxUtils.bind(this,function(a,b){null!=b&&g.push(b);a!=d[l]&&g.push(a);return a==d[l]||!this.model.isCollapsed(a)})), -this.model.setCollapsed(d[l],a))}for(l=0;l<g.length;l++)this.model.setVisible(g[l],!a);d=e;d=b.apply(this,arguments)}finally{this.model.endUpdate()}return d};var c=EditorUi.prototype.init;EditorUi.prototype.init=function(){c.apply(this,arguments);this.editor.isChromelessView()&&!this.editor.editable||this.addTrees()};EditorUi.prototype.addTrees=function(){function b(a){return v.isVertex(a)&&c(a)}function c(a){var b=!1;null!=a&&(a=v.getParent(a),b=p.view.getState(a),p.view.getState(a),b="tree"==(null!= -b?b.style:p.getCellStyle(a)).containerType);return b}function d(a){var b=!1;null!=a&&(a=v.getParent(a),b=p.view.getState(a),p.view.getState(a),b=null!=(null!=b?b.style:p.getCellStyle(a)).childLayout);return b}function m(a){a=p.view.getState(a);if(null!=a){var b=p.getIncomingEdges(a.cell);if(0<b.length&&(b=p.view.getState(b[0]),null!=b&&(b=b.absolutePoints,null!=b&&0<b.length&&(b=b[b.length-1],null!=b)))){if(b.y==a.y&&Math.abs(b.x-a.getCenterX())<a.width/2)return mxConstants.DIRECTION_SOUTH;if(b.y== -a.y+a.height&&Math.abs(b.x-a.getCenterX())<a.width/2)return mxConstants.DIRECTION_NORTH;if(b.x>a.getCenterX())return mxConstants.DIRECTION_WEST}}return mxConstants.DIRECTION_EAST}function n(a,b){b=null!=b?b:!0;p.model.beginUpdate();try{var c=p.model.getParent(a),d=p.getIncomingEdges(a),e=p.cloneCells([d[0],a]);p.model.setTerminal(e[0],p.model.getTerminal(d[0],!0),!0);var f=m(a),g=c.geometry;f==mxConstants.DIRECTION_SOUTH||f==mxConstants.DIRECTION_NORTH?e[1].geometry.x+=b?a.geometry.width+10:-e[1].geometry.width- -10:e[1].geometry.y+=b?a.geometry.height+10:-e[1].geometry.height-10;p.view.currentRoot!=c&&(e[1].geometry.x-=g.x,e[1].geometry.y-=g.y);var h=p.view.getState(a),l=p.view.scale;if(null!=h){var k=mxRectangle.fromRectangle(h);f==mxConstants.DIRECTION_SOUTH||f==mxConstants.DIRECTION_NORTH?k.x+=(b?a.geometry.width+10:-e[1].geometry.width-10)*l:k.y+=(b?a.geometry.height+10:-e[1].geometry.height-10)*l;var n=p.getOutgoingEdges(p.model.getTerminal(d[0],!0));if(null!=n){for(var v=f==mxConstants.DIRECTION_SOUTH|| -f==mxConstants.DIRECTION_NORTH,t=g=d=0;t<n.length;t++){var q=p.model.getTerminal(n[t],!1);if(f==m(q)){var u=p.view.getState(q);q!=a&&null!=u&&(v&&b!=u.getCenterX()<h.getCenterX()||!v&&b!=u.getCenterY()<h.getCenterY())&&mxUtils.intersects(k,u)&&(d=10+Math.max(d,(Math.min(k.x+k.width,u.x+u.width)-Math.max(k.x,u.x))/l),g=10+Math.max(g,(Math.min(k.y+k.height,u.y+u.height)-Math.max(k.y,u.y))/l))}}v?g=0:d=0;for(t=0;t<n.length;t++)if(q=p.model.getTerminal(n[t],!1),f==m(q)&&(u=p.view.getState(q),q!=a&&null!= -u&&(v&&b!=u.getCenterX()<h.getCenterX()||!v&&b!=u.getCenterY()<h.getCenterY()))){var B=[];p.traverse(u.cell,!0,function(a,b){null!=b&&B.push(b);B.push(a);return!0});p.moveCells(B,(b?1:-1)*d,(b?1:-1)*g)}}}return p.addCells(e,c)}finally{p.model.endUpdate()}}function f(a){p.model.beginUpdate();try{var b=m(a),c=p.getIncomingEdges(a),d=p.cloneCells([c[0],a]);p.model.setTerminal(c[0],d[1],!1);p.model.setTerminal(d[0],d[1],!0);p.model.setTerminal(d[0],a,!1);var e=p.model.getParent(a),f=e.geometry,g=[];p.view.currentRoot!= -e&&(d[1].geometry.x-=f.x,d[1].geometry.y-=f.y);p.traverse(a,!0,function(a,b){null!=b&&g.push(b);g.push(a);return!0});var h=a.geometry.width+40,l=a.geometry.height+40;b==mxConstants.DIRECTION_SOUTH?h=0:b==mxConstants.DIRECTION_NORTH?(h=0,l=-40):b==mxConstants.DIRECTION_WEST?(h=-40,l=0):b==mxConstants.DIRECTION_EAST&&(l=0);p.moveCells(g,h,l);return p.addCells(d,e)}finally{p.model.endUpdate()}}function h(a){p.model.beginUpdate();try{var b=p.model.getParent(a),c=p.getIncomingEdges(a),d=p.cloneCells([c[0], -a]);p.model.setTerminal(d[0],a,!0);var c=p.getOutgoingEdges(a),e=b.geometry,f=[];p.view.currentRoot==b&&(e=new mxRectangle);for(var g=0;g<c.length;g++){var h=p.model.getTerminal(c[g],!1);null!=h&&f.push(h)}var l=p.view.getBounds(f),k=m(a),n=p.view.translate,v=p.view.scale;k==mxConstants.DIRECTION_SOUTH?(d[1].geometry.x=null==l?a.geometry.x+(a.geometry.width-d[1].geometry.width)/2:(l.x+l.width)/v-n.x-e.x+10,d[1].geometry.y+=a.geometry.height-e.y+40):k==mxConstants.DIRECTION_NORTH?(d[1].geometry.x= -null==l?a.geometry.x+(a.geometry.width-d[1].geometry.width)/2:(l.x+l.width)/v-n.x+-e.x+10,d[1].geometry.y-=d[1].geometry.height-e.y+40):(d[1].geometry.x=k==mxConstants.DIRECTION_WEST?d[1].geometry.x-(d[1].geometry.width-e.x+40):d[1].geometry.x+(a.geometry.width-e.x+40),d[1].geometry.y=null==l?a.geometry.y+(a.geometry.height-d[1].geometry.height)/2:(l.y+l.height)/v-n.y+-e.y+10);return p.addCells(d,b)}finally{p.model.endUpdate()}}function k(a,b,c){a=p.getOutgoingEdges(a);c=p.view.getState(c);var d= -[];if(null!=c&&null!=a){for(var e=0;e<a.length;e++){var f=p.view.getState(p.model.getTerminal(a[e],!1));null!=f&&(!b&&Math.min(f.x+f.width,c.x+c.width)>=Math.max(f.x,c.x)||b&&Math.min(f.y+f.height,c.y+c.height)>=Math.max(f.y,c.y))&&d.push(f)}d.sort(function(a,c){return b?a.x+a.width-c.x-c.width:a.y+a.height-c.y-c.height})}return d}function q(a,b){var c=m(a),d=b==mxConstants.DIRECTION_EAST||b==mxConstants.DIRECTION_WEST;(c==mxConstants.DIRECTION_EAST||c==mxConstants.DIRECTION_WEST)==d&&c!=b?u.actions.get("selectParent").funct(): -c==b?(d=p.getOutgoingEdges(a),null!=d&&0<d.length&&p.setSelectionCell(p.model.getTerminal(d[0],!1))):(c=p.getIncomingEdges(a),null!=c&&0<c.length&&(d=k(p.model.getTerminal(c[0],!0),d,a),c=p.view.getState(a),null!=c&&(c=mxUtils.indexOf(d,c),0<=c&&(c+=b==mxConstants.DIRECTION_NORTH||b==mxConstants.DIRECTION_WEST?-1:1,0<=c&&c<=d.length-1&&p.setSelectionCell(d[c].cell)))))}var u=this,p=u.editor.graph,v=p.getModel();mxResources.parse("selectChildren=Select Children");mxResources.parse("selectSiblings=Select Siblings"); -mxResources.parse("selectDescendants=Select Descendants");mxResources.parse("selectParent=Select Parent");var y=u.menus.createPopupMenu;u.menus.createPopupMenu=function(a,c,d){y.apply(this,arguments);if(1==p.getSelectionCount()){c=p.getSelectionCell();var e=p.getOutgoingEdges(c);a.addSeparator();null!=e&&0<e.length&&(b(p.getSelectionCell())&&this.addMenuItems(a,["selectChildren"],null,d),this.addMenuItems(a,["selectDescendants"],null,d));b(p.getSelectionCell())&&(a.addSeparator(),0<p.getIncomingEdges(c).length&& -this.addMenuItems(a,["selectSiblings","selectParent"],null,d))}};u.actions.addAction("selectChildren",function(){if(p.isEnabled()&&1==p.getSelectionCount()){var a=p.getSelectionCell(),a=p.getOutgoingEdges(a);if(null!=a){for(var b=[],c=0;c<a.length;c++)b.push(p.model.getTerminal(a[c],!1));p.setSelectionCells(b)}}},null,null,"Alt+Shift+X");u.actions.addAction("selectSiblings",function(){if(p.isEnabled()&&1==p.getSelectionCount()){var a=p.getSelectionCell(),a=p.getIncomingEdges(a);if(null!=a&&0<a.length&& -(a=p.getOutgoingEdges(p.model.getTerminal(a[0],!0)),null!=a)){for(var b=[],c=0;c<a.length;c++)b.push(p.model.getTerminal(a[c],!1));p.setSelectionCells(b)}}},null,null,"Alt+Shift+S");u.actions.addAction("selectParent",function(){if(p.isEnabled()&&1==p.getSelectionCount()){var a=p.getSelectionCell(),a=p.getIncomingEdges(a);null!=a&&0<a.length&&p.setSelectionCell(p.model.getTerminal(a[0],!0))}},null,null,"Alt+Shift+P");u.actions.addAction("selectDescendants",function(){if(p.isEnabled()&&1==p.getSelectionCount()){var a= -p.getSelectionCell(),b=[];p.traverse(a,!0,function(a,c){null!=c&&b.push(c);b.push(a);return!0});p.setSelectionCells(b)}},null,null,"Alt+Shift+D");var A=p.removeCells;p.removeCells=function(a,d){d=null!=d?d:!0;null==a&&(a=this.getDeletableCells(this.getSelectionCells()));d&&(a=this.getDeletableCells(this.addAllEdges(a)));for(var e=[],f=0;f<a.length;f++){var g=a[f];v.isEdge(g)&&c(g)&&(e.push(g),g=v.getTerminal(g,!1));b(g)?(p.traverse(g,!0,function(a,b){null!=b&&e.push(b);e.push(a);return!0}),g=p.getIncomingEdges(a[f]), -a=a.concat(g)):e.push(a[f])}a=e;return A.apply(this,arguments)};u.hoverIcons.getStateAt=function(a,c,d){return b(a.cell)?null:this.graph.view.getState(this.graph.getCellAt(c,d))};var t=p.duplicateCells;p.duplicateCells=function(a,c){a=null!=a?a:this.getSelectionCells();for(var d=a.slice(0),e=0;e<d.length;e++){var f=p.view.getState(d[e]);if(null!=f&&b(f.cell))for(var g=p.getIncomingEdges(f.cell),f=0;f<g.length;f++)mxUtils.remove(g[f],a)}this.model.beginUpdate();try{var h=t.call(this,a,c);if(h.length== -a.length)for(e=0;e<a.length;e++)if(b(a[e])){var l=p.getIncomingEdges(h[e]),g=p.getIncomingEdges(a[e]);if(0==l.length&&0<g.length){var k=this.cloneCells([g[0]])[0];this.addEdge(k,p.getDefaultParent(),this.model.getTerminal(g[0],!0),h[e])}}}finally{this.model.endUpdate()}return h};var w=p.moveCells;p.moveCells=function(a,c,d,e,f,g,h){var l=null;this.model.beginUpdate();try{var k=f,m=this.view.getState(f),n=null!=m?m.style:this.getCellStyle(f);if(null!=a&&b(f)&&"1"==mxUtils.getValue(n,"treeFolding", -"0")){for(var v=0;v<a.length;v++)if(b(a[v])||p.model.isEdge(a[v])&&null==p.model.getTerminal(a[v],!0)){f=p.model.getParent(a[v]);break}if(null!=k&&f!=k&&null!=this.view.getState(a[0])){var t=p.getIncomingEdges(a[0]);if(0<t.length){var q=p.view.getState(p.model.getTerminal(t[0],!0));if(null!=q){var u=p.view.getState(k);null!=u&&(c=(u.getCenterX()-q.getCenterX())/p.view.scale,d=(u.getCenterY()-q.getCenterY())/p.view.scale)}}}}l=w.apply(this,arguments);if(null!=l&&null!=a&&l.length==a.length)for(v=0;v< -l.length;v++)if(this.model.isEdge(l[v]))b(k)&&0>mxUtils.indexOf(l,this.model.getTerminal(l[v],!0))&&this.model.setTerminal(l[v],k,!0);else if(b(a[v])&&(t=p.getIncomingEdges(a[v]),0<t.length))if(!e)b(k)&&0>mxUtils.indexOf(a,this.model.getTerminal(t[0],!0))&&this.model.setTerminal(t[0],k,!0);else if(0==p.getIncomingEdges(l[v]).length){m=k;if(null==m||m==p.model.getParent(a[v]))m=p.model.getTerminal(t[0],!0);e=this.cloneCells([t[0]])[0];this.addEdge(e,p.getDefaultParent(),m,l[v])}}finally{this.model.endUpdate()}return l}; -if(null!=u.sidebar){var x=u.sidebar.dropAndConnect;u.sidebar.dropAndConnect=function(a,c,d,e){var f=p.model,g=null;f.beginUpdate();try{if(g=x.apply(this,arguments),b(a))for(var h=0;h<g.length;h++)if(f.isEdge(g[h])&&null==f.getTerminal(g[h],!0)){f.setTerminal(g[h],a,!0);var l=p.getCellGeometry(g[h]);l.points=null;null!=l.getTerminalPoint(!0)&&l.setTerminalPoint(null,!0)}}finally{f.endUpdate()}return g}}var C={88:u.actions.get("selectChildren"),84:u.actions.get("selectSubtree"),80:u.actions.get("selectParent"), -83:u.actions.get("selectSiblings")},z=u.onKeyDown;u.onKeyDown=function(a){try{if(p.isEnabled()&&!p.isEditing()&&b(p.getSelectionCell())&&1==p.getSelectionCount()){var c=null;0<p.getIncomingEdges(p.getSelectionCell()).length&&(9==a.which?c=mxEvent.isShiftDown(a)?f(p.getSelectionCell()):h(p.getSelectionCell()):13==a.which&&(c=n(p.getSelectionCell(),!mxEvent.isShiftDown(a))));if(null!=c&&0<c.length)1==c.length&&p.model.isEdge(c[0])?p.setSelectionCell(p.model.getTerminal(c[0],!1)):p.setSelectionCell(c[c.length- -1]),null!=u.hoverIcons&&u.hoverIcons.update(p.view.getState(p.getSelectionCell())),p.startEditingAtCell(p.getSelectionCell()),mxEvent.consume(a);else if(mxEvent.isAltDown(a)&&mxEvent.isShiftDown(a)){var d=C[a.keyCode];null!=d&&(d.funct(a),mxEvent.consume(a))}else 37==a.keyCode?(q(p.getSelectionCell(),mxConstants.DIRECTION_WEST),mxEvent.consume(a)):38==a.keyCode?(q(p.getSelectionCell(),mxConstants.DIRECTION_NORTH),mxEvent.consume(a)):39==a.keyCode?(q(p.getSelectionCell(),mxConstants.DIRECTION_EAST), -mxEvent.consume(a)):40==a.keyCode&&(q(p.getSelectionCell(),mxConstants.DIRECTION_SOUTH),mxEvent.consume(a))}}catch(M){console.log("error",M)}mxEvent.isConsumed(a)||z.apply(this,arguments)};var F=p.connectVertex;p.connectVertex=function(a,c,d,e,g,l){var k=p.getIncomingEdges(a);return b(a)&&0<k.length?(d=m(a),e=d==mxConstants.DIRECTION_EAST||d==mxConstants.DIRECTION_WEST,g=c==mxConstants.DIRECTION_EAST||c==mxConstants.DIRECTION_WEST,d==c?h(a):e==g?f(a):n(a,c!=mxConstants.DIRECTION_NORTH&&c!=mxConstants.DIRECTION_WEST)): -F.call(this,a,c,d,e,g,l)};p.getSubtree=function(a){var c=[a];b(a)&&!d(a)&&p.traverse(a,!0,function(a,b){null!=b&&0>mxUtils.indexOf(c,b)&&c.push(b);0>mxUtils.indexOf(c,a)&&c.push(a);return!0});return c};var E=mxVertexHandler.prototype.init;mxVertexHandler.prototype.init=function(){E.apply(this,arguments);b(this.state.cell)&&0<this.graph.getOutgoingEdges(this.state.cell).length&&(this.moveHandle=mxUtils.createImage(a),this.moveHandle.setAttribute("title","Move Subtree"),this.moveHandle.style.position= +"selectDescendants";var b=Graph.prototype.foldCells;Graph.prototype.foldCells=function(a,c,d,l,m){c=null!=c?c:!1;null==d&&(d=this.getFoldableCells(this.getSelectionCells(),a));this.stopEditing();this.model.beginUpdate();try{for(var e=d.slice(),g=[],k=0;k<d.length;k++){var u=this.view.getState(d[k]),p=null!=u?u.style:this.getCellStyle(d[k]);"1"==mxUtils.getValue(p,"treeFolding","0")&&(this.traverse(d[k],!0,mxUtils.bind(this,function(a,b){null!=b&&g.push(b);a!=d[k]&&g.push(a);return a==d[k]||!this.model.isCollapsed(a)})), +this.model.setCollapsed(d[k],a))}for(k=0;k<g.length;k++)this.model.setVisible(g[k],!a);d=e;d=b.apply(this,arguments)}finally{this.model.endUpdate()}return d};var c=EditorUi.prototype.init;EditorUi.prototype.init=function(){c.apply(this,arguments);this.editor.isChromelessView()&&!this.editor.editable||this.addTrees()};EditorUi.prototype.addTrees=function(){function b(a){return v.isVertex(a)&&c(a)}function c(a){var b=!1;null!=a&&(a=v.getParent(a),b=q.view.getState(a),q.view.getState(a),b="tree"==(null!= +b?b.style:q.getCellStyle(a)).containerType);return b}function d(a){var b=!1;null!=a&&(a=v.getParent(a),b=q.view.getState(a),q.view.getState(a),b=null!=(null!=b?b.style:q.getCellStyle(a)).childLayout);return b}function l(a){a=q.view.getState(a);if(null!=a){var b=q.getIncomingEdges(a.cell);if(0<b.length&&(b=q.view.getState(b[0]),null!=b&&(b=b.absolutePoints,null!=b&&0<b.length&&(b=b[b.length-1],null!=b)))){if(b.y==a.y&&Math.abs(b.x-a.getCenterX())<a.width/2)return mxConstants.DIRECTION_SOUTH;if(b.y== +a.y+a.height&&Math.abs(b.x-a.getCenterX())<a.width/2)return mxConstants.DIRECTION_NORTH;if(b.x>a.getCenterX())return mxConstants.DIRECTION_WEST}}return mxConstants.DIRECTION_EAST}function m(a,b){b=null!=b?b:!0;q.model.beginUpdate();try{var c=q.model.getParent(a),d=q.getIncomingEdges(a),e=q.cloneCells([d[0],a]);q.model.setTerminal(e[0],q.model.getTerminal(d[0],!0),!0);var f=l(a),g=c.geometry;f==mxConstants.DIRECTION_SOUTH||f==mxConstants.DIRECTION_NORTH?e[1].geometry.x+=b?a.geometry.width+10:-e[1].geometry.width- +10:e[1].geometry.y+=b?a.geometry.height+10:-e[1].geometry.height-10;q.view.currentRoot!=c&&(e[1].geometry.x-=g.x,e[1].geometry.y-=g.y);var h=q.view.getState(a),k=q.view.scale;if(null!=h){var m=mxRectangle.fromRectangle(h);f==mxConstants.DIRECTION_SOUTH||f==mxConstants.DIRECTION_NORTH?m.x+=(b?a.geometry.width+10:-e[1].geometry.width-10)*k:m.y+=(b?a.geometry.height+10:-e[1].geometry.height-10)*k;var n=q.getOutgoingEdges(q.model.getTerminal(d[0],!0));if(null!=n){for(var v=f==mxConstants.DIRECTION_SOUTH|| +f==mxConstants.DIRECTION_NORTH,t=g=d=0;t<n.length;t++){var p=q.model.getTerminal(n[t],!1);if(f==l(p)){var u=q.view.getState(p);p!=a&&null!=u&&(v&&b!=u.getCenterX()<h.getCenterX()||!v&&b!=u.getCenterY()<h.getCenterY())&&mxUtils.intersects(m,u)&&(d=10+Math.max(d,(Math.min(m.x+m.width,u.x+u.width)-Math.max(m.x,u.x))/k),g=10+Math.max(g,(Math.min(m.y+m.height,u.y+u.height)-Math.max(m.y,u.y))/k))}}v?g=0:d=0;for(t=0;t<n.length;t++)if(p=q.model.getTerminal(n[t],!1),f==l(p)&&(u=q.view.getState(p),p!=a&&null!= +u&&(v&&b!=u.getCenterX()<h.getCenterX()||!v&&b!=u.getCenterY()<h.getCenterY()))){var A=[];q.traverse(u.cell,!0,function(a,b){null!=b&&A.push(b);A.push(a);return!0});q.moveCells(A,(b?1:-1)*d,(b?1:-1)*g)}}}return q.addCells(e,c)}finally{q.model.endUpdate()}}function f(a){q.model.beginUpdate();try{var b=l(a),c=q.getIncomingEdges(a),d=q.cloneCells([c[0],a]);q.model.setTerminal(c[0],d[1],!1);q.model.setTerminal(d[0],d[1],!0);q.model.setTerminal(d[0],a,!1);var e=q.model.getParent(a),f=e.geometry,g=[];q.view.currentRoot!= +e&&(d[1].geometry.x-=f.x,d[1].geometry.y-=f.y);q.traverse(a,!0,function(a,b){null!=b&&g.push(b);g.push(a);return!0});var h=a.geometry.width+40,k=a.geometry.height+40;b==mxConstants.DIRECTION_SOUTH?h=0:b==mxConstants.DIRECTION_NORTH?(h=0,k=-40):b==mxConstants.DIRECTION_WEST?(h=-40,k=0):b==mxConstants.DIRECTION_EAST&&(k=0);q.moveCells(g,h,k);return q.addCells(d,e)}finally{q.model.endUpdate()}}function h(a){q.model.beginUpdate();try{var b=q.model.getParent(a),c=q.getIncomingEdges(a),d=q.cloneCells([c[0], +a]);q.model.setTerminal(d[0],a,!0);var c=q.getOutgoingEdges(a),e=b.geometry,f=[];q.view.currentRoot==b&&(e=new mxRectangle);for(var g=0;g<c.length;g++){var h=q.model.getTerminal(c[g],!1);null!=h&&f.push(h)}var k=q.view.getBounds(f),m=l(a),n=q.view.translate,v=q.view.scale;m==mxConstants.DIRECTION_SOUTH?(d[1].geometry.x=null==k?a.geometry.x+(a.geometry.width-d[1].geometry.width)/2:(k.x+k.width)/v-n.x-e.x+10,d[1].geometry.y+=a.geometry.height-e.y+40):m==mxConstants.DIRECTION_NORTH?(d[1].geometry.x= +null==k?a.geometry.x+(a.geometry.width-d[1].geometry.width)/2:(k.x+k.width)/v-n.x+-e.x+10,d[1].geometry.y-=d[1].geometry.height-e.y+40):(d[1].geometry.x=m==mxConstants.DIRECTION_WEST?d[1].geometry.x-(d[1].geometry.width-e.x+40):d[1].geometry.x+(a.geometry.width-e.x+40),d[1].geometry.y=null==k?a.geometry.y+(a.geometry.height-d[1].geometry.height)/2:(k.y+k.height)/v-n.y+-e.y+10);return q.addCells(d,b)}finally{q.model.endUpdate()}}function n(a,b,c){a=q.getOutgoingEdges(a);c=q.view.getState(c);var d= +[];if(null!=c&&null!=a){for(var e=0;e<a.length;e++){var f=q.view.getState(q.model.getTerminal(a[e],!1));null!=f&&(!b&&Math.min(f.x+f.width,c.x+c.width)>=Math.max(f.x,c.x)||b&&Math.min(f.y+f.height,c.y+c.height)>=Math.max(f.y,c.y))&&d.push(f)}d.sort(function(a,c){return b?a.x+a.width-c.x-c.width:a.y+a.height-c.y-c.height})}return d}function u(a,b){var c=l(a),d=b==mxConstants.DIRECTION_EAST||b==mxConstants.DIRECTION_WEST;(c==mxConstants.DIRECTION_EAST||c==mxConstants.DIRECTION_WEST)==d&&c!=b?p.actions.get("selectParent").funct(): +c==b?(d=q.getOutgoingEdges(a),null!=d&&0<d.length&&q.setSelectionCell(q.model.getTerminal(d[0],!1))):(c=q.getIncomingEdges(a),null!=c&&0<c.length&&(d=n(q.model.getTerminal(c[0],!0),d,a),c=q.view.getState(a),null!=c&&(c=mxUtils.indexOf(d,c),0<=c&&(c+=b==mxConstants.DIRECTION_NORTH||b==mxConstants.DIRECTION_WEST?-1:1,0<=c&&c<=d.length-1&&q.setSelectionCell(d[c].cell)))))}var p=this,q=p.editor.graph,v=q.getModel();mxResources.parse("selectChildren=Select Children");mxResources.parse("selectSiblings=Select Siblings"); +mxResources.parse("selectDescendants=Select Descendants");mxResources.parse("selectParent=Select Parent");var y=p.menus.createPopupMenu;p.menus.createPopupMenu=function(a,c,d){y.apply(this,arguments);if(1==q.getSelectionCount()){c=q.getSelectionCell();var e=q.getOutgoingEdges(c);a.addSeparator();null!=e&&0<e.length&&(b(q.getSelectionCell())&&this.addMenuItems(a,["selectChildren"],null,d),this.addMenuItems(a,["selectDescendants"],null,d));b(q.getSelectionCell())&&(a.addSeparator(),0<q.getIncomingEdges(c).length&& +this.addMenuItems(a,["selectSiblings","selectParent"],null,d))}};p.actions.addAction("selectChildren",function(){if(q.isEnabled()&&1==q.getSelectionCount()){var a=q.getSelectionCell(),a=q.getOutgoingEdges(a);if(null!=a){for(var b=[],c=0;c<a.length;c++)b.push(q.model.getTerminal(a[c],!1));q.setSelectionCells(b)}}},null,null,"Alt+Shift+X");p.actions.addAction("selectSiblings",function(){if(q.isEnabled()&&1==q.getSelectionCount()){var a=q.getSelectionCell(),a=q.getIncomingEdges(a);if(null!=a&&0<a.length&& +(a=q.getOutgoingEdges(q.model.getTerminal(a[0],!0)),null!=a)){for(var b=[],c=0;c<a.length;c++)b.push(q.model.getTerminal(a[c],!1));q.setSelectionCells(b)}}},null,null,"Alt+Shift+S");p.actions.addAction("selectParent",function(){if(q.isEnabled()&&1==q.getSelectionCount()){var a=q.getSelectionCell(),a=q.getIncomingEdges(a);null!=a&&0<a.length&&q.setSelectionCell(q.model.getTerminal(a[0],!0))}},null,null,"Alt+Shift+P");p.actions.addAction("selectDescendants",function(){if(q.isEnabled()&&1==q.getSelectionCount()){var a= +q.getSelectionCell(),b=[];q.traverse(a,!0,function(a,c){null!=c&&b.push(c);b.push(a);return!0});q.setSelectionCells(b)}},null,null,"Alt+Shift+D");var B=q.removeCells;q.removeCells=function(a,d){d=null!=d?d:!0;null==a&&(a=this.getDeletableCells(this.getSelectionCells()));d&&(a=this.getDeletableCells(this.addAllEdges(a)));for(var e=[],f=0;f<a.length;f++){var g=a[f];v.isEdge(g)&&c(g)&&(e.push(g),g=v.getTerminal(g,!1));b(g)?(q.traverse(g,!0,function(a,b){null!=b&&e.push(b);e.push(a);return!0}),g=q.getIncomingEdges(a[f]), +a=a.concat(g)):e.push(a[f])}a=e;return B.apply(this,arguments)};p.hoverIcons.getStateAt=function(a,c,d){return b(a.cell)?null:this.graph.view.getState(this.graph.getCellAt(c,d))};var t=q.duplicateCells;q.duplicateCells=function(a,c){a=null!=a?a:this.getSelectionCells();for(var d=a.slice(0),e=0;e<d.length;e++){var f=q.view.getState(d[e]);if(null!=f&&b(f.cell))for(var g=q.getIncomingEdges(f.cell),f=0;f<g.length;f++)mxUtils.remove(g[f],a)}this.model.beginUpdate();try{var h=t.call(this,a,c);if(h.length== +a.length)for(e=0;e<a.length;e++)if(b(a[e])){var k=q.getIncomingEdges(h[e]),g=q.getIncomingEdges(a[e]);if(0==k.length&&0<g.length){var l=this.cloneCells([g[0]])[0];this.addEdge(l,q.getDefaultParent(),this.model.getTerminal(g[0],!0),h[e])}}}finally{this.model.endUpdate()}return h};var w=q.moveCells;q.moveCells=function(a,c,d,e,f,g,h){var k=null;this.model.beginUpdate();try{var l=f,m=this.view.getState(f),n=null!=m?m.style:this.getCellStyle(f);if(null!=a&&b(f)&&"1"==mxUtils.getValue(n,"treeFolding", +"0")){for(var v=0;v<a.length;v++)if(b(a[v])||q.model.isEdge(a[v])&&null==q.model.getTerminal(a[v],!0)){f=q.model.getParent(a[v]);break}if(null!=l&&f!=l&&null!=this.view.getState(a[0])){var t=q.getIncomingEdges(a[0]);if(0<t.length){var p=q.view.getState(q.model.getTerminal(t[0],!0));if(null!=p){var u=q.view.getState(l);null!=u&&(c=(u.getCenterX()-p.getCenterX())/q.view.scale,d=(u.getCenterY()-p.getCenterY())/q.view.scale)}}}}k=w.apply(this,arguments);if(null!=k&&null!=a&&k.length==a.length)for(v=0;v< +k.length;v++)if(this.model.isEdge(k[v]))b(l)&&0>mxUtils.indexOf(k,this.model.getTerminal(k[v],!0))&&this.model.setTerminal(k[v],l,!0);else if(b(a[v])&&(t=q.getIncomingEdges(a[v]),0<t.length))if(!e)b(l)&&0>mxUtils.indexOf(a,this.model.getTerminal(t[0],!0))&&this.model.setTerminal(t[0],l,!0);else if(0==q.getIncomingEdges(k[v]).length){m=l;if(null==m||m==q.model.getParent(a[v]))m=q.model.getTerminal(t[0],!0);e=this.cloneCells([t[0]])[0];this.addEdge(e,q.getDefaultParent(),m,k[v])}}finally{this.model.endUpdate()}return k}; +if(null!=p.sidebar){var x=p.sidebar.dropAndConnect;p.sidebar.dropAndConnect=function(a,c,d,e){var f=q.model,g=null;f.beginUpdate();try{if(g=x.apply(this,arguments),b(a))for(var h=0;h<g.length;h++)if(f.isEdge(g[h])&&null==f.getTerminal(g[h],!0)){f.setTerminal(g[h],a,!0);var k=q.getCellGeometry(g[h]);k.points=null;null!=k.getTerminalPoint(!0)&&k.setTerminalPoint(null,!0)}}finally{f.endUpdate()}return g}}var C={88:p.actions.get("selectChildren"),84:p.actions.get("selectSubtree"),80:p.actions.get("selectParent"), +83:p.actions.get("selectSiblings")},z=p.onKeyDown;p.onKeyDown=function(a){try{if(q.isEnabled()&&!q.isEditing()&&b(q.getSelectionCell())&&1==q.getSelectionCount()){var c=null;0<q.getIncomingEdges(q.getSelectionCell()).length&&(9==a.which?c=mxEvent.isShiftDown(a)?f(q.getSelectionCell()):h(q.getSelectionCell()):13==a.which&&(c=m(q.getSelectionCell(),!mxEvent.isShiftDown(a))));if(null!=c&&0<c.length)1==c.length&&q.model.isEdge(c[0])?q.setSelectionCell(q.model.getTerminal(c[0],!1)):q.setSelectionCell(c[c.length- +1]),null!=p.hoverIcons&&p.hoverIcons.update(q.view.getState(q.getSelectionCell())),q.startEditingAtCell(q.getSelectionCell()),mxEvent.consume(a);else if(mxEvent.isAltDown(a)&&mxEvent.isShiftDown(a)){var d=C[a.keyCode];null!=d&&(d.funct(a),mxEvent.consume(a))}else 37==a.keyCode?(u(q.getSelectionCell(),mxConstants.DIRECTION_WEST),mxEvent.consume(a)):38==a.keyCode?(u(q.getSelectionCell(),mxConstants.DIRECTION_NORTH),mxEvent.consume(a)):39==a.keyCode?(u(q.getSelectionCell(),mxConstants.DIRECTION_EAST), +mxEvent.consume(a)):40==a.keyCode&&(u(q.getSelectionCell(),mxConstants.DIRECTION_SOUTH),mxEvent.consume(a))}}catch(M){console.log("error",M)}mxEvent.isConsumed(a)||z.apply(this,arguments)};var F=q.connectVertex;q.connectVertex=function(a,c,d,e,g,k){var n=q.getIncomingEdges(a);return b(a)&&0<n.length?(d=l(a),e=d==mxConstants.DIRECTION_EAST||d==mxConstants.DIRECTION_WEST,g=c==mxConstants.DIRECTION_EAST||c==mxConstants.DIRECTION_WEST,d==c?h(a):e==g?f(a):m(a,c!=mxConstants.DIRECTION_NORTH&&c!=mxConstants.DIRECTION_WEST)): +F.call(this,a,c,d,e,g,k)};q.getSubtree=function(a){var c=[a];b(a)&&!d(a)&&q.traverse(a,!0,function(a,b){null!=b&&0>mxUtils.indexOf(c,b)&&c.push(b);0>mxUtils.indexOf(c,a)&&c.push(a);return!0});return c};var E=mxVertexHandler.prototype.init;mxVertexHandler.prototype.init=function(){E.apply(this,arguments);b(this.state.cell)&&0<this.graph.getOutgoingEdges(this.state.cell).length&&(this.moveHandle=mxUtils.createImage(a),this.moveHandle.setAttribute("title","Move Subtree"),this.moveHandle.style.position= "absolute",this.moveHandle.style.cursor="pointer",this.moveHandle.style.width="18px",this.moveHandle.style.height="18px",this.graph.container.appendChild(this.moveHandle),mxEvent.addGestureListeners(this.moveHandle,mxUtils.bind(this,function(a){this.graph.graphHandler.start(this.state.cell,mxEvent.getClientX(a),mxEvent.getClientY(a));this.graph.graphHandler.cells=this.graph.getSubtree(this.state.cell);this.graph.graphHandler.bounds=this.state.view.getBounds(this.graph.graphHandler.cells);this.graph.graphHandler.pBounds= this.graph.graphHandler.getPreviewBounds(this.graph.graphHandler.cells);this.graph.graphHandler.cellWasClicked=!0;this.graph.isMouseTrigger=mxEvent.isMouseEvent(a);this.graph.isMouseDown=!0;mxEvent.consume(a)})))};var G=mxVertexHandler.prototype.redrawHandles;mxVertexHandler.prototype.redrawHandles=function(){G.apply(this,arguments);null!=this.moveHandle&&(this.moveHandle.style.left=this.state.x+this.state.width+(40>this.state.width?10:0)+2+"px",this.moveHandle.style.top=this.state.y+this.state.height+ (40>this.state.height?10:0)+2+"px")};var I=mxVertexHandler.prototype.destroy;mxVertexHandler.prototype.destroy=function(a,b){I.apply(this,arguments);null!=this.moveHandle&&(this.moveHandle.parentNode.removeChild(this.moveHandle),this.moveHandle=null)}};if("undefined"!==typeof Sidebar){var d=Sidebar.prototype.createAdvancedShapes;Sidebar.prototype.createAdvancedShapes=function(){var a=d.apply(this,arguments),b=this.editorUi.editor.graph;return a.concat([this.addEntry("tree container",function(){var a= new mxCell("Tree Container",new mxGeometry(0,0,220,160),"swimlane;html=1;startSize=20;horizontal=1;containerType=tree;");a.vertex=!0;return sb.createVertexTemplateFromCells([a],a.geometry.width,a.geometry.height,a.value)}),this.addEntry("tree mindmap central idea branch topic",function(){var a=new mxCell("Mindmap",new mxGeometry(0,0,420,126),"swimlane;html=1;startSize=20;horizontal=1;containerType=tree;");a.vertex=!0;var b=new mxCell("Central Idea",new mxGeometry(160,60,100,40),"ellipse;whiteSpace=wrap;html=1;align=center;container=1;recursiveResize=0;treeFolding=1;"); b.vertex=!0;var c=new mxCell("Topic",new mxGeometry(320,40,80,20),"whiteSpace=wrap;html=1;rounded=1;arcSize=50;align=center;verticalAlign=middle;container=1;recursiveResize=0;strokeWidth=1;autosize=1;spacing=4;treeFolding=1;");c.vertex=!0;var d=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=entityRelationEdgeStyle;startArrow=none;endArrow=none;segment=10;curved=1;");d.geometry.relative=!0;d.edge=!0;b.insertEdge(d,!0);c.insertEdge(d,!1);var e=new mxCell("Branch",new mxGeometry(320,80,72,26),"whiteSpace=wrap;html=1;shape=partialRectangle;top=0;left=0;bottom=1;right=0;points=[[0,1],[1,1]];strokeColor=#000000;fillColor=none;align=center;verticalAlign=bottom;routingCenterY=0.5;snapToPoint=1;container=1;recursiveResize=0;autosize=1;treeFolding=1;"); -e.vertex=!0;var g=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=entityRelationEdgeStyle;startArrow=none;endArrow=none;segment=10;curved=1;");g.geometry.relative=!0;g.edge=!0;b.insertEdge(g,!0);e.insertEdge(g,!1);var q=new mxCell("Topic",new mxGeometry(20,40,80,20),"whiteSpace=wrap;html=1;rounded=1;arcSize=50;align=center;verticalAlign=middle;container=1;recursiveResize=0;strokeWidth=1;autosize=1;spacing=4;treeFolding=1;");q.vertex=!0;var u=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=entityRelationEdgeStyle;startArrow=none;endArrow=none;segment=10;curved=1;"); -u.geometry.relative=!0;u.edge=!0;b.insertEdge(u,!0);q.insertEdge(u,!1);var p=new mxCell("Branch",new mxGeometry(20,80,72,26),"whiteSpace=wrap;html=1;shape=partialRectangle;top=0;left=0;bottom=1;right=0;points=[[0,1],[1,1]];strokeColor=#000000;fillColor=none;align=center;verticalAlign=bottom;routingCenterY=0.5;snapToPoint=1;container=1;recursiveResize=0;autosize=1;treeFolding=1;");p.vertex=!0;var v=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=entityRelationEdgeStyle;startArrow=none;endArrow=none;segment=10;curved=1;"); -v.geometry.relative=!0;v.edge=!0;b.insertEdge(v,!0);p.insertEdge(v,!1);a.insert(d);a.insert(g);a.insert(u);a.insert(v);a.insert(b);a.insert(c);a.insert(e);a.insert(q);a.insert(p);return sb.createVertexTemplateFromCells([a],a.geometry.width,a.geometry.height,a.value)}),this.addEntry("tree mindmap central idea",function(){var a=new mxCell("Central Idea",new mxGeometry(0,0,100,40),"ellipse;whiteSpace=wrap;html=1;align=center;container=1;recursiveResize=0;treeFolding=1;");a.vertex=!0;return sb.createVertexTemplateFromCells([a], +e.vertex=!0;var g=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=entityRelationEdgeStyle;startArrow=none;endArrow=none;segment=10;curved=1;");g.geometry.relative=!0;g.edge=!0;b.insertEdge(g,!0);e.insertEdge(g,!1);var u=new mxCell("Topic",new mxGeometry(20,40,80,20),"whiteSpace=wrap;html=1;rounded=1;arcSize=50;align=center;verticalAlign=middle;container=1;recursiveResize=0;strokeWidth=1;autosize=1;spacing=4;treeFolding=1;");u.vertex=!0;var p=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=entityRelationEdgeStyle;startArrow=none;endArrow=none;segment=10;curved=1;"); +p.geometry.relative=!0;p.edge=!0;b.insertEdge(p,!0);u.insertEdge(p,!1);var q=new mxCell("Branch",new mxGeometry(20,80,72,26),"whiteSpace=wrap;html=1;shape=partialRectangle;top=0;left=0;bottom=1;right=0;points=[[0,1],[1,1]];strokeColor=#000000;fillColor=none;align=center;verticalAlign=bottom;routingCenterY=0.5;snapToPoint=1;container=1;recursiveResize=0;autosize=1;treeFolding=1;");q.vertex=!0;var v=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=entityRelationEdgeStyle;startArrow=none;endArrow=none;segment=10;curved=1;"); +v.geometry.relative=!0;v.edge=!0;b.insertEdge(v,!0);q.insertEdge(v,!1);a.insert(d);a.insert(g);a.insert(p);a.insert(v);a.insert(b);a.insert(c);a.insert(e);a.insert(u);a.insert(q);return sb.createVertexTemplateFromCells([a],a.geometry.width,a.geometry.height,a.value)}),this.addEntry("tree mindmap central idea",function(){var a=new mxCell("Central Idea",new mxGeometry(0,0,100,40),"ellipse;whiteSpace=wrap;html=1;align=center;container=1;recursiveResize=0;treeFolding=1;");a.vertex=!0;return sb.createVertexTemplateFromCells([a], a.geometry.width,a.geometry.height,a.value)}),this.addEntry("tree mindmap branch",function(){var a=new mxCell("Branch",new mxGeometry(0,0,80,20),"whiteSpace=wrap;html=1;shape=partialRectangle;top=0;left=0;bottom=1;right=0;points=[[0,1],[1,1]];strokeColor=#000000;fillColor=none;align=center;verticalAlign=bottom;routingCenterY=0.5;snapToPoint=1;container=1;recursiveResize=0;autosize=1;treeFolding=1;");a.vertex=!0;var b=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=entityRelationEdgeStyle;startArrow=none;endArrow=none;segment=10;curved=1;"); b.geometry.setTerminalPoint(new mxPoint(-40,40),!0);b.geometry.relative=!0;b.edge=!0;a.insertEdge(b,!1);return sb.createVertexTemplateFromCells([a,b],a.geometry.width,a.geometry.height,a.value)}),this.addEntry("tree mindmap sub topic",function(){var a=new mxCell("Sub Topic",new mxGeometry(0,0,72,26),"whiteSpace=wrap;html=1;rounded=1;arcSize=50;align=center;verticalAlign=middle;container=1;recursiveResize=0;strokeWidth=1;autosize=1;spacing=4;treeFolding=1;");a.vertex=!0;var b=new mxCell("",new mxGeometry(0, 0,0,0),"edgeStyle=entityRelationEdgeStyle;startArrow=none;endArrow=none;segment=10;curved=1;");b.geometry.setTerminalPoint(new mxPoint(-40,40),!0);b.geometry.relative=!0;b.edge=!0;a.insertEdge(b,!1);return sb.createVertexTemplateFromCells([a,b],a.geometry.width,a.geometry.height,a.value)}),this.addEntry("tree orgchart organization division",function(){var a=new mxCell("Orgchart",new mxGeometry(0,0,280,220),"swimlane;html=1;startSize=20;horizontal=1;containerType=tree;");a.vertex=!0;var c=new mxCell("Organization", new mxGeometry(80,40,120,60),"whiteSpace=wrap;html=1;align=center;treeFolding=1;container=1;recursiveResize=0;");b.setAttributeForCell(c,"treeRoot","1");c.vertex=!0;var d=new mxCell("Division",new mxGeometry(20,140,100,60),"whiteSpace=wrap;html=1;align=center;verticalAlign=middle;container=1;recursiveResize=0;treeFolding=1;");d.vertex=!0;var e=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=elbowEdgeStyle;elbow=vertical;startArrow=none;endArrow=none;rounded=0;");e.geometry.relative=!0;e.edge=!0; -c.insertEdge(e,!0);d.insertEdge(e,!1);var g=new mxCell("Division",new mxGeometry(160,140,100,60),"whiteSpace=wrap;html=1;align=center;verticalAlign=middle;container=1;recursiveResize=0;treeFolding=1;");g.vertex=!0;var k=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=elbowEdgeStyle;elbow=vertical;startArrow=none;endArrow=none;rounded=0;");k.geometry.relative=!0;k.edge=!0;c.insertEdge(k,!0);g.insertEdge(k,!1);a.insert(e);a.insert(k);a.insert(c);a.insert(d);a.insert(g);return sb.createVertexTemplateFromCells([a], +c.insertEdge(e,!0);d.insertEdge(e,!1);var g=new mxCell("Division",new mxGeometry(160,140,100,60),"whiteSpace=wrap;html=1;align=center;verticalAlign=middle;container=1;recursiveResize=0;treeFolding=1;");g.vertex=!0;var n=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=elbowEdgeStyle;elbow=vertical;startArrow=none;endArrow=none;rounded=0;");n.geometry.relative=!0;n.edge=!0;c.insertEdge(n,!0);g.insertEdge(n,!1);a.insert(e);a.insert(n);a.insert(c);a.insert(d);a.insert(g);return sb.createVertexTemplateFromCells([a], a.geometry.width,a.geometry.height,a.value)}),this.addEntry("tree root",function(){var a=new mxCell("Organization",new mxGeometry(0,0,120,60),"whiteSpace=wrap;html=1;align=center;treeFolding=1;container=1;recursiveResize=0;");b.setAttributeForCell(a,"treeRoot","1");a.vertex=!0;return sb.createVertexTemplateFromCells([a],a.geometry.width,a.geometry.height,a.value)}),this.addEntry("tree division",function(){var a=new mxCell("Division",new mxGeometry(20,40,100,60),"whiteSpace=wrap;html=1;align=center;verticalAlign=middle;container=1;recursiveResize=0;treeFolding=1;"); a.vertex=!0;var b=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=elbowEdgeStyle;elbow=vertical;startArrow=none;endArrow=none;rounded=0;");b.geometry.setTerminalPoint(new mxPoint(0,0),!0);b.geometry.relative=!0;b.edge=!0;a.insertEdge(b,!1);return sb.createVertexTemplateFromCells([a,b],a.geometry.width,a.geometry.height,a.value)}),this.addEntry("tree sub sections",function(){var a=new mxCell("Sub Section",new mxGeometry(0,0,100,60),"whiteSpace=wrap;html=1;align=center;verticalAlign=middle;container=1;recursiveResize=0;treeFolding=1;"); a.vertex=!0;var b=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=orthogonalEdgeStyle;startArrow=none;endArrow=none;rounded=0;targetPortConstraint=eastwest;sourcePortConstraint=northsouth;");b.geometry.setTerminalPoint(new mxPoint(110,-40),!0);b.geometry.relative=!0;b.edge=!0;a.insertEdge(b,!1);var c=new mxCell("Sub Section",new mxGeometry(120,0,100,60),"whiteSpace=wrap;html=1;align=center;verticalAlign=middle;container=1;recursiveResize=0;treeFolding=1;");c.vertex=!0;var d=new mxCell("",new mxGeometry(0, @@ -8590,8 +8626,8 @@ this.window.setLocation=function(a,b){var c=window.innerHeight||document.documen mxWindow.prototype.closeImage=Graph.createSvgImage(18,10,'<path d="M 5 1 L 13 9 M 13 1 L 5 9" stroke="#C0C0C0" stroke-width="2"/>').src;mxWindow.prototype.minimizeImage=Graph.createSvgImage(14,10,'<path d="M 3 7 L 7 3 L 11 7" stroke="#C0C0C0" stroke-width="2" fill="#ffffff"/>').src;mxWindow.prototype.normalizeImage=Graph.createSvgImage(14,10,'<path d="M 3 3 L 7 7 L 11 3" stroke="#C0C0C0" stroke-width="2" fill="#ffffff"/>').src;mxConstraintHandler.prototype.pointImage=Graph.createSvgImage(5,5,'<path d="m 0 0 L 5 5 M 0 5 L 5 0" stroke="#29b6f2"/>'); mxOutline.prototype.sizerImage=null;mxConstants.VERTEX_SELECTION_COLOR="#C0C0C0";mxConstants.EDGE_SELECTION_COLOR="#C0C0C0";mxConstants.CONNECT_HANDLE_FILLCOLOR="#cee7ff";mxConstants.DEFAULT_VALID_COLOR="#29b6f2";mxConstants.GUIDE_COLOR="#C0C0C0";mxConstants.HIGHLIGHT_STROKEWIDTH=5;mxConstants.HIGHLIGHT_OPACITY=35;mxConstants.OUTLINE_COLOR="#29b6f2";mxConstants.OUTLINE_HANDLE_FILLCOLOR="#29b6f2";mxConstants.OUTLINE_HANDLE_STROKECOLOR="#fff";Graph.prototype.svgShadowColor="#3D4574";Graph.prototype.svgShadowOpacity= "0.4";Graph.prototype.svgShadowSize="0.6";Graph.prototype.svgShadowBlur="1.2";Format.prototype.inactiveTabBackgroundColor="#f0f0f0";mxGraphHandler.prototype.previewColor="#C0C0C0";mxRubberband.prototype.defaultOpacity=50;HoverIcons.prototype.inactiveOpacity=25;Format.prototype.showCloseButton=!1;EditorUi.prototype.closableScratchpad=!1;EditorUi.prototype.toolbarHeight=46;EditorUi.prototype.footerHeight=0;Graph.prototype.editAfterInsert=!0;Editor.prototype.isChromelessView=function(){return!1};Graph.prototype.isLightboxView= -function(){return!1};var g=EditorUi.prototype.updateTabContainer;EditorUi.prototype.updateTabContainer=function(){null!=this.tabContainer&&(this.tabContainer.style.right="70px",this.diagramContainer.style.bottom="30px");g.apply(this,arguments)};var l=EditorUi.prototype.updateActionStates;EditorUi.prototype.updateActionStates=function(){l.apply(this,arguments);this.menus.get("save").setEnabled(null!=this.getCurrentFile()||"1"==urlParams.embed)};var m=Menus.prototype.addShortcut;Menus.prototype.addShortcut= -function(a,b){null!=b.shortcut&&900>c&&!mxClient.IS_IOS?a.firstChild.nextSibling.setAttribute("title",b.shortcut):m.apply(this,arguments)};var n=App.prototype.updateUserElement;App.prototype.updateUserElement=function(){n.apply(this,arguments);if(null!=this.userElement){var a=this.userElement;a.style.cssText="display:inline-block;position:relative;margin-right:4px;";a.className="";a.innerHTML="";a.style.backgroundImage="url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTIgMTJjMi4yMSAwIDQtMS43OSA0LTRzLTEuNzktNC00LTQtNCAxLjc5LTQgNCAxLjc5IDQgNCA0em0wIDJjLTIuNjcgMC04IDEuMzQtOCA0djJoMTZ2LTJjMC0yLjY2LTUuMzMtNC04LTR6Ii8+PC9zdmc+)"; +function(){return!1};var g=EditorUi.prototype.updateTabContainer;EditorUi.prototype.updateTabContainer=function(){null!=this.tabContainer&&(this.tabContainer.style.right="70px",this.diagramContainer.style.bottom="30px");g.apply(this,arguments)};var k=EditorUi.prototype.updateActionStates;EditorUi.prototype.updateActionStates=function(){k.apply(this,arguments);this.menus.get("save").setEnabled(null!=this.getCurrentFile()||"1"==urlParams.embed)};var l=Menus.prototype.addShortcut;Menus.prototype.addShortcut= +function(a,b){null!=b.shortcut&&900>c&&!mxClient.IS_IOS?a.firstChild.nextSibling.setAttribute("title",b.shortcut):l.apply(this,arguments)};var m=App.prototype.updateUserElement;App.prototype.updateUserElement=function(){m.apply(this,arguments);if(null!=this.userElement){var a=this.userElement;a.style.cssText="display:inline-block;position:relative;margin-right:4px;";a.className="";a.innerHTML="";a.style.backgroundImage="url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTIgMTJjMi4yMSAwIDQtMS43OSA0LTRzLTEuNzktNC00LTQtNCAxLjc5LTQgNCAxLjc5IDQgNCA0em0wIDJjLTIuNjcgMC04IDEuMzQtOCA0djJoMTZ2LTJjMC0yLjY2LTUuMzMtNC04LTR6Ii8+PC9zdmc+)"; a.style.backgroundPosition="center center";a.style.backgroundRepeat="no-repeat";a.style.backgroundSize="24px 24px";a.style.height="24px";a.style.width="24px";mxUtils.setOpacity(a,30);a.setAttribute("title",mxResources.get("changeUser"))}};var f=App.prototype.updateButtonContainer;App.prototype.updateButtonContainer=function(){f.apply(this,arguments);if(null!=this.shareButton){var a=this.shareButton;a.style.cssText="display:inline-block;position:relative;box-sizing:border-box;margin-right:4px;cursor:pointer;"; a.className="";a.innerHTML="";a.style.backgroundImage="url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTggMTYuMDhjLS43NiAwLTEuNDQuMy0xLjk2Ljc3TDguOTEgMTIuN2MuMDUtLjIzLjA5LS40Ni4wOS0uN3MtLjA0LS40Ny0uMDktLjdsNy4wNS00LjExYy41NC41IDEuMjUuODEgMi4wNC44MSAxLjY2IDAgMy0xLjM0IDMtM3MtMS4zNC0zLTMtMy0zIDEuMzQtMyAzYzAgLjI0LjA0LjQ3LjA5LjdMOC4wNCA5LjgxQzcuNSA5LjMxIDYuNzkgOSA2IDljLTEuNjYgMC0zIDEuMzQtMyAzczEuMzQgMyAzIDNjLjc5IDAgMS41LS4zMSAyLjA0LS44MWw3LjEyIDQuMTZjLS4wNS4yMS0uMDguNDMtLjA4LjY1IDAgMS42MSAxLjMxIDIuOTIgMi45MiAyLjkyIDEuNjEgMCAyLjkyLTEuMzEgMi45Mi0yLjkycy0xLjMxLTIuOTItMi45Mi0yLjkyeiIvPjwvc3ZnPg==)"; a.style.backgroundPosition="center center";a.style.backgroundRepeat="no-repeat";a.style.backgroundSize="24px 24px";a.style.height="24px";a.style.width="24px";mxUtils.setOpacity(a,30);a.setAttribute("title",mxResources.get("share"))}};EditorUi.prototype.addEmbedButtons=function(){if(null!=this.buttonContainer){var a=document.createElement("div");a.style.display="inline-block";a.style.position="relative";a.style.marginTop="2px";var b=document.createElement("button");mxUtils.write(b,mxResources.get("save")); @@ -8600,21 +8636,21 @@ mxResources.get("saveAndExit")),b.className="geMenuItem gePrimaryBtn",b.style.fo b.style.cursor="pointer";mxEvent.addListener(b,"click",mxUtils.bind(this,function(){this.actions.get("exit").funct()}));a.appendChild(b);this.buttonContainer.appendChild(a);this.buttonContainer.style.top="6px"}};Sidebar.prototype.getTooltipOffset=function(){var a=mxUtils.getOffset(this.editorUi.sidebarWindow.window.div);a.y+=40;return a};var h=Menus.prototype.createPopupMenu;Menus.prototype.createPopupMenu=function(a,b,c){var d=this.editorUi.editor.graph;a.smartSeparators=!0;h.apply(this,arguments); mxUtils.bind(this,function(a,b){var c=new FilenameDialog(this.editorUi,a,mxResources.get("apply"),function(a){b(parseFloat(a))},mxResources.get("spacing"));this.editorUi.showDialog(c.container,300,80,!0,!0);c.init()});1==d.getSelectionCount()?(this.addMenuItems(a,["editTooltip","-","editStyle","editGeometry","-"],null,c),d.isCellFoldable(d.getSelectionCell())&&this.addMenuItems(a,d.isCellCollapsed(b)?["expand"]:["collapse"],null,c),this.addMenuItems(a,["collapsible","-","lockUnlock","enterGroup"], null,c),a.addSeparator(),this.addSubmenu("layout",a)):d.isSelectionEmpty()&&d.isEnabled()?(a.addSeparator(),this.addMenuItems(a,["editData"],null,c),a.addSeparator(),this.addSubmenu("insert",a),this.addSubmenu("layout",a),a.addSeparator(),this.addSubmenu("view",a,null,mxResources.get("options")),this.addMenuItems(a,["-","exitGroup"],null,c)):d.isEnabled()&&this.addMenuItems(a,["-","lockUnlock"],null,c)};EditorUi.prototype.toggleFormatPanel=function(b){null!=this.formatWindow?this.formatWindow.window.setVisible(b? -!1:!this.formatWindow.window.isVisible()):a(this)};DiagramFormatPanel.prototype.isMathOptionVisible=function(){return!0};var k=EditorUi.prototype.destroy;EditorUi.prototype.destroy=function(){null!=this.sidebarWindow&&(this.sidebarWindow.window.setVisible(!1),this.sidebarWindow.window.destroy(),this.sidebarWindow=null);null!=this.formatWindow&&(this.formatWindow.window.setVisible(!1),this.formatWindow.window.destroy(),this.formatWindow=null);null!=this.actions.outlineWindow&&(this.actions.outlineWindow.window.setVisible(!1), +!1:!this.formatWindow.window.isVisible()):a(this)};DiagramFormatPanel.prototype.isMathOptionVisible=function(){return!0};var n=EditorUi.prototype.destroy;EditorUi.prototype.destroy=function(){null!=this.sidebarWindow&&(this.sidebarWindow.window.setVisible(!1),this.sidebarWindow.window.destroy(),this.sidebarWindow=null);null!=this.formatWindow&&(this.formatWindow.window.setVisible(!1),this.formatWindow.window.destroy(),this.formatWindow=null);null!=this.actions.outlineWindow&&(this.actions.outlineWindow.window.setVisible(!1), this.actions.outlineWindow.window.destroy(),this.actions.outlineWindow=null);null!=this.actions.layersWindow&&(this.actions.layersWindow.window.setVisible(!1),this.actions.layersWindow.window.destroy(),this.actions.layersWindow=null);null!=this.menus.tagsWindow&&(this.menus.tagsWindow.window.setVisible(!1),this.menus.tagsWindow.window.destroy(),this.menus.tagsWindow=null);null!=this.menus.findWindow&&(this.menus.findWindow.window.setVisible(!1),this.menus.findWindow.window.destroy(),this.menus.findWindow= -null);k.apply(this,arguments)};var q=EditorUi.prototype.setGraphEnabled;EditorUi.prototype.setGraphEnabled=function(a){q.apply(this,arguments);a||(null!=this.sidebarWindow&&this.sidebarWindow.window.setVisible(!1),null!=this.formatWindow&&this.formatWindow.window.setVisible(!1))};EditorUi.prototype.chromelessWindowResize=function(){};var u=Menus.prototype.init;Menus.prototype.init=function(){u.apply(this,arguments);var c=this.editorUi,d=c.editor.graph;c.actions.get("insertText").label=mxResources.get("text"); +null);n.apply(this,arguments)};var u=EditorUi.prototype.setGraphEnabled;EditorUi.prototype.setGraphEnabled=function(a){u.apply(this,arguments);a||(null!=this.sidebarWindow&&this.sidebarWindow.window.setVisible(!1),null!=this.formatWindow&&this.formatWindow.window.setVisible(!1))};EditorUi.prototype.chromelessWindowResize=function(){};var p=Menus.prototype.init;Menus.prototype.init=function(){p.apply(this,arguments);var c=this.editorUi,d=c.editor.graph;c.actions.get("insertText").label=mxResources.get("text"); c.actions.get("insertText").label=mxResources.get("text");c.actions.get("editDiagram").label=mxResources.get("formatXml")+"...";c.actions.get("insertRectangle").label=mxResources.get("rectangle");c.actions.get("insertEllipse").label=mxResources.get("ellipse");c.actions.get("insertRhombus").label=mxResources.get("rhombus");c.actions.get("insertImage").label=mxResources.get("image")+"...";c.actions.get("insertLink").label=mxResources.get("link")+"...";c.actions.get("createShape").label=mxResources.get("shape")+ "...";c.actions.get("outline").label=mxResources.get("outline")+"...";c.actions.get("layers").label=mxResources.get("layers")+"...";c.actions.put("importFile",new Action("File...",function(){d.popupMenuHandler.hideMenu();var a=document.createElement("input");a.setAttribute("type","file");mxEvent.addListener(a,"change",function(){null!=a.files&&c.importFiles(a.files,null,null,c.maxImageSize)});a.click()}));c.actions.put("importCsv",new Action(mxResources.get("csv")+"...",function(){d.popupMenuHandler.hideMenu(); c.showImportCsvDialog()}));c.actions.put("importText",new Action(mxResources.get("text")+"...",function(){var a=new ParseDialog(c,"Insert from Text");c.showDialog(a.container,620,420,!0,!1);a.init()}));c.actions.put("formatSql",new Action(mxResources.get("formatSql")+"...",function(){var a=new ParseDialog(c,"Insert from Text","formatSql");c.showDialog(a.container,620,420,!0,!1);a.init()}));c.actions.put("toggleShapes",new Action(mxResources.get("shapes")+"...",function(){b(c)}));c.actions.put("toggleFormat", -new Action(mxResources.get("format")+"...",function(){a(c)}));EditorUi.enablePlantUml&&!c.isOffline()&&c.actions.put("plantUml",new Action(mxResources.get("plantUml")+"...",function(){var a=new ParseDialog(c,"Insert from Text","plantUml");c.showDialog(a.container,620,420,!0,!1);a.init()}));this.put("diagram",new Menu(mxUtils.bind(this,function(a,b){c.menus.addSubmenu("extras",a,b,mxResources.get("preferences"));a.addSeparator(b);mxClient.IS_CHROMEAPP||EditorUi.isElectronApp?c.menus.addMenuItems(a, -"new open - save saveAs -".split(" "),b):"1"==urlParams.embed?(c.menus.addMenuItems(a,["-","save"],b),"1"==urlParams.saveAndExit&&c.menus.addMenuItems(a,["saveAndExit"],b),a.addSeparator(b)):(c.menus.addMenuItems(a,["new"],b),c.menus.addSubmenu("openFrom",a,b),a.addSeparator(b),c.menus.addSubmenu("save",a,b));c.menus.addSubmenu("exportAs",a,b);var d=c.getCurrentFile();null!=d&&d.constructor==DriveFile&&(c.menus.addMenuItems(a,["-","share"],b),null!=d.realtime&&c.menus.addMenuItems(a,["chatWindowTitle"], -b),a.addSeparator(b));c.menus.addMenuItems(a,"- outline layers - find tags".split(" "),b);mxClient.IS_IOS&&navigator.standalone||c.menus.addMenuItems(a,["-","print","-"],b);c.menus.addSubmenu("help",a,b);"1"==urlParams.embed?c.menus.addMenuItems(a,["-","exit"],b):c.menus.addMenuItems(a,["-","close"])})));if(isLocalStorage){var e=this.get("openFrom"),f=e.funct;e.funct=function(a,b){f.apply(this,arguments);a.addSeparator(b);c.menus.addSubmenu("openRecent",a,b)}}this.put("save",new Menu(mxUtils.bind(this, -function(a,b){var d=c.getCurrentFile();null!=d&&d.constructor==DriveFile?c.menus.addMenuItems(a,["createRevision","makeCopy","-","rename","moveToFolder"],b):(c.menus.addMenuItems(a,["save","saveAs","-","rename"],b),c.isOfflineApp()?navigator.onLine&&"1"!=urlParams.stealth&&this.addMenuItems(a,["upload"],b):c.menus.addMenuItems(a,["makeCopy"],b));null==d||d.constructor!=DriveFile&&d.constructor!=DropboxFile||c.menus.addMenuItems(a,["-","revisionHistory"],b);c.menus.addMenuItems(a,["-","autosave"], -b)})));var g=this.get("exportAs");this.put("exportAs",new Menu(mxUtils.bind(this,function(a,b){g.funct(a,b);mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||c.menus.addMenuItems(a,["publishLink"],b);a.addSeparator(b);c.menus.addSubmenu("embed",a,b)})));var h=this.get("language");this.put("extras",new Menu(mxUtils.bind(this,function(a,b){"1"!=urlParams.embed&&c.menus.addSubmenu("theme",a,b);null!=h&&c.menus.addSubmenu("language",a,b);a.addSeparator(b);c.menus.addMenuItems(a,["scrollbars","tooltips"], -b);"1"!=urlParams.embed&&(isLocalStorage||mxClient.IS_CHROMEAPP)&&c.menus.addMenuItems(a,["-","search","scratchpad","-","showStartScreen"],b);!c.isOfflineApp()&&isLocalStorage&&(a.addSeparator(b),c.menus.addMenuItem(a,"plugins",b))})));this.put("insertAdvanced",new Menu(mxUtils.bind(this,function(a,b){c.menus.addMenuItems(a,"importText plantUml - formatSql importCsv - createShape editDiagram".split(" "),b)})));mxResources.parse("insertLayout="+mxResources.get("layout"));mxResources.parse("insertAdvanced="+ -mxResources.get("advanced"));this.put("insert",new Menu(mxUtils.bind(this,function(a,b){c.menus.addMenuItems(a,"insertRectangle insertEllipse insertRhombus - insertText insertLink - insertImage".split(" "),b);mxClient.IS_CHROMEAPP||EditorUi.isElectronApp?c.menus.addMenuItems(a,["import"],b):c.menus.addSubmenu("importFrom",a,b);a.addSeparator(b);c.menus.addSubmenu("insertLayout",a,b);c.menus.addSubmenu("insertAdvanced",a,b)})));var k="horizontalFlow verticalFlow - horizontalTree verticalTree radialTree - organic circle".split(" "), +new Action(mxResources.get("format")+"...",function(){a(c)}));EditorUi.enablePlantUml&&!c.isOffline()&&c.actions.put("plantUml",new Action(mxResources.get("plantUml")+"...",function(){var a=new ParseDialog(c,"Insert from Text","plantUml");c.showDialog(a.container,620,420,!0,!1);a.init()}));this.put("diagram",new Menu(mxUtils.bind(this,function(a,b){var d=c.getCurrentFile();c.menus.addSubmenu("extras",a,b,mxResources.get("preferences"));a.addSeparator(b);mxClient.IS_CHROMEAPP||EditorUi.isElectronApp? +c.menus.addMenuItems(a,"new open - save saveAs -".split(" "),b):"1"==urlParams.embed?(c.menus.addMenuItems(a,["-","save"],b),"1"==urlParams.saveAndExit&&c.menus.addMenuItems(a,["saveAndExit"],b),a.addSeparator(b)):(c.menus.addMenuItems(a,["new"],b),c.menus.addSubmenu("openFrom",a,b),a.addSeparator(b),c.menus.addSubmenu("save",a,b));c.menus.addSubmenu("exportAs",a,b);null!=d&&d.constructor==DriveFile&&(c.menus.addMenuItems(a,["-","share"],b),null!=d.realtime?c.menus.addMenuItems(a,["chatWindowTitle"], +b):c.menus.addMenuItems(a,["-","refresh"],b),a.addSeparator(b));c.menus.addMenuItems(a,"- outline layers - find tags".split(" "),b);mxClient.IS_IOS&&navigator.standalone||c.menus.addMenuItems(a,["-","print","-"],b);c.menus.addSubmenu("help",a,b);"1"==urlParams.embed?c.menus.addMenuItems(a,["-","exit"],b):c.menus.addMenuItems(a,["-","close"])})));if(isLocalStorage){var e=this.get("openFrom"),f=e.funct;e.funct=function(a,b){f.apply(this,arguments);a.addSeparator(b);c.menus.addSubmenu("openRecent",a, +b)}}this.put("save",new Menu(mxUtils.bind(this,function(a,b){var d=c.getCurrentFile();null!=d&&d.constructor==DriveFile?c.menus.addMenuItems(a,["createRevision","makeCopy","-","rename","moveToFolder"],b):(c.menus.addMenuItems(a,["save","saveAs","-","rename"],b),c.isOfflineApp()?navigator.onLine&&"1"!=urlParams.stealth&&this.addMenuItems(a,["upload"],b):c.menus.addMenuItems(a,["makeCopy"],b));null==d||d.constructor!=DriveFile&&d.constructor!=DropboxFile||c.menus.addMenuItems(a,["-","revisionHistory"], +b);c.menus.addMenuItems(a,["-","autosave"],b)})));var g=this.get("exportAs");this.put("exportAs",new Menu(mxUtils.bind(this,function(a,b){g.funct(a,b);mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||c.menus.addMenuItems(a,["publishLink"],b);a.addSeparator(b);c.menus.addSubmenu("embed",a,b)})));var h=this.get("language");this.put("extras",new Menu(mxUtils.bind(this,function(a,b){"1"!=urlParams.embed&&c.menus.addSubmenu("theme",a,b);null!=h&&c.menus.addSubmenu("language",a,b);a.addSeparator(b);c.menus.addMenuItems(a, +["scrollbars","tooltips"],b);"1"!=urlParams.embed&&(isLocalStorage||mxClient.IS_CHROMEAPP)&&c.menus.addMenuItems(a,["-","search","scratchpad","-","showStartScreen"],b);!c.isOfflineApp()&&isLocalStorage&&(a.addSeparator(b),c.menus.addMenuItem(a,"plugins",b))})));this.put("insertAdvanced",new Menu(mxUtils.bind(this,function(a,b){c.menus.addMenuItems(a,"importText plantUml - formatSql importCsv - createShape editDiagram".split(" "),b)})));mxResources.parse("insertLayout="+mxResources.get("layout")); +mxResources.parse("insertAdvanced="+mxResources.get("advanced"));this.put("insert",new Menu(mxUtils.bind(this,function(a,b){c.menus.addMenuItems(a,"insertRectangle insertEllipse insertRhombus - insertText insertLink - insertImage".split(" "),b);mxClient.IS_CHROMEAPP||EditorUi.isElectronApp?c.menus.addMenuItems(a,["import"],b):c.menus.addSubmenu("importFrom",a,b);a.addSeparator(b);c.menus.addSubmenu("insertLayout",a,b);c.menus.addSubmenu("insertAdvanced",a,b)})));var k="horizontalFlow verticalFlow - horizontalTree verticalTree radialTree - organic circle".split(" "), l=function(a,b,d,e){a.addItem(d,null,mxUtils.bind(this,function(){var a=new CreateGraphDialog(c,d,e);c.showDialog(a.container,620,420,!0,!1);a.init()}),b)};this.put("insertLayout",new Menu(mxUtils.bind(this,function(a,b){for(var c=0;c<k.length;c++)"-"==k[c]?a.addSeparator(b):l(a,b,mxResources.get(k[c])+"...",k[c])})));this.put("view",new Menu(mxUtils.bind(this,function(a,b){c.menus.addMenuItems(a,"grid guides - connectionArrows connectionPoints -".split(" "),b);if("undefined"!==typeof MathJax){var d= -c.menus.addMenuItem(a,"mathematicalTypesetting",b);c.menus.addLinkToItem(d,"https://desk.draw.io/support/solutions/articles/16000032875")}c.menus.addMenuItems(a,["copyConnect","collapseExpand","-","pageScale"],b)})))};var p=EditorUi.prototype.init;EditorUi.prototype.init=function(){function a(a,b,c,d){var e=g.menus.get(a),f=m.addMenu(mxResources.get(a),mxUtils.bind(this,function(){e.funct.apply(this,arguments)}),l);f.className="geMenuItem";f.style.display="inline-block";f.style.boxSizing="border-box"; +c.menus.addMenuItem(a,"mathematicalTypesetting",b);c.menus.addLinkToItem(d,"https://desk.draw.io/support/solutions/articles/16000032875")}c.menus.addMenuItems(a,["copyConnect","collapseExpand","-","pageScale"],b)})))};var q=EditorUi.prototype.init;EditorUi.prototype.init=function(){function a(a,b,c,d){var e=g.menus.get(a),f=m.addMenu(mxResources.get(a),mxUtils.bind(this,function(){e.funct.apply(this,arguments)}),l);f.className="geMenuItem";f.style.display="inline-block";f.style.boxSizing="border-box"; f.style.top="6px";f.style.marginRight="6px";f.style.height="30px";f.style.paddingTop="6px";f.style.paddingBottom="6px";f.setAttribute("title",mxResources.get(a));g.menus.menuCreated(e,f,"geMenuItem");null!=c?(f.style.backgroundImage="url("+c+")",f.style.backgroundPosition="center center",f.style.backgroundRepeat="no-repeat",f.style.backgroundSize="24px 24px",f.style.width="34px",f.innerHTML="",mxUtils.setOpacity(f,d||40)):b||(f.style.backgroundImage="url("+mxWindow.prototype.normalizeImage+")",f.style.backgroundPosition= "right 6px center",f.style.backgroundRepeat="no-repeat",f.style.paddingRight="22px");return f}function b(a,b,c,d,e,f){var h=document.createElement("a");h.setAttribute("href","javascript:void(0)");h.className="geMenuItem";h.style.display="inline-block";h.style.boxSizing="border-box";h.style.height="30px";h.style.padding="6px";h.style.position="relative";h.style.verticalAlign="top";h.style.top="0px";null!=g.statusContainer?k.insertBefore(h,g.statusContainer):k.appendChild(h);null!=f?(h.style.backgroundImage= "url("+f+")",h.style.backgroundPosition="center center",h.style.backgroundRepeat="no-repeat",h.style.backgroundSize="24px 24px",h.style.width="34px"):mxUtils.write(h,a);mxEvent.addListener(h,"click",function(a){"disabled"!=h.getAttribute("disabled")&&b(a);mxEvent.consume(a)});null==c&&(h.style.marginRight="4px");null!=d&&h.setAttribute("title",d);mxUtils.setOpacity(h,null!=f?40:100);null!=e&&(a=function(){e.isEnabled()?(h.removeAttribute("disabled"),mxUtils.setOpacity(h,null!=f?40:100),h.style.cursor= @@ -8629,13 +8665,13 @@ d([b("",function(){h.popupMenuHandler.hideMenu();var a=h.view.scale,b=h.view.tra 640<=c?b("",e.funct,!0,mxResources.get("zoomIn")+" ("+Editor.ctrlKey+" +)",e,"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTUuNSAxNGgtLjc5bC0uMjgtLjI3QzE1LjQxIDEyLjU5IDE2IDExLjExIDE2IDkuNSAxNiA1LjkxIDEzLjA5IDMgOS41IDNTMyA1LjkxIDMgOS41IDUuOTEgMTYgOS41IDE2YzEuNjEgMCAzLjA5LS41OSA0LjIzLTEuNTdsLjI3LjI4di43OWw1IDQuOTlMMjAuNDkgMTlsLTQuOTktNXptLTYgMEM3LjAxIDE0IDUgMTEuOTkgNSA5LjVTNy4wMSA1IDkuNSA1IDE0IDcuMDEgMTQgOS41IDExLjk5IDE0IDkuNSAxNHptMi41LTRoLTJ2Mkg5di0ySDdWOWgyVjdoMXYyaDJ2MXoiLz48L3N2Zz4="): null,640<=c?b("",f.funct,!0,mxResources.get("zoomOut")+" ("+Editor.ctrlKey+" -)",f,"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTUuNSAxNGgtLjc5bC0uMjgtLjI3QzE1LjQxIDEyLjU5IDE2IDExLjExIDE2IDkuNSAxNiA1LjkxIDEzLjA5IDMgOS41IDNTMyA1LjkxIDMgOS41IDUuOTEgMTYgOS41IDE2YzEuNjEgMCAzLjA5LS41OSA0LjIzLTEuNTdsLjI3LjI4di43OWw1IDQuOTlMMjAuNDkgMTlsLTQuOTktNXptLTYgMEM3LjAxIDE0IDUgMTEuOTkgNSA5LjVTNy4wMSA1IDkuNSA1IDE0IDcuMDEgMTQgOS41IDExLjk5IDE0IDkuNSAxNHpNNyA5aDV2MUg3eiIvPjwvc3ZnPg=="): null])}e=g.menus.get("language");null!=e&&!mxClient.IS_CHROMEAPP&&!EditorUi.isElectronApp&&540<=c?(f=m.addMenu("",e.funct),f.setAttribute("title",mxResources.get("language")),f.style.backgroundImage="url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTEuOTkgMkM2LjQ3IDIgMiA2LjQ4IDIgMTJzNC40NyAxMCA5Ljk5IDEwQzE3LjUyIDIyIDIyIDE3LjUyIDIyIDEyUzE3LjUyIDIgMTEuOTkgMnptNi45MyA2aC0yLjk1Yy0uMzItMS4yNS0uNzgtMi40NS0xLjM4LTMuNTYgMS44NC42MyAzLjM3IDEuOTEgNC4zMyAzLjU2ek0xMiA0LjA0Yy44MyAxLjIgMS40OCAyLjUzIDEuOTEgMy45NmgtMy44MmMuNDMtMS40MyAxLjA4LTIuNzYgMS45MS0zLjk2ek00LjI2IDE0QzQuMSAxMy4zNiA0IDEyLjY5IDQgMTJzLjEtMS4zNi4yNi0yaDMuMzhjLS4wOC42Ni0uMTQgMS4zMi0uMTQgMiAwIC42OC4wNiAxLjM0LjE0IDJINC4yNnptLjgyIDJoMi45NWMuMzIgMS4yNS43OCAyLjQ1IDEuMzggMy41Ni0xLjg0LS42My0zLjM3LTEuOS00LjMzLTMuNTZ6bTIuOTUtOEg1LjA4Yy45Ni0xLjY2IDIuNDktMi45MyA0LjMzLTMuNTZDOC44MSA1LjU1IDguMzUgNi43NSA4LjAzIDh6TTEyIDE5Ljk2Yy0uODMtMS4yLTEuNDgtMi41My0xLjkxLTMuOTZoMy44MmMtLjQzIDEuNDMtMS4wOCAyLjc2LTEuOTEgMy45NnpNMTQuMzQgMTRIOS42NmMtLjA5LS42Ni0uMTYtMS4zMi0uMTYtMiAwLS42OC4wNy0xLjM1LjE2LTJoNC42OGMuMDkuNjUuMTYgMS4zMi4xNiAyIDAgLjY4LS4wNyAxLjM0LS4xNiAyem0uMjUgNS41NmMuNi0xLjExIDEuMDYtMi4zMSAxLjM4LTMuNTZoMi45NWMtLjk2IDEuNjUtMi40OSAyLjkzLTQuMzMgMy41NnpNMTYuMzYgMTRjLjA4LS42Ni4xNC0xLjMyLjE0LTIgMC0uNjgtLjA2LTEuMzQtLjE0LTJoMy4zOGMuMTYuNjQuMjYgMS4zMS4yNiAycy0uMSAxLjM2LS4yNiAyaC0zLjM4eiIvPjwvc3ZnPg==)", -f.style.backgroundPosition="center center",f.style.backgroundRepeat="no-repeat",f.style.backgroundSize="24px 24px",f.style.position="absolute",f.style.height="24px",f.style.width="24px",f.style.zIndex="1",f.style.top="11px",f.style.right="14px",mxUtils.setOpacity(f,30),k.appendChild(f),g.buttonContainer.style.right="40px"):g.buttonContainer.style.right="14px"}p.apply(this,arguments);var f=document.createElement("div");f.style.cssText="position:absolute;left:0px;right:0px;top:0px;overflow-y:auto;overflow-x:hidden;"; +f.style.backgroundPosition="center center",f.style.backgroundRepeat="no-repeat",f.style.backgroundSize="24px 24px",f.style.position="absolute",f.style.height="24px",f.style.width="24px",f.style.zIndex="1",f.style.top="11px",f.style.right="14px",mxUtils.setOpacity(f,30),k.appendChild(f),g.buttonContainer.style.right="40px"):g.buttonContainer.style.right="14px"}q.apply(this,arguments);var f=document.createElement("div");f.style.cssText="position:absolute;left:0px;right:0px;top:0px;overflow-y:auto;overflow-x:hidden;"; f.style.bottom="1"!=urlParams.embed||"1"==urlParams.libraries?"63px":"32px";this.sidebar=this.createSidebar(f);var g=this,h=g.editor.graph;g.toolbar=this.createToolbar(g.createDiv("geToolbar"));g.defaultLibraryName=mxResources.get("untitledLibrary");var k=document.createElement("div");k.style.cssText="position:absolute;left:0px;right:0px;top:0px;height:30px;padding:8px;border-bottom:1px solid lightgray;background-color:#ffffff;text-align:left;white-space:nowrap;";var l=null,m=new Menubar(g,k);g.statusContainer= g.createStatusContainer();g.statusContainer.style.position="relative";g.statusContainer.style.maxWidth="";g.statusContainer.style.marginTop="7px";g.statusContainer.style.marginLeft="6px";g.statusContainer.style.color="gray";g.statusContainer.style.cursor="default";g.editor.addListener("statusChanged",mxUtils.bind(this,function(){g.setStatusText(g.editor.getStatus())}));var n=g.descriptorChanged;g.descriptorChanged=function(){n.apply(this,arguments);var a=g.getCurrentFile();if(null!=a&&null!=a.getTitle()){var b= a.getMode();"google"==b?b="googleDrive":"github"==b?b="gitHub":"onedrive"==b&&(b="oneDrive");b=mxResources.get(b);k.setAttribute("title",a.getTitle()+(null!=b?" ("+b+")":""))}else k.removeAttribute("title")};g.setStatusText(g.editor.getStatus());k.appendChild(g.statusContainer);g.buttonContainer=document.createElement("div");g.buttonContainer.style.cssText="position:absolute;right:40px;top:12px;white-space:nowrap;";k.appendChild(g.buttonContainer);g.menubarContainer=g.buttonContainer;g.tabContainer= -document.createElement("div");g.tabContainer.style.cssText="position:absolute;left:0px;right:0px;bottom:0px;height:30px;white-space:nowrap;border-bottom:1px solid lightgray;background-color:#ffffff;border-top:1px solid lightgray;margin-bottom:-2px;visibility:hidden;";var f=g.diagramContainer.parentNode,q=document.createElement("div");q.style.cssText="position:absolute;top:0px;left:0px;right:0px;bottom:0px;overflow:hidden;";g.diagramContainer.style.top="47px";var u=g.menus.get("viewZoom");if(null!= +document.createElement("div");g.tabContainer.style.cssText="position:absolute;left:0px;right:0px;bottom:0px;height:30px;white-space:nowrap;border-bottom:1px solid lightgray;background-color:#ffffff;border-top:1px solid lightgray;margin-bottom:-2px;visibility:hidden;";var f=g.diagramContainer.parentNode,p=document.createElement("div");p.style.cssText="position:absolute;top:0px;left:0px;right:0px;bottom:0px;overflow:hidden;";g.diagramContainer.style.top="47px";var u=g.menus.get("viewZoom");if(null!= u){this.tabContainer.style.right="70px";var D=m.addMenu("100%",u.funct);D.setAttribute("title",mxResources.get("zoom")+" (Alt+Mousewheel)");D.style.whiteSpace="nowrap";D.style.backgroundImage="url("+mxWindow.prototype.minimizeImage+")";D.style.backgroundPosition="right 6px center";D.style.backgroundRepeat="no-repeat";D.style.backgroundColor="#ffffff";D.style.paddingRight="10px";D.style.display="block";D.style.position="absolute";D.style.textDecoration="none";D.style.textDecoration="none";D.style.right= -"0px";D.style.bottom="0px";D.style.overflow="hidden";D.style.visibility="hidden";D.style.textAlign="center";D.style.color="#000";D.style.fontSize="12px";D.style.color="#707070";D.style.width="59px";D.style.borderTop="1px solid lightgray";D.style.borderLeft="1px solid lightgray";D.style.height=parseInt(g.tabContainer.style.height)-1+"px";D.style.lineHeight=parseInt(g.tabContainer.style.height)+1+"px";q.appendChild(D);u=mxUtils.bind(this,function(){D.innerHTML=Math.round(100*g.editor.graph.view.scale)+ -"%"});g.editor.graph.view.addListener(mxEvent.EVENT_SCALE,u);g.editor.addListener("resetGraphView",u);g.editor.addListener("pageSelected",u);var H=g.setGraphEnabled;g.setGraphEnabled=function(){H.apply(this,arguments);null!=this.tabContainer&&(D.style.visibility=this.tabContainer.style.visibility,this.diagramContainer.style.bottom="hidden"!=this.tabContainer.style.visibility?"30px":"0px")}}q.appendChild(g.tabContainer);q.appendChild(k);q.appendChild(g.diagramContainer);f.appendChild(q);g.updateTabContainer(); +"0px";D.style.bottom="0px";D.style.overflow="hidden";D.style.visibility="hidden";D.style.textAlign="center";D.style.color="#000";D.style.fontSize="12px";D.style.color="#707070";D.style.width="59px";D.style.borderTop="1px solid lightgray";D.style.borderLeft="1px solid lightgray";D.style.height=parseInt(g.tabContainer.style.height)-1+"px";D.style.lineHeight=parseInt(g.tabContainer.style.height)+1+"px";p.appendChild(D);u=mxUtils.bind(this,function(){D.innerHTML=Math.round(100*g.editor.graph.view.scale)+ +"%"});g.editor.graph.view.addListener(mxEvent.EVENT_SCALE,u);g.editor.addListener("resetGraphView",u);g.editor.addListener("pageSelected",u);var H=g.setGraphEnabled;g.setGraphEnabled=function(){H.apply(this,arguments);null!=this.tabContainer&&(D.style.visibility=this.tabContainer.style.visibility,this.diagramContainer.style.bottom="hidden"!=this.tabContainer.style.visibility?"30px":"0px")}}p.appendChild(g.tabContainer);p.appendChild(k);p.appendChild(g.diagramContainer);f.appendChild(p);g.updateTabContainer(); e();mxEvent.addListener(window,"resize",function(){e();null!=g.sidebarWindow&&g.sidebarWindow.window.fit();null!=g.formatWindow&&g.formatWindow.window.fit();null!=g.actions.outlineWindow&&g.actions.outlineWindow.window.fit();null!=g.actions.layersWindow&&g.actions.layersWindow.window.fit();null!=g.menus.tagsWindow&&g.menus.tagsWindow.window.fit();null!=g.menus.findWindow&&g.menus.findWindow.window.fit()})}}}; (function(){var a=!1;"min"!=uiTheme||a||mxClient.IS_CHROMEAPP||(EditorUi.initMinimalTheme(),a=!0);var b=EditorUi.initTheme;EditorUi.initTheme=function(){b.apply(this,arguments);"min"!=uiTheme||a||(this.initMinimalTheme(),a=!0)}})(); diff --git a/src/main/webapp/js/atlas-viewer.min.js b/src/main/webapp/js/atlas-viewer.min.js index 8bb9a7b89..0033ad7d9 100644 --- a/src/main/webapp/js/atlas-viewer.min.js +++ b/src/main/webapp/js/atlas-viewer.min.js @@ -2,6 +2,7 @@ window.STENCIL_PATH=window.STENCIL_PATH||"https://www.draw.io/stencils";window.S //fgnass.github.com/spin.js#v2.0.0 !function(a,b){"object"==typeof exports?module.exports=b():"function"==typeof define&&define.amd?define(b):a.Spinner=b()}(this,function(){"use strict";function a(a,b){var c,d=document.createElement(a||"div");for(c in b)d[c]=b[c];return d}function b(a){for(var b=1,c=arguments.length;c>b;b++)a.appendChild(arguments[b]);return a}function c(a,b,c,d){var e=["opacity",b,~~(100*a),c,d].join("-"),f=.01+c/d*100,g=Math.max(1-(1-a)/b*(100-f),a),h=j.substring(0,j.indexOf("Animation")).toLowerCase(),i=h&&"-"+h+"-"||"";return l[e]||(m.insertRule("@"+i+"keyframes "+e+"{0%{opacity:"+g+"}"+f+"%{opacity:"+a+"}"+(f+.01)+"%{opacity:1}"+(f+b)%100+"%{opacity:"+a+"}100%{opacity:"+g+"}}",m.cssRules.length),l[e]=1),e}function d(a,b){var c,d,e=a.style;for(b=b.charAt(0).toUpperCase()+b.slice(1),d=0;d<k.length;d++)if(c=k[d]+b,void 0!==e[c])return c;return void 0!==e[b]?b:void 0}function e(a,b){for(var c in b)a.style[d(a,c)||c]=b[c];return a}function f(a){for(var b=1;b<arguments.length;b++){var c=arguments[b];for(var d in c)void 0===a[d]&&(a[d]=c[d])}return a}function g(a,b){return"string"==typeof a?a:a[b%a.length]}function h(a){this.opts=f(a||{},h.defaults,n)}function i(){function c(b,c){return a("<"+b+' xmlns="urn:schemas-microsoft.com:vml" class="spin-vml">',c)}m.addRule(".spin-vml","behavior:url(#default#VML)"),h.prototype.lines=function(a,d){function f(){return e(c("group",{coordsize:k+" "+k,coordorigin:-j+" "+-j}),{width:k,height:k})}function h(a,h,i){b(m,b(e(f(),{rotation:360/d.lines*a+"deg",left:~~h}),b(e(c("roundrect",{arcsize:d.corners}),{width:j,height:d.width,left:d.radius,top:-d.width>>1,filter:i}),c("fill",{color:g(d.color,a),opacity:d.opacity}),c("stroke",{opacity:0}))))}var i,j=d.length+d.width,k=2*j,l=2*-(d.width+d.length)+"px",m=e(f(),{position:"absolute",top:l,left:l});if(d.shadow)for(i=1;i<=d.lines;i++)h(i,-2,"progid:DXImageTransform.Microsoft.Blur(pixelradius=2,makeshadow=1,shadowopacity=.3)");for(i=1;i<=d.lines;i++)h(i);return b(a,m)},h.prototype.opacity=function(a,b,c,d){var e=a.firstChild;d=d.shadow&&d.lines||0,e&&b+d<e.childNodes.length&&(e=e.childNodes[b+d],e=e&&e.firstChild,e=e&&e.firstChild,e&&(e.opacity=c))}}var j,k=["webkit","Moz","ms","O"],l={},m=function(){var c=a("style",{type:"text/css"});return b(document.getElementsByTagName("head")[0],c),c.sheet||c.styleSheet}(),n={lines:12,length:7,width:5,radius:10,rotate:0,corners:1,color:"#000",direction:1,speed:1,trail:100,opacity:.25,fps:20,zIndex:2e9,className:"spinner",top:"50%",left:"50%",position:"absolute"};h.defaults={},f(h.prototype,{spin:function(b){this.stop();{var c=this,d=c.opts,f=c.el=e(a(0,{className:d.className}),{position:d.position,width:0,zIndex:d.zIndex});d.radius+d.length+d.width}if(b&&(b.insertBefore(f,b.firstChild||null),e(f,{left:d.left,top:d.top})),f.setAttribute("role","progressbar"),c.lines(f,c.opts),!j){var g,h=0,i=(d.lines-1)*(1-d.direction)/2,k=d.fps,l=k/d.speed,m=(1-d.opacity)/(l*d.trail/100),n=l/d.lines;!function o(){h++;for(var a=0;a<d.lines;a++)g=Math.max(1-(h+(d.lines-a)*n)%l*m,d.opacity),c.opacity(f,a*d.direction+i,g,d);c.timeout=c.el&&setTimeout(o,~~(1e3/k))}()}return c},stop:function(){var a=this.el;return a&&(clearTimeout(this.timeout),a.parentNode&&a.parentNode.removeChild(a),this.el=void 0),this},lines:function(d,f){function h(b,c){return e(a(),{position:"absolute",width:f.length+f.width+"px",height:f.width+"px",background:b,boxShadow:c,transformOrigin:"left",transform:"rotate("+~~(360/f.lines*k+f.rotate)+"deg) translate("+f.radius+"px,0)",borderRadius:(f.corners*f.width>>1)+"px"})}for(var i,k=0,l=(f.lines-1)*(1-f.direction)/2;k<f.lines;k++)i=e(a(),{position:"absolute",top:1+~(f.width/2)+"px",transform:f.hwaccel?"translate3d(0,0,0)":"",opacity:f.opacity,animation:j&&c(f.opacity,f.trail,l+k*f.direction,f.lines)+" "+1/f.speed+"s linear infinite"}),f.shadow&&b(i,e(h("#000","0 0 4px #000"),{top:"2px"})),b(d,b(i,h(g(f.color,k),"0 0 1px rgba(0,0,0,.1)")));return d},opacity:function(a,b,c){b<a.childNodes.length&&(a.childNodes[b].style.opacity=c)}});var o=e(a("group"),{behavior:"url(#default#VML)"});return!d(o,"transform")&&o.adj?i():j=d(o,"animation"),h}); // NOTE: Modified to support data URIs for images, ie. data:image/* +// Modified to allow "word-break: break-word" in styles. It is done by adding "break-word" which is at index 55 of J array J[55] to "cssLitGroup" of "word-break" (function(){var c=void 0,n=!0,s=null,C=!1,J=["aliceblue,antiquewhite,aqua,aquamarine,azure,beige,bisque,black,blanchedalmond,blue,blueviolet,brown,burlywood,cadetblue,chartreuse,chocolate,coral,cornflowerblue,cornsilk,crimson,cyan,darkblue,darkcyan,darkgoldenrod,darkgray,darkgreen,darkkhaki,darkmagenta,darkolivegreen,darkorange,darkorchid,darkred,darksalmon,darkseagreen,darkslateblue,darkslategray,darkturquoise,darkviolet,deeppink,deepskyblue,dimgray,dodgerblue,firebrick,floralwhite,forestgreen,fuchsia,gainsboro,ghostwhite,gold,goldenrod,gray,green,greenyellow,honeydew,hotpink,indianred,indigo,ivory,khaki,lavender,lavenderblush,lawngreen,lemonchiffon,lightblue,lightcoral,lightcyan,lightgoldenrodyellow,lightgreen,lightgrey,lightpink,lightsalmon,lightseagreen,lightskyblue,lightslategray,lightsteelblue,lightyellow,lime,limegreen,linen,magenta,maroon,mediumaquamarine,mediumblue,mediumorchid,mediumpurple,mediumseagreen,mediumslateblue,mediumspringgreen,mediumturquoise,mediumvioletred,midnightblue,mintcream,mistyrose,moccasin,navajowhite,navy,oldlace,olive,olivedrab,orange,orangered,orchid,palegoldenrod,palegreen,paleturquoise,palevioletred,papayawhip,peachpuff,peru,pink,plum,powderblue,purple,red,rosybrown,royalblue,saddlebrown,salmon,sandybrown,seagreen,seashell,sienna,silver,skyblue,slateblue,slategray,snow,springgreen,steelblue,tan,teal,thistle,tomato,transparent,turquoise,violet,wheat,white,whitesmoke,yellow,yellowgreen".split(","), "all-scroll,col-resize,crosshair,default,e-resize,hand,help,move,n-resize,ne-resize,no-drop,not-allowed,nw-resize,pointer,progress,row-resize,s-resize,se-resize,sw-resize,text,vertical-text,w-resize,wait".split(","),"armenian,decimal,decimal-leading-zero,disc,georgian,lower-alpha,lower-greek,lower-latin,lower-roman,square,upper-alpha,upper-latin,upper-roman".split(","),"100,200,300,400,500,600,700,800,900,bold,bolder,lighter".split(","),"block-level,inline-level,table-caption,table-cell,table-column,table-column-group,table-footer-group,table-header-group,table-row,table-row-group".split(","), "condensed,expanded,extra-condensed,extra-expanded,narrower,semi-condensed,semi-expanded,ultra-condensed,ultra-expanded,wider".split(","),"inherit,inline,inline-block,inline-box,inline-flex,inline-grid,inline-list-item,inline-stack,inline-table,run-in".split(","),"behind,center-left,center-right,far-left,far-right,left-side,leftwards,right-side,rightwards".split(","),"large,larger,small,smaller,x-large,x-small,xx-large,xx-small".split(","),"dashed,dotted,double,groove,outset,ridge,solid".split(","), @@ -26,7 +27,7 @@ position:{cssPropBits:0,cssLitGroup:[J[23]],cssFns:[]},quotes:{cssPropBits:8,css cssLitGroup:[J[14],J[69]],cssFns:[]},stress:"border-bottom-left-radius","table-layout":{cssPropBits:0,cssLitGroup:[J[52],J[61]],cssFns:[]},"text-align":{cssPropBits:0,cssLitGroup:[J[42],J[56],J[66]],cssFns:[]},"text-decoration":{cssPropBits:0,cssLitGroup:[J[19],J[71]],cssFns:[]},"text-indent":"border-bottom-left-radius","text-overflow":{cssPropBits:8,cssLitGroup:[J[33]],cssFns:[]},"text-shadow":"box-shadow","text-transform":{cssPropBits:0,cssLitGroup:[J[26],J[71]],cssFns:[]},"text-wrap":{cssPropBits:0, cssLitGroup:[J[46],J[71],J[72]],cssFns:[]},top:"bottom",transform:{cssPropBits:0,cssLitGroup:[J[71]],cssFns:"matrix(),perspective(),rotate(),rotate3d(),rotatex(),rotatey(),rotatez(),scale(),scale3d(),scalex(),scaley(),scalez(),skew(),skewx(),skewy(),translate(),translate3d(),translatex(),translatey(),translatez()".split(",")},"transform-origin":"perspective-origin","transform-style":{cssPropBits:0,cssLitGroup:[J[37]],cssFns:[]},transition:{cssPropBits:1029,cssLitGroup:[J[10],J[48],J[50],J[71]],cssFns:["cubic-bezier()", "steps()"]},"transition-delay":"animation-delay","transition-duration":"animation-delay","transition-property":{cssPropBits:1024,cssLitGroup:[J[48],J[50]],cssFns:[]},"transition-timing-function":"animation-timing-function","unicode-bidi":{cssPropBits:0,cssLitGroup:[J[30],J[72]],cssFns:[]},"vertical-align":{cssPropBits:5,cssLitGroup:[J[12],J[31]],cssFns:[]},visibility:"backface-visibility","voice-family":{cssPropBits:8,cssLitGroup:[J[27],J[48]],cssFns:[]},volume:{cssPropBits:1,cssLitGroup:[J[17],J[69]], -cssFns:[]},"white-space":{cssPropBits:0,cssLitGroup:[J[22],J[72]],cssFns:[]},width:"min-height","word-break":{cssPropBits:0,cssLitGroup:[J[32],J[72]],cssFns:[]},"word-spacing":"letter-spacing","word-wrap":"overflow-wrap","z-index":"bottom",zoom:"line-height","cubic-bezier()":"animation-delay","steps()":{cssPropBits:5,cssLitGroup:[J[36],J[48]],cssFns:[]},"image()":{cssPropBits:18,cssLitGroup:[J[0],J[48]],cssFns:["rgb()","rgba()"]},"linear-gradient()":{cssPropBits:7,cssLitGroup:[J[0],J[31],J[42],J[48], +cssFns:[]},"white-space":{cssPropBits:0,cssLitGroup:[J[22],J[72]],cssFns:[]},width:"min-height","word-break":{cssPropBits:0,cssLitGroup:[J[32],J[72],J[55]],cssFns:[]},"word-spacing":"letter-spacing","word-wrap":"overflow-wrap","z-index":"bottom",zoom:"line-height","cubic-bezier()":"animation-delay","steps()":{cssPropBits:5,cssLitGroup:[J[36],J[48]],cssFns:[]},"image()":{cssPropBits:18,cssLitGroup:[J[0],J[48]],cssFns:["rgb()","rgba()"]},"linear-gradient()":{cssPropBits:7,cssLitGroup:[J[0],J[31],J[42],J[48], J[79]],cssFns:["rgb()","rgba()"]},"radial-gradient()":{cssPropBits:7,cssLitGroup:[J[0],J[11],J[31],J[42],J[48],J[56],J[57]],cssFns:["rgb()","rgba()"]},"repeating-linear-gradient()":"linear-gradient()","repeating-radial-gradient()":"radial-gradient()","rgb()":{cssPropBits:1,cssLitGroup:[J[48]],cssFns:[]},"rgba()":"rgb()","rect()":{cssPropBits:5,cssLitGroup:[J[48],J[52]],cssFns:[]},"alpha()":{cssPropBits:1,cssLitGroup:[J[28]],cssFns:[]},"matrix()":"animation-delay","perspective()":"border-bottom-left-radius", "rotate()":"border-bottom-left-radius","rotate3d()":"animation-delay","rotatex()":"border-bottom-left-radius","rotatey()":"border-bottom-left-radius","rotatez()":"border-bottom-left-radius","scale()":"animation-delay","scale3d()":"animation-delay","scalex()":"border-bottom-left-radius","scaley()":"border-bottom-left-radius","scalez()":"border-bottom-left-radius","skew()":"animation-delay","skewx()":"border-bottom-left-radius","skewy()":"border-bottom-left-radius","translate()":"animation-delay","translate3d()":"animation-delay", "translatex()":"border-bottom-left-radius","translatey()":"border-bottom-left-radius","translatez()":"border-bottom-left-radius"},O;for(O in L)"string"===typeof L[O]&&Object.hasOwnProperty.call(L,O)&&(L[O]=L[L[O]]);"undefined"!==typeof window&&(window.cssSchema=L);var U,X; @@ -664,7 +665,7 @@ mxSwimlane.prototype.paintDivider=function(a,b,c,d,e,f,g){g||a.setShadow(!1);a.b mxSwimlane.prototype.getImageBounds=function(a,b,c,d){return this.isHorizontal()?new mxRectangle(a+c-this.imageSize,b,this.imageSize,this.imageSize):new mxRectangle(a,b,this.imageSize,this.imageSize)};function mxGraphLayout(a){this.graph=a}mxGraphLayout.prototype.graph=null;mxGraphLayout.prototype.useBoundingBox=!0;mxGraphLayout.prototype.parent=null;mxGraphLayout.prototype.moveCell=function(a,b,c){};mxGraphLayout.prototype.execute=function(a){};mxGraphLayout.prototype.getGraph=function(){return this.graph}; mxGraphLayout.prototype.getConstraint=function(a,b,c,d){c=this.graph.view.getState(b);b=null!=c?c.style:this.graph.getCellStyle(b);return null!=b?b[a]:null}; mxGraphLayout.traverse=function(a,b,c,d,e){if(null!=c&&null!=a&&(b=null!=b?b:!0,e=e||new mxDictionary,!e.get(a)&&(e.put(a,!0),d=c(a,d),null==d||d))&&(d=this.graph.model.getEdgeCount(a),0<d))for(var f=0;f<d;f++){var g=this.graph.model.getEdgeAt(a,f),k=this.graph.model.getTerminal(g,!0)==a;if(!b||k)k=this.graph.view.getVisibleTerminal(g,!k),this.traverse(k,b,c,g,e)}}; -mxGraphLayout.prototype.isAncestor=function(a,b,c){if(!c)return this.graph.model.getParent(cell)==a;if(b==a)return!1;for(;null!=b&&b!=a;)b=this.graph.model.getParent(b);return b==a};mxGraphLayout.prototype.isVertexMovable=function(a){return this.graph.isCellMovable(a)};mxGraphLayout.prototype.isVertexIgnored=function(a){return!this.graph.getModel().isVertex(a)||!this.graph.isCellVisible(a)}; +mxGraphLayout.prototype.isAncestor=function(a,b,c){if(!c)return this.graph.model.getParent(b)==a;if(b==a)return!1;for(;null!=b&&b!=a;)b=this.graph.model.getParent(b);return b==a};mxGraphLayout.prototype.isVertexMovable=function(a){return this.graph.isCellMovable(a)};mxGraphLayout.prototype.isVertexIgnored=function(a){return!this.graph.getModel().isVertex(a)||!this.graph.isCellVisible(a)}; mxGraphLayout.prototype.isEdgeIgnored=function(a){var b=this.graph.getModel();return!b.isEdge(a)||!this.graph.isCellVisible(a)||null==b.getTerminal(a,!0)||null==b.getTerminal(a,!1)};mxGraphLayout.prototype.setEdgeStyleEnabled=function(a,b){this.graph.setCellStyles(mxConstants.STYLE_NOEDGESTYLE,b?"0":"1",[a])};mxGraphLayout.prototype.setOrthogonalEdge=function(a,b){this.graph.setCellStyles(mxConstants.STYLE_ORTHOGONAL,b?"1":"0",[a])}; mxGraphLayout.prototype.getParentOffset=function(a){var b=new mxPoint;if(null!=a&&a!=this.parent){var c=this.graph.getModel();if(c.isAncestor(this.parent,a))for(var d=c.getGeometry(a);a!=this.parent;)b.x+=d.x,b.y+=d.y,a=c.getParent(a),d=c.getGeometry(a)}return b}; mxGraphLayout.prototype.setEdgePoints=function(a,b){if(null!=a){var c=this.graph.model,d=c.getGeometry(a);null==d?(d=new mxGeometry,d.setRelative(!0)):d=d.clone();if(null!=this.parent&&null!=b)for(var e=c.getParent(a),e=this.getParentOffset(e),f=0;f<b.length;f++)b[f].x-=e.x,b[f].y-=e.y;d.points=b;c.setGeometry(a,d)}}; @@ -1955,9 +1956,9 @@ x.style.color=.5>.213*this.rgb[0]+.715*this.rgb[1]+.072*this.rgb[2]?"#FFF":"#000 this.rgb[1]=b;var e=null===c?this.rgb[2]:this.rgb[2]=c,f=Math.min(Math.min(a,b),e);c=Math.max(Math.max(a,b),e);var g=c-f;0===g?a=[null,0,c]:(a=a===f?3+(e-b)/g:b===f?5+(a-e)/g:1+(b-a)/g,a=[6===a?0:a,g/c,c]);null!==a[0]&&(this.hsv[0]=a[0]);0!==a[2]&&(this.hsv[1]=a[1]);this.hsv[2]=a[2];this.exportColor(d)};this.fromString=function(a,b){var c=a.match(/^\W*([0-9A-F]{3}([0-9A-F]{3})?)\W*$/i);return c?(6===c[1].length?this.fromRGB(parseInt(c[1].substr(0,2),16)/255,parseInt(c[1].substr(2,2),16)/255,parseInt(c[1].substr(4, 2),16)/255,b):this.fromRGB(parseInt(c[1].charAt(0)+c[1].charAt(0),16)/255,parseInt(c[1].charAt(1)+c[1].charAt(1),16)/255,parseInt(c[1].charAt(2)+c[1].charAt(2),16)/255,b),!0):!1};this.toString=function(){return(256|Math.round(255*this.rgb[0])).toString(16).substr(1)+(256|Math.round(255*this.rgb[1])).toString(16).substr(1)+(256|Math.round(255*this.rgb[2])).toString(16).substr(1)};var r=this,t="hvs"===this.pickerMode.toLowerCase()?1:0,u=jscolor.fetchElement(this.valueElement),x=jscolor.fetchElement(this.styleElement), y=!1,A=!1,z=1,v=2,B=4,C=8;u&&(q=function(){r.fromString(u.value,z);p()},jscolor.addEvent(u,"keyup",q),jscolor.addEvent(u,"input",q),jscolor.addEvent(u,"blur",l),u.setAttribute("autocomplete","off"));x&&(x.jscStyle={backgroundImage:x.style.backgroundImage,backgroundColor:x.style.backgroundColor,color:x.style.color});switch(t){case 0:jscolor.requireImage("hs.png");break;case 1:jscolor.requireImage("hv.png")}this.importColor()}};jscolor.install(); -Editor=function(a,d,e,b,h){mxEventSource.call(this);this.chromeless=null!=a?a:this.chromeless;this.initStencilRegistry();this.graph=b||this.createGraph(d,e);this.editable=null!=h?h:!a;this.undoManager=this.createUndoManager();this.status="";this.getOrCreateFilename=function(){return this.filename||mxResources.get("drawing",[Editor.pageCounter])+".xml"};this.getFilename=function(){return this.filename};this.setStatus=function(a){this.status=a;this.fireEvent(new mxEventObject("statusChanged"))};this.getStatus= -function(){return this.status};this.graphChangeListener=function(a,b){var d=null!=b?b.getProperty("edit"):null;null!=d&&d.ignoreEdit||this.setModified(!0)};this.graph.getModel().addListener(mxEvent.CHANGE,mxUtils.bind(this,function(){this.graphChangeListener.apply(this,arguments)}));this.graph.resetViewOnRootChange=!1;this.init()};Editor.pageCounter=0; -(function(){try{for(var a=window;null!=a.opener&&"undefined"!==typeof a.opener.Editor&&!isNaN(a.opener.Editor.pageCounter)&&a.opener!=a;)a=a.opener;null!=a&&(a.Editor.pageCounter++,Editor.pageCounter=a.Editor.pageCounter)}catch(d){}})();Editor.useLocalStorage="undefined"!=typeof Storage&&mxClient.IS_IOS; +Editor=function(a,b,e,d,k){mxEventSource.call(this);this.chromeless=null!=a?a:this.chromeless;this.initStencilRegistry();this.graph=d||this.createGraph(b,e);this.editable=null!=k?k:!a;this.undoManager=this.createUndoManager();this.status="";this.getOrCreateFilename=function(){return this.filename||mxResources.get("drawing",[Editor.pageCounter])+".xml"};this.getFilename=function(){return this.filename};this.setStatus=function(a){this.status=a;this.fireEvent(new mxEventObject("statusChanged"))};this.getStatus= +function(){return this.status};this.graphChangeListener=function(a,d){var b=null!=d?d.getProperty("edit"):null;null!=b&&b.ignoreEdit||this.setModified(!0)};this.graph.getModel().addListener(mxEvent.CHANGE,mxUtils.bind(this,function(){this.graphChangeListener.apply(this,arguments)}));this.graph.resetViewOnRootChange=!1;this.init()};Editor.pageCounter=0; +(function(){try{for(var a=window;null!=a.opener&&"undefined"!==typeof a.opener.Editor&&!isNaN(a.opener.Editor.pageCounter)&&a.opener!=a;)a=a.opener;null!=a&&(a.Editor.pageCounter++,Editor.pageCounter=a.Editor.pageCounter)}catch(b){}})();Editor.useLocalStorage="undefined"!=typeof Storage&&mxClient.IS_IOS; Editor.helpImage=mxClient.IS_SVG?"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAXVBMVEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC5BxTwAAAAH3RSTlMAlUF8boNQIE0LBgOgkGlHNSwqFIx/dGVUOjApmV9ezNACSAAAAIVJREFUGNNtjNsOgzAMQ5NeoVcKDAZs+//PXLKI8YKlWvaRU7jXuFpb9qsbdK05XILUiE8JHQox1Pv3OgFUzf1AGqWqUg+QBwLF0YAeegBlCNgRWOpB5vUfTCmeoHQ/wNdy0jLH/cM+b+wLTw4n/7ACEmHVVy8h6qy8V7MNcGowWpsNbvUFcGUEdSi1s/oAAAAASUVORK5CYII=":IMAGE_PATH+ "/help.png"; Editor.checkmarkImage=mxClient.IS_SVG?"data:image/gif;base64,R0lGODlhFQAVAMQfAGxsbHx8fIqKioaGhvb29nJycvr6+sDAwJqamltbW5OTk+np6YGBgeTk5Ly8vJiYmP39/fLy8qWlpa6ursjIyOLi4vj4+N/f3+3t7fT09LCwsHZ2dubm5r6+vmZmZv///yH/C1hNUCBEYXRhWE1QPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS4wLWMwNjAgNjEuMTM0Nzc3LCAyMDEwLzAyLzEyLTE3OjMyOjAwICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdFJlZj0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlUmVmIyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M1IFdpbmRvd3MiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6OEY4NTZERTQ5QUFBMTFFMUE5MTVDOTM5MUZGMTE3M0QiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6OEY4NTZERTU5QUFBMTFFMUE5MTVDOTM5MUZGMTE3M0QiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo4Rjg1NkRFMjlBQUExMUUxQTkxNUM5MzkxRkYxMTczRCIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo4Rjg1NkRFMzlBQUExMUUxQTkxNUM5MzkxRkYxMTczRCIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PgH//v38+/r5+Pf29fTz8vHw7+7t7Ovq6ejn5uXk4+Lh4N/e3dzb2tnY19bV1NPS0dDPzs3My8rJyMfGxcTDwsHAv769vLu6ubi3trW0s7KxsK+urayrqqmop6alpKOioaCfnp2cm5qZmJeWlZSTkpGQj46NjIuKiYiHhoWEg4KBgH9+fXx7enl4d3Z1dHNycXBvbm1sa2ppaGdmZWRjYmFgX15dXFtaWVhXVlVUU1JRUE9OTUxLSklIR0ZFRENCQUA/Pj08Ozo5ODc2NTQzMjEwLy4tLCsqKSgnJiUkIyIhIB8eHRwbGhkYFxYVFBMSERAPDg0MCwoJCAcGBQQDAgEAACH5BAEAAB8ALAAAAAAVABUAAAVI4CeOZGmeaKqubKtylktSgCOLRyLd3+QJEJnh4VHcMoOfYQXQLBcBD4PA6ngGlIInEHEhPOANRkaIFhq8SuHCE1Hb8Lh8LgsBADs=":IMAGE_PATH+ @@ -1976,26 +1977,26 @@ Editor.previousLargeImage="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAA Editor.ctrlKey=mxClient.IS_MAC?"Cmd":"Ctrl";Editor.popupsAllowed=!0;mxUtils.extend(Editor,mxEventSource);Editor.prototype.originalNoForeignObject=mxClient.NO_FO;Editor.prototype.transparentImage=mxClient.IS_SVG?"data:image/gif;base64,R0lGODlhMAAwAIAAAP///wAAACH5BAEAAAAALAAAAAAwADAAAAIxhI+py+0Po5y02ouz3rz7D4biSJbmiabqyrbuC8fyTNf2jef6zvf+DwwKh8Si8egpAAA7":IMAGE_PATH+"/transparent.gif";Editor.prototype.extendCanvas=!0;Editor.prototype.chromeless=!1;Editor.prototype.cancelFirst=!0; Editor.prototype.enabled=!0;Editor.prototype.filename=null;Editor.prototype.modified=!1;Editor.prototype.autosave=!0;Editor.prototype.initialTopSpacing=0;Editor.prototype.appName=document.title;Editor.prototype.editBlankUrl=window.location.protocol+"//"+window.location.host+"/";Editor.prototype.init=function(){};Editor.prototype.isChromelessView=function(){return this.chromeless};Editor.prototype.setAutosave=function(a){this.autosave=a;this.fireEvent(new mxEventObject("autosaveChanged"))}; Editor.prototype.getEditBlankUrl=function(a){return this.editBlankUrl+a}; -Editor.prototype.editAsNew=function(a,d){var e=null!=d?"?title="+encodeURIComponent(d):"";null!=urlParams.ui&&(e+=(0<e.length?"&":"?")+"ui="+urlParams.ui);null==this.editorWindow||this.editorWindow.closed?"undefined"!==typeof window.postMessage&&(null==document.documentMode||10<=document.documentMode)?(null==this.editorWindow&&mxEvent.addListener(window,"message",mxUtils.bind(this,function(b){"ready"==b.data&&b.source==this.editorWindow&&this.editorWindow.postMessage(a,"*")})),this.editorWindow=this.graph.openLink(this.getEditBlankUrl(e+ -(0<e.length?"&":"?")+"client=1"),null,!0)):this.editorWindow=this.graph.openLink(this.getEditBlankUrl(e)+"#R"+encodeURIComponent(a)):this.editorWindow.focus()};Editor.prototype.createGraph=function(a,d){var e=new Graph(null,d,null,null,a);e.transparentBackground=!1;this.chromeless||(e.isBlankLink=function(a){return!this.isExternalProtocol(a)});return e}; +Editor.prototype.editAsNew=function(a,b){var e=null!=b?"?title="+encodeURIComponent(b):"";null!=urlParams.ui&&(e+=(0<e.length?"&":"?")+"ui="+urlParams.ui);null==this.editorWindow||this.editorWindow.closed?"undefined"!==typeof window.postMessage&&(null==document.documentMode||10<=document.documentMode)?(null==this.editorWindow&&mxEvent.addListener(window,"message",mxUtils.bind(this,function(d){"ready"==d.data&&d.source==this.editorWindow&&this.editorWindow.postMessage(a,"*")})),this.editorWindow=this.graph.openLink(this.getEditBlankUrl(e+ +(0<e.length?"&":"?")+"client=1"),null,!0)):this.editorWindow=this.graph.openLink(this.getEditBlankUrl(e)+"#R"+encodeURIComponent(a)):this.editorWindow.focus()};Editor.prototype.createGraph=function(a,b){var e=new Graph(null,b,null,null,a);e.transparentBackground=!1;this.chromeless||(e.isBlankLink=function(a){return!this.isExternalProtocol(a)});return e}; Editor.prototype.resetGraph=function(){this.graph.gridEnabled=!this.isChromelessView()||"1"==urlParams.grid;this.graph.graphHandler.guidesEnabled=!0;this.graph.setTooltips(!0);this.graph.setConnectable(!0);this.graph.foldingEnabled=!0;this.graph.scrollbars=this.graph.defaultScrollbars;this.graph.pageVisible=this.graph.defaultPageVisible;this.graph.pageBreaksVisible=this.graph.pageVisible;this.graph.preferPageSize=this.graph.pageBreaksVisible;this.graph.background=this.graph.defaultGraphBackground; this.graph.pageScale=mxGraph.prototype.pageScale;this.graph.pageFormat=mxGraph.prototype.pageFormat;this.graph.currentScale=1;this.graph.currentTranslate.x=0;this.graph.currentTranslate.y=0;this.updateGraphComponents();this.graph.view.setScale(1)}; Editor.prototype.readGraphState=function(a){this.graph.gridEnabled="0"!=a.getAttribute("grid")&&(!this.isChromelessView()||"1"==urlParams.grid);this.graph.gridSize=parseFloat(a.getAttribute("gridSize"))||mxGraph.prototype.gridSize;this.graph.graphHandler.guidesEnabled="0"!=a.getAttribute("guides");this.graph.setTooltips("0"!=a.getAttribute("tooltips"));this.graph.setConnectable("0"!=a.getAttribute("connect"));this.graph.connectionArrowsEnabled="0"!=a.getAttribute("arrows");this.graph.foldingEnabled= -"0"!=a.getAttribute("fold");this.isChromelessView()&&this.graph.foldingEnabled&&(this.graph.foldingEnabled="1"==urlParams.nav,this.graph.cellRenderer.forceControlClickHandler=this.graph.foldingEnabled);var d=parseFloat(a.getAttribute("pageScale"));!isNaN(d)&&0<d?this.graph.pageScale=d:this.graph.pageScale=mxGraph.prototype.pageScale;this.graph.isLightboxView()?this.graph.pageVisible=!1:(d=a.getAttribute("page"),this.graph.pageVisible=null!=d?"0"!=d:this.graph.defaultPageVisible);this.graph.pageBreaksVisible= -this.graph.pageVisible;this.graph.preferPageSize=this.graph.pageBreaksVisible;var d=parseFloat(a.getAttribute("pageWidth")),e=parseFloat(a.getAttribute("pageHeight"));isNaN(d)||isNaN(e)||(this.graph.pageFormat=new mxRectangle(0,0,d,e));a=a.getAttribute("background");this.graph.background=null!=a&&0<a.length?a:this.graph.defaultGraphBackground}; -Editor.prototype.setGraphXml=function(a){if(null!=a){var d=new mxCodec(a.ownerDocument);if("mxGraphModel"==a.nodeName){this.graph.model.beginUpdate();try{this.graph.model.clear(),this.graph.view.scale=1,this.readGraphState(a),this.updateGraphComponents(),d.decode(a,this.graph.getModel())}finally{this.graph.model.endUpdate()}this.fireEvent(new mxEventObject("resetGraphView"))}else if("root"==a.nodeName){this.resetGraph();var e=d.document.createElement("mxGraphModel");e.appendChild(a);d.decode(e,this.graph.getModel()); +"0"!=a.getAttribute("fold");this.isChromelessView()&&this.graph.foldingEnabled&&(this.graph.foldingEnabled="1"==urlParams.nav,this.graph.cellRenderer.forceControlClickHandler=this.graph.foldingEnabled);var b=parseFloat(a.getAttribute("pageScale"));!isNaN(b)&&0<b?this.graph.pageScale=b:this.graph.pageScale=mxGraph.prototype.pageScale;this.graph.isLightboxView()?this.graph.pageVisible=!1:(b=a.getAttribute("page"),this.graph.pageVisible=null!=b?"0"!=b:this.graph.defaultPageVisible);this.graph.pageBreaksVisible= +this.graph.pageVisible;this.graph.preferPageSize=this.graph.pageBreaksVisible;var b=parseFloat(a.getAttribute("pageWidth")),e=parseFloat(a.getAttribute("pageHeight"));isNaN(b)||isNaN(e)||(this.graph.pageFormat=new mxRectangle(0,0,b,e));a=a.getAttribute("background");this.graph.background=null!=a&&0<a.length?a:this.graph.defaultGraphBackground}; +Editor.prototype.setGraphXml=function(a){if(null!=a){var b=new mxCodec(a.ownerDocument);if("mxGraphModel"==a.nodeName){this.graph.model.beginUpdate();try{this.graph.model.clear(),this.graph.view.scale=1,this.readGraphState(a),this.updateGraphComponents(),b.decode(a,this.graph.getModel())}finally{this.graph.model.endUpdate()}this.fireEvent(new mxEventObject("resetGraphView"))}else if("root"==a.nodeName){this.resetGraph();var e=b.document.createElement("mxGraphModel");e.appendChild(a);b.decode(e,this.graph.getModel()); this.updateGraphComponents();this.fireEvent(new mxEventObject("resetGraphView"))}else throw{message:mxResources.get("cannotOpenFile"),node:a,toString:function(){return this.message}};}else this.resetGraph(),this.graph.model.clear(),this.fireEvent(new mxEventObject("resetGraphView"))}; Editor.prototype.getGraphXml=function(a){a=(null!=a?a:1)?(new mxCodec(mxUtils.createXmlDocument())).encode(this.graph.getModel()):this.graph.encodeCells(mxUtils.sortCells(this.graph.model.getTopmostCells(this.graph.getSelectionCells())));if(0!=this.graph.view.translate.x||0!=this.graph.view.translate.y)a.setAttribute("dx",Math.round(100*this.graph.view.translate.x)/100),a.setAttribute("dy",Math.round(100*this.graph.view.translate.y)/100);a.setAttribute("grid",this.graph.isGridEnabled()?"1":"0");a.setAttribute("gridSize", this.graph.gridSize);a.setAttribute("guides",this.graph.graphHandler.guidesEnabled?"1":"0");a.setAttribute("tooltips",this.graph.tooltipHandler.isEnabled()?"1":"0");a.setAttribute("connect",this.graph.connectionHandler.isEnabled()?"1":"0");a.setAttribute("arrows",this.graph.connectionArrowsEnabled?"1":"0");a.setAttribute("fold",this.graph.foldingEnabled?"1":"0");a.setAttribute("page",this.graph.pageVisible?"1":"0");a.setAttribute("pageScale",this.graph.pageScale);a.setAttribute("pageWidth",this.graph.pageFormat.width); a.setAttribute("pageHeight",this.graph.pageFormat.height);null!=this.graph.background&&a.setAttribute("background",this.graph.background);return a};Editor.prototype.updateGraphComponents=function(){var a=this.graph;null!=a.container&&(a.view.validateBackground(),a.container.style.overflow=a.scrollbars?"auto":"hidden",this.fireEvent(new mxEventObject("updateGraphComponents")))};Editor.prototype.setModified=function(a){this.modified=a};Editor.prototype.setFilename=function(a){this.filename=a}; -Editor.prototype.createUndoManager=function(){var a=this.graph,d=new mxUndoManager;this.undoListener=function(a,e){d.undoableEditHappened(e.getProperty("edit"))};var e=mxUtils.bind(this,function(a,d){this.undoListener.apply(this,arguments)});a.getModel().addListener(mxEvent.UNDO,e);a.getView().addListener(mxEvent.UNDO,e);e=function(b,d){for(var e=a.getSelectionCellsForChanges(d.getProperty("edit").changes),h=a.getModel(),q=[],u=0;u<e.length;u++)(h.isVertex(e[u])||h.isEdge(e[u]))&&null!=a.view.getState(e[u])&& -q.push(e[u]);a.setSelectionCells(q)};d.addListener(mxEvent.UNDO,e);d.addListener(mxEvent.REDO,e);return d};Editor.prototype.initStencilRegistry=function(){};Editor.prototype.destroy=function(){null!=this.graph&&(this.graph.destroy(),this.graph=null)};OpenFile=function(a){this.consumer=this.producer=null;this.done=a;this.args=null};OpenFile.prototype.setConsumer=function(a){this.consumer=a;this.execute()};OpenFile.prototype.setData=function(){this.args=arguments;this.execute()}; +Editor.prototype.createUndoManager=function(){var a=this.graph,b=new mxUndoManager;this.undoListener=function(a,e){b.undoableEditHappened(e.getProperty("edit"))};var e=mxUtils.bind(this,function(a,b){this.undoListener.apply(this,arguments)});a.getModel().addListener(mxEvent.UNDO,e);a.getView().addListener(mxEvent.UNDO,e);e=function(d,b){for(var e=a.getSelectionCellsForChanges(b.getProperty("edit").changes),k=a.getModel(),q=[],u=0;u<e.length;u++)(k.isVertex(e[u])||k.isEdge(e[u]))&&null!=a.view.getState(e[u])&& +q.push(e[u]);a.setSelectionCells(q)};b.addListener(mxEvent.UNDO,e);b.addListener(mxEvent.REDO,e);return b};Editor.prototype.initStencilRegistry=function(){};Editor.prototype.destroy=function(){null!=this.graph&&(this.graph.destroy(),this.graph=null)};OpenFile=function(a){this.consumer=this.producer=null;this.done=a;this.args=null};OpenFile.prototype.setConsumer=function(a){this.consumer=a;this.execute()};OpenFile.prototype.setData=function(){this.args=arguments;this.execute()}; OpenFile.prototype.error=function(a){this.cancel(!0);mxUtils.alert(a)};OpenFile.prototype.execute=function(){null!=this.consumer&&null!=this.args&&(this.cancel(!1),this.consumer.apply(this,this.args))};OpenFile.prototype.cancel=function(a){null!=this.done&&this.done(null!=a?a:!0)}; -function Dialog(a,d,e,b,h,m,p,q,u){var c=0;mxClient.IS_VML&&(null==document.documentMode||8>document.documentMode)&&(c=80);e+=c;b+=c;var f=e,g=b,k=0<document.documentElement.clientHeight?document.documentElement.clientHeight:Math.max(document.body.clientHeight||0,document.documentElement.clientHeight),r=Math.max(1,Math.round((document.body.clientWidth-e-64)/2)),l=Math.max(1,Math.round((k-b-a.footerHeight)/3));mxClient.IS_QUIRKS||(d.style.maxHeight="100%");e=Math.min(e,document.body.scrollWidth-64); -b=Math.min(b,k-64);0<a.dialogs.length&&(this.zIndex+=2*a.dialogs.length);null==this.bg&&(this.bg=a.createDiv("background"),this.bg.style.position="absolute",this.bg.style.background=Dialog.backdropColor,this.bg.style.height=k+"px",this.bg.style.right="0px",this.bg.style.zIndex=this.zIndex-2,mxUtils.setOpacity(this.bg,this.bgOpacity),mxClient.IS_QUIRKS&&new mxDivResizer(this.bg));var n=mxUtils.getDocumentScrollOrigin(document);this.bg.style.left=n.x+"px";this.bg.style.top=n.y+"px";r+=n.x;l+=n.y;h&& -document.body.appendChild(this.bg);var w=a.createDiv(u?"geTransDialog":"geDialog");h=this.getPosition(r,l,e,b);r=h.x;l=h.y;w.style.width=e+"px";w.style.height=b+"px";w.style.left=r+"px";w.style.top=l+"px";w.style.zIndex=this.zIndex;w.appendChild(d);document.body.appendChild(w);!q&&d.clientHeight>w.clientHeight-64&&(d.style.overflowY="auto");m&&(m=document.createElement("img"),m.setAttribute("src",Dialog.prototype.closeImage),m.setAttribute("title",mxResources.get("close")),m.className="geDialogClose", -m.style.top=l+14+"px",m.style.left=r+e+38-c+"px",m.style.zIndex=this.zIndex,mxEvent.addListener(m,"click",mxUtils.bind(this,function(){a.hideDialog(!0)})),document.body.appendChild(m),this.dialogImg=m,mxEvent.addGestureListeners(this.bg,null,null,mxUtils.bind(this,function(c){a.hideDialog(!0)})));this.resizeListener=mxUtils.bind(this,function(){k=Math.max(document.body.clientHeight,document.documentElement.clientHeight);this.bg.style.height=k+"px";r=Math.max(1,Math.round((document.body.clientWidth- -e-64)/2));l=Math.max(1,Math.round((k-b-a.footerHeight)/3));e=Math.min(f,document.body.scrollWidth-64);b=Math.min(g,k-64);var n=this.getPosition(r,l,e,b);r=n.x;l=n.y;w.style.left=r+"px";w.style.top=l+"px";w.style.width=e+"px";w.style.height=b+"px";!q&&d.clientHeight>w.clientHeight-64&&(d.style.overflowY="auto");null!=this.dialogImg&&(this.dialogImg.style.top=l+14+"px",this.dialogImg.style.left=r+e+38-c+"px")});mxEvent.addListener(window,"resize",this.resizeListener);this.onDialogClose=p;this.container= +function Dialog(a,b,e,d,k,l,p,q,u){var c=0;mxClient.IS_VML&&(null==document.documentMode||8>document.documentMode)&&(c=80);e+=c;d+=c;var f=e,g=d,n=0<document.documentElement.clientHeight?document.documentElement.clientHeight:Math.max(document.body.clientHeight||0,document.documentElement.clientHeight),r=Math.max(1,Math.round((document.body.clientWidth-e-64)/2)),h=Math.max(1,Math.round((n-d-a.footerHeight)/3));mxClient.IS_QUIRKS||(b.style.maxHeight="100%");e=Math.min(e,document.body.scrollWidth-64); +d=Math.min(d,n-64);0<a.dialogs.length&&(this.zIndex+=2*a.dialogs.length);null==this.bg&&(this.bg=a.createDiv("background"),this.bg.style.position="absolute",this.bg.style.background=Dialog.backdropColor,this.bg.style.height=n+"px",this.bg.style.right="0px",this.bg.style.zIndex=this.zIndex-2,mxUtils.setOpacity(this.bg,this.bgOpacity),mxClient.IS_QUIRKS&&new mxDivResizer(this.bg));var m=mxUtils.getDocumentScrollOrigin(document);this.bg.style.left=m.x+"px";this.bg.style.top=m.y+"px";r+=m.x;h+=m.y;k&& +document.body.appendChild(this.bg);var w=a.createDiv(u?"geTransDialog":"geDialog");k=this.getPosition(r,h,e,d);r=k.x;h=k.y;w.style.width=e+"px";w.style.height=d+"px";w.style.left=r+"px";w.style.top=h+"px";w.style.zIndex=this.zIndex;w.appendChild(b);document.body.appendChild(w);!q&&b.clientHeight>w.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=h+14+"px",l.style.left=r+e+38-c+"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(c){a.hideDialog(!0)})));this.resizeListener=mxUtils.bind(this,function(){n=Math.max(document.body.clientHeight,document.documentElement.clientHeight);this.bg.style.height=n+"px";r=Math.max(1,Math.round((document.body.clientWidth- +e-64)/2));h=Math.max(1,Math.round((n-d-a.footerHeight)/3));e=Math.min(f,document.body.scrollWidth-64);d=Math.min(g,n-64);var m=this.getPosition(r,h,e,d);r=m.x;h=m.y;w.style.left=r+"px";w.style.top=h+"px";w.style.width=e+"px";w.style.height=d+"px";!q&&b.clientHeight>w.clientHeight-64&&(b.style.overflowY="auto");null!=this.dialogImg&&(this.dialogImg.style.top=h+14+"px",this.dialogImg.style.left=r+e+38-c+"px")});mxEvent.addListener(window,"resize",this.resizeListener);this.onDialogClose=p;this.container= w;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"; @@ -2004,150 +2005,150 @@ Dialog.prototype.clearImage=mxClient.IS_SVG?"data:image/gif;base64,R0lGODlhDQAKA Dialog.prototype.lockedImage=mxClient.IS_SVG?"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAMAAABhq6zVAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBNYWNpbnRvc2giIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MzdDMDZCODExNzIxMTFFNUI0RTk5NTg4OTcyMUUyODEiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MzdDMDZCODIxNzIxMTFFNUI0RTk5NTg4OTcyMUUyODEiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDozN0MwNkI3RjE3MjExMUU1QjRFOTk1ODg5NzIxRTI4MSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDozN0MwNkI4MDE3MjExMUU1QjRFOTk1ODg5NzIxRTI4MSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PvqMCFYAAAAVUExURZmZmb+/v7KysqysrMzMzLGxsf///4g8N1cAAAAHdFJOU////////wAaSwNGAAAAPElEQVR42lTMQQ4AIQgEwUa0//9kTQirOweYOgDqAMbZUr10AGlAwx4/BJ2QJ4U0L5brYjovvpv32xZgAHZaATFtMbu4AAAAAElFTkSuQmCC":IMAGE_PATH+ "/locked.png"; 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,d){return new mxPoint(a,d)};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,d){this.create(a,d)}; -PrintDialog.prototype.create=function(a){function d(a){var b=q.checked||c.checked,d=parseInt(g.value)/100;isNaN(d)&&(d=1,g.value="100%");var d=.75*d,k=e.pageFormat||mxConstants.PAGE_FORMAT_A4_PORTRAIT,r=1/e.pageScale;if(b){var h=q.checked?1:parseInt(f.value);isNaN(h)||(r=mxUtils.getScaleForPageCount(h,e,k))}e.getGraphBounds();var y=h=0,k=mxRectangle.fromRectangle(k);k.width=Math.ceil(k.width*d);k.height=Math.ceil(k.height*d);r*=d;!b&&e.pageVisible?(d=e.getPageLayout(),h-=d.x*k.width,y-=d.y*k.height): -b=!0;b=PrintDialog.createPrintPreview(e,r,k,0,h,y,b);b.open();a&&PrintDialog.printPreview(b)}var e=a.editor.graph,b,h,m=document.createElement("table");m.style.width="100%";m.style.height="100%";var p=document.createElement("tbody");b=document.createElement("tr");var q=document.createElement("input");q.setAttribute("type","checkbox");h=document.createElement("td");h.setAttribute("colspan","2");h.style.fontSize="10pt";h.appendChild(q);var u=document.createElement("span");mxUtils.write(u," "+mxResources.get("fitPage")); -h.appendChild(u);mxEvent.addListener(u,"click",function(a){q.checked=!q.checked;c.checked=!q.checked;mxEvent.consume(a)});mxEvent.addListener(q,"change",function(){c.checked=!q.checked});b.appendChild(h);p.appendChild(b);b=b.cloneNode(!1);var c=document.createElement("input");c.setAttribute("type","checkbox");h=document.createElement("td");h.style.fontSize="10pt";h.appendChild(c);u=document.createElement("span");mxUtils.write(u," "+mxResources.get("posterPrint")+":");h.appendChild(u);mxEvent.addListener(u, -"click",function(a){c.checked=!c.checked;q.checked=!c.checked;mxEvent.consume(a)});b.appendChild(h);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";h=document.createElement("td");h.style.fontSize="10pt";h.appendChild(f);mxUtils.write(h," "+mxResources.get("pages")+" (max)");b.appendChild(h);p.appendChild(b);mxEvent.addListener(c,"change", -function(){c.checked?f.removeAttribute("disabled"):f.setAttribute("disabled","disabled");q.checked=!c.checked});b=b.cloneNode(!1);h=document.createElement("td");mxUtils.write(h,mxResources.get("pageScale")+":");b.appendChild(h);h=document.createElement("td");var g=document.createElement("input");g.setAttribute("value","100 %");g.setAttribute("size","5");g.style.width="50px";h.appendChild(g);b.appendChild(h);p.appendChild(b);b=document.createElement("tr");h=document.createElement("td");h.colSpan=2; -h.style.paddingTop="20px";h.setAttribute("align","right");u=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});u.className="geBtn";a.editor.cancelFirst&&h.appendChild(u);if(PrintDialog.previewEnabled){var k=mxUtils.button(mxResources.get("preview"),function(){a.hideDialog();d(!1)});k.className="geBtn";h.appendChild(k)}k=mxUtils.button(mxResources.get(PrintDialog.previewEnabled?"print":"ok"),function(){a.hideDialog();d(!0)});k.className="geBtn gePrimaryBtn";h.appendChild(k);a.editor.cancelFirst|| -h.appendChild(u);b.appendChild(h);p.appendChild(b);m.appendChild(p);this.container=m};PrintDialog.printPreview=function(a){if(null!=a.wnd){var d=function(){a.wnd.focus();a.wnd.print();a.wnd.close()};mxClient.IS_GC?window.setTimeout(d,500):d()}}; -PrintDialog.createPrintPreview=function(a,d,e,b,h,m,p){d=new mxPrintPreview(a,d,e,b,h,m);d.title=mxResources.get("preview");d.printBackgroundImage=!0;d.autoOrigin=p;a=a.background;if(null==a||""==a||a==mxConstants.NONE)a="#ffffff";d.backgroundColor=a;var q=d.writeHead;d.writeHead=function(a){q.apply(this,arguments);a.writeln('<style type="text/css">');a.writeln("@media screen {");a.writeln(" body > div { padding:30px;box-sizing:content-box; }");a.writeln("}");a.writeln("</style>")};return d}; +"/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 d=q.checked||c.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(d){var k=q.checked?1:parseInt(f.value);isNaN(k)||(r=mxUtils.getScaleForPageCount(k,e,n))}e.getGraphBounds();var y=k=0,n=mxRectangle.fromRectangle(n);n.width=Math.ceil(n.width*b);n.height=Math.ceil(n.height*b);r*=b;!d&&e.pageVisible?(b=e.getPageLayout(),k-=b.x*n.width,y-=b.y*n.height): +d=!0;d=PrintDialog.createPrintPreview(e,r,n,0,k,y,d);d.open();a&&PrintDialog.printPreview(d)}var e=a.editor.graph,d,k,l=document.createElement("table");l.style.width="100%";l.style.height="100%";var p=document.createElement("tbody");d=document.createElement("tr");var q=document.createElement("input");q.setAttribute("type","checkbox");k=document.createElement("td");k.setAttribute("colspan","2");k.style.fontSize="10pt";k.appendChild(q);var u=document.createElement("span");mxUtils.write(u," "+mxResources.get("fitPage")); +k.appendChild(u);mxEvent.addListener(u,"click",function(a){q.checked=!q.checked;c.checked=!q.checked;mxEvent.consume(a)});mxEvent.addListener(q,"change",function(){c.checked=!q.checked});d.appendChild(k);p.appendChild(d);d=d.cloneNode(!1);var c=document.createElement("input");c.setAttribute("type","checkbox");k=document.createElement("td");k.style.fontSize="10pt";k.appendChild(c);u=document.createElement("span");mxUtils.write(u," "+mxResources.get("posterPrint")+":");k.appendChild(u);mxEvent.addListener(u, +"click",function(a){c.checked=!c.checked;q.checked=!c.checked;mxEvent.consume(a)});d.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)");d.appendChild(k);p.appendChild(d);mxEvent.addListener(c,"change", +function(){c.checked?f.removeAttribute("disabled"):f.setAttribute("disabled","disabled");q.checked=!c.checked});d=d.cloneNode(!1);k=document.createElement("td");mxUtils.write(k,mxResources.get("pageScale")+":");d.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);d.appendChild(k);p.appendChild(d);d=document.createElement("tr");k=document.createElement("td");k.colSpan=2; +k.style.paddingTop="20px";k.setAttribute("align","right");u=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});u.className="geBtn";a.editor.cancelFirst&&k.appendChild(u);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.appendChild(u);d.appendChild(k);p.appendChild(d);l.appendChild(p);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,d,k,l,p){b=new mxPrintPreview(a,b,e,d,k,l);b.title=mxResources.get("preview");b.printBackgroundImage=!0;b.autoOrigin=p;a=a.background;if(null==a||""==a||a==mxConstants.NONE)a="#ffffff";b.backgroundColor=a;var q=b.writeHead;b.writeHead=function(a){q.apply(this,arguments);a.writeln('<style type="text/css">');a.writeln("@media screen {");a.writeln(" body > div { padding:30px;box-sizing:content-box; }");a.writeln("}");a.writeln("</style>")};return b}; PrintDialog.previewEnabled=!0; -var PageSetupDialog=function(a){function d(){null==f||f==mxConstants.NONE?(c.style.backgroundColor="",c.style.backgroundImage="url('"+Dialog.prototype.noColorImage+"')"):(c.style.backgroundColor=f,c.style.backgroundImage="")}function e(){null==r?(k.removeAttribute("title"),k.style.fontSize="",k.innerHTML=mxResources.get("change")+"..."):(k.setAttribute("title",r.src),k.style.fontSize="11px",k.innerHTML=r.src.substring(0,42)+"...")}var b=a.editor.graph,h,m,p=document.createElement("table");p.style.width= -"100%";p.style.height="100%";var q=document.createElement("tbody");h=document.createElement("tr");m=document.createElement("td");m.style.verticalAlign="top";m.style.fontSize="10pt";mxUtils.write(m,mxResources.get("paperSize")+":");h.appendChild(m);m=document.createElement("td");m.style.verticalAlign="top";m.style.fontSize="10pt";var u=PageSetupDialog.addPageFormatPanel(m,"pagesetupdialog",b.pageFormat);h.appendChild(m);q.appendChild(h);h=document.createElement("tr");m=document.createElement("td"); -mxUtils.write(m,mxResources.get("background")+":");h.appendChild(m);m=document.createElement("td");m.style.whiteSpace="nowrap";document.createElement("input").setAttribute("type","text");var c=document.createElement("button");c.style.width="18px";c.style.height="18px";c.style.marginRight="20px";c.style.backgroundPosition="center center";c.style.backgroundRepeat="no-repeat";var f=b.background;d();mxEvent.addListener(c,"click",function(c){a.pickColor(f||"none",function(a){f=a;d()});mxEvent.consume(c)}); -m.appendChild(c);mxUtils.write(m,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=b.getGridSize();m.appendChild(g);mxEvent.addListener(g,"change",function(){var a=parseInt(g.value);g.value=Math.max(1,isNaN(a)?b.getGridSize():a)});h.appendChild(m);q.appendChild(h);h=document.createElement("tr");m=document.createElement("td");mxUtils.write(m,mxResources.get("image")+ -":");h.appendChild(m);m=document.createElement("td");var k=document.createElement("a");k.style.textDecoration="underline";k.style.cursor="pointer";k.style.color="#a0a0a0";var r=b.backgroundImage;mxEvent.addListener(k,"click",function(c){a.showBackgroundImageDialog(function(a){r=a;e()});mxEvent.consume(c)});e();m.appendChild(k);h.appendChild(m);q.appendChild(h);h=document.createElement("tr");m=document.createElement("td");m.colSpan=2;m.style.paddingTop="16px";m.setAttribute("align","right");var l= -mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});l.className="geBtn";a.editor.cancelFirst&&m.appendChild(l);var n=mxUtils.button(mxResources.get("apply"),function(){a.hideDialog();b.gridSize!==g.value&&b.setGridSize(parseInt(g.value));var c=new ChangePageSetup(a,f,r,u.get());c.ignoreColor=b.background==f;c.ignoreImage=(null!=b.backgroundImage?b.backgroundImage.src:null)===(null!=r?r.src:null);b.pageFormat.width==c.previousFormat.width&&b.pageFormat.height==c.previousFormat.height&& -c.ignoreColor&&c.ignoreImage||b.model.execute(c)});n.className="geBtn gePrimaryBtn";m.appendChild(n);a.editor.cancelFirst||m.appendChild(l);h.appendChild(m);q.appendChild(h);p.appendChild(q);this.container=p}; -PageSetupDialog.addPageFormatPanel=function(a,d,e,b){function h(a,c,b){if(b||g!=document.activeElement&&k!=document.activeElement){a=!1;for(c=0;c<l.length;c++)b=l[c],B?"custom"==b.key&&(q.value=b.key,B=!1):null!=b.format&&("a4"==b.key?826==e.width?(e=mxRectangle.fromRectangle(e),e.width=827):826==e.height&&(e=mxRectangle.fromRectangle(e),e.height=827):"a5"==b.key&&(584==e.width?(e=mxRectangle.fromRectangle(e),e.width=583):584==e.height&&(e=mxRectangle.fromRectangle(e),e.height=583)),e.width==b.format.width&& -e.height==b.format.height?(q.value=b.key,m.setAttribute("checked","checked"),m.defaultChecked=!0,m.checked=!0,p.removeAttribute("checked"),p.defaultChecked=!1,p.checked=!1,a=!0):e.width==b.format.height&&e.height==b.format.width&&(q.value=b.key,m.removeAttribute("checked"),m.defaultChecked=!1,m.checked=!1,p.setAttribute("checked","checked"),p.defaultChecked=!0,a=p.checked=!0));a?(u.style.display="",f.style.display="none"):(g.value=e.width/100,k.value=e.height/100,m.setAttribute("checked","checked"), -q.value="custom",u.style.display="none",f.style.display="")}}d="format-"+d;var m=document.createElement("input");m.setAttribute("name",d);m.setAttribute("type","radio");m.setAttribute("value","portrait");var p=document.createElement("input");p.setAttribute("name",d);p.setAttribute("type","radio");p.setAttribute("value","landscape");var q=document.createElement("select");q.style.marginBottom="8px";q.style.width="202px";var u=document.createElement("div");u.style.marginLeft="4px";u.style.width="210px"; -u.style.height="24px";m.style.marginRight="6px";u.appendChild(m);d=document.createElement("span");d.style.maxWidth="100px";mxUtils.write(d,mxResources.get("portrait"));u.appendChild(d);p.style.marginLeft="10px";p.style.marginRight="6px";u.appendChild(p);var c=document.createElement("span");c.style.width="100px";mxUtils.write(c,mxResources.get("landscape"));u.appendChild(c);var f=document.createElement("div");f.style.marginLeft="4px";f.style.width="210px";f.style.height="24px";var g=document.createElement("input"); -g.setAttribute("size","7");g.style.textAlign="right";f.appendChild(g);mxUtils.write(f," in x ");var k=document.createElement("input");k.setAttribute("size","7");k.style.textAlign="right";f.appendChild(k);mxUtils.write(f," in");u.style.display="none";f.style.display="none";for(var r={},l=PageSetupDialog.getFormats(),n=0;n<l.length;n++){var w=l[n];r[w.key]=w;var v=document.createElement("option");v.setAttribute("value",w.key);mxUtils.write(v,w.title);q.appendChild(v)}var B=!1;h();a.appendChild(q);mxUtils.br(a); -a.appendChild(u);a.appendChild(f);var y=e,t=function(a,c){var d=r[q.value];null!=d.format?(g.value=d.format.width/100,k.value=d.format.height/100,f.style.display="none",u.style.display=""):(u.style.display="none",f.style.display="");d=parseFloat(g.value);if(isNaN(d)||0>=d)g.value=e.width/100;d=parseFloat(k.value);if(isNaN(d)||0>=d)k.value=e.height/100;d=new mxRectangle(0,0,Math.floor(100*parseFloat(g.value)),Math.floor(100*parseFloat(k.value)));"custom"!=q.value&&p.checked&&(d=new mxRectangle(0,0, -d.height,d.width));c&&B||d.width==y.width&&d.height==y.height||(y=d,null!=b&&b(y))};mxEvent.addListener(d,"click",function(a){m.checked=!0;t(a);mxEvent.consume(a)});mxEvent.addListener(c,"click",function(a){p.checked=!0;t(a);mxEvent.consume(a)});mxEvent.addListener(g,"blur",t);mxEvent.addListener(g,"click",t);mxEvent.addListener(k,"blur",t);mxEvent.addListener(k,"click",t);mxEvent.addListener(p,"change",t);mxEvent.addListener(m,"change",t);mxEvent.addListener(q,"change",function(a){B="custom"==q.value; -t(a,!0)});t();return{set:function(a){e=a;h(null,null,!0)},get:function(){return y},widthInput:g,heightInput:k}}; +var PageSetupDialog=function(a){function b(){null==f||f==mxConstants.NONE?(c.style.backgroundColor="",c.style.backgroundImage="url('"+Dialog.prototype.noColorImage+"')"):(c.style.backgroundColor=f,c.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 d=a.editor.graph,k,l,p=document.createElement("table");p.style.width= +"100%";p.style.height="100%";var q=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 u=PageSetupDialog.addPageFormatPanel(l,"pagesetupdialog",d.pageFormat);k.appendChild(l);q.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 c=document.createElement("button");c.style.width="18px";c.style.height="18px";c.style.marginRight="20px";c.style.backgroundPosition="center center";c.style.backgroundRepeat="no-repeat";var f=d.background;b();mxEvent.addListener(c,"click",function(c){a.pickColor(f||"none",function(a){f=a;b()});mxEvent.consume(c)}); +l.appendChild(c);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=d.getGridSize();l.appendChild(g);mxEvent.addListener(g,"change",function(){var a=parseInt(g.value);g.value=Math.max(1,isNaN(a)?d.getGridSize():a)});k.appendChild(l);q.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=d.backgroundImage;mxEvent.addListener(n,"click",function(c){a.showBackgroundImageDialog(function(a){r=a;e()});mxEvent.consume(c)});e();l.appendChild(n);k.appendChild(l);q.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();d.gridSize!==g.value&&d.setGridSize(parseInt(g.value));var c=new ChangePageSetup(a,f,r,u.get());c.ignoreColor=d.background==f;c.ignoreImage=(null!=d.backgroundImage?d.backgroundImage.src:null)===(null!=r?r.src:null);d.pageFormat.width==c.previousFormat.width&&d.pageFormat.height==c.previousFormat.height&& +c.ignoreColor&&c.ignoreImage||d.model.execute(c)});m.className="geBtn gePrimaryBtn";l.appendChild(m);a.editor.cancelFirst||l.appendChild(h);k.appendChild(l);q.appendChild(k);p.appendChild(q);this.container=p}; +PageSetupDialog.addPageFormatPanel=function(a,b,e,d){function k(a,c,d){if(d||g!=document.activeElement&&n!=document.activeElement){a=!1;for(c=0;c<h.length;c++)d=h[c],A?"custom"==d.key&&(q.value=d.key,A=!1):null!=d.format&&("a4"==d.key?826==e.width?(e=mxRectangle.fromRectangle(e),e.width=827):826==e.height&&(e=mxRectangle.fromRectangle(e),e.height=827):"a5"==d.key&&(584==e.width?(e=mxRectangle.fromRectangle(e),e.width=583):584==e.height&&(e=mxRectangle.fromRectangle(e),e.height=583)),e.width==d.format.width&& +e.height==d.format.height?(q.value=d.key,l.setAttribute("checked","checked"),l.defaultChecked=!0,l.checked=!0,p.removeAttribute("checked"),p.defaultChecked=!1,p.checked=!1,a=!0):e.width==d.format.height&&e.height==d.format.width&&(q.value=d.key,l.removeAttribute("checked"),l.defaultChecked=!1,l.checked=!1,p.setAttribute("checked","checked"),p.defaultChecked=!0,a=p.checked=!0));a?(u.style.display="",f.style.display="none"):(g.value=e.width/100,n.value=e.height/100,l.setAttribute("checked","checked"), +q.value="custom",u.style.display="none",f.style.display="")}}b="format-"+b;var l=document.createElement("input");l.setAttribute("name",b);l.setAttribute("type","radio");l.setAttribute("value","portrait");var p=document.createElement("input");p.setAttribute("name",b);p.setAttribute("type","radio");p.setAttribute("value","landscape");var q=document.createElement("select");q.style.marginBottom="8px";q.style.width="202px";var u=document.createElement("div");u.style.marginLeft="4px";u.style.width="210px"; +u.style.height="24px";l.style.marginRight="6px";u.appendChild(l);b=document.createElement("span");b.style.maxWidth="100px";mxUtils.write(b,mxResources.get("portrait"));u.appendChild(b);p.style.marginLeft="10px";p.style.marginRight="6px";u.appendChild(p);var c=document.createElement("span");c.style.width="100px";mxUtils.write(c,mxResources.get("landscape"));u.appendChild(c);var f=document.createElement("div");f.style.marginLeft="4px";f.style.width="210px";f.style.height="24px";var g=document.createElement("input"); +g.setAttribute("size","7");g.style.textAlign="right";f.appendChild(g);mxUtils.write(f," in x ");var n=document.createElement("input");n.setAttribute("size","7");n.style.textAlign="right";f.appendChild(n);mxUtils.write(f," in");u.style.display="none";f.style.display="none";for(var r={},h=PageSetupDialog.getFormats(),m=0;m<h.length;m++){var w=h[m];r[w.key]=w;var v=document.createElement("option");v.setAttribute("value",w.key);mxUtils.write(v,w.title);q.appendChild(v)}var A=!1;k();a.appendChild(q);mxUtils.br(a); +a.appendChild(u);a.appendChild(f);var y=e,t=function(a,c){var b=r[q.value];null!=b.format?(g.value=b.format.width/100,n.value=b.format.height/100,f.style.display="none",u.style.display=""):(u.style.display="none",f.style.display="");b=parseFloat(g.value);if(isNaN(b)||0>=b)g.value=e.width/100;b=parseFloat(n.value);if(isNaN(b)||0>=b)n.value=e.height/100;b=new mxRectangle(0,0,Math.floor(100*parseFloat(g.value)),Math.floor(100*parseFloat(n.value)));"custom"!=q.value&&p.checked&&(b=new mxRectangle(0,0, +b.height,b.width));c&&A||b.width==y.width&&b.height==y.height||(y=b,null!=d&&d(y))};mxEvent.addListener(b,"click",function(a){l.checked=!0;t(a);mxEvent.consume(a)});mxEvent.addListener(c,"click",function(a){p.checked=!0;t(a);mxEvent.consume(a)});mxEvent.addListener(g,"blur",t);mxEvent.addListener(g,"click",t);mxEvent.addListener(n,"blur",t);mxEvent.addListener(n,"click",t);mxEvent.addListener(p,"change",t);mxEvent.addListener(l,"change",t);mxEvent.addListener(q,"change",function(a){A="custom"==q.value; +t(a,!0)});t();return{set:function(a){e=a;k(null,null,!0)},get:function(){return y},widthInput:g,heightInput:n}}; PageSetupDialog.getFormats=function(){return[{key:"letter",title:'US-Letter (8,5" x 11")',format:mxConstants.PAGE_FORMAT_LETTER_PORTRAIT},{key:"legal",title:'US-Legal (8,5" x 14")',format:new mxRectangle(0,0,850,1400)},{key:"tabloid",title:"US-Tabloid (279 mm x 432 mm)",format:new mxRectangle(0,0,1100,1700)},{key:"a0",title:"A0 (841 mm x 1189 mm)",format:new mxRectangle(0,0,3300,4681)},{key:"a1",title:"A1 (594 mm x 841 mm)",format:new mxRectangle(0,0,2339,3300)},{key:"a2",title:"A2 (420 mm x 594 mm)", format:new mxRectangle(0,0,1654,2336)},{key:"a3",title:"A3 (297 mm x 420 mm)",format:new mxRectangle(0,0,1169,1654)},{key:"a4",title:"A4 (210 mm x 297 mm)",format:mxConstants.PAGE_FORMAT_A4_PORTRAIT},{key:"a5",title:"A5 (148 mm x 210 mm)",format:new mxRectangle(0,0,583,827)},{key:"a6",title:"A6 (105 mm x 148 mm)",format:new mxRectangle(0,0,413,583)},{key:"a7",title:"A7 (74 mm x 105 mm)",format:new mxRectangle(0,0,291,413)},{key:"custom",title:mxResources.get("custom"),format:null}]}; -(function(){mxGraphView.prototype.validateBackgroundPage=function(){var a=this.graph;if(null!=a.container&&!a.transparentBackground){if(a.pageVisible){var b=this.getBackgroundPageBounds();if(null==this.backgroundPageShape){for(var c=a.container.firstChild;null!=c&&c.nodeType!=mxConstants.NODETYPE_ELEMENT;)c=c.nextSibling;null!=c&&(this.backgroundPageShape=this.createBackgroundPageShape(b),this.backgroundPageShape.scale=1,this.backgroundPageShape.isShadow=!mxClient.IS_QUIRKS,this.backgroundPageShape.dialect= +(function(){mxGraphView.prototype.validateBackgroundPage=function(){var a=this.graph;if(null!=a.container&&!a.transparentBackground){if(a.pageVisible){var d=this.getBackgroundPageBounds();if(null==this.backgroundPageShape){for(var c=a.container.firstChild;null!=c&&c.nodeType!=mxConstants.NODETYPE_ELEMENT;)c=c.nextSibling;null!=c&&(this.backgroundPageShape=this.createBackgroundPageShape(d),this.backgroundPageShape.scale=1,this.backgroundPageShape.isShadow=!mxClient.IS_QUIRKS,this.backgroundPageShape.dialect= mxConstants.DIALECT_STRICTHTML,this.backgroundPageShape.init(a.container),c.style.position="absolute",a.container.insertBefore(this.backgroundPageShape.node,c),this.backgroundPageShape.redraw(),this.backgroundPageShape.node.className="geBackgroundPage",mxEvent.addListener(this.backgroundPageShape.node,"dblclick",mxUtils.bind(this,function(c){a.dblClick(c)})),mxEvent.addGestureListeners(this.backgroundPageShape.node,mxUtils.bind(this,function(c){a.fireMouseEvent(mxEvent.MOUSE_DOWN,new mxMouseEvent(c))}), -mxUtils.bind(this,function(c){null!=a.tooltipHandler&&a.tooltipHandler.isHideOnHover()&&a.tooltipHandler.hide();a.isMouseDown&&!mxEvent.isConsumed(c)&&a.fireMouseEvent(mxEvent.MOUSE_MOVE,new mxMouseEvent(c))}),mxUtils.bind(this,function(c){a.fireMouseEvent(mxEvent.MOUSE_UP,new mxMouseEvent(c))})))}else this.backgroundPageShape.scale=1,this.backgroundPageShape.bounds=b,this.backgroundPageShape.redraw()}else null!=this.backgroundPageShape&&(this.backgroundPageShape.destroy(),this.backgroundPageShape= -null);this.validateBackgroundStyles()}};mxGraphView.prototype.validateBackgroundStyles=function(){var a=this.graph,b=null==a.background||a.background==mxConstants.NONE?a.defaultPageBackgroundColor:a.background,c=null!=b&&this.gridColor!=b.toLowerCase()?this.gridColor:"#ffffff",d="none",g="";if(a.isGridEnabled()){g=10;mxClient.IS_SVG?(d=unescape(encodeURIComponent(this.createSvgGrid(c))),d=window.btoa?btoa(d):Base64.encode(d,!0),d="url(data:image/svg+xml;base64,"+d+")",g=a.gridSize*this.scale*this.gridSteps): -d="url("+this.gridImage+")";var e=c=0;null!=a.view.backgroundPageShape&&(e=this.getBackgroundPageBounds(),c=1+e.x,e=1+e.y);g=-Math.round(g-mxUtils.mod(this.translate.x*this.scale-c,g))+"px "+-Math.round(g-mxUtils.mod(this.translate.y*this.scale-e,g))+"px"}c=a.view.canvas;null!=c.ownerSVGElement&&(c=c.ownerSVGElement);null!=a.view.backgroundPageShape?(a.view.backgroundPageShape.node.style.backgroundPosition=g,a.view.backgroundPageShape.node.style.backgroundImage=d,a.view.backgroundPageShape.node.style.backgroundColor= -b,a.container.className="geDiagramContainer geDiagramBackdrop",c.style.backgroundImage="none",c.style.backgroundColor=""):(a.container.className="geDiagramContainer",c.style.backgroundPosition=g,c.style.backgroundColor=b,c.style.backgroundImage=d)};mxGraphView.prototype.createSvgGrid=function(a){for(var b=this.graph.gridSize*this.scale;b<this.minGridSize;)b*=2;for(var c=this.gridSteps*b,d=[],g=1;g<this.gridSteps;g++){var e=g*b;d.push("M 0 "+e+" L "+c+" "+e+" M "+e+" 0 L "+e+" "+c)}return'<svg width="'+ -c+'" height="'+c+'" xmlns="'+mxConstants.NS_SVG+'"><defs><pattern id="grid" width="'+c+'" height="'+c+'" patternUnits="userSpaceOnUse"><path d="'+d.join(" ")+'" fill="none" stroke="'+a+'" opacity="0.2" stroke-width="1"/><path d="M '+c+" 0 L 0 0 0 "+c+'" fill="none" stroke="'+a+'" stroke-width="1"/></pattern></defs><rect width="100%" height="100%" fill="url(#grid)"/></svg>'};var a=mxGraph.prototype.panGraph;mxGraph.prototype.panGraph=function(b,d){a.apply(this,arguments);if(null!=this.shiftPreview1){var c= -this.view.canvas;null!=c.ownerSVGElement&&(c=c.ownerSVGElement);var f=this.gridSize*this.view.scale*this.view.gridSteps,f=-Math.round(f-mxUtils.mod(this.view.translate.x*this.view.scale+b,f))+"px "+-Math.round(f-mxUtils.mod(this.view.translate.y*this.view.scale+d,f))+"px";c.style.backgroundPosition=f}};mxGraph.prototype.updatePageBreaks=function(a,b,c){var d=this.view.scale,g=this.view.translate,e=this.pageFormat,r=d*this.pageScale,l=this.view.getBackgroundPageBounds();b=l.width;c=l.height;var n= -new mxRectangle(d*g.x,d*g.y,e.width*r,e.height*r),w=(a=a&&Math.min(n.width,n.height)>this.minPageBreakDist)?Math.ceil(c/n.height)-1:0,v=a?Math.ceil(b/n.width)-1:0,h=l.x+b,y=l.y+c;null==this.horizontalPageBreaks&&0<w&&(this.horizontalPageBreaks=[]);null==this.verticalPageBreaks&&0<v&&(this.verticalPageBreaks=[]);a=mxUtils.bind(this,function(a){if(null!=a){for(var c=a==this.horizontalPageBreaks?w:v,b=0;b<=c;b++){var d=a==this.horizontalPageBreaks?[new mxPoint(Math.round(l.x),Math.round(l.y+(b+1)*n.height)), -new mxPoint(Math.round(h),Math.round(l.y+(b+1)*n.height))]:[new mxPoint(Math.round(l.x+(b+1)*n.width),Math.round(l.y)),new mxPoint(Math.round(l.x+(b+1)*n.width),Math.round(y))];null!=a[b]?(a[b].points=d,a[b].redraw()):(d=new mxPolyline(d,this.pageBreakColor),d.dialect=this.dialect,d.isDashed=this.pageBreakDashed,d.pointerEvents=!1,d.init(this.view.backgroundPane),d.redraw(),a[b]=d)}for(b=c;b<a.length;b++)a[b].destroy();a.splice(c,a.length-c)}});a(this.horizontalPageBreaks);a(this.verticalPageBreaks)}; -var d=mxGraphHandler.prototype.shouldRemoveCellsFromParent;mxGraphHandler.prototype.shouldRemoveCellsFromParent=function(a,b,c){for(var f=0;f<b.length;f++)if(this.graph.getModel().isVertex(b[f])){var g=this.graph.getCellGeometry(b[f]);if(null!=g&&g.relative)return!1}return d.apply(this,arguments)};var e=mxConnectionHandler.prototype.createMarker;mxConnectionHandler.prototype.createMarker=function(){var a=e.apply(this,arguments);a.intersects=mxUtils.bind(this,function(b,c){return this.isConnecting()? -!0:mxCellMarker.prototype.intersects.apply(a,arguments)});return a};mxGraphView.prototype.createBackgroundPageShape=function(a){return new mxRectangleShape(a,"#ffffff",this.graph.defaultPageBorderColor)};mxGraphView.prototype.getBackgroundPageBounds=function(){var a=this.getGraphBounds(),b=0<a.width?a.x/this.scale-this.translate.x:0,c=0<a.height?a.y/this.scale-this.translate.y:0,d=this.graph.pageFormat,g=this.graph.pageScale,e=d.width*g,d=d.height*g,g=Math.floor(Math.min(0,b)/e),r=Math.floor(Math.min(0, -c)/d);return new mxRectangle(this.scale*(this.translate.x+g*e),this.scale*(this.translate.y+r*d),this.scale*(Math.ceil(Math.max(1,b+a.width/this.scale)/e)-g)*e,this.scale*(Math.ceil(Math.max(1,c+a.height/this.scale)/d)-r)*d)};var b=mxGraph.prototype.panGraph;mxGraph.prototype.panGraph=function(a,d){b.apply(this,arguments);this.dialect==mxConstants.DIALECT_SVG||null==this.view.backgroundPageShape||this.useScrollbarsForPanning&&mxUtils.hasScrollbars(this.container)||(this.view.backgroundPageShape.node.style.marginLeft= -a+"px",this.view.backgroundPageShape.node.style.marginTop=d+"px")};var h=mxPopupMenu.prototype.addItem;mxPopupMenu.prototype.addItem=function(a,b,c,d,g,e){var f=h.apply(this,arguments);null==e||e||mxEvent.addListener(f,"mousedown",function(a){mxEvent.consume(a)});return f};var m=mxGraphHandler.prototype.getInitialCellForEvent;mxGraphHandler.prototype.getInitialCellForEvent=function(a){var b=this.graph.getModel(),c=b.getParent(this.graph.getSelectionCell()),d=m.apply(this,arguments),g=b.getParent(d); -if(null==c||c!=d&&c!=g)for(;!this.graph.isCellSelected(d)&&!this.graph.isCellSelected(g)&&b.isVertex(g)&&!this.graph.isContainer(g);)d=g,g=this.graph.getModel().getParent(d);return d};var p=mxGraphHandler.prototype.isDelayedSelection;mxGraphHandler.prototype.isDelayedSelection=function(a,b){var c=p.apply(this,arguments);if(!c)for(var d=this.graph.getModel(),g=d.getParent(a);null!=g;){if(this.graph.isCellSelected(g)&&d.isVertex(g)){c=!0;break}g=d.getParent(g)}return c};mxGraphHandler.prototype.selectDelayed= -function(a){if(!this.graph.popupMenuHandler.isPopupTrigger(a)){var b=a.getCell();null==b&&(b=this.cell);var c=this.graph.view.getState(b);if(null==c||!a.isSource(c.control))for(var c=this.graph.getModel(),d=c.getParent(b);!this.graph.isCellSelected(d)&&c.isVertex(d);)b=d,d=c.getParent(b);this.graph.selectCellForEvent(b,a.getEvent())}};mxPopupMenuHandler.prototype.getCellForPopupEvent=function(a){a=a.getCell();for(var b=this.graph.getModel(),c=b.getParent(a);b.isVertex(c)&&!this.graph.isContainer(c);)this.graph.isCellSelected(c)&& -(a=c),c=b.getParent(c);return a}})();EditorUi=function(a,d,e){mxEventSource.call(this);this.destroyFunctions=[];this.editor=a||new Editor;this.container=d||document.body;var b=this.editor.graph;b.lightbox=e;b.useCssTransforms&&(this.lazyZoomDelay=0);mxClient.IS_SVG?mxPopupMenu.prototype.submenuImage="data:image/gif;base64,R0lGODlhCQAJAIAAAP///zMzMyH5BAEAAAAALAAAAAAJAAkAAAIPhI8WebHsHopSOVgb26AAADs=":(new Image).src=mxPopupMenu.prototype.submenuImage;mxClient.IS_SVG||null==mxConnectionHandler.prototype.connectImage||((new Image).src=mxConnectionHandler.prototype.connectImage.src); -this.editor.chromeless&&!this.editor.editable&&(this.footerHeight=0,b.isEnabled=function(){return!1},b.panningHandler.isForcePanningEvent=function(a){return!mxEvent.isPopupTrigger(a.getEvent())});this.actions=new Actions(this);this.menus=this.createMenus();this.createDivs();this.createUi();this.refresh();var h=mxUtils.bind(this,function(a){null==a&&(a=window.event);return this.isSelectionAllowed(a)||b.isEditing()});this.container==document.body&&(this.menubarContainer.onselectstart=h,this.menubarContainer.onmousedown= -h,this.toolbarContainer.onselectstart=h,this.toolbarContainer.onmousedown=h,this.diagramContainer.onselectstart=h,this.diagramContainer.onmousedown=h,this.sidebarContainer.onselectstart=h,this.sidebarContainer.onmousedown=h,this.formatContainer.onselectstart=h,this.formatContainer.onmousedown=h,this.footerContainer.onselectstart=h,this.footerContainer.onmousedown=h,null!=this.tabContainer&&(this.tabContainer.onselectstart=h));!this.editor.chromeless||this.editor.editable?(d=function(a){var c=mxEvent.getSource(a); -if("A"==c.nodeName)for(;null!=c;){if("geHint"==c.className)return!0;c=c.parentNode}return h(a)},mxClient.IS_IE&&("undefined"===typeof document.documentMode||9>document.documentMode)?mxEvent.addListener(this.diagramContainer,"contextmenu",d):this.diagramContainer.oncontextmenu=d):b.panningHandler.usePopupTrigger=!1;b.init(this.diagramContainer);mxClient.IS_SVG&&null!=b.view.getDrawPane()&&(d=b.view.getDrawPane().ownerSVGElement,null!=d&&(d.style.position="absolute"));this.hoverIcons=this.createHoverIcons(); -mxEvent.addListener(this.diagramContainer,"mousemove",mxUtils.bind(this,function(a){var c=mxUtils.getOffset(this.diagramContainer);0<mxEvent.getClientX(a)-c.x-this.diagramContainer.clientWidth||0<mxEvent.getClientY(a)-c.y-this.diagramContainer.clientHeight?this.diagramContainer.setAttribute("title",mxResources.get("panTooltip")):this.diagramContainer.removeAttribute("title")}));var m=!1,p=this.hoverIcons.isResetEvent;this.hoverIcons.isResetEvent=function(a,c){return m||p.apply(this,arguments)};this.keydownHandler= -mxUtils.bind(this,function(a){32==a.which?(m=!0,this.hoverIcons.reset(),b.container.style.cursor="move",b.isEditing()||mxEvent.getSource(a)!=b.container||mxEvent.consume(a)):mxEvent.isConsumed(a)||27!=a.keyCode||this.hideDialog()});mxEvent.addListener(document,"keydown",this.keydownHandler);this.keyupHandler=mxUtils.bind(this,function(a){b.container.style.cursor="";m=!1});mxEvent.addListener(document,"keyup",this.keyupHandler);var q=b.panningHandler.isForcePanningEvent;b.panningHandler.isForcePanningEvent= -function(a){return q.apply(this,arguments)||m||mxEvent.isMouseEvent(a.getEvent())&&(this.usePopupTrigger||!mxEvent.isPopupTrigger(a.getEvent()))&&(!mxEvent.isControlDown(a.getEvent())&&mxEvent.isRightMouseButton(a.getEvent())||mxEvent.isMiddleMouseButton(a.getEvent()))};var u=b.cellEditor.isStopEditingEvent;b.cellEditor.isStopEditingEvent=function(a){return u.apply(this,arguments)||13==a.keyCode&&(!mxClient.IS_SF&&mxEvent.isControlDown(a)||mxClient.IS_MAC&&mxEvent.isMetaDown(a)||mxClient.IS_SF&&mxEvent.isShiftDown(a))}; -var c=!1,f=null,g=null,k=null,r=mxUtils.bind(this,function(){if(null!=this.toolbar&&c!=b.cellEditor.isContentEditing()){for(var a=this.toolbar.container.firstChild,d=[];null!=a;){var e=a.nextSibling;0>mxUtils.indexOf(this.toolbar.staticElements,a)&&(a.parentNode.removeChild(a),d.push(a));a=e}a=this.toolbar.fontMenu;e=this.toolbar.sizeMenu;if(null==k)this.toolbar.createTextToolbar();else{for(var l=0;l<k.length;l++)this.toolbar.container.appendChild(k[l]);this.toolbar.fontMenu=f;this.toolbar.sizeMenu= -g}c=b.cellEditor.isContentEditing();f=a;g=e;k=d}}),l=this,n=b.cellEditor.startEditing;b.cellEditor.startEditing=function(){n.apply(this,arguments);r();if(b.cellEditor.isContentEditing()){var a=!1,c=function(){a||(a=!0,window.setTimeout(function(){for(var c=b.getSelectedElement();null!=c&&c.nodeType!=mxConstants.NODETYPE_ELEMENT;)c=c.parentNode;if(null!=c&&(c=mxUtils.getCurrentStyle(c),null!=c&&null!=l.toolbar)){var d=c.fontFamily;"'"==d.charAt(0)&&(d=d.substring(1));"'"==d.charAt(d.length-1)&&(d= -d.substring(0,d.length-1));l.toolbar.setFontName(d);l.toolbar.setFontSize(parseInt(c.fontSize))}a=!1},0))};mxEvent.addListener(b.cellEditor.textarea,"input",c);mxEvent.addListener(b.cellEditor.textarea,"touchend",c);mxEvent.addListener(b.cellEditor.textarea,"mouseup",c);mxEvent.addListener(b.cellEditor.textarea,"keyup",c);c()}};var w=b.cellEditor.stopEditing;b.cellEditor.stopEditing=function(a,c){w.apply(this,arguments);r()};b.container.setAttribute("tabindex","0");b.container.style.cursor="default"; -if(window.self===window.top&&null!=b.container.parentNode)try{b.container.focus()}catch(A){}var v=b.fireMouseEvent;b.fireMouseEvent=function(a,c,b){a==mxEvent.MOUSE_DOWN&&this.container.focus();v.apply(this,arguments)};b.popupMenuHandler.autoExpand=!0;null!=this.menus&&(b.popupMenuHandler.factoryMethod=mxUtils.bind(this,function(a,c,b){this.menus.createPopupMenu(a,c,b)}));mxEvent.addGestureListeners(document,mxUtils.bind(this,function(a){b.popupMenuHandler.hideMenu()}));this.keyHandler=this.createKeyHandler(a); -this.getKeyHandler=function(){return keyHandler};var B="rounded shadow glass dashed dashPattern comic labelBackgroundColor".split(" "),y="shape edgeStyle curved rounded elbow comic jumpStyle jumpSize".split(" ");this.setDefaultStyle=function(a){var c=b.view.getState(a);if(null!=c){a=a.clone();a.style="";a=b.getCellStyle(a);var d=[],f=[],g;for(g in c.style)a[g]!=c.style[g]&&(d.push(c.style[g]),f.push(g));g=b.getModel().getStyle(c.cell);for(var e=null!=g?g.split(";"):[],l=0;l<e.length;l++){var k=e[l], -n=k.indexOf("=");0<=n&&(g=k.substring(0,n),k=k.substring(n+1),null!=a[g]&&"none"==k&&(d.push(k),f.push(g)))}b.getModel().isEdge(c.cell)?b.currentEdgeStyle={}:b.currentVertexStyle={};this.fireEvent(new mxEventObject("styleChanged","keys",f,"values",d,"cells",[c.cell]))}};this.clearDefaultStyle=function(){b.currentEdgeStyle=mxUtils.clone(b.defaultEdgeStyle);b.currentVertexStyle=mxUtils.clone(b.defaultVertexStyle);this.fireEvent(new mxEventObject("styleChanged","keys",[],"values",[],"cells",[]))};var t= -["fontFamily","fontSize","fontColor"],z="edgeStyle startArrow startFill startSize endArrow endFill endSize jettySize orthogonalLoop".split(" "),H=["startArrow startFill startSize endArrow endFill endSize jettySize orthogonalLoop".split(" "),["strokeColor","strokeWidth"],["fillColor","gradientColor"],t,["opacity"],["align"],["html"]];for(a=0;a<H.length;a++)for(d=0;d<H[a].length;d++)B.push(H[a][d]);for(a=0;a<y.length;a++)0>mxUtils.indexOf(B,y[a])&&B.push(y[a]);var G=function(a,c){var d=b.getModel(); -d.beginUpdate();try{if(c)for(var f=d.isEdge(l),g=f?b.currentEdgeStyle:b.currentVertexStyle,f=["fontSize","fontFamily","fontColor"],e=0;e<f.length;e++){var k=g[f[e]];null!=k&&b.setCellStyles(f[e],k,a)}else for(k=0;k<a.length;k++){for(var l=a[k],n=d.getStyle(l),r=null!=n?n.split(";"):[],F=B.slice(),e=0;e<r.length;e++){var t=r[e],v=t.indexOf("=");if(0<=v){var w=t.substring(0,v),h=mxUtils.indexOf(F,w);0<=h&&F.splice(h,1);for(var q=0;q<H.length;q++){var z=H[q];if(0<=mxUtils.indexOf(z,w))for(var A=0;A< -z.length;A++){var m=mxUtils.indexOf(F,z[A]);0<=m&&F.splice(m,1)}}}}for(var g=(f=d.isEdge(l))?b.currentEdgeStyle:b.currentVertexStyle,p=d.getStyle(l),e=0;e<F.length;e++){var w=F[e],J=g[w];null==J||"shape"==w&&!f||f&&!(0>mxUtils.indexOf(y,w))||(p=mxUtils.setStyle(p,w,J))}d.setStyle(l,p)}}finally{d.endUpdate()}};b.addListener("cellsInserted",function(a,c){G(c.getProperty("cells"))});b.addListener("textInserted",function(a,c){G(c.getProperty("cells"),!0)});b.connectionHandler.addListener(mxEvent.CONNECT, -function(a,c){var b=[c.getProperty("cell")];c.getProperty("terminalInserted")&&b.push(c.getProperty("terminal"));G(b)});this.addListener("styleChanged",mxUtils.bind(this,function(a,c){var d=c.getProperty("cells"),f=!1,g=!1;if(0<d.length)for(var e=0;e<d.length&&(f=b.getModel().isVertex(d[e])||f,!(g=b.getModel().isEdge(d[e])||g)||!f);e++);else g=f=!0;for(var d=c.getProperty("keys"),k=c.getProperty("values"),e=0;e<d.length;e++){var l=0<=mxUtils.indexOf(t,d[e]);if("strokeColor"!=d[e]||null!=k[e]&&"none"!= -k[e])if(0<=mxUtils.indexOf(y,d[e]))g||0<=mxUtils.indexOf(z,d[e])?null==k[e]?delete b.currentEdgeStyle[d[e]]:b.currentEdgeStyle[d[e]]=k[e]:f&&0<=mxUtils.indexOf(B,d[e])&&(null==k[e]?delete b.currentVertexStyle[d[e]]:b.currentVertexStyle[d[e]]=k[e]);else if(0<=mxUtils.indexOf(B,d[e])){if(f||l)null==k[e]?delete b.currentVertexStyle[d[e]]:b.currentVertexStyle[d[e]]=k[e];if(g||l||0<=mxUtils.indexOf(z,d[e]))null==k[e]?delete b.currentEdgeStyle[d[e]]:b.currentEdgeStyle[d[e]]=k[e]}}null!=this.toolbar&&(this.toolbar.setFontName(b.currentVertexStyle.fontFamily|| -Menus.prototype.defaultFont),this.toolbar.setFontSize(b.currentVertexStyle.fontSize||Menus.prototype.defaultFontSize),null!=this.toolbar.edgeStyleMenu&&(this.toolbar.edgeStyleMenu.getElementsByTagName("div")[0].className="orthogonalEdgeStyle"==b.currentEdgeStyle.edgeStyle&&"1"==b.currentEdgeStyle.curved?"geSprite geSprite-curved":"straight"==b.currentEdgeStyle.edgeStyle||"none"==b.currentEdgeStyle.edgeStyle||null==b.currentEdgeStyle.edgeStyle?"geSprite geSprite-straight":"entityRelationEdgeStyle"== -b.currentEdgeStyle.edgeStyle?"geSprite geSprite-entity":"elbowEdgeStyle"==b.currentEdgeStyle.edgeStyle?"geSprite geSprite-"+("vertical"==b.currentEdgeStyle.elbow?"verticalelbow":"horizontalelbow"):"isometricEdgeStyle"==b.currentEdgeStyle.edgeStyle?"geSprite geSprite-"+("vertical"==b.currentEdgeStyle.elbow?"verticalisometric":"horizontalisometric"):"geSprite geSprite-orthogonal"),null!=this.toolbar.edgeShapeMenu&&(this.toolbar.edgeShapeMenu.getElementsByTagName("div")[0].className="link"==b.currentEdgeStyle.shape? -"geSprite geSprite-linkedge":"flexArrow"==b.currentEdgeStyle.shape?"geSprite geSprite-arrow":"arrow"==b.currentEdgeStyle.shape?"geSprite geSprite-simplearrow":"geSprite geSprite-connection"),null!=this.toolbar.lineStartMenu&&(this.toolbar.lineStartMenu.getElementsByTagName("div")[0].className=this.getCssClassForMarker("start",b.currentEdgeStyle.shape,b.currentEdgeStyle[mxConstants.STYLE_STARTARROW],mxUtils.getValue(b.currentEdgeStyle,"startFill","1"))),null!=this.toolbar.lineEndMenu&&(this.toolbar.lineEndMenu.getElementsByTagName("div")[0].className= -this.getCssClassForMarker("end",b.currentEdgeStyle.shape,b.currentEdgeStyle[mxConstants.STYLE_ENDARROW],mxUtils.getValue(b.currentEdgeStyle,"endFill","1"))))}));null!=this.toolbar&&(a=mxUtils.bind(this,function(){var a=b.currentVertexStyle.fontFamily||"Helvetica",c=String(b.currentVertexStyle.fontSize||"12"),d=b.getView().getState(b.getSelectionCell());null!=d&&(a=d.style[mxConstants.STYLE_FONTFAMILY]||a,c=d.style[mxConstants.STYLE_FONTSIZE]||c,10<a.length&&(a=a.substring(0,8)+"..."));this.toolbar.setFontName(a); -this.toolbar.setFontSize(c)}),b.getSelectionModel().addListener(mxEvent.CHANGE,a),b.getModel().addListener(mxEvent.CHANGE,a));b.addListener(mxEvent.CELLS_ADDED,function(a,c){var d=c.getProperty("cells"),f=c.getProperty("parent");b.getModel().isLayer(f)&&!b.isCellVisible(f)&&null!=d&&0<d.length&&b.getModel().setVisible(f,!0)});this.gestureHandler=mxUtils.bind(this,function(a){null!=this.currentMenu&&mxEvent.getSource(a)!=this.currentMenu.div&&this.hideCurrentMenu()});mxEvent.addGestureListeners(document, +mxUtils.bind(this,function(c){null!=a.tooltipHandler&&a.tooltipHandler.isHideOnHover()&&a.tooltipHandler.hide();a.isMouseDown&&!mxEvent.isConsumed(c)&&a.fireMouseEvent(mxEvent.MOUSE_MOVE,new mxMouseEvent(c))}),mxUtils.bind(this,function(c){a.fireMouseEvent(mxEvent.MOUSE_UP,new mxMouseEvent(c))})))}else this.backgroundPageShape.scale=1,this.backgroundPageShape.bounds=d,this.backgroundPageShape.redraw()}else null!=this.backgroundPageShape&&(this.backgroundPageShape.destroy(),this.backgroundPageShape= +null);this.validateBackgroundStyles()}};mxGraphView.prototype.validateBackgroundStyles=function(){var a=this.graph,d=null==a.background||a.background==mxConstants.NONE?a.defaultPageBackgroundColor:a.background,c=null!=d&&this.gridColor!=d.toLowerCase()?this.gridColor:"#ffffff",b="none",g="";if(a.isGridEnabled()){g=10;mxClient.IS_SVG?(b=unescape(encodeURIComponent(this.createSvgGrid(c))),b=window.btoa?btoa(b):Base64.encode(b,!0),b="url(data:image/svg+xml;base64,"+b+")",g=a.gridSize*this.scale*this.gridSteps): +b="url("+this.gridImage+")";var e=c=0;null!=a.view.backgroundPageShape&&(e=this.getBackgroundPageBounds(),c=1+e.x,e=1+e.y);g=-Math.round(g-mxUtils.mod(this.translate.x*this.scale-c,g))+"px "+-Math.round(g-mxUtils.mod(this.translate.y*this.scale-e,g))+"px"}c=a.view.canvas;null!=c.ownerSVGElement&&(c=c.ownerSVGElement);null!=a.view.backgroundPageShape?(a.view.backgroundPageShape.node.style.backgroundPosition=g,a.view.backgroundPageShape.node.style.backgroundImage=b,a.view.backgroundPageShape.node.style.backgroundColor= +d,a.container.className="geDiagramContainer geDiagramBackdrop",c.style.backgroundImage="none",c.style.backgroundColor=""):(a.container.className="geDiagramContainer",c.style.backgroundPosition=g,c.style.backgroundColor=d,c.style.backgroundImage=b)};mxGraphView.prototype.createSvgGrid=function(a){for(var d=this.graph.gridSize*this.scale;d<this.minGridSize;)d*=2;for(var c=this.gridSteps*d,b=[],g=1;g<this.gridSteps;g++){var e=g*d;b.push("M 0 "+e+" L "+c+" "+e+" M "+e+" 0 L "+e+" "+c)}return'<svg width="'+ +c+'" height="'+c+'" xmlns="'+mxConstants.NS_SVG+'"><defs><pattern id="grid" width="'+c+'" height="'+c+'" patternUnits="userSpaceOnUse"><path d="'+b.join(" ")+'" fill="none" stroke="'+a+'" opacity="0.2" stroke-width="1"/><path d="M '+c+" 0 L 0 0 0 "+c+'" fill="none" stroke="'+a+'" stroke-width="1"/></pattern></defs><rect width="100%" height="100%" fill="url(#grid)"/></svg>'};var a=mxGraph.prototype.panGraph;mxGraph.prototype.panGraph=function(d,b){a.apply(this,arguments);if(null!=this.shiftPreview1){var c= +this.view.canvas;null!=c.ownerSVGElement&&(c=c.ownerSVGElement);var f=this.gridSize*this.view.scale*this.view.gridSteps,f=-Math.round(f-mxUtils.mod(this.view.translate.x*this.view.scale+d,f))+"px "+-Math.round(f-mxUtils.mod(this.view.translate.y*this.view.scale+b,f))+"px";c.style.backgroundPosition=f}};mxGraph.prototype.updatePageBreaks=function(a,d,c){var b=this.view.scale,g=this.view.translate,e=this.pageFormat,r=b*this.pageScale,h=this.view.getBackgroundPageBounds();d=h.width;c=h.height;var m= +new mxRectangle(b*g.x,b*g.y,e.width*r,e.height*r),w=(a=a&&Math.min(m.width,m.height)>this.minPageBreakDist)?Math.ceil(c/m.height)-1:0,v=a?Math.ceil(d/m.width)-1:0,k=h.x+d,y=h.y+c;null==this.horizontalPageBreaks&&0<w&&(this.horizontalPageBreaks=[]);null==this.verticalPageBreaks&&0<v&&(this.verticalPageBreaks=[]);a=mxUtils.bind(this,function(a){if(null!=a){for(var c=a==this.horizontalPageBreaks?w:v,d=0;d<=c;d++){var b=a==this.horizontalPageBreaks?[new mxPoint(Math.round(h.x),Math.round(h.y+(d+1)*m.height)), +new mxPoint(Math.round(k),Math.round(h.y+(d+1)*m.height))]:[new mxPoint(Math.round(h.x+(d+1)*m.width),Math.round(h.y)),new mxPoint(Math.round(h.x+(d+1)*m.width),Math.round(y))];null!=a[d]?(a[d].points=b,a[d].redraw()):(b=new mxPolyline(b,this.pageBreakColor),b.dialect=this.dialect,b.isDashed=this.pageBreakDashed,b.pointerEvents=!1,b.init(this.view.backgroundPane),b.redraw(),a[d]=b)}for(d=c;d<a.length;d++)a[d].destroy();a.splice(c,a.length-c)}});a(this.horizontalPageBreaks);a(this.verticalPageBreaks)}; +var b=mxGraphHandler.prototype.shouldRemoveCellsFromParent;mxGraphHandler.prototype.shouldRemoveCellsFromParent=function(a,d,c){for(var f=0;f<d.length;f++)if(this.graph.getModel().isVertex(d[f])){var g=this.graph.getCellGeometry(d[f]);if(null!=g&&g.relative)return!1}return b.apply(this,arguments)};var e=mxConnectionHandler.prototype.createMarker;mxConnectionHandler.prototype.createMarker=function(){var a=e.apply(this,arguments);a.intersects=mxUtils.bind(this,function(d,c){return this.isConnecting()? +!0:mxCellMarker.prototype.intersects.apply(a,arguments)});return a};mxGraphView.prototype.createBackgroundPageShape=function(a){return new mxRectangleShape(a,"#ffffff",this.graph.defaultPageBorderColor)};mxGraphView.prototype.getBackgroundPageBounds=function(){var a=this.getGraphBounds(),d=0<a.width?a.x/this.scale-this.translate.x:0,c=0<a.height?a.y/this.scale-this.translate.y:0,b=this.graph.pageFormat,g=this.graph.pageScale,e=b.width*g,b=b.height*g,g=Math.floor(Math.min(0,d)/e),r=Math.floor(Math.min(0, +c)/b);return new mxRectangle(this.scale*(this.translate.x+g*e),this.scale*(this.translate.y+r*b),this.scale*(Math.ceil(Math.max(1,d+a.width/this.scale)/e)-g)*e,this.scale*(Math.ceil(Math.max(1,c+a.height/this.scale)/b)-r)*b)};var d=mxGraph.prototype.panGraph;mxGraph.prototype.panGraph=function(a,b){d.apply(this,arguments);this.dialect==mxConstants.DIALECT_SVG||null==this.view.backgroundPageShape||this.useScrollbarsForPanning&&mxUtils.hasScrollbars(this.container)||(this.view.backgroundPageShape.node.style.marginLeft= +a+"px",this.view.backgroundPageShape.node.style.marginTop=b+"px")};var k=mxPopupMenu.prototype.addItem;mxPopupMenu.prototype.addItem=function(a,d,c,b,g,e){var f=k.apply(this,arguments);null==e||e||mxEvent.addListener(f,"mousedown",function(a){mxEvent.consume(a)});return f};var l=mxGraphHandler.prototype.getInitialCellForEvent;mxGraphHandler.prototype.getInitialCellForEvent=function(a){var d=this.graph.getModel(),c=d.getParent(this.graph.getSelectionCell()),b=l.apply(this,arguments),g=d.getParent(b); +if(null==c||c!=b&&c!=g)for(;!this.graph.isCellSelected(b)&&!this.graph.isCellSelected(g)&&d.isVertex(g)&&!this.graph.isContainer(g);)b=g,g=this.graph.getModel().getParent(b);return b};var p=mxGraphHandler.prototype.isDelayedSelection;mxGraphHandler.prototype.isDelayedSelection=function(a,d){var c=p.apply(this,arguments);if(!c)for(var b=this.graph.getModel(),g=b.getParent(a);null!=g;){if(this.graph.isCellSelected(g)&&b.isVertex(g)){c=!0;break}g=b.getParent(g)}return c};mxGraphHandler.prototype.selectDelayed= +function(a){if(!this.graph.popupMenuHandler.isPopupTrigger(a)){var d=a.getCell();null==d&&(d=this.cell);var c=this.graph.view.getState(d);if(null==c||!a.isSource(c.control))for(var c=this.graph.getModel(),b=c.getParent(d);!this.graph.isCellSelected(b)&&c.isVertex(b);)d=b,b=c.getParent(d);this.graph.selectCellForEvent(d,a.getEvent())}};mxPopupMenuHandler.prototype.getCellForPopupEvent=function(a){a=a.getCell();for(var d=this.graph.getModel(),c=d.getParent(a);d.isVertex(c)&&!this.graph.isContainer(c);)this.graph.isCellSelected(c)&& +(a=c),c=d.getParent(c);return a}})();EditorUi=function(a,b,e){mxEventSource.call(this);this.destroyFunctions=[];this.editor=a||new Editor;this.container=b||document.body;var d=this.editor.graph;d.lightbox=e;d.useCssTransforms&&(this.lazyZoomDelay=0);mxClient.IS_SVG?mxPopupMenu.prototype.submenuImage="data:image/gif;base64,R0lGODlhCQAJAIAAAP///zMzMyH5BAEAAAAALAAAAAAJAAkAAAIPhI8WebHsHopSOVgb26AAADs=":(new Image).src=mxPopupMenu.prototype.submenuImage;mxClient.IS_SVG||null==mxConnectionHandler.prototype.connectImage||((new Image).src=mxConnectionHandler.prototype.connectImage.src); +this.editor.chromeless&&!this.editor.editable&&(this.footerHeight=0,d.isEnabled=function(){return!1},d.panningHandler.isForcePanningEvent=function(a){return!mxEvent.isPopupTrigger(a.getEvent())});this.actions=new Actions(this);this.menus=this.createMenus();this.createDivs();this.createUi();this.refresh();var k=mxUtils.bind(this,function(a){null==a&&(a=window.event);return this.isSelectionAllowed(a)||d.isEditing()});this.container==document.body&&(this.menubarContainer.onselectstart=k,this.menubarContainer.onmousedown= +k,this.toolbarContainer.onselectstart=k,this.toolbarContainer.onmousedown=k,this.diagramContainer.onselectstart=k,this.diagramContainer.onmousedown=k,this.sidebarContainer.onselectstart=k,this.sidebarContainer.onmousedown=k,this.formatContainer.onselectstart=k,this.formatContainer.onmousedown=k,this.footerContainer.onselectstart=k,this.footerContainer.onmousedown=k,null!=this.tabContainer&&(this.tabContainer.onselectstart=k));!this.editor.chromeless||this.editor.editable?(b=function(a){var c=mxEvent.getSource(a); +if("A"==c.nodeName)for(;null!=c;){if("geHint"==c.className)return!0;c=c.parentNode}return k(a)},mxClient.IS_IE&&("undefined"===typeof document.documentMode||9>document.documentMode)?mxEvent.addListener(this.diagramContainer,"contextmenu",b):this.diagramContainer.oncontextmenu=b):d.panningHandler.usePopupTrigger=!1;d.init(this.diagramContainer);mxClient.IS_SVG&&null!=d.view.getDrawPane()&&(b=d.view.getDrawPane().ownerSVGElement,null!=b&&(b.style.position="absolute"));this.hoverIcons=this.createHoverIcons(); +mxEvent.addListener(this.diagramContainer,"mousemove",mxUtils.bind(this,function(a){var c=mxUtils.getOffset(this.diagramContainer);0<mxEvent.getClientX(a)-c.x-this.diagramContainer.clientWidth||0<mxEvent.getClientY(a)-c.y-this.diagramContainer.clientHeight?this.diagramContainer.setAttribute("title",mxResources.get("panTooltip")):this.diagramContainer.removeAttribute("title")}));var l=!1,p=this.hoverIcons.isResetEvent;this.hoverIcons.isResetEvent=function(a,c){return l||p.apply(this,arguments)};this.keydownHandler= +mxUtils.bind(this,function(a){32==a.which?(l=!0,this.hoverIcons.reset(),d.container.style.cursor="move",d.isEditing()||mxEvent.getSource(a)!=d.container||mxEvent.consume(a)):mxEvent.isConsumed(a)||27!=a.keyCode||this.hideDialog()});mxEvent.addListener(document,"keydown",this.keydownHandler);this.keyupHandler=mxUtils.bind(this,function(a){d.container.style.cursor="";l=!1});mxEvent.addListener(document,"keyup",this.keyupHandler);var q=d.panningHandler.isForcePanningEvent;d.panningHandler.isForcePanningEvent= +function(a){return q.apply(this,arguments)||l||mxEvent.isMouseEvent(a.getEvent())&&(this.usePopupTrigger||!mxEvent.isPopupTrigger(a.getEvent()))&&(!mxEvent.isControlDown(a.getEvent())&&mxEvent.isRightMouseButton(a.getEvent())||mxEvent.isMiddleMouseButton(a.getEvent()))};var u=d.cellEditor.isStopEditingEvent;d.cellEditor.isStopEditingEvent=function(a){return u.apply(this,arguments)||13==a.keyCode&&(!mxClient.IS_SF&&mxEvent.isControlDown(a)||mxClient.IS_MAC&&mxEvent.isMetaDown(a)||mxClient.IS_SF&&mxEvent.isShiftDown(a))}; +var c=!1,f=null,g=null,n=null,r=mxUtils.bind(this,function(){if(null!=this.toolbar&&c!=d.cellEditor.isContentEditing()){for(var a=this.toolbar.container.firstChild,b=[];null!=a;){var e=a.nextSibling;0>mxUtils.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;h<n.length;h++)this.toolbar.container.appendChild(n[h]);this.toolbar.fontMenu=f;this.toolbar.sizeMenu= +g}c=d.cellEditor.isContentEditing();f=a;g=e;n=b}}),h=this,m=d.cellEditor.startEditing;d.cellEditor.startEditing=function(){m.apply(this,arguments);r();if(d.cellEditor.isContentEditing()){var a=!1,c=function(){a||(a=!0,window.setTimeout(function(){for(var c=d.getSelectedElement();null!=c&&c.nodeType!=mxConstants.NODETYPE_ELEMENT;)c=c.parentNode;if(null!=c&&(c=mxUtils.getCurrentStyle(c),null!=c&&null!=h.toolbar)){var b=c.fontFamily;"'"==b.charAt(0)&&(b=b.substring(1));"'"==b.charAt(b.length-1)&&(b= +b.substring(0,b.length-1));h.toolbar.setFontName(b);h.toolbar.setFontSize(parseInt(c.fontSize))}a=!1},0))};mxEvent.addListener(d.cellEditor.textarea,"input",c);mxEvent.addListener(d.cellEditor.textarea,"touchend",c);mxEvent.addListener(d.cellEditor.textarea,"mouseup",c);mxEvent.addListener(d.cellEditor.textarea,"keyup",c);c()}};var w=d.cellEditor.stopEditing;d.cellEditor.stopEditing=function(a,c){w.apply(this,arguments);r()};d.container.setAttribute("tabindex","0");d.container.style.cursor="default"; +if(window.self===window.top&&null!=d.container.parentNode)try{d.container.focus()}catch(B){}var v=d.fireMouseEvent;d.fireMouseEvent=function(a,c,d){a==mxEvent.MOUSE_DOWN&&this.container.focus();v.apply(this,arguments)};d.popupMenuHandler.autoExpand=!0;null!=this.menus&&(d.popupMenuHandler.factoryMethod=mxUtils.bind(this,function(a,c,d){this.menus.createPopupMenu(a,c,d)}));mxEvent.addGestureListeners(document,mxUtils.bind(this,function(a){d.popupMenuHandler.hideMenu()}));this.keyHandler=this.createKeyHandler(a); +this.getKeyHandler=function(){return keyHandler};var A="rounded shadow glass dashed dashPattern comic labelBackgroundColor".split(" "),y="shape edgeStyle curved rounded elbow comic jumpStyle jumpSize".split(" ");this.setDefaultStyle=function(a){var c=d.view.getState(a);if(null!=c){a=a.clone();a.style="";a=d.getCellStyle(a);var b=[],f=[],g;for(g in c.style)a[g]!=c.style[g]&&(b.push(c.style[g]),f.push(g));g=d.getModel().getStyle(c.cell);for(var e=null!=g?g.split(";"):[],h=0;h<e.length;h++){var n=e[h], +m=n.indexOf("=");0<=m&&(g=n.substring(0,m),n=n.substring(m+1),null!=a[g]&&"none"==n&&(b.push(n),f.push(g)))}d.getModel().isEdge(c.cell)?d.currentEdgeStyle={}:d.currentVertexStyle={};this.fireEvent(new mxEventObject("styleChanged","keys",f,"values",b,"cells",[c.cell]))}};this.clearDefaultStyle=function(){d.currentEdgeStyle=mxUtils.clone(d.defaultEdgeStyle);d.currentVertexStyle=mxUtils.clone(d.defaultVertexStyle);this.fireEvent(new mxEventObject("styleChanged","keys",[],"values",[],"cells",[]))};var t= +["fontFamily","fontSize","fontColor"],z="edgeStyle startArrow startFill startSize endArrow endFill endSize jettySize orthogonalLoop".split(" "),H=["startArrow startFill startSize endArrow endFill endSize jettySize orthogonalLoop".split(" "),["strokeColor","strokeWidth"],["fillColor","gradientColor"],t,["opacity"],["align"],["html"]];for(a=0;a<H.length;a++)for(b=0;b<H[a].length;b++)A.push(H[a][b]);for(a=0;a<y.length;a++)0>mxUtils.indexOf(A,y[a])&&A.push(y[a]);var G=function(a,c){var b=d.getModel(); +b.beginUpdate();try{if(c)for(var f=b.isEdge(n),g=f?d.currentEdgeStyle:d.currentVertexStyle,f=["fontSize","fontFamily","fontColor"],e=0;e<f.length;e++){var h=g[f[e]];null!=h&&d.setCellStyles(f[e],h,a)}else for(h=0;h<a.length;h++){for(var n=a[h],m=b.getStyle(n),r=null!=m?m.split(";"):[],F=A.slice(),e=0;e<r.length;e++){var t=r[e],v=t.indexOf("=");if(0<=v){var w=t.substring(0,v),k=mxUtils.indexOf(F,w);0<=k&&F.splice(k,1);for(var q=0;q<H.length;q++){var z=H[q];if(0<=mxUtils.indexOf(z,w))for(var B=0;B< +z.length;B++){var l=mxUtils.indexOf(F,z[B]);0<=l&&F.splice(l,1)}}}}for(var g=(f=b.isEdge(n))?d.currentEdgeStyle:d.currentVertexStyle,p=b.getStyle(n),e=0;e<F.length;e++){var w=F[e],J=g[w];null==J||"shape"==w&&!f||f&&!(0>mxUtils.indexOf(y,w))||(p=mxUtils.setStyle(p,w,J))}b.setStyle(n,p)}}finally{b.endUpdate()}};d.addListener("cellsInserted",function(a,c){G(c.getProperty("cells"))});d.addListener("textInserted",function(a,c){G(c.getProperty("cells"),!0)});d.connectionHandler.addListener(mxEvent.CONNECT, +function(a,c){var d=[c.getProperty("cell")];c.getProperty("terminalInserted")&&d.push(c.getProperty("terminal"));G(d)});this.addListener("styleChanged",mxUtils.bind(this,function(a,c){var b=c.getProperty("cells"),f=!1,g=!1;if(0<b.length)for(var e=0;e<b.length&&(f=d.getModel().isVertex(b[e])||f,!(g=d.getModel().isEdge(b[e])||g)||!f);e++);else g=f=!0;for(var b=c.getProperty("keys"),h=c.getProperty("values"),e=0;e<b.length;e++){var n=0<=mxUtils.indexOf(t,b[e]);if("strokeColor"!=b[e]||null!=h[e]&&"none"!= +h[e])if(0<=mxUtils.indexOf(y,b[e]))g||0<=mxUtils.indexOf(z,b[e])?null==h[e]?delete d.currentEdgeStyle[b[e]]:d.currentEdgeStyle[b[e]]=h[e]:f&&0<=mxUtils.indexOf(A,b[e])&&(null==h[e]?delete d.currentVertexStyle[b[e]]:d.currentVertexStyle[b[e]]=h[e]);else if(0<=mxUtils.indexOf(A,b[e])){if(f||n)null==h[e]?delete d.currentVertexStyle[b[e]]:d.currentVertexStyle[b[e]]=h[e];if(g||n||0<=mxUtils.indexOf(z,b[e]))null==h[e]?delete d.currentEdgeStyle[b[e]]:d.currentEdgeStyle[b[e]]=h[e]}}null!=this.toolbar&&(this.toolbar.setFontName(d.currentVertexStyle.fontFamily|| +Menus.prototype.defaultFont),this.toolbar.setFontSize(d.currentVertexStyle.fontSize||Menus.prototype.defaultFontSize),null!=this.toolbar.edgeStyleMenu&&(this.toolbar.edgeStyleMenu.getElementsByTagName("div")[0].className="orthogonalEdgeStyle"==d.currentEdgeStyle.edgeStyle&&"1"==d.currentEdgeStyle.curved?"geSprite geSprite-curved":"straight"==d.currentEdgeStyle.edgeStyle||"none"==d.currentEdgeStyle.edgeStyle||null==d.currentEdgeStyle.edgeStyle?"geSprite geSprite-straight":"entityRelationEdgeStyle"== +d.currentEdgeStyle.edgeStyle?"geSprite geSprite-entity":"elbowEdgeStyle"==d.currentEdgeStyle.edgeStyle?"geSprite geSprite-"+("vertical"==d.currentEdgeStyle.elbow?"verticalelbow":"horizontalelbow"):"isometricEdgeStyle"==d.currentEdgeStyle.edgeStyle?"geSprite geSprite-"+("vertical"==d.currentEdgeStyle.elbow?"verticalisometric":"horizontalisometric"):"geSprite geSprite-orthogonal"),null!=this.toolbar.edgeShapeMenu&&(this.toolbar.edgeShapeMenu.getElementsByTagName("div")[0].className="link"==d.currentEdgeStyle.shape? +"geSprite geSprite-linkedge":"flexArrow"==d.currentEdgeStyle.shape?"geSprite geSprite-arrow":"arrow"==d.currentEdgeStyle.shape?"geSprite geSprite-simplearrow":"geSprite geSprite-connection"),null!=this.toolbar.lineStartMenu&&(this.toolbar.lineStartMenu.getElementsByTagName("div")[0].className=this.getCssClassForMarker("start",d.currentEdgeStyle.shape,d.currentEdgeStyle[mxConstants.STYLE_STARTARROW],mxUtils.getValue(d.currentEdgeStyle,"startFill","1"))),null!=this.toolbar.lineEndMenu&&(this.toolbar.lineEndMenu.getElementsByTagName("div")[0].className= +this.getCssClassForMarker("end",d.currentEdgeStyle.shape,d.currentEdgeStyle[mxConstants.STYLE_ENDARROW],mxUtils.getValue(d.currentEdgeStyle,"endFill","1"))))}));null!=this.toolbar&&(a=mxUtils.bind(this,function(){var a=d.currentVertexStyle.fontFamily||"Helvetica",c=String(d.currentVertexStyle.fontSize||"12"),b=d.getView().getState(d.getSelectionCell());null!=b&&(a=b.style[mxConstants.STYLE_FONTFAMILY]||a,c=b.style[mxConstants.STYLE_FONTSIZE]||c,10<a.length&&(a=a.substring(0,8)+"..."));this.toolbar.setFontName(a); +this.toolbar.setFontSize(c)}),d.getSelectionModel().addListener(mxEvent.CHANGE,a),d.getModel().addListener(mxEvent.CHANGE,a));d.addListener(mxEvent.CELLS_ADDED,function(a,c){var b=c.getProperty("cells"),f=c.getProperty("parent");d.getModel().isLayer(f)&&!d.isCellVisible(f)&&null!=b&&0<b.length&&d.getModel().setVisible(f,!0)});this.gestureHandler=mxUtils.bind(this,function(a){null!=this.currentMenu&&mxEvent.getSource(a)!=this.currentMenu.div&&this.hideCurrentMenu()});mxEvent.addGestureListeners(document, this.gestureHandler);this.resizeHandler=mxUtils.bind(this,function(){window.setTimeout(mxUtils.bind(this,function(){null!=this.editor.graph&&this.refresh()}),0)});mxEvent.addListener(window,"resize",this.resizeHandler);this.orientationChangeHandler=mxUtils.bind(this,function(){this.refresh()});mxEvent.addListener(window,"orientationchange",this.orientationChangeHandler);mxClient.IS_IOS&&!window.navigator.standalone&&(this.scrollHandler=mxUtils.bind(this,function(){window.scrollTo(0,0)}),mxEvent.addListener(window, -"scroll",this.scrollHandler));this.editor.addListener("resetGraphView",mxUtils.bind(this,function(){this.resetScrollbars()}));this.addListener("gridEnabledChanged",mxUtils.bind(this,function(){b.view.validateBackground()}));this.addListener("backgroundColorChanged",mxUtils.bind(this,function(){b.view.validateBackground()}));b.addListener("gridSizeChanged",mxUtils.bind(this,function(){b.isGridEnabled()&&b.view.validateBackground()}));this.editor.resetGraph();this.init();this.open()}; +"scroll",this.scrollHandler));this.editor.addListener("resetGraphView",mxUtils.bind(this,function(){this.resetScrollbars()}));this.addListener("gridEnabledChanged",mxUtils.bind(this,function(){d.view.validateBackground()}));this.addListener("backgroundColorChanged",mxUtils.bind(this,function(){d.view.validateBackground()}));d.addListener("gridSizeChanged",mxUtils.bind(this,function(){d.isGridEnabled()&&d.view.validateBackground()}));this.editor.resetGraph();this.init();this.open()}; mxUtils.extend(EditorUi,mxEventSource);EditorUi.compactUi=!0;EditorUi.prototype.splitSize=mxClient.IS_TOUCH||mxClient.IS_POINTER?12:8;EditorUi.prototype.menubarHeight=30;EditorUi.prototype.formatEnabled=!0;EditorUi.prototype.formatWidth=240;EditorUi.prototype.toolbarHeight=34;EditorUi.prototype.footerHeight=28;EditorUi.prototype.sidebarFooterHeight=34;EditorUi.prototype.hsplitPosition=640>=screen.width?118:208;EditorUi.prototype.allowAnimation=!0;EditorUi.prototype.lightboxMaxFitScale=2; EditorUi.prototype.lightboxVerticalDivider=4;EditorUi.prototype.hsplitClickEnabled=!1; EditorUi.prototype.init=function(){var a=this.editor.graph;mxEvent.addListener(a.container,"keydown",mxUtils.bind(this,function(a){this.onKeyDown(a)}));mxEvent.addListener(a.container,"keypress",mxUtils.bind(this,function(a){this.onKeyPress(a)}));this.addUndoListener();this.addBeforeUnloadListener();a.getSelectionModel().addListener(mxEvent.CHANGE,mxUtils.bind(this,function(){this.updateActionStates()}));a.getModel().addListener(mxEvent.CHANGE,mxUtils.bind(this,function(){this.updateActionStates()})); -var d=a.setDefaultParent,e=this;this.editor.graph.setDefaultParent=function(){d.apply(this,arguments);e.updateActionStates()};a.editLink=e.actions.get("editLink").funct;this.updateActionStates();this.initClipboard();this.initCanvas();null!=this.format&&this.format.init()};EditorUi.prototype.onKeyDown=function(a){var d=this.editor.graph;9==a.which&&d.isEnabled()&&!mxEvent.isAltDown(a)&&(d.isEditing()?d.stopEditing(!1):d.selectCell(!mxEvent.isShiftDown(a)),mxEvent.consume(a))}; -EditorUi.prototype.onKeyPress=function(a){var d=this.editor.graph;!this.isImmediateEditingEvent(a)||d.isEditing()||d.isSelectionEmpty()||0===a.which||mxEvent.isAltDown(a)||mxEvent.isControlDown(a)||mxEvent.isMetaDown(a)||(d.escape(),d.startEditing(),mxClient.IS_FF&&(d=d.cellEditor,d.textarea.innerHTML=String.fromCharCode(a.which),a=document.createRange(),a.selectNodeContents(d.textarea),a.collapse(!1),d=window.getSelection(),d.removeAllRanges(),d.addRange(a)))}; +var b=a.setDefaultParent,e=this;this.editor.graph.setDefaultParent=function(){b.apply(this,arguments);e.updateActionStates()};a.editLink=e.actions.get("editLink").funct;this.updateActionStates();this.initClipboard();this.initCanvas();null!=this.format&&this.format.init()};EditorUi.prototype.onKeyDown=function(a){var b=this.editor.graph;9==a.which&&b.isEnabled()&&!mxEvent.isAltDown(a)&&(b.isEditing()?b.stopEditing(!1):b.selectCell(!mxEvent.isShiftDown(a)),mxEvent.consume(a))}; +EditorUi.prototype.onKeyPress=function(a){var b=this.editor.graph;!this.isImmediateEditingEvent(a)||b.isEditing()||b.isSelectionEmpty()||0===a.which||mxEvent.isAltDown(a)||mxEvent.isControlDown(a)||mxEvent.isMetaDown(a)||(b.escape(),b.startEditing(),mxClient.IS_FF&&(b=b.cellEditor,b.textarea.innerHTML=String.fromCharCode(a.which),a=document.createRange(),a.selectNodeContents(b.textarea),a.collapse(!1),b=window.getSelection(),b.removeAllRanges(),b.addRange(a)))}; EditorUi.prototype.isImmediateEditingEvent=function(a){return!0}; -EditorUi.prototype.getCssClassForMarker=function(a,d,e,b){return"flexArrow"==d?null!=e&&e!=mxConstants.NONE?"geSprite geSprite-"+a+"blocktrans":"geSprite geSprite-noarrow":e==mxConstants.ARROW_CLASSIC?"1"==b?"geSprite geSprite-"+a+"classic":"geSprite geSprite-"+a+"classictrans":e==mxConstants.ARROW_CLASSIC_THIN?"1"==b?"geSprite geSprite-"+a+"classicthin":"geSprite geSprite-"+a+"classicthintrans":e==mxConstants.ARROW_OPEN?"geSprite geSprite-"+a+"open":e==mxConstants.ARROW_OPEN_THIN?"geSprite geSprite-"+ -a+"openthin":e==mxConstants.ARROW_BLOCK?"1"==b?"geSprite geSprite-"+a+"block":"geSprite geSprite-"+a+"blocktrans":e==mxConstants.ARROW_BLOCK_THIN?"1"==b?"geSprite geSprite-"+a+"blockthin":"geSprite geSprite-"+a+"blockthintrans":e==mxConstants.ARROW_OVAL?"1"==b?"geSprite geSprite-"+a+"oval":"geSprite geSprite-"+a+"ovaltrans":e==mxConstants.ARROW_DIAMOND?"1"==b?"geSprite geSprite-"+a+"diamond":"geSprite geSprite-"+a+"diamondtrans":e==mxConstants.ARROW_DIAMOND_THIN?"1"==b?"geSprite geSprite-"+a+"thindiamond": -"geSprite geSprite-"+a+"thindiamondtrans":"openAsync"==e?"geSprite geSprite-"+a+"openasync":"dash"==e?"geSprite geSprite-"+a+"dash":"cross"==e?"geSprite geSprite-"+a+"cross":"async"==e?"1"==b?"geSprite geSprite-"+a+"async":"geSprite geSprite-"+a+"asynctrans":"circle"==e||"circlePlus"==e?"1"==b||"circle"==e?"geSprite geSprite-"+a+"circle":"geSprite geSprite-"+a+"circleplus":"ERone"==e?"geSprite geSprite-"+a+"erone":"ERmandOne"==e?"geSprite geSprite-"+a+"eronetoone":"ERmany"==e?"geSprite geSprite-"+ +EditorUi.prototype.getCssClassForMarker=function(a,b,e,d){return"flexArrow"==b?null!=e&&e!=mxConstants.NONE?"geSprite geSprite-"+a+"blocktrans":"geSprite geSprite-noarrow":e==mxConstants.ARROW_CLASSIC?"1"==d?"geSprite geSprite-"+a+"classic":"geSprite geSprite-"+a+"classictrans":e==mxConstants.ARROW_CLASSIC_THIN?"1"==d?"geSprite geSprite-"+a+"classicthin":"geSprite geSprite-"+a+"classicthintrans":e==mxConstants.ARROW_OPEN?"geSprite geSprite-"+a+"open":e==mxConstants.ARROW_OPEN_THIN?"geSprite geSprite-"+ +a+"openthin":e==mxConstants.ARROW_BLOCK?"1"==d?"geSprite geSprite-"+a+"block":"geSprite geSprite-"+a+"blocktrans":e==mxConstants.ARROW_BLOCK_THIN?"1"==d?"geSprite geSprite-"+a+"blockthin":"geSprite geSprite-"+a+"blockthintrans":e==mxConstants.ARROW_OVAL?"1"==d?"geSprite geSprite-"+a+"oval":"geSprite geSprite-"+a+"ovaltrans":e==mxConstants.ARROW_DIAMOND?"1"==d?"geSprite geSprite-"+a+"diamond":"geSprite geSprite-"+a+"diamondtrans":e==mxConstants.ARROW_DIAMOND_THIN?"1"==d?"geSprite geSprite-"+a+"thindiamond": +"geSprite geSprite-"+a+"thindiamondtrans":"openAsync"==e?"geSprite geSprite-"+a+"openasync":"dash"==e?"geSprite geSprite-"+a+"dash":"cross"==e?"geSprite geSprite-"+a+"cross":"async"==e?"1"==d?"geSprite geSprite-"+a+"async":"geSprite geSprite-"+a+"asynctrans":"circle"==e||"circlePlus"==e?"1"==d||"circle"==e?"geSprite geSprite-"+a+"circle":"geSprite geSprite-"+a+"circleplus":"ERone"==e?"geSprite geSprite-"+a+"erone":"ERmandOne"==e?"geSprite geSprite-"+a+"eronetoone":"ERmany"==e?"geSprite geSprite-"+ a+"ermany":"ERoneToMany"==e?"geSprite geSprite-"+a+"eronetomany":"ERzeroToOne"==e?"geSprite geSprite-"+a+"eroneopt":"ERzeroToMany"==e?"geSprite geSprite-"+a+"ermanyopt":"geSprite geSprite-noarrow"};EditorUi.prototype.createMenus=function(){return null}; -EditorUi.prototype.updatePasteActionStates=function(){var a=this.editor.graph,d=this.actions.get("paste"),e=this.actions.get("pasteHere");d.setEnabled(this.editor.graph.cellEditor.isContentEditing()||!mxClipboard.isEmpty()&&a.isEnabled()&&!a.isCellLocked(a.getDefaultParent()));e.setEnabled(d.isEnabled())}; -EditorUi.prototype.initClipboard=function(){var a=this,d=mxClipboard.cut;mxClipboard.cut=function(b){b.cellEditor.isContentEditing()?document.execCommand("cut",!1,null):d.apply(this,arguments);a.updatePasteActionStates()};var e=mxClipboard.copy;mxClipboard.copy=function(d){d.cellEditor.isContentEditing()?document.execCommand("copy",!1,null):e.apply(this,arguments);a.updatePasteActionStates()};var b=mxClipboard.paste;mxClipboard.paste=function(d){var e=null;d.cellEditor.isContentEditing()?document.execCommand("paste", -!1,null):e=b.apply(this,arguments);a.updatePasteActionStates();return e};var h=this.editor.graph.cellEditor.startEditing;this.editor.graph.cellEditor.startEditing=function(){h.apply(this,arguments);a.updatePasteActionStates()};var m=this.editor.graph.cellEditor.stopEditing;this.editor.graph.cellEditor.stopEditing=function(d,b){m.apply(this,arguments);a.updatePasteActionStates()};this.updatePasteActionStates()};EditorUi.prototype.lazyZoomDelay=20; +EditorUi.prototype.updatePasteActionStates=function(){var a=this.editor.graph,b=this.actions.get("paste"),e=this.actions.get("pasteHere");b.setEnabled(this.editor.graph.cellEditor.isContentEditing()||!mxClipboard.isEmpty()&&a.isEnabled()&&!a.isCellLocked(a.getDefaultParent()));e.setEnabled(b.isEnabled())}; +EditorUi.prototype.initClipboard=function(){var a=this,b=mxClipboard.cut;mxClipboard.cut=function(d){d.cellEditor.isContentEditing()?document.execCommand("cut",!1,null):b.apply(this,arguments);a.updatePasteActionStates()};var e=mxClipboard.copy;mxClipboard.copy=function(b){b.cellEditor.isContentEditing()?document.execCommand("copy",!1,null):e.apply(this,arguments);a.updatePasteActionStates()};var d=mxClipboard.paste;mxClipboard.paste=function(b){var e=null;b.cellEditor.isContentEditing()?document.execCommand("paste", +!1,null):e=d.apply(this,arguments);a.updatePasteActionStates();return e};var k=this.editor.graph.cellEditor.startEditing;this.editor.graph.cellEditor.startEditing=function(){k.apply(this,arguments);a.updatePasteActionStates()};var l=this.editor.graph.cellEditor.stopEditing;this.editor.graph.cellEditor.stopEditing=function(b,d){l.apply(this,arguments);a.updatePasteActionStates()};this.updatePasteActionStates()};EditorUi.prototype.lazyZoomDelay=20; EditorUi.prototype.initCanvas=function(){var a=this.editor.graph;a.timerAutoScroll=!0;a.getPagePadding=function(){return new mxPoint(Math.max(0,Math.round((a.container.offsetWidth-34)/a.view.scale)),Math.max(0,Math.round((a.container.offsetHeight-34)/a.view.scale)))};a.view.getBackgroundPageBounds=function(){var a=this.graph.getPageLayout(),c=this.graph.getPageSize();return new mxRectangle(this.scale*(this.translate.x+a.x*c.width),this.scale*(this.translate.y+a.y*c.height),this.scale*a.width*c.width, -this.scale*a.height*c.height)};a.getPreferredPageSize=function(a,c,d){a=this.getPageLayout();c=this.getPageSize();return new mxRectangle(0,0,a.width*c.width,a.height*c.height)};var d=null,e=this;if(this.editor.isChromelessView()){this.chromelessResize=d=mxUtils.bind(this,function(c,d,b,f){if(null!=a.container){b=null!=b?b:0;f=null!=f?f:0;var g=a.pageVisible?a.view.getBackgroundPageBounds():a.getGraphBounds(),e=mxUtils.hasScrollbars(a.container),k=a.view.translate,l=a.view.scale,n=mxRectangle.fromRectangle(g); -n.x=n.x/l-k.x;n.y=n.y/l-k.y;n.width/=l;n.height/=l;var k=a.container.scrollTop,r=a.container.scrollLeft,t=mxClient.IS_QUIRKS||8<=document.documentMode?20:14;if(8==document.documentMode||9==document.documentMode)t+=3;var y=a.container.offsetWidth-t,t=a.container.offsetHeight-t;c=c?Math.max(.3,Math.min(d||1,y/n.width)):l;d=(y-c*n.width)/2/c;var F=0==this.lightboxVerticalDivider?0:(t-c*n.height)/this.lightboxVerticalDivider/c;e&&(d=Math.max(d,0),F=Math.max(F,0));if(e||g.width<y||g.height<t)a.view.scaleAndTranslate(c, -Math.floor(d-n.x),Math.floor(F-n.y)),a.container.scrollTop=k*c/l,a.container.scrollLeft=r*c/l;else if(0!=b||0!=f)g=a.view.translate,a.view.setTranslate(Math.floor(g.x+b/l),Math.floor(g.y+f/l))}});this.chromelessWindowResize=mxUtils.bind(this,function(){this.chromelessResize(!1)});var b=mxUtils.bind(this,function(){this.chromelessWindowResize(!1)});mxEvent.addListener(window,"resize",b);this.destroyFunctions.push(function(){mxEvent.removeListener(window,"resize",b)});this.editor.addListener("resetGraphView", +this.scale*a.height*c.height)};a.getPreferredPageSize=function(a,c,b){a=this.getPageLayout();c=this.getPageSize();return new mxRectangle(0,0,a.width*c.width,a.height*c.height)};var b=null,e=this;if(this.editor.isChromelessView()){this.chromelessResize=b=mxUtils.bind(this,function(c,b,d,f){if(null!=a.container){d=null!=d?d:0;f=null!=f?f:0;var g=a.pageVisible?a.view.getBackgroundPageBounds():a.getGraphBounds(),e=mxUtils.hasScrollbars(a.container),h=a.view.translate,n=a.view.scale,m=mxRectangle.fromRectangle(g); +m.x=m.x/n-h.x;m.y=m.y/n-h.y;m.width/=n;m.height/=n;var h=a.container.scrollTop,r=a.container.scrollLeft,t=mxClient.IS_QUIRKS||8<=document.documentMode?20:14;if(8==document.documentMode||9==document.documentMode)t+=3;var y=a.container.offsetWidth-t,t=a.container.offsetHeight-t;c=c?Math.max(.3,Math.min(b||1,y/m.width)):n;b=(y-c*m.width)/2/c;var F=0==this.lightboxVerticalDivider?0:(t-c*m.height)/this.lightboxVerticalDivider/c;e&&(b=Math.max(b,0),F=Math.max(F,0));if(e||g.width<y||g.height<t)a.view.scaleAndTranslate(c, +Math.floor(b-m.x),Math.floor(F-m.y)),a.container.scrollTop=h*c/n,a.container.scrollLeft=r*c/n;else if(0!=d||0!=f)g=a.view.translate,a.view.setTranslate(Math.floor(g.x+d/n),Math.floor(g.y+f/n))}});this.chromelessWindowResize=mxUtils.bind(this,function(){this.chromelessResize(!1)});var d=mxUtils.bind(this,function(){this.chromelessWindowResize(!1)});mxEvent.addListener(window,"resize",d);this.destroyFunctions.push(function(){mxEvent.removeListener(window,"resize",d)});this.editor.addListener("resetGraphView", mxUtils.bind(this,function(){this.chromelessResize(!0)}));this.actions.get("zoomIn").funct=mxUtils.bind(this,function(c){a.zoomIn();this.chromelessResize(!1)});this.actions.get("zoomOut").funct=mxUtils.bind(this,function(c){a.zoomOut();this.chromelessResize(!1)});if("0"!=urlParams.toolbar){this.chromelessToolbar=document.createElement("div");this.chromelessToolbar.style.position="fixed";this.chromelessToolbar.style.overflow="hidden";this.chromelessToolbar.style.boxSizing="border-box";this.chromelessToolbar.style.whiteSpace= -"nowrap";this.chromelessToolbar.style.backgroundColor="#000000";this.chromelessToolbar.style.padding="10px 10px 8px 10px";this.chromelessToolbar.style.left="50%";mxClient.IS_VML||(mxUtils.setPrefixedStyle(this.chromelessToolbar.style,"borderRadius","20px"),mxUtils.setPrefixedStyle(this.chromelessToolbar.style,"transition","opacity 600ms ease-in-out"));var h=mxUtils.bind(this,function(){var c=mxUtils.getCurrentStyle(a.container);this.chromelessToolbar.style.bottom=(null!=c?parseInt(c["margin-bottom"]|| -0):0)+(null!=this.tabContainer?20+parseInt(this.tabContainer.style.height):20)+"px"});this.editor.addListener("resetGraphView",h);h();var m=0,h=mxUtils.bind(this,function(a,c,d){m++;var b=document.createElement("span");b.style.paddingLeft="8px";b.style.paddingRight="8px";b.style.cursor="pointer";mxEvent.addListener(b,"click",a);null!=d&&b.setAttribute("title",d);a=document.createElement("img");a.setAttribute("border","0");a.setAttribute("src",c);b.appendChild(a);this.chromelessToolbar.appendChild(b); -return b}),p=h(mxUtils.bind(this,function(a){this.actions.get("previousPage").funct();mxEvent.consume(a)}),Editor.previousLargeImage,mxResources.get("previousPage")),q=document.createElement("div");q.style.display="inline-block";q.style.verticalAlign="top";q.style.fontFamily="Helvetica,Arial";q.style.marginTop="8px";q.style.fontSize="14px";q.style.color="#ffffff";this.chromelessToolbar.appendChild(q);var u=h(mxUtils.bind(this,function(a){this.actions.get("nextPage").funct();mxEvent.consume(a)}),Editor.nextLargeImage, +"nowrap";this.chromelessToolbar.style.backgroundColor="#000000";this.chromelessToolbar.style.padding="10px 10px 8px 10px";this.chromelessToolbar.style.left="50%";mxClient.IS_VML||(mxUtils.setPrefixedStyle(this.chromelessToolbar.style,"borderRadius","20px"),mxUtils.setPrefixedStyle(this.chromelessToolbar.style,"transition","opacity 600ms ease-in-out"));var k=mxUtils.bind(this,function(){var c=mxUtils.getCurrentStyle(a.container);this.chromelessToolbar.style.bottom=(null!=c?parseInt(c["margin-bottom"]|| +0):0)+(null!=this.tabContainer?20+parseInt(this.tabContainer.style.height):20)+"px"});this.editor.addListener("resetGraphView",k);k();var l=0,k=mxUtils.bind(this,function(a,c,b){l++;var d=document.createElement("span");d.style.paddingLeft="8px";d.style.paddingRight="8px";d.style.cursor="pointer";mxEvent.addListener(d,"click",a);null!=b&&d.setAttribute("title",b);a=document.createElement("img");a.setAttribute("border","0");a.setAttribute("src",c);d.appendChild(a);this.chromelessToolbar.appendChild(d); +return d}),p=k(mxUtils.bind(this,function(a){this.actions.get("previousPage").funct();mxEvent.consume(a)}),Editor.previousLargeImage,mxResources.get("previousPage")),q=document.createElement("div");q.style.display="inline-block";q.style.verticalAlign="top";q.style.fontFamily="Helvetica,Arial";q.style.marginTop="8px";q.style.fontSize="14px";q.style.color="#ffffff";this.chromelessToolbar.appendChild(q);var u=k(mxUtils.bind(this,function(a){this.actions.get("nextPage").funct();mxEvent.consume(a)}),Editor.nextLargeImage, mxResources.get("nextPage")),c=mxUtils.bind(this,function(){null!=this.pages&&1<this.pages.length&&null!=this.currentPage&&(q.innerHTML="",mxUtils.write(q,mxUtils.indexOf(this.pages,this.currentPage)+1+" / "+this.pages.length))});p.style.paddingLeft="0px";p.style.paddingRight="4px";u.style.paddingLeft="4px";u.style.paddingRight="0px";var f=mxUtils.bind(this,function(){null!=this.pages&&1<this.pages.length&&null!=this.currentPage?(u.style.display="",p.style.display="",q.style.display="inline-block"): -(u.style.display="none",p.style.display="none",q.style.display="none");c()});this.editor.addListener("resetGraphView",f);this.editor.addListener("pageSelected",c);h(mxUtils.bind(this,function(a){this.actions.get("zoomOut").funct();mxEvent.consume(a)}),Editor.zoomOutLargeImage,mxResources.get("zoomOut")+" (Alt+Mousewheel)");h(mxUtils.bind(this,function(a){this.actions.get("zoomIn").funct();mxEvent.consume(a)}),Editor.zoomInLargeImage,mxResources.get("zoomIn")+" (Alt+Mousewheel)");h(mxUtils.bind(this, -function(c){a.isLightboxView()?(1==a.view.scale?this.lightboxFit():a.zoomTo(1),this.chromelessResize(!1)):this.chromelessResize(!0);mxEvent.consume(c)}),Editor.actualSizeLargeImage,mxResources.get("fit"));var g=null,k=null,r=mxUtils.bind(this,function(a){null!=g&&(window.clearTimeout(g),fadeThead=null);null!=k&&(window.clearTimeout(k),fadeThead2=null);g=window.setTimeout(mxUtils.bind(this,function(){mxUtils.setOpacity(this.chromelessToolbar,0);g=null;k=window.setTimeout(mxUtils.bind(this,function(){this.chromelessToolbar.style.display= -"none";k=null}),600)}),a||200)}),l=mxUtils.bind(this,function(a){null!=g&&(window.clearTimeout(g),fadeThead=null);null!=k&&(window.clearTimeout(k),fadeThead2=null);this.chromelessToolbar.style.display="";mxUtils.setOpacity(this.chromelessToolbar,a||30)});if("1"==urlParams.layers){this.layersDialog=null;var n=h(mxUtils.bind(this,function(c){if(null!=this.layersDialog)this.layersDialog.parentNode.removeChild(this.layersDialog),this.layersDialog=null;else{this.layersDialog=a.createLayersDialog();mxEvent.addListener(this.layersDialog, -"mouseleave",mxUtils.bind(this,function(){this.layersDialog.parentNode.removeChild(this.layersDialog);this.layersDialog=null}));var d=n.getBoundingClientRect();mxUtils.setPrefixedStyle(this.layersDialog.style,"borderRadius","5px");this.layersDialog.style.position="fixed";this.layersDialog.style.fontFamily="Helvetica,Arial";this.layersDialog.style.backgroundColor="#000000";this.layersDialog.style.width="160px";this.layersDialog.style.padding="4px 2px 4px 2px";this.layersDialog.style.color="#ffffff"; -mxUtils.setOpacity(this.layersDialog,70);this.layersDialog.style.left=d.left+"px";this.layersDialog.style.bottom=parseInt(this.chromelessToolbar.style.bottom)+this.chromelessToolbar.offsetHeight+4+"px";d=mxUtils.getCurrentStyle(this.editor.graph.container);this.layersDialog.style.zIndex=d.zIndex;document.body.appendChild(this.layersDialog)}mxEvent.consume(c)}),Editor.layersLargeImage,mxResources.get("layers")),w=a.getModel();w.addListener(mxEvent.CHANGE,function(){n.style.display=1<w.getChildCount(w.root)? -"":"none"})}this.addChromelessToolbarItems(h);null==this.editor.editButtonLink&&null==this.editor.editButtonFunc||h(mxUtils.bind(this,function(c){null!=this.editor.editButtonFunc?this.editor.editButtonFunc():"_blank"==this.editor.editButtonLink?this.editor.editAsNew(this.getEditBlankXml()):a.openLink(this.editor.editButtonLink,"editWindow");mxEvent.consume(c)}),Editor.editLargeImage,mxResources.get("edit"));if(null!=this.lightboxToolbarActions)for(f=0;f<this.lightboxToolbarActions.length;f++){var v= -this.lightboxToolbarActions[f];h(v.fn,v.icon,v.tooltip)}!a.lightbox||"1"!=urlParams.close&&this.container==document.body||h(mxUtils.bind(this,function(a){"1"==urlParams.close?window.close():(this.destroy(),mxEvent.consume(a))}),Editor.closeLargeImage,mxResources.get("close")+" (Escape)");this.chromelessToolbar.style.display="none";mxUtils.setPrefixedStyle(this.chromelessToolbar.style,"transform","translate(-50%,0)");a.container.appendChild(this.chromelessToolbar);mxEvent.addListener(a.container,mxClient.IS_POINTER? -"pointermove":"mousemove",mxUtils.bind(this,function(a){mxEvent.isTouchEvent(a)||(mxEvent.isShiftDown(a)||l(30),r())}));mxEvent.addListener(this.chromelessToolbar,mxClient.IS_POINTER?"pointermove":"mousemove",function(a){mxEvent.consume(a)});mxEvent.addListener(this.chromelessToolbar,"mouseenter",mxUtils.bind(this,function(a){mxEvent.isShiftDown(a)?r():l(100)}));mxEvent.addListener(this.chromelessToolbar,"mousemove",mxUtils.bind(this,function(a){mxEvent.isShiftDown(a)?r():l(100);mxEvent.consume(a)})); -mxEvent.addListener(this.chromelessToolbar,"mouseleave",mxUtils.bind(this,function(a){mxEvent.isTouchEvent(a)||l(30)}));var B=a.getTolerance();a.addMouseListener({startX:0,startY:0,scrollLeft:0,scrollTop:0,mouseDown:function(c,d){this.startX=d.getGraphX();this.startY=d.getGraphY();this.scrollLeft=a.container.scrollLeft;this.scrollTop=a.container.scrollTop},mouseMove:function(a,c){},mouseUp:function(c,d){mxEvent.isTouchEvent(d.getEvent())&&Math.abs(this.scrollLeft-a.container.scrollLeft)<B&&Math.abs(this.scrollTop- -a.container.scrollTop)<B&&Math.abs(this.startX-d.getGraphX())<B&&Math.abs(this.startY-d.getGraphY())<B&&(0<parseFloat(e.chromelessToolbar.style.opacity||0)?r():l(30))}})}this.editor.editable||this.addChromelessClickHandler()}else if(this.editor.extendCanvas){var y=a.view.validate;a.view.validate=function(){if(null!=this.graph.container&&mxUtils.hasScrollbars(this.graph.container)){var a=this.graph.getPagePadding(),c=this.graph.getPageSize();this.translate.x=a.x-(this.x0||0)*c.width;this.translate.y= -a.y-(this.y0||0)*c.height}y.apply(this,arguments)};var t=a.sizeDidChange;a.sizeDidChange=function(){if(null!=this.container&&mxUtils.hasScrollbars(this.container)){var c=this.getPageLayout(),d=this.getPagePadding(),b=this.getPageSize(),f=Math.ceil(2*d.x+c.width*b.width),g=Math.ceil(2*d.y+c.height*b.height),e=a.minimumGraphSize;if(null==e||e.width!=f||e.height!=g)a.minimumGraphSize=new mxRectangle(0,0,f,g);f=d.x-c.x*b.width;d=d.y-c.y*b.height;this.autoTranslate||this.view.translate.x==f&&this.view.translate.y== -d?t.apply(this,arguments):(this.autoTranslate=!0,this.view.x0=c.x,this.view.y0=c.y,c=a.view.translate.x,b=a.view.translate.y,a.view.setTranslate(f,d),a.container.scrollLeft+=Math.round((f-c)*a.view.scale),a.container.scrollTop+=Math.round((d-b)*a.view.scale),this.autoTranslate=!1)}}}a.updateZoomTimeout=null;a.cumulativeZoomFactor=1;var z=null;a.lazyZoom=function(c){null!=this.updateZoomTimeout&&window.clearTimeout(this.updateZoomTimeout);c?.15>this.view.scale*this.cumulativeZoomFactor?this.cumulativeZoomFactor= +(u.style.display="none",p.style.display="none",q.style.display="none");c()});this.editor.addListener("resetGraphView",f);this.editor.addListener("pageSelected",c);k(mxUtils.bind(this,function(a){this.actions.get("zoomOut").funct();mxEvent.consume(a)}),Editor.zoomOutLargeImage,mxResources.get("zoomOut")+" (Alt+Mousewheel)");k(mxUtils.bind(this,function(a){this.actions.get("zoomIn").funct();mxEvent.consume(a)}),Editor.zoomInLargeImage,mxResources.get("zoomIn")+" (Alt+Mousewheel)");k(mxUtils.bind(this, +function(c){a.isLightboxView()?(1==a.view.scale?this.lightboxFit():a.zoomTo(1),this.chromelessResize(!1)):this.chromelessResize(!0);mxEvent.consume(c)}),Editor.actualSizeLargeImage,mxResources.get("fit"));var g=null,n=null,r=mxUtils.bind(this,function(a){null!=g&&(window.clearTimeout(g),fadeThead=null);null!=n&&(window.clearTimeout(n),fadeThead2=null);g=window.setTimeout(mxUtils.bind(this,function(){mxUtils.setOpacity(this.chromelessToolbar,0);g=null;n=window.setTimeout(mxUtils.bind(this,function(){this.chromelessToolbar.style.display= +"none";n=null}),600)}),a||200)}),h=mxUtils.bind(this,function(a){null!=g&&(window.clearTimeout(g),fadeThead=null);null!=n&&(window.clearTimeout(n),fadeThead2=null);this.chromelessToolbar.style.display="";mxUtils.setOpacity(this.chromelessToolbar,a||30)});if("1"==urlParams.layers){this.layersDialog=null;var m=k(mxUtils.bind(this,function(c){if(null!=this.layersDialog)this.layersDialog.parentNode.removeChild(this.layersDialog),this.layersDialog=null;else{this.layersDialog=a.createLayersDialog();mxEvent.addListener(this.layersDialog, +"mouseleave",mxUtils.bind(this,function(){this.layersDialog.parentNode.removeChild(this.layersDialog);this.layersDialog=null}));var b=m.getBoundingClientRect();mxUtils.setPrefixedStyle(this.layersDialog.style,"borderRadius","5px");this.layersDialog.style.position="fixed";this.layersDialog.style.fontFamily="Helvetica,Arial";this.layersDialog.style.backgroundColor="#000000";this.layersDialog.style.width="160px";this.layersDialog.style.padding="4px 2px 4px 2px";this.layersDialog.style.color="#ffffff"; +mxUtils.setOpacity(this.layersDialog,70);this.layersDialog.style.left=b.left+"px";this.layersDialog.style.bottom=parseInt(this.chromelessToolbar.style.bottom)+this.chromelessToolbar.offsetHeight+4+"px";b=mxUtils.getCurrentStyle(this.editor.graph.container);this.layersDialog.style.zIndex=b.zIndex;document.body.appendChild(this.layersDialog)}mxEvent.consume(c)}),Editor.layersLargeImage,mxResources.get("layers")),w=a.getModel();w.addListener(mxEvent.CHANGE,function(){m.style.display=1<w.getChildCount(w.root)? +"":"none"})}this.addChromelessToolbarItems(k);null==this.editor.editButtonLink&&null==this.editor.editButtonFunc||k(mxUtils.bind(this,function(c){null!=this.editor.editButtonFunc?this.editor.editButtonFunc():"_blank"==this.editor.editButtonLink?this.editor.editAsNew(this.getEditBlankXml()):a.openLink(this.editor.editButtonLink,"editWindow");mxEvent.consume(c)}),Editor.editLargeImage,mxResources.get("edit"));if(null!=this.lightboxToolbarActions)for(f=0;f<this.lightboxToolbarActions.length;f++){var v= +this.lightboxToolbarActions[f];k(v.fn,v.icon,v.tooltip)}!a.lightbox||"1"!=urlParams.close&&this.container==document.body||k(mxUtils.bind(this,function(a){"1"==urlParams.close?window.close():(this.destroy(),mxEvent.consume(a))}),Editor.closeLargeImage,mxResources.get("close")+" (Escape)");this.chromelessToolbar.style.display="none";mxUtils.setPrefixedStyle(this.chromelessToolbar.style,"transform","translate(-50%,0)");a.container.appendChild(this.chromelessToolbar);mxEvent.addListener(a.container,mxClient.IS_POINTER? +"pointermove":"mousemove",mxUtils.bind(this,function(a){mxEvent.isTouchEvent(a)||(mxEvent.isShiftDown(a)||h(30),r())}));mxEvent.addListener(this.chromelessToolbar,mxClient.IS_POINTER?"pointermove":"mousemove",function(a){mxEvent.consume(a)});mxEvent.addListener(this.chromelessToolbar,"mouseenter",mxUtils.bind(this,function(a){mxEvent.isShiftDown(a)?r():h(100)}));mxEvent.addListener(this.chromelessToolbar,"mousemove",mxUtils.bind(this,function(a){mxEvent.isShiftDown(a)?r():h(100);mxEvent.consume(a)})); +mxEvent.addListener(this.chromelessToolbar,"mouseleave",mxUtils.bind(this,function(a){mxEvent.isTouchEvent(a)||h(30)}));var A=a.getTolerance();a.addMouseListener({startX:0,startY:0,scrollLeft:0,scrollTop:0,mouseDown:function(c,b){this.startX=b.getGraphX();this.startY=b.getGraphY();this.scrollLeft=a.container.scrollLeft;this.scrollTop=a.container.scrollTop},mouseMove:function(a,c){},mouseUp:function(c,b){mxEvent.isTouchEvent(b.getEvent())&&Math.abs(this.scrollLeft-a.container.scrollLeft)<A&&Math.abs(this.scrollTop- +a.container.scrollTop)<A&&Math.abs(this.startX-b.getGraphX())<A&&Math.abs(this.startY-b.getGraphY())<A&&(0<parseFloat(e.chromelessToolbar.style.opacity||0)?r():h(30))}})}this.editor.editable||this.addChromelessClickHandler()}else if(this.editor.extendCanvas){var y=a.view.validate;a.view.validate=function(){if(null!=this.graph.container&&mxUtils.hasScrollbars(this.graph.container)){var a=this.graph.getPagePadding(),c=this.graph.getPageSize();this.translate.x=a.x-(this.x0||0)*c.width;this.translate.y= +a.y-(this.y0||0)*c.height}y.apply(this,arguments)};var t=a.sizeDidChange;a.sizeDidChange=function(){if(null!=this.container&&mxUtils.hasScrollbars(this.container)){var c=this.getPageLayout(),b=this.getPagePadding(),d=this.getPageSize(),f=Math.ceil(2*b.x+c.width*d.width),g=Math.ceil(2*b.y+c.height*d.height),e=a.minimumGraphSize;if(null==e||e.width!=f||e.height!=g)a.minimumGraphSize=new mxRectangle(0,0,f,g);f=b.x-c.x*d.width;b=b.y-c.y*d.height;this.autoTranslate||this.view.translate.x==f&&this.view.translate.y== +b?t.apply(this,arguments):(this.autoTranslate=!0,this.view.x0=c.x,this.view.y0=c.y,c=a.view.translate.x,d=a.view.translate.y,a.view.setTranslate(f,b),a.container.scrollLeft+=Math.round((f-c)*a.view.scale),a.container.scrollTop+=Math.round((b-d)*a.view.scale),this.autoTranslate=!1)}}}a.updateZoomTimeout=null;a.cumulativeZoomFactor=1;var z=null;a.lazyZoom=function(c){null!=this.updateZoomTimeout&&window.clearTimeout(this.updateZoomTimeout);c?.15>this.view.scale*this.cumulativeZoomFactor?this.cumulativeZoomFactor= (this.view.scale+.01)/this.view.scale:(this.cumulativeZoomFactor*=this.zoomFactor,this.cumulativeZoomFactor=Math.round(this.view.scale*this.cumulativeZoomFactor*20)/20/this.view.scale):.15>=this.view.scale*this.cumulativeZoomFactor?this.cumulativeZoomFactor=(this.view.scale-.01)/this.view.scale:(this.cumulativeZoomFactor/=this.zoomFactor,this.cumulativeZoomFactor=Math.round(this.view.scale*this.cumulativeZoomFactor*20)/20/this.view.scale);this.cumulativeZoomFactor=Math.max(.01,Math.min(this.view.scale* -this.cumulativeZoomFactor,160)/this.view.scale);this.updateZoomTimeout=window.setTimeout(mxUtils.bind(this,function(){var c=mxUtils.getOffset(a.container),b=0,f=0;null!=z&&(b=a.container.offsetWidth/2-z.x+c.x,f=a.container.offsetHeight/2-z.y+c.y);c=this.view.scale;this.zoom(this.cumulativeZoomFactor);this.view.scale!=c&&(null!=d&&e.chromelessResize(!1,null,b*(this.cumulativeZoomFactor-1),f*(this.cumulativeZoomFactor-1)),!mxUtils.hasScrollbars(a.container)||0==b&&0==f||(a.container.scrollLeft-=b*(this.cumulativeZoomFactor- -1),a.container.scrollTop-=f*(this.cumulativeZoomFactor-1)));this.cumulativeZoomFactor=1;this.updateZoomTimeout=null}),this.lazyZoomDelay)};mxEvent.addMouseWheelListener(mxUtils.bind(this,function(c,d){if((null==this.dialogs||0==this.dialogs.length)&&a.isZoomWheelEvent(c))for(var b=mxEvent.getSource(c);null!=b;){if(b==a.container){z=new mxPoint(mxEvent.getClientX(c),mxEvent.getClientY(c));a.lazyZoom(d);mxEvent.consume(c);break}b=b.parentNode}}))}; +this.cumulativeZoomFactor,160)/this.view.scale);this.updateZoomTimeout=window.setTimeout(mxUtils.bind(this,function(){var c=mxUtils.getOffset(a.container),d=0,f=0;null!=z&&(d=a.container.offsetWidth/2-z.x+c.x,f=a.container.offsetHeight/2-z.y+c.y);c=this.view.scale;this.zoom(this.cumulativeZoomFactor);this.view.scale!=c&&(null!=b&&e.chromelessResize(!1,null,d*(this.cumulativeZoomFactor-1),f*(this.cumulativeZoomFactor-1)),!mxUtils.hasScrollbars(a.container)||0==d&&0==f||(a.container.scrollLeft-=d*(this.cumulativeZoomFactor- +1),a.container.scrollTop-=f*(this.cumulativeZoomFactor-1)));this.cumulativeZoomFactor=1;this.updateZoomTimeout=null}),this.lazyZoomDelay)};mxEvent.addMouseWheelListener(mxUtils.bind(this,function(c,b){if((null==this.dialogs||0==this.dialogs.length)&&a.isZoomWheelEvent(c))for(var d=mxEvent.getSource(c);null!=d;){if(d==a.container){z=new mxPoint(mxEvent.getClientX(c),mxEvent.getClientY(c));a.lazyZoom(b);mxEvent.consume(c);break}d=d.parentNode}}))}; EditorUi.prototype.addChromelessToolbarItems=function(a){a(mxUtils.bind(this,function(a){this.actions.get("print").funct();mxEvent.consume(a)}),Editor.printLargeImage,mxResources.get("print"))}; EditorUi.prototype.createTemporaryGraph=function(a){a=new Graph(document.createElement("div"),null,null,a);a.resetViewOnRootChange=!1;a.setConnectable(!1);a.gridEnabled=!1;a.autoScroll=!1;a.setTooltips(!1);a.setEnabled(!1);a.container.style.visibility="hidden";a.container.style.position="absolute";a.container.style.overflow="hidden";a.container.style.height="1px";a.container.style.width="1px";return a}; EditorUi.prototype.addChromelessClickHandler=function(){var a=urlParams.highlight;null!=a&&0<a.length&&(a="#"+a);this.editor.graph.addClickHandler(a)};EditorUi.prototype.toggleFormatPanel=function(a){this.formatWidth=a||0<this.formatWidth?0:240;this.formatContainer.style.display=a||0<this.formatWidth?"":"none";this.refresh();this.format.refresh();this.fireEvent(new mxEventObject("formatWidthChanged"))}; -EditorUi.prototype.lightboxFit=function(a){if(this.isDiagramEmpty())this.editor.graph.view.setScale(1);else{var d=urlParams.border,e=60;null!=d&&(e=parseInt(d));this.editor.graph.maxFitScale=this.lightboxMaxFitScale;this.editor.graph.fit(e,null,null,null,null,null,a);this.editor.graph.maxFitScale=null}};EditorUi.prototype.isDiagramEmpty=function(){var a=this.editor.graph.getModel();return 1==a.getChildCount(a.root)&&0==a.getChildCount(a.getChildAt(a.root,0))}; +EditorUi.prototype.lightboxFit=function(a){if(this.isDiagramEmpty())this.editor.graph.view.setScale(1);else{var b=urlParams.border,e=60;null!=b&&(e=parseInt(b));this.editor.graph.maxFitScale=this.lightboxMaxFitScale;this.editor.graph.fit(e,null,null,null,null,null,a);this.editor.graph.maxFitScale=null}};EditorUi.prototype.isDiagramEmpty=function(){var a=this.editor.graph.getModel();return 1==a.getChildCount(a.root)&&0==a.getChildCount(a.getChildAt(a.root,0))}; EditorUi.prototype.isSelectionAllowed=function(a){return"SELECT"==mxEvent.getSource(a).nodeName||"INPUT"==mxEvent.getSource(a).nodeName&&mxUtils.isAncestorNode(this.formatContainer,mxEvent.getSource(a))};EditorUi.prototype.addBeforeUnloadListener=function(){window.onbeforeunload=mxUtils.bind(this,function(){if(!this.editor.isChromelessView())return this.onBeforeUnload()})};EditorUi.prototype.onBeforeUnload=function(){if(this.editor.modified)return mxResources.get("allChangesLost")}; -EditorUi.prototype.open=function(){try{null!=window.opener&&null!=window.opener.openFile&&window.opener.openFile.setConsumer(mxUtils.bind(this,function(a,d){try{var e=mxUtils.parseXml(a);this.editor.setGraphXml(e.documentElement);this.editor.setModified(!1);this.editor.undoManager.clear();null!=d&&(this.editor.setFilename(d),this.updateDocumentTitle())}catch(b){mxUtils.alert(mxResources.get("invalidOrMissingFile")+": "+b.message)}}))}catch(a){}this.editor.graph.view.validate();this.editor.graph.sizeDidChange(); -this.editor.fireEvent(new mxEventObject("resetGraphView"))};EditorUi.prototype.setCurrentMenu=function(a,d){this.currentMenuElt=d;this.currentMenu=a};EditorUi.prototype.resetCurrentMenu=function(){this.currentMenu=this.currentMenuElt=null};EditorUi.prototype.hideCurrentMenu=function(){null!=this.currentMenu&&(this.currentMenu.hideMenu(),this.resetCurrentMenu())}; +EditorUi.prototype.open=function(){try{null!=window.opener&&null!=window.opener.openFile&&window.opener.openFile.setConsumer(mxUtils.bind(this,function(a,b){try{var e=mxUtils.parseXml(a);this.editor.setGraphXml(e.documentElement);this.editor.setModified(!1);this.editor.undoManager.clear();null!=b&&(this.editor.setFilename(b),this.updateDocumentTitle())}catch(d){mxUtils.alert(mxResources.get("invalidOrMissingFile")+": "+d.message)}}))}catch(a){}this.editor.graph.view.validate();this.editor.graph.sizeDidChange(); +this.editor.fireEvent(new mxEventObject("resetGraphView"))};EditorUi.prototype.setCurrentMenu=function(a,b){this.currentMenuElt=b;this.currentMenu=a};EditorUi.prototype.resetCurrentMenu=function(){this.currentMenu=this.currentMenuElt=null};EditorUi.prototype.hideCurrentMenu=function(){null!=this.currentMenu&&(this.currentMenu.hideMenu(),this.resetCurrentMenu())}; EditorUi.prototype.updateDocumentTitle=function(){var a=this.editor.getOrCreateFilename();null!=this.editor.appName&&(a+=" - "+this.editor.appName);document.title=a};EditorUi.prototype.createHoverIcons=function(){return new HoverIcons(this.editor.graph)};EditorUi.prototype.redo=function(){try{this.editor.graph.isEditing()?document.execCommand("redo",!1,null):this.editor.undoManager.redo()}catch(a){}}; -EditorUi.prototype.undo=function(){try{var a=this.editor.graph;if(a.isEditing()){var d=a.cellEditor.textarea.innerHTML;document.execCommand("undo",!1,null);d==a.cellEditor.textarea.innerHTML&&(a.stopEditing(!0),this.editor.undoManager.undo())}else this.editor.undoManager.undo()}catch(e){}};EditorUi.prototype.canRedo=function(){return this.editor.graph.isEditing()||this.editor.undoManager.canRedo()};EditorUi.prototype.canUndo=function(){return this.editor.graph.isEditing()||this.editor.undoManager.canUndo()}; -EditorUi.prototype.getEditBlankXml=function(){return mxUtils.getXml(this.editor.getGraphXml())};EditorUi.prototype.getUrl=function(a){a=null!=a?a:window.location.pathname;var d=0<a.indexOf("?")?1:0,e;for(e in urlParams)a=0==d?a+"?":a+"&",a+=e+"="+urlParams[e],d++;return a}; -EditorUi.prototype.setScrollbars=function(a){var d=this.editor.graph,e=d.container.style.overflow;d.scrollbars=a;this.editor.updateGraphComponents();e!=d.container.style.overflow&&("hidden"==d.container.style.overflow?(a=d.view.translate,d.view.setTranslate(a.x-d.container.scrollLeft/d.view.scale,a.y-d.container.scrollTop/d.view.scale),d.container.scrollLeft=0,d.container.scrollTop=0,d.minimumGraphSize=null,d.sizeDidChange()):(a=d.view.translate.x,e=d.view.translate.y,d.view.translate.x=0,d.view.translate.y= -0,d.sizeDidChange(),d.container.scrollLeft-=Math.round(a*d.view.scale),d.container.scrollTop-=Math.round(e*d.view.scale)));this.fireEvent(new mxEventObject("scrollbarsChanged"))};EditorUi.prototype.hasScrollbars=function(){return this.editor.graph.scrollbars}; -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 d=a.getPagePadding();a.container.scrollTop=Math.floor(d.y-this.editor.initialTopSpacing)-1;a.container.scrollLeft=Math.floor(Math.min(d.x,(a.container.scrollWidth-a.container.clientWidth)/2))- -1;d=a.getGraphBounds();0<d.width&&0<d.height&&(d.x>a.container.scrollLeft+.9*a.container.clientWidth&&(a.container.scrollLeft=Math.min(d.x+d.width-a.container.clientWidth,d.x-10)),d.y>a.container.scrollTop+.9*a.container.clientHeight&&(a.container.scrollTop=Math.min(d.y+d.height-a.container.clientHeight,d.y-10)))}else{var d=a.getGraphBounds(),e=Math.max(d.width,a.scrollTileSize.width*a.view.scale);a.container.scrollTop=Math.floor(Math.max(0,d.y-Math.max(20,(a.container.clientHeight-Math.max(d.height, -a.scrollTileSize.height*a.view.scale))/4)));a.container.scrollLeft=Math.floor(Math.max(0,d.x-Math.max(0,(a.container.clientWidth-e)/2)))}else a.pageVisible?(d=a.view.getBackgroundPageBounds(),a.view.setTranslate(Math.floor(Math.max(0,(a.container.clientWidth-d.width)/2)-d.x),Math.floor(Math.max(0,(a.container.clientHeight-d.height)/2)-d.y))):(d=a.getGraphBounds(),a.view.setTranslate(Math.floor(Math.max(0,Math.max(0,(a.container.clientWidth-d.width)/2)-d.x)),Math.floor(Math.max(0,Math.max(20,(a.container.clientHeight- -d.height)/4))-d.y)))}; -EditorUi.prototype.setPageVisible=function(a){var d=this.editor.graph,e=mxUtils.hasScrollbars(d.container),b=0,h=0;e&&(b=d.view.translate.x*d.view.scale-d.container.scrollLeft,h=d.view.translate.y*d.view.scale-d.container.scrollTop);d.pageVisible=a;d.pageBreaksVisible=a;d.preferPageSize=a;d.view.validateBackground();e&&(a=d.getSelectionCells(),d.clearSelection(),d.setSelectionCells(a));d.sizeDidChange();e&&(d.container.scrollLeft=d.view.translate.x*d.view.scale-b,d.container.scrollTop=d.view.translate.y* -d.view.scale-h);this.fireEvent(new mxEventObject("pageViewChanged"))};function ChangePageSetup(a,d,e,b){this.ui=a;this.previousColor=this.color=d;this.previousImage=this.image=e;this.previousFormat=this.format=b;this.ignoreImage=this.ignoreColor=!1} -ChangePageSetup.prototype.execute=function(){var a=this.ui.editor.graph;if(!this.ignoreColor){this.color=this.previousColor;var d=a.background;this.ui.setBackgroundColor(this.previousColor);this.previousColor=d}this.ignoreImage||(this.image=this.previousImage,d=a.backgroundImage,this.ui.setBackgroundImage(this.previousImage),this.previousImage=d);null!=this.previousFormat&&(this.format=this.previousFormat,d=a.pageFormat,this.previousFormat.width!=d.width||this.previousFormat.height!=d.height)&&(this.ui.setPageFormat(this.previousFormat), -this.previousFormat=d);null!=this.foldingEnabled&&this.foldingEnabled!=this.ui.editor.graph.foldingEnabled&&(this.ui.setFoldingEnabled(this.foldingEnabled),this.foldingEnabled=!this.foldingEnabled)};(function(){var a=new mxObjectCodec(new ChangePageSetup,["ui","previousColor","previousImage","previousFormat"]);a.afterDecode=function(a,e,b){b.previousColor=b.color;b.previousImage=b.image;b.previousFormat=b.format;null!=b.foldingEnabled&&(b.foldingEnabled=!b.foldingEnabled);return b};mxCodecRegistry.register(a)})(); +EditorUi.prototype.undo=function(){try{var a=this.editor.graph;if(a.isEditing()){var b=a.cellEditor.textarea.innerHTML;document.execCommand("undo",!1,null);b==a.cellEditor.textarea.innerHTML&&(a.stopEditing(!0),this.editor.undoManager.undo())}else this.editor.undoManager.undo()}catch(e){}};EditorUi.prototype.canRedo=function(){return this.editor.graph.isEditing()||this.editor.undoManager.canRedo()};EditorUi.prototype.canUndo=function(){return this.editor.graph.isEditing()||this.editor.undoManager.canUndo()}; +EditorUi.prototype.getEditBlankXml=function(){return mxUtils.getXml(this.editor.getGraphXml())};EditorUi.prototype.getUrl=function(a){a=null!=a?a:window.location.pathname;var b=0<a.indexOf("?")?1:0,e;for(e in urlParams)a=0==b?a+"?":a+"&",a+=e+"="+urlParams[e],b++;return a}; +EditorUi.prototype.setScrollbars=function(a){var b=this.editor.graph,e=b.container.style.overflow;b.scrollbars=a;this.editor.updateGraphComponents();e!=b.container.style.overflow&&("hidden"==b.container.style.overflow?(a=b.view.translate,b.view.setTranslate(a.x-b.container.scrollLeft/b.view.scale,a.y-b.container.scrollTop/b.view.scale),b.container.scrollLeft=0,b.container.scrollTop=0,b.minimumGraphSize=null,b.sizeDidChange()):(a=b.view.translate.x,e=b.view.translate.y,b.view.translate.x=0,b.view.translate.y= +0,b.sizeDidChange(),b.container.scrollLeft-=Math.round(a*b.view.scale),b.container.scrollTop-=Math.round(e*b.view.scale)));this.fireEvent(new mxEventObject("scrollbarsChanged"))};EditorUi.prototype.hasScrollbars=function(){return this.editor.graph.scrollbars}; +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();0<b.width&&0<b.height&&(b.x>a.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),d=0,k=0;e&&(d=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-d,b.container.scrollTop=b.view.translate.y* +b.view.scale-k);this.fireEvent(new mxEventObject("pageViewChanged"))};function ChangePageSetup(a,b,e,d){this.ui=a;this.previousColor=this.color=b;this.previousImage=this.image=e;this.previousFormat=this.format=d;this.ignoreImage=this.ignoreColor=!1} +ChangePageSetup.prototype.execute=function(){var a=this.ui.editor.graph;if(!this.ignoreColor){this.color=this.previousColor;var b=a.background;this.ui.setBackgroundColor(this.previousColor);this.previousColor=b}this.ignoreImage||(this.image=this.previousImage,b=a.backgroundImage,this.ui.setBackgroundImage(this.previousImage),this.previousImage=b);null!=this.previousFormat&&(this.format=this.previousFormat,b=a.pageFormat,this.previousFormat.width!=b.width||this.previousFormat.height!=b.height)&&(this.ui.setPageFormat(this.previousFormat), +this.previousFormat=b);null!=this.foldingEnabled&&this.foldingEnabled!=this.ui.editor.graph.foldingEnabled&&(this.ui.setFoldingEnabled(this.foldingEnabled),this.foldingEnabled=!this.foldingEnabled)};(function(){var a=new mxObjectCodec(new ChangePageSetup,["ui","previousColor","previousImage","previousFormat"]);a.afterDecode=function(a,e,d){d.previousColor=d.color;d.previousImage=d.image;d.previousFormat=d.format;null!=d.foldingEnabled&&(d.foldingEnabled=!d.foldingEnabled);return d};mxCodecRegistry.register(a)})(); EditorUi.prototype.setBackgroundColor=function(a){this.editor.graph.background=a;this.editor.graph.view.validateBackground();this.fireEvent(new mxEventObject("backgroundColorChanged"))};EditorUi.prototype.setFoldingEnabled=function(a){this.editor.graph.foldingEnabled=a;this.editor.graph.view.revalidate();this.fireEvent(new mxEventObject("foldingEnabledChanged"))}; EditorUi.prototype.setPageFormat=function(a){this.editor.graph.pageFormat=a;this.editor.graph.pageVisible?(this.editor.graph.view.validateBackground(),this.editor.graph.sizeDidChange()):this.actions.get("pageView").funct();this.fireEvent(new mxEventObject("pageFormatChanged"))};EditorUi.prototype.setPageScale=function(a){this.editor.graph.pageScale=a;this.editor.graph.pageVisible?(this.editor.graph.view.validateBackground(),this.editor.graph.sizeDidChange()):this.actions.get("pageView").funct();this.fireEvent(new mxEventObject("pageScaleChanged"))}; EditorUi.prototype.setGridColor=function(a){this.editor.graph.view.gridColor=a;this.editor.graph.view.validateBackground();this.fireEvent(new mxEventObject("gridColorChanged"))}; -EditorUi.prototype.addUndoListener=function(){var a=this.actions.get("undo"),d=this.actions.get("redo"),e=this.editor.undoManager,b=mxUtils.bind(this,function(){a.setEnabled(this.canUndo());d.setEnabled(this.canRedo())});e.addListener(mxEvent.ADD,b);e.addListener(mxEvent.UNDO,b);e.addListener(mxEvent.REDO,b);e.addListener(mxEvent.CLEAR,b);var h=this.editor.graph.cellEditor.startEditing;this.editor.graph.cellEditor.startEditing=function(){h.apply(this,arguments);b()};var m=this.editor.graph.cellEditor.stopEditing; -this.editor.graph.cellEditor.stopEditing=function(a,d){m.apply(this,arguments);b()};b()}; -EditorUi.prototype.updateActionStates=function(){var a=this.editor.graph,d=!a.isSelectionEmpty(),e=!1,b=!1,h=a.getSelectionCells();if(null!=h)for(var m=0;m<h.length;m++){var p=h[m];a.getModel().isEdge(p)&&(b=!0);a.getModel().isVertex(p)&&(e=!0);if(b&&e)break}h="cut copy bold italic underline delete duplicate editStyle editTooltip editLink backgroundColor borderColor edit toFront toBack lockUnlock solid dashed pasteSize dotted fillColor gradientColor shadow fontColor formattedText rounded toggleRounded sharp strokeColor".split(" ");for(m= -0;m<h.length;m++)this.actions.get(h[m]).setEnabled(d);this.actions.get("setAsDefaultStyle").setEnabled(1==a.getSelectionCount());this.actions.get("clearWaypoints").setEnabled(!a.isSelectionEmpty());this.actions.get("copySize").setEnabled(1==a.getSelectionCount());this.actions.get("turn").setEnabled(!a.isSelectionEmpty());this.actions.get("curved").setEnabled(b);this.actions.get("rotation").setEnabled(e);this.actions.get("wordWrap").setEnabled(e);this.actions.get("autosize").setEnabled(e);b=e&&1== -a.getSelectionCount();this.actions.get("group").setEnabled(1<a.getSelectionCount()||b&&!a.isContainer(a.getSelectionCell()));this.actions.get("ungroup").setEnabled(1==a.getSelectionCount()&&(0<a.getModel().getChildCount(a.getSelectionCell())||b&&a.isContainer(a.getSelectionCell())));this.actions.get("removeFromGroup").setEnabled(b&&a.getModel().isVertex(a.getModel().getParent(a.getSelectionCell())));a.view.getState(a.getSelectionCell());this.menus.get("navigation").setEnabled(d||null!=a.view.currentRoot); -this.actions.get("collapsible").setEnabled(e&&(a.isContainer(a.getSelectionCell())||0<a.model.getChildCount(a.getSelectionCell())));this.actions.get("home").setEnabled(null!=a.view.currentRoot);this.actions.get("exitGroup").setEnabled(null!=a.view.currentRoot);this.actions.get("enterGroup").setEnabled(1==a.getSelectionCount()&&a.isValidRoot(a.getSelectionCell()));d=1==a.getSelectionCount()&&a.isCellFoldable(a.getSelectionCell());this.actions.get("expand").setEnabled(d);this.actions.get("collapse").setEnabled(d); -this.actions.get("editLink").setEnabled(1==a.getSelectionCount());this.actions.get("openLink").setEnabled(1==a.getSelectionCount()&&null!=a.getLinkForCell(a.getSelectionCell()));this.actions.get("guides").setEnabled(a.isEnabled());this.actions.get("grid").setEnabled(!this.editor.chromeless||this.editor.editable);d=a.isEnabled()&&!a.isCellLocked(a.getDefaultParent());this.menus.get("layout").setEnabled(d);this.menus.get("insert").setEnabled(d);this.menus.get("direction").setEnabled(d&&e);this.menus.get("align").setEnabled(d&& -e&&1<a.getSelectionCount());this.menus.get("distribute").setEnabled(d&&e&&1<a.getSelectionCount());this.actions.get("selectVertices").setEnabled(d);this.actions.get("selectEdges").setEnabled(d);this.actions.get("selectAll").setEnabled(d);this.actions.get("selectNone").setEnabled(d);this.updatePasteActionStates()}; -EditorUi.prototype.refresh=function(a){a=null!=a?a:!0;var d=mxClient.IS_IE&&(null==document.documentMode||5==document.documentMode),e=this.container.clientWidth,b=this.container.clientHeight;this.container==document.body&&(e=document.body.clientWidth||document.documentElement.clientWidth,b=d?document.body.clientHeight||document.documentElement.clientHeight:document.documentElement.clientHeight);var h=0;mxClient.IS_IOS&&!window.navigator.standalone&&window.innerHeight!=document.documentElement.clientHeight&& -(h=document.documentElement.clientHeight-window.innerHeight,window.scrollTo(0,0));var m=Math.max(0,Math.min(this.hsplitPosition,e-this.splitSize-20)),p=0;null!=this.menubar&&(this.menubarContainer.style.height=this.menubarHeight+"px",p+=this.menubarHeight);null!=this.toolbar&&(this.toolbarContainer.style.top=this.menubarHeight+"px",this.toolbarContainer.style.height=this.toolbarHeight+"px",p+=this.toolbarHeight);0<p&&!mxClient.IS_QUIRKS&&(p+=1);var q=0;if(null!=this.sidebarFooterContainer){var u= -this.footerHeight+h,q=Math.max(0,Math.min(b-p-u,this.sidebarFooterHeight));this.sidebarFooterContainer.style.width=m+"px";this.sidebarFooterContainer.style.height=q+"px";this.sidebarFooterContainer.style.bottom=u+"px"}u=null!=this.format?this.formatWidth:0;this.sidebarContainer.style.top=p+"px";this.sidebarContainer.style.width=m+"px";this.formatContainer.style.top=p+"px";this.formatContainer.style.width=u+"px";this.formatContainer.style.display=null!=this.format?"":"none";this.diagramContainer.style.left= -null!=this.hsplit.parentNode?m+this.splitSize+"px":"0px";this.diagramContainer.style.top=this.sidebarContainer.style.top;this.footerContainer.style.height=this.footerHeight+"px";this.hsplit.style.top=this.sidebarContainer.style.top;this.hsplit.style.bottom=this.footerHeight+h+"px";this.hsplit.style.left=m+"px";null!=this.tabContainer&&(this.tabContainer.style.left=this.diagramContainer.style.left);d?(this.menubarContainer.style.width=e+"px",this.toolbarContainer.style.width=this.menubarContainer.style.width, -d=Math.max(0,b-this.footerHeight-this.menubarHeight-this.toolbarHeight),this.sidebarContainer.style.height=d-q+"px",this.formatContainer.style.height=d+"px",this.diagramContainer.style.width=null!=this.hsplit.parentNode?Math.max(0,e-m-this.splitSize-u)+"px":e+"px",this.footerContainer.style.width=this.menubarContainer.style.width,q=Math.max(0,b-this.footerHeight-this.menubarHeight-this.toolbarHeight),null!=this.tabContainer&&(this.tabContainer.style.width=this.diagramContainer.style.width,this.tabContainer.style.bottom= -this.footerHeight+h+"px",q-=this.tabContainer.clientHeight),this.diagramContainer.style.height=q+"px",this.hsplit.style.height=q+"px"):(0<this.footerHeight&&(this.footerContainer.style.bottom=h+"px"),this.diagramContainer.style.right=u+"px",e=0,null!=this.tabContainer&&(this.tabContainer.style.bottom=this.footerHeight+h+"px",this.tabContainer.style.right=this.diagramContainer.style.right,e=this.tabContainer.clientHeight),this.sidebarContainer.style.bottom=this.footerHeight+q+h+"px",this.formatContainer.style.bottom= -this.footerHeight+h+"px",this.diagramContainer.style.bottom=this.footerHeight+h+e+"px");a&&this.editor.graph.sizeDidChange()};EditorUi.prototype.createTabContainer=function(){return null}; +EditorUi.prototype.addUndoListener=function(){var a=this.actions.get("undo"),b=this.actions.get("redo"),e=this.editor.undoManager,d=mxUtils.bind(this,function(){a.setEnabled(this.canUndo());b.setEnabled(this.canRedo())});e.addListener(mxEvent.ADD,d);e.addListener(mxEvent.UNDO,d);e.addListener(mxEvent.REDO,d);e.addListener(mxEvent.CLEAR,d);var k=this.editor.graph.cellEditor.startEditing;this.editor.graph.cellEditor.startEditing=function(){k.apply(this,arguments);d()};var l=this.editor.graph.cellEditor.stopEditing; +this.editor.graph.cellEditor.stopEditing=function(a,b){l.apply(this,arguments);d()};d()}; +EditorUi.prototype.updateActionStates=function(){var a=this.editor.graph,b=!a.isSelectionEmpty(),e=!1,d=!1,k=a.getSelectionCells();if(null!=k)for(var l=0;l<k.length;l++){var p=k[l];a.getModel().isEdge(p)&&(d=!0);a.getModel().isVertex(p)&&(e=!0);if(d&&e)break}k="cut copy bold italic underline delete duplicate editStyle editTooltip editLink backgroundColor borderColor edit toFront toBack lockUnlock solid dashed pasteSize dotted fillColor gradientColor shadow fontColor formattedText rounded toggleRounded sharp strokeColor".split(" ");for(l= +0;l<k.length;l++)this.actions.get(k[l]).setEnabled(b);this.actions.get("setAsDefaultStyle").setEnabled(1==a.getSelectionCount());this.actions.get("clearWaypoints").setEnabled(!a.isSelectionEmpty());this.actions.get("copySize").setEnabled(1==a.getSelectionCount());this.actions.get("turn").setEnabled(!a.isSelectionEmpty());this.actions.get("curved").setEnabled(d);this.actions.get("rotation").setEnabled(e);this.actions.get("wordWrap").setEnabled(e);this.actions.get("autosize").setEnabled(e);d=e&&1== +a.getSelectionCount();this.actions.get("group").setEnabled(1<a.getSelectionCount()||d&&!a.isContainer(a.getSelectionCell()));this.actions.get("ungroup").setEnabled(1==a.getSelectionCount()&&(0<a.getModel().getChildCount(a.getSelectionCell())||d&&a.isContainer(a.getSelectionCell())));this.actions.get("removeFromGroup").setEnabled(d&&a.getModel().isVertex(a.getModel().getParent(a.getSelectionCell())));a.view.getState(a.getSelectionCell());this.menus.get("navigation").setEnabled(b||null!=a.view.currentRoot); +this.actions.get("collapsible").setEnabled(e&&(a.isContainer(a.getSelectionCell())||0<a.model.getChildCount(a.getSelectionCell())));this.actions.get("home").setEnabled(null!=a.view.currentRoot);this.actions.get("exitGroup").setEnabled(null!=a.view.currentRoot);this.actions.get("enterGroup").setEnabled(1==a.getSelectionCount()&&a.isValidRoot(a.getSelectionCell()));b=1==a.getSelectionCount()&&a.isCellFoldable(a.getSelectionCell());this.actions.get("expand").setEnabled(b);this.actions.get("collapse").setEnabled(b); +this.actions.get("editLink").setEnabled(1==a.getSelectionCount());this.actions.get("openLink").setEnabled(1==a.getSelectionCount()&&null!=a.getLinkForCell(a.getSelectionCell()));this.actions.get("guides").setEnabled(a.isEnabled());this.actions.get("grid").setEnabled(!this.editor.chromeless||this.editor.editable);b=a.isEnabled()&&!a.isCellLocked(a.getDefaultParent());this.menus.get("layout").setEnabled(b);this.menus.get("insert").setEnabled(b);this.menus.get("direction").setEnabled(b&&e);this.menus.get("align").setEnabled(b&& +e&&1<a.getSelectionCount());this.menus.get("distribute").setEnabled(b&&e&&1<a.getSelectionCount());this.actions.get("selectVertices").setEnabled(b);this.actions.get("selectEdges").setEnabled(b);this.actions.get("selectAll").setEnabled(b);this.actions.get("selectNone").setEnabled(b);this.updatePasteActionStates()}; +EditorUi.prototype.refresh=function(a){a=null!=a?a:!0;var b=mxClient.IS_IE&&(null==document.documentMode||5==document.documentMode),e=this.container.clientWidth,d=this.container.clientHeight;this.container==document.body&&(e=document.body.clientWidth||document.documentElement.clientWidth,d=b?document.body.clientHeight||document.documentElement.clientHeight:document.documentElement.clientHeight);var k=0;mxClient.IS_IOS&&!window.navigator.standalone&&window.innerHeight!=document.documentElement.clientHeight&& +(k=document.documentElement.clientHeight-window.innerHeight,window.scrollTo(0,0));var l=Math.max(0,Math.min(this.hsplitPosition,e-this.splitSize-20)),p=0;null!=this.menubar&&(this.menubarContainer.style.height=this.menubarHeight+"px",p+=this.menubarHeight);null!=this.toolbar&&(this.toolbarContainer.style.top=this.menubarHeight+"px",this.toolbarContainer.style.height=this.toolbarHeight+"px",p+=this.toolbarHeight);0<p&&!mxClient.IS_QUIRKS&&(p+=1);var q=0;if(null!=this.sidebarFooterContainer){var u= +this.footerHeight+k,q=Math.max(0,Math.min(d-p-u,this.sidebarFooterHeight));this.sidebarFooterContainer.style.width=l+"px";this.sidebarFooterContainer.style.height=q+"px";this.sidebarFooterContainer.style.bottom=u+"px"}u=null!=this.format?this.formatWidth:0;this.sidebarContainer.style.top=p+"px";this.sidebarContainer.style.width=l+"px";this.formatContainer.style.top=p+"px";this.formatContainer.style.width=u+"px";this.formatContainer.style.display=null!=this.format?"":"none";this.diagramContainer.style.left= +null!=this.hsplit.parentNode?l+this.splitSize+"px":"0px";this.diagramContainer.style.top=this.sidebarContainer.style.top;this.footerContainer.style.height=this.footerHeight+"px";this.hsplit.style.top=this.sidebarContainer.style.top;this.hsplit.style.bottom=this.footerHeight+k+"px";this.hsplit.style.left=l+"px";null!=this.tabContainer&&(this.tabContainer.style.left=this.diagramContainer.style.left);b?(this.menubarContainer.style.width=e+"px",this.toolbarContainer.style.width=this.menubarContainer.style.width, +b=Math.max(0,d-this.footerHeight-this.menubarHeight-this.toolbarHeight),this.sidebarContainer.style.height=b-q+"px",this.formatContainer.style.height=b+"px",this.diagramContainer.style.width=null!=this.hsplit.parentNode?Math.max(0,e-l-this.splitSize-u)+"px":e+"px",this.footerContainer.style.width=this.menubarContainer.style.width,q=Math.max(0,d-this.footerHeight-this.menubarHeight-this.toolbarHeight),null!=this.tabContainer&&(this.tabContainer.style.width=this.diagramContainer.style.width,this.tabContainer.style.bottom= +this.footerHeight+k+"px",q-=this.tabContainer.clientHeight),this.diagramContainer.style.height=q+"px",this.hsplit.style.height=q+"px"):(0<this.footerHeight&&(this.footerContainer.style.bottom=k+"px"),this.diagramContainer.style.right=u+"px",e=0,null!=this.tabContainer&&(this.tabContainer.style.bottom=this.footerHeight+k+"px",this.tabContainer.style.right=this.diagramContainer.style.right,e=this.tabContainer.clientHeight),this.sidebarContainer.style.bottom=this.footerHeight+q+k+"px",this.formatContainer.style.bottom= +this.footerHeight+k+"px",this.diagramContainer.style.bottom=this.footerHeight+k+e+"px");a&&this.editor.graph.sizeDidChange()};EditorUi.prototype.createTabContainer=function(){return null}; EditorUi.prototype.createDivs=function(){this.menubarContainer=this.createDiv("geMenubarContainer");this.toolbarContainer=this.createDiv("geToolbarContainer");this.sidebarContainer=this.createDiv("geSidebarContainer");this.formatContainer=this.createDiv("geSidebarContainer geFormatContainer");this.diagramContainer=this.createDiv("geDiagramContainer");this.footerContainer=this.createDiv("geFooterContainer");this.hsplit=this.createDiv("geHsplit");this.hsplit.setAttribute("title",mxResources.get("collapseExpand")); this.menubarContainer.style.top="0px";this.menubarContainer.style.left="0px";this.menubarContainer.style.right="0px";this.toolbarContainer.style.left="0px";this.toolbarContainer.style.right="0px";this.sidebarContainer.style.left="0px";this.formatContainer.style.right="0px";this.formatContainer.style.zIndex="1";this.diagramContainer.style.right=(null!=this.format?this.formatWidth:0)+"px";this.footerContainer.style.left="0px";this.footerContainer.style.right="0px";this.footerContainer.style.bottom= "0px";this.footerContainer.style.zIndex=mxPopupMenu.prototype.zIndex-2;this.hsplit.style.width=this.splitSize+"px";if(this.sidebarFooterContainer=this.createSidebarFooterContainer())this.sidebarFooterContainer.style.left="0px";this.editor.chromeless?this.diagramContainer.style.border="none":this.tabContainer=this.createTabContainer()};EditorUi.prototype.createSidebarFooterContainer=function(){return null}; @@ -2155,251 +2156,252 @@ EditorUi.prototype.createUi=function(){this.menubar=this.editor.chromeless?null: this.sidebar=this.editor.chromeless?null:this.createSidebar(this.sidebarContainer);null!=this.sidebar&&this.container.appendChild(this.sidebarContainer);this.format=this.editor.chromeless||!this.formatEnabled?null:this.createFormat(this.formatContainer);null!=this.format&&this.container.appendChild(this.formatContainer);var a=this.editor.chromeless?null:this.createFooter();null!=a&&(this.footerContainer.appendChild(a),this.container.appendChild(this.footerContainer));null!=this.sidebar&&this.sidebarFooterContainer&& this.container.appendChild(this.sidebarFooterContainer);this.container.appendChild(this.diagramContainer);null!=this.container&&null!=this.tabContainer&&this.container.appendChild(this.tabContainer);this.toolbar=this.editor.chromeless?null:this.createToolbar(this.createDiv("geToolbar"));null!=this.toolbar&&(this.toolbarContainer.appendChild(this.toolbar.container),this.container.appendChild(this.toolbarContainer));null!=this.sidebar&&(this.container.appendChild(this.hsplit),this.addSplitHandler(this.hsplit, !0,0,mxUtils.bind(this,function(a){this.hsplitPosition=a;this.refresh()})))};EditorUi.prototype.createStatusContainer=function(){var a=document.createElement("a");a.className="geItem geStatus";420>screen.width&&(a.style.maxWidth=Math.max(20,screen.width-320)+"px",a.style.overflow="hidden");return a};EditorUi.prototype.setStatusText=function(a){this.statusContainer.innerHTML=a};EditorUi.prototype.createToolbar=function(a){return new Toolbar(this,a)}; -EditorUi.prototype.createSidebar=function(a){return new Sidebar(this,a)};EditorUi.prototype.createFormat=function(a){return new Format(this,a)};EditorUi.prototype.createFooter=function(){return this.createDiv("geFooter")};EditorUi.prototype.createDiv=function(a){var d=document.createElement("div");d.className=a;return d}; -EditorUi.prototype.addSplitHandler=function(a,d,e,b){function h(a){if(null!=p){var g=new mxPoint(mxEvent.getClientX(a),mxEvent.getClientY(a));b(Math.max(0,q+(d?g.x-p.x:p.y-g.y)-e));mxEvent.consume(a);q!=f()&&(u=!0,c=null)}}function m(a){h(a);p=q=null}var p=null,q=null,u=!0,c=null;mxClient.IS_POINTER&&(a.style.touchAction="none");var f=mxUtils.bind(this,function(){var c=parseInt(d?a.style.left:a.style.bottom);d||(c=c+e-this.footerHeight);return c});mxEvent.addGestureListeners(a,function(a){p=new mxPoint(mxEvent.getClientX(a), -mxEvent.getClientY(a));q=f();u=!1;mxEvent.consume(a)});mxEvent.addListener(a,"click",mxUtils.bind(this,function(a){if(!u&&this.hsplitClickEnabled){var d=null!=c?c-e:0;c=f();b(d);mxEvent.consume(a)}}));mxEvent.addGestureListeners(document,null,h,m);this.destroyFunctions.push(function(){mxEvent.removeGestureListeners(document,null,h,m)})}; -EditorUi.prototype.showDialog=function(a,d,e,b,h,m,p,q){this.editor.graph.tooltipHandler.hideTooltip();null==this.dialogs&&(this.dialogs=[]);this.dialog=new Dialog(this,a,d,e,b,h,m,p,q);this.dialogs.push(this.dialog)}; +EditorUi.prototype.createSidebar=function(a){return new Sidebar(this,a)};EditorUi.prototype.createFormat=function(a){return new Format(this,a)};EditorUi.prototype.createFooter=function(){return this.createDiv("geFooter")};EditorUi.prototype.createDiv=function(a){var b=document.createElement("div");b.className=a;return b}; +EditorUi.prototype.addSplitHandler=function(a,b,e,d){function k(a){if(null!=p){var g=new mxPoint(mxEvent.getClientX(a),mxEvent.getClientY(a));d(Math.max(0,q+(b?g.x-p.x:p.y-g.y)-e));mxEvent.consume(a);q!=f()&&(u=!0,c=null)}}function l(a){k(a);p=q=null}var p=null,q=null,u=!0,c=null;mxClient.IS_POINTER&&(a.style.touchAction="none");var f=mxUtils.bind(this,function(){var c=parseInt(b?a.style.left:a.style.bottom);b||(c=c+e-this.footerHeight);return c});mxEvent.addGestureListeners(a,function(a){p=new mxPoint(mxEvent.getClientX(a), +mxEvent.getClientY(a));q=f();u=!1;mxEvent.consume(a)});mxEvent.addListener(a,"click",mxUtils.bind(this,function(a){if(!u&&this.hsplitClickEnabled){var b=null!=c?c-e:0;c=f();d(b);mxEvent.consume(a)}}));mxEvent.addGestureListeners(document,null,k,l);this.destroyFunctions.push(function(){mxEvent.removeGestureListeners(document,null,k,l)})}; +EditorUi.prototype.showDialog=function(a,b,e,d,k,l,p,q){this.editor.graph.tooltipHandler.hideTooltip();null==this.dialogs&&(this.dialogs=[]);this.dialog=new Dialog(this,a,b,e,d,k,l,p,q);this.dialogs.push(this.dialog)}; EditorUi.prototype.hideDialog=function(a){null!=this.dialogs&&0<this.dialogs.length&&(this.dialogs.pop().close(a),this.dialog=0<this.dialogs.length?this.dialogs[this.dialogs.length-1]:null,null==this.dialog&&"hidden"!=this.editor.graph.container.style.visibility&&this.editor.graph.container.focus(),mxUtils.clearSelection(),this.editor.fireEvent(new mxEventObject("hideDialog")))}; -EditorUi.prototype.pickColor=function(a,d){var e=this.editor.graph,b=e.cellEditor.saveSelection(),h=226+17*(Math.ceil(ColorDialog.prototype.presetColors.length/12)+Math.ceil(ColorDialog.prototype.defaultColors.length/12)),m=new ColorDialog(this,a||"none",function(a){e.cellEditor.restoreSelection(b);d(a)},function(){e.cellEditor.restoreSelection(b)});this.showDialog(m.container,230,h,!0,!1);m.init()}; +EditorUi.prototype.pickColor=function(a,b){var e=this.editor.graph,d=e.cellEditor.saveSelection(),k=226+17*(Math.ceil(ColorDialog.prototype.presetColors.length/12)+Math.ceil(ColorDialog.prototype.defaultColors.length/12)),l=new ColorDialog(this,a||"none",function(a){e.cellEditor.restoreSelection(d);b(a)},function(){e.cellEditor.restoreSelection(d)});this.showDialog(l.container,230,k,!0,!1);l.init()}; EditorUi.prototype.openFile=function(){window.openFile=new OpenFile(mxUtils.bind(this,function(a){this.hideDialog(a)}));this.showDialog((new OpenDialog(this)).container,Editor.useLocalStorage?640:320,Editor.useLocalStorage?480:220,!0,!0,function(){window.openFile=null})}; -EditorUi.prototype.extractGraphModelFromHtml=function(a){var d=null;try{var e=a.indexOf("<mxGraphModel ");if(0<=e){var b=a.lastIndexOf("</mxGraphModel>");b>e&&(d=a.substring(e,b+21).replace(/>/g,">").replace(/</g,"<").replace(/\\"/g,'"').replace(/\n/g,""))}}catch(h){}return d}; -EditorUi.prototype.extractGraphModelFromEvent=function(a){var d=null,e=null;null!=a&&(a=null!=a.dataTransfer?a.dataTransfer:a.clipboardData,null!=a&&(10==document.documentMode||11==document.documentMode?e=a.getData("Text"):(e=0<=mxUtils.indexOf(a.types,"text/html")?a.getData("text/html"):null,mxUtils.indexOf(a.types,null==e||0==e.length)&&(e=a.getData("text/plain"))),null!=e&&(e=this.editor.graph.zapGremlins(mxUtils.trim(e)),a=this.extractGraphModelFromHtml(e),null!=a&&(e=a))));null!=e&&this.isCompatibleString(e)&& -(d=e);return d};EditorUi.prototype.isCompatibleString=function(a){return!1};EditorUi.prototype.saveFile=function(a){a||null==this.editor.filename?(a=new FilenameDialog(this,this.editor.getOrCreateFilename(),mxResources.get("save"),mxUtils.bind(this,function(a){this.save(a)}),null,mxUtils.bind(this,function(a){if(null!=a&&0<a.length)return!0;mxUtils.confirm(mxResources.get("invalidName"));return!1})),this.showDialog(a.container,300,100,!0,!0),a.init()):this.save(this.editor.getOrCreateFilename())}; -EditorUi.prototype.save=function(a){if(null!=a){this.editor.graph.isEditing()&&this.editor.graph.stopEditing();var d=mxUtils.getXml(this.editor.getGraphXml());try{if(Editor.useLocalStorage){if(null!=localStorage.getItem(a)&&!mxUtils.confirm(mxResources.get("replaceIt",[a])))return;localStorage.setItem(a,d);this.editor.setStatus(mxUtils.htmlEntities(mxResources.get("saved"))+" "+new Date)}else if(d.length<MAX_REQUEST_SIZE)(new mxXmlRequest(SAVE_URL,"filename="+encodeURIComponent(a)+"&xml="+encodeURIComponent(d))).simulate(document, -"_blank");else{mxUtils.alert(mxResources.get("drawingTooLarge"));mxUtils.popup(d);return}this.editor.setModified(!1);this.editor.setFilename(a);this.updateDocumentTitle()}catch(e){this.editor.setStatus(mxUtils.htmlEntities(mxResources.get("errorSavingFile")))}}}; -EditorUi.prototype.executeLayout=function(a,d,e){var b=this.editor.graph;if(b.isEnabled()){b.getModel().beginUpdate();try{a()}catch(h){throw h;}finally{this.allowAnimation&&d&&0>navigator.userAgent.indexOf("Camino")?(a=new mxMorphing(b),a.addListener(mxEvent.DONE,mxUtils.bind(this,function(){b.getModel().endUpdate();null!=e&&e()})),a.startAnimation()):(b.getModel().endUpdate(),null!=e&&e())}}}; -EditorUi.prototype.showImageDialog=function(a,d,e,b){b=this.editor.graph.cellEditor;var h=b.saveSelection(),m=mxUtils.prompt(a,d);b.restoreSelection(h);if(null!=m&&0<m.length){var p=new Image;p.onload=function(){e(m,p.width,p.height)};p.onerror=function(){e(null);mxUtils.alert(mxResources.get("fileNotFound"))};p.src=m}else e(null)};EditorUi.prototype.showLinkDialog=function(a,d,e){a=new LinkDialog(this,a,d,e);this.showDialog(a.container,420,90,!0,!0);a.init()}; +EditorUi.prototype.extractGraphModelFromHtml=function(a){var b=null;try{var e=a.indexOf("<mxGraphModel ");if(0<=e){var d=a.lastIndexOf("</mxGraphModel>");d>e&&(b=a.substring(e,d+21).replace(/>/g,">").replace(/</g,"<").replace(/\\"/g,'"').replace(/\n/g,""))}}catch(k){}return b}; +EditorUi.prototype.extractGraphModelFromEvent=function(a){var b=null,e=null;null!=a&&(a=null!=a.dataTransfer?a.dataTransfer:a.clipboardData,null!=a&&(10==document.documentMode||11==document.documentMode?e=a.getData("Text"):(e=0<=mxUtils.indexOf(a.types,"text/html")?a.getData("text/html"):null,mxUtils.indexOf(a.types,null==e||0==e.length)&&(e=a.getData("text/plain"))),null!=e&&(e=this.editor.graph.zapGremlins(mxUtils.trim(e)),a=this.extractGraphModelFromHtml(e),null!=a&&(e=a))));null!=e&&this.isCompatibleString(e)&& +(b=e);return b};EditorUi.prototype.isCompatibleString=function(a){return!1};EditorUi.prototype.saveFile=function(a){a||null==this.editor.filename?(a=new FilenameDialog(this,this.editor.getOrCreateFilename(),mxResources.get("save"),mxUtils.bind(this,function(a){this.save(a)}),null,mxUtils.bind(this,function(a){if(null!=a&&0<a.length)return!0;mxUtils.confirm(mxResources.get("invalidName"));return!1})),this.showDialog(a.container,300,100,!0,!0),a.init()):this.save(this.editor.getOrCreateFilename())}; +EditorUi.prototype.save=function(a){if(null!=a){this.editor.graph.isEditing()&&this.editor.graph.stopEditing();var b=mxUtils.getXml(this.editor.getGraphXml());try{if(Editor.useLocalStorage){if(null!=localStorage.getItem(a)&&!mxUtils.confirm(mxResources.get("replaceIt",[a])))return;localStorage.setItem(a,b);this.editor.setStatus(mxUtils.htmlEntities(mxResources.get("saved"))+" "+new Date)}else if(b.length<MAX_REQUEST_SIZE)(new mxXmlRequest(SAVE_URL,"filename="+encodeURIComponent(a)+"&xml="+encodeURIComponent(b))).simulate(document, +"_blank");else{mxUtils.alert(mxResources.get("drawingTooLarge"));mxUtils.popup(b);return}this.editor.setModified(!1);this.editor.setFilename(a);this.updateDocumentTitle()}catch(e){this.editor.setStatus(mxUtils.htmlEntities(mxResources.get("errorSavingFile")))}}}; +EditorUi.prototype.executeLayout=function(a,b,e){var d=this.editor.graph;if(d.isEnabled()){d.getModel().beginUpdate();try{a()}catch(k){throw k;}finally{this.allowAnimation&&b&&0>navigator.userAgent.indexOf("Camino")?(a=new mxMorphing(d),a.addListener(mxEvent.DONE,mxUtils.bind(this,function(){d.getModel().endUpdate();null!=e&&e()})),a.startAnimation()):(d.getModel().endUpdate(),null!=e&&e())}}}; +EditorUi.prototype.showImageDialog=function(a,b,e,d){d=this.editor.graph.cellEditor;var k=d.saveSelection(),l=mxUtils.prompt(a,b);d.restoreSelection(k);if(null!=l&&0<l.length){var p=new Image;p.onload=function(){e(l,p.width,p.height)};p.onerror=function(){e(null);mxUtils.alert(mxResources.get("fileNotFound"))};p.src=l}else e(null)};EditorUi.prototype.showLinkDialog=function(a,b,e){a=new LinkDialog(this,a,b,e);this.showDialog(a.container,420,90,!0,!0);a.init()}; EditorUi.prototype.showDataDialog=function(a){null!=a&&(a=new EditDataDialog(this,a),this.showDialog(a.container,340,340,!0,!1,null,!1),a.init())}; -EditorUi.prototype.showBackgroundImageDialog=function(a){a=null!=a?a:mxUtils.bind(this,function(a){a=new ChangePageSetup(this,null,a);a.ignoreColor=!0;this.editor.graph.model.execute(a)});var d=mxUtils.prompt(mxResources.get("backgroundImage"),"");if(null!=d&&0<d.length){var e=new Image;e.onload=function(){a(new mxImage(d,e.width,e.height))};e.onerror=function(){a(null);mxUtils.alert(mxResources.get("fileNotFound"))};e.src=d}else a(null)}; -EditorUi.prototype.setBackgroundImage=function(a){this.editor.graph.setBackgroundImage(a);this.editor.graph.view.validateBackgroundImage();this.fireEvent(new mxEventObject("backgroundImageChanged"))};EditorUi.prototype.confirm=function(a,d,e){mxUtils.confirm(a)?null!=d&&d():null!=e&&e()}; -EditorUi.prototype.createOutline=function(a){var d=new mxOutline(this.editor.graph);d.border=20;mxEvent.addListener(window,"resize",function(){d.update()});this.addListener("pageFormatChanged",function(){d.update()});return d};EditorUi.prototype.altShiftActions={67:"clearWaypoints",65:"connectionArrows",76:"editLink",80:"connectionPoints",84:"editTooltip",86:"pasteSize",88:"copySize"}; -EditorUi.prototype.createKeyHandler=function(a){function d(a,c,d){p.push(function(){if(!b.isSelectionEmpty()&&b.isEnabled())if(c=null!=c?c:1,d){b.getModel().beginUpdate();try{for(var f=b.getSelectionCells(),g=0;g<f.length;g++)if(b.getModel().isVertex(f[g])&&b.isCellResizable(f[g])){var e=b.getCellGeometry(f[g]);null!=e&&(e=e.clone(),37==a?e.width=Math.max(0,e.width-c):38==a?e.height=Math.max(0,e.height-c):39==a?e.width+=c:40==a&&(e.height+=c),b.getModel().setGeometry(f[g],e))}}finally{b.getModel().endUpdate()}}else f= -b.getSelectionCell(),g=b.model.getParent(f),e=null,1==b.getSelectionCount()&&b.model.isVertex(f)&&null!=b.layoutManager&&!b.isCellLocked(f)&&(e=b.layoutManager.getLayout(g)),null!=e&&e.constructor==mxStackLayout?(e=g.getIndex(f),37==a||38==a?b.model.add(g,f,Math.max(0,e-1)):39!=a&&40!=a||b.model.add(g,f,Math.min(b.model.getChildCount(g),e+1))):(g=f=0,37==a?f=-c:38==a?g=-c:39==a?f=c:40==a&&(g=c),b.moveCells(b.getMovableCells(b.getSelectionCells()),f,g))});null!=q&&window.clearTimeout(q);q=window.setTimeout(function(){if(0< -p.length){b.getModel().beginUpdate();try{for(var a=0;a<p.length;a++)p[a]();p=[]}finally{b.getModel().endUpdate()}b.scrollCellToVisible(b.getSelectionCell())}},200)}var e=this,b=this.editor.graph,h=new mxKeyHandler(b),m=h.isEventIgnored;h.isEventIgnored=function(a){return(!this.isControlDown(a)||mxEvent.isShiftDown(a)||90!=a.keyCode&&89!=a.keyCode&&188!=a.keyCode&&190!=a.keyCode&&85!=a.keyCode)&&(66!=a.keyCode&&73!=a.keyCode||!this.isControlDown(a)||this.graph.cellEditor.isContentEditing()&&!mxClient.IS_FF&& -!mxClient.IS_SF)&&m.apply(this,arguments)};h.isEnabledForEvent=function(a){return!mxEvent.isConsumed(a)&&this.isGraphEvent(a)&&this.isEnabled()&&(null==e.dialogs||0==e.dialogs.length)};h.isControlDown=function(a){return mxEvent.isControlDown(a)||mxClient.IS_MAC&&a.metaKey};var p=[],q=null,u={37:mxConstants.DIRECTION_WEST,38:mxConstants.DIRECTION_NORTH,39:mxConstants.DIRECTION_EAST,40:mxConstants.DIRECTION_SOUTH},c=h.getFunction;mxKeyHandler.prototype.getFunction=function(a){if(b.isEnabled()){if(mxEvent.isShiftDown(a)&& -mxEvent.isAltDown(a)){var f=e.actions.get(e.altShiftActions[a.keyCode]);if(null!=f)return f.funct}if(9==a.keyCode&&mxEvent.isAltDown(a))return mxEvent.isShiftDown(a)?function(){b.selectParentCell()}:function(){b.selectChildCell()};if(null!=u[a.keyCode]&&!b.isSelectionEmpty())if(mxEvent.isShiftDown(a)&&mxEvent.isAltDown(a)){if(b.model.isVertex(b.getSelectionCell()))return function(){var c=b.connectVertex(b.getSelectionCell(),u[a.keyCode],b.defaultEdgeLength,a,!0);null!=c&&0<c.length&&(1==c.length&& -b.model.isEdge(c[0])?b.setSelectionCell(b.model.getTerminal(c[0],!1)):b.setSelectionCell(c[c.length-1]),b.scrollCellToVisible(b.getSelectionCell()),null!=e.hoverIcons&&e.hoverIcons.update(b.view.getState(b.getSelectionCell())))}}else return this.isControlDown(a)?function(){d(a.keyCode,mxEvent.isShiftDown(a)?b.gridSize:null,!0)}:function(){d(a.keyCode,mxEvent.isShiftDown(a)?b.gridSize:null)}}return c.apply(this,arguments)};h.bindAction=mxUtils.bind(this,function(a,c,d,b){var f=this.actions.get(d); -null!=f&&(d=function(){f.isEnabled()&&f.funct()},c?b?h.bindControlShiftKey(a,d):h.bindControlKey(a,d):b?h.bindShiftKey(a,d):h.bindKey(a,d))});var f=h.escape;h.escape=function(a){f.apply(this,arguments)};h.enter=function(){};h.bindControlShiftKey(36,function(){b.exitGroup()});h.bindControlShiftKey(35,function(){b.enterGroup()});h.bindKey(36,function(){b.home()});h.bindKey(35,function(){b.refresh()});h.bindAction(107,!0,"zoomIn");h.bindAction(109,!0,"zoomOut");h.bindAction(80,!0,"print");h.bindAction(79, -!0,"outline",!0);h.bindAction(112,!1,"about");if(!this.editor.chromeless||this.editor.editable)h.bindControlKey(36,function(){b.isEnabled()&&b.foldCells(!0)}),h.bindControlKey(35,function(){b.isEnabled()&&b.foldCells(!1)}),h.bindControlKey(13,function(){b.isEnabled()&&b.setSelectionCells(b.duplicateCells(b.getSelectionCells(),!1))}),h.bindAction(8,!1,"delete"),h.bindAction(8,!0,"deleteAll"),h.bindAction(46,!1,"delete"),h.bindAction(46,!0,"deleteAll"),h.bindAction(72,!0,"resetView"),h.bindAction(72, -!0,"fitWindow",!0),h.bindAction(74,!0,"fitPage"),h.bindAction(74,!0,"fitTwoPages",!0),h.bindAction(48,!0,"customZoom"),h.bindAction(82,!0,"turn"),h.bindAction(82,!0,"clearDefaultStyle",!0),h.bindAction(83,!0,"save"),h.bindAction(83,!0,"saveAs",!0),h.bindAction(65,!0,"selectAll"),h.bindAction(65,!0,"selectNone",!0),h.bindAction(73,!0,"selectVertices",!0),h.bindAction(69,!0,"selectEdges",!0),h.bindAction(69,!0,"editStyle"),h.bindAction(66,!0,"bold"),h.bindAction(66,!0,"toBack",!0),h.bindAction(70,!0, -"toFront",!0),h.bindAction(68,!0,"duplicate"),h.bindAction(68,!0,"setAsDefaultStyle",!0),h.bindAction(90,!0,"undo"),h.bindAction(89,!0,"autosize",!0),h.bindAction(88,!0,"cut"),h.bindAction(67,!0,"copy"),h.bindAction(86,!0,"paste"),h.bindAction(71,!0,"group"),h.bindAction(77,!0,"editData"),h.bindAction(71,!0,"grid",!0),h.bindAction(73,!0,"italic"),h.bindAction(76,!0,"lockUnlock"),h.bindAction(76,!0,"layers",!0),h.bindAction(80,!0,"formatPanel",!0),h.bindAction(85,!0,"underline"),h.bindAction(85,!0, -"ungroup",!0),h.bindAction(190,!0,"superscript"),h.bindAction(188,!0,"subscript"),h.bindKey(13,function(){b.isEnabled()&&b.startEditingAtCell()}),h.bindKey(113,function(){b.isEnabled()&&b.startEditingAtCell()});mxClient.IS_WIN?h.bindAction(89,!0,"redo"):h.bindAction(90,!0,"redo",!0);return h}; +EditorUi.prototype.showBackgroundImageDialog=function(a){a=null!=a?a:mxUtils.bind(this,function(a){a=new ChangePageSetup(this,null,a);a.ignoreColor=!0;this.editor.graph.model.execute(a)});var b=mxUtils.prompt(mxResources.get("backgroundImage"),"");if(null!=b&&0<b.length){var e=new Image;e.onload=function(){a(new mxImage(b,e.width,e.height))};e.onerror=function(){a(null);mxUtils.alert(mxResources.get("fileNotFound"))};e.src=b}else a(null)}; +EditorUi.prototype.setBackgroundImage=function(a){this.editor.graph.setBackgroundImage(a);this.editor.graph.view.validateBackgroundImage();this.fireEvent(new mxEventObject("backgroundImageChanged"))};EditorUi.prototype.confirm=function(a,b,e){mxUtils.confirm(a)?null!=b&&b():null!=e&&e()}; +EditorUi.prototype.createOutline=function(a){var b=new mxOutline(this.editor.graph);b.border=20;mxEvent.addListener(window,"resize",function(){b.update()});this.addListener("pageFormatChanged",function(){b.update()});return b};EditorUi.prototype.altShiftActions={67:"clearWaypoints",65:"connectionArrows",76:"editLink",80:"connectionPoints",84:"editTooltip",86:"pasteSize",88:"copySize"}; +EditorUi.prototype.createKeyHandler=function(a){function b(a,c,b){p.push(function(){if(!d.isSelectionEmpty()&&d.isEnabled())if(c=null!=c?c:1,b){d.getModel().beginUpdate();try{for(var f=d.getSelectionCells(),g=0;g<f.length;g++)if(d.getModel().isVertex(f[g])&&d.isCellResizable(f[g])){var e=d.getCellGeometry(f[g]);null!=e&&(e=e.clone(),37==a?e.width=Math.max(0,e.width-c):38==a?e.height=Math.max(0,e.height-c):39==a?e.width+=c:40==a&&(e.height+=c),d.getModel().setGeometry(f[g],e))}}finally{d.getModel().endUpdate()}}else f= +d.getSelectionCell(),g=d.model.getParent(f),e=null,1==d.getSelectionCount()&&d.model.isVertex(f)&&null!=d.layoutManager&&!d.isCellLocked(f)&&(e=d.layoutManager.getLayout(g)),null!=e&&e.constructor==mxStackLayout?(e=g.getIndex(f),37==a||38==a?d.model.add(g,f,Math.max(0,e-1)):39!=a&&40!=a||d.model.add(g,f,Math.min(d.model.getChildCount(g),e+1))):(g=f=0,37==a?f=-c:38==a?g=-c:39==a?f=c:40==a&&(g=c),d.moveCells(d.getMovableCells(d.getSelectionCells()),f,g))});null!=q&&window.clearTimeout(q);q=window.setTimeout(function(){if(0< +p.length){d.getModel().beginUpdate();try{for(var a=0;a<p.length;a++)p[a]();p=[]}finally{d.getModel().endUpdate()}d.scrollCellToVisible(d.getSelectionCell())}},200)}var e=this,d=this.editor.graph,k=new mxKeyHandler(d),l=k.isEventIgnored;k.isEventIgnored=function(a){return(!this.isControlDown(a)||mxEvent.isShiftDown(a)||90!=a.keyCode&&89!=a.keyCode&&188!=a.keyCode&&190!=a.keyCode&&85!=a.keyCode)&&(66!=a.keyCode&&73!=a.keyCode||!this.isControlDown(a)||this.graph.cellEditor.isContentEditing()&&!mxClient.IS_FF&& +!mxClient.IS_SF)&&l.apply(this,arguments)};k.isEnabledForEvent=function(a){return!mxEvent.isConsumed(a)&&this.isGraphEvent(a)&&this.isEnabled()&&(null==e.dialogs||0==e.dialogs.length)};k.isControlDown=function(a){return mxEvent.isControlDown(a)||mxClient.IS_MAC&&a.metaKey};var p=[],q=null,u={37:mxConstants.DIRECTION_WEST,38:mxConstants.DIRECTION_NORTH,39:mxConstants.DIRECTION_EAST,40:mxConstants.DIRECTION_SOUTH},c=k.getFunction;mxKeyHandler.prototype.getFunction=function(a){if(d.isEnabled()){if(mxEvent.isShiftDown(a)&& +mxEvent.isAltDown(a)){var f=e.actions.get(e.altShiftActions[a.keyCode]);if(null!=f)return f.funct}if(9==a.keyCode&&mxEvent.isAltDown(a))return mxEvent.isShiftDown(a)?function(){d.selectParentCell()}:function(){d.selectChildCell()};if(null!=u[a.keyCode]&&!d.isSelectionEmpty())if(mxEvent.isShiftDown(a)&&mxEvent.isAltDown(a)){if(d.model.isVertex(d.getSelectionCell()))return function(){var c=d.connectVertex(d.getSelectionCell(),u[a.keyCode],d.defaultEdgeLength,a,!0);null!=c&&0<c.length&&(1==c.length&& +d.model.isEdge(c[0])?d.setSelectionCell(d.model.getTerminal(c[0],!1)):d.setSelectionCell(c[c.length-1]),d.scrollCellToVisible(d.getSelectionCell()),null!=e.hoverIcons&&e.hoverIcons.update(d.view.getState(d.getSelectionCell())))}}else return this.isControlDown(a)?function(){b(a.keyCode,mxEvent.isShiftDown(a)?d.gridSize:null,!0)}:function(){b(a.keyCode,mxEvent.isShiftDown(a)?d.gridSize:null)}}return c.apply(this,arguments)};k.bindAction=mxUtils.bind(this,function(a,c,b,d){var f=this.actions.get(b); +null!=f&&(b=function(){f.isEnabled()&&f.funct()},c?d?k.bindControlShiftKey(a,b):k.bindControlKey(a,b):d?k.bindShiftKey(a,b):k.bindKey(a,b))});var f=k.escape;k.escape=function(a){f.apply(this,arguments)};k.enter=function(){};k.bindControlShiftKey(36,function(){d.exitGroup()});k.bindControlShiftKey(35,function(){d.enterGroup()});k.bindKey(36,function(){d.home()});k.bindKey(35,function(){d.refresh()});k.bindAction(107,!0,"zoomIn");k.bindAction(109,!0,"zoomOut");k.bindAction(80,!0,"print");k.bindAction(79, +!0,"outline",!0);k.bindAction(112,!1,"about");if(!this.editor.chromeless||this.editor.editable)k.bindControlKey(36,function(){d.isEnabled()&&d.foldCells(!0)}),k.bindControlKey(35,function(){d.isEnabled()&&d.foldCells(!1)}),k.bindControlKey(13,function(){d.isEnabled()&&d.setSelectionCells(d.duplicateCells(d.getSelectionCells(),!1))}),k.bindAction(8,!1,"delete"),k.bindAction(8,!0,"deleteAll"),k.bindAction(46,!1,"delete"),k.bindAction(46,!0,"deleteAll"),k.bindAction(72,!0,"resetView"),k.bindAction(72, +!0,"fitWindow",!0),k.bindAction(74,!0,"fitPage"),k.bindAction(74,!0,"fitTwoPages",!0),k.bindAction(48,!0,"customZoom"),k.bindAction(82,!0,"turn"),k.bindAction(82,!0,"clearDefaultStyle",!0),k.bindAction(83,!0,"save"),k.bindAction(83,!0,"saveAs",!0),k.bindAction(65,!0,"selectAll"),k.bindAction(65,!0,"selectNone",!0),k.bindAction(73,!0,"selectVertices",!0),k.bindAction(69,!0,"selectEdges",!0),k.bindAction(69,!0,"editStyle"),k.bindAction(66,!0,"bold"),k.bindAction(66,!0,"toBack",!0),k.bindAction(70,!0, +"toFront",!0),k.bindAction(68,!0,"duplicate"),k.bindAction(68,!0,"setAsDefaultStyle",!0),k.bindAction(90,!0,"undo"),k.bindAction(89,!0,"autosize",!0),k.bindAction(88,!0,"cut"),k.bindAction(67,!0,"copy"),k.bindAction(86,!0,"paste"),k.bindAction(71,!0,"group"),k.bindAction(77,!0,"editData"),k.bindAction(71,!0,"grid",!0),k.bindAction(73,!0,"italic"),k.bindAction(76,!0,"lockUnlock"),k.bindAction(76,!0,"layers",!0),k.bindAction(80,!0,"formatPanel",!0),k.bindAction(85,!0,"underline"),k.bindAction(85,!0, +"ungroup",!0),k.bindAction(190,!0,"superscript"),k.bindAction(188,!0,"subscript"),k.bindKey(13,function(){d.isEnabled()&&d.startEditingAtCell()}),k.bindKey(113,function(){d.isEnabled()&&d.startEditingAtCell()});mxClient.IS_WIN?k.bindAction(89,!0,"redo"):k.bindAction(90,!0,"redo",!0);return k}; EditorUi.prototype.destroy=function(){null!=this.editor&&(this.editor.destroy(),this.editor=null);null!=this.menubar&&(this.menubar.destroy(),this.menubar=null);null!=this.toolbar&&(this.toolbar.destroy(),this.toolbar=null);null!=this.sidebar&&(this.sidebar.destroy(),this.sidebar=null);null!=this.keyHandler&&(this.keyHandler.destroy(),this.keyHandler=null);null!=this.keydownHandler&&(mxEvent.removeListener(document,"keydown",this.keydownHandler),this.keydownHandler=null);null!=this.keyupHandler&& (mxEvent.removeListener(document,"keyup",this.keyupHandler),this.keyupHandler=null);null!=this.resizeHandler&&(mxEvent.removeListener(window,"resize",this.resizeHandler),this.resizeHandler=null);null!=this.gestureHandler&&(mxEvent.removeGestureListeners(document,this.gestureHandler),this.gestureHandler=null);null!=this.orientationChangeHandler&&(mxEvent.removeListener(window,"orientationchange",this.orientationChangeHandler),this.orientationChangeHandler=null);null!=this.scrollHandler&&(mxEvent.removeListener(window, -"scroll",this.scrollHandler),this.scrollHandler=null);if(null!=this.destroyFunctions){for(var a=0;a<this.destroyFunctions.length;a++)this.destroyFunctions[a]();this.destroyFunctions=null}for(var d=[this.menubarContainer,this.toolbarContainer,this.sidebarContainer,this.formatContainer,this.diagramContainer,this.footerContainer,this.chromelessToolbar,this.hsplit,this.sidebarFooterContainer,this.layersDialog],a=0;a<d.length;a++)null!=d[a]&&null!=d[a].parentNode&&d[a].parentNode.removeChild(d[a])};"undefined"!==typeof html4&&(html4.ATTRIBS["a::target"]=0,html4.ATTRIBS["source::src"]=0,html4.ATTRIBS["video::src"]=0);mxConstants.SHADOW_OPACITY=.25;mxConstants.SHADOWCOLOR="#000000";mxConstants.VML_SHADOWCOLOR="#d0d0d0";mxGraph.prototype.pageBreakColor="#c0c0c0";mxGraph.prototype.pageScale=1; -(function(){try{if(null!=navigator&&null!=navigator.language){var a=navigator.language.toLowerCase();mxGraph.prototype.pageFormat="en-us"===a||"en-ca"===a||"es-mx"===a?mxConstants.PAGE_FORMAT_LETTER_PORTRAIT:mxConstants.PAGE_FORMAT_A4_PORTRAIT}}catch(d){}})();mxText.prototype.baseSpacingTop=5;mxText.prototype.baseSpacingBottom=1;mxGraphModel.prototype.ignoreRelativeEdgeParent=!1; +"scroll",this.scrollHandler),this.scrollHandler=null);if(null!=this.destroyFunctions){for(var a=0;a<this.destroyFunctions.length;a++)this.destroyFunctions[a]();this.destroyFunctions=null}for(var b=[this.menubarContainer,this.toolbarContainer,this.sidebarContainer,this.formatContainer,this.diagramContainer,this.footerContainer,this.chromelessToolbar,this.hsplit,this.sidebarFooterContainer,this.layersDialog],a=0;a<b.length;a++)null!=b[a]&&null!=b[a].parentNode&&b[a].parentNode.removeChild(b[a])};"undefined"!==typeof html4&&(html4.ATTRIBS["a::target"]=0,html4.ATTRIBS["source::src"]=0,html4.ATTRIBS["video::src"]=0);mxConstants.SHADOW_OPACITY=.25;mxConstants.SHADOWCOLOR="#000000";mxConstants.VML_SHADOWCOLOR="#d0d0d0";mxGraph.prototype.pageBreakColor="#c0c0c0";mxGraph.prototype.pageScale=1; +(function(){try{if(null!=navigator&&null!=navigator.language){var a=navigator.language.toLowerCase();mxGraph.prototype.pageFormat="en-us"===a||"en-ca"===a||"es-mx"===a?mxConstants.PAGE_FORMAT_LETTER_PORTRAIT:mxConstants.PAGE_FORMAT_A4_PORTRAIT}}catch(b){}})();mxText.prototype.baseSpacingTop=5;mxText.prototype.baseSpacingBottom=1;mxGraphModel.prototype.ignoreRelativeEdgeParent=!1; mxGraphView.prototype.gridImage=mxClient.IS_SVG?"data:image/gif;base64,R0lGODlhCgAKAJEAAAAAAP///8zMzP///yH5BAEAAAMALAAAAAAKAAoAAAIJ1I6py+0Po2wFADs=":IMAGE_PATH+"/grid.gif";mxGraphView.prototype.gridSteps=4;mxGraphView.prototype.minGridSize=4;mxGraphView.prototype.gridColor="#e0e0e0";mxSvgCanvas2D.prototype.foAltText="[Not supported by viewer]"; -Graph=function(a,d,e,b,h){mxGraph.call(this,a,d,e,b);this.themes=h||this.defaultThemes;this.currentEdgeStyle=mxUtils.clone(this.defaultEdgeStyle);this.currentVertexStyle=mxUtils.clone(this.defaultVertexStyle);a=this.baseUrl;d=a.indexOf("//");this.domainPathUrl=this.domainUrl="";0<d&&(d=a.indexOf("/",d+2),0<d&&(this.domainUrl=a.substring(0,d)),d=a.lastIndexOf("/"),0<d&&(this.domainPathUrl=a.substring(0,d+1)));this.isHtmlLabel=function(a){var c=this.view.getState(a);a=null!=c?c.style:this.getCellStyle(a); -return"1"==a.html||"wrap"==a[mxConstants.STYLE_WHITE_SPACE]};if(this.edgeMode){var m=null,p=null,q=null,u=null,c=!1;this.addListener(mxEvent.FIRE_MOUSE_EVENT,mxUtils.bind(this,function(a,d){if("mouseDown"==d.getProperty("eventName")&&this.isEnabled()){var b=d.getProperty("event");if(!mxEvent.isControlDown(b.getEvent())&&!mxEvent.isShiftDown(b.getEvent())){var f=b.getState();null!=f&&this.model.isEdge(f.cell)&&(m=new mxPoint(b.getGraphX(),b.getGraphY()),c=this.isCellSelected(f.cell),q=f,p=b,null!= -f.text&&null!=f.text.boundingBox&&mxUtils.contains(f.text.boundingBox,b.getGraphX(),b.getGraphY())?u=mxEvent.LABEL_HANDLE:(f=this.selectionCellsHandler.getHandler(f.cell),null!=f&&null!=f.bends&&0<f.bends.length&&(u=f.getHandleForEvent(b))))}}}));this.addMouseListener({mouseDown:function(a,c){},mouseMove:mxUtils.bind(this,function(a,d){var b=this.selectionCellsHandler.handlers.map,f;for(f in b)if(null!=b[f].index)return;if(this.isEnabled()&&!this.panningHandler.isActive()&&!mxEvent.isControlDown(d.getEvent())&& -!mxEvent.isShiftDown(d.getEvent())&&!mxEvent.isAltDown(d.getEvent()))if(f=this.tolerance,null!=m&&null!=q&&null!=p){if(b=q,Math.abs(m.x-d.getGraphX())>f||Math.abs(m.y-d.getGraphY())>f){this.isCellSelected(b.cell)||this.setSelectionCell(b.cell);var g=this.selectionCellsHandler.getHandler(b.cell);if(null!=g&&null!=g.bends&&0<g.bends.length){var e=g.getHandleForEvent(p),k=this.view.getEdgeStyle(b);f=k==mxEdgeStyle.EntityRelation;c||u!=mxEvent.LABEL_HANDLE||(e=u);if(f&&0!=e&&e!=g.bends.length-1&&e!=mxEvent.LABEL_HANDLE)!f|| -null==b.visibleSourceState&&null==b.visibleTargetState||(this.graphHandler.reset(),d.consume());else if(e==mxEvent.LABEL_HANDLE||0==e||null!=b.visibleSourceState||e==g.bends.length-1||null!=b.visibleTargetState)f||e==mxEvent.LABEL_HANDLE||(f=b.absolutePoints,null!=f&&(null==k&&null==e||k==mxEdgeStyle.OrthConnector)&&(e=u,null==e&&(e=new mxRectangle(m.x,m.y),e.grow(mxEdgeHandler.prototype.handleImage.width/2),mxUtils.contains(e,f[0].x,f[0].y)?e=0:mxUtils.contains(e,f[f.length-1].x,f[f.length-1].y)? -e=g.bends.length-1:null!=k&&(2==f.length||3==f.length&&(0==Math.round(f[0].x-f[1].x)&&0==Math.round(f[1].x-f[2].x)||0==Math.round(f[0].y-f[1].y)&&0==Math.round(f[1].y-f[2].y)))?e=2:(e=mxUtils.findNearestSegment(b,m.x,m.y),e=null==k?mxEvent.VIRTUAL_HANDLE-e:e+1))),null==e&&(e=mxEvent.VIRTUAL_HANDLE)),g.start(d.getGraphX(),d.getGraphX(),e),u=m=p=q=null,c=!1,d.consume(),this.graphHandler.reset()}}}else if(b=d.getState(),null!=b&&this.model.isEdge(b.cell)){g=null;f=b.absolutePoints;if(null!=f)if(e=new mxRectangle(d.getGraphX(), -d.getGraphY()),e.grow(mxEdgeHandler.prototype.handleImage.width/2),null!=b.text&&null!=b.text.boundingBox&&mxUtils.contains(b.text.boundingBox,d.getGraphX(),d.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!=b.visibleSourceState||null!=b.visibleTargetState)k=this.view.getEdgeStyle(b),g="crosshair",k!=mxEdgeStyle.EntityRelation&&this.isOrthogonal(b)&&(k=mxUtils.findNearestSegment(b,d.getGraphX(),d.getGraphY()), -k<f.length-1&&0<=k&&(g=0==Math.round(f[k].x-f[k+1].x)?"col-resize":"row-resize"));null!=g&&b.setCursor(g)}}),mouseUp:mxUtils.bind(this,function(a,c){u=m=p=q=null})})}this.cellRenderer.getLabelValue=function(a){var c=mxCellRenderer.prototype.getLabelValue.apply(this,arguments);a.view.graph.isHtmlLabel(a.cell)&&(c=1!=a.style.html?mxUtils.htmlEntities(c,!1):a.view.graph.sanitizeHtml(c));return c};if("undefined"!==typeof mxVertexHandler){this.setConnectable(!0);this.setDropEnabled(!0);this.setPanning(!0); -this.setTooltips(!0);this.setAllowLoops(!0);this.allowAutoPanning=!0;this.constrainChildren=this.resetEdgesOnConnect=!1;this.constrainRelativeChildren=!0;this.graphHandler.scrollOnMove=!1;this.graphHandler.scaleGrid=!0;this.connectionHandler.setCreateTarget(!1);this.connectionHandler.insertBeforeSource=!0;this.connectionHandler.isValidSource=function(a,c){return!1};this.alternateEdgeStyle="vertical";null==b&&this.loadStylesheet();var f=this.graphHandler.getGuideStates;this.graphHandler.getGuideStates= -function(){var a=f.apply(this,arguments);if(this.graph.pageVisible){for(var c=[],d=this.graph.pageFormat,b=this.graph.pageScale,g=d.width*b,d=d.height*b,b=this.graph.view.translate,e=this.graph.view.scale,k=this.graph.getPageLayout(),l=0;l<k.width;l++)c.push(new mxRectangle(((k.x+l)*g+b.x)*e,(k.y*d+b.y)*e,g*e,d*e));for(l=0;l<k.height;l++)c.push(new mxRectangle((k.x*g+b.x)*e,((k.y+l)*d+b.y)*e,g*e,d*e));a=c.concat(a)}return a};mxDragSource.prototype.dragElementZIndex=mxPopupMenu.prototype.zIndex;mxGuide.prototype.getGuideColor= -function(a,c){return null==a.cell?"#ffa500":mxConstants.GUIDE_COLOR};this.graphHandler.createPreviewShape=function(a){this.previewColor="#000000"==this.graph.background?"#ffffff":mxGraphHandler.prototype.previewColor;return mxGraphHandler.prototype.createPreviewShape.apply(this,arguments)};this.graphHandler.getCells=function(a){for(var c=mxGraphHandler.prototype.getCells.apply(this,arguments),d=[],b=0;b<c.length;b++){var f=this.graph.view.getState(c[b]),f=null!=f?f.style:this.graph.getCellStyle(c[b]); -"1"==mxUtils.getValue(f,"part","0")?(f=this.graph.model.getParent(c[b]),this.graph.model.isVertex(f)&&0>mxUtils.indexOf(c,f)&&d.push(f)):d.push(c[b])}return d};this.connectionHandler.createTargetVertex=function(a,c){var d=this.graph.view.getState(c),d=null!=d?d.style:this.graph.getCellStyle(c);mxUtils.getValue(d,"part",!1)&&(d=this.graph.model.getParent(c),this.graph.model.isVertex(d)&&(c=d));return mxConnectionHandler.prototype.createTargetVertex.apply(this,arguments)};var g=new mxRubberband(this); -this.getRubberband=function(){return g};var k=(new Date).getTime(),r=0,l=this.connectionHandler.mouseMove;this.connectionHandler.mouseMove=function(){var a=this.currentState;l.apply(this,arguments);a!=this.currentState?(k=(new Date).getTime(),r=0):r=(new Date).getTime()-k};var n=this.connectionHandler.isOutlineConnectEvent;this.connectionHandler.isOutlineConnectEvent=function(a){return null!=this.currentState&&a.getState()==this.currentState&&2E3<r||(null==this.currentState||"0"!=mxUtils.getValue(this.currentState.style, -"outlineConnect","1"))&&n.apply(this,arguments)};var w=this.isToggleEvent;this.isToggleEvent=function(a){return w.apply(this,arguments)||mxEvent.isShiftDown(a)};var v=g.isForceRubberbandEvent;g.isForceRubberbandEvent=function(a){return v.apply(this,arguments)||mxUtils.hasScrollbars(this.graph.container)&&mxClient.IS_FF&&mxClient.IS_WIN&&null==a.getState()&&mxEvent.isTouchEvent(a.getEvent())};var B=null;this.panningHandler.addListener(mxEvent.PAN_START,mxUtils.bind(this,function(){this.isEnabled()&& -(B=this.container.style.cursor,this.container.style.cursor="move")}));this.panningHandler.addListener(mxEvent.PAN_END,mxUtils.bind(this,function(){this.isEnabled()&&(this.container.style.cursor=B)}));this.popupMenuHandler.autoExpand=!0;this.popupMenuHandler.isSelectOnPopup=function(a){return mxEvent.isMouseEvent(a.getEvent())};var y=this.click;this.click=function(a){var c=null==a.state&&null!=a.sourceState&&this.isCellLocked(a.sourceState.cell);if(this.isEnabled()&&!c||a.isConsumed())return y.apply(this, +Graph=function(a,b,e,d,k){mxGraph.call(this,a,b,e,d);this.themes=k||this.defaultThemes;this.currentEdgeStyle=mxUtils.clone(this.defaultEdgeStyle);this.currentVertexStyle=mxUtils.clone(this.defaultVertexStyle);a=this.baseUrl;b=a.indexOf("//");this.domainPathUrl=this.domainUrl="";0<b&&(b=a.indexOf("/",b+2),0<b&&(this.domainUrl=a.substring(0,b)),b=a.lastIndexOf("/"),0<b&&(this.domainPathUrl=a.substring(0,b+1)));this.isHtmlLabel=function(a){var c=this.view.getState(a);a=null!=c?c.style:this.getCellStyle(a); +return"1"==a.html||"wrap"==a[mxConstants.STYLE_WHITE_SPACE]};if(this.edgeMode){var l=null,p=null,q=null,u=null,c=!1;this.addListener(mxEvent.FIRE_MOUSE_EVENT,mxUtils.bind(this,function(a,b){if("mouseDown"==b.getProperty("eventName")&&this.isEnabled()){var d=b.getProperty("event");if(!mxEvent.isControlDown(d.getEvent())&&!mxEvent.isShiftDown(d.getEvent())){var f=d.getState();null!=f&&this.model.isEdge(f.cell)&&(l=new mxPoint(d.getGraphX(),d.getGraphY()),c=this.isCellSelected(f.cell),q=f,p=d,null!= +f.text&&null!=f.text.boundingBox&&mxUtils.contains(f.text.boundingBox,d.getGraphX(),d.getGraphY())?u=mxEvent.LABEL_HANDLE:(f=this.selectionCellsHandler.getHandler(f.cell),null!=f&&null!=f.bends&&0<f.bends.length&&(u=f.getHandleForEvent(d))))}}}));this.addMouseListener({mouseDown:function(a,c){},mouseMove:mxUtils.bind(this,function(a,b){var d=this.selectionCellsHandler.handlers.map,f;for(f in d)if(null!=d[f].index)return;if(this.isEnabled()&&!this.panningHandler.isActive()&&!mxEvent.isControlDown(b.getEvent())&& +!mxEvent.isShiftDown(b.getEvent())&&!mxEvent.isAltDown(b.getEvent()))if(f=this.tolerance,null!=l&&null!=q&&null!=p){if(d=q,Math.abs(l.x-b.getGraphX())>f||Math.abs(l.y-b.getGraphY())>f){this.isCellSelected(d.cell)||this.setSelectionCell(d.cell);var g=this.selectionCellsHandler.getHandler(d.cell);if(null!=g&&null!=g.bends&&0<g.bends.length){var e=g.getHandleForEvent(p),h=this.view.getEdgeStyle(d);f=h==mxEdgeStyle.EntityRelation;c||u!=mxEvent.LABEL_HANDLE||(e=u);if(f&&0!=e&&e!=g.bends.length-1&&e!=mxEvent.LABEL_HANDLE)!f|| +null==d.visibleSourceState&&null==d.visibleTargetState||(this.graphHandler.reset(),b.consume());else if(e==mxEvent.LABEL_HANDLE||0==e||null!=d.visibleSourceState||e==g.bends.length-1||null!=d.visibleTargetState)f||e==mxEvent.LABEL_HANDLE||(f=d.absolutePoints,null!=f&&(null==h&&null==e||h==mxEdgeStyle.OrthConnector)&&(e=u,null==e&&(e=new mxRectangle(l.x,l.y),e.grow(mxEdgeHandler.prototype.handleImage.width/2),mxUtils.contains(e,f[0].x,f[0].y)?e=0:mxUtils.contains(e,f[f.length-1].x,f[f.length-1].y)? +e=g.bends.length-1:null!=h&&(2==f.length||3==f.length&&(0==Math.round(f[0].x-f[1].x)&&0==Math.round(f[1].x-f[2].x)||0==Math.round(f[0].y-f[1].y)&&0==Math.round(f[1].y-f[2].y)))?e=2:(e=mxUtils.findNearestSegment(d,l.x,l.y),e=null==h?mxEvent.VIRTUAL_HANDLE-e:e+1))),null==e&&(e=mxEvent.VIRTUAL_HANDLE)),g.start(b.getGraphX(),b.getGraphX(),e),u=l=p=q=null,c=!1,b.consume(),this.graphHandler.reset()}}}else if(d=b.getState(),null!=d&&this.model.isEdge(d.cell)){g=null;f=d.absolutePoints;if(null!=f)if(e=new mxRectangle(b.getGraphX(), +b.getGraphY()),e.grow(mxEdgeHandler.prototype.handleImage.width/2),null!=d.text&&null!=d.text.boundingBox&&mxUtils.contains(d.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!=d.visibleSourceState||null!=d.visibleTargetState)h=this.view.getEdgeStyle(d),g="crosshair",h!=mxEdgeStyle.EntityRelation&&this.isOrthogonal(d)&&(h=mxUtils.findNearestSegment(d,b.getGraphX(),b.getGraphY()), +h<f.length-1&&0<=h&&(g=0==Math.round(f[h].x-f[h+1].x)?"col-resize":"row-resize"));null!=g&&d.setCursor(g)}}),mouseUp:mxUtils.bind(this,function(a,c){u=l=p=q=null})})}this.cellRenderer.getLabelValue=function(a){var c=mxCellRenderer.prototype.getLabelValue.apply(this,arguments);a.view.graph.isHtmlLabel(a.cell)&&(c=1!=a.style.html?mxUtils.htmlEntities(c,!1):a.view.graph.sanitizeHtml(c));return c};if("undefined"!==typeof mxVertexHandler){this.setConnectable(!0);this.setDropEnabled(!0);this.setPanning(!0); +this.setTooltips(!0);this.setAllowLoops(!0);this.allowAutoPanning=!0;this.constrainChildren=this.resetEdgesOnConnect=!1;this.constrainRelativeChildren=!0;this.graphHandler.scrollOnMove=!1;this.graphHandler.scaleGrid=!0;this.connectionHandler.setCreateTarget(!1);this.connectionHandler.insertBeforeSource=!0;this.connectionHandler.isValidSource=function(a,c){return!1};this.alternateEdgeStyle="vertical";null==d&&this.loadStylesheet();var f=this.graphHandler.getGuideStates;this.graphHandler.getGuideStates= +function(){var a=f.apply(this,arguments);if(this.graph.pageVisible){for(var c=[],b=this.graph.pageFormat,d=this.graph.pageScale,g=b.width*d,b=b.height*d,d=this.graph.view.translate,e=this.graph.view.scale,h=this.graph.getPageLayout(),n=0;n<h.width;n++)c.push(new mxRectangle(((h.x+n)*g+d.x)*e,(h.y*b+d.y)*e,g*e,b*e));for(n=0;n<h.height;n++)c.push(new mxRectangle((h.x*g+d.x)*e,((h.y+n)*b+d.y)*e,g*e,b*e));a=c.concat(a)}return a};mxDragSource.prototype.dragElementZIndex=mxPopupMenu.prototype.zIndex;mxGuide.prototype.getGuideColor= +function(a,c){return null==a.cell?"#ffa500":mxConstants.GUIDE_COLOR};this.graphHandler.createPreviewShape=function(a){this.previewColor="#000000"==this.graph.background?"#ffffff":mxGraphHandler.prototype.previewColor;return mxGraphHandler.prototype.createPreviewShape.apply(this,arguments)};this.graphHandler.getCells=function(a){for(var c=mxGraphHandler.prototype.getCells.apply(this,arguments),b=[],d=0;d<c.length;d++){var f=this.graph.view.getState(c[d]),f=null!=f?f.style:this.graph.getCellStyle(c[d]); +"1"==mxUtils.getValue(f,"part","0")?(f=this.graph.model.getParent(c[d]),this.graph.model.isVertex(f)&&0>mxUtils.indexOf(c,f)&&b.push(f)):b.push(c[d])}return b};this.connectionHandler.createTargetVertex=function(a,c){var b=this.graph.view.getState(c),b=null!=b?b.style:this.graph.getCellStyle(c);mxUtils.getValue(b,"part",!1)&&(b=this.graph.model.getParent(c),this.graph.model.isVertex(b)&&(c=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<r||(null==this.currentState||"0"!=mxUtils.getValue(this.currentState.style, +"outlineConnect","1"))&&m.apply(this,arguments)};var w=this.isToggleEvent;this.isToggleEvent=function(a){return w.apply(this,arguments)||mxEvent.isShiftDown(a)};var v=g.isForceRubberbandEvent;g.isForceRubberbandEvent=function(a){return v.apply(this,arguments)||mxUtils.hasScrollbars(this.graph.container)&&mxClient.IS_FF&&mxClient.IS_WIN&&null==a.getState()&&mxEvent.isTouchEvent(a.getEvent())};var A=null;this.panningHandler.addListener(mxEvent.PAN_START,mxUtils.bind(this,function(){this.isEnabled()&& +(A=this.container.style.cursor,this.container.style.cursor="move")}));this.panningHandler.addListener(mxEvent.PAN_END,mxUtils.bind(this,function(){this.isEnabled()&&(this.container.style.cursor=A)}));this.popupMenuHandler.autoExpand=!0;this.popupMenuHandler.isSelectOnPopup=function(a){return mxEvent.isMouseEvent(a.getEvent())};var y=this.click;this.click=function(a){var c=null==a.state&&null!=a.sourceState&&this.isCellLocked(a.sourceState.cell);if(this.isEnabled()&&!c||a.isConsumed())return y.apply(this, arguments);c=c?a.sourceState.cell:a.getCell();null!=c&&(c=this.getLinkForCell(c),null!=c&&(this.isCustomLink(c)?this.customLinkClicked(c):this.openLink(c)))};this.tooltipHandler.getStateForEvent=function(a){return a.sourceState};this.getCursorForMouseEvent=function(a){var c=null==a.state&&null!=a.sourceState&&this.isCellLocked(a.sourceState.cell);return this.getCursorForCell(c?a.sourceState.cell:a.getCell())};var t=this.getCursorForCell;this.getCursorForCell=function(a){if(!this.isEnabled()||this.isCellLocked(a)){if(null!= -this.getLinkForCell(a))return"pointer";if(this.isCellLocked(a))return"default"}return t.apply(this,arguments)};this.selectRegion=function(a,c){var d=this.getAllCells(a.x,a.y,a.width,a.height);this.selectCellsForEvent(d,c);return d};this.getAllCells=function(a,c,d,b,f,g){g=null!=g?g:[];if(0<d||0<b){var e=this.getModel(),k=a+d,l=c+b;null==f&&(f=this.getCurrentRoot(),null==f&&(f=e.getRoot()));if(null!=f)for(var n=e.getChildCount(f),F=0;F<n;F++){var r=e.getChildAt(f,F),t=this.view.getState(r);if(null!= -t&&this.isCellVisible(r)&&"1"!=mxUtils.getValue(t.style,"locked","0")){var y=mxUtils.getValue(t.style,mxConstants.STYLE_ROTATION)||0;0!=y&&(t=mxUtils.getBoundingBox(t,y));(e.isEdge(r)||e.isVertex(r))&&t.x>=a&&t.y+t.height<=l&&t.y>=c&&t.x+t.width<=k&&g.push(r);this.getAllCells(a,c,d,b,r,g)}}}return g};var z=this.graphHandler.shouldRemoveCellsFromParent;this.graphHandler.shouldRemoveCellsFromParent=function(a,c,d){return this.graph.isCellSelected(a)?!1:z.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 H=null;this.addListener(mxEvent.FIRE_MOUSE_EVENT,mxUtils.bind(this,function(a,c){if("mouseDown"==c.getProperty("eventName")){var d=c.getProperty("event").getState();H=null==d||this.isSelectionEmpty()||this.isCellSelected(d.cell)?null:this.getSelectionCells()}}));this.addListener(mxEvent.TAP_AND_HOLD,mxUtils.bind(this,function(a,c){if(!mxEvent.isMultiTouchEvent(c)){var d= -c.getProperty("event"),b=c.getProperty("cell");null==b?(d=mxUtils.convertPoint(this.container,mxEvent.getClientX(d),mxEvent.getClientY(d)),g.start(d.x,d.y)):null!=H?this.addSelectionCells(H):1<this.getSelectionCount()&&this.isCellSelected(b)&&this.removeSelectionCell(b);H=null;c.consume()}}));this.connectionHandler.selectCells=function(a,c){this.graph.setSelectionCell(c||a)};this.connectionHandler.constraintHandler.isStateIgnored=function(a,c){return c&&a.view.graph.isCellSelected(a.cell)};this.selectionModel.addListener(mxEvent.CHANGE, +this.getLinkForCell(a))return"pointer";if(this.isCellLocked(a))return"default"}return t.apply(this,arguments)};this.selectRegion=function(a,c){var b=this.getAllCells(a.x,a.y,a.width,a.height);this.selectCellsForEvent(b,c);return b};this.getAllCells=function(a,c,b,d,f,g){g=null!=g?g:[];if(0<b||0<d){var e=this.getModel(),h=a+b,n=c+d;null==f&&(f=this.getCurrentRoot(),null==f&&(f=e.getRoot()));if(null!=f)for(var m=e.getChildCount(f),F=0;F<m;F++){var r=e.getChildAt(f,F),t=this.view.getState(r);if(null!= +t&&this.isCellVisible(r)&&"1"!=mxUtils.getValue(t.style,"locked","0")){var y=mxUtils.getValue(t.style,mxConstants.STYLE_ROTATION)||0;0!=y&&(t=mxUtils.getBoundingBox(t,y));(e.isEdge(r)||e.isVertex(r))&&t.x>=a&&t.y+t.height<=n&&t.y>=c&&t.x+t.width<=h&&g.push(r);this.getAllCells(a,c,b,d,r,g)}}}return g};var z=this.graphHandler.shouldRemoveCellsFromParent;this.graphHandler.shouldRemoveCellsFromParent=function(a,c,b){return this.graph.isCellSelected(a)?!1:z.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 H=null;this.addListener(mxEvent.FIRE_MOUSE_EVENT,mxUtils.bind(this,function(a,c){if("mouseDown"==c.getProperty("eventName")){var b=c.getProperty("event").getState();H=null==b||this.isSelectionEmpty()||this.isCellSelected(b.cell)?null:this.getSelectionCells()}}));this.addListener(mxEvent.TAP_AND_HOLD,mxUtils.bind(this,function(a,c){if(!mxEvent.isMultiTouchEvent(c)){var b= +c.getProperty("event"),d=c.getProperty("cell");null==d?(b=mxUtils.convertPoint(this.container,mxEvent.getClientX(b),mxEvent.getClientY(b)),g.start(b.x,b.y)):null!=H?this.addSelectionCells(H):1<this.getSelectionCount()&&this.isCellSelected(d)&&this.removeSelectionCell(d);H=null;c.consume()}}));this.connectionHandler.selectCells=function(a,c){this.graph.setSelectionCell(c||a)};this.connectionHandler.constraintHandler.isStateIgnored=function(a,c){return c&&a.view.graph.isCellSelected(a.cell)};this.selectionModel.addListener(mxEvent.CHANGE, mxUtils.bind(this,function(){var a=this.connectionHandler.constraintHandler;null!=a.currentFocus&&a.isStateIgnored(a.currentFocus,!0)&&(a.currentFocus=null,a.constraints=null,a.destroyIcons());a.destroyFocusHighlight()}));Graph.touchStyle&&this.initTouch();var G=this.updateMouseEvent;this.updateMouseEvent=function(a){a=G.apply(this,arguments);null!=a.state&&this.isCellLocked(a.getCell())&&(a.state=null);return a}}this.currentTranslate=new mxPoint(0,0)}; Graph.touchStyle=mxClient.IS_TOUCH||mxClient.IS_FF&&mxClient.IS_WIN||0<navigator.maxTouchPoints||0<navigator.msMaxTouchPoints||null==window.urlParams||"1"==urlParams.touch;Graph.fileSupport=null!=window.File&&null!=window.FileReader&&null!=window.FileList&&(null==window.urlParams||"0"!=urlParams.filesupport);Graph.lineJumpsEnabled=!0;Graph.defaultJumpSize=6; -Graph.createSvgImage=function(a,d,e){e=unescape(encodeURIComponent('<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="'+a+'px" height="'+d+'px" version="1.1">'+e+"</svg>"));return new mxImage("data:image/svg+xml;base64,"+(window.btoa?btoa(e):Base64.encode(e,!0)),a,d)};mxUtils.extend(Graph,mxGraph);Graph.prototype.minFitScale=null;Graph.prototype.maxFitScale=null; +Graph.createSvgImage=function(a,b,e){e=unescape(encodeURIComponent('<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="'+a+'px" height="'+b+'px" version="1.1">'+e+"</svg>"));return new mxImage("data:image/svg+xml;base64,"+(window.btoa?btoa(e):Base64.encode(e,!0)),a,b)};mxUtils.extend(Graph,mxGraph);Graph.prototype.minFitScale=null;Graph.prototype.maxFitScale=null; Graph.prototype.linkPolicy="frame"==urlParams.target?"blank":urlParams.target||"auto";Graph.prototype.linkTarget="frame"==urlParams.target?"_self":"_blank";Graph.prototype.linkRelation="nofollow noopener noreferrer";Graph.prototype.defaultScrollbars=!mxClient.IS_IOS;Graph.prototype.defaultPageVisible=!0;Graph.prototype.lightbox=!1;Graph.prototype.defaultPageBackgroundColor="#ffffff";Graph.prototype.defaultPageBorderColor="#ffffff";Graph.prototype.defaultGraphBackground="#ffffff"; Graph.prototype.scrollTileSize=new mxRectangle(0,0,400,400);Graph.prototype.transparentBackground=!0;Graph.prototype.defaultEdgeLength=80;Graph.prototype.edgeMode=!1;Graph.prototype.connectionArrowsEnabled=!0;Graph.prototype.placeholderPattern=RegExp("%(date{.*}|[^%^{^}]+)%","g");Graph.prototype.absoluteUrlPattern=/^(?:[a-z]+:)?\/\//i;Graph.prototype.defaultThemeName="default";Graph.prototype.defaultThemes={}; Graph.prototype.baseUrl=null!=urlParams.base?decodeURIComponent(urlParams.base):(window!=window.top?document.referrer:document.location.toString()).split("#")[0];Graph.prototype.editAfterInsert=!1;Graph.prototype.builtInProperties=["label","tooltip","placeholders","placeholder"]; -Graph.prototype.init=function(a){mxGraph.prototype.init.apply(this,arguments);this.cellRenderer.initializeLabel=function(a,e){mxCellRenderer.prototype.initializeLabel.apply(this,arguments);var d=a.view.graph.tolerance,h=!0,m=null,p=mxUtils.bind(this,function(a){h=!0;m=new mxPoint(mxEvent.getClientX(a),mxEvent.getClientY(a))}),q=mxUtils.bind(this,function(a){h=h&&null!=m&&Math.abs(m.x-mxEvent.getClientX(a))<d&&Math.abs(m.y-mxEvent.getClientY(a))<d}),u=mxUtils.bind(this,function(c){if(h)for(var d=mxEvent.getSource(c);null!= -d&&d!=e.node;){if("a"==d.nodeName.toLowerCase()){a.view.graph.labelLinkClicked(a,d,c);break}d=d.parentNode}});mxEvent.addGestureListeners(e.node,p,q,u);mxEvent.addListener(e.node,"click",function(a){mxEvent.consume(a)})};this.initLayoutManager()}; -(function(){Graph.prototype.useCssTransforms=!1;Graph.prototype.currentScale=1;Graph.prototype.currentTranslate=new mxPoint(0,0);Graph.prototype.isCssTransformsSupported=function(){return this.dialect==mxConstants.DIALECT_SVG&&!mxClient.NO_FO};Graph.prototype.getCellAt=function(a,d,e,p,q,u){this.useCssTransforms&&(a=a/this.currentScale-this.currentTranslate.x,d=d/this.currentScale-this.currentTranslate.y);return this.getScaledCellAt.apply(this,arguments)};Graph.prototype.getScaledCellAt=function(a, -d,e,p,q,u){p=null!=p?p:!0;q=null!=q?q:!0;null==e&&(e=this.getCurrentRoot(),null==e&&(e=this.getModel().getRoot()));if(null!=e)for(var c=this.model.getChildCount(e)-1;0<=c;c--){var b=this.model.getChildAt(e,c),g=this.getScaledCellAt(a,d,b,p,q,u);if(null!=g)return g;if(this.isCellVisible(b)&&(q&&this.model.isEdge(b)||p&&this.model.isVertex(b))&&(g=this.view.getState(b),null!=g&&(null==u||!u(g,a,d))&&this.intersects(g,a,d)))return b}return null};mxCellHighlight.prototype.getStrokeWidth=function(a){a= -this.strokeWidth;this.graph.useCssTransforms&&(a/=this.graph.currentScale);return a};mxGraphView.prototype.getGraphBounds=function(){var a=this.graphBounds;if(this.graph.useCssTransforms)var d=this.graph.currentTranslate,e=this.graph.currentScale,a=new mxRectangle((a.x+d.x)*e,(a.y+d.y)*e,a.width*e,a.height*e);return a};mxGraphView.prototype.viewStateChanged=function(){this.graph.useCssTransforms?this.validate():this.revalidate();this.graph.sizeDidChange()};var a=mxGraphView.prototype.validate;mxGraphView.prototype.validate= -function(d){this.graph.useCssTransforms&&(this.graph.currentScale=this.scale,this.graph.currentTranslate.x=this.translate.x,this.graph.currentTranslate.y=this.translate.y,this.scale=1,this.translate.x=0,this.translate.y=0);a.apply(this,arguments);this.graph.useCssTransforms&&(this.graph.updateCssTransform(),this.scale=this.graph.currentScale,this.translate.x=this.graph.currentTranslate.x,this.translate.y=this.graph.currentTranslate.y)};Graph.prototype.updateCssTransform=function(){var a=this.view.getDrawPane(); -if(null!=a)if(a=a.parentNode,this.useCssTransforms){var d=a.getAttribute("transform");a.setAttribute("transformOrigin","0 0");a.setAttribute("transform","scale("+this.currentScale+","+this.currentScale+")translate("+this.currentTranslate.x+","+this.currentTranslate.y+")");if(d!=a.getAttribute("transform"))try{if(mxClient.IS_EDGE){var e=a.style.display;a.style.display="none";a.getBBox();a.style.display=e}}catch(p){}}else a.removeAttribute("transformOrigin"),a.removeAttribute("transform")};var d=mxGraphView.prototype.validateBackgroundPage; -mxGraphView.prototype.validateBackgroundPage=function(){var a=this.graph.useCssTransforms,e=this.scale,m=this.translate;a&&(this.scale=this.graph.currentScale,this.translate=this.graph.currentTranslate);d.apply(this,arguments);a&&(this.scale=e,this.translate=m)};var e=mxGraph.prototype.updatePageBreaks;mxGraph.prototype.updatePageBreaks=function(a,d,m){var b=this.useCssTransforms,h=this.view.scale,u=this.view.translate;b&&(this.view.scale=1,this.view.translate=new mxPoint(0,0),this.useCssTransforms= -!1);e.apply(this,arguments);b&&(this.view.scale=h,this.view.translate=u,this.useCssTransforms=!0)}})();Graph.prototype.isLightboxView=function(){return this.lightbox};Graph.prototype.labelLinkClicked=function(a,d,e){d=d.getAttribute("href");if(null!=d&&!this.isCustomLink(d)&&mxEvent.isLeftMouseButton(e)&&!mxEvent.isPopupTrigger(e)||mxEvent.isTouchEvent(e)){if(!this.isEnabled()||this.isCellLocked(a.cell))a=this.isBlankLink(d)?this.linkTarget:"_top",this.openLink(this.getAbsoluteUrl(d),a);mxEvent.consume(e)}}; -Graph.prototype.openLink=function(a,d,e){var b=window;"_self"==d&&window!=window.top?window.location.href=a:a.substring(0,this.baseUrl.length)==this.baseUrl&&"#"==a.charAt(this.baseUrl.length)&&"_top"==d&&window==window.top?(a=a.split("#")[1],window.location.hash=="#"+a&&(window.location.hash=""),window.location.hash=a):(b=window.open(a,d),null==b||e||(b.opener=null));return b};Graph.prototype.getLinkTitle=function(a){return a.substring(a.lastIndexOf("/")+1)}; +Graph.prototype.init=function(a){mxGraph.prototype.init.apply(this,arguments);this.cellRenderer.initializeLabel=function(a,e){mxCellRenderer.prototype.initializeLabel.apply(this,arguments);var b=a.view.graph.tolerance,k=!0,l=null,p=mxUtils.bind(this,function(a){k=!0;l=new mxPoint(mxEvent.getClientX(a),mxEvent.getClientY(a))}),q=mxUtils.bind(this,function(a){k=k&&null!=l&&Math.abs(l.x-mxEvent.getClientX(a))<b&&Math.abs(l.y-mxEvent.getClientY(a))<b}),u=mxUtils.bind(this,function(c){if(k)for(var b=mxEvent.getSource(c);null!= +b&&b!=e.node;){if("a"==b.nodeName.toLowerCase()){a.view.graph.labelLinkClicked(a,b,c);break}b=b.parentNode}});mxEvent.addGestureListeners(e.node,p,q,u);mxEvent.addListener(e.node,"click",function(a){mxEvent.consume(a)})};this.initLayoutManager()}; +(function(){Graph.prototype.useCssTransforms=!1;Graph.prototype.currentScale=1;Graph.prototype.currentTranslate=new mxPoint(0,0);Graph.prototype.isCssTransformsSupported=function(){return this.dialect==mxConstants.DIALECT_SVG&&!mxClient.NO_FO};Graph.prototype.getCellAt=function(a,b,e,p,q,u){this.useCssTransforms&&(a=a/this.currentScale-this.currentTranslate.x,b=b/this.currentScale-this.currentTranslate.y);return this.getScaledCellAt.apply(this,arguments)};Graph.prototype.getScaledCellAt=function(a, +b,e,p,q,u){p=null!=p?p:!0;q=null!=q?q:!0;null==e&&(e=this.getCurrentRoot(),null==e&&(e=this.getModel().getRoot()));if(null!=e)for(var c=this.model.getChildCount(e)-1;0<=c;c--){var d=this.model.getChildAt(e,c),g=this.getScaledCellAt(a,b,d,p,q,u);if(null!=g)return g;if(this.isCellVisible(d)&&(q&&this.model.isEdge(d)||p&&this.model.isVertex(d))&&(g=this.view.getState(d),null!=g&&(null==u||!u(g,a,b))&&this.intersects(g,a,b)))return d}return null};mxCellHighlight.prototype.getStrokeWidth=function(a){a= +this.strokeWidth;this.graph.useCssTransforms&&(a/=this.graph.currentScale);return a};mxGraphView.prototype.getGraphBounds=function(){var a=this.graphBounds;if(this.graph.useCssTransforms)var b=this.graph.currentTranslate,e=this.graph.currentScale,a=new mxRectangle((a.x+b.x)*e,(a.y+b.y)*e,a.width*e,a.height*e);return a};mxGraphView.prototype.viewStateChanged=function(){this.graph.useCssTransforms?this.validate():this.revalidate();this.graph.sizeDidChange()};var a=mxGraphView.prototype.validate;mxGraphView.prototype.validate= +function(b){this.graph.useCssTransforms&&(this.graph.currentScale=this.scale,this.graph.currentTranslate.x=this.translate.x,this.graph.currentTranslate.y=this.translate.y,this.scale=1,this.translate.x=0,this.translate.y=0);a.apply(this,arguments);this.graph.useCssTransforms&&(this.graph.updateCssTransform(),this.scale=this.graph.currentScale,this.translate.x=this.graph.currentTranslate.x,this.translate.y=this.graph.currentTranslate.y)};Graph.prototype.updateCssTransform=function(){var a=this.view.getDrawPane(); +if(null!=a)if(a=a.parentNode,this.useCssTransforms){var b=a.getAttribute("transform");a.setAttribute("transformOrigin","0 0");a.setAttribute("transform","scale("+this.currentScale+","+this.currentScale+")translate("+this.currentTranslate.x+","+this.currentTranslate.y+")");if(b!=a.getAttribute("transform"))try{if(mxClient.IS_EDGE){var e=a.style.display;a.style.display="none";a.getBBox();a.style.display=e}}catch(p){}}else a.removeAttribute("transformOrigin"),a.removeAttribute("transform")};var b=mxGraphView.prototype.validateBackgroundPage; +mxGraphView.prototype.validateBackgroundPage=function(){var a=this.graph.useCssTransforms,e=this.scale,l=this.translate;a&&(this.scale=this.graph.currentScale,this.translate=this.graph.currentTranslate);b.apply(this,arguments);a&&(this.scale=e,this.translate=l)};var e=mxGraph.prototype.updatePageBreaks;mxGraph.prototype.updatePageBreaks=function(a,b,l){var d=this.useCssTransforms,k=this.view.scale,u=this.view.translate;d&&(this.view.scale=1,this.view.translate=new mxPoint(0,0),this.useCssTransforms= +!1);e.apply(this,arguments);d&&(this.view.scale=k,this.view.translate=u,this.useCssTransforms=!0)}})();Graph.prototype.isLightboxView=function(){return this.lightbox};Graph.prototype.labelLinkClicked=function(a,b,e){b=b.getAttribute("href");if(null!=b&&!this.isCustomLink(b)&&mxEvent.isLeftMouseButton(e)&&!mxEvent.isPopupTrigger(e)||mxEvent.isTouchEvent(e)){if(!this.isEnabled()||this.isCellLocked(a.cell))a=this.isBlankLink(b)?this.linkTarget:"_top",this.openLink(this.getAbsoluteUrl(b),a);mxEvent.consume(e)}}; +Graph.prototype.openLink=function(a,b,e){var d=window;"_self"==b&&window!=window.top?window.location.href=a:a.substring(0,this.baseUrl.length)==this.baseUrl&&"#"==a.charAt(this.baseUrl.length)&&"_top"==b&&window==window.top?(a=a.split("#")[1],window.location.hash=="#"+a&&(window.location.hash=""),window.location.hash=a):(d=window.open(a,b),null==d||e||(d.opener=null));return d};Graph.prototype.getLinkTitle=function(a){return a.substring(a.lastIndexOf("/")+1)}; Graph.prototype.isCustomLink=function(a){return"data:"==a.substring(0,5)};Graph.prototype.customLinkClicked=function(a){return!1};Graph.prototype.isExternalProtocol=function(a){return"mailto:"===a.substring(0,7)};Graph.prototype.isBlankLink=function(a){return!this.isExternalProtocol(a)&&("blank"===this.linkPolicy||"self"!==this.linkPolicy&&!this.isRelativeUrl(a)&&a.substring(0,this.domainUrl.length)!==this.domainUrl)}; Graph.prototype.isRelativeUrl=function(a){return null!=a&&!this.absoluteUrlPattern.test(a)&&"data:"!==a.substring(0,5)&&!this.isExternalProtocol(a)}; -Graph.prototype.initLayoutManager=function(){this.layoutManager=new mxLayoutManager(this);this.layoutManager.getLayout=function(a){var d=this.graph.view.getState(a);a=null!=d?d.style:this.graph.getCellStyle(a);return"stackLayout"==a.childLayout?(d=new mxStackLayout(this.graph,!0),d.resizeParentMax="1"==mxUtils.getValue(a,"resizeParentMax","1"),d.horizontal="1"==mxUtils.getValue(a,"horizontalStack","1"),d.resizeParent="1"==mxUtils.getValue(a,"resizeParent","1"),d.resizeLast="1"==mxUtils.getValue(a, -"resizeLast","0"),d.spacing=a.stackSpacing||d.spacing,d.border=a.stackBorder||d.border,d.marginLeft=a.marginLeft||0,d.marginRight=a.marginRight||0,d.marginTop=a.marginTop||0,d.marginBottom=a.marginBottom||0,d.fill=!0,d):"treeLayout"==a.childLayout?(d=new mxCompactTreeLayout(this.graph),d.horizontal="1"==mxUtils.getValue(a,"horizontalTree","1"),d.resizeParent="1"==mxUtils.getValue(a,"resizeParent","1"),d.groupPadding=mxUtils.getValue(a,"parentPadding",20),d.levelDistance=mxUtils.getValue(a,"treeLevelDistance", -30),d.maintainParentLocation=!0,d.edgeRouting=!1,d.resetEdges=!1,d):"flowLayout"==a.childLayout?(d=new mxHierarchicalLayout(this.graph,mxUtils.getValue(a,"flowOrientation",mxConstants.DIRECTION_EAST)),d.resizeParent="1"==mxUtils.getValue(a,"resizeParent","1"),d.parentBorder=mxUtils.getValue(a,"parentPadding",20),d.maintainParentLocation=!0,d.intraCellSpacing=mxUtils.getValue(a,"intraCellSpacing",mxHierarchicalLayout.prototype.intraCellSpacing),d.interRankCellSpacing=mxUtils.getValue(a,"interRankCellSpacing", -mxHierarchicalLayout.prototype.interRankCellSpacing),d.interHierarchySpacing=mxUtils.getValue(a,"interHierarchySpacing",mxHierarchicalLayout.prototype.interHierarchySpacing),d.parallelEdgeSpacing=mxUtils.getValue(a,"parallelEdgeSpacing",mxHierarchicalLayout.prototype.parallelEdgeSpacing),d):null}};Graph.prototype.getPageSize=function(){return this.pageVisible?new mxRectangle(0,0,this.pageFormat.width*this.pageScale,this.pageFormat.height*this.pageScale):this.scrollTileSize}; -Graph.prototype.getPageLayout=function(){var a=this.getPageSize(),d=this.getGraphBounds();if(0==d.width||0==d.height)return new mxRectangle(0,0,1,1);var e=Math.ceil(d.x/this.view.scale-this.view.translate.x),b=Math.ceil(d.y/this.view.scale-this.view.translate.y),h=Math.floor(e/a.width),m=Math.floor(b/a.height);return new mxRectangle(h,m,Math.ceil((e+Math.floor(d.width/this.view.scale))/a.width)-h,Math.ceil((b+Math.floor(d.height/this.view.scale))/a.height)-m)}; -Graph.prototype.sanitizeHtml=function(a,d){return html_sanitize(a,function(a){return null!=a&&"javascript:"!==a.toString().toLowerCase().substring(0,11)?a:null},function(a){return a})};Graph.prototype.updatePlaceholders=function(){var a=!1,d;for(d in this.model.cells){var e=this.model.cells[d];this.isReplacePlaceholders(e)&&(this.view.invalidate(e,!1,!1),a=!0)}a&&this.view.validate()};Graph.prototype.isReplacePlaceholders=function(a){return null!=a.value&&"object"==typeof a.value&&"1"==a.value.getAttribute("placeholders")}; +Graph.prototype.initLayoutManager=function(){this.layoutManager=new mxLayoutManager(this);this.layoutManager.getLayout=function(a){var b=this.graph.view.getState(a);a=null!=b?b.style:this.graph.getCellStyle(a);return"stackLayout"==a.childLayout?(b=new mxStackLayout(this.graph,!0),b.resizeParentMax="1"==mxUtils.getValue(a,"resizeParentMax","1"),b.horizontal="1"==mxUtils.getValue(a,"horizontalStack","1"),b.resizeParent="1"==mxUtils.getValue(a,"resizeParent","1"),b.resizeLast="1"==mxUtils.getValue(a, +"resizeLast","0"),b.spacing=a.stackSpacing||b.spacing,b.border=a.stackBorder||b.border,b.marginLeft=a.marginLeft||0,b.marginRight=a.marginRight||0,b.marginTop=a.marginTop||0,b.marginBottom=a.marginBottom||0,b.fill=!0,b):"treeLayout"==a.childLayout?(b=new mxCompactTreeLayout(this.graph),b.horizontal="1"==mxUtils.getValue(a,"horizontalTree","1"),b.resizeParent="1"==mxUtils.getValue(a,"resizeParent","1"),b.groupPadding=mxUtils.getValue(a,"parentPadding",20),b.levelDistance=mxUtils.getValue(a,"treeLevelDistance", +30),b.maintainParentLocation=!0,b.edgeRouting=!1,b.resetEdges=!1,b):"flowLayout"==a.childLayout?(b=new mxHierarchicalLayout(this.graph,mxUtils.getValue(a,"flowOrientation",mxConstants.DIRECTION_EAST)),b.resizeParent="1"==mxUtils.getValue(a,"resizeParent","1"),b.parentBorder=mxUtils.getValue(a,"parentPadding",20),b.maintainParentLocation=!0,b.intraCellSpacing=mxUtils.getValue(a,"intraCellSpacing",mxHierarchicalLayout.prototype.intraCellSpacing),b.interRankCellSpacing=mxUtils.getValue(a,"interRankCellSpacing", +mxHierarchicalLayout.prototype.interRankCellSpacing),b.interHierarchySpacing=mxUtils.getValue(a,"interHierarchySpacing",mxHierarchicalLayout.prototype.interHierarchySpacing),b.parallelEdgeSpacing=mxUtils.getValue(a,"parallelEdgeSpacing",mxHierarchicalLayout.prototype.parallelEdgeSpacing),b):null}};Graph.prototype.getPageSize=function(){return this.pageVisible?new mxRectangle(0,0,this.pageFormat.width*this.pageScale,this.pageFormat.height*this.pageScale):this.scrollTileSize}; +Graph.prototype.getPageLayout=function(){var a=this.getPageSize(),b=this.getGraphBounds();if(0==b.width||0==b.height)return new mxRectangle(0,0,1,1);var e=Math.ceil(b.x/this.view.scale-this.view.translate.x),d=Math.ceil(b.y/this.view.scale-this.view.translate.y),k=Math.floor(e/a.width),l=Math.floor(d/a.height);return new mxRectangle(k,l,Math.ceil((e+Math.floor(b.width/this.view.scale))/a.width)-k,Math.ceil((d+Math.floor(b.height/this.view.scale))/a.height)-l)}; +Graph.prototype.sanitizeHtml=function(a,b){return html_sanitize(a,function(a){return null!=a&&"javascript:"!==a.toString().toLowerCase().substring(0,11)?a:null},function(a){return a})};Graph.prototype.updatePlaceholders=function(){var a=!1,b;for(b in this.model.cells){var e=this.model.cells[b];this.isReplacePlaceholders(e)&&(this.view.invalidate(e,!1,!1),a=!0)}a&&this.view.validate()};Graph.prototype.isReplacePlaceholders=function(a){return null!=a.value&&"object"==typeof a.value&&"1"==a.value.getAttribute("placeholders")}; Graph.prototype.isZoomWheelEvent=function(a){return mxEvent.isAltDown(a)||mxEvent.isMetaDown(a)&&mxClient.IS_MAC||mxEvent.isControlDown(a)&&!mxClient.IS_MAC};Graph.prototype.isTransparentClickEvent=function(a){return mxEvent.isAltDown(a)};Graph.prototype.isIgnoreTerminalEvent=function(a){return mxEvent.isShiftDown(a)&&mxEvent.isControlDown(a)}; -Graph.prototype.isSplitTarget=function(a,d,e){return!this.model.isEdge(d[0])&&!mxEvent.isAltDown(e)&&!mxEvent.isShiftDown(e)&&mxGraph.prototype.isSplitTarget.apply(this,arguments)};Graph.prototype.getLabel=function(a){var d=mxGraph.prototype.getLabel.apply(this,arguments);null!=d&&this.isReplacePlaceholders(a)&&null==a.getAttribute("placeholder")&&(d=this.replacePlaceholders(a,d));return d}; -Graph.prototype.isLabelMovable=function(a){var d=this.view.getState(a),d=null!=d?d.style:this.getCellStyle(a);return!this.isCellLocked(a)&&(this.model.isEdge(a)&&this.edgeLabelsMovable||this.model.isVertex(a)&&(this.vertexLabelsMovable||"1"==mxUtils.getValue(d,"labelMovable","0")))};Graph.prototype.setGridSize=function(a){this.gridSize=a;this.fireEvent(new mxEventObject("gridSizeChanged"))}; -Graph.prototype.getGlobalVariable=function(a){var d=null;"date"==a?d=(new Date).toLocaleDateString():"time"==a?d=(new Date).toLocaleTimeString():"timestamp"==a?d=(new Date).toLocaleString():"date{"==a.substring(0,5)&&(a=a.substring(5,a.length-1),d=this.formatDate(new Date,a));return d}; -Graph.prototype.formatDate=function(a,d,e){null==this.dateFormatCache&&(this.dateFormatCache={i18n:{dayNames:"Sun Mon Tue Wed Thu Fri Sat Sunday Monday Tuesday Wednesday Thursday Friday Saturday".split(" "),monthNames:"Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec January February March April May June July August September October November December".split(" ")},masks:{"default":"ddd mmm dd yyyy HH:MM:ss",shortDate:"m/d/yy",mediumDate:"mmm d, yyyy",longDate:"mmmm d, yyyy",fullDate:"dddd, mmmm d, yyyy", -shortTime:"h:MM TT",mediumTime:"h:MM:ss TT",longTime:"h:MM:ss TT Z",isoDate:"yyyy-mm-dd",isoTime:"HH:MM:ss",isoDateTime:"yyyy-mm-dd'T'HH:MM:ss",isoUtcDateTime:"UTC:yyyy-mm-dd'T'HH:MM:ss'Z'"}});var b=this.dateFormatCache,h=/\b(?:[PMCEA][SDP]T|(?:Pacific|Mountain|Central|Eastern|Atlantic) (?:Standard|Daylight|Prevailing) Time|(?:GMT|UTC)(?:[-+]\d{4})?)\b/g,m=/[^-+\dA-Z]/g,p=function(a,c){a=String(a);for(c=c||2;a.length<c;)a="0"+a;return a};1!=arguments.length||"[object String]"!=Object.prototype.toString.call(a)|| -/\d/.test(a)||(d=a,a=void 0);a=a?new Date(a):new Date;if(isNaN(a))throw SyntaxError("invalid date");d=String(b.masks[d]||d||b.masks["default"]);"UTC:"==d.slice(0,4)&&(d=d.slice(4),e=!0);var q=e?"getUTC":"get",u=a[q+"Date"](),c=a[q+"Day"](),f=a[q+"Month"](),g=a[q+"FullYear"](),k=a[q+"Hours"](),r=a[q+"Minutes"](),l=a[q+"Seconds"](),q=a[q+"Milliseconds"](),n=e?0:a.getTimezoneOffset(),w={d:u,dd:p(u),ddd:b.i18n.dayNames[c],dddd:b.i18n.dayNames[c+7],m:f+1,mm:p(f+1),mmm:b.i18n.monthNames[f],mmmm:b.i18n.monthNames[f+ -12],yy:String(g).slice(2),yyyy:g,h:k%12||12,hh:p(k%12||12),H:k,HH:p(k),M:r,MM:p(r),s:l,ss:p(l),l:p(q,3),L:p(99<q?Math.round(q/10):q),t:12>k?"a":"p",tt:12>k?"am":"pm",T:12>k?"A":"P",TT:12>k?"AM":"PM",Z:e?"UTC":(String(a).match(h)||[""]).pop().replace(m,""),o:(0<n?"-":"+")+p(100*Math.floor(Math.abs(n)/60)+Math.abs(n)%60,4),S:["th","st","nd","rd"][3<u%10?0:(10!=u%100-u%10)*u%10]};return d.replace(/d{1,4}|m{1,4}|yy(?:yy)?|([HhMsTt])\1?|[LloSZ]|"[^"]*"|'[^']*'/g,function(a){return a in w?w[a]:a.slice(1, +Graph.prototype.isSplitTarget=function(a,b,e){return!this.model.isEdge(b[0])&&!mxEvent.isAltDown(e)&&!mxEvent.isShiftDown(e)&&mxGraph.prototype.isSplitTarget.apply(this,arguments)};Graph.prototype.getLabel=function(a){var b=mxGraph.prototype.getLabel.apply(this,arguments);null!=b&&this.isReplacePlaceholders(a)&&null==a.getAttribute("placeholder")&&(b=this.replacePlaceholders(a,b));return b}; +Graph.prototype.isLabelMovable=function(a){var b=this.view.getState(a),b=null!=b?b.style:this.getCellStyle(a);return!this.isCellLocked(a)&&(this.model.isEdge(a)&&this.edgeLabelsMovable||this.model.isVertex(a)&&(this.vertexLabelsMovable||"1"==mxUtils.getValue(b,"labelMovable","0")))};Graph.prototype.setGridSize=function(a){this.gridSize=a;this.fireEvent(new mxEventObject("gridSizeChanged"))}; +Graph.prototype.getGlobalVariable=function(a){var b=null;"date"==a?b=(new Date).toLocaleDateString():"time"==a?b=(new Date).toLocaleTimeString():"timestamp"==a?b=(new Date).toLocaleString():"date{"==a.substring(0,5)&&(a=a.substring(5,a.length-1),b=this.formatDate(new Date,a));return b}; +Graph.prototype.formatDate=function(a,b,e){null==this.dateFormatCache&&(this.dateFormatCache={i18n:{dayNames:"Sun Mon Tue Wed Thu Fri Sat Sunday Monday Tuesday Wednesday Thursday Friday Saturday".split(" "),monthNames:"Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec January February March April May June July August September October November December".split(" ")},masks:{"default":"ddd mmm dd yyyy HH:MM:ss",shortDate:"m/d/yy",mediumDate:"mmm d, yyyy",longDate:"mmmm d, yyyy",fullDate:"dddd, mmmm d, yyyy", +shortTime:"h:MM TT",mediumTime:"h:MM:ss TT",longTime:"h:MM:ss TT Z",isoDate:"yyyy-mm-dd",isoTime:"HH:MM:ss",isoDateTime:"yyyy-mm-dd'T'HH:MM:ss",isoUtcDateTime:"UTC:yyyy-mm-dd'T'HH:MM:ss'Z'"}});var d=this.dateFormatCache,k=/\b(?:[PMCEA][SDP]T|(?:Pacific|Mountain|Central|Eastern|Atlantic) (?:Standard|Daylight|Prevailing) Time|(?:GMT|UTC)(?:[-+]\d{4})?)\b/g,l=/[^-+\dA-Z]/g,p=function(a,c){a=String(a);for(c=c||2;a.length<c;)a="0"+a;return a};1!=arguments.length||"[object String]"!=Object.prototype.toString.call(a)|| +/\d/.test(a)||(b=a,a=void 0);a=a?new Date(a):new Date;if(isNaN(a))throw SyntaxError("invalid date");b=String(d.masks[b]||b||d.masks["default"]);"UTC:"==b.slice(0,4)&&(b=b.slice(4),e=!0);var q=e?"getUTC":"get",u=a[q+"Date"](),c=a[q+"Day"](),f=a[q+"Month"](),g=a[q+"FullYear"](),n=a[q+"Hours"](),r=a[q+"Minutes"](),h=a[q+"Seconds"](),q=a[q+"Milliseconds"](),m=e?0:a.getTimezoneOffset(),w={d:u,dd:p(u),ddd:d.i18n.dayNames[c],dddd:d.i18n.dayNames[c+7],m:f+1,mm:p(f+1),mmm:d.i18n.monthNames[f],mmmm:d.i18n.monthNames[f+ +12],yy:String(g).slice(2),yyyy:g,h:n%12||12,hh:p(n%12||12),H:n,HH:p(n),M:r,MM:p(r),s:h,ss:p(h),l:p(q,3),L:p(99<q?Math.round(q/10):q),t:12>n?"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:(0<m?"-":"+")+p(100*Math.floor(Math.abs(m)/60)+Math.abs(m)%60,4),S:["th","st","nd","rd"][3<u%10?0:(10!=u%100-u%10)*u%10]};return b.replace(/d{1,4}|m{1,4}|yy(?:yy)?|([HhMsTt])\1?|[LloSZ]|"[^"]*"|'[^']*'/g,function(a){return a in w?w[a]:a.slice(1, a.length-1)})}; -Graph.prototype.createLayersDialog=function(){var a=document.createElement("div");a.style.position="absolute";for(var d=this.getModel(),e=d.getChildCount(d.root),b=0;b<e;b++)mxUtils.bind(this,function(b){var e=document.createElement("div");e.style.overflow="hidden";e.style.textOverflow="ellipsis";e.style.padding="2px";e.style.whiteSpace="nowrap";var h=document.createElement("input");h.style.display="inline-block";h.setAttribute("type","checkbox");d.isVisible(b)&&(h.setAttribute("checked","checked"), -h.defaultChecked=!0);e.appendChild(h);var q=this.convertValueToString(b)||mxResources.get("background")||"Background";e.setAttribute("title",q);mxUtils.write(e,q);a.appendChild(e);mxEvent.addListener(h,"click",function(){null!=h.getAttribute("checked")?h.removeAttribute("checked"):h.setAttribute("checked","checked");d.setVisible(b,h.checked)})})(d.getChildAt(d.root,b));return a}; -Graph.prototype.replacePlaceholders=function(a,d){var e=[];if(null!=d){for(var b=0;match=this.placeholderPattern.exec(d);){var h=match[0];if(2<h.length&&"%label%"!=h&&"%tooltip%"!=h){var m=null;if(match.index>b&&"%"==d.charAt(match.index-1))m=h.substring(1);else{var p=h.substring(1,h.length-1);if(0>p.indexOf("{"))for(var q=a;null==m&&null!=q;)null!=q.value&&"object"==typeof q.value&&(m=q.hasAttribute(p)?null!=q.getAttribute(p)?q.getAttribute(p):"":null),q=this.model.getParent(q);null==m&&(m=this.getGlobalVariable(p))}e.push(d.substring(b, -match.index)+(null!=m?m:h));b=match.index+h.length}}e.push(d.substring(b))}return e.join("")};Graph.prototype.selectCellsForConnectVertex=function(a,d,e){2==a.length&&this.model.isVertex(a[1])?(this.setSelectionCell(a[1]),null!=e&&(mxEvent.isTouchEvent(d)?e.update(e.getState(this.view.getState(a[1]))):e.reset()),this.scrollCellToVisible(a[1])):this.setSelectionCells(a)}; -Graph.prototype.connectVertex=function(a,d,e,b,h,m){m=m?m:!1;var p=a.geometry.relative&&null!=a.parent.geometry?new mxPoint(a.parent.geometry.width*a.geometry.x,a.parent.geometry.height*a.geometry.y):new mxPoint(a.geometry.x,a.geometry.y);d==mxConstants.DIRECTION_NORTH?(p.x+=a.geometry.width/2,p.y-=e):d==mxConstants.DIRECTION_SOUTH?(p.x+=a.geometry.width/2,p.y+=a.geometry.height+e):(p.x=d==mxConstants.DIRECTION_WEST?p.x-e:p.x+(a.geometry.width+e),p.y+=a.geometry.height/2);e=this.view.getState(this.model.getParent(a)); -var q=this.view.scale,u=this.view.translate,c=u.x*q,u=u.y*q;this.model.isVertex(e.cell)&&(c=e.x,u=e.y);this.model.isVertex(a.parent)&&a.geometry.relative&&(p.x+=a.parent.geometry.x,p.y+=a.parent.geometry.y);m=m||mxEvent.isControlDown(b)&&!h?null:this.getCellAt(c+p.x*q,u+p.y*q);this.model.isAncestor(m,a)&&(m=null);for(e=m;null!=e;){if(this.isCellLocked(e)){m=null;break}e=this.model.getParent(e)}null!=m&&(e=this.view.getState(a),q=this.view.getState(m),null!=e&&null!=q&&mxUtils.intersects(e,q)&&(m= -null));if(h=!mxEvent.isShiftDown(b)||h)d==mxConstants.DIRECTION_NORTH?p.y-=a.geometry.height/2:d==mxConstants.DIRECTION_SOUTH?p.y+=a.geometry.height/2:p.x=d==mxConstants.DIRECTION_WEST?p.x-a.geometry.width/2:p.x+a.geometry.width/2;null==m||this.isCellConnectable(m)||(e=this.getModel().getParent(m),this.getModel().isVertex(e)&&this.isCellConnectable(e)&&(m=e));if(m==a||this.model.isEdge(m)||!this.isCellConnectable(m))m=null;e=[];this.model.beginUpdate();try{q=m;if(null==q&&h){for(var c=a,f=this.getCellGeometry(a);null!= -f&&f.relative;)c=this.getModel().getParent(c),f=this.getCellGeometry(c);var g=this.view.getState(c),k=null!=g?g.style:this.getCellStyle(c);if(mxUtils.getValue(k,"part",!1)){var r=this.model.getParent(c);this.model.isVertex(r)&&(c=r)}q=this.duplicateCells([c],!1)[0];f=this.getCellGeometry(q);null!=f&&(f.x=p.x-f.width/2,f.y=p.y-f.height/2)}f=null;null!=this.layoutManager&&(f=this.layoutManager.getLayout(this.model.getParent(a)));var l=mxEvent.isControlDown(b)&&h||null==m&&null!=f&&f.constructor==mxStackLayout? -null:this.insertEdge(this.model.getParent(a),null,"",a,q,this.createCurrentEdgeStyle());if(null!=l&&this.connectionHandler.insertBeforeSource){var n=null;for(b=a;null!=b.parent&&null!=b.geometry&&b.geometry.relative&&b.parent!=l.parent;)b=this.model.getParent(b);null!=b&&null!=b.parent&&b.parent==l.parent&&(n=b.parent.getIndex(b),this.model.add(b.parent,l,n))}null==m&&null!=q&&null!=f&&null!=a.parent&&f.constructor==mxStackLayout&&d==mxConstants.DIRECTION_WEST&&(n=a.parent.getIndex(a),this.model.add(a.parent, -q,n));null!=l&&e.push(l);null==m&&null!=q&&e.push(q);null==q&&null!=l&&l.geometry.setTerminalPoint(p,!1);null!=l&&this.fireEvent(new mxEventObject("cellsInserted","cells",[l]))}finally{this.model.endUpdate()}return e}; -Graph.prototype.getIndexableText=function(){var a=document.createElement("div"),d=[],e,b;for(b in this.model.cells)if(e=this.model.cells[b],this.model.isVertex(e)||this.model.isEdge(e))this.isHtmlLabel(e)?(a.innerHTML=this.getLabel(e),e=mxUtils.extractTextWithWhitespace([a])):e=this.getLabel(e),e=mxUtils.trim(e.replace(/[\x00-\x1F\x7F-\x9F]|\s+/g," ")),0<e.length&&d.push(e);return d.join(" ")}; -Graph.prototype.convertValueToString=function(a){if(null!=a.value&&"object"==typeof a.value){if(this.isReplacePlaceholders(a)&&null!=a.getAttribute("placeholder")){for(var d=a.getAttribute("placeholder"),e=a,b=null;null==b&&null!=e;)null!=e.value&&"object"==typeof e.value&&(b=e.hasAttribute(d)?null!=e.getAttribute(d)?e.getAttribute(d):"":null),e=this.model.getParent(e);return b||""}return a.value.getAttribute("label")||""}return mxGraph.prototype.convertValueToString.apply(this,arguments)}; +Graph.prototype.createLayersDialog=function(){var a=document.createElement("div");a.style.position="absolute";for(var b=this.getModel(),e=b.getChildCount(b.root),d=0;d<e;d++)mxUtils.bind(this,function(d){var e=document.createElement("div");e.style.overflow="hidden";e.style.textOverflow="ellipsis";e.style.padding="2px";e.style.whiteSpace="nowrap";var k=document.createElement("input");k.style.display="inline-block";k.setAttribute("type","checkbox");b.isVisible(d)&&(k.setAttribute("checked","checked"), +k.defaultChecked=!0);e.appendChild(k);var q=this.convertValueToString(d)||mxResources.get("background")||"Background";e.setAttribute("title",q);mxUtils.write(e,q);a.appendChild(e);mxEvent.addListener(k,"click",function(){null!=k.getAttribute("checked")?k.removeAttribute("checked"):k.setAttribute("checked","checked");b.setVisible(d,k.checked)})})(b.getChildAt(b.root,d));return a}; +Graph.prototype.replacePlaceholders=function(a,b){var e=[];if(null!=b){for(var d=0;match=this.placeholderPattern.exec(b);){var k=match[0];if(2<k.length&&"%label%"!=k&&"%tooltip%"!=k){var l=null;if(match.index>d&&"%"==b.charAt(match.index-1))l=k.substring(1);else{var p=k.substring(1,k.length-1);if(0>p.indexOf("{"))for(var q=a;null==l&&null!=q;)null!=q.value&&"object"==typeof q.value&&(l=q.hasAttribute(p)?null!=q.getAttribute(p)?q.getAttribute(p):"":null),q=this.model.getParent(q);null==l&&(l=this.getGlobalVariable(p))}e.push(b.substring(d, +match.index)+(null!=l?l:k));d=match.index+k.length}}e.push(b.substring(d))}return e.join("")};Graph.prototype.selectCellsForConnectVertex=function(a,b,e){2==a.length&&this.model.isVertex(a[1])?(this.setSelectionCell(a[1]),null!=e&&(mxEvent.isTouchEvent(b)?e.update(e.getState(this.view.getState(a[1]))):e.reset()),this.scrollCellToVisible(a[1])):this.setSelectionCells(a)}; +Graph.prototype.connectVertex=function(a,b,e,d,k,l){l=l?l:!1;var p=a.geometry.relative&&null!=a.parent.geometry?new mxPoint(a.parent.geometry.width*a.geometry.x,a.parent.geometry.height*a.geometry.y):new mxPoint(a.geometry.x,a.geometry.y);b==mxConstants.DIRECTION_NORTH?(p.x+=a.geometry.width/2,p.y-=e):b==mxConstants.DIRECTION_SOUTH?(p.x+=a.geometry.width/2,p.y+=a.geometry.height+e):(p.x=b==mxConstants.DIRECTION_WEST?p.x-e:p.x+(a.geometry.width+e),p.y+=a.geometry.height/2);e=this.view.getState(this.model.getParent(a)); +var q=this.view.scale,u=this.view.translate,c=u.x*q,u=u.y*q;this.model.isVertex(e.cell)&&(c=e.x,u=e.y);this.model.isVertex(a.parent)&&a.geometry.relative&&(p.x+=a.parent.geometry.x,p.y+=a.parent.geometry.y);l=l||mxEvent.isControlDown(d)&&!k?null:this.getCellAt(c+p.x*q,u+p.y*q);this.model.isAncestor(l,a)&&(l=null);for(e=l;null!=e;){if(this.isCellLocked(e)){l=null;break}e=this.model.getParent(e)}null!=l&&(e=this.view.getState(a),q=this.view.getState(l),null!=e&&null!=q&&mxUtils.intersects(e,q)&&(l= +null));if(k=!mxEvent.isShiftDown(d)||k)b==mxConstants.DIRECTION_NORTH?p.y-=a.geometry.height/2:b==mxConstants.DIRECTION_SOUTH?p.y+=a.geometry.height/2:p.x=b==mxConstants.DIRECTION_WEST?p.x-a.geometry.width/2:p.x+a.geometry.width/2;null==l||this.isCellConnectable(l)||(e=this.getModel().getParent(l),this.getModel().isVertex(e)&&this.isCellConnectable(e)&&(l=e));if(l==a||this.model.isEdge(l)||!this.isCellConnectable(l))l=null;e=[];this.model.beginUpdate();try{q=l;if(null==q&&k){for(var c=a,f=this.getCellGeometry(a);null!= +f&&f.relative;)c=this.getModel().getParent(c),f=this.getCellGeometry(c);var g=this.view.getState(c),n=null!=g?g.style:this.getCellStyle(c);if(mxUtils.getValue(n,"part",!1)){var r=this.model.getParent(c);this.model.isVertex(r)&&(c=r)}q=this.duplicateCells([c],!1)[0];f=this.getCellGeometry(q);null!=f&&(f.x=p.x-f.width/2,f.y=p.y-f.height/2)}f=null;null!=this.layoutManager&&(f=this.layoutManager.getLayout(this.model.getParent(a)));var h=mxEvent.isControlDown(d)&&k||null==l&&null!=f&&f.constructor==mxStackLayout? +null:this.insertEdge(this.model.getParent(a),null,"",a,q,this.createCurrentEdgeStyle());if(null!=h&&this.connectionHandler.insertBeforeSource){var m=null;for(d=a;null!=d.parent&&null!=d.geometry&&d.geometry.relative&&d.parent!=h.parent;)d=this.model.getParent(d);null!=d&&null!=d.parent&&d.parent==h.parent&&(m=d.parent.getIndex(d),this.model.add(d.parent,h,m))}null==l&&null!=q&&null!=f&&null!=a.parent&&f.constructor==mxStackLayout&&b==mxConstants.DIRECTION_WEST&&(m=a.parent.getIndex(a),this.model.add(a.parent, +q,m));null!=h&&e.push(h);null==l&&null!=q&&e.push(q);null==q&&null!=h&&h.geometry.setTerminalPoint(p,!1);null!=h&&this.fireEvent(new mxEventObject("cellsInserted","cells",[h]))}finally{this.model.endUpdate()}return e}; +Graph.prototype.getIndexableText=function(){var a=document.createElement("div"),b=[],e,d;for(d in this.model.cells)if(e=this.model.cells[d],this.model.isVertex(e)||this.model.isEdge(e))this.isHtmlLabel(e)?(a.innerHTML=this.getLabel(e),e=mxUtils.extractTextWithWhitespace([a])):e=this.getLabel(e),e=mxUtils.trim(e.replace(/[\x00-\x1F\x7F-\x9F]|\s+/g," ")),0<e.length&&b.push(e);return b.join(" ")}; +Graph.prototype.convertValueToString=function(a){if(null!=a.value&&"object"==typeof a.value){if(this.isReplacePlaceholders(a)&&null!=a.getAttribute("placeholder")){for(var b=a.getAttribute("placeholder"),e=a,d=null;null==d&&null!=e;)null!=e.value&&"object"==typeof e.value&&(d=e.hasAttribute(b)?null!=e.getAttribute(b)?e.getAttribute(b):"":null),e=this.model.getParent(e);return d||""}return a.value.getAttribute("label")||""}return mxGraph.prototype.convertValueToString.apply(this,arguments)}; Graph.prototype.getLinksForState=function(a){return null!=a&&null!=a.text&&null!=a.text.node?a.text.node.getElementsByTagName("a"):null};Graph.prototype.getLinkForCell=function(a){return null!=a.value&&"object"==typeof a.value?(a=a.value.getAttribute("link"),null!=a&&"javascript:"===a.toLowerCase().substring(0,11)&&(a=a.substring(11)),a):null}; -Graph.prototype.getCellStyle=function(a){var d=mxGraph.prototype.getCellStyle.apply(this,arguments);if(null!=a&&null!=this.layoutManager){var e=this.model.getParent(a);this.model.isVertex(e)&&this.isCellCollapsed(a)&&(e=this.layoutManager.getLayout(e),null!=e&&e.constructor==mxStackLayout&&(d[mxConstants.STYLE_HORIZONTAL]=!e.horizontal))}return d}; -Graph.prototype.updateAlternateBounds=function(a,d,e){if(null!=a&&null!=d&&null!=this.layoutManager&&null!=d.alternateBounds){var b=this.layoutManager.getLayout(this.model.getParent(a));null!=b&&b.constructor==mxStackLayout&&(b.horizontal?d.alternateBounds.height=0:d.alternateBounds.width=0)}mxGraph.prototype.updateAlternateBounds.apply(this,arguments)};Graph.prototype.isMoveCellsEvent=function(a){return mxEvent.isShiftDown(a)}; -Graph.prototype.foldCells=function(a,d,e,b,h){d=null!=d?d:!1;null==e&&(e=this.getFoldableCells(this.getSelectionCells(),a));if(null!=e){this.model.beginUpdate();try{if(mxGraph.prototype.foldCells.apply(this,arguments),null!=this.layoutManager)for(var m=0;m<e.length;m++){var p=this.view.getState(e[m]),q=this.getCellGeometry(e[m]);if(null!=p&&null!=q){var u=Math.round(q.width-p.width/this.view.scale),c=Math.round(q.height-p.height/this.view.scale);if(0!=c||0!=u){var f=this.model.getParent(e[m]),g=this.layoutManager.getLayout(f); -null==g?null!=h&&this.isMoveCellsEvent(h)&&this.moveSiblings(p,f,u,c):null!=h&&mxEvent.isAltDown(h)||g.constructor!=mxStackLayout||g.resizeLast||this.resizeParentStacks(f,g,u,c)}}}}finally{this.model.endUpdate()}this.isEnabled()&&this.setSelectionCells(e)}}; -Graph.prototype.moveSiblings=function(a,d,e,b){this.model.beginUpdate();try{var h=this.getCellsBeyond(a.x,a.y,d,!0,!0);for(d=0;d<h.length;d++)if(h[d]!=a.cell){var m=this.view.getState(h[d]),p=this.getCellGeometry(h[d]);null!=m&&null!=p&&(p=p.clone(),p.translate(Math.round(e*Math.max(0,Math.min(1,(m.x-a.x)/a.width))),Math.round(b*Math.max(0,Math.min(1,(m.y-a.y)/a.height)))),this.model.setGeometry(h[d],p))}}finally{this.model.endUpdate()}}; -Graph.prototype.resizeParentStacks=function(a,d,e,b){if(null!=this.layoutManager&&null!=d&&d.constructor==mxStackLayout&&!d.resizeLast){this.model.beginUpdate();try{for(var h=d.horizontal;null!=a&&null!=d&&d.constructor==mxStackLayout&&d.horizontal==h&&!d.resizeLast;){var m=this.getCellGeometry(a),p=this.view.getState(a);null!=p&&null!=m&&(m=m.clone(),d.horizontal?m.width+=e+Math.min(0,p.width/this.view.scale-m.width):m.height+=b+Math.min(0,p.height/this.view.scale-m.height),this.model.setGeometry(a, -m));a=this.model.getParent(a);d=this.layoutManager.getLayout(a)}}finally{this.model.endUpdate()}}};Graph.prototype.isContainer=function(a){var d=this.view.getState(a),d=null!=d?d.style:this.getCellStyle(a);return this.isSwimlane(a)?"0"!=d.container:"1"==d.container};Graph.prototype.isCellConnectable=function(a){var d=this.view.getState(a),d=null!=d?d.style:this.getCellStyle(a);return null!=d.connectable?"0"!=d.connectable:mxGraph.prototype.isCellConnectable.apply(this,arguments)}; -Graph.prototype.selectAll=function(a){a=a||this.getDefaultParent();this.isCellLocked(a)||mxGraph.prototype.selectAll.apply(this,arguments)};Graph.prototype.selectCells=function(a,d,e){e=e||this.getDefaultParent();this.isCellLocked(e)||mxGraph.prototype.selectCells.apply(this,arguments)};Graph.prototype.getSwimlaneAt=function(a,d,e){e=e||this.getDefaultParent();return this.isCellLocked(e)?null:mxGraph.prototype.getSwimlaneAt.apply(this,arguments)}; -Graph.prototype.isCellFoldable=function(a){var d=this.view.getState(a),d=null!=d?d.style:this.getCellStyle(a);return this.foldingEnabled&&!this.isCellLocked(a)&&(this.isContainer(a)&&"0"!=d.collapsible||!this.isContainer(a)&&"1"==d.collapsible)};Graph.prototype.reset=function(){this.isEditing()&&this.stopEditing(!0);this.escape();this.isSelectionEmpty()||this.clearSelection()}; -Graph.prototype.zoom=function(a,d){a=Math.max(.01,Math.min(this.view.scale*a,160))/this.view.scale;mxGraph.prototype.zoom.apply(this,arguments)};Graph.prototype.zoomIn=function(){.15>this.view.scale?this.zoom((this.view.scale+.01)/this.view.scale):this.zoom(Math.round(this.view.scale*this.zoomFactor*20)/20/this.view.scale)};Graph.prototype.zoomOut=function(){.15>=this.view.scale?this.zoom((this.view.scale-.01)/this.view.scale):this.zoom(Math.round(1/this.zoomFactor*this.view.scale*20)/20/this.view.scale)}; -Graph.prototype.getTooltipForCell=function(a){var d="";if(mxUtils.isNode(a.value)){var e=a.value.getAttribute("tooltip");if(null!=e)null!=e&&this.isReplacePlaceholders(a)&&(e=this.replacePlaceholders(a,e)),d=this.sanitizeHtml(e);else{e=this.builtInProperties;a=a.value.attributes;var b=[];this.isEnabled()&&e.push("link");for(var h=0;h<a.length;h++)0>mxUtils.indexOf(e,a[h].nodeName)&&0<a[h].nodeValue.length&&b.push({name:a[h].nodeName,value:a[h].nodeValue});b.sort(function(a,d){return a.name<d.name? --1:a.name>d.name?1:0});for(h=0;h<b.length;h++)"link"==b[h].name&&this.isCustomLink(b[h].value)||(d+=("link"!=b[h].name?"<b>"+b[h].name+":</b> ":"")+mxUtils.htmlEntities(b[h].value)+"\n");0<d.length&&(d=d.substring(0,d.length-1),mxClient.IS_SVG&&(d='<div style="max-width:360px;">'+d+"</div>"))}}return d};Graph.prototype.stringToBytes=function(a){for(var d=Array(a.length),e=0;e<a.length;e++)d[e]=a.charCodeAt(e);return d}; -Graph.prototype.bytesToString=function(a){for(var d=Array(a.length),e=0;e<a.length;e++)d[e]=String.fromCharCode(a[e]);return d.join("")};Graph.prototype.compress=function(a){if(null==a||0==a.length||"undefined"===typeof pako)return a;a=this.bytesToString(pako.deflateRaw(encodeURIComponent(a)));return window.btoa?btoa(a):Base64.encode(a,!0)};Graph.prototype.decompress=function(a){if(null==a||0==a.length||"undefined"===typeof pako)return a;a=window.atob?atob(a):Base64.decode(a,!0);return this.zapGremlins(decodeURIComponent(this.bytesToString(pako.inflateRaw(a))))}; -Graph.prototype.zapGremlins=function(a){for(var d=[],e=0;e<a.length;e++){var b=a.charCodeAt(e);(32<=b||9==b||10==b||13==b)&&d.push(a.charAt(e))}return d.join("")};HoverIcons=function(a){this.graph=a;this.init()};HoverIcons.prototype.arrowSpacing=2;HoverIcons.prototype.updateDelay=500;HoverIcons.prototype.activationDelay=140;HoverIcons.prototype.currentState=null;HoverIcons.prototype.activeArrow=null;HoverIcons.prototype.inactiveOpacity=15;HoverIcons.prototype.cssCursor="copy"; -HoverIcons.prototype.checkCollisions=!0;HoverIcons.prototype.arrowFill="#29b6f2";HoverIcons.prototype.triangleUp=mxClient.IS_SVG?Graph.createSvgImage(18,28,'<path d="m 6 26 L 12 26 L 12 12 L 18 12 L 9 1 L 1 12 L 6 12 z" stroke="#fff" fill="'+HoverIcons.prototype.arrowFill+'"/>'):new mxImage(IMAGE_PATH+"/triangle-up.png",26,14); -HoverIcons.prototype.triangleRight=mxClient.IS_SVG?Graph.createSvgImage(26,18,'<path d="m 1 6 L 14 6 L 14 1 L 26 9 L 14 18 L 14 12 L 1 12 z" stroke="#fff" fill="'+HoverIcons.prototype.arrowFill+'"/>'):new mxImage(IMAGE_PATH+"/triangle-right.png",14,26);HoverIcons.prototype.triangleDown=mxClient.IS_SVG?Graph.createSvgImage(18,26,'<path d="m 6 1 L 6 14 L 1 14 L 9 26 L 18 14 L 12 14 L 12 1 z" stroke="#fff" fill="'+HoverIcons.prototype.arrowFill+'"/>'):new mxImage(IMAGE_PATH+"/triangle-down.png",26,14); -HoverIcons.prototype.triangleLeft=mxClient.IS_SVG?Graph.createSvgImage(28,18,'<path d="m 1 9 L 12 1 L 12 6 L 26 6 L 26 12 L 12 12 L 12 18 z" stroke="#fff" fill="'+HoverIcons.prototype.arrowFill+'"/>'):new mxImage(IMAGE_PATH+"/triangle-left.png",14,26);HoverIcons.prototype.roundDrop=mxClient.IS_SVG?Graph.createSvgImage(26,26,'<circle cx="13" cy="13" r="12" stroke="#fff" fill="'+HoverIcons.prototype.arrowFill+'"/>'):new mxImage(IMAGE_PATH+"/round-drop.png",26,26); -HoverIcons.prototype.refreshTarget=new mxImage(mxClient.IS_SVG?"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACYAAAAmCAYAAACoPemuAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBNYWNpbnRvc2giIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NDQxNERDRTU1QjY1MTFFNDkzNTRFQTVEMTdGMTdBQjciIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NDQxNERDRTY1QjY1MTFFNDkzNTRFQTVEMTdGMTdBQjciPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo0NDE0RENFMzVCNjUxMUU0OTM1NEVBNUQxN0YxN0FCNyIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo0NDE0RENFNDVCNjUxMUU0OTM1NEVBNUQxN0YxN0FCNyIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PsvuX50AAANaSURBVHja7FjRZ1tRGD9ZJ1NCyIQSwrivI4Q8hCpjlFDyFEoYfSp9Ko1QWnmo0If+BSXkIfo0QirTMUpeGo2EPfWllFYjZMLKLDJn53d3biU337m5J223bPbxk5t7v+/c3/2+73znO8fDOWezKM/YjMpz68Lj8ejY+QTeCCwLxOS9qPxtyN+6wAeBTwJ31CCO0cJDjXBGBN4LfIepSwykTUT1bgpuib0SONIgo8KRHOtRiCFcvUcgZeGrHPNBxLIyFPyRgTGz0xLbegJCdmzpElue5KlAIMDX19d5uVzm5+fnfDAYmMA17uEZdOx2Yvb/sHlu2S0xwymn5ufneTab5b1ej08S6EAXNrDd2dnhiUTim21MvMtwQ6yiIrWwsMDPzs64rsBmf3/fvM7n89TYlUnEllSkQqEQv7q64g+Vk5MTVXosORErU0Zer5f0FEIlw2N6MxwO82QyaXql2+2SxDqdjopYWUUsqEp45IldqtWq6UWVh/1+P7+8vCTJ4QMUJSRIEXuneoH96w8PDyeWAnhSJfCqwm6NIlaklFdXV0cGhRcQ2mlJQXK5nMq2YPEZbnteU1U2lUqN/D84OGD9fl+5fgnSrFarsUwmw0qlEru4uBjTicViTk3Cr27HSnxR+Doyz0ZE1CAWiUTusbu7y9rttlZv5fP5WDQavYfIMba4uEipfhF8XtqJoZXx/uH+sC/4vPg7OljZZQbsCmLtYzc3N6zRaJhotVrmfx0xDINtbm6athYUeXpHdbBNaqZUKpWxWXV7e2vex+xaWVnhc3NzjrPUXgexyCt0m67LBV7uJMITjqRE4o8tZeg8FPpFitgapYxiOC0poFgsji1jKNo6BZZckrAGUtJsNk1vqAihCBcKhTE7hNWhqw2qFnGy5UFOUYJVIJ1OjzSE+BCEilon0URavRmBqnbbQ00AXbm+vnZc9O1tj72OnQoc2+cwygRkb2+P1et17ZoEm3g87lRmjgWZ00kbXkNuse6/Bu2wlegIxfb2tuvWGroO4bO2c4bbzUh60mxDXm1sbJhhxkQYnhS4h2fUZoRAWnf7lv8N27f8P7Xhnekjgpk+VKGOoQbsiY+hhhtF3YO7twIJ+ULvUGv+GQ2fQEvWxI/THNx5/p/BaspPAQYAqStgiSQwCDoAAAAASUVORK5CYII=": -IMAGE_PATH+"/refresh.png",38,38);HoverIcons.prototype.tolerance=mxClient.IS_TOUCH?6:0; +Graph.prototype.getCellStyle=function(a){var b=mxGraph.prototype.getCellStyle.apply(this,arguments);if(null!=a&&null!=this.layoutManager){var e=this.model.getParent(a);this.model.isVertex(e)&&this.isCellCollapsed(a)&&(e=this.layoutManager.getLayout(e),null!=e&&e.constructor==mxStackLayout&&(b[mxConstants.STYLE_HORIZONTAL]=!e.horizontal))}return b}; +Graph.prototype.updateAlternateBounds=function(a,b,e){if(null!=a&&null!=b&&null!=this.layoutManager&&null!=b.alternateBounds){var d=this.layoutManager.getLayout(this.model.getParent(a));null!=d&&d.constructor==mxStackLayout&&(d.horizontal?b.alternateBounds.height=0:b.alternateBounds.width=0)}mxGraph.prototype.updateAlternateBounds.apply(this,arguments)};Graph.prototype.isMoveCellsEvent=function(a){return mxEvent.isShiftDown(a)}; +Graph.prototype.foldCells=function(a,b,e,d,k){b=null!=b?b:!1;null==e&&(e=this.getFoldableCells(this.getSelectionCells(),a));if(null!=e){this.model.beginUpdate();try{if(mxGraph.prototype.foldCells.apply(this,arguments),null!=this.layoutManager)for(var l=0;l<e.length;l++){var p=this.view.getState(e[l]),q=this.getCellGeometry(e[l]);if(null!=p&&null!=q){var u=Math.round(q.width-p.width/this.view.scale),c=Math.round(q.height-p.height/this.view.scale);if(0!=c||0!=u){var f=this.model.getParent(e[l]),g=this.layoutManager.getLayout(f); +null==g?null!=k&&this.isMoveCellsEvent(k)&&this.moveSiblings(p,f,u,c):null!=k&&mxEvent.isAltDown(k)||g.constructor!=mxStackLayout||g.resizeLast||this.resizeParentStacks(f,g,u,c)}}}}finally{this.model.endUpdate()}this.isEnabled()&&this.setSelectionCells(e)}}; +Graph.prototype.moveSiblings=function(a,b,e,d){this.model.beginUpdate();try{var k=this.getCellsBeyond(a.x,a.y,b,!0,!0);for(b=0;b<k.length;b++)if(k[b]!=a.cell){var l=this.view.getState(k[b]),p=this.getCellGeometry(k[b]);null!=l&&null!=p&&(p=p.clone(),p.translate(Math.round(e*Math.max(0,Math.min(1,(l.x-a.x)/a.width))),Math.round(d*Math.max(0,Math.min(1,(l.y-a.y)/a.height)))),this.model.setGeometry(k[b],p))}}finally{this.model.endUpdate()}}; +Graph.prototype.resizeParentStacks=function(a,b,e,d){if(null!=this.layoutManager&&null!=b&&b.constructor==mxStackLayout&&!b.resizeLast){this.model.beginUpdate();try{for(var k=b.horizontal;null!=a&&null!=b&&b.constructor==mxStackLayout&&b.horizontal==k&&!b.resizeLast;){var l=this.getCellGeometry(a),p=this.view.getState(a);null!=p&&null!=l&&(l=l.clone(),b.horizontal?l.width+=e+Math.min(0,p.width/this.view.scale-l.width):l.height+=d+Math.min(0,p.height/this.view.scale-l.height),this.model.setGeometry(a, +l));a=this.model.getParent(a);b=this.layoutManager.getLayout(a)}}finally{this.model.endUpdate()}}};Graph.prototype.isContainer=function(a){var b=this.view.getState(a),b=null!=b?b.style:this.getCellStyle(a);return this.isSwimlane(a)?"0"!=b.container:"1"==b.container};Graph.prototype.isCellConnectable=function(a){var b=this.view.getState(a),b=null!=b?b.style:this.getCellStyle(a);return null!=b.connectable?"0"!=b.connectable:mxGraph.prototype.isCellConnectable.apply(this,arguments)}; +Graph.prototype.selectAll=function(a){a=a||this.getDefaultParent();this.isCellLocked(a)||mxGraph.prototype.selectAll.apply(this,arguments)};Graph.prototype.selectCells=function(a,b,e){e=e||this.getDefaultParent();this.isCellLocked(e)||mxGraph.prototype.selectCells.apply(this,arguments)};Graph.prototype.getSwimlaneAt=function(a,b,e){e=e||this.getDefaultParent();return this.isCellLocked(e)?null:mxGraph.prototype.getSwimlaneAt.apply(this,arguments)}; +Graph.prototype.isCellFoldable=function(a){var b=this.view.getState(a),b=null!=b?b.style:this.getCellStyle(a);return this.foldingEnabled&&!this.isCellLocked(a)&&(this.isContainer(a)&&"0"!=b.collapsible||!this.isContainer(a)&&"1"==b.collapsible)};Graph.prototype.reset=function(){this.isEditing()&&this.stopEditing(!0);this.escape();this.isSelectionEmpty()||this.clearSelection()}; +Graph.prototype.zoom=function(a,b){a=Math.max(.01,Math.min(this.view.scale*a,160))/this.view.scale;mxGraph.prototype.zoom.apply(this,arguments)};Graph.prototype.zoomIn=function(){.15>this.view.scale?this.zoom((this.view.scale+.01)/this.view.scale):this.zoom(Math.round(this.view.scale*this.zoomFactor*20)/20/this.view.scale)};Graph.prototype.zoomOut=function(){.15>=this.view.scale?this.zoom((this.view.scale-.01)/this.view.scale):this.zoom(Math.round(1/this.zoomFactor*this.view.scale*20)/20/this.view.scale)}; +Graph.prototype.getTooltipForCell=function(a){var b="";if(mxUtils.isNode(a.value)){var e=a.value.getAttribute("tooltip");if(null!=e)null!=e&&this.isReplacePlaceholders(a)&&(e=this.replacePlaceholders(a,e)),b=this.sanitizeHtml(e);else{e=this.builtInProperties;a=a.value.attributes;var d=[];this.isEnabled()&&e.push("link");for(var k=0;k<a.length;k++)0>mxUtils.indexOf(e,a[k].nodeName)&&0<a[k].nodeValue.length&&d.push({name:a[k].nodeName,value:a[k].nodeValue});d.sort(function(a,b){return a.name<b.name? +-1:a.name>b.name?1:0});for(k=0;k<d.length;k++)"link"==d[k].name&&this.isCustomLink(d[k].value)||(b+=("link"!=d[k].name?"<b>"+d[k].name+":</b> ":"")+mxUtils.htmlEntities(d[k].value)+"\n");0<b.length&&(b=b.substring(0,b.length-1),mxClient.IS_SVG&&(b='<div style="max-width:360px;">'+b+"</div>"))}}return b};Graph.prototype.stringToBytes=function(a){for(var b=Array(a.length),e=0;e<a.length;e++)b[e]=a.charCodeAt(e);return b}; +Graph.prototype.bytesToString=function(a){for(var b=Array(a.length),e=0;e<a.length;e++)b[e]=String.fromCharCode(a[e]);return b.join("")};Graph.prototype.compressNode=function(a){return this.compress(this.zapGremlins(mxUtils.getXml(a)))};Graph.prototype.compress=function(a){if(null==a||0==a.length||"undefined"===typeof pako)return a;a=this.bytesToString(pako.deflateRaw(encodeURIComponent(a)));return window.btoa?btoa(a):Base64.encode(a,!0)}; +Graph.prototype.decompress=function(a){if(null==a||0==a.length||"undefined"===typeof pako)return a;a=window.atob?atob(a):Base64.decode(a,!0);return this.zapGremlins(decodeURIComponent(this.bytesToString(pako.inflateRaw(a))))};Graph.prototype.zapGremlins=function(a){for(var b=[],e=0;e<a.length;e++){var d=a.charCodeAt(e);(32<=d||9==d||10==d||13==d)&&b.push(a.charAt(e))}return b.join("")};HoverIcons=function(a){this.graph=a;this.init()};HoverIcons.prototype.arrowSpacing=2; +HoverIcons.prototype.updateDelay=500;HoverIcons.prototype.activationDelay=140;HoverIcons.prototype.currentState=null;HoverIcons.prototype.activeArrow=null;HoverIcons.prototype.inactiveOpacity=15;HoverIcons.prototype.cssCursor="copy";HoverIcons.prototype.checkCollisions=!0;HoverIcons.prototype.arrowFill="#29b6f2"; +HoverIcons.prototype.triangleUp=mxClient.IS_SVG?Graph.createSvgImage(18,28,'<path d="m 6 26 L 12 26 L 12 12 L 18 12 L 9 1 L 1 12 L 6 12 z" stroke="#fff" fill="'+HoverIcons.prototype.arrowFill+'"/>'):new mxImage(IMAGE_PATH+"/triangle-up.png",26,14);HoverIcons.prototype.triangleRight=mxClient.IS_SVG?Graph.createSvgImage(26,18,'<path d="m 1 6 L 14 6 L 14 1 L 26 9 L 14 18 L 14 12 L 1 12 z" stroke="#fff" fill="'+HoverIcons.prototype.arrowFill+'"/>'):new mxImage(IMAGE_PATH+"/triangle-right.png",14,26); +HoverIcons.prototype.triangleDown=mxClient.IS_SVG?Graph.createSvgImage(18,26,'<path d="m 6 1 L 6 14 L 1 14 L 9 26 L 18 14 L 12 14 L 12 1 z" stroke="#fff" fill="'+HoverIcons.prototype.arrowFill+'"/>'):new mxImage(IMAGE_PATH+"/triangle-down.png",26,14);HoverIcons.prototype.triangleLeft=mxClient.IS_SVG?Graph.createSvgImage(28,18,'<path d="m 1 9 L 12 1 L 12 6 L 26 6 L 26 12 L 12 12 L 12 18 z" stroke="#fff" fill="'+HoverIcons.prototype.arrowFill+'"/>'):new mxImage(IMAGE_PATH+"/triangle-left.png",14,26); +HoverIcons.prototype.roundDrop=mxClient.IS_SVG?Graph.createSvgImage(26,26,'<circle cx="13" cy="13" r="12" stroke="#fff" fill="'+HoverIcons.prototype.arrowFill+'"/>'):new mxImage(IMAGE_PATH+"/round-drop.png",26,26); +HoverIcons.prototype.refreshTarget=new mxImage(mxClient.IS_SVG?"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACYAAAAmCAYAAACoPemuAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBNYWNpbnRvc2giIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NDQxNERDRTU1QjY1MTFFNDkzNTRFQTVEMTdGMTdBQjciIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NDQxNERDRTY1QjY1MTFFNDkzNTRFQTVEMTdGMTdBQjciPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo0NDE0RENFMzVCNjUxMUU0OTM1NEVBNUQxN0YxN0FCNyIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo0NDE0RENFNDVCNjUxMUU0OTM1NEVBNUQxN0YxN0FCNyIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PsvuX50AAANaSURBVHja7FjRZ1tRGD9ZJ1NCyIQSwrivI4Q8hCpjlFDyFEoYfSp9Ko1QWnmo0If+BSXkIfo0QirTMUpeGo2EPfWllFYjZMLKLDJn53d3biU337m5J223bPbxk5t7v+/c3/2+73znO8fDOWezKM/YjMpz68Lj8ejY+QTeCCwLxOS9qPxtyN+6wAeBTwJ31CCO0cJDjXBGBN4LfIepSwykTUT1bgpuib0SONIgo8KRHOtRiCFcvUcgZeGrHPNBxLIyFPyRgTGz0xLbegJCdmzpElue5KlAIMDX19d5uVzm5+fnfDAYmMA17uEZdOx2Yvb/sHlu2S0xwymn5ufneTab5b1ej08S6EAXNrDd2dnhiUTim21MvMtwQ6yiIrWwsMDPzs64rsBmf3/fvM7n89TYlUnEllSkQqEQv7q64g+Vk5MTVXosORErU0Zer5f0FEIlw2N6MxwO82QyaXql2+2SxDqdjopYWUUsqEp45IldqtWq6UWVh/1+P7+8vCTJ4QMUJSRIEXuneoH96w8PDyeWAnhSJfCqwm6NIlaklFdXV0cGhRcQ2mlJQXK5nMq2YPEZbnteU1U2lUqN/D84OGD9fl+5fgnSrFarsUwmw0qlEru4uBjTicViTk3Cr27HSnxR+Doyz0ZE1CAWiUTusbu7y9rttlZv5fP5WDQavYfIMba4uEipfhF8XtqJoZXx/uH+sC/4vPg7OljZZQbsCmLtYzc3N6zRaJhotVrmfx0xDINtbm6athYUeXpHdbBNaqZUKpWxWXV7e2vex+xaWVnhc3NzjrPUXgexyCt0m67LBV7uJMITjqRE4o8tZeg8FPpFitgapYxiOC0poFgsji1jKNo6BZZckrAGUtJsNk1vqAihCBcKhTE7hNWhqw2qFnGy5UFOUYJVIJ1OjzSE+BCEilon0URavRmBqnbbQ00AXbm+vnZc9O1tj72OnQoc2+cwygRkb2+P1et17ZoEm3g87lRmjgWZ00kbXkNuse6/Bu2wlegIxfb2tuvWGroO4bO2c4bbzUh60mxDXm1sbJhhxkQYnhS4h2fUZoRAWnf7lv8N27f8P7Xhnekjgpk+VKGOoQbsiY+hhhtF3YO7twIJ+ULvUGv+GQ2fQEvWxI/THNx5/p/BaspPAQYAqStgiSQwCDoAAAAASUVORK5CYII=":IMAGE_PATH+ +"/refresh.png",38,38);HoverIcons.prototype.tolerance=mxClient.IS_TOUCH?6:0; HoverIcons.prototype.init=function(){this.arrowUp=this.createArrow(this.triangleUp,mxResources.get("plusTooltip"));this.arrowRight=this.createArrow(this.triangleRight,mxResources.get("plusTooltip"));this.arrowDown=this.createArrow(this.triangleDown,mxResources.get("plusTooltip"));this.arrowLeft=this.createArrow(this.triangleLeft,mxResources.get("plusTooltip"));this.elts=[this.arrowUp,this.arrowRight,this.arrowDown,this.arrowLeft];this.repaintHandler=mxUtils.bind(this,function(){this.repaint()});this.graph.selectionModel.addListener(mxEvent.CHANGE, this.repaintHandler);this.graph.model.addListener(mxEvent.CHANGE,this.repaintHandler);this.graph.view.addListener(mxEvent.SCALE_AND_TRANSLATE,this.repaintHandler);this.graph.view.addListener(mxEvent.TRANSLATE,this.repaintHandler);this.graph.view.addListener(mxEvent.SCALE,this.repaintHandler);this.graph.view.addListener(mxEvent.DOWN,this.repaintHandler);this.graph.view.addListener(mxEvent.UP,this.repaintHandler);this.graph.addListener(mxEvent.ROOT,this.repaintHandler);this.graph.addListener(mxEvent.ESCAPE, -mxUtils.bind(this,function(){this.mouseDownPoint=null}));mxEvent.addListener(this.graph.container,"mouseleave",mxUtils.bind(this,function(a){null!=a.relatedTarget&&mxEvent.getSource(a)==this.graph.container&&this.setDisplay("none")}));this.graph.addListener(mxEvent.START_EDITING,mxUtils.bind(this,function(a){this.reset()}));var a=this.graph.click;this.graph.click=mxUtils.bind(this,function(d){a.apply(this.graph,arguments);null==this.currentState||this.graph.isCellSelected(this.currentState.cell)|| -!mxEvent.isTouchEvent(d.getEvent())||this.graph.model.isVertex(d.getCell())||this.reset()});var d=!1;this.graph.addMouseListener({mouseDown:mxUtils.bind(this,function(a,b){d=!1;var e=b.getEvent();if(this.isResetEvent(e))this.reset();else if(!this.isActive()){var m=this.getState(b.getState());null==m&&mxEvent.isTouchEvent(e)||this.update(m)}this.setDisplay("none")}),mouseMove:mxUtils.bind(this,function(a,b){var e=b.getEvent();this.isResetEvent(e)?this.reset():this.graph.isMouseDown||mxEvent.isTouchEvent(e)|| -this.update(this.getState(b.getState()),b.getGraphX(),b.getGraphY());null!=this.graph.connectionHandler&&null!=this.graph.connectionHandler.shape&&(d=!0)}),mouseUp:mxUtils.bind(this,function(a,b){var e=b.getEvent();mxUtils.convertPoint(this.graph.container,mxEvent.getClientX(e),mxEvent.getClientY(e));this.isResetEvent(e)?this.reset():this.isActive()&&!d&&null!=this.mouseDownPoint?this.click(this.currentState,this.getDirection(),b):this.isActive()?1==this.graph.getSelectionCount()&&this.graph.model.isEdge(this.graph.getSelectionCell())? -this.reset():this.update(this.getState(this.graph.view.getState(this.graph.getCellAt(b.getGraphX(),b.getGraphY())))):mxEvent.isTouchEvent(e)||null!=this.bbox&&mxUtils.contains(this.bbox,b.getGraphX(),b.getGraphY())?(this.setDisplay(""),this.repaint()):mxEvent.isTouchEvent(e)||this.reset();d=!1;this.resetActiveArrow()})})};HoverIcons.prototype.isResetEvent=function(a,d){return mxEvent.isAltDown(a)||null==this.activeArrow&&mxEvent.isShiftDown(a)||mxEvent.isMetaDown(a)||mxEvent.isPopupTrigger(a)&&!mxEvent.isControlDown(a)}; -HoverIcons.prototype.createArrow=function(a,d){var e=null;mxClient.IS_IE&&!mxClient.IS_SVG?(mxClient.IS_IE6&&"CSS1Compat"!=document.compatMode?(e=document.createElement(mxClient.VML_PREFIX+":image"),e.setAttribute("src",a.src),e.style.borderStyle="none"):(e=document.createElement("div"),e.style.backgroundImage="url("+a.src+")",e.style.backgroundPosition="center",e.style.backgroundRepeat="no-repeat"),e.style.width=a.width+4+"px",e.style.height=a.height+4+"px",e.style.display=mxClient.IS_QUIRKS?"inline": -"inline-block"):(e=mxUtils.createImage(a.src),e.style.width=a.width+"px",e.style.height=a.height+"px",e.style.padding=this.tolerance+"px");null!=d&&e.setAttribute("title",d);e.style.position="absolute";e.style.cursor=this.cssCursor;mxEvent.addGestureListeners(e,mxUtils.bind(this,function(a){null==this.currentState||this.isResetEvent(a)||(this.mouseDownPoint=mxUtils.convertPoint(this.graph.container,mxEvent.getClientX(a),mxEvent.getClientY(a)),this.drag(a,this.mouseDownPoint.x,this.mouseDownPoint.y), +mxUtils.bind(this,function(){this.mouseDownPoint=null}));mxEvent.addListener(this.graph.container,"mouseleave",mxUtils.bind(this,function(a){null!=a.relatedTarget&&mxEvent.getSource(a)==this.graph.container&&this.setDisplay("none")}));this.graph.addListener(mxEvent.START_EDITING,mxUtils.bind(this,function(a){this.reset()}));var a=this.graph.click;this.graph.click=mxUtils.bind(this,function(b){a.apply(this.graph,arguments);null==this.currentState||this.graph.isCellSelected(this.currentState.cell)|| +!mxEvent.isTouchEvent(b.getEvent())||this.graph.model.isVertex(b.getCell())||this.reset()});var b=!1;this.graph.addMouseListener({mouseDown:mxUtils.bind(this,function(a,d){b=!1;var e=d.getEvent();if(this.isResetEvent(e))this.reset();else if(!this.isActive()){var l=this.getState(d.getState());null==l&&mxEvent.isTouchEvent(e)||this.update(l)}this.setDisplay("none")}),mouseMove:mxUtils.bind(this,function(a,d){var e=d.getEvent();this.isResetEvent(e)?this.reset():this.graph.isMouseDown||mxEvent.isTouchEvent(e)|| +this.update(this.getState(d.getState()),d.getGraphX(),d.getGraphY());null!=this.graph.connectionHandler&&null!=this.graph.connectionHandler.shape&&(b=!0)}),mouseUp:mxUtils.bind(this,function(a,d){var e=d.getEvent();mxUtils.convertPoint(this.graph.container,mxEvent.getClientX(e),mxEvent.getClientY(e));this.isResetEvent(e)?this.reset():this.isActive()&&!b&&null!=this.mouseDownPoint?this.click(this.currentState,this.getDirection(),d):this.isActive()?1==this.graph.getSelectionCount()&&this.graph.model.isEdge(this.graph.getSelectionCell())? +this.reset():this.update(this.getState(this.graph.view.getState(this.graph.getCellAt(d.getGraphX(),d.getGraphY())))):mxEvent.isTouchEvent(e)||null!=this.bbox&&mxUtils.contains(this.bbox,d.getGraphX(),d.getGraphY())?(this.setDisplay(""),this.repaint()):mxEvent.isTouchEvent(e)||this.reset();b=!1;this.resetActiveArrow()})})};HoverIcons.prototype.isResetEvent=function(a,b){return mxEvent.isAltDown(a)||null==this.activeArrow&&mxEvent.isShiftDown(a)||mxEvent.isMetaDown(a)||mxEvent.isPopupTrigger(a)&&!mxEvent.isControlDown(a)}; +HoverIcons.prototype.createArrow=function(a,b){var e=null;mxClient.IS_IE&&!mxClient.IS_SVG?(mxClient.IS_IE6&&"CSS1Compat"!=document.compatMode?(e=document.createElement(mxClient.VML_PREFIX+":image"),e.setAttribute("src",a.src),e.style.borderStyle="none"):(e=document.createElement("div"),e.style.backgroundImage="url("+a.src+")",e.style.backgroundPosition="center",e.style.backgroundRepeat="no-repeat"),e.style.width=a.width+4+"px",e.style.height=a.height+4+"px",e.style.display=mxClient.IS_QUIRKS?"inline": +"inline-block"):(e=mxUtils.createImage(a.src),e.style.width=a.width+"px",e.style.height=a.height+"px",e.style.padding=this.tolerance+"px");null!=b&&e.setAttribute("title",b);e.style.position="absolute";e.style.cursor=this.cssCursor;mxEvent.addGestureListeners(e,mxUtils.bind(this,function(a){null==this.currentState||this.isResetEvent(a)||(this.mouseDownPoint=mxUtils.convertPoint(this.graph.container,mxEvent.getClientX(a),mxEvent.getClientY(a)),this.drag(a,this.mouseDownPoint.x,this.mouseDownPoint.y), this.activeArrow=e,this.setDisplay("none"),mxEvent.consume(a))}));mxEvent.redirectMouseEvents(e,this.graph,this.currentState);mxEvent.addListener(e,"mouseenter",mxUtils.bind(this,function(a){mxEvent.isMouseEvent(a)&&(null!=this.activeArrow&&this.activeArrow!=e&&mxUtils.setOpacity(this.activeArrow,this.inactiveOpacity),this.graph.connectionHandler.constraintHandler.reset(),mxUtils.setOpacity(e,100),this.activeArrow=e)}));mxEvent.addListener(e,"mouseleave",mxUtils.bind(this,function(a){this.graph.isMouseDown|| this.resetActiveArrow()}));return e};HoverIcons.prototype.resetActiveArrow=function(){null!=this.activeArrow&&(mxUtils.setOpacity(this.activeArrow,this.inactiveOpacity),this.activeArrow=null)};HoverIcons.prototype.getDirection=function(){var a=mxConstants.DIRECTION_EAST;this.activeArrow==this.arrowUp?a=mxConstants.DIRECTION_NORTH:this.activeArrow==this.arrowDown?a=mxConstants.DIRECTION_SOUTH:this.activeArrow==this.arrowLeft&&(a=mxConstants.DIRECTION_WEST);return a}; -HoverIcons.prototype.visitNodes=function(a){for(var d=0;d<this.elts.length;d++)null!=this.elts[d]&&a(this.elts[d])};HoverIcons.prototype.removeNodes=function(){this.visitNodes(function(a){null!=a.parentNode&&a.parentNode.removeChild(a)})};HoverIcons.prototype.setDisplay=function(a){this.visitNodes(function(d){d.style.display=a})};HoverIcons.prototype.isActive=function(){return null!=this.activeArrow&&null!=this.currentState}; -HoverIcons.prototype.drag=function(a,d,e){this.graph.popupMenuHandler.hideMenu();this.graph.stopEditing(!1);null!=this.currentState&&(this.graph.connectionHandler.start(this.currentState,d,e),this.graph.isMouseTrigger=mxEvent.isMouseEvent(a),this.graph.isMouseDown=!0,d=this.graph.selectionCellsHandler.getHandler(this.currentState.cell),null!=d&&d.setHandlesVisible(!1),d=this.graph.connectionHandler.edgeState,null!=a&&mxEvent.isShiftDown(a)&&mxEvent.isControlDown(a)&&null!=d&&"orthogonalEdgeStyle"=== -mxUtils.getValue(d.style,mxConstants.STYLE_EDGE,null)&&(a=this.getDirection(),d.cell.style=mxUtils.setStyle(d.cell.style,"sourcePortConstraint",a),d.style.sourcePortConstraint=a))};HoverIcons.prototype.getStateAt=function(a,d,e){return this.graph.view.getState(this.graph.getCellAt(d,e))}; -HoverIcons.prototype.click=function(a,d,e){var b=e.getEvent(),h=e.getGraphX(),m=e.getGraphY(),h=this.getStateAt(a,h,m);null==h||!this.graph.model.isEdge(h.cell)||mxEvent.isControlDown(b)||h.getVisibleTerminalState(!0)!=a&&h.getVisibleTerminalState(!1)!=a?null!=a&&(a=this.graph.connectVertex(a.cell,d,this.graph.defaultEdgeLength,b),this.graph.selectCellsForConnectVertex(a,b,this),2==a.length&&this.graph.model.isVertex(a[1])?(this.graph.setSelectionCell(a[1]),mxEvent.isTouchEvent(b)?this.update(this.getState(this.graph.view.getState(a[1]))): -this.reset(),this.graph.scrollCellToVisible(a[1])):this.graph.setSelectionCells(a)):(this.graph.setSelectionCell(h.cell),this.reset());e.consume()};HoverIcons.prototype.reset=function(a){null!=a&&!a||null==this.updateThread||window.clearTimeout(this.updateThread);this.activeArrow=this.currentState=this.mouseDownPoint=null;this.removeNodes();this.bbox=null}; +HoverIcons.prototype.visitNodes=function(a){for(var b=0;b<this.elts.length;b++)null!=this.elts[b]&&a(this.elts[b])};HoverIcons.prototype.removeNodes=function(){this.visitNodes(function(a){null!=a.parentNode&&a.parentNode.removeChild(a)})};HoverIcons.prototype.setDisplay=function(a){this.visitNodes(function(b){b.style.display=a})};HoverIcons.prototype.isActive=function(){return null!=this.activeArrow&&null!=this.currentState}; +HoverIcons.prototype.drag=function(a,b,e){this.graph.popupMenuHandler.hideMenu();this.graph.stopEditing(!1);null!=this.currentState&&(this.graph.connectionHandler.start(this.currentState,b,e),this.graph.isMouseTrigger=mxEvent.isMouseEvent(a),this.graph.isMouseDown=!0,b=this.graph.selectionCellsHandler.getHandler(this.currentState.cell),null!=b&&b.setHandlesVisible(!1),b=this.graph.connectionHandler.edgeState,null!=a&&mxEvent.isShiftDown(a)&&mxEvent.isControlDown(a)&&null!=b&&"orthogonalEdgeStyle"=== +mxUtils.getValue(b.style,mxConstants.STYLE_EDGE,null)&&(a=this.getDirection(),b.cell.style=mxUtils.setStyle(b.cell.style,"sourcePortConstraint",a),b.style.sourcePortConstraint=a))};HoverIcons.prototype.getStateAt=function(a,b,e){return this.graph.view.getState(this.graph.getCellAt(b,e))}; +HoverIcons.prototype.click=function(a,b,e){var d=e.getEvent(),k=e.getGraphX(),l=e.getGraphY(),k=this.getStateAt(a,k,l);null==k||!this.graph.model.isEdge(k.cell)||mxEvent.isControlDown(d)||k.getVisibleTerminalState(!0)!=a&&k.getVisibleTerminalState(!1)!=a?null!=a&&(a=this.graph.connectVertex(a.cell,b,this.graph.defaultEdgeLength,d),this.graph.selectCellsForConnectVertex(a,d,this),2==a.length&&this.graph.model.isVertex(a[1])?(this.graph.setSelectionCell(a[1]),mxEvent.isTouchEvent(d)?this.update(this.getState(this.graph.view.getState(a[1]))): +this.reset(),this.graph.scrollCellToVisible(a[1])):this.graph.setSelectionCells(a)):(this.graph.setSelectionCell(k.cell),this.reset());e.consume()};HoverIcons.prototype.reset=function(a){null!=a&&!a||null==this.updateThread||window.clearTimeout(this.updateThread);this.activeArrow=this.currentState=this.mouseDownPoint=null;this.removeNodes();this.bbox=null}; HoverIcons.prototype.repaint=function(){this.bbox=null;if(null!=this.currentState){this.currentState=this.getState(this.currentState);if(null!=this.currentState&&this.graph.model.isVertex(this.currentState.cell)&&this.graph.isCellConnectable(this.currentState.cell)){var a=mxRectangle.fromRectangle(this.currentState);null!=this.currentState.shape&&null!=this.currentState.shape.boundingBox&&(a=mxRectangle.fromRectangle(this.currentState.shape.boundingBox));a.grow(this.graph.tolerance);a.grow(this.arrowSpacing); -var d=this.graph.selectionCellsHandler.getHandler(this.currentState.cell);null!=d&&(a.x-=d.horizontalOffset/2,a.y-=d.verticalOffset/2,a.width+=d.horizontalOffset,a.height+=d.verticalOffset,null!=d.rotationShape&&null!=d.rotationShape.node&&"hidden"!=d.rotationShape.node.style.visibility&&"none"!=d.rotationShape.node.style.display&&null!=d.rotationShape.boundingBox&&a.add(d.rotationShape.boundingBox));this.arrowUp.style.left=Math.round(this.currentState.getCenterX()-this.triangleUp.width/2-this.tolerance)+ +var b=this.graph.selectionCellsHandler.getHandler(this.currentState.cell);null!=b&&(a.x-=b.horizontalOffset/2,a.y-=b.verticalOffset/2,a.width+=b.horizontalOffset,a.height+=b.verticalOffset,null!=b.rotationShape&&null!=b.rotationShape.node&&"hidden"!=b.rotationShape.node.style.visibility&&"none"!=b.rotationShape.node.style.display&&null!=b.rotationShape.boundingBox&&a.add(b.rotationShape.boundingBox));this.arrowUp.style.left=Math.round(this.currentState.getCenterX()-this.triangleUp.width/2-this.tolerance)+ "px";this.arrowUp.style.top=Math.round(a.y-this.triangleUp.height-this.tolerance)+"px";mxUtils.setOpacity(this.arrowUp,this.inactiveOpacity);this.arrowRight.style.left=Math.round(a.x+a.width-this.tolerance)+"px";this.arrowRight.style.top=Math.round(this.currentState.getCenterY()-this.triangleRight.height/2-this.tolerance)+"px";mxUtils.setOpacity(this.arrowRight,this.inactiveOpacity);this.arrowDown.style.left=this.arrowUp.style.left;this.arrowDown.style.top=Math.round(a.y+a.height-this.tolerance)+ -"px";mxUtils.setOpacity(this.arrowDown,this.inactiveOpacity);this.arrowLeft.style.left=Math.round(a.x-this.triangleLeft.width-this.tolerance)+"px";this.arrowLeft.style.top=this.arrowRight.style.top;mxUtils.setOpacity(this.arrowLeft,this.inactiveOpacity);if(this.checkCollisions){var d=this.graph.getCellAt(a.x+a.width+this.triangleRight.width/2,this.currentState.getCenterY()),e=this.graph.getCellAt(a.x-this.triangleLeft.width/2,this.currentState.getCenterY()),b=this.graph.getCellAt(this.currentState.getCenterX(), -a.y-this.triangleUp.height/2),a=this.graph.getCellAt(this.currentState.getCenterX(),a.y+a.height+this.triangleDown.height/2);null!=d&&d==e&&e==b&&b==a&&(a=b=e=d=null);var h=this.graph.getCellGeometry(this.currentState.cell),m=mxUtils.bind(this,function(a,d){var b=this.graph.model.isVertex(a)&&this.graph.getCellGeometry(a);null!=a&&!this.graph.model.isAncestor(a,this.currentState.cell)&&(null==b||null==h||b.height<6*h.height&&b.width<6*h.width)?d.style.visibility="hidden":d.style.visibility="visible"}); -m(d,this.arrowRight);m(e,this.arrowLeft);m(b,this.arrowUp);m(a,this.arrowDown)}else this.arrowLeft.style.visibility="visible",this.arrowRight.style.visibility="visible",this.arrowUp.style.visibility="visible",this.arrowDown.style.visibility="visible";this.graph.tooltipHandler.isEnabled()?(this.arrowLeft.setAttribute("title",mxResources.get("plusTooltip")),this.arrowRight.setAttribute("title",mxResources.get("plusTooltip")),this.arrowUp.setAttribute("title",mxResources.get("plusTooltip")),this.arrowDown.setAttribute("title", +"px";mxUtils.setOpacity(this.arrowDown,this.inactiveOpacity);this.arrowLeft.style.left=Math.round(a.x-this.triangleLeft.width-this.tolerance)+"px";this.arrowLeft.style.top=this.arrowRight.style.top;mxUtils.setOpacity(this.arrowLeft,this.inactiveOpacity);if(this.checkCollisions){var b=this.graph.getCellAt(a.x+a.width+this.triangleRight.width/2,this.currentState.getCenterY()),e=this.graph.getCellAt(a.x-this.triangleLeft.width/2,this.currentState.getCenterY()),d=this.graph.getCellAt(this.currentState.getCenterX(), +a.y-this.triangleUp.height/2),a=this.graph.getCellAt(this.currentState.getCenterX(),a.y+a.height+this.triangleDown.height/2);null!=b&&b==e&&e==d&&d==a&&(a=d=e=b=null);var k=this.graph.getCellGeometry(this.currentState.cell),l=mxUtils.bind(this,function(a,b){var d=this.graph.model.isVertex(a)&&this.graph.getCellGeometry(a);null!=a&&!this.graph.model.isAncestor(a,this.currentState.cell)&&(null==d||null==k||d.height<6*k.height&&d.width<6*k.width)?b.style.visibility="hidden":b.style.visibility="visible"}); +l(b,this.arrowRight);l(e,this.arrowLeft);l(d,this.arrowUp);l(a,this.arrowDown)}else this.arrowLeft.style.visibility="visible",this.arrowRight.style.visibility="visible",this.arrowUp.style.visibility="visible",this.arrowDown.style.visibility="visible";this.graph.tooltipHandler.isEnabled()?(this.arrowLeft.setAttribute("title",mxResources.get("plusTooltip")),this.arrowRight.setAttribute("title",mxResources.get("plusTooltip")),this.arrowUp.setAttribute("title",mxResources.get("plusTooltip")),this.arrowDown.setAttribute("title", mxResources.get("plusTooltip"))):(this.arrowLeft.removeAttribute("title"),this.arrowRight.removeAttribute("title"),this.arrowUp.removeAttribute("title"),this.arrowDown.removeAttribute("title"))}else this.reset();null!=this.currentState&&(this.bbox=this.computeBoundingBox(),null!=this.bbox&&this.bbox.grow(10))}}; -HoverIcons.prototype.computeBoundingBox=function(){var a=this.graph.model.isEdge(this.currentState.cell)?null:mxRectangle.fromRectangle(this.currentState);this.visitNodes(function(d){null!=d.parentNode&&(d=new mxRectangle(d.offsetLeft,d.offsetTop,d.offsetWidth,d.offsetHeight),null==a?a=d:a.add(d))});return a}; -HoverIcons.prototype.getState=function(a){if(null!=a){a=a.cell;if(this.graph.getModel().isVertex(a)&&!this.graph.isCellConnectable(a)){var d=this.graph.getModel().getParent(a);this.graph.getModel().isVertex(d)&&this.graph.isCellConnectable(d)&&(a=d)}if(this.graph.isCellLocked(a)||this.graph.model.isEdge(a))a=null;a=this.graph.view.getState(a)}return a}; -HoverIcons.prototype.update=function(a,d,e){if(this.graph.connectionArrowsEnabled){var b=null;this.prev!=a||this.isActive()?(this.startTime=(new Date).getTime(),this.prev=a,b=0,null!=this.updateThread&&window.clearTimeout(this.updateThread),null!=a&&(this.updateThread=window.setTimeout(mxUtils.bind(this,function(){this.isActive()||this.graph.isMouseDown||this.graph.panningHandler.isActive()||(this.prev=a,this.update(a,d,e))}),this.updateDelay+10))):null!=this.startTime&&(b=(new Date).getTime()-this.startTime); -this.setDisplay("");null!=this.currentState&&this.currentState!=a&&b<this.activationDelay&&null!=this.bbox&&!mxUtils.contains(this.bbox,d,e)?this.reset(!1):(null!=this.currentState||b>this.activationDelay)&&this.currentState!=a&&(b>this.updateDelay&&null!=a||null==this.bbox||null==d||null==e||!mxUtils.contains(this.bbox,d,e))&&(null!=a&&this.graph.isEnabled()?(this.removeNodes(),this.setCurrentState(a),this.repaint(),this.graph.connectionHandler.constraintHandler.currentFocus!=a&&this.graph.connectionHandler.constraintHandler.reset()): +HoverIcons.prototype.computeBoundingBox=function(){var a=this.graph.model.isEdge(this.currentState.cell)?null:mxRectangle.fromRectangle(this.currentState);this.visitNodes(function(b){null!=b.parentNode&&(b=new mxRectangle(b.offsetLeft,b.offsetTop,b.offsetWidth,b.offsetHeight),null==a?a=b:a.add(b))});return a}; +HoverIcons.prototype.getState=function(a){if(null!=a){a=a.cell;if(this.graph.getModel().isVertex(a)&&!this.graph.isCellConnectable(a)){var b=this.graph.getModel().getParent(a);this.graph.getModel().isVertex(b)&&this.graph.isCellConnectable(b)&&(a=b)}if(this.graph.isCellLocked(a)||this.graph.model.isEdge(a))a=null;a=this.graph.view.getState(a)}return a}; +HoverIcons.prototype.update=function(a,b,e){if(this.graph.connectionArrowsEnabled){var d=null;this.prev!=a||this.isActive()?(this.startTime=(new Date).getTime(),this.prev=a,d=0,null!=this.updateThread&&window.clearTimeout(this.updateThread),null!=a&&(this.updateThread=window.setTimeout(mxUtils.bind(this,function(){this.isActive()||this.graph.isMouseDown||this.graph.panningHandler.isActive()||(this.prev=a,this.update(a,b,e))}),this.updateDelay+10))):null!=this.startTime&&(d=(new Date).getTime()-this.startTime); +this.setDisplay("");null!=this.currentState&&this.currentState!=a&&d<this.activationDelay&&null!=this.bbox&&!mxUtils.contains(this.bbox,b,e)?this.reset(!1):(null!=this.currentState||d>this.activationDelay)&&this.currentState!=a&&(d>this.updateDelay&&null!=a||null==this.bbox||null==b||null==e||!mxUtils.contains(this.bbox,b,e))&&(null!=a&&this.graph.isEnabled()?(this.removeNodes(),this.setCurrentState(a),this.repaint(),this.graph.connectionHandler.constraintHandler.currentFocus!=a&&this.graph.connectionHandler.constraintHandler.reset()): this.reset())}else this.reset()};HoverIcons.prototype.setCurrentState=function(a){"eastwest"!=a.style.portConstraint&&(this.graph.container.appendChild(this.arrowUp),this.graph.container.appendChild(this.arrowDown));this.graph.container.appendChild(this.arrowRight);this.graph.container.appendChild(this.arrowLeft);this.currentState=a}; -(function(){var a=mxGraphView.prototype.resetValidationState;mxGraphView.prototype.resetValidationState=function(){a.apply(this,arguments);this.validEdges=[]};var d=mxGraphView.prototype.validateCellState;mxGraphView.prototype.validateCellState=function(a,c){var b=this.getState(a);null!=b&&this.graph.model.isEdge(b.cell)&&null!=b.style&&1!=b.style[mxConstants.STYLE_CURVED]&&!b.invalid&&this.updateLineJumps(b)&&this.graph.cellRenderer.redraw(b,!1,this.isRendering());b=d.apply(this,arguments);null!= -b&&this.graph.model.isEdge(b.cell)&&1!=b.style[mxConstants.STYLE_CURVED]&&this.validEdges.push(b);return b};var e=mxCellRenderer.prototype.isShapeInvalid;mxCellRenderer.prototype.isShapeInvalid=function(a,c){return e.apply(this,arguments)||null!=a.routedPoints&&null!=c.routedPoints&&!mxUtils.equalPoints(c.routedPoints,a.routedPoints)};var b=mxGraphView.prototype.updateCellState;mxGraphView.prototype.updateCellState=function(a){b.apply(this,arguments);this.graph.model.isEdge(a.cell)&&1!=a.style[mxConstants.STYLE_CURVED]&& -this.updateLineJumps(a)};mxGraphView.prototype.updateLineJumps=function(a){var c=a.absolutePoints;if(Graph.lineJumpsEnabled){var d=null!=a.routedPoints,b=null;if(null!=c&&null!=this.validEdges&&"none"!==mxUtils.getValue(a.style,"jumpStyle","none")){for(var e=function(c,d,f){var e=new mxPoint(d,f);e.type=c;b.push(e);e=null!=a.routedPoints?a.routedPoints[b.length-1]:null;return null==e||e.type!=c||e.x!=d||e.y!=f},r=.5*this.scale,d=!1,b=[],l=0;l<c.length-1;l++){for(var n=c[l+1],w=c[l],v=[],h=c[l+2];l< -c.length-2&&mxUtils.ptSegDistSq(w.x,w.y,h.x,h.y,n.x,n.y)<1*this.scale*this.scale;)n=h,l++,h=c[l+2];for(var d=e(0,w.x,w.y)||d,y=0;y<this.validEdges.length;y++){var t=this.validEdges[y],q=t.absolutePoints;if(null!=q&&mxUtils.intersects(a,t)&&"1"!=t.style.noJump)for(t=0;t<q.length-1;t++){for(var m=q[t+1],p=q[t],h=q[t+2];t<q.length-2&&mxUtils.ptSegDistSq(p.x,p.y,h.x,h.y,m.x,m.y)<1*this.scale*this.scale;)m=h,t++,h=q[t+2];h=mxUtils.intersection(w.x,w.y,n.x,n.y,p.x,p.y,m.x,m.y);if(null!=h&&(Math.abs(h.x- -p.x)>r||Math.abs(h.y-p.y)>r)&&(Math.abs(h.x-m.x)>r||Math.abs(h.y-m.y)>r)){m=h.x-w.x;p=h.y-w.y;h={distSq:m*m+p*p,x:h.x,y:h.y};for(m=0;m<v.length;m++)if(v[m].distSq>h.distSq){v.splice(m,0,h);h=null;break}null==h||0!=v.length&&v[v.length-1].x===h.x&&v[v.length-1].y===h.y||v.push(h)}}}for(t=0;t<v.length;t++)d=e(1,v[t].x,v[t].y)||d}h=c[c.length-1];d=e(0,h.x,h.y)||d}a.routedPoints=b;return d}return!1};var h=mxConnector.prototype.paintLine;mxConnector.prototype.paintLine=function(a,c,d){this.routedPoints= -null!=this.state?this.state.routedPoints:null;if(this.outline||null==this.state||null==this.style||null==this.state.routedPoints||0==this.state.routedPoints.length)h.apply(this,arguments);else{var b=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2,f=(parseInt(mxUtils.getValue(this.style,"jumpSize",Graph.defaultJumpSize))-2)/2+this.strokewidth,e=mxUtils.getValue(this.style,"jumpStyle","none"),l,n=!0,w=null,v=null;l=[];var q=null;a.begin();for(var y=0;y<this.state.routedPoints.length;y++){var t= -this.state.routedPoints[y],z=new mxPoint(t.x/this.scale,t.y/this.scale);0==y?z=c[0]:y==this.state.routedPoints.length-1&&(z=c[c.length-1]);var m=!1;if(null!=w&&1==t.type){var p=this.state.routedPoints[y+1],t=p.x/this.scale-z.x,p=p.y/this.scale-z.y,t=t*t+p*p;null==q&&(q=new mxPoint(z.x-w.x,z.y-w.y),v=Math.sqrt(q.x*q.x+q.y*q.y),q.x=q.x*f/v,q.y=q.y*f/v);t>f*f&&0<v&&(t=w.x-z.x,p=w.y-z.y,t=t*t+p*p,t>f*f&&(m=new mxPoint(z.x-q.x,z.y-q.y),t=new mxPoint(z.x+q.x,z.y+q.y),l.push(m),this.addPoints(a,l,d,b,!1, -null,n),l=0>Math.round(q.x)||0==Math.round(q.x)&&0>=Math.round(q.y)?1:-1,n=!1,"sharp"==e?(a.lineTo(m.x-q.y*l,m.y+q.x*l),a.lineTo(t.x-q.y*l,t.y+q.x*l),a.lineTo(t.x,t.y)):"arc"==e?(l*=1.3,a.curveTo(m.x-q.y*l,m.y+q.x*l,t.x-q.y*l,t.y+q.x*l,t.x,t.y)):(a.moveTo(t.x,t.y),n=!0),l=[t],m=!0))}else q=null;m||(l.push(z),w=z)}this.addPoints(a,l,d,b,!1,null,n);a.stroke()}};var m=mxGraphView.prototype.updateFloatingTerminalPoint;mxGraphView.prototype.updateFloatingTerminalPoint=function(a,c,d,b){if(null==c||null== -a||"1"!=c.style.snapToPoint&&"1"!=a.style.snapToPoint)m.apply(this,arguments);else{c=this.getTerminalPort(a,c,b);var f=this.getNextPoint(a,d,b),e=this.graph.isOrthogonal(a),g=mxUtils.toRadians(Number(c.style[mxConstants.STYLE_ROTATION]||"0")),n=new mxPoint(c.getCenterX(),c.getCenterY());if(0!=g)var h=Math.cos(-g),v=Math.sin(-g),f=mxUtils.getRotatedPoint(f,h,v,n);h=parseFloat(a.style[mxConstants.STYLE_PERIMETER_SPACING]||0);h+=parseFloat(a.style[b?mxConstants.STYLE_SOURCE_PERIMETER_SPACING:mxConstants.STYLE_TARGET_PERIMETER_SPACING]|| -0);f=this.getPerimeterPoint(c,f,0==g&&e,h);0!=g&&(h=Math.cos(g),v=Math.sin(g),f=mxUtils.getRotatedPoint(f,h,v,n));a.setAbsoluteTerminalPoint(this.snapToAnchorPoint(a,c,d,b,f),b)}};mxGraphView.prototype.snapToAnchorPoint=function(a,c,d,b,e){if(null!=c&&null!=a){a=this.graph.getAllConnectionConstraints(c);b=d=null;if(null!=a)for(var f=0;f<a.length;f++){var g=this.graph.getConnectionPoint(c,a[f]);if(null!=g){var k=(g.x-e.x)*(g.x-e.x)+(g.y-e.y)*(g.y-e.y);if(null==b||k<b)d=g,b=k}}null!=d&&(e=d)}return e}; -var p=mxStencil.prototype.evaluateTextAttribute;mxStencil.prototype.evaluateTextAttribute=function(a,c,d){var b=p.apply(this,arguments);"1"==a.getAttribute("placeholders")&&null!=d.state&&(b=d.state.view.graph.replacePlaceholders(d.state.cell,b));return b};var q=mxCellRenderer.prototype.createShape;mxCellRenderer.prototype.createShape=function(a){if(null!=a.style&&"undefined"!==typeof pako){var c=mxUtils.getValue(a.style,mxConstants.STYLE_SHAPE,null);if(null!=c&&"stencil("==c.substring(0,8))try{var d= -c.substring(8,c.length-1),b=mxUtils.parseXml(a.view.graph.decompress(d));return new mxShape(new mxStencil(b.documentElement))}catch(k){null!=window.console&&console.log("Error in shape: "+k)}}return q.apply(this,arguments)}})();mxStencilRegistry.libraries={};mxStencilRegistry.dynamicLoading=!0;mxStencilRegistry.allowEval=!0;mxStencilRegistry.packages=[]; -mxStencilRegistry.getStencil=function(a){var d=mxStencilRegistry.stencils[a];if(null==d&&null==mxCellRenderer.defaultShapes[a]&&mxStencilRegistry.dynamicLoading){var e=mxStencilRegistry.getBasenameForStencil(a);if(null!=e){d=mxStencilRegistry.libraries[e];if(null!=d){if(null==mxStencilRegistry.packages[e]){for(var b=0;b<d.length;b++){var h=d[b];if(".xml"==h.toLowerCase().substring(h.length-4,h.length))mxStencilRegistry.loadStencilSet(h,null);else if(".js"==h.toLowerCase().substring(h.length-3,h.length))try{if(mxStencilRegistry.allowEval){var m= -mxUtils.load(h);null!=m&&200<=m.getStatus()&&299>=m.getStatus()&&eval.call(window,m.getText())}}catch(p){null!=window.console&&console.log("error in getStencil:",h,p)}}mxStencilRegistry.packages[e]=1}}else e=e.replace("_-_","_"),mxStencilRegistry.loadStencilSet(STENCIL_PATH+"/"+e+".xml",null);d=mxStencilRegistry.stencils[a]}}return d}; -mxStencilRegistry.getBasenameForStencil=function(a){var d=null;if(null!=a&&(a=a.split("."),0<a.length&&"mxgraph"==a[0]))for(var d=a[1],e=2;e<a.length-1;e++)d+="/"+a[e];return d}; -mxStencilRegistry.loadStencilSet=function(a,d,e,b){var h=mxStencilRegistry.packages[a];if(null!=e&&e||null==h){var m=!1;if(null==h)try{if(b){mxStencilRegistry.loadStencil(a,mxUtils.bind(this,function(b){null!=b&&null!=b.documentElement&&(mxStencilRegistry.packages[a]=b,m=!0,mxStencilRegistry.parseStencilSet(b.documentElement,d,m))}));return}h=mxStencilRegistry.loadStencil(a);mxStencilRegistry.packages[a]=h;m=!0}catch(p){null!=window.console&&console.log("error in loadStencilSet:",a,p)}null!=h&&null!= -h.documentElement&&mxStencilRegistry.parseStencilSet(h.documentElement,d,m)}};mxStencilRegistry.loadStencil=function(a,d){if(null!=d)mxUtils.get(a,mxUtils.bind(this,function(a){d(200<=a.getStatus()&&299>=a.getStatus()?a.getXml():null)}));else return mxUtils.load(a).getXml()};mxStencilRegistry.parseStencilSets=function(a){for(var d=0;d<a.length;d++)mxStencilRegistry.parseStencilSet(mxUtils.parseXml(a[d]).documentElement)}; -mxStencilRegistry.parseStencilSet=function(a,d,e){if("stencils"==a.nodeName)for(var b=a.firstChild;null!=b;)"shapes"==b.nodeName&&mxStencilRegistry.parseStencilSet(b,d,e),b=b.nextSibling;else{e=null!=e?e:!0;var b=a.firstChild,h="";a=a.getAttribute("name");for(null!=a&&(h=a+".");null!=b;){if(b.nodeType==mxConstants.NODETYPE_ELEMENT&&(a=b.getAttribute("name"),null!=a)){var h=h.toLowerCase(),m=a.replace(/ /g,"_");e&&mxStencilRegistry.addStencil(h+m.toLowerCase(),new mxStencil(b));if(null!=d){var p=b.getAttribute("w"), -q=b.getAttribute("h"),p=null==p?80:parseInt(p,10),q=null==q?80:parseInt(q,10);d(h,m,a,p,q)}}b=b.nextSibling}}}; +(function(){var a=mxGraphView.prototype.resetValidationState;mxGraphView.prototype.resetValidationState=function(){a.apply(this,arguments);this.validEdges=[]};var b=mxGraphView.prototype.validateCellState;mxGraphView.prototype.validateCellState=function(a,c){var d=this.getState(a);null!=d&&this.graph.model.isEdge(d.cell)&&null!=d.style&&1!=d.style[mxConstants.STYLE_CURVED]&&!d.invalid&&this.updateLineJumps(d)&&this.graph.cellRenderer.redraw(d,!1,this.isRendering());d=b.apply(this,arguments);null!= +d&&this.graph.model.isEdge(d.cell)&&1!=d.style[mxConstants.STYLE_CURVED]&&this.validEdges.push(d);return d};var e=mxCellRenderer.prototype.isShapeInvalid;mxCellRenderer.prototype.isShapeInvalid=function(a,c){return e.apply(this,arguments)||null!=a.routedPoints&&null!=c.routedPoints&&!mxUtils.equalPoints(c.routedPoints,a.routedPoints)};var d=mxGraphView.prototype.updateCellState;mxGraphView.prototype.updateCellState=function(a){d.apply(this,arguments);this.graph.model.isEdge(a.cell)&&1!=a.style[mxConstants.STYLE_CURVED]&& +this.updateLineJumps(a)};mxGraphView.prototype.updateLineJumps=function(a){var c=a.absolutePoints;if(Graph.lineJumpsEnabled){var b=null!=a.routedPoints,d=null;if(null!=c&&null!=this.validEdges&&"none"!==mxUtils.getValue(a.style,"jumpStyle","none")){for(var e=function(c,b,f){var e=new mxPoint(b,f);e.type=c;d.push(e);e=null!=a.routedPoints?a.routedPoints[d.length-1]:null;return null==e||e.type!=c||e.x!=b||e.y!=f},r=.5*this.scale,b=!1,d=[],h=0;h<c.length-1;h++){for(var m=c[h+1],w=c[h],v=[],k=c[h+2];h< +c.length-2&&mxUtils.ptSegDistSq(w.x,w.y,k.x,k.y,m.x,m.y)<1*this.scale*this.scale;)m=k,h++,k=c[h+2];for(var b=e(0,w.x,w.y)||b,y=0;y<this.validEdges.length;y++){var t=this.validEdges[y],q=t.absolutePoints;if(null!=q&&mxUtils.intersects(a,t)&&"1"!=t.style.noJump)for(t=0;t<q.length-1;t++){for(var l=q[t+1],p=q[t],k=q[t+2];t<q.length-2&&mxUtils.ptSegDistSq(p.x,p.y,k.x,k.y,l.x,l.y)<1*this.scale*this.scale;)l=k,t++,k=q[t+2];k=mxUtils.intersection(w.x,w.y,m.x,m.y,p.x,p.y,l.x,l.y);if(null!=k&&(Math.abs(k.x- +p.x)>r||Math.abs(k.y-p.y)>r)&&(Math.abs(k.x-l.x)>r||Math.abs(k.y-l.y)>r)){l=k.x-w.x;p=k.y-w.y;k={distSq:l*l+p*p,x:k.x,y:k.y};for(l=0;l<v.length;l++)if(v[l].distSq>k.distSq){v.splice(l,0,k);k=null;break}null==k||0!=v.length&&v[v.length-1].x===k.x&&v[v.length-1].y===k.y||v.push(k)}}}for(t=0;t<v.length;t++)b=e(1,v[t].x,v[t].y)||b}k=c[c.length-1];b=e(0,k.x,k.y)||b}a.routedPoints=d;return b}return!1};var k=mxConnector.prototype.paintLine;mxConnector.prototype.paintLine=function(a,c,b){this.routedPoints= +null!=this.state?this.state.routedPoints:null;if(this.outline||null==this.state||null==this.style||null==this.state.routedPoints||0==this.state.routedPoints.length)k.apply(this,arguments);else{var d=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2,f=(parseInt(mxUtils.getValue(this.style,"jumpSize",Graph.defaultJumpSize))-2)/2+this.strokewidth,e=mxUtils.getValue(this.style,"jumpStyle","none"),h,m=!0,w=null,v=null;h=[];var q=null;a.begin();for(var y=0;y<this.state.routedPoints.length;y++){var t= +this.state.routedPoints[y],z=new mxPoint(t.x/this.scale,t.y/this.scale);0==y?z=c[0]:y==this.state.routedPoints.length-1&&(z=c[c.length-1]);var l=!1;if(null!=w&&1==t.type){var p=this.state.routedPoints[y+1],t=p.x/this.scale-z.x,p=p.y/this.scale-z.y,t=t*t+p*p;null==q&&(q=new mxPoint(z.x-w.x,z.y-w.y),v=Math.sqrt(q.x*q.x+q.y*q.y),q.x=q.x*f/v,q.y=q.y*f/v);t>f*f&&0<v&&(t=w.x-z.x,p=w.y-z.y,t=t*t+p*p,t>f*f&&(l=new mxPoint(z.x-q.x,z.y-q.y),t=new mxPoint(z.x+q.x,z.y+q.y),h.push(l),this.addPoints(a,h,b,d,!1, +null,m),h=0>Math.round(q.x)||0==Math.round(q.x)&&0>=Math.round(q.y)?1:-1,m=!1,"sharp"==e?(a.lineTo(l.x-q.y*h,l.y+q.x*h),a.lineTo(t.x-q.y*h,t.y+q.x*h),a.lineTo(t.x,t.y)):"arc"==e?(h*=1.3,a.curveTo(l.x-q.y*h,l.y+q.x*h,t.x-q.y*h,t.y+q.x*h,t.x,t.y)):(a.moveTo(t.x,t.y),m=!0),h=[t],l=!0))}else q=null;l||(h.push(z),w=z)}this.addPoints(a,h,b,d,!1,null,m);a.stroke()}};var l=mxGraphView.prototype.updateFloatingTerminalPoint;mxGraphView.prototype.updateFloatingTerminalPoint=function(a,c,b,d){if(null==c||null== +a||"1"!=c.style.snapToPoint&&"1"!=a.style.snapToPoint)l.apply(this,arguments);else{c=this.getTerminalPort(a,c,d);var f=this.getNextPoint(a,b,d),e=this.graph.isOrthogonal(a),g=mxUtils.toRadians(Number(c.style[mxConstants.STYLE_ROTATION]||"0")),m=new mxPoint(c.getCenterX(),c.getCenterY());if(0!=g)var k=Math.cos(-g),v=Math.sin(-g),f=mxUtils.getRotatedPoint(f,k,v,m);k=parseFloat(a.style[mxConstants.STYLE_PERIMETER_SPACING]||0);k+=parseFloat(a.style[d?mxConstants.STYLE_SOURCE_PERIMETER_SPACING:mxConstants.STYLE_TARGET_PERIMETER_SPACING]|| +0);f=this.getPerimeterPoint(c,f,0==g&&e,k);0!=g&&(k=Math.cos(g),v=Math.sin(g),f=mxUtils.getRotatedPoint(f,k,v,m));a.setAbsoluteTerminalPoint(this.snapToAnchorPoint(a,c,b,d,f),d)}};mxGraphView.prototype.snapToAnchorPoint=function(a,c,b,d,e){if(null!=c&&null!=a){a=this.graph.getAllConnectionConstraints(c);d=b=null;if(null!=a)for(var f=0;f<a.length;f++){var g=this.graph.getConnectionPoint(c,a[f]);if(null!=g){var n=(g.x-e.x)*(g.x-e.x)+(g.y-e.y)*(g.y-e.y);if(null==d||n<d)b=g,d=n}}null!=b&&(e=b)}return e}; +var p=mxStencil.prototype.evaluateTextAttribute;mxStencil.prototype.evaluateTextAttribute=function(a,c,b){var d=p.apply(this,arguments);"1"==a.getAttribute("placeholders")&&null!=b.state&&(d=b.state.view.graph.replacePlaceholders(b.state.cell,d));return d};var q=mxCellRenderer.prototype.createShape;mxCellRenderer.prototype.createShape=function(a){if(null!=a.style&&"undefined"!==typeof pako){var c=mxUtils.getValue(a.style,mxConstants.STYLE_SHAPE,null);if(null!=c&&"stencil("==c.substring(0,8))try{var b= +c.substring(8,c.length-1),d=mxUtils.parseXml(a.view.graph.decompress(b));return new mxShape(new mxStencil(d.documentElement))}catch(n){null!=window.console&&console.log("Error in shape: "+n)}}return q.apply(this,arguments)}})();mxStencilRegistry.libraries={};mxStencilRegistry.dynamicLoading=!0;mxStencilRegistry.allowEval=!0;mxStencilRegistry.packages=[]; +mxStencilRegistry.getStencil=function(a){var b=mxStencilRegistry.stencils[a];if(null==b&&null==mxCellRenderer.defaultShapes[a]&&mxStencilRegistry.dynamicLoading){var e=mxStencilRegistry.getBasenameForStencil(a);if(null!=e){b=mxStencilRegistry.libraries[e];if(null!=b){if(null==mxStencilRegistry.packages[e]){for(var d=0;d<b.length;d++){var k=b[d];if(".xml"==k.toLowerCase().substring(k.length-4,k.length))mxStencilRegistry.loadStencilSet(k,null);else if(".js"==k.toLowerCase().substring(k.length-3,k.length))try{if(mxStencilRegistry.allowEval){var l= +mxUtils.load(k);null!=l&&200<=l.getStatus()&&299>=l.getStatus()&&eval.call(window,l.getText())}}catch(p){null!=window.console&&console.log("error in getStencil:",k,p)}}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("."),0<a.length&&"mxgraph"==a[0]))for(var b=a[1],e=2;e<a.length-1;e++)b+="/"+a[e];return b}; +mxStencilRegistry.loadStencilSet=function(a,b,e,d){var k=mxStencilRegistry.packages[a];if(null!=e&&e||null==k){var l=!1;if(null==k)try{if(d){mxStencilRegistry.loadStencil(a,mxUtils.bind(this,function(d){null!=d&&null!=d.documentElement&&(mxStencilRegistry.packages[a]=d,l=!0,mxStencilRegistry.parseStencilSet(d.documentElement,b,l))}));return}k=mxStencilRegistry.loadStencil(a);mxStencilRegistry.packages[a]=k;l=!0}catch(p){null!=window.console&&console.log("error in loadStencilSet:",a,p)}null!=k&&null!= +k.documentElement&&mxStencilRegistry.parseStencilSet(k.documentElement,b,l)}};mxStencilRegistry.loadStencil=function(a,b){if(null!=b)mxUtils.get(a,mxUtils.bind(this,function(a){b(200<=a.getStatus()&&299>=a.getStatus()?a.getXml():null)}));else return mxUtils.load(a).getXml()};mxStencilRegistry.parseStencilSets=function(a){for(var b=0;b<a.length;b++)mxStencilRegistry.parseStencilSet(mxUtils.parseXml(a[b]).documentElement)}; +mxStencilRegistry.parseStencilSet=function(a,b,e){if("stencils"==a.nodeName)for(var d=a.firstChild;null!=d;)"shapes"==d.nodeName&&mxStencilRegistry.parseStencilSet(d,b,e),d=d.nextSibling;else{e=null!=e?e:!0;var d=a.firstChild,k="";a=a.getAttribute("name");for(null!=a&&(k=a+".");null!=d;){if(d.nodeType==mxConstants.NODETYPE_ELEMENT&&(a=d.getAttribute("name"),null!=a)){var k=k.toLowerCase(),l=a.replace(/ /g,"_");e&&mxStencilRegistry.addStencil(k+l.toLowerCase(),new mxStencil(d));if(null!=b){var p=d.getAttribute("w"), +q=d.getAttribute("h"),p=null==p?80:parseInt(p,10),q=null==q?80:parseInt(q,10);b(k,l,a,p,q)}}d=d.nextSibling}}}; "undefined"!=typeof mxVertexHandler&&function(){function a(){var a=document.createElement("div");a.className="geHint";a.style.whiteSpace="nowrap";a.style.position="absolute";return a}mxConstants.HANDLE_FILLCOLOR="#29b6f2";mxConstants.HANDLE_STROKECOLOR="#0088cf";mxConstants.VERTEX_SELECTION_COLOR="#00a8ff";mxConstants.OUTLINE_COLOR="#00a8ff";mxConstants.OUTLINE_HANDLE_FILLCOLOR="#99ccff";mxConstants.OUTLINE_HANDLE_STROKECOLOR="#00a8ff";mxConstants.CONNECT_HANDLE_FILLCOLOR="#cee7ff";mxConstants.EDGE_SELECTION_COLOR= -"#00a8ff";mxConstants.DEFAULT_VALID_COLOR="#00a8ff";mxConstants.LABEL_HANDLE_FILLCOLOR="#cee7ff";mxConstants.GUIDE_COLOR="#0088cf";mxConstants.HIGHLIGHT_OPACITY=30;mxConstants.HIGHLIGHT_SIZE=5;mxEdgeHandler.prototype.snapToTerminals=!0;mxGraphHandler.prototype.guidesEnabled=!0;mxRubberband.prototype.fadeOut=!0;mxGuide.prototype.isEnabledForEvent=function(a){return!mxEvent.isAltDown(a)};var d=mxConnectionHandler.prototype.isCreateTarget;mxConnectionHandler.prototype.isCreateTarget=function(a){return mxEvent.isControlDown(a)|| -d.apply(this,arguments)};mxConstraintHandler.prototype.createHighlightShape=function(){var a=new mxEllipse(null,this.highlightColor,this.highlightColor,0);a.opacity=mxConstants.HIGHLIGHT_OPACITY;return a};mxConnectionHandler.prototype.livePreview=!0;mxConnectionHandler.prototype.cursor="crosshair";mxConnectionHandler.prototype.createEdgeState=function(a){a=this.graph.createCurrentEdgeStyle();a=this.graph.createEdge(null,null,null,null,null,a);a=new mxCellState(this.graph.view,a,this.graph.getCellStyle(a)); -for(var c in this.graph.currentEdgeStyle)a.style[c]=this.graph.currentEdgeStyle[c];return a};var e=mxConnectionHandler.prototype.createShape;mxConnectionHandler.prototype.createShape=function(){var a=e.apply(this,arguments);a.isDashed="1"==this.graph.currentEdgeStyle[mxConstants.STYLE_DASHED];return a};mxConnectionHandler.prototype.updatePreview=function(a){};var b=mxConnectionHandler.prototype.createMarker;mxConnectionHandler.prototype.createMarker=function(){var a=b.apply(this,arguments),c=a.getCell; -a.getCell=mxUtils.bind(this,function(a){var d=c.apply(this,arguments);this.error=null;return d});return a};mxConnectionHandler.prototype.isCellEnabled=function(a){return!this.graph.isCellLocked(a)};Graph.prototype.defaultVertexStyle={};Graph.prototype.defaultEdgeStyle={edgeStyle:"orthogonalEdgeStyle",rounded:"0",jettySize:"auto",orthogonalLoop:"1"};Graph.prototype.createCurrentEdgeStyle=function(){var a="edgeStyle="+(this.currentEdgeStyle.edgeStyle||"none")+";";null!=this.currentEdgeStyle.shape&& +"#00a8ff";mxConstants.DEFAULT_VALID_COLOR="#00a8ff";mxConstants.LABEL_HANDLE_FILLCOLOR="#cee7ff";mxConstants.GUIDE_COLOR="#0088cf";mxConstants.HIGHLIGHT_OPACITY=30;mxConstants.HIGHLIGHT_SIZE=5;mxEdgeHandler.prototype.snapToTerminals=!0;mxGraphHandler.prototype.guidesEnabled=!0;mxRubberband.prototype.fadeOut=!0;mxGuide.prototype.isEnabledForEvent=function(a){return!mxEvent.isAltDown(a)};var b=mxConnectionHandler.prototype.isCreateTarget;mxConnectionHandler.prototype.isCreateTarget=function(a){return mxEvent.isControlDown(a)|| +b.apply(this,arguments)};mxConstraintHandler.prototype.createHighlightShape=function(){var a=new mxEllipse(null,this.highlightColor,this.highlightColor,0);a.opacity=mxConstants.HIGHLIGHT_OPACITY;return a};mxConnectionHandler.prototype.livePreview=!0;mxConnectionHandler.prototype.cursor="crosshair";mxConnectionHandler.prototype.createEdgeState=function(a){a=this.graph.createCurrentEdgeStyle();a=this.graph.createEdge(null,null,null,null,null,a);a=new mxCellState(this.graph.view,a,this.graph.getCellStyle(a)); +for(var c in this.graph.currentEdgeStyle)a.style[c]=this.graph.currentEdgeStyle[c];return a};var e=mxConnectionHandler.prototype.createShape;mxConnectionHandler.prototype.createShape=function(){var a=e.apply(this,arguments);a.isDashed="1"==this.graph.currentEdgeStyle[mxConstants.STYLE_DASHED];return a};mxConnectionHandler.prototype.updatePreview=function(a){};var d=mxConnectionHandler.prototype.createMarker;mxConnectionHandler.prototype.createMarker=function(){var a=d.apply(this,arguments),c=a.getCell; +a.getCell=mxUtils.bind(this,function(a){var b=c.apply(this,arguments);this.error=null;return b});return a};mxConnectionHandler.prototype.isCellEnabled=function(a){return!this.graph.isCellLocked(a)};Graph.prototype.defaultVertexStyle={};Graph.prototype.defaultEdgeStyle={edgeStyle:"orthogonalEdgeStyle",rounded:"0",jettySize:"auto",orthogonalLoop:"1"};Graph.prototype.createCurrentEdgeStyle=function(){var a="edgeStyle="+(this.currentEdgeStyle.edgeStyle||"none")+";";null!=this.currentEdgeStyle.shape&& (a+="shape="+this.currentEdgeStyle.shape+";");null!=this.currentEdgeStyle.curved&&(a+="curved="+this.currentEdgeStyle.curved+";");null!=this.currentEdgeStyle.rounded&&(a+="rounded="+this.currentEdgeStyle.rounded+";");null!=this.currentEdgeStyle.comic&&(a+="comic="+this.currentEdgeStyle.comic+";");null!=this.currentEdgeStyle.jumpStyle&&(a+="jumpStyle="+this.currentEdgeStyle.jumpStyle+";");null!=this.currentEdgeStyle.jumpSize&&(a+="jumpSize="+this.currentEdgeStyle.jumpSize+";");"elbowEdgeStyle"==this.currentEdgeStyle.edgeStyle&& null!=this.currentEdgeStyle.elbow&&(a+="elbow="+this.currentEdgeStyle.elbow+";");return a=null!=this.currentEdgeStyle.html?a+("html="+this.currentEdgeStyle.html+";"):a+"html=1;"};Graph.prototype.getPagePadding=function(){return new mxPoint(0,0)};Graph.prototype.loadStylesheet=function(){var a=null!=this.themes?this.themes[this.defaultThemeName]:mxStyleRegistry.dynamicLoading?mxUtils.load(STYLE_PATH+"/default.xml").getDocumentElement():null;null!=a&&(new mxCodec(a.ownerDocument)).decode(a,this.getStylesheet())}; -Graph.prototype.importGraphModel=function(a,c,d,b){c=null!=c?c:0;d=null!=d?d:0;var f=[],e=new mxGraphModel;(new mxCodec(a.ownerDocument)).decode(a,e);a=e.getChildCount(e.getRoot());this.model.getChildCount(this.model.getRoot());this.model.beginUpdate();try{for(var g={},k=0;k<a;k++){var l=e.getChildAt(e.getRoot(),k);if(1!=a||this.isCellLocked(this.getDefaultParent()))l=this.importCells([l],0,0,this.model.getRoot(),null,g)[0],n=this.model.getChildren(l),this.moveCells(n,c,d),f=f.concat(n);else var n= -e.getChildren(l),f=f.concat(this.importCells(n,c,d,this.getDefaultParent(),null,g))}if(b){this.isGridEnabled()&&(c=this.snap(c),d=this.snap(d));var t=this.getBoundingBoxFromGeometry(f,!0);null!=t&&this.moveCells(f,c-t.x,d-t.y)}}finally{this.model.endUpdate()}return f};Graph.prototype.getAllConnectionConstraints=function(a,c){if(null!=a){var d=mxUtils.getValue(a.style,"points",null);if(null!=d){var b=[];try{for(var f=JSON.parse(d),d=0;d<f.length;d++){var e=f[d];b.push(new mxConnectionConstraint(new mxPoint(e[0], -e[1]),2<e.length?"0"!=e[2]:!0))}}catch(E){}return b}if(null!=a.shape)if(null!=a.shape.stencil){if(null!=a.shape.stencil)return a.shape.stencil.constraints}else if(null!=a.shape.constraints)return a.shape.constraints}return null};Graph.prototype.flipEdge=function(a){if(null!=a){var c=this.view.getState(a),c=null!=c?c.style:this.getCellStyle(a);null!=c&&(c=mxUtils.getValue(c,mxConstants.STYLE_ELBOW,mxConstants.ELBOW_HORIZONTAL)==mxConstants.ELBOW_HORIZONTAL?mxConstants.ELBOW_VERTICAL:mxConstants.ELBOW_HORIZONTAL, -this.setCellStyles(mxConstants.STYLE_ELBOW,c,[a]))}};Graph.prototype.isValidRoot=function(a){for(var c=this.model.getChildCount(a),d=0,b=0;b<c;b++){var f=this.model.getChildAt(a,b);this.model.isVertex(f)&&(f=this.getCellGeometry(f),null==f||f.relative||d++)}return 0<d||this.isContainer(a)};Graph.prototype.isValidDropTarget=function(a){var c=this.view.getState(a),c=null!=c?c.style:this.getCellStyle(a);return"1"!=mxUtils.getValue(c,"part","0")&&(this.isContainer(a)||mxGraph.prototype.isValidDropTarget.apply(this, -arguments)&&"0"!=mxUtils.getValue(c,"dropTarget","1"))};Graph.prototype.createGroupCell=function(){var a=mxGraph.prototype.createGroupCell.apply(this,arguments);a.setStyle("group");return a};Graph.prototype.isExtendParentsOnAdd=function(a){var c=mxGraph.prototype.isExtendParentsOnAdd.apply(this,arguments);if(c&&null!=a&&null!=this.layoutManager){var d=this.model.getParent(a);null!=d&&(d=this.layoutManager.getLayout(d),null!=d&&d.constructor==mxStackLayout&&(c=!1))}return c};Graph.prototype.getPreferredSizeForCell= -function(a){var c=mxGraph.prototype.getPreferredSizeForCell.apply(this,arguments);null!=c&&(c.width+=10,c.height+=4,this.gridEnabled&&(c.width=this.snap(c.width),c.height=this.snap(c.height)));return c};Graph.prototype.turnShapes=function(a){var c=this.getModel(),d=[];c.beginUpdate();try{for(var b=0;b<a.length;b++){var f=a[b];if(c.isEdge(f)){var e=c.getTerminal(f,!0),g=c.getTerminal(f,!1);c.setTerminal(f,g,!0);c.setTerminal(f,e,!1);var k=c.getGeometry(f);if(null!=k){k=k.clone();null!=k.points&&k.points.reverse(); -var l=k.getTerminalPoint(!0),n=k.getTerminalPoint(!1);k.setTerminalPoint(l,!1);k.setTerminalPoint(n,!0);c.setGeometry(f,k);var t=this.view.getState(f),r=this.view.getState(e),y=this.view.getState(g);if(null!=t){var F=null!=r?this.getConnectionConstraint(t,r,!0):null,h=null!=y?this.getConnectionConstraint(t,y,!1):null;this.setConnectionConstraint(f,e,!0,h);this.setConnectionConstraint(f,g,!1,F)}d.push(f)}}else if(c.isVertex(f)&&(k=this.getCellGeometry(f),null!=k)){k=k.clone();k.x+=k.width/2-k.height/ -2;k.y+=k.height/2-k.width/2;var v=k.width;k.width=k.height;k.height=v;c.setGeometry(f,k);var q=this.view.getState(f);if(null!=q){var w=q.style[mxConstants.STYLE_DIRECTION]||"east";"east"==w?w="south":"south"==w?w="west":"west"==w?w="north":"north"==w&&(w="east");this.setCellStyles(mxConstants.STYLE_DIRECTION,w,[f])}d.push(f)}}}finally{c.endUpdate()}return d};Graph.prototype.stencilHasPlaceholders=function(a){if(null!=a&&null!=a.fgNode)for(a=a.fgNode.firstChild;null!=a;){if("text"==a.nodeName&&"1"== -a.getAttribute("placeholders"))return!0;a=a.nextSibling}return!1};Graph.prototype.processChange=function(a){mxGraph.prototype.processChange.apply(this,arguments);if(a instanceof mxValueChange&&null!=a.cell&&null!=a.cell.value&&"object"==typeof a.cell.value){var c=this.model.getDescendants(a.cell);if(0<c.length)for(var d=0;d<c.length;d++){var b=this.view.getState(c[d]);null!=b&&null!=b.shape&&null!=b.shape.stencil&&this.stencilHasPlaceholders(b.shape.stencil)?this.removeStateForCell(c[d]):this.isReplacePlaceholders(c[d])&& -this.view.invalidate(c[d],!1,!1)}}};Graph.prototype.replaceElement=function(a,c){for(var d=a.ownerDocument.createElement(null!=c?c:"span"),b=Array.prototype.slice.call(a.attributes);attr=b.pop();)d.setAttribute(attr.nodeName,attr.nodeValue);d.innerHTML=a.innerHTML;a.parentNode.replaceChild(d,a)};Graph.prototype.updateLabelElements=function(a,c,d){a=null!=a?a:this.getSelectionCells();for(var b=document.createElement("div"),f=0;f<a.length;f++)if(this.isHtmlLabel(a[f])){var e=this.convertValueToString(a[f]); -if(null!=e&&0<e.length){b.innerHTML=e;for(var g=b.getElementsByTagName(null!=d?d:"*"),k=0;k<g.length;k++)c(g[k]);b.innerHTML!=e&&this.cellLabelChanged(a[f],b.innerHTML)}}};Graph.prototype.cellLabelChanged=function(a,c,d){c=this.zapGremlins(c);this.model.beginUpdate();try{if(null!=a.value&&"object"==typeof a.value){if(this.isReplacePlaceholders(a)&&null!=a.getAttribute("placeholder"))for(var b=a.getAttribute("placeholder"),f=a;null!=f;){if(f==this.model.getRoot()||null!=f.value&&"object"==typeof f.value&& -f.hasAttribute(b)){this.setAttributeForCell(f,b,c);break}f=this.model.getParent(f)}var e=a.value.cloneNode(!0);e.setAttribute("label",c);c=e}mxGraph.prototype.cellLabelChanged.apply(this,arguments)}finally{this.model.endUpdate()}};Graph.prototype.cellsRemoved=function(a){if(null!=a){for(var c=new mxDictionary,d=0;d<a.length;d++)c.put(a[d],!0);for(var b=[],d=0;d<a.length;d++){var f=this.model.getParent(a[d]);null==f||c.get(f)||(c.put(f,!0),b.push(f))}for(d=0;d<b.length;d++)if(f=this.view.getState(b[d]), +Graph.prototype.importGraphModel=function(a,c,b,d){c=null!=c?c:0;b=null!=b?b:0;var f=[],e=new mxGraphModel;(new mxCodec(a.ownerDocument)).decode(a,e);a=e.getChildCount(e.getRoot());this.model.getChildCount(this.model.getRoot());this.model.beginUpdate();try{for(var g={},h=0;h<a;h++){var n=e.getChildAt(e.getRoot(),h);if(1!=a||this.isCellLocked(this.getDefaultParent()))n=this.importCells([n],0,0,this.model.getRoot(),null,g)[0],m=this.model.getChildren(n),this.moveCells(m,c,b),f=f.concat(m);else var m= +e.getChildren(n),f=f.concat(this.importCells(m,c,b,this.getDefaultParent(),null,g))}if(d){this.isGridEnabled()&&(c=this.snap(c),b=this.snap(b));var t=this.getBoundingBoxFromGeometry(f,!0);null!=t&&this.moveCells(f,c-t.x,b-t.y)}}finally{this.model.endUpdate()}return f};Graph.prototype.getAllConnectionConstraints=function(a,c){if(null!=a){var b=mxUtils.getValue(a.style,"points",null);if(null!=b){var d=[];try{for(var f=JSON.parse(b),b=0;b<f.length;b++){var e=f[b];d.push(new mxConnectionConstraint(new mxPoint(e[0], +e[1]),2<e.length?"0"!=e[2]:!0))}}catch(E){}return d}if(null!=a.shape)if(null!=a.shape.stencil){if(null!=a.shape.stencil)return a.shape.stencil.constraints}else if(null!=a.shape.constraints)return a.shape.constraints}return null};Graph.prototype.flipEdge=function(a){if(null!=a){var c=this.view.getState(a),c=null!=c?c.style:this.getCellStyle(a);null!=c&&(c=mxUtils.getValue(c,mxConstants.STYLE_ELBOW,mxConstants.ELBOW_HORIZONTAL)==mxConstants.ELBOW_HORIZONTAL?mxConstants.ELBOW_VERTICAL:mxConstants.ELBOW_HORIZONTAL, +this.setCellStyles(mxConstants.STYLE_ELBOW,c,[a]))}};Graph.prototype.isValidRoot=function(a){for(var c=this.model.getChildCount(a),b=0,d=0;d<c;d++){var f=this.model.getChildAt(a,d);this.model.isVertex(f)&&(f=this.getCellGeometry(f),null==f||f.relative||b++)}return 0<b||this.isContainer(a)};Graph.prototype.isValidDropTarget=function(a){var c=this.view.getState(a),c=null!=c?c.style:this.getCellStyle(a);return"1"!=mxUtils.getValue(c,"part","0")&&(this.isContainer(a)||mxGraph.prototype.isValidDropTarget.apply(this, +arguments)&&"0"!=mxUtils.getValue(c,"dropTarget","1"))};Graph.prototype.createGroupCell=function(){var a=mxGraph.prototype.createGroupCell.apply(this,arguments);a.setStyle("group");return a};Graph.prototype.isExtendParentsOnAdd=function(a){var c=mxGraph.prototype.isExtendParentsOnAdd.apply(this,arguments);if(c&&null!=a&&null!=this.layoutManager){var b=this.model.getParent(a);null!=b&&(b=this.layoutManager.getLayout(b),null!=b&&b.constructor==mxStackLayout&&(c=!1))}return c};Graph.prototype.getPreferredSizeForCell= +function(a){var c=mxGraph.prototype.getPreferredSizeForCell.apply(this,arguments);null!=c&&(c.width+=10,c.height+=4,this.gridEnabled&&(c.width=this.snap(c.width),c.height=this.snap(c.height)));return c};Graph.prototype.turnShapes=function(a){var c=this.getModel(),b=[];c.beginUpdate();try{for(var d=0;d<a.length;d++){var f=a[d];if(c.isEdge(f)){var e=c.getTerminal(f,!0),g=c.getTerminal(f,!1);c.setTerminal(f,g,!0);c.setTerminal(f,e,!1);var h=c.getGeometry(f);if(null!=h){h=h.clone();null!=h.points&&h.points.reverse(); +var n=h.getTerminalPoint(!0),m=h.getTerminalPoint(!1);h.setTerminalPoint(n,!1);h.setTerminalPoint(m,!0);c.setGeometry(f,h);var t=this.view.getState(f),r=this.view.getState(e),y=this.view.getState(g);if(null!=t){var F=null!=r?this.getConnectionConstraint(t,r,!0):null,k=null!=y?this.getConnectionConstraint(t,y,!1):null;this.setConnectionConstraint(f,e,!0,k);this.setConnectionConstraint(f,g,!1,F)}b.push(f)}}else if(c.isVertex(f)&&(h=this.getCellGeometry(f),null!=h)){h=h.clone();h.x+=h.width/2-h.height/ +2;h.y+=h.height/2-h.width/2;var v=h.width;h.width=h.height;h.height=v;c.setGeometry(f,h);var q=this.view.getState(f);if(null!=q){var w=q.style[mxConstants.STYLE_DIRECTION]||"east";"east"==w?w="south":"south"==w?w="west":"west"==w?w="north":"north"==w&&(w="east");this.setCellStyles(mxConstants.STYLE_DIRECTION,w,[f])}b.push(f)}}}finally{c.endUpdate()}return b};Graph.prototype.stencilHasPlaceholders=function(a){if(null!=a&&null!=a.fgNode)for(a=a.fgNode.firstChild;null!=a;){if("text"==a.nodeName&&"1"== +a.getAttribute("placeholders"))return!0;a=a.nextSibling}return!1};Graph.prototype.processChange=function(a){mxGraph.prototype.processChange.apply(this,arguments);if(a instanceof mxValueChange&&null!=a.cell&&null!=a.cell.value&&"object"==typeof a.cell.value){var c=this.model.getDescendants(a.cell);if(0<c.length)for(var b=0;b<c.length;b++){var d=this.view.getState(c[b]);null!=d&&null!=d.shape&&null!=d.shape.stencil&&this.stencilHasPlaceholders(d.shape.stencil)?this.removeStateForCell(c[b]):this.isReplacePlaceholders(c[b])&& +this.view.invalidate(c[b],!1,!1)}}};Graph.prototype.replaceElement=function(a,c){for(var b=a.ownerDocument.createElement(null!=c?c:"span"),d=Array.prototype.slice.call(a.attributes);attr=d.pop();)b.setAttribute(attr.nodeName,attr.nodeValue);b.innerHTML=a.innerHTML;a.parentNode.replaceChild(b,a)};Graph.prototype.updateLabelElements=function(a,c,b){a=null!=a?a:this.getSelectionCells();for(var d=document.createElement("div"),f=0;f<a.length;f++)if(this.isHtmlLabel(a[f])){var e=this.convertValueToString(a[f]); +if(null!=e&&0<e.length){d.innerHTML=e;for(var g=d.getElementsByTagName(null!=b?b:"*"),h=0;h<g.length;h++)c(g[h]);d.innerHTML!=e&&this.cellLabelChanged(a[f],d.innerHTML)}}};Graph.prototype.cellLabelChanged=function(a,c,b){c=this.zapGremlins(c);this.model.beginUpdate();try{if(null!=a.value&&"object"==typeof a.value){if(this.isReplacePlaceholders(a)&&null!=a.getAttribute("placeholder"))for(var d=a.getAttribute("placeholder"),f=a;null!=f;){if(f==this.model.getRoot()||null!=f.value&&"object"==typeof f.value&& +f.hasAttribute(d)){this.setAttributeForCell(f,d,c);break}f=this.model.getParent(f)}var e=a.value.cloneNode(!0);e.setAttribute("label",c);c=e}mxGraph.prototype.cellLabelChanged.apply(this,arguments)}finally{this.model.endUpdate()}};Graph.prototype.cellsRemoved=function(a){if(null!=a){for(var c=new mxDictionary,b=0;b<a.length;b++)c.put(a[b],!0);for(var d=[],b=0;b<a.length;b++){var f=this.model.getParent(a[b]);null==f||c.get(f)||(c.put(f,!0),d.push(f))}for(b=0;b<d.length;b++)if(f=this.view.getState(d[b]), null!=f&&(this.model.isEdge(f.cell)||this.model.isVertex(f.cell))&&this.isCellDeletable(f.cell)){var e=mxUtils.getValue(f.style,mxConstants.STYLE_STROKECOLOR,mxConstants.NONE),g=mxUtils.getValue(f.style,mxConstants.STYLE_FILLCOLOR,mxConstants.NONE);if(e==mxConstants.NONE&&g==mxConstants.NONE){e=!0;for(g=0;g<this.model.getChildCount(f.cell)&&e;g++)c.get(this.model.getChildAt(f.cell,g))||(e=!1);e&&a.push(f.cell)}}}mxGraph.prototype.cellsRemoved.apply(this,arguments)};Graph.prototype.removeCellsAfterUngroup= -function(a){for(var c=[],d=0;d<a.length;d++)if(this.isCellDeletable(a[d])){var b=this.view.getState(a[d]);if(null!=b){var f=mxUtils.getValue(b.style,mxConstants.STYLE_STROKECOLOR,mxConstants.NONE),b=mxUtils.getValue(b.style,mxConstants.STYLE_FILLCOLOR,mxConstants.NONE);f==mxConstants.NONE&&b==mxConstants.NONE&&c.push(a[d])}}a=c;mxGraph.prototype.removeCellsAfterUngroup.apply(this,arguments)};Graph.prototype.setLinkForCell=function(a,c){this.setAttributeForCell(a,"link",c)};Graph.prototype.setTooltipForCell= -function(a,c){this.setAttributeForCell(a,"tooltip",c)};Graph.prototype.setAttributeForCell=function(a,c,d){var b;null!=a.value&&"object"==typeof a.value?b=a.value.cloneNode(!0):(b=mxUtils.createXmlDocument().createElement("UserObject"),b.setAttribute("label",a.value||""));null!=d&&0<d.length?b.setAttribute(c,d):b.removeAttribute(c);this.model.setValue(a,b)};Graph.prototype.getDropTarget=function(a,c,d,b){this.getModel();if(mxEvent.isAltDown(c))return null;for(var f=0;f<a.length;f++)if(this.model.isEdge(this.model.getParent(a[f])))return null; -return mxGraph.prototype.getDropTarget.apply(this,arguments)};Graph.prototype.click=function(a){mxGraph.prototype.click.call(this,a);this.firstClickState=a.getState();this.firstClickSource=a.getSource()};Graph.prototype.dblClick=function(a,c){if(this.isEnabled()){var d=mxUtils.convertPoint(this.container,mxEvent.getClientX(a),mxEvent.getClientY(a));if(null!=a&&!this.model.isVertex(c)){var b=this.model.isEdge(c)?this.view.getState(c):null,f=mxEvent.getSource(a);this.firstClickState!=b||this.firstClickSource!= -f||null!=b&&null!=b.text&&null!=b.text.node&&(mxUtils.contains(b.text.boundingBox,d.x,d.y)||mxUtils.isAncestorNode(b.text.node,mxEvent.getSource(a)))||(null!=b||this.isCellLocked(this.getDefaultParent()))&&(null==b||this.isCellLocked(b.cell))||!(null!=b||mxClient.IS_VML&&f==this.view.getCanvas()||mxClient.IS_SVG&&f==this.view.getCanvas().ownerSVGElement)||(c=this.addText(d.x,d.y,b))}mxGraph.prototype.dblClick.call(this,a,c)}};Graph.prototype.getInsertPoint=function(){var a=this.getGridSize(),c=this.container.scrollLeft/ -this.view.scale-this.view.translate.x,d=this.container.scrollTop/this.view.scale-this.view.translate.y;if(this.pageVisible)var b=this.getPageLayout(),f=this.getPageSize(),c=Math.max(c,b.x*f.width),d=Math.max(d,b.y*f.height);return new mxPoint(this.snap(c+a),this.snap(d+a))};Graph.prototype.getFreeInsertPoint=function(){var a=this.view,c=this.getGraphBounds(),d=this.getInsertPoint(),b=this.snap(Math.round(Math.max(d.x,c.x/a.scale-a.translate.x+(0==c.width?2*this.gridSize:0)))),a=this.snap(Math.round(Math.max(d.y, -(c.y+c.height)/a.scale-a.translate.y+2*this.gridSize)));return new mxPoint(b,a)};Graph.prototype.isMouseInsertPoint=function(){return!1};Graph.prototype.addText=function(a,c,d){var b=new mxCell;b.value="Text";b.style="text;html=1;resizable=0;points=[];";b.geometry=new mxGeometry(0,0,0,0);b.vertex=!0;if(null!=d){b.style+="align=center;verticalAlign=middle;labelBackgroundColor=#ffffff;";b.geometry.relative=!0;b.connectable=!1;var f=this.view.getRelativePoint(d,a,c);b.geometry.x=Math.round(1E4*f.x)/ -1E4;b.geometry.y=Math.round(f.y);b.geometry.offset=new mxPoint(0,0);var f=this.view.getPoint(d,b.geometry),e=this.view.scale;b.geometry.offset=new mxPoint(Math.round((a-f.x)/e),Math.round((c-f.y)/e))}else b.style+="autosize=1;align=left;verticalAlign=top;spacingTop=-4;",f=this.view.translate,b.geometry.width=40,b.geometry.height=20,b.geometry.x=Math.round(a/this.view.scale)-f.x,b.geometry.y=Math.round(c/this.view.scale)-f.y;this.getModel().beginUpdate();try{this.addCells([b],null!=d?d.cell:null), -this.fireEvent(new mxEventObject("textInserted","cells",[b])),this.autoSizeCell(b)}finally{this.getModel().endUpdate()}return b};Graph.prototype.getAbsoluteUrl=function(a){null!=a&&this.isRelativeUrl(a)&&(a="#"==a.charAt(0)?this.baseUrl+a:"/"==a.charAt(0)?this.domainUrl+a:this.domainPathUrl+a);return a};Graph.prototype.addClickHandler=function(a,c,d){var b=mxUtils.bind(this,function(){var a=this.container.getElementsByTagName("a");if(null!=a)for(var d=0;d<a.length;d++){var b=this.getAbsoluteUrl(a[d].getAttribute("href")); -null!=b&&(a[d].setAttribute("rel",this.linkRelation),a[d].setAttribute("href",b),null!=c&&mxEvent.addGestureListeners(a[d],null,null,c))}});this.model.addListener(mxEvent.CHANGE,b);b();var f=this.container.style.cursor,e=this.getTolerance(),g=this,k={currentState:null,currentLink:null,highlight:null!=a&&""!=a&&a!=mxConstants.NONE?new mxCellHighlight(g,a,4):null,startX:0,startY:0,scrollLeft:0,scrollTop:0,updateCurrentState:function(a){var c=a.sourceState;if(null==c||null==g.getLinkForCell(c.cell))a= -g.getCellAt(a.getGraphX(),a.getGraphY(),null,null,null,function(a,c,d){return null==g.getLinkForCell(a.cell)}),c=g.view.getState(a);c!=this.currentState&&(null!=this.currentState&&this.clear(),this.currentState=c,null!=this.currentState&&this.activate(this.currentState))},mouseDown:function(a,c){this.startX=c.getGraphX();this.startY=c.getGraphY();this.scrollLeft=g.container.scrollLeft;this.scrollTop=g.container.scrollTop;null==this.currentLink&&"auto"==g.container.style.overflow&&(g.container.style.cursor= -"move");this.updateCurrentState(c)},mouseMove:function(a,c){if(g.isMouseDown){if(null!=this.currentLink){var d=Math.abs(this.startX-c.getGraphX()),b=Math.abs(this.startY-c.getGraphY());(d>e||b>e)&&this.clear()}}else{for(d=c.getSource();null!=d&&"a"!=d.nodeName.toLowerCase();)d=d.parentNode;null!=d?this.clear():(null!=g.tooltipHandler&&null!=this.currentLink&&null!=this.currentState&&g.tooltipHandler.reset(c,!0,this.currentState),(null==this.currentState||c.getState()!=this.currentState&&null!=c.sourceState|| -!g.intersects(this.currentState,c.getGraphX(),c.getGraphY()))&&this.updateCurrentState(c))}},mouseUp:function(a,b){for(var f=b.getSource(),k=b.getEvent();null!=f&&"a"!=f.nodeName.toLowerCase();)f=f.parentNode;null==f&&Math.abs(this.scrollLeft-g.container.scrollLeft)<e&&Math.abs(this.scrollTop-g.container.scrollTop)<e&&(null==b.sourceState||!b.isSource(b.sourceState.control))&&((mxEvent.isLeftMouseButton(k)||mxEvent.isMiddleMouseButton(k))&&!mxEvent.isPopupTrigger(k)||mxEvent.isTouchEvent(k))&&(null!= -this.currentLink?(f=g.isBlankLink(this.currentLink),"data:"!==this.currentLink.substring(0,5)&&f||null==c||c(k,this.currentLink),mxEvent.isConsumed(k)||(k=mxEvent.isMiddleMouseButton(k)?"_blank":f?g.linkTarget:"_top",g.openLink(this.currentLink,k),b.consume())):null!=d&&!b.isConsumed()&&Math.abs(this.scrollLeft-g.container.scrollLeft)<e&&Math.abs(this.scrollTop-g.container.scrollTop)<e&&Math.abs(this.startX-b.getGraphX())<e&&Math.abs(this.startY-b.getGraphY())<e&&d(b.getEvent()));this.clear()},activate:function(a){this.currentLink= -g.getAbsoluteUrl(g.getLinkForCell(a.cell));null!=this.currentLink&&(g.container.style.cursor="pointer",null!=this.highlight&&this.highlight.highlight(a))},clear:function(){null!=g.container&&(g.container.style.cursor=f);this.currentLink=this.currentState=null;null!=this.highlight&&this.highlight.hide();null!=g.tooltipHandler&&g.tooltipHandler.hide()}};g.click=function(a){};g.addMouseListener(k);mxEvent.addListener(document,"mouseleave",function(a){k.clear()})};Graph.prototype.duplicateCells=function(a, -c){a=null!=a?a:this.getSelectionCells();c=null!=c?c:!0;a=this.model.getTopmostCells(a);var d=this.getModel(),b=this.gridSize,f=[];d.beginUpdate();try{for(var e=this.cloneCells(a,!1),g=0;g<a.length;g++){var k=d.getParent(a[g]),l=this.moveCells([e[g]],b,b,!1)[0];f.push(l);if(c)d.add(k,e[g]);else{var n=k.getIndex(a[g]);d.add(k,e[g],n+1)}}}finally{d.endUpdate()}return f};Graph.prototype.insertImage=function(a,c,d){if(null!=a){for(var b=this.cellEditor.textarea.getElementsByTagName("img"),f=[],e=0;e<b.length;e++)f.push(b[e]); -document.execCommand("insertimage",!1,a);a=this.cellEditor.textarea.getElementsByTagName("img");if(a.length==f.length+1)for(e=a.length-1;0<=e;e--)if(0==e||a[e]!=f[e-1]){a[e].setAttribute("width",c);a[e].setAttribute("height",d);break}}};Graph.prototype.insertLink=function(a){if(0==a.length)document.execCommand("unlink",!1);else if(mxClient.IS_FF){for(var c=this.cellEditor.textarea.getElementsByTagName("a"),d=[],b=0;b<c.length;b++)d.push(c[b]);document.execCommand("createlink",!1,mxUtils.trim(a)); -c=this.cellEditor.textarea.getElementsByTagName("a");if(c.length==d.length+1)for(b=c.length-1;0<=b;b--)if(c[b]!=d[b-1]){for(c=c[b].getElementsByTagName("a");0<c.length;){for(d=c[0].parentNode;null!=c[0].firstChild;)d.insertBefore(c[0].firstChild,c[0]);d.removeChild(c[0])}break}}else document.execCommand("createlink",!1,mxUtils.trim(a))};Graph.prototype.isCellResizable=function(a){var c=mxGraph.prototype.isCellResizable.apply(this,arguments),d=this.view.getState(a),d=null!=d?d.style:this.getCellStyle(a); -return c||"0"!=mxUtils.getValue(d,mxConstants.STYLE_RESIZABLE,"1")&&"wrap"==d[mxConstants.STYLE_WHITE_SPACE]};Graph.prototype.distributeCells=function(a,c){null==c&&(c=this.getSelectionCells());if(null!=c&&1<c.length){for(var d=[],b=null,f=null,e=0;e<c.length;e++)if(this.getModel().isVertex(c[e])){var g=this.view.getState(c[e]);if(null!=g){var k=a?g.getCenterX():g.getCenterY(),b=null!=b?Math.max(b,k):k,f=null!=f?Math.min(f,k):k;d.push(g)}}if(2<d.length){d.sort(function(c,d){return a?c.x-d.x:c.y-d.y}); -g=this.view.translate;k=this.view.scale;f=f/k-(a?g.x:g.y);b=b/k-(a?g.x:g.y);this.getModel().beginUpdate();try{for(var l=(b-f)/(d.length-1),b=f,e=1;e<d.length-1;e++){var n=this.view.getState(this.model.getParent(d[e].cell)),t=this.getCellGeometry(d[e].cell),b=b+l;null!=t&&null!=n&&(t=t.clone(),a?t.x=Math.round(b-t.width/2)-n.origin.x:t.y=Math.round(b-t.height/2)-n.origin.y,this.getModel().setGeometry(d[e].cell,t))}}finally{this.getModel().endUpdate()}}}return c};Graph.prototype.isCloneEvent=function(a){return mxClient.IS_MAC&& -mxEvent.isMetaDown(a)||mxEvent.isControlDown(a)};Graph.prototype.encodeCells=function(a){for(var c=this.cloneCells(a),d=new mxDictionary,b=0;b<a.length;b++)d.put(a[b],!0);for(b=0;b<c.length;b++){var f=this.view.getState(a[b]);if(null!=f){var e=this.getCellGeometry(c[b]);null==e||!e.relative||this.model.isEdge(a[b])||d.get(this.model.getParent(a[b]))||(e.relative=!1,e.x=f.x/f.view.scale-f.view.translate.x,e.y=f.y/f.view.scale-f.view.translate.y)}}d=new mxCodec;f=new mxGraphModel;e=f.getChildAt(f.getRoot(), -0);for(b=0;b<a.length;b++)f.add(e,c[b]);return d.encode(f)};Graph.prototype.createSvgImageExport=function(){var a=new mxImageExport;a.getLinkForCellState=mxUtils.bind(this,function(a,c){return this.getLinkForCell(a.cell)});return a};Graph.prototype.getSvg=function(a,c,d,b,f,e,g,k,l){var n=this.useCssTransforms;n&&(this.useCssTransforms=!1,this.view.revalidate(),this.sizeDidChange());try{c=null!=c?c:1;d=null!=d?d:0;f=null!=f?f:!0;e=null!=e?e:!0;g=null!=g?g:!0;var t=e||b?this.getGraphBounds():this.getBoundingBox(this.getSelectionCells()); -if(null==t)throw Error(mxResources.get("drawingEmpty"));var r=this.view.scale,y=mxUtils.createXmlDocument(),h=null!=y.createElementNS?y.createElementNS(mxConstants.NS_SVG,"svg"):y.createElement("svg");null!=a&&(null!=h.style?h.style.backgroundColor=a:h.setAttribute("style","background-color:"+a));null==y.createElementNS?(h.setAttribute("xmlns",mxConstants.NS_SVG),h.setAttribute("xmlns:xlink",mxConstants.NS_XLINK)):h.setAttributeNS("http://www.w3.org/2000/xmlns/","xmlns:xlink",mxConstants.NS_XLINK); -a=c/r;var v=Math.max(1,Math.ceil(t.width*a)+2*d),w=Math.max(1,Math.ceil(t.height*a)+2*d);h.setAttribute("version","1.1");h.setAttribute("width",v+"px");h.setAttribute("height",w+"px");h.setAttribute("viewBox",(f?"-0.5 -0.5":"0 0")+" "+v+" "+w);y.appendChild(h);var q=this.createSvgCanvas(h);q.foOffset=f?-.5:0;q.textOffset=f?-.5:0;q.imageOffset=f?-.5:0;q.translate(Math.floor((d/c-t.x)/r),Math.floor((d/c-t.y)/r));var x=document.createElement("textarea"),z=q.createAlternateContent;q.createAlternateContent= -function(a,c,d,b,f,e,g,k,l,n,t,r,y){var h=this.state;if(null!=this.foAltText&&(0==b||0!=h.fontSize&&e.length<5*b/h.fontSize)){var v=this.createElement("text");v.setAttribute("x",Math.round(b/2));v.setAttribute("y",Math.round((f+h.fontSize)/2));v.setAttribute("fill",h.fontColor||"black");v.setAttribute("text-anchor","middle");v.setAttribute("font-size",Math.round(h.fontSize)+"px");v.setAttribute("font-family",h.fontFamily);(h.fontStyle&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD&&v.setAttribute("font-weight", -"bold");(h.fontStyle&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC&&v.setAttribute("font-style","italic");(h.fontStyle&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE&&v.setAttribute("text-decoration","underline");try{return x.innerHTML=e,v.textContent=x.value,v}catch(Ca){return z.apply(this,arguments)}}else return z.apply(this,arguments)};var m=this.backgroundImage;if(null!=m){c=r/c;var F=this.view.translate,p=new mxRectangle(F.x*c,F.y*c,m.width*c,m.height*c);mxUtils.intersects(t,p)&& -q.image(F.x,F.y,m.width,m.height,m.src,!0)}q.scale(a);q.textEnabled=g;k=null!=k?k:this.createSvgImageExport();var B=k.drawCellState;k.drawCellState=function(a,c){for(var d=a.view.graph,b=d.isCellSelected(a.cell),f=d.model.getParent(a.cell);!e&&!b&&null!=f;)b=d.isCellSelected(f),f=d.model.getParent(f);(e||b)&&B.apply(this,arguments)};k.drawState(this.getView().getState(this.model.root),q);null!=l&&this.updateLinkTargets(h,l);return h}finally{n&&(this.useCssTransforms=!0,this.view.revalidate(),this.sizeDidChange())}}; -Graph.prototype.updateLinkTargets=function(a,c){for(var d=a.getElementsByTagName("a"),b=0;b<d.length;b++){var f=d[b].getAttribute("href");null==f&&(f=d[b].getAttribute("xlink:href"));null!=f&&/^https?:\/\//.test(f)&&d[b].setAttribute("target",c)}};Graph.prototype.createSvgCanvas=function(a){return new mxSvgCanvas2D(a)};Graph.prototype.getSelectedElement=function(){var a=null;if(window.getSelection){var c=window.getSelection();c.getRangeAt&&c.rangeCount&&(a=c.getRangeAt(0).commonAncestorContainer)}else document.selection&& -(a=document.selection.createRange().parentElement());return a};Graph.prototype.getParentByName=function(a,c,d){for(;null!=a&&a.nodeName!=c;){if(a==d)return null;a=a.parentNode}return a};Graph.prototype.selectNode=function(a){var c=null;if(window.getSelection){if(c=window.getSelection(),c.getRangeAt&&c.rangeCount){var d=document.createRange();d.selectNode(a);c.removeAllRanges();c.addRange(d)}}else(c=document.selection)&&"Control"!=c.type&&(a=c.createRange(),a.collapse(!0),d=c.createRange(),d.setEndPoint("StartToStart", -a),d.select())};Graph.prototype.insertRow=function(a,c){for(var d=a.tBodies[0],b=d.rows[0].cells,f=0,e=0;e<b.length;e++)var g=b[e].getAttribute("colspan"),f=f+(null!=g?parseInt(g):1);d=d.insertRow(c);for(e=0;e<f;e++)mxUtils.br(d.insertCell(-1));return d.cells[0]};Graph.prototype.deleteRow=function(a,c){a.tBodies[0].deleteRow(c)};Graph.prototype.insertColumn=function(a,c){var d=a.tHead;if(null!=d)for(var b=0;b<d.rows.length;b++){var f=document.createElement("th");d.rows[b].appendChild(f);mxUtils.br(f)}d= -a.tBodies[0];for(b=0;b<d.rows.length;b++)f=d.rows[b].insertCell(c),mxUtils.br(f);return d.rows[0].cells[0<=c?c:d.rows[0].cells.length-1]};Graph.prototype.deleteColumn=function(a,c){if(0<=c)for(var d=a.tBodies[0].rows,b=0;b<d.length;b++)d[b].cells.length>c&&d[b].deleteCell(c)};Graph.prototype.pasteHtmlAtCaret=function(a){var c;if(window.getSelection){if(c=window.getSelection(),c.getRangeAt&&c.rangeCount){c=c.getRangeAt(0);c.deleteContents();var d=document.createElement("div");d.innerHTML=a;a=document.createDocumentFragment(); -for(var b;b=d.firstChild;)lastNode=a.appendChild(b);c.insertNode(a)}}else(c=document.selection)&&"Control"!=c.type&&c.createRange().pasteHTML(a)};Graph.prototype.createLinkForHint=function(a,c){function d(a,c){a.length>c&&(a=a.substring(0,Math.round(c/2))+"..."+a.substring(a.length-Math.round(c/4)));return a}a=null!=a?a:"javascript:void(0);";if(null==c||0==c.length)c=this.isCustomLink(a)?this.getLinkTitle(a):a;var b=document.createElement("a");b.setAttribute("rel",this.linkRelation);b.setAttribute("href", -this.getAbsoluteUrl(a));b.setAttribute("title",d(this.isCustomLink(a)?this.getLinkTitle(a):a,80));null!=this.linkTarget&&b.setAttribute("target",this.linkTarget);mxUtils.write(b,d(c,40));this.isCustomLink(a)&&mxEvent.addListener(b,"click",mxUtils.bind(this,function(c){this.customLinkClicked(a);mxEvent.consume(c)}));return b};Graph.prototype.initTouch=function(){this.connectionHandler.marker.isEnabled=function(){return null!=this.graph.connectionHandler.first};this.addListener(mxEvent.START_EDITING, -function(a,c){this.popupMenuHandler.hideMenu()});var a=this.updateMouseEvent;this.updateMouseEvent=function(c){c=a.apply(this,arguments);if(mxEvent.isTouchEvent(c.getEvent())&&null==c.getState()){var d=this.getCellAt(c.graphX,c.graphY);null!=d&&this.isSwimlane(d)&&this.hitsSwimlaneContent(d,c.graphX,c.graphY)||(c.state=this.view.getState(d),null!=c.state&&null!=c.state.shape&&(this.container.style.cursor=c.state.shape.node.style.cursor))}null==c.getState()&&this.isEnabled()&&(this.container.style.cursor= -"default");return c};var c=!1,d=!1,b=!1,f=this.fireMouseEvent;this.fireMouseEvent=function(a,e,g){a==mxEvent.MOUSE_DOWN&&(e=this.updateMouseEvent(e),c=this.isCellSelected(e.getCell()),d=this.isSelectionEmpty(),b=this.popupMenuHandler.isMenuShowing());f.apply(this,arguments)};this.popupMenuHandler.mouseUp=mxUtils.bind(this,function(a,f){this.popupMenuHandler.popupTrigger=!this.isEditing()&&this.isEnabled()&&(null==f.getState()||!f.isSource(f.getState().control))&&(this.popupMenuHandler.popupTrigger|| -!b&&!mxEvent.isMouseEvent(f.getEvent())&&(d&&null==f.getCell()&&this.isSelectionEmpty()||c&&this.isCellSelected(f.getCell())));mxPopupMenuHandler.prototype.mouseUp.apply(this.popupMenuHandler,arguments)})};mxCellEditor.prototype.isContentEditing=function(){var a=this.graph.view.getState(this.editingCell);return null!=a&&1==a.style.html};mxCellEditor.prototype.saveSelection=function(){if(window.getSelection){var a=window.getSelection();if(a.getRangeAt&&a.rangeCount){for(var c=[],d=0,b=a.rangeCount;d< -b;++d)c.push(a.getRangeAt(d));return c}}else if(document.selection&&document.selection.createRange)return document.selection.createRange();return null};mxCellEditor.prototype.restoreSelection=function(a){try{if(a)if(window.getSelection){sel=window.getSelection();sel.removeAllRanges();for(var c=0,d=a.length;c<d;++c)sel.addRange(a[c])}else document.selection&&a.select&&a.select()}catch(Y){}};var h=mxCellRenderer.prototype.initializeLabel;mxCellRenderer.prototype.initializeLabel=function(a){null!=a.text&& -(a.text.replaceLinefeeds="0"!=mxUtils.getValue(a.style,"nl2Br","1"));h.apply(this,arguments)};var m=mxConstraintHandler.prototype.update;mxConstraintHandler.prototype.update=function(a,c){this.isKeepFocusEvent(a)||!mxEvent.isAltDown(a.getEvent())?m.apply(this,arguments):this.reset()};mxGuide.prototype.createGuideShape=function(a){return new mxPolyline([],mxConstants.GUIDE_COLOR,mxConstants.GUIDE_STROKEWIDTH)};mxCellEditor.prototype.escapeCancelsEditing=!1;var p=mxCellEditor.prototype.startEditing; -mxCellEditor.prototype.startEditing=function(a,c){p.apply(this,arguments);var d=this.graph.view.getState(a);this.textarea.className=null!=d&&1==d.style.html?"mxCellEditor geContentEditable":"mxCellEditor mxPlainTextEditor";this.codeViewMode=!1;this.switchSelectionState=null;this.graph.setSelectionCell(a);var d=this.graph.getModel().getParent(a),b=this.graph.getCellGeometry(a);this.graph.getModel().isEdge(d)&&null!=b&&b.relative||this.graph.getModel().isEdge(a)?mxClient.IS_QUIRKS?this.textarea.style.border= -"gray dotted 1px":this.textarea.style.outline=mxClient.IS_IE||mxClient.IS_IE11||mxClient.IS_FF&&mxClient.IS_WIN?"gray dotted 1px":"":mxClient.IS_QUIRKS&&(this.textarea.style.outline="none",this.textarea.style.border="")};var q=mxCellEditor.prototype.installListeners;mxCellEditor.prototype.installListeners=function(a){function c(a,d){d.originalNode=a;a=a.firstChild;for(var b=d.firstChild;null!=a&&null!=b;)c(a,b),a=a.nextSibling,b=b.nextSibling;return d}function d(a,c){if(null!=a)if(c.originalNode!= -a)b(a);else for(a=a.firstChild,c=c.firstChild;null!=a;){var f=a.nextSibling;null==c?b(a):(d(a,c),c=c.nextSibling);a=f}}function b(a){for(var c=a.firstChild;null!=c;){var d=c.nextSibling;b(c);c=d}1==a.nodeType&&("BR"===a.nodeName||null!=a.firstChild)||3==a.nodeType&&0!=mxUtils.trim(mxUtils.getTextContent(a)).length?(3==a.nodeType&&mxUtils.setTextContent(a,mxUtils.getTextContent(a).replace(/\n|\r/g,"")),1==a.nodeType&&(a.removeAttribute("style"),a.removeAttribute("class"),a.removeAttribute("width"), -a.removeAttribute("cellpadding"),a.removeAttribute("cellspacing"),a.removeAttribute("border"))):a.parentNode.removeChild(a)}q.apply(this,arguments);mxClient.IS_QUIRKS||7===document.documentMode||8===document.documentMode||mxEvent.addListener(this.textarea,"paste",mxUtils.bind(this,function(a){var b=c(this.textarea,this.textarea.cloneNode(!0));window.setTimeout(mxUtils.bind(this,function(){d(this.textarea,b)}),0)}))};mxCellEditor.prototype.toggleViewMode=function(){var a=this.graph.view.getState(this.editingCell), -c=null!=a&&"0"!=mxUtils.getValue(a.style,"nl2Br","1"),d=this.saveSelection();if(this.codeViewMode){k=mxUtils.extractTextWithWhitespace(this.textarea.childNodes);0<k.length&&"\n"==k.charAt(k.length-1)&&(k=k.substring(0,k.length-1));k=this.graph.sanitizeHtml(c?k.replace(/\n/g,"<br/>"):k,!0);this.textarea.className="mxCellEditor geContentEditable";var b=mxUtils.getValue(a.style,mxConstants.STYLE_FONTSIZE,mxConstants.DEFAULT_FONTSIZE),c=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(b*mxConstants.LINE_HEIGHT)+ -"px":mxConstants.LINE_HEIGHT;this.textarea.style.fontSize=Math.round(b)+"px";this.textarea.style.textDecoration=a?"underline":"";this.textarea.style.fontWeight=e?"bold":"normal";this.textarea.style.fontStyle=g?"italic":"";this.textarea.style.fontFamily=c;this.textarea.style.textAlign=f;this.textarea.style.padding="0px";this.textarea.innerHTML!=k&&(this.textarea.innerHTML=k,0==this.textarea.innerHTML.length&&(this.textarea.innerHTML=this.getEmptyLabelText(),this.clearOnChange=0<this.textarea.innerHTML.length)); -this.codeViewMode=!1}else{this.clearOnChange&&this.textarea.innerHTML==this.getEmptyLabelText()&&(this.clearOnChange=!1,this.textarea.innerHTML="");var k=mxUtils.htmlEntities(this.textarea.innerHTML);mxClient.IS_QUIRKS||8==document.documentMode||(k=mxUtils.replaceTrailingNewlines(k,"<div><br></div>"));k=this.graph.sanitizeHtml(c?k.replace(/\n/g,"").replace(/<br\s*.?>/g,"<br>"):k,!0);this.textarea.className="mxCellEditor mxPlainTextEditor";var b=mxConstants.DEFAULT_FONTSIZE;this.textarea.style.lineHeight= -mxConstants.ABSOLUTE_LINE_HEIGHT?Math.round(b*mxConstants.LINE_HEIGHT)+"px":mxConstants.LINE_HEIGHT;this.textarea.style.fontSize=Math.round(b)+"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!=k&&(this.textarea.innerHTML=k);this.codeViewMode=!0}this.textarea.focus();null!=this.switchSelectionState&& -this.restoreSelection(this.switchSelectionState);this.switchSelectionState=d;this.resize()};var u=mxCellEditor.prototype.resize;mxCellEditor.prototype.resize=function(a,c){if(null!=this.textarea)if(a=this.graph.getView().getState(this.editingCell),this.codeViewMode&&null!=a){var d=a.view.scale;this.bounds=mxRectangle.fromRectangle(a);if(0==this.bounds.width&&0==this.bounds.height){this.bounds.width=160*d;this.bounds.height=60*d;var b=null!=a.text?a.text.margin:null;null==b&&(b=mxUtils.getAlignmentAsPoint(mxUtils.getValue(a.style, -mxConstants.STYLE_ALIGN,mxConstants.ALIGN_CENTER),mxUtils.getValue(a.style,mxConstants.STYLE_VERTICAL_ALIGN,mxConstants.ALIGN_MIDDLE)));this.bounds.x+=b.x*this.bounds.width;this.bounds.y+=b.y*this.bounds.height}this.textarea.style.width=Math.round((this.bounds.width-4)/d)+"px";this.textarea.style.height=Math.round((this.bounds.height-4)/d)+"px";this.textarea.style.overflow="auto";this.textarea.clientHeight<this.textarea.offsetHeight&&(this.textarea.style.height=Math.round(this.bounds.height/d)+(this.textarea.offsetHeight- -this.textarea.clientHeight)+"px",this.bounds.height=parseInt(this.textarea.style.height)*d);this.textarea.clientWidth<this.textarea.offsetWidth&&(this.textarea.style.width=Math.round(this.bounds.width/d)+(this.textarea.offsetWidth-this.textarea.clientWidth)+"px",this.bounds.width=parseInt(this.textarea.style.width)*d);this.textarea.style.left=Math.round(this.bounds.x)+"px";this.textarea.style.top=Math.round(this.bounds.y)+"px";mxClient.IS_VML?this.textarea.style.zoom=d:mxUtils.setPrefixedStyle(this.textarea.style, -"transform","scale("+d+","+d+")")}else this.textarea.style.height="",this.textarea.style.overflow="",u.apply(this,arguments)};mxCellEditorGetInitialValue=mxCellEditor.prototype.getInitialValue;mxCellEditor.prototype.getInitialValue=function(a,c){if("0"==mxUtils.getValue(a.style,"html","0"))return mxCellEditorGetInitialValue.apply(this,arguments);var d=this.graph.getEditingValue(a.cell,c);"1"==mxUtils.getValue(a.style,"nl2Br","1")&&(d=d.replace(/\n/g,"<br/>"));return d=this.graph.sanitizeHtml(d,!0)}; +function(a){for(var c=[],b=0;b<a.length;b++)if(this.isCellDeletable(a[b])){var d=this.view.getState(a[b]);if(null!=d){var f=mxUtils.getValue(d.style,mxConstants.STYLE_STROKECOLOR,mxConstants.NONE),d=mxUtils.getValue(d.style,mxConstants.STYLE_FILLCOLOR,mxConstants.NONE);f==mxConstants.NONE&&d==mxConstants.NONE&&c.push(a[b])}}a=c;mxGraph.prototype.removeCellsAfterUngroup.apply(this,arguments)};Graph.prototype.setLinkForCell=function(a,c){this.setAttributeForCell(a,"link",c)};Graph.prototype.setTooltipForCell= +function(a,c){this.setAttributeForCell(a,"tooltip",c)};Graph.prototype.setAttributeForCell=function(a,c,b){var d;null!=a.value&&"object"==typeof a.value?d=a.value.cloneNode(!0):(d=mxUtils.createXmlDocument().createElement("UserObject"),d.setAttribute("label",a.value||""));null!=b&&0<b.length?d.setAttribute(c,b):d.removeAttribute(c);this.model.setValue(a,d)};Graph.prototype.getDropTarget=function(a,c,b,d){this.getModel();if(mxEvent.isAltDown(c))return null;for(var f=0;f<a.length;f++)if(this.model.isEdge(this.model.getParent(a[f])))return null; +return mxGraph.prototype.getDropTarget.apply(this,arguments)};Graph.prototype.click=function(a){mxGraph.prototype.click.call(this,a);this.firstClickState=a.getState();this.firstClickSource=a.getSource()};Graph.prototype.dblClick=function(a,c){if(this.isEnabled()){var b=mxUtils.convertPoint(this.container,mxEvent.getClientX(a),mxEvent.getClientY(a));if(null!=a&&!this.model.isVertex(c)){var d=this.model.isEdge(c)?this.view.getState(c):null,f=mxEvent.getSource(a);this.firstClickState!=d||this.firstClickSource!= +f||null!=d&&null!=d.text&&null!=d.text.node&&(mxUtils.contains(d.text.boundingBox,b.x,b.y)||mxUtils.isAncestorNode(d.text.node,mxEvent.getSource(a)))||(null!=d||this.isCellLocked(this.getDefaultParent()))&&(null==d||this.isCellLocked(d.cell))||!(null!=d||mxClient.IS_VML&&f==this.view.getCanvas()||mxClient.IS_SVG&&f==this.view.getCanvas().ownerSVGElement)||(c=this.addText(b.x,b.y,d))}mxGraph.prototype.dblClick.call(this,a,c)}};Graph.prototype.getInsertPoint=function(){var a=this.getGridSize(),c=this.container.scrollLeft/ +this.view.scale-this.view.translate.x,b=this.container.scrollTop/this.view.scale-this.view.translate.y;if(this.pageVisible)var d=this.getPageLayout(),f=this.getPageSize(),c=Math.max(c,d.x*f.width),b=Math.max(b,d.y*f.height);return new mxPoint(this.snap(c+a),this.snap(b+a))};Graph.prototype.getFreeInsertPoint=function(){var a=this.view,c=this.getGraphBounds(),b=this.getInsertPoint(),d=this.snap(Math.round(Math.max(b.x,c.x/a.scale-a.translate.x+(0==c.width?2*this.gridSize:0)))),a=this.snap(Math.round(Math.max(b.y, +(c.y+c.height)/a.scale-a.translate.y+2*this.gridSize)));return new mxPoint(d,a)};Graph.prototype.isMouseInsertPoint=function(){return!1};Graph.prototype.addText=function(a,c,b){var d=new mxCell;d.value="Text";d.style="text;html=1;resizable=0;points=[];";d.geometry=new mxGeometry(0,0,0,0);d.vertex=!0;if(null!=b){d.style+="align=center;verticalAlign=middle;labelBackgroundColor=#ffffff;";d.geometry.relative=!0;d.connectable=!1;var f=this.view.getRelativePoint(b,a,c);d.geometry.x=Math.round(1E4*f.x)/ +1E4;d.geometry.y=Math.round(f.y);d.geometry.offset=new mxPoint(0,0);var f=this.view.getPoint(b,d.geometry),e=this.view.scale;d.geometry.offset=new mxPoint(Math.round((a-f.x)/e),Math.round((c-f.y)/e))}else d.style+="autosize=1;align=left;verticalAlign=top;spacingTop=-4;",f=this.view.translate,d.geometry.width=40,d.geometry.height=20,d.geometry.x=Math.round(a/this.view.scale)-f.x,d.geometry.y=Math.round(c/this.view.scale)-f.y;this.getModel().beginUpdate();try{this.addCells([d],null!=b?b.cell:null), +this.fireEvent(new mxEventObject("textInserted","cells",[d])),this.autoSizeCell(d)}finally{this.getModel().endUpdate()}return d};Graph.prototype.getAbsoluteUrl=function(a){null!=a&&this.isRelativeUrl(a)&&(a="#"==a.charAt(0)?this.baseUrl+a:"/"==a.charAt(0)?this.domainUrl+a:this.domainPathUrl+a);return a};Graph.prototype.addClickHandler=function(a,c,b){var d=mxUtils.bind(this,function(){var a=this.container.getElementsByTagName("a");if(null!=a)for(var b=0;b<a.length;b++){var d=this.getAbsoluteUrl(a[b].getAttribute("href")); +null!=d&&(a[b].setAttribute("rel",this.linkRelation),a[b].setAttribute("href",d),null!=c&&mxEvent.addGestureListeners(a[b],null,null,c))}});this.model.addListener(mxEvent.CHANGE,d);d();var f=this.container.style.cursor,e=this.getTolerance(),g=this,h={currentState:null,currentLink:null,highlight:null!=a&&""!=a&&a!=mxConstants.NONE?new mxCellHighlight(g,a,4):null,startX:0,startY:0,scrollLeft:0,scrollTop:0,updateCurrentState:function(a){var c=a.sourceState;if(null==c||null==g.getLinkForCell(c.cell))a= +g.getCellAt(a.getGraphX(),a.getGraphY(),null,null,null,function(a,c,b){return null==g.getLinkForCell(a.cell)}),c=g.view.getState(a);c!=this.currentState&&(null!=this.currentState&&this.clear(),this.currentState=c,null!=this.currentState&&this.activate(this.currentState))},mouseDown:function(a,c){this.startX=c.getGraphX();this.startY=c.getGraphY();this.scrollLeft=g.container.scrollLeft;this.scrollTop=g.container.scrollTop;null==this.currentLink&&"auto"==g.container.style.overflow&&(g.container.style.cursor= +"move");this.updateCurrentState(c)},mouseMove:function(a,c){if(g.isMouseDown){if(null!=this.currentLink){var b=Math.abs(this.startX-c.getGraphX()),d=Math.abs(this.startY-c.getGraphY());(b>e||d>e)&&this.clear()}}else{for(b=c.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(c,!0,this.currentState),(null==this.currentState||c.getState()!=this.currentState&&null!=c.sourceState|| +!g.intersects(this.currentState,c.getGraphX(),c.getGraphY()))&&this.updateCurrentState(c))}},mouseUp:function(a,d){for(var f=d.getSource(),h=d.getEvent();null!=f&&"a"!=f.nodeName.toLowerCase();)f=f.parentNode;null==f&&Math.abs(this.scrollLeft-g.container.scrollLeft)<e&&Math.abs(this.scrollTop-g.container.scrollTop)<e&&(null==d.sourceState||!d.isSource(d.sourceState.control))&&((mxEvent.isLeftMouseButton(h)||mxEvent.isMiddleMouseButton(h))&&!mxEvent.isPopupTrigger(h)||mxEvent.isTouchEvent(h))&&(null!= +this.currentLink?(f=g.isBlankLink(this.currentLink),"data:"!==this.currentLink.substring(0,5)&&f||null==c||c(h,this.currentLink),mxEvent.isConsumed(h)||(h=mxEvent.isMiddleMouseButton(h)?"_blank":f?g.linkTarget:"_top",g.openLink(this.currentLink,h),d.consume())):null!=b&&!d.isConsumed()&&Math.abs(this.scrollLeft-g.container.scrollLeft)<e&&Math.abs(this.scrollTop-g.container.scrollTop)<e&&Math.abs(this.startX-d.getGraphX())<e&&Math.abs(this.startY-d.getGraphY())<e&&b(d.getEvent()));this.clear()},activate:function(a){this.currentLink= +g.getAbsoluteUrl(g.getLinkForCell(a.cell));null!=this.currentLink&&(g.container.style.cursor="pointer",null!=this.highlight&&this.highlight.highlight(a))},clear:function(){null!=g.container&&(g.container.style.cursor=f);this.currentLink=this.currentState=null;null!=this.highlight&&this.highlight.hide();null!=g.tooltipHandler&&g.tooltipHandler.hide()}};g.click=function(a){};g.addMouseListener(h);mxEvent.addListener(document,"mouseleave",function(a){h.clear()})};Graph.prototype.duplicateCells=function(a, +c){a=null!=a?a:this.getSelectionCells();c=null!=c?c:!0;a=this.model.getTopmostCells(a);var b=this.getModel(),d=this.gridSize,f=[];b.beginUpdate();try{for(var e=this.cloneCells(a,!1),g=0;g<a.length;g++){var h=b.getParent(a[g]),n=this.moveCells([e[g]],d,d,!1)[0];f.push(n);if(c)b.add(h,e[g]);else{var m=h.getIndex(a[g]);b.add(h,e[g],m+1)}}}finally{b.endUpdate()}return f};Graph.prototype.insertImage=function(a,c,b){if(null!=a){for(var d=this.cellEditor.textarea.getElementsByTagName("img"),f=[],e=0;e<d.length;e++)f.push(d[e]); +document.execCommand("insertimage",!1,a);a=this.cellEditor.textarea.getElementsByTagName("img");if(a.length==f.length+1)for(e=a.length-1;0<=e;e--)if(0==e||a[e]!=f[e-1]){a[e].setAttribute("width",c);a[e].setAttribute("height",b);break}}};Graph.prototype.insertLink=function(a){if(0==a.length)document.execCommand("unlink",!1);else if(mxClient.IS_FF){for(var c=this.cellEditor.textarea.getElementsByTagName("a"),b=[],d=0;d<c.length;d++)b.push(c[d]);document.execCommand("createlink",!1,mxUtils.trim(a)); +c=this.cellEditor.textarea.getElementsByTagName("a");if(c.length==b.length+1)for(d=c.length-1;0<=d;d--)if(c[d]!=b[d-1]){for(c=c[d].getElementsByTagName("a");0<c.length;){for(b=c[0].parentNode;null!=c[0].firstChild;)b.insertBefore(c[0].firstChild,c[0]);b.removeChild(c[0])}break}}else document.execCommand("createlink",!1,mxUtils.trim(a))};Graph.prototype.isCellResizable=function(a){var c=mxGraph.prototype.isCellResizable.apply(this,arguments),b=this.view.getState(a),b=null!=b?b.style:this.getCellStyle(a); +return c||"0"!=mxUtils.getValue(b,mxConstants.STYLE_RESIZABLE,"1")&&"wrap"==b[mxConstants.STYLE_WHITE_SPACE]};Graph.prototype.distributeCells=function(a,c){null==c&&(c=this.getSelectionCells());if(null!=c&&1<c.length){for(var b=[],d=null,f=null,e=0;e<c.length;e++)if(this.getModel().isVertex(c[e])){var g=this.view.getState(c[e]);if(null!=g){var h=a?g.getCenterX():g.getCenterY(),d=null!=d?Math.max(d,h):h,f=null!=f?Math.min(f,h):h;b.push(g)}}if(2<b.length){b.sort(function(c,b){return a?c.x-b.x:c.y-b.y}); +g=this.view.translate;h=this.view.scale;f=f/h-(a?g.x:g.y);d=d/h-(a?g.x:g.y);this.getModel().beginUpdate();try{for(var n=(d-f)/(b.length-1),d=f,e=1;e<b.length-1;e++){var m=this.view.getState(this.model.getParent(b[e].cell)),t=this.getCellGeometry(b[e].cell),d=d+n;null!=t&&null!=m&&(t=t.clone(),a?t.x=Math.round(d-t.width/2)-m.origin.x:t.y=Math.round(d-t.height/2)-m.origin.y,this.getModel().setGeometry(b[e].cell,t))}}finally{this.getModel().endUpdate()}}}return c};Graph.prototype.isCloneEvent=function(a){return mxClient.IS_MAC&& +mxEvent.isMetaDown(a)||mxEvent.isControlDown(a)};Graph.prototype.encodeCells=function(a){for(var c=this.cloneCells(a),b=new mxDictionary,d=0;d<a.length;d++)b.put(a[d],!0);for(d=0;d<c.length;d++){var f=this.view.getState(a[d]);if(null!=f){var e=this.getCellGeometry(c[d]);null==e||!e.relative||this.model.isEdge(a[d])||b.get(this.model.getParent(a[d]))||(e.relative=!1,e.x=f.x/f.view.scale-f.view.translate.x,e.y=f.y/f.view.scale-f.view.translate.y)}}b=new mxCodec;f=new mxGraphModel;e=f.getChildAt(f.getRoot(), +0);for(d=0;d<a.length;d++)f.add(e,c[d]);return b.encode(f)};Graph.prototype.createSvgImageExport=function(){var a=new mxImageExport;a.getLinkForCellState=mxUtils.bind(this,function(a,c){return this.getLinkForCell(a.cell)});return a};Graph.prototype.getSvg=function(a,c,b,d,f,e,g,h,n){var m=this.useCssTransforms;m&&(this.useCssTransforms=!1,this.view.revalidate(),this.sizeDidChange());try{c=null!=c?c:1;b=null!=b?b:0;f=null!=f?f:!0;e=null!=e?e:!0;g=null!=g?g:!0;var t=e||d?this.getGraphBounds():this.getBoundingBox(this.getSelectionCells()); +if(null==t)throw Error(mxResources.get("drawingEmpty"));var r=this.view.scale,y=mxUtils.createXmlDocument(),k=null!=y.createElementNS?y.createElementNS(mxConstants.NS_SVG,"svg"):y.createElement("svg");null!=a&&(null!=k.style?k.style.backgroundColor=a:k.setAttribute("style","background-color:"+a));null==y.createElementNS?(k.setAttribute("xmlns",mxConstants.NS_SVG),k.setAttribute("xmlns:xlink",mxConstants.NS_XLINK)):k.setAttributeNS("http://www.w3.org/2000/xmlns/","xmlns:xlink",mxConstants.NS_XLINK); +a=c/r;var v=Math.max(1,Math.ceil(t.width*a)+2*b),w=Math.max(1,Math.ceil(t.height*a)+2*b);k.setAttribute("version","1.1");k.setAttribute("width",v+"px");k.setAttribute("height",w+"px");k.setAttribute("viewBox",(f?"-0.5 -0.5":"0 0")+" "+v+" "+w);y.appendChild(k);var q=this.createSvgCanvas(k);q.foOffset=f?-.5:0;q.textOffset=f?-.5:0;q.imageOffset=f?-.5:0;q.translate(Math.floor((b/c-t.x)/r),Math.floor((b/c-t.y)/r));var x=document.createElement("textarea"),z=q.createAlternateContent;q.createAlternateContent= +function(a,c,b,d,f,e,g,h,n,m,t,r,y){var k=this.state;if(null!=this.foAltText&&(0==d||0!=k.fontSize&&e.length<5*d/k.fontSize)){var v=this.createElement("text");v.setAttribute("x",Math.round(d/2));v.setAttribute("y",Math.round((f+k.fontSize)/2));v.setAttribute("fill",k.fontColor||"black");v.setAttribute("text-anchor","middle");v.setAttribute("font-size",Math.round(k.fontSize)+"px");v.setAttribute("font-family",k.fontFamily);(k.fontStyle&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD&&v.setAttribute("font-weight", +"bold");(k.fontStyle&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC&&v.setAttribute("font-style","italic");(k.fontStyle&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE&&v.setAttribute("text-decoration","underline");try{return x.innerHTML=e,v.textContent=x.value,v}catch(Ca){return z.apply(this,arguments)}}else return z.apply(this,arguments)};var l=this.backgroundImage;if(null!=l){c=r/c;var F=this.view.translate,p=new mxRectangle(F.x*c,F.y*c,l.width*c,l.height*c);mxUtils.intersects(t,p)&& +q.image(F.x,F.y,l.width,l.height,l.src,!0)}q.scale(a);q.textEnabled=g;h=null!=h?h:this.createSvgImageExport();var A=h.drawCellState;h.drawCellState=function(a,c){for(var b=a.view.graph,d=b.isCellSelected(a.cell),f=b.model.getParent(a.cell);!e&&!d&&null!=f;)d=b.isCellSelected(f),f=b.model.getParent(f);(e||d)&&A.apply(this,arguments)};h.drawState(this.getView().getState(this.model.root),q);null!=n&&this.updateLinkTargets(k,n);return k}finally{m&&(this.useCssTransforms=!0,this.view.revalidate(),this.sizeDidChange())}}; +Graph.prototype.updateLinkTargets=function(a,c){for(var b=a.getElementsByTagName("a"),d=0;d<b.length;d++){var f=b[d].getAttribute("href");null==f&&(f=b[d].getAttribute("xlink:href"));null!=f&&/^https?:\/\//.test(f)&&b[d].setAttribute("target",c)}};Graph.prototype.createSvgCanvas=function(a){return new mxSvgCanvas2D(a)};Graph.prototype.getSelectedElement=function(){var a=null;if(window.getSelection){var c=window.getSelection();c.getRangeAt&&c.rangeCount&&(a=c.getRangeAt(0).commonAncestorContainer)}else document.selection&& +(a=document.selection.createRange().parentElement());return a};Graph.prototype.getParentByName=function(a,c,b){for(;null!=a&&a.nodeName!=c;){if(a==b)return null;a=a.parentNode}return a};Graph.prototype.selectNode=function(a){var c=null;if(window.getSelection){if(c=window.getSelection(),c.getRangeAt&&c.rangeCount){var b=document.createRange();b.selectNode(a);c.removeAllRanges();c.addRange(b)}}else(c=document.selection)&&"Control"!=c.type&&(a=c.createRange(),a.collapse(!0),b=c.createRange(),b.setEndPoint("StartToStart", +a),b.select())};Graph.prototype.insertRow=function(a,c){for(var b=a.tBodies[0],d=b.rows[0].cells,f=0,e=0;e<d.length;e++)var g=d[e].getAttribute("colspan"),f=f+(null!=g?parseInt(g):1);b=b.insertRow(c);for(e=0;e<f;e++)mxUtils.br(b.insertCell(-1));return b.cells[0]};Graph.prototype.deleteRow=function(a,c){a.tBodies[0].deleteRow(c)};Graph.prototype.insertColumn=function(a,c){var b=a.tHead;if(null!=b)for(var d=0;d<b.rows.length;d++){var f=document.createElement("th");b.rows[d].appendChild(f);mxUtils.br(f)}b= +a.tBodies[0];for(d=0;d<b.rows.length;d++)f=b.rows[d].insertCell(c),mxUtils.br(f);return b.rows[0].cells[0<=c?c:b.rows[0].cells.length-1]};Graph.prototype.deleteColumn=function(a,c){if(0<=c)for(var b=a.tBodies[0].rows,d=0;d<b.length;d++)b[d].cells.length>c&&b[d].deleteCell(c)};Graph.prototype.pasteHtmlAtCaret=function(a){var c;if(window.getSelection){if(c=window.getSelection(),c.getRangeAt&&c.rangeCount){c=c.getRangeAt(0);c.deleteContents();var b=document.createElement("div");b.innerHTML=a;a=document.createDocumentFragment(); +for(var d;d=b.firstChild;)lastNode=a.appendChild(d);c.insertNode(a)}}else(c=document.selection)&&"Control"!=c.type&&c.createRange().pasteHTML(a)};Graph.prototype.createLinkForHint=function(a,c){function b(a,c){a.length>c&&(a=a.substring(0,Math.round(c/2))+"..."+a.substring(a.length-Math.round(c/4)));return a}a=null!=a?a:"javascript:void(0);";if(null==c||0==c.length)c=this.isCustomLink(a)?this.getLinkTitle(a):a;var d=document.createElement("a");d.setAttribute("rel",this.linkRelation);d.setAttribute("href", +this.getAbsoluteUrl(a));d.setAttribute("title",b(this.isCustomLink(a)?this.getLinkTitle(a):a,80));null!=this.linkTarget&&d.setAttribute("target",this.linkTarget);mxUtils.write(d,b(c,40));this.isCustomLink(a)&&mxEvent.addListener(d,"click",mxUtils.bind(this,function(c){this.customLinkClicked(a);mxEvent.consume(c)}));return d};Graph.prototype.initTouch=function(){this.connectionHandler.marker.isEnabled=function(){return null!=this.graph.connectionHandler.first};this.addListener(mxEvent.START_EDITING, +function(a,c){this.popupMenuHandler.hideMenu()});var a=this.updateMouseEvent;this.updateMouseEvent=function(c){c=a.apply(this,arguments);if(mxEvent.isTouchEvent(c.getEvent())&&null==c.getState()){var b=this.getCellAt(c.graphX,c.graphY);null!=b&&this.isSwimlane(b)&&this.hitsSwimlaneContent(b,c.graphX,c.graphY)||(c.state=this.view.getState(b),null!=c.state&&null!=c.state.shape&&(this.container.style.cursor=c.state.shape.node.style.cursor))}null==c.getState()&&this.isEnabled()&&(this.container.style.cursor= +"default");return c};var c=!1,b=!1,d=!1,f=this.fireMouseEvent;this.fireMouseEvent=function(a,e,g){a==mxEvent.MOUSE_DOWN&&(e=this.updateMouseEvent(e),c=this.isCellSelected(e.getCell()),b=this.isSelectionEmpty(),d=this.popupMenuHandler.isMenuShowing());f.apply(this,arguments)};this.popupMenuHandler.mouseUp=mxUtils.bind(this,function(a,f){this.popupMenuHandler.popupTrigger=!this.isEditing()&&this.isEnabled()&&(null==f.getState()||!f.isSource(f.getState().control))&&(this.popupMenuHandler.popupTrigger|| +!d&&!mxEvent.isMouseEvent(f.getEvent())&&(b&&null==f.getCell()&&this.isSelectionEmpty()||c&&this.isCellSelected(f.getCell())));mxPopupMenuHandler.prototype.mouseUp.apply(this.popupMenuHandler,arguments)})};mxCellEditor.prototype.isContentEditing=function(){var a=this.graph.view.getState(this.editingCell);return null!=a&&1==a.style.html};mxCellEditor.prototype.saveSelection=function(){if(window.getSelection){var a=window.getSelection();if(a.getRangeAt&&a.rangeCount){for(var c=[],b=0,d=a.rangeCount;b< +d;++b)c.push(a.getRangeAt(b));return c}}else if(document.selection&&document.selection.createRange)return document.selection.createRange();return null};mxCellEditor.prototype.restoreSelection=function(a){try{if(a)if(window.getSelection){sel=window.getSelection();sel.removeAllRanges();for(var c=0,b=a.length;c<b;++c)sel.addRange(a[c])}else document.selection&&a.select&&a.select()}catch(Y){}};var k=mxCellRenderer.prototype.initializeLabel;mxCellRenderer.prototype.initializeLabel=function(a){null!=a.text&& +(a.text.replaceLinefeeds="0"!=mxUtils.getValue(a.style,"nl2Br","1"));k.apply(this,arguments)};var l=mxConstraintHandler.prototype.update;mxConstraintHandler.prototype.update=function(a,c){this.isKeepFocusEvent(a)||!mxEvent.isAltDown(a.getEvent())?l.apply(this,arguments):this.reset()};mxGuide.prototype.createGuideShape=function(a){return new mxPolyline([],mxConstants.GUIDE_COLOR,mxConstants.GUIDE_STROKEWIDTH)};mxCellEditor.prototype.escapeCancelsEditing=!1;var p=mxCellEditor.prototype.startEditing; +mxCellEditor.prototype.startEditing=function(a,c){p.apply(this,arguments);var b=this.graph.view.getState(a);this.textarea.className=null!=b&&1==b.style.html?"mxCellEditor geContentEditable":"mxCellEditor mxPlainTextEditor";this.codeViewMode=!1;this.switchSelectionState=null;this.graph.setSelectionCell(a);var b=this.graph.getModel().getParent(a),d=this.graph.getCellGeometry(a);this.graph.getModel().isEdge(b)&&null!=d&&d.relative||this.graph.getModel().isEdge(a)?mxClient.IS_QUIRKS?this.textarea.style.border= +"gray dotted 1px":this.textarea.style.outline=mxClient.IS_IE||mxClient.IS_IE11||mxClient.IS_FF&&mxClient.IS_WIN?"gray dotted 1px":"":mxClient.IS_QUIRKS&&(this.textarea.style.outline="none",this.textarea.style.border="")};var q=mxCellEditor.prototype.installListeners;mxCellEditor.prototype.installListeners=function(a){function c(a,b){b.originalNode=a;a=a.firstChild;for(var d=b.firstChild;null!=a&&null!=d;)c(a,d),a=a.nextSibling,d=d.nextSibling;return b}function b(a,c){if(null!=a)if(c.originalNode!= +a)d(a);else for(a=a.firstChild,c=c.firstChild;null!=a;){var f=a.nextSibling;null==c?d(a):(b(a,c),c=c.nextSibling);a=f}}function d(a){for(var c=a.firstChild;null!=c;){var b=c.nextSibling;d(c);c=b}1==a.nodeType&&("BR"===a.nodeName||null!=a.firstChild)||3==a.nodeType&&0!=mxUtils.trim(mxUtils.getTextContent(a)).length?(3==a.nodeType&&mxUtils.setTextContent(a,mxUtils.getTextContent(a).replace(/\n|\r/g,"")),1==a.nodeType&&(a.removeAttribute("style"),a.removeAttribute("class"),a.removeAttribute("width"), +a.removeAttribute("cellpadding"),a.removeAttribute("cellspacing"),a.removeAttribute("border"))):a.parentNode.removeChild(a)}q.apply(this,arguments);mxClient.IS_QUIRKS||7===document.documentMode||8===document.documentMode||mxEvent.addListener(this.textarea,"paste",mxUtils.bind(this,function(a){var d=c(this.textarea,this.textarea.cloneNode(!0));window.setTimeout(mxUtils.bind(this,function(){b(this.textarea,d)}),0)}))};mxCellEditor.prototype.toggleViewMode=function(){var a=this.graph.view.getState(this.editingCell), +c=null!=a&&"0"!=mxUtils.getValue(a.style,"nl2Br","1"),b=this.saveSelection();if(this.codeViewMode){h=mxUtils.extractTextWithWhitespace(this.textarea.childNodes);0<h.length&&"\n"==h.charAt(h.length-1)&&(h=h.substring(0,h.length-1));h=this.graph.sanitizeHtml(c?h.replace(/\n/g,"<br/>"):h,!0);this.textarea.className="mxCellEditor geContentEditable";var d=mxUtils.getValue(a.style,mxConstants.STYLE_FONTSIZE,mxConstants.DEFAULT_FONTSIZE),c=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(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=e?"bold":"normal";this.textarea.style.fontStyle=g?"italic":"";this.textarea.style.fontFamily=c;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<this.textarea.innerHTML.length)); +this.codeViewMode=!1}else{this.clearOnChange&&this.textarea.innerHTML==this.getEmptyLabelText()&&(this.clearOnChange=!1,this.textarea.innerHTML="");var h=mxUtils.htmlEntities(this.textarea.innerHTML);mxClient.IS_QUIRKS||8==document.documentMode||(h=mxUtils.replaceTrailingNewlines(h,"<div><br></div>"));h=this.graph.sanitizeHtml(c?h.replace(/\n/g,"").replace(/<br\s*.?>/g,"<br>"):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=b;this.resize()};var u=mxCellEditor.prototype.resize;mxCellEditor.prototype.resize=function(a,c){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 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,mxConstants.ALIGN_MIDDLE)));this.bounds.x+=d.x*this.bounds.width;this.bounds.y+=d.y*this.bounds.height}this.textarea.style.width=Math.round((this.bounds.width-4)/b)+"px";this.textarea.style.height=Math.round((this.bounds.height-4)/b)+"px";this.textarea.style.overflow="auto";this.textarea.clientHeight<this.textarea.offsetHeight&&(this.textarea.style.height=Math.round(this.bounds.height/b)+(this.textarea.offsetHeight- +this.textarea.clientHeight)+"px",this.bounds.height=parseInt(this.textarea.style.height)*b);this.textarea.clientWidth<this.textarea.offsetWidth&&(this.textarea.style.width=Math.round(this.bounds.width/b)+(this.textarea.offsetWidth-this.textarea.clientWidth)+"px",this.bounds.width=parseInt(this.textarea.style.width)*b);this.textarea.style.left=Math.round(this.bounds.x)+"px";this.textarea.style.top=Math.round(this.bounds.y)+"px";mxClient.IS_VML?this.textarea.style.zoom=b:mxUtils.setPrefixedStyle(this.textarea.style, +"transform","scale("+b+","+b+")")}else this.textarea.style.height="",this.textarea.style.overflow="",u.apply(this,arguments)};mxCellEditorGetInitialValue=mxCellEditor.prototype.getInitialValue;mxCellEditor.prototype.getInitialValue=function(a,c){if("0"==mxUtils.getValue(a.style,"html","0"))return mxCellEditorGetInitialValue.apply(this,arguments);var b=this.graph.getEditingValue(a.cell,c);"1"==mxUtils.getValue(a.style,"nl2Br","1")&&(b=b.replace(/\n/g,"<br/>"));return b=this.graph.sanitizeHtml(b,!0)}; mxCellEditorGetCurrentValue=mxCellEditor.prototype.getCurrentValue;mxCellEditor.prototype.getCurrentValue=function(a){if("0"==mxUtils.getValue(a.style,"html","0"))return mxCellEditorGetCurrentValue.apply(this,arguments);var c=this.graph.sanitizeHtml(this.textarea.innerHTML,!0);return c="1"==mxUtils.getValue(a.style,"nl2Br","1")?c.replace(/\r\n/g,"<br/>").replace(/\n/g,"<br/>"):c.replace(/\r\n/g,"").replace(/\n/g,"")};var c=mxCellEditor.prototype.stopEditing;mxCellEditor.prototype.stopEditing=function(a){this.codeViewMode&& -this.toggleViewMode();c.apply(this,arguments);this.focusContainer()};mxCellEditor.prototype.focusContainer=function(){try{this.graph.container.focus()}catch(F){}};var f=mxCellEditor.prototype.applyValue;mxCellEditor.prototype.applyValue=function(a,c){this.graph.getModel().beginUpdate();try{if(f.apply(this,arguments),this.graph.isCellDeletable(a.cell)&&0==this.graph.model.getChildCount(a.cell)){var d=mxUtils.getValue(a.style,mxConstants.STYLE_STROKECOLOR,mxConstants.NONE),b=mxUtils.getValue(a.style, -mxConstants.STYLE_FILLCOLOR,mxConstants.NONE);""==c&&d==mxConstants.NONE&&b==mxConstants.NONE&&this.graph.removeCells([a.cell],!1)}}finally{this.graph.getModel().endUpdate()}};mxCellEditor.prototype.getBackgroundColor=function(a){var c=null;if(this.graph.getModel().isEdge(a.cell)||this.graph.getModel().isEdge(this.graph.getModel().getParent(a.cell)))c=mxUtils.getValue(a.style,mxConstants.STYLE_LABEL_BACKGROUNDCOLOR,null),c==mxConstants.NONE&&(c=null);return c};mxCellEditor.prototype.getMinimumSize= -function(a){var c=this.graph.getView().scale;return new mxRectangle(0,0,null==a.text?30:a.text.size*c+20,30)};var g=mxGraphHandler.prototype.moveCells;mxGraphHandler.prototype.moveCells=function(a,c,d,b,f,e){mxEvent.isAltDown(e)&&(f=null);g.apply(this,arguments)};mxGraphHandler.prototype.updateHint=function(c){if(null!=this.shape){null==this.hint&&(this.hint=a(),this.graph.container.appendChild(this.hint));var d=this.graph.view.translate,b=this.graph.view.scale;c=this.roundLength((this.bounds.x+this.currentDx)/ -b-d.x);d=this.roundLength((this.bounds.y+this.currentDy)/b-d.y);this.hint.innerHTML=c+", "+d;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,c){return!this.graph.isSwimlane(a.cell)&&0<this.graph.model.getChildCount(a.cell)&& +this.toggleViewMode();c.apply(this,arguments);this.focusContainer()};mxCellEditor.prototype.focusContainer=function(){try{this.graph.container.focus()}catch(F){}};var f=mxCellEditor.prototype.applyValue;mxCellEditor.prototype.applyValue=function(a,c){this.graph.getModel().beginUpdate();try{if(f.apply(this,arguments),this.graph.isCellDeletable(a.cell)&&0==this.graph.model.getChildCount(a.cell)){var b=mxUtils.getValue(a.style,mxConstants.STYLE_STROKECOLOR,mxConstants.NONE),d=mxUtils.getValue(a.style, +mxConstants.STYLE_FILLCOLOR,mxConstants.NONE);""==c&&b==mxConstants.NONE&&d==mxConstants.NONE&&this.graph.removeCells([a.cell],!1)}}finally{this.graph.getModel().endUpdate()}};mxCellEditor.prototype.getBackgroundColor=function(a){var c=null;if(this.graph.getModel().isEdge(a.cell)||this.graph.getModel().isEdge(this.graph.getModel().getParent(a.cell)))c=mxUtils.getValue(a.style,mxConstants.STYLE_LABEL_BACKGROUNDCOLOR,null),c==mxConstants.NONE&&(c=null);return c};mxCellEditor.prototype.getMinimumSize= +function(a){var c=this.graph.getView().scale;return new mxRectangle(0,0,null==a.text?30:a.text.size*c+20,30)};var g=mxGraphHandler.prototype.moveCells;mxGraphHandler.prototype.moveCells=function(a,c,b,d,f,e){mxEvent.isAltDown(e)&&(f=null);g.apply(this,arguments)};mxGraphHandler.prototype.updateHint=function(c){if(null!=this.shape){null==this.hint&&(this.hint=a(),this.graph.container.appendChild(this.hint));var b=this.graph.view.translate,d=this.graph.view.scale;c=this.roundLength((this.bounds.x+this.currentDx)/ +d-b.x);b=this.roundLength((this.bounds.y+this.currentDy)/d-b.y);this.hint.innerHTML=c+", "+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,c){return!this.graph.isSwimlane(a.cell)&&0<this.graph.model.getChildCount(a.cell)&& !mxEvent.isControlDown(c.getEvent())&&!this.graph.isCellCollapsed(a.cell)&&"1"==mxUtils.getValue(a.style,"recursiveResize","1")&&null==mxUtils.getValue(a.style,"childLayout",null)};mxVertexHandler.prototype.isCenteredEvent=function(a,c){return!(!this.graph.isSwimlane(a.cell)&&0<this.graph.model.getChildCount(a.cell)&&!this.graph.isCellCollapsed(a.cell)&&"1"==mxUtils.getValue(a.style,"recursiveResize","1")&&null==mxUtils.getValue(a.style,"childLayout",null))&&mxEvent.isControlDown(c.getEvent())||mxEvent.isMetaDown(c.getEvent())}; -var k=mxVertexHandler.prototype.getHandlePadding;mxVertexHandler.prototype.getHandlePadding=function(){var a=new mxPoint(0,0),c=this.tolerance;this.graph.cellEditor.getEditingCell()==this.state.cell&&null!=this.sizers&&0<this.sizers.length&&null!=this.sizers[0]?(c/=2,a.x=this.sizers[0].bounds.width+c,a.y=this.sizers[0].bounds.height+c):a=k.apply(this,arguments);return a};mxVertexHandler.prototype.updateHint=function(c){this.index!=mxEvent.LABEL_HANDLE&&(null==this.hint&&(this.hint=a(),this.state.view.graph.container.appendChild(this.hint)), +var n=mxVertexHandler.prototype.getHandlePadding;mxVertexHandler.prototype.getHandlePadding=function(){var a=new mxPoint(0,0),c=this.tolerance;this.graph.cellEditor.getEditingCell()==this.state.cell&&null!=this.sizers&&0<this.sizers.length&&null!=this.sizers[0]?(c/=2,a.x=this.sizers[0].bounds.width+c,a.y=this.sizers[0].bounds.height+c):a=n.apply(this,arguments);return a};mxVertexHandler.prototype.updateHint=function(c){this.index!=mxEvent.LABEL_HANDLE&&(null==this.hint&&(this.hint=a(),this.state.view.graph.container.appendChild(this.hint)), this.index==mxEvent.ROTATION_HANDLE?this.hint.innerHTML=this.currentAlpha+"°":(c=this.state.view.scale,this.hint.innerHTML=this.roundLength(this.bounds.width/c)+" x "+this.roundLength(this.bounds.height/c)),c=mxUtils.getBoundingBox(this.bounds,null!=this.currentAlpha?this.currentAlpha:this.state.style[mxConstants.STYLE_ROTATION]||"0"),null==c&&(c=this.bounds),this.hint.style.left=c.x+Math.round((c.width-this.hint.clientWidth)/2)+"px",this.hint.style.top=c.y+c.height+12+"px",null!=this.linkHint&& -(this.linkHint.style.display="none"))};mxVertexHandler.prototype.removeHint=function(){mxGraphHandler.prototype.removeHint.apply(this,arguments);null!=this.linkHint&&(this.linkHint.style.display="")};mxEdgeHandler.prototype.updateHint=function(c,d){null==this.hint&&(this.hint=a(),this.state.view.graph.container.appendChild(this.hint));var b=this.graph.view.translate,f=this.graph.view.scale,e=this.roundLength(d.x/f-b.x),b=this.roundLength(d.y/f-b.y);this.hint.innerHTML=e+", "+b;this.hint.style.visibility= -"visible";if(this.isSource||this.isTarget)null!=this.constraintHandler.currentConstraint&&null!=this.constraintHandler.currentFocus?(e=this.constraintHandler.currentConstraint.point,this.hint.innerHTML="["+Math.round(100*e.x)+"%, "+Math.round(100*e.y)+"%]"):this.marker.hasValidState()&&(this.hint.style.visibility="hidden");this.hint.style.left=Math.round(c.getGraphX()-this.hint.clientWidth/2)+"px";this.hint.style.top=Math.max(c.getGraphY(),d.y)+this.state.view.graph.gridSize+"px";null!=this.linkHint&& +(this.linkHint.style.display="none"))};mxVertexHandler.prototype.removeHint=function(){mxGraphHandler.prototype.removeHint.apply(this,arguments);null!=this.linkHint&&(this.linkHint.style.display="")};mxEdgeHandler.prototype.updateHint=function(c,b){null==this.hint&&(this.hint=a(),this.state.view.graph.container.appendChild(this.hint));var d=this.graph.view.translate,f=this.graph.view.scale,e=this.roundLength(b.x/f-d.x),d=this.roundLength(b.y/f-d.y);this.hint.innerHTML=e+", "+d;this.hint.style.visibility= +"visible";if(this.isSource||this.isTarget)null!=this.constraintHandler.currentConstraint&&null!=this.constraintHandler.currentFocus?(e=this.constraintHandler.currentConstraint.point,this.hint.innerHTML="["+Math.round(100*e.x)+"%, "+Math.round(100*e.y)+"%]"):this.marker.hasValidState()&&(this.hint.style.visibility="hidden");this.hint.style.left=Math.round(c.getGraphX()-this.hint.clientWidth/2)+"px";this.hint.style.top=Math.max(c.getGraphY(),b.y)+this.state.view.graph.gridSize+"px";null!=this.linkHint&& (this.linkHint.style.display="none")};mxEdgeHandler.prototype.removeHint=mxVertexHandler.prototype.removeHint;HoverIcons.prototype.mainHandle=mxClient.IS_SVG?Graph.createSvgImage(18,18,'<circle cx="9" cy="9" r="5" stroke="#fff" fill="'+HoverIcons.prototype.arrowFill+'" stroke-width="1"/>'):new mxImage(IMAGE_PATH+"/handle-main.png",17,17);HoverIcons.prototype.secondaryHandle=mxClient.IS_SVG?Graph.createSvgImage(16,16,'<path d="m 8 3 L 13 8 L 8 13 L 3 8 z" stroke="#fff" fill="#fca000"/>'):new mxImage(IMAGE_PATH+ "/handle-secondary.png",17,17);HoverIcons.prototype.fixedHandle=mxClient.IS_SVG?Graph.createSvgImage(18,18,'<circle cx="9" cy="9" r="5" stroke="#fff" fill="'+HoverIcons.prototype.arrowFill+'" stroke-width="1"/><path d="m 7 7 L 11 11 M 7 11 L 11 7" stroke="#fff"/>'):new mxImage(IMAGE_PATH+"/handle-fixed.png",17,17);HoverIcons.prototype.terminalHandle=mxClient.IS_SVG?Graph.createSvgImage(18,18,'<circle cx="9" cy="9" r="5" stroke="#fff" fill="'+HoverIcons.prototype.arrowFill+'" stroke-width="1"/><circle cx="9" cy="9" r="2" stroke="#fff" fill="transparent"/>'): new mxImage(IMAGE_PATH+"/handle-terminal.png",17,17);HoverIcons.prototype.rotationHandle=new mxImage(mxClient.IS_SVG?"data:image/png;base64,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": @@ -2410,146 +2412,146 @@ HoverIcons.prototype.triangleDown.src,(new Image).src=HoverIcons.prototype.trian !0;mxVertexHandler.prototype.rotationHandleVSpacing=-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||0<navigator.maxTouchPoints||0<navigator.msMaxTouchPoints)mxShape.prototype.svgStrokeTolerance=18,mxVertexHandler.prototype.tolerance=12,mxEdgeHandler.prototype.tolerance=12,Graph.prototype.tolerance=12,mxVertexHandler.prototype.rotationHandleVSpacing=-24,mxConstraintHandler.prototype.getTolerance=function(a){return mxEvent.isMouseEvent(a.getEvent())?4:this.graph.getTolerance()};mxPanningHandler.prototype.isPanningTrigger= function(a){var c=a.getEvent();return null==a.getState()&&!mxEvent.isMouseEvent(c)||mxEvent.isPopupTrigger(c)&&(null==a.getState()||mxEvent.isControlDown(c)||mxEvent.isShiftDown(c))};var r=mxGraphHandler.prototype.mouseDown;mxGraphHandler.prototype.mouseDown=function(a,c){r.apply(this,arguments);mxEvent.isTouchEvent(c.getEvent())&&this.graph.isCellSelected(c.getCell())&&1<this.graph.getSelectionCount()&&(this.delayedSelection=!1)}}else mxPanningHandler.prototype.isPanningTrigger=function(a){var c= -a.getEvent();return mxEvent.isLeftMouseButton(c)&&(this.useLeftButtonForPanning&&null==a.getState()||mxEvent.isControlDown(c)&&!mxEvent.isShiftDown(c))||this.usePopupTrigger&&mxEvent.isPopupTrigger(c)};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,c){var d=null!=this.div&&"none"!=this.div.style.display, -b=null,f=null,e=null,g=null;null!=this.first&&null!=this.currentX&&null!=this.currentY&&(b=this.first.x,f=this.first.y,e=(this.currentX-b)/this.graph.view.scale,g=(this.currentY-f)/this.graph.view.scale,mxEvent.isAltDown(c.getEvent())||(e=this.graph.snap(e),g=this.graph.snap(g),this.graph.isGridEnabled()||(Math.abs(e)<this.graph.tolerance&&(e=0),Math.abs(g)<this.graph.tolerance&&(g=0))));this.reset();if(d){if(mxEvent.isAltDown(c.getEvent())&&this.graph.isToggleEvent(c.getEvent())){var e=new mxRectangle(this.x, -this.y,this.width,this.height),k=this.graph.getCells(e.x,e.y,e.width,e.height);this.graph.removeSelectionCells(k)}else if(this.isSpaceEvent(c)){this.graph.model.beginUpdate();try{for(k=this.graph.getCellsBeyond(b,f,this.graph.getDefaultParent(),!0,!0),d=0;d<k.length;d++)if(this.graph.isCellMovable(k[d])){var l=this.graph.view.getState(k[d]),n=this.graph.getCellGeometry(k[d]);null!=l&&null!=n&&(n=n.clone(),n.translate(e,g),this.graph.model.setGeometry(k[d],n))}}finally{this.graph.model.endUpdate()}}else e= -new mxRectangle(this.x,this.y,this.width,this.height),this.graph.selectRegion(e,c.getEvent());c.consume()}};mxRubberband.prototype.mouseMove=function(a,c){if(!c.isConsumed()&&null!=this.first){var d=mxUtils.getScrollOrigin(this.graph.container),b=mxUtils.getOffset(this.graph.container);d.x-=b.x;d.y-=b.y;var b=c.getX()+d.x,d=c.getY()+d.y,f=this.first.x-b,e=this.first.y-d,g=this.graph.tolerance;if(null!=this.div||Math.abs(f)>g||Math.abs(e)>g)null==this.div&&(this.div=this.createShape()),mxUtils.clearSelection(), -this.update(b,d),this.isSpaceEvent(c)?(b=this.x+this.width,d=this.y+this.height,f=this.graph.view.scale,mxEvent.isAltDown(c.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.graph.tolerance&&(this.width=0),this.height<this.graph.tolerance&&(this.height=0)),this.x<this.first.x&&(this.x=b-this.width),this.y<this.first.y&&(this.y=d-this.height)),this.div.style.borderStyle="dashed",this.div.style.backgroundColor= +a.getEvent();return mxEvent.isLeftMouseButton(c)&&(this.useLeftButtonForPanning&&null==a.getState()||mxEvent.isControlDown(c)&&!mxEvent.isShiftDown(c))||this.usePopupTrigger&&mxEvent.isPopupTrigger(c)};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,c){var b=null!=this.div&&"none"!=this.div.style.display, +d=null,f=null,e=null,g=null;null!=this.first&&null!=this.currentX&&null!=this.currentY&&(d=this.first.x,f=this.first.y,e=(this.currentX-d)/this.graph.view.scale,g=(this.currentY-f)/this.graph.view.scale,mxEvent.isAltDown(c.getEvent())||(e=this.graph.snap(e),g=this.graph.snap(g),this.graph.isGridEnabled()||(Math.abs(e)<this.graph.tolerance&&(e=0),Math.abs(g)<this.graph.tolerance&&(g=0))));this.reset();if(b){if(mxEvent.isAltDown(c.getEvent())&&this.graph.isToggleEvent(c.getEvent())){var e=new mxRectangle(this.x, +this.y,this.width,this.height),h=this.graph.getCells(e.x,e.y,e.width,e.height);this.graph.removeSelectionCells(h)}else if(this.isSpaceEvent(c)){this.graph.model.beginUpdate();try{for(h=this.graph.getCellsBeyond(d,f,this.graph.getDefaultParent(),!0,!0),b=0;b<h.length;b++)if(this.graph.isCellMovable(h[b])){var n=this.graph.view.getState(h[b]),m=this.graph.getCellGeometry(h[b]);null!=n&&null!=m&&(m=m.clone(),m.translate(e,g),this.graph.model.setGeometry(h[b],m))}}finally{this.graph.model.endUpdate()}}else e= +new mxRectangle(this.x,this.y,this.width,this.height),this.graph.selectRegion(e,c.getEvent());c.consume()}};mxRubberband.prototype.mouseMove=function(a,c){if(!c.isConsumed()&&null!=this.first){var b=mxUtils.getScrollOrigin(this.graph.container),d=mxUtils.getOffset(this.graph.container);b.x-=d.x;b.y-=d.y;var d=c.getX()+b.x,b=c.getY()+b.y,f=this.first.x-d,e=this.first.y-b,g=this.graph.tolerance;if(null!=this.div||Math.abs(f)>g||Math.abs(e)>g)null==this.div&&(this.div=this.createShape()),mxUtils.clearSelection(), +this.update(d,b),this.isSpaceEvent(c)?(d=this.x+this.width,b=this.y+this.height,f=this.graph.view.scale,mxEvent.isAltDown(c.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.graph.tolerance&&(this.width=0),this.height<this.graph.tolerance&&(this.height=0)),this.x<this.first.x&&(this.x=d-this.width),this.y<this.first.y&&(this.y=b-this.height)),this.div.style.borderStyle="dashed",this.div.style.backgroundColor= "white",this.div.style.left=this.x+"px",this.div.style.top=this.y+"px",this.div.style.width=Math.max(0,this.width)+"px",this.div.style.height=this.graph.container.clientHeight+"px",this.div.style.borderWidth=0>=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)),c.consume()}};var l=mxRubberband.prototype.reset;mxRubberband.prototype.reset=function(){null!=this.secondDiv&&(this.secondDiv.parentNode.removeChild(this.secondDiv), -this.secondDiv=null);l.apply(this,arguments)};var n=(new Date).getTime(),w=0,v=mxEdgeHandler.prototype.updatePreviewState;mxEdgeHandler.prototype.updatePreviewState=function(a,c,d,b){v.apply(this,arguments);d!=this.currentTerminalState?(n=(new Date).getTime(),w=0):w=(new Date).getTime()-n;this.currentTerminalState=d};var B=mxEdgeHandler.prototype.isOutlineConnectEvent;mxEdgeHandler.prototype.isOutlineConnectEvent=function(a){return null!=this.currentTerminalState&&a.getState()==this.currentTerminalState&& -2E3<w||(null==this.currentTerminalState||"0"!=mxUtils.getValue(this.currentTerminalState.style,"outlineConnect","1"))&&B.apply(this,arguments)};mxVertexHandler.prototype.isCustomHandleEvent=function(a){return!mxEvent.isShiftDown(a.getEvent())};mxEdgeHandler.prototype.createHandleShape=function(a,c){var d=null!=a&&0==a,b=this.state.getVisibleTerminalState(d),f=null!=a&&(0==a||a>=this.state.absolutePoints.length-1||this.constructor==mxElbowEdgeHandler&&2==a)?this.graph.getConnectionConstraint(this.state, -b,d):null,d=null!=(null!=f?this.graph.getConnectionPoint(this.state.getVisibleTerminalState(d),f):null)?this.fixedHandleImage:null!=f&&null!=b?this.terminalHandleImage:this.handleImage;if(null!=d)return d=new mxImageShape(new mxRectangle(0,0,d.width,d.height),d.src),d.preserveImageAspect=!1,d;d=mxConstants.HANDLE_SIZE;this.preferHtml&&--d;return new mxRectangleShape(new mxRectangle(0,0,d,d),mxConstants.HANDLE_FILLCOLOR,mxConstants.HANDLE_STROKECOLOR)};var y=mxVertexHandler.prototype.createSizerShape; -mxVertexHandler.prototype.createSizerShape=function(a,c,d){this.handleImage=c==mxEvent.ROTATION_HANDLE?HoverIcons.prototype.rotationHandle:c==mxEvent.LABEL_HANDLE?this.secondaryHandleImage:this.handleImage;return y.apply(this,arguments)};var t=mxGraphHandler.prototype.getBoundingBox;mxGraphHandler.prototype.getBoundingBox=function(a){if(null!=a&&1==a.length){var c=this.graph.getModel(),d=c.getParent(a[0]),b=this.graph.getCellGeometry(a[0]);if(c.isEdge(d)&&null!=b&&b.relative&&(c=this.graph.view.getState(a[0]), -null!=c&&2>c.width&&2>c.height&&null!=c.text&&null!=c.text.boundingBox))return mxRectangle.fromRectangle(c.text.boundingBox)}return t.apply(this,arguments)};var z=mxVertexHandler.prototype.getSelectionBounds;mxVertexHandler.prototype.getSelectionBounds=function(a){var c=this.graph.getModel(),d=c.getParent(a.cell),b=this.graph.getCellGeometry(a.cell);return c.isEdge(d)&&null!=b&&b.relative&&2>a.width&&2>a.height&&null!=a.text&&null!=a.text.boundingBox?(c=a.text.unrotatedBoundingBox||a.text.boundingBox, -new mxRectangle(Math.round(c.x),Math.round(c.y),Math.round(c.width),Math.round(c.height))):z.apply(this,arguments)};var H=mxVertexHandler.prototype.mouseDown;mxVertexHandler.prototype.mouseDown=function(a,c){var d=this.graph.getModel(),b=d.getParent(this.state.cell),f=this.graph.getCellGeometry(this.state.cell);(this.getHandleForEvent(c)==mxEvent.ROTATION_HANDLE||!d.isEdge(b)||null==f||!f.relative||null==this.state||2<=this.state.width||2<=this.state.height)&&H.apply(this,arguments)};mxVertexHandler.prototype.isRotationHandleVisible= +"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)),c.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(),w=0,v=mxEdgeHandler.prototype.updatePreviewState;mxEdgeHandler.prototype.updatePreviewState=function(a,c,b,d){v.apply(this,arguments);b!=this.currentTerminalState?(m=(new Date).getTime(),w=0):w=(new Date).getTime()-m;this.currentTerminalState=b};var A=mxEdgeHandler.prototype.isOutlineConnectEvent;mxEdgeHandler.prototype.isOutlineConnectEvent=function(a){return null!=this.currentTerminalState&&a.getState()==this.currentTerminalState&& +2E3<w||(null==this.currentTerminalState||"0"!=mxUtils.getValue(this.currentTerminalState.style,"outlineConnect","1"))&&A.apply(this,arguments)};mxVertexHandler.prototype.isCustomHandleEvent=function(a){return!mxEvent.isShiftDown(a.getEvent())};mxEdgeHandler.prototype.createHandleShape=function(a,c){var b=null!=a&&0==a,d=this.state.getVisibleTerminalState(b),f=null!=a&&(0==a||a>=this.state.absolutePoints.length-1||this.constructor==mxElbowEdgeHandler&&2==a)?this.graph.getConnectionConstraint(this.state, +d,b):null,b=null!=(null!=f?this.graph.getConnectionPoint(this.state.getVisibleTerminalState(b),f):null)?this.fixedHandleImage:null!=f&&null!=d?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 y=mxVertexHandler.prototype.createSizerShape; +mxVertexHandler.prototype.createSizerShape=function(a,c,b){this.handleImage=c==mxEvent.ROTATION_HANDLE?HoverIcons.prototype.rotationHandle:c==mxEvent.LABEL_HANDLE?this.secondaryHandleImage:this.handleImage;return y.apply(this,arguments)};var t=mxGraphHandler.prototype.getBoundingBox;mxGraphHandler.prototype.getBoundingBox=function(a){if(null!=a&&1==a.length){var c=this.graph.getModel(),b=c.getParent(a[0]),d=this.graph.getCellGeometry(a[0]);if(c.isEdge(b)&&null!=d&&d.relative&&(c=this.graph.view.getState(a[0]), +null!=c&&2>c.width&&2>c.height&&null!=c.text&&null!=c.text.boundingBox))return mxRectangle.fromRectangle(c.text.boundingBox)}return t.apply(this,arguments)};var z=mxVertexHandler.prototype.getSelectionBounds;mxVertexHandler.prototype.getSelectionBounds=function(a){var c=this.graph.getModel(),b=c.getParent(a.cell),d=this.graph.getCellGeometry(a.cell);return c.isEdge(b)&&null!=d&&d.relative&&2>a.width&&2>a.height&&null!=a.text&&null!=a.text.boundingBox?(c=a.text.unrotatedBoundingBox||a.text.boundingBox, +new mxRectangle(Math.round(c.x),Math.round(c.y),Math.round(c.width),Math.round(c.height))):z.apply(this,arguments)};var H=mxVertexHandler.prototype.mouseDown;mxVertexHandler.prototype.mouseDown=function(a,c){var b=this.graph.getModel(),d=b.getParent(this.state.cell),f=this.graph.getCellGeometry(this.state.cell);(this.getHandleForEvent(c)==mxEvent.ROTATION_HANDLE||!b.isEdge(d)||null==f||!f.relative||null==this.state||2<=this.state.width||2<=this.state.height)&&H.apply(this,arguments)};mxVertexHandler.prototype.isRotationHandleVisible= function(){return this.graph.isEnabled()&&this.rotationEnabled&&this.graph.isCellRotatable(this.state.cell)&&(0>=mxGraphHandler.prototype.maxCells||this.graph.getSelectionCount()<mxGraphHandler.prototype.maxCells)};mxVertexHandler.prototype.rotateClick=function(){this.state.view.graph.turnShapes([this.state.cell])};var G=mxVertexHandler.prototype.mouseMove;mxVertexHandler.prototype.mouseMove=function(a,c){G.apply(this,arguments);null!=this.graph.graphHandler.first&&null!=this.rotationShape&&null!= -this.rotationShape.node&&(this.rotationShape.node.style.display="none")};var A=mxVertexHandler.prototype.mouseUp;mxVertexHandler.prototype.mouseUp=function(a,c){A.apply(this,arguments);null!=this.rotationShape&&null!=this.rotationShape.node&&(this.rotationShape.node.style.display=1==this.graph.getSelectionCount()?"":"none")};var J=mxVertexHandler.prototype.init;mxVertexHandler.prototype.init=function(){J.apply(this,arguments);var a=!1;null!=this.rotationShape&&this.rotationShape.node.setAttribute("title", -mxResources.get("rotateTooltip"));var c=mxUtils.bind(this,function(){null!=this.rotationShape&&null!=this.rotationShape.node&&(this.rotationShape.node.style.display=1==this.graph.getSelectionCount()?"":"none");null!=this.specialHandle&&(this.specialHandle.node.style.display=this.graph.isEnabled()&&this.graph.getSelectionCount()<this.graph.graphHandler.maxCells?"":"none");this.redrawHandles()});this.selectionHandler=mxUtils.bind(this,function(a,d){c()});this.graph.getSelectionModel().addListener(mxEvent.CHANGE, -this.selectionHandler);this.changeHandler=mxUtils.bind(this,function(a,d){this.updateLinkHint(this.graph.getLinkForCell(this.state.cell),this.graph.getLinksForState(this.state));c()});this.graph.getModel().addListener(mxEvent.CHANGE,this.changeHandler);this.editingHandler=mxUtils.bind(this,function(a,c){this.redrawHandles()});this.graph.addListener(mxEvent.EDITING_STOPPED,this.editingHandler);var d=this.graph.getLinkForCell(this.state.cell),b=this.graph.getLinksForState(this.state);this.updateLinkHint(d, -b);if(null!=d||null!=b&&0<b.length)a=!0;a&&this.redrawHandles()};mxVertexHandler.prototype.updateLinkHint=function(c,d){if(null==c&&(null==d||0==d.length)||1<this.graph.getSelectionCount())null!=this.linkHint&&(this.linkHint.parentNode.removeChild(this.linkHint),this.linkHint=null);else if(null!=c||null!=d&&0<d.length){null==this.linkHint&&(this.linkHint=a(),this.linkHint.style.padding="6px 8px 6px 8px",this.linkHint.style.opacity="1",this.linkHint.style.filter="",this.graph.container.appendChild(this.linkHint)); -this.linkHint.innerHTML="";if(null!=c&&(this.linkHint.appendChild(this.graph.createLinkForHint(c)),this.graph.isEnabled()&&"function"===typeof this.graph.editLink)){var b=document.createElement("img");b.setAttribute("src",Editor.editImage);b.setAttribute("title",mxResources.get("editLink"));b.setAttribute("width","11");b.setAttribute("height","11");b.style.marginLeft="10px";b.style.marginBottom="-1px";b.style.cursor="pointer";this.linkHint.appendChild(b);mxEvent.addListener(b,"click",mxUtils.bind(this, -function(a){this.graph.setSelectionCell(this.state.cell);this.graph.editLink();mxEvent.consume(a)}));b=document.createElement("img");b.setAttribute("src",Dialog.prototype.clearImage);b.setAttribute("title",mxResources.get("removeIt",[mxResources.get("link")]));b.setAttribute("width","13");b.setAttribute("height","10");b.style.marginLeft="4px";b.style.marginBottom="-1px";b.style.cursor="pointer";this.linkHint.appendChild(b);mxEvent.addListener(b,"click",mxUtils.bind(this,function(a){this.graph.setLinkForCell(this.state.cell, -null);mxEvent.consume(a)}))}if(null!=d)for(b=0;b<d.length;b++){var f=document.createElement("div");f.style.marginTop=null!=c||0<b?"6px":"0px";f.appendChild(this.graph.createLinkForHint(d[b].getAttribute("href"),mxUtils.getTextContent(d[b])));this.linkHint.appendChild(f)}}};mxEdgeHandler.prototype.updateLinkHint=mxVertexHandler.prototype.updateLinkHint;var K=mxEdgeHandler.prototype.init;mxEdgeHandler.prototype.init=function(){K.apply(this,arguments);this.constraintHandler.isEnabled=mxUtils.bind(this, -function(){return this.state.view.graph.connectionHandler.isEnabled()});var a=mxUtils.bind(this,function(){null!=this.linkHint&&(this.linkHint.style.display=1==this.graph.getSelectionCount()?"":"none");null!=this.labelShape&&(this.labelShape.node.style.display=this.graph.isEnabled()&&this.graph.getSelectionCount()<this.graph.graphHandler.maxCells?"":"none")});this.selectionHandler=mxUtils.bind(this,function(c,d){a()});this.graph.getSelectionModel().addListener(mxEvent.CHANGE,this.selectionHandler); -this.changeHandler=mxUtils.bind(this,function(c,d){this.updateLinkHint(this.graph.getLinkForCell(this.state.cell),this.graph.getLinksForState(this.state));a();this.redrawHandles()});this.graph.getModel().addListener(mxEvent.CHANGE,this.changeHandler);var c=this.graph.getLinkForCell(this.state.cell),d=this.graph.getLinksForState(this.state);if(null!=c||null!=d&&0<d.length)this.updateLinkHint(c,d),this.redrawHandles()};var x=mxConnectionHandler.prototype.init;mxConnectionHandler.prototype.init=function(){x.apply(this, -arguments);this.constraintHandler.isEnabled=mxUtils.bind(this,function(){return this.graph.connectionHandler.isEnabled()})};var C=mxVertexHandler.prototype.redrawHandles;mxVertexHandler.prototype.redrawHandles=function(){C.apply(this);if(null!=this.state&&null!=this.linkHint){var a=new mxPoint(this.state.getCenterX(),this.state.getCenterY()),c=new mxRectangle(this.state.x,this.state.y-22,this.state.width+24,this.state.height+22),d=mxUtils.getBoundingBox(c,this.state.style[mxConstants.STYLE_ROTATION]|| -"0",a),a=null!=d?mxUtils.getBoundingBox(this.state,this.state.style[mxConstants.STYLE_ROTATION]||"0"):this.state,c=null!=this.state.text?this.state.text.boundingBox:null;null==d&&(d=this.state);d=d.y+d.height;null!=c&&(d=Math.max(d,c.y+c.height));this.linkHint.style.left=Math.max(0,Math.round(a.x+(a.width-this.linkHint.clientWidth)/2))+"px";this.linkHint.style.top=Math.round(d+this.verticalOffset/2+6+this.state.view.graph.tolerance)+"px"}};var I=mxVertexHandler.prototype.reset;mxVertexHandler.prototype.reset= +this.rotationShape.node&&(this.rotationShape.node.style.display="none")};var B=mxVertexHandler.prototype.mouseUp;mxVertexHandler.prototype.mouseUp=function(a,c){B.apply(this,arguments);null!=this.rotationShape&&null!=this.rotationShape.node&&(this.rotationShape.node.style.display=1==this.graph.getSelectionCount()?"":"none")};var J=mxVertexHandler.prototype.init;mxVertexHandler.prototype.init=function(){J.apply(this,arguments);var a=!1;null!=this.rotationShape&&this.rotationShape.node.setAttribute("title", +mxResources.get("rotateTooltip"));var c=mxUtils.bind(this,function(){null!=this.rotationShape&&null!=this.rotationShape.node&&(this.rotationShape.node.style.display=1==this.graph.getSelectionCount()?"":"none");null!=this.specialHandle&&(this.specialHandle.node.style.display=this.graph.isEnabled()&&this.graph.getSelectionCount()<this.graph.graphHandler.maxCells?"":"none");this.redrawHandles()});this.selectionHandler=mxUtils.bind(this,function(a,b){c()});this.graph.getSelectionModel().addListener(mxEvent.CHANGE, +this.selectionHandler);this.changeHandler=mxUtils.bind(this,function(a,b){this.updateLinkHint(this.graph.getLinkForCell(this.state.cell),this.graph.getLinksForState(this.state));c()});this.graph.getModel().addListener(mxEvent.CHANGE,this.changeHandler);this.editingHandler=mxUtils.bind(this,function(a,c){this.redrawHandles()});this.graph.addListener(mxEvent.EDITING_STOPPED,this.editingHandler);var b=this.graph.getLinkForCell(this.state.cell),d=this.graph.getLinksForState(this.state);this.updateLinkHint(b, +d);if(null!=b||null!=d&&0<d.length)a=!0;a&&this.redrawHandles()};mxVertexHandler.prototype.updateLinkHint=function(c,b){if(null==c&&(null==b||0==b.length)||1<this.graph.getSelectionCount())null!=this.linkHint&&(this.linkHint.parentNode.removeChild(this.linkHint),this.linkHint=null);else if(null!=c||null!=b&&0<b.length){null==this.linkHint&&(this.linkHint=a(),this.linkHint.style.padding="6px 8px 6px 8px",this.linkHint.style.opacity="1",this.linkHint.style.filter="",this.graph.container.appendChild(this.linkHint)); +this.linkHint.innerHTML="";if(null!=c&&(this.linkHint.appendChild(this.graph.createLinkForHint(c)),this.graph.isEnabled()&&"function"===typeof this.graph.editLink)){var d=document.createElement("img");d.setAttribute("src",Editor.editImage);d.setAttribute("title",mxResources.get("editLink"));d.setAttribute("width","11");d.setAttribute("height","11");d.style.marginLeft="10px";d.style.marginBottom="-1px";d.style.cursor="pointer";this.linkHint.appendChild(d);mxEvent.addListener(d,"click",mxUtils.bind(this, +function(a){this.graph.setSelectionCell(this.state.cell);this.graph.editLink();mxEvent.consume(a)}));d=document.createElement("img");d.setAttribute("src",Dialog.prototype.clearImage);d.setAttribute("title",mxResources.get("removeIt",[mxResources.get("link")]));d.setAttribute("width","13");d.setAttribute("height","10");d.style.marginLeft="4px";d.style.marginBottom="-1px";d.style.cursor="pointer";this.linkHint.appendChild(d);mxEvent.addListener(d,"click",mxUtils.bind(this,function(a){this.graph.setLinkForCell(this.state.cell, +null);mxEvent.consume(a)}))}if(null!=b)for(d=0;d<b.length;d++){var f=document.createElement("div");f.style.marginTop=null!=c||0<d?"6px":"0px";f.appendChild(this.graph.createLinkForHint(b[d].getAttribute("href"),mxUtils.getTextContent(b[d])));this.linkHint.appendChild(f)}}};mxEdgeHandler.prototype.updateLinkHint=mxVertexHandler.prototype.updateLinkHint;var K=mxEdgeHandler.prototype.init;mxEdgeHandler.prototype.init=function(){K.apply(this,arguments);this.constraintHandler.isEnabled=mxUtils.bind(this, +function(){return this.state.view.graph.connectionHandler.isEnabled()});var a=mxUtils.bind(this,function(){null!=this.linkHint&&(this.linkHint.style.display=1==this.graph.getSelectionCount()?"":"none");null!=this.labelShape&&(this.labelShape.node.style.display=this.graph.isEnabled()&&this.graph.getSelectionCount()<this.graph.graphHandler.maxCells?"":"none")});this.selectionHandler=mxUtils.bind(this,function(c,b){a()});this.graph.getSelectionModel().addListener(mxEvent.CHANGE,this.selectionHandler); +this.changeHandler=mxUtils.bind(this,function(c,b){this.updateLinkHint(this.graph.getLinkForCell(this.state.cell),this.graph.getLinksForState(this.state));a();this.redrawHandles()});this.graph.getModel().addListener(mxEvent.CHANGE,this.changeHandler);var c=this.graph.getLinkForCell(this.state.cell),b=this.graph.getLinksForState(this.state);if(null!=c||null!=b&&0<b.length)this.updateLinkHint(c,b),this.redrawHandles()};var x=mxConnectionHandler.prototype.init;mxConnectionHandler.prototype.init=function(){x.apply(this, +arguments);this.constraintHandler.isEnabled=mxUtils.bind(this,function(){return this.graph.connectionHandler.isEnabled()})};var C=mxVertexHandler.prototype.redrawHandles;mxVertexHandler.prototype.redrawHandles=function(){C.apply(this);if(null!=this.state&&null!=this.linkHint){var a=new mxPoint(this.state.getCenterX(),this.state.getCenterY()),c=new mxRectangle(this.state.x,this.state.y-22,this.state.width+24,this.state.height+22),b=mxUtils.getBoundingBox(c,this.state.style[mxConstants.STYLE_ROTATION]|| +"0",a),a=null!=b?mxUtils.getBoundingBox(this.state,this.state.style[mxConstants.STYLE_ROTATION]||"0"):this.state,c=null!=this.state.text?this.state.text.boundingBox:null;null==b&&(b=this.state);b=b.y+b.height;null!=c&&(b=Math.max(b,c.y+c.height));this.linkHint.style.left=Math.max(0,Math.round(a.x+(a.width-this.linkHint.clientWidth)/2))+"px";this.linkHint.style.top=Math.round(b+this.verticalOffset/2+6+this.state.view.graph.tolerance)+"px"}};var I=mxVertexHandler.prototype.reset;mxVertexHandler.prototype.reset= function(){I.apply(this,arguments);null!=this.rotationShape&&null!=this.rotationShape.node&&(this.rotationShape.node.style.display=1==this.graph.getSelectionCount()?"":"none")};var R=mxVertexHandler.prototype.destroy;mxVertexHandler.prototype.destroy=function(){R.apply(this,arguments);null!=this.linkHint&&(this.linkHint.parentNode.removeChild(this.linkHint),this.linkHint=null);null!=this.selectionHandler&&(this.graph.getSelectionModel().removeListener(this.selectionHandler),this.selectionHandler= null);null!=this.changeHandler&&(this.graph.getModel().removeListener(this.changeHandler),this.changeHandler=null);null!=this.editingHandler&&(this.graph.removeListener(this.editingHandler),this.editingHandler=null)};var P=mxEdgeHandler.prototype.redrawHandles;mxEdgeHandler.prototype.redrawHandles=function(){if(null!=this.marker&&(P.apply(this),null!=this.state&&null!=this.linkHint)){var a=this.state;null!=this.state.text&&null!=this.state.text.bounds&&(a=new mxRectangle(a.x,a.y,a.width,a.height), a.add(this.state.text.bounds));this.linkHint.style.left=Math.max(0,Math.round(a.x+(a.width-this.linkHint.clientWidth)/2))+"px";this.linkHint.style.top=Math.round(a.y+a.height+6+this.state.view.graph.tolerance)+"px"}};var X=mxEdgeHandler.prototype.reset;mxEdgeHandler.prototype.reset=function(){X.apply(this,arguments);null!=this.linkHint&&(this.linkHint.style.visibility="")};var U=mxEdgeHandler.prototype.destroy;mxEdgeHandler.prototype.destroy=function(){U.apply(this,arguments);null!=this.linkHint&& -(this.linkHint.parentNode.removeChild(this.linkHint),this.linkHint=null);null!=this.selectionHandler&&(this.graph.getSelectionModel().removeListener(this.selectionHandler),this.selectionHandler=null);null!=this.changeHandler&&(this.graph.getModel().removeListener(this.changeHandler),this.changeHandler=null)}}();(function(){function a(){mxCylinder.call(this)}function d(){mxActor.call(this)}function e(){mxCylinder.call(this)}function b(){mxCylinder.call(this)}function h(){mxCylinder.call(this)}function m(){mxActor.call(this)}function p(){mxCylinder.call(this)}function q(){mxActor.call(this)}function u(){mxActor.call(this)}function c(){mxActor.call(this)}function f(){mxActor.call(this)}function g(){mxActor.call(this)}function k(){mxActor.call(this)}function r(){mxActor.call(this)}function l(a,c){this.canvas= -a;this.canvas.setLineJoin("round");this.canvas.setLineCap("round");this.defaultVariation=c;this.originalLineTo=this.canvas.lineTo;this.canvas.lineTo=mxUtils.bind(this,l.prototype.lineTo);this.originalMoveTo=this.canvas.moveTo;this.canvas.moveTo=mxUtils.bind(this,l.prototype.moveTo);this.originalClose=this.canvas.close;this.canvas.close=mxUtils.bind(this,l.prototype.close);this.originalQuadTo=this.canvas.quadTo;this.canvas.quadTo=mxUtils.bind(this,l.prototype.quadTo);this.originalCurveTo=this.canvas.curveTo; -this.canvas.curveTo=mxUtils.bind(this,l.prototype.curveTo);this.originalArcTo=this.canvas.arcTo;this.canvas.arcTo=mxUtils.bind(this,l.prototype.arcTo)}function n(){mxRectangleShape.call(this)}function w(){mxRectangleShape.call(this)}function v(){mxActor.call(this)}function B(){mxActor.call(this)}function y(){mxActor.call(this)}function t(){mxRectangleShape.call(this)}function z(){mxRectangleShape.call(this)}function H(){mxCylinder.call(this)}function G(){mxShape.call(this)}function A(){mxShape.call(this)} +(this.linkHint.parentNode.removeChild(this.linkHint),this.linkHint=null);null!=this.selectionHandler&&(this.graph.getSelectionModel().removeListener(this.selectionHandler),this.selectionHandler=null);null!=this.changeHandler&&(this.graph.getModel().removeListener(this.changeHandler),this.changeHandler=null)}}();(function(){function a(){mxCylinder.call(this)}function b(){mxActor.call(this)}function e(){mxCylinder.call(this)}function d(){mxCylinder.call(this)}function k(){mxCylinder.call(this)}function l(){mxActor.call(this)}function p(){mxCylinder.call(this)}function q(){mxActor.call(this)}function u(){mxActor.call(this)}function c(){mxActor.call(this)}function f(){mxActor.call(this)}function g(){mxActor.call(this)}function n(){mxActor.call(this)}function r(){mxActor.call(this)}function h(a,c){this.canvas= +a;this.canvas.setLineJoin("round");this.canvas.setLineCap("round");this.defaultVariation=c;this.originalLineTo=this.canvas.lineTo;this.canvas.lineTo=mxUtils.bind(this,h.prototype.lineTo);this.originalMoveTo=this.canvas.moveTo;this.canvas.moveTo=mxUtils.bind(this,h.prototype.moveTo);this.originalClose=this.canvas.close;this.canvas.close=mxUtils.bind(this,h.prototype.close);this.originalQuadTo=this.canvas.quadTo;this.canvas.quadTo=mxUtils.bind(this,h.prototype.quadTo);this.originalCurveTo=this.canvas.curveTo; +this.canvas.curveTo=mxUtils.bind(this,h.prototype.curveTo);this.originalArcTo=this.canvas.arcTo;this.canvas.arcTo=mxUtils.bind(this,h.prototype.arcTo)}function m(){mxRectangleShape.call(this)}function w(){mxRectangleShape.call(this)}function v(){mxActor.call(this)}function A(){mxActor.call(this)}function y(){mxActor.call(this)}function t(){mxRectangleShape.call(this)}function z(){mxRectangleShape.call(this)}function H(){mxCylinder.call(this)}function G(){mxShape.call(this)}function B(){mxShape.call(this)} function J(){mxEllipse.call(this)}function K(){mxShape.call(this)}function x(){mxShape.call(this)}function C(){mxRectangleShape.call(this)}function I(){mxShape.call(this)}function R(){mxShape.call(this)}function P(){mxShape.call(this)}function X(){mxShape.call(this)}function U(){mxShape.call(this)}function F(){mxCylinder.call(this)}function ea(){mxDoubleEllipse.call(this)}function ka(){mxDoubleEllipse.call(this)}function Y(){mxArrowConnector.call(this);this.spacing=0}function ba(){mxArrowConnector.call(this); this.spacing=0}function L(){mxActor.call(this)}function E(){mxRectangleShape.call(this)}function S(){mxActor.call(this)}function M(){mxActor.call(this)}function N(){mxActor.call(this)}function T(){mxActor.call(this)}function D(){mxActor.call(this)}function Q(){mxActor.call(this)}function V(){mxActor.call(this)}function ga(){mxActor.call(this)}function W(){mxActor.call(this)}function aa(){mxActor.call(this)}function Z(){mxEllipse.call(this)}function pa(){mxEllipse.call(this)}function ra(){mxEllipse.call(this)} -function fa(){mxRhombus.call(this)}function ma(){mxEllipse.call(this)}function ta(){mxEllipse.call(this)}function la(){mxEllipse.call(this)}function sa(){mxEllipse.call(this)}function ha(){mxActor.call(this)}function ca(){mxActor.call(this)}function da(){mxActor.call(this)}function ia(){mxConnector.call(this)}function wa(a,c,d,b,f,e,g,k,l,n){g+=l;var na=b.clone();b.x-=f*(2*g+l);b.y-=e*(2*g+l);f*=g+l;e*=g+l;return function(){a.ellipse(na.x-f-g,na.y-e-g,2*g,2*g);n?a.fillAndStroke():a.stroke()}}mxUtils.extend(a, -mxCylinder);a.prototype.size=20;a.prototype.redrawPath=function(a,c,d,b,f,e){c=Math.max(0,Math.min(b,Math.min(f,parseFloat(mxUtils.getValue(this.style,"size",this.size)))));e?(a.moveTo(c,f),a.lineTo(c,c),a.lineTo(0,0),a.moveTo(c,c),a.lineTo(b,c)):(a.moveTo(0,0),a.lineTo(b-c,0),a.lineTo(b,c),a.lineTo(b,f),a.lineTo(c,f),a.lineTo(0,f-c),a.lineTo(0,0),a.close());a.end()};a.prototype.getLabelMargins=function(a){return mxUtils.getValue(this.style,"boundedLbl",!1)?(a=parseFloat(mxUtils.getValue(this.style, -"size",this.size))*this.scale,new mxRectangle(a,a,0,0)):null};mxCellRenderer.registerShape("cube",a);var Ba=Math.tan(mxUtils.toRadians(30)),qa=(.5-Ba)/2;mxUtils.extend(d,mxActor);d.prototype.size=20;d.prototype.redrawPath=function(a,c,d,b,f){c=Math.min(b,f/Ba);a.translate((b-c)/2,(f-c)/2+c/4);a.moveTo(0,.25*c);a.lineTo(.5*c,c*qa);a.lineTo(c,.25*c);a.lineTo(.5*c,(.5-qa)*c);a.lineTo(0,.25*c);a.close();a.end()};mxCellRenderer.registerShape("isoRectangle",d);mxUtils.extend(e,mxCylinder);e.prototype.size= -20;e.prototype.redrawPath=function(a,c,d,b,f,e){c=Math.min(b,f/(.5+Ba));e?(a.moveTo(0,.25*c),a.lineTo(.5*c,(.5-qa)*c),a.lineTo(c,.25*c),a.moveTo(.5*c,(.5-qa)*c),a.lineTo(.5*c,(1-qa)*c)):(a.translate((b-c)/2,(f-c)/2),a.moveTo(0,.25*c),a.lineTo(.5*c,c*qa),a.lineTo(c,.25*c),a.lineTo(c,.75*c),a.lineTo(.5*c,(1-qa)*c),a.lineTo(0,.75*c),a.close());a.end()};mxCellRenderer.registerShape("isoCube",e);mxUtils.extend(b,mxCylinder);b.prototype.redrawPath=function(a,c,d,b,f,e){c=Math.min(f/2,Math.round(f/8)+this.strokewidth- -1);if(e&&null!=this.fill||!e&&null==this.fill)a.moveTo(0,c),a.curveTo(0,2*c,b,2*c,b,c),e||(a.stroke(),a.begin()),a.translate(0,c/2),a.moveTo(0,c),a.curveTo(0,2*c,b,2*c,b,c),e||(a.stroke(),a.begin()),a.translate(0,c/2),a.moveTo(0,c),a.curveTo(0,2*c,b,2*c,b,c),e||(a.stroke(),a.begin()),a.translate(0,-c);e||(a.moveTo(0,c),a.curveTo(0,-c/3,b,-c/3,b,c),a.lineTo(b,f-c),a.curveTo(b,f+c/3,0,f+c/3,0,f-c),a.close())};b.prototype.getLabelMargins=function(a){return new mxRectangle(0,2.5*Math.min(a.height/2,Math.round(a.height/ -8)+this.strokewidth-1)*this.scale,0,0)};mxCellRenderer.registerShape("datastore",b);mxUtils.extend(h,mxCylinder);h.prototype.size=30;h.prototype.redrawPath=function(a,c,d,b,f,e){c=Math.max(0,Math.min(b,Math.min(f,parseFloat(mxUtils.getValue(this.style,"size",this.size)))));e?(a.moveTo(b-c,0),a.lineTo(b-c,c),a.lineTo(b,c)):(a.moveTo(0,0),a.lineTo(b-c,0),a.lineTo(b,c),a.lineTo(b,f),a.lineTo(0,f),a.lineTo(0,0),a.close());a.end()};mxCellRenderer.registerShape("note",h);mxUtils.extend(m,mxActor);m.prototype.redrawPath= -function(a,c,d,b,f){a.moveTo(0,0);a.quadTo(b/2,.5*f,b,0);a.quadTo(.5*b,f/2,b,f);a.quadTo(b/2,.5*f,0,f);a.quadTo(.5*b,f/2,0,0);a.end()};mxCellRenderer.registerShape("switch",m);mxUtils.extend(p,mxCylinder);p.prototype.tabWidth=60;p.prototype.tabHeight=20;p.prototype.tabPosition="right";p.prototype.redrawPath=function(a,c,d,b,f,e){c=Math.max(0,Math.min(b,parseFloat(mxUtils.getValue(this.style,"tabWidth",this.tabWidth))));d=Math.max(0,Math.min(f,parseFloat(mxUtils.getValue(this.style,"tabHeight",this.tabHeight)))); -var g=mxUtils.getValue(this.style,"tabPosition",this.tabPosition);e?"left"==g?(a.moveTo(0,d),a.lineTo(c,d)):(a.moveTo(b-c,d),a.lineTo(b,d)):("left"==g?(a.moveTo(0,0),a.lineTo(c,0),a.lineTo(c,d),a.lineTo(b,d)):(a.moveTo(0,d),a.lineTo(b-c,d),a.lineTo(b-c,0),a.lineTo(b,0)),a.lineTo(b,f),a.lineTo(0,f),a.lineTo(0,d),a.close());a.end()};mxCellRenderer.registerShape("folder",p);mxUtils.extend(q,mxActor);q.prototype.size=30;q.prototype.isRoundable=function(){return!0};q.prototype.redrawPath=function(a,c, -d,b,f){c=Math.max(0,Math.min(b,Math.min(f,parseFloat(mxUtils.getValue(this.style,"size",this.size)))));d=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(c,0),new mxPoint(b,0),new mxPoint(b,f),new mxPoint(0,f),new mxPoint(0,c)],this.isRounded,d,!0);a.end()};mxCellRenderer.registerShape("card",q);mxUtils.extend(u,mxActor);u.prototype.size=.4;u.prototype.redrawPath=function(a,c,d,b,f){c=f*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style, -"size",this.size))));a.moveTo(0,c/2);a.quadTo(b/4,1.4*c,b/2,c/2);a.quadTo(3*b/4,c*(1-1.4),b,c/2);a.lineTo(b,f-c/2);a.quadTo(3*b/4,f-1.4*c,b/2,f-c/2);a.quadTo(b/4,f-c*(1-1.4),0,f-c/2);a.lineTo(0,c/2);a.close();a.end()};u.prototype.getLabelBounds=function(a){if(mxUtils.getValue(this.style,"boundedLbl",!1)){var c=mxUtils.getValue(this.style,"size",this.size),d=a.width,b=a.height;if(null==this.direction||this.direction==mxConstants.DIRECTION_EAST||this.direction==mxConstants.DIRECTION_WEST)return c*= -b,new mxRectangle(a.x,a.y+c,d,b-2*c);c*=d;return new mxRectangle(a.x+c,a.y,d-2*c,b)}return a};mxCellRenderer.registerShape("tape",u);mxUtils.extend(c,mxActor);c.prototype.size=.3;c.prototype.getLabelMargins=function(a){return mxUtils.getValue(this.style,"boundedLbl",!1)?new mxRectangle(0,0,0,parseFloat(mxUtils.getValue(this.style,"size",this.size))*a.height):null};c.prototype.redrawPath=function(a,c,d,b,f){c=f*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));a.moveTo(0, -0);a.lineTo(b,0);a.lineTo(b,f-c/2);a.quadTo(3*b/4,f-1.4*c,b/2,f-c/2);a.quadTo(b/4,f-c*(1-1.4),0,f-c/2);a.lineTo(0,c/2);a.close();a.end()};mxCellRenderer.registerShape("document",c);var Ga=mxCylinder.prototype.getCylinderSize;mxCylinder.prototype.getCylinderSize=function(a,c,d,b){var f=mxUtils.getValue(this.style,"size");return null!=f?b*Math.max(0,Math.min(1,f)):Ga.apply(this,arguments)};mxCylinder.prototype.getLabelMargins=function(a){if(mxUtils.getValue(this.style,"boundedLbl",!1)){var c=2*mxUtils.getValue(this.style, -"size",.15);return new mxRectangle(0,Math.min(this.maxHeight*this.scale,a.height*c),0,0)}return null};mxUtils.extend(f,mxActor);f.prototype.size=.2;f.prototype.isRoundable=function(){return!0};f.prototype.redrawPath=function(a,c,d,b,f){c=b*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));d=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,f),new mxPoint(c,0),new mxPoint(b,0),new mxPoint(b-c,f)],this.isRounded, -d,!0);a.end()};mxCellRenderer.registerShape("parallelogram",f);mxUtils.extend(g,mxActor);g.prototype.size=.2;g.prototype.isRoundable=function(){return!0};g.prototype.redrawPath=function(a,c,d,b,f){c=b*Math.max(0,Math.min(.5,parseFloat(mxUtils.getValue(this.style,"size",this.size))));d=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,f),new mxPoint(c,0),new mxPoint(b-c,0),new mxPoint(b,f)],this.isRounded,d,!0)};mxCellRenderer.registerShape("trapezoid", -g);mxUtils.extend(k,mxActor);k.prototype.size=.5;k.prototype.redrawPath=function(a,c,d,b,f){a.setFillColor(null);c=b*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));d=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(b,0),new mxPoint(c,0),new mxPoint(c,f/2),new mxPoint(0,f/2),new mxPoint(c,f/2),new mxPoint(c,f),new mxPoint(b,f)],this.isRounded,d,!1);a.end()};mxCellRenderer.registerShape("curlyBracket", -k);mxUtils.extend(r,mxActor);r.prototype.redrawPath=function(a,c,d,b,f){a.setStrokeWidth(1);a.setFillColor(this.stroke);c=b/5;a.rect(0,0,c,f);a.fillAndStroke();a.rect(2*c,0,c,f);a.fillAndStroke();a.rect(4*c,0,c,f);a.fillAndStroke()};mxCellRenderer.registerShape("parallelMarker",r);l.prototype.moveTo=function(a,c){this.originalMoveTo.apply(this.canvas,arguments);this.lastX=a;this.lastY=c;this.firstX=a;this.firstY=c};l.prototype.close=function(){null!=this.firstX&&null!=this.firstY&&(this.lineTo(this.firstX, -this.firstY),this.originalClose.apply(this.canvas,arguments));this.originalClose.apply(this.canvas,arguments)};l.prototype.quadTo=function(a,c,d,b){this.originalQuadTo.apply(this.canvas,arguments);this.lastX=d;this.lastY=b};l.prototype.curveTo=function(a,c,d,b,f,e){this.originalCurveTo.apply(this.canvas,arguments);this.lastX=f;this.lastY=e};l.prototype.arcTo=function(a,c,d,b,f,e,g){this.originalArcTo.apply(this.canvas,arguments);this.lastX=e;this.lastY=g};l.prototype.lineTo=function(a,c){if(null!= -this.lastX&&null!=this.lastY){var d=function(a){return"number"===typeof a?a?0>a?-1:1:a===a?0:NaN:NaN},b=Math.abs(a-this.lastX),f=Math.abs(c-this.lastY),e=Math.sqrt(b*b+f*f);if(2>e){this.originalLineTo.apply(this.canvas,arguments);this.lastX=a;this.lastY=c;return}var g=Math.round(e/10),na=this.defaultVariation;5>g&&(g=5,na/=3);for(var k=d(a-this.lastX)*b/g,d=d(c-this.lastY)*f/g,b=b/e,f=f/e,e=0;e<g;e++){var l=(Math.random()-.5)*na;this.originalLineTo.call(this.canvas,k*e+this.lastX-l*f,d*e+this.lastY- -l*b)}this.originalLineTo.call(this.canvas,a,c)}else this.originalLineTo.apply(this.canvas,arguments);this.lastX=a;this.lastY=c};l.prototype.destroy=function(){this.canvas.lineTo=this.originalLineTo;this.canvas.moveTo=this.originalMoveTo;this.canvas.close=this.originalClose;this.canvas.quadTo=this.originalQuadTo;this.canvas.curveTo=this.originalCurveTo;this.canvas.arcTo=this.originalArcTo};var Ha=mxShape.prototype.paint;mxShape.prototype.defaultJiggle=1.5;mxShape.prototype.paint=function(a){null!= -this.style&&"0"!=mxUtils.getValue(this.style,"comic","0")&&null==a.handHiggle&&(a.handJiggle=new l(a,mxUtils.getValue(this.style,"jiggle",this.defaultJiggle)));Ha.apply(this,arguments);null!=a.handJiggle&&(a.handJiggle.destroy(),delete a.handJiggle)};mxRhombus.prototype.defaultJiggle=2;var Ia=mxRectangleShape.prototype.isHtmlAllowed;mxRectangleShape.prototype.isHtmlAllowed=function(){return(null==this.style||"0"==mxUtils.getValue(this.style,"comic","0"))&&Ia.apply(this,arguments)};var Ja=mxRectangleShape.prototype.paintBackground; -mxRectangleShape.prototype.paintBackground=function(a,c,d,b,f){if(null==a.handJiggle)Ja.apply(this,arguments);else{var e=!0;null!=this.style&&(e="1"==mxUtils.getValue(this.style,mxConstants.STYLE_POINTER_EVENTS,"1"));if(e||null!=this.fill&&this.fill!=mxConstants.NONE||null!=this.stroke&&this.stroke!=mxConstants.NONE)e||null!=this.fill&&this.fill!=mxConstants.NONE||(a.pointerEvents=!1),a.begin(),this.isRounded?("1"==mxUtils.getValue(this.style,mxConstants.STYLE_ABSOLUTE_ARCSIZE,0)?e=Math.min(b/2,Math.min(f/ -2,mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2)):(e=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100,e=Math.min(b*e,f*e)),a.moveTo(c+e,d),a.lineTo(c+b-e,d),a.quadTo(c+b,d,c+b,d+e),a.lineTo(c+b,d+f-e),a.quadTo(c+b,d+f,c+b-e,d+f),a.lineTo(c+e,d+f),a.quadTo(c,d+f,c,d+f-e),a.lineTo(c,d+e),a.quadTo(c,d,c+e,d)):(a.moveTo(c,d),a.lineTo(c+b,d),a.lineTo(c+b,d+f),a.lineTo(c,d+f),a.lineTo(c,d)),a.close(),a.end(),a.fillAndStroke()}}; -var Ka=mxRectangleShape.prototype.paintForeground;mxRectangleShape.prototype.paintForeground=function(a,c,d,b,f){null==a.handJiggle&&Ka.apply(this,arguments)};mxUtils.extend(n,mxRectangleShape);n.prototype.size=.1;n.prototype.isHtmlAllowed=function(){return!1};n.prototype.getLabelBounds=function(a){if(mxUtils.getValue(this.state.style,mxConstants.STYLE_HORIZONTAL,!0)==(null==this.direction||this.direction==mxConstants.DIRECTION_EAST||this.direction==mxConstants.DIRECTION_WEST)){var c=a.width,d=a.height; -a=new mxRectangle(a.x,a.y,c,d);var b=c*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));if(this.isRounded)var f=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100,b=Math.max(b,Math.min(c*f,d*f));a.x+=Math.round(b);a.width-=Math.round(2*b)}return a};n.prototype.paintForeground=function(a,c,d,b,f){var e=b*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));if(this.isRounded)var g=mxUtils.getValue(this.style, -mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100,e=Math.max(e,Math.min(b*g,f*g));e=Math.round(e);a.begin();a.moveTo(c+e,d);a.lineTo(c+e,d+f);a.moveTo(c+b-e,d);a.lineTo(c+b-e,d+f);a.end();a.stroke();mxRectangleShape.prototype.paintForeground.apply(this,arguments)};mxCellRenderer.registerShape("process",n);mxUtils.extend(w,mxRectangleShape);w.prototype.paintBackground=function(a,c,d,b,f){a.setFillColor(mxConstants.NONE);a.rect(c,d,b,f);a.fill()};w.prototype.paintForeground=function(a, -c,d,b,f){};mxCellRenderer.registerShape("transparent",w);mxUtils.extend(v,mxHexagon);v.prototype.size=30;v.prototype.position=.5;v.prototype.position2=.5;v.prototype.base=20;v.prototype.getLabelMargins=function(){return new mxRectangle(0,0,0,parseFloat(mxUtils.getValue(this.style,"size",this.size))*this.scale)};v.prototype.isRoundable=function(){return!0};v.prototype.redrawPath=function(a,c,d,b,f){c=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;d=Math.max(0,Math.min(f, -parseFloat(mxUtils.getValue(this.style,"size",this.size))));var e=b*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"position",this.position)))),g=b*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"position2",this.position2)))),k=Math.max(0,Math.min(b,parseFloat(mxUtils.getValue(this.style,"base",this.base))));this.addPoints(a,[new mxPoint(0,0),new mxPoint(b,0),new mxPoint(b,f-d),new mxPoint(Math.min(b,e+k),f-d),new mxPoint(g,f),new mxPoint(Math.max(0,e),f-d),new mxPoint(0, -f-d)],this.isRounded,c,!0,[4])};mxCellRenderer.registerShape("callout",v);mxUtils.extend(B,mxActor);B.prototype.size=.2;B.prototype.fixedSize=20;B.prototype.isRoundable=function(){return!0};B.prototype.redrawPath=function(a,c,d,b,f){c="0"!=mxUtils.getValue(this.style,"fixedSize","0")?Math.max(0,Math.min(b,parseFloat(mxUtils.getValue(this.style,"size",this.fixedSize)))):b*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));d=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE, -mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,0),new mxPoint(b-c,0),new mxPoint(b,f/2),new mxPoint(b-c,f),new mxPoint(0,f),new mxPoint(c,f/2)],this.isRounded,d,!0);a.end()};mxCellRenderer.registerShape("step",B);mxUtils.extend(y,mxHexagon);y.prototype.size=.25;y.prototype.isRoundable=function(){return!0};y.prototype.redrawPath=function(a,c,d,b,f){c=b*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));d=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE, -mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(c,0),new mxPoint(b-c,0),new mxPoint(b,.5*f),new mxPoint(b-c,f),new mxPoint(c,f),new mxPoint(0,.5*f)],this.isRounded,d,!0)};mxCellRenderer.registerShape("hexagon",y);mxUtils.extend(t,mxRectangleShape);t.prototype.isHtmlAllowed=function(){return!1};t.prototype.paintForeground=function(a,c,d,b,f){var e=Math.min(b/5,f/5)+1;a.begin();a.moveTo(c+b/2,d+e);a.lineTo(c+b/2,d+f-e);a.moveTo(c+e,d+f/2);a.lineTo(c+b-e,d+f/2);a.end();a.stroke();mxRectangleShape.prototype.paintForeground.apply(this, -arguments)};mxCellRenderer.registerShape("plus",t);var Ea=mxRhombus.prototype.paintVertexShape;mxRhombus.prototype.getLabelBounds=function(a){if(1==this.style["double"]){var c=(2*Math.max(2,this.strokewidth+1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||0))*this.scale;return new mxRectangle(a.x+c,a.y+c,a.width-2*c,a.height-2*c)}return a};mxRhombus.prototype.paintVertexShape=function(a,c,d,b,f){Ea.apply(this,arguments);if(!this.outline&&1==this.style["double"]){var e=2*Math.max(2,this.strokewidth+ -1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||0);c+=e;d+=e;b-=2*e;f-=2*e;0<b&&0<f&&(a.setShadow(!1),Ea.apply(this,[a,c,d,b,f]))}};mxUtils.extend(z,mxRectangleShape);z.prototype.isHtmlAllowed=function(){return!1};z.prototype.getLabelBounds=function(a){if(1==this.style["double"]){var c=(Math.max(2,this.strokewidth+1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||0))*this.scale;return new mxRectangle(a.x+c,a.y+c,a.width-2*c,a.height-2*c)}return a};z.prototype.paintForeground=function(a,c,d, -b,f){if(null!=this.style){if(!this.outline&&1==this.style["double"]){var e=Math.max(2,this.strokewidth+1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||0);c+=e;d+=e;b-=2*e;f-=2*e;0<b&&0<f&&mxRectangleShape.prototype.paintBackground.apply(this,arguments)}a.setDashed(!1);var e=0,g;do{g=mxCellRenderer.defaultShapes[this.style["symbol"+e]];if(null!=g){var k=this.style["symbol"+e+"Align"],na=this.style["symbol"+e+"VerticalAlign"],l=this.style["symbol"+e+"Width"],n=this.style["symbol"+e+"Height"],t= -this.style["symbol"+e+"Spacing"]||0,r=this.style["symbol"+e+"VSpacing"]||t,y=this.style["symbol"+e+"ArcSpacing"];null!=y&&(y*=this.getArcSize(b+this.strokewidth,f+this.strokewidth),t+=y,r+=y);var y=c,h=d,y=k==mxConstants.ALIGN_CENTER?y+(b-l)/2:k==mxConstants.ALIGN_RIGHT?y+(b-l-t):y+t,h=na==mxConstants.ALIGN_MIDDLE?h+(f-n)/2:na==mxConstants.ALIGN_BOTTOM?h+(f-n-r):h+r;a.save();k=new g;k.style=this.style;g.prototype.paintVertexShape.call(k,a,y,h,l,n);a.restore()}e++}while(null!=g)}mxRectangleShape.prototype.paintForeground.apply(this, -arguments)};mxCellRenderer.registerShape("ext",z);mxUtils.extend(H,mxCylinder);H.prototype.redrawPath=function(a,c,d,b,f,e){e?(a.moveTo(0,0),a.lineTo(b/2,f/2),a.lineTo(b,0),a.end()):(a.moveTo(0,0),a.lineTo(b,0),a.lineTo(b,f),a.lineTo(0,f),a.close())};mxCellRenderer.registerShape("message",H);mxUtils.extend(G,mxShape);G.prototype.paintBackground=function(a,c,d,b,f){a.translate(c,d);a.ellipse(b/4,0,b/2,f/4);a.fillAndStroke();a.begin();a.moveTo(b/2,f/4);a.lineTo(b/2,2*f/3);a.moveTo(b/2,f/3);a.lineTo(0, -f/3);a.moveTo(b/2,f/3);a.lineTo(b,f/3);a.moveTo(b/2,2*f/3);a.lineTo(0,f);a.moveTo(b/2,2*f/3);a.lineTo(b,f);a.end();a.stroke()};mxCellRenderer.registerShape("umlActor",G);mxUtils.extend(A,mxShape);A.prototype.getLabelMargins=function(a){return new mxRectangle(a.width/6,0,0,0)};A.prototype.paintBackground=function(a,c,d,b,f){a.translate(c,d);a.begin();a.moveTo(0,f/4);a.lineTo(0,3*f/4);a.end();a.stroke();a.begin();a.moveTo(0,f/2);a.lineTo(b/6,f/2);a.end();a.stroke();a.ellipse(b/6,0,5*b/6,f);a.fillAndStroke()}; -mxCellRenderer.registerShape("umlBoundary",A);mxUtils.extend(J,mxEllipse);J.prototype.paintVertexShape=function(a,c,d,b,f){mxEllipse.prototype.paintVertexShape.apply(this,arguments);a.begin();a.moveTo(c+b/8,d+f);a.lineTo(c+7*b/8,d+f);a.end();a.stroke()};mxCellRenderer.registerShape("umlEntity",J);mxUtils.extend(K,mxShape);K.prototype.paintVertexShape=function(a,c,d,b,f){a.translate(c,d);a.begin();a.moveTo(b,0);a.lineTo(0,f);a.moveTo(0,0);a.lineTo(b,f);a.end();a.stroke()};mxCellRenderer.registerShape("umlDestroy", -K);mxUtils.extend(x,mxShape);x.prototype.getLabelBounds=function(a){return new mxRectangle(a.x,a.y+a.height/8,a.width,7*a.height/8)};x.prototype.paintBackground=function(a,c,d,b,f){a.translate(c,d);a.begin();a.moveTo(3*b/8,f/8*1.1);a.lineTo(5*b/8,0);a.end();a.stroke();a.ellipse(0,f/8,b,7*f/8);a.fillAndStroke()};x.prototype.paintForeground=function(a,c,d,b,f){a.begin();a.moveTo(3*b/8,f/8*1.1);a.lineTo(5*b/8,f/4);a.end();a.stroke()};mxCellRenderer.registerShape("umlControl",x);mxUtils.extend(C,mxRectangleShape); -C.prototype.size=40;C.prototype.isHtmlAllowed=function(){return!1};C.prototype.getLabelBounds=function(a){var c=Math.max(0,Math.min(a.height,parseFloat(mxUtils.getValue(this.style,"size",this.size))*this.scale));return new mxRectangle(a.x,a.y,a.width,c)};C.prototype.paintBackground=function(a,c,d,b,f){var e=Math.max(0,Math.min(f,parseFloat(mxUtils.getValue(this.style,"size",this.size)))),g=mxUtils.getValue(this.style,"participant");null==g||null==this.state?mxRectangleShape.prototype.paintBackground.call(this, -a,c,d,b,e):(g=this.state.view.graph.cellRenderer.getShape(g),null!=g&&g!=C&&(g=new g,g.apply(this.state),a.save(),g.paintVertexShape(a,c,d,b,e),a.restore()));e<f&&(a.setDashed(!0),a.begin(),a.moveTo(c+b/2,d+e),a.lineTo(c+b/2,d+f),a.end(),a.stroke())};C.prototype.paintForeground=function(a,c,d,b,f){var e=Math.max(0,Math.min(f,parseFloat(mxUtils.getValue(this.style,"size",this.size))));mxRectangleShape.prototype.paintForeground.call(this,a,c,d,b,Math.min(f,e))};mxCellRenderer.registerShape("umlLifeline", -C);mxUtils.extend(I,mxShape);I.prototype.width=60;I.prototype.height=30;I.prototype.corner=10;I.prototype.getLabelMargins=function(a){return new mxRectangle(0,0,a.width-parseFloat(mxUtils.getValue(this.style,"width",this.width)*this.scale),a.height-parseFloat(mxUtils.getValue(this.style,"height",this.height)*this.scale))};I.prototype.paintBackground=function(a,c,d,b,f){var e=this.corner,g=Math.min(b,Math.max(e,parseFloat(mxUtils.getValue(this.style,"width",this.width)))),k=Math.min(f,Math.max(1.5* -e,parseFloat(mxUtils.getValue(this.style,"height",this.height)))),l=mxUtils.getValue(this.style,mxConstants.STYLE_SWIMLANE_FILLCOLOR,mxConstants.NONE);l!=mxConstants.NONE&&(a.setFillColor(l),a.rect(c,d,b,f),a.fill());null!=this.fill&&this.fill!=mxConstants.NONE&&this.gradient&&this.gradient!=mxConstants.NONE?(this.getGradientBounds(a,c,d,b,f),a.setGradient(this.fill,this.gradient,c,d,b,f,this.gradientDirection)):a.setFillColor(this.fill);a.begin();a.moveTo(c,d);a.lineTo(c+g,d);a.lineTo(c+g,d+Math.max(0, -k-1.5*e));a.lineTo(c+Math.max(0,g-e),d+k);a.lineTo(c,d+k);a.close();a.fillAndStroke();a.begin();a.moveTo(c+g,d);a.lineTo(c+b,d);a.lineTo(c+b,d+f);a.lineTo(c,d+f);a.lineTo(c,d+k);a.stroke()};mxCellRenderer.registerShape("umlFrame",I);mxPerimeter.LifelinePerimeter=function(a,c,d,b){b=C.prototype.size;null!=c&&(b=mxUtils.getValue(c.style,"size",b)*c.view.scale);c=parseFloat(c.style[mxConstants.STYLE_STROKEWIDTH]||1)*c.view.scale/2-1;d.x<a.getCenterX()&&(c=-1*(c+1));return new mxPoint(a.getCenterX()+ -c,Math.min(a.y+a.height,Math.max(a.y+b,d.y)))};mxStyleRegistry.putValue("lifelinePerimeter",mxPerimeter.LifelinePerimeter);mxPerimeter.OrthogonalPerimeter=function(a,c,d,b){b=!0;return mxPerimeter.RectanglePerimeter.apply(this,arguments)};mxStyleRegistry.putValue("orthogonalPerimeter",mxPerimeter.OrthogonalPerimeter);mxPerimeter.BackbonePerimeter=function(a,c,d,b){b=parseFloat(c.style[mxConstants.STYLE_STROKEWIDTH]||1)*c.view.scale/2-1;null!=c.style.backboneSize&&(b+=parseFloat(c.style.backboneSize)* -c.view.scale/2-1);if("south"==c.style[mxConstants.STYLE_DIRECTION]||"north"==c.style[mxConstants.STYLE_DIRECTION])return d.x<a.getCenterX()&&(b=-1*(b+1)),new mxPoint(a.getCenterX()+b,Math.min(a.y+a.height,Math.max(a.y,d.y)));d.y<a.getCenterY()&&(b=-1*(b+1));return new mxPoint(Math.min(a.x+a.width,Math.max(a.x,d.x)),a.getCenterY()+b)};mxStyleRegistry.putValue("backbonePerimeter",mxPerimeter.BackbonePerimeter);mxPerimeter.CalloutPerimeter=function(a,c,d,b){return mxPerimeter.RectanglePerimeter(mxUtils.getDirectedBounds(a, -new mxRectangle(0,0,0,Math.max(0,Math.min(a.height,parseFloat(mxUtils.getValue(c.style,"size",v.prototype.size))*c.view.scale))),c.style),c,d,b)};mxStyleRegistry.putValue("calloutPerimeter",mxPerimeter.CalloutPerimeter);mxPerimeter.ParallelogramPerimeter=function(a,c,d,b){var e=f.prototype.size;null!=c&&(e=mxUtils.getValue(c.style,"size",e));var g=a.x,k=a.y,l=a.width,n=a.height;c=null!=c?mxUtils.getValue(c.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST):mxConstants.DIRECTION_EAST;c== -mxConstants.DIRECTION_NORTH||c==mxConstants.DIRECTION_SOUTH?(e=n*Math.max(0,Math.min(1,e)),k=[new mxPoint(g,k),new mxPoint(g+l,k+e),new mxPoint(g+l,k+n),new mxPoint(g,k+n-e),new mxPoint(g,k)]):(e=l*Math.max(0,Math.min(1,e)),k=[new mxPoint(g+e,k),new mxPoint(g+l,k),new mxPoint(g+l-e,k+n),new mxPoint(g,k+n),new mxPoint(g+e,k)]);n=a.getCenterX();a=a.getCenterY();a=new mxPoint(n,a);b&&(d.x<g||d.x>g+l?a.y=d.y:a.x=d.x);return mxUtils.getPerimeterPoint(k,a,d)};mxStyleRegistry.putValue("parallelogramPerimeter", -mxPerimeter.ParallelogramPerimeter);mxPerimeter.TrapezoidPerimeter=function(a,c,d,b){var f=g.prototype.size;null!=c&&(f=mxUtils.getValue(c.style,"size",f));var e=a.x,k=a.y,l=a.width,n=a.height;c=null!=c?mxUtils.getValue(c.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST):mxConstants.DIRECTION_EAST;c==mxConstants.DIRECTION_EAST?(f=l*Math.max(0,Math.min(1,f)),k=[new mxPoint(e+f,k),new mxPoint(e+l-f,k),new mxPoint(e+l,k+n),new mxPoint(e,k+n),new mxPoint(e+f,k)]):c==mxConstants.DIRECTION_WEST? -(f=l*Math.max(0,Math.min(1,f)),k=[new mxPoint(e,k),new mxPoint(e+l,k),new mxPoint(e+l-f,k+n),new mxPoint(e+f,k+n),new mxPoint(e,k)]):c==mxConstants.DIRECTION_NORTH?(f=n*Math.max(0,Math.min(1,f)),k=[new mxPoint(e,k+f),new mxPoint(e+l,k),new mxPoint(e+l,k+n),new mxPoint(e,k+n-f),new mxPoint(e,k+f)]):(f=n*Math.max(0,Math.min(1,f)),k=[new mxPoint(e,k),new mxPoint(e+l,k+f),new mxPoint(e+l,k+n-f),new mxPoint(e,k+n),new mxPoint(e,k)]);n=a.getCenterX();a=a.getCenterY();a=new mxPoint(n,a);b&&(d.x<e||d.x>e+ -l?a.y=d.y:a.x=d.x);return mxUtils.getPerimeterPoint(k,a,d)};mxStyleRegistry.putValue("trapezoidPerimeter",mxPerimeter.TrapezoidPerimeter);mxPerimeter.StepPerimeter=function(a,c,d,b){var f="0"!=mxUtils.getValue(c.style,"fixedSize","0"),e=f?B.prototype.fixedSize:B.prototype.size;null!=c&&(e=mxUtils.getValue(c.style,"size",e));var g=a.x,k=a.y,l=a.width,n=a.height,t=a.getCenterX();a=a.getCenterY();c=null!=c?mxUtils.getValue(c.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST):mxConstants.DIRECTION_EAST; -c==mxConstants.DIRECTION_EAST?(f=f?Math.max(0,Math.min(l,e)):l*Math.max(0,Math.min(1,e)),k=[new mxPoint(g,k),new mxPoint(g+l-f,k),new mxPoint(g+l,a),new mxPoint(g+l-f,k+n),new mxPoint(g,k+n),new mxPoint(g+f,a),new mxPoint(g,k)]):c==mxConstants.DIRECTION_WEST?(f=f?Math.max(0,Math.min(l,e)):l*Math.max(0,Math.min(1,e)),k=[new mxPoint(g+f,k),new mxPoint(g+l,k),new mxPoint(g+l-f,a),new mxPoint(g+l,k+n),new mxPoint(g+f,k+n),new mxPoint(g,a),new mxPoint(g+f,k)]):c==mxConstants.DIRECTION_NORTH?(f=f?Math.max(0, -Math.min(n,e)):n*Math.max(0,Math.min(1,e)),k=[new mxPoint(g,k+f),new mxPoint(t,k),new mxPoint(g+l,k+f),new mxPoint(g+l,k+n),new mxPoint(t,k+n-f),new mxPoint(g,k+n),new mxPoint(g,k+f)]):(f=f?Math.max(0,Math.min(n,e)):n*Math.max(0,Math.min(1,e)),k=[new mxPoint(g,k),new mxPoint(t,k+f),new mxPoint(g+l,k),new mxPoint(g+l,k+n-f),new mxPoint(t,k+n),new mxPoint(g,k+n-f),new mxPoint(g,k)]);t=new mxPoint(t,a);b&&(d.x<g||d.x>g+l?t.y=d.y:t.x=d.x);return mxUtils.getPerimeterPoint(k,t,d)};mxStyleRegistry.putValue("stepPerimeter", -mxPerimeter.StepPerimeter);mxPerimeter.HexagonPerimeter2=function(a,c,d,b){var f=y.prototype.size;null!=c&&(f=mxUtils.getValue(c.style,"size",f));var e=a.x,g=a.y,k=a.width,l=a.height,n=a.getCenterX();a=a.getCenterY();c=null!=c?mxUtils.getValue(c.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST):mxConstants.DIRECTION_EAST;c==mxConstants.DIRECTION_NORTH||c==mxConstants.DIRECTION_SOUTH?(f=l*Math.max(0,Math.min(1,f)),g=[new mxPoint(n,g),new mxPoint(e+k,g+f),new mxPoint(e+k,g+l-f),new mxPoint(n, -g+l),new mxPoint(e,g+l-f),new mxPoint(e,g+f),new mxPoint(n,g)]):(f=k*Math.max(0,Math.min(1,f)),g=[new mxPoint(e+f,g),new mxPoint(e+k-f,g),new mxPoint(e+k,a),new mxPoint(e+k-f,g+l),new mxPoint(e+f,g+l),new mxPoint(e,a),new mxPoint(e+f,g)]);n=new mxPoint(n,a);b&&(d.x<e||d.x>e+k?n.y=d.y:n.x=d.x);return mxUtils.getPerimeterPoint(g,n,d)};mxStyleRegistry.putValue("hexagonPerimeter2",mxPerimeter.HexagonPerimeter2);mxUtils.extend(R,mxShape);R.prototype.size=10;R.prototype.paintBackground=function(a,c,d,b, -f){var e=parseFloat(mxUtils.getValue(this.style,"size",this.size));a.translate(c,d);a.ellipse((b-e)/2,0,e,e);a.fillAndStroke();a.begin();a.moveTo(b/2,e);a.lineTo(b/2,f);a.end();a.stroke()};mxCellRenderer.registerShape("lollipop",R);mxUtils.extend(P,mxShape);P.prototype.size=10;P.prototype.inset=2;P.prototype.paintBackground=function(a,c,d,b,f){var e=parseFloat(mxUtils.getValue(this.style,"size",this.size)),g=parseFloat(mxUtils.getValue(this.style,"inset",this.inset))+this.strokewidth;a.translate(c, -d);a.begin();a.moveTo(b/2,e+g);a.lineTo(b/2,f);a.end();a.stroke();a.begin();a.moveTo((b-e)/2-g,e/2);a.quadTo((b-e)/2-g,e+g,b/2,e+g);a.quadTo((b+e)/2+g,e+g,(b+e)/2+g,e/2);a.end();a.stroke()};mxCellRenderer.registerShape("requires",P);mxUtils.extend(X,mxShape);X.prototype.paintBackground=function(a,c,d,b,f){a.translate(c,d);a.begin();a.moveTo(0,0);a.quadTo(b,0,b,f/2);a.quadTo(b,f,0,f);a.end();a.stroke()};mxCellRenderer.registerShape("requiredInterface",X);mxUtils.extend(U,mxShape);U.prototype.inset= -2;U.prototype.paintBackground=function(a,c,d,b,f){var e=parseFloat(mxUtils.getValue(this.style,"inset",this.inset))+this.strokewidth;a.translate(c,d);a.ellipse(0,e,b-2*e,f-2*e);a.fillAndStroke();a.begin();a.moveTo(b/2,0);a.quadTo(b,0,b,f/2);a.quadTo(b,f,b/2,f);a.end();a.stroke()};mxCellRenderer.registerShape("providedRequiredInterface",U);mxUtils.extend(F,mxCylinder);F.prototype.jettyWidth=32;F.prototype.jettyHeight=12;F.prototype.redrawPath=function(a,c,d,b,f,e){var g=parseFloat(mxUtils.getValue(this.style, -"jettyWidth",this.jettyWidth));c=parseFloat(mxUtils.getValue(this.style,"jettyHeight",this.jettyHeight));d=g/2;var g=d+g/2,k=.3*f-c/2,l=.7*f-c/2;e?(a.moveTo(d,k),a.lineTo(g,k),a.lineTo(g,k+c),a.lineTo(d,k+c),a.moveTo(d,l),a.lineTo(g,l),a.lineTo(g,l+c),a.lineTo(d,l+c)):(a.moveTo(d,0),a.lineTo(b,0),a.lineTo(b,f),a.lineTo(d,f),a.lineTo(d,l+c),a.lineTo(0,l+c),a.lineTo(0,l),a.lineTo(d,l),a.lineTo(d,k+c),a.lineTo(0,k+c),a.lineTo(0,k),a.lineTo(d,k),a.close());a.end()};mxCellRenderer.registerShape("component", -F);mxUtils.extend(ea,mxDoubleEllipse);ea.prototype.outerStroke=!0;ea.prototype.paintVertexShape=function(a,c,d,b,f){var e=Math.min(4,Math.min(b/5,f/5));0<b&&0<f&&(a.ellipse(c+e,d+e,b-2*e,f-2*e),a.fillAndStroke());a.setShadow(!1);this.outerStroke&&(a.ellipse(c,d,b,f),a.stroke())};mxCellRenderer.registerShape("endState",ea);mxUtils.extend(ka,ea);ka.prototype.outerStroke=!1;mxCellRenderer.registerShape("startState",ka);mxUtils.extend(Y,mxArrowConnector);Y.prototype.defaultWidth=4;Y.prototype.isOpenEnded= +function fa(){mxRhombus.call(this)}function ma(){mxEllipse.call(this)}function ta(){mxEllipse.call(this)}function la(){mxEllipse.call(this)}function sa(){mxEllipse.call(this)}function ha(){mxActor.call(this)}function ca(){mxActor.call(this)}function da(){mxActor.call(this)}function ia(){mxConnector.call(this)}function wa(a,c,b,d,f,e,g,h,n,m){g+=n;var na=d.clone();d.x-=f*(2*g+n);d.y-=e*(2*g+n);f*=g+n;e*=g+n;return function(){a.ellipse(na.x-f-g,na.y-e-g,2*g,2*g);m?a.fillAndStroke():a.stroke()}}mxUtils.extend(a, +mxCylinder);a.prototype.size=20;a.prototype.redrawPath=function(a,c,b,d,f,e){c=Math.max(0,Math.min(d,Math.min(f,parseFloat(mxUtils.getValue(this.style,"size",this.size)))));e?(a.moveTo(c,f),a.lineTo(c,c),a.lineTo(0,0),a.moveTo(c,c),a.lineTo(d,c)):(a.moveTo(0,0),a.lineTo(d-c,0),a.lineTo(d,c),a.lineTo(d,f),a.lineTo(c,f),a.lineTo(0,f-c),a.lineTo(0,0),a.close());a.end()};a.prototype.getLabelMargins=function(a){return mxUtils.getValue(this.style,"boundedLbl",!1)?(a=parseFloat(mxUtils.getValue(this.style, +"size",this.size))*this.scale,new mxRectangle(a,a,0,0)):null};mxCellRenderer.registerShape("cube",a);var Ba=Math.tan(mxUtils.toRadians(30)),qa=(.5-Ba)/2;mxUtils.extend(b,mxActor);b.prototype.size=20;b.prototype.redrawPath=function(a,c,b,d,f){c=Math.min(d,f/Ba);a.translate((d-c)/2,(f-c)/2+c/4);a.moveTo(0,.25*c);a.lineTo(.5*c,c*qa);a.lineTo(c,.25*c);a.lineTo(.5*c,(.5-qa)*c);a.lineTo(0,.25*c);a.close();a.end()};mxCellRenderer.registerShape("isoRectangle",b);mxUtils.extend(e,mxCylinder);e.prototype.size= +20;e.prototype.redrawPath=function(a,c,b,d,f,e){c=Math.min(d,f/(.5+Ba));e?(a.moveTo(0,.25*c),a.lineTo(.5*c,(.5-qa)*c),a.lineTo(c,.25*c),a.moveTo(.5*c,(.5-qa)*c),a.lineTo(.5*c,(1-qa)*c)):(a.translate((d-c)/2,(f-c)/2),a.moveTo(0,.25*c),a.lineTo(.5*c,c*qa),a.lineTo(c,.25*c),a.lineTo(c,.75*c),a.lineTo(.5*c,(1-qa)*c),a.lineTo(0,.75*c),a.close());a.end()};mxCellRenderer.registerShape("isoCube",e);mxUtils.extend(d,mxCylinder);d.prototype.redrawPath=function(a,c,b,d,f,e){c=Math.min(f/2,Math.round(f/8)+this.strokewidth- +1);if(e&&null!=this.fill||!e&&null==this.fill)a.moveTo(0,c),a.curveTo(0,2*c,d,2*c,d,c),e||(a.stroke(),a.begin()),a.translate(0,c/2),a.moveTo(0,c),a.curveTo(0,2*c,d,2*c,d,c),e||(a.stroke(),a.begin()),a.translate(0,c/2),a.moveTo(0,c),a.curveTo(0,2*c,d,2*c,d,c),e||(a.stroke(),a.begin()),a.translate(0,-c);e||(a.moveTo(0,c),a.curveTo(0,-c/3,d,-c/3,d,c),a.lineTo(d,f-c),a.curveTo(d,f+c/3,0,f+c/3,0,f-c),a.close())};d.prototype.getLabelMargins=function(a){return new mxRectangle(0,2.5*Math.min(a.height/2,Math.round(a.height/ +8)+this.strokewidth-1)*this.scale,0,0)};mxCellRenderer.registerShape("datastore",d);mxUtils.extend(k,mxCylinder);k.prototype.size=30;k.prototype.redrawPath=function(a,c,b,d,f,e){c=Math.max(0,Math.min(d,Math.min(f,parseFloat(mxUtils.getValue(this.style,"size",this.size)))));e?(a.moveTo(d-c,0),a.lineTo(d-c,c),a.lineTo(d,c)):(a.moveTo(0,0),a.lineTo(d-c,0),a.lineTo(d,c),a.lineTo(d,f),a.lineTo(0,f),a.lineTo(0,0),a.close());a.end()};mxCellRenderer.registerShape("note",k);mxUtils.extend(l,mxActor);l.prototype.redrawPath= +function(a,c,b,d,f){a.moveTo(0,0);a.quadTo(d/2,.5*f,d,0);a.quadTo(.5*d,f/2,d,f);a.quadTo(d/2,.5*f,0,f);a.quadTo(.5*d,f/2,0,0);a.end()};mxCellRenderer.registerShape("switch",l);mxUtils.extend(p,mxCylinder);p.prototype.tabWidth=60;p.prototype.tabHeight=20;p.prototype.tabPosition="right";p.prototype.redrawPath=function(a,c,b,d,f,e){c=Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"tabWidth",this.tabWidth))));b=Math.max(0,Math.min(f,parseFloat(mxUtils.getValue(this.style,"tabHeight",this.tabHeight)))); +var g=mxUtils.getValue(this.style,"tabPosition",this.tabPosition);e?"left"==g?(a.moveTo(0,b),a.lineTo(c,b)):(a.moveTo(d-c,b),a.lineTo(d,b)):("left"==g?(a.moveTo(0,0),a.lineTo(c,0),a.lineTo(c,b),a.lineTo(d,b)):(a.moveTo(0,b),a.lineTo(d-c,b),a.lineTo(d-c,0),a.lineTo(d,0)),a.lineTo(d,f),a.lineTo(0,f),a.lineTo(0,b),a.close());a.end()};mxCellRenderer.registerShape("folder",p);mxUtils.extend(q,mxActor);q.prototype.size=30;q.prototype.isRoundable=function(){return!0};q.prototype.redrawPath=function(a,c, +b,d,f){c=Math.max(0,Math.min(d,Math.min(f,parseFloat(mxUtils.getValue(this.style,"size",this.size)))));b=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(c,0),new mxPoint(d,0),new mxPoint(d,f),new mxPoint(0,f),new mxPoint(0,c)],this.isRounded,b,!0);a.end()};mxCellRenderer.registerShape("card",q);mxUtils.extend(u,mxActor);u.prototype.size=.4;u.prototype.redrawPath=function(a,c,b,d,f){c=f*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style, +"size",this.size))));a.moveTo(0,c/2);a.quadTo(d/4,1.4*c,d/2,c/2);a.quadTo(3*d/4,c*(1-1.4),d,c/2);a.lineTo(d,f-c/2);a.quadTo(3*d/4,f-1.4*c,d/2,f-c/2);a.quadTo(d/4,f-c*(1-1.4),0,f-c/2);a.lineTo(0,c/2);a.close();a.end()};u.prototype.getLabelBounds=function(a){if(mxUtils.getValue(this.style,"boundedLbl",!1)){var c=mxUtils.getValue(this.style,"size",this.size),b=a.width,d=a.height;if(null==this.direction||this.direction==mxConstants.DIRECTION_EAST||this.direction==mxConstants.DIRECTION_WEST)return c*= +d,new mxRectangle(a.x,a.y+c,b,d-2*c);c*=b;return new mxRectangle(a.x+c,a.y,b-2*c,d)}return a};mxCellRenderer.registerShape("tape",u);mxUtils.extend(c,mxActor);c.prototype.size=.3;c.prototype.getLabelMargins=function(a){return mxUtils.getValue(this.style,"boundedLbl",!1)?new mxRectangle(0,0,0,parseFloat(mxUtils.getValue(this.style,"size",this.size))*a.height):null};c.prototype.redrawPath=function(a,c,b,d,f){c=f*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));a.moveTo(0, +0);a.lineTo(d,0);a.lineTo(d,f-c/2);a.quadTo(3*d/4,f-1.4*c,d/2,f-c/2);a.quadTo(d/4,f-c*(1-1.4),0,f-c/2);a.lineTo(0,c/2);a.close();a.end()};mxCellRenderer.registerShape("document",c);var Ga=mxCylinder.prototype.getCylinderSize;mxCylinder.prototype.getCylinderSize=function(a,c,b,d){var f=mxUtils.getValue(this.style,"size");return null!=f?d*Math.max(0,Math.min(1,f)):Ga.apply(this,arguments)};mxCylinder.prototype.getLabelMargins=function(a){if(mxUtils.getValue(this.style,"boundedLbl",!1)){var c=2*mxUtils.getValue(this.style, +"size",.15);return new mxRectangle(0,Math.min(this.maxHeight*this.scale,a.height*c),0,0)}return null};mxUtils.extend(f,mxActor);f.prototype.size=.2;f.prototype.isRoundable=function(){return!0};f.prototype.redrawPath=function(a,c,b,d,f){c=d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));b=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,f),new mxPoint(c,0),new mxPoint(d,0),new mxPoint(d-c,f)],this.isRounded, +b,!0);a.end()};mxCellRenderer.registerShape("parallelogram",f);mxUtils.extend(g,mxActor);g.prototype.size=.2;g.prototype.isRoundable=function(){return!0};g.prototype.redrawPath=function(a,c,b,d,f){c=d*Math.max(0,Math.min(.5,parseFloat(mxUtils.getValue(this.style,"size",this.size))));b=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,f),new mxPoint(c,0),new mxPoint(d-c,0),new mxPoint(d,f)],this.isRounded,b,!0)};mxCellRenderer.registerShape("trapezoid", +g);mxUtils.extend(n,mxActor);n.prototype.size=.5;n.prototype.redrawPath=function(a,c,b,d,f){a.setFillColor(null);c=d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));b=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(d,0),new mxPoint(c,0),new mxPoint(c,f/2),new mxPoint(0,f/2),new mxPoint(c,f/2),new mxPoint(c,f),new mxPoint(d,f)],this.isRounded,b,!1);a.end()};mxCellRenderer.registerShape("curlyBracket", +n);mxUtils.extend(r,mxActor);r.prototype.redrawPath=function(a,c,b,d,f){a.setStrokeWidth(1);a.setFillColor(this.stroke);c=d/5;a.rect(0,0,c,f);a.fillAndStroke();a.rect(2*c,0,c,f);a.fillAndStroke();a.rect(4*c,0,c,f);a.fillAndStroke()};mxCellRenderer.registerShape("parallelMarker",r);h.prototype.moveTo=function(a,c){this.originalMoveTo.apply(this.canvas,arguments);this.lastX=a;this.lastY=c;this.firstX=a;this.firstY=c};h.prototype.close=function(){null!=this.firstX&&null!=this.firstY&&(this.lineTo(this.firstX, +this.firstY),this.originalClose.apply(this.canvas,arguments));this.originalClose.apply(this.canvas,arguments)};h.prototype.quadTo=function(a,c,b,d){this.originalQuadTo.apply(this.canvas,arguments);this.lastX=b;this.lastY=d};h.prototype.curveTo=function(a,c,b,d,f,e){this.originalCurveTo.apply(this.canvas,arguments);this.lastX=f;this.lastY=e};h.prototype.arcTo=function(a,c,b,d,f,e,g){this.originalArcTo.apply(this.canvas,arguments);this.lastX=e;this.lastY=g};h.prototype.lineTo=function(a,c){if(null!= +this.lastX&&null!=this.lastY){var b=function(a){return"number"===typeof a?a?0>a?-1:1:a===a?0:NaN:NaN},d=Math.abs(a-this.lastX),f=Math.abs(c-this.lastY),e=Math.sqrt(d*d+f*f);if(2>e){this.originalLineTo.apply(this.canvas,arguments);this.lastX=a;this.lastY=c;return}var g=Math.round(e/10),na=this.defaultVariation;5>g&&(g=5,na/=3);for(var h=b(a-this.lastX)*d/g,b=b(c-this.lastY)*f/g,d=d/e,f=f/e,e=0;e<g;e++){var n=(Math.random()-.5)*na;this.originalLineTo.call(this.canvas,h*e+this.lastX-n*f,b*e+this.lastY- +n*d)}this.originalLineTo.call(this.canvas,a,c)}else this.originalLineTo.apply(this.canvas,arguments);this.lastX=a;this.lastY=c};h.prototype.destroy=function(){this.canvas.lineTo=this.originalLineTo;this.canvas.moveTo=this.originalMoveTo;this.canvas.close=this.originalClose;this.canvas.quadTo=this.originalQuadTo;this.canvas.curveTo=this.originalCurveTo;this.canvas.arcTo=this.originalArcTo};var Ha=mxShape.prototype.paint;mxShape.prototype.defaultJiggle=1.5;mxShape.prototype.paint=function(a){null!= +this.style&&"0"!=mxUtils.getValue(this.style,"comic","0")&&null==a.handHiggle&&(a.handJiggle=new h(a,mxUtils.getValue(this.style,"jiggle",this.defaultJiggle)));Ha.apply(this,arguments);null!=a.handJiggle&&(a.handJiggle.destroy(),delete a.handJiggle)};mxRhombus.prototype.defaultJiggle=2;var Ia=mxRectangleShape.prototype.isHtmlAllowed;mxRectangleShape.prototype.isHtmlAllowed=function(){return(null==this.style||"0"==mxUtils.getValue(this.style,"comic","0"))&&Ia.apply(this,arguments)};var Ja=mxRectangleShape.prototype.paintBackground; +mxRectangleShape.prototype.paintBackground=function(a,c,b,d,f){if(null==a.handJiggle)Ja.apply(this,arguments);else{var e=!0;null!=this.style&&(e="1"==mxUtils.getValue(this.style,mxConstants.STYLE_POINTER_EVENTS,"1"));if(e||null!=this.fill&&this.fill!=mxConstants.NONE||null!=this.stroke&&this.stroke!=mxConstants.NONE)e||null!=this.fill&&this.fill!=mxConstants.NONE||(a.pointerEvents=!1),a.begin(),this.isRounded?("1"==mxUtils.getValue(this.style,mxConstants.STYLE_ABSOLUTE_ARCSIZE,0)?e=Math.min(d/2,Math.min(f/ +2,mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2)):(e=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100,e=Math.min(d*e,f*e)),a.moveTo(c+e,b),a.lineTo(c+d-e,b),a.quadTo(c+d,b,c+d,b+e),a.lineTo(c+d,b+f-e),a.quadTo(c+d,b+f,c+d-e,b+f),a.lineTo(c+e,b+f),a.quadTo(c,b+f,c,b+f-e),a.lineTo(c,b+e),a.quadTo(c,b,c+e,b)):(a.moveTo(c,b),a.lineTo(c+d,b),a.lineTo(c+d,b+f),a.lineTo(c,b+f),a.lineTo(c,b)),a.close(),a.end(),a.fillAndStroke()}}; +var Ka=mxRectangleShape.prototype.paintForeground;mxRectangleShape.prototype.paintForeground=function(a,c,b,d,f){null==a.handJiggle&&Ka.apply(this,arguments)};mxUtils.extend(m,mxRectangleShape);m.prototype.size=.1;m.prototype.isHtmlAllowed=function(){return!1};m.prototype.getLabelBounds=function(a){if(mxUtils.getValue(this.state.style,mxConstants.STYLE_HORIZONTAL,!0)==(null==this.direction||this.direction==mxConstants.DIRECTION_EAST||this.direction==mxConstants.DIRECTION_WEST)){var c=a.width,b=a.height; +a=new mxRectangle(a.x,a.y,c,b);var d=c*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));if(this.isRounded)var f=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100,d=Math.max(d,Math.min(c*f,b*f));a.x+=Math.round(d);a.width-=Math.round(2*d)}return a};m.prototype.paintForeground=function(a,c,b,d,f){var e=d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));if(this.isRounded)var g=mxUtils.getValue(this.style, +mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100,e=Math.max(e,Math.min(d*g,f*g));e=Math.round(e);a.begin();a.moveTo(c+e,b);a.lineTo(c+e,b+f);a.moveTo(c+d-e,b);a.lineTo(c+d-e,b+f);a.end();a.stroke();mxRectangleShape.prototype.paintForeground.apply(this,arguments)};mxCellRenderer.registerShape("process",m);mxUtils.extend(w,mxRectangleShape);w.prototype.paintBackground=function(a,c,b,d,f){a.setFillColor(mxConstants.NONE);a.rect(c,b,d,f);a.fill()};w.prototype.paintForeground=function(a, +c,b,d,f){};mxCellRenderer.registerShape("transparent",w);mxUtils.extend(v,mxHexagon);v.prototype.size=30;v.prototype.position=.5;v.prototype.position2=.5;v.prototype.base=20;v.prototype.getLabelMargins=function(){return new mxRectangle(0,0,0,parseFloat(mxUtils.getValue(this.style,"size",this.size))*this.scale)};v.prototype.isRoundable=function(){return!0};v.prototype.redrawPath=function(a,c,b,d,f){c=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;b=Math.max(0,Math.min(f, +parseFloat(mxUtils.getValue(this.style,"size",this.size))));var e=d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"position",this.position)))),g=d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"position2",this.position2)))),h=Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"base",this.base))));this.addPoints(a,[new mxPoint(0,0),new mxPoint(d,0),new mxPoint(d,f-b),new mxPoint(Math.min(d,e+h),f-b),new mxPoint(g,f),new mxPoint(Math.max(0,e),f-b),new mxPoint(0, +f-b)],this.isRounded,c,!0,[4])};mxCellRenderer.registerShape("callout",v);mxUtils.extend(A,mxActor);A.prototype.size=.2;A.prototype.fixedSize=20;A.prototype.isRoundable=function(){return!0};A.prototype.redrawPath=function(a,c,b,d,f){c="0"!=mxUtils.getValue(this.style,"fixedSize","0")?Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"size",this.fixedSize)))):d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));b=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE, +mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,0),new mxPoint(d-c,0),new mxPoint(d,f/2),new mxPoint(d-c,f),new mxPoint(0,f),new mxPoint(c,f/2)],this.isRounded,b,!0);a.end()};mxCellRenderer.registerShape("step",A);mxUtils.extend(y,mxHexagon);y.prototype.size=.25;y.prototype.isRoundable=function(){return!0};y.prototype.redrawPath=function(a,c,b,d,f){c=d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));b=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE, +mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(c,0),new mxPoint(d-c,0),new mxPoint(d,.5*f),new mxPoint(d-c,f),new mxPoint(c,f),new mxPoint(0,.5*f)],this.isRounded,b,!0)};mxCellRenderer.registerShape("hexagon",y);mxUtils.extend(t,mxRectangleShape);t.prototype.isHtmlAllowed=function(){return!1};t.prototype.paintForeground=function(a,c,b,d,f){var e=Math.min(d/5,f/5)+1;a.begin();a.moveTo(c+d/2,b+e);a.lineTo(c+d/2,b+f-e);a.moveTo(c+e,b+f/2);a.lineTo(c+d-e,b+f/2);a.end();a.stroke();mxRectangleShape.prototype.paintForeground.apply(this, +arguments)};mxCellRenderer.registerShape("plus",t);var Ea=mxRhombus.prototype.paintVertexShape;mxRhombus.prototype.getLabelBounds=function(a){if(1==this.style["double"]){var c=(2*Math.max(2,this.strokewidth+1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||0))*this.scale;return new mxRectangle(a.x+c,a.y+c,a.width-2*c,a.height-2*c)}return a};mxRhombus.prototype.paintVertexShape=function(a,c,b,d,f){Ea.apply(this,arguments);if(!this.outline&&1==this.style["double"]){var e=2*Math.max(2,this.strokewidth+ +1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||0);c+=e;b+=e;d-=2*e;f-=2*e;0<d&&0<f&&(a.setShadow(!1),Ea.apply(this,[a,c,b,d,f]))}};mxUtils.extend(z,mxRectangleShape);z.prototype.isHtmlAllowed=function(){return!1};z.prototype.getLabelBounds=function(a){if(1==this.style["double"]){var c=(Math.max(2,this.strokewidth+1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||0))*this.scale;return new mxRectangle(a.x+c,a.y+c,a.width-2*c,a.height-2*c)}return a};z.prototype.paintForeground=function(a,c,b, +d,f){if(null!=this.style){if(!this.outline&&1==this.style["double"]){var e=Math.max(2,this.strokewidth+1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||0);c+=e;b+=e;d-=2*e;f-=2*e;0<d&&0<f&&mxRectangleShape.prototype.paintBackground.apply(this,arguments)}a.setDashed(!1);var e=0,g;do{g=mxCellRenderer.defaultShapes[this.style["symbol"+e]];if(null!=g){var h=this.style["symbol"+e+"Align"],na=this.style["symbol"+e+"VerticalAlign"],n=this.style["symbol"+e+"Width"],m=this.style["symbol"+e+"Height"],t= +this.style["symbol"+e+"Spacing"]||0,r=this.style["symbol"+e+"VSpacing"]||t,y=this.style["symbol"+e+"ArcSpacing"];null!=y&&(y*=this.getArcSize(d+this.strokewidth,f+this.strokewidth),t+=y,r+=y);var y=c,k=b,y=h==mxConstants.ALIGN_CENTER?y+(d-n)/2:h==mxConstants.ALIGN_RIGHT?y+(d-n-t):y+t,k=na==mxConstants.ALIGN_MIDDLE?k+(f-m)/2:na==mxConstants.ALIGN_BOTTOM?k+(f-m-r):k+r;a.save();h=new g;h.style=this.style;g.prototype.paintVertexShape.call(h,a,y,k,n,m);a.restore()}e++}while(null!=g)}mxRectangleShape.prototype.paintForeground.apply(this, +arguments)};mxCellRenderer.registerShape("ext",z);mxUtils.extend(H,mxCylinder);H.prototype.redrawPath=function(a,c,b,d,f,e){e?(a.moveTo(0,0),a.lineTo(d/2,f/2),a.lineTo(d,0),a.end()):(a.moveTo(0,0),a.lineTo(d,0),a.lineTo(d,f),a.lineTo(0,f),a.close())};mxCellRenderer.registerShape("message",H);mxUtils.extend(G,mxShape);G.prototype.paintBackground=function(a,c,b,d,f){a.translate(c,b);a.ellipse(d/4,0,d/2,f/4);a.fillAndStroke();a.begin();a.moveTo(d/2,f/4);a.lineTo(d/2,2*f/3);a.moveTo(d/2,f/3);a.lineTo(0, +f/3);a.moveTo(d/2,f/3);a.lineTo(d,f/3);a.moveTo(d/2,2*f/3);a.lineTo(0,f);a.moveTo(d/2,2*f/3);a.lineTo(d,f);a.end();a.stroke()};mxCellRenderer.registerShape("umlActor",G);mxUtils.extend(B,mxShape);B.prototype.getLabelMargins=function(a){return new mxRectangle(a.width/6,0,0,0)};B.prototype.paintBackground=function(a,c,b,d,f){a.translate(c,b);a.begin();a.moveTo(0,f/4);a.lineTo(0,3*f/4);a.end();a.stroke();a.begin();a.moveTo(0,f/2);a.lineTo(d/6,f/2);a.end();a.stroke();a.ellipse(d/6,0,5*d/6,f);a.fillAndStroke()}; +mxCellRenderer.registerShape("umlBoundary",B);mxUtils.extend(J,mxEllipse);J.prototype.paintVertexShape=function(a,c,b,d,f){mxEllipse.prototype.paintVertexShape.apply(this,arguments);a.begin();a.moveTo(c+d/8,b+f);a.lineTo(c+7*d/8,b+f);a.end();a.stroke()};mxCellRenderer.registerShape("umlEntity",J);mxUtils.extend(K,mxShape);K.prototype.paintVertexShape=function(a,c,b,d,f){a.translate(c,b);a.begin();a.moveTo(d,0);a.lineTo(0,f);a.moveTo(0,0);a.lineTo(d,f);a.end();a.stroke()};mxCellRenderer.registerShape("umlDestroy", +K);mxUtils.extend(x,mxShape);x.prototype.getLabelBounds=function(a){return new mxRectangle(a.x,a.y+a.height/8,a.width,7*a.height/8)};x.prototype.paintBackground=function(a,c,b,d,f){a.translate(c,b);a.begin();a.moveTo(3*d/8,f/8*1.1);a.lineTo(5*d/8,0);a.end();a.stroke();a.ellipse(0,f/8,d,7*f/8);a.fillAndStroke()};x.prototype.paintForeground=function(a,c,b,d,f){a.begin();a.moveTo(3*d/8,f/8*1.1);a.lineTo(5*d/8,f/4);a.end();a.stroke()};mxCellRenderer.registerShape("umlControl",x);mxUtils.extend(C,mxRectangleShape); +C.prototype.size=40;C.prototype.isHtmlAllowed=function(){return!1};C.prototype.getLabelBounds=function(a){var c=Math.max(0,Math.min(a.height,parseFloat(mxUtils.getValue(this.style,"size",this.size))*this.scale));return new mxRectangle(a.x,a.y,a.width,c)};C.prototype.paintBackground=function(a,c,b,d,f){var e=Math.max(0,Math.min(f,parseFloat(mxUtils.getValue(this.style,"size",this.size)))),g=mxUtils.getValue(this.style,"participant");null==g||null==this.state?mxRectangleShape.prototype.paintBackground.call(this, +a,c,b,d,e):(g=this.state.view.graph.cellRenderer.getShape(g),null!=g&&g!=C&&(g=new g,g.apply(this.state),a.save(),g.paintVertexShape(a,c,b,d,e),a.restore()));e<f&&(a.setDashed(!0),a.begin(),a.moveTo(c+d/2,b+e),a.lineTo(c+d/2,b+f),a.end(),a.stroke())};C.prototype.paintForeground=function(a,c,b,d,f){var e=Math.max(0,Math.min(f,parseFloat(mxUtils.getValue(this.style,"size",this.size))));mxRectangleShape.prototype.paintForeground.call(this,a,c,b,d,Math.min(f,e))};mxCellRenderer.registerShape("umlLifeline", +C);mxUtils.extend(I,mxShape);I.prototype.width=60;I.prototype.height=30;I.prototype.corner=10;I.prototype.getLabelMargins=function(a){return new mxRectangle(0,0,a.width-parseFloat(mxUtils.getValue(this.style,"width",this.width)*this.scale),a.height-parseFloat(mxUtils.getValue(this.style,"height",this.height)*this.scale))};I.prototype.paintBackground=function(a,c,b,d,f){var e=this.corner,g=Math.min(d,Math.max(e,parseFloat(mxUtils.getValue(this.style,"width",this.width)))),h=Math.min(f,Math.max(1.5* +e,parseFloat(mxUtils.getValue(this.style,"height",this.height)))),n=mxUtils.getValue(this.style,mxConstants.STYLE_SWIMLANE_FILLCOLOR,mxConstants.NONE);n!=mxConstants.NONE&&(a.setFillColor(n),a.rect(c,b,d,f),a.fill());null!=this.fill&&this.fill!=mxConstants.NONE&&this.gradient&&this.gradient!=mxConstants.NONE?(this.getGradientBounds(a,c,b,d,f),a.setGradient(this.fill,this.gradient,c,b,d,f,this.gradientDirection)):a.setFillColor(this.fill);a.begin();a.moveTo(c,b);a.lineTo(c+g,b);a.lineTo(c+g,b+Math.max(0, +h-1.5*e));a.lineTo(c+Math.max(0,g-e),b+h);a.lineTo(c,b+h);a.close();a.fillAndStroke();a.begin();a.moveTo(c+g,b);a.lineTo(c+d,b);a.lineTo(c+d,b+f);a.lineTo(c,b+f);a.lineTo(c,b+h);a.stroke()};mxCellRenderer.registerShape("umlFrame",I);mxPerimeter.LifelinePerimeter=function(a,c,b,d){d=C.prototype.size;null!=c&&(d=mxUtils.getValue(c.style,"size",d)*c.view.scale);c=parseFloat(c.style[mxConstants.STYLE_STROKEWIDTH]||1)*c.view.scale/2-1;b.x<a.getCenterX()&&(c=-1*(c+1));return new mxPoint(a.getCenterX()+ +c,Math.min(a.y+a.height,Math.max(a.y+d,b.y)))};mxStyleRegistry.putValue("lifelinePerimeter",mxPerimeter.LifelinePerimeter);mxPerimeter.OrthogonalPerimeter=function(a,c,b,d){d=!0;return mxPerimeter.RectanglePerimeter.apply(this,arguments)};mxStyleRegistry.putValue("orthogonalPerimeter",mxPerimeter.OrthogonalPerimeter);mxPerimeter.BackbonePerimeter=function(a,c,b,d){d=parseFloat(c.style[mxConstants.STYLE_STROKEWIDTH]||1)*c.view.scale/2-1;null!=c.style.backboneSize&&(d+=parseFloat(c.style.backboneSize)* +c.view.scale/2-1);if("south"==c.style[mxConstants.STYLE_DIRECTION]||"north"==c.style[mxConstants.STYLE_DIRECTION])return b.x<a.getCenterX()&&(d=-1*(d+1)),new mxPoint(a.getCenterX()+d,Math.min(a.y+a.height,Math.max(a.y,b.y)));b.y<a.getCenterY()&&(d=-1*(d+1));return new mxPoint(Math.min(a.x+a.width,Math.max(a.x,b.x)),a.getCenterY()+d)};mxStyleRegistry.putValue("backbonePerimeter",mxPerimeter.BackbonePerimeter);mxPerimeter.CalloutPerimeter=function(a,c,b,d){return mxPerimeter.RectanglePerimeter(mxUtils.getDirectedBounds(a, +new mxRectangle(0,0,0,Math.max(0,Math.min(a.height,parseFloat(mxUtils.getValue(c.style,"size",v.prototype.size))*c.view.scale))),c.style),c,b,d)};mxStyleRegistry.putValue("calloutPerimeter",mxPerimeter.CalloutPerimeter);mxPerimeter.ParallelogramPerimeter=function(a,c,b,d){var e=f.prototype.size;null!=c&&(e=mxUtils.getValue(c.style,"size",e));var g=a.x,h=a.y,n=a.width,m=a.height;c=null!=c?mxUtils.getValue(c.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST):mxConstants.DIRECTION_EAST;c== +mxConstants.DIRECTION_NORTH||c==mxConstants.DIRECTION_SOUTH?(e=m*Math.max(0,Math.min(1,e)),h=[new mxPoint(g,h),new mxPoint(g+n,h+e),new mxPoint(g+n,h+m),new mxPoint(g,h+m-e),new mxPoint(g,h)]):(e=n*Math.max(0,Math.min(1,e)),h=[new mxPoint(g+e,h),new mxPoint(g+n,h),new mxPoint(g+n-e,h+m),new mxPoint(g,h+m),new mxPoint(g+e,h)]);m=a.getCenterX();a=a.getCenterY();a=new mxPoint(m,a);d&&(b.x<g||b.x>g+n?a.y=b.y:a.x=b.x);return mxUtils.getPerimeterPoint(h,a,b)};mxStyleRegistry.putValue("parallelogramPerimeter", +mxPerimeter.ParallelogramPerimeter);mxPerimeter.TrapezoidPerimeter=function(a,c,b,d){var f=g.prototype.size;null!=c&&(f=mxUtils.getValue(c.style,"size",f));var e=a.x,h=a.y,n=a.width,m=a.height;c=null!=c?mxUtils.getValue(c.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST):mxConstants.DIRECTION_EAST;c==mxConstants.DIRECTION_EAST?(f=n*Math.max(0,Math.min(1,f)),h=[new mxPoint(e+f,h),new mxPoint(e+n-f,h),new mxPoint(e+n,h+m),new mxPoint(e,h+m),new mxPoint(e+f,h)]):c==mxConstants.DIRECTION_WEST? +(f=n*Math.max(0,Math.min(1,f)),h=[new mxPoint(e,h),new mxPoint(e+n,h),new mxPoint(e+n-f,h+m),new mxPoint(e+f,h+m),new mxPoint(e,h)]):c==mxConstants.DIRECTION_NORTH?(f=m*Math.max(0,Math.min(1,f)),h=[new mxPoint(e,h+f),new mxPoint(e+n,h),new mxPoint(e+n,h+m),new mxPoint(e,h+m-f),new mxPoint(e,h+f)]):(f=m*Math.max(0,Math.min(1,f)),h=[new mxPoint(e,h),new mxPoint(e+n,h+f),new mxPoint(e+n,h+m-f),new mxPoint(e,h+m),new mxPoint(e,h)]);m=a.getCenterX();a=a.getCenterY();a=new mxPoint(m,a);d&&(b.x<e||b.x>e+ +n?a.y=b.y:a.x=b.x);return mxUtils.getPerimeterPoint(h,a,b)};mxStyleRegistry.putValue("trapezoidPerimeter",mxPerimeter.TrapezoidPerimeter);mxPerimeter.StepPerimeter=function(a,c,b,d){var f="0"!=mxUtils.getValue(c.style,"fixedSize","0"),e=f?A.prototype.fixedSize:A.prototype.size;null!=c&&(e=mxUtils.getValue(c.style,"size",e));var g=a.x,h=a.y,n=a.width,m=a.height,t=a.getCenterX();a=a.getCenterY();c=null!=c?mxUtils.getValue(c.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST):mxConstants.DIRECTION_EAST; +c==mxConstants.DIRECTION_EAST?(f=f?Math.max(0,Math.min(n,e)):n*Math.max(0,Math.min(1,e)),h=[new mxPoint(g,h),new mxPoint(g+n-f,h),new mxPoint(g+n,a),new mxPoint(g+n-f,h+m),new mxPoint(g,h+m),new mxPoint(g+f,a),new mxPoint(g,h)]):c==mxConstants.DIRECTION_WEST?(f=f?Math.max(0,Math.min(n,e)):n*Math.max(0,Math.min(1,e)),h=[new mxPoint(g+f,h),new mxPoint(g+n,h),new mxPoint(g+n-f,a),new mxPoint(g+n,h+m),new mxPoint(g+f,h+m),new mxPoint(g,a),new mxPoint(g+f,h)]):c==mxConstants.DIRECTION_NORTH?(f=f?Math.max(0, +Math.min(m,e)):m*Math.max(0,Math.min(1,e)),h=[new mxPoint(g,h+f),new mxPoint(t,h),new mxPoint(g+n,h+f),new mxPoint(g+n,h+m),new mxPoint(t,h+m-f),new mxPoint(g,h+m),new mxPoint(g,h+f)]):(f=f?Math.max(0,Math.min(m,e)):m*Math.max(0,Math.min(1,e)),h=[new mxPoint(g,h),new mxPoint(t,h+f),new mxPoint(g+n,h),new mxPoint(g+n,h+m-f),new mxPoint(t,h+m),new mxPoint(g,h+m-f),new mxPoint(g,h)]);t=new mxPoint(t,a);d&&(b.x<g||b.x>g+n?t.y=b.y:t.x=b.x);return mxUtils.getPerimeterPoint(h,t,b)};mxStyleRegistry.putValue("stepPerimeter", +mxPerimeter.StepPerimeter);mxPerimeter.HexagonPerimeter2=function(a,c,b,d){var f=y.prototype.size;null!=c&&(f=mxUtils.getValue(c.style,"size",f));var e=a.x,g=a.y,h=a.width,n=a.height,m=a.getCenterX();a=a.getCenterY();c=null!=c?mxUtils.getValue(c.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST):mxConstants.DIRECTION_EAST;c==mxConstants.DIRECTION_NORTH||c==mxConstants.DIRECTION_SOUTH?(f=n*Math.max(0,Math.min(1,f)),g=[new mxPoint(m,g),new mxPoint(e+h,g+f),new mxPoint(e+h,g+n-f),new mxPoint(m, +g+n),new mxPoint(e,g+n-f),new mxPoint(e,g+f),new mxPoint(m,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+n),new mxPoint(e+f,g+n),new mxPoint(e,a),new mxPoint(e+f,g)]);m=new mxPoint(m,a);d&&(b.x<e||b.x>e+h?m.y=b.y:m.x=b.x);return mxUtils.getPerimeterPoint(g,m,b)};mxStyleRegistry.putValue("hexagonPerimeter2",mxPerimeter.HexagonPerimeter2);mxUtils.extend(R,mxShape);R.prototype.size=10;R.prototype.paintBackground=function(a,c,b,d, +f){var e=parseFloat(mxUtils.getValue(this.style,"size",this.size));a.translate(c,b);a.ellipse((d-e)/2,0,e,e);a.fillAndStroke();a.begin();a.moveTo(d/2,e);a.lineTo(d/2,f);a.end();a.stroke()};mxCellRenderer.registerShape("lollipop",R);mxUtils.extend(P,mxShape);P.prototype.size=10;P.prototype.inset=2;P.prototype.paintBackground=function(a,c,b,d,f){var e=parseFloat(mxUtils.getValue(this.style,"size",this.size)),g=parseFloat(mxUtils.getValue(this.style,"inset",this.inset))+this.strokewidth;a.translate(c, +b);a.begin();a.moveTo(d/2,e+g);a.lineTo(d/2,f);a.end();a.stroke();a.begin();a.moveTo((d-e)/2-g,e/2);a.quadTo((d-e)/2-g,e+g,d/2,e+g);a.quadTo((d+e)/2+g,e+g,(d+e)/2+g,e/2);a.end();a.stroke()};mxCellRenderer.registerShape("requires",P);mxUtils.extend(X,mxShape);X.prototype.paintBackground=function(a,c,b,d,f){a.translate(c,b);a.begin();a.moveTo(0,0);a.quadTo(d,0,d,f/2);a.quadTo(d,f,0,f);a.end();a.stroke()};mxCellRenderer.registerShape("requiredInterface",X);mxUtils.extend(U,mxShape);U.prototype.inset= +2;U.prototype.paintBackground=function(a,c,b,d,f){var e=parseFloat(mxUtils.getValue(this.style,"inset",this.inset))+this.strokewidth;a.translate(c,b);a.ellipse(0,e,d-2*e,f-2*e);a.fillAndStroke();a.begin();a.moveTo(d/2,0);a.quadTo(d,0,d,f/2);a.quadTo(d,f,d/2,f);a.end();a.stroke()};mxCellRenderer.registerShape("providedRequiredInterface",U);mxUtils.extend(F,mxCylinder);F.prototype.jettyWidth=32;F.prototype.jettyHeight=12;F.prototype.redrawPath=function(a,c,b,d,f,e){var g=parseFloat(mxUtils.getValue(this.style, +"jettyWidth",this.jettyWidth));c=parseFloat(mxUtils.getValue(this.style,"jettyHeight",this.jettyHeight));b=g/2;var g=b+g/2,h=.3*f-c/2,n=.7*f-c/2;e?(a.moveTo(b,h),a.lineTo(g,h),a.lineTo(g,h+c),a.lineTo(b,h+c),a.moveTo(b,n),a.lineTo(g,n),a.lineTo(g,n+c),a.lineTo(b,n+c)):(a.moveTo(b,0),a.lineTo(d,0),a.lineTo(d,f),a.lineTo(b,f),a.lineTo(b,n+c),a.lineTo(0,n+c),a.lineTo(0,n),a.lineTo(b,n),a.lineTo(b,h+c),a.lineTo(0,h+c),a.lineTo(0,h),a.lineTo(b,h),a.close());a.end()};mxCellRenderer.registerShape("component", +F);mxUtils.extend(ea,mxDoubleEllipse);ea.prototype.outerStroke=!0;ea.prototype.paintVertexShape=function(a,c,b,d,f){var e=Math.min(4,Math.min(d/5,f/5));0<d&&0<f&&(a.ellipse(c+e,b+e,d-2*e,f-2*e),a.fillAndStroke());a.setShadow(!1);this.outerStroke&&(a.ellipse(c,b,d,f),a.stroke())};mxCellRenderer.registerShape("endState",ea);mxUtils.extend(ka,ea);ka.prototype.outerStroke=!1;mxCellRenderer.registerShape("startState",ka);mxUtils.extend(Y,mxArrowConnector);Y.prototype.defaultWidth=4;Y.prototype.isOpenEnded= function(){return!0};Y.prototype.getEdgeWidth=function(){return mxUtils.getNumber(this.style,"width",this.defaultWidth)+Math.max(0,this.strokewidth-1)};Y.prototype.isArrowRounded=function(){return this.isRounded};mxCellRenderer.registerShape("link",Y);mxUtils.extend(ba,mxArrowConnector);ba.prototype.defaultWidth=10;ba.prototype.defaultArrowWidth=20;ba.prototype.getStartArrowWidth=function(){return this.getEdgeWidth()+mxUtils.getNumber(this.style,"startWidth",this.defaultArrowWidth)};ba.prototype.getEndArrowWidth= -function(){return this.getEdgeWidth()+mxUtils.getNumber(this.style,"endWidth",this.defaultArrowWidth)};ba.prototype.getEdgeWidth=function(){return mxUtils.getNumber(this.style,"width",this.defaultWidth)+Math.max(0,this.strokewidth-1)};mxCellRenderer.registerShape("flexArrow",ba);mxUtils.extend(L,mxActor);L.prototype.size=30;L.prototype.isRoundable=function(){return!0};L.prototype.redrawPath=function(a,c,d,b,f){c=Math.min(f,parseFloat(mxUtils.getValue(this.style,"size",this.size)));d=mxUtils.getValue(this.style, -mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,f),new mxPoint(0,c),new mxPoint(b,0),new mxPoint(b,f)],this.isRounded,d,!0);a.end()};mxCellRenderer.registerShape("manualInput",L);mxUtils.extend(E,mxRectangleShape);E.prototype.dx=20;E.prototype.dy=20;E.prototype.isHtmlAllowed=function(){return!1};E.prototype.paintForeground=function(a,c,d,b,f){mxRectangleShape.prototype.paintForeground.apply(this,arguments);var e=0;if(this.isRounded)var g=mxUtils.getValue(this.style, -mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100,e=Math.max(e,Math.min(b*g,f*g));g=Math.max(e,Math.min(b,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));e=Math.max(e,Math.min(f,parseFloat(mxUtils.getValue(this.style,"dy",this.dy))));a.begin();a.moveTo(c,d+e);a.lineTo(c+b,d+e);a.end();a.stroke();a.begin();a.moveTo(c+g,d);a.lineTo(c+g,d+f);a.end();a.stroke()};mxCellRenderer.registerShape("internalStorage",E);mxUtils.extend(S,mxActor);S.prototype.dx=20;S.prototype.dy= -20;S.prototype.redrawPath=function(a,c,d,b,f){c=Math.max(0,Math.min(b,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));d=Math.max(0,Math.min(f,parseFloat(mxUtils.getValue(this.style,"dy",this.dy))));parseFloat(mxUtils.getValue(this.style,"size",this.size));var e=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,0),new mxPoint(b,0),new mxPoint(b,d),new mxPoint(c,d),new mxPoint(c,f),new mxPoint(0,f)],this.isRounded,e,!0);a.end()}; -mxCellRenderer.registerShape("corner",S);mxUtils.extend(M,mxActor);M.prototype.redrawPath=function(a,c,d,b,f){a.moveTo(0,0);a.lineTo(0,f);a.end();a.moveTo(b,0);a.lineTo(b,f);a.end();a.moveTo(0,f/2);a.lineTo(b,f/2);a.end()};mxCellRenderer.registerShape("crossbar",M);mxUtils.extend(N,mxActor);N.prototype.dx=20;N.prototype.dy=20;N.prototype.redrawPath=function(a,c,d,b,f){c=Math.max(0,Math.min(b,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));d=Math.max(0,Math.min(f,parseFloat(mxUtils.getValue(this.style, -"dy",this.dy))));parseFloat(mxUtils.getValue(this.style,"size",this.size));var e=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,0),new mxPoint(b,0),new mxPoint(b,d),new mxPoint((b+c)/2,d),new mxPoint((b+c)/2,f),new mxPoint((b-c)/2,f),new mxPoint((b-c)/2,d),new mxPoint(0,d)],this.isRounded,e,!0);a.end()};mxCellRenderer.registerShape("tee",N);mxUtils.extend(T,mxActor);T.prototype.arrowWidth=.3;T.prototype.arrowSize=.2;T.prototype.redrawPath= -function(a,c,d,b,f){var e=f*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowWidth",this.arrowWidth))));c=b*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowSize",this.arrowSize))));d=(f-e)/2;var e=d+e,g=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,d),new mxPoint(b-c,d),new mxPoint(b-c,0),new mxPoint(b,f/2),new mxPoint(b-c,f),new mxPoint(b-c,e),new mxPoint(0,e)],this.isRounded,g,!0);a.end()};mxCellRenderer.registerShape("singleArrow", -T);mxUtils.extend(D,mxActor);D.prototype.redrawPath=function(a,c,d,b,f){var e=f*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowWidth",T.prototype.arrowWidth))));c=b*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowSize",T.prototype.arrowSize))));d=(f-e)/2;var e=d+e,g=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,f/2),new mxPoint(c,0),new mxPoint(c,d),new mxPoint(b-c,d),new mxPoint(b-c,0),new mxPoint(b, -f/2),new mxPoint(b-c,f),new mxPoint(b-c,e),new mxPoint(c,e),new mxPoint(c,f)],this.isRounded,g,!0);a.end()};mxCellRenderer.registerShape("doubleArrow",D);mxUtils.extend(Q,mxActor);Q.prototype.size=.1;Q.prototype.redrawPath=function(a,c,d,b,f){c=b*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));a.moveTo(c,0);a.lineTo(b,0);a.quadTo(b-2*c,f/2,b,f);a.lineTo(c,f);a.quadTo(c-2*c,f/2,c,0);a.close();a.end()};mxCellRenderer.registerShape("dataStorage",Q);mxUtils.extend(V, -mxActor);V.prototype.redrawPath=function(a,c,d,b,f){a.moveTo(0,0);a.quadTo(b,0,b,f/2);a.quadTo(b,f,0,f);a.close();a.end()};mxCellRenderer.registerShape("or",V);mxUtils.extend(ga,mxActor);ga.prototype.redrawPath=function(a,c,d,b,f){a.moveTo(0,0);a.quadTo(b,0,b,f/2);a.quadTo(b,f,0,f);a.quadTo(b/2,f/2,0,0);a.close();a.end()};mxCellRenderer.registerShape("xor",ga);mxUtils.extend(W,mxActor);W.prototype.size=20;W.prototype.isRoundable=function(){return!0};W.prototype.redrawPath=function(a,c,d,b,f){c=Math.min(b/ -2,Math.min(f,parseFloat(mxUtils.getValue(this.style,"size",this.size))));d=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(c,0),new mxPoint(b-c,0),new mxPoint(b,.8*c),new mxPoint(b,f),new mxPoint(0,f),new mxPoint(0,.8*c)],this.isRounded,d,!0);a.end()};mxCellRenderer.registerShape("loopLimit",W);mxUtils.extend(aa,mxActor);aa.prototype.size=.375;aa.prototype.isRoundable=function(){return!0};aa.prototype.redrawPath=function(a,c,d,b,f){c= -f*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));d=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,0),new mxPoint(b,0),new mxPoint(b,f-c),new mxPoint(b/2,f),new mxPoint(0,f-c)],this.isRounded,d,!0);a.end()};mxCellRenderer.registerShape("offPageConnector",aa);mxUtils.extend(Z,mxEllipse);Z.prototype.paintVertexShape=function(a,c,d,b,f){mxEllipse.prototype.paintVertexShape.apply(this,arguments);a.begin(); -a.moveTo(c+b/2,d+f);a.lineTo(c+b,d+f);a.end();a.stroke()};mxCellRenderer.registerShape("tapeData",Z);mxUtils.extend(pa,mxEllipse);pa.prototype.paintVertexShape=function(a,c,d,b,f){mxEllipse.prototype.paintVertexShape.apply(this,arguments);a.setShadow(!1);a.begin();a.moveTo(c,d+f/2);a.lineTo(c+b,d+f/2);a.end();a.stroke();a.begin();a.moveTo(c+b/2,d);a.lineTo(c+b/2,d+f);a.end();a.stroke()};mxCellRenderer.registerShape("orEllipse",pa);mxUtils.extend(ra,mxEllipse);ra.prototype.paintVertexShape=function(a, -c,d,b,f){mxEllipse.prototype.paintVertexShape.apply(this,arguments);a.setShadow(!1);a.begin();a.moveTo(c+.145*b,d+.145*f);a.lineTo(c+.855*b,d+.855*f);a.end();a.stroke();a.begin();a.moveTo(c+.855*b,d+.145*f);a.lineTo(c+.145*b,d+.855*f);a.end();a.stroke()};mxCellRenderer.registerShape("sumEllipse",ra);mxUtils.extend(fa,mxRhombus);fa.prototype.paintVertexShape=function(a,c,d,b,f){mxRhombus.prototype.paintVertexShape.apply(this,arguments);a.setShadow(!1);a.begin();a.moveTo(c,d+f/2);a.lineTo(c+b,d+f/2); -a.end();a.stroke()};mxCellRenderer.registerShape("sortShape",fa);mxUtils.extend(ma,mxEllipse);ma.prototype.paintVertexShape=function(a,c,d,b,f){a.begin();a.moveTo(c,d);a.lineTo(c+b,d);a.lineTo(c+b/2,d+f/2);a.close();a.fillAndStroke();a.begin();a.moveTo(c,d+f);a.lineTo(c+b,d+f);a.lineTo(c+b/2,d+f/2);a.close();a.fillAndStroke()};mxCellRenderer.registerShape("collate",ma);mxUtils.extend(ta,mxEllipse);ta.prototype.paintVertexShape=function(a,c,d,b,f){var e=d+f-5;a.begin();a.moveTo(c,d);a.lineTo(c,d+f); -a.moveTo(c,e);a.lineTo(c+10,e-5);a.moveTo(c,e);a.lineTo(c+10,e+5);a.moveTo(c,e);a.lineTo(c+b,e);a.moveTo(c+b,d);a.lineTo(c+b,d+f);a.moveTo(c+b,e);a.lineTo(c+b-10,e-5);a.moveTo(c+b,e);a.lineTo(c+b-10,e+5);a.end();a.stroke()};mxCellRenderer.registerShape("dimension",ta);mxUtils.extend(la,mxEllipse);la.prototype.paintVertexShape=function(a,c,d,b,f){this.outline||a.setStrokeColor(null);mxRectangleShape.prototype.paintBackground.apply(this,arguments);null!=this.style&&(a.setStrokeColor(this.stroke),a.rect(c, -d,b,f),a.fill(),a.begin(),a.moveTo(c,d),"1"==mxUtils.getValue(this.style,"top","1")?a.lineTo(c+b,d):a.moveTo(c+b,d),"1"==mxUtils.getValue(this.style,"right","1")?a.lineTo(c+b,d+f):a.moveTo(c+b,d+f),"1"==mxUtils.getValue(this.style,"bottom","1")?a.lineTo(c,d+f):a.moveTo(c,d+f),"1"==mxUtils.getValue(this.style,"left","1")&&a.lineTo(c,d-this.strokewidth/2),a.end(),a.stroke())};mxCellRenderer.registerShape("partialRectangle",la);mxUtils.extend(sa,mxEllipse);sa.prototype.paintVertexShape=function(a,c, -d,b,f){mxEllipse.prototype.paintVertexShape.apply(this,arguments);a.setShadow(!1);a.begin();"vertical"==mxUtils.getValue(this.style,"line")?(a.moveTo(c+b/2,d),a.lineTo(c+b/2,d+f)):(a.moveTo(c,d+f/2),a.lineTo(c+b,d+f/2));a.end();a.stroke()};mxCellRenderer.registerShape("lineEllipse",sa);mxUtils.extend(ha,mxActor);ha.prototype.redrawPath=function(a,c,d,b,f){c=Math.min(b,f/2);a.moveTo(0,0);a.lineTo(b-c,0);a.quadTo(b,0,b,f/2);a.quadTo(b,f,b-c,f);a.lineTo(0,f);a.close();a.end()};mxCellRenderer.registerShape("delay", -ha);mxUtils.extend(ca,mxActor);ca.prototype.size=.2;ca.prototype.redrawPath=function(a,c,d,b,f){c=Math.min(f,b);var e=Math.max(0,Math.min(c,c*parseFloat(mxUtils.getValue(this.style,"size",this.size))));c=(f-e)/2;d=c+e;var g=(b-e)/2,e=g+e;a.moveTo(0,c);a.lineTo(g,c);a.lineTo(g,0);a.lineTo(e,0);a.lineTo(e,c);a.lineTo(b,c);a.lineTo(b,d);a.lineTo(e,d);a.lineTo(e,f);a.lineTo(g,f);a.lineTo(g,d);a.lineTo(0,d);a.close();a.end()};mxCellRenderer.registerShape("cross",ca);mxUtils.extend(da,mxActor);da.prototype.size= -.25;da.prototype.redrawPath=function(a,c,d,b,f){c=Math.min(b,f/2);d=Math.min(b-c,Math.max(0,parseFloat(mxUtils.getValue(this.style,"size",this.size)))*b);a.moveTo(0,f/2);a.lineTo(d,0);a.lineTo(b-c,0);a.quadTo(b,0,b,f/2);a.quadTo(b,f,b-c,f);a.lineTo(d,f);a.close();a.end()};mxCellRenderer.registerShape("display",da);mxUtils.extend(ia,mxConnector);ia.prototype.origPaintEdgeShape=ia.prototype.paintEdgeShape;ia.prototype.paintEdgeShape=function(a,c,d){for(var b=[],f=0;f<c.length;f++)b.push(mxUtils.clone(c[f])); -var f=a.state.dashed,e=a.state.fixDash;ia.prototype.origPaintEdgeShape.apply(this,[a,b,d]);3<=a.state.strokeWidth&&(b=mxUtils.getValue(this.style,"fillColor",null),null!=b&&(a.setStrokeColor(b),a.setStrokeWidth(a.state.strokeWidth-2),a.setDashed(f,e),ia.prototype.origPaintEdgeShape.apply(this,[a,c,d])))};mxCellRenderer.registerShape("filledEdge",ia);"undefined"!==typeof StyleFormatPanel&&function(){var a=StyleFormatPanel.prototype.getCustomColors;StyleFormatPanel.prototype.getCustomColors=function(){var c= -this.format.getSelectionState(),d=a.apply(this,arguments);"umlFrame"==c.style.shape&&d.push({title:mxResources.get("laneColor"),key:"swimlaneFillColor",defaultValue:"#ffffff"});return d}}();mxMarker.addMarker("dash",function(a,c,d,b,f,e,g,k,l,n){var t=f*(g+l+1),r=e*(g+l+1);return function(){a.begin();a.moveTo(b.x-t/2-r/2,b.y-r/2+t/2);a.lineTo(b.x+r/2-3*t/2,b.y-3*r/2-t/2);a.stroke()}});mxMarker.addMarker("cross",function(a,c,d,b,f,e,g,k,l,n){var t=f*(g+l+1),r=e*(g+l+1);return function(){a.begin(); -a.moveTo(b.x-t/2-r/2,b.y-r/2+t/2);a.lineTo(b.x+r/2-3*t/2,b.y-3*r/2-t/2);a.moveTo(b.x-t/2+r/2,b.y-r/2-t/2);a.lineTo(b.x-r/2-3*t/2,b.y-3*r/2+t/2);a.stroke()}});mxMarker.addMarker("circle",wa);mxMarker.addMarker("circlePlus",function(a,c,d,b,f,e,g,k,l,n){var t=b.clone(),r=wa.apply(this,arguments),y=f*(g+2*l),h=e*(g+2*l);return function(){r.apply(this,arguments);a.begin();a.moveTo(t.x-f*l,t.y-e*l);a.lineTo(t.x-2*y+f*l,t.y-2*h+e*l);a.moveTo(t.x-y-h+e*l,t.y-h+y-f*l);a.lineTo(t.x+h-y-e*l,t.y-h-y+f*l);a.stroke()}}); -mxMarker.addMarker("async",function(a,c,d,b,f,e,g,k,l,n){c=f*l*1.118;d=e*l*1.118;f*=g+l;e*=g+l;var t=b.clone();t.x-=c;t.y-=d;b.x+=1*-f-c;b.y+=1*-e-d;return function(){a.begin();a.moveTo(t.x,t.y);k?a.lineTo(t.x-f-e/2,t.y-e+f/2):a.lineTo(t.x+e/2-f,t.y-e-f/2);a.lineTo(t.x-f,t.y-e);a.close();n?a.fillAndStroke():a.stroke()}});mxMarker.addMarker("openAsync",function(a){a=null!=a?a:2;return function(c,b,d,f,e,g,k,l,n,t){e*=k+n;g*=k+n;var r=f.clone();return function(){c.begin();c.moveTo(r.x,r.y);l?c.lineTo(r.x- -e-g/a,r.y-g+e/a):c.lineTo(r.x+g/a-e,r.y-g-e/a);c.stroke()}}}(2));if("undefined"!==typeof mxVertexHandler){var Ca=function(a,c,b){return ua(a,["width"],c,function(c,d,f,e,g){g=a.shape.getEdgeWidth()*a.view.scale+b;return new mxPoint(e.x+d*c/4+f*g/2,e.y+f*c/4-d*g/2)},function(c,d,f,e,g,k){c=Math.sqrt(mxUtils.ptSegDistSq(e.x,e.y,g.x,g.y,k.x,k.y));a.style.width=Math.round(2*c)/a.view.scale-b})},ua=function(a,c,d,b,f){return O(a,c,function(c){var f=a.absolutePoints,e=f.length-1;c=a.view.translate;var g= -a.view.scale,k=d?f[0]:f[e],f=d?f[1]:f[e-1],e=f.x-k.x,l=f.y-k.y,n=Math.sqrt(e*e+l*l),k=b.call(this,n,e/n,l/n,k,f);return new mxPoint(k.x/g-c.x,k.y/g-c.y)},function(c,b,e){var g=a.absolutePoints,k=g.length-1;c=a.view.translate;var l=a.view.scale,n=d?g[0]:g[k],g=d?g[1]:g[k-1],k=g.x-n.x,t=g.y-n.y,r=Math.sqrt(k*k+t*t);b.x=(b.x+c.x)*l;b.y=(b.y+c.y)*l;f.call(this,r,k/r,t/r,n,g,b,e)})},oa=function(a){return function(c){return[O(c,["arrowWidth","arrowSize"],function(c){var b=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style, +function(){return this.getEdgeWidth()+mxUtils.getNumber(this.style,"endWidth",this.defaultArrowWidth)};ba.prototype.getEdgeWidth=function(){return mxUtils.getNumber(this.style,"width",this.defaultWidth)+Math.max(0,this.strokewidth-1)};mxCellRenderer.registerShape("flexArrow",ba);mxUtils.extend(L,mxActor);L.prototype.size=30;L.prototype.isRoundable=function(){return!0};L.prototype.redrawPath=function(a,c,b,d,f){c=Math.min(f,parseFloat(mxUtils.getValue(this.style,"size",this.size)));b=mxUtils.getValue(this.style, +mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,f),new mxPoint(0,c),new mxPoint(d,0),new mxPoint(d,f)],this.isRounded,b,!0);a.end()};mxCellRenderer.registerShape("manualInput",L);mxUtils.extend(E,mxRectangleShape);E.prototype.dx=20;E.prototype.dy=20;E.prototype.isHtmlAllowed=function(){return!1};E.prototype.paintForeground=function(a,c,b,d,f){mxRectangleShape.prototype.paintForeground.apply(this,arguments);var e=0;if(this.isRounded)var g=mxUtils.getValue(this.style, +mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100,e=Math.max(e,Math.min(d*g,f*g));g=Math.max(e,Math.min(d,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));e=Math.max(e,Math.min(f,parseFloat(mxUtils.getValue(this.style,"dy",this.dy))));a.begin();a.moveTo(c,b+e);a.lineTo(c+d,b+e);a.end();a.stroke();a.begin();a.moveTo(c+g,b);a.lineTo(c+g,b+f);a.end();a.stroke()};mxCellRenderer.registerShape("internalStorage",E);mxUtils.extend(S,mxActor);S.prototype.dx=20;S.prototype.dy= +20;S.prototype.redrawPath=function(a,c,b,d,f){c=Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));b=Math.max(0,Math.min(f,parseFloat(mxUtils.getValue(this.style,"dy",this.dy))));parseFloat(mxUtils.getValue(this.style,"size",this.size));var e=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,0),new mxPoint(d,0),new mxPoint(d,b),new mxPoint(c,b),new mxPoint(c,f),new mxPoint(0,f)],this.isRounded,e,!0);a.end()}; +mxCellRenderer.registerShape("corner",S);mxUtils.extend(M,mxActor);M.prototype.redrawPath=function(a,c,b,d,f){a.moveTo(0,0);a.lineTo(0,f);a.end();a.moveTo(d,0);a.lineTo(d,f);a.end();a.moveTo(0,f/2);a.lineTo(d,f/2);a.end()};mxCellRenderer.registerShape("crossbar",M);mxUtils.extend(N,mxActor);N.prototype.dx=20;N.prototype.dy=20;N.prototype.redrawPath=function(a,c,b,d,f){c=Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));b=Math.max(0,Math.min(f,parseFloat(mxUtils.getValue(this.style, +"dy",this.dy))));parseFloat(mxUtils.getValue(this.style,"size",this.size));var e=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,0),new mxPoint(d,0),new mxPoint(d,b),new mxPoint((d+c)/2,b),new mxPoint((d+c)/2,f),new mxPoint((d-c)/2,f),new mxPoint((d-c)/2,b),new mxPoint(0,b)],this.isRounded,e,!0);a.end()};mxCellRenderer.registerShape("tee",N);mxUtils.extend(T,mxActor);T.prototype.arrowWidth=.3;T.prototype.arrowSize=.2;T.prototype.redrawPath= +function(a,c,b,d,f){var e=f*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowWidth",this.arrowWidth))));c=d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowSize",this.arrowSize))));b=(f-e)/2;var e=b+e,g=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,b),new mxPoint(d-c,b),new mxPoint(d-c,0),new mxPoint(d,f/2),new mxPoint(d-c,f),new mxPoint(d-c,e),new mxPoint(0,e)],this.isRounded,g,!0);a.end()};mxCellRenderer.registerShape("singleArrow", +T);mxUtils.extend(D,mxActor);D.prototype.redrawPath=function(a,c,b,d,f){var e=f*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowWidth",T.prototype.arrowWidth))));c=d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowSize",T.prototype.arrowSize))));b=(f-e)/2;var e=b+e,g=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,f/2),new mxPoint(c,0),new mxPoint(c,b),new mxPoint(d-c,b),new mxPoint(d-c,0),new mxPoint(d, +f/2),new mxPoint(d-c,f),new mxPoint(d-c,e),new mxPoint(c,e),new mxPoint(c,f)],this.isRounded,g,!0);a.end()};mxCellRenderer.registerShape("doubleArrow",D);mxUtils.extend(Q,mxActor);Q.prototype.size=.1;Q.prototype.redrawPath=function(a,c,b,d,f){c=d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));a.moveTo(c,0);a.lineTo(d,0);a.quadTo(d-2*c,f/2,d,f);a.lineTo(c,f);a.quadTo(c-2*c,f/2,c,0);a.close();a.end()};mxCellRenderer.registerShape("dataStorage",Q);mxUtils.extend(V, +mxActor);V.prototype.redrawPath=function(a,c,b,d,f){a.moveTo(0,0);a.quadTo(d,0,d,f/2);a.quadTo(d,f,0,f);a.close();a.end()};mxCellRenderer.registerShape("or",V);mxUtils.extend(ga,mxActor);ga.prototype.redrawPath=function(a,c,b,d,f){a.moveTo(0,0);a.quadTo(d,0,d,f/2);a.quadTo(d,f,0,f);a.quadTo(d/2,f/2,0,0);a.close();a.end()};mxCellRenderer.registerShape("xor",ga);mxUtils.extend(W,mxActor);W.prototype.size=20;W.prototype.isRoundable=function(){return!0};W.prototype.redrawPath=function(a,c,b,d,f){c=Math.min(d/ +2,Math.min(f,parseFloat(mxUtils.getValue(this.style,"size",this.size))));b=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(c,0),new mxPoint(d-c,0),new mxPoint(d,.8*c),new mxPoint(d,f),new mxPoint(0,f),new mxPoint(0,.8*c)],this.isRounded,b,!0);a.end()};mxCellRenderer.registerShape("loopLimit",W);mxUtils.extend(aa,mxActor);aa.prototype.size=.375;aa.prototype.isRoundable=function(){return!0};aa.prototype.redrawPath=function(a,c,b,d,f){c= +f*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));b=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,0),new mxPoint(d,0),new mxPoint(d,f-c),new mxPoint(d/2,f),new mxPoint(0,f-c)],this.isRounded,b,!0);a.end()};mxCellRenderer.registerShape("offPageConnector",aa);mxUtils.extend(Z,mxEllipse);Z.prototype.paintVertexShape=function(a,c,b,d,f){mxEllipse.prototype.paintVertexShape.apply(this,arguments);a.begin(); +a.moveTo(c+d/2,b+f);a.lineTo(c+d,b+f);a.end();a.stroke()};mxCellRenderer.registerShape("tapeData",Z);mxUtils.extend(pa,mxEllipse);pa.prototype.paintVertexShape=function(a,c,b,d,f){mxEllipse.prototype.paintVertexShape.apply(this,arguments);a.setShadow(!1);a.begin();a.moveTo(c,b+f/2);a.lineTo(c+d,b+f/2);a.end();a.stroke();a.begin();a.moveTo(c+d/2,b);a.lineTo(c+d/2,b+f);a.end();a.stroke()};mxCellRenderer.registerShape("orEllipse",pa);mxUtils.extend(ra,mxEllipse);ra.prototype.paintVertexShape=function(a, +c,b,d,f){mxEllipse.prototype.paintVertexShape.apply(this,arguments);a.setShadow(!1);a.begin();a.moveTo(c+.145*d,b+.145*f);a.lineTo(c+.855*d,b+.855*f);a.end();a.stroke();a.begin();a.moveTo(c+.855*d,b+.145*f);a.lineTo(c+.145*d,b+.855*f);a.end();a.stroke()};mxCellRenderer.registerShape("sumEllipse",ra);mxUtils.extend(fa,mxRhombus);fa.prototype.paintVertexShape=function(a,c,b,d,f){mxRhombus.prototype.paintVertexShape.apply(this,arguments);a.setShadow(!1);a.begin();a.moveTo(c,b+f/2);a.lineTo(c+d,b+f/2); +a.end();a.stroke()};mxCellRenderer.registerShape("sortShape",fa);mxUtils.extend(ma,mxEllipse);ma.prototype.paintVertexShape=function(a,c,b,d,f){a.begin();a.moveTo(c,b);a.lineTo(c+d,b);a.lineTo(c+d/2,b+f/2);a.close();a.fillAndStroke();a.begin();a.moveTo(c,b+f);a.lineTo(c+d,b+f);a.lineTo(c+d/2,b+f/2);a.close();a.fillAndStroke()};mxCellRenderer.registerShape("collate",ma);mxUtils.extend(ta,mxEllipse);ta.prototype.paintVertexShape=function(a,c,b,d,f){var e=b+f-5;a.begin();a.moveTo(c,b);a.lineTo(c,b+f); +a.moveTo(c,e);a.lineTo(c+10,e-5);a.moveTo(c,e);a.lineTo(c+10,e+5);a.moveTo(c,e);a.lineTo(c+d,e);a.moveTo(c+d,b);a.lineTo(c+d,b+f);a.moveTo(c+d,e);a.lineTo(c+d-10,e-5);a.moveTo(c+d,e);a.lineTo(c+d-10,e+5);a.end();a.stroke()};mxCellRenderer.registerShape("dimension",ta);mxUtils.extend(la,mxEllipse);la.prototype.paintVertexShape=function(a,c,b,d,f){this.outline||a.setStrokeColor(null);mxRectangleShape.prototype.paintBackground.apply(this,arguments);null!=this.style&&(a.setStrokeColor(this.stroke),a.rect(c, +b,d,f),a.fill(),a.begin(),a.moveTo(c,b),"1"==mxUtils.getValue(this.style,"top","1")?a.lineTo(c+d,b):a.moveTo(c+d,b),"1"==mxUtils.getValue(this.style,"right","1")?a.lineTo(c+d,b+f):a.moveTo(c+d,b+f),"1"==mxUtils.getValue(this.style,"bottom","1")?a.lineTo(c,b+f):a.moveTo(c,b+f),"1"==mxUtils.getValue(this.style,"left","1")&&a.lineTo(c,b-this.strokewidth/2),a.end(),a.stroke())};mxCellRenderer.registerShape("partialRectangle",la);mxUtils.extend(sa,mxEllipse);sa.prototype.paintVertexShape=function(a,c, +b,d,f){mxEllipse.prototype.paintVertexShape.apply(this,arguments);a.setShadow(!1);a.begin();"vertical"==mxUtils.getValue(this.style,"line")?(a.moveTo(c+d/2,b),a.lineTo(c+d/2,b+f)):(a.moveTo(c,b+f/2),a.lineTo(c+d,b+f/2));a.end();a.stroke()};mxCellRenderer.registerShape("lineEllipse",sa);mxUtils.extend(ha,mxActor);ha.prototype.redrawPath=function(a,c,b,d,f){c=Math.min(d,f/2);a.moveTo(0,0);a.lineTo(d-c,0);a.quadTo(d,0,d,f/2);a.quadTo(d,f,d-c,f);a.lineTo(0,f);a.close();a.end()};mxCellRenderer.registerShape("delay", +ha);mxUtils.extend(ca,mxActor);ca.prototype.size=.2;ca.prototype.redrawPath=function(a,c,b,d,f){c=Math.min(f,d);var e=Math.max(0,Math.min(c,c*parseFloat(mxUtils.getValue(this.style,"size",this.size))));c=(f-e)/2;b=c+e;var g=(d-e)/2,e=g+e;a.moveTo(0,c);a.lineTo(g,c);a.lineTo(g,0);a.lineTo(e,0);a.lineTo(e,c);a.lineTo(d,c);a.lineTo(d,b);a.lineTo(e,b);a.lineTo(e,f);a.lineTo(g,f);a.lineTo(g,b);a.lineTo(0,b);a.close();a.end()};mxCellRenderer.registerShape("cross",ca);mxUtils.extend(da,mxActor);da.prototype.size= +.25;da.prototype.redrawPath=function(a,c,b,d,f){c=Math.min(d,f/2);b=Math.min(d-c,Math.max(0,parseFloat(mxUtils.getValue(this.style,"size",this.size)))*d);a.moveTo(0,f/2);a.lineTo(b,0);a.lineTo(d-c,0);a.quadTo(d,0,d,f/2);a.quadTo(d,f,d-c,f);a.lineTo(b,f);a.close();a.end()};mxCellRenderer.registerShape("display",da);mxUtils.extend(ia,mxConnector);ia.prototype.origPaintEdgeShape=ia.prototype.paintEdgeShape;ia.prototype.paintEdgeShape=function(a,c,b){for(var d=[],f=0;f<c.length;f++)d.push(mxUtils.clone(c[f])); +var f=a.state.dashed,e=a.state.fixDash;ia.prototype.origPaintEdgeShape.apply(this,[a,d,b]);3<=a.state.strokeWidth&&(d=mxUtils.getValue(this.style,"fillColor",null),null!=d&&(a.setStrokeColor(d),a.setStrokeWidth(a.state.strokeWidth-2),a.setDashed(f,e),ia.prototype.origPaintEdgeShape.apply(this,[a,c,b])))};mxCellRenderer.registerShape("filledEdge",ia);"undefined"!==typeof StyleFormatPanel&&function(){var a=StyleFormatPanel.prototype.getCustomColors;StyleFormatPanel.prototype.getCustomColors=function(){var c= +this.format.getSelectionState(),b=a.apply(this,arguments);"umlFrame"==c.style.shape&&b.push({title:mxResources.get("laneColor"),key:"swimlaneFillColor",defaultValue:"#ffffff"});return b}}();mxMarker.addMarker("dash",function(a,c,b,d,f,e,g,h,n,m){var t=f*(g+n+1),r=e*(g+n+1);return function(){a.begin();a.moveTo(d.x-t/2-r/2,d.y-r/2+t/2);a.lineTo(d.x+r/2-3*t/2,d.y-3*r/2-t/2);a.stroke()}});mxMarker.addMarker("cross",function(a,c,b,d,f,e,g,h,n,m){var t=f*(g+n+1),r=e*(g+n+1);return function(){a.begin(); +a.moveTo(d.x-t/2-r/2,d.y-r/2+t/2);a.lineTo(d.x+r/2-3*t/2,d.y-3*r/2-t/2);a.moveTo(d.x-t/2+r/2,d.y-r/2-t/2);a.lineTo(d.x-r/2-3*t/2,d.y-3*r/2+t/2);a.stroke()}});mxMarker.addMarker("circle",wa);mxMarker.addMarker("circlePlus",function(a,c,b,d,f,e,g,h,n,m){var t=d.clone(),r=wa.apply(this,arguments),y=f*(g+2*n),k=e*(g+2*n);return function(){r.apply(this,arguments);a.begin();a.moveTo(t.x-f*n,t.y-e*n);a.lineTo(t.x-2*y+f*n,t.y-2*k+e*n);a.moveTo(t.x-y-k+e*n,t.y-k+y-f*n);a.lineTo(t.x+k-y-e*n,t.y-k-y+f*n);a.stroke()}}); +mxMarker.addMarker("async",function(a,c,b,d,f,e,g,h,n,m){c=f*n*1.118;b=e*n*1.118;f*=g+n;e*=g+n;var t=d.clone();t.x-=c;t.y-=b;d.x+=1*-f-c;d.y+=1*-e-b;return function(){a.begin();a.moveTo(t.x,t.y);h?a.lineTo(t.x-f-e/2,t.y-e+f/2):a.lineTo(t.x+e/2-f,t.y-e-f/2);a.lineTo(t.x-f,t.y-e);a.close();m?a.fillAndStroke():a.stroke()}});mxMarker.addMarker("openAsync",function(a){a=null!=a?a:2;return function(c,d,b,f,e,g,h,n,m,t){e*=h+m;g*=h+m;var r=f.clone();return function(){c.begin();c.moveTo(r.x,r.y);n?c.lineTo(r.x- +e-g/a,r.y-g+e/a):c.lineTo(r.x+g/a-e,r.y-g-e/a);c.stroke()}}}(2));if("undefined"!==typeof mxVertexHandler){var Ca=function(a,c,d){return ua(a,["width"],c,function(c,b,f,e,g){g=a.shape.getEdgeWidth()*a.view.scale+d;return new mxPoint(e.x+b*c/4+f*g/2,e.y+f*c/4-b*g/2)},function(c,b,f,e,g,h){c=Math.sqrt(mxUtils.ptSegDistSq(e.x,e.y,g.x,g.y,h.x,h.y));a.style.width=Math.round(2*c)/a.view.scale-d})},ua=function(a,c,d,b,f){return O(a,c,function(c){var f=a.absolutePoints,e=f.length-1;c=a.view.translate;var g= +a.view.scale,h=d?f[0]:f[e],f=d?f[1]:f[e-1],e=f.x-h.x,n=f.y-h.y,m=Math.sqrt(e*e+n*n),h=b.call(this,m,e/m,n/m,h,f);return new mxPoint(h.x/g-c.x,h.y/g-c.y)},function(c,b,e){var g=a.absolutePoints,h=g.length-1;c=a.view.translate;var n=a.view.scale,m=d?g[0]:g[h],g=d?g[1]:g[h-1],h=g.x-m.x,t=g.y-m.y,r=Math.sqrt(h*h+t*t);b.x=(b.x+c.x)*n;b.y=(b.y+c.y)*n;f.call(this,r,h/r,t/r,m,g,b,e)})},oa=function(a){return function(c){return[O(c,["arrowWidth","arrowSize"],function(c){var b=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style, "arrowWidth",T.prototype.arrowWidth))),d=Math.max(0,Math.min(a,mxUtils.getValue(this.state.style,"arrowSize",T.prototype.arrowSize)));return new mxPoint(c.x+(1-d)*c.width,c.y+(1-b)*c.height/2)},function(c,b){this.state.style.arrowWidth=Math.max(0,Math.min(1,Math.abs(c.y+c.height/2-b.y)/c.height*2));this.state.style.arrowSize=Math.max(0,Math.min(a,(c.x+c.width-b.x)/c.width))})]}},Da=function(a,c,b){return function(d){var f=[O(d,["size"],function(b){var d=Math.max(0,Math.min(b.width,Math.min(b.height, parseFloat(mxUtils.getValue(this.state.style,"size",c)))))*a;return new mxPoint(b.x+d,b.y+d)},function(c,b){this.state.style.size=Math.round(Math.max(0,Math.min(Math.min(c.width,b.x-c.x),Math.min(c.height,b.y-c.y)))/a)})];b&&mxUtils.getValue(d.style,mxConstants.STYLE_ROUNDED,!1)&&f.push(ja(d));return f}},xa=function(a,c,b,d,f){b=null!=b?b:1;return function(e){var g=[O(e,["size"],function(c){var b=null!=f?"0"!=mxUtils.getValue(this.state.style,"fixedSize","0"):null,d=parseFloat(mxUtils.getValue(this.state.style, "size",b?f:a));return new mxPoint(c.x+Math.max(0,Math.min(c.width,d*(b?1:c.width))),c.getCenterY())},function(a,c,d){var g=null!=f?"0"!=mxUtils.getValue(this.state.style,"fixedSize","0"):null;a=g?c.x-a.x:Math.max(0,Math.min(b,(c.x-a.x)/a.width));g&&!mxEvent.isAltDown(d.getEvent())&&(a=e.view.graph.snap(a));this.state.style.size=a},null,d)];c&&mxUtils.getValue(e.style,mxConstants.STYLE_ROUNDED,!1)&&g.push(ja(e));return g}},Fa=function(a){return function(c){var b=[O(c,["size"],function(c){var b=Math.max(0, Math.min(a,parseFloat(mxUtils.getValue(this.state.style,"size",g.prototype.size))));return new mxPoint(c.x+b*c.width*.75,c.y+c.height/4)},function(c,b){this.state.style.size=Math.max(0,Math.min(a,(b.x-c.x)/(.75*c.width)))},null,!0)];mxUtils.getValue(c.style,mxConstants.STYLE_ROUNDED,!1)&&b.push(ja(c));return b}},va=function(){return function(a){var c=[];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,!1)&&c.push(ja(a));return c}},ja=function(a,c){return O(a,[mxConstants.STYLE_ARCSIZE],function(b){var d= null!=c?c:b.height/8;if("1"==mxUtils.getValue(a.style,mxConstants.STYLE_ABSOLUTE_ARCSIZE,0)){var f=mxUtils.getValue(a.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;return new mxPoint(b.x+b.width-Math.min(b.width/2,f),b.y+d)}f=Math.max(0,parseFloat(mxUtils.getValue(a.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)))/100;return new mxPoint(b.x+b.width-Math.min(Math.max(b.width/2,b.height/2),Math.min(b.width,b.height)*f),b.y+d)},function(c,b,d){"1"==mxUtils.getValue(a.style, mxConstants.STYLE_ABSOLUTE_ARCSIZE,0)?this.state.style[mxConstants.STYLE_ARCSIZE]=Math.round(Math.max(0,Math.min(c.width,2*(c.x+c.width-b.x)))):this.state.style[mxConstants.STYLE_ARCSIZE]=Math.round(Math.min(50,Math.max(0,100*(c.width-b.x+c.x)/Math.min(c.width,c.height))))})},O=function(a,c,b,d,f,e){var g=new mxHandle(a,null,mxVertexHandler.prototype.secondaryHandleImage);g.execute=function(){for(var a=0;a<c.length;a++)this.copyStyle(c[a])};g.getPosition=b;g.setPosition=d;g.ignoreGrid=null!=f?f:!0; -if(e){var k=g.positionChanged;g.positionChanged=function(){k.apply(this,arguments);a.view.invalidate(this.state.cell);a.view.validate()}}return g},ya={link:function(a){return[Ca(a,!0,10),Ca(a,!1,10)]},flexArrow:function(a){var c=a.view.graph.gridSize/a.view.scale,b=[];mxUtils.getValue(a.style,mxConstants.STYLE_STARTARROW,mxConstants.NONE)!=mxConstants.NONE&&(b.push(ua(a,["width",mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE],!0,function(c,b,d,f,e){c=(a.shape.getEdgeWidth()-a.shape.strokewidth)* -a.view.scale;e=3*mxUtils.getNumber(a.style,mxConstants.STYLE_STARTSIZE,mxConstants.ARROW_SIZE/5)*a.view.scale;return new mxPoint(f.x+b*(e+a.shape.strokewidth*a.view.scale)+d*c/2,f.y+d*(e+a.shape.strokewidth*a.view.scale)-b*c/2)},function(b,d,f,e,g,k,l){b=Math.sqrt(mxUtils.ptSegDistSq(e.x,e.y,g.x,g.y,k.x,k.y));d=mxUtils.ptLineDist(e.x,e.y,e.x+f,e.y-d,k.x,k.y);a.style[mxConstants.STYLE_STARTSIZE]=Math.round(100*(d-a.shape.strokewidth)/3)/100/a.view.scale;a.style.width=Math.round(2*b)/a.view.scale;mxEvent.isControlDown(l.getEvent())&& -(a.style[mxConstants.STYLE_ENDSIZE]=a.style[mxConstants.STYLE_STARTSIZE]);mxEvent.isAltDown(l.getEvent())||Math.abs(parseFloat(a.style[mxConstants.STYLE_STARTSIZE])-parseFloat(a.style[mxConstants.STYLE_ENDSIZE]))<c/6&&(a.style[mxConstants.STYLE_STARTSIZE]=a.style[mxConstants.STYLE_ENDSIZE])})),b.push(ua(a,["startWidth","endWidth",mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE],!0,function(c,b,d,f,e){c=(a.shape.getStartArrowWidth()-a.shape.strokewidth)*a.view.scale;e=3*mxUtils.getNumber(a.style, -mxConstants.STYLE_STARTSIZE,mxConstants.ARROW_SIZE/5)*a.view.scale;return new mxPoint(f.x+b*(e+a.shape.strokewidth*a.view.scale)+d*c/2,f.y+d*(e+a.shape.strokewidth*a.view.scale)-b*c/2)},function(b,d,f,e,g,k,l){b=Math.sqrt(mxUtils.ptSegDistSq(e.x,e.y,g.x,g.y,k.x,k.y));d=mxUtils.ptLineDist(e.x,e.y,e.x+f,e.y-d,k.x,k.y);a.style[mxConstants.STYLE_STARTSIZE]=Math.round(100*(d-a.shape.strokewidth)/3)/100/a.view.scale;a.style.startWidth=Math.max(0,Math.round(2*b)-a.shape.getEdgeWidth())/a.view.scale;mxEvent.isControlDown(l.getEvent())&& -(a.style[mxConstants.STYLE_ENDSIZE]=a.style[mxConstants.STYLE_STARTSIZE],a.style.endWidth=a.style.startWidth);mxEvent.isAltDown(l.getEvent())||(Math.abs(parseFloat(a.style[mxConstants.STYLE_STARTSIZE])-parseFloat(a.style[mxConstants.STYLE_ENDSIZE]))<c/6&&(a.style[mxConstants.STYLE_STARTSIZE]=a.style[mxConstants.STYLE_ENDSIZE]),Math.abs(parseFloat(a.style.startWidth)-parseFloat(a.style.endWidth))<c&&(a.style.startWidth=a.style.endWidth))})));mxUtils.getValue(a.style,mxConstants.STYLE_ENDARROW,mxConstants.NONE)!= -mxConstants.NONE&&(b.push(ua(a,["width",mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE],!1,function(c,b,d,f,e){c=(a.shape.getEdgeWidth()-a.shape.strokewidth)*a.view.scale;e=3*mxUtils.getNumber(a.style,mxConstants.STYLE_ENDSIZE,mxConstants.ARROW_SIZE/5)*a.view.scale;return new mxPoint(f.x+b*(e+a.shape.strokewidth*a.view.scale)-d*c/2,f.y+d*(e+a.shape.strokewidth*a.view.scale)+b*c/2)},function(b,d,f,e,g,k,l){b=Math.sqrt(mxUtils.ptSegDistSq(e.x,e.y,g.x,g.y,k.x,k.y));d=mxUtils.ptLineDist(e.x,e.y, -e.x+f,e.y-d,k.x,k.y);a.style[mxConstants.STYLE_ENDSIZE]=Math.round(100*(d-a.shape.strokewidth)/3)/100/a.view.scale;a.style.width=Math.round(2*b)/a.view.scale;mxEvent.isControlDown(l.getEvent())&&(a.style[mxConstants.STYLE_STARTSIZE]=a.style[mxConstants.STYLE_ENDSIZE]);mxEvent.isAltDown(l.getEvent())||Math.abs(parseFloat(a.style[mxConstants.STYLE_ENDSIZE])-parseFloat(a.style[mxConstants.STYLE_STARTSIZE]))<c/6&&(a.style[mxConstants.STYLE_ENDSIZE]=a.style[mxConstants.STYLE_STARTSIZE])})),b.push(ua(a, -["startWidth","endWidth",mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE],!1,function(c,b,d,f,e){c=(a.shape.getEndArrowWidth()-a.shape.strokewidth)*a.view.scale;e=3*mxUtils.getNumber(a.style,mxConstants.STYLE_ENDSIZE,mxConstants.ARROW_SIZE/5)*a.view.scale;return new mxPoint(f.x+b*(e+a.shape.strokewidth*a.view.scale)-d*c/2,f.y+d*(e+a.shape.strokewidth*a.view.scale)+b*c/2)},function(b,d,f,e,g,k,l){b=Math.sqrt(mxUtils.ptSegDistSq(e.x,e.y,g.x,g.y,k.x,k.y));d=mxUtils.ptLineDist(e.x,e.y,e.x+f,e.y- -d,k.x,k.y);a.style[mxConstants.STYLE_ENDSIZE]=Math.round(100*(d-a.shape.strokewidth)/3)/100/a.view.scale;a.style.endWidth=Math.max(0,Math.round(2*b)-a.shape.getEdgeWidth())/a.view.scale;mxEvent.isControlDown(l.getEvent())&&(a.style[mxConstants.STYLE_STARTSIZE]=a.style[mxConstants.STYLE_ENDSIZE],a.style.startWidth=a.style.endWidth);mxEvent.isAltDown(l.getEvent())||(Math.abs(parseFloat(a.style[mxConstants.STYLE_ENDSIZE])-parseFloat(a.style[mxConstants.STYLE_STARTSIZE]))<c/6&&(a.style[mxConstants.STYLE_ENDSIZE]= +if(e){var h=g.positionChanged;g.positionChanged=function(){h.apply(this,arguments);a.view.invalidate(this.state.cell);a.view.validate()}}return g},ya={link:function(a){return[Ca(a,!0,10),Ca(a,!1,10)]},flexArrow:function(a){var c=a.view.graph.gridSize/a.view.scale,b=[];mxUtils.getValue(a.style,mxConstants.STYLE_STARTARROW,mxConstants.NONE)!=mxConstants.NONE&&(b.push(ua(a,["width",mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE],!0,function(c,b,d,f,e){c=(a.shape.getEdgeWidth()-a.shape.strokewidth)* +a.view.scale;e=3*mxUtils.getNumber(a.style,mxConstants.STYLE_STARTSIZE,mxConstants.ARROW_SIZE/5)*a.view.scale;return new mxPoint(f.x+b*(e+a.shape.strokewidth*a.view.scale)+d*c/2,f.y+d*(e+a.shape.strokewidth*a.view.scale)-b*c/2)},function(b,d,f,e,g,h,n){b=Math.sqrt(mxUtils.ptSegDistSq(e.x,e.y,g.x,g.y,h.x,h.y));d=mxUtils.ptLineDist(e.x,e.y,e.x+f,e.y-d,h.x,h.y);a.style[mxConstants.STYLE_STARTSIZE]=Math.round(100*(d-a.shape.strokewidth)/3)/100/a.view.scale;a.style.width=Math.round(2*b)/a.view.scale;mxEvent.isControlDown(n.getEvent())&& +(a.style[mxConstants.STYLE_ENDSIZE]=a.style[mxConstants.STYLE_STARTSIZE]);mxEvent.isAltDown(n.getEvent())||Math.abs(parseFloat(a.style[mxConstants.STYLE_STARTSIZE])-parseFloat(a.style[mxConstants.STYLE_ENDSIZE]))<c/6&&(a.style[mxConstants.STYLE_STARTSIZE]=a.style[mxConstants.STYLE_ENDSIZE])})),b.push(ua(a,["startWidth","endWidth",mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE],!0,function(c,b,d,f,e){c=(a.shape.getStartArrowWidth()-a.shape.strokewidth)*a.view.scale;e=3*mxUtils.getNumber(a.style, +mxConstants.STYLE_STARTSIZE,mxConstants.ARROW_SIZE/5)*a.view.scale;return new mxPoint(f.x+b*(e+a.shape.strokewidth*a.view.scale)+d*c/2,f.y+d*(e+a.shape.strokewidth*a.view.scale)-b*c/2)},function(b,d,f,e,g,h,n){b=Math.sqrt(mxUtils.ptSegDistSq(e.x,e.y,g.x,g.y,h.x,h.y));d=mxUtils.ptLineDist(e.x,e.y,e.x+f,e.y-d,h.x,h.y);a.style[mxConstants.STYLE_STARTSIZE]=Math.round(100*(d-a.shape.strokewidth)/3)/100/a.view.scale;a.style.startWidth=Math.max(0,Math.round(2*b)-a.shape.getEdgeWidth())/a.view.scale;mxEvent.isControlDown(n.getEvent())&& +(a.style[mxConstants.STYLE_ENDSIZE]=a.style[mxConstants.STYLE_STARTSIZE],a.style.endWidth=a.style.startWidth);mxEvent.isAltDown(n.getEvent())||(Math.abs(parseFloat(a.style[mxConstants.STYLE_STARTSIZE])-parseFloat(a.style[mxConstants.STYLE_ENDSIZE]))<c/6&&(a.style[mxConstants.STYLE_STARTSIZE]=a.style[mxConstants.STYLE_ENDSIZE]),Math.abs(parseFloat(a.style.startWidth)-parseFloat(a.style.endWidth))<c&&(a.style.startWidth=a.style.endWidth))})));mxUtils.getValue(a.style,mxConstants.STYLE_ENDARROW,mxConstants.NONE)!= +mxConstants.NONE&&(b.push(ua(a,["width",mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE],!1,function(c,b,d,f,e){c=(a.shape.getEdgeWidth()-a.shape.strokewidth)*a.view.scale;e=3*mxUtils.getNumber(a.style,mxConstants.STYLE_ENDSIZE,mxConstants.ARROW_SIZE/5)*a.view.scale;return new mxPoint(f.x+b*(e+a.shape.strokewidth*a.view.scale)-d*c/2,f.y+d*(e+a.shape.strokewidth*a.view.scale)+b*c/2)},function(b,d,f,e,g,h,n){b=Math.sqrt(mxUtils.ptSegDistSq(e.x,e.y,g.x,g.y,h.x,h.y));d=mxUtils.ptLineDist(e.x,e.y, +e.x+f,e.y-d,h.x,h.y);a.style[mxConstants.STYLE_ENDSIZE]=Math.round(100*(d-a.shape.strokewidth)/3)/100/a.view.scale;a.style.width=Math.round(2*b)/a.view.scale;mxEvent.isControlDown(n.getEvent())&&(a.style[mxConstants.STYLE_STARTSIZE]=a.style[mxConstants.STYLE_ENDSIZE]);mxEvent.isAltDown(n.getEvent())||Math.abs(parseFloat(a.style[mxConstants.STYLE_ENDSIZE])-parseFloat(a.style[mxConstants.STYLE_STARTSIZE]))<c/6&&(a.style[mxConstants.STYLE_ENDSIZE]=a.style[mxConstants.STYLE_STARTSIZE])})),b.push(ua(a, +["startWidth","endWidth",mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE],!1,function(c,b,d,f,e){c=(a.shape.getEndArrowWidth()-a.shape.strokewidth)*a.view.scale;e=3*mxUtils.getNumber(a.style,mxConstants.STYLE_ENDSIZE,mxConstants.ARROW_SIZE/5)*a.view.scale;return new mxPoint(f.x+b*(e+a.shape.strokewidth*a.view.scale)-d*c/2,f.y+d*(e+a.shape.strokewidth*a.view.scale)+b*c/2)},function(b,d,f,e,g,h,n){b=Math.sqrt(mxUtils.ptSegDistSq(e.x,e.y,g.x,g.y,h.x,h.y));d=mxUtils.ptLineDist(e.x,e.y,e.x+f,e.y- +d,h.x,h.y);a.style[mxConstants.STYLE_ENDSIZE]=Math.round(100*(d-a.shape.strokewidth)/3)/100/a.view.scale;a.style.endWidth=Math.max(0,Math.round(2*b)-a.shape.getEdgeWidth())/a.view.scale;mxEvent.isControlDown(n.getEvent())&&(a.style[mxConstants.STYLE_STARTSIZE]=a.style[mxConstants.STYLE_ENDSIZE],a.style.startWidth=a.style.endWidth);mxEvent.isAltDown(n.getEvent())||(Math.abs(parseFloat(a.style[mxConstants.STYLE_ENDSIZE])-parseFloat(a.style[mxConstants.STYLE_STARTSIZE]))<c/6&&(a.style[mxConstants.STYLE_ENDSIZE]= a.style[mxConstants.STYLE_STARTSIZE]),Math.abs(parseFloat(a.style.endWidth)-parseFloat(a.style.startWidth))<c&&(a.style.endWidth=a.style.startWidth))})));return b},swimlane:function(a){var c=[O(a,[mxConstants.STYLE_STARTSIZE],function(c){var b=parseFloat(mxUtils.getValue(a.style,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_STARTSIZE));return 1==mxUtils.getValue(a.style,mxConstants.STYLE_HORIZONTAL,1)?new mxPoint(c.getCenterX(),c.y+Math.max(0,Math.min(c.height,b))):new mxPoint(c.x+Math.max(0,Math.min(c.width, b)),c.getCenterY())},function(c,b){a.style[mxConstants.STYLE_STARTSIZE]=1==mxUtils.getValue(this.state.style,mxConstants.STYLE_HORIZONTAL,1)?Math.round(Math.max(0,Math.min(c.height,b.y-c.y))):Math.round(Math.max(0,Math.min(c.width,b.x-c.x)))})];if(mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED)){var b=parseFloat(mxUtils.getValue(a.style,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_STARTSIZE));c.push(ja(a,b/2))}return c},label:va(),ext:va(),rectangle:va(),triangle:va(),rhombus:va(),umlLifeline:function(a){return[O(a, ["size"],function(a){var c=Math.max(0,Math.min(a.height,parseFloat(mxUtils.getValue(this.state.style,"size",C.prototype.size))));return new mxPoint(a.getCenterX(),a.y+c)},function(a,c){this.state.style.size=Math.round(Math.max(0,Math.min(a.height,c.y-a.y)))},!1)]},umlFrame:function(a){return[O(a,["width","height"],function(a){var c=Math.max(I.prototype.corner,Math.min(a.width,mxUtils.getValue(this.state.style,"width",I.prototype.width))),b=Math.max(1.5*I.prototype.corner,Math.min(a.height,mxUtils.getValue(this.state.style, -"height",I.prototype.height)));return new mxPoint(a.x+c,a.y+b)},function(a,c){this.state.style.width=Math.round(Math.max(I.prototype.corner,Math.min(a.width,c.x-a.x)));this.state.style.height=Math.round(Math.max(1.5*I.prototype.corner,Math.min(a.height,c.y-a.y)))},!1)]},process:function(a){var c=[O(a,["size"],function(a){var c=Math.max(0,Math.min(.5,parseFloat(mxUtils.getValue(this.state.style,"size",n.prototype.size))));return new mxPoint(a.x+a.width*c,a.y+a.height/4)},function(a,c){this.state.style.size= +"height",I.prototype.height)));return new mxPoint(a.x+c,a.y+b)},function(a,c){this.state.style.width=Math.round(Math.max(I.prototype.corner,Math.min(a.width,c.x-a.x)));this.state.style.height=Math.round(Math.max(1.5*I.prototype.corner,Math.min(a.height,c.y-a.y)))},!1)]},process:function(a){var c=[O(a,["size"],function(a){var c=Math.max(0,Math.min(.5,parseFloat(mxUtils.getValue(this.state.style,"size",m.prototype.size))));return new mxPoint(a.x+a.width*c,a.y+a.height/4)},function(a,c){this.state.style.size= Math.max(0,Math.min(.5,(c.x-a.x)/a.width))})];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,!1)&&c.push(ja(a));return c},cross:function(a){return[O(a,["size"],function(a){var c=Math.min(a.width,a.height),c=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"size",ca.prototype.size)))*c/2;return new mxPoint(a.getCenterX()-c,a.getCenterY()-c)},function(a,c){var b=Math.min(a.width,a.height);this.state.style.size=Math.max(0,Math.min(1,Math.min(Math.max(0,a.getCenterY()-c.y)/b*2,Math.max(0,a.getCenterX()- -c.x)/b*2)))})]},note:function(a){return[O(a,["size"],function(a){var c=Math.max(0,Math.min(a.width,Math.min(a.height,parseFloat(mxUtils.getValue(this.state.style,"size",h.prototype.size)))));return new mxPoint(a.x+a.width-c,a.y+c)},function(a,c){this.state.style.size=Math.round(Math.max(0,Math.min(Math.min(a.width,a.x+a.width-c.x),Math.min(a.height,c.y-a.y))))})]},manualInput:function(a){var c=[O(a,["size"],function(a){var c=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"size",L.prototype.size))); +c.x)/b*2)))})]},note:function(a){return[O(a,["size"],function(a){var c=Math.max(0,Math.min(a.width,Math.min(a.height,parseFloat(mxUtils.getValue(this.state.style,"size",k.prototype.size)))));return new mxPoint(a.x+a.width-c,a.y+c)},function(a,c){this.state.style.size=Math.round(Math.max(0,Math.min(Math.min(a.width,a.x+a.width-c.x),Math.min(a.height,c.y-a.y))))})]},manualInput:function(a){var c=[O(a,["size"],function(a){var c=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"size",L.prototype.size))); return new mxPoint(a.x+a.width/4,a.y+3*c/4)},function(a,c){this.state.style.size=Math.round(Math.max(0,Math.min(a.height,4*(c.y-a.y)/3)))})];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,!1)&&c.push(ja(a));return c},dataStorage:function(a){return[O(a,["size"],function(a){var c=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",Q.prototype.size))));return new mxPoint(a.x+(1-c)*a.width,a.getCenterY())},function(a,c){this.state.style.size=Math.max(0,Math.min(1,(a.x+a.width- c.x)/a.width))})]},callout:function(a){var c=[O(a,["size","position"],function(a){var c=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"size",v.prototype.size))),b=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"position",v.prototype.position)));mxUtils.getValue(this.state.style,"base",v.prototype.base);return new mxPoint(a.x+b*a.width,a.y+a.height-c)},function(a,c){mxUtils.getValue(this.state.style,"base",v.prototype.base);this.state.style.size=Math.round(Math.max(0,Math.min(a.height, a.y+a.height-c.y)));this.state.style.position=Math.round(100*Math.max(0,Math.min(1,(c.x-a.x)/a.width)))/100}),O(a,["position2"],function(a){var c=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"position2",v.prototype.position2)));return new mxPoint(a.x+c*a.width,a.y+a.height)},function(a,c){this.state.style.position2=Math.round(100*Math.max(0,Math.min(1,(c.x-a.x)/a.width)))/100}),O(a,["base"],function(a){var c=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"size",v.prototype.size))), @@ -2560,22 +2562,22 @@ Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"dx",N.prototype.d Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"tabWidth",p.prototype.tabWidth))),b=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"tabHeight",p.prototype.tabHeight)));mxUtils.getValue(this.state.style,"tabPosition",p.prototype.tabPosition)==mxConstants.ALIGN_RIGHT&&(c=a.width-c);return new mxPoint(a.x+c,a.y+b)},function(a,c){var b=Math.max(0,Math.min(a.width,c.x-a.x));mxUtils.getValue(this.state.style,"tabPosition",p.prototype.tabPosition)==mxConstants.ALIGN_RIGHT&& (b=a.width-b);this.state.style.tabWidth=Math.round(b);this.state.style.tabHeight=Math.round(Math.max(0,Math.min(a.height,c.y-a.y)))})]},document:function(a){return[O(a,["size"],function(a){var b=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",c.prototype.size))));return new mxPoint(a.x+3*a.width/4,a.y+(1-b)*a.height)},function(a,c){this.state.style.size=Math.max(0,Math.min(1,(a.y+a.height-c.y)/a.height))})]},tape:function(a){return[O(a,["size"],function(a){var c=Math.max(0, Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",u.prototype.size))));return new mxPoint(a.getCenterX(),a.y+c*a.height/2)},function(a,c){this.state.style.size=Math.max(0,Math.min(1,(c.y-a.y)/a.height*2))})]},offPageConnector:function(a){return[O(a,["size"],function(a){var c=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",aa.prototype.size))));return new mxPoint(a.getCenterX(),a.y+(1-c)*a.height)},function(a,c){this.state.style.size=Math.max(0,Math.min(1,(a.y+ -a.height-c.y)/a.height))})]},step:xa(B.prototype.size,!0,null,!0,B.prototype.fixedSize),hexagon:xa(y.prototype.size,!0,.5,!0),curlyBracket:xa(k.prototype.size,!1),display:xa(da.prototype.size,!1),cube:Da(1,a.prototype.size,!1),card:Da(.5,q.prototype.size,!0),loopLimit:Da(.5,W.prototype.size,!0),trapezoid:Fa(.5),parallelogram:Fa(1)};Graph.createHandle=O;Graph.handleFactory=ya;mxVertexHandler.prototype.createCustomHandles=function(){if(1==this.state.view.graph.getSelectionCount()&&this.graph.isCellRotatable(this.state.cell)){var a= +a.height-c.y)/a.height))})]},step:xa(A.prototype.size,!0,null,!0,A.prototype.fixedSize),hexagon:xa(y.prototype.size,!0,.5,!0),curlyBracket:xa(n.prototype.size,!1),display:xa(da.prototype.size,!1),cube:Da(1,a.prototype.size,!1),card:Da(.5,q.prototype.size,!0),loopLimit:Da(.5,W.prototype.size,!0),trapezoid:Fa(.5),parallelogram:Fa(1)};Graph.createHandle=O;Graph.handleFactory=ya;mxVertexHandler.prototype.createCustomHandles=function(){if(1==this.state.view.graph.getSelectionCount()&&this.graph.isCellRotatable(this.state.cell)){var a= this.state.style.shape;null==mxCellRenderer.defaultShapes[a]&&null==mxStencilRegistry.getStencil(a)&&(a=mxConstants.SHAPE_RECTANGLE);a=ya[a];null==a&&null!=this.state.shape&&this.state.shape.isRoundable()&&(a=ya[mxConstants.SHAPE_RECTANGLE]);if(null!=a)return a(this.state)}return null};mxEdgeHandler.prototype.createCustomHandles=function(){if(1==this.state.view.graph.getSelectionCount()){var a=this.state.style.shape;null==mxCellRenderer.defaultShapes[a]&&null==mxStencilRegistry.getStencil(a)&&(a= -mxConstants.SHAPE_CONNECTOR);a=ya[a];if(null!=a)return a(this.state)}return null}}else Graph.createHandle=function(){},Graph.handleFactory={};var za=new mxPoint(1,0),Aa=new mxPoint(1,0),oa=mxUtils.toRadians(-30),za=mxUtils.getRotatedPoint(za,Math.cos(oa),Math.sin(oa)),oa=mxUtils.toRadians(-150),Aa=mxUtils.getRotatedPoint(Aa,Math.cos(oa),Math.sin(oa));mxEdgeStyle.IsometricConnector=function(a,c,b,d,f){var e=a.view;d=null!=d&&0<d.length?d[0]:null;var g=a.absolutePoints,k=g[0],g=g[g.length-1];null!= -d&&(d=e.transformControlPoint(a,d));null==k&&null!=c&&(k=new mxPoint(c.getCenterX(),c.getCenterY()));null==g&&null!=b&&(g=new mxPoint(b.getCenterX(),b.getCenterY()));var l=za.x,n=za.y,t=Aa.x,r=Aa.y,y="horizontal"==mxUtils.getValue(a.style,"elbow","horizontal");if(null!=g&&null!=k){a=function(a,c,b){a-=h.x;var d=c-h.y;c=(r*a-t*d)/(l*r-n*t);a=(n*a-l*d)/(n*t-l*r);y?(b&&(h=new mxPoint(h.x+l*c,h.y+n*c),f.push(h)),h=new mxPoint(h.x+t*a,h.y+r*a)):(b&&(h=new mxPoint(h.x+t*a,h.y+r*a),f.push(h)),h=new mxPoint(h.x+ -l*c,h.y+n*c));f.push(h)};var h=k;null==d&&(d=new mxPoint(k.x+(g.x-k.x)/2,k.y+(g.y-k.y)/2));a(d.x,d.y,!0);a(g.x,g.y,!1)}};mxStyleRegistry.putValue("isometricEdgeStyle",mxEdgeStyle.IsometricConnector);var La=Graph.prototype.createEdgeHandler;Graph.prototype.createEdgeHandler=function(a,c){if(c==mxEdgeStyle.IsometricConnector){var b=new mxElbowEdgeHandler(a);b.snapToTerminals=!1;return b}return La.apply(this,arguments)};d.prototype.constraints=[];e.prototype.constraints=[];v.prototype.constraints=[]; +mxConstants.SHAPE_CONNECTOR);a=ya[a];if(null!=a)return a(this.state)}return null}}else Graph.createHandle=function(){},Graph.handleFactory={};var za=new mxPoint(1,0),Aa=new mxPoint(1,0),oa=mxUtils.toRadians(-30),za=mxUtils.getRotatedPoint(za,Math.cos(oa),Math.sin(oa)),oa=mxUtils.toRadians(-150),Aa=mxUtils.getRotatedPoint(Aa,Math.cos(oa),Math.sin(oa));mxEdgeStyle.IsometricConnector=function(a,c,b,d,f){var e=a.view;d=null!=d&&0<d.length?d[0]:null;var g=a.absolutePoints,h=g[0],g=g[g.length-1];null!= +d&&(d=e.transformControlPoint(a,d));null==h&&null!=c&&(h=new mxPoint(c.getCenterX(),c.getCenterY()));null==g&&null!=b&&(g=new mxPoint(b.getCenterX(),b.getCenterY()));var n=za.x,m=za.y,t=Aa.x,r=Aa.y,y="horizontal"==mxUtils.getValue(a.style,"elbow","horizontal");if(null!=g&&null!=h){a=function(a,c,b){a-=k.x;var d=c-k.y;c=(r*a-t*d)/(n*r-m*t);a=(m*a-n*d)/(m*t-n*r);y?(b&&(k=new mxPoint(k.x+n*c,k.y+m*c),f.push(k)),k=new mxPoint(k.x+t*a,k.y+r*a)):(b&&(k=new mxPoint(k.x+t*a,k.y+r*a),f.push(k)),k=new mxPoint(k.x+ +n*c,k.y+m*c));f.push(k)};var k=h;null==d&&(d=new mxPoint(h.x+(g.x-h.x)/2,h.y+(g.y-h.y)/2));a(d.x,d.y,!0);a(g.x,g.y,!1)}};mxStyleRegistry.putValue("isometricEdgeStyle",mxEdgeStyle.IsometricConnector);var La=Graph.prototype.createEdgeHandler;Graph.prototype.createEdgeHandler=function(a,c){if(c==mxEdgeStyle.IsometricConnector){var b=new mxElbowEdgeHandler(a);b.snapToTerminals=!1;return b}return La.apply(this,arguments)};b.prototype.constraints=[];e.prototype.constraints=[];v.prototype.constraints=[]; mxRectangleShape.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.25,0),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.75,0),!0),new mxConnectionConstraint(new mxPoint(0,.25),!0),new mxConnectionConstraint(new mxPoint(0,.5),!0),new mxConnectionConstraint(new mxPoint(0,.75),!0),new mxConnectionConstraint(new mxPoint(1,.25),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(1,.75),!0),new mxConnectionConstraint(new mxPoint(.25, 1),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(.75,1),!0)];mxEllipse.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,0),!0),new mxConnectionConstraint(new mxPoint(1,0),!0),new mxConnectionConstraint(new mxPoint(0,1),!0),new mxConnectionConstraint(new mxPoint(1,1),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(0,.5),!0),new mxConnectionConstraint(new mxPoint(1, -.5))];mxLabel.prototype.constraints=mxRectangleShape.prototype.constraints;mxImageShape.prototype.constraints=mxRectangleShape.prototype.constraints;mxSwimlane.prototype.constraints=mxRectangleShape.prototype.constraints;t.prototype.constraints=mxRectangleShape.prototype.constraints;h.prototype.constraints=mxRectangleShape.prototype.constraints;q.prototype.constraints=mxRectangleShape.prototype.constraints;a.prototype.constraints=mxRectangleShape.prototype.constraints;p.prototype.constraints=mxRectangleShape.prototype.constraints; +.5))];mxLabel.prototype.constraints=mxRectangleShape.prototype.constraints;mxImageShape.prototype.constraints=mxRectangleShape.prototype.constraints;mxSwimlane.prototype.constraints=mxRectangleShape.prototype.constraints;t.prototype.constraints=mxRectangleShape.prototype.constraints;k.prototype.constraints=mxRectangleShape.prototype.constraints;q.prototype.constraints=mxRectangleShape.prototype.constraints;a.prototype.constraints=mxRectangleShape.prototype.constraints;p.prototype.constraints=mxRectangleShape.prototype.constraints; E.prototype.constraints=mxRectangleShape.prototype.constraints;Q.prototype.constraints=mxRectangleShape.prototype.constraints;Z.prototype.constraints=mxEllipse.prototype.constraints;pa.prototype.constraints=mxEllipse.prototype.constraints;ra.prototype.constraints=mxEllipse.prototype.constraints;sa.prototype.constraints=mxEllipse.prototype.constraints;L.prototype.constraints=mxRectangleShape.prototype.constraints;ha.prototype.constraints=mxRectangleShape.prototype.constraints;da.prototype.constraints= mxRectangleShape.prototype.constraints;W.prototype.constraints=mxRectangleShape.prototype.constraints;aa.prototype.constraints=mxRectangleShape.prototype.constraints;mxCylinder.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.15,.05),!1),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.85,.05),!1),new mxConnectionConstraint(new mxPoint(0,.3),!0),new mxConnectionConstraint(new mxPoint(0,.5),!0),new mxConnectionConstraint(new mxPoint(0,.7),!0),new mxConnectionConstraint(new mxPoint(1, .3),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(1,.7),!0),new mxConnectionConstraint(new mxPoint(.15,.95),!1),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(.85,.95),!1)];G.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.25,.1),!1),new mxConnectionConstraint(new mxPoint(.5,0),!1),new mxConnectionConstraint(new mxPoint(.75,.1),!1),new mxConnectionConstraint(new mxPoint(0,1/3),!1),new mxConnectionConstraint(new mxPoint(0, 1),!1),new mxConnectionConstraint(new mxPoint(1,1/3),!1),new mxConnectionConstraint(new mxPoint(1,1),!1),new mxConnectionConstraint(new mxPoint(.5,.5),!1)];F.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.25,0),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.75,0),!0),new mxConnectionConstraint(new mxPoint(0,.3),!0),new mxConnectionConstraint(new mxPoint(0,.7),!0),new mxConnectionConstraint(new mxPoint(1,.25),!0),new mxConnectionConstraint(new mxPoint(1, .5),!0),new mxConnectionConstraint(new mxPoint(1,.75),!0),new mxConnectionConstraint(new mxPoint(.25,1),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(.75,1),!0)];mxActor.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.25,.2),!1),new mxConnectionConstraint(new mxPoint(.1,.5),!1),new mxConnectionConstraint(new mxPoint(0,.75),!0),new mxConnectionConstraint(new mxPoint(.75,.25),!1),new mxConnectionConstraint(new mxPoint(.9, -.5),!1),new mxConnectionConstraint(new mxPoint(1,.75),!0),new mxConnectionConstraint(new mxPoint(.25,1),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(.75,1),!0)];m.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,0),!1),new mxConnectionConstraint(new mxPoint(.5,.25),!1),new mxConnectionConstraint(new mxPoint(1,0),!1),new mxConnectionConstraint(new mxPoint(.25,.5),!1),new mxConnectionConstraint(new mxPoint(.75,.5),!1),new mxConnectionConstraint(new mxPoint(0, +.5),!1),new mxConnectionConstraint(new mxPoint(1,.75),!0),new mxConnectionConstraint(new mxPoint(.25,1),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(.75,1),!0)];l.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,0),!1),new mxConnectionConstraint(new mxPoint(.5,.25),!1),new mxConnectionConstraint(new mxPoint(1,0),!1),new mxConnectionConstraint(new mxPoint(.25,.5),!1),new mxConnectionConstraint(new mxPoint(.75,.5),!1),new mxConnectionConstraint(new mxPoint(0, 1),!1),new mxConnectionConstraint(new mxPoint(.5,.75),!1),new mxConnectionConstraint(new mxPoint(1,1),!1)];u.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,.35),!1),new mxConnectionConstraint(new mxPoint(0,.5),!1),new mxConnectionConstraint(new mxPoint(0,.65),!1),new mxConnectionConstraint(new mxPoint(1,.35),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1),new mxConnectionConstraint(new mxPoint(1,.65),!1),new mxConnectionConstraint(new mxPoint(.25,1),!1),new mxConnectionConstraint(new mxPoint(.75, -0),!1)];B.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.25,0),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.75,0),!0),new mxConnectionConstraint(new mxPoint(.25,1),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(.75,1),!0),new mxConnectionConstraint(new mxPoint(0,.25),!0),new mxConnectionConstraint(new mxPoint(0,.5),!0),new mxConnectionConstraint(new mxPoint(0,.75),!0),new mxConnectionConstraint(new mxPoint(1, +0),!1)];A.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.25,0),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.75,0),!0),new mxConnectionConstraint(new mxPoint(.25,1),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(.75,1),!0),new mxConnectionConstraint(new mxPoint(0,.25),!0),new mxConnectionConstraint(new mxPoint(0,.5),!0),new mxConnectionConstraint(new mxPoint(0,.75),!0),new mxConnectionConstraint(new mxPoint(1, .25),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(1,.75),!0)];mxLine.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,.5),!1),new mxConnectionConstraint(new mxPoint(.25,.5),!1),new mxConnectionConstraint(new mxPoint(.75,.5),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1)];R.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.5,0),!1),new mxConnectionConstraint(new mxPoint(.5,1),!1)];mxDoubleEllipse.prototype.constraints= mxEllipse.prototype.constraints;mxRhombus.prototype.constraints=mxEllipse.prototype.constraints;mxTriangle.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,.25),!0),new mxConnectionConstraint(new mxPoint(0,.5),!0),new mxConnectionConstraint(new mxPoint(0,.75),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0)];mxHexagon.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.375, 0),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.625,0),!0),new mxConnectionConstraint(new mxPoint(0,.25),!0),new mxConnectionConstraint(new mxPoint(0,.5),!0),new mxConnectionConstraint(new mxPoint(0,.75),!0),new mxConnectionConstraint(new mxPoint(1,.25),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(1,.75),!0),new mxConnectionConstraint(new mxPoint(.375,1),!0),new mxConnectionConstraint(new mxPoint(.5,1), @@ -2586,76 +2588,77 @@ mxEllipse.prototype.constraints;mxRhombus.prototype.constraints=mxEllipse.protot new mxConnectionConstraint(new mxPoint(1,.5),!1)];ca.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,.5),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1),new mxConnectionConstraint(new mxPoint(.5,0),!1),new mxConnectionConstraint(new mxPoint(.5,1),!1)];C.prototype.constraints=null;V.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,.25),!1),new mxConnectionConstraint(new mxPoint(0,.5),!1),new mxConnectionConstraint(new mxPoint(0,.75),!1),new mxConnectionConstraint(new mxPoint(1, .5),!1),new mxConnectionConstraint(new mxPoint(.7,.1),!1),new mxConnectionConstraint(new mxPoint(.7,.9),!1)];ga.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.175,.25),!1),new mxConnectionConstraint(new mxPoint(.25,.5),!1),new mxConnectionConstraint(new mxPoint(.175,.75),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1),new mxConnectionConstraint(new mxPoint(.7,.1),!1),new mxConnectionConstraint(new mxPoint(.7,.9),!1)];X.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0, .5),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1)];U.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,.5),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1)]})();function Actions(a){this.editorUi=a;this.actions={};this.init()} -Actions.prototype.init=function(){function a(a){b.escape();var d=b.getDeletableCells(b.getSelectionCells());if(null!=d&&0<d.length){var c=b.model.getParents(d);b.removeCells(d,a);if(null!=c){a=[];for(d=0;d<c.length;d++)b.model.contains(c[d])&&(b.model.isVertex(c[d])||b.model.isEdge(c[d]))&&a.push(c[d]);b.setSelectionCells(a)}}}var d=this.editorUi,e=d.editor,b=e.graph,h=function(){return Action.prototype.isEnabled.apply(this,arguments)&&b.isEnabled()};this.addAction("new...",function(){b.openLink(d.getUrl())}); -this.addAction("open...",function(){window.openNew=!0;window.openKey="open";d.openFile()});this.addAction("import...",function(){window.openNew=!1;window.openKey="import";window.openFile=new OpenFile(mxUtils.bind(this,function(){d.hideDialog()}));window.openFile.setConsumer(mxUtils.bind(this,function(a,b){try{var c=mxUtils.parseXml(a);e.graph.setSelectionCells(e.graph.importGraphModel(c.documentElement))}catch(f){mxUtils.alert(mxResources.get("invalidOrMissingFile")+": "+f.message)}}));d.showDialog((new OpenDialog(this)).container, -320,220,!0,!0,function(){window.openFile=null})}).isEnabled=h;this.addAction("save",function(){d.saveFile(!1)},null,null,Editor.ctrlKey+"+S").isEnabled=h;this.addAction("saveAs...",function(){d.saveFile(!0)},null,null,Editor.ctrlKey+"+Shift+S").isEnabled=h;this.addAction("export...",function(){d.showDialog((new ExportDialog(d)).container,300,230,!0,!0)});this.addAction("editDiagram...",function(){var a=new EditDiagramDialog(d);d.showDialog(a.container,620,420,!0,!1);a.init()});this.addAction("pageSetup...", -function(){d.showDialog((new PageSetupDialog(d)).container,320,220,!0,!0)}).isEnabled=h;this.addAction("print...",function(){d.showDialog((new PrintDialog(d)).container,300,180,!0,!0)},null,"sprite-print",Editor.ctrlKey+"+P");this.addAction("preview",function(){mxUtils.show(b,null,10,10)});this.addAction("undo",function(){d.undo()},null,"sprite-undo",Editor.ctrlKey+"+Z");this.addAction("redo",function(){d.redo()},null,"sprite-redo",mxClient.IS_WIN?Editor.ctrlKey+"+Y":Editor.ctrlKey+"+Shift+Z");this.addAction("cut", -function(){mxClipboard.cut(b)},null,"sprite-cut",Editor.ctrlKey+"+X");this.addAction("copy",function(){mxClipboard.copy(b)},null,"sprite-copy",Editor.ctrlKey+"+C");this.addAction("paste",function(){b.isEnabled()&&!b.isCellLocked(b.getDefaultParent())&&mxClipboard.paste(b)},!1,"sprite-paste",Editor.ctrlKey+"+V");this.addAction("pasteHere",function(a){if(b.isEnabled()&&!b.isCellLocked(b.getDefaultParent())){b.getModel().beginUpdate();try{var d=mxClipboard.paste(b);if(null!=d){a=!0;for(var c=0;c<d.length&& -a;c++)a=a&&b.model.isEdge(d[c]);var f=b.view.translate,e=b.view.scale,k=f.x,r=f.y,f=null;if(1==d.length&&a){var l=b.getCellGeometry(d[0]);null!=l&&(f=l.getTerminalPoint(!0))}f=null!=f?f:b.getBoundingBoxFromGeometry(d,a);if(null!=f){var n=Math.round(b.snap(b.popupMenuHandler.triggerX/e-k)),h=Math.round(b.snap(b.popupMenuHandler.triggerY/e-r));b.cellsMoved(d,n-f.x,h-f.y)}}}finally{b.getModel().endUpdate()}}});this.addAction("copySize",function(a){a=b.getSelectionCell();b.isEnabled()&&null!=a&&b.getModel().isVertex(a)&& -(a=b.getCellGeometry(a),null!=a&&(d.copiedSize=new mxRectangle(a.x,a.y,a.width,a.height)))},null,null,"Alt+Shit+X");this.addAction("pasteSize",function(a){if(b.isEnabled()&&!b.isSelectionEmpty()&&null!=d.copiedSize){b.getModel().beginUpdate();try{var e=b.getSelectionCells();for(a=0;a<e.length;a++)if(b.getModel().isVertex(e[a])){var c=b.getCellGeometry(e[a]);null!=c&&(c=c.clone(),c.width=d.copiedSize.width,c.height=d.copiedSize.height,b.getModel().setGeometry(e[a],c))}}finally{b.getModel().endUpdate()}}}, -null,null,"Alt+Shit+V");this.addAction("delete",function(b){a(null!=b&&mxEvent.isShiftDown(b))},null,null,"Delete");this.addAction("deleteAll",function(){a(!0)},null,null,Editor.ctrlKey+"+Delete");this.addAction("duplicate",function(){b.setSelectionCells(b.duplicateCells())},null,null,Editor.ctrlKey+"+D");this.put("turn",new Action(mxResources.get("turn")+" / "+mxResources.get("reverse"),function(){b.turnShapes(b.getSelectionCells())},null,null,Editor.ctrlKey+"+R"));this.addAction("selectVertices", -function(){b.selectVertices()},null,null,Editor.ctrlKey+"+Shift+I");this.addAction("selectEdges",function(){b.selectEdges()},null,null,Editor.ctrlKey+"+Shift+E");this.addAction("selectAll",function(){b.selectAll(null,!0)},null,null,Editor.ctrlKey+"+A");this.addAction("selectNone",function(){b.clearSelection()},null,null,Editor.ctrlKey+"+Shift+A");this.addAction("lockUnlock",function(){if(!b.isSelectionEmpty()){b.getModel().beginUpdate();try{var a=b.isCellMovable(b.getSelectionCell())?1:0;b.toggleCellStyles(mxConstants.STYLE_MOVABLE, -a);b.toggleCellStyles(mxConstants.STYLE_RESIZABLE,a);b.toggleCellStyles(mxConstants.STYLE_ROTATABLE,a);b.toggleCellStyles(mxConstants.STYLE_DELETABLE,a);b.toggleCellStyles(mxConstants.STYLE_EDITABLE,a);b.toggleCellStyles("connectable",a)}finally{b.getModel().endUpdate()}}},null,null,Editor.ctrlKey+"+L");this.addAction("home",function(){b.home()},null,null,"Home");this.addAction("exitGroup",function(){b.exitGroup()},null,null,Editor.ctrlKey+"+Shift+Home");this.addAction("enterGroup",function(){b.enterGroup()}, -null,null,Editor.ctrlKey+"+Shift+End");this.addAction("collapse",function(){b.foldCells(!0)},null,null,Editor.ctrlKey+"+Home");this.addAction("expand",function(){b.foldCells(!1)},null,null,Editor.ctrlKey+"+End");this.addAction("toFront",function(){b.orderCells(!1)},null,null,Editor.ctrlKey+"+Shift+F");this.addAction("toBack",function(){b.orderCells(!0)},null,null,Editor.ctrlKey+"+Shift+B");this.addAction("group",function(){1==b.getSelectionCount()?b.setCellStyles("container","1"):b.setSelectionCell(b.groupCells(null, -0))},null,null,Editor.ctrlKey+"+G");this.addAction("ungroup",function(){1==b.getSelectionCount()&&0==b.getModel().getChildCount(b.getSelectionCell())?b.setCellStyles("container","0"):b.setSelectionCells(b.ungroupCells())},null,null,Editor.ctrlKey+"+Shift+U");this.addAction("removeFromGroup",function(){b.removeCellsFromParent()});this.addAction("edit",function(){b.isEnabled()&&b.startEditingAtCell()},null,null,"F2/Enter");this.addAction("editData...",function(){var a=b.getSelectionCell()||b.getModel().getRoot(); -d.showDataDialog(a)},null,null,Editor.ctrlKey+"+M");this.addAction("editTooltip...",function(){var a=d.editor.graph;if(a.isEnabled()&&!a.isSelectionEmpty()){var b=a.getSelectionCell(),c="";if(mxUtils.isNode(b.value)){var f=b.value.getAttribute("tooltip");null!=f&&(c=f)}c=new TextareaDialog(d,mxResources.get("editTooltip")+":",c,function(c){a.setTooltipForCell(b,c)});d.showDialog(c.container,320,200,!0,!0);c.init()}},null,null,"Alt+Shift+T");this.addAction("openLink",function(){var a=b.getLinkForCell(b.getSelectionCell()); -null!=a&&b.openLink(a)});this.addAction("editLink...",function(){var a=d.editor.graph;if(a.isEnabled()&&!a.isSelectionEmpty()){var b=a.getSelectionCell(),c=a.getLinkForCell(b)||"";d.showLinkDialog(c,mxResources.get("apply"),function(c){c=mxUtils.trim(c);a.setLinkForCell(b,0<c.length?c:null)})}},null,null,"Alt+Shift+L");this.addAction("insertLink...",function(){b.isEnabled()&&!b.isCellLocked(b.getDefaultParent())&&d.showLinkDialog("",mxResources.get("insert"),function(a,d){a=mxUtils.trim(a);if(0<a.length){var c= -null,f=b.getLinkTitle(a);null!=d&&0<d.length&&(c=d[0].iconUrl,f=d[0].name||d[0].type,f=f.charAt(0).toUpperCase()+f.substring(1),30<f.length&&(f=f.substring(0,30)+"..."));var e=b.getFreeInsertPoint(),c=new mxCell(f,new mxGeometry(e.x,e.y,100,40),"fontColor=#0000EE;fontStyle=4;rounded=1;overflow=hidden;"+(null!=c?"shape=label;imageWidth=16;imageHeight=16;spacingLeft=26;align=left;image="+c:"spacing=10;"));c.vertex=!0;b.setLinkForCell(c,a);b.cellSizeUpdated(c,!0);b.getModel().beginUpdate();try{c=b.addCell(c), -b.fireEvent(new mxEventObject("cellsInserted","cells",[c]))}finally{b.getModel().endUpdate()}b.setSelectionCell(c);b.scrollCellToVisible(b.getSelectionCell())}})}).isEnabled=h;this.addAction("link...",mxUtils.bind(this,function(){var a=d.editor.graph;if(a.isEnabled())if(a.cellEditor.isContentEditing()){var b=a.getSelectedElement(),c=a.getParentByName(b,"A",a.cellEditor.textarea),f="";if(null==c&&null!=b&&null!=b.getElementsByTagName)for(var e=b.getElementsByTagName("a"),k=0;k<e.length&&null==c;k++)e[k].textContent== -b.textContent&&(a.selectNode(e[k]),c=e[k]);null!=c&&"A"==c.nodeName&&(f=c.getAttribute("href")||"");var r=a.cellEditor.saveSelection();d.showLinkDialog(f,mxResources.get("apply"),mxUtils.bind(this,function(c){a.cellEditor.restoreSelection(r);null!=c&&a.insertLink(c)}))}else a.isSelectionEmpty()?this.get("insertLink").funct():this.get("editLink").funct()})).isEnabled=h;this.addAction("autosize",function(){var a=b.getSelectionCells();if(null!=a){b.getModel().beginUpdate();try{for(var d=0;d<a.length;d++){var c= -a[d];if(b.getModel().getChildCount(c))b.updateGroupBounds([c],20);else{var f=b.view.getState(c),e=b.getCellGeometry(c);b.getModel().isVertex(c)&&null!=f&&null!=f.text&&null!=e&&b.isWrapping(c)?(e=e.clone(),e.height=f.text.boundingBox.height/b.view.scale,b.getModel().setGeometry(c,e)):b.updateCellSize(c)}}}finally{b.getModel().endUpdate()}}},null,null,Editor.ctrlKey+"+Shift+Y");this.addAction("formattedText",function(){var a=b.getView().getState(b.getSelectionCell());if(null!=a){var e="1";b.stopEditing(); -b.getModel().beginUpdate();try{if("1"==a.style.html){var e=null,c=b.convertValueToString(a.cell);"0"!=mxUtils.getValue(a.style,"nl2Br","1")&&(c=c.replace(/\n/g,"").replace(/<br\s*.?>/g,"\n"));var f=document.createElement("div");f.innerHTML=c;c=mxUtils.extractTextWithWhitespace(f.childNodes);b.cellLabelChanged(a.cell,c)}else c=mxUtils.htmlEntities(b.convertValueToString(a.cell),!1),"0"!=mxUtils.getValue(a.style,"nl2Br","1")&&(c=c.replace(/\n/g,"<br/>")),b.cellLabelChanged(a.cell,b.sanitizeHtml(c)); -b.setCellStyles("html",e);d.fireEvent(new mxEventObject("styleChanged","keys",["html"],"values",[null!=e?e:"0"],"cells",b.getSelectionCells()))}finally{b.getModel().endUpdate()}}});this.addAction("wordWrap",function(){var a=b.getView().getState(b.getSelectionCell()),d="wrap";b.stopEditing();null!=a&&"wrap"==a.style[mxConstants.STYLE_WHITE_SPACE]&&(d=null);b.setCellStyles(mxConstants.STYLE_WHITE_SPACE,d)});this.addAction("rotation",function(){var a="0",e=b.getView().getState(b.getSelectionCell()); -null!=e&&(a=e.style[mxConstants.STYLE_ROTATION]||a);a=new FilenameDialog(d,a,mxResources.get("apply"),function(a){null!=a&&0<a.length&&b.setCellStyles(mxConstants.STYLE_ROTATION,a)},mxResources.get("enterValue")+" ("+mxResources.get("rotation")+" 0-360)");d.showDialog(a.container,375,80,!0,!0);a.init()});this.addAction("resetView",function(){b.zoomTo(1);d.resetScrollbars()},null,null,Editor.ctrlKey+"+H");this.addAction("zoomIn",function(a){b.zoomIn()},null,null,Editor.ctrlKey+" + (Numpad) / Alt+Mousewheel"); -this.addAction("zoomOut",function(a){b.zoomOut()},null,null,Editor.ctrlKey+" - (Numpad) / Alt+Mousewheel");this.addAction("fitWindow",function(){b.fit()},null,null,Editor.ctrlKey+"+Shift+H");this.addAction("fitPage",mxUtils.bind(this,function(){b.pageVisible||this.get("pageView").funct();var a=b.pageFormat,d=b.pageScale;b.zoomTo(Math.floor(20*Math.min((b.container.clientWidth-10)/a.width/d,(b.container.clientHeight-10)/a.height/d))/20);mxUtils.hasScrollbars(b.container)&&(a=b.getPagePadding(),b.container.scrollTop= -a.y*b.view.scale-1,b.container.scrollLeft=Math.min(a.x*b.view.scale,(b.container.scrollWidth-b.container.clientWidth)/2)-1)}),null,null,Editor.ctrlKey+"+J");this.addAction("fitTwoPages",mxUtils.bind(this,function(){b.pageVisible||this.get("pageView").funct();var a=b.pageFormat,d=b.pageScale;b.zoomTo(Math.floor(20*Math.min((b.container.clientWidth-10)/(2*a.width)/d,(b.container.clientHeight-10)/a.height/d))/20);mxUtils.hasScrollbars(b.container)&&(a=b.getPagePadding(),b.container.scrollTop=Math.min(a.y, -(b.container.scrollHeight-b.container.clientHeight)/2),b.container.scrollLeft=Math.min(a.x,(b.container.scrollWidth-b.container.clientWidth)/2))}),null,null,Editor.ctrlKey+"+Shift+J");this.addAction("fitPageWidth",mxUtils.bind(this,function(){b.pageVisible||this.get("pageView").funct();b.zoomTo(Math.floor(20*(b.container.clientWidth-10)/b.pageFormat.width/b.pageScale)/20);if(mxUtils.hasScrollbars(b.container)){var a=b.getPagePadding();b.container.scrollLeft=Math.min(a.x*b.view.scale,(b.container.scrollWidth- -b.container.clientWidth)/2)}}));this.put("customZoom",new Action(mxResources.get("custom")+"...",mxUtils.bind(this,function(){var a=new FilenameDialog(this.editorUi,parseInt(100*b.getView().getScale()),mxResources.get("apply"),mxUtils.bind(this,function(a){a=parseInt(a);!isNaN(a)&&0<a&&b.zoomTo(a/100)}),mxResources.get("zoom")+" (%)");this.editorUi.showDialog(a.container,300,80,!0,!0);a.init()}),null,null,Editor.ctrlKey+"+0"));this.addAction("pageScale...",mxUtils.bind(this,function(){var a=new FilenameDialog(this.editorUi, -parseInt(100*b.pageScale),mxResources.get("apply"),mxUtils.bind(this,function(a){a=parseInt(a);!isNaN(a)&&0<a&&d.setPageScale(a/100)}),mxResources.get("pageScale")+" (%)");this.editorUi.showDialog(a.container,300,80,!0,!0);a.init()}));var m=null,m=this.addAction("grid",function(){b.setGridEnabled(!b.isGridEnabled());d.fireEvent(new mxEventObject("gridEnabledChanged"))},null,null,Editor.ctrlKey+"+Shift+G");m.setToggleAction(!0);m.setSelectedCallback(function(){return b.isGridEnabled()});m.setEnabled(!1); -m=this.addAction("guides",function(){b.graphHandler.guidesEnabled=!b.graphHandler.guidesEnabled;d.fireEvent(new mxEventObject("guidesEnabledChanged"))});m.setToggleAction(!0);m.setSelectedCallback(function(){return b.graphHandler.guidesEnabled});m.setEnabled(!1);m=this.addAction("tooltips",function(){b.tooltipHandler.setEnabled(!b.tooltipHandler.isEnabled())});m.setToggleAction(!0);m.setSelectedCallback(function(){return b.tooltipHandler.isEnabled()});m=this.addAction("collapseExpand",function(){var a= -new ChangePageSetup(d);a.ignoreColor=!0;a.ignoreImage=!0;a.foldingEnabled=!b.foldingEnabled;b.model.execute(a)});m.setToggleAction(!0);m.setSelectedCallback(function(){return b.foldingEnabled});m.isEnabled=h;m=this.addAction("scrollbars",function(){d.setScrollbars(!d.hasScrollbars())});m.setToggleAction(!0);m.setSelectedCallback(function(){return b.scrollbars});m=this.addAction("pageView",mxUtils.bind(this,function(){d.setPageVisible(!b.pageVisible)}));m.setToggleAction(!0);m.setSelectedCallback(function(){return b.pageVisible}); -m=this.addAction("connectionArrows",function(){b.connectionArrowsEnabled=!b.connectionArrowsEnabled;d.fireEvent(new mxEventObject("connectionArrowsChanged"))},null,null,"Alt+Shift+A");m.setToggleAction(!0);m.setSelectedCallback(function(){return b.connectionArrowsEnabled});m=this.addAction("connectionPoints",function(){b.setConnectable(!b.connectionHandler.isEnabled());d.fireEvent(new mxEventObject("connectionPointsChanged"))},null,null,"Alt+Shift+P");m.setToggleAction(!0);m.setSelectedCallback(function(){return b.connectionHandler.isEnabled()}); -m=this.addAction("copyConnect",function(){b.connectionHandler.setCreateTarget(!b.connectionHandler.isCreateTarget());d.fireEvent(new mxEventObject("copyConnectChanged"))});m.setToggleAction(!0);m.setSelectedCallback(function(){return b.connectionHandler.isCreateTarget()});m.isEnabled=h;m=this.addAction("autosave",function(){d.editor.setAutosave(!d.editor.autosave)});m.setToggleAction(!0);m.setSelectedCallback(function(){return d.editor.autosave});m.isEnabled=h;m.visible=!1;this.addAction("help",function(){var a= -"";mxResources.isLanguageSupported(mxClient.language)&&(a="_"+mxClient.language);b.openLink(RESOURCES_PATH+"/help"+a+".html")});var p=!1;this.put("about",new Action(mxResources.get("about")+" Graph Editor...",function(){p||(d.showDialog((new AboutDialog(d)).container,320,280,!0,!0,function(){p=!1}),p=!0)},null,null,"F1"));m=mxUtils.bind(this,function(a,d,c,f){return this.addAction(a,function(){if(null!=c&&b.cellEditor.isContentEditing())c();else{b.stopEditing(!1);b.getModel().beginUpdate();try{b.toggleCellStyleFlags(mxConstants.STYLE_FONTSTYLE, -d),(d&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD?b.updateLabelElements(b.getSelectionCells(),function(a){a.style.fontWeight=null;"B"==a.nodeName&&b.replaceElement(a)}):(d&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC?b.updateLabelElements(b.getSelectionCells(),function(a){a.style.fontStyle=null;"I"==a.nodeName&&b.replaceElement(a)}):(d&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE&&b.updateLabelElements(b.getSelectionCells(),function(a){a.style.textDecoration=null;"U"==a.nodeName&& -b.replaceElement(a)})}finally{b.getModel().endUpdate()}}},null,null,f)});m("bold",mxConstants.FONT_BOLD,function(){document.execCommand("bold",!1,null)},Editor.ctrlKey+"+B");m("italic",mxConstants.FONT_ITALIC,function(){document.execCommand("italic",!1,null)},Editor.ctrlKey+"+I");m("underline",mxConstants.FONT_UNDERLINE,function(){document.execCommand("underline",!1,null)},Editor.ctrlKey+"+U");this.addAction("fontColor...",function(){d.menus.pickColor(mxConstants.STYLE_FONTCOLOR,"forecolor","000000")}); -this.addAction("strokeColor...",function(){d.menus.pickColor(mxConstants.STYLE_STROKECOLOR)});this.addAction("fillColor...",function(){d.menus.pickColor(mxConstants.STYLE_FILLCOLOR)});this.addAction("gradientColor...",function(){d.menus.pickColor(mxConstants.STYLE_GRADIENTCOLOR)});this.addAction("backgroundColor...",function(){d.menus.pickColor(mxConstants.STYLE_LABEL_BACKGROUNDCOLOR,"backcolor")});this.addAction("borderColor...",function(){d.menus.pickColor(mxConstants.STYLE_LABEL_BORDERCOLOR)}); -this.addAction("vertical",function(){d.menus.toggleStyle(mxConstants.STYLE_HORIZONTAL,!0)});this.addAction("shadow",function(){d.menus.toggleStyle(mxConstants.STYLE_SHADOW)});this.addAction("solid",function(){b.getModel().beginUpdate();try{b.setCellStyles(mxConstants.STYLE_DASHED,null),b.setCellStyles(mxConstants.STYLE_DASH_PATTERN,null),d.fireEvent(new mxEventObject("styleChanged","keys",[mxConstants.STYLE_DASHED,mxConstants.STYLE_DASH_PATTERN],"values",[null,null],"cells",b.getSelectionCells()))}finally{b.getModel().endUpdate()}}); -this.addAction("dashed",function(){b.getModel().beginUpdate();try{b.setCellStyles(mxConstants.STYLE_DASHED,"1"),b.setCellStyles(mxConstants.STYLE_DASH_PATTERN,null),d.fireEvent(new mxEventObject("styleChanged","keys",[mxConstants.STYLE_DASHED,mxConstants.STYLE_DASH_PATTERN],"values",["1",null],"cells",b.getSelectionCells()))}finally{b.getModel().endUpdate()}});this.addAction("dotted",function(){b.getModel().beginUpdate();try{b.setCellStyles(mxConstants.STYLE_DASHED,"1"),b.setCellStyles(mxConstants.STYLE_DASH_PATTERN, -"1 4"),d.fireEvent(new mxEventObject("styleChanged","keys",[mxConstants.STYLE_DASHED,mxConstants.STYLE_DASH_PATTERN],"values",["1","1 4"],"cells",b.getSelectionCells()))}finally{b.getModel().endUpdate()}});this.addAction("sharp",function(){b.getModel().beginUpdate();try{b.setCellStyles(mxConstants.STYLE_ROUNDED,"0"),b.setCellStyles(mxConstants.STYLE_CURVED,"0"),d.fireEvent(new mxEventObject("styleChanged","keys",[mxConstants.STYLE_ROUNDED,mxConstants.STYLE_CURVED],"values",["0","0"],"cells",b.getSelectionCells()))}finally{b.getModel().endUpdate()}}); -this.addAction("rounded",function(){b.getModel().beginUpdate();try{b.setCellStyles(mxConstants.STYLE_ROUNDED,"1"),b.setCellStyles(mxConstants.STYLE_CURVED,"0"),d.fireEvent(new mxEventObject("styleChanged","keys",[mxConstants.STYLE_ROUNDED,mxConstants.STYLE_CURVED],"values",["1","0"],"cells",b.getSelectionCells()))}finally{b.getModel().endUpdate()}});this.addAction("toggleRounded",function(){if(!b.isSelectionEmpty()&&b.isEnabled()){b.getModel().beginUpdate();try{var a=b.getSelectionCells(),e=b.view.getState(a[0]), -c=null!=e?e.style:b.getCellStyle(a[0]),f="1"==mxUtils.getValue(c,mxConstants.STYLE_ROUNDED,"0")?"0":"1";b.setCellStyles(mxConstants.STYLE_ROUNDED,f);b.setCellStyles(mxConstants.STYLE_CURVED,null);d.fireEvent(new mxEventObject("styleChanged","keys",[mxConstants.STYLE_ROUNDED,mxConstants.STYLE_CURVED],"values",[f,"0"],"cells",b.getSelectionCells()))}finally{b.getModel().endUpdate()}}});this.addAction("curved",function(){b.getModel().beginUpdate();try{b.setCellStyles(mxConstants.STYLE_ROUNDED,"0"),b.setCellStyles(mxConstants.STYLE_CURVED, -"1"),d.fireEvent(new mxEventObject("styleChanged","keys",[mxConstants.STYLE_ROUNDED,mxConstants.STYLE_CURVED],"values",["0","1"],"cells",b.getSelectionCells()))}finally{b.getModel().endUpdate()}});this.addAction("collapsible",function(){var a=b.view.getState(b.getSelectionCell()),e="1";null!=a&&null!=b.getFoldingImage(a)&&(e="0");b.setCellStyles("collapsible",e);d.fireEvent(new mxEventObject("styleChanged","keys",["collapsible"],"values",[e],"cells",b.getSelectionCells()))});this.addAction("editStyle...", -mxUtils.bind(this,function(){var a=b.getSelectionCells();if(null!=a&&0<a.length){var d=b.getModel(),d=new TextareaDialog(this.editorUi,mxResources.get("editStyle")+":",d.getStyle(a[0])||"",function(c){null!=c&&b.setCellStyle(mxUtils.trim(c),a)},null,null,400,220);this.editorUi.showDialog(d.container,420,300,!0,!0);d.init()}}),null,null,Editor.ctrlKey+"+E");this.addAction("setAsDefaultStyle",function(){b.isEnabled()&&!b.isSelectionEmpty()&&d.setDefaultStyle(b.getSelectionCell())},null,null,Editor.ctrlKey+ -"+Shift+D");this.addAction("clearDefaultStyle",function(){b.isEnabled()&&d.clearDefaultStyle()},null,null,Editor.ctrlKey+"+Shift+R");this.addAction("addWaypoint",function(){var a=b.getSelectionCell();if(null!=a&&b.getModel().isEdge(a)){var d=e.graph.selectionCellsHandler.getHandler(a);if(d instanceof mxEdgeHandler){for(var c=b.view.translate,f=b.view.scale,g=c.x,c=c.y,a=b.getModel().getParent(a),k=b.getCellGeometry(a);b.getModel().isVertex(a)&&null!=k;)g+=k.x,c+=k.y,a=b.getModel().getParent(a),k= -b.getCellGeometry(a);g=Math.round(b.snap(b.popupMenuHandler.triggerX/f-g));f=Math.round(b.snap(b.popupMenuHandler.triggerY/f-c));d.addPointAt(d.state,g,f)}}});this.addAction("removeWaypoint",function(){var a=d.actions.get("removeWaypoint");null!=a.handler&&a.handler.removePoint(a.handler.state,a.index)});this.addAction("clearWaypoints",function(){var a=b.getSelectionCells();if(null!=a){a=b.addAllEdges(a);b.getModel().beginUpdate();try{for(var d=0;d<a.length;d++){var c=a[d];if(b.getModel().isEdge(c)){var f= -b.getCellGeometry(c);null!=f&&(f=f.clone(),f.points=null,b.getModel().setGeometry(c,f))}}}finally{b.getModel().endUpdate()}}},null,null,"Alt+Shift+C");m=this.addAction("subscript",mxUtils.bind(this,function(){b.cellEditor.isContentEditing()&&document.execCommand("subscript",!1,null)}),null,null,Editor.ctrlKey+"+,");m=this.addAction("superscript",mxUtils.bind(this,function(){b.cellEditor.isContentEditing()&&document.execCommand("superscript",!1,null)}),null,null,Editor.ctrlKey+"+.");this.addAction("image...", -function(){if(b.isEnabled()&&!b.isCellLocked(b.getDefaultParent())){var a=mxResources.get("image")+" ("+mxResources.get("url")+"):",e=b.getView().getState(b.getSelectionCell()),c="";null!=e&&(c=e.style[mxConstants.STYLE_IMAGE]||c);var f=b.cellEditor.saveSelection();d.showImageDialog(a,c,function(a,c,d){if(b.cellEditor.isContentEditing())b.cellEditor.restoreSelection(f),b.insertImage(a,c,d);else{var e=b.getSelectionCells();if(null!=a&&(0<a.length||0<e.length)){var g=null;b.getModel().beginUpdate(); -try{if(0==e.length){var k=b.getFreeInsertPoint(),g=e=[b.insertVertex(b.getDefaultParent(),null,"",k.x,k.y,c,d,"shape=image;imageAspect=0;aspect=fixed;verticalLabelPosition=bottom;verticalAlign=top;")];b.fireEvent(new mxEventObject("cellsInserted","cells",g))}b.setCellStyles(mxConstants.STYLE_IMAGE,0<a.length?a:null,e);var r=b.view.getState(e[0]),h=null!=r?r.style:b.getCellStyle(e[0]);"image"!=h[mxConstants.STYLE_SHAPE]&&"label"!=h[mxConstants.STYLE_SHAPE]?b.setCellStyles(mxConstants.STYLE_SHAPE,"image", -e):0==a.length&&b.setCellStyles(mxConstants.STYLE_SHAPE,null,e);if(1==b.getSelectionCount()&&null!=c&&null!=d){var y=e[0],t=b.getModel().getGeometry(y);null!=t&&(t=t.clone(),t.width=c,t.height=d,b.getModel().setGeometry(y,t))}}finally{b.getModel().endUpdate()}null!=g&&(b.setSelectionCells(g),b.scrollCellToVisible(g[0]))}}},b.cellEditor.isContentEditing(),!b.cellEditor.isContentEditing())}}).isEnabled=h;this.addAction("insertImage...",function(){b.isEnabled()&&!b.isCellLocked(b.getDefaultParent())&& -(b.clearSelection(),d.actions.get("image").funct())}).isEnabled=h;m=this.addAction("layers",mxUtils.bind(this,function(){null==this.layersWindow?(this.layersWindow=new LayersWindow(d,document.body.offsetWidth-280,120,220,180),this.layersWindow.window.addListener("show",function(){d.fireEvent(new mxEventObject("layers"))}),this.layersWindow.window.addListener("hide",function(){d.fireEvent(new mxEventObject("layers"))}),this.layersWindow.window.setVisible(!0),d.fireEvent(new mxEventObject("layers"))): -this.layersWindow.window.setVisible(!this.layersWindow.window.isVisible())}),null,null,Editor.ctrlKey+"+Shift+L");m.setToggleAction(!0);m.setSelectedCallback(mxUtils.bind(this,function(){return null!=this.layersWindow&&this.layersWindow.window.isVisible()}));m=this.addAction("formatPanel",mxUtils.bind(this,function(){d.toggleFormatPanel()}),null,null,Editor.ctrlKey+"+Shift+P");m.setToggleAction(!0);m.setSelectedCallback(mxUtils.bind(this,function(){return 0<d.formatWidth}));m=this.addAction("outline", -mxUtils.bind(this,function(){null==this.outlineWindow?(this.outlineWindow=new OutlineWindow(d,document.body.offsetWidth-260,100,180,180),this.outlineWindow.window.addListener("show",function(){d.fireEvent(new mxEventObject("outline"))}),this.outlineWindow.window.addListener("hide",function(){d.fireEvent(new mxEventObject("outline"))}),this.outlineWindow.window.setVisible(!0),d.fireEvent(new mxEventObject("outline"))):this.outlineWindow.window.setVisible(!this.outlineWindow.window.isVisible())}),null, -null,Editor.ctrlKey+"+Shift+O");m.setToggleAction(!0);m.setSelectedCallback(mxUtils.bind(this,function(){return null!=this.outlineWindow&&this.outlineWindow.window.isVisible()}))};Actions.prototype.addAction=function(a,d,e,b,h){var m;"..."==a.substring(a.length-3)?(a=a.substring(0,a.length-3),m=mxResources.get(a)+"..."):m=mxResources.get(a);return this.put(a,new Action(m,d,e,b,h))};Actions.prototype.put=function(a,d){return this.actions[a]=d};Actions.prototype.get=function(a){return this.actions[a]}; -function Action(a,d,e,b,h){mxEventSource.call(this);this.label=a;this.funct=this.createFunction(d);this.enabled=null!=e?e:!0;this.iconCls=b;this.shortcut=h;this.visible=!0}mxUtils.extend(Action,mxEventSource);Action.prototype.createFunction=function(a){return a};Action.prototype.setEnabled=function(a){this.enabled!=a&&(this.enabled=a,this.fireEvent(new mxEventObject("stateChanged")))};Action.prototype.isEnabled=function(){return this.enabled}; -Action.prototype.setToggleAction=function(a){this.toggleAction=a};Action.prototype.setSelectedCallback=function(a){this.selectedCallback=a};Action.prototype.isSelected=function(){return this.selectedCallback()};DrawioFile=function(a,d){mxEventSource.call(this);this.ui=a;this.data=d||""};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,d,e,b){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,d,e){};DrawioFile.prototype.saveFile=function(a,d,e,b){};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,d,e){};DrawioFile.prototype.isMovable=function(){return!1}; -DrawioFile.prototype.move=function(a,d,e){};DrawioFile.prototype.getHash=function(){return""};DrawioFile.prototype.getId=function(){return""};DrawioFile.prototype.isEditable=function(){return!this.ui.editor.isChromelessView()||this.ui.editor.editable};DrawioFile.prototype.getUi=function(){return this.ui};DrawioFile.prototype.getTitle=function(){return""};DrawioFile.prototype.setData=function(a){this.data=a};DrawioFile.prototype.getData=function(){return this.data}; -DrawioFile.prototype.open=function(){this.ui.setFileData(this.getData());this.changeListener=mxUtils.bind(this,function(a,d){var e=null!=d?d.getProperty("edit"):null;!this.changeListenerEnabled||!this.isEditable()||null!=e&&e.ignoreEdit||(this.setModified(!0),this.isAutosave()?(this.ui.editor.setStatus(mxUtils.htmlEntities(mxResources.get("saving"))+"..."),this.autosave(this.autosaveDelay,this.maxAutosaveDelay,mxUtils.bind(this,function(a){null!=this.autosaveThread||this.ui.getCurrentFile()!=this|| -this.isModified()||this.addAllSavedStatus()}),mxUtils.bind(this,function(a){this.ui.getCurrentFile()==this&&this.addUnsavedStatus(a)}))):this.addUnsavedStatus())});this.ui.editor.graph.model.addListener(mxEvent.CHANGE,this.changeListener);this.ui.editor.graph.addListener("gridSizeChanged",this.changeListener);this.ui.editor.graph.addListener("shadowVisibleChanged",this.changeListener);this.ui.addListener("pageFormatChanged",this.changeListener);this.ui.addListener("pageScaleChanged",this.changeListener); -this.ui.addListener("backgroundColorChanged",this.changeListener);this.ui.addListener("backgroundImageChanged",this.changeListener);this.ui.addListener("foldingEnabledChanged",this.changeListener);this.ui.addListener("mathEnabledChanged",this.changeListener);this.ui.addListener("gridEnabledChanged",this.changeListener);this.ui.addListener("guidesEnabledChanged",this.changeListener);this.ui.addListener("pageViewChanged",this.changeListener)}; -DrawioFile.prototype.addAllSavedStatus=function(){var a=this.ui.getCurrentFile();null==a||a.constructor!=DriveFile&&a.constructor!=DropboxFile?this.ui.editor.setStatus(mxUtils.htmlEntities(mxResources.get("allChangesSaved"))):(this.ui.editor.setStatus('<span title="'+mxUtils.htmlEntities(mxResources.get("revisionHistory"))+'" style="text-decoration:underline;cursor:pointer;">'+mxUtils.htmlEntities(mxResources.get("allChangesSaved"))+"</span>"),null!=this.ui.statusContainer&&(a=this.ui.statusContainer.getElementsByTagName("span"), -0<a.length&&mxEvent.addListener(a[0],"click",mxUtils.bind(this,function(){this.ui.actions.get("revisionHistory").funct()}))))}; -DrawioFile.prototype.addUnsavedStatus=function(a){a instanceof Error&&null!=a.message?this.ui.editor.setStatus('<div class="geStatusAlert" style="overflow:hidden;">'+mxUtils.htmlEntities(mxResources.get("unsavedChanges"))+" ("+mxUtils.htmlEntities(a.message)+")</div>"):(this.ui.editor.setStatus('<div class="geStatusAlert" style="cursor:pointer;overflow:hidden;">'+mxUtils.htmlEntities(mxResources.get("unsavedChangesClickHereToSave"))+"</div>"),null!=this.ui.statusContainer&&(a=this.ui.statusContainer.getElementsByTagName("div"), -0<a.length&&mxEvent.addListener(a[0],"click",mxUtils.bind(this,function(){this.ui.actions.get(null==this.ui.mode?"saveAs":"save").funct()}))))}; -DrawioFile.prototype.autosave=function(a,d,e,b){null==this.lastAutosave&&(this.lastAutosave=(new Date).getTime());a=(new Date).getTime()-this.lastAutosave<d?a:0;this.clearAutosave();this.autosaveThread=window.setTimeout(mxUtils.bind(this,function(){this.lastAutosave=this.autosaveThread=null;if(this.isModified()&&this.isAutosaveNow()){var a=this.isAutosaveRevision();a&&(this.lastAutosaveRevision=(new Date).getTime());this.save(a,mxUtils.bind(this,function(a){this.autosaveCompleted();null!=e&&e(a)}), -mxUtils.bind(this,function(a){null!=b&&b(a)}))}else null!=e&&e(null)}),a)};DrawioFile.prototype.isAutosaveNow=function(){return!0};DrawioFile.prototype.autosaveCompleted=function(){};DrawioFile.prototype.clearAutosave=function(){null!=this.autosaveThread&&(window.clearTimeout(this.autosaveThread),this.autosaveThread=null)};DrawioFile.prototype.isAutosaveRevision=function(){var a=(new Date).getTime();return null==this.lastAutosaveRevision||a-this.lastAutosaveRevision>this.maxAutosaveRevisionDelay}; -DrawioFile.prototype.close=function(a){this.isAutosave()&&this.isModified()&&this.save(this.isAutosaveRevision(),null,null,a);this.destroy()};DrawioFile.prototype.hasSameExtension=function(a,d){if(null!=a&&null!=d){var e=a.lastIndexOf("."),b=0<e?a.substring(e):"",e=d.lastIndexOf(".");return b===(0<e?d.substring(e):"")}return a==d}; -DrawioFile.prototype.destroy=function(){this.clearAutosave();null!=this.changeListener&&(this.ui.editor.graph.model.removeListener(this.changeListener),this.ui.editor.graph.removeListener(this.changeListener),this.ui.removeListener(this.changeListener),this.changeListener=null)};LocalFile=function(a,d,e,b){DrawioFile.call(this,a,d);this.title=e;this.mode=b?null:App.MODE_DEVICE};mxUtils.extend(LocalFile,DrawioFile);LocalFile.prototype.isAutosave=function(){return!1};LocalFile.prototype.getMode=function(){return this.mode};LocalFile.prototype.getTitle=function(){return this.title};LocalFile.prototype.isRenamable=function(){return!0};LocalFile.prototype.save=function(a,d,e){this.saveAs(this.title,d,e)};LocalFile.prototype.saveAs=function(a,d,e){this.saveFile(a,!1,d,e)}; -LocalFile.prototype.saveFile=function(a,d,e,b){this.title=a;this.updateFileData();d=this.getData();var h=this.ui.useCanvasForExport&&/(\.png)$/i.test(this.getTitle()),m=mxUtils.bind(this,function(b){if(this.ui.isOfflineApp()||this.ui.isLocalFileSave())this.ui.doSaveLocalFile(b,a,h?"image/png":"text/xml",h);else if(b.length<MAX_REQUEST_SIZE){var d=a.lastIndexOf("."),d=0<d?a.substring(d+1):"xml";(new mxXmlRequest(SAVE_URL,"format="+d+"&xml="+encodeURIComponent(b)+"&filename="+encodeURIComponent(a)+ -(h?"&binary=1":""))).simulate(document,"_blank")}else this.ui.handleError({message:mxResources.get("drawingTooLarge")},mxResources.get("error"),mxUtils.bind(this,function(){mxUtils.popup(b)}));this.setModified(!1);this.contentChanged();null!=e&&e()});h?this.ui.getEmbeddedPng(mxUtils.bind(this,function(a){m(a)}),b,this.ui.getCurrentFile()!=this?this.getData():null):m(d)};LocalFile.prototype.rename=function(a,d,e){this.title=a;this.descriptorChanged();null!=d&&d()}; -LocalFile.prototype.open=function(){this.ui.setFileData(this.getData());this.changeListener=mxUtils.bind(this,function(a,d){this.setModified(!0);this.addUnsavedStatus()});this.ui.editor.graph.model.addListener(mxEvent.CHANGE,this.changeListener)};(function(){Editor.prototype.appName="draw.io";Editor.closeImage=mxClient.IS_SVG?"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABkAAAAZCAMAAADzN3VRAAAApVBMVEUAAAD////k5OT///8AAAB1dXXMzMz9/f39/f37+/v5+fn+/v7///9iYmJaWlqFhYWnp6ejo6OHh4f////////////////7+/v5+fnx8fH///8AAAD///8bGxv7+/v5+fkoKCghISFDQ0MYGBjh4eHY2Njb29tQUFBvb29HR0c/Pz82NjYrKyu/v78SEhLu7u7s7OzV1dVVVVU7OzsVFRXAv78QEBBzqehMAAAAG3RSTlMAA/7p/vz5xZlrTiPL/v78+/v7+OXd2TYQDs8L70ZbAAABKUlEQVQoz3VS13LCMBBUXHChd8iukDslQChJ/v/TchaG4cXS+OSb1c7trU7V60OpdRz2ZtNZL4zXNlcN8BEtSG6+NxIXkeRPoBuQ1cjvZ31/VJFB10ISli6diYfH8iYO3WUNCcNlB0gTrXOtkxTo0O1aKKiBBMhhv2MNBQKoiA5wxlZo0JDzD3AYKbWacyj3fs01wxey0pyEP+R8pWKWXoqtIZ0DDg5pbki9krEKOa6LVDQsdoXEsi46Zqh69KFz7B1u7Hb2yDV8firXDKBlZ4UFiswKGRhXTS93/ECK7yxnJ3+S3y/ThpO+cfSD017nqa18aasabU0/t7d+tk0/1oMEJ1NaD67iwdF68OabFSLn+eHb0+vjy+uk8br9fdrftH0O2menfd7+AQfYM/lNjoDHAAAAAElFTkSuQmCC": +Actions.prototype.init=function(){function a(a){d.escape();var b=d.getDeletableCells(d.getSelectionCells());if(null!=b&&0<b.length){var c=d.model.getParents(b);d.removeCells(b,a);if(null!=c){a=[];for(b=0;b<c.length;b++)d.model.contains(c[b])&&(d.model.isVertex(c[b])||d.model.isEdge(c[b]))&&a.push(c[b]);d.setSelectionCells(a)}}}var b=this.editorUi,e=b.editor,d=e.graph,k=function(){return Action.prototype.isEnabled.apply(this,arguments)&&d.isEnabled()};this.addAction("new...",function(){d.openLink(b.getUrl())}); +this.addAction("open...",function(){window.openNew=!0;window.openKey="open";b.openFile()});this.addAction("import...",function(){window.openNew=!1;window.openKey="import";window.openFile=new OpenFile(mxUtils.bind(this,function(){b.hideDialog()}));window.openFile.setConsumer(mxUtils.bind(this,function(a,b){try{var c=mxUtils.parseXml(a);e.graph.setSelectionCells(e.graph.importGraphModel(c.documentElement))}catch(f){mxUtils.alert(mxResources.get("invalidOrMissingFile")+": "+f.message)}}));b.showDialog((new OpenDialog(this)).container, +320,220,!0,!0,function(){window.openFile=null})}).isEnabled=k;this.addAction("save",function(){b.saveFile(!1)},null,null,Editor.ctrlKey+"+S").isEnabled=k;this.addAction("saveAs...",function(){b.saveFile(!0)},null,null,Editor.ctrlKey+"+Shift+S").isEnabled=k;this.addAction("export...",function(){b.showDialog((new ExportDialog(b)).container,300,230,!0,!0)});this.addAction("editDiagram...",function(){var a=new EditDiagramDialog(b);b.showDialog(a.container,620,420,!0,!1);a.init()});this.addAction("pageSetup...", +function(){b.showDialog((new PageSetupDialog(b)).container,320,220,!0,!0)}).isEnabled=k;this.addAction("print...",function(){b.showDialog((new PrintDialog(b)).container,300,180,!0,!0)},null,"sprite-print",Editor.ctrlKey+"+P");this.addAction("preview",function(){mxUtils.show(d,null,10,10)});this.addAction("undo",function(){b.undo()},null,"sprite-undo",Editor.ctrlKey+"+Z");this.addAction("redo",function(){b.redo()},null,"sprite-redo",mxClient.IS_WIN?Editor.ctrlKey+"+Y":Editor.ctrlKey+"+Shift+Z");this.addAction("cut", +function(){mxClipboard.cut(d)},null,"sprite-cut",Editor.ctrlKey+"+X");this.addAction("copy",function(){mxClipboard.copy(d)},null,"sprite-copy",Editor.ctrlKey+"+C");this.addAction("paste",function(){d.isEnabled()&&!d.isCellLocked(d.getDefaultParent())&&mxClipboard.paste(d)},!1,"sprite-paste",Editor.ctrlKey+"+V");this.addAction("pasteHere",function(a){if(d.isEnabled()&&!d.isCellLocked(d.getDefaultParent())){d.getModel().beginUpdate();try{var b=mxClipboard.paste(d);if(null!=b){a=!0;for(var c=0;c<b.length&& +a;c++)a=a&&d.model.isEdge(b[c]);var f=d.view.translate,e=d.view.scale,n=f.x,r=f.y,f=null;if(1==b.length&&a){var h=d.getCellGeometry(b[0]);null!=h&&(f=h.getTerminalPoint(!0))}f=null!=f?f:d.getBoundingBoxFromGeometry(b,a);if(null!=f){var m=Math.round(d.snap(d.popupMenuHandler.triggerX/e-n)),k=Math.round(d.snap(d.popupMenuHandler.triggerY/e-r));d.cellsMoved(b,m-f.x,k-f.y)}}}finally{d.getModel().endUpdate()}}});this.addAction("copySize",function(a){a=d.getSelectionCell();d.isEnabled()&&null!=a&&d.getModel().isVertex(a)&& +(a=d.getCellGeometry(a),null!=a&&(b.copiedSize=new mxRectangle(a.x,a.y,a.width,a.height)))},null,null,"Alt+Shit+X");this.addAction("pasteSize",function(a){if(d.isEnabled()&&!d.isSelectionEmpty()&&null!=b.copiedSize){d.getModel().beginUpdate();try{var e=d.getSelectionCells();for(a=0;a<e.length;a++)if(d.getModel().isVertex(e[a])){var c=d.getCellGeometry(e[a]);null!=c&&(c=c.clone(),c.width=b.copiedSize.width,c.height=b.copiedSize.height,d.getModel().setGeometry(e[a],c))}}finally{d.getModel().endUpdate()}}}, +null,null,"Alt+Shit+V");this.addAction("delete",function(b){a(null!=b&&mxEvent.isShiftDown(b))},null,null,"Delete");this.addAction("deleteAll",function(){a(!0)},null,null,Editor.ctrlKey+"+Delete");this.addAction("duplicate",function(){d.setSelectionCells(d.duplicateCells())},null,null,Editor.ctrlKey+"+D");this.put("turn",new Action(mxResources.get("turn")+" / "+mxResources.get("reverse"),function(){d.turnShapes(d.getSelectionCells())},null,null,Editor.ctrlKey+"+R"));this.addAction("selectVertices", +function(){d.selectVertices()},null,null,Editor.ctrlKey+"+Shift+I");this.addAction("selectEdges",function(){d.selectEdges()},null,null,Editor.ctrlKey+"+Shift+E");this.addAction("selectAll",function(){d.selectAll(null,!0)},null,null,Editor.ctrlKey+"+A");this.addAction("selectNone",function(){d.clearSelection()},null,null,Editor.ctrlKey+"+Shift+A");this.addAction("lockUnlock",function(){if(!d.isSelectionEmpty()){d.getModel().beginUpdate();try{var a=d.isCellMovable(d.getSelectionCell())?1:0;d.toggleCellStyles(mxConstants.STYLE_MOVABLE, +a);d.toggleCellStyles(mxConstants.STYLE_RESIZABLE,a);d.toggleCellStyles(mxConstants.STYLE_ROTATABLE,a);d.toggleCellStyles(mxConstants.STYLE_DELETABLE,a);d.toggleCellStyles(mxConstants.STYLE_EDITABLE,a);d.toggleCellStyles("connectable",a)}finally{d.getModel().endUpdate()}}},null,null,Editor.ctrlKey+"+L");this.addAction("home",function(){d.home()},null,null,"Home");this.addAction("exitGroup",function(){d.exitGroup()},null,null,Editor.ctrlKey+"+Shift+Home");this.addAction("enterGroup",function(){d.enterGroup()}, +null,null,Editor.ctrlKey+"+Shift+End");this.addAction("collapse",function(){d.foldCells(!0)},null,null,Editor.ctrlKey+"+Home");this.addAction("expand",function(){d.foldCells(!1)},null,null,Editor.ctrlKey+"+End");this.addAction("toFront",function(){d.orderCells(!1)},null,null,Editor.ctrlKey+"+Shift+F");this.addAction("toBack",function(){d.orderCells(!0)},null,null,Editor.ctrlKey+"+Shift+B");this.addAction("group",function(){1==d.getSelectionCount()?d.setCellStyles("container","1"):d.setSelectionCell(d.groupCells(null, +0))},null,null,Editor.ctrlKey+"+G");this.addAction("ungroup",function(){1==d.getSelectionCount()&&0==d.getModel().getChildCount(d.getSelectionCell())?d.setCellStyles("container","0"):d.setSelectionCells(d.ungroupCells())},null,null,Editor.ctrlKey+"+Shift+U");this.addAction("removeFromGroup",function(){d.removeCellsFromParent()});this.addAction("edit",function(){d.isEnabled()&&d.startEditingAtCell()},null,null,"F2/Enter");this.addAction("editData...",function(){var a=d.getSelectionCell()||d.getModel().getRoot(); +b.showDataDialog(a)},null,null,Editor.ctrlKey+"+M");this.addAction("editTooltip...",function(){var a=b.editor.graph;if(a.isEnabled()&&!a.isSelectionEmpty()){var d=a.getSelectionCell(),c="";if(mxUtils.isNode(d.value)){var f=d.value.getAttribute("tooltip");null!=f&&(c=f)}c=new TextareaDialog(b,mxResources.get("editTooltip")+":",c,function(c){a.setTooltipForCell(d,c)});b.showDialog(c.container,320,200,!0,!0);c.init()}},null,null,"Alt+Shift+T");this.addAction("openLink",function(){var a=d.getLinkForCell(d.getSelectionCell()); +null!=a&&d.openLink(a)});this.addAction("editLink...",function(){var a=b.editor.graph;if(a.isEnabled()&&!a.isSelectionEmpty()){var d=a.getSelectionCell(),c=a.getLinkForCell(d)||"";b.showLinkDialog(c,mxResources.get("apply"),function(c){c=mxUtils.trim(c);a.setLinkForCell(d,0<c.length?c:null)})}},null,null,"Alt+Shift+L");this.addAction("insertLink...",function(){d.isEnabled()&&!d.isCellLocked(d.getDefaultParent())&&b.showLinkDialog("",mxResources.get("insert"),function(a,b){a=mxUtils.trim(a);if(0<a.length){var c= +null,f=d.getLinkTitle(a);null!=b&&0<b.length&&(c=b[0].iconUrl,f=b[0].name||b[0].type,f=f.charAt(0).toUpperCase()+f.substring(1),30<f.length&&(f=f.substring(0,30)+"..."));var e=d.getFreeInsertPoint(),c=new mxCell(f,new mxGeometry(e.x,e.y,100,40),"fontColor=#0000EE;fontStyle=4;rounded=1;overflow=hidden;"+(null!=c?"shape=label;imageWidth=16;imageHeight=16;spacingLeft=26;align=left;image="+c:"spacing=10;"));c.vertex=!0;d.setLinkForCell(c,a);d.cellSizeUpdated(c,!0);d.getModel().beginUpdate();try{c=d.addCell(c), +d.fireEvent(new mxEventObject("cellsInserted","cells",[c]))}finally{d.getModel().endUpdate()}d.setSelectionCell(c);d.scrollCellToVisible(d.getSelectionCell())}})}).isEnabled=k;this.addAction("link...",mxUtils.bind(this,function(){var a=b.editor.graph;if(a.isEnabled())if(a.cellEditor.isContentEditing()){var d=a.getSelectedElement(),c=a.getParentByName(d,"A",a.cellEditor.textarea),f="";if(null==c&&null!=d&&null!=d.getElementsByTagName)for(var e=d.getElementsByTagName("a"),n=0;n<e.length&&null==c;n++)e[n].textContent== +d.textContent&&(a.selectNode(e[n]),c=e[n]);null!=c&&"A"==c.nodeName&&(f=c.getAttribute("href")||"");var r=a.cellEditor.saveSelection();b.showLinkDialog(f,mxResources.get("apply"),mxUtils.bind(this,function(c){a.cellEditor.restoreSelection(r);null!=c&&a.insertLink(c)}))}else a.isSelectionEmpty()?this.get("insertLink").funct():this.get("editLink").funct()})).isEnabled=k;this.addAction("autosize",function(){var a=d.getSelectionCells();if(null!=a){d.getModel().beginUpdate();try{for(var b=0;b<a.length;b++){var c= +a[b];if(d.getModel().getChildCount(c))d.updateGroupBounds([c],20);else{var f=d.view.getState(c),e=d.getCellGeometry(c);d.getModel().isVertex(c)&&null!=f&&null!=f.text&&null!=e&&d.isWrapping(c)?(e=e.clone(),e.height=f.text.boundingBox.height/d.view.scale,d.getModel().setGeometry(c,e)):d.updateCellSize(c)}}}finally{d.getModel().endUpdate()}}},null,null,Editor.ctrlKey+"+Shift+Y");this.addAction("formattedText",function(){var a=d.getView().getState(d.getSelectionCell());if(null!=a){var e="1";d.stopEditing(); +d.getModel().beginUpdate();try{if("1"==a.style.html){var e=null,c=d.convertValueToString(a.cell);"0"!=mxUtils.getValue(a.style,"nl2Br","1")&&(c=c.replace(/\n/g,"").replace(/<br\s*.?>/g,"\n"));var f=document.createElement("div");f.innerHTML=c;c=mxUtils.extractTextWithWhitespace(f.childNodes);d.cellLabelChanged(a.cell,c)}else c=mxUtils.htmlEntities(d.convertValueToString(a.cell),!1),"0"!=mxUtils.getValue(a.style,"nl2Br","1")&&(c=c.replace(/\n/g,"<br/>")),d.cellLabelChanged(a.cell,d.sanitizeHtml(c)); +d.setCellStyles("html",e);b.fireEvent(new mxEventObject("styleChanged","keys",["html"],"values",[null!=e?e:"0"],"cells",d.getSelectionCells()))}finally{d.getModel().endUpdate()}}});this.addAction("wordWrap",function(){var a=d.getView().getState(d.getSelectionCell()),b="wrap";d.stopEditing();null!=a&&"wrap"==a.style[mxConstants.STYLE_WHITE_SPACE]&&(b=null);d.setCellStyles(mxConstants.STYLE_WHITE_SPACE,b)});this.addAction("rotation",function(){var a="0",e=d.getView().getState(d.getSelectionCell()); +null!=e&&(a=e.style[mxConstants.STYLE_ROTATION]||a);a=new FilenameDialog(b,a,mxResources.get("apply"),function(a){null!=a&&0<a.length&&d.setCellStyles(mxConstants.STYLE_ROTATION,a)},mxResources.get("enterValue")+" ("+mxResources.get("rotation")+" 0-360)");b.showDialog(a.container,375,80,!0,!0);a.init()});this.addAction("resetView",function(){d.zoomTo(1);b.resetScrollbars()},null,null,Editor.ctrlKey+"+H");this.addAction("zoomIn",function(a){d.zoomIn()},null,null,Editor.ctrlKey+" + (Numpad) / Alt+Mousewheel"); +this.addAction("zoomOut",function(a){d.zoomOut()},null,null,Editor.ctrlKey+" - (Numpad) / Alt+Mousewheel");this.addAction("fitWindow",function(){d.fit()},null,null,Editor.ctrlKey+"+Shift+H");this.addAction("fitPage",mxUtils.bind(this,function(){d.pageVisible||this.get("pageView").funct();var a=d.pageFormat,b=d.pageScale;d.zoomTo(Math.floor(20*Math.min((d.container.clientWidth-10)/a.width/b,(d.container.clientHeight-10)/a.height/b))/20);mxUtils.hasScrollbars(d.container)&&(a=d.getPagePadding(),d.container.scrollTop= +a.y*d.view.scale-1,d.container.scrollLeft=Math.min(a.x*d.view.scale,(d.container.scrollWidth-d.container.clientWidth)/2)-1)}),null,null,Editor.ctrlKey+"+J");this.addAction("fitTwoPages",mxUtils.bind(this,function(){d.pageVisible||this.get("pageView").funct();var a=d.pageFormat,b=d.pageScale;d.zoomTo(Math.floor(20*Math.min((d.container.clientWidth-10)/(2*a.width)/b,(d.container.clientHeight-10)/a.height/b))/20);mxUtils.hasScrollbars(d.container)&&(a=d.getPagePadding(),d.container.scrollTop=Math.min(a.y, +(d.container.scrollHeight-d.container.clientHeight)/2),d.container.scrollLeft=Math.min(a.x,(d.container.scrollWidth-d.container.clientWidth)/2))}),null,null,Editor.ctrlKey+"+Shift+J");this.addAction("fitPageWidth",mxUtils.bind(this,function(){d.pageVisible||this.get("pageView").funct();d.zoomTo(Math.floor(20*(d.container.clientWidth-10)/d.pageFormat.width/d.pageScale)/20);if(mxUtils.hasScrollbars(d.container)){var a=d.getPagePadding();d.container.scrollLeft=Math.min(a.x*d.view.scale,(d.container.scrollWidth- +d.container.clientWidth)/2)}}));this.put("customZoom",new Action(mxResources.get("custom")+"...",mxUtils.bind(this,function(){var a=new FilenameDialog(this.editorUi,parseInt(100*d.getView().getScale()),mxResources.get("apply"),mxUtils.bind(this,function(a){a=parseInt(a);!isNaN(a)&&0<a&&d.zoomTo(a/100)}),mxResources.get("zoom")+" (%)");this.editorUi.showDialog(a.container,300,80,!0,!0);a.init()}),null,null,Editor.ctrlKey+"+0"));this.addAction("pageScale...",mxUtils.bind(this,function(){var a=new FilenameDialog(this.editorUi, +parseInt(100*d.pageScale),mxResources.get("apply"),mxUtils.bind(this,function(a){a=parseInt(a);!isNaN(a)&&0<a&&b.setPageScale(a/100)}),mxResources.get("pageScale")+" (%)");this.editorUi.showDialog(a.container,300,80,!0,!0);a.init()}));var l=null,l=this.addAction("grid",function(){d.setGridEnabled(!d.isGridEnabled());b.fireEvent(new mxEventObject("gridEnabledChanged"))},null,null,Editor.ctrlKey+"+Shift+G");l.setToggleAction(!0);l.setSelectedCallback(function(){return d.isGridEnabled()});l.setEnabled(!1); +l=this.addAction("guides",function(){d.graphHandler.guidesEnabled=!d.graphHandler.guidesEnabled;b.fireEvent(new mxEventObject("guidesEnabledChanged"))});l.setToggleAction(!0);l.setSelectedCallback(function(){return d.graphHandler.guidesEnabled});l.setEnabled(!1);l=this.addAction("tooltips",function(){d.tooltipHandler.setEnabled(!d.tooltipHandler.isEnabled())});l.setToggleAction(!0);l.setSelectedCallback(function(){return d.tooltipHandler.isEnabled()});l=this.addAction("collapseExpand",function(){var a= +new ChangePageSetup(b);a.ignoreColor=!0;a.ignoreImage=!0;a.foldingEnabled=!d.foldingEnabled;d.model.execute(a)});l.setToggleAction(!0);l.setSelectedCallback(function(){return d.foldingEnabled});l.isEnabled=k;l=this.addAction("scrollbars",function(){b.setScrollbars(!b.hasScrollbars())});l.setToggleAction(!0);l.setSelectedCallback(function(){return d.scrollbars});l=this.addAction("pageView",mxUtils.bind(this,function(){b.setPageVisible(!d.pageVisible)}));l.setToggleAction(!0);l.setSelectedCallback(function(){return d.pageVisible}); +l=this.addAction("connectionArrows",function(){d.connectionArrowsEnabled=!d.connectionArrowsEnabled;b.fireEvent(new mxEventObject("connectionArrowsChanged"))},null,null,"Alt+Shift+A");l.setToggleAction(!0);l.setSelectedCallback(function(){return d.connectionArrowsEnabled});l=this.addAction("connectionPoints",function(){d.setConnectable(!d.connectionHandler.isEnabled());b.fireEvent(new mxEventObject("connectionPointsChanged"))},null,null,"Alt+Shift+P");l.setToggleAction(!0);l.setSelectedCallback(function(){return d.connectionHandler.isEnabled()}); +l=this.addAction("copyConnect",function(){d.connectionHandler.setCreateTarget(!d.connectionHandler.isCreateTarget());b.fireEvent(new mxEventObject("copyConnectChanged"))});l.setToggleAction(!0);l.setSelectedCallback(function(){return d.connectionHandler.isCreateTarget()});l.isEnabled=k;l=this.addAction("autosave",function(){b.editor.setAutosave(!b.editor.autosave)});l.setToggleAction(!0);l.setSelectedCallback(function(){return b.editor.autosave});l.isEnabled=k;l.visible=!1;this.addAction("help",function(){var a= +"";mxResources.isLanguageSupported(mxClient.language)&&(a="_"+mxClient.language);d.openLink(RESOURCES_PATH+"/help"+a+".html")});var p=!1;this.put("about",new Action(mxResources.get("about")+" Graph Editor...",function(){p||(b.showDialog((new AboutDialog(b)).container,320,280,!0,!0,function(){p=!1}),p=!0)},null,null,"F1"));l=mxUtils.bind(this,function(a,b,c,f){return this.addAction(a,function(){if(null!=c&&d.cellEditor.isContentEditing())c();else{d.stopEditing(!1);d.getModel().beginUpdate();try{d.toggleCellStyleFlags(mxConstants.STYLE_FONTSTYLE, +b),(b&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD?d.updateLabelElements(d.getSelectionCells(),function(a){a.style.fontWeight=null;"B"==a.nodeName&&d.replaceElement(a)}):(b&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC?d.updateLabelElements(d.getSelectionCells(),function(a){a.style.fontStyle=null;"I"==a.nodeName&&d.replaceElement(a)}):(b&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE&&d.updateLabelElements(d.getSelectionCells(),function(a){a.style.textDecoration=null;"U"==a.nodeName&& +d.replaceElement(a)})}finally{d.getModel().endUpdate()}}},null,null,f)});l("bold",mxConstants.FONT_BOLD,function(){document.execCommand("bold",!1,null)},Editor.ctrlKey+"+B");l("italic",mxConstants.FONT_ITALIC,function(){document.execCommand("italic",!1,null)},Editor.ctrlKey+"+I");l("underline",mxConstants.FONT_UNDERLINE,function(){document.execCommand("underline",!1,null)},Editor.ctrlKey+"+U");this.addAction("fontColor...",function(){b.menus.pickColor(mxConstants.STYLE_FONTCOLOR,"forecolor","000000")}); +this.addAction("strokeColor...",function(){b.menus.pickColor(mxConstants.STYLE_STROKECOLOR)});this.addAction("fillColor...",function(){b.menus.pickColor(mxConstants.STYLE_FILLCOLOR)});this.addAction("gradientColor...",function(){b.menus.pickColor(mxConstants.STYLE_GRADIENTCOLOR)});this.addAction("backgroundColor...",function(){b.menus.pickColor(mxConstants.STYLE_LABEL_BACKGROUNDCOLOR,"backcolor")});this.addAction("borderColor...",function(){b.menus.pickColor(mxConstants.STYLE_LABEL_BORDERCOLOR)}); +this.addAction("vertical",function(){b.menus.toggleStyle(mxConstants.STYLE_HORIZONTAL,!0)});this.addAction("shadow",function(){b.menus.toggleStyle(mxConstants.STYLE_SHADOW)});this.addAction("solid",function(){d.getModel().beginUpdate();try{d.setCellStyles(mxConstants.STYLE_DASHED,null),d.setCellStyles(mxConstants.STYLE_DASH_PATTERN,null),b.fireEvent(new mxEventObject("styleChanged","keys",[mxConstants.STYLE_DASHED,mxConstants.STYLE_DASH_PATTERN],"values",[null,null],"cells",d.getSelectionCells()))}finally{d.getModel().endUpdate()}}); +this.addAction("dashed",function(){d.getModel().beginUpdate();try{d.setCellStyles(mxConstants.STYLE_DASHED,"1"),d.setCellStyles(mxConstants.STYLE_DASH_PATTERN,null),b.fireEvent(new mxEventObject("styleChanged","keys",[mxConstants.STYLE_DASHED,mxConstants.STYLE_DASH_PATTERN],"values",["1",null],"cells",d.getSelectionCells()))}finally{d.getModel().endUpdate()}});this.addAction("dotted",function(){d.getModel().beginUpdate();try{d.setCellStyles(mxConstants.STYLE_DASHED,"1"),d.setCellStyles(mxConstants.STYLE_DASH_PATTERN, +"1 4"),b.fireEvent(new mxEventObject("styleChanged","keys",[mxConstants.STYLE_DASHED,mxConstants.STYLE_DASH_PATTERN],"values",["1","1 4"],"cells",d.getSelectionCells()))}finally{d.getModel().endUpdate()}});this.addAction("sharp",function(){d.getModel().beginUpdate();try{d.setCellStyles(mxConstants.STYLE_ROUNDED,"0"),d.setCellStyles(mxConstants.STYLE_CURVED,"0"),b.fireEvent(new mxEventObject("styleChanged","keys",[mxConstants.STYLE_ROUNDED,mxConstants.STYLE_CURVED],"values",["0","0"],"cells",d.getSelectionCells()))}finally{d.getModel().endUpdate()}}); +this.addAction("rounded",function(){d.getModel().beginUpdate();try{d.setCellStyles(mxConstants.STYLE_ROUNDED,"1"),d.setCellStyles(mxConstants.STYLE_CURVED,"0"),b.fireEvent(new mxEventObject("styleChanged","keys",[mxConstants.STYLE_ROUNDED,mxConstants.STYLE_CURVED],"values",["1","0"],"cells",d.getSelectionCells()))}finally{d.getModel().endUpdate()}});this.addAction("toggleRounded",function(){if(!d.isSelectionEmpty()&&d.isEnabled()){d.getModel().beginUpdate();try{var a=d.getSelectionCells(),e=d.view.getState(a[0]), +c=null!=e?e.style:d.getCellStyle(a[0]),f="1"==mxUtils.getValue(c,mxConstants.STYLE_ROUNDED,"0")?"0":"1";d.setCellStyles(mxConstants.STYLE_ROUNDED,f);d.setCellStyles(mxConstants.STYLE_CURVED,null);b.fireEvent(new mxEventObject("styleChanged","keys",[mxConstants.STYLE_ROUNDED,mxConstants.STYLE_CURVED],"values",[f,"0"],"cells",d.getSelectionCells()))}finally{d.getModel().endUpdate()}}});this.addAction("curved",function(){d.getModel().beginUpdate();try{d.setCellStyles(mxConstants.STYLE_ROUNDED,"0"),d.setCellStyles(mxConstants.STYLE_CURVED, +"1"),b.fireEvent(new mxEventObject("styleChanged","keys",[mxConstants.STYLE_ROUNDED,mxConstants.STYLE_CURVED],"values",["0","1"],"cells",d.getSelectionCells()))}finally{d.getModel().endUpdate()}});this.addAction("collapsible",function(){var a=d.view.getState(d.getSelectionCell()),e="1";null!=a&&null!=d.getFoldingImage(a)&&(e="0");d.setCellStyles("collapsible",e);b.fireEvent(new mxEventObject("styleChanged","keys",["collapsible"],"values",[e],"cells",d.getSelectionCells()))});this.addAction("editStyle...", +mxUtils.bind(this,function(){var a=d.getSelectionCells();if(null!=a&&0<a.length){var b=d.getModel(),b=new TextareaDialog(this.editorUi,mxResources.get("editStyle")+":",b.getStyle(a[0])||"",function(c){null!=c&&d.setCellStyle(mxUtils.trim(c),a)},null,null,400,220);this.editorUi.showDialog(b.container,420,300,!0,!0);b.init()}}),null,null,Editor.ctrlKey+"+E");this.addAction("setAsDefaultStyle",function(){d.isEnabled()&&!d.isSelectionEmpty()&&b.setDefaultStyle(d.getSelectionCell())},null,null,Editor.ctrlKey+ +"+Shift+D");this.addAction("clearDefaultStyle",function(){d.isEnabled()&&b.clearDefaultStyle()},null,null,Editor.ctrlKey+"+Shift+R");this.addAction("addWaypoint",function(){var a=d.getSelectionCell();if(null!=a&&d.getModel().isEdge(a)){var b=e.graph.selectionCellsHandler.getHandler(a);if(b instanceof mxEdgeHandler){for(var c=d.view.translate,f=d.view.scale,g=c.x,c=c.y,a=d.getModel().getParent(a),n=d.getCellGeometry(a);d.getModel().isVertex(a)&&null!=n;)g+=n.x,c+=n.y,a=d.getModel().getParent(a),n= +d.getCellGeometry(a);g=Math.round(d.snap(d.popupMenuHandler.triggerX/f-g));f=Math.round(d.snap(d.popupMenuHandler.triggerY/f-c));b.addPointAt(b.state,g,f)}}});this.addAction("removeWaypoint",function(){var a=b.actions.get("removeWaypoint");null!=a.handler&&a.handler.removePoint(a.handler.state,a.index)});this.addAction("clearWaypoints",function(){var a=d.getSelectionCells();if(null!=a){a=d.addAllEdges(a);d.getModel().beginUpdate();try{for(var b=0;b<a.length;b++){var c=a[b];if(d.getModel().isEdge(c)){var f= +d.getCellGeometry(c);null!=f&&(f=f.clone(),f.points=null,d.getModel().setGeometry(c,f))}}}finally{d.getModel().endUpdate()}}},null,null,"Alt+Shift+C");l=this.addAction("subscript",mxUtils.bind(this,function(){d.cellEditor.isContentEditing()&&document.execCommand("subscript",!1,null)}),null,null,Editor.ctrlKey+"+,");l=this.addAction("superscript",mxUtils.bind(this,function(){d.cellEditor.isContentEditing()&&document.execCommand("superscript",!1,null)}),null,null,Editor.ctrlKey+"+.");this.addAction("image...", +function(){if(d.isEnabled()&&!d.isCellLocked(d.getDefaultParent())){var a=mxResources.get("image")+" ("+mxResources.get("url")+"):",e=d.getView().getState(d.getSelectionCell()),c="";null!=e&&(c=e.style[mxConstants.STYLE_IMAGE]||c);var f=d.cellEditor.saveSelection();b.showImageDialog(a,c,function(a,c,b){if(d.cellEditor.isContentEditing())d.cellEditor.restoreSelection(f),d.insertImage(a,c,b);else{var e=d.getSelectionCells();if(null!=a&&(0<a.length||0<e.length)){var g=null;d.getModel().beginUpdate(); +try{if(0==e.length){var n=d.getFreeInsertPoint(),g=e=[d.insertVertex(d.getDefaultParent(),null,"",n.x,n.y,c,b,"shape=image;imageAspect=0;aspect=fixed;verticalLabelPosition=bottom;verticalAlign=top;")];d.fireEvent(new mxEventObject("cellsInserted","cells",g))}d.setCellStyles(mxConstants.STYLE_IMAGE,0<a.length?a:null,e);var r=d.view.getState(e[0]),k=null!=r?r.style:d.getCellStyle(e[0]);"image"!=k[mxConstants.STYLE_SHAPE]&&"label"!=k[mxConstants.STYLE_SHAPE]?d.setCellStyles(mxConstants.STYLE_SHAPE,"image", +e):0==a.length&&d.setCellStyles(mxConstants.STYLE_SHAPE,null,e);if(1==d.getSelectionCount()&&null!=c&&null!=b){var y=e[0],t=d.getModel().getGeometry(y);null!=t&&(t=t.clone(),t.width=c,t.height=b,d.getModel().setGeometry(y,t))}}finally{d.getModel().endUpdate()}null!=g&&(d.setSelectionCells(g),d.scrollCellToVisible(g[0]))}}},d.cellEditor.isContentEditing(),!d.cellEditor.isContentEditing())}}).isEnabled=k;this.addAction("insertImage...",function(){d.isEnabled()&&!d.isCellLocked(d.getDefaultParent())&& +(d.clearSelection(),b.actions.get("image").funct())}).isEnabled=k;l=this.addAction("layers",mxUtils.bind(this,function(){null==this.layersWindow?(this.layersWindow=new LayersWindow(b,document.body.offsetWidth-280,120,220,180),this.layersWindow.window.addListener("show",function(){b.fireEvent(new mxEventObject("layers"))}),this.layersWindow.window.addListener("hide",function(){b.fireEvent(new mxEventObject("layers"))}),this.layersWindow.window.setVisible(!0),b.fireEvent(new mxEventObject("layers"))): +this.layersWindow.window.setVisible(!this.layersWindow.window.isVisible())}),null,null,Editor.ctrlKey+"+Shift+L");l.setToggleAction(!0);l.setSelectedCallback(mxUtils.bind(this,function(){return null!=this.layersWindow&&this.layersWindow.window.isVisible()}));l=this.addAction("formatPanel",mxUtils.bind(this,function(){b.toggleFormatPanel()}),null,null,Editor.ctrlKey+"+Shift+P");l.setToggleAction(!0);l.setSelectedCallback(mxUtils.bind(this,function(){return 0<b.formatWidth}));l=this.addAction("outline", +mxUtils.bind(this,function(){null==this.outlineWindow?(this.outlineWindow=new OutlineWindow(b,document.body.offsetWidth-260,100,180,180),this.outlineWindow.window.addListener("show",function(){b.fireEvent(new mxEventObject("outline"))}),this.outlineWindow.window.addListener("hide",function(){b.fireEvent(new mxEventObject("outline"))}),this.outlineWindow.window.setVisible(!0),b.fireEvent(new mxEventObject("outline"))):this.outlineWindow.window.setVisible(!this.outlineWindow.window.isVisible())}),null, +null,Editor.ctrlKey+"+Shift+O");l.setToggleAction(!0);l.setSelectedCallback(mxUtils.bind(this,function(){return null!=this.outlineWindow&&this.outlineWindow.window.isVisible()}))};Actions.prototype.addAction=function(a,b,e,d,k){var l;"..."==a.substring(a.length-3)?(a=a.substring(0,a.length-3),l=mxResources.get(a)+"..."):l=mxResources.get(a);return this.put(a,new Action(l,b,e,d,k))};Actions.prototype.put=function(a,b){return this.actions[a]=b};Actions.prototype.get=function(a){return this.actions[a]}; +function Action(a,b,e,d,k){mxEventSource.call(this);this.label=a;this.funct=this.createFunction(b);this.enabled=null!=e?e:!0;this.iconCls=d;this.shortcut=k;this.visible=!0}mxUtils.extend(Action,mxEventSource);Action.prototype.createFunction=function(a){return a};Action.prototype.setEnabled=function(a){this.enabled!=a&&(this.enabled=a,this.fireEvent(new mxEventObject("stateChanged")))};Action.prototype.isEnabled=function(){return this.enabled}; +Action.prototype.setToggleAction=function(a){this.toggleAction=a};Action.prototype.setSelectedCallback=function(a){this.selectedCallback=a};Action.prototype.isSelected=function(){return this.selectedCallback()};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,e,d){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,e){};DrawioFile.prototype.saveFile=function(a,b,e,d){};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,e){};DrawioFile.prototype.isMovable=function(){return!1}; +DrawioFile.prototype.move=function(a,b,e){};DrawioFile.prototype.getHash=function(){return""};DrawioFile.prototype.getId=function(){return""};DrawioFile.prototype.isEditable=function(){return!this.ui.editor.isChromelessView()||this.ui.editor.editable};DrawioFile.prototype.getUi=function(){return this.ui};DrawioFile.prototype.getTitle=function(){return""};DrawioFile.prototype.setData=function(a){this.data=a};DrawioFile.prototype.getData=function(){return this.data}; +DrawioFile.prototype.open=function(){var a=this.getData();null!=a&&this.ui.setFileData(a);this.changeListener=mxUtils.bind(this,function(a,e){var b=null!=e?e.getProperty("edit"):null;!this.changeListenerEnabled||!this.isEditable()||null!=b&&b.ignoreEdit||this.fileChanged()});this.ui.editor.graph.model.addListener(mxEvent.CHANGE,this.changeListener);this.ui.editor.graph.addListener("gridSizeChanged",this.changeListener);this.ui.editor.graph.addListener("shadowVisibleChanged",this.changeListener);this.ui.addListener("pageFormatChanged", +this.changeListener);this.ui.addListener("pageScaleChanged",this.changeListener);this.ui.addListener("backgroundColorChanged",this.changeListener);this.ui.addListener("backgroundImageChanged",this.changeListener);this.ui.addListener("foldingEnabledChanged",this.changeListener);this.ui.addListener("mathEnabledChanged",this.changeListener);this.ui.addListener("gridEnabledChanged",this.changeListener);this.ui.addListener("guidesEnabledChanged",this.changeListener);this.ui.addListener("pageViewChanged", +this.changeListener)}; +DrawioFile.prototype.addAllSavedStatus=function(){var a=this.ui.getCurrentFile();null==a||a.constructor!=DriveFile&&a.constructor!=DropboxFile?this.ui.editor.setStatus(mxUtils.htmlEntities(mxResources.get("allChangesSaved"))):(this.ui.editor.setStatus('<div title="'+mxUtils.htmlEntities(mxResources.get("revisionHistory"))+'" style="text-decoration:underline;cursor:pointer;">'+mxUtils.htmlEntities(mxResources.get("allChangesSaved"))+"</div>"),a=null!=this.ui.statusContainer?this.ui.statusContainer.getElementsByTagName("div"):null, +0<a.length&&mxEvent.addListener(a[0],"click",mxUtils.bind(this,function(){this.ui.actions.get("revisionHistory").funct()})))}; +DrawioFile.prototype.fileChanged=function(){this.setModified(!0);this.isAutosave()?(this.ui.editor.setStatus(mxUtils.htmlEntities(mxResources.get("saving"))+"..."),this.autosave(this.autosaveDelay,this.maxAutosaveDelay,mxUtils.bind(this,function(a){null!=this.autosaveThread||this.ui.getCurrentFile()!=this||this.isModified()||this.addAllSavedStatus()}),mxUtils.bind(this,function(a){this.ui.getCurrentFile()==this&&this.addUnsavedStatus(a)}))):this.addUnsavedStatus()}; +DrawioFile.prototype.addUnsavedStatus=function(a){a instanceof Error&&null!=a.message?this.ui.editor.setStatus('<div class="geStatusAlert" style="overflow:hidden;">'+mxUtils.htmlEntities(mxResources.get("unsavedChanges"))+" ("+mxUtils.htmlEntities(a.message)+")</div>"):(this.ui.editor.setStatus('<div class="geStatusAlert" style="cursor:pointer;overflow:hidden;">'+mxUtils.htmlEntities(mxResources.get("unsavedChangesClickHereToSave"))+"</div>"),a=null!=this.ui.statusContainer?this.ui.statusContainer.getElementsByTagName("div"): +null,null!=a&&0<a.length?mxEvent.addListener(a[0],"click",mxUtils.bind(this,function(){this.ui.actions.get(null==this.ui.mode?"saveAs":"save").funct()})):this.ui.editor.setStatus('<div class="geStatusAlert" style="overflow:hidden;">'+mxUtils.htmlEntities(mxResources.get("unsavedChanges"))+"</div>"))}; +DrawioFile.prototype.autosave=function(a,b,e,d){null==this.lastAutosave&&(this.lastAutosave=(new Date).getTime());a=(new Date).getTime()-this.lastAutosave<b?a:0;this.clearAutosave();var k=window.setTimeout(mxUtils.bind(this,function(){this.lastAutosave=null;this.autosaveThead==k&&(this.autosaveThread=null);if(this.isModified()&&this.isAutosaveNow()){var a=this.isAutosaveRevision();a&&(this.lastAutosaveRevision=(new Date).getTime());this.save(a,mxUtils.bind(this,function(a){this.autosaveCompleted(); +null!=e&&e(a)}),mxUtils.bind(this,function(a){null!=d&&d(a)}))}else this.isModified()||this.ui.editor.setStatus(""),null!=e&&e(null)}),a);this.autosaveThread=k};DrawioFile.prototype.isAutosaveNow=function(){return!0};DrawioFile.prototype.autosaveCompleted=function(){};DrawioFile.prototype.clearAutosave=function(){null!=this.autosaveThread&&(window.clearTimeout(this.autosaveThread),this.autosaveThread=null)}; +DrawioFile.prototype.isAutosaveRevision=function(){var a=(new Date).getTime();return null==this.lastAutosaveRevision||a-this.lastAutosaveRevision>this.maxAutosaveRevisionDelay};DrawioFile.prototype.close=function(a){this.isAutosave()&&this.isModified()&&this.save(this.isAutosaveRevision(),null,null,a);this.destroy()}; +DrawioFile.prototype.hasSameExtension=function(a,b){if(null!=a&&null!=b){var e=a.lastIndexOf("."),d=0<e?a.substring(e):"",e=b.lastIndexOf(".");return d===(0<e?b.substring(e):"")}return a==b};DrawioFile.prototype.destroy=function(){this.clearAutosave();null!=this.changeListener&&(this.ui.editor.graph.model.removeListener(this.changeListener),this.ui.editor.graph.removeListener(this.changeListener),this.ui.removeListener(this.changeListener),this.changeListener=null)};LocalFile=function(a,b,e,d){DrawioFile.call(this,a,b);this.title=e;this.mode=d?null:App.MODE_DEVICE};mxUtils.extend(LocalFile,DrawioFile);LocalFile.prototype.isAutosave=function(){return!1};LocalFile.prototype.getMode=function(){return this.mode};LocalFile.prototype.getTitle=function(){return this.title};LocalFile.prototype.isRenamable=function(){return!0};LocalFile.prototype.save=function(a,b,e){this.saveAs(this.title,b,e)};LocalFile.prototype.saveAs=function(a,b,e){this.saveFile(a,!1,b,e)}; +LocalFile.prototype.saveFile=function(a,b,e,d){this.title=a;this.updateFileData();b=this.getData();var k=this.ui.useCanvasForExport&&/(\.png)$/i.test(this.getTitle()),l=mxUtils.bind(this,function(b){if(this.ui.isOfflineApp()||this.ui.isLocalFileSave())this.ui.doSaveLocalFile(b,a,k?"image/png":"text/xml",k);else if(b.length<MAX_REQUEST_SIZE){var d=a.lastIndexOf("."),d=0<d?a.substring(d+1):"xml";(new mxXmlRequest(SAVE_URL,"format="+d+"&xml="+encodeURIComponent(b)+"&filename="+encodeURIComponent(a)+ +(k?"&binary=1":""))).simulate(document,"_blank")}else this.ui.handleError({message:mxResources.get("drawingTooLarge")},mxResources.get("error"),mxUtils.bind(this,function(){mxUtils.popup(b)}));this.setModified(!1);this.contentChanged();null!=e&&e()});k?this.ui.getEmbeddedPng(mxUtils.bind(this,function(a){l(a)}),d,this.ui.getCurrentFile()!=this?this.getData():null):l(b)};LocalFile.prototype.rename=function(a,b,e){this.title=a;this.descriptorChanged();null!=b&&b()}; +LocalFile.prototype.open=function(){this.ui.setFileData(this.getData());this.changeListener=mxUtils.bind(this,function(a,b){this.setModified(!0);this.addUnsavedStatus()});this.ui.editor.graph.model.addListener(mxEvent.CHANGE,this.changeListener)};(function(){Editor.prototype.appName="draw.io";Editor.closeImage=mxClient.IS_SVG?"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABkAAAAZCAMAAADzN3VRAAAApVBMVEUAAAD////k5OT///8AAAB1dXXMzMz9/f39/f37+/v5+fn+/v7///9iYmJaWlqFhYWnp6ejo6OHh4f////////////////7+/v5+fnx8fH///8AAAD///8bGxv7+/v5+fkoKCghISFDQ0MYGBjh4eHY2Njb29tQUFBvb29HR0c/Pz82NjYrKyu/v78SEhLu7u7s7OzV1dVVVVU7OzsVFRXAv78QEBBzqehMAAAAG3RSTlMAA/7p/vz5xZlrTiPL/v78+/v7+OXd2TYQDs8L70ZbAAABKUlEQVQoz3VS13LCMBBUXHChd8iukDslQChJ/v/TchaG4cXS+OSb1c7trU7V60OpdRz2ZtNZL4zXNlcN8BEtSG6+NxIXkeRPoBuQ1cjvZ31/VJFB10ISli6diYfH8iYO3WUNCcNlB0gTrXOtkxTo0O1aKKiBBMhhv2MNBQKoiA5wxlZo0JDzD3AYKbWacyj3fs01wxey0pyEP+R8pWKWXoqtIZ0DDg5pbki9krEKOa6LVDQsdoXEsi46Zqh69KFz7B1u7Hb2yDV8firXDKBlZ4UFiswKGRhXTS93/ECK7yxnJ3+S3y/ThpO+cfSD017nqa18aasabU0/t7d+tk0/1oMEJ1NaD67iwdF68OabFSLn+eHb0+vjy+uk8br9fdrftH0O2menfd7+AQfYM/lNjoDHAAAAAElFTkSuQmCC": IMAGE_PATH+"/delete.png";Editor.plusImage=mxClient.IS_SVG?"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBNYWNpbnRvc2giIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MDdCMTdENjVCOEM4MTFFNDlCRjVBNDdCODU5NjNBNUMiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MDdCMTdENjZCOEM4MTFFNDlCRjVBNDdCODU5NjNBNUMiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDowN0IxN0Q2M0I4QzgxMUU0OUJGNUE0N0I4NTk2M0E1QyIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDowN0IxN0Q2NEI4QzgxMUU0OUJGNUE0N0I4NTk2M0E1QyIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PtjrjmgAAAAtSURBVHjaYvz//z8DMigvLwcLdHZ2MiKLMzEQCaivkLGsrOw/dU0cAr4GCDAARQsQbTFrv10AAAAASUVORK5CYII=": IMAGE_PATH+"/plus.png";Editor.spinImage=mxClient.IS_SVG?"data:image/gif;base64,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": 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=": @@ -2667,8 +2670,9 @@ dispName:"Source Port Constraint",type:"enum",defVal:"none",enumList:[{val:"none type:"bool",defVal:!0},{name:"backgroundOutline",dispName:"Background Outline",type:"bool",defVal:!1},{name:"bendable",dispName:"Bendable",type:"bool",defVal:!0},{name:"movable",dispName:"Movable",type:"bool",defVal:!0},{name:"cloneable",dispName:"Cloneable",type:"bool",defVal:!0},{name:"deletable",dispName:"Deletable",type:"bool",defVal:!0},{name:"loopStyle",dispName:"Loop Style",type:"bool",defVal:!0}];Editor.commonVertexProperties=[{type:"separator"},{name:"fillOpacity",dispName:"Fill Opacity", type:"int",min:0,max:100,defVal:100},{name:"strokeOpacity",dispName:"Stroke Opacity",type:"int",min:0,max:100,defVal:100},{name:"overflow",dispName:"Text Overflow",defVal:"visible",type:"enum",enumList:[{val:"visible",dispName:"Visible"},{val:"hidden",dispName:"Hidden"},{val:"fill",dispName:"Fill"},{val:"width",dispName:"Width"}]},{name:"noLabel",dispName:"Hide Label",type:"bool",defVal:!1},{name:"labelPadding",dispName:"Label Padding",type:"float",defVal:0},{name:"direction",dispName:"Direction", type:"enum",defVal:"east",enumList:[{val:"east",dispName:"East"},{val:"north",dispName:"North"},{val:"south",dispName:"South"},{val:"west",dispName:"West"}]},{name:"portConstraint",dispName:"Port Constraint",type:"enum",defVal:"none",enumList:[{val:"none",dispName:"None"},{val:"east",dispName:"East"},{val:"north",dispName:"North"},{val:"south",dispName:"South"},{val:"west",dispName:"West"}]},{name:"portConstraintRotation",dispName:"Port Const. Rot.",type:"bool",defVal:!1},{name:"snapToPoint",dispName:"Snap to Point", -type:"bool",defVal:!1},{name:"fixDash",dispName:"Fixed Dash",type:"bool",defVal:!1},{name:"autosize",dispName:"Autosize",type:"bool",defVal:!1},{name:"collapsible",dispName:"Collapsible",type:"bool",defVal:!1},{name:"editable",dispName:"Editable",type:"bool",defVal:!0},{name:"backgroundOutline",dispName:"Background Outline",type:"bool",defVal:!1},{name:"movable",dispName:"Movable",type:"bool",defVal:!0},{name:"resizable",dispName:"Resizable",type:"bool",defVal:!0},{name:"resizeWidth",dispName:"Resize Width", -type:"bool",defVal:!1},{name:"resizeHeight",dispName:"Resize Height",type:"bool",defVal:!1},{name:"rotatable",dispName:"Rotatable",type:"bool",defVal:!0},{name:"cloneable",dispName:"Cloneable",type:"bool",defVal:!0},{name:"deletable",dispName:"Deletable",type:"bool",defVal:!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%<br><i style="color:gray;">%position%</i><br><a href="mailto:%email%">Email</a>\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## Parent style for nodes with child nodes (placeholders are replaced once).\n#\n# parentstyle: swimlane;whiteSpace=wrap;html=1;childLayout=stackLayout;horizontal=1;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;\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## Uses the given column name as the parent reference for cells. Default is no parent (empty or -).\n## The identity above is used for resolving the reference so it must be specified.\n#\n# parent: -\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 levels of hierarchical layouts. Default is 100.\n#\n# levelspacing: 100\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'; +type:"bool",defVal:!1},{name:"perimeter",dispName:"Perimeter",defVal:"none",type:"enum",enumList:[{val:"none",dispName:"None"},{val:"rectanglePerimeter",dispName:"Rectangle"},{val:"ellipsePerimeter",dispName:"Ellipse"},{val:"rhombusPerimeter",dispName:"Rhombus"},{val:"trianglePerimeter",dispName:"Triangle"},{val:"hexagonPerimeter2",dispName:"Hexagon"},{val:"lifelinePerimeter",dispName:"Lifeline"},{val:"orthogonalPerimeter",dispName:"Orthogonal"},{val:"backbonePerimeter",dispName:"Backbone"},{val:"calloutPerimeter", +dispName:"Callout"},{val:"parallelogramPerimeter",dispName:"Parallelogram"},{val:"trapezoidPerimeter",dispName:"Trapezoid"},{val:"stepPerimeter",dispName:"Step"}]},{name:"fixDash",dispName:"Fixed Dash",type:"bool",defVal:!1},{name:"autosize",dispName:"Autosize",type:"bool",defVal:!1},{name:"collapsible",dispName:"Collapsible",type:"bool",defVal:!1},{name:"editable",dispName:"Editable",type:"bool",defVal:!0},{name:"backgroundOutline",dispName:"Background Outline",type:"bool",defVal:!1},{name:"movable", +dispName:"Movable",type:"bool",defVal:!0},{name:"resizable",dispName:"Resizable",type:"bool",defVal:!0},{name:"resizeWidth",dispName:"Resize Width",type:"bool",defVal:!1},{name:"resizeHeight",dispName:"Resize Height",type:"bool",defVal:!1},{name:"rotatable",dispName:"Rotatable",type:"bool",defVal:!0},{name:"cloneable",dispName:"Cloneable",type:"bool",defVal:!0},{name:"deletable",dispName:"Deletable",type:"bool",defVal:!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%<br><i style="color:gray;">%position%</i><br><a href="mailto:%email%">Email</a>\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## Parent style for nodes with child nodes (placeholders are replaced once).\n#\n# parentstyle: swimlane;whiteSpace=wrap;html=1;childLayout=stackLayout;horizontal=1;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;\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## Uses the given column name as the parent reference for cells. Default is no parent (empty or -).\n## The identity above is used for resolving the reference so it must be specified.\n#\n# parent: -\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 levels of hierarchical layouts. Default is 100.\n#\n# levelspacing: 100\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.config=null;Editor.configVersion=null;Editor.configure=function(a,c){if(null!=a){Editor.config=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;null!=a.templateFile&&(EditorUi.templateFile=a.templateFile);a.customFonts&&(Menus.prototype.defaultFonts=a.customFonts.concat(Menus.prototype.defaultFonts));a.customPresetColors&&(ColorDialog.prototype.presetColors=a.customPresetColors.concat(ColorDialog.prototype.presetColors));null!=a.customColorSchemes&&(StyleFormatPanel.prototype.defaultColorSchemes=a.customColorSchemes.concat(StyleFormatPanel.prototype.defaultColorSchemes)); if(null!=a.css){var b=document.createElement("style");b.setAttribute("type","text/css");b.appendChild(document.createTextNode(a.css));var d=document.getElementsByTagName("script")[0];d.parentNode.insertBefore(b,d)}null!=a.libraries&&(Sidebar.prototype.customEntries=a.libraries);null!=a.enabledLibraries&&(Sidebar.prototype.enabledLibraries=a.enabledLibraries);null!=a.defaultLibraries&&(Sidebar.prototype.defaultEntries=a.defaultLibraries);null!=a.defaultCustomLibraries&&(Editor.defaultCustomLibraries= @@ -2677,17 +2681,17 @@ a.emptyLibraryXml);a.sidebarWidth&&(EditorUi.prototype.hsplitPosition=a.sidebarW Editor.guid=function(){return Editor.s4()+Editor.s4()+"-"+Editor.s4()+"-"+Editor.s4()+"-"+Editor.s4()+"-"+Editor.s4()+Editor.s4()+Editor.s4()};Editor.prototype.useForeignObjectForMath=!1;Editor.prototype.editButtonLink=null!=urlParams.edit?decodeURIComponent(urlParams.edit):null;var a=Editor.prototype.setGraphXml;Editor.prototype.setGraphXml=function(c){c=null!=c&&"mxlibrary"!=c.nodeName?this.extractGraphModel(c):null;if(null!=c){var b=c.getElementsByTagName("parsererror");if(null!=b&&0<b.length){var b= b[0],d=b.getElementsByTagName("div");null!=d&&0<d.length&&(b=d[0]);throw{message:mxUtils.getTextContent(b)};}if("mxGraphModel"==c.nodeName){b=c.getAttribute("style")||"default-style2";if("1"==urlParams.embed||null!=b&&""!=b)b!=this.graph.currentStyle&&(d=null!=this.graph.themes?this.graph.themes[b]:mxUtils.load(STYLE_PATH+"/"+b+".xml").getDocumentElement(),null!=d&&(f=new mxCodec(d.ownerDocument),f.decode(d,this.graph.getStylesheet())));else if(d=null!=this.graph.themes?this.graph.themes["default-old"]: mxUtils.load(STYLE_PATH+"/default-old.xml").getDocumentElement(),null!=d){var f=new mxCodec(d.ownerDocument);f.decode(d,this.graph.getStylesheet())}this.graph.currentStyle=b;this.graph.mathEnabled="1"==urlParams.math||"1"==c.getAttribute("math");b=c.getAttribute("backgroundImage");null!=b?(b=JSON.parse(b),this.graph.setBackgroundImage(new mxImage(b.src,b.width,b.height))):this.graph.setBackgroundImage(null);mxClient.NO_FO=this.graph.mathEnabled&&!this.useForeignObjectForMath?!0:this.originalNoForeignObject; -this.graph.useCssTransforms=!mxClient.NO_FO&&this.isChromelessView()&&this.graph.isCssTransformsSupported();this.graph.updateCssTransform();this.graph.setShadowVisible("1"==c.getAttribute("shadow"),!1)}a.apply(this,arguments)}else throw{message:mxResources.get("notADiagramFile")||"Invalid data",toString:function(){return this.message}};};var d=Editor.prototype.getGraphXml;Editor.prototype.getGraphXml=function(a){a=null!=a?a:!0;var c=d.apply(this,arguments);null!=this.graph.currentStyle&&"default-style2"!= +this.graph.useCssTransforms=!mxClient.NO_FO&&this.isChromelessView()&&this.graph.isCssTransformsSupported();this.graph.updateCssTransform();this.graph.setShadowVisible("1"==c.getAttribute("shadow"),!1)}a.apply(this,arguments)}else throw{message:mxResources.get("notADiagramFile")||"Invalid data",toString:function(){return this.message}};};var b=Editor.prototype.getGraphXml;Editor.prototype.getGraphXml=function(a){a=null!=a?a:!0;var c=b.apply(this,arguments);null!=this.graph.currentStyle&&"default-style2"!= this.graph.currentStyle&&c.setAttribute("style",this.graph.currentStyle);null!=this.graph.backgroundImage&&c.setAttribute("backgroundImage",JSON.stringify(this.graph.backgroundImage));c.setAttribute("math",this.graph.mathEnabled?"1":"0");c.setAttribute("shadow",this.graph.shadowVisible?"1":"0");return c};Editor.prototype.isDataSvg=function(a){try{var c=mxUtils.parseXml(a).documentElement.getAttribute("content");if(null!=c&&(null!=c&&"<"!=c.charAt(0)&&"%"!=c.charAt(0)&&(c=unescape(window.atob?atob(c): Base64.decode(cont,c))),null!=c&&"%"==c.charAt(0)&&(c=decodeURIComponent(c)),null!=c&&0<c.length)){var b=mxUtils.parseXml(c).documentElement;return"mxfile"==b.nodeName||"mxGraphModel"==b.nodeName}}catch(H){}return!1};Editor.prototype.extractGraphModel=function(a,c){if(null!=a&&"undefined"!==typeof pako){var b=a.ownerDocument.getElementsByTagName("div"),d=[];if(null!=b&&0<b.length)for(var f=0;f<b.length;f++)if("mxgraph"==b[f].getAttribute("class")){d.push(b[f]);break}0<d.length&&(b=d[0].getAttribute("data-mxgraph"), null!=b?(d=JSON.parse(b),null!=d&&null!=d.xml&&(d=mxUtils.parseXml(d.xml),a=d.documentElement)):(d=d[0].getElementsByTagName("div"),0<d.length&&(b=mxUtils.getTextContent(d[0]),b=this.graph.decompress(b),0<b.length&&(d=mxUtils.parseXml(b),a=d.documentElement))))}if(null!=a&&"svg"==a.nodeName)if(b=a.getAttribute("content"),null!=b&&"<"!=b.charAt(0)&&"%"!=b.charAt(0)&&(b=unescape(window.atob?atob(b):Base64.decode(cont,b))),null!=b&&"%"==b.charAt(0)&&(b=decodeURIComponent(b)),null!=b&&0<b.length)a=mxUtils.parseXml(b).documentElement; else throw{message:mxResources.get("notADiagramFile")};null==a||c||(d=null,"diagram"==a.nodeName?d=a:"mxfile"==a.nodeName&&(b=a.getElementsByTagName("diagram"),0<b.length&&(d=b[Math.max(0,Math.min(b.length-1,urlParams.page||0))])),null!=d&&(b=this.graph.decompress(mxUtils.getTextContent(d)),null!=b&&0<b.length&&(a=mxUtils.parseXml(b).documentElement)));null==a||"mxGraphModel"==a.nodeName||c&&"mxfile"==a.nodeName||(a=null);return a};var e=Editor.prototype.resetGraph;Editor.prototype.resetGraph=function(){this.graph.mathEnabled= -"1"==urlParams.math;this.graph.view.x0=null;this.graph.view.y0=null;mxClient.NO_FO=this.graph.mathEnabled&&!this.useForeignObjectForMath?!0:this.originalNoForeignObject;this.graph.useCssTransforms=!mxClient.NO_FO&&this.isChromelessView()&&this.graph.isCssTransformsSupported();this.graph.updateCssTransform();e.apply(this,arguments)};var b=Editor.prototype.updateGraphComponents;Editor.prototype.updateGraphComponents=function(){b.apply(this,arguments);mxClient.NO_FO=this.graph.mathEnabled&&!this.useForeignObjectForMath&& +"1"==urlParams.math;this.graph.view.x0=null;this.graph.view.y0=null;mxClient.NO_FO=this.graph.mathEnabled&&!this.useForeignObjectForMath?!0:this.originalNoForeignObject;this.graph.useCssTransforms=!mxClient.NO_FO&&this.isChromelessView()&&this.graph.isCssTransformsSupported();this.graph.updateCssTransform();e.apply(this,arguments)};var d=Editor.prototype.updateGraphComponents;Editor.prototype.updateGraphComponents=function(){d.apply(this,arguments);mxClient.NO_FO=this.graph.mathEnabled&&!this.useForeignObjectForMath&& null!=Editor.MathJaxRender?!0:this.originalNoForeignObject;this.graph.useCssTransforms=!mxClient.NO_FO&&this.isChromelessView()&&this.graph.isCssTransformsSupported();this.graph.updateCssTransform()};Editor.initMath=function(a,c){a=null!=a?a:"https://math.draw.io/current/MathJax.js?config=TeX-MML-AM_HTMLorMML";Editor.mathJaxQueue=[];Editor.doMathJaxRender=function(a){window.setTimeout(function(){"hidden"!=a.style.visibility&&MathJax.Hub.Queue(["Typeset",MathJax.Hub,a])},0)};window.MathJax={skipStartupTypeset:!0, showMathMenu:!1,messageStyle:"none",AuthorInit:function(){MathJax.Hub.Config(c||{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"]},tex2jax:{ignoreClass:"mxCellEditor"},asciimath2jax:{ignoreClass:"mxCellEditor"}});MathJax.Hub.Register.StartupHook("Begin",function(){for(var a=0;a<Editor.mathJaxQueue.length;a++)Editor.doMathJaxRender(Editor.mathJaxQueue[a])})}}; Editor.MathJaxRender=function(a){"undefined"!==typeof MathJax&&"undefined"!==typeof MathJax.Hub?Editor.doMathJaxRender(a):Editor.mathJaxQueue.push(a)};Editor.MathJaxClear=function(){Editor.mathJaxQueue=[]};var b=Editor.prototype.init;Editor.prototype.init=function(){b.apply(this,arguments);this.graph.addListener(mxEvent.SIZE,mxUtils.bind(this,function(a,c){null!=this.graph.container&&this.graph.mathEnabled&&Editor.MathJaxRender(this.graph.container)}))};var d=document.getElementsByTagName("script"); if(null!=d&&0<d.length){var f=document.createElement("script");f.type="text/javascript";f.src=a;d[0].parentNode.appendChild(f)}};Editor.prototype.csvToArray=function(a){if(!/^\s*(?:'[^'\\]*(?:\\[\S\s][^'\\]*)*'|"[^"\\]*(?:\\[\S\s][^"\\]*)*"|[^,'"\s\\]*(?:\s+[^,'"\s\\]+)*)\s*(?:,\s*(?:'[^'\\]*(?:\\[\S\s][^'\\]*)*'|"[^"\\]*(?:\\[\S\s][^"\\]*)*"|[^,'"\s\\]*(?:\s+[^,'"\s\\]+)*)\s*)*$/.test(a))return null;var c=[];a.replace(/(?!\s*$)\s*(?:'([^'\\]*(?:\\[\S\s][^'\\]*)*)'|"([^"\\]*(?:\\[\S\s][^"\\]*)*)"|([^,'"\s\\]*(?:\s+[^,'"\s\\]+)*))\s*(?:,|$)/g, -function(a,b,d,f){void 0!==b?c.push(b.replace(/\\'/g,"'")):void 0!==d?c.push(d.replace(/\\"/g,'"')):void 0!==f&&c.push(f);return""});/,\s*$/.test(a)&&c.push("");return c};if(window.ColorDialog){var h=ColorDialog.addRecentColor;ColorDialog.addRecentColor=function(a,c){h.apply(this,arguments);mxSettings.setRecentColors(ColorDialog.recentColors);mxSettings.save()};var m=ColorDialog.resetRecentColors;ColorDialog.resetRecentColors=function(){m.apply(this,arguments);mxSettings.setRecentColors(ColorDialog.recentColors); +function(a,b,d,f){void 0!==b?c.push(b.replace(/\\'/g,"'")):void 0!==d?c.push(d.replace(/\\"/g,'"')):void 0!==f&&c.push(f);return""});/,\s*$/.test(a)&&c.push("");return c};if(window.ColorDialog){var k=ColorDialog.addRecentColor;ColorDialog.addRecentColor=function(a,c){k.apply(this,arguments);mxSettings.setRecentColors(ColorDialog.recentColors);mxSettings.save()};var l=ColorDialog.resetRecentColors;ColorDialog.resetRecentColors=function(){l.apply(this,arguments);mxSettings.setRecentColors(ColorDialog.recentColors); mxSettings.save()}}window.EditDataDialog&&(EditDataDialog.getDisplayIdForCell=function(a,c){var b=null;null!=a.editor.graph.getModel().getParent(c)?b=c.getId():null!=a.currentPage&&(b=a.currentPage.getId());return b});if(null!=window.StyleFormatPanel){var p=Format.prototype.init;Format.prototype.init=function(){p.apply(this,arguments);this.editorUi.editor.addListener("fileLoaded",this.update)};var q=Format.prototype.refresh;Format.prototype.refresh=function(){null!=this.editorUi.getCurrentFile()|| "1"==urlParams.embed||this.editorUi.editor.chromeless?q.apply(this,arguments):this.clear()};DiagramFormatPanel.prototype.isShadowOptionVisible=function(){var a=this.editorUi.getCurrentFile();return"1"==urlParams.embed||null!=a&&a.isEditable()};DiagramFormatPanel.prototype.isMathOptionVisible=function(a){return!1};var u=DiagramFormatPanel.prototype.addView;DiagramFormatPanel.prototype.addView=function(a){a=u.apply(this,arguments);this.editorUi.getCurrentFile();if(mxClient.IS_SVG&&this.isShadowOptionVisible()){var c= this.editorUi,b=c.editor.graph,d=this.createOption(mxResources.get("shadow"),function(){return b.shadowVisible},function(a){var d=new ChangePageSetup(c);d.ignoreColor=!0;d.ignoreImage=!0;d.shadowVisible=a;b.model.execute(d)},{install:function(a){this.listener=function(){a(b.shadowVisible)};c.addListener("shadowVisibleChanged",this.listener)},destroy:function(){c.removeListener(this.listener)}});Editor.shadowOptionEnabled||(d.getElementsByTagName("input")[0].setAttribute("disabled","disabled"),mxUtils.setOpacity(d, @@ -2714,45 +2718,45 @@ stroke:"#008a00",font:"#ffffff"},{fill:"#1ba1e2",stroke:"#1ba1e2",font:"#ffffff" font:"#ffffff"},{fill:"#6d8764",stroke:"#6d8764",font:"#ffffff"},{fill:"#647687",stroke:"#647687",font:"#ffffff"},{fill:"#76608a",stroke:"#76608a",font:"#ffffff"},{fill:"#a0522d",stroke:"#a0522d",font:"#ffffff"}],[null,{fill:mxConstants.NONE,stroke:"#36393d"},{fill:"#fad7ac",stroke:"#b46504"},{fill:"#fad9d5",stroke:"#ae4132"},{fill:"#b0e3e6",stroke:"#0e8088"},{fill:"#b1ddf0",stroke:"#10739e"},{fill:"#d0cee2",stroke:"#56517e"},{fill:"#bac8d3",stroke:"#23445d"}],[null,{fill:"#f5f5f5",stroke:"#666666", gradient:"#b3b3b3"},{fill:"#dae8fc",stroke:"#6c8ebf",gradient:"#7ea6e0"},{fill:"#d5e8d4",stroke:"#82b366",gradient:"#97d077"},{fill:"#ffcd28",stroke:"#d79b00",gradient:"#ffa500"},{fill:"#fff2cc",stroke:"#d6b656",gradient:"#ffd966"},{fill:"#f8cecc",stroke:"#b85450",gradient:"#ea6b66"},{fill:"#e6d0de",stroke:"#996185",gradient:"#d5739d"}],[null,{fill:"#eeeeee",stroke:"#36393d"},{fill:"#f9f7ed",stroke:"#36393d"},{fill:"#ffcc99",stroke:"#36393d"},{fill:"#cce5ff",stroke:"#36393d"},{fill:"#ffff88",stroke:"#36393d"}, {fill:"#cdeb8b",stroke:"#36393d"},{fill:"#ffcccc",stroke:"#36393d"}]];StyleFormatPanel.prototype.customColorSchemes=null;StyleFormatPanel.prototype.findCommonProperties=function(a,c,b){if(null!=c){var d=function(a){if(null!=a)if(b)for(var d=0;d<a.length;d++)c[a[d].name]=a[d];else for(var f in c){for(var e=!1,d=0;d<a.length;d++)if(a[d].name==f&&a[d].type==c[f].type){e=!0;break}e||delete c[f]}},f=this.editorUi.editor.graph.view.getState(a);null!=f&&(f.shape.commonCustomPropAdded||(f.shape.commonCustomPropAdded= -!0,f.shape.customProperties=f.shape.customProperties||[],f.cell.vertex?Array.prototype.push.apply(f.shape.customProperties,Editor.commonVertexProperties):Array.prototype.push.apply(f.shape.customProperties,Editor.commonEdgeProperties)),d(f.shape.customProperties));a=a.getAttribute("customProperties");if(null!=a)try{d(JSON.parse(a))}catch(A){}}};var f=StyleFormatPanel.prototype.init;StyleFormatPanel.prototype.init=function(){var a=this.format.createSelectionState();"image"!=a.style.shape&&this.container.appendChild(this.addStyles(this.createPanel())); +!0,f.shape.customProperties=f.shape.customProperties||[],f.cell.vertex?Array.prototype.push.apply(f.shape.customProperties,Editor.commonVertexProperties):Array.prototype.push.apply(f.shape.customProperties,Editor.commonEdgeProperties)),d(f.shape.customProperties));a=a.getAttribute("customProperties");if(null!=a)try{d(JSON.parse(a))}catch(B){}}};var f=StyleFormatPanel.prototype.init;StyleFormatPanel.prototype.init=function(){var a=this.format.createSelectionState();"image"!=a.style.shape&&this.container.appendChild(this.addStyles(this.createPanel())); f.apply(this,arguments);if(Editor.enableCustomProperties){for(var c={},b=a.vertices,d=a.edges,e=0;e<b.length;e++)this.findCommonProperties(b[e],c,0==e);for(e=0;e<d.length;e++)this.findCommonProperties(d[e],c,0==b.length&&0==e);0<Object.getOwnPropertyNames(c).length&&this.container.appendChild(this.addProperties(this.createPanel(),c,a))}};var g=StyleFormatPanel.prototype.addStyleOps;StyleFormatPanel.prototype.addStyleOps=function(a){var c=mxUtils.button(mxResources.get("copyStyle"),mxUtils.bind(this, function(a){this.editorUi.actions.get("copyStyle").funct()}));c.setAttribute("title",mxResources.get("copyStyle")+" ("+this.editorUi.actions.get("copyStyle").shortcut+")");c.style.marginBottom="2px";c.style.width="100px";c.style.marginRight="2px";a.appendChild(c);c=mxUtils.button(mxResources.get("pasteStyle"),mxUtils.bind(this,function(a){this.editorUi.actions.get("pasteStyle").funct()}));c.setAttribute("title",mxResources.get("pasteStyle")+" ("+this.editorUi.actions.get("pasteStyle").shortcut+")"); -c.style.marginBottom="2px";c.style.width="100px";a.appendChild(c);mxUtils.br(a);return g.apply(this,arguments)};EditorUi.prototype.propertiesCollapsed=!0;StyleFormatPanel.prototype.addProperties=function(a,c,b){function d(a,c,b,d){t.getModel().beginUpdate();try{var f=[],e=[];if(null!=b.index){for(var g=[],k=b.parentRow.nextSibling;k&&k.getAttribute("data-pName")==a;)g.push(k.getAttribute("data-pValue")),k=k.nextSibling;b.index<g.length?null!=d?g.splice(d,1):g[b.index]=c:g.push(c);null!=b.size&&g.length> -b.size&&(g=g.slice(0,b.size));c=g.join(",");null!=b.countProperty&&(t.setCellStyles(b.countProperty,g.length,t.getSelectionCells()),f.push(b.countProperty),e.push(g.length))}t.setCellStyles(a,c,t.getSelectionCells());f.push(a);e.push(c);if(null!=b.dependentProps)for(a=0;a<b.dependentProps.length;a++){var l=b.dependentPropsDefVal[a],n=b.dependentPropsVals[a];if(n.length>c)n=n.slice(0,c);else for(var h=n.length;h<c;h++)n.push(l);n=n.join(",");t.setCellStyles(b.dependentProps[a],n,t.getSelectionCells()); -f.push(b.dependentProps[a]);e.push(n)}r.editorUi.fireEvent(new mxEventObject("styleChanged","keys",f,"values",e,"cells",t.getSelectionCells()))}finally{t.getModel().endUpdate()}}function f(c,b,d){var f=mxUtils.getOffset(a,!0),e=mxUtils.getOffset(c,!0);b.style.position="absolute";b.style.left=e.x-f.x+"px";b.style.top=e.y-f.y+"px";b.style.width=c.offsetWidth+"px";b.style.height=c.offsetHeight-(d?4:0)+"px";b.style.zIndex=5}function e(a,c,b){var f=document.createElement("div");f.style.width="32px";f.style.height= -"4px";f.style.margin="2px";f.style.border="1px solid black";f.style.background=c&&"none"!=c?c:"url('"+Dialog.prototype.noColorImage+"')";btn=mxUtils.button("",mxUtils.bind(r,function(e){this.editorUi.pickColor(c,function(c){f.style.background="none"==c?"url('"+Dialog.prototype.noColorImage+"')":c;d(a,c,b)});mxEvent.consume(e)}));btn.style.height="12px";btn.style.width="40px";btn.className="geColorBtn";btn.appendChild(f);return btn}function g(a,c,b,f,e,g,k){null!=c&&(c=c.split(","),h.push({name:a, -values:c,type:b,defVal:f,countProperty:e,parentRow:g,isDeletable:!0,flipBkg:k}));btn=mxUtils.button("+",mxUtils.bind(r,function(c){for(var l=g,r=0;null!=l.nextSibling;)if(l.nextSibling.getAttribute("data-pName")==a)l=l.nextSibling,r++;else break;var t={type:b,parentRow:g,index:r,isDeletable:!0,defVal:f,countProperty:e},r=n(a,"",t,0==r%2,k);d(a,f,t);l.parentNode.insertBefore(r,l.nextSibling);mxEvent.consume(c)}));btn.style.height="16px";btn.style.width="25px";btn.className="geColorBtn";return btn} -function k(a,c,b,d,f,e,g){if(0<f){var k=Array(f);c=null!=c?c.split(","):[];for(var l=0;l<f;l++)k[l]=null!=c[l]?c[l]:null!=d?d:"";h.push({name:a,values:k,type:b,defVal:d,parentRow:e,flipBkg:g,size:f})}return document.createElement("div")}function l(a,c,b){var f=document.createElement("input");f.type="checkbox";f.checked="1"==c;mxEvent.addListener(f,"change",function(){d(a,f.checked?"1":"0",b)});return f}function n(c,b,n,t,h){var v=n.dispName,w=n.type,y=document.createElement("tr");y.className="gePropRow"+ -(h?"Dark":"")+(t?"Alt":"")+" gePropNonHeaderRow";y.setAttribute("data-pName",c);y.setAttribute("data-pValue",b);t=!1;null!=n.index&&(y.setAttribute("data-index",n.index),v=(null!=v?v:"")+"["+n.index+"]",t=!0);var x=document.createElement("td");x.className="gePropRowCell";x.innerHTML=mxUtils.htmlEntities(mxResources.get(v,null,v));t&&(x.style.textAlign="right");y.appendChild(x);x=document.createElement("td");x.className="gePropRowCell";if("color"==w)x.appendChild(e(c,b,n));else if("bool"==w||"boolean"== -w)x.appendChild(l(c,b,n));else if("enum"==w){var m=n.enumList;for(h=0;h<m.length;h++)if(v=m[h],v.val==b){x.innerHTML=mxUtils.htmlEntities(mxResources.get(v.dispName,null,v.dispName));break}mxEvent.addListener(x,"click",mxUtils.bind(r,function(){var e=document.createElement("select");f(x,e);for(var g=0;g<m.length;g++){var k=m[g],l=document.createElement("option");l.value=mxUtils.htmlEntities(k.val);l.innerHTML=mxUtils.htmlEntities(mxResources.get(k.dispName,null,k.dispName));e.appendChild(l)}e.value= -b;a.appendChild(e);mxEvent.addListener(e,"change",function(){var a=mxUtils.htmlEntities(e.value);d(c,a,n)});e.focus();mxEvent.addListener(e,"blur",function(){a.removeChild(e)})}))}else"dynamicArr"==w?x.appendChild(g(c,b,n.subType,n.subDefVal,n.countProperty,y,h)):"staticArr"==w?x.appendChild(k(c,b,n.subType,n.subDefVal,n.size,y,h)):(x.innerHTML=b,mxEvent.addListener(x,"click",mxUtils.bind(r,function(){function e(){var a=g.value;null!=n.min&&a<n.min?a=n.min:null!=n.max&&a>n.max&&(a=n.max);a=mxUtils.htmlEntities(("int"== -w?parseInt(a):a)+"");d(c,a,n)}var g=document.createElement("input");f(x,g,!0);g.value=b;g.className="gePropEditor";if("int"==w||"float"==w)g.type="number",g.step="int"==w?"1":"any",null!=n.min&&(g.min=parseFloat(n.min)),null!=n.max&&(g.max=parseFloat(n.max));a.appendChild(g);mxEvent.addListener(g,"change",e);mxEvent.addListener(g,"keypress",function(a){13==a.keyCode&&e()});g.focus();mxEvent.addListener(g,"blur",function(){a.removeChild(g)})})));n.isDeletable&&(h=mxUtils.button("-",mxUtils.bind(r, -function(a){d(c,"",n,n.index);mxEvent.consume(a)})),h.style.height="16px",h.style.width="25px",h.style["float"]="right",h.className="geColorBtn",x.appendChild(h));y.appendChild(x);return y}var r=this,t=this.editorUi.editor.graph,h=[];a.style.position="relative";a.style.padding="0";var v=document.createElement("table");v.style.whiteSpace="nowrap";v.style.width="100%";var w=document.createElement("tr");w.className="gePropHeader";var y=document.createElement("th");y.className="gePropHeaderCell";var m= -document.createElement("img");m.src=Sidebar.prototype.expandedImage;y.appendChild(m);mxUtils.write(y,mxResources.get("property",null,"Property"));w.style.cursor="pointer";var p=function(){var c=v.querySelectorAll(".gePropNonHeaderRow"),b;if(r.editorUi.propertiesCollapsed){m.src=Sidebar.prototype.collapsedImage;b="none";for(var d=a.childNodes.length-1;0<=d;d--)try{var f=a.childNodes[d],e=f.nodeName.toUpperCase();"INPUT"!=e&&"SELECT"!=e||a.removeChild(f)}catch(aa){}}else m.src=Sidebar.prototype.expandedImage, -b="";for(d=0;d<c.length;d++)c[d].style.display=b};mxEvent.addListener(w,"click",function(){r.editorUi.propertiesCollapsed=!r.editorUi.propertiesCollapsed;p()});w.appendChild(y);y=document.createElement("th");y.className="gePropHeaderCell";y.innerHTML=mxResources.get("value",null,"Value");w.appendChild(y);v.appendChild(w);var B=!1,z=!1,q;for(q in c){var w=c[q],u=null!=b.style[q]?mxUtils.htmlEntities(b.style[q]+""):w.defVal;if("separator"==w.type)z=!z;else{if("staticArr"==w.type)w.size=parseInt(b.style[w.sizeProperty]|| -c[w.sizeProperty].defVal)||0;else if(null!=w.dependentProps){for(var S=w.dependentProps,M=[],N=[],y=0;y<S.length;y++){var T=b.style[S[y]];N.push(c[S[y]].subDefVal);M.push(null!=T?T.split(","):[])}w.dependentPropsDefVal=N;w.dependentPropsVals=M}v.appendChild(n(q,u,w,B,z));B=!B}}for(y=0;y<h.length;y++)for(w=h[y],c=w.parentRow,b=0;b<w.values.length;b++)q=n(w.name,w.values[b],{type:w.type,parentRow:w.parentRow,isDeletable:w.isDeletable,index:b,defVal:w.defVal,countProperty:w.countProperty,size:w.size}, -0==b%2,w.flipBkg),c.parentNode.insertBefore(q,c.nextSibling),c=q;a.appendChild(v);p();return a};StyleFormatPanel.prototype.addStyles=function(a){function c(a){function c(a){var c=mxUtils.button("",function(c){d.getModel().beginUpdate();try{var b=d.getSelectionCells();for(c=0;c<b.length;c++){for(var f=d.getModel().getStyle(b[c]),g=0;g<e.length;g++)f=mxUtils.removeStylename(f,e[g]);var k=d.getModel().isVertex(b[c])?d.defaultVertexStyle:d.defaultEdgeStyle;null!=a?(f=mxUtils.setStyle(f,mxConstants.STYLE_FILLCOLOR, -a.fill||mxUtils.getValue(k,mxConstants.STYLE_FILLCOLOR,null)),f=mxUtils.setStyle(f,mxConstants.STYLE_STROKECOLOR,a.stroke||mxUtils.getValue(k,mxConstants.STYLE_STROKECOLOR,null)),f=mxUtils.setStyle(f,mxConstants.STYLE_GRADIENTCOLOR,a.gradient||mxUtils.getValue(k,mxConstants.STYLE_GRADIENTCOLOR,null)),d.getModel().isVertex(b[c])&&(f=mxUtils.setStyle(f,mxConstants.STYLE_FONTCOLOR,a.font||mxUtils.getValue(k,mxConstants.STYLE_FONTCOLOR,null)))):(f=mxUtils.setStyle(f,mxConstants.STYLE_FILLCOLOR,mxUtils.getValue(k, -mxConstants.STYLE_FILLCOLOR,"#ffffff")),f=mxUtils.setStyle(f,mxConstants.STYLE_STROKECOLOR,mxUtils.getValue(k,mxConstants.STYLE_STROKECOLOR,"#000000")),f=mxUtils.setStyle(f,mxConstants.STYLE_GRADIENTCOLOR,mxUtils.getValue(k,mxConstants.STYLE_GRADIENTCOLOR,null)),d.getModel().isVertex(b[c])&&(f=mxUtils.setStyle(f,mxConstants.STYLE_FONTCOLOR,mxUtils.getValue(k,mxConstants.STYLE_FONTCOLOR,null))));d.getModel().setStyle(b[c],f)}}finally{d.getModel().endUpdate()}});c.className="geStyleButton";c.style.width= -"36px";c.style.height="30px";c.style.margin="0px 6px 6px 0px";if(null!=a)null!=a.gradient?mxClient.IS_IE&&(mxClient.IS_QUIRKS||10>document.documentMode)?c.style.filter="progid:DXImageTransform.Microsoft.Gradient(StartColorStr='"+a.fill+"', EndColorStr='"+a.gradient+"', GradientType=0)":c.style.backgroundImage="linear-gradient("+a.fill+" 0px,"+a.gradient+" 100%)":a.fill==mxConstants.NONE?c.style.background="url('"+Dialog.prototype.noColorImage+"')":c.style.backgroundColor=a.fill||mxUtils.getValue(d.defaultVertexStyle, -mxConstants.STYLE_FILLCOLOR,"#ffffff"),c.style.border="1px solid "+(a.stroke||mxUtils.getValue(d.defaultVertexStyle,mxConstants.STYLE_STROKECOLOR,"#000000"));else{var b=mxUtils.getValue(d.defaultVertexStyle,mxConstants.STYLE_FILLCOLOR,"#ffffff"),g=mxUtils.getValue(d.defaultVertexStyle,mxConstants.STYLE_STROKECOLOR,"#000000");c.style.backgroundColor=b;c.style.border="1px solid "+g}f.appendChild(c)}f.innerHTML="";for(var b=0;b<a.length;b++)0<b&&0==mxUtils.mod(b,4)&&mxUtils.br(f),c(a[b])}function b(a){mxEvent.addListener(a, -"mouseenter",function(){a.style.opacity="1"});mxEvent.addListener(a,"mouseleave",function(){a.style.opacity="0.5"})}var d=this.editorUi.editor.graph,f=document.createElement("div");f.style.whiteSpace="nowrap";f.style.paddingLeft="24px";f.style.paddingRight="20px";a.style.paddingLeft="16px";a.style.paddingBottom="6px";a.style.position="relative";a.appendChild(f);var e="plain-gray plain-blue plain-green plain-turquoise plain-orange plain-yellow plain-red plain-pink plain-purple gray blue green turquoise orange yellow red pink purple".split(" "); -null==this.editorUi.currentScheme&&(this.editorUi.currentScheme=0);var g=document.createElement("div");g.style.cssText="position:absolute;left:10px;top:8px;bottom:8px;width:20px;margin:4px;opacity:0.5;background-repeat:no-repeat;background-position:center center;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAQBAMAAADQT4M0AAAAIVBMVEUAAAB2dnZ4eHh3d3d1dXVxcXF2dnZ2dnZ2dnZxcXF2dnYmb3w1AAAACnRSTlMAfCTkhhvb7cQSPH2JPgAAADRJREFUCNdjwACMAmBKaiGYs2oJmLPKAZ3DabU8AMRTXpUKopislqFyVzCAuUZgikkBZjoAcMYLnp53P/UAAAAASUVORK5CYII=);"; -mxEvent.addListener(g,"click",mxUtils.bind(this,function(){this.editorUi.currentScheme=mxUtils.mod(this.editorUi.currentScheme-1,this.defaultColorSchemes.length);c(this.defaultColorSchemes[this.editorUi.currentScheme])}));var k=document.createElement("div");k.style.cssText="position:absolute;left:202px;top:8px;bottom:8px;width:20px;margin:4px;opacity:0.5;background-repeat:no-repeat;background-position:center center;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAQBAMAAADQT4M0AAAAIVBMVEUAAAB2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnYBuwCcAAAACnRSTlMAfCTkhhvb7cQSPH2JPgAAADZJREFUCNdjQAOMAmBKaiGY8loF5rKswsZlrVo8AUiFrTICcbIWK8A5DF1gDoMymMPApIAwHwCS0Qx/U7qCBQAAAABJRU5ErkJggg==);"; -1<this.defaultColorSchemes.length&&(a.appendChild(g),a.appendChild(k));mxEvent.addListener(k,"click",mxUtils.bind(this,function(){this.editorUi.currentScheme=mxUtils.mod(this.editorUi.currentScheme+1,this.defaultColorSchemes.length);c(this.defaultColorSchemes[this.editorUi.currentScheme])}));b(g);b(k);c(this.defaultColorSchemes[this.editorUi.currentScheme]);return a};StyleFormatPanel.prototype.addEditOps=function(a){var c=this.format.getSelectionState(),b=null;1==this.editorUi.editor.graph.getSelectionCount()&& +c.style.marginBottom="2px";c.style.width="100px";a.appendChild(c);mxUtils.br(a);return g.apply(this,arguments)};EditorUi.prototype.propertiesCollapsed=!0;StyleFormatPanel.prototype.addProperties=function(a,c,b){function d(a,c,b,d){t.getModel().beginUpdate();try{var f=[],e=[];if(null!=b.index){for(var g=[],h=b.parentRow.nextSibling;h&&h.getAttribute("data-pName")==a;)g.push(h.getAttribute("data-pValue")),h=h.nextSibling;b.index<g.length?null!=d?g.splice(d,1):g[b.index]=c:g.push(c);null!=b.size&&g.length> +b.size&&(g=g.slice(0,b.size));c=g.join(",");null!=b.countProperty&&(t.setCellStyles(b.countProperty,g.length,t.getSelectionCells()),f.push(b.countProperty),e.push(g.length))}t.setCellStyles(a,c,t.getSelectionCells());f.push(a);e.push(c);if(null!=b.dependentProps)for(a=0;a<b.dependentProps.length;a++){var n=b.dependentPropsDefVal[a],m=b.dependentPropsVals[a];if(m.length>c)m=m.slice(0,c);else for(var k=m.length;k<c;k++)m.push(n);m=m.join(",");t.setCellStyles(b.dependentProps[a],m,t.getSelectionCells()); +f.push(b.dependentProps[a]);e.push(m)}r.editorUi.fireEvent(new mxEventObject("styleChanged","keys",f,"values",e,"cells",t.getSelectionCells()))}finally{t.getModel().endUpdate()}}function f(c,b,d){var f=mxUtils.getOffset(a,!0),e=mxUtils.getOffset(c,!0);b.style.position="absolute";b.style.left=e.x-f.x+"px";b.style.top=e.y-f.y+"px";b.style.width=c.offsetWidth+"px";b.style.height=c.offsetHeight-(d?4:0)+"px";b.style.zIndex=5}function e(a,c,b){var f=document.createElement("div");f.style.width="32px";f.style.height= +"4px";f.style.margin="2px";f.style.border="1px solid black";f.style.background=c&&"none"!=c?c:"url('"+Dialog.prototype.noColorImage+"')";btn=mxUtils.button("",mxUtils.bind(r,function(e){this.editorUi.pickColor(c,function(c){f.style.background="none"==c?"url('"+Dialog.prototype.noColorImage+"')":c;d(a,c,b)});mxEvent.consume(e)}));btn.style.height="12px";btn.style.width="40px";btn.className="geColorBtn";btn.appendChild(f);return btn}function g(a,c,b,f,e,g,h){null!=c&&(c=c.split(","),k.push({name:a, +values:c,type:b,defVal:f,countProperty:e,parentRow:g,isDeletable:!0,flipBkg:h}));btn=mxUtils.button("+",mxUtils.bind(r,function(c){for(var n=g,r=0;null!=n.nextSibling;)if(n.nextSibling.getAttribute("data-pName")==a)n=n.nextSibling,r++;else break;var t={type:b,parentRow:g,index:r,isDeletable:!0,defVal:f,countProperty:e},r=m(a,"",t,0==r%2,h);d(a,f,t);n.parentNode.insertBefore(r,n.nextSibling);mxEvent.consume(c)}));btn.style.height="16px";btn.style.width="25px";btn.className="geColorBtn";return btn} +function h(a,c,b,d,f,e,g){if(0<f){var h=Array(f);c=null!=c?c.split(","):[];for(var n=0;n<f;n++)h[n]=null!=c[n]?c[n]:null!=d?d:"";k.push({name:a,values:h,type:b,defVal:d,parentRow:e,flipBkg:g,size:f})}return document.createElement("div")}function n(a,c,b){var f=document.createElement("input");f.type="checkbox";f.checked="1"==c;mxEvent.addListener(f,"change",function(){d(a,f.checked?"1":"0",b)});return f}function m(c,b,m,t,k){var v=m.dispName,w=m.type,y=document.createElement("tr");y.className="gePropRow"+ +(k?"Dark":"")+(t?"Alt":"")+" gePropNonHeaderRow";y.setAttribute("data-pName",c);y.setAttribute("data-pValue",b);t=!1;null!=m.index&&(y.setAttribute("data-index",m.index),v=(null!=v?v:"")+"["+m.index+"]",t=!0);var x=document.createElement("td");x.className="gePropRowCell";x.innerHTML=mxUtils.htmlEntities(mxResources.get(v,null,v));t&&(x.style.textAlign="right");y.appendChild(x);x=document.createElement("td");x.className="gePropRowCell";if("color"==w)x.appendChild(e(c,b,m));else if("bool"==w||"boolean"== +w)x.appendChild(n(c,b,m));else if("enum"==w){var l=m.enumList;for(k=0;k<l.length;k++)if(v=l[k],v.val==b){x.innerHTML=mxUtils.htmlEntities(mxResources.get(v.dispName,null,v.dispName));break}mxEvent.addListener(x,"click",mxUtils.bind(r,function(){var e=document.createElement("select");f(x,e);for(var g=0;g<l.length;g++){var h=l[g],n=document.createElement("option");n.value=mxUtils.htmlEntities(h.val);n.innerHTML=mxUtils.htmlEntities(mxResources.get(h.dispName,null,h.dispName));e.appendChild(n)}e.value= +b;a.appendChild(e);mxEvent.addListener(e,"change",function(){var a=mxUtils.htmlEntities(e.value);d(c,a,m)});e.focus();mxEvent.addListener(e,"blur",function(){a.removeChild(e)})}))}else"dynamicArr"==w?x.appendChild(g(c,b,m.subType,m.subDefVal,m.countProperty,y,k)):"staticArr"==w?x.appendChild(h(c,b,m.subType,m.subDefVal,m.size,y,k)):(x.innerHTML=b,mxEvent.addListener(x,"click",mxUtils.bind(r,function(){function e(){var a=g.value,a=0==a.length&&"string"!=w?0:a;m.allowAuto&&("auto"==a.trim().toLowerCase()? +(a="auto",w="string"):(a=parseFloat(a),a=isNaN(a)?0:a));null!=m.min&&a<m.min?a=m.min:null!=m.max&&a>m.max&&(a=m.max);a=mxUtils.htmlEntities(("int"==w?parseInt(a):a)+"");d(c,a,m)}var g=document.createElement("input");f(x,g,!0);g.value=b;g.className="gePropEditor";"int"!=w&&"float"!=w||m.allowAuto||(g.type="number",g.step="int"==w?"1":"any",null!=m.min&&(g.min=parseFloat(m.min)),null!=m.max&&(g.max=parseFloat(m.max)));a.appendChild(g);mxEvent.addListener(g,"change",e);mxEvent.addListener(g,"keypress", +function(a){13==a.keyCode&&e()});g.focus();mxEvent.addListener(g,"blur",function(){a.removeChild(g)})})));m.isDeletable&&(k=mxUtils.button("-",mxUtils.bind(r,function(a){d(c,"",m,m.index);mxEvent.consume(a)})),k.style.height="16px",k.style.width="25px",k.style["float"]="right",k.className="geColorBtn",x.appendChild(k));y.appendChild(x);return y}var r=this,t=this.editorUi.editor.graph,k=[];a.style.position="relative";a.style.padding="0";var v=document.createElement("table");v.style.whiteSpace="nowrap"; +v.style.width="100%";var w=document.createElement("tr");w.className="gePropHeader";var y=document.createElement("th");y.className="gePropHeaderCell";var l=document.createElement("img");l.src=Sidebar.prototype.expandedImage;y.appendChild(l);mxUtils.write(y,mxResources.get("property",null,"Property"));w.style.cursor="pointer";var p=function(){var c=v.querySelectorAll(".gePropNonHeaderRow"),b;if(r.editorUi.propertiesCollapsed){l.src=Sidebar.prototype.collapsedImage;b="none";for(var d=a.childNodes.length- +1;0<=d;d--)try{var f=a.childNodes[d],e=f.nodeName.toUpperCase();"INPUT"!=e&&"SELECT"!=e||a.removeChild(f)}catch(aa){}}else l.src=Sidebar.prototype.expandedImage,b="";for(d=0;d<c.length;d++)c[d].style.display=b};mxEvent.addListener(w,"click",function(){r.editorUi.propertiesCollapsed=!r.editorUi.propertiesCollapsed;p()});w.appendChild(y);y=document.createElement("th");y.className="gePropHeaderCell";y.innerHTML=mxResources.get("value",null,"Value");w.appendChild(y);v.appendChild(w);var A=!1,z=!1,q;for(q in c){var w= +c[q],u=null!=b.style[q]?mxUtils.htmlEntities(b.style[q]+""):w.defVal;if("separator"==w.type)z=!z;else{if("staticArr"==w.type)w.size=parseInt(b.style[w.sizeProperty]||c[w.sizeProperty].defVal)||0;else if(null!=w.dependentProps){for(var S=w.dependentProps,M=[],N=[],y=0;y<S.length;y++){var T=b.style[S[y]];N.push(c[S[y]].subDefVal);M.push(null!=T?T.split(","):[])}w.dependentPropsDefVal=N;w.dependentPropsVals=M}v.appendChild(m(q,u,w,A,z));A=!A}}for(y=0;y<k.length;y++)for(w=k[y],c=w.parentRow,b=0;b<w.values.length;b++)q= +m(w.name,w.values[b],{type:w.type,parentRow:w.parentRow,isDeletable:w.isDeletable,index:b,defVal:w.defVal,countProperty:w.countProperty,size:w.size},0==b%2,w.flipBkg),c.parentNode.insertBefore(q,c.nextSibling),c=q;a.appendChild(v);p();return a};StyleFormatPanel.prototype.addStyles=function(a){function c(a){function c(a){var c=mxUtils.button("",function(c){d.getModel().beginUpdate();try{var b=d.getSelectionCells();for(c=0;c<b.length;c++){for(var f=d.getModel().getStyle(b[c]),g=0;g<e.length;g++)f=mxUtils.removeStylename(f, +e[g]);var h=d.getModel().isVertex(b[c])?d.defaultVertexStyle:d.defaultEdgeStyle;null!=a?(f=mxUtils.setStyle(f,mxConstants.STYLE_FILLCOLOR,a.fill||mxUtils.getValue(h,mxConstants.STYLE_FILLCOLOR,null)),f=mxUtils.setStyle(f,mxConstants.STYLE_STROKECOLOR,a.stroke||mxUtils.getValue(h,mxConstants.STYLE_STROKECOLOR,null)),f=mxUtils.setStyle(f,mxConstants.STYLE_GRADIENTCOLOR,a.gradient||mxUtils.getValue(h,mxConstants.STYLE_GRADIENTCOLOR,null)),d.getModel().isVertex(b[c])&&(f=mxUtils.setStyle(f,mxConstants.STYLE_FONTCOLOR, +a.font||mxUtils.getValue(h,mxConstants.STYLE_FONTCOLOR,null)))):(f=mxUtils.setStyle(f,mxConstants.STYLE_FILLCOLOR,mxUtils.getValue(h,mxConstants.STYLE_FILLCOLOR,"#ffffff")),f=mxUtils.setStyle(f,mxConstants.STYLE_STROKECOLOR,mxUtils.getValue(h,mxConstants.STYLE_STROKECOLOR,"#000000")),f=mxUtils.setStyle(f,mxConstants.STYLE_GRADIENTCOLOR,mxUtils.getValue(h,mxConstants.STYLE_GRADIENTCOLOR,null)),d.getModel().isVertex(b[c])&&(f=mxUtils.setStyle(f,mxConstants.STYLE_FONTCOLOR,mxUtils.getValue(h,mxConstants.STYLE_FONTCOLOR, +null))));d.getModel().setStyle(b[c],f)}}finally{d.getModel().endUpdate()}});c.className="geStyleButton";c.style.width="36px";c.style.height="30px";c.style.margin="0px 6px 6px 0px";if(null!=a)null!=a.gradient?mxClient.IS_IE&&(mxClient.IS_QUIRKS||10>document.documentMode)?c.style.filter="progid:DXImageTransform.Microsoft.Gradient(StartColorStr='"+a.fill+"', EndColorStr='"+a.gradient+"', GradientType=0)":c.style.backgroundImage="linear-gradient("+a.fill+" 0px,"+a.gradient+" 100%)":a.fill==mxConstants.NONE? +c.style.background="url('"+Dialog.prototype.noColorImage+"')":c.style.backgroundColor=a.fill||mxUtils.getValue(d.defaultVertexStyle,mxConstants.STYLE_FILLCOLOR,"#ffffff"),c.style.border="1px solid "+(a.stroke||mxUtils.getValue(d.defaultVertexStyle,mxConstants.STYLE_STROKECOLOR,"#000000"));else{var b=mxUtils.getValue(d.defaultVertexStyle,mxConstants.STYLE_FILLCOLOR,"#ffffff"),g=mxUtils.getValue(d.defaultVertexStyle,mxConstants.STYLE_STROKECOLOR,"#000000");c.style.backgroundColor=b;c.style.border="1px solid "+ +g}f.appendChild(c)}f.innerHTML="";for(var b=0;b<a.length;b++)0<b&&0==mxUtils.mod(b,4)&&mxUtils.br(f),c(a[b])}function b(a){mxEvent.addListener(a,"mouseenter",function(){a.style.opacity="1"});mxEvent.addListener(a,"mouseleave",function(){a.style.opacity="0.5"})}var d=this.editorUi.editor.graph,f=document.createElement("div");f.style.whiteSpace="nowrap";f.style.paddingLeft="24px";f.style.paddingRight="20px";a.style.paddingLeft="16px";a.style.paddingBottom="6px";a.style.position="relative";a.appendChild(f); +var e="plain-gray plain-blue plain-green plain-turquoise plain-orange plain-yellow plain-red plain-pink plain-purple gray blue green turquoise orange yellow red pink purple".split(" ");null==this.editorUi.currentScheme&&(this.editorUi.currentScheme=0);var g=document.createElement("div");g.style.cssText="position:absolute;left:10px;top:8px;bottom:8px;width:20px;margin:4px;opacity:0.5;background-repeat:no-repeat;background-position:center center;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAQBAMAAADQT4M0AAAAIVBMVEUAAAB2dnZ4eHh3d3d1dXVxcXF2dnZ2dnZ2dnZxcXF2dnYmb3w1AAAACnRSTlMAfCTkhhvb7cQSPH2JPgAAADRJREFUCNdjwACMAmBKaiGYs2oJmLPKAZ3DabU8AMRTXpUKopislqFyVzCAuUZgikkBZjoAcMYLnp53P/UAAAAASUVORK5CYII=);"; +mxEvent.addListener(g,"click",mxUtils.bind(this,function(){this.editorUi.currentScheme=mxUtils.mod(this.editorUi.currentScheme-1,this.defaultColorSchemes.length);c(this.defaultColorSchemes[this.editorUi.currentScheme])}));var h=document.createElement("div");h.style.cssText="position:absolute;left:202px;top:8px;bottom:8px;width:20px;margin:4px;opacity:0.5;background-repeat:no-repeat;background-position:center center;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAQBAMAAADQT4M0AAAAIVBMVEUAAAB2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnYBuwCcAAAACnRSTlMAfCTkhhvb7cQSPH2JPgAAADZJREFUCNdjQAOMAmBKaiGY8loF5rKswsZlrVo8AUiFrTICcbIWK8A5DF1gDoMymMPApIAwHwCS0Qx/U7qCBQAAAABJRU5ErkJggg==);"; +1<this.defaultColorSchemes.length&&(a.appendChild(g),a.appendChild(h));mxEvent.addListener(h,"click",mxUtils.bind(this,function(){this.editorUi.currentScheme=mxUtils.mod(this.editorUi.currentScheme+1,this.defaultColorSchemes.length);c(this.defaultColorSchemes[this.editorUi.currentScheme])}));b(g);b(h);c(this.defaultColorSchemes[this.editorUi.currentScheme]);return a};StyleFormatPanel.prototype.addEditOps=function(a){var c=this.format.getSelectionState(),b=null;1==this.editorUi.editor.graph.getSelectionCount()&& (b=mxUtils.button(mxResources.get("editStyle"),mxUtils.bind(this,function(a){this.editorUi.actions.get("editStyle").funct()})),b.setAttribute("title",mxResources.get("editStyle")+" ("+this.editorUi.actions.get("editStyle").shortcut+")"),b.style.width="202px",b.style.marginBottom="2px",a.appendChild(b));var d=this.editorUi.editor.graph,f=d.view.getState(d.getSelectionCell());1==d.getSelectionCount()&&null!=f&&null!=f.shape&&null!=f.shape.stencil?(c=mxUtils.button(mxResources.get("editShape"),mxUtils.bind(this, function(a){this.editorUi.actions.get("editShape").funct()})),c.setAttribute("title",mxResources.get("editShape")),c.style.marginBottom="2px",null==b?c.style.width="202px":(b.style.width="100px",c.style.width="100px",c.style.marginLeft="2px"),a.appendChild(c)):c.image&&(c=mxUtils.button(mxResources.get("editImage"),mxUtils.bind(this,function(a){this.editorUi.actions.get("image").funct()})),c.setAttribute("title",mxResources.get("editImage")),c.style.marginBottom="2px",null==b?c.style.width="202px": (b.style.width="100px",c.style.width="100px",c.style.marginLeft="2px"),a.appendChild(c));return a}}Graph.prototype.defaultThemeName="default-style2";Graph.prototype.lastPasteXml=null;Graph.prototype.pasteCounter=0;Graph.prototype.defaultScrollbars="0"!=urlParams.sb;Graph.prototype.defaultPageVisible="0"!=urlParams.pv;Graph.prototype.shadowId="dropShadow";Graph.prototype.svgShadowColor="#3D4574";Graph.prototype.svgShadowOpacity="0.4";Graph.prototype.svgShadowBlur="1.7";Graph.prototype.svgShadowSize= -"3";Graph.prototype.edgeMode="move"!=urlParams.edge;var k=Graph.prototype.init;Graph.prototype.init=function(){function a(a){c=a;if(mxClient.IS_QUIRKS||7==document.documentMode||8==document.documentMode)c=mxUtils.clone(a)}k.apply(this,arguments);var c=null;mxEvent.addListener(this.container,"mouseenter",a);mxEvent.addListener(this.container,"mousemove",a);mxEvent.addListener(this.container,"mouseleave",function(a){c=null});this.isMouseInsertPoint=function(){return null!=c};var b=this.getInsertPoint; +"3";Graph.prototype.edgeMode="move"!=urlParams.edge;var n=Graph.prototype.init;Graph.prototype.init=function(){function a(a){c=a;if(mxClient.IS_QUIRKS||7==document.documentMode||8==document.documentMode)c=mxUtils.clone(a)}n.apply(this,arguments);var c=null;mxEvent.addListener(this.container,"mouseenter",a);mxEvent.addListener(this.container,"mousemove",a);mxEvent.addListener(this.container,"mouseleave",function(a){c=null});this.isMouseInsertPoint=function(){return null!=c};var b=this.getInsertPoint; this.getInsertPoint=function(){return null!=c?this.getPointForEvent(c):b.apply(this,arguments)};var d=this.layoutManager.getLayout;this.layoutManager.getLayout=function(a){var c=this.graph.view.getState(a),c=null!=c?c.style:this.graph.getCellStyle(a);if("undefined"!=typeof mxRackContainer&&"rack"==c.childLayout){var b=new mxStackLayout(this.graph,!1);b.setChildGeometry=function(a,c){c.height=Math.max(c.height,20);if(1<c.height/20){var b=c.height%20;c.height+=10<b?20-b:-b}this.graph.getModel().setGeometry(a, -c)};b.fill=!0;b.unitSize=mxRackContainer.unitSize|20;b.marginLeft=c.marginLeft||0;b.marginRight=c.marginRight||0;b.marginTop=c.marginTop||0;b.marginBottom=c.marginBottom||0;b.resizeParent=!1;return b}return d.apply(this,arguments)}};var r=Graph.prototype.isCssTransformsSupported;Graph.prototype.isCssTransformsSupported=function(){return r.apply(this,arguments)&&!mxClient.IS_SF};var l=Graph.prototype.getGlobalVariable;Graph.prototype.getGlobalVariable=function(a){var c=l.apply(this,arguments);if(null== -c){if(null==this.globalUrlVars&&null!=urlParams.vars)try{this.globalUrlVars=JSON.parse(decodeURIComponent(urlParams.vars))}catch(z){null!=window.console&&console.log("Error in vars URL parameter: "+z)}null!=this.globalUrlVars&&(c=this.globalUrlVars[a])}return c};var n=mxGraphView.prototype.validateBackgroundPage;mxGraphView.prototype.validateBackgroundPage=function(){n.apply(this,arguments);if(mxClient.IS_GC&&null!=this.getDrawPane()){var a=this.getDrawPane().parentNode;!this.graph.mathEnabled||mxClient.NO_FO|| +c)};b.fill=!0;b.unitSize=mxRackContainer.unitSize|20;b.marginLeft=c.marginLeft||0;b.marginRight=c.marginRight||0;b.marginTop=c.marginTop||0;b.marginBottom=c.marginBottom||0;b.resizeParent=!1;return b}return d.apply(this,arguments)}};var r=Graph.prototype.isCssTransformsSupported;Graph.prototype.isCssTransformsSupported=function(){return r.apply(this,arguments)&&!mxClient.IS_SF};var h=Graph.prototype.getGlobalVariable;Graph.prototype.getGlobalVariable=function(a){var c=h.apply(this,arguments);if(null== +c){if(null==this.globalUrlVars&&null!=urlParams.vars)try{this.globalUrlVars=JSON.parse(decodeURIComponent(urlParams.vars))}catch(z){null!=window.console&&console.log("Error in vars URL parameter: "+z)}null!=this.globalUrlVars&&(c=this.globalUrlVars[a])}return c};var m=mxGraphView.prototype.validateBackgroundPage;mxGraphView.prototype.validateBackgroundPage=function(){m.apply(this,arguments);if(mxClient.IS_GC&&null!=this.getDrawPane()){var a=this.getDrawPane().parentNode;!this.graph.mathEnabled||mxClient.NO_FO|| null!=this.webKitForceRepaintNode&&null!=this.webKitForceRepaintNode.parentNode||"svg"!=this.graph.container.firstChild.nodeName?null==this.webKitForceRepaintNode||this.graph.mathEnabled&&("svg"==this.graph.container.firstChild.nodeName||this.graph.container.firstChild==this.webKitForceRepaintNode)||(null!=this.webKitForceRepaintNode.parentNode&&this.webKitForceRepaintNode.parentNode.removeChild(this.webKitForceRepaintNode),this.webKitForceRepaintNode=null):(this.webKitForceRepaintNode=document.createElement("div"), this.webKitForceRepaintNode.style.cssText="position:absolute;",a.ownerSVGElement.parentNode.insertBefore(this.webKitForceRepaintNode,a.ownerSVGElement))}};var w=Graph.prototype.loadStylesheet;Graph.prototype.loadStylesheet=function(){w.apply(this,arguments);this.currentStyle="default-style2"};Graph.prototype.handleCustomLink=function(a){if("data:action/json,"==a.substring(0,17)&&(a=JSON.parse(a.substring(17)),null!=a.actions)){for(var c=0;c<a.actions.length;c++)if(null!=a.actions[c].open)if(this.isCustomLink(a.actions[c].open)){if(!this.customLinkClicked(a.actions[c].open))return}else this.openLink(a.actions[c].open); this.model.beginUpdate();try{for(c=0;c<a.actions.length;c++)this.handleLinkAction(a.actions[c])}finally{this.model.endUpdate()}}};Graph.prototype.handleLinkAction=function(a){var c=[];null!=a.select&&this.isEnabled()&&(c=this.getCellsForAction(a.select),this.setSelectionCells(c));null!=a.highlight&&(c=this.getCellsForAction(a.highlight),this.highlightCells(c,a.highlight.color,a.highlight.duration,a.highlight.opacity));null!=a.toggle&&this.toggleCells(this.getCellsForAction(a.toggle));null!=a.show&& this.setCellsVisible(this.getCellsForAction(a.show),!0);null!=a.hide&&this.setCellsVisible(this.getCellsForAction(a.hide),!1);null!=a.scroll&&(c=this.getCellsForAction(a.scroll));0<c.length&&this.scrollCellToVisible(c[0])};Graph.prototype.getCellsForAction=function(a){return this.getCellsById(a.cells).concat(this.getCellsForTags(a.tags))};Graph.prototype.getCellsById=function(a){var c=[];if(null!=a)for(var b=0;b<a.length;b++)if("*"==a[b])var d=this.getDefaultParent(),c=c.concat(this.model.filterDescendants(function(a){return a!= -d},d));else{var f=this.model.getCell(a[b]);null!=f&&c.push(f)}return c};Graph.prototype.getCellsForTags=function(a,c,b){var d=[];if(null!=a){c=null!=c?c:this.model.getDescendants(this.model.getRoot());b=null!=b?b:"tags";for(var f=0;f<c.length;f++)if(this.model.isVertex(c[f])||this.model.isEdge(c[f])){var e=null!=c[f].value&&"object"==typeof c[f].value?mxUtils.trim(c[f].value.getAttribute(b)||""):"",g=!0;if(0<e.length)for(var e=e.toLowerCase().split(" "),k=0;k<a.length&&g;k++)var l=mxUtils.trim(a[k]).toLowerCase(), -g=g&&(0==l.length||0<=mxUtils.indexOf(e,l));else g=0==a.length;g&&d.push(c[f])}}return d};Graph.prototype.toggleCells=function(a){this.model.beginUpdate();try{for(var c=0;c<a.length;c++)this.model.setVisible(a[c],!this.model.isVisible(a[c]))}finally{this.model.endUpdate()}};Graph.prototype.setCellsVisible=function(a,c){this.model.beginUpdate();try{for(var b=0;b<a.length;b++)this.model.setVisible(a[b],c)}finally{this.model.endUpdate()}};Graph.prototype.highlightCells=function(a,c,b,d){for(var f=0;f< +d},d));else{var f=this.model.getCell(a[b]);null!=f&&c.push(f)}return c};Graph.prototype.getCellsForTags=function(a,c,b){var d=[];if(null!=a){c=null!=c?c:this.model.getDescendants(this.model.getRoot());b=null!=b?b:"tags";for(var f=0;f<c.length;f++)if(this.model.isVertex(c[f])||this.model.isEdge(c[f])){var e=null!=c[f].value&&"object"==typeof c[f].value?mxUtils.trim(c[f].value.getAttribute(b)||""):"",g=!0;if(0<e.length)for(var e=e.toLowerCase().split(" "),h=0;h<a.length&&g;h++)var n=mxUtils.trim(a[h]).toLowerCase(), +g=g&&(0==n.length||0<=mxUtils.indexOf(e,n));else g=0==a.length;g&&d.push(c[f])}}return d};Graph.prototype.toggleCells=function(a){this.model.beginUpdate();try{for(var c=0;c<a.length;c++)this.model.setVisible(a[c],!this.model.isVisible(a[c]))}finally{this.model.endUpdate()}};Graph.prototype.setCellsVisible=function(a,c){this.model.beginUpdate();try{for(var b=0;b<a.length;b++)this.model.setVisible(a[b],c)}finally{this.model.endUpdate()}};Graph.prototype.highlightCells=function(a,c,b,d){for(var f=0;f< a.length;f++)this.highlightCell(a[f],c,b,d)};Graph.prototype.highlightCell=function(a,c,b,d){c=null!=c?c:mxConstants.DEFAULT_VALID_COLOR;b=null!=b?b:1E3;a=this.view.getState(a);if(null!=a){var f=Math.max(5,mxUtils.getValue(a.style,mxConstants.STYLE_STROKEWIDTH,1)+4),e=new mxCellHighlight(this,c,f,!1);null!=d&&(e.opacity=d);e.highlight(a);window.setTimeout(function(){null!=e.shape&&(mxUtils.setPrefixedStyle(e.shape.node.style,"transition","all 1200ms ease-in-out"),e.shape.node.style.opacity=0);window.setTimeout(function(){e.destroy()}, 1200)},b)}};Graph.prototype.addSvgShadow=function(a,c,b){b=null!=b?b:!1;var d=a.ownerDocument,f=null!=d.createElementNS?d.createElementNS(mxConstants.NS_SVG,"filter"):d.createElement("filter");f.setAttribute("id",this.shadowId);var e=null!=d.createElementNS?d.createElementNS(mxConstants.NS_SVG,"feGaussianBlur"):d.createElement("feGaussianBlur");e.setAttribute("in","SourceAlpha");e.setAttribute("stdDeviation",this.svgShadowBlur);e.setAttribute("result","blur");f.appendChild(e);e=null!=d.createElementNS? d.createElementNS(mxConstants.NS_SVG,"feOffset"):d.createElement("feOffset");e.setAttribute("in","blur");e.setAttribute("dx",this.svgShadowSize);e.setAttribute("dy",this.svgShadowSize);e.setAttribute("result","offsetBlur");f.appendChild(e);e=null!=d.createElementNS?d.createElementNS(mxConstants.NS_SVG,"feFlood"):d.createElement("feFlood");e.setAttribute("flood-color",this.svgShadowColor);e.setAttribute("flood-opacity",this.svgShadowOpacity);e.setAttribute("result","offsetColor");f.appendChild(e); @@ -2766,244 +2770,245 @@ mxStencilRegistry.libraries.mockup=[SHAPES_PATH+"/mockup/mxMockupButtons.js"];mx [SHAPES_PATH+"/mockup/mxMockupNavigation.js",STENCIL_PATH+"/mockup/misc.xml"];mxStencilRegistry.libraries["mockup/text"]=[SHAPES_PATH+"/mockup/mxMockupText.js"];mxStencilRegistry.libraries.floorplan=[SHAPES_PATH+"/mxFloorplan.js",STENCIL_PATH+"/floorplan.xml"];mxStencilRegistry.libraries.bootstrap=[SHAPES_PATH+"/mxBootstrap.js",STENCIL_PATH+"/bootstrap.xml"];mxStencilRegistry.libraries.gmdl=[SHAPES_PATH+"/mxGmdl.js",STENCIL_PATH+"/gmdl.xml"];mxStencilRegistry.libraries.gcp2=[SHAPES_PATH+"/mxGCP2.js", STENCIL_PATH+"/gcp2.xml"];mxStencilRegistry.libraries.cabinets=[SHAPES_PATH+"/mxCabinets.js",STENCIL_PATH+"/cabinets.xml"];mxStencilRegistry.libraries.archimate=[SHAPES_PATH+"/mxArchiMate.js"];mxStencilRegistry.libraries.archimate3=[SHAPES_PATH+"/mxArchiMate3.js"];mxStencilRegistry.libraries.sysml=[SHAPES_PATH+"/mxSysML.js"];mxStencilRegistry.libraries.eip=[SHAPES_PATH+"/mxEip.js",STENCIL_PATH+"/eip.xml"];mxStencilRegistry.libraries.networks=[SHAPES_PATH+"/mxNetworks.js",STENCIL_PATH+"/networks.xml"]; mxStencilRegistry.libraries.aws3d=[SHAPES_PATH+"/mxAWS3D.js",STENCIL_PATH+"/aws3d.xml"];mxStencilRegistry.libraries.veeam=[STENCIL_PATH+"/veeam/2d.xml",STENCIL_PATH+"/veeam/3d.xml",STENCIL_PATH+"/veeam/veeam.xml"];mxStencilRegistry.libraries.pid2inst=[SHAPES_PATH+"/pid2/mxPidInstruments.js"];mxStencilRegistry.libraries.pid2misc=[SHAPES_PATH+"/pid2/mxPidMisc.js",STENCIL_PATH+"/pid/misc.xml"];mxStencilRegistry.libraries.pid2valves=[SHAPES_PATH+"/pid2/mxPidValves.js"];mxStencilRegistry.libraries.pidFlowSensors= -[STENCIL_PATH+"/pid/flow_sensors.xml"];mxMarker.getPackageForType=function(a){var c=null;null!=a&&0<a.length&&("ER"==a.substring(0,2)?c="mxgraph.er":"sysML"==a.substring(0,5)&&(c="mxgraph.sysml"));return c};var v=mxMarker.createMarker;mxMarker.createMarker=function(a,c,b,d,f,e,g,k,l,n){if(null!=b&&null==mxMarker.markers[b]){var r=this.getPackageForType(b);null!=r&&mxStencilRegistry.getStencil(r)}return v.apply(this,arguments)};PrintDialog.prototype.create=function(a,c){function b(){t.value=Math.max(1, -Math.min(k,Math.max(parseInt(t.value),parseInt(v.value))));v.value=Math.max(1,Math.min(k,Math.min(parseInt(t.value),parseInt(v.value))))}function d(c){function b(c,b,f){var e=c.getGraphBounds(),g=0,k=0,l=ga.get(),n=1/c.pageScale,r=y.checked;if(r)var n=parseInt(Q.value),h=parseInt(V.value),n=Math.min(l.height*h/(e.height/c.view.scale),l.width*n/(e.width/c.view.scale));else n=parseInt(p.value)/(100*c.pageScale),isNaN(n)&&(d=1/c.pageScale,p.value="100 %");l=mxRectangle.fromRectangle(l);l.width=Math.ceil(l.width* -d);l.height=Math.ceil(l.height*d);n*=d;!r&&c.pageVisible?(e=c.getPageLayout(),g-=e.x*l.width,k-=e.y*l.height):r=!0;if(null==b){b=PrintDialog.createPrintPreview(c,n,l,0,g,k,r);b.pageSelector=!1;b.mathEnabled=!1;c=a.getCurrentFile();null!=c&&(b.title=c.getTitle());var w=b.writeHead;b.writeHead=function(c){w.apply(this,arguments);null!=a.editor.fontCss&&(c.writeln('<style type="text/css">'),c.writeln(a.editor.fontCss),c.writeln("</style>"))};if("undefined"!==typeof MathJax){var v=b.renderPage;b.renderPage= -function(a,c,b,d,f,e){var g=mxClient.NO_FO;mxClient.NO_FO=this.graph.mathEnabled&&!this.useForeignObjectForMath?!0:this.originalNoForeignObject;var k=v.apply(this,arguments);mxClient.NO_FO=g;this.graph.mathEnabled?this.mathEnabled=this.mathEnabled||!0:k.className="geDisableMathJax";return k}}b.open(null,null,f,!0)}else{l=c.background;if(null==l||""==l||l==mxConstants.NONE)l="#ffffff";b.backgroundColor=l;b.autoOrigin=r;b.appendGraph(c,n,g,k,f,!0)}return b}var d=parseInt(W.value)/100;isNaN(d)&&(d=1, -W.value="100 %");var d=.75*d,e=v.value,g=t.value,k=!r.checked,n=null;k&&(k=e==l&&g==l);if(!k&&null!=a.pages&&a.pages.length){var h=0,k=a.pages.length-1;r.checked||(h=parseInt(e)-1,k=parseInt(g)-1);for(var w=h;w<=k;w++){var m=a.pages[w],e=m==a.currentPage?f:null;if(null==e){var e=a.createTemporaryGraph(f.getStylesheet()),g=!0,h=!1,x=null,B=null;null==m.viewState&&null==m.mapping&&null==m.root&&a.updatePageRoot(m);null!=m.viewState?(g=m.viewState.pageVisible,h=m.viewState.mathEnabled,x=m.viewState.background, -B=m.viewState.backgroundImage):null!=m.mapping&&null!=m.mapping.diagramMap&&(h="0"!=m.mapping.diagramMap.get("mathEnabled"),x=m.mapping.diagramMap.get("background"),B=m.mapping.diagramMap.get("backgroundImage"),B=null!=B&&0<B.length?JSON.parse(B):null);e.background=x;e.backgroundImage=null!=B?new mxImage(B.src,B.width,B.height):null;e.pageVisible=g;e.mathEnabled=h;var q=e.getGlobalVariable;e.getGlobalVariable=function(a){return"page"==a?m.getName():"pagenumber"==a?w+1:q.apply(this,arguments)};document.body.appendChild(e.container); -a.updatePageRoot(m);e.model.setRoot(m.root)}n=b(e,n,w!=k);e!=f&&e.container.parentNode.removeChild(e.container)}}else n=b(f);n.mathEnabled&&(k=n.wnd.document,k.writeln('<script type="text/x-mathjax-config">'),k.writeln("MathJax.Hub.Config({"),k.writeln("showMathMenu: false,"),k.writeln('messageStyle: "none",'),k.writeln('jax: ["input/TeX", "input/MathML", "input/AsciiMath", "output/HTML-CSS"],'),k.writeln('extensions: ["tex2jax.js", "mml2jax.js", "asciimath2jax.js"],'),k.writeln('"HTML-CSS": {'), -k.writeln("imageFont: null"),k.writeln("},"),k.writeln("TeX: {"),k.writeln('extensions: ["AMSmath.js", "AMSsymbols.js", "noErrors.js", "noUndefined.js"]'),k.writeln("},"),k.writeln("tex2jax: {"),k.writeln('\tignoreClass: "geDisableMathJax"'),k.writeln("},"),k.writeln("asciimath2jax: {"),k.writeln('\tignoreClass: "geDisableMathJax"'),k.writeln("}"),k.writeln("});"),c&&(k.writeln("MathJax.Hub.Queue(function () {"),k.writeln("window.print();"),k.writeln("});")),k.writeln("\x3c/script>"),k.writeln('<script type="text/javascript" src="https://math.draw.io/current/MathJax.js">\x3c/script>')); -n.closeDocument();!n.mathEnabled&&c&&PrintDialog.printPreview(n)}var f=a.editor.graph,e=document.createElement("div"),g=document.createElement("h3");g.style.width="100%";g.style.textAlign="center";g.style.marginTop="0px";mxUtils.write(g,c||mxResources.get("print"));e.appendChild(g);var k=1,l=1,n=document.createElement("div");n.style.cssText="border-bottom:1px solid lightGray;padding-bottom:12px;margin-bottom:12px;";var r=document.createElement("input");r.style.cssText="margin-right:8px;margin-bottom:8px;"; -r.setAttribute("value","all");r.setAttribute("type","radio");r.setAttribute("name","pages-printdialog");n.appendChild(r);g=document.createElement("span");mxUtils.write(g,mxResources.get("printAllPages"));n.appendChild(g);mxUtils.br(n);var h=r.cloneNode(!0);r.setAttribute("checked","checked");h.setAttribute("value","range");n.appendChild(h);g=document.createElement("span");mxUtils.write(g,mxResources.get("pages")+":");n.appendChild(g);var v=document.createElement("input");v.style.cssText="margin:0 8px 0 8px;"; -v.setAttribute("value","1");v.setAttribute("type","number");v.setAttribute("min","1");v.style.width="50px";n.appendChild(v);g=document.createElement("span");mxUtils.write(g,mxResources.get("to"));n.appendChild(g);var t=v.cloneNode(!0);n.appendChild(t);mxEvent.addListener(v,"focus",function(){h.checked=!0});mxEvent.addListener(t,"focus",function(){h.checked=!0});mxEvent.addListener(v,"change",b);mxEvent.addListener(t,"change",b);if(null!=a.pages&&(k=a.pages.length,null!=a.currentPage))for(g=0;g<a.pages.length;g++)if(a.currentPage== -a.pages[g]){l=g+1;v.value=l;t.value=l;break}v.setAttribute("max",k);t.setAttribute("max",k);1<k&&e.appendChild(n);var w=document.createElement("div");w.style.marginBottom="10px";var m=document.createElement("input");m.style.marginRight="8px";m.setAttribute("value","adjust");m.setAttribute("type","radio");m.setAttribute("name","printZoom");w.appendChild(m);g=document.createElement("span");mxUtils.write(g,mxResources.get("adjustTo"));w.appendChild(g);var p=document.createElement("input");p.style.cssText= -"margin:0 8px 0 8px;";p.setAttribute("value","100 %");p.style.width="50px";w.appendChild(p);mxEvent.addListener(p,"focus",function(){m.checked=!0});e.appendChild(w);var n=n.cloneNode(!1),y=m.cloneNode(!0);y.setAttribute("value","fit");m.setAttribute("checked","checked");g=document.createElement("div");g.style.cssText="display:inline-block;height:100%;vertical-align:top;padding-top:2px;";g.appendChild(y);n.appendChild(g);w=document.createElement("table");w.style.display="inline-block";var B=document.createElement("tbody"), +[STENCIL_PATH+"/pid/flow_sensors.xml"];mxMarker.getPackageForType=function(a){var c=null;null!=a&&0<a.length&&("ER"==a.substring(0,2)?c="mxgraph.er":"sysML"==a.substring(0,5)&&(c="mxgraph.sysml"));return c};var v=mxMarker.createMarker;mxMarker.createMarker=function(a,c,b,d,f,e,g,h,n,m){if(null!=b&&null==mxMarker.markers[b]){var r=this.getPackageForType(b);null!=r&&mxStencilRegistry.getStencil(r)}return v.apply(this,arguments)};PrintDialog.prototype.create=function(a,c){function b(){w.value=Math.max(1, +Math.min(h,Math.max(parseInt(w.value),parseInt(v.value))));v.value=Math.max(1,Math.min(h,Math.min(parseInt(w.value),parseInt(v.value))))}function d(c){function b(c,b,f){var e=c.getGraphBounds(),g=0,h=0,n=ga.get(),m=1/c.pageScale,r=y.checked;if(r)var m=parseInt(Q.value),k=parseInt(V.value),m=Math.min(n.height*k/(e.height/c.view.scale),n.width*m/(e.width/c.view.scale));else m=parseInt(p.value)/(100*c.pageScale),isNaN(m)&&(d=1/c.pageScale,p.value="100 %");n=mxRectangle.fromRectangle(n);n.width=Math.ceil(n.width* +d);n.height=Math.ceil(n.height*d);m*=d;!r&&c.pageVisible?(e=c.getPageLayout(),g-=e.x*n.width,h-=e.y*n.height):r=!0;if(null==b){b=PrintDialog.createPrintPreview(c,m,n,0,g,h,r);b.pageSelector=!1;b.mathEnabled=!1;c=a.getCurrentFile();null!=c&&(b.title=c.getTitle());var t=b.writeHead;b.writeHead=function(c){t.apply(this,arguments);null!=a.editor.fontCss&&(c.writeln('<style type="text/css">'),c.writeln(a.editor.fontCss),c.writeln("</style>"))};if("undefined"!==typeof MathJax){var v=b.renderPage;b.renderPage= +function(a,c,b,d,f,e){var g=mxClient.NO_FO;mxClient.NO_FO=this.graph.mathEnabled&&!this.useForeignObjectForMath?!0:this.originalNoForeignObject;var h=v.apply(this,arguments);mxClient.NO_FO=g;this.graph.mathEnabled?this.mathEnabled=this.mathEnabled||!0:h.className="geDisableMathJax";return h}}b.open(null,null,f,!0)}else{n=c.background;if(null==n||""==n||n==mxConstants.NONE)n="#ffffff";b.backgroundColor=n;b.autoOrigin=r;b.appendGraph(c,m,g,h,f,!0)}return b}var d=parseInt(W.value)/100;isNaN(d)&&(d=1, +W.value="100 %");var d=.75*d,e=v.value,g=w.value,h=!r.checked,m=null;h&&(h=e==n&&g==n);if(!h&&null!=a.pages&&a.pages.length){var k=0,h=a.pages.length-1;r.checked||(k=parseInt(e)-1,h=parseInt(g)-1);for(var t=k;t<=h;t++){var l=a.pages[t],e=l==a.currentPage?f:null;if(null==e){var e=a.createTemporaryGraph(f.getStylesheet()),g=!0,k=!1,x=null,A=null;null==l.viewState&&null==l.mapping&&null==l.root&&a.updatePageRoot(l);null!=l.viewState?(g=l.viewState.pageVisible,k=l.viewState.mathEnabled,x=l.viewState.background, +A=l.viewState.backgroundImage):null!=l.mapping&&null!=l.mapping.diagramMap&&(k="0"!=l.mapping.diagramMap.get("mathEnabled"),x=l.mapping.diagramMap.get("background"),A=l.mapping.diagramMap.get("backgroundImage"),A=null!=A&&0<A.length?JSON.parse(A):null);e.background=x;e.backgroundImage=null!=A?new mxImage(A.src,A.width,A.height):null;e.pageVisible=g;e.mathEnabled=k;var q=e.getGlobalVariable;e.getGlobalVariable=function(a){return"page"==a?l.getName():"pagenumber"==a?t+1:q.apply(this,arguments)};document.body.appendChild(e.container); +a.updatePageRoot(l);e.model.setRoot(l.root)}m=b(e,m,t!=h);e!=f&&e.container.parentNode.removeChild(e.container)}}else m=b(f);m.mathEnabled&&(h=m.wnd.document,h.writeln('<script type="text/x-mathjax-config">'),h.writeln("MathJax.Hub.Config({"),h.writeln("showMathMenu: false,"),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('"HTML-CSS": {'), +h.writeln("imageFont: null"),h.writeln("},"),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("});"),c&&(h.writeln("MathJax.Hub.Queue(function () {"),h.writeln("window.print();"),h.writeln("});")),h.writeln("\x3c/script>"),h.writeln('<script type="text/javascript" src="https://math.draw.io/current/MathJax.js">\x3c/script>')); +m.closeDocument();!m.mathEnabled&&c&&PrintDialog.printPreview(m)}var f=a.editor.graph,e=document.createElement("div"),g=document.createElement("h3");g.style.width="100%";g.style.textAlign="center";g.style.marginTop="0px";mxUtils.write(g,c||mxResources.get("print"));e.appendChild(g);var h=1,n=1,m=document.createElement("div");m.style.cssText="border-bottom:1px solid lightGray;padding-bottom:12px;margin-bottom:12px;";var r=document.createElement("input");r.style.cssText="margin-right:8px;margin-bottom:8px;"; +r.setAttribute("value","all");r.setAttribute("type","radio");r.setAttribute("name","pages-printdialog");m.appendChild(r);g=document.createElement("span");mxUtils.write(g,mxResources.get("printAllPages"));m.appendChild(g);mxUtils.br(m);var k=r.cloneNode(!0);r.setAttribute("checked","checked");k.setAttribute("value","range");m.appendChild(k);g=document.createElement("span");mxUtils.write(g,mxResources.get("pages")+":");m.appendChild(g);var v=document.createElement("input");v.style.cssText="margin:0 8px 0 8px;"; +v.setAttribute("value","1");v.setAttribute("type","number");v.setAttribute("min","1");v.style.width="50px";m.appendChild(v);g=document.createElement("span");mxUtils.write(g,mxResources.get("to"));m.appendChild(g);var w=v.cloneNode(!0);m.appendChild(w);mxEvent.addListener(v,"focus",function(){k.checked=!0});mxEvent.addListener(w,"focus",function(){k.checked=!0});mxEvent.addListener(v,"change",b);mxEvent.addListener(w,"change",b);if(null!=a.pages&&(h=a.pages.length,null!=a.currentPage))for(g=0;g<a.pages.length;g++)if(a.currentPage== +a.pages[g]){n=g+1;v.value=n;w.value=n;break}v.setAttribute("max",h);w.setAttribute("max",h);1<h&&e.appendChild(m);var t=document.createElement("div");t.style.marginBottom="10px";var l=document.createElement("input");l.style.marginRight="8px";l.setAttribute("value","adjust");l.setAttribute("type","radio");l.setAttribute("name","printZoom");t.appendChild(l);g=document.createElement("span");mxUtils.write(g,mxResources.get("adjustTo"));t.appendChild(g);var p=document.createElement("input");p.style.cssText= +"margin:0 8px 0 8px;";p.setAttribute("value","100 %");p.style.width="50px";t.appendChild(p);mxEvent.addListener(p,"focus",function(){l.checked=!0});e.appendChild(t);var m=m.cloneNode(!1),y=l.cloneNode(!0);y.setAttribute("value","fit");l.setAttribute("checked","checked");g=document.createElement("div");g.style.cssText="display:inline-block;height:100%;vertical-align:top;padding-top:2px;";g.appendChild(y);m.appendChild(g);t=document.createElement("table");t.style.display="inline-block";var A=document.createElement("tbody"), q=document.createElement("tr"),u=q.cloneNode(!0),E=document.createElement("td"),S=E.cloneNode(!0),M=E.cloneNode(!0),N=E.cloneNode(!0),T=E.cloneNode(!0),D=E.cloneNode(!0);E.style.textAlign="right";N.style.textAlign="right";mxUtils.write(E,mxResources.get("fitTo"));var Q=document.createElement("input");Q.style.cssText="margin:0 8px 0 8px;";Q.setAttribute("value","1");Q.setAttribute("min","1");Q.setAttribute("type","number");Q.style.width="40px";S.appendChild(Q);g=document.createElement("span");mxUtils.write(g, -mxResources.get("fitToSheetsAcross"));M.appendChild(g);mxUtils.write(N,mxResources.get("fitToBy"));var V=Q.cloneNode(!0);T.appendChild(V);mxEvent.addListener(Q,"focus",function(){y.checked=!0});mxEvent.addListener(V,"focus",function(){y.checked=!0});g=document.createElement("span");mxUtils.write(g,mxResources.get("fitToSheetsDown"));D.appendChild(g);q.appendChild(E);q.appendChild(S);q.appendChild(M);u.appendChild(N);u.appendChild(T);u.appendChild(D);B.appendChild(q);B.appendChild(u);w.appendChild(B); -n.appendChild(w);e.appendChild(n);n=document.createElement("div");g=document.createElement("div");g.style.fontWeight="bold";g.style.marginBottom="12px";mxUtils.write(g,mxResources.get("paperSize"));n.appendChild(g);g=document.createElement("div");g.style.marginBottom="12px";var ga=PageSetupDialog.addPageFormatPanel(g,"printdialog",a.editor.graph.pageFormat||mxConstants.PAGE_FORMAT_A4_PORTRAIT);n.appendChild(g);g=document.createElement("span");mxUtils.write(g,mxResources.get("pageScale"));n.appendChild(g); -var W=document.createElement("input");W.style.cssText="margin:0 8px 0 8px;";W.setAttribute("value","100 %");W.style.width="60px";n.appendChild(W);e.appendChild(n);g=document.createElement("div");g.style.cssText="text-align:right;margin:48px 0 0 0;";n=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});n.className="geBtn";a.editor.cancelFirst&&g.appendChild(n);a.isOffline()||(w=mxUtils.button(mxResources.get("help"),function(){f.openLink("https://desk.draw.io/support/solutions/articles/16000048947")}), -w.className="geBtn",g.appendChild(w));PrintDialog.previewEnabled&&(w=mxUtils.button(mxResources.get("preview"),function(){a.hideDialog();d(!1)}),w.className="geBtn",g.appendChild(w));w=mxUtils.button(mxResources.get(PrintDialog.previewEnabled?"print":"ok"),function(){a.hideDialog();d(!0)});w.className="geBtn gePrimaryBtn";g.appendChild(w);a.editor.cancelFirst||g.appendChild(n);e.appendChild(g);this.container=e};var B=ChangePageSetup.prototype.execute;ChangePageSetup.prototype.execute=function(){null== -this.page&&(this.page=this.ui.currentPage);this.page!=this.ui.currentPage?null!=this.page.viewState&&(this.ignoreColor||(this.page.viewState.background=this.color),this.ignoreImage||(this.page.viewState.backgroundImage=this.image),null!=this.format&&(this.page.viewState.pageFormat=this.format),null!=this.mathEnabled&&(this.page.viewState.mathEnabled=this.mathEnabled),null!=this.shadowVisible&&(this.page.viewState.shadowVisible=this.shadowVisible)):(B.apply(this,arguments),null!=this.mathEnabled&& +mxResources.get("fitToSheetsAcross"));M.appendChild(g);mxUtils.write(N,mxResources.get("fitToBy"));var V=Q.cloneNode(!0);T.appendChild(V);mxEvent.addListener(Q,"focus",function(){y.checked=!0});mxEvent.addListener(V,"focus",function(){y.checked=!0});g=document.createElement("span");mxUtils.write(g,mxResources.get("fitToSheetsDown"));D.appendChild(g);q.appendChild(E);q.appendChild(S);q.appendChild(M);u.appendChild(N);u.appendChild(T);u.appendChild(D);A.appendChild(q);A.appendChild(u);t.appendChild(A); +m.appendChild(t);e.appendChild(m);m=document.createElement("div");g=document.createElement("div");g.style.fontWeight="bold";g.style.marginBottom="12px";mxUtils.write(g,mxResources.get("paperSize"));m.appendChild(g);g=document.createElement("div");g.style.marginBottom="12px";var ga=PageSetupDialog.addPageFormatPanel(g,"printdialog",a.editor.graph.pageFormat||mxConstants.PAGE_FORMAT_A4_PORTRAIT);m.appendChild(g);g=document.createElement("span");mxUtils.write(g,mxResources.get("pageScale"));m.appendChild(g); +var W=document.createElement("input");W.style.cssText="margin:0 8px 0 8px;";W.setAttribute("value","100 %");W.style.width="60px";m.appendChild(W);e.appendChild(m);g=document.createElement("div");g.style.cssText="text-align:right;margin:48px 0 0 0;";m=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});m.className="geBtn";a.editor.cancelFirst&&g.appendChild(m);a.isOffline()||(t=mxUtils.button(mxResources.get("help"),function(){f.openLink("https://desk.draw.io/support/solutions/articles/16000048947")}), +t.className="geBtn",g.appendChild(t));PrintDialog.previewEnabled&&(t=mxUtils.button(mxResources.get("preview"),function(){a.hideDialog();d(!1)}),t.className="geBtn",g.appendChild(t));t=mxUtils.button(mxResources.get(PrintDialog.previewEnabled?"print":"ok"),function(){a.hideDialog();d(!0)});t.className="geBtn gePrimaryBtn";g.appendChild(t);a.editor.cancelFirst||g.appendChild(m);e.appendChild(g);this.container=e};var A=ChangePageSetup.prototype.execute;ChangePageSetup.prototype.execute=function(){null== +this.page&&(this.page=this.ui.currentPage);this.page!=this.ui.currentPage?null!=this.page.viewState&&(this.ignoreColor||(this.page.viewState.background=this.color),this.ignoreImage||(this.page.viewState.backgroundImage=this.image),null!=this.format&&(this.page.viewState.pageFormat=this.format),null!=this.mathEnabled&&(this.page.viewState.mathEnabled=this.mathEnabled),null!=this.shadowVisible&&(this.page.viewState.shadowVisible=this.shadowVisible)):(A.apply(this,arguments),null!=this.mathEnabled&& this.mathEnabled!=this.ui.isMathEnabled()&&(this.ui.setMathEnabled(this.mathEnabled),this.mathEnabled=!this.mathEnabled),null!=this.shadowVisible&&this.shadowVisible!=this.ui.editor.graph.shadowVisible&&(this.ui.editor.graph.setShadowVisible(this.shadowVisible),this.shadowVisible=!this.shadowVisible))}})(); -var ErrorDialog=function(a,d,e,b,h,m,p,q,u,c,f){u=null!=u?u:!0;var g=document.createElement("div");g.style.textAlign="center";if(null!=d){var k=document.createElement("div");k.style.padding="0px";k.style.margin="0px";k.style.fontSize="18px";k.style.paddingBottom="16px";k.style.marginBottom="16px";k.style.borderBottom="1px solid #c0c0c0";k.style.color="gray";mxUtils.write(k,d);g.appendChild(k)}d=document.createElement("div");d.style.padding="6px";d.innerHTML=e;g.appendChild(d);e=document.createElement("div"); -e.style.marginTop="16px";e.style.textAlign="center";null!=m&&(d=mxUtils.button(mxResources.get("tryAgain"),function(){a.hideDialog();m()}),d.className="geBtn",e.appendChild(d),e.style.textAlign="center");null!=c&&(c=mxUtils.button(c,function(){null!=f&&f()}),c.className="geBtn",e.appendChild(c));var r=mxUtils.button(b,function(){u&&a.hideDialog();null!=h&&h()});r.className="geBtn";e.appendChild(r);null!=p&&(b=mxUtils.button(p,function(){u&&a.hideDialog();null!=q&&q()}),b.className="geBtn gePrimaryBtn", -e.appendChild(b));this.init=function(){r.focus()};g.appendChild(e);this.container=g}; -(function(){var a=new mxObjectCodec(new ChangePageSetup,["ui","previousColor","previousImage","previousFormat"]);a.beforeDecode=function(a,e,b){b.ui=a.ui;return e};a.afterDecode=function(a,e,b){b.previousColor=b.color;b.previousImage=b.image;b.previousFormat=b.format;null!=b.foldingEnabled&&(b.foldingEnabled=!b.foldingEnabled);null!=b.mathEnabled&&(b.mathEnabled=!b.mathEnabled);null!=b.shadowVisible&&(b.shadowVisible=!b.shadowVisible);return b};mxCodecRegistry.register(a)})();(function(){EditorUi.VERSION="@DRAWIO-VERSION@";EditorUi.compactUi="atlas"!=uiTheme;EditorUi.enableLogging=/.*\.draw\.io$/.test(window.location.hostname)&&"support.draw.io"!=window.location.hostname;EditorUi.templateFile=TEMPLATE_PATH+"/index.xml";EditorUi.enablePlantUml=EditorUi.enableLogging;EditorUi.isElectronApp=null!=window&&null!=window.process&&null!=window.process.versions&&null!=window.process.versions.electron;EditorUi.scratchpadHelpLink="https://desk.draw.io/support/solutions/articles/16000042367"; +var ErrorDialog=function(a,b,e,d,k,l,p,q,u,c,f){u=null!=u?u:!0;var g=document.createElement("div");g.style.textAlign="center";if(null!=b){var n=document.createElement("div");n.style.padding="0px";n.style.margin="0px";n.style.fontSize="18px";n.style.paddingBottom="16px";n.style.marginBottom="16px";n.style.borderBottom="1px solid #c0c0c0";n.style.color="gray";mxUtils.write(n,b);g.appendChild(n)}b=document.createElement("div");b.style.padding="6px";b.innerHTML=e;g.appendChild(b);e=document.createElement("div"); +e.style.marginTop="16px";e.style.textAlign="center";null!=l&&(b=mxUtils.button(mxResources.get("tryAgain"),function(){a.hideDialog();l()}),b.className="geBtn",e.appendChild(b),e.style.textAlign="center");null!=c&&(c=mxUtils.button(c,function(){null!=f&&f()}),c.className="geBtn",e.appendChild(c));var r=mxUtils.button(d,function(){u&&a.hideDialog();null!=k&&k()});r.className="geBtn";e.appendChild(r);null!=p&&(d=mxUtils.button(p,function(){u&&a.hideDialog();null!=q&&q()}),d.className="geBtn gePrimaryBtn", +e.appendChild(d));this.init=function(){r.focus()};g.appendChild(e);this.container=g}; +(function(){var a=new mxObjectCodec(new ChangePageSetup,["ui","previousColor","previousImage","previousFormat"]);a.beforeDecode=function(a,e,d){d.ui=a.ui;return e};a.afterDecode=function(a,e,d){d.previousColor=d.color;d.previousImage=d.image;d.previousFormat=d.format;null!=d.foldingEnabled&&(d.foldingEnabled=!d.foldingEnabled);null!=d.mathEnabled&&(d.mathEnabled=!d.mathEnabled);null!=d.shadowVisible&&(d.shadowVisible=!d.shadowVisible);return d};mxCodecRegistry.register(a)})();(function(){EditorUi.VERSION="@DRAWIO-VERSION@";EditorUi.compactUi="atlas"!=uiTheme;EditorUi.enableLogging=/.*\.draw\.io$/.test(window.location.hostname)&&"support.draw.io"!=window.location.hostname;EditorUi.templateFile=TEMPLATE_PATH+"/index.xml";EditorUi.enablePlantUml=EditorUi.enableLogging;EditorUi.isElectronApp=null!=window&&null!=window.process&&null!=window.process.versions&&null!=window.process.versions.electron;EditorUi.scratchpadHelpLink="https://desk.draw.io/support/solutions/articles/16000042367"; EditorUi.prototype.emptyDiagramXml='<mxGraphModel><root><mxCell id="0"/><mxCell id="1" parent="0"/></root></mxGraphModel>';EditorUi.prototype.emptyLibraryXml="<mxlibrary>[]</mxlibrary>";EditorUi.prototype.mode=null;EditorUi.prototype.sidebarFooterHeight=36;EditorUi.prototype.defaultCustomShapeStyle="shape=stencil(tZRtTsQgEEBPw1+DJR7AoN6DbWftpAgE0Ortd/jYRGq72R+YNE2YgTePloEJGWblgA18ZuKFDcMj5/Sm8boZq+BgjCX4pTyqk6ZlKROitwusOMXKQDODx5iy4pXxZ5qTHiFHawxB0JrQZH7lCabQ0Fr+XWC1/E8zcsT/gAi+Subo2/3Mh6d/oJb5nU1b5tW7r2knautaa3T+U32o7f7vZwpJkaNDLORJjcu7t59m2jXxqX9un+tt022acsfmoKaQZ+vhhswZtS6Ne/ThQGt0IV0N3Yyv6P3CeT9/tHO0XFI5cAE=);whiteSpace=wrap;html=1;"; EditorUi.prototype.svgBrokenImage=Graph.createSvgImage(10,10,'<rect x="0" y="0" width="10" height="10" stroke="#000" fill="transparent"/><path d="m 0 0 L 10 10 L 0 10 L 10 0" stroke="#000" fill="transparent"/>');EditorUi.prototype.crossOriginImages=!mxClient.IS_IE;EditorUi.prototype.maxBackgroundSize=1600;EditorUi.prototype.maxImageSize=520;EditorUi.prototype.resampleThreshold=1E5;EditorUi.prototype.maxImageBytes=1E6;EditorUi.prototype.maxBackgroundBytes=25E5;EditorUi.prototype.currentFile=null;EditorUi.prototype.printPdfExport= !1;EditorUi.prototype.pdfPageExport=!0;EditorUi.prototype.formatEnabled="0"!=urlParams.format;EditorUi.prototype.closableScratchpad=!0;(function(){EditorUi.prototype.useCanvasForExport=!1;EditorUi.prototype.jpgSupported=!1;try{var a=document.createElement("canvas");EditorUi.prototype.canvasSupported=!(!a.getContext||!a.getContext("2d"))}catch(r){}try{var b=document.createElement("canvas"),d=new Image;d.onload=function(){try{b.getContext("2d").drawImage(d,0,0);var a=b.toDataURL("image/png");EditorUi.prototype.useCanvasForExport= -null!=a&&6<a.length}catch(l){}};d.src="data:image/svg+xml;base64,"+btoa(unescape(encodeURIComponent('<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="1px" height="1px" version="1.1"><foreignObject pointer-events="all" width="1" height="1"><div xmlns="http://www.w3.org/1999/xhtml"></div></foreignObject></svg>')))}catch(r){}try{b=document.createElement("canvas");b.width=b.height=1;var e=b.toDataURL("image/jpeg");EditorUi.prototype.jpgSupported=null!==e.match("image/jpeg")}catch(r){}})(); +null!=a&&6<a.length}catch(h){}};d.src="data:image/svg+xml;base64,"+btoa(unescape(encodeURIComponent('<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="1px" height="1px" version="1.1"><foreignObject pointer-events="all" width="1" height="1"><div xmlns="http://www.w3.org/1999/xhtml"></div></foreignObject></svg>')))}catch(r){}try{b=document.createElement("canvas");b.width=b.height=1;var e=b.toDataURL("image/jpeg");EditorUi.prototype.jpgSupported=null!==e.match("image/jpeg")}catch(r){}})(); EditorUi.prototype.openLink=function(a,b,d){return this.editor.graph.openLink(a,b,d)};EditorUi.prototype.showSplash=function(a){};EditorUi.prototype.getLocalData=function(a,b){b(localStorage.getItem(a))};EditorUi.prototype.setLocalData=function(a,b,d){localStorage.setItem(a,b);null!=d&&d()};EditorUi.prototype.removeLocalData=function(a,b){localStorage.removeItem(a);b()};EditorUi.prototype.setMathEnabled=function(a){this.editor.graph.mathEnabled=a;this.editor.updateGraphComponents();this.editor.graph.refresh(); this.fireEvent(new mxEventObject("mathEnabledChanged"))};EditorUi.prototype.isMathEnabled=function(a){return this.editor.graph.mathEnabled};EditorUi.prototype.isAppCache=function(){return"1"==urlParams.appcache||this.isOfflineApp()};EditorUi.prototype.isOfflineApp=function(){return"1"==urlParams.offline};EditorUi.prototype.isOffline=function(){return this.isOfflineApp()||!navigator.onLine||"1"==urlParams.stealth};EditorUi.prototype.createSpinner=function(a,b,d){d=null!=d?d:24;var c=new Spinner({lines:12, length:d,width:Math.round(d/3),radius:Math.round(d/2),rotate:0,color:"dark"==uiTheme?"#c0c0c0":"#000",speed:1.5,trail:60,shadow:!1,hwaccel:!1,zIndex:2E9}),f=c.spin;c.spin=function(d,e){var g=!1;this.active||(f.call(this,d),this.active=!0,null!=e&&(g=document.createElement("div"),g.style.position="absolute",g.style.whiteSpace="nowrap",g.style.background="#4B4243",g.style.color="white",g.style.fontFamily="Helvetica, Arial",g.style.fontSize="9pt",g.style.padding="6px",g.style.paddingLeft="10px",g.style.paddingRight= "10px",g.style.zIndex=2E9,g.style.left=Math.max(0,a)+"px",g.style.top=Math.max(0,b+70)+"px",mxUtils.setPrefixedStyle(g.style,"borderRadius","6px"),mxUtils.setPrefixedStyle(g.style,"transform","translate(-50%,-50%)"),"dark"!=uiTheme&&mxUtils.setPrefixedStyle(g.style,"boxShadow","2px 2px 3px 0px #ddd"),g.innerHTML=e+"...",d.appendChild(g),c.status=g,mxClient.IS_VML&&(null==document.documentMode||8>=document.documentMode)&&(g.style.left=Math.round(Math.max(0,a-g.offsetWidth/2))+"px",g.style.top=Math.round(Math.max(0, b+70-g.offsetHeight/2))+"px")),this.pause=mxUtils.bind(this,function(){var a=function(){};this.active&&(a=mxUtils.bind(this,function(){this.spin(d,e)}));this.stop();return a}),g=!0);return g};var e=c.stop;c.stop=function(){e.call(this);this.active=!1;null!=c.status&&(c.status.parentNode.removeChild(c.status),c.status=null)};c.pause=function(){return function(){}};return c};EditorUi.parsePng=function(a,b,d){function c(a,c){var b=e;e+=c;return a.substring(b,e)}function f(a){a=c(a,4);return a.charCodeAt(3)+ -(a.charCodeAt(2)<<8)+(a.charCodeAt(1)<<16)+(a.charCodeAt(0)<<24)}var e=0;if(c(a,8)!=String.fromCharCode(137)+"PNG"+String.fromCharCode(13,10,26,10))null!=d&&d();else if(c(a,4),"IHDR"!=c(a,4))null!=d&&d();else{c(a,17);do{d=f(a);var g=c(a,4);if(null!=b&&b(e-8,g,d))break;value=c(a,d);c(a,4);if("IEND"==g)break}while(d)}};EditorUi.prototype.isCompatibleString=function(a){try{var c=mxUtils.parseXml(a),b=this.editor.extractGraphModel(c.documentElement,!0);return null!=b&&0==b.getElementsByTagName("parsererror").length}catch(k){}return!1}; -var a=EditorUi.prototype.extractGraphModelFromHtml;EditorUi.prototype.extractGraphModelFromHtml=function(c){var b=a.apply(this,arguments);if(null==b)try{var d=c.indexOf("<mxfile ");if(0<=d){var e=c.lastIndexOf("</mxfile>");e>d&&(b=c.substring(d,e+15).replace(/>/g,">").replace(/</g,"<").replace(/\\"/g,'"').replace(/\n/g,""))}else var r=mxUtils.parseXml(c),l=this.editor.extractGraphModel(r.documentElement,null!=this.pages||"hidden"==this.diagramContainer.style.visibility),b=null!= -l?mxUtils.getXml(l):""}catch(n){}return b};EditorUi.prototype.validateFileData=function(a){if(null!=a&&0<a.length){var c=a.indexOf('<meta charset="utf-8">');0<=c&&(a=a.slice(0,c)+'<meta charset="utf-8"/>'+a.slice(c+23-1,a.length))}return a};EditorUi.prototype.replaceFileData=function(a){a=this.validateFileData(a);a=null!=a&&0<a.length?mxUtils.parseXml(a).documentElement:null;var c=null!=a?this.editor.extractGraphModel(a,!0):null;null!=c&&(a=c);if(null!=a){c=this.editor.graph;c.model.beginUpdate(); -try{var b=null!=this.pages?this.pages.slice():null,d=a.getElementsByTagName("diagram");if("0"!=urlParams.pages||1<d.length||1==d.length&&d[0].hasAttribute("name")){this.fileNode=a;this.pages=null!=this.pages?this.pages:[];for(var e=d.length-1;0<=e;e--){var l=this.updatePageRoot(new DiagramPage(d[e]));null==l.getName()&&l.setName(mxResources.get("pageWithNumber",[e+1]));c.model.execute(new ChangePage(this,l,0==e?l:null,0))}}else"0"!=urlParams.pages&&null==this.fileNode&&(this.fileNode=a.ownerDocument.createElement("mxfile"), -this.currentPage=new DiagramPage(a.ownerDocument.createElement("diagram")),this.currentPage.setName(mxResources.get("pageWithNumber",[1])),c.model.execute(new ChangePage(this,this.currentPage,this.currentPage,0))),this.editor.setGraphXml(a),null!=this.currentPage&&(this.currentPage.root=this.editor.graph.model.root);if(null!=b)for(e=0;e<b.length;e++)c.model.execute(new ChangePage(this,b[e],null))}finally{c.model.endUpdate()}}};EditorUi.prototype.createFileData=function(a,b,d,e,r,l,n,h,v,m){b=null!= -b?b:this.editor.graph;r=null!=r?r:!1;v=null!=v?v:!0;var c,f=null;null==d||d.getMode()==App.MODE_DEVICE||d.getMode()==App.MODE_BROWSER?c="_blank":f=c=e;if(null==a)return"";var g=a;if("mxfile"!=g.nodeName.toLowerCase()){var k=b.zapGremlins(mxUtils.getXml(a)),g=b.compress(k);if(b.decompress(g)!=k)return k;k=a.ownerDocument.createElement("diagram");mxUtils.setTextContent(k,g);g=a.ownerDocument.createElement("mxfile");g.appendChild(k)}m?(g=g.cloneNode(!0),g.removeAttribute("userAgent"),g.removeAttribute("version"), -g.removeAttribute("editor"),g.removeAttribute("type")):(g.setAttribute("userAgent",navigator.userAgent),g.setAttribute("version",EditorUi.VERSION),g.setAttribute("editor","www.draw.io"),a=null!=d?d.getMode():this.mode,null!=a&&g.setAttribute("type",a));a=mxUtils.getXml(g);if(!l&&!r&&(n||null!=d&&/(\.html)$/i.test(d.getTitle())))a=this.getHtml2(mxUtils.getXml(g),b,null!=d?d.getTitle():null,c,f);else if(l||!r&&null!=d&&/(\.svg)$/i.test(d.getTitle()))null==d||d.getMode()!=App.MODE_DEVICE&&d.getMode()!= -App.MODE_BROWSER||(e=null),a=this.getEmbeddedSvg(a,b,e,null,h,v,f);return a};EditorUi.prototype.getXmlFileData=function(a,b){a=null!=a?a:!0;b=null!=b?b:!1;var c=this.editor.getGraphXml(a);if(a&&null!=this.fileNode&&null!=this.currentPage){var d=this.editor.graph.compress(this.editor.graph.zapGremlins(mxUtils.getXml(c)));mxUtils.setTextContent(this.currentPage.node,d);c=this.fileNode.cloneNode(!1);if(b)c.appendChild(this.currentPage.node);else for(var f=0;f<this.pages.length;f++){var e=this.pages[f].mapping; -this.currentPage!=this.pages[f]&&null!=e&&e.needsUpdate&&(d=(new mxCodec(mxUtils.createXmlDocument())).encode(e.graphModel),e.writeRealtimeToNode(d),d=this.editor.graph.compress(this.editor.graph.zapGremlins(mxUtils.getXml(d))),mxUtils.setTextContent(this.pages[f].node,d),e.needsUpdate=!1);c.appendChild(this.pages[f].node)}}return c};EditorUi.prototype.getFileData=function(a,b,d,e,r,l,n,h,v){r=null!=r?r:!0;n=null!=n?n:this.getXmlFileData(r,null!=l?l:!1);v=null!=v?v:this.getCurrentFile();l=this.editor.graph; -if(null!=this.pages&&this.currentPage!=this.pages[0]&&(b||!a&&null!=v&&/(\.svg)$/i.test(v.getTitle()))){l=this.createTemporaryGraph(l.getStylesheet());var c=l.getGlobalVariable,f=this.pages[0];l.getGlobalVariable=function(a){return"page"==a?f.getName():"pagenumber"==a?1:c.apply(this,arguments)};document.body.appendChild(l.container);l.model.setRoot(f.root)}a=this.createFileData(n,l,v,window.location.href,a,b,d,e,r,h);l!=this.editor.graph&&l.container.parentNode.removeChild(l.container);return a}; -EditorUi.prototype.getHtml=function(a,b,d,e,r,l){l=null!=l?l:!0;var c=null,f="https://www.draw.io/js/embed-static.min.js";if(null!=b){var c=l?b.getGraphBounds():b.getBoundingBox(b.getSelectionCells()),g=b.view.scale;l=Math.floor(c.x/g-b.view.translate.x);g=Math.floor(c.y/g-b.view.translate.y);c=b.background;null==r&&(b=this.getBasenames().join(";"),0<b.length&&(f="https://www.draw.io/embed.js?s="+b));a.setAttribute("x0",l);a.setAttribute("y0",g)}null!=a&&(a.setAttribute("pan","1"),a.setAttribute("zoom", -"1"),a.setAttribute("resize","0"),a.setAttribute("fit","0"),a.setAttribute("border","20"),a.setAttribute("links","1"),null!=e&&a.setAttribute("edit",e));null!=r&&(r=r.replace(/&/g,"&"));a=null!=a?this.editor.graph.zapGremlins(mxUtils.getXml(a)):"";e=this.editor.graph.compress(a);this.editor.graph.decompress(e)!=a&&(e=encodeURIComponent(a));return(null==r?'\x3c!--[if IE]><meta http-equiv="X-UA-Compatible" content="IE=5,IE=9" ><![endif]--\x3e\n':"")+"<!DOCTYPE html>\n<html"+(null!=r?' xmlns="http://www.w3.org/1999/xhtml">': +(a.charCodeAt(2)<<8)+(a.charCodeAt(1)<<16)+(a.charCodeAt(0)<<24)}var e=0;if(c(a,8)!=String.fromCharCode(137)+"PNG"+String.fromCharCode(13,10,26,10))null!=d&&d();else if(c(a,4),"IHDR"!=c(a,4))null!=d&&d();else{c(a,17);do{d=f(a);var g=c(a,4);if(null!=b&&b(e-8,g,d))break;value=c(a,d);c(a,4);if("IEND"==g)break}while(d)}};EditorUi.prototype.isCompatibleString=function(a){try{var c=mxUtils.parseXml(a),b=this.editor.extractGraphModel(c.documentElement,!0);return null!=b&&0==b.getElementsByTagName("parsererror").length}catch(n){}return!1}; +var a=EditorUi.prototype.extractGraphModelFromHtml;EditorUi.prototype.extractGraphModelFromHtml=function(c){var b=a.apply(this,arguments);if(null==b)try{var d=c.indexOf("<mxfile ");if(0<=d){var e=c.lastIndexOf("</mxfile>");e>d&&(b=c.substring(d,e+15).replace(/>/g,">").replace(/</g,"<").replace(/\\"/g,'"').replace(/\n/g,""))}else var r=mxUtils.parseXml(c),h=this.editor.extractGraphModel(r.documentElement,null!=this.pages||"hidden"==this.diagramContainer.style.visibility),b=null!= +h?mxUtils.getXml(h):""}catch(m){}return b};EditorUi.prototype.validateFileData=function(a){if(null!=a&&0<a.length){var c=a.indexOf('<meta charset="utf-8">');0<=c&&(a=a.slice(0,c)+'<meta charset="utf-8"/>'+a.slice(c+23-1,a.length))}return a};EditorUi.prototype.replaceFileData=function(a){a=this.validateFileData(a);a=null!=a&&0<a.length?mxUtils.parseXml(a).documentElement:null;var c=null!=a?this.editor.extractGraphModel(a,!0):null;null!=c&&(a=c);if(null!=a){c=this.editor.graph;c.model.beginUpdate(); +try{var b=null!=this.pages?this.pages.slice():null,d=a.getElementsByTagName("diagram");if("0"!=urlParams.pages||1<d.length||1==d.length&&d[0].hasAttribute("name")){this.fileNode=a;this.pages=null!=this.pages?this.pages:[];for(var e=d.length-1;0<=e;e--){var h=this.updatePageRoot(new DiagramPage(d[e]));null==h.getName()&&h.setName(mxResources.get("pageWithNumber",[e+1]));c.model.execute(new ChangePage(this,h,0==e?h:null,0))}}else"0"!=urlParams.pages&&null==this.fileNode&&(this.fileNode=a.ownerDocument.createElement("mxfile"), +this.currentPage=new DiagramPage(a.ownerDocument.createElement("diagram")),this.currentPage.setName(mxResources.get("pageWithNumber",[1])),c.model.execute(new ChangePage(this,this.currentPage,this.currentPage,0))),this.editor.setGraphXml(a),null!=this.currentPage&&(this.currentPage.root=this.editor.graph.model.root);if(null!=b)for(e=0;e<b.length;e++)c.model.execute(new ChangePage(this,b[e],null))}finally{c.model.endUpdate()}}};EditorUi.prototype.createFileData=function(a,b,d,e,r,h,m,k,v,l){b=null!= +b?b:this.editor.graph;r=null!=r?r:!1;v=null!=v?v:!0;var c,f=null;null==d||d.getMode()==App.MODE_DEVICE||d.getMode()==App.MODE_BROWSER?c="_blank":f=c=e;if(null==a)return"";var g=a;if("mxfile"!=g.nodeName.toLowerCase()){var n=b.zapGremlins(mxUtils.getXml(a)),g=b.compress(n);if(b.decompress(g)!=n)return n;n=a.ownerDocument.createElement("diagram");n.setAttribute("id",Editor.guid());mxUtils.setTextContent(n,g);g=a.ownerDocument.createElement("mxfile");g.appendChild(n)}l?(g=g.cloneNode(!0),g.removeAttribute("userAgent"), +g.removeAttribute("version"),g.removeAttribute("editor"),g.removeAttribute("type")):(g.setAttribute("userAgent",navigator.userAgent),g.setAttribute("version",EditorUi.VERSION),g.setAttribute("editor","www.draw.io"),a=null!=d?d.getMode():this.mode,null!=a&&g.setAttribute("type",a));a=mxUtils.getXml(g);if(!h&&!r&&(m||null!=d&&/(\.html)$/i.test(d.getTitle())))a=this.getHtml2(mxUtils.getXml(g),b,null!=d?d.getTitle():null,c,f);else if(h||!r&&null!=d&&/(\.svg)$/i.test(d.getTitle()))null==d||d.getMode()!= +App.MODE_DEVICE&&d.getMode()!=App.MODE_BROWSER||(e=null),a=this.getEmbeddedSvg(a,b,e,null,k,v,f);return a};EditorUi.prototype.getXmlFileData=function(a,b){a=null!=a?a:!0;b=null!=b?b:!1;var c=this.editor.getGraphXml(a);if(a&&null!=this.fileNode&&null!=this.currentPage)if(c=this.editor.graph.compress(this.editor.graph.zapGremlins(mxUtils.getXml(c))),mxUtils.setTextContent(this.currentPage.node,c),c=this.fileNode.cloneNode(!1),b)c.appendChild(this.currentPage.node);else for(var d=0;d<this.pages.length;d++){var f= +this.pages[d].mapping;if(this.currentPage!=this.pages[d]&&null!=f&&f.needsUpdate){var e=(new mxCodec(mxUtils.createXmlDocument())).encode(f.graphModel);f.writeRealtimeToNode(e);mxUtils.setTextContent(this.pages[d].node,this.editor.graph.compressNode(e));f.needsUpdate=!1}c.appendChild(this.pages[d].node)}return c};EditorUi.prototype.getFileData=function(a,b,d,e,r,h,m,k,v){r=null!=r?r:!0;m=null!=m?m:this.getXmlFileData(r,null!=h?h:!1);v=null!=v?v:this.getCurrentFile();h=this.editor.graph;if(null!=this.pages&& +this.currentPage!=this.pages[0]&&(b||!a&&null!=v&&/(\.svg)$/i.test(v.getTitle()))){h=this.createTemporaryGraph(h.getStylesheet());var c=h.getGlobalVariable,f=this.pages[0];h.getGlobalVariable=function(a){return"page"==a?f.getName():"pagenumber"==a?1:c.apply(this,arguments)};document.body.appendChild(h.container);h.model.setRoot(f.root)}a=this.createFileData(m,h,v,window.location.href,a,b,d,e,r,k);h!=this.editor.graph&&h.container.parentNode.removeChild(h.container);return a};EditorUi.prototype.getHtml= +function(a,b,d,e,r,h){h=null!=h?h:!0;var c=null,f="https://www.draw.io/js/embed-static.min.js";if(null!=b){var c=h?b.getGraphBounds():b.getBoundingBox(b.getSelectionCells()),g=b.view.scale;h=Math.floor(c.x/g-b.view.translate.x);g=Math.floor(c.y/g-b.view.translate.y);c=b.background;null==r&&(b=this.getBasenames().join(";"),0<b.length&&(f="https://www.draw.io/embed.js?s="+b));a.setAttribute("x0",h);a.setAttribute("y0",g)}null!=a&&(a.setAttribute("pan","1"),a.setAttribute("zoom","1"),a.setAttribute("resize", +"0"),a.setAttribute("fit","0"),a.setAttribute("border","20"),a.setAttribute("links","1"),null!=e&&a.setAttribute("edit",e));null!=r&&(r=r.replace(/&/g,"&"));a=null!=a?this.editor.graph.zapGremlins(mxUtils.getXml(a)):"";e=this.editor.graph.compress(a);this.editor.graph.decompress(e)!=a&&(e=encodeURIComponent(a));return(null==r?'\x3c!--[if IE]><meta http-equiv="X-UA-Compatible" content="IE=5,IE=9" ><![endif]--\x3e\n':"")+"<!DOCTYPE html>\n<html"+(null!=r?' xmlns="http://www.w3.org/1999/xhtml">': ">")+"\n<head>\n"+(null==r?null!=d?"<title>"+mxUtils.htmlEntities(d)+"</title>\n":"":"<title>Draw.io Diagram</title>\n")+(null!=r?'<meta http-equiv="refresh" content="0;URL=\''+r+"'\"/>\n":"")+"</head>\n<body"+(null==r&&null!=c&&c!=mxConstants.NONE?' style="background-color:'+c+';">':">")+'\n<div class="mxgraph" style="position:relative;overflow:auto;width:100%;">\n<div style="width:1px;height:1px;overflow:hidden;">'+e+"</div>\n</div>\n"+(null==r?'<script type="text/javascript" src="'+f+'">\x3c/script>': '<a style="position:absolute;top:50%;left:50%;margin-top:-128px;margin-left:-64px;" href="'+r+'" target="_blank"><img border="0" src="https://www.draw.io/images/drawlogo128.png"/></a>')+"\n</body>\n</html>\n"};EditorUi.prototype.getHtml2=function(a,b,d,e,r){null!=r&&(r=r.replace(/&/g,"&"));a={highlight:"#0000ff",nav:this.editor.graph.foldingEnabled,resize:!0,xml:this.editor.graph.zapGremlins(a),toolbar:"pages zoom layers lightbox"};null!=this.pages&&null!=this.currentPage&&(a.page=mxUtils.indexOf(this.pages, this.currentPage));return(null==r?'\x3c!--[if IE]><meta http-equiv="X-UA-Compatible" content="IE=5,IE=9" ><![endif]--\x3e\n':"")+"<!DOCTYPE html>\n<html"+(null!=r?' xmlns="http://www.w3.org/1999/xhtml">':">")+"\n<head>\n"+(null==r?null!=d?"<title>"+mxUtils.htmlEntities(d)+"</title>\n":"":"<title>Draw.io Diagram</title>\n")+(null!=r?'<meta http-equiv="refresh" content="0;URL=\''+r+"'\"/>\n":"")+'<meta charset="utf-8"/>\n</head>\n<body>\n<div class="mxgraph" style="max-width:100%;border:1px solid transparent;" data-mxgraph="'+ mxUtils.htmlEntities(JSON.stringify(a))+'"></div>\n'+(null==r?'<script type="text/javascript" src="https://www.draw.io/js/viewer.min.js">\x3c/script>':'<a style="position:absolute;top:50%;left:50%;margin-top:-128px;margin-left:-64px;" href="'+r+'" target="_blank"><img border="0" src="https://www.draw.io/images/drawlogo128.png"/></a>')+"\n</body>\n</html>\n"};EditorUi.prototype.setFileData=function(a){a=this.validateFileData(a);this.pages=this.fileNode=this.currentPage=null;var c=null!=a&&0<a.length? mxUtils.parseXml(a).documentElement:null;a=null!=c?this.editor.extractGraphModel(c,!0):null;null!=a&&(c=a);if(null!=c&&"mxfile"==c.nodeName&&(a=c.getElementsByTagName("diagram"),"0"!=urlParams.pages||1<a.length||1==a.length&&a[0].hasAttribute("name"))){this.fileNode=c;this.pages=[];for(c=0;c<a.length;c++){var b=new DiagramPage(a[c]);null==b.getName()&&b.setName(mxResources.get("pageWithNumber",[c+1]));this.pages.push(b)}this.currentPage=this.pages[Math.max(0,Math.min(this.pages.length-1,urlParams.page|| 0))];c=this.currentPage.node}"0"!=urlParams.pages&&null==this.fileNode&&null!=c&&(this.fileNode=c.ownerDocument.createElement("mxfile"),this.currentPage=new DiagramPage(c.ownerDocument.createElement("diagram")),this.currentPage.setName(mxResources.get("pageWithNumber",[1])),this.pages=[this.currentPage]);this.editor.setGraphXml(c);null!=this.currentPage&&(this.currentPage.root=this.editor.graph.model.root)};EditorUi.prototype.getBaseFilename=function(a){var c=this.getCurrentFile(),c=null!=c&&null!= -c.getTitle()?c.getTitle():this.defaultFilename;if(/(\.xml)$/i.test(c)||/(\.html)$/i.test(c)||/(\.svg)$/i.test(c)||/(\.png)$/i.test(c))c=c.substring(0,c.lastIndexOf("."));!a&&null!=this.pages&&1<this.pages.length&&null!=this.currentPage&&null!=this.currentPage.node.getAttribute("name")&&0<this.currentPage.getName().length&&(c=c+"-"+this.currentPage.getName());return c};EditorUi.prototype.downloadFile=function(a,b,d,e,r,l,n){try{e=null!=e?e:this.editor.graph.isSelectionEmpty();var c=this.getBaseFilename(!r), +c.getTitle()?c.getTitle():this.defaultFilename;if(/(\.xml)$/i.test(c)||/(\.html)$/i.test(c)||/(\.svg)$/i.test(c)||/(\.png)$/i.test(c))c=c.substring(0,c.lastIndexOf("."));!a&&null!=this.pages&&1<this.pages.length&&null!=this.currentPage&&null!=this.currentPage.node.getAttribute("name")&&0<this.currentPage.getName().length&&(c=c+"-"+this.currentPage.getName());return c};EditorUi.prototype.downloadFile=function(a,b,d,e,r,h,m){try{e=null!=e?e:this.editor.graph.isSelectionEmpty();var c=this.getBaseFilename(!r), f=c+"."+a;if("xml"==a){var g='<?xml version="1.0" encoding="UTF-8"?>\n'+(b?mxUtils.getXml(this.editor.getGraphXml(e)):this.getFileData(!0,null,null,null,e,r));this.saveData(f,a,g,"text/xml")}else if("html"==a)g=this.getHtml2(this.getFileData(!0),this.editor.graph,c),this.saveData(f,a,g,"text/html");else if("svg"!=a&&"xmlsvg"!=a||!this.spinner.spin(document.body,mxResources.get("export")))"xmlpng"==a?f=c+".png":"jpeg"==a&&(f=c+".jpg"),this.saveRequest(f,a,mxUtils.bind(this,function(c,b){try{var d= -this.editor.graph.pageVisible;null!=l&&(this.editor.graph.pageVisible=l);var f=this.createDownloadRequest(c,a,e,b,n);this.editor.graph.pageVisible=d;return f}catch(x){this.handleError(x)}}));else{var k=null,h=mxUtils.bind(this,function(a){a.length<=MAX_REQUEST_SIZE?this.saveData(f,"svg",a,"image/svg+xml"):this.handleError({message:mxResources.get("drawingTooLarge")},mxResources.get("error"),mxUtils.bind(this,function(){mxUtils.popup(k)}))});if("svg"==a){var m=this.editor.graph.background;if(n||m== -mxConstants.NONE)m=null;var p=this.editor.graph.getSvg(m,null,null,null,null,e);d&&this.editor.graph.addSvgShadow(p);this.convertImages(p,mxUtils.bind(this,mxUtils.bind(this,function(a){this.spinner.stop();h('<?xml version="1.0" encoding="UTF-8"?>\n<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">\n'+mxUtils.getXml(a))})))}else f=c+".svg",k=this.getFileData(!1,!0,null,mxUtils.bind(this,function(a){this.spinner.stop();h(a)}),e)}}catch(G){this.handleError(G)}}; +this.editor.graph.pageVisible;null!=h&&(this.editor.graph.pageVisible=h);var f=this.createDownloadRequest(c,a,e,b,m);this.editor.graph.pageVisible=d;return f}catch(x){this.handleError(x)}}));else{var n=null,k=mxUtils.bind(this,function(a){a.length<=MAX_REQUEST_SIZE?this.saveData(f,"svg",a,"image/svg+xml"):this.handleError({message:mxResources.get("drawingTooLarge")},mxResources.get("error"),mxUtils.bind(this,function(){mxUtils.popup(n)}))});if("svg"==a){var l=this.editor.graph.background;if(m||l== +mxConstants.NONE)l=null;var p=this.editor.graph.getSvg(l,null,null,null,null,e);d&&this.editor.graph.addSvgShadow(p);this.convertImages(p,mxUtils.bind(this,mxUtils.bind(this,function(a){this.spinner.stop();k('<?xml version="1.0" encoding="UTF-8"?>\n<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">\n'+mxUtils.getXml(a))})))}else f=c+".svg",n=this.getFileData(!1,!0,null,mxUtils.bind(this,function(a){this.spinner.stop();k(a)}),e)}}catch(G){this.handleError(G)}}; EditorUi.prototype.createDownloadRequest=function(a,b,d,e,r){var c=this.editor.graph.getGraphBounds();d=this.getFileData(!0,null,null,null,d,"xmlpng"!=b);var f="";if(c.width*c.height>MAX_AREA||d.length>MAX_REQUEST_SIZE)throw{message:mxResources.get("drawingTooLarge")};c="0";if("xmlpng"==b&&(c="1",b="png",null!=this.pages&&null!=this.currentPage))for(var g=0;g<this.pages.length;g++)if(this.pages[g]==this.currentPage){f="&from="+g;break}g=this.editor.graph.background;"png"==b&&r&&(g=mxConstants.NONE); return new mxXmlRequest(EXPORT_URL,"format="+b+f+"&bg="+(null!=g?g:mxConstants.NONE)+"&base64="+e+"&embedXml="+c+"&xml="+encodeURIComponent(d)+(null!=a?"&filename="+encodeURIComponent(a):""))};EditorUi.prototype.setMode=function(a,b){this.mode=a};EditorUi.prototype.loadDescriptor=function(a,b,d){var c=window.location.hash,f=mxUtils.bind(this,function(d){var f=null!=a.data?a.data:"";null!=d&&0<d.length&&(0<f.length&&(f+="\n"),f+=d);d=new LocalFile(this,"csv"!=a.format&&0<f.length?f:this.emptyDiagramXml, -null!=urlParams.title?decodeURIComponent(urlParams.title):this.defaultFilename,!0);d.getHash=function(){return c};this.fileLoaded(d);"csv"==a.format&&this.importCsv(f,mxUtils.bind(this,function(a){this.editor.undoManager.clear();this.editor.setModified(!1);this.editor.setStatus("")}));if(null!=a.update){var e=null!=a.interval?parseInt(a.interval):6E4,g=null,k=mxUtils.bind(this,function(){var c=this.currentPage;mxUtils.post(a.update,"xml="+encodeURIComponent(mxUtils.getXml(this.editor.getGraphXml())), -mxUtils.bind(this,function(a){c===this.currentPage&&(200<=a.getStatus()&&300>=a.getStatus()?(this.updateDiagram(a.getText()),l()):this.handleError({message:mxResources.get("error")+" "+a.getStatus()}))}),mxUtils.bind(this,function(a){this.handleError(a)}))}),l=mxUtils.bind(this,function(){window.clearTimeout(g);g=window.setTimeout(k,e)});this.editor.addListener("pageSelected",mxUtils.bind(this,function(){l();k()}));l();k()}null!=b&&b()});if(null!=a.url&&0<a.url.length){var e=a.url;/^https?:\/\//.test(e)&& +null!=urlParams.title?decodeURIComponent(urlParams.title):this.defaultFilename,!0);d.getHash=function(){return c};this.fileLoaded(d);"csv"==a.format&&this.importCsv(f,mxUtils.bind(this,function(a){this.editor.undoManager.clear();this.editor.setModified(!1);this.editor.setStatus("")}));if(null!=a.update){var e=null!=a.interval?parseInt(a.interval):6E4,g=null,h=mxUtils.bind(this,function(){var c=this.currentPage;mxUtils.post(a.update,"xml="+encodeURIComponent(mxUtils.getXml(this.editor.getGraphXml())), +mxUtils.bind(this,function(a){c===this.currentPage&&(200<=a.getStatus()&&300>=a.getStatus()?(this.updateDiagram(a.getText()),m()):this.handleError({message:mxResources.get("error")+" "+a.getStatus()}))}),mxUtils.bind(this,function(a){this.handleError(a)}))}),m=mxUtils.bind(this,function(){window.clearTimeout(g);g=window.setTimeout(h,e)});this.editor.addListener("pageSelected",mxUtils.bind(this,function(){m();h()}));m();h()}null!=b&&b()});if(null!=a.url&&0<a.url.length){var e=a.url;/^https?:\/\//.test(e)&& !this.isCorsEnabledForUrl(e)&&(e=PROXY_URL+"?url="+encodeURIComponent(a.url));this.loadUrl(e,mxUtils.bind(this,function(a){f(a)}),mxUtils.bind(this,function(a){null!=d&&d(a)}))}else f("")};EditorUi.prototype.updateDiagram=function(a){function c(a){var c=new mxCellOverlay(a.image||d.warningImage,a.tooltip,a.align,a.valign,a.offset);c.addListener(mxEvent.CLICK,function(c,b){editorUi.alert(a.tooltip)});return c}var b=null;if(null!=a&&0<a.length&&(b=mxUtils.parseXml(a),a=null!=b?b.documentElement:null, -null!=a&&"updates"==a.nodeName)){var d=this.editor.graph,e=d.getModel();e.beginUpdate();var l=null;try{for(a=a.firstChild;null!=a;){if("update"==a.nodeName){var n=e.getCell(a.getAttribute("id"));if(null!=n){try{var h=a.getAttribute("value");if(null!=h){var v=mxUtils.parseXml(h).documentElement;if(null!=v)if("1"==v.getAttribute("replace-value"))e.setValue(n,v);else for(var m=v.attributes,p=0;p<m.length;p++)d.setAttributeForCell(n,m[p].nodeName,0<m[p].nodeValue.length?m[p].nodeValue:null)}}catch(x){null!= -window.console&&console.log("Error in value for "+n.id+": "+x)}try{var t=a.getAttribute("style");null!=t&&d.model.setStyle(n,t)}catch(x){null!=window.console&&console.log("Error in style for "+n.id+": "+x)}try{var q=a.getAttribute("icon");if(null!=q){var u=0<q.length?JSON.parse(q):null;null!=u&&u.append||d.removeCellOverlays(n);null!=u&&d.addCellOverlay(n,c(u))}}catch(x){null!=window.console&&console.log("Error in icon for "+n.id+": "+x)}try{var G=a.getAttribute("geometry");if(null!=G){var G=JSON.parse(G), -A=d.getCellGeometry(n);if(null!=A){A=A.clone();for(key in G){var J=parseFloat(G[key]);"dx"==key?A.x+=J:"dy"==key?A.y+=J:"dw"==key?A.width+=J:"dh"==key?A.height+=J:A[key]=parseFloat(G[key])}d.model.setGeometry(n,A)}}}catch(x){null!=window.console&&console.log("Error in icon for "+n.id+": "+x)}}}else if("model"==a.nodeName){for(var K=a.firstChild;null!=K&&K.nodeType!=mxConstants.NODETYPE_ELEMENT;)K=K.nextSibling;null!=K&&(new mxCodec(a.firstChild)).decode(K,e)}else if("view"==a.nodeName){if(a.hasAttribute("scale")&& -(d.view.scale=parseFloat(a.getAttribute("scale"))),a.hasAttribute("dx")||a.hasAttribute("dy"))d.view.translate=new mxPoint(parseFloat(a.getAttribute("dx")||0),parseFloat(a.getAttribute("dy")||0))}else"fit"==a.nodeName&&(l=a.hasAttribute("max-scale")?parseFloat(a.getAttribute("max-scale")):1);a=a.nextSibling}}finally{e.endUpdate()}null!=l&&this.chromelessResize&&this.chromelessResize(!0,l)}return b};EditorUi.prototype.fileLoaded=function(a){var c=!1;this.hideDialog();var b=this.getCurrentFile();this.setCurrentFile(null); -null!=b&&(b.removeListener(this.descriptorChangedListener),b.close());this.editor.graph.model.clear();this.editor.undoManager.clear();var d=mxUtils.bind(this,function(){this.setGraphEnabled(!1);this.setCurrentFile(null);null!=b&&this.updateDocumentTitle();this.editor.graph.model.clear();this.editor.undoManager.clear();this.setBackgroundImage(null);null!=window.location.hash&&0<window.location.hash.length&&(window.location.hash="");null!=this.fname&&(this.fnameWrapper.style.display="none",this.fname.innerHTML= -"",this.fname.setAttribute("title",mxResources.get("rename")));this.editor.setStatus("");this.updateUi();this.showSplash()});if(null!=a)try{this.setCurrentFile(a);a.addListener("descriptorChanged",this.descriptorChangedListener);a.addListener("contentChanged",this.descriptorChangedListener);a.open();this.setGraphEnabled(!0);this.setMode(a.getMode());this.editor.undoManager.clear();this.descriptorChanged();this.updateUi();null==a.realtime&&(a.isEditable()?this.editor.setStatus(""):this.editor.setStatus('<span class="geStatusAlert" style="margin-left:8px;">'+ -mxUtils.htmlEntities(mxResources.get("readOnly"))+"</span>"));!this.editor.isChromelessView()||this.editor.editable?(this.editor.graph.selectUnlockedLayer(),this.showLayersDialog(),this.restoreLibraries(),window.self!==window.top&&window.focus()):this.editor.graph.isLightboxView()&&this.lightboxFit();this.chromelessResize&&this.chromelessResize();this.editor.fireEvent(new mxEventObject("fileLoaded"));c=!0;this.isOffline()||null==a.getMode()||this.logEvent({category:"File",action:"open",label:a.getMode()}); -if(this.mode==a.getMode()&&a.getMode()!=App.MODE_DEVICE&&null!=a.getMode())try{this.addRecent({id:a.getHash(),title:a.getTitle(),mode:a.getMode()})}catch(r){}try{mxSettings.setOpenCounter(mxSettings.getOpenCounter()+1),mxSettings.save()}catch(r){}}catch(r){null!=window.console&&console.log("error in fileLoaded:",a,r);if(EditorUi.enableLogging&&!this.isOffline())try{(new Image).src=(null!=window.DRAWIO_LOG_URL?window.DRAWIO_LOG_URL:"")+"/log?v="+encodeURIComponent(EditorUi.VERSION)+"&msg=errorInFileLoaded:url:"+ -encodeURIComponent(window.location.href)+(null!=r&&null!=r.message?":err:"+encodeURIComponent(r.message):"")+(null!=r&&null!=r.stack?"&stack="+encodeURIComponent(r.stack):"")}catch(l){}this.handleError(r,mxResources.get("errorLoadingFile"),mxUtils.bind(this,function(){null!=urlParams.url&&this.spinner.spin(document.body,mxResources.get("reconnecting"))?window.location.search=this.getSearch(["url"]):null!=b?b.constructor==DriveFile?this.loadFile(b.getHash()):this.fileLoaded(b):d()}))}else d();return c}; -EditorUi.prototype.descriptorChanged=function(){};EditorUi.prototype.logEvent=function(a){if(EditorUi.enableLogging)try{var c=null!=window.DRAWIO_LOG_URL?window.DRAWIO_LOG_URL:"";(new Image).src=c+"/images/1x1.png?v="+encodeURIComponent(EditorUi.VERSION)+(null!=a?"&data="+encodeURIComponent(JSON.stringify(a)):"")}catch(g){}};EditorUi.prototype.restoreLibraries=function(){};EditorUi.prototype.saveLibrary=function(a,b,d,e,r,l,n){};EditorUi.prototype.isScratchpadEnabled=function(){return isLocalStorage|| -mxClient.IS_CHROMEAPP};EditorUi.prototype.toggleScratchpad=function(){this.isScratchpadEnabled()&&(null==this.scratchpad?this.getLocalData(".scratchpad",mxUtils.bind(this,function(a){null==a&&(a=this.emptyLibraryXml);this.loadLibrary(new StorageLibrary(this,a,".scratchpad"))})):this.closeLibrary(this.scratchpad))};EditorUi.prototype.createLibraryDataFromImages=function(a){var c=mxUtils.createXmlDocument(),b=c.createElement("mxlibrary");mxUtils.setTextContent(b,JSON.stringify(a));c.appendChild(b); -return mxUtils.getXml(c)};EditorUi.prototype.closeLibrary=function(a){null!=a&&(this.removeLibrarySidebar(a.getHash()),a.constructor!=LocalLibrary&&mxSettings.removeCustomLibrary(a.getHash()),".scratchpad"==a.title&&(this.scratchpad=null))};EditorUi.prototype.removeLibrarySidebar=function(a){var c=this.sidebar.palettes[a];if(null!=c){for(var b=0;b<c.length;b++)c[b].parentNode.removeChild(c[b]);delete this.sidebar.palettes[a]}};EditorUi.prototype.repositionLibrary=function(a){var c=this.sidebar.container; -if(null==a){var b=this.sidebar.palettes["L.scratchpad"];null==b&&(b=this.sidebar.palettes.search);null!=b&&(a=b[b.length-1].nextSibling)}a=null!=a?a:c.firstChild.nextSibling.nextSibling;var b=c.lastChild,d=b.previousSibling;c.insertBefore(b,a);c.insertBefore(d,b)};EditorUi.prototype.loadLibrary=function(a){var c=mxUtils.parseXml(a.getData());if("mxlibrary"==c.documentElement.nodeName){var b=JSON.parse(mxUtils.getTextContent(c.documentElement));this.libraryLoaded(a,b,c.documentElement.getAttribute("title"))}else throw{message:mxResources.get("notALibraryFile")}; -};EditorUi.prototype.getLibraryStorageHint=function(a){return""};EditorUi.prototype.libraryLoaded=function(a,b,d){if(null!=this.sidebar){a.constructor!=LocalLibrary&&mxSettings.addCustomLibrary(a.getHash());".scratchpad"==a.title&&(this.scratchpad=a);var c=this.sidebar.palettes[a.getHash()],c=null!=c?c[c.length-1].nextSibling:null;this.removeLibrarySidebar(a.getHash());var f=null,e=mxUtils.bind(this,function(c,b){0==c.length&&a.isEditable()?(null==f&&(f=document.createElement("div"),mxUtils.setPrefixedStyle(f.style, -"borderRadius","6px"),f.style.border="3px dotted lightGray",f.style.textAlign="center",f.style.padding="8px",f.style.color="#B3B3B3",mxUtils.write(f,mxResources.get("dragElementsHere"))),b.appendChild(f)):this.addLibraryEntries(c,b)});if(null!=this.sidebar&&null!=b)for(var g=0;g<b.length;g++)mxUtils.bind(this,function(a){var c=a.data;null!=c&&null!=a.title?this.sidebar.addEntry(a.title,mxUtils.bind(this,function(){c=this.convertDataUri(c);var b="shape=image;verticalLabelPosition=bottom;verticalAlign=top;imageAspect=0;"; -"fixed"==a.aspect&&(b+="aspect=fixed;");return this.sidebar.createVertexTemplate(b+"image="+c,a.w,a.h,"",a.title||"",!1,!1,!0)})):null!=a.xml&&null!=a.title&&this.sidebar.addEntry(a.title,mxUtils.bind(this,function(){var c=this.stringToCells(this.editor.graph.decompress(a.xml));return this.sidebar.createVertexTemplateFromCells(c,a.w,a.h,a.title||"",!0,!1,!0)}))})(b[g]);d=null!=d&&0<d.length?d:a.getTitle();var h=this.sidebar.addPalette(a.getHash(),d,!0,mxUtils.bind(this,function(a){e(b,a)}));this.repositionLibrary(c); -var v=h.parentNode.previousSibling;d=v.getAttribute("title");null!=d&&0<d.length&&".scratchpad"!=a.title&&v.setAttribute("title",this.getLibraryStorageHint(a)+"\n"+d);var m=document.createElement("div");m.style.position="absolute";m.style.right="0px";m.style.top="0px";m.style.padding="8px";mxClient.IS_QUIRKS||8==document.documentMode||(m.style.backgroundColor="inherit");v.style.position="relative";var p=document.createElement("img");p.setAttribute("src",Dialog.prototype.closeImage);p.setAttribute("title", -mxResources.get("close"));p.setAttribute("valign","absmiddle");p.setAttribute("border","0");p.style.margin="0 3px";var t=null;if(".scratchpad"!=a.title||this.closableScratchpad)m.appendChild(p),mxEvent.addListener(p,"click",mxUtils.bind(this,function(c){if(!mxEvent.isConsumed(c)){var b=mxUtils.bind(this,function(){this.closeLibrary(a)});null!=t?this.confirm(mxResources.get("allChangesLost"),null,b,mxResources.get("cancel"),mxResources.get("discardChanges")):b();mxEvent.consume(c)}}));if(a.isEditable()){var q= -this.editor.graph,u=null,G=mxUtils.bind(this,function(c){this.showLibraryDialog(a.getTitle(),h,b,a,a.getMode());mxEvent.consume(c)}),A=mxUtils.bind(this,function(c){a.setModified(!0);a.isAutosave()?(null!=u&&null!=u.parentNode&&u.parentNode.removeChild(u),u=p.cloneNode(!1),u.setAttribute("src",Editor.spinImage),u.setAttribute("title",mxResources.get("saving")),u.style.cursor="default",u.style.marginRight="2px",u.style.marginTop="-2px",m.insertBefore(u,m.firstChild),v.style.paddingRight=18*m.childNodes.length+ -"px",this.saveLibrary(a.getTitle(),b,a,a.getMode(),!0,!0,function(){null!=u&&null!=u.parentNode&&(u.parentNode.removeChild(u),v.style.paddingRight=18*m.childNodes.length+"px")})):null==t&&(t=p.cloneNode(!1),t.setAttribute("src",IMAGE_PATH+"/download.png"),t.setAttribute("title",mxResources.get("save")),m.insertBefore(t,m.firstChild),mxEvent.addListener(t,"click",mxUtils.bind(this,function(c){this.saveLibrary(a.getTitle(),b,a,a.getMode(),a.constructor==LocalLibrary,!0,function(){null==t||a.isModified()|| -(v.style.paddingRight=18*m.childNodes.length+"px",t.parentNode.removeChild(t),t=null)});mxEvent.consume(c)})),v.style.paddingRight=18*m.childNodes.length+"px")}),J=mxUtils.bind(this,function(a,c,d,e){a=q.cloneCells(mxUtils.sortCells(q.model.getTopmostCells(a)));for(var g=0;g<a.length;g++){var k=q.getCellGeometry(a[g]);null!=k&&k.translate(-c.x,-c.y)}h.appendChild(this.sidebar.createVertexTemplateFromCells(a,c.width,c.height,e||"",!0,!1,!1));a={xml:this.editor.graph.compress(mxUtils.getXml(this.editor.graph.encodeCells(a))), -w:c.width,h:c.height};null!=e&&(a.title=e);b.push(a);A(d);null!=f&&null!=f.parentNode&&0<b.length&&(f.parentNode.removeChild(f),f=null)}),K=mxUtils.bind(this,function(a){if(q.isSelectionEmpty())q.getRubberband().isActive()?(q.getRubberband().execute(a),q.getRubberband().reset()):this.showError(mxResources.get("error"),mxResources.get("nothingIsSelected"),mxResources.get("ok"));else{var c=q.getSelectionCells(),b=q.view.getBounds(c),d=q.view.scale;b.x/=d;b.y/=d;b.width/=d;b.height/=d;b.x-=q.view.translate.x; -b.y-=q.view.translate.y;J(c,b)}mxEvent.consume(a)});h.style.border="3px solid transparent";mxEvent.addGestureListeners(h,function(){},mxUtils.bind(this,function(a){q.isMouseDown&&null!=q.panningManager&&null!=q.graphHandler.shape&&(q.graphHandler.shape.node.style.visibility="hidden",null!=f?f.style.border="3px dotted rgb(254, 137, 12)":h.style.border="3px dotted rgb(254, 137, 12)",h.style.cursor="copy",q.panningManager.stop(),q.autoScroll=!1,null!=q.graphHandler.guide&&q.graphHandler.guide.setVisible(!1), -null!=q.graphHandler.hint&&(q.graphHandler.hint.style.visibility="hidden"),mxEvent.consume(a))}),mxUtils.bind(this,function(a){q.isMouseDown&&null!=q.panningManager&&null!=q.graphHandler&&(h.style.border="3px solid transparent",null!=f&&(f.style.border="3px dotted lightGray"),h.style.cursor="default",this.sidebar.showTooltips=!0,q.panningManager.stop(),q.graphHandler.reset(),q.isMouseDown=!1,q.autoScroll=!0,K(a),mxEvent.consume(a))}));mxEvent.addListener(h,"mouseleave",mxUtils.bind(this,function(a){q.isMouseDown&& -null!=q.graphHandler.shape&&(q.graphHandler.shape.node.style.visibility="visible",h.style.border="3px solid transparent",h.style.cursor="",q.autoScroll=!0,null!=q.graphHandler.guide&&q.graphHandler.guide.setVisible(!0),null!=q.graphHandler.hint&&(q.graphHandler.hint.style.visibility="visible"),null!=f&&(f.style.border="3px dotted lightGray"))}));Graph.fileSupport&&(mxEvent.addListener(h,"dragover",mxUtils.bind(this,function(a){null!=f?f.style.border="3px dotted rgb(254, 137, 12)":h.style.border="3px dotted rgb(254, 137, 12)"; -a.dataTransfer.dropEffect="copy";h.style.cursor="copy";this.sidebar.hideTooltip();a.stopPropagation();a.preventDefault()})),mxEvent.addListener(h,"drop",mxUtils.bind(this,function(a){h.style.border="3px solid transparent";h.style.cursor="";null!=f&&(f.style.border="3px dotted lightGray");0<a.dataTransfer.files.length&&this.importFiles(a.dataTransfer.files,0,0,this.maxImageSize,mxUtils.bind(this,function(c,d,g,k,l,n,r,t,v){if(null!=c&&"image/"==d.substring(0,6))c="shape=image;verticalLabelPosition=bottom;verticalAlign=top;aspect=fixed;image="+ -this.convertDataUri(c),c=[new mxCell("",new mxGeometry(0,0,l,n),c)],c[0].vertex=!0,J(c,new mxRectangle(0,0,l,n),a,mxEvent.isAltDown(a)?null:r.substring(0,r.lastIndexOf(".")).replace(/_/g," ")),null!=f&&null!=f.parentNode&&0<b.length&&(f.parentNode.removeChild(f),f=null);else{var m=!1,w=mxUtils.bind(this,function(c,d){if(null!=c&&"text/xml"==d){var g=mxUtils.parseXml(c);if("mxlibrary"==g.documentElement.nodeName)try{var k=JSON.parse(mxUtils.getTextContent(g.documentElement));e(k,h);b=b.concat(k);A(a); -this.spinner.stop();m=!0}catch(Q){}else if("mxfile"==g.documentElement.nodeName)try{for(var l=g.documentElement.getElementsByTagName("diagram"),g=0;g<l.length;g++){var k=mxUtils.getTextContent(l[g]),n=this.stringToCells(this.editor.graph.decompress(k)),r=this.editor.graph.getBoundingBoxFromGeometry(n);J(n,new mxRectangle(0,0,r.width,r.height),a)}m=!0}catch(Q){null!=window.console&&console.log("error in drop handler:",Q)}}m||(this.spinner.stop(),this.handleError({message:mxResources.get("errorLoadingFile")})); -null!=f&&null!=f.parentNode&&0<b.length&&(f.parentNode.removeChild(f),f=null)});null!=v&&null!=r&&(/(\.v(dx|sdx?))($|\?)/i.test(r)||/(\.vs(x|sx?))($|\?)/i.test(r))?this.importVisio(v,function(a){w(a,"text/xml")},null,r):!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(c,r)&&null!=v?this.parseFile(v,mxUtils.bind(this,function(a){4==a.readyState&&(this.spinner.stop(),200<=a.status&&299>=a.status?w(a.responseText,"text/xml"):this.handleError({message:mxResources.get(413==a.status? -"drawingTooLarge":"invalidOrMissingFile")},mxResources.get("errorLoadingFile")))})):w(c,d)}}));a.stopPropagation();a.preventDefault()})),mxEvent.addListener(h,"dragleave",function(a){null!=f?f.style.border="3px dotted lightGray":(h.style.border="3px solid transparent",h.style.cursor="");a.stopPropagation();a.preventDefault()}));p=p.cloneNode(!1);p.setAttribute("src",Editor.editImage);p.setAttribute("title",mxResources.get("edit"));m.insertBefore(p,m.firstChild);mxEvent.addListener(p,"click",G);mxEvent.addListener(h, -"dblclick",function(a){mxEvent.getSource(a)==h&&G(a)});d=p.cloneNode(!1);d.setAttribute("src",Editor.plusImage);d.setAttribute("title",mxResources.get("add"));m.insertBefore(d,m.firstChild);mxEvent.addListener(d,"click",K);this.isOffline()||".scratchpad"!=a.title||null==EditorUi.scratchpadHelpLink||(d=document.createElement("span"),d.setAttribute("title",mxResources.get("help")),d.style.cssText="color:#a3a3a3;text-decoration:none;margin-right:2px;",mxUtils.write(d,"?"),mxEvent.addGestureListeners(d, -mxUtils.bind(this,function(a){this.openLink(EditorUi.scratchpadHelpLink);mxEvent.consume(a)})),m.insertBefore(d,m.firstChild))}v.appendChild(m);v.style.paddingRight=18*m.childNodes.length+"px"}};EditorUi.prototype.addLibraryEntries=function(a,b){for(var c=0;c<a.length;c++){var d=a[c],f=d.data;if(null!=f){var f=this.convertDataUri(f),e="shape=image;verticalLabelPosition=bottom;verticalAlign=top;imageAspect=0;";"fixed"==d.aspect&&(e+="aspect=fixed;");b.appendChild(this.sidebar.createVertexTemplate(e+ +null!=a&&"updates"==a.nodeName)){var d=this.editor.graph,e=d.getModel();e.beginUpdate();var h=null;try{for(a=a.firstChild;null!=a;){if("update"==a.nodeName){var m=e.getCell(a.getAttribute("id"));if(null!=m){try{var k=a.getAttribute("value");if(null!=k){var v=mxUtils.parseXml(k).documentElement;if(null!=v)if("1"==v.getAttribute("replace-value"))e.setValue(m,v);else for(var l=v.attributes,p=0;p<l.length;p++)d.setAttributeForCell(m,l[p].nodeName,0<l[p].nodeValue.length?l[p].nodeValue:null)}}catch(x){null!= +window.console&&console.log("Error in value for "+m.id+": "+x)}try{var t=a.getAttribute("style");null!=t&&d.model.setStyle(m,t)}catch(x){null!=window.console&&console.log("Error in style for "+m.id+": "+x)}try{var q=a.getAttribute("icon");if(null!=q){var u=0<q.length?JSON.parse(q):null;null!=u&&u.append||d.removeCellOverlays(m);null!=u&&d.addCellOverlay(m,c(u))}}catch(x){null!=window.console&&console.log("Error in icon for "+m.id+": "+x)}try{var G=a.getAttribute("geometry");if(null!=G){var G=JSON.parse(G), +B=d.getCellGeometry(m);if(null!=B){B=B.clone();for(key in G){var J=parseFloat(G[key]);"dx"==key?B.x+=J:"dy"==key?B.y+=J:"dw"==key?B.width+=J:"dh"==key?B.height+=J:B[key]=parseFloat(G[key])}d.model.setGeometry(m,B)}}}catch(x){null!=window.console&&console.log("Error in icon for "+m.id+": "+x)}}}else if("model"==a.nodeName){for(var K=a.firstChild;null!=K&&K.nodeType!=mxConstants.NODETYPE_ELEMENT;)K=K.nextSibling;null!=K&&(new mxCodec(a.firstChild)).decode(K,e)}else if("view"==a.nodeName){if(a.hasAttribute("scale")&& +(d.view.scale=parseFloat(a.getAttribute("scale"))),a.hasAttribute("dx")||a.hasAttribute("dy"))d.view.translate=new mxPoint(parseFloat(a.getAttribute("dx")||0),parseFloat(a.getAttribute("dy")||0))}else"fit"==a.nodeName&&(h=a.hasAttribute("max-scale")?parseFloat(a.getAttribute("max-scale")):1);a=a.nextSibling}}finally{e.endUpdate()}null!=h&&this.chromelessResize&&this.chromelessResize(!0,h)}return b};EditorUi.prototype.getCopyFilename=function(a,b){var c=null!=a&&null!=a.getTitle()?a.getTitle():this.defaultFilename, +d="",f=c.lastIndexOf(".");0<=f&&(d=c.substring(f),c=c.substring(0,f));if(b)var e=new Date,f=e.getFullYear(),m=e.getMonth()+1,k=e.getDate(),v=e.getHours(),l=e.getMinutes(),e=e.getSeconds(),c=c+("-"+(f+"-"+m+"-"+k+"-"+v+"-"+l+"-"+e));return c=mxResources.get("copyOf",[c])+d};EditorUi.prototype.fileLoaded=function(a){var c=!1;this.hideDialog();var b=this.getCurrentFile();this.setCurrentFile(null);null!=b&&(b.removeListener(this.descriptorChangedListener),b.close());this.editor.graph.model.clear();this.editor.undoManager.clear(); +var d=mxUtils.bind(this,function(){this.setGraphEnabled(!1);this.setCurrentFile(null);null!=b&&this.updateDocumentTitle();this.editor.graph.model.clear();this.editor.undoManager.clear();this.setBackgroundImage(null);null!=window.location.hash&&0<window.location.hash.length&&(window.location.hash="");null!=this.fname&&(this.fnameWrapper.style.display="none",this.fname.innerHTML="",this.fname.setAttribute("title",mxResources.get("rename")));this.editor.setStatus("");this.updateUi();this.showSplash()}); +if(null!=a)try{this.setCurrentFile(a);a.addListener("descriptorChanged",this.descriptorChangedListener);a.addListener("contentChanged",this.descriptorChangedListener);a.open();this.setGraphEnabled(!0);this.setMode(a.getMode());this.editor.undoManager.clear();this.descriptorChanged();this.updateUi();null==a.realtime&&(a.isEditable()?this.editor.setStatus(""):this.editor.setStatus('<span class="geStatusAlert" style="margin-left:8px;">'+mxUtils.htmlEntities(mxResources.get("readOnly"))+"</span>"));!this.editor.isChromelessView()|| +this.editor.editable?(this.editor.graph.selectUnlockedLayer(),this.showLayersDialog(),this.restoreLibraries(),window.self!==window.top&&window.focus()):this.editor.graph.isLightboxView()&&this.lightboxFit();this.chromelessResize&&this.chromelessResize();this.editor.fireEvent(new mxEventObject("fileLoaded"));c=!0;this.isOffline()||null==a.getMode()||this.logEvent({category:"File",action:"open",label:a.getMode()});if(this.mode==a.getMode()&&a.getMode()!=App.MODE_DEVICE&&null!=a.getMode())try{this.addRecent({id:a.getHash(), +title:a.getTitle(),mode:a.getMode()})}catch(r){}try{mxSettings.setOpenCounter(mxSettings.getOpenCounter()+1),mxSettings.save()}catch(r){}}catch(r){null!=window.console&&console.log("error in fileLoaded:",a,r);if(EditorUi.enableLogging&&!this.isOffline())try{(new Image).src=(null!=window.DRAWIO_LOG_URL?window.DRAWIO_LOG_URL:"")+"/log?v="+encodeURIComponent(EditorUi.VERSION)+"&msg=errorInFileLoaded:url:"+encodeURIComponent(window.location.href)+(null!=r&&null!=r.message?":err:"+encodeURIComponent(r.message): +"")+(null!=r&&null!=r.stack?"&stack="+encodeURIComponent(r.stack):"")}catch(h){}this.handleError(r,mxResources.get("errorLoadingFile"),mxUtils.bind(this,function(){null!=urlParams.url&&this.spinner.spin(document.body,mxResources.get("reconnecting"))?window.location.search=this.getSearch(["url"]):null!=b?b.constructor==DriveFile?this.loadFile(b.getHash()):this.fileLoaded(b):d()}))}else d();return c};EditorUi.prototype.descriptorChanged=function(){};EditorUi.prototype.logEvent=function(a){if(EditorUi.enableLogging)try{var c= +null!=window.DRAWIO_LOG_URL?window.DRAWIO_LOG_URL:"";(new Image).src=c+"/images/1x1.png?v="+encodeURIComponent(EditorUi.VERSION)+(null!=a?"&data="+encodeURIComponent(JSON.stringify(a)):"")}catch(g){}};EditorUi.prototype.restoreLibraries=function(){};EditorUi.prototype.saveLibrary=function(a,b,d,e,r,h,m){};EditorUi.prototype.isScratchpadEnabled=function(){return isLocalStorage||mxClient.IS_CHROMEAPP};EditorUi.prototype.toggleScratchpad=function(){this.isScratchpadEnabled()&&(null==this.scratchpad? +this.getLocalData(".scratchpad",mxUtils.bind(this,function(a){null==a&&(a=this.emptyLibraryXml);this.loadLibrary(new StorageLibrary(this,a,".scratchpad"))})):this.closeLibrary(this.scratchpad))};EditorUi.prototype.createLibraryDataFromImages=function(a){var c=mxUtils.createXmlDocument(),b=c.createElement("mxlibrary");mxUtils.setTextContent(b,JSON.stringify(a));c.appendChild(b);return mxUtils.getXml(c)};EditorUi.prototype.closeLibrary=function(a){null!=a&&(this.removeLibrarySidebar(a.getHash()),a.constructor!= +LocalLibrary&&mxSettings.removeCustomLibrary(a.getHash()),".scratchpad"==a.title&&(this.scratchpad=null))};EditorUi.prototype.removeLibrarySidebar=function(a){var c=this.sidebar.palettes[a];if(null!=c){for(var b=0;b<c.length;b++)c[b].parentNode.removeChild(c[b]);delete this.sidebar.palettes[a]}};EditorUi.prototype.repositionLibrary=function(a){var c=this.sidebar.container;if(null==a){var b=this.sidebar.palettes["L.scratchpad"];null==b&&(b=this.sidebar.palettes.search);null!=b&&(a=b[b.length-1].nextSibling)}a= +null!=a?a:c.firstChild.nextSibling.nextSibling;var b=c.lastChild,d=b.previousSibling;c.insertBefore(b,a);c.insertBefore(d,b)};EditorUi.prototype.loadLibrary=function(a){var c=mxUtils.parseXml(a.getData());if("mxlibrary"==c.documentElement.nodeName){var b=JSON.parse(mxUtils.getTextContent(c.documentElement));this.libraryLoaded(a,b,c.documentElement.getAttribute("title"))}else throw{message:mxResources.get("notALibraryFile")};};EditorUi.prototype.getLibraryStorageHint=function(a){return""};EditorUi.prototype.libraryLoaded= +function(a,b,d){if(null!=this.sidebar){a.constructor!=LocalLibrary&&mxSettings.addCustomLibrary(a.getHash());".scratchpad"==a.title&&(this.scratchpad=a);var c=this.sidebar.palettes[a.getHash()],c=null!=c?c[c.length-1].nextSibling:null;this.removeLibrarySidebar(a.getHash());var f=null,e=mxUtils.bind(this,function(c,b){0==c.length&&a.isEditable()?(null==f&&(f=document.createElement("div"),mxUtils.setPrefixedStyle(f.style,"borderRadius","6px"),f.style.border="3px dotted lightGray",f.style.textAlign= +"center",f.style.padding="8px",f.style.color="#B3B3B3",mxUtils.write(f,mxResources.get("dragElementsHere"))),b.appendChild(f)):this.addLibraryEntries(c,b)});if(null!=this.sidebar&&null!=b)for(var g=0;g<b.length;g++)mxUtils.bind(this,function(a){var c=a.data;null!=c&&null!=a.title?this.sidebar.addEntry(a.title,mxUtils.bind(this,function(){c=this.convertDataUri(c);var b="shape=image;verticalLabelPosition=bottom;verticalAlign=top;imageAspect=0;";"fixed"==a.aspect&&(b+="aspect=fixed;");return this.sidebar.createVertexTemplate(b+ +"image="+c,a.w,a.h,"",a.title||"",!1,!1,!0)})):null!=a.xml&&null!=a.title&&this.sidebar.addEntry(a.title,mxUtils.bind(this,function(){var c=this.stringToCells(this.editor.graph.decompress(a.xml));return this.sidebar.createVertexTemplateFromCells(c,a.w,a.h,a.title||"",!0,!1,!0)}))})(b[g]);d=null!=d&&0<d.length?d:a.getTitle();var k=this.sidebar.addPalette(a.getHash(),d,!0,mxUtils.bind(this,function(a){e(b,a)}));this.repositionLibrary(c);var v=k.parentNode.previousSibling;d=v.getAttribute("title");null!= +d&&0<d.length&&".scratchpad"!=a.title&&v.setAttribute("title",this.getLibraryStorageHint(a)+"\n"+d);var l=document.createElement("div");l.style.position="absolute";l.style.right="0px";l.style.top="0px";l.style.padding="8px";mxClient.IS_QUIRKS||8==document.documentMode||(l.style.backgroundColor="inherit");v.style.position="relative";var p=document.createElement("img");p.setAttribute("src",Dialog.prototype.closeImage);p.setAttribute("title",mxResources.get("close"));p.setAttribute("valign","absmiddle"); +p.setAttribute("border","0");p.style.margin="0 3px";var t=null;if(".scratchpad"!=a.title||this.closableScratchpad)l.appendChild(p),mxEvent.addListener(p,"click",mxUtils.bind(this,function(c){if(!mxEvent.isConsumed(c)){var b=mxUtils.bind(this,function(){this.closeLibrary(a)});null!=t?this.confirm(mxResources.get("allChangesLost"),null,b,mxResources.get("cancel"),mxResources.get("discardChanges")):b();mxEvent.consume(c)}}));if(a.isEditable()){var q=this.editor.graph,u=null,G=mxUtils.bind(this,function(c){this.showLibraryDialog(a.getTitle(), +k,b,a,a.getMode());mxEvent.consume(c)}),B=mxUtils.bind(this,function(c){a.setModified(!0);a.isAutosave()?(null!=u&&null!=u.parentNode&&u.parentNode.removeChild(u),u=p.cloneNode(!1),u.setAttribute("src",Editor.spinImage),u.setAttribute("title",mxResources.get("saving")),u.style.cursor="default",u.style.marginRight="2px",u.style.marginTop="-2px",l.insertBefore(u,l.firstChild),v.style.paddingRight=18*l.childNodes.length+"px",this.saveLibrary(a.getTitle(),b,a,a.getMode(),!0,!0,function(){null!=u&&null!= +u.parentNode&&(u.parentNode.removeChild(u),v.style.paddingRight=18*l.childNodes.length+"px")})):null==t&&(t=p.cloneNode(!1),t.setAttribute("src",IMAGE_PATH+"/download.png"),t.setAttribute("title",mxResources.get("save")),l.insertBefore(t,l.firstChild),mxEvent.addListener(t,"click",mxUtils.bind(this,function(c){this.saveLibrary(a.getTitle(),b,a,a.getMode(),a.constructor==LocalLibrary,!0,function(){null==t||a.isModified()||(v.style.paddingRight=18*l.childNodes.length+"px",t.parentNode.removeChild(t), +t=null)});mxEvent.consume(c)})),v.style.paddingRight=18*l.childNodes.length+"px")}),J=mxUtils.bind(this,function(a,c,d,e){a=q.cloneCells(mxUtils.sortCells(q.model.getTopmostCells(a)));for(var g=0;g<a.length;g++){var h=q.getCellGeometry(a[g]);null!=h&&h.translate(-c.x,-c.y)}k.appendChild(this.sidebar.createVertexTemplateFromCells(a,c.width,c.height,e||"",!0,!1,!1));a={xml:this.editor.graph.compress(mxUtils.getXml(this.editor.graph.encodeCells(a))),w:c.width,h:c.height};null!=e&&(a.title=e);b.push(a); +B(d);null!=f&&null!=f.parentNode&&0<b.length&&(f.parentNode.removeChild(f),f=null)}),K=mxUtils.bind(this,function(a){if(q.isSelectionEmpty())q.getRubberband().isActive()?(q.getRubberband().execute(a),q.getRubberband().reset()):this.showError(mxResources.get("error"),mxResources.get("nothingIsSelected"),mxResources.get("ok"));else{var c=q.getSelectionCells(),b=q.view.getBounds(c),d=q.view.scale;b.x/=d;b.y/=d;b.width/=d;b.height/=d;b.x-=q.view.translate.x;b.y-=q.view.translate.y;J(c,b)}mxEvent.consume(a)}); +k.style.border="3px solid transparent";mxEvent.addGestureListeners(k,function(){},mxUtils.bind(this,function(a){q.isMouseDown&&null!=q.panningManager&&null!=q.graphHandler.shape&&(q.graphHandler.shape.node.style.visibility="hidden",null!=f?f.style.border="3px dotted rgb(254, 137, 12)":k.style.border="3px dotted rgb(254, 137, 12)",k.style.cursor="copy",q.panningManager.stop(),q.autoScroll=!1,null!=q.graphHandler.guide&&q.graphHandler.guide.setVisible(!1),null!=q.graphHandler.hint&&(q.graphHandler.hint.style.visibility= +"hidden"),mxEvent.consume(a))}),mxUtils.bind(this,function(a){q.isMouseDown&&null!=q.panningManager&&null!=q.graphHandler&&(k.style.border="3px solid transparent",null!=f&&(f.style.border="3px dotted lightGray"),k.style.cursor="default",this.sidebar.showTooltips=!0,q.panningManager.stop(),q.graphHandler.reset(),q.isMouseDown=!1,q.autoScroll=!0,K(a),mxEvent.consume(a))}));mxEvent.addListener(k,"mouseleave",mxUtils.bind(this,function(a){q.isMouseDown&&null!=q.graphHandler.shape&&(q.graphHandler.shape.node.style.visibility= +"visible",k.style.border="3px solid transparent",k.style.cursor="",q.autoScroll=!0,null!=q.graphHandler.guide&&q.graphHandler.guide.setVisible(!0),null!=q.graphHandler.hint&&(q.graphHandler.hint.style.visibility="visible"),null!=f&&(f.style.border="3px dotted lightGray"))}));Graph.fileSupport&&(mxEvent.addListener(k,"dragover",mxUtils.bind(this,function(a){null!=f?f.style.border="3px dotted rgb(254, 137, 12)":k.style.border="3px dotted rgb(254, 137, 12)";a.dataTransfer.dropEffect="copy";k.style.cursor= +"copy";this.sidebar.hideTooltip();a.stopPropagation();a.preventDefault()})),mxEvent.addListener(k,"drop",mxUtils.bind(this,function(a){k.style.border="3px solid transparent";k.style.cursor="";null!=f&&(f.style.border="3px dotted lightGray");0<a.dataTransfer.files.length&&this.importFiles(a.dataTransfer.files,0,0,this.maxImageSize,mxUtils.bind(this,function(c,d,g,h,m,n,r,t,v){if(null!=c&&"image/"==d.substring(0,6))c="shape=image;verticalLabelPosition=bottom;verticalAlign=top;aspect=fixed;image="+this.convertDataUri(c), +c=[new mxCell("",new mxGeometry(0,0,m,n),c)],c[0].vertex=!0,J(c,new mxRectangle(0,0,m,n),a,mxEvent.isAltDown(a)?null:r.substring(0,r.lastIndexOf(".")).replace(/_/g," ")),null!=f&&null!=f.parentNode&&0<b.length&&(f.parentNode.removeChild(f),f=null);else{var l=!1,w=mxUtils.bind(this,function(c,d){if(null!=c&&"text/xml"==d){var g=mxUtils.parseXml(c);if("mxlibrary"==g.documentElement.nodeName)try{var h=JSON.parse(mxUtils.getTextContent(g.documentElement));e(h,k);b=b.concat(h);B(a);this.spinner.stop(); +l=!0}catch(Q){}else if("mxfile"==g.documentElement.nodeName)try{for(var m=g.documentElement.getElementsByTagName("diagram"),g=0;g<m.length;g++){var h=mxUtils.getTextContent(m[g]),n=this.stringToCells(this.editor.graph.decompress(h)),r=this.editor.graph.getBoundingBoxFromGeometry(n);J(n,new mxRectangle(0,0,r.width,r.height),a)}l=!0}catch(Q){null!=window.console&&console.log("error in drop handler:",Q)}}l||(this.spinner.stop(),this.handleError({message:mxResources.get("errorLoadingFile")}));null!=f&& +null!=f.parentNode&&0<b.length&&(f.parentNode.removeChild(f),f=null)});null!=v&&null!=r&&(/(\.v(dx|sdx?))($|\?)/i.test(r)||/(\.vs(x|sx?))($|\?)/i.test(r))?this.importVisio(v,function(a){w(a,"text/xml")},null,r):!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(c,r)&&null!=v?this.parseFile(v,mxUtils.bind(this,function(a){4==a.readyState&&(this.spinner.stop(),200<=a.status&&299>=a.status?w(a.responseText,"text/xml"):this.handleError({message:mxResources.get(413==a.status?"drawingTooLarge": +"invalidOrMissingFile")},mxResources.get("errorLoadingFile")))})):w(c,d)}}));a.stopPropagation();a.preventDefault()})),mxEvent.addListener(k,"dragleave",function(a){null!=f?f.style.border="3px dotted lightGray":(k.style.border="3px solid transparent",k.style.cursor="");a.stopPropagation();a.preventDefault()}));p=p.cloneNode(!1);p.setAttribute("src",Editor.editImage);p.setAttribute("title",mxResources.get("edit"));l.insertBefore(p,l.firstChild);mxEvent.addListener(p,"click",G);mxEvent.addListener(k, +"dblclick",function(a){mxEvent.getSource(a)==k&&G(a)});d=p.cloneNode(!1);d.setAttribute("src",Editor.plusImage);d.setAttribute("title",mxResources.get("add"));l.insertBefore(d,l.firstChild);mxEvent.addListener(d,"click",K);this.isOffline()||".scratchpad"!=a.title||null==EditorUi.scratchpadHelpLink||(d=document.createElement("span"),d.setAttribute("title",mxResources.get("help")),d.style.cssText="color:#a3a3a3;text-decoration:none;margin-right:2px;",mxUtils.write(d,"?"),mxEvent.addGestureListeners(d, +mxUtils.bind(this,function(a){this.openLink(EditorUi.scratchpadHelpLink);mxEvent.consume(a)})),l.insertBefore(d,l.firstChild))}v.appendChild(l);v.style.paddingRight=18*l.childNodes.length+"px"}};EditorUi.prototype.addLibraryEntries=function(a,b){for(var c=0;c<a.length;c++){var d=a[c],f=d.data;if(null!=f){var f=this.convertDataUri(f),e="shape=image;verticalLabelPosition=bottom;verticalAlign=top;imageAspect=0;";"fixed"==d.aspect&&(e+="aspect=fixed;");b.appendChild(this.sidebar.createVertexTemplate(e+ "image="+f,d.w,d.h,"",d.title||"",!1,!1,!0))}else null!=d.xml&&(f=this.stringToCells(this.editor.graph.decompress(d.xml)),0<f.length&&b.appendChild(this.sidebar.createVertexTemplateFromCells(f,d.w,d.h,d.title||"",!0,!1,!0)))}};EditorUi.prototype.getResource=function(a){return null!=a?a[mxLanguage]||a.main:null};"1"==urlParams.offline||EditorUi.isElectronApp?EditorUi.prototype.footerHeight=4:("1"==urlParams.savesidebar&&(Sidebar.prototype.thumbWidth=64,Sidebar.prototype.thumbHeight=64),EditorUi.prototype.footerHeight= 760<=screen.width&&240<=screen.height?46:0,EditorUi.prototype.createFooter=function(){var a=document.getElementById("geFooter");if(null!=a){a.style.visibility="visible";var b=document.createElement("img");b.setAttribute("border","0");b.setAttribute("src",Dialog.prototype.closeImage);b.setAttribute("title",mxResources.get("hide"));a.appendChild(b);mxClient.IS_QUIRKS&&(b.style.position="relative",b.style.styleFloat="right",b.style.top="-30px",b.style.left="164px",b.style.cursor="pointer");mxEvent.addListener(b, "click",mxUtils.bind(this,function(){this.hideFooter()}))}return a});EditorUi.initTheme=function(){"atlas"==uiTheme?(mxClient.link("stylesheet",STYLE_PATH+"/atlas.css"),"undefined"!==typeof Toolbar&&(Toolbar.prototype.unselectedBackground=mxClient.IS_QUIRKS?"none":"linear-gradient(rgb(255, 255, 255) 0px, rgb(242, 242, 242) 100%)",Toolbar.prototype.selectedBackground="rgb(242, 242, 242)"),Editor.prototype.initialTopSpacing=3,EditorUi.prototype.menubarHeight=41,EditorUi.prototype.toolbarHeight=38,EditorUi.prototype.hsplitPosition= 188,Sidebar.prototype.thumbWidth=46,Sidebar.prototype.thumbHeight=46,Sidebar.prototype.thumbPadding=5<=document.documentMode?0:1,Sidebar.prototype.thumbBorder=2):"dark"==uiTheme&&(mxClient.link("stylesheet",STYLE_PATH+"/dark.css"),Dialog.backdropColor="#2a2a2a",Graph.prototype.defaultThemeName="darkTheme",Graph.prototype.defaultPageBackgroundColor="#2a2a2a",Graph.prototype.defaultGraphBackground=null,Graph.prototype.defaultPageBorderColor="#505759",Graph.prototype.svgShadowColor="#e0e0e0",Graph.prototype.svgShadowOpacity= "0.6",Graph.prototype.svgShadowSize="0.8",Graph.prototype.svgShadowBlur="1.4",Format.prototype.inactiveTabBackgroundColor="black",BaseFormatPanel.prototype.buttonBackgroundColor="#2a2a2a",Sidebar.prototype.dragPreviewBorder="1px dashed #cccccc",mxGraphHandler.prototype.previewColor="#cccccc",StyleFormatPanel.prototype.defaultStrokeColor="#cccccc",mxClient.IS_SVG&&(Editor.helpImage="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAP1BMVEUAAAD///////////////////////////////////////////////////////////////////////////////9Du/pqAAAAFXRSTlMAT30qCJRBboyDZyCgRzUUdF46MJlgXETgAAAAeklEQVQY022O2w4DIQhEQUURda/9/28tUO2+7CQS5sgQ4F1RapX78YUwRqQjTU8ILqQfKerTKTvACJ4nLX3krt+8aS82oI8aQC4KavRgtvEW/mDvsICgA03PSGRr79MqX1YPNIxzjyqtw8ZnnRo4t5a5undtJYRywau+ds4Cyza3E6YAAAAASUVORK5CYII=", Editor.checkmarkImage="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABUAAAAVCAMAAACeyVWkAAAARVBMVEUAAACZmZkICAgEBASNjY2Dg4MYGBiTk5N5eXl1dXVmZmZQUFBCQkI3NzceHh4MDAykpKSJiYl+fn5sbGxaWlo/Pz8SEhK96uPlAAAAAXRSTlMAQObYZgAAAE5JREFUGNPFzTcSgDAQQ1HJGUfy/Y9K7V1qeOUfzQifCQZai1XHaz11LFysbDbzgDSSWMZiETz3+b8yNUc/MMsktxuC8XQBSncdLwz+8gCCggGXzBcozAAAAABJRU5ErkJggg=="))};EditorUi.initTheme();EditorUi.prototype.hideFooter=function(){var a=document.getElementById("geFooter");null!=a&&(this.footerHeight=0,a.style.display= -"none",this.refresh())};EditorUi.prototype.showFooter=function(a){var c=document.getElementById("geFooter");null!=c&&(this.footerHeight=a,c.style.display="inline",this.refresh())};EditorUi.prototype.showImageDialog=function(a,b,d,e,h){a=new ImageDialog(this,a,b,d,e,h);this.showDialog(a.container,Graph.fileSupport?440:360,Graph.fileSupport?200:90,!0,!0);a.init()};EditorUi.prototype.showBackgroundImageDialog=function(a){a=null!=a?a:mxUtils.bind(this,function(a){a=new ChangePageSetup(this,null,a);a.ignoreColor= -!0;this.editor.graph.model.execute(a)});var c=new BackgroundImageDialog(this,mxUtils.bind(this,function(c){a(c)}));this.showDialog(c.container,360,200,!0,!0);c.init()};EditorUi.prototype.showLibraryDialog=function(a,b,d,e,h){a=new LibraryDialog(this,a,b,d,e,h);this.showDialog(a.container,620,440,!0,!1,mxUtils.bind(this,function(a){a&&null==this.getCurrentFile()&&"1"!=urlParams.embed&&this.showSplash()}));a.init()};EditorUi.prototype.createSidebarFooterContainer=function(){var a=this.createDiv("geSidebarContainer"); +"none",this.refresh())};EditorUi.prototype.showFooter=function(a){var c=document.getElementById("geFooter");null!=c&&(this.footerHeight=a,c.style.display="inline",this.refresh())};EditorUi.prototype.showImageDialog=function(a,b,d,e,k){a=new ImageDialog(this,a,b,d,e,k);this.showDialog(a.container,Graph.fileSupport?440:360,Graph.fileSupport?200:90,!0,!0);a.init()};EditorUi.prototype.showBackgroundImageDialog=function(a){a=null!=a?a:mxUtils.bind(this,function(a){a=new ChangePageSetup(this,null,a);a.ignoreColor= +!0;this.editor.graph.model.execute(a)});var c=new BackgroundImageDialog(this,mxUtils.bind(this,function(c){a(c)}));this.showDialog(c.container,360,200,!0,!0);c.init()};EditorUi.prototype.showLibraryDialog=function(a,b,d,e,k){a=new LibraryDialog(this,a,b,d,e,k);this.showDialog(a.container,620,440,!0,!1,mxUtils.bind(this,function(a){a&&null==this.getCurrentFile()&&"1"!=urlParams.embed&&this.showSplash()}));a.init()};EditorUi.prototype.createSidebarFooterContainer=function(){var a=this.createDiv("geSidebarContainer"); a.style.position="absolute";a.style.overflow="hidden";a.style.borderWidth="3px";var b=document.createElement("a");b.setAttribute("href","javascript:void(0);");b.className="geTitle";b.style.height="100%";b.style.paddingTop="9px";mxUtils.write(b,mxResources.get("moreShapes")+"...");mxEvent.addListener(b,"click",mxUtils.bind(this,function(a){this.actions.get("shapes").funct();mxEvent.consume(a)}));a.appendChild(b);return a};EditorUi.prototype.handleError=function(a,b,d){var c=null!=this.spinner&&null!= this.spinner.pause?this.spinner.pause():function(){},f=null!=a&&null!=a.error?a.error:a;if(null!=f||null!=b){a=mxUtils.htmlEntities(mxResources.get("unknownError"));var e=mxResources.get("ok"),g=null;b=null!=b?b:mxResources.get("error");if(null!=f)if(null!=f.retry&&(e=mxResources.get("cancel"),g=function(){c();f.retry()}),"undefined"!=typeof gapi&&"undefined"!=typeof gapi.drive&&"undefined"!=typeof gapi.drive.realtime&&f.type==gapi.drive.realtime.ErrorType.FORBIDDEN)a=mxUtils.htmlEntities(mxResources.get("forbidden")); -else if(404==f.code||404==f.status||"undefined"!=typeof gapi&&"undefined"!=typeof gapi.drive&&"undefined"!=typeof gapi.drive.realtime&&f.type==gapi.drive.realtime.ErrorType.NOT_FOUND){a=mxUtils.htmlEntities(mxResources.get("fileNotFoundOrDenied"));var h=window.location.hash;null!=h&&"#G"==h.substring(0,2)&&(h=h.substring(2),a+=' <a href="https://drive.google.com/open?id='+h+'" target="_blank">'+mxUtils.htmlEntities(mxResources.get("tryOpeningViaThisPage"))+"</a>")}else null!=f.message?a=mxUtils.htmlEntities(f.message): -null!=f.response&&null!=f.response.error?a=mxUtils.htmlEntities(f.response.error):"undefined"!==window.App&&(f.code==App.ERROR_TIMEOUT?a=mxUtils.htmlEntities(mxResources.get("timeout")):f.code==App.ERROR_BUSY&&(a=mxUtils.htmlEntities(mxResources.get("busy"))));this.showError(b,a,e,d,g)}else null!=d&&d()};EditorUi.prototype.showError=function(a,b,d,e,h,l,n,m,v,p,q,t){a=new ErrorDialog(this,a,b,d||mxResources.get("ok"),e,h,l,n,t,m,v);this.showDialog(a.container,p||340,q||150,!0,!1);a.init()};EditorUi.prototype.alert= -function(a,b){var c=new ErrorDialog(this,null,a,mxResources.get("ok"),b);this.showDialog(c.container,340,100,!0,!1);c.init()};EditorUi.prototype.confirm=function(a,b,d,e,h){var c=null!=this.spinner&&null!=this.spinner.pause?this.spinner.pause():function(){};this.showDialog((new ConfirmDialog(this,a,function(){c();null!=b&&b()},function(){c();null!=d&&d()},e,h)).container,340,90,!0,!1)};EditorUi.prototype.setCurrentFile=function(a){this.currentFile=a};EditorUi.prototype.getCurrentFile=function(){return this.currentFile}; +else if(404==f.code||404==f.status||"undefined"!=typeof gapi&&"undefined"!=typeof gapi.drive&&"undefined"!=typeof gapi.drive.realtime&&f.type==gapi.drive.realtime.ErrorType.NOT_FOUND){a=mxUtils.htmlEntities(mxResources.get("fileNotFoundOrDenied"));var k=window.location.hash;null!=k&&"#G"==k.substring(0,2)&&(k=k.substring(2),a+=' <a href="https://drive.google.com/open?id='+k+'" target="_blank">'+mxUtils.htmlEntities(mxResources.get("tryOpeningViaThisPage"))+"</a>")}else null!=f.message?a=mxUtils.htmlEntities(f.message): +null!=f.response&&null!=f.response.error?a=mxUtils.htmlEntities(f.response.error):"undefined"!==window.App&&(f.code==App.ERROR_TIMEOUT?a=mxUtils.htmlEntities(mxResources.get("timeout")):f.code==App.ERROR_BUSY&&(a=mxUtils.htmlEntities(mxResources.get("busy"))));this.showError(b,a,e,d,g)}else null!=d&&d()};EditorUi.prototype.showError=function(a,b,d,e,k,h,m,l,v,p,q,t){a=new ErrorDialog(this,a,b,d||mxResources.get("ok"),e,k,h,m,t,l,v);this.showDialog(a.container,p||340,q||150,!0,!1);a.init()};EditorUi.prototype.alert= +function(a,b){var c=new ErrorDialog(this,null,a,mxResources.get("ok"),b);this.showDialog(c.container,340,100,!0,!1);c.init()};EditorUi.prototype.confirm=function(a,b,d,e,k){var c=null!=this.spinner&&null!=this.spinner.pause?this.spinner.pause():function(){};this.showDialog((new ConfirmDialog(this,a,function(){c();null!=b&&b()},function(){c();null!=d&&d()},e,k)).container,340,90,!0,!1)};EditorUi.prototype.setCurrentFile=function(a){this.currentFile=a};EditorUi.prototype.getCurrentFile=function(){return this.currentFile}; EditorUi.prototype.isExportToCanvas=function(){return mxClient.IS_CHROMEAPP||!this.editor.graph.mathEnabled&&this.useCanvasForExport};EditorUi.prototype.createSvgDataUri=function(a){return"data:image/svg+xml;base64,"+btoa(unescape(encodeURIComponent(a)))};EditorUi.prototype.createImageDataUri=function(a,b,d){var c=a.toDataURL("image/"+d);if(6>=c.length||c==a.cloneNode(!1).toDataURL("image/"+d))throw{message:"Invalid image"};null!=b&&(c=this.writeGraphModelToPng(c,"zTXt","mxGraphModel",atob(this.editor.graph.compress(b)))); return c};EditorUi.prototype.saveCanvas=function(a,b,d){var c="jpeg"==d?"jpg":d,f=this.getBaseFilename()+"."+c;a=this.createImageDataUri(a,b,d);this.saveData(f,c,a.substring(a.lastIndexOf(",")+1),"image/"+d,!0)};EditorUi.prototype.isLocalFileSave=function(){return"remote"!=urlParams.save&&(mxClient.IS_IE||"undefined"!==typeof window.Blob&&"undefined"!==typeof window.URL)&&9!=document.documentMode&&8!=document.documentMode&&7!=document.documentMode&&!mxClient.IS_QUIRKS||this.isOfflineApp()||mxClient.IS_IOS}; -EditorUi.prototype.doSaveLocalFile=function(a,b,d,e,h){if(window.Blob&&navigator.msSaveOrOpenBlob)a=e?this.base64ToBlob(a,d):new Blob([a],{type:d}),navigator.msSaveOrOpenBlob(a,b);else if(mxClient.IS_IE)d=window.open("about:blank","_blank"),null==d?mxUtils.popup(a,!0):(d.document.write(a),d.document.close(),d.document.execCommand("SaveAs",!0,b),d.close());else if(mxClient.IS_IOS)b=new TextareaDialog(this,b+":",a,null,null,mxResources.get("close")),b.textarea.style.width="600px",b.textarea.style.height= +EditorUi.prototype.doSaveLocalFile=function(a,b,d,e,k){if(window.Blob&&navigator.msSaveOrOpenBlob)a=e?this.base64ToBlob(a,d):new Blob([a],{type:d}),navigator.msSaveOrOpenBlob(a,b);else if(mxClient.IS_IE)d=window.open("about:blank","_blank"),null==d?mxUtils.popup(a,!0):(d.document.write(a),d.document.close(),d.document.execCommand("SaveAs",!0,b),d.close());else if(mxClient.IS_IOS)b=new TextareaDialog(this,b+":",a,null,null,mxResources.get("close")),b.textarea.style.width="600px",b.textarea.style.height= "380px",this.showDialog(b.container,620,460,!0,!0),b.init(),document.execCommand("selectall",!1,null);else{var c=document.createElement("a"),f=!mxClient.IS_SF&&0>navigator.userAgent.indexOf("PaleMoon/")&&"undefined"!==typeof c.download;if(mxClient.IS_GC)var g=navigator.userAgent.match(/Chrom(e|ium)\/([0-9]+)\./),f=65==(g?parseInt(g[2],10):!1)?!1:f;if(f||this.isOffline()){c.href=URL.createObjectURL(e?this.base64ToBlob(a,d):new Blob([a],{type:d}));f?c.download=b:c.setAttribute("target","_blank");document.body.appendChild(c); -try{window.setTimeout(function(){URL.revokeObjectURL(c.href)},0),c.click(),c.parentNode.removeChild(c)}catch(v){}}else this.createEchoRequest(a,b,d,e,h).simulate(document,"_blank")}};EditorUi.prototype.createEchoRequest=function(a,b,d,e,h,l){a="xml="+encodeURIComponent(a);return new mxXmlRequest(SAVE_URL,a+(null!=d?"&mime="+d:"")+(null!=h?"&format="+h:"")+(null!=l?"&base64="+l:"")+(null!=b?"&filename="+encodeURIComponent(b):"")+(e?"&binary=1":""))};EditorUi.prototype.base64ToBlob=function(a,b){b= -b||"";for(var c=atob(a),d=c.length,f=Math.ceil(d/1024),e=Array(f),n=0;n<f;++n){for(var h=1024*n,v=Math.min(h+1024,d),m=Array(v-h),p=0;h<v;++p,++h)m[p]=c[h].charCodeAt(0);e[n]=new Uint8Array(m)}return new Blob(e,{type:b})};EditorUi.prototype.saveLocalFile=function(a,b,d,e,h,l,n){l=null!=l?l:!1;n=null!=n?n:"vsdx"!=h&&(!mxClient.IS_IOS||!navigator.standalone);h=this.getServiceCount(l);b=new CreateDialog(this,b,mxUtils.bind(this,function(c,b){try{if("_blank"==b)if(null==d||"image/"!=d.substring(0,6)|| +try{window.setTimeout(function(){URL.revokeObjectURL(c.href)},0),c.click(),c.parentNode.removeChild(c)}catch(v){}}else this.createEchoRequest(a,b,d,e,k).simulate(document,"_blank")}};EditorUi.prototype.createEchoRequest=function(a,b,d,e,k,h){a="xml="+encodeURIComponent(a);return new mxXmlRequest(SAVE_URL,a+(null!=d?"&mime="+d:"")+(null!=k?"&format="+k:"")+(null!=h?"&base64="+h:"")+(null!=b?"&filename="+encodeURIComponent(b):"")+(e?"&binary=1":""))};EditorUi.prototype.base64ToBlob=function(a,b){b= +b||"";for(var c=atob(a),d=c.length,f=Math.ceil(d/1024),e=Array(f),m=0;m<f;++m){for(var k=1024*m,v=Math.min(k+1024,d),l=Array(v-k),p=0;k<v;++p,++k)l[p]=c[k].charCodeAt(0);e[m]=new Uint8Array(l)}return new Blob(e,{type:b})};EditorUi.prototype.saveLocalFile=function(a,b,d,e,k,h,m){h=null!=h?h:!1;m=null!=m?m:"vsdx"!=k&&(!mxClient.IS_IOS||!navigator.standalone);k=this.getServiceCount(h);b=new CreateDialog(this,b,mxUtils.bind(this,function(c,b){try{if("_blank"==b)if(null==d||"image/"!=d.substring(0,6)|| "image/svg"==d.substring(0,9)&&!mxClient.IS_SVG){var f=window.open("about:blank");null==f?mxUtils.popup(a,!0):(f.document.write(mxUtils.htmlEntities(a,!1)),f.document.close())}else this.openInNewWindow(a,d,e);else b==App.MODE_DEVICE||"download"==b?this.doSaveLocalFile(a,c,d,e):null!=c&&0<c.length&&this.pickFolder(b,mxUtils.bind(this,function(f){try{this.exportFile(a,c,d,e,b,f)}catch(t){this.handleError(t)}}))}catch(y){this.handleError(y)}}),mxUtils.bind(this,function(){this.hideDialog()}),mxResources.get("saveAs"), -mxResources.get("download"),!1,l,n,null,1<h,4<h&&(!l||6>h)?3:4,a,d,e);this.showDialog(b.container,420,h==(mxClient.IS_IOS?0:1)?160:4<h?390:270,!0,!0);b.init()};EditorUi.prototype.openInNewWindow=function(a,b,d){if(mxClient.IS_GC||mxClient.IS_EDGE||11==document.documentMode||10==document.documentMode){var c=window.open("about:blank");null==c?mxUtils.popup(a,!0):("image/svg+xml"==b?c.document.write("<html>"+a+"</html>"):c.document.write('<html><img src="data:'+b+(d?";base64,"+a:";charset=utf8,"+encodeURIComponent(a))+ -'"/></html>'),c.document.close())}else c=window.open("data:"+b+(d?";base64,"+a:";charset=utf8,"+encodeURIComponent(a))),null==c&&mxUtils.popup(a,!0)};var d=EditorUi.prototype.addChromelessToolbarItems;EditorUi.prototype.addChromelessToolbarItems=function(a){if(this.isExportToCanvas()){this.exportDialog=null;var c=a(mxUtils.bind(this,function(a){var b=mxUtils.bind(this,function(){mxEvent.removeListener(this.editor.graph.container,"click",b);null!=this.exportDialog&&(this.exportDialog.parentNode.removeChild(this.exportDialog), +mxResources.get("download"),!1,h,m,null,1<k,4<k&&(!h||6>k)?3:4,a,d,e);this.showDialog(b.container,420,k==(mxClient.IS_IOS?0:1)?160:4<k?390:270,!0,!0);b.init()};EditorUi.prototype.openInNewWindow=function(a,b,d){if(mxClient.IS_GC||mxClient.IS_EDGE||11==document.documentMode||10==document.documentMode){var c=window.open("about:blank");null==c?mxUtils.popup(a,!0):("image/svg+xml"==b?c.document.write("<html>"+a+"</html>"):c.document.write('<html><img src="data:'+b+(d?";base64,"+a:";charset=utf8,"+encodeURIComponent(a))+ +'"/></html>'),c.document.close())}else c=window.open("data:"+b+(d?";base64,"+a:";charset=utf8,"+encodeURIComponent(a))),null==c&&mxUtils.popup(a,!0)};var b=EditorUi.prototype.addChromelessToolbarItems;EditorUi.prototype.addChromelessToolbarItems=function(a){if(this.isExportToCanvas()){this.exportDialog=null;var c=a(mxUtils.bind(this,function(a){var b=mxUtils.bind(this,function(){mxEvent.removeListener(this.editor.graph.container,"click",b);null!=this.exportDialog&&(this.exportDialog.parentNode.removeChild(this.exportDialog), this.exportDialog=null)});if(null!=this.exportDialog)b.apply(this);else{this.exportDialog=document.createElement("div");var d=c.getBoundingClientRect();mxUtils.setPrefixedStyle(this.exportDialog.style,"borderRadius","5px");this.exportDialog.style.position="fixed";this.exportDialog.style.textAlign="center";this.exportDialog.style.fontFamily="Helvetica,Arial";this.exportDialog.style.backgroundColor="#000000";this.exportDialog.style.width="50px";this.exportDialog.style.height="50px";this.exportDialog.style.padding= "4px 2px 4px 2px";this.exportDialog.style.color="#ffffff";mxUtils.setOpacity(this.exportDialog,70);this.exportDialog.style.left=d.left+"px";this.exportDialog.style.bottom=parseInt(this.chromelessToolbar.style.bottom)+this.chromelessToolbar.offsetHeight+4+"px";d=mxUtils.getCurrentStyle(this.editor.graph.container);this.exportDialog.style.zIndex=d.zIndex;var f=new Spinner({lines:8,length:6,width:5,radius:6,rotate:0,color:"#fff",speed:1.5,trail:60,shadow:!1,hwaccel:!1,top:"28px",zIndex:2E9});f.spin(this.exportDialog); this.exportToCanvas(mxUtils.bind(this,function(a){f.stop();this.exportDialog.style.width="auto";this.exportDialog.style.height="auto";this.exportDialog.style.padding="10px";var c=this.createImageDataUri(a,null,"png");a=document.createElement("img");a.style.maxWidth="140px";a.style.maxHeight="140px";a.style.cursor="pointer";a.style.backgroundColor="white";a.setAttribute("title",mxResources.get("openInNewWindow"));a.setAttribute("border","0");a.setAttribute("src",c);this.exportDialog.appendChild(a); -mxEvent.addListener(a,"click",mxUtils.bind(this,function(){this.openInNewWindow(c.substring(c.indexOf(",")+1),"image/png",!0);b.apply(this,arguments)}))}),null,this.thumbImageCache,null,mxUtils.bind(this,function(a){this.spinner.stop();this.handleError(a)}));mxEvent.addListener(this.editor.graph.container,"click",b);document.body.appendChild(this.exportDialog)}mxEvent.consume(a)}),Editor.cameraLargeImage,mxResources.get("export"))}d.apply(this,arguments)};EditorUi.prototype.saveData=function(a,b, -d,e,h){this.isLocalFileSave()?this.saveLocalFile(d,a,e,h,b):this.saveRequest(a,b,mxUtils.bind(this,function(a,c){return this.createEchoRequest(d,a,e,h,b,c)}),d,h,e)};EditorUi.prototype.saveRequest=function(a,b,d,e,h,l,n){n=null!=n?n:!mxClient.IS_IOS||!navigator.standalone;var c=this.getServiceCount(!1);a=new CreateDialog(this,a,mxUtils.bind(this,function(a,c){if("_blank"==c||null!=a&&0<a.length){var f=d("_blank"==c?null:a,c==App.MODE_DEVICE||"download"==c||null==c||"_blank"==c?"0":"1");null!=f&&(c== -App.MODE_DEVICE||"download"==c||"_blank"==c?f.simulate(document,"_blank"):this.pickFolder(c,mxUtils.bind(this,function(d){l=null!=l?l:"pdf"==b?"application/pdf":"image/"+b;if(null!=e)try{this.exportFile(e,a,l,!0,c,d)}catch(z){this.handleError(z)}else this.spinner.spin(document.body,mxResources.get("saving"))&&f.send(mxUtils.bind(this,function(){this.spinner.stop();if(200<=f.getStatus()&&299>=f.getStatus())try{this.exportFile(f.getText(),a,l,!0,c,d)}catch(z){this.handleError(z)}else this.handleError({message:mxResources.get("errorSavingFile")})}), -function(a){this.spinner.stop();this.handleError(a)})})))}}),mxUtils.bind(this,function(){this.hideDialog()}),mxResources.get("saveAs"),mxResources.get("download"),!1,!1,n,null,1<c,4<c?3:4,e,l,h);this.showDialog(a.container,380,c==(mxClient.IS_IOS?0:1)?160:4<c?390:270,!0,!0);a.init()};EditorUi.prototype.getEditBlankXml=function(){return this.getFileData(!0)};EditorUi.prototype.exportFile=function(a,b,d,e,h,l){};EditorUi.prototype.pickFolder=function(a,b,d){b(null)};EditorUi.prototype.exportSvg=function(a, -b,d,e,h,l,n,m,v,p){if(this.spinner.spin(document.body,mxResources.get("export"))){var c=this.editor.graph.isSelectionEmpty();d=null!=d?d:c;c=b?null:this.editor.graph.background;c==mxConstants.NONE&&(c=null);null==c&&0==b&&(c="#ffffff");var f=this.editor.graph.getSvg(c,a,n,m,null,d,null,null,"blank"==p?"_blank":"self"==p?"_top":null);e&&this.editor.graph.addSvgShadow(f);var g=this.getBaseFilename()+".svg",k=mxUtils.bind(this,function(a){this.spinner.stop();h&&a.setAttribute("content",this.getFileData(!0, +mxEvent.addListener(a,"click",mxUtils.bind(this,function(){this.openInNewWindow(c.substring(c.indexOf(",")+1),"image/png",!0);b.apply(this,arguments)}))}),null,this.thumbImageCache,null,mxUtils.bind(this,function(a){this.spinner.stop();this.handleError(a)}));mxEvent.addListener(this.editor.graph.container,"click",b);document.body.appendChild(this.exportDialog)}mxEvent.consume(a)}),Editor.cameraLargeImage,mxResources.get("export"))}b.apply(this,arguments)};EditorUi.prototype.saveData=function(a,b, +d,e,k){this.isLocalFileSave()?this.saveLocalFile(d,a,e,k,b):this.saveRequest(a,b,mxUtils.bind(this,function(a,c){return this.createEchoRequest(d,a,e,k,b,c)}),d,k,e)};EditorUi.prototype.saveRequest=function(a,b,d,e,k,h,m){m=null!=m?m:!mxClient.IS_IOS||!navigator.standalone;var c=this.getServiceCount(!1);a=new CreateDialog(this,a,mxUtils.bind(this,function(a,c){if("_blank"==c||null!=a&&0<a.length){var f=d("_blank"==c?null:a,c==App.MODE_DEVICE||"download"==c||null==c||"_blank"==c?"0":"1");null!=f&&(c== +App.MODE_DEVICE||"download"==c||"_blank"==c?f.simulate(document,"_blank"):this.pickFolder(c,mxUtils.bind(this,function(d){h=null!=h?h:"pdf"==b?"application/pdf":"image/"+b;if(null!=e)try{this.exportFile(e,a,h,!0,c,d)}catch(z){this.handleError(z)}else this.spinner.spin(document.body,mxResources.get("saving"))&&f.send(mxUtils.bind(this,function(){this.spinner.stop();if(200<=f.getStatus()&&299>=f.getStatus())try{this.exportFile(f.getText(),a,h,!0,c,d)}catch(z){this.handleError(z)}else this.handleError({message:mxResources.get("errorSavingFile")})}), +function(a){this.spinner.stop();this.handleError(a)})})))}}),mxUtils.bind(this,function(){this.hideDialog()}),mxResources.get("saveAs"),mxResources.get("download"),!1,!1,m,null,1<c,4<c?3:4,e,h,k);this.showDialog(a.container,380,c==(mxClient.IS_IOS?0:1)?160:4<c?390:270,!0,!0);a.init()};EditorUi.prototype.getEditBlankXml=function(){return this.getFileData(!0)};EditorUi.prototype.exportFile=function(a,b,d,e,k,h){};EditorUi.prototype.pickFolder=function(a,b,d){b(null)};EditorUi.prototype.exportSvg=function(a, +b,d,e,k,h,m,l,v,p){if(this.spinner.spin(document.body,mxResources.get("export"))){var c=this.editor.graph.isSelectionEmpty();d=null!=d?d:c;c=b?null:this.editor.graph.background;c==mxConstants.NONE&&(c=null);null==c&&0==b&&(c="#ffffff");var f=this.editor.graph.getSvg(c,a,m,l,null,d,null,null,"blank"==p?"_blank":"self"==p?"_top":null);e&&this.editor.graph.addSvgShadow(f);var g=this.getBaseFilename()+".svg",n=mxUtils.bind(this,function(a){this.spinner.stop();k&&a.setAttribute("content",this.getFileData(!0, null,null,null,d,v));if(null!=this.editor.fontCss){var c=a.ownerDocument,c=null!=c.createElementNS?c.createElementNS(mxConstants.NS_SVG,"style"):c.createElement("style");c.setAttribute("type","text/css");mxUtils.setTextContent(c,this.editor.fontCss);a.getElementsByTagName("defs")[0].appendChild(c)}var b='<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">\n'+mxUtils.getXml(a);this.isLocalFileSave()||b.length<=MAX_REQUEST_SIZE?this.saveData(g,"svg",b, -"image/svg+xml"):this.handleError({message:mxResources.get("drawingTooLarge")},mxResources.get("error"),mxUtils.bind(this,function(){mxUtils.popup(b)}))});this.convertMath(this.editor.graph,f,!1,mxUtils.bind(this,function(){l?(null==this.thumbImageCache&&(this.thumbImageCache={}),this.convertImages(f,k,this.thumbImageCache)):k(f)}))}};EditorUi.prototype.addCheckbox=function(a,b,d,e,h,l){l=null!=l?l:!0;var c=document.createElement("input");c.style.marginRight="8px";c.style.marginTop="16px";c.setAttribute("type", -"checkbox");d&&(c.setAttribute("checked","checked"),c.defaultChecked=!0);e&&c.setAttribute("disabled","disabled");l&&(a.appendChild(c),d=document.createElement("span"),mxUtils.write(d,b),a.appendChild(d),h||mxUtils.br(a),mxEvent.addListener(d,"click",mxUtils.bind(this,function(a){"disabled"!=c.getAttribute("disabled")&&(c.checked=!c.checked,mxEvent.consume(a))})));return c};EditorUi.prototype.addEditButton=function(a,b){var c=this.addCheckbox(a,mxResources.get("edit")+":",!0,null,!0);c.style.marginLeft= +"image/svg+xml"):this.handleError({message:mxResources.get("drawingTooLarge")},mxResources.get("error"),mxUtils.bind(this,function(){mxUtils.popup(b)}))});this.convertMath(this.editor.graph,f,!1,mxUtils.bind(this,function(){h?(null==this.thumbImageCache&&(this.thumbImageCache={}),this.convertImages(f,n,this.thumbImageCache)):n(f)}))}};EditorUi.prototype.addCheckbox=function(a,b,d,e,k,h){h=null!=h?h:!0;var c=document.createElement("input");c.style.marginRight="8px";c.style.marginTop="16px";c.setAttribute("type", +"checkbox");d&&(c.setAttribute("checked","checked"),c.defaultChecked=!0);e&&c.setAttribute("disabled","disabled");h&&(a.appendChild(c),d=document.createElement("span"),mxUtils.write(d,b),a.appendChild(d),k||mxUtils.br(a),mxEvent.addListener(d,"click",mxUtils.bind(this,function(a){"disabled"!=c.getAttribute("disabled")&&(c.checked=!c.checked,mxEvent.consume(a))})));return c};EditorUi.prototype.addEditButton=function(a,b){var c=this.addCheckbox(a,mxResources.get("edit")+":",!0,null,!0);c.style.marginLeft= "24px";var d=this.getCurrentFile(),f="";null!=d&&d.getMode()!=App.MODE_DEVICE&&d.getMode()!=App.MODE_BROWSER&&(f=window.location.href);var e=document.createElement("select");e.style.width="120px";e.style.marginLeft="8px";e.style.marginRight="10px";e.className="geBtn";d=document.createElement("option");d.setAttribute("value","blank");mxUtils.write(d,mxResources.get("makeCopy"));e.appendChild(d);d=document.createElement("option");d.setAttribute("value","custom");mxUtils.write(d,mxResources.get("custom")+ "...");e.appendChild(d);a.appendChild(e);mxEvent.addListener(e,"change",mxUtils.bind(this,function(){if("custom"==e.value){var a=new FilenameDialog(this,f,mxResources.get("ok"),function(a){null!=a?f=a:e.value="blank"},mxResources.get("url"),null,null,null,null,function(){e.value="blank"});this.showDialog(a.container,300,80,!0,!1);a.init()}}));mxEvent.addListener(c,"change",mxUtils.bind(this,function(){c.checked&&(null==b||b.checked)?e.removeAttribute("disabled"):e.setAttribute("disabled","disabled")})); -mxUtils.br(a);return{getLink:function(){return c.checked?"blank"===e.value?"_blank":f:null},getEditInput:function(){return c},getEditSelect:function(){return e}}};EditorUi.prototype.addLinkSection=function(a,b){function c(){n.innerHTML='<div style="width:100%;height:100%;box-sizing:border-box;'+(null!=e&&e!=mxConstants.NONE?"border:1px solid black;background-color:"+e:"background-position:center center;background-repeat:no-repeat;background-image:url('"+Dialog.prototype.closeImage+"')")+';"></div>'} +mxUtils.br(a);return{getLink:function(){return c.checked?"blank"===e.value?"_blank":f:null},getEditInput:function(){return c},getEditSelect:function(){return e}}};EditorUi.prototype.addLinkSection=function(a,b){function c(){m.innerHTML='<div style="width:100%;height:100%;box-sizing:border-box;'+(null!=e&&e!=mxConstants.NONE?"border:1px solid black;background-color:"+e:"background-position:center center;background-repeat:no-repeat;background-image:url('"+Dialog.prototype.closeImage+"')")+';"></div>'} mxUtils.write(a,mxResources.get("links")+":");var d=document.createElement("select");d.style.width="100px";d.style.marginLeft="8px";d.style.marginRight="10px";d.className="geBtn";var f=document.createElement("option");f.setAttribute("value","auto");mxUtils.write(f,mxResources.get("automatic"));d.appendChild(f);f=document.createElement("option");f.setAttribute("value","blank");mxUtils.write(f,mxResources.get("openInNewWindow"));d.appendChild(f);f=document.createElement("option");f.setAttribute("value", -"self");mxUtils.write(f,mxResources.get("openInThisWindow"));d.appendChild(f);b&&(f=document.createElement("option"),f.setAttribute("value","frame"),mxUtils.write(f,mxResources.get("openInThisWindow")+" ("+mxResources.get("iframe")+")"),d.appendChild(f));a.appendChild(d);mxUtils.write(a,mxResources.get("borderColor")+":");var e="#0000ff",n=null,n=mxUtils.button("",mxUtils.bind(this,function(a){this.pickColor(e||"none",function(a){e=a;c()});mxEvent.consume(a)}));c();n.style.padding=mxClient.IS_FF? -"4px 2px 4px 2px":"4px";n.style.marginLeft="4px";n.style.height="22px";n.style.width="22px";n.style.position="relative";n.style.top=mxClient.IS_IE||mxClient.IS_IE11||mxClient.IS_EDGE?"6px":"1px";n.className="geColorBtn";a.appendChild(n);mxUtils.br(a);return{getColor:function(){return e},getTarget:function(){return d.value},focus:function(){d.focus()}}};EditorUi.prototype.createLink=function(a,b,d,e,h,l,n,m){var c=this.getCurrentFile(),f=[];e&&(f.push("lightbox=1"),"auto"!=a&&f.push("target="+a),null!= -b&&b!=mxConstants.NONE&&f.push("highlight="+("#"==b.charAt(0)?b.substring(1):b)),null!=h&&0<h.length&&f.push("edit="+encodeURIComponent(h)),l&&f.push("layers=1"),this.editor.graph.foldingEnabled&&f.push("nav=1"));d&&(a=this.getSelectedPageIndex(),0<a&&f.push("page="+a));a=!0;null!=n?d="#U"+encodeURIComponent(n):(c=this.getCurrentFile(),m||null==c||c.constructor!=window.DriveFile?d="#R"+encodeURIComponent(d?this.getFileData(!0,null,null,null,null,null,null,!0):this.editor.graph.compress(mxUtils.getXml(this.editor.getGraphXml()))): -(d="#"+c.getHash(),a=!1));a&&null!=c&&null!=c.getTitle()&&c.getTitle()!=this.defaultFilename&&f.push("title="+encodeURIComponent(c.getTitle()));return(mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||!/.*\.draw\.io$/.test(window.location.hostname)?"https://www.draw.io/":"https://"+window.location.host+"/")+(0<f.length?"?"+f.join("&"):"")+d};EditorUi.prototype.createHtml=function(a,b,d,e,h,l,n,m,v,p,q){this.getBasenames();var c={};""!=h&&h!=mxConstants.NONE&&(c.highlight=h);"auto"!==e&&(c.target=e); -v||(c.lightbox=!1);c.nav=this.editor.graph.foldingEnabled;d=parseInt(d);isNaN(d)||100==d||(c.zoom=d/100);d=[];n&&(d.push("pages"),c.resize=!0,null!=this.pages&&null!=this.currentPage&&(c.page=mxUtils.indexOf(this.pages,this.currentPage)));b&&(d.push("zoom"),c.resize=!0);m&&d.push("layers");0<d.length&&(v&&d.push("lightbox"),c.toolbar=d.join(" "));null!=p&&0<p.length&&(c.edit=p);null!=a?c.url=a:c.xml=this.getFileData(!0,null,null,null,null,!n);b='<div class="mxgraph" style="'+(l?"max-width:100%;": +"self");mxUtils.write(f,mxResources.get("openInThisWindow"));d.appendChild(f);b&&(f=document.createElement("option"),f.setAttribute("value","frame"),mxUtils.write(f,mxResources.get("openInThisWindow")+" ("+mxResources.get("iframe")+")"),d.appendChild(f));a.appendChild(d);mxUtils.write(a,mxResources.get("borderColor")+":");var e="#0000ff",m=null,m=mxUtils.button("",mxUtils.bind(this,function(a){this.pickColor(e||"none",function(a){e=a;c()});mxEvent.consume(a)}));c();m.style.padding=mxClient.IS_FF? +"4px 2px 4px 2px":"4px";m.style.marginLeft="4px";m.style.height="22px";m.style.width="22px";m.style.position="relative";m.style.top=mxClient.IS_IE||mxClient.IS_IE11||mxClient.IS_EDGE?"6px":"1px";m.className="geColorBtn";a.appendChild(m);mxUtils.br(a);return{getColor:function(){return e},getTarget:function(){return d.value},focus:function(){d.focus()}}};EditorUi.prototype.createLink=function(a,b,d,e,k,h,m,l){var c=this.getCurrentFile(),f=[];e&&(f.push("lightbox=1"),"auto"!=a&&f.push("target="+a),null!= +b&&b!=mxConstants.NONE&&f.push("highlight="+("#"==b.charAt(0)?b.substring(1):b)),null!=k&&0<k.length&&f.push("edit="+encodeURIComponent(k)),h&&f.push("layers=1"),this.editor.graph.foldingEnabled&&f.push("nav=1"));d&&(a=this.getSelectedPageIndex(),0<a&&f.push("page="+a));a=!0;null!=m?d="#U"+encodeURIComponent(m):(c=this.getCurrentFile(),l||null==c||c.constructor!=window.DriveFile?d="#R"+encodeURIComponent(d?this.getFileData(!0,null,null,null,null,null,null,!0):this.editor.graph.compress(mxUtils.getXml(this.editor.getGraphXml()))): +(d="#"+c.getHash(),a=!1));a&&null!=c&&null!=c.getTitle()&&c.getTitle()!=this.defaultFilename&&f.push("title="+encodeURIComponent(c.getTitle()));return(mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||!/.*\.draw\.io$/.test(window.location.hostname)?"https://www.draw.io/":"https://"+window.location.host+"/")+(0<f.length?"?"+f.join("&"):"")+d};EditorUi.prototype.createHtml=function(a,b,d,e,k,h,m,l,v,p,q){this.getBasenames();var c={};""!=k&&k!=mxConstants.NONE&&(c.highlight=k);"auto"!==e&&(c.target=e); +v||(c.lightbox=!1);c.nav=this.editor.graph.foldingEnabled;d=parseInt(d);isNaN(d)||100==d||(c.zoom=d/100);d=[];m&&(d.push("pages"),c.resize=!0,null!=this.pages&&null!=this.currentPage&&(c.page=mxUtils.indexOf(this.pages,this.currentPage)));b&&(d.push("zoom"),c.resize=!0);l&&d.push("layers");0<d.length&&(v&&d.push("lightbox"),c.toolbar=d.join(" "));null!=p&&0<p.length&&(c.edit=p);null!=a?c.url=a:c.xml=this.getFileData(!0,null,null,null,null,!m);b='<div class="mxgraph" style="'+(h?"max-width:100%;": "")+(""!=d?"border:1px solid transparent;":"")+'" data-mxgraph="'+mxUtils.htmlEntities(JSON.stringify(c))+'"></div>';a=null!=a?"&fetch="+encodeURIComponent(a):"";q(b,'<script type="text/javascript" src="'+(0<a.length?("1"==urlParams.dev?"https://test.draw.io/embed2.js?dev=1":"https://www.draw.io/embed2.js?")+a:"1"==urlParams.dev?"https://test.draw.io/js/viewer.min.js":"https://www.draw.io/js/viewer.min.js")+'">\x3c/script>')};EditorUi.prototype.showHtmlDialog=function(a,b,d,e){var c=document.createElement("div"); c.style.whiteSpace="nowrap";var f=document.createElement("h3");mxUtils.write(f,mxResources.get("html"));f.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:12px";c.appendChild(f);var g=document.createElement("div");g.style.cssText="border-bottom:1px solid lightGray;padding-bottom:8px;margin-bottom:12px;";var k=document.createElement("input");k.style.cssText="margin-right:8px;margin-top:8px;margin-bottom:8px;";k.setAttribute("value","url");k.setAttribute("type","radio");k.setAttribute("name", -"type-embedhtmldialog");f=k.cloneNode(!0);f.setAttribute("value","copy");g.appendChild(f);var h=document.createElement("span");mxUtils.write(h,mxResources.get("includeCopyOfMyDiagram"));g.appendChild(h);mxUtils.br(g);g.appendChild(k);h=document.createElement("span");mxUtils.write(h,mxResources.get("publicDiagramUrl"));g.appendChild(h);var m=this.getCurrentFile();null==d&&null!=m&&m.constructor==window.DriveFile&&(h=document.createElement("a"),h.style.paddingLeft="12px",h.style.color="gray",h.setAttribute("href", -"javascript:void(0);"),mxUtils.write(h,mxResources.get("share")),g.appendChild(h),mxEvent.addListener(h,"click",mxUtils.bind(this,function(){this.hideDialog();this.drive.showPermissions(m.getId())})));f.setAttribute("checked","checked");null==d&&k.setAttribute("disabled","disabled");c.appendChild(g);var p=this.addLinkSection(c),t=this.addCheckbox(c,mxResources.get("zoom"),!0,null,!0);mxUtils.write(c,":");var q=document.createElement("input");q.setAttribute("type","text");q.style.marginRight="16px"; -q.style.width="60px";q.style.marginLeft="4px";q.style.marginRight="12px";q.value="100%";c.appendChild(q);var u=this.addCheckbox(c,mxResources.get("fit"),!0),g=null!=this.pages&&1<this.pages.length,G=G=this.addCheckbox(c,mxResources.get("allPages"),g,!g),A=this.addCheckbox(c,mxResources.get("layers"),!0),J=this.addCheckbox(c,mxResources.get("lightbox"),!0),K=this.addEditButton(c,J),x=K.getEditInput();x.style.marginBottom="16px";mxEvent.addListener(J,"change",function(){J.checked?x.removeAttribute("disabled"): -x.setAttribute("disabled","disabled");x.checked&&J.checked?K.getEditSelect().removeAttribute("disabled"):K.getEditSelect().setAttribute("disabled","disabled")});a=new CustomDialog(this,c,mxUtils.bind(this,function(){e(k.checked?d:null,t.checked,q.value,p.getTarget(),p.getColor(),u.checked,G.checked,A.checked,J.checked,K.getLink())}),null,a,b);this.showDialog(a.container,340,384,!0,!0);f.focus()};EditorUi.prototype.showPublishLinkDialog=function(a,b,d,e,h,l){var c=document.createElement("div");c.style.whiteSpace= -"nowrap";var f=document.createElement("h3");mxUtils.write(f,a||mxResources.get("link"));f.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:12px";c.appendChild(f);var g=this.getCurrentFile(),f="https://desk.draw.io/support/solutions/articles/16000051941";a=0;if(null!=g&&g.constructor==window.DriveFile&&!b){a=80;var f="https://desk.draw.io/support/solutions/articles/16000039384",k=document.createElement("div");k.style.cssText="border-bottom:1px solid lightGray;padding-bottom:14px;padding-top:6px;margin-bottom:14px;text-align:center;"; -var r=document.createElement("div");r.style.whiteSpace="normal";mxUtils.write(r,mxResources.get("linkAccountRequired"));k.appendChild(r);r=mxUtils.button(mxResources.get("share"),mxUtils.bind(this,function(){this.drive.showPermissions(g.getId())}));r.style.marginTop="12px";r.className="geBtn";k.appendChild(r);c.appendChild(k);r=document.createElement("a");r.style.paddingLeft="12px";r.style.color="gray";r.style.fontSize="11px";r.setAttribute("href","javascript:void(0);");mxUtils.write(r,mxResources.get("check")); -k.appendChild(r);mxEvent.addListener(r,"click",mxUtils.bind(this,function(){this.spinner.spin(document.body,mxResources.get("loading"))&&this.getPublicUrl(this.getCurrentFile(),mxUtils.bind(this,function(a){this.spinner.stop();a=new ErrorDialog(this,null,mxResources.get(null!=a?"diagramIsPublic":"diagramIsNotPublic"),mxResources.get("ok"));this.showDialog(a.container,300,80,!0,!1);a.init()}))}))}var m=null,p=null;if(null!=d||null!=e)a+=30,mxUtils.write(c,mxResources.get("width")+":"),m=document.createElement("input"), -m.setAttribute("type","text"),m.style.marginRight="16px",m.style.width="50px",m.style.marginLeft="6px",m.style.marginRight="16px",m.style.marginBottom="10px",m.value="100%",c.appendChild(m),mxUtils.write(c,mxResources.get("height")+":"),p=document.createElement("input"),p.setAttribute("type","text"),p.style.width="50px",p.style.marginLeft="6px",p.style.marginBottom="10px",p.value=e+"px",c.appendChild(p),mxUtils.br(c);var q=this.addLinkSection(c,l);d=null!=this.pages&&1<this.pages.length;var u=null; -if(null==g||g.constructor!=window.DriveFile||b)u=this.addCheckbox(c,mxResources.get("allPages"),d,!d);var A=this.addCheckbox(c,mxResources.get("lightbox"),!0),J=this.addEditButton(c,A),K=J.getEditInput(),x=this.addCheckbox(c,mxResources.get("layers"),!0);x.style.marginLeft=K.style.marginLeft;x.style.marginBottom="16px";x.style.marginTop="8px";mxEvent.addListener(A,"change",function(){A.checked?(x.removeAttribute("disabled"),K.removeAttribute("disabled")):(x.setAttribute("disabled","disabled"),K.setAttribute("disabled", -"disabled"));K.checked&&A.checked?J.getEditSelect().removeAttribute("disabled"):J.getEditSelect().setAttribute("disabled","disabled")});b=new CustomDialog(this,c,mxUtils.bind(this,function(){h(q.getTarget(),q.getColor(),null==u?!0:u.checked,A.checked,J.getLink(),x.checked,null!=m?m.value:null,null!=p?p.value:null)}),null,mxResources.get("create"),f);this.showDialog(b.container,340,254+a,!0,!0);null!=m?(m.focus(),mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode||mxClient.IS_QUIRKS?m.select(): -document.execCommand("selectAll",!1,null)):q.focus()};EditorUi.prototype.showRemoteExportDialog=function(a,b,d,e){var c=document.createElement("div");c.style.whiteSpace="nowrap";var f=document.createElement("h3");mxUtils.write(f,mxResources.get("image"));f.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:4px";c.appendChild(f);var g=this.addCheckbox(c,mxResources.get("selectionOnly"),!1,this.editor.graph.isSelectionEmpty()),k=e?null:this.addCheckbox(c,mxResources.get("includeCopyOfMyDiagram"), -!0),f=this.editor.graph,h=e?null:this.addCheckbox(c,mxResources.get("transparentBackground"),f.background==mxConstants.NONE||null==f.background);null!=h&&(h.style.marginBottom="16px");a=new CustomDialog(this,c,mxUtils.bind(this,function(){d(!g.checked,null!=k?k.checked:!1,null!=h?h.checked:!1)}),null,a,b);this.showDialog(a.container,300,e?100:186,!0,!0)};EditorUi.prototype.showExportDialog=function(a,b,d,e,h,l,n,m){n=null!=n?n:!0;var c=document.createElement("div");c.style.whiteSpace="nowrap";var f= -this.editor.graph,g="jpeg"==m?196:300,k=document.createElement("h3");mxUtils.write(k,a);k.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:10px";c.appendChild(k);mxUtils.write(c,mxResources.get("zoom")+":");var r=document.createElement("input");r.setAttribute("type","text");r.style.marginRight="16px";r.style.width="60px";r.style.marginLeft="4px";r.style.marginRight="12px";r.value=this.lastExportZoom||"100%";c.appendChild(r);mxUtils.write(c,mxResources.get("borderWidth")+":"); -var p=document.createElement("input");p.setAttribute("type","text");p.style.marginRight="16px";p.style.width="60px";p.style.marginLeft="4px";p.value=this.lastExportBorder||"0";c.appendChild(p);mxUtils.br(c);var w=this.addCheckbox(c,mxResources.get("transparentBackground"),f.background==mxConstants.NONE||null==f.background,null,null,"jpeg"!=m),q=this.addCheckbox(c,mxResources.get("selectionOnly"),!1,f.isSelectionEmpty()),u=document.createElement("input");u.style.marginTop="16px";u.style.marginRight= -"8px";u.style.marginLeft="24px";u.setAttribute("disabled","disabled");u.setAttribute("type","checkbox");l&&(c.appendChild(u),mxUtils.write(c,mxResources.get("crop")),mxUtils.br(c),g+=26,mxEvent.addListener(q,"change",function(){q.checked?u.removeAttribute("disabled"):u.setAttribute("disabled","disabled")}));f.isSelectionEmpty()||(u.setAttribute("checked","checked"),u.defaultChecked=!0);var K=this.addCheckbox(c,mxResources.get("shadow"),f.shadowVisible),x=document.createElement("input");x.style.marginTop= -"16px";x.style.marginRight="8px";x.setAttribute("type","checkbox");!this.isOffline()&&this.canvasSupported||x.setAttribute("disabled","disabled");b&&(c.appendChild(x),mxUtils.write(c,mxResources.get("embedImages")),mxUtils.br(c),g+=26);var C=this.addCheckbox(c,mxResources.get("includeCopyOfMyDiagram"),n,null,null,"jpeg"!=m),I=null!=this.pages&&1<this.pages.length,R=this.addCheckbox(c,I?mxResources.get("allPages"):"",I,!I,null,"jpeg"!=m);R.style.marginLeft="24px";R.style.marginBottom="16px";I||(R.style.display= -"none");mxEvent.addListener(C,"change",function(){C.checked&&I?R.removeAttribute("disabled"):R.setAttribute("disabled","disabled")});n&&I||R.setAttribute("disabled","disabled");var P=document.createElement("select");P.style.maxWidth="260px";P.style.marginLeft="8px";P.style.marginRight="10px";P.className="geBtn";a=document.createElement("option");a.setAttribute("value","auto");mxUtils.write(a,mxResources.get("automatic"));P.appendChild(a);a=document.createElement("option");a.setAttribute("value","blank"); -mxUtils.write(a,mxResources.get("openInNewWindow"));P.appendChild(a);a=document.createElement("option");a.setAttribute("value","self");mxUtils.write(a,mxResources.get("openInThisWindow"));P.appendChild(a);"svg"==m&&(mxUtils.write(c,mxResources.get("links")+":"),c.appendChild(P),mxUtils.br(c),mxUtils.br(c),g+=26);d=new CustomDialog(this,c,mxUtils.bind(this,function(){this.lastExportBorder=p.value;this.lastExportZoom=r.value;h(r.value,w.checked,!q.checked,K.checked,C.checked,x.checked,p.value,u.checked, -!R.checked,P.value)}),null,d,e);this.showDialog(d.container,340,g,!0,!0);r.focus();mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode||mxClient.IS_QUIRKS?r.select():document.execCommand("selectAll",!1,null)};EditorUi.prototype.showEmbedImageDialog=function(a,b,d,e,h){var c=document.createElement("div");c.style.whiteSpace="nowrap";var f=this.editor.graph;if(null!=b){var g=document.createElement("h3");mxUtils.write(g,b);g.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:4px"; -c.appendChild(g)}var k=this.addCheckbox(c,mxResources.get("fit"),!0),r=this.addCheckbox(c,mxResources.get("shadow"),f.shadowVisible&&e,!e),m=this.addCheckbox(c,d),t=this.addCheckbox(c,mxResources.get("lightbox"),!0),p=this.addEditButton(c,t),q=p.getEditInput(),u=1<f.model.getChildCount(f.model.getRoot()),A=this.addCheckbox(c,mxResources.get("layers"),u,!u);A.style.marginLeft=q.style.marginLeft;A.style.marginBottom="12px";A.style.marginTop="8px";mxEvent.addListener(t,"change",function(){t.checked? -(u&&A.removeAttribute("disabled"),q.removeAttribute("disabled")):(A.setAttribute("disabled","disabled"),q.setAttribute("disabled","disabled"));q.checked&&t.checked?p.getEditSelect().removeAttribute("disabled"):p.getEditSelect().setAttribute("disabled","disabled")});b=new CustomDialog(this,c,mxUtils.bind(this,function(){a(k.checked,r.checked,m.checked,t.checked,p.getLink(),A.checked)}),null,mxResources.get("embed"),h);this.showDialog(b.container,280,280,!0,!0)};EditorUi.prototype.createEmbedImage= -function(a,b,d,e,h,l,n,m){function c(c){var b=" ",g="";e&&(b=" onclick=\"(function(img){if(img.wnd!=null&&!img.wnd.closed){img.wnd.focus();}else{var r=function(evt){if(evt.data=='ready'&&evt.source==img.wnd){img.wnd.postMessage(decodeURIComponent(img.getAttribute('src')),'*');window.removeEventListener('message',r);}};window.addEventListener('message',r);img.wnd=window.open('https://www.draw.io/?client=1&lightbox=1"+(h?"&edit=_blank":"")+(l?"&layers=1":"")+"');}})(this);\"",g+="cursor:pointer;"); -a&&(g+="max-width:100%;");var k="";d&&(k=' width="'+Math.round(f.width)+'" height="'+Math.round(f.height)+'"');n('<img src="'+c+'"'+k+(""!=g?' style="'+g+'"':"")+b+"/>")}var f=this.editor.graph.getGraphBounds();if(this.isExportToCanvas())this.exportToCanvas(mxUtils.bind(this,function(a){var b=e?this.getFileData(!0):null;a=this.createImageDataUri(a,b,"png");c(a)}),null,null,null,mxUtils.bind(this,function(a){m({message:mxResources.get("unknownError")})}),null,!0,d?2:1,null,b);else if(b=this.getFileData(!0), -f.width*f.height<=MAX_AREA&&b.length<=MAX_REQUEST_SIZE){var g="";d&&(g="&w="+Math.round(2*f.width)+"&h="+Math.round(2*f.height));var k=new mxXmlRequest(EXPORT_URL,"format=png&base64=1&embedXml="+(e?"1":"0")+g+"&xml="+encodeURIComponent(b));k.send(mxUtils.bind(this,function(){200<=k.getStatus()&&299>=k.getStatus()?c("data:image/png;base64,"+k.getText()):m({message:mxResources.get("unknownError")})}))}else m({message:mxResources.get("drawingTooLarge")})};EditorUi.prototype.createEmbedSvg=function(a, -b,d,e,h,l,n){var c=this.editor.graph.getSvg(),f=c.getElementsByTagName("a");if(null!=f)for(var g=0;g<f.length;g++){var k=f[g].getAttribute("href");null!=k&&"#"==k.charAt(0)&&"_blank"==f[g].getAttribute("target")&&f[g].removeAttribute("target")}e&&c.setAttribute("content",this.getFileData(!0));b&&this.editor.graph.addSvgShadow(c);if(d){var r=" ",m="";e&&(r="onclick=\"(function(img){if(img.wnd!=null&&!img.wnd.closed){img.wnd.focus();}else{var r=function(evt){if(evt.data=='ready'&&evt.source==img.wnd){img.wnd.postMessage(decodeURIComponent(img.getAttribute('src')),'*');window.removeEventListener('message',r);}};window.addEventListener('message',r);img.wnd=window.open('https://www.draw.io/?client=1&lightbox=1"+ -(h?"&edit=_blank":"")+(l?"&layers=1":"")+"');}})(this);\"",m+="cursor:pointer;");a&&(m+="max-width:100%;");this.convertImages(c,mxUtils.bind(this,function(a){n('<img src="'+this.createSvgDataUri(mxUtils.getXml(a))+'"'+(""!=m?' style="'+m+'"':"")+r+"/>")}))}else m="",e&&(c.setAttribute("onclick","(function(svg){var src=window.event.target||window.event.srcElement;while (src!=null&&src.nodeName.toLowerCase()!='a'){src=src.parentNode;}if(src==null){if(svg.wnd!=null&&!svg.wnd.closed){svg.wnd.focus();}else{var r=function(evt){if(evt.data=='ready'&&evt.source==svg.wnd){svg.wnd.postMessage(decodeURIComponent(svg.getAttribute('content')),'*');window.removeEventListener('message',r);}};window.addEventListener('message',r);svg.wnd=window.open('https://www.draw.io/?client=1&lightbox=1"+ -(h?"&edit=_blank":"")+(l?"&layers=1":"")+"');}}})(this);"),m+="cursor:pointer;"),a&&(a=parseInt(c.getAttribute("width")),b=parseInt(c.getAttribute("height")),c.setAttribute("viewBox","0 0 "+a+" "+b),m+="max-width:100%;max-height:"+b+"px;",c.removeAttribute("height")),""!=m&&c.setAttribute("style",m),n(mxUtils.getXml(c))};EditorUi.prototype.timeSince=function(a){a=Math.floor((new Date-a)/1E3);var c=Math.floor(a/31536E3);if(1<c)return c+" "+mxResources.get("years");c=Math.floor(a/2592E3);if(1<c)return c+ +"type-embedhtmldialog");f=k.cloneNode(!0);f.setAttribute("value","copy");g.appendChild(f);var n=document.createElement("span");mxUtils.write(n,mxResources.get("includeCopyOfMyDiagram"));g.appendChild(n);mxUtils.br(g);g.appendChild(k);n=document.createElement("span");mxUtils.write(n,mxResources.get("publicDiagramUrl"));g.appendChild(n);var l=this.getCurrentFile();null==d&&null!=l&&l.constructor==window.DriveFile&&(n=document.createElement("a"),n.style.paddingLeft="12px",n.style.color="gray",n.setAttribute("href", +"javascript:void(0);"),mxUtils.write(n,mxResources.get("share")),g.appendChild(n),mxEvent.addListener(n,"click",mxUtils.bind(this,function(){this.hideDialog();this.drive.showPermissions(l.getId())})));f.setAttribute("checked","checked");null==d&&k.setAttribute("disabled","disabled");c.appendChild(g);var p=this.addLinkSection(c),t=this.addCheckbox(c,mxResources.get("zoom"),!0,null,!0);mxUtils.write(c,":");var q=document.createElement("input");q.setAttribute("type","text");q.style.marginRight="16px"; +q.style.width="60px";q.style.marginLeft="4px";q.style.marginRight="12px";q.value="100%";c.appendChild(q);var u=this.addCheckbox(c,mxResources.get("fit"),!0),g=null!=this.pages&&1<this.pages.length,G=G=this.addCheckbox(c,mxResources.get("allPages"),g,!g),B=this.addCheckbox(c,mxResources.get("layers"),!0),J=this.addCheckbox(c,mxResources.get("lightbox"),!0),K=this.addEditButton(c,J),x=K.getEditInput();x.style.marginBottom="16px";mxEvent.addListener(J,"change",function(){J.checked?x.removeAttribute("disabled"): +x.setAttribute("disabled","disabled");x.checked&&J.checked?K.getEditSelect().removeAttribute("disabled"):K.getEditSelect().setAttribute("disabled","disabled")});a=new CustomDialog(this,c,mxUtils.bind(this,function(){e(k.checked?d:null,t.checked,q.value,p.getTarget(),p.getColor(),u.checked,G.checked,B.checked,J.checked,K.getLink())}),null,a,b);this.showDialog(a.container,340,384,!0,!0);f.focus()};EditorUi.prototype.showPublishLinkDialog=function(a,b,d,e,k,h){var c=document.createElement("div");c.style.whiteSpace= +"nowrap";var f=document.createElement("h3");mxUtils.write(f,a||mxResources.get("link"));f.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:12px";c.appendChild(f);var g=this.getCurrentFile(),f="https://desk.draw.io/support/solutions/articles/16000051941";a=0;if(null!=g&&g.constructor==window.DriveFile&&!b){a=80;var f="https://desk.draw.io/support/solutions/articles/16000039384",n=document.createElement("div");n.style.cssText="border-bottom:1px solid lightGray;padding-bottom:14px;padding-top:6px;margin-bottom:14px;text-align:center;"; +var r=document.createElement("div");r.style.whiteSpace="normal";mxUtils.write(r,mxResources.get("linkAccountRequired"));n.appendChild(r);r=mxUtils.button(mxResources.get("share"),mxUtils.bind(this,function(){this.drive.showPermissions(g.getId())}));r.style.marginTop="12px";r.className="geBtn";n.appendChild(r);c.appendChild(n);r=document.createElement("a");r.style.paddingLeft="12px";r.style.color="gray";r.style.fontSize="11px";r.setAttribute("href","javascript:void(0);");mxUtils.write(r,mxResources.get("check")); +n.appendChild(r);mxEvent.addListener(r,"click",mxUtils.bind(this,function(){this.spinner.spin(document.body,mxResources.get("loading"))&&this.getPublicUrl(this.getCurrentFile(),mxUtils.bind(this,function(a){this.spinner.stop();a=new ErrorDialog(this,null,mxResources.get(null!=a?"diagramIsPublic":"diagramIsNotPublic"),mxResources.get("ok"));this.showDialog(a.container,300,80,!0,!1);a.init()}))}))}var t=null,l=null;if(null!=d||null!=e)a+=30,mxUtils.write(c,mxResources.get("width")+":"),t=document.createElement("input"), +t.setAttribute("type","text"),t.style.marginRight="16px",t.style.width="50px",t.style.marginLeft="6px",t.style.marginRight="16px",t.style.marginBottom="10px",t.value="100%",c.appendChild(t),mxUtils.write(c,mxResources.get("height")+":"),l=document.createElement("input"),l.setAttribute("type","text"),l.style.width="50px",l.style.marginLeft="6px",l.style.marginBottom="10px",l.value=e+"px",c.appendChild(l),mxUtils.br(c);var p=this.addLinkSection(c,h);d=null!=this.pages&&1<this.pages.length;var q=null; +if(null==g||g.constructor!=window.DriveFile||b)q=this.addCheckbox(c,mxResources.get("allPages"),d,!d);var u=this.addCheckbox(c,mxResources.get("lightbox"),!0),J=this.addEditButton(c,u),K=J.getEditInput(),x=this.addCheckbox(c,mxResources.get("layers"),!0);x.style.marginLeft=K.style.marginLeft;x.style.marginBottom="16px";x.style.marginTop="8px";mxEvent.addListener(u,"change",function(){u.checked?(x.removeAttribute("disabled"),K.removeAttribute("disabled")):(x.setAttribute("disabled","disabled"),K.setAttribute("disabled", +"disabled"));K.checked&&u.checked?J.getEditSelect().removeAttribute("disabled"):J.getEditSelect().setAttribute("disabled","disabled")});b=new CustomDialog(this,c,mxUtils.bind(this,function(){k(p.getTarget(),p.getColor(),null==q?!0:q.checked,u.checked,J.getLink(),x.checked,null!=t?t.value:null,null!=l?l.value:null)}),null,mxResources.get("create"),f);this.showDialog(b.container,340,254+a,!0,!0);null!=t?(t.focus(),mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode||mxClient.IS_QUIRKS?t.select(): +document.execCommand("selectAll",!1,null)):p.focus()};EditorUi.prototype.showRemoteExportDialog=function(a,b,d,e){var c=document.createElement("div");c.style.whiteSpace="nowrap";var f=document.createElement("h3");mxUtils.write(f,mxResources.get("image"));f.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:4px";c.appendChild(f);var g=this.addCheckbox(c,mxResources.get("selectionOnly"),!1,this.editor.graph.isSelectionEmpty()),k=e?null:this.addCheckbox(c,mxResources.get("includeCopyOfMyDiagram"), +!0),f=this.editor.graph,n=e?null:this.addCheckbox(c,mxResources.get("transparentBackground"),f.background==mxConstants.NONE||null==f.background);null!=n&&(n.style.marginBottom="16px");a=new CustomDialog(this,c,mxUtils.bind(this,function(){d(!g.checked,null!=k?k.checked:!1,null!=n?n.checked:!1)}),null,a,b);this.showDialog(a.container,300,e?100:186,!0,!0)};EditorUi.prototype.showExportDialog=function(a,b,d,e,k,h,m,l){m=null!=m?m:!0;var c=document.createElement("div");c.style.whiteSpace="nowrap";var f= +this.editor.graph,g="jpeg"==l?196:300,n=document.createElement("h3");mxUtils.write(n,a);n.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:10px";c.appendChild(n);mxUtils.write(c,mxResources.get("zoom")+":");var r=document.createElement("input");r.setAttribute("type","text");r.style.marginRight="16px";r.style.width="60px";r.style.marginLeft="4px";r.style.marginRight="12px";r.value=this.lastExportZoom||"100%";c.appendChild(r);mxUtils.write(c,mxResources.get("borderWidth")+":"); +var p=document.createElement("input");p.setAttribute("type","text");p.style.marginRight="16px";p.style.width="60px";p.style.marginLeft="4px";p.value=this.lastExportBorder||"0";c.appendChild(p);mxUtils.br(c);var w=this.addCheckbox(c,mxResources.get("transparentBackground"),f.background==mxConstants.NONE||null==f.background,null,null,"jpeg"!=l),q=this.addCheckbox(c,mxResources.get("selectionOnly"),!1,f.isSelectionEmpty()),u=document.createElement("input");u.style.marginTop="16px";u.style.marginRight= +"8px";u.style.marginLeft="24px";u.setAttribute("disabled","disabled");u.setAttribute("type","checkbox");h&&(c.appendChild(u),mxUtils.write(c,mxResources.get("crop")),mxUtils.br(c),g+=26,mxEvent.addListener(q,"change",function(){q.checked?u.removeAttribute("disabled"):u.setAttribute("disabled","disabled")}));f.isSelectionEmpty()||(u.setAttribute("checked","checked"),u.defaultChecked=!0);var K=this.addCheckbox(c,mxResources.get("shadow"),f.shadowVisible),x=document.createElement("input");x.style.marginTop= +"16px";x.style.marginRight="8px";x.setAttribute("type","checkbox");!this.isOffline()&&this.canvasSupported||x.setAttribute("disabled","disabled");b&&(c.appendChild(x),mxUtils.write(c,mxResources.get("embedImages")),mxUtils.br(c),g+=26);var C=this.addCheckbox(c,mxResources.get("includeCopyOfMyDiagram"),m,null,null,"jpeg"!=l),I=null!=this.pages&&1<this.pages.length,R=this.addCheckbox(c,I?mxResources.get("allPages"):"",I,!I,null,"jpeg"!=l);R.style.marginLeft="24px";R.style.marginBottom="16px";I||(R.style.display= +"none");mxEvent.addListener(C,"change",function(){C.checked&&I?R.removeAttribute("disabled"):R.setAttribute("disabled","disabled")});m&&I||R.setAttribute("disabled","disabled");var P=document.createElement("select");P.style.maxWidth="260px";P.style.marginLeft="8px";P.style.marginRight="10px";P.className="geBtn";a=document.createElement("option");a.setAttribute("value","auto");mxUtils.write(a,mxResources.get("automatic"));P.appendChild(a);a=document.createElement("option");a.setAttribute("value","blank"); +mxUtils.write(a,mxResources.get("openInNewWindow"));P.appendChild(a);a=document.createElement("option");a.setAttribute("value","self");mxUtils.write(a,mxResources.get("openInThisWindow"));P.appendChild(a);"svg"==l&&(mxUtils.write(c,mxResources.get("links")+":"),c.appendChild(P),mxUtils.br(c),mxUtils.br(c),g+=26);d=new CustomDialog(this,c,mxUtils.bind(this,function(){this.lastExportBorder=p.value;this.lastExportZoom=r.value;k(r.value,w.checked,!q.checked,K.checked,C.checked,x.checked,p.value,u.checked, +!R.checked,P.value)}),null,d,e);this.showDialog(d.container,340,g,!0,!0);r.focus();mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode||mxClient.IS_QUIRKS?r.select():document.execCommand("selectAll",!1,null)};EditorUi.prototype.showEmbedImageDialog=function(a,b,d,e,k){var c=document.createElement("div");c.style.whiteSpace="nowrap";var f=this.editor.graph;if(null!=b){var g=document.createElement("h3");mxUtils.write(g,b);g.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:4px"; +c.appendChild(g)}var n=this.addCheckbox(c,mxResources.get("fit"),!0),r=this.addCheckbox(c,mxResources.get("shadow"),f.shadowVisible&&e,!e),l=this.addCheckbox(c,d),t=this.addCheckbox(c,mxResources.get("lightbox"),!0),p=this.addEditButton(c,t),q=p.getEditInput(),u=1<f.model.getChildCount(f.model.getRoot()),B=this.addCheckbox(c,mxResources.get("layers"),u,!u);B.style.marginLeft=q.style.marginLeft;B.style.marginBottom="12px";B.style.marginTop="8px";mxEvent.addListener(t,"change",function(){t.checked? +(u&&B.removeAttribute("disabled"),q.removeAttribute("disabled")):(B.setAttribute("disabled","disabled"),q.setAttribute("disabled","disabled"));q.checked&&t.checked?p.getEditSelect().removeAttribute("disabled"):p.getEditSelect().setAttribute("disabled","disabled")});b=new CustomDialog(this,c,mxUtils.bind(this,function(){a(n.checked,r.checked,l.checked,t.checked,p.getLink(),B.checked)}),null,mxResources.get("embed"),k);this.showDialog(b.container,280,280,!0,!0)};EditorUi.prototype.createEmbedImage= +function(a,b,d,e,k,h,m,l){function c(c){var b=" ",g="";e&&(b=" onclick=\"(function(img){if(img.wnd!=null&&!img.wnd.closed){img.wnd.focus();}else{var r=function(evt){if(evt.data=='ready'&&evt.source==img.wnd){img.wnd.postMessage(decodeURIComponent(img.getAttribute('src')),'*');window.removeEventListener('message',r);}};window.addEventListener('message',r);img.wnd=window.open('https://www.draw.io/?client=1&lightbox=1"+(k?"&edit=_blank":"")+(h?"&layers=1":"")+"');}})(this);\"",g+="cursor:pointer;"); +a&&(g+="max-width:100%;");var n="";d&&(n=' width="'+Math.round(f.width)+'" height="'+Math.round(f.height)+'"');m('<img src="'+c+'"'+n+(""!=g?' style="'+g+'"':"")+b+"/>")}var f=this.editor.graph.getGraphBounds();if(this.isExportToCanvas())this.exportToCanvas(mxUtils.bind(this,function(a){var b=e?this.getFileData(!0):null;a=this.createImageDataUri(a,b,"png");c(a)}),null,null,null,mxUtils.bind(this,function(a){l({message:mxResources.get("unknownError")})}),null,!0,d?2:1,null,b);else if(b=this.getFileData(!0), +f.width*f.height<=MAX_AREA&&b.length<=MAX_REQUEST_SIZE){var g="";d&&(g="&w="+Math.round(2*f.width)+"&h="+Math.round(2*f.height));var n=new mxXmlRequest(EXPORT_URL,"format=png&base64=1&embedXml="+(e?"1":"0")+g+"&xml="+encodeURIComponent(b));n.send(mxUtils.bind(this,function(){200<=n.getStatus()&&299>=n.getStatus()?c("data:image/png;base64,"+n.getText()):l({message:mxResources.get("unknownError")})}))}else l({message:mxResources.get("drawingTooLarge")})};EditorUi.prototype.createEmbedSvg=function(a, +b,d,e,k,h,m){var c=this.editor.graph.getSvg(),f=c.getElementsByTagName("a");if(null!=f)for(var g=0;g<f.length;g++){var n=f[g].getAttribute("href");null!=n&&"#"==n.charAt(0)&&"_blank"==f[g].getAttribute("target")&&f[g].removeAttribute("target")}e&&c.setAttribute("content",this.getFileData(!0));b&&this.editor.graph.addSvgShadow(c);if(d){var r=" ",l="";e&&(r="onclick=\"(function(img){if(img.wnd!=null&&!img.wnd.closed){img.wnd.focus();}else{var r=function(evt){if(evt.data=='ready'&&evt.source==img.wnd){img.wnd.postMessage(decodeURIComponent(img.getAttribute('src')),'*');window.removeEventListener('message',r);}};window.addEventListener('message',r);img.wnd=window.open('https://www.draw.io/?client=1&lightbox=1"+ +(k?"&edit=_blank":"")+(h?"&layers=1":"")+"');}})(this);\"",l+="cursor:pointer;");a&&(l+="max-width:100%;");this.convertImages(c,mxUtils.bind(this,function(a){m('<img src="'+this.createSvgDataUri(mxUtils.getXml(a))+'"'+(""!=l?' style="'+l+'"':"")+r+"/>")}))}else l="",e&&(c.setAttribute("onclick","(function(svg){var src=window.event.target||window.event.srcElement;while (src!=null&&src.nodeName.toLowerCase()!='a'){src=src.parentNode;}if(src==null){if(svg.wnd!=null&&!svg.wnd.closed){svg.wnd.focus();}else{var r=function(evt){if(evt.data=='ready'&&evt.source==svg.wnd){svg.wnd.postMessage(decodeURIComponent(svg.getAttribute('content')),'*');window.removeEventListener('message',r);}};window.addEventListener('message',r);svg.wnd=window.open('https://www.draw.io/?client=1&lightbox=1"+ +(k?"&edit=_blank":"")+(h?"&layers=1":"")+"');}}})(this);"),l+="cursor:pointer;"),a&&(a=parseInt(c.getAttribute("width")),b=parseInt(c.getAttribute("height")),c.setAttribute("viewBox","0 0 "+a+" "+b),l+="max-width:100%;max-height:"+b+"px;",c.removeAttribute("height")),""!=l&&c.setAttribute("style",l),m(mxUtils.getXml(c))};EditorUi.prototype.timeSince=function(a){a=Math.floor((new Date-a)/1E3);var c=Math.floor(a/31536E3);if(1<c)return c+" "+mxResources.get("years");c=Math.floor(a/2592E3);if(1<c)return c+ " "+mxResources.get("months");c=Math.floor(a/86400);if(1<c)return c+" "+mxResources.get("days");c=Math.floor(a/3600);if(1<c)return c+" "+mxResources.get("hours");c=Math.floor(a/60);return 1<c?c+" "+mxResources.get("minutes"):1==c?c+" "+mxResources.get("minute"):null};EditorUi.prototype.convertMath=function(a,b,d,e){a.mathEnabled&&"undefined"!==typeof MathJax&&"undefined"!==typeof MathJax.Hub?(Editor.MathJaxRender(b),window.setTimeout(mxUtils.bind(this,function(){MathJax.Hub.Queue(mxUtils.bind(this, function(){e()}))}),0)):e()};EditorUi.prototype.decodeNodeIntoGraph=function(a,b){if(null!=a){var c=null;if("diagram"==a.nodeName)c=a;else if("mxfile"==a.nodeName){var d=a.getElementsByTagName("diagram");if(0<d.length){var c=d[0],e=b.getGlobalVariable;b.getGlobalVariable=function(a){return"page"==a?c.getAttribute("name")||mxResources.get("pageWithNumber",[1]):"pagenumber"==a?1:e.apply(this,arguments)}}}null!=c&&(d=b.decompress(mxUtils.getTextContent(c)),null!=d&&0<d.length&&(a=mxUtils.parseXml(d).documentElement))}d= -this.editor.graph;try{this.editor.graph=b,this.editor.setGraphXml(a)}catch(l){}finally{this.editor.graph=d}return a};EditorUi.prototype.getEmbeddedPng=function(a,b,d){var c=this.editor.graph,e=null;if(null!=d&&0<d.length)c=this.createTemporaryGraph(this.editor.graph.getStylesheet()),document.body.appendChild(c.container),this.decodeNodeIntoGraph(this.editor.extractGraphModel(mxUtils.parseXml(d).documentElement,!0),c),e=d;else if(null!=this.pages&&this.currentPage!=this.pages[0]){var c=this.createTemporaryGraph(c.getStylesheet()), -f=c.getGlobalVariable,g=this.pages[0];c.getGlobalVariable=function(a){return"page"==a?g.getName():"pagenumber"==a?1:f.apply(this,arguments)};document.body.appendChild(c.container);c.model.setRoot(g.root)}this.exportToCanvas(mxUtils.bind(this,function(d){try{null==e&&(e=this.getFileData(!0));var f=d.toDataURL("image/png"),f=this.writeGraphModelToPng(f,"zTXt","mxGraphModel",atob(this.editor.graph.compress(e)));a(f.substring(f.lastIndexOf(",")+1));c!=this.editor.graph&&c.container.parentNode.removeChild(c.container)}catch(B){null!= -b&&b(B)}}),null,null,null,mxUtils.bind(this,function(a){null!=b&&b(a)}),null,null,null,null,c.shadowVisible,null,c)};EditorUi.prototype.getEmbeddedSvg=function(a,b,d,e,h,l,n){n=b.background;n==mxConstants.NONE&&(n=null);b=b.getSvg(n,null,null,null,null,l);null!=a&&b.setAttribute("content",a);null!=d&&b.setAttribute("resource",d);if(null!=h)this.convertImages(b,mxUtils.bind(this,function(a){h((e?"":'<?xml version="1.0" encoding="UTF-8"?>\n<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">\n')+ -mxUtils.getXml(a))}));else return(e?"":'<?xml version="1.0" encoding="UTF-8"?>\n<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">\n')+mxUtils.getXml(b)};EditorUi.prototype.exportImage=function(a,b,d,e,h,l,n,m,p){p=null!=p?p:"png";if(this.spinner.spin(document.body,mxResources.get("exporting"))){var c=this.editor.graph.isSelectionEmpty();d=null!=d?d:c;null==this.thumbImageCache&&(this.thumbImageCache={});try{this.exportToCanvas(mxUtils.bind(this,function(a){this.spinner.stop(); -try{this.saveCanvas(a,h?this.getFileData(!0,null,null,null,d,m):null,p)}catch(t){"Invalid image"==t.message?this.downloadFile(p):this.handleError(t)}}),null,this.thumbImageCache,null,mxUtils.bind(this,function(a){this.spinner.stop();this.handleError(a)}),null,d,a||1,b,e,null,null,l,n)}catch(y){this.spinner.stop(),this.handleError(y)}}};EditorUi.prototype.loadFonts=function(a){if(null!=this.editor.fontCss&&null==this.editor.resolvedFontCss){var c=function(a){return a.replace(RegExp("^[\\s\"']+","g"), -"").replace(RegExp("[\\s\"']+$","g"),"")},b=this.editor.fontCss.split("url("),d=0,e={},l=mxUtils.bind(this,function(){if(0==d){for(var f=[b[0]],g=1;g<b.length;g++){var k=b[g].indexOf(")");f.push('url("');f.push(e[c(b[g].substring(0,k))]);f.push('"'+b[g].substring(k))}this.editor.resolvedFontCss=f.join("");a()}});if(0<b.length)for(var h=1;h<b.length;h++){var m=b[h].indexOf(")"),p=null,q=b[h].indexOf("format(",m);0<q&&(p=c(b[h].substring(q+7,b[h].indexOf(")",q))));mxUtils.bind(this,function(a){if(null== -e[a]){e[a]=a;d++;var c="application/x-font-ttf";if("svg"==p||/(\.svg)($|\?)/i.test(a))c="image/svg+xml";else if("otf"==p||"embedded-opentype"==p||/(\.otf)($|\?)/i.test(a))c="application/x-font-opentype";else if("woff"==p||/(\.woff)($|\?)/i.test(a))c="application/font-woff";else if("woff2"==p||/(\.woff2)($|\?)/i.test(a))c="application/font-woff2";else if("eot"==p||/(\.eot)($|\?)/i.test(a))c="application/vnd.ms-fontobject";else if("sfnt"==p||/(\.sfnt)($|\?)/i.test(a))c="application/font-sfnt";var b= -a;/^https?:\/\//.test(b)&&!this.isCorsEnabledForUrl(b)&&(b=PROXY_URL+"?url="+encodeURIComponent(a));this.loadUrl(b,mxUtils.bind(this,function(c){e[a]=c;d--;l()}),mxUtils.bind(this,function(a){d--;l()}),!0,null,"data:"+c+";charset=utf-8;base64,")}})(c(b[h].substring(0,m)),p)}}else a()};EditorUi.prototype.exportToCanvas=function(a,b,d,e,h,l,n,m,p,q,y,t,u,H){l=null!=l?l:!0;t=null!=t?t:this.editor.graph;u=null!=u?u:0;var c=p?null:t.background;c==mxConstants.NONE&&(c=null);null==c&&(c=e);null==c&&0==p&& -(c=this.editor.graph.defaultPageBackgroundColor);this.convertImages(t.getSvg(c,null,null,H,null,null!=n?n:!0),mxUtils.bind(this,function(d){var e=new Image;e.onload=mxUtils.bind(this,function(){try{var f=document.createElement("canvas"),g=parseInt(d.getAttribute("width")),k=parseInt(d.getAttribute("height"));m=null!=m?m:1;null!=b&&(m=l?Math.min(1,Math.min(3*b/(4*k),b/g)):b/g);g=Math.ceil(m*g)+2*u;k=Math.ceil(m*k)+2*u;f.setAttribute("width",g);f.setAttribute("height",k);var n=f.getContext("2d");null!= -c&&(n.beginPath(),n.rect(0,0,g,k),n.fillStyle=c,n.fill());n.scale(m,m);mxClient.IS_SF?window.setTimeout(function(){n.drawImage(e,u/m,u/m);a(f)},0):(n.drawImage(e,u/m,u/m),a(f))}catch(P){null!=h&&h(P)}});e.onerror=function(a){null!=h&&h(a)};try{q&&this.editor.graph.addSvgShadow(d);var f=mxUtils.bind(this,function(){if(null!=this.editor.resolvedFontCss){var a=document.createElement("style");a.setAttribute("type","text/css");a.innerHTML=this.editor.resolvedFontCss;d.getElementsByTagName("defs")[0].appendChild(a)}this.convertMath(t, -d,!0,mxUtils.bind(this,function(){e.src=this.createSvgDataUri(mxUtils.getXml(d))}))});this.loadFonts(f)}catch(x){null!=h&&h(x)}}),d,y)};EditorUi.prototype.createImageUrlConverter=function(){var a=new mxUrlConverter;a.updateBaseUrl();var b=a.convert,d=this;a.convert=function(c){if(null!=c){var e="http://"==c.substring(0,7)||"https://"==c.substring(0,8);e&&!navigator.onLine?c=d.svgBrokenImage.src:!e||c.substring(0,a.baseUrl.length)==a.baseUrl||d.crossOriginImages&&d.isCorsEnabledForUrl(c)?"chrome-extension://"!= -c.substring(0,19)&&(c=b.apply(this,arguments)):c=PROXY_URL+"?url="+encodeURIComponent(c)}return c};return a};EditorUi.prototype.convertImages=function(a,b,d,e){null==e&&(e=this.createImageUrlConverter());var c=0,f=d||{};d=mxUtils.bind(this,function(d,g){for(var k=a.getElementsByTagName(d),h=0;h<k.length;h++)mxUtils.bind(this,function(d){var k=e.convert(d.getAttribute(g));if(null!=k&&"data:"!=k.substring(0,5)){var h=f[k];null==h?(c++,this.convertImageToDataUri(k,function(e){null!=e&&(f[k]=e,d.setAttribute(g, -e));c--;0==c&&b(a)})):d.setAttribute(g,h)}else null!=k&&d.setAttribute(g,k)})(k[h])});d("image","xlink:href");d("img","src");0==c&&b(a)};EditorUi.prototype.loadUrl=function(a,b,d,e,h,l){try{var c=e||/(\.png)($|\?)/i.test(a)||/(\.jpe?g)($|\?)/i.test(a)||/(\.gif)($|\?)/i.test(a);h=null!=h?h:!0;var f=mxUtils.bind(this,function(){mxUtils.get(a,mxUtils.bind(this,function(a){if(200<=a.getStatus()&&299>=a.getStatus()){if(null!=b){var e=a.getText();if(c){if((9==document.documentMode||10==document.documentMode)&& -"undefined"!==typeof window.mxUtilsBinaryToArray){a=mxUtilsBinaryToArray(a.request.responseBody).toArray();for(var e=Array(a.length),f=0;f<a.length;f++)e[f]=String.fromCharCode(a[f]);e=e.join("")}l=null!=l?l:"data:image/png;base64,";e=l+this.base64Encode(e)}b(e)}}else null!=d&&d({code:App.ERROR_UNKNOWN},a)}),function(){null!=d&&d({code:App.ERROR_UNKNOWN})},c,this.timeout,function(){h&&null!=d&&d({code:App.ERROR_TIMEOUT,retry:f})})});f()}catch(v){null!=d&&d(v)}};EditorUi.prototype.isCorsEnabledForUrl= +this.editor.graph;try{this.editor.graph=b,this.editor.setGraphXml(a)}catch(h){}finally{this.editor.graph=d}return a};EditorUi.prototype.getEmbeddedPng=function(a,b,d){var c=this.editor.graph,e=null;if(null!=d&&0<d.length)c=this.createTemporaryGraph(this.editor.graph.getStylesheet()),document.body.appendChild(c.container),this.decodeNodeIntoGraph(this.editor.extractGraphModel(mxUtils.parseXml(d).documentElement,!0),c),e=d;else if(null!=this.pages&&this.currentPage!=this.pages[0]){var c=this.createTemporaryGraph(c.getStylesheet()), +f=c.getGlobalVariable,g=this.pages[0];c.getGlobalVariable=function(a){return"page"==a?g.getName():"pagenumber"==a?1:f.apply(this,arguments)};document.body.appendChild(c.container);c.model.setRoot(g.root)}this.exportToCanvas(mxUtils.bind(this,function(d){try{null==e&&(e=this.getFileData(!0));var f=d.toDataURL("image/png"),f=this.writeGraphModelToPng(f,"zTXt","mxGraphModel",atob(this.editor.graph.compress(e)));a(f.substring(f.lastIndexOf(",")+1));c!=this.editor.graph&&c.container.parentNode.removeChild(c.container)}catch(A){null!= +b&&b(A)}}),null,null,null,mxUtils.bind(this,function(a){null!=b&&b(a)}),null,null,null,null,c.shadowVisible,null,c)};EditorUi.prototype.getEmbeddedSvg=function(a,b,d,e,k,h,m){m=b.background;m==mxConstants.NONE&&(m=null);b=b.getSvg(m,null,null,null,null,h);null!=a&&b.setAttribute("content",a);null!=d&&b.setAttribute("resource",d);if(null!=k)this.convertImages(b,mxUtils.bind(this,function(a){k((e?"":'<?xml version="1.0" encoding="UTF-8"?>\n<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">\n')+ +mxUtils.getXml(a))}));else return(e?"":'<?xml version="1.0" encoding="UTF-8"?>\n<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">\n')+mxUtils.getXml(b)};EditorUi.prototype.exportImage=function(a,b,d,e,k,h,m,l,p){p=null!=p?p:"png";if(this.spinner.spin(document.body,mxResources.get("exporting"))){var c=this.editor.graph.isSelectionEmpty();d=null!=d?d:c;null==this.thumbImageCache&&(this.thumbImageCache={});try{this.exportToCanvas(mxUtils.bind(this,function(a){this.spinner.stop(); +try{this.saveCanvas(a,k?this.getFileData(!0,null,null,null,d,l):null,p)}catch(t){"Invalid image"==t.message?this.downloadFile(p):this.handleError(t)}}),null,this.thumbImageCache,null,mxUtils.bind(this,function(a){this.spinner.stop();this.handleError(a)}),null,d,a||1,b,e,null,null,h,m)}catch(y){this.spinner.stop(),this.handleError(y)}}};EditorUi.prototype.loadFonts=function(a){if(null!=this.editor.fontCss&&null==this.editor.resolvedFontCss){var c=function(a){return a.replace(RegExp("^[\\s\"']+","g"), +"").replace(RegExp("[\\s\"']+$","g"),"")},b=this.editor.fontCss.split("url("),d=0,e={},h=mxUtils.bind(this,function(){if(0==d){for(var f=[b[0]],g=1;g<b.length;g++){var h=b[g].indexOf(")");f.push('url("');f.push(e[c(b[g].substring(0,h))]);f.push('"'+b[g].substring(h))}this.editor.resolvedFontCss=f.join("");a()}});if(0<b.length)for(var m=1;m<b.length;m++){var k=b[m].indexOf(")"),l=null,p=b[m].indexOf("format(",k);0<p&&(l=c(b[m].substring(p+7,b[m].indexOf(")",p))));mxUtils.bind(this,function(a){if(null== +e[a]){e[a]=a;d++;var c="application/x-font-ttf";if("svg"==l||/(\.svg)($|\?)/i.test(a))c="image/svg+xml";else if("otf"==l||"embedded-opentype"==l||/(\.otf)($|\?)/i.test(a))c="application/x-font-opentype";else if("woff"==l||/(\.woff)($|\?)/i.test(a))c="application/font-woff";else if("woff2"==l||/(\.woff2)($|\?)/i.test(a))c="application/font-woff2";else if("eot"==l||/(\.eot)($|\?)/i.test(a))c="application/vnd.ms-fontobject";else if("sfnt"==l||/(\.sfnt)($|\?)/i.test(a))c="application/font-sfnt";var b= +a;/^https?:\/\//.test(b)&&!this.isCorsEnabledForUrl(b)&&(b=PROXY_URL+"?url="+encodeURIComponent(a));this.loadUrl(b,mxUtils.bind(this,function(c){e[a]=c;d--;h()}),mxUtils.bind(this,function(a){d--;h()}),!0,null,"data:"+c+";charset=utf-8;base64,")}})(c(b[m].substring(0,k)),l)}}else a()};EditorUi.prototype.exportToCanvas=function(a,b,d,e,k,h,m,l,p,q,y,t,u,H){h=null!=h?h:!0;t=null!=t?t:this.editor.graph;u=null!=u?u:0;var c=p?null:t.background;c==mxConstants.NONE&&(c=null);null==c&&(c=e);null==c&&0==p&& +(c=this.editor.graph.defaultPageBackgroundColor);this.convertImages(t.getSvg(c,null,null,H,null,null!=m?m:!0),mxUtils.bind(this,function(d){var e=new Image;e.onload=mxUtils.bind(this,function(){try{var f=document.createElement("canvas"),g=parseInt(d.getAttribute("width")),m=parseInt(d.getAttribute("height"));l=null!=l?l:1;null!=b&&(l=h?Math.min(1,Math.min(3*b/(4*m),b/g)):b/g);g=Math.ceil(l*g)+2*u;m=Math.ceil(l*m)+2*u;f.setAttribute("width",g);f.setAttribute("height",m);var n=f.getContext("2d");null!= +c&&(n.beginPath(),n.rect(0,0,g,m),n.fillStyle=c,n.fill());n.scale(l,l);mxClient.IS_SF?window.setTimeout(function(){n.drawImage(e,u/l,u/l);a(f)},0):(n.drawImage(e,u/l,u/l),a(f))}catch(P){null!=k&&k(P)}});e.onerror=function(a){null!=k&&k(a)};try{q&&this.editor.graph.addSvgShadow(d);var f=mxUtils.bind(this,function(){if(null!=this.editor.resolvedFontCss){var a=document.createElement("style");a.setAttribute("type","text/css");a.innerHTML=this.editor.resolvedFontCss;d.getElementsByTagName("defs")[0].appendChild(a)}this.convertMath(t, +d,!0,mxUtils.bind(this,function(){e.src=this.createSvgDataUri(mxUtils.getXml(d))}))});this.loadFonts(f)}catch(x){null!=k&&k(x)}}),d,y)};EditorUi.prototype.createImageUrlConverter=function(){var a=new mxUrlConverter;a.updateBaseUrl();var b=a.convert,d=this;a.convert=function(c){if(null!=c){var e="http://"==c.substring(0,7)||"https://"==c.substring(0,8);e&&!navigator.onLine?c=d.svgBrokenImage.src:!e||c.substring(0,a.baseUrl.length)==a.baseUrl||d.crossOriginImages&&d.isCorsEnabledForUrl(c)?"chrome-extension://"!= +c.substring(0,19)&&(c=b.apply(this,arguments)):c=PROXY_URL+"?url="+encodeURIComponent(c)}return c};return a};EditorUi.prototype.convertImages=function(a,b,d,e){null==e&&(e=this.createImageUrlConverter());var c=0,f=d||{};d=mxUtils.bind(this,function(d,g){for(var h=a.getElementsByTagName(d),k=0;k<h.length;k++)mxUtils.bind(this,function(d){var h=e.convert(d.getAttribute(g));if(null!=h&&"data:"!=h.substring(0,5)){var k=f[h];null==k?(c++,this.convertImageToDataUri(h,function(e){null!=e&&(f[h]=e,d.setAttribute(g, +e));c--;0==c&&b(a)})):d.setAttribute(g,k)}else null!=h&&d.setAttribute(g,h)})(h[k])});d("image","xlink:href");d("img","src");0==c&&b(a)};EditorUi.prototype.loadUrl=function(a,b,d,e,k,h){try{var c=e||/(\.png)($|\?)/i.test(a)||/(\.jpe?g)($|\?)/i.test(a)||/(\.gif)($|\?)/i.test(a);k=null!=k?k:!0;var f=mxUtils.bind(this,function(){mxUtils.get(a,mxUtils.bind(this,function(a){if(200<=a.getStatus()&&299>=a.getStatus()){if(null!=b){var e=a.getText();if(c){if((9==document.documentMode||10==document.documentMode)&& +"undefined"!==typeof window.mxUtilsBinaryToArray){a=mxUtilsBinaryToArray(a.request.responseBody).toArray();for(var e=Array(a.length),f=0;f<a.length;f++)e[f]=String.fromCharCode(a[f]);e=e.join("")}h=null!=h?h:"data:image/png;base64,";e=h+this.base64Encode(e)}b(e)}}else null!=d&&d({code:App.ERROR_UNKNOWN},a)}),function(){null!=d&&d({code:App.ERROR_UNKNOWN})},c,this.timeout,function(){k&&null!=d&&d({code:App.ERROR_TIMEOUT,retry:f})})});f()}catch(v){null!=d&&d(v)}};EditorUi.prototype.isCorsEnabledForUrl= function(a){null!=urlParams.cors&&null==this.corsRegExp&&(this.corsRegExp=new RegExp(decodeURIComponent(urlParams.cors)));return null!=this.corsRegExp&&this.corsRegExp.test(a)||"https://raw.githubusercontent.com/"===a.substring(0,34)||"https://cdn.rawgit.com/"===a.substring(0,23)||"https://rawgit.com/"===a.substring(0,19)||/^https?:\/\/[^\/]*\.iconfinder.com\//.test(a)||/^https?:\/\/[^\/]*\.draw\.io\/proxy/.test(a)||/^https?:\/\/[^\/]*\.github\.io\//.test(a)};EditorUi.prototype.convertImageToDataUri= -function(a,b){if(/(\.svg)$/i.test(a))mxUtils.get(a,mxUtils.bind(this,function(a){b(this.createSvgDataUri(a.getText()))}),function(){b(this.svgBrokenImage.src)});else{var c=new Image,d=this;this.crossOriginImages&&(c.crossOrigin="anonymous");c.onload=function(){var a=document.createElement("canvas"),e=a.getContext("2d");a.height=c.height;a.width=c.width;e.drawImage(c,0,0);try{b(a.toDataURL())}catch(n){b(d.svgBrokenImage.src)}};c.onerror=function(){b(d.svgBrokenImage.src)};c.src=a}};EditorUi.prototype.importXml= -function(a,b,d,e,h){b=null!=b?b:0;d=null!=d?d:0;var c=[];try{var f=this.editor.graph;if(null!=a&&0<a.length){var g=mxUtils.parseXml(a),k=this.editor.extractGraphModel(g.documentElement,null!=this.pages);if(null!=k&&"mxfile"==k.nodeName&&null!=this.pages){var m=k.getElementsByTagName("diagram");if(1==m.length)k=mxUtils.parseXml(f.decompress(mxUtils.getTextContent(m[0]))).documentElement;else if(1<m.length){f.model.beginUpdate();try{for(a=0;a<m.length;a++){m[a].removeAttribute("id");var r=this.updatePageRoot(new DiagramPage(m[a])), -p=this.pages.length;null==r.getName()&&r.setName(mxResources.get("pageWithNumber",[p+1]));f.model.execute(new ChangePage(this,r,r,p))}}finally{f.model.endUpdate()}}}null!=k&&"mxGraphModel"===k.nodeName&&(c=f.importGraphModel(k,b,d,e))}}catch(z){throw h||this.handleError(z,mxResources.get("invalidOrMissingFile")),z;}return c};EditorUi.prototype.isRemoteVisioFormat=function(a){return/(\.v(sd|dx))($|\?)/i.test(a)||/(\.vs(s|x))($|\?)/i.test(a)};EditorUi.prototype.importVisio=function(a,b,d,e){e=null!= -e?e:a.name;d=null!=d?d:mxUtils.bind(this,function(a){this.handleError(a)});var c=mxUtils.bind(this,function(){this.loadingExtensions=!1;if(this.doImportVisio)if(this.isRemoteVisioFormat(e)&&null!=VSD_CONVERT_URL){var c=new FormData;c.append("file1",a,e);var f=new XMLHttpRequest;f.open("POST",VSD_CONVERT_URL);f.responseType="blob";f.onreadystatechange=mxUtils.bind(this,function(){if(4==f.readyState)if(200<=f.status&&299>=f.status)try{f.response.name=e,this.doImportVisio(f.response,b,d)}catch(w){d(w)}else d({})}); -f.send(c)}else try{this.doImportVisio(a,b,d)}catch(w){d(w)}});this.doImportVisio||this.loadingExtensions||this.isOffline()?c():(this.loadingExtensions=!0,mxscript("js/extensions.min.js",c))};EditorUi.prototype.exportVisio=function(){var a=mxUtils.bind(this,function(){this.loadingExtensions=!1;if("undefined"!==typeof VsdxExport)try{(new VsdxExport(this)).exportCurrentDiagrams()}catch(f){this.handleError(f)}});"undefined"!==typeof VsdxExport||this.loadingExtensions||this.isOffline()?a():(this.loadingExtensions= -!0,mxscript("js/extensions.min.js",a))};EditorUi.prototype.convertLucidChart=function(a,b,d){var c=mxUtils.bind(this,function(){this.loadingExtensions=!1;if("undefined"!==typeof window.LucidImporter)try{b(LucidImporter.importState(JSON.parse(a)))}catch(r){d(r)}else d({message:mxResources.get("serviceUnavailableOrBlocked")})});"undefined"!==typeof window.LucidImporter||this.loadingExtensions||this.isOffline()?window.setTimeout(c,0):(this.loadingExtensions=!0,"1"==urlParams.dev?mxscript("js/diagramly/Extensions.js", -c):mxscript("js/extensions.min.js",c))};EditorUi.prototype.insertAsPreText=function(a,b,d){var c=this.editor.graph,e=null;c.getModel().beginUpdate();try{e=c.insertVertex(null,null,"<pre>"+a+"</pre>",b,d,1,1,"text;html=1;align=center;verticalAlign=middle;"),c.updateCellSize(e,!0)}finally{c.getModel().endUpdate()}return e};EditorUi.prototype.insertTextAt=function(a,b,d,e,h,l,n){l=null!=l?l:!0;n=null!=n?n:!0;if(null!=a)if(Graph.fileSupport&&!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(a))this.parseFile(new Blob([a.replace(/\s+/g, -" ")],{type:"application/octet-stream"}),mxUtils.bind(this,function(a){4==a.readyState&&200<=a.status&&299>=a.status&&this.editor.graph.setSelectionCells(this.insertTextAt(a.responseText,b,d,!0))}));else if("data:"==a.substring(0,5)||!this.isOffline()&&(h||/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(a))){var c=this.editor.graph;if("data:image/png;base64,"==a.substring(0,22)){var f=this.extractGraphModelFromPng(a),g=this.importXml(f,b,d,l,!0);if(0<g.length)return g}if("data:image/svg+xml;"==a.substring(0, -19))try{if(f=null,"data:image/svg+xml;base64,"==a.substring(0,26)?(f=a.substring(a.indexOf(",")+1),f=window.atob&&!mxClient.IS_SF?atob(f):Base64.decode(f,!0)):f=decodeURIComponent(a.substring(a.indexOf(",")+1)),g=this.importXml(f,b,d,l,!0),0<g.length)return g}catch(y){}this.loadImage(a,mxUtils.bind(this,function(e){if("data:"==a.substring(0,5))this.resizeImage(e,a,mxUtils.bind(this,function(a,e,f){c.setSelectionCell(c.insertVertex(null,null,"",c.snap(b),c.snap(d),e,f,"shape=image;verticalLabelPosition=bottom;labelBackgroundColor=#ffffff;verticalAlign=top;aspect=fixed;imageAspect=0;image="+ -this.convertDataUri(a)+";"))}),n,this.maxImageSize);else{var f=Math.min(1,Math.min(this.maxImageSize/e.width,this.maxImageSize/e.height)),g=Math.round(e.width*f);e=Math.round(e.height*f);c.setSelectionCell(c.insertVertex(null,null,"",c.snap(b),c.snap(d),g,e,"shape=image;verticalLabelPosition=bottom;labelBackgroundColor=#ffffff;verticalAlign=top;aspect=fixed;imageAspect=0;image="+a+";"))}}),mxUtils.bind(this,function(){var f=null;c.getModel().beginUpdate();try{f=c.insertVertex(c.getDefaultParent(), -null,a,c.snap(b),c.snap(d),1,1,"text;"+(e?"html=1;":"")),c.updateCellSize(f),c.fireEvent(new mxEventObject("textInserted","cells",[f]))}finally{c.getModel().endUpdate()}c.setSelectionCell(f)}))}else{a=this.editor.graph.zapGremlins(mxUtils.trim(a));if(this.isCompatibleString(a))return this.importXml(a,b,d,l);if(0<a.length)if(this.isLucidChartData(a))this.convertLucidChart(a,mxUtils.bind(this,function(a){this.editor.graph.setSelectionCells(this.importXml(a,b,d,l))}),mxUtils.bind(this,function(a){this.handleError(a)})); -else{c=this.editor.graph;h=null;c.getModel().beginUpdate();try{h=c.insertVertex(c.getDefaultParent(),null,"",c.snap(b),c.snap(d),1,1,"text;"+(e?"html=1;":"")),c.fireEvent(new mxEventObject("textInserted","cells",[h])),"<"==a.charAt(0)&&a.indexOf(">")==a.length-1&&(a=mxUtils.htmlEntities(a)),h.value=a,c.updateCellSize(h),/\b((?:[a-z][\w-]+:(?:\/{1,3}|[a-z0-9%])|www\d{0,3}[.]|[a-z0-9.\-]+[.][a-z]{2,4}\/)(?:[^\s()<>]+|\(([^\s()<>]+|(\([^\s()<>]+\)))*\))+(?:\(([^\s()<>]+|(\([^\s()<>]+\)))*\)|[^\s`!()\[\]{};:'".,<>?«»“â€â€˜â€™]))/i.test(h.value)&& -c.setLinkForCell(h,h.value),h.geometry.width+=c.gridSize,h.geometry.height+=c.gridSize}finally{c.getModel().endUpdate()}return[h]}}return[]};EditorUi.prototype.formatFileSize=function(a){var c=-1;do a/=1024,c++;while(1024<a);return Math.max(a,.1).toFixed(1)+" kB; MB; GB; TB;PB;EB;ZB;YB".split(";")[c]};EditorUi.prototype.convertDataUri=function(a){if("data:"==a.substring(0,5)){var c=a.indexOf(";");0<c&&(a=a.substring(0,c)+a.substring(a.indexOf(",",c+1)))}return a};EditorUi.prototype.isRemoteFileFormat= +function(a,b){if(/(\.svg)$/i.test(a))mxUtils.get(a,mxUtils.bind(this,function(a){b(this.createSvgDataUri(a.getText()))}),function(){b(this.svgBrokenImage.src)});else{var c=new Image,d=this;this.crossOriginImages&&(c.crossOrigin="anonymous");c.onload=function(){var a=document.createElement("canvas"),e=a.getContext("2d");a.height=c.height;a.width=c.width;e.drawImage(c,0,0);try{b(a.toDataURL())}catch(m){b(d.svgBrokenImage.src)}};c.onerror=function(){b(d.svgBrokenImage.src)};c.src=a}};EditorUi.prototype.importXml= +function(a,b,d,e,k){b=null!=b?b:0;d=null!=d?d:0;var c=[];try{var f=this.editor.graph;if(null!=a&&0<a.length){var g=mxUtils.parseXml(a),n=this.editor.extractGraphModel(g.documentElement,null!=this.pages);if(null!=n&&"mxfile"==n.nodeName&&null!=this.pages){var l=n.getElementsByTagName("diagram");if(1==l.length)n=mxUtils.parseXml(f.decompress(mxUtils.getTextContent(l[0]))).documentElement;else if(1<l.length){f.model.beginUpdate();try{for(a=0;a<l.length;a++){l[a].removeAttribute("id");var r=this.updatePageRoot(new DiagramPage(l[a])), +t=this.pages.length;null==r.getName()&&(r.setName(mxResources.get("pageWithNumber",[t+1])),r.needsUpdate=!0);f.model.execute(new ChangePage(this,r,r,t))}}finally{f.model.endUpdate()}}}null!=n&&"mxGraphModel"===n.nodeName&&(c=f.importGraphModel(n,b,d,e))}}catch(z){throw k||this.handleError(z,mxResources.get("invalidOrMissingFile")),z;}return c};EditorUi.prototype.isRemoteVisioFormat=function(a){return/(\.v(sd|dx))($|\?)/i.test(a)||/(\.vs(s|x))($|\?)/i.test(a)};EditorUi.prototype.importVisio=function(a, +b,d,e){e=null!=e?e:a.name;d=null!=d?d:mxUtils.bind(this,function(a){this.handleError(a)});var c=mxUtils.bind(this,function(){this.loadingExtensions=!1;if(this.doImportVisio)if(this.isRemoteVisioFormat(e)&&null!=VSD_CONVERT_URL){var c=new FormData;c.append("file1",a,e);var f=new XMLHttpRequest;f.open("POST",VSD_CONVERT_URL);f.responseType="blob";f.onreadystatechange=mxUtils.bind(this,function(){if(4==f.readyState)if(200<=f.status&&299>=f.status)try{f.response.name=e,this.doImportVisio(f.response,b, +d)}catch(w){d(w)}else d({})});f.send(c)}else try{this.doImportVisio(a,b,d)}catch(w){d(w)}});this.doImportVisio||this.loadingExtensions||this.isOffline()?c():(this.loadingExtensions=!0,mxscript("js/extensions.min.js",c))};EditorUi.prototype.exportVisio=function(){var a=mxUtils.bind(this,function(){this.loadingExtensions=!1;if("undefined"!==typeof VsdxExport)try{(new VsdxExport(this)).exportCurrentDiagrams()}catch(f){this.handleError(f)}});"undefined"!==typeof VsdxExport||this.loadingExtensions||this.isOffline()? +a():(this.loadingExtensions=!0,mxscript("js/extensions.min.js",a))};EditorUi.prototype.convertLucidChart=function(a,b,d){var c=mxUtils.bind(this,function(){this.loadingExtensions=!1;if("undefined"!==typeof window.LucidImporter)try{b(LucidImporter.importState(JSON.parse(a)))}catch(r){d(r)}else d({message:mxResources.get("serviceUnavailableOrBlocked")})});"undefined"!==typeof window.LucidImporter||this.loadingExtensions||this.isOffline()?window.setTimeout(c,0):(this.loadingExtensions=!0,"1"==urlParams.dev? +mxscript("js/diagramly/Extensions.js",c):mxscript("js/extensions.min.js",c))};EditorUi.prototype.insertAsPreText=function(a,b,d){var c=this.editor.graph,e=null;c.getModel().beginUpdate();try{e=c.insertVertex(null,null,"<pre>"+a+"</pre>",b,d,1,1,"text;html=1;align=center;verticalAlign=middle;"),c.updateCellSize(e,!0)}finally{c.getModel().endUpdate()}return e};EditorUi.prototype.insertTextAt=function(a,b,d,e,k,h,m){h=null!=h?h:!0;m=null!=m?m:!0;if(null!=a)if(Graph.fileSupport&&!this.isOffline()&&(new XMLHttpRequest).upload&& +this.isRemoteFileFormat(a))this.parseFile(new Blob([a.replace(/\s+/g," ")],{type:"application/octet-stream"}),mxUtils.bind(this,function(a){4==a.readyState&&200<=a.status&&299>=a.status&&this.editor.graph.setSelectionCells(this.insertTextAt(a.responseText,b,d,!0))}));else if("data:"==a.substring(0,5)||!this.isOffline()&&(k||/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(a))){var c=this.editor.graph;if("data:image/png;base64,"==a.substring(0,22)){var f=this.extractGraphModelFromPng(a),g=this.importXml(f,b, +d,h,!0);if(0<g.length)return g}if("data:image/svg+xml;"==a.substring(0,19))try{if(f=null,"data:image/svg+xml;base64,"==a.substring(0,26)?(f=a.substring(a.indexOf(",")+1),f=window.atob&&!mxClient.IS_SF?atob(f):Base64.decode(f,!0)):f=decodeURIComponent(a.substring(a.indexOf(",")+1)),g=this.importXml(f,b,d,h,!0),0<g.length)return g}catch(y){}this.loadImage(a,mxUtils.bind(this,function(e){if("data:"==a.substring(0,5))this.resizeImage(e,a,mxUtils.bind(this,function(a,e,f){c.setSelectionCell(c.insertVertex(null, +null,"",c.snap(b),c.snap(d),e,f,"shape=image;verticalLabelPosition=bottom;labelBackgroundColor=#ffffff;verticalAlign=top;aspect=fixed;imageAspect=0;image="+this.convertDataUri(a)+";"))}),m,this.maxImageSize);else{var f=Math.min(1,Math.min(this.maxImageSize/e.width,this.maxImageSize/e.height)),g=Math.round(e.width*f);e=Math.round(e.height*f);c.setSelectionCell(c.insertVertex(null,null,"",c.snap(b),c.snap(d),g,e,"shape=image;verticalLabelPosition=bottom;labelBackgroundColor=#ffffff;verticalAlign=top;aspect=fixed;imageAspect=0;image="+ +a+";"))}}),mxUtils.bind(this,function(){var f=null;c.getModel().beginUpdate();try{f=c.insertVertex(c.getDefaultParent(),null,a,c.snap(b),c.snap(d),1,1,"text;"+(e?"html=1;":"")),c.updateCellSize(f),c.fireEvent(new mxEventObject("textInserted","cells",[f]))}finally{c.getModel().endUpdate()}c.setSelectionCell(f)}))}else{a=this.editor.graph.zapGremlins(mxUtils.trim(a));if(this.isCompatibleString(a))return this.importXml(a,b,d,h);if(0<a.length)if(this.isLucidChartData(a))this.convertLucidChart(a,mxUtils.bind(this, +function(a){this.editor.graph.setSelectionCells(this.importXml(a,b,d,h))}),mxUtils.bind(this,function(a){this.handleError(a)}));else{c=this.editor.graph;k=null;c.getModel().beginUpdate();try{k=c.insertVertex(c.getDefaultParent(),null,"",c.snap(b),c.snap(d),1,1,"text;"+(e?"html=1;":"")),c.fireEvent(new mxEventObject("textInserted","cells",[k])),"<"==a.charAt(0)&&a.indexOf(">")==a.length-1&&(a=mxUtils.htmlEntities(a)),k.value=a,c.updateCellSize(k),/\b((?:[a-z][\w-]+:(?:\/{1,3}|[a-z0-9%])|www\d{0,3}[.]|[a-z0-9.\-]+[.][a-z]{2,4}\/)(?:[^\s()<>]+|\(([^\s()<>]+|(\([^\s()<>]+\)))*\))+(?:\(([^\s()<>]+|(\([^\s()<>]+\)))*\)|[^\s`!()\[\]{};:'".,<>?«»“â€â€˜â€™]))/i.test(k.value)&& +c.setLinkForCell(k,k.value),k.geometry.width+=c.gridSize,k.geometry.height+=c.gridSize}finally{c.getModel().endUpdate()}return[k]}}return[]};EditorUi.prototype.formatFileSize=function(a){var c=-1;do a/=1024,c++;while(1024<a);return Math.max(a,.1).toFixed(1)+" kB; MB; GB; TB;PB;EB;ZB;YB".split(";")[c]};EditorUi.prototype.convertDataUri=function(a){if("data:"==a.substring(0,5)){var c=a.indexOf(";");0<c&&(a=a.substring(0,c)+a.substring(a.indexOf(",",c+1)))}return a};EditorUi.prototype.isRemoteFileFormat= function(a,b){return/(\"contentType\":\s*\"application\/gliffy\+json\")/.test(a)};EditorUi.prototype.isLucidChartData=function(a){return null!=a&&'{"state":"{\\"Properties\\":'==a.substring(0,26)};EditorUi.prototype.importLocalFile=function(a,b){if(a&&Graph.fileSupport&&(!mxClient.IS_IE&&!mxClient.IS_IE11||0>navigator.appVersion.indexOf("Windows NT 6.1"))){var c=document.createElement("input");c.setAttribute("type","file");mxEvent.addListener(c,"change",mxUtils.bind(this,function(){null!=c.files&& this.importFiles(c.files,null,null,this.maxImageSize)}));c.click()}else{window.openNew=!1;window.openKey="import";if(!b){var d=Editor.useLocalStorage;Editor.useLocalStorage=!a}window.openFile=new OpenFile(mxUtils.bind(this,function(a){this.hideDialog(a)}));window.openFile.setConsumer(mxUtils.bind(this,function(a,c){if(null!=c&&Graph.fileSupport&&/(\.v(dx|sdx?))($|\?)/i.test(c)){var b=new Blob([a],{type:"application/octet-stream"});this.importVisio(b,mxUtils.bind(this,function(a){this.importXml(a)}), -null,c)}else this.editor.graph.setSelectionCells(this.importXml(a))}));this.showDialog((new OpenDialog(this)).container,360,220,!0,!0,function(){window.openFile=null});if(!b){var e=this.dialog,f=e.close;this.dialog.close=mxUtils.bind(this,function(a){Editor.useLocalStorage=d;f.apply(e,arguments);a&&null==this.getCurrentFile()&&"1"!=urlParams.embed&&this.showSplash()})}}};EditorUi.prototype.importFile=function(a,b,d,e,h,l,n,m,p,q,u){q=null!=q?q:!0;var c=!1,f=null,g=mxUtils.bind(this,function(a){var c= -null;null!=a&&"<mxlibrary"==a.substring(0,10)?this.loadLibrary(new LocalLibrary(this,a,n)):c=this.importXml(a,d,e,q);null!=m&&m(c)});"image"==b.substring(0,5)?(p=!1,"image/png"==b.substring(0,9)&&(b=u?null:this.extractGraphModelFromPng(a),null!=b&&0<b.length&&(f=this.importXml(b,d,e,q),p=!0)),p||(f=this.editor.graph,b=a.indexOf(";"),0<b&&(a=a.substring(0,b)+a.substring(a.indexOf(",",b+1))),q&&f.isGridEnabled()&&(d=f.snap(d),e=f.snap(e)),f=[f.insertVertex(null,null,"",d,e,h,l,"shape=image;verticalLabelPosition=bottom;labelBackgroundColor=#ffffff;verticalAlign=top;aspect=fixed;imageAspect=0;image="+ -a+";")])):/(\.*<graphml )/.test(a)&&"undefined"!==typeof window.mxGraphMlCodec?(new mxGraphMlCodec).decode(a,mxUtils.bind(this,function(a){a=this.importXml(a,d,e,q);null!=m&&m(a)})):null!=p&&null!=n&&(/(\.v(dx|sdx?))($|\?)/i.test(n)||/(\.vs(x|sx?))($|\?)/i.test(n))?(c=!0,this.importVisio(p,g)):!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(a,n)?(c=!0,this.parseFile(null!=p?p:new Blob([a],{type:"application/octet-stream"}),mxUtils.bind(this,function(a){4==a.readyState&&(200<= -a.status&&299>=a.status?g(a.responseText):null!=m&&m(null))}),n)):/(\.v(sd|dx))($|\?)/i.test(n)||/(\.vs(s|x))($|\?)/i.test(n)||(f=this.insertTextAt(this.validateFileData(a),d,e,!0,null,q));c||null==m||m(f);return f};EditorUi.prototype.base64Encode=function(a){for(var c="",b=0,d=a.length,e,h,n;b<d;){e=a.charCodeAt(b++)&255;if(b==d){c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(e>>2);c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((e&3)<<4); -c+="==";break}h=a.charCodeAt(b++);if(b==d){c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(e>>2);c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((e&3)<<4|(h&240)>>4);c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((h&15)<<2);c+="=";break}n=a.charCodeAt(b++);c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(e>>2);c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((e& -3)<<4|(h&240)>>4);c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((h&15)<<2|(n&192)>>6);c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(n&63)}return c};EditorUi.prototype.importFiles=function(a,b,d,e,h,l,n,m,p,q,u,t){b=null!=b?b:0;d=null!=d?d:0;e=null!=e?e:this.maxImageSize;q=null!=q?q:this.maxImageBytes;var c=null!=b&&null!=d,f=!0,g=!1;if(!mxClient.IS_CHROMEAPP&&null!=a)for(var k=u||this.resampleThreshold,r=0;r<a.length;r++)if("image/"==a[r].type.substring(0, -6)&&a[r].size>k){g=!0;break}var v=mxUtils.bind(this,function(){var g=this.editor.graph,k=g.gridSize;h=null!=h?h:mxUtils.bind(this,function(a,b,d,e,f,g,k,h,l){return null!=a&&"<mxlibrary"==a.substring(0,10)?(this.spinner.stop(),this.loadLibrary(new LocalLibrary(this,a,k)),null):this.importFile(a,b,d,e,f,g,k,h,l,c,t)});l=null!=l?l:mxUtils.bind(this,function(a){g.setSelectionCells(a)});if(this.spinner.spin(document.body,mxResources.get("loading")))for(var p=a.length,r=p,v=[],w=mxUtils.bind(this,function(a, -c){v[a]=c;if(0==--r){this.spinner.stop();if(null!=m)m(v);else{var b=[];g.getModel().beginUpdate();try{for(var d=0;d<v.length;d++){var e=v[d]();null!=e&&(b=b.concat(e))}}finally{g.getModel().endUpdate()}}l(b)}}),y=0;y<p;y++)mxUtils.bind(this,function(c){var l=a[c],m=new FileReader;m.onload=mxUtils.bind(this,function(a){if(null==n||n(l))if("image/"==l.type.substring(0,6))if("image/svg"==l.type.substring(0,9)){var m=a.target.result,p=m.indexOf(","),r=decodeURIComponent(escape(atob(m.substring(p+1)))), -v=mxUtils.parseXml(r),r=v.getElementsByTagName("svg");if(0<r.length){var r=r[0],x=t?null:r.getAttribute("content");null!=x&&"<"!=x.charAt(0)&&"%"!=x.charAt(0)&&(x=unescape(window.atob?atob(x):Base64.decode(x,!0)));null!=x&&"%"==x.charAt(0)&&(x=decodeURIComponent(x));null==x||"<mxfile "!==x.substring(0,8)&&"<mxGraphModel "!==x.substring(0,14)?w(c,mxUtils.bind(this,function(){try{if(m.substring(0,p+1),null!=v){var a=v.getElementsByTagName("svg");if(0<a.length){var f=a[0],n=parseFloat(f.getAttribute("width")), -r=parseFloat(f.getAttribute("height")),t=f.getAttribute("viewBox");if(null==t||0==t.length)f.setAttribute("viewBox","0 0 "+n+" "+r);else if(isNaN(n)||isNaN(r)){var q=t.split(" ");3<q.length&&(n=parseFloat(q[2]),r=parseFloat(q[3]))}m=this.createSvgDataUri(mxUtils.getXml(f));var x=Math.min(1,Math.min(e/Math.max(1,n)),e/Math.max(1,r)),w=h(m,l.type,b+c*k,d+c*k,Math.max(1,Math.round(n*x)),Math.max(1,Math.round(r*x)),l.name);if(isNaN(n)||isNaN(r)){var u=new Image;u.onload=mxUtils.bind(this,function(){n= -Math.max(1,u.width);r=Math.max(1,u.height);w[0].geometry.width=n;w[0].geometry.height=r;f.setAttribute("viewBox","0 0 "+n+" "+r);m=this.createSvgDataUri(mxUtils.getXml(f));var a=m.indexOf(";");0<a&&(m=m.substring(0,a)+m.substring(m.indexOf(",",a+1)));g.setCellStyles("image",m,[w[0]])});u.src=this.createSvgDataUri(mxUtils.getXml(f))}return w}}}catch(fa){}return null})):w(c,mxUtils.bind(this,function(){return h(x,"text/xml",b+c*k,d+c*k,0,0,l.name)}))}else w(c,mxUtils.bind(this,function(){return null}))}else{r= -!1;if("image/png"==l.type){var I=t?null:this.extractGraphModelFromPng(a.target.result);if(null!=I&&0<I.length){var y=new Image;y.src=a.target.result;w(c,mxUtils.bind(this,function(){return h(I,"text/xml",b+c*k,d+c*k,y.width,y.height,l.name)}));r=!0}}r||(mxClient.IS_CHROMEAPP?(this.spinner.stop(),this.showError(mxResources.get("error"),mxResources.get("dragAndDropNotSupported"),mxResources.get("cancel"),mxUtils.bind(this,function(){}),null,mxResources.get("ok"),mxUtils.bind(this,function(){this.actions.get("import").funct()}))): -this.loadImage(a.target.result,mxUtils.bind(this,function(g){this.resizeImage(g,a.target.result,mxUtils.bind(this,function(g,n,m){w(c,mxUtils.bind(this,function(){if(null!=g&&g.length<q){var p=f&&this.isResampleImage(a.target.result,u)?Math.min(1,Math.min(e/n,e/m)):1;return h(g,l.type,b+c*k,d+c*k,Math.round(n*p),Math.round(m*p),l.name)}this.handleError({message:mxResources.get("imageTooBig")});return null}))}),f,e,u)}),mxUtils.bind(this,function(){this.handleError({message:mxResources.get("invalidOrMissingFile")})})))}else h(a.target.result, -l.type,b+c*k,d+c*k,240,160,l.name,function(a){w(c,function(){return a})})});/(\.v(dx|sdx?))($|\?)/i.test(l.name)||/(\.vs(x|sx?))($|\?)/i.test(l.name)?h(null,l.type,b+c*k,d+c*k,240,160,l.name,function(a){w(c,function(){return a})},l):"image"==l.type.substring(0,5)?m.readAsDataURL(l):m.readAsText(l)})(y)});g?this.confirmImageResize(function(a){f=a;v()},p):v()};EditorUi.prototype.confirmImageResize=function(a,b){b=null!=b?b:!1;var c=null!=this.spinner&&null!=this.spinner.pause?this.spinner.pause():function(){}, +null,c)}else this.editor.graph.setSelectionCells(this.importXml(a))}));this.showDialog((new OpenDialog(this)).container,360,220,!0,!0,function(){window.openFile=null});if(!b){var e=this.dialog,f=e.close;this.dialog.close=mxUtils.bind(this,function(a){Editor.useLocalStorage=d;f.apply(e,arguments);a&&null==this.getCurrentFile()&&"1"!=urlParams.embed&&this.showSplash()})}}};EditorUi.prototype.importFile=function(a,b,d,e,k,h,m,l,p,q,u){q=null!=q?q:!0;var c=!1,f=null,g=mxUtils.bind(this,function(a){var c= +null;null!=a&&"<mxlibrary"==a.substring(0,10)?this.loadLibrary(new LocalLibrary(this,a,m)):c=this.importXml(a,d,e,q);null!=l&&l(c)});"image"==b.substring(0,5)?(p=!1,"image/png"==b.substring(0,9)&&(b=u?null:this.extractGraphModelFromPng(a),null!=b&&0<b.length&&(f=this.importXml(b,d,e,q),p=!0)),p||(f=this.editor.graph,b=a.indexOf(";"),0<b&&(a=a.substring(0,b)+a.substring(a.indexOf(",",b+1))),q&&f.isGridEnabled()&&(d=f.snap(d),e=f.snap(e)),f=[f.insertVertex(null,null,"",d,e,k,h,"shape=image;verticalLabelPosition=bottom;labelBackgroundColor=#ffffff;verticalAlign=top;aspect=fixed;imageAspect=0;image="+ +a+";")])):/(\.*<graphml )/.test(a)&&"undefined"!==typeof window.mxGraphMlCodec?(new mxGraphMlCodec).decode(a,mxUtils.bind(this,function(a){a=this.importXml(a,d,e,q);null!=l&&l(a)})):null!=p&&null!=m&&(/(\.v(dx|sdx?))($|\?)/i.test(m)||/(\.vs(x|sx?))($|\?)/i.test(m))?(c=!0,this.importVisio(p,g)):!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(a,m)?(c=!0,this.parseFile(null!=p?p:new Blob([a],{type:"application/octet-stream"}),mxUtils.bind(this,function(a){4==a.readyState&&(200<= +a.status&&299>=a.status?g(a.responseText):null!=l&&l(null))}),m)):/(\.v(sd|dx))($|\?)/i.test(m)||/(\.vs(s|x))($|\?)/i.test(m)||(f=this.insertTextAt(this.validateFileData(a),d,e,!0,null,q));c||null==l||l(f);return f};EditorUi.prototype.base64Encode=function(a){for(var c="",b=0,d=a.length,e,h,k;b<d;){e=a.charCodeAt(b++)&255;if(b==d){c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(e>>2);c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((e&3)<<4); +c+="==";break}h=a.charCodeAt(b++);if(b==d){c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(e>>2);c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((e&3)<<4|(h&240)>>4);c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((h&15)<<2);c+="=";break}k=a.charCodeAt(b++);c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(e>>2);c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((e& +3)<<4|(h&240)>>4);c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((h&15)<<2|(k&192)>>6);c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(k&63)}return c};EditorUi.prototype.importFiles=function(a,b,d,e,k,h,m,l,p,q,u,t){b=null!=b?b:0;d=null!=d?d:0;e=null!=e?e:this.maxImageSize;q=null!=q?q:this.maxImageBytes;var c=null!=b&&null!=d,f=!0,g=!1;if(!mxClient.IS_CHROMEAPP&&null!=a)for(var n=u||this.resampleThreshold,r=0;r<a.length;r++)if("image/"==a[r].type.substring(0, +6)&&a[r].size>n){g=!0;break}var v=mxUtils.bind(this,function(){var g=this.editor.graph,n=g.gridSize;k=null!=k?k:mxUtils.bind(this,function(a,b,d,e,f,g,h,k,m){return null!=a&&"<mxlibrary"==a.substring(0,10)?(this.spinner.stop(),this.loadLibrary(new LocalLibrary(this,a,h)),null):this.importFile(a,b,d,e,f,g,h,k,m,c,t)});h=null!=h?h:mxUtils.bind(this,function(a){g.setSelectionCells(a)});if(this.spinner.spin(document.body,mxResources.get("loading")))for(var p=a.length,r=p,v=[],w=mxUtils.bind(this,function(a, +c){v[a]=c;if(0==--r){this.spinner.stop();if(null!=l)l(v);else{var b=[];g.getModel().beginUpdate();try{for(var d=0;d<v.length;d++){var e=v[d]();null!=e&&(b=b.concat(e))}}finally{g.getModel().endUpdate()}}h(b)}}),y=0;y<p;y++)mxUtils.bind(this,function(c){var h=a[c],l=new FileReader;l.onload=mxUtils.bind(this,function(a){if(null==m||m(h))if("image/"==h.type.substring(0,6))if("image/svg"==h.type.substring(0,9)){var l=a.target.result,p=l.indexOf(","),r=decodeURIComponent(escape(atob(l.substring(p+1)))), +v=mxUtils.parseXml(r),r=v.getElementsByTagName("svg");if(0<r.length){var r=r[0],x=t?null:r.getAttribute("content");null!=x&&"<"!=x.charAt(0)&&"%"!=x.charAt(0)&&(x=unescape(window.atob?atob(x):Base64.decode(x,!0)));null!=x&&"%"==x.charAt(0)&&(x=decodeURIComponent(x));null==x||"<mxfile "!==x.substring(0,8)&&"<mxGraphModel "!==x.substring(0,14)?w(c,mxUtils.bind(this,function(){try{if(l.substring(0,p+1),null!=v){var a=v.getElementsByTagName("svg");if(0<a.length){var f=a[0],m=parseFloat(f.getAttribute("width")), +t=parseFloat(f.getAttribute("height")),r=f.getAttribute("viewBox");if(null==r||0==r.length)f.setAttribute("viewBox","0 0 "+m+" "+t);else if(isNaN(m)||isNaN(t)){var q=r.split(" ");3<q.length&&(m=parseFloat(q[2]),t=parseFloat(q[3]))}l=this.createSvgDataUri(mxUtils.getXml(f));var x=Math.min(1,Math.min(e/Math.max(1,m)),e/Math.max(1,t)),w=k(l,h.type,b+c*n,d+c*n,Math.max(1,Math.round(m*x)),Math.max(1,Math.round(t*x)),h.name);if(isNaN(m)||isNaN(t)){var u=new Image;u.onload=mxUtils.bind(this,function(){m= +Math.max(1,u.width);t=Math.max(1,u.height);w[0].geometry.width=m;w[0].geometry.height=t;f.setAttribute("viewBox","0 0 "+m+" "+t);l=this.createSvgDataUri(mxUtils.getXml(f));var a=l.indexOf(";");0<a&&(l=l.substring(0,a)+l.substring(l.indexOf(",",a+1)));g.setCellStyles("image",l,[w[0]])});u.src=this.createSvgDataUri(mxUtils.getXml(f))}return w}}}catch(fa){}return null})):w(c,mxUtils.bind(this,function(){return k(x,"text/xml",b+c*n,d+c*n,0,0,h.name)}))}else w(c,mxUtils.bind(this,function(){return null}))}else{r= +!1;if("image/png"==h.type){var I=t?null:this.extractGraphModelFromPng(a.target.result);if(null!=I&&0<I.length){var y=new Image;y.src=a.target.result;w(c,mxUtils.bind(this,function(){return k(I,"text/xml",b+c*n,d+c*n,y.width,y.height,h.name)}));r=!0}}r||(mxClient.IS_CHROMEAPP?(this.spinner.stop(),this.showError(mxResources.get("error"),mxResources.get("dragAndDropNotSupported"),mxResources.get("cancel"),mxUtils.bind(this,function(){}),null,mxResources.get("ok"),mxUtils.bind(this,function(){this.actions.get("import").funct()}))): +this.loadImage(a.target.result,mxUtils.bind(this,function(g){this.resizeImage(g,a.target.result,mxUtils.bind(this,function(g,m,l){w(c,mxUtils.bind(this,function(){if(null!=g&&g.length<q){var t=f&&this.isResampleImage(a.target.result,u)?Math.min(1,Math.min(e/m,e/l)):1;return k(g,h.type,b+c*n,d+c*n,Math.round(m*t),Math.round(l*t),h.name)}this.handleError({message:mxResources.get("imageTooBig")});return null}))}),f,e,u)}),mxUtils.bind(this,function(){this.handleError({message:mxResources.get("invalidOrMissingFile")})})))}else k(a.target.result, +h.type,b+c*n,d+c*n,240,160,h.name,function(a){w(c,function(){return a})})});/(\.v(dx|sdx?))($|\?)/i.test(h.name)||/(\.vs(x|sx?))($|\?)/i.test(h.name)?k(null,h.type,b+c*n,d+c*n,240,160,h.name,function(a){w(c,function(){return a})},h):"image"==h.type.substring(0,5)?l.readAsDataURL(h):l.readAsText(h)})(y)});g?this.confirmImageResize(function(a){f=a;v()},p):v()};EditorUi.prototype.confirmImageResize=function(a,b){b=null!=b?b:!1;var c=null!=this.spinner&&null!=this.spinner.pause?this.spinner.pause():function(){}, d=isLocalStorage||mxClient.IS_CHROMEAPP?mxSettings.getResizeImages():null,e=function(d,e){if(d||b)mxSettings.setResizeImages(d?e:null),mxSettings.save();c();a(e)};null==d||b?this.showDialog((new ConfirmDialog(this,mxResources.get("resizeLargeImages"),function(a){e(a,!0)},function(a){e(a,!1)},mxResources.get("resize"),mxResources.get("actualSize"),'<img style="margin-top:8px;" src="'+Editor.loResImage+'"/>','<img style="margin-top:8px;" src="'+Editor.hiResImage+'"/>',isLocalStorage||mxClient.IS_CHROMEAPP)).container, -340,isLocalStorage||mxClient.IS_CHROMEAPP?220:200,!0,!0):e(!1,d)};EditorUi.prototype.parseFile=function(a,b,d){d=null!=d?d:a.name;var c=new FormData;c.append("format","xml");c.append("upfile",a,d);var e=new XMLHttpRequest;e.open("POST",OPEN_URL);e.onreadystatechange=function(){b(e)};e.send(c)};EditorUi.prototype.isResampleImage=function(a,b){b=null!=b?b:this.resampleThreshold;return a.length>b};EditorUi.prototype.resizeImage=function(a,b,d,e,h,l){h=null!=h?h:this.maxImageSize;var c=Math.max(1,a.width), -f=Math.max(1,a.height);if(e&&this.isResampleImage(b,l))try{var g=Math.max(c/h,f/h);if(1<g){var k=Math.round(c/g),m=Math.round(f/g),p=document.createElement("canvas");p.width=k;p.height=m;p.getContext("2d").drawImage(a,0,0,k,m);var r=p.toDataURL();if(r.length<b.length){var q=document.createElement("canvas");q.width=k;q.height=m;var u=q.toDataURL();r!==u&&(b=r,c=k,f=m)}}}catch(A){}d(b,c,f)};EditorUi.prototype.crcTable=[];for(var e=0;256>e;e++)for(var b=e,h=0;8>h;h++)b=1==(b&1)?3988292384^b>>>1:b>>> -1,EditorUi.prototype.crcTable[e]=b;EditorUi.prototype.updateCRC=function(a,b,d,e){for(var c=0;c<e;c++)a=EditorUi.prototype.crcTable[(a^b[d+c])&255]^a>>>8;return a};EditorUi.prototype.crc32=function(a){this.crcTable=this.crcTable||this.createCrcTable();for(var c=-1,b=0;b<a.length;b++)c=c>>>8^this.crcTable[(c^a.charCodeAt(b))&255];return(c^-1)>>>0};EditorUi.prototype.writeGraphModelToPng=function(a,b,d,e,h){function c(a,c){var b=k;k+=c;return a.substring(b,k)}function f(a){a=c(a,4);return a.charCodeAt(3)+ -(a.charCodeAt(2)<<8)+(a.charCodeAt(1)<<16)+(a.charCodeAt(0)<<24)}function g(a){return String.fromCharCode(a>>24&255,a>>16&255,a>>8&255,a&255)}a=a.substring(a.indexOf(",")+1);a=window.atob?atob(a):Base64.decode(a,!0);var k=0;if(c(a,8)!=String.fromCharCode(137)+"PNG"+String.fromCharCode(13,10,26,10))null!=h&&h();else if(c(a,4),"IHDR"!=c(a,4))null!=h&&h();else{c(a,17);h=a.substring(0,k);do{var m=f(a);if("IDAT"==c(a,4)){h=a.substring(0,k-8);d=d+String.fromCharCode(0)+("zTXt"==b?String.fromCharCode(0): -"")+e;e=4294967295;e=this.updateCRC(e,b,0,4);e=this.updateCRC(e,d,0,d.length);h+=g(d.length)+b+d+g(e^4294967295);h+=a.substring(k-8,a.length);break}h+=a.substring(k-8,k-4+m);c(a,m);c(a,4)}while(m);return"data:image/png;base64,"+(window.btoa?btoa(h):Base64.encode(h,!0))}};EditorUi.prototype.extractGraphModelFromPng=function(a){var c=null;try{var b=a.substring(a.indexOf(",")+1),d=window.atob&&!mxClient.IS_SF?atob(b):Base64.decode(b,!0);EditorUi.parsePng(d,mxUtils.bind(this,function(a,b,e){a=d.substring(a+ +340,isLocalStorage||mxClient.IS_CHROMEAPP?220:200,!0,!0):e(!1,d)};EditorUi.prototype.parseFile=function(a,b,d){d=null!=d?d:a.name;var c=new FormData;c.append("format","xml");c.append("upfile",a,d);var e=new XMLHttpRequest;e.open("POST",OPEN_URL);e.onreadystatechange=function(){b(e)};e.send(c)};EditorUi.prototype.isResampleImage=function(a,b){b=null!=b?b:this.resampleThreshold;return a.length>b};EditorUi.prototype.resizeImage=function(a,b,d,e,k,h){k=null!=k?k:this.maxImageSize;var c=Math.max(1,a.width), +f=Math.max(1,a.height);if(e&&this.isResampleImage(b,h))try{var g=Math.max(c/k,f/k);if(1<g){var n=Math.round(c/g),l=Math.round(f/g),t=document.createElement("canvas");t.width=n;t.height=l;t.getContext("2d").drawImage(a,0,0,n,l);var p=t.toDataURL();if(p.length<b.length){var r=document.createElement("canvas");r.width=n;r.height=l;var q=r.toDataURL();p!==q&&(b=p,c=n,f=l)}}}catch(B){}d(b,c,f)};EditorUi.prototype.crcTable=[];for(var e=0;256>e;e++)for(var d=e,k=0;8>k;k++)d=1==(d&1)?3988292384^d>>>1:d>>> +1,EditorUi.prototype.crcTable[e]=d;EditorUi.prototype.updateCRC=function(a,b,d,e){for(var c=0;c<e;c++)a=EditorUi.prototype.crcTable[(a^b[d+c])&255]^a>>>8;return a};EditorUi.prototype.crc32=function(a){this.crcTable=this.crcTable||this.createCrcTable();for(var c=-1,b=0;b<a.length;b++)c=c>>>8^this.crcTable[(c^a.charCodeAt(b))&255];return(c^-1)>>>0};EditorUi.prototype.writeGraphModelToPng=function(a,b,d,e,k){function c(a,c){var b=n;n+=c;return a.substring(b,n)}function f(a){a=c(a,4);return a.charCodeAt(3)+ +(a.charCodeAt(2)<<8)+(a.charCodeAt(1)<<16)+(a.charCodeAt(0)<<24)}function g(a){return String.fromCharCode(a>>24&255,a>>16&255,a>>8&255,a&255)}a=a.substring(a.indexOf(",")+1);a=window.atob?atob(a):Base64.decode(a,!0);var n=0;if(c(a,8)!=String.fromCharCode(137)+"PNG"+String.fromCharCode(13,10,26,10))null!=k&&k();else if(c(a,4),"IHDR"!=c(a,4))null!=k&&k();else{c(a,17);k=a.substring(0,n);do{var l=f(a);if("IDAT"==c(a,4)){k=a.substring(0,n-8);d=d+String.fromCharCode(0)+("zTXt"==b?String.fromCharCode(0): +"")+e;e=4294967295;e=this.updateCRC(e,b,0,4);e=this.updateCRC(e,d,0,d.length);k+=g(d.length)+b+d+g(e^4294967295);k+=a.substring(n-8,a.length);break}k+=a.substring(n-8,n-4+l);c(a,l);c(a,4)}while(l);return"data:image/png;base64,"+(window.btoa?btoa(k):Base64.encode(k,!0))}};EditorUi.prototype.extractGraphModelFromPng=function(a){var c=null;try{var b=a.substring(a.indexOf(",")+1),d=window.atob&&!mxClient.IS_SF?atob(b):Base64.decode(b,!0);EditorUi.parsePng(d,mxUtils.bind(this,function(a,b,e){a=d.substring(a+ 8,a+8+e);"zTXt"==b?(e=a.indexOf(String.fromCharCode(0)),"mxGraphModel"==a.substring(0,e)&&(a=this.editor.graph.bytesToString(pako.inflateRaw(a.substring(e+2))).replace(/\+/g," "),null!=a&&0<a.length&&(c=a))):"tEXt"==b&&(a=a.split(String.fromCharCode(0)),1<a.length&&"mxGraphModel"==a[0]&&(c=a[1]));if(null!=c||"IDAT"==b)return!0}))}catch(r){}null!=c&&"%"==c.charAt(0)&&(c=decodeURIComponent(c));null!=c&&"%"==c.charAt(0)&&(c=decodeURIComponent(c));return c};EditorUi.prototype.loadImage=function(a,b,d){var c= -new Image;c.onload=function(){b(c)};null!=d&&(c.onerror=d);c.src=a};var m=EditorUi.prototype.init;EditorUi.prototype.init=function(){mxStencilRegistry.allowEval=mxStencilRegistry.allowEval&&!this.isOfflineApp();"undefined"!==typeof window.mxSettings&&(this.formatWidth=mxSettings.getFormatWidth());var a=this,b=this.editor.graph;b.getLinkTitle=function(c){return a.getLinkTitle(c)};b.customLinkClicked=function(c){var b=!1;try{a.handleCustomLink(c),b=!0}catch(x){a.handleError(x)}return b};var d=this.clearDefaultStyle; -this.clearDefaultStyle=function(){d.apply(this,arguments)};this.isOffline()||"undefined"===typeof window.EditDataDialog||(EditDataDialog.placeholderHelpLink="https://desk.draw.io/support/solutions/articles/16000051979");var e=a.editor.getEditBlankUrl;this.editor.getEditBlankUrl=function(c){c=null!=c?c:"";if(null!=a.pages&&null!=a.currentPage)for(var b=0;b<a.pages.length;b++)if(a.pages[b]==a.currentPage){0<b&&(c+=(0<c.length?"&":"?")+"page="+b);break}"1"==urlParams.dev&&(c+=(0<c.length?"&":"?")+"dev=1&drawdev=1"); -return e.apply(this,arguments)};var h=b.addClickHandler;b.addClickHandler=function(a,c,d){var e=c;c=function(a,c){if(null==c){var d=mxEvent.getSource(a);"a"==d.nodeName.toLowerCase()&&(c=d.getAttribute("href"))}null!=c&&b.isCustomLink(c)&&(mxEvent.isTouchEvent(a)||!mxEvent.isPopupTrigger(a))&&b.customLinkClicked(c)&&mxEvent.consume(a);null!=e&&e(a,c)};h.call(this,a,c,d)};m.apply(this,arguments);mxClient.IS_SVG&&this.editor.graph.addSvgShadow(b.view.canvas.ownerSVGElement,null,!0);a.actions.get("print").funct= -function(){a.showDialog((new PrintDialog(a)).container,360,null!=a.pages&&1<a.pages.length?420:360,!0,!0)};this.defaultFilename=mxResources.get("untitledDiagram");var l=b.getGlobalVariable;b.getGlobalVariable=function(c){return"page"==c&&null!=a.currentPage?a.currentPage.getName():"pagenumber"==c?null!=a.currentPage&&null!=a.pages?mxUtils.indexOf(a.pages,a.currentPage)+1:1:l.apply(this,arguments)};var n=b.labelLinkClicked;b.labelLinkClicked=function(a,c,d){var e=c.getAttribute("href");if(null==e|| -!b.isCustomLink(e)||!mxEvent.isTouchEvent(d)&&mxEvent.isPopupTrigger(d))n.apply(this,arguments);else{if(!b.isEnabled()||null!=a&&b.isCellLocked(a.cell))b.customLinkClicked(e),b.getRubberband().reset();mxEvent.consume(d)}};this.editor.getOrCreateFilename=function(){var c=a.defaultFilename,b=a.getCurrentFile();null!=b&&(c=null!=b.getTitle()?b.getTitle():c);return c};var p=this.actions.get("print");p.setEnabled(!mxClient.IS_IOS||!navigator.standalone);p.visible=p.isEnabled();if(!this.editor.chromeless|| +new Image;c.onload=function(){b(c)};null!=d&&(c.onerror=d);c.src=a};var l=EditorUi.prototype.init;EditorUi.prototype.init=function(){mxStencilRegistry.allowEval=mxStencilRegistry.allowEval&&!this.isOfflineApp();"undefined"!==typeof window.mxSettings&&(this.formatWidth=mxSettings.getFormatWidth());var a=this,b=this.editor.graph;b.getLinkTitle=function(b){return a.getLinkTitle(b)};b.customLinkClicked=function(b){var c=!1;try{a.handleCustomLink(b),c=!0}catch(x){a.handleError(x)}return c};var d=this.clearDefaultStyle; +this.clearDefaultStyle=function(){d.apply(this,arguments)};this.isOffline()||"undefined"===typeof window.EditDataDialog||(EditDataDialog.placeholderHelpLink="https://desk.draw.io/support/solutions/articles/16000051979");var e=a.editor.getEditBlankUrl;this.editor.getEditBlankUrl=function(b){b=null!=b?b:"";if(null!=a.pages&&null!=a.currentPage)for(var c=0;c<a.pages.length;c++)if(a.pages[c]==a.currentPage){0<c&&(b+=(0<b.length?"&":"?")+"page="+c);break}"1"==urlParams.dev&&(b+=(0<b.length?"&":"?")+"dev=1&drawdev=1"); +return e.apply(this,arguments)};var k=b.addClickHandler;b.addClickHandler=function(a,c,d){var e=c;c=function(a,c){if(null==c){var d=mxEvent.getSource(a);"a"==d.nodeName.toLowerCase()&&(c=d.getAttribute("href"))}null!=c&&b.isCustomLink(c)&&(mxEvent.isTouchEvent(a)||!mxEvent.isPopupTrigger(a))&&b.customLinkClicked(c)&&mxEvent.consume(a);null!=e&&e(a,c)};k.call(this,a,c,d)};l.apply(this,arguments);mxClient.IS_SVG&&this.editor.graph.addSvgShadow(b.view.canvas.ownerSVGElement,null,!0);a.actions.get("print").funct= +function(){a.showDialog((new PrintDialog(a)).container,360,null!=a.pages&&1<a.pages.length?420:360,!0,!0)};this.defaultFilename=mxResources.get("untitledDiagram");var h=b.getGlobalVariable;b.getGlobalVariable=function(b){return"page"==b&&null!=a.currentPage?a.currentPage.getName():"pagenumber"==b?null!=a.currentPage&&null!=a.pages?mxUtils.indexOf(a.pages,a.currentPage)+1:1:h.apply(this,arguments)};var m=b.labelLinkClicked;b.labelLinkClicked=function(a,c,d){var e=c.getAttribute("href");if(null==e|| +!b.isCustomLink(e)||!mxEvent.isTouchEvent(d)&&mxEvent.isPopupTrigger(d))m.apply(this,arguments);else{if(!b.isEnabled()||null!=a&&b.isCellLocked(a.cell))b.customLinkClicked(e),b.getRubberband().reset();mxEvent.consume(d)}};this.editor.getOrCreateFilename=function(){var b=a.defaultFilename,c=a.getCurrentFile();null!=c&&(b=null!=c.getTitle()?c.getTitle():b);return b};var p=this.actions.get("print");p.setEnabled(!mxClient.IS_IOS||!navigator.standalone);p.visible=p.isEnabled();if(!this.editor.chromeless|| this.editor.editable){var q=function(){window.setTimeout(function(){u.innerHTML=" ";u.focus();document.execCommand("selectAll",!1,null)},0)};this.keyHandler.bindAction(70,!0,"find");this.keyHandler.bindAction(67,!0,"copyStyle",!0);this.keyHandler.bindAction(86,!0,"pasteStyle",!0);this.keyHandler.bindAction(77,!0,"editGeometry",!0);this.keyHandler.bindAction(88,!0,"insertText",!0);this.keyHandler.bindAction(75,!0,"insertRectangle");this.keyHandler.bindAction(75,!0,"insertEllipse",!0);mxClient.IS_IE|| -b.container.addEventListener("paste",mxUtils.bind(this,function(a){var c=this.editor.graph;if(!mxEvent.isConsumed(a))try{for(var b=a.clipboardData||a.originalEvent.clipboardData,d=!1,e=0;e<b.types.length;e++)if("text/"===b.types[e].substring(0,5)){d=!0;break}if(!d){var f=b.items;for(index in f){var g=f[index];if("file"===g.kind){if(c.isEditing())this.importFiles([g.getAsFile()],0,0,this.maxImageSize,function(a,b,d,e,f,g){c.insertImage(a,f,g)},function(){},function(a){return"image/"==a.type.substring(0, -6)},function(a){for(var c=0;c<a.length;c++)a[c]()});else{var h=this.editor.graph.getInsertPoint();this.importFiles([g.getAsFile()],h.x,h.y,this.maxImageSize);mxEvent.consume(a)}break}}}}catch(U){}}),!1);var u=document.createElement("div");u.style.position="absolute";u.style.whiteSpace="nowrap";u.style.overflow="hidden";u.style.display="block";u.contentEditable=!0;mxUtils.setOpacity(u,0);u.style.width="1px";u.style.height="1px";u.innerHTML=" ";var y=!1;this.keyHandler.bindControlKey(88,null); +b.container.addEventListener("paste",mxUtils.bind(this,function(a){var b=this.editor.graph;if(!mxEvent.isConsumed(a))try{for(var c=a.clipboardData||a.originalEvent.clipboardData,d=!1,e=0;e<c.types.length;e++)if("text/"===c.types[e].substring(0,5)){d=!0;break}if(!d){var f=c.items;for(index in f){var g=f[index];if("file"===g.kind){if(b.isEditing())this.importFiles([g.getAsFile()],0,0,this.maxImageSize,function(a,c,d,e,f,g){b.insertImage(a,f,g)},function(){},function(a){return"image/"==a.type.substring(0, +6)},function(a){for(var b=0;b<a.length;b++)a[b]()});else{var h=this.editor.graph.getInsertPoint();this.importFiles([g.getAsFile()],h.x,h.y,this.maxImageSize);mxEvent.consume(a)}break}}}}catch(U){}}),!1);var u=document.createElement("div");u.style.position="absolute";u.style.whiteSpace="nowrap";u.style.overflow="hidden";u.style.display="block";u.contentEditable=!0;mxUtils.setOpacity(u,0);u.style.width="1px";u.style.height="1px";u.innerHTML=" ";var y=!1;this.keyHandler.bindControlKey(88,null); this.keyHandler.bindControlKey(67,null);this.keyHandler.bindControlKey(86,null);mxEvent.addListener(document,"keydown",mxUtils.bind(this,function(a){var c=mxEvent.getSource(a);null==b.container||!b.isEnabled()||b.isMouseDown||b.isEditing()||null!=this.dialog||"INPUT"==c.nodeName||"TEXTAREA"==c.nodeName||!(224==a.keyCode||!mxClient.IS_MAC&&17==a.keyCode||mxClient.IS_MAC&&91==a.keyCode)||y||(u.style.left=b.container.scrollLeft+10+"px",u.style.top=b.container.scrollTop+10+"px",b.container.appendChild(u), y=!0,mxClient.IS_QUIRKS?window.setTimeout(function(){u.focus();document.execCommand("selectAll",!1,null)},0):(u.focus(),document.execCommand("selectAll",!1,null)))}));mxEvent.addListener(document,"keyup",mxUtils.bind(this,function(a){var c=a.keyCode;window.setTimeout(mxUtils.bind(this,function(){!y||224!=c&&17!=c&&91!=c||(y=!1,b.isEditing()||null!=this.dialog||null==b.container||b.container.focus(),u.parentNode.removeChild(u),null==this.dialog&&mxUtils.clearSelection())}),0)}));mxEvent.addListener(u, "copy",mxUtils.bind(this,function(a){b.isEnabled()&&(mxClipboard.copy(b),this.copyCells(u),q())}));mxEvent.addListener(u,"cut",mxUtils.bind(this,function(a){b.isEnabled()&&(mxClipboard.copy(b),this.copyCells(u,!0),q())}));mxEvent.addListener(u,"paste",mxUtils.bind(this,function(a){b.isEnabled()&&!b.isCellLocked(b.getDefaultParent())&&(u.innerHTML=" ",u.focus(),window.setTimeout(mxUtils.bind(this,function(){this.pasteCells(a,u);u.innerHTML=" "}),0))}),!0);var t=this.isSelectionAllowed;this.isSelectionAllowed= -function(a){return mxEvent.getSource(a)==u?!0:t.apply(this,arguments)}}this.spinner=this.createSpinner(document.body.clientWidth/2-2,Math.max(document.body.clientHeight||0,document.documentElement.clientHeight||0)/2,24);Graph.fileSupport&&this.editor.graph.addListener(mxEvent.EDITING_STARTED,mxUtils.bind(this,function(a){var c=this.editor.graph,b=c.cellEditor.text2,d=null;null!=b&&(mxEvent.addListener(b,"dragleave",function(a){null!=d&&(d.parentNode.removeChild(d),d=null);a.stopPropagation();a.preventDefault()}), -mxEvent.addListener(b,"dragover",mxUtils.bind(this,function(a){null==d&&(!mxClient.IS_IE||10<document.documentMode)&&(d=this.highlightElement(b));a.stopPropagation();a.preventDefault()})),mxEvent.addListener(b,"drop",mxUtils.bind(this,function(a){null!=d&&(d.parentNode.removeChild(d),d=null);if(0<a.dataTransfer.files.length)this.importFiles(a.dataTransfer.files,0,0,this.maxImageSize,function(a,b,d,e,f,g){c.insertImage(a,f,g)},function(){},function(a){return"image/"==a.type.substring(0,6)},function(a){for(var c= -0;c<a.length;c++)a[c]()},mxEvent.isControlDown(a));else if(0<=mxUtils.indexOf(a.dataTransfer.types,"text/uri-list")){var b=a.dataTransfer.getData("text/uri-list");/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(b)?this.loadImage(decodeURIComponent(b),mxUtils.bind(this,function(a){var d=Math.max(1,a.width);a=Math.max(1,a.height);var e=this.maxImageSize,e=Math.min(1,Math.min(e/Math.max(1,d)),e/Math.max(1,a));c.insertImage(decodeURIComponent(b),d*e,a*e)})):document.execCommand("insertHTML",!1,a.dataTransfer.getData("text/plain"))}else 0<= +function(a){return mxEvent.getSource(a)==u?!0:t.apply(this,arguments)}}this.spinner=this.createSpinner(document.body.clientWidth/2-2,Math.max(document.body.clientHeight||0,document.documentElement.clientHeight||0)/2,24);Graph.fileSupport&&this.editor.graph.addListener(mxEvent.EDITING_STARTED,mxUtils.bind(this,function(a){var b=this.editor.graph,c=b.cellEditor.text2,d=null;null!=c&&(mxEvent.addListener(c,"dragleave",function(a){null!=d&&(d.parentNode.removeChild(d),d=null);a.stopPropagation();a.preventDefault()}), +mxEvent.addListener(c,"dragover",mxUtils.bind(this,function(a){null==d&&(!mxClient.IS_IE||10<document.documentMode)&&(d=this.highlightElement(c));a.stopPropagation();a.preventDefault()})),mxEvent.addListener(c,"drop",mxUtils.bind(this,function(a){null!=d&&(d.parentNode.removeChild(d),d=null);if(0<a.dataTransfer.files.length)this.importFiles(a.dataTransfer.files,0,0,this.maxImageSize,function(a,c,d,e,f,g){b.insertImage(a,f,g)},function(){},function(a){return"image/"==a.type.substring(0,6)},function(a){for(var b= +0;b<a.length;b++)a[b]()},mxEvent.isControlDown(a));else if(0<=mxUtils.indexOf(a.dataTransfer.types,"text/uri-list")){var c=a.dataTransfer.getData("text/uri-list");/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(c)?this.loadImage(decodeURIComponent(c),mxUtils.bind(this,function(a){var d=Math.max(1,a.width);a=Math.max(1,a.height);var e=this.maxImageSize,e=Math.min(1,Math.min(e/Math.max(1,d)),e/Math.max(1,a));b.insertImage(decodeURIComponent(c),d*e,a*e)})):document.execCommand("insertHTML",!1,a.dataTransfer.getData("text/plain"))}else 0<= mxUtils.indexOf(a.dataTransfer.types,"text/html")?document.execCommand("insertHTML",!1,a.dataTransfer.getData("text/html")):0<=mxUtils.indexOf(a.dataTransfer.types,"text/plain")&&document.execCommand("insertHTML",!1,a.dataTransfer.getData("text/plain"));a.stopPropagation();a.preventDefault()})))}));if("1"==urlParams.ruler&&"undefined"!==typeof mxRuler){p=document.createElement("div");p.style.position="absolute";p.style.top="95px";p.style.left="250px";p.style.width="2000px";p.style.height="30px";p.style.background= "whiteSmoke";document.body.appendChild(p);var z=document.createElement("div");z.style.position="absolute";z.style.top="125px";z.style.left="220px";z.style.width="30px";z.style.height="1000px";z.style.background="whiteSmoke";document.body.appendChild(z);var H=document.createElement("div");H.style.position="absolute";H.style.top="95px";H.style.left="220px";H.style.width="30px";H.style.height="30px";H.style.background="whiteSmoke";document.body.appendChild(H);this.vRuler=new mxRuler(this.editor.graph, z,!0);this.hRuler=new mxRuler(this.editor.graph,p,!1)}if("1"==urlParams.styledev){p=document.getElementById("geFooter");null!=p&&(this.styleInput=document.createElement("input"),this.styleInput.setAttribute("type","text"),this.styleInput.style.position="absolute",this.styleInput.style.top="14px",this.styleInput.style.left="2px",this.styleInput.style.width="98%",this.styleInput.style.visibility="hidden",this.styleInput.style.opacity="0.9",mxEvent.addListener(this.styleInput,"change",mxUtils.bind(this, -function(){this.editor.graph.getModel().setStyle(this.editor.graph.getSelectionCell(),this.styleInput.value)})),p.appendChild(this.styleInput),this.editor.graph.getSelectionModel().addListener(mxEvent.CHANGE,mxUtils.bind(this,function(a,c){if(0<this.editor.graph.getSelectionCount()){var b=this.editor.graph.getSelectionCell(),b=this.editor.graph.getModel().getStyle(b);this.styleInput.value=b||"";this.styleInput.style.visibility="visible"}else this.styleInput.style.visibility="hidden"})));var G=this.isSelectionAllowed; -this.isSelectionAllowed=function(a){return mxEvent.getSource(a)==this.styleInput?!0:G.apply(this,arguments)}}p=document.getElementById("geInfo");null!=p&&p.parentNode.removeChild(p);if(Graph.fileSupport&&(!this.editor.chromeless||this.editor.editable)){var A=null;mxEvent.addListener(b.container,"dragleave",function(a){b.isEnabled()&&(null!=A&&(A.parentNode.removeChild(A),A=null),a.stopPropagation(),a.preventDefault())});mxEvent.addListener(b.container,"dragover",mxUtils.bind(this,function(a){null== -A&&(!mxClient.IS_IE||10<document.documentMode)&&(A=this.highlightElement(b.container));null!=this.sidebar&&this.sidebar.hideTooltip();a.stopPropagation();a.preventDefault()}));mxEvent.addListener(b.container,"drop",mxUtils.bind(this,function(a){null!=A&&(A.parentNode.removeChild(A),A=null);if(b.isEnabled()){var c=mxUtils.convertPoint(b.container,mxEvent.getClientX(a),mxEvent.getClientY(a)),d=b.view.translate,e=b.view.scale,f=c.x/e-d.x,g=c.y/e-d.y;mxEvent.isAltDown(a)&&(g=f=0);if(0<a.dataTransfer.files.length)this.importFiles(a.dataTransfer.files, -f,g,this.maxImageSize,null,null,null,null,mxEvent.isControlDown(a),null,null,mxEvent.isShiftDown(a));else{var h=0<=mxUtils.indexOf(a.dataTransfer.types,"text/uri-list")?a.dataTransfer.getData("text/uri-list"):null,c=this.extractGraphModelFromEvent(a,null!=this.pages);if(null!=c)b.setSelectionCells(this.importXml(c,f,g,!0));else if(0<=mxUtils.indexOf(a.dataTransfer.types,"text/html")){var k=a.dataTransfer.getData("text/html"),c=document.createElement("div");c.innerHTML=k;var l=null,d=c.getElementsByTagName("img"); -null!=d&&1==d.length?(k=d[0].getAttribute("src"),/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(k)||(l=!0)):(c=c.getElementsByTagName("a"),null!=c&&1==c.length&&(k=c[0].getAttribute("href")));var n=!0,m=mxUtils.bind(this,function(){b.setSelectionCells(this.insertTextAt(k,f,g,!0,l,null,n))});l&&k.length>this.resampleThreshold?this.confirmImageResize(function(a){n=a;m()},mxEvent.isControlDown(a)):m()}else null!=h&&/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(h)?this.loadImage(decodeURIComponent(h),mxUtils.bind(this, +function(){this.editor.graph.getModel().setStyle(this.editor.graph.getSelectionCell(),this.styleInput.value)})),p.appendChild(this.styleInput),this.editor.graph.getSelectionModel().addListener(mxEvent.CHANGE,mxUtils.bind(this,function(a,b){if(0<this.editor.graph.getSelectionCount()){var c=this.editor.graph.getSelectionCell(),c=this.editor.graph.getModel().getStyle(c);this.styleInput.value=c||"";this.styleInput.style.visibility="visible"}else this.styleInput.style.visibility="hidden"})));var G=this.isSelectionAllowed; +this.isSelectionAllowed=function(a){return mxEvent.getSource(a)==this.styleInput?!0:G.apply(this,arguments)}}p=document.getElementById("geInfo");null!=p&&p.parentNode.removeChild(p);if(Graph.fileSupport&&(!this.editor.chromeless||this.editor.editable)){var B=null;mxEvent.addListener(b.container,"dragleave",function(a){b.isEnabled()&&(null!=B&&(B.parentNode.removeChild(B),B=null),a.stopPropagation(),a.preventDefault())});mxEvent.addListener(b.container,"dragover",mxUtils.bind(this,function(a){null== +B&&(!mxClient.IS_IE||10<document.documentMode)&&(B=this.highlightElement(b.container));null!=this.sidebar&&this.sidebar.hideTooltip();a.stopPropagation();a.preventDefault()}));mxEvent.addListener(b.container,"drop",mxUtils.bind(this,function(a){null!=B&&(B.parentNode.removeChild(B),B=null);if(b.isEnabled()){var c=mxUtils.convertPoint(b.container,mxEvent.getClientX(a),mxEvent.getClientY(a)),d=b.view.translate,e=b.view.scale,f=c.x/e-d.x,g=c.y/e-d.y;mxEvent.isAltDown(a)&&(g=f=0);if(0<a.dataTransfer.files.length)this.importFiles(a.dataTransfer.files, +f,g,this.maxImageSize,null,null,null,null,mxEvent.isControlDown(a),null,null,mxEvent.isShiftDown(a));else{var h=0<=mxUtils.indexOf(a.dataTransfer.types,"text/uri-list")?a.dataTransfer.getData("text/uri-list"):null,c=this.extractGraphModelFromEvent(a,null!=this.pages);if(null!=c)b.setSelectionCells(this.importXml(c,f,g,!0));else if(0<=mxUtils.indexOf(a.dataTransfer.types,"text/html")){var k=a.dataTransfer.getData("text/html"),c=document.createElement("div");c.innerHTML=k;var m=null,d=c.getElementsByTagName("img"); +null!=d&&1==d.length?(k=d[0].getAttribute("src"),/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(k)||(m=!0)):(c=c.getElementsByTagName("a"),null!=c&&1==c.length&&(k=c[0].getAttribute("href")));var n=!0,l=mxUtils.bind(this,function(){b.setSelectionCells(this.insertTextAt(k,f,g,!0,m,null,n))});m&&k.length>this.resampleThreshold?this.confirmImageResize(function(a){n=a;l()},mxEvent.isControlDown(a)):l()}else null!=h&&/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(h)?this.loadImage(decodeURIComponent(h),mxUtils.bind(this, function(a){var c=Math.max(1,a.width);a=Math.max(1,a.height);var d=this.maxImageSize,d=Math.min(1,Math.min(d/Math.max(1,c)),d/Math.max(1,a));b.setSelectionCell(b.insertVertex(null,null,"",f,g,c*d,a*d,"shape=image;verticalLabelPosition=bottom;labelBackgroundColor=#ffffff;verticalAlign=top;aspect=fixed;imageAspect=0;image="+h+";"))}),mxUtils.bind(this,function(a){b.setSelectionCells(this.insertTextAt(h,f,g,!0))})):0<=mxUtils.indexOf(a.dataTransfer.types,"text/plain")&&b.setSelectionCells(this.insertTextAt(a.dataTransfer.getData("text/plain"), f,g,!0))}}a.stopPropagation();a.preventDefault()}),!1)}this.initPages();"1"==urlParams.embed&&this.initializeEmbedMode();this.installSettings()};EditorUi.prototype.getLinkTitle=function(a){var c=Graph.prototype.getLinkTitle.apply(this,arguments);if("data:page/id,"==a.substring(0,13)){var b=a.indexOf(",");0<b&&(c=this.getPageById(a.substring(b+1)),c=null!=c?c.getName():mxResources.get("pageNotFound"))}else"data:"==a.substring(0,5)&&(c=mxResources.get("action"));return c};EditorUi.prototype.handleCustomLink= function(a){if("data:page/id,"==a.substring(0,13)){var c=a.indexOf(",");if(a=this.getPageById(a.substring(c+1)))this.selectPage(a);else throw Error(mxResources.get("pageNotFound")||"Page not found");}else this.editor.graph.handleCustomLink(a)};EditorUi.prototype.isSettingsEnabled=function(){return"undefined"!==typeof window.mxSettings&&(isLocalStorage||mxClient.IS_CHROMEAPP)};EditorUi.prototype.installSettings=function(){if(this.isSettingsEnabled()){ColorDialog.recentColors=mxSettings.getRecentColors(); @@ -3011,19 +3016,19 @@ this.fireEvent(new mxEventObject("styleChanged","keys",[],"values",[],"cells",[] function(a,b){mxSettings.setPageFormat(this.editor.graph.pageFormat);mxSettings.save()}));this.editor.graph.view.gridColor=mxSettings.getGridColor();this.addListener("gridColorChanged",mxUtils.bind(this,function(a,b){mxSettings.setGridColor(this.editor.graph.view.gridColor);mxSettings.save()}));if(mxClient.IS_CHROMEAPP||EditorUi.isElectronApp)this.editor.addListener("autosaveChanged",mxUtils.bind(this,function(a,b){mxSettings.setAutosave(this.editor.autosave);mxSettings.save()})),this.editor.autosave= mxSettings.getAutosave();null!=this.sidebar&&this.sidebar.showPalette("search",mxSettings.settings.search);this.editor.chromeless&&!this.editor.editable||null==this.sidebar||!(mxSettings.settings.isNew||8>=parseInt(mxSettings.settings.version||0))||(this.toggleScratchpad(),mxSettings.save());this.addListener("formatWidthChanged",function(){mxSettings.setFormatWidth(this.formatWidth);mxSettings.save()})}};EditorUi.prototype.copyCells=function(a,b){var c=this.editor.graph;if(c.isSelectionEmpty())a.innerHTML= "";else{var d=mxUtils.sortCells(c.model.getTopmostCells(c.getSelectionCells())),e=mxUtils.getXml(this.editor.graph.encodeCells(d));mxUtils.setTextContent(a,encodeURIComponent(e));b?(c.removeCells(d,!1),c.lastPasteXml=null):(c.lastPasteXml=e,c.pasteCounter=0);a.focus();document.execCommand("selectAll",!1,null)}};EditorUi.prototype.pasteCells=function(a,b){if(!mxEvent.isConsumed(a)){var c=b.getElementsByTagName("span");if(null!=c&&0<c.length&&"application/vnd.lucid.chart.objects"===c[0].getAttribute("data-lucid-type")){var d= -c[0].getAttribute("data-lucid-content");null!=d&&0<d.length&&(this.convertLucidChart(d,mxUtils.bind(this,function(a){this.editor.graph.setSelectionCells(this.importXml(a,0,0))}),mxUtils.bind(this,function(a){this.handleError(a)})),mxEvent.consume(a))}else{var d=this.editor.graph,e=mxUtils.trim(mxClient.IS_QUIRKS||8==document.documentMode?mxUtils.getTextContent(b):b.textContent),f=!1;try{var h=e.lastIndexOf("%3E");0<=h&&h<e.length-3&&(e=e.substring(0,h+3))}catch(v){}try{var c=b.getElementsByTagName("span"), -m=null!=c&&0<c.length?mxUtils.trim(decodeURIComponent(c[0].textContent)):decodeURIComponent(e);this.isCompatibleString(m)&&(f=!0,e=m)}catch(v){}d.lastPasteXml==e?d.pasteCounter++:(d.lastPasteXml=e,d.pasteCounter=0);c=d.pasteCounter*d.gridSize;if(null!=e&&0<e.length&&(f||this.isCompatibleString(e)?d.setSelectionCells(this.importXml(e,c,c)):(f=d.getInsertPoint(),d.isMouseInsertPoint()&&(c=0,d.lastPasteXml==e&&0<d.pasteCounter&&d.pasteCounter--),d.setSelectionCells(this.insertTextAt(e,f.x+c,f.y+c,!0))), +c[0].getAttribute("data-lucid-content");null!=d&&0<d.length&&(this.convertLucidChart(d,mxUtils.bind(this,function(a){this.editor.graph.setSelectionCells(this.importXml(a,0,0))}),mxUtils.bind(this,function(a){this.handleError(a)})),mxEvent.consume(a))}else{var d=this.editor.graph,e=mxUtils.trim(mxClient.IS_QUIRKS||8==document.documentMode?mxUtils.getTextContent(b):b.textContent),f=!1;try{var k=e.lastIndexOf("%3E");0<=k&&k<e.length-3&&(e=e.substring(0,k+3))}catch(v){}try{var c=b.getElementsByTagName("span"), +l=null!=c&&0<c.length?mxUtils.trim(decodeURIComponent(c[0].textContent)):decodeURIComponent(e);this.isCompatibleString(l)&&(f=!0,e=l)}catch(v){}d.lastPasteXml==e?d.pasteCounter++:(d.lastPasteXml=e,d.pasteCounter=0);c=d.pasteCounter*d.gridSize;if(null!=e&&0<e.length&&(f||this.isCompatibleString(e)?d.setSelectionCells(this.importXml(e,c,c)):(f=d.getInsertPoint(),d.isMouseInsertPoint()&&(c=0,d.lastPasteXml==e&&0<d.pasteCounter&&d.pasteCounter--),d.setSelectionCells(this.insertTextAt(e,f.x+c,f.y+c,!0))), !d.isSelectionEmpty())){d.scrollCellToVisible(d.getSelectionCell());null!=this.hoverIcons&&this.hoverIcons.update(d.view.getState(d.getSelectionCell()));try{mxEvent.consume(a)}catch(v){}}}}};EditorUi.prototype.addFileDropHandler=function(a){if(Graph.fileSupport)for(var c=null,b=0;b<a.length;b++)mxEvent.addListener(a[b],"dragleave",function(a){null!=c&&(c.parentNode.removeChild(c),c=null);a.stopPropagation();a.preventDefault()}),mxEvent.addListener(a[b],"dragover",mxUtils.bind(this,function(a){(this.editor.graph.isEnabled()|| "1"!=urlParams.embed)&&null==c&&(!mxClient.IS_IE||10<document.documentMode&&12>document.documentMode)&&(c=this.highlightElement());a.stopPropagation();a.preventDefault()})),mxEvent.addListener(a[b],"drop",mxUtils.bind(this,function(a){null!=c&&(c.parentNode.removeChild(c),c=null);if(this.editor.graph.isEnabled()||"1"!=urlParams.embed)if(0<a.dataTransfer.files.length)this.hideDialog(),"1"==urlParams.embed?this.importFiles(a.dataTransfer.files,0,0,this.maxImageSize,null,null,null,null,!mxEvent.isControlDown(a)&& !mxEvent.isShiftDown(a)):this.openFiles(a.dataTransfer.files,!0);else{var b=this.extractGraphModelFromEvent(a);if(null==b){var d=null!=a.dataTransfer?a.dataTransfer:a.clipboardData;null!=d&&(10==document.documentMode||11==document.documentMode?b=d.getData("Text"):(b=null,b=0<=mxUtils.indexOf(d.types,"text/uri-list")?a.dataTransfer.getData("text/uri-list"):0<=mxUtils.indexOf(d.types,"text/html")?d.getData("text/html"):null,null!=b&&0<b.length?(d=document.createElement("div"),d.innerHTML=b,d=d.getElementsByTagName("img"), 0<d.length&&(b=d[0].getAttribute("src"))):0<=mxUtils.indexOf(d.types,"text/plain")&&(b=d.getData("text/plain"))),null!=b&&("data:image/png;base64,"==b.substring(0,22)?(b=this.extractGraphModelFromPng(b),null!=b&&0<b.length&&this.openLocalFile(b,null,!0)):!this.isOffline()&&this.isRemoteFileFormat(b)?(new mxXmlRequest(OPEN_URL,"format=xml&data="+encodeURIComponent(b))).send(mxUtils.bind(this,function(a){200<=a.getStatus()&&299>=a.getStatus()&&this.openLocalFile(a.getText(),null,!0)})):/^https?:\/\//.test(b)&& -(null==this.getCurrentFile()?window.location.hash="#U"+encodeURIComponent(b):window.openWindow((mxClient.IS_CHROMEAPP?"https://www.draw.io/":"https://"+location.host+"/")+window.location.search+"#U"+encodeURIComponent(b)))))}else this.openLocalFile(b,null,!0)}a.stopPropagation();a.preventDefault()}))};EditorUi.prototype.highlightElement=function(a){var c=0,b=0,d,e;if(null==a){e=document.body;var h=document.documentElement;d=(e.clientWidth||h.clientWidth)-3;e=Math.max(e.clientHeight||0,h.clientHeight)- -3}else c=a.offsetTop,b=a.offsetLeft,d=a.clientWidth,e=a.clientHeight;h=document.createElement("div");h.style.zIndex=mxPopupMenu.prototype.zIndex+2;h.style.border="3px dotted rgb(254, 137, 12)";h.style.pointerEvents="none";h.style.position="absolute";h.style.top=c+"px";h.style.left=b+"px";h.style.width=Math.max(0,d-3)+"px";h.style.height=Math.max(0,e-3)+"px";null!=a&&a.parentNode==this.editor.graph.container?this.editor.graph.container.appendChild(h):document.body.appendChild(h);return h};EditorUi.prototype.stringToCells= -function(a){a=mxUtils.parseXml(a);var c=this.editor.extractGraphModel(a.documentElement);a=[];if(null!=c){var b=new mxCodec(c.ownerDocument),d=new mxGraphModel;b.decode(c,d);c=d.getChildAt(d.getRoot(),0);for(b=0;b<d.getChildCount(c);b++)a.push(d.getChildAt(c,b))}return a};EditorUi.prototype.openFiles=function(a,b){if(this.spinner.spin(document.body,mxResources.get("loading")))for(var c=0;c<a.length;c++)mxUtils.bind(this,function(a){var c=new FileReader;c.onload=mxUtils.bind(this,function(c){var d= +(null==this.getCurrentFile()?window.location.hash="#U"+encodeURIComponent(b):window.openWindow((mxClient.IS_CHROMEAPP?"https://www.draw.io/":"https://"+location.host+"/")+window.location.search+"#U"+encodeURIComponent(b)))))}else this.openLocalFile(b,null,!0)}a.stopPropagation();a.preventDefault()}))};EditorUi.prototype.highlightElement=function(a){var b=0,c=0,d,e;if(null==a){e=document.body;var h=document.documentElement;d=(e.clientWidth||h.clientWidth)-3;e=Math.max(e.clientHeight||0,h.clientHeight)- +3}else b=a.offsetTop,c=a.offsetLeft,d=a.clientWidth,e=a.clientHeight;h=document.createElement("div");h.style.zIndex=mxPopupMenu.prototype.zIndex+2;h.style.border="3px dotted rgb(254, 137, 12)";h.style.pointerEvents="none";h.style.position="absolute";h.style.top=b+"px";h.style.left=c+"px";h.style.width=Math.max(0,d-3)+"px";h.style.height=Math.max(0,e-3)+"px";null!=a&&a.parentNode==this.editor.graph.container?this.editor.graph.container.appendChild(h):document.body.appendChild(h);return h};EditorUi.prototype.stringToCells= +function(a){a=mxUtils.parseXml(a);var b=this.editor.extractGraphModel(a.documentElement);a=[];if(null!=b){var c=new mxCodec(b.ownerDocument),d=new mxGraphModel;c.decode(b,d);b=d.getChildAt(d.getRoot(),0);for(c=0;c<d.getChildCount(b);c++)a.push(d.getChildAt(b,c))}return a};EditorUi.prototype.openFiles=function(a,b){if(this.spinner.spin(document.body,mxResources.get("loading")))for(var c=0;c<a.length;c++)mxUtils.bind(this,function(a){var c=new FileReader;c.onload=mxUtils.bind(this,function(c){var d= c.target.result,e=a.name;if(null!=e&&0<e.length){!this.useCanvasForExport&&/(\.png)$/i.test(e)&&(e=e.substring(0,e.length-4)+".xml");var f=mxUtils.bind(this,function(a){e=0<=e.lastIndexOf(".")?e.substring(0,e.lastIndexOf("."))+".xml":e+".xml";if("<mxlibrary"==a.substring(0,10)){null==this.getCurrentFile()&&"1"!=urlParams.embed&&this.openLocalFile(this.emptyDiagramXml,this.defaultFilename,b);try{this.loadLibrary(new LocalLibrary(this,a,e))}catch(y){this.handleError(y,mxResources.get("errorLoadingFile"))}}else this.openLocalFile(a, e,b)});if(/(\.v(dx|sdx?))($|\?)/i.test(e)||/(\.vs(x|sx?))($|\?)/i.test(e))this.importVisio(a,mxUtils.bind(this,function(a){this.spinner.stop();f(a)}));else if(Graph.fileSupport&&!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(d,e))this.parseFile(a,mxUtils.bind(this,function(a){4==a.readyState&&(this.spinner.stop(),200<=a.status&&299>=a.status?f(a.responseText):this.handleError({message:mxResources.get(413==a.status?"drawingTooLarge":"invalidOrMissingFile")},mxResources.get("errorLoadingFile")))})); else if(this.isLucidChartData(d))/(\.json)$/i.test(e)&&(e=e.substring(0,e.length-5)+".xml"),this.convertLucidChart(d,mxUtils.bind(this,function(a){this.spinner.stop();this.openLocalFile(a,e,b)}),mxUtils.bind(this,function(a){this.spinner.stop();this.handleError(a)}));else if("<mxlibrary"==c.target.result.substring(0,10)){this.spinner.stop();null==this.getCurrentFile()&&"1"!=urlParams.embed&&this.openLocalFile(this.emptyDiagramXml,this.defaultFilename,b);try{this.loadLibrary(new LocalLibrary(this, -c.target.result,a.name))}catch(B){this.handleError(B,mxResources.get("errorLoadingFile"))}}else"image/png"==a.type.substring(0,9)&&(d=this.extractGraphModelFromPng(d)),this.spinner.stop(),this.openLocalFile(d,e,b)}});c.onerror=mxUtils.bind(this,function(a){this.spinner.stop();this.handleError(a);window.openFile=null});"image"===a.type.substring(0,5)&&"image/svg"!==a.type.substring(0,9)?c.readAsDataURL(a):c.readAsText(a)})(a[c])};EditorUi.prototype.openLocalFile=function(a,b,d){var c=this.getCurrentFile(), +c.target.result,a.name))}catch(A){this.handleError(A,mxResources.get("errorLoadingFile"))}}else"image/png"==a.type.substring(0,9)&&(d=this.extractGraphModelFromPng(d)),this.spinner.stop(),this.openLocalFile(d,e,b)}});c.onerror=mxUtils.bind(this,function(a){this.spinner.stop();this.handleError(a);window.openFile=null});"image"===a.type.substring(0,5)&&"image/svg"!==a.type.substring(0,9)?c.readAsDataURL(a):c.readAsText(a)})(a[c])};EditorUi.prototype.openLocalFile=function(a,b,d){var c=this.getCurrentFile(), e=mxUtils.bind(this,function(){window.openFile=null;if(null==b&&null!=this.getCurrentFile()&&this.isDiagramEmpty()){var c=mxUtils.parseXml(a);null!=c&&(this.editor.setGraphXml(c.documentElement),this.editor.graph.selectAll())}else this.fileLoaded(new LocalFile(this,a,b||this.defaultFilename,d))});null!=a&&0<a.length&&(null==c||!c.isModified()&&(mxClient.IS_CHROMEAPP||EditorUi.isElectronApp)?e():(mxClient.IS_CHROMEAPP||EditorUi.isElectronApp)&&null!=c&&c.isModified()?this.confirm(mxResources.get("allChangesLost"), null,e,mxResources.get("cancel"),mxResources.get("discardChanges")):(window.openFile=new OpenFile(function(){window.openFile=null}),window.openFile.setData(a,b),window.openWindow(this.getUrl(),null,mxUtils.bind(this,function(){null!=c&&c.isModified()?this.confirm(mxResources.get("allChangesLost"),null,e,mxResources.get("cancel"),mxResources.get("discardChanges")):e()}))))};EditorUi.prototype.getBasenames=function(){var a={};if(null!=this.pages)for(var b=0;b<this.pages.length;b++)this.updatePageRoot(this.pages[b]), this.addBasenamesForCell(this.pages[b].root,a);else this.addBasenamesForCell(this.editor.graph.model.getRoot(),a);var b=[],d;for(d in a)b.push(d);return b};EditorUi.prototype.addBasenamesForCell=function(a,b){function c(a){if(null!=a){var c=a.lastIndexOf(".");0<c&&(a=a.substring(c+1,a.length));null==b[a]&&(b[a]=!0)}}var d=this.editor.graph,e=d.getCellStyle(a);c(mxStencilRegistry.getBasenameForStencil(e[mxConstants.STYLE_SHAPE]));d.model.isEdge(a)&&(c(mxMarker.getPackageForType(e[mxConstants.STYLE_STARTARROW])), @@ -3034,38 +3039,38 @@ this.editor.modified=null!=d?d:!1;this.updateUi();window.self!==window.top&&wind function(a){var b=this.editor.graph;return{event:a,pageVisible:b.pageVisible,translate:b.view.translate,bounds:b.getGraphBounds(),currentPage:this.getSelectedPageIndex(),scale:b.view.scale,page:b.view.getBackgroundPageBounds()}};EditorUi.prototype.installMessageHandler=function(a){var b=null,c=!1,d=!1,e=null,h=mxUtils.bind(this,function(a,b){this.editor.modified&&"0"!=urlParams.modified?null!=urlParams.modified&&this.editor.setStatus(mxUtils.htmlEntities(mxResources.get(urlParams.modified))):this.editor.setStatus("")}); this.editor.graph.model.addListener(mxEvent.CHANGE,h);mxEvent.addListener(window,"message",mxUtils.bind(this,function(f){if(f.source==(window.opener||window.parent)){var g=f.data,h=mxUtils.bind(this,function(a){if(null!=a&&"function"===typeof a.charAt&&"<"!=a.charAt(0))try{"data:image/png;base64,"==a.substring(0,22)?a=this.extractGraphModelFromPng(a):"data:image/svg+xml;base64,"==a.substring(0,26)?a=atob(a.substring(26)):"data:image/svg+xml;utf8,"==a.substring(0,24)&&(a=a.substring(24)),null!=a&& ("%"==a.charAt(0)?a=decodeURIComponent(a):"<"!=a.charAt(0)&&(a=this.editor.graph.decompress(a)))}catch(R){}return a});if("json"==urlParams.proto){try{g=JSON.parse(g)}catch(I){g=null}if(null==g)return;if("dialog"==g.action){this.showError(null!=g.titleKey?mxResources.get(g.titleKey):g.title,null!=g.messageKey?mxResources.get(g.messageKey):g.message,null!=g.buttonKey?mxResources.get(g.buttonKey):g.button);null!=g.modified&&(this.editor.modified=g.modified);return}if("prompt"==g.action){this.spinner.stop(); -h=new FilenameDialog(this,g.defaultValue||"",null!=g.okKey?mxResources.get(g.okKey):null,function(a){null!=a&&n.postMessage(JSON.stringify({event:"prompt",value:a,message:g}),"*")},null!=g.titleKey?mxResources.get(g.titleKey):g.title);this.showDialog(h.container,300,80,!0,!1);h.init();return}if("draft"==g.action){var k=h(g.xml);this.spinner.stop();h=new DraftDialog(this,mxResources.get("draftFound",[g.name||this.defaultFilename]),k,mxUtils.bind(this,function(){this.hideDialog();n.postMessage(JSON.stringify({event:"draft", -result:"edit",message:g}),"*")}),mxUtils.bind(this,function(){this.hideDialog();n.postMessage(JSON.stringify({event:"draft",result:"discard",message:g}),"*")}),g.editKey?mxResources.get(g.editKey):null,g.discardKey?mxResources.get(g.discardKey):null,g.ignore?mxUtils.bind(this,function(){this.hideDialog();n.postMessage(JSON.stringify({event:"draft",result:"ignore",message:g}),"*")}):null);this.showDialog(h.container,640,480,!0,!1,mxUtils.bind(this,function(a){a&&this.actions.get("exit").funct()})); -try{h.init()}catch(I){n.postMessage(JSON.stringify({event:"draft",error:I.toString(),message:g}),"*")}return}if("template"==g.action){this.spinner.stop();h=1==g.enableRecent;k=1==g.enableSearch;h=new NewDialog(this,!1,null!=g.callback,mxUtils.bind(this,function(b,c){b=b||this.emptyDiagramXml;null!=g.callback?n.postMessage(JSON.stringify({event:"template",xml:b,blank:b==this.emptyDiagramXml,name:c}),"*"):(a(b,f,b!=this.emptyDiagramXml),this.editor.modified||this.editor.setStatus(""))}),null,null,null, -null,null,null,null,h?mxUtils.bind(this,function(a){this.recentReadyCallback=a;n.postMessage(JSON.stringify({event:"recentDocs"}),"*")}):null,k?mxUtils.bind(this,function(a,b){this.searchReadyCallback=b;n.postMessage(JSON.stringify({event:"searchDocs",searchStr:a}),"*")}):null,function(a,b,c){n.postMessage(JSON.stringify({event:"template",docUrl:a,info:b,name:c}),"*")});this.showDialog(h.container,620,440,!0,!1,mxUtils.bind(this,function(a){a&&this.actions.get("exit").funct()}));h.init();return}if("searchDocsList"== -g.action)this.searchReadyCallback(g.list,g.errorMsg);else if("recentDocsList"==g.action)this.recentReadyCallback(g.list,g.errorMsg);else{if("textContent"==g.action){this.editor.graph.setEnabled(!1);var l=this.editor.graph,h="";if(null!=this.pages)for(k=0;k<this.pages.length;k++){var m=l;this.currentPage!=this.pages[k]&&(m=this.createTemporaryGraph(l.getStylesheet()),m.model.setRoot(this.pages[k].root));h+=this.pages[k].getName()+" "+m.getIndexableText()+" "}else h=l.getIndexableText();this.editor.graph.setEnabled(!0); -n.postMessage(JSON.stringify({event:"textContent",data:h,message:g}),"*");return}if("status"==g.action){null!=g.messageKey?this.editor.setStatus(mxUtils.htmlEntities(mxResources.get(g.messageKey))):null!=g.message&&this.editor.setStatus(mxUtils.htmlEntities(g.message));null!=g.modified&&(this.editor.modified=g.modified);return}if("spinner"==g.action){var p=null!=g.messageKey?mxResources.get(g.messageKey):g.message;null==g.show||g.show?this.spinner.spin(document.body,p):this.spinner.stop();return}if("export"== -g.action){if("png"==g.format||"xmlpng"==g.format){if(null==g.spin&&null==g.spinKey||this.spinner.spin(document.body,null!=g.spinKey?mxResources.get(g.spinKey):g.spin)){var q=null!=g.xml?g.xml:this.getFileData(!0);this.editor.graph.setEnabled(!1);var l=this.editor.graph,r=mxUtils.bind(this,function(a){this.editor.graph.setEnabled(!0);this.spinner.stop();var b=this.createLoadMessage("export");b.format=g.format;b.message=g;b.data=a;b.xml=encodeURIComponent(q);n.postMessage(JSON.stringify(b),"*")}),u= +h=new FilenameDialog(this,g.defaultValue||"",null!=g.okKey?mxResources.get(g.okKey):null,function(a){null!=a&&k.postMessage(JSON.stringify({event:"prompt",value:a,message:g}),"*")},null!=g.titleKey?mxResources.get(g.titleKey):g.title);this.showDialog(h.container,300,80,!0,!1);h.init();return}if("draft"==g.action){var m=h(g.xml);this.spinner.stop();h=new DraftDialog(this,mxResources.get("draftFound",[g.name||this.defaultFilename]),m,mxUtils.bind(this,function(){this.hideDialog();k.postMessage(JSON.stringify({event:"draft", +result:"edit",message:g}),"*")}),mxUtils.bind(this,function(){this.hideDialog();k.postMessage(JSON.stringify({event:"draft",result:"discard",message:g}),"*")}),g.editKey?mxResources.get(g.editKey):null,g.discardKey?mxResources.get(g.discardKey):null,g.ignore?mxUtils.bind(this,function(){this.hideDialog();k.postMessage(JSON.stringify({event:"draft",result:"ignore",message:g}),"*")}):null);this.showDialog(h.container,640,480,!0,!1,mxUtils.bind(this,function(a){a&&this.actions.get("exit").funct()})); +try{h.init()}catch(I){k.postMessage(JSON.stringify({event:"draft",error:I.toString(),message:g}),"*")}return}if("template"==g.action){this.spinner.stop();h=1==g.enableRecent;m=1==g.enableSearch;h=new NewDialog(this,!1,null!=g.callback,mxUtils.bind(this,function(b,c){b=b||this.emptyDiagramXml;null!=g.callback?k.postMessage(JSON.stringify({event:"template",xml:b,blank:b==this.emptyDiagramXml,name:c}),"*"):(a(b,f,b!=this.emptyDiagramXml),this.editor.modified||this.editor.setStatus(""))}),null,null,null, +null,null,null,null,h?mxUtils.bind(this,function(a){this.recentReadyCallback=a;k.postMessage(JSON.stringify({event:"recentDocs"}),"*")}):null,m?mxUtils.bind(this,function(a,b){this.searchReadyCallback=b;k.postMessage(JSON.stringify({event:"searchDocs",searchStr:a}),"*")}):null,function(a,b,c){k.postMessage(JSON.stringify({event:"template",docUrl:a,info:b,name:c}),"*")});this.showDialog(h.container,620,440,!0,!1,mxUtils.bind(this,function(a){a&&this.actions.get("exit").funct()}));h.init();return}if("searchDocsList"== +g.action)this.searchReadyCallback(g.list,g.errorMsg);else if("recentDocsList"==g.action)this.recentReadyCallback(g.list,g.errorMsg);else{if("textContent"==g.action){this.editor.graph.setEnabled(!1);var l=this.editor.graph,h="";if(null!=this.pages)for(m=0;m<this.pages.length;m++){var n=l;this.currentPage!=this.pages[m]&&(n=this.createTemporaryGraph(l.getStylesheet()),n.model.setRoot(this.pages[m].root));h+=this.pages[m].getName()+" "+n.getIndexableText()+" "}else h=l.getIndexableText();this.editor.graph.setEnabled(!0); +k.postMessage(JSON.stringify({event:"textContent",data:h,message:g}),"*");return}if("status"==g.action){null!=g.messageKey?this.editor.setStatus(mxUtils.htmlEntities(mxResources.get(g.messageKey))):null!=g.message&&this.editor.setStatus(mxUtils.htmlEntities(g.message));null!=g.modified&&(this.editor.modified=g.modified);return}if("spinner"==g.action){var p=null!=g.messageKey?mxResources.get(g.messageKey):g.message;null==g.show||g.show?this.spinner.spin(document.body,p):this.spinner.stop();return}if("export"== +g.action){if("png"==g.format||"xmlpng"==g.format){if(null==g.spin&&null==g.spinKey||this.spinner.spin(document.body,null!=g.spinKey?mxResources.get(g.spinKey):g.spin)){var q=null!=g.xml?g.xml:this.getFileData(!0);this.editor.graph.setEnabled(!1);var l=this.editor.graph,r=mxUtils.bind(this,function(a){this.editor.graph.setEnabled(!0);this.spinner.stop();var b=this.createLoadMessage("export");b.format=g.format;b.message=g;b.data=a;b.xml=encodeURIComponent(q);k.postMessage(JSON.stringify(b),"*")}),u= mxUtils.bind(this,function(a){null==a&&(a=Editor.blankImage);"xmlpng"==g.format&&(a=this.writeGraphModelToPng(a,"zTXt","mxGraphModel",atob(this.editor.graph.compress(q))));l!=this.editor.graph&&l.container.parentNode.removeChild(l.container);r(a)});if(this.isExportToCanvas()){if(null!=this.pages&&this.currentPage!=this.pages[0]){var l=this.createTemporaryGraph(l.getStylesheet()),w=l.getGlobalVariable,x=this.pages[0];l.getGlobalVariable=function(a){return"page"==a?x.getName():"pagenumber"==a?1:w.apply(this, arguments)};document.body.appendChild(l.container);l.model.setRoot(x.root)}this.exportToCanvas(mxUtils.bind(this,function(a){u(a.toDataURL("image/png"))}),null,null,null,mxUtils.bind(this,function(){u(null)}),null,null,null,null,null,null,l)}else(new mxXmlRequest(EXPORT_URL,"format=png&embedXml="+("xmlpng"==g.format?"1":"0")+"&base64=1&xml="+encodeURIComponent(encodeURIComponent(q)))).send(mxUtils.bind(this,function(a){200<=a.getStatus()&&299>=a.getStatus()?r("data:image/png;base64,"+a.getText()): u(null)}),mxUtils.bind(this,function(){u(null)}))}}else{null!=g.xml&&0<g.xml.length&&this.setFileData(g.xml);p=this.createLoadMessage("export");if("html2"==g.format||"html"==g.format&&("0"!=urlParams.pages||null!=this.pages&&1<this.pages.length))h=this.getXmlFileData(),p.xml=mxUtils.getXml(h),p.data=this.getFileData(null,null,!0,null,null,null,h),p.format=g.format;else if("html"==g.format)q=this.editor.getGraphXml(),p.data=this.getHtml(q,this.editor.graph),p.xml=mxUtils.getXml(q),p.format=g.format; else{mxSvgCanvas2D.prototype.foAltText=null;h=this.editor.graph.background;h==mxConstants.NONE&&(h=null);p.xml=this.getFileData(!0);p.format="svg";if(g.embedImages||null==g.embedImages){if(null==g.spin&&null==g.spinKey||this.spinner.spin(document.body,null!=g.spinKey?mxResources.get(g.spinKey):g.spin))this.editor.graph.setEnabled(!1),"xmlsvg"==g.format?this.getEmbeddedSvg(p.xml,this.editor.graph,null,!0,mxUtils.bind(this,function(a){this.editor.graph.setEnabled(!0);this.spinner.stop();p.data=this.createSvgDataUri(a); -n.postMessage(JSON.stringify(p),"*")})):this.convertImages(this.editor.graph.getSvg(h),mxUtils.bind(this,function(a){this.editor.graph.setEnabled(!0);this.spinner.stop();p.data=this.createSvgDataUri(mxUtils.getXml(a));n.postMessage(JSON.stringify(p),"*")}));return}h="xmlsvg"==g.format?this.getEmbeddedSvg(this.getFileData(!0),this.editor.graph,null,!0):mxUtils.getXml(this.editor.graph.getSvg(h));p.data=this.createSvgDataUri(h)}n.postMessage(JSON.stringify(p),"*")}return}if("load"==g.action)d=1==g.autosave, -this.hideDialog(),null!=g.modified&&null==urlParams.modified&&(urlParams.modified=g.modified),null!=g.saveAndExit&&null==urlParams.saveAndExit&&(urlParams.saveAndExit=g.saveAndExit),null!=g.title&&null!=this.buttonContainer&&(k=document.createElement("span"),mxUtils.write(k,g.title),"atlas"==uiTheme?(this.buttonContainer.style.paddingRight="12px",this.buttonContainer.style.paddingTop="12px"):"min"!=uiTheme&&(this.buttonContainer.style.paddingRight="38px",this.buttonContainer.style.paddingTop="6px"), -null!=this.embedFilenameSpan&&this.embedFilenameSpan.parentNode.removeChild(this.embedFilenameSpan),this.buttonContainer.appendChild(k),this.embedFilenameSpan=k),g=null!=g.xmlpng?this.extractGraphModelFromPng(g.xmlpng):g.xml;else{n.postMessage(JSON.stringify({error:"unknownMessage",data:JSON.stringify(g)}),"*");return}}}var C=mxUtils.bind(this,function(f,g){c=!0;try{a(f,g)}catch(X){this.handleError(X)}c=!1;null!=urlParams.modified&&this.editor.setStatus("");var h=mxUtils.bind(this,function(){return"0"!= +k.postMessage(JSON.stringify(p),"*")})):this.convertImages(this.editor.graph.getSvg(h),mxUtils.bind(this,function(a){this.editor.graph.setEnabled(!0);this.spinner.stop();p.data=this.createSvgDataUri(mxUtils.getXml(a));k.postMessage(JSON.stringify(p),"*")}));return}h="xmlsvg"==g.format?this.getEmbeddedSvg(this.getFileData(!0),this.editor.graph,null,!0):mxUtils.getXml(this.editor.graph.getSvg(h));p.data=this.createSvgDataUri(h)}k.postMessage(JSON.stringify(p),"*")}return}if("load"==g.action)d=1==g.autosave, +this.hideDialog(),null!=g.modified&&null==urlParams.modified&&(urlParams.modified=g.modified),null!=g.saveAndExit&&null==urlParams.saveAndExit&&(urlParams.saveAndExit=g.saveAndExit),null!=g.title&&null!=this.buttonContainer&&(m=document.createElement("span"),mxUtils.write(m,g.title),"atlas"==uiTheme?(this.buttonContainer.style.paddingRight="12px",this.buttonContainer.style.paddingTop="12px"):"min"!=uiTheme&&(this.buttonContainer.style.paddingRight="38px",this.buttonContainer.style.paddingTop="6px"), +null!=this.embedFilenameSpan&&this.embedFilenameSpan.parentNode.removeChild(this.embedFilenameSpan),this.buttonContainer.appendChild(m),this.embedFilenameSpan=m),g=null!=g.xmlpng?this.extractGraphModelFromPng(g.xmlpng):g.xml;else{k.postMessage(JSON.stringify({error:"unknownMessage",data:JSON.stringify(g)}),"*");return}}}var C=mxUtils.bind(this,function(f,g){c=!0;try{a(f,g)}catch(X){this.handleError(X)}c=!1;null!=urlParams.modified&&this.editor.setStatus("");var h=mxUtils.bind(this,function(){return"0"!= urlParams.pages||null!=this.pages&&1<this.pages.length?this.getFileData(!0):mxUtils.getXml(this.editor.getGraphXml())});e=h();d&&null==b&&(b=mxUtils.bind(this,function(a,b){var d=h();if(d!=e&&!c){var f=this.createLoadMessage("autosave");f.xml=d;d=JSON.stringify(f);(window.opener||window.parent).postMessage(d,"*")}e=d}),this.editor.graph.model.addListener(mxEvent.CHANGE,b),this.editor.graph.addListener("gridSizeChanged",b),this.editor.graph.addListener("shadowVisibleChanged",b),this.addListener("pageFormatChanged", -b),this.addListener("pageScaleChanged",b),this.addListener("backgroundColorChanged",b),this.addListener("backgroundImageChanged",b),this.addListener("foldingEnabledChanged",b),this.addListener("mathEnabledChanged",b),this.addListener("gridEnabledChanged",b),this.addListener("guidesEnabledChanged",b),this.addListener("pageViewChanged",b));"1"!=urlParams.returnbounds&&"json"!=urlParams.proto||n.postMessage(JSON.stringify(this.createLoadMessage("load")),"*")});null!=g&&"function"===typeof g.substring&& +b),this.addListener("pageScaleChanged",b),this.addListener("backgroundColorChanged",b),this.addListener("backgroundImageChanged",b),this.addListener("foldingEnabledChanged",b),this.addListener("mathEnabledChanged",b),this.addListener("gridEnabledChanged",b),this.addListener("guidesEnabledChanged",b),this.addListener("pageViewChanged",b));"1"!=urlParams.returnbounds&&"json"!=urlParams.proto||k.postMessage(JSON.stringify(this.createLoadMessage("load")),"*")});null!=g&&"function"===typeof g.substring&& "data:application/vnd.visio;base64,"==g.substring(0,34)?(h="0M8R4KGxGuE"==g.substring(34,45)?"raw.vsd":"raw.vsdx",this.importVisio(this.base64ToBlob(g.substring(g.indexOf(",")+1)),function(a){C(a,f)},mxUtils.bind(this,function(a){this.handleError(a)}),h)):null!=g&&"function"===typeof g.substring&&!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(g,"")?this.parseFile(new Blob([g],{type:"application/octet-stream"}),mxUtils.bind(this,function(a){4==a.readyState&&200<=a.status&& -299>=a.status&&"<mxGraphModel"==a.responseText.substring(0,13)&&C(a.responseText,f)}),""):null!=g&&"function"===typeof g.substring&&this.isLucidChartData(g)?this.convertLucidChart(g,mxUtils.bind(this,function(a){C(a)}),mxUtils.bind(this,function(a){this.handleError(a)})):(g=h(g),C(g,f))}}));var n=window.opener||window.parent,h="json"==urlParams.proto?JSON.stringify({event:"init"}):urlParams.ready||"ready";n.postMessage(h,"*")};EditorUi.prototype.addEmbedButtons=function(){if(null!=this.menubar){var a= +299>=a.status&&"<mxGraphModel"==a.responseText.substring(0,13)&&C(a.responseText,f)}),""):null!=g&&"function"===typeof g.substring&&this.isLucidChartData(g)?this.convertLucidChart(g,mxUtils.bind(this,function(a){C(a)}),mxUtils.bind(this,function(a){this.handleError(a)})):(g=h(g),C(g,f))}}));var k=window.opener||window.parent,h="json"==urlParams.proto?JSON.stringify({event:"init"}):urlParams.ready||"ready";k.postMessage(h,"*")};EditorUi.prototype.addEmbedButtons=function(){if(null!=this.menubar){var a= document.createElement("div");a.style.display="inline-block";a.style.position="absolute";a.style.paddingTop="atlas"==uiTheme?"2px":"3px";a.style.paddingLeft="8px";a.style.paddingBottom="2px";var b=document.createElement("button");mxUtils.write(b,mxResources.get("save"));b.setAttribute("title",mxResources.get("save")+" ("+Editor.ctrlKey+"+S)");b.className="geBigButton";b.style.fontSize="12px";b.style.padding="4px 6px 4px 6px";b.style.borderRadius="3px";mxEvent.addListener(b,"click",mxUtils.bind(this, function(){this.actions.get("save").funct()}));a.appendChild(b);"1"==urlParams.saveAndExit&&(b=document.createElement("a"),mxUtils.write(b,mxResources.get("saveAndExit")),b.setAttribute("title",mxResources.get("saveAndExit")),b.style.fontSize="12px",b.style.marginLeft="6px",b.style.padding="4px",b.style.cursor="pointer",mxEvent.addListener(b,"click",mxUtils.bind(this,function(){this.actions.get("saveAndExit").funct()})),a.appendChild(b));b=document.createElement("a");mxUtils.write(b,mxResources.get("exit")); b.setAttribute("title",mxResources.get("exit"));b.style.fontSize="12px";b.style.marginLeft="6px";b.style.marginRight="20px";b.style.padding="4px";b.style.cursor="pointer";mxEvent.addListener(b,"click",mxUtils.bind(this,function(){this.actions.get("exit").funct()}));a.appendChild(b);this.toolbar.container.appendChild(a);this.toolbar.staticElements.push(a);a.style.right="atlas"!=uiTheme?"52px":"42px"}};EditorUi.prototype.showImportCsvDialog=function(){null==this.importCsvDialog&&(this.importCsvDialog= -new TextareaDialog(this,mxResources.get("csv")+":",Editor.defaultCsvValue,mxUtils.bind(this,function(a){this.importCsv(a)}),null,null,620,430,null,!0,!0,mxResources.get("import")));this.showDialog(this.importCsvDialog.container,640,520,!0,!0);this.importCsvDialog.init()};EditorUi.prototype.importCsv=function(a,b){try{var c=a.split("\n"),d=[];if(0<c.length){var e={},f=null,h=null,m=null,p=null,q="",u="auto",t="auto",z=null,H=null,G=40,A=40,J=100,K=0,x=this.editor.graph;x.getGraphBounds();for(var C= +new TextareaDialog(this,mxResources.get("csv")+":",Editor.defaultCsvValue,mxUtils.bind(this,function(a){this.importCsv(a)}),null,null,620,430,null,!0,!0,mxResources.get("import")));this.showDialog(this.importCsvDialog.container,640,520,!0,!0);this.importCsvDialog.init()};EditorUi.prototype.importCsv=function(a,b){try{var c=a.split("\n"),d=[];if(0<c.length){var e={},f=null,k=null,l=null,p=null,q="",u="auto",t="auto",z=null,H=null,G=40,B=40,J=100,K=0,x=this.editor.graph;x.getGraphBounds();for(var C= function(){null!=b?b(aa):(x.setSelectionCells(aa),x.scrollCellToVisible(x.getSelectionCell()))},I=x.getFreeInsertPoint(),R=I.x,P=I.y,I=P,X=null,U="auto",p=null,F=[],ea=null,ka=null,Y=0;Y<c.length&&"#"==c[Y].charAt(0);){a=c[Y];for(Y++;Y<c.length&&"\\"==a.charAt(a.length-1)&&"#"==c[Y].charAt(0);)a=a.substring(0,a.length-1)+mxUtils.trim(c[Y].substring(1)),Y++;if("#"!=a.charAt(1)){var ba=a.indexOf(":");if(0<ba){var L=mxUtils.trim(a.substring(1,ba)),E=mxUtils.trim(a.substring(ba+1));"label"==L?X=x.sanitizeHtml(E): -"style"==L?f=E:"parentstyle"==L?h=E:"identity"==L&&0<E.length&&"-"!=E?m=E:"parent"==L&&0<E.length&&"-"!=E?p=E:"namespace"==L&&0<E.length&&"-"!=E?q=E:"width"==L?u=E:"height"==L?t=E:"left"==L&&0<E.length?z=E:"top"==L&&0<E.length?H=E:"ignore"==L?ka=E.split(","):"connect"==L?F.push(JSON.parse(E)):"link"==L?ea=E:"padding"==L?K=parseFloat(E):"edgespacing"==L?G=parseFloat(E):"nodespacing"==L?A=parseFloat(E):"levelspacing"==L?J=parseFloat(E):"layout"==L&&(U=E)}}}var S=this.editor.csvToArray(c[Y]),L=ba=null; -if(null!=m||null!=p)for(var M=0;M<S.length;M++)m==S[M]&&(ba=M),p==S[M]&&(L=M);null==X&&(X="%"+S[0]+"%");if(null!=F)for(var N=0;N<F.length;N++)null==e[F[N].to]&&(e[F[N].to]={});x.model.beginUpdate();try{for(M=Y+1;M<c.length;M++){var T=this.editor.csvToArray(c[M]);if(T.length==S.length){var D=null,Q=null!=ba?q+T[ba]:null;null!=Q&&(D=x.model.getCell(Q));null==D&&(D=new mxCell(X,new mxGeometry(R,I,0,0),f||"whiteSpace=wrap;html=1;"),D.vertex=!0,D.id=Q);for(var V=0;V<T.length;V++)x.setAttributeForCell(D, +"style"==L?f=E:"parentstyle"==L?k=E:"identity"==L&&0<E.length&&"-"!=E?l=E:"parent"==L&&0<E.length&&"-"!=E?p=E:"namespace"==L&&0<E.length&&"-"!=E?q=E:"width"==L?u=E:"height"==L?t=E:"left"==L&&0<E.length?z=E:"top"==L&&0<E.length?H=E:"ignore"==L?ka=E.split(","):"connect"==L?F.push(JSON.parse(E)):"link"==L?ea=E:"padding"==L?K=parseFloat(E):"edgespacing"==L?G=parseFloat(E):"nodespacing"==L?B=parseFloat(E):"levelspacing"==L?J=parseFloat(E):"layout"==L&&(U=E)}}}var S=this.editor.csvToArray(c[Y]),L=ba=null; +if(null!=l||null!=p)for(var M=0;M<S.length;M++)l==S[M]&&(ba=M),p==S[M]&&(L=M);null==X&&(X="%"+S[0]+"%");if(null!=F)for(var N=0;N<F.length;N++)null==e[F[N].to]&&(e[F[N].to]={});x.model.beginUpdate();try{for(M=Y+1;M<c.length;M++){var T=this.editor.csvToArray(c[M]);if(T.length==S.length){var D=null,Q=null!=ba?q+T[ba]:null;null!=Q&&(D=x.model.getCell(Q));null==D&&(D=new mxCell(X,new mxGeometry(R,I,0,0),f||"whiteSpace=wrap;html=1;"),D.vertex=!0,D.id=Q);for(var V=0;V<T.length;V++)x.setAttributeForCell(D, S[V],T[V]);x.setAttributeForCell(D,"placeholders","1");D.style=x.replacePlaceholders(D,D.style);for(N=0;N<F.length;N++)e[F[N].to][D.getAttribute(F[N].to)]=D;null!=ea&&"link"!=ea&&(x.setLinkForCell(D,D.getAttribute(ea)),x.setAttributeForCell(D,ea,null));x.fireEvent(new mxEventObject("cellsInserted","cells",[D]));var ga=this.editor.graph.getPreferredSizeForCell(D);D.vertex&&(null!=z&&null!=D.getAttribute(z)&&(D.geometry.x=R+parseFloat(D.getAttribute(z))),null!=H&&null!=D.getAttribute(H)&&(D.geometry.y= -P+parseFloat(D.getAttribute(H))),"@"==u.charAt(0)&&null!=D.getAttribute(u.substring(1))?D.geometry.width=parseFloat(D.getAttribute(u.substring(1))):D.geometry.width="auto"==u?ga.width+K:parseFloat(u),"@"==t.charAt(0)&&null!=D.getAttribute(t.substring(1))?D.geometry.height=parseFloat(D.getAttribute(t.substring(1))):D.geometry.height="auto"==t?ga.height+K:parseFloat(t),I+=D.geometry.height+A);p=null!=L?x.model.getCell(q+T[L]):null;null!=p?(p.style=x.replacePlaceholders(p,h),x.addCell(D,p)):d.push(x.addCell(D))}}for(var W= +P+parseFloat(D.getAttribute(H))),"@"==u.charAt(0)&&null!=D.getAttribute(u.substring(1))?D.geometry.width=parseFloat(D.getAttribute(u.substring(1))):D.geometry.width="auto"==u?ga.width+K:parseFloat(u),"@"==t.charAt(0)&&null!=D.getAttribute(t.substring(1))?D.geometry.height=parseFloat(D.getAttribute(t.substring(1))):D.geometry.height="auto"==t?ga.height+K:parseFloat(t),I+=D.geometry.height+B);p=null!=L?x.model.getCell(q+T[L]):null;null!=p?(p.style=x.replacePlaceholders(p,k),x.addCell(D,p)):d.push(x.addCell(D))}}for(var W= d.slice(),aa=d.slice(),N=0;N<F.length;N++)for(var Z=F[N],M=0;M<d.length;M++){var D=d[M],pa=D.getAttribute(Z.from);if(null!=pa){x.setAttributeForCell(D,Z.from,null);for(var ra=pa.split(","),V=0;V<ra.length;V++){var fa=e[Z.to][ra[V]];null!=fa&&(X=Z.label,null!=Z.fromlabel&&(X=(D.getAttribute(Z.fromlabel)||"")+(X||"")),null!=Z.tolabel&&(X=(X||"")+(fa.getAttribute(Z.tolabel)||"")),aa.push(x.insertEdge(null,null,X||"",Z.invert?fa:D,Z.invert?D:fa,Z.style||x.createCurrentEdgeStyle())),mxUtils.remove(Z.invert? D:fa,W))}}}if(null!=ka)for(M=0;M<d.length;M++)for(D=d[M],V=0;V<ka.length;V++)x.setAttributeForCell(D,mxUtils.trim(ka[V]),null);var ma=new mxParallelEdgeLayout(x);ma.spacing=G;var ta=function(){ma.execute(x.getDefaultParent());for(var a=0;a<d.length;a++){var b=x.getCellGeometry(d[a]);b.x=Math.round(x.snap(b.x));b.y=Math.round(x.snap(b.y));"auto"==u&&(b.width=Math.round(x.snap(b.width)));"auto"==t&&(b.height=Math.round(x.snap(b.height)))}};if("circle"==U){var la=new mxCircleLayout(x);la.resetEdges= -!1;var sa=la.isVertexIgnored;la.isVertexIgnored=function(a){return sa.apply(this,arguments)||0>mxUtils.indexOf(d,a)};this.executeLayout(function(){la.execute(x.getDefaultParent());ta()},!0,C);C=null}else if("horizontaltree"==U||"verticaltree"==U||"auto"==U&&aa.length==2*d.length-1&&1==W.length){x.view.validate();var ha=new mxCompactTreeLayout(x,"horizontaltree"==U);ha.levelDistance=A;ha.edgeRouting=!1;ha.resetEdges=!1;this.executeLayout(function(){ha.execute(x.getDefaultParent(),0<W.length?W[0]:null)}, -!0,C);C=null}else if("horizontalflow"==U||"verticalflow"==U||"auto"==U&&1==W.length){x.view.validate();var ca=new mxHierarchicalLayout(x,"horizontalflow"==U?mxConstants.DIRECTION_WEST:mxConstants.DIRECTION_NORTH);ca.intraCellSpacing=A;ca.parallelEdgeSpacing=G;ca.interRankCellSpacing=J;ca.disableEdgeStyle=!1;this.executeLayout(function(){ca.execute(x.getDefaultParent(),aa);x.moveCells(aa,R,P)},!0,C);C=null}else if("organic"==U||"auto"==U&&aa.length>d.length){x.view.validate();var da=new mxFastOrganicLayout(x); -da.forceConstant=3*A;da.resetEdges=!1;var ia=da.isVertexIgnored;da.isVertexIgnored=function(a){return ia.apply(this,arguments)||0>mxUtils.indexOf(d,a)};ma=new mxParallelEdgeLayout(x);ma.spacing=G;this.executeLayout(function(){da.execute(x.getDefaultParent());ta()},!0,C);C=null}this.hideDialog()}finally{x.model.endUpdate()}null!=C&&C()}}catch(wa){this.handleError(wa)}};EditorUi.prototype.getSearch=function(a){var b="";if("1"!=urlParams.offline&&"1"!=urlParams.demo&&null!=a&&0<window.location.search.length){var c= +!1;var sa=la.isVertexIgnored;la.isVertexIgnored=function(a){return sa.apply(this,arguments)||0>mxUtils.indexOf(d,a)};this.executeLayout(function(){la.execute(x.getDefaultParent());ta()},!0,C);C=null}else if("horizontaltree"==U||"verticaltree"==U||"auto"==U&&aa.length==2*d.length-1&&1==W.length){x.view.validate();var ha=new mxCompactTreeLayout(x,"horizontaltree"==U);ha.levelDistance=B;ha.edgeRouting=!1;ha.resetEdges=!1;this.executeLayout(function(){ha.execute(x.getDefaultParent(),0<W.length?W[0]:null)}, +!0,C);C=null}else if("horizontalflow"==U||"verticalflow"==U||"auto"==U&&1==W.length){x.view.validate();var ca=new mxHierarchicalLayout(x,"horizontalflow"==U?mxConstants.DIRECTION_WEST:mxConstants.DIRECTION_NORTH);ca.intraCellSpacing=B;ca.parallelEdgeSpacing=G;ca.interRankCellSpacing=J;ca.disableEdgeStyle=!1;this.executeLayout(function(){ca.execute(x.getDefaultParent(),aa);x.moveCells(aa,R,P)},!0,C);C=null}else if("organic"==U||"auto"==U&&aa.length>d.length){x.view.validate();var da=new mxFastOrganicLayout(x); +da.forceConstant=3*B;da.resetEdges=!1;var ia=da.isVertexIgnored;da.isVertexIgnored=function(a){return ia.apply(this,arguments)||0>mxUtils.indexOf(d,a)};ma=new mxParallelEdgeLayout(x);ma.spacing=G;this.executeLayout(function(){da.execute(x.getDefaultParent());ta()},!0,C);C=null}this.hideDialog()}finally{x.model.endUpdate()}null!=C&&C()}}catch(wa){this.handleError(wa)}};EditorUi.prototype.getSearch=function(a){var b="";if("1"!=urlParams.offline&&"1"!=urlParams.demo&&null!=a&&0<window.location.search.length){var c= "?",d;for(d in urlParams)0>mxUtils.indexOf(a,d)&&null!=urlParams[d]&&(b+=c+d+"="+urlParams[d],c="&")}else b=window.location.search;return b};EditorUi.prototype.getUrl=function(a){a=null!=a?a:window.location.pathname;var b=0<a.indexOf("?")?1:0;if("1"==urlParams.offline)a+=window.location.search;else{var c="tmp libs clibs state fileId code share notitle data url embed client create title splash".split(" "),d;for(d in urlParams)0>mxUtils.indexOf(c,d)&&(a=0==b?a+"?":a+"&",null!=urlParams[d]&&(a+=d+"="+ urlParams[d],b++))}return a};EditorUi.prototype.showLinkDialog=function(a,b,d){a=new LinkDialog(this,a,b,d,!0);this.showDialog(a.container,480,130,!0,!0);a.init()};var p=EditorUi.prototype.createOutline;EditorUi.prototype.createOutline=function(a){var b=p.apply(this,arguments),c=this.editor.graph,d=b.getSourceGraphBounds;b.getSourceGraphBounds=function(){if(mxUtils.hasScrollbars(c.container)&&c.pageVisible&&null!=this.source.minimumGraphSize){var a=this.source.getPagePadding(),b=this.source.view.scale; return new mxRectangle(0,0,Math.ceil(this.source.minimumGraphSize.width-2*a.x/b),Math.ceil(this.source.minimumGraphSize.height-2*a.y/b))}return d.apply(this,arguments)};var e=b.getSourceContainerSize;b.getSourceContainerSize=function(){if(mxUtils.hasScrollbars(c.container)&&null!=this.source.minimumGraphSize){var a=this.source.getPagePadding(),b=this.source.view.scale;return new mxRectangle(0,0,Math.ceil(this.source.minimumGraphSize.width*b-2*a.x),Math.ceil(this.source.minimumGraphSize.height*b-2* @@ -3076,122 +3081,122 @@ c++;null==this.oneDrive&&"function"!==typeof window.OneDriveClient||c++;b||null= var d=("1"!=urlParams.embed||!this.editor.graph.isEnabled())&&(null==a||a.isRestricted());this.actions.get("makeCopy").setEnabled(!d);this.actions.get("print").setEnabled(!d);this.menus.get("exportAs").setEnabled(!d);this.menus.get("embed").setEnabled(!d);d="1"!=urlParams.embed||this.editor.graph.isEnabled();this.menus.get("extras").setEnabled(d);Editor.enableCustomLibraries&&(this.menus.get("openLibraryFrom").setEnabled(d),this.menus.get("newLibrary").setEnabled(d));a="1"==urlParams.embed&&this.editor.graph.isEnabled()|| null!=a&&a.isEditable();this.actions.get("image").setEnabled(b);this.actions.get("zoomIn").setEnabled(b);this.actions.get("zoomOut").setEnabled(b);this.actions.get("resetView").setEnabled(b);this.menus.get("edit").setEnabled(b);this.menus.get("view").setEnabled(b);this.menus.get("importFrom").setEnabled(a);this.menus.get("arrange").setEnabled(a);null!=this.toolbar&&(null!=this.toolbar.edgeShapeMenu&&this.toolbar.edgeShapeMenu.setEnabled(a),null!=this.toolbar.edgeStyleMenu&&this.toolbar.edgeStyleMenu.setEnabled(a)); if(this.isAppCache()){var e=applicationCache;if(null!=e&&null==this.offlineStatus){this.offlineStatus=document.createElement("div");this.offlineStatus.className="geItem";this.offlineStatus.style.position="absolute";this.offlineStatus.style.fontSize="8pt";this.offlineStatus.style.top="2px";this.offlineStatus.style.right="12px";this.offlineStatus.style.color="#666";this.offlineStatus.style.margin="4px";this.offlineStatus.style.padding="2px";this.offlineStatus.style.verticalAlign="middle";this.offlineStatus.innerHTML= -"";this.menubarContainer.appendChild(this.offlineStatus);mxEvent.addListener(this.offlineStatus,"click",mxUtils.bind(this,function(){var a=this.offlineStatus.getElementsByTagName("img");null!=a&&0<a.length&&this.alert(a[0].getAttribute("title"))}));var e=window.applicationCache,h=null,b=mxUtils.bind(this,function(){var a=e.status,b;a==e.CHECKING&&(a=e.DOWNLOADING);switch(a){case e.UNCACHED:b="";break;case e.IDLE:b="min"==uiTheme?"":'<img title="draw.io is up to date." border="0" src="'+IMAGE_PATH+ -'/checkmark.gif"/>';break;case e.DOWNLOADING:b='<img title="Downloading new version..." border="0" src="'+IMAGE_PATH+'/spin.gif"/>';break;case e.UPDATEREADY:b='<img title="'+mxUtils.htmlEntities(mxResources.get("restartForChangeRequired"))+'" border="0" src="'+IMAGE_PATH+'/download.png"/>';break;case e.OBSOLETE:b='<img title="Obsolete" border="0" src="'+IMAGE_PATH+'/clear.gif"/>';break;default:b='<img title="Unknown" border="0" src="'+IMAGE_PATH+'/clear.gif"/>'}a!=h&&(this.offlineStatus.innerHTML= -b,h=a)});mxEvent.addListener(e,"checking",b);mxEvent.addListener(e,"noupdate",b);mxEvent.addListener(e,"downloading",b);mxEvent.addListener(e,"progress",b);mxEvent.addListener(e,"cached",b);mxEvent.addListener(e,"updateready",b);mxEvent.addListener(e,"obsolete",b);mxEvent.addListener(e,"error",b);b()}}else this.updateUserElement()};EditorUi.prototype.updateButtonContainer=function(){};EditorUi.prototype.updateUserElement=function(){};EditorUi.prototype.isDiagramActive=function(){var a=this.getCurrentFile(); +"";this.menubarContainer.appendChild(this.offlineStatus);mxEvent.addListener(this.offlineStatus,"click",mxUtils.bind(this,function(){var a=this.offlineStatus.getElementsByTagName("img");null!=a&&0<a.length&&this.alert(a[0].getAttribute("title"))}));var e=window.applicationCache,k=null,b=mxUtils.bind(this,function(){var a=e.status,b;a==e.CHECKING&&(a=e.DOWNLOADING);switch(a){case e.UNCACHED:b="";break;case e.IDLE:b="min"==uiTheme?"":'<img title="draw.io is up to date." border="0" src="'+IMAGE_PATH+ +'/checkmark.gif"/>';break;case e.DOWNLOADING:b='<img title="Downloading new version..." border="0" src="'+IMAGE_PATH+'/spin.gif"/>';break;case e.UPDATEREADY:b='<img title="'+mxUtils.htmlEntities(mxResources.get("restartForChangeRequired"))+'" border="0" src="'+IMAGE_PATH+'/download.png"/>';break;case e.OBSOLETE:b='<img title="Obsolete" border="0" src="'+IMAGE_PATH+'/clear.gif"/>';break;default:b='<img title="Unknown" border="0" src="'+IMAGE_PATH+'/clear.gif"/>'}a!=k&&(this.offlineStatus.innerHTML= +b,k=a)});mxEvent.addListener(e,"checking",b);mxEvent.addListener(e,"noupdate",b);mxEvent.addListener(e,"downloading",b);mxEvent.addListener(e,"progress",b);mxEvent.addListener(e,"cached",b);mxEvent.addListener(e,"updateready",b);mxEvent.addListener(e,"obsolete",b);mxEvent.addListener(e,"error",b);b()}}else this.updateUserElement()};EditorUi.prototype.updateButtonContainer=function(){};EditorUi.prototype.updateUserElement=function(){};EditorUi.prototype.isDiagramActive=function(){var a=this.getCurrentFile(); return null!=a&&a.isEditable()||"1"==urlParams.embed&&this.editor.graph.isEnabled()};var q=EditorUi.prototype.updateActionStates;EditorUi.prototype.updateActionStates=function(){q.apply(this,arguments);var a=this.editor.graph,b=this.isDiagramActive(),d=this.getCurrentFile();this.actions.get("pageSetup").setEnabled(b);this.actions.get("autosave").setEnabled(null!=d&&d.isEditable()&&d.isAutosaveOptional());this.actions.get("guides").setEnabled(b);this.actions.get("editData").setEnabled(b);this.actions.get("shadowVisible").setEnabled(b); this.actions.get("connectionArrows").setEnabled(b);this.actions.get("connectionPoints").setEnabled(b);this.actions.get("copyStyle").setEnabled(b&&!a.isSelectionEmpty());this.actions.get("pasteStyle").setEnabled(b&&!a.isSelectionEmpty());this.actions.get("editGeometry").setEnabled(a.getModel().isVertex(a.getSelectionCell()));this.actions.get("createShape").setEnabled(b);this.actions.get("createRevision").setEnabled(b);this.actions.get("moveToFolder").setEnabled(null!=d);this.actions.get("makeCopy").setEnabled(null!= d&&!d.isRestricted());this.actions.get("editDiagram").setEnabled(b&&(null==d||!d.isRestricted()));this.actions.get("publishLink").setEnabled(null!=d&&!d.isRestricted());this.actions.get("tags").setEnabled("hidden"!=this.diagramContainer.style.visibility);this.actions.get("find").setEnabled("hidden"!=this.diagramContainer.style.visibility);this.actions.get("layers").setEnabled("hidden"!=this.diagramContainer.style.visibility);this.actions.get("outline").setEnabled("hidden"!=this.diagramContainer.style.visibility); this.actions.get("rename").setEnabled(null!=d&&d.isRenamable()||"1"==urlParams.embed);this.actions.get("close").setEnabled(null!=d);this.menus.get("publish").setEnabled(null!=d&&!d.isRestricted());a=a.view.getState(a.getSelectionCell());this.actions.get("editShape").setEnabled(b&&null!=a&&null!=a.shape&&null!=a.shape.stencil)};var u=EditorUi.prototype.destroy;EditorUi.prototype.destroy=function(){null!=this.exportDialog&&(this.exportDialog.parentNode.removeChild(this.exportDialog),this.exportDialog= -null);u.apply(this,arguments)};null!=window.ExportDialog&&(ExportDialog.showXmlOption=!1,ExportDialog.showGifOption=!1,ExportDialog.exportFile=function(a,b,d,e,h,l){var c=a.editor.graph;if("xml"==d)a.hideDialog(),a.saveData(b,"xml",mxUtils.getXml(a.editor.getGraphXml()),"text/xml");else if("svg"==d)a.hideDialog(),a.saveData(b,"svg",mxUtils.getXml(c.getSvg(e,h,l)),"image/svg+xml");else{var f=a.getFileData(!0,null,null,null,null,!0),g=c.getGraphBounds(),k=Math.floor(g.width*h/c.view.scale),m=Math.floor(g.height* -h/c.view.scale);f.length<=MAX_REQUEST_SIZE&&k*m<MAX_AREA?(a.hideDialog(),a.saveRequest(b,d,function(a,b){return new mxXmlRequest(EXPORT_URL,"format="+d+"&base64="+(b||"0")+(null!=a?"&filename="+encodeURIComponent(a):"")+"&bg="+(null!=e?e:"none")+"&w="+k+"&h="+m+"&border="+l+"&xml="+encodeURIComponent(f))})):mxUtils.alert(mxResources.get("drawingTooLarge"))}})})();function DiagramPage(a){this.node=a;(null==this.node.hasAttribute&&null==this.node.getAttribute("id")||null!=this.node.hasAttribute&&!this.node.hasAttribute("id"))&&this.node.setAttribute("id",Editor.guid())}DiagramPage.prototype.node=null;DiagramPage.prototype.root=null;DiagramPage.prototype.viewState=null;DiagramPage.prototype.getId=function(){return this.node.getAttribute("id")};DiagramPage.prototype.getName=function(){return this.node.getAttribute("name")}; -DiagramPage.prototype.setName=function(a){null==a?this.node.removeAttribute("name"):this.node.setAttribute("name",a)};function RenamePage(a,d,e){this.ui=a;this.page=d;this.previous=this.name=e}RenamePage.prototype.execute=function(){var a=this.page.getName();this.page.setName(this.previous);this.name=this.previous;this.previous=a;this.ui.editor.graph.updatePlaceholders();this.ui.editor.fireEvent(new mxEventObject("pageRenamed"))}; -function MovePage(a,d,e){this.ui=a;this.oldIndex=d;this.newIndex=e}MovePage.prototype.execute=function(){this.ui.pages.splice(this.newIndex,0,this.ui.pages.splice(this.oldIndex,1)[0]);var a=this.oldIndex;this.oldIndex=this.newIndex;this.newIndex=a;this.ui.editor.graph.updatePlaceholders();this.ui.editor.fireEvent(new mxEventObject("pageMoved"))}; -function SelectPage(a,d){this.ui=a;this.previousPage=this.page=d;this.neverShown=!0;null!=d&&(this.neverShown=null==d.viewState,this.ui.updatePageRoot(d))} -SelectPage.prototype.execute=function(){var a=mxUtils.indexOf(this.ui.pages,this.previousPage);if(null!=this.page&&0<=a){var a=this.ui.currentPage,d=this.ui.editor,e=d.graph,b=d.graph.compress(e.zapGremlins(mxUtils.getXml(d.getGraphXml(!0))));mxUtils.setTextContent(a.node,b);a.viewState=e.getViewState();a.root=e.model.root;null!=a.model&&a.model.rootChanged(a.root);e.view.clear(a.root,!0);e.clearSelection();this.ui.currentPage=this.previousPage;this.previousPage=a;a=this.ui.currentPage;e.model.rootChanged(a.root); -e.setViewState(a.viewState);d.fireEvent(new mxEventObject("setViewState","change",this));e.gridEnabled=e.gridEnabled&&(!this.ui.editor.isChromelessView()||"1"==urlParams.grid);d.updateGraphComponents();e.view.validate();e.sizeDidChange();this.neverShown&&(this.neverShown=!1,e.selectUnlockedLayer());d.graph.fireEvent(new mxEventObject(mxEvent.ROOT));d.fireEvent(new mxEventObject("pageSelected","change",this))}}; -function ChangePage(a,d,e,b){SelectPage.call(this,a,e);this.relatedPage=d;this.index=b;this.previousIndex=null}mxUtils.extend(ChangePage,SelectPage); +null);u.apply(this,arguments)};null!=window.ExportDialog&&(ExportDialog.showXmlOption=!1,ExportDialog.showGifOption=!1,ExportDialog.exportFile=function(a,b,d,e,k,h){var c=a.editor.graph;if("xml"==d)a.hideDialog(),a.saveData(b,"xml",mxUtils.getXml(a.editor.getGraphXml()),"text/xml");else if("svg"==d)a.hideDialog(),a.saveData(b,"svg",mxUtils.getXml(c.getSvg(e,k,h)),"image/svg+xml");else{var f=a.getFileData(!0,null,null,null,null,!0),g=c.getGraphBounds(),l=Math.floor(g.width*k/c.view.scale),p=Math.floor(g.height* +k/c.view.scale);f.length<=MAX_REQUEST_SIZE&&l*p<MAX_AREA?(a.hideDialog(),a.saveRequest(b,d,function(a,b){return new mxXmlRequest(EXPORT_URL,"format="+d+"&base64="+(b||"0")+(null!=a?"&filename="+encodeURIComponent(a):"")+"&bg="+(null!=e?e:"none")+"&w="+l+"&h="+p+"&border="+h+"&xml="+encodeURIComponent(f))})):mxUtils.alert(mxResources.get("drawingTooLarge"))}})})();function DiagramPage(a){this.node=a;(null==this.node.hasAttribute&&null==this.node.getAttribute("id")||null!=this.node.hasAttribute&&!this.node.hasAttribute("id"))&&this.node.setAttribute("id",Editor.guid())}DiagramPage.prototype.node=null;DiagramPage.prototype.root=null;DiagramPage.prototype.viewState=null;DiagramPage.prototype.getId=function(){return this.node.getAttribute("id")};DiagramPage.prototype.getName=function(){return this.node.getAttribute("name")}; +DiagramPage.prototype.setName=function(a){null==a?this.node.removeAttribute("name"):this.node.setAttribute("name",a)};function RenamePage(a,b,e){this.ui=a;this.page=b;this.previous=this.name=e}RenamePage.prototype.execute=function(){var a=this.page.getName();this.page.setName(this.previous);this.name=this.previous;this.previous=a;this.ui.editor.graph.updatePlaceholders();this.ui.editor.fireEvent(new mxEventObject("pageRenamed"))}; +function MovePage(a,b,e){this.ui=a;this.oldIndex=b;this.newIndex=e}MovePage.prototype.execute=function(){this.ui.pages.splice(this.newIndex,0,this.ui.pages.splice(this.oldIndex,1)[0]);var a=this.oldIndex;this.oldIndex=this.newIndex;this.newIndex=a;this.ui.editor.graph.updatePlaceholders();this.ui.editor.fireEvent(new mxEventObject("pageMoved"))}; +function SelectPage(a,b){this.ui=a;this.previousPage=this.page=b;this.neverShown=!0;null!=b&&(this.neverShown=null==b.viewState,this.ui.updatePageRoot(b))} +SelectPage.prototype.execute=function(){var a=mxUtils.indexOf(this.ui.pages,this.previousPage);if(null!=this.page&&0<=a){var a=this.ui.currentPage,b=this.ui.editor,e=b.graph,d=b.graph.compress(e.zapGremlins(mxUtils.getXml(b.getGraphXml(!0))));mxUtils.setTextContent(a.node,d);a.viewState=e.getViewState();a.root=e.model.root;null!=a.model&&a.model.rootChanged(a.root);e.view.clear(a.root,!0);e.clearSelection();this.ui.currentPage=this.previousPage;this.previousPage=a;a=this.ui.currentPage;e.model.rootChanged(a.root); +e.setViewState(a.viewState);b.fireEvent(new mxEventObject("setViewState","change",this));e.gridEnabled=e.gridEnabled&&(!this.ui.editor.isChromelessView()||"1"==urlParams.grid);b.updateGraphComponents();e.view.validate();e.sizeDidChange();this.neverShown&&(this.neverShown=!1,e.selectUnlockedLayer());b.graph.fireEvent(new mxEventObject(mxEvent.ROOT));b.fireEvent(new mxEventObject("pageSelected","change",this))}}; +function ChangePage(a,b,e,d){SelectPage.call(this,a,e);this.relatedPage=b;this.index=d;this.previousIndex=null}mxUtils.extend(ChangePage,SelectPage); ChangePage.prototype.execute=function(){this.ui.editor.fireEvent(new mxEventObject("beforePageChange","change",this));this.previousIndex=this.index;if(null==this.index){var a=mxUtils.indexOf(this.ui.pages,this.relatedPage);this.ui.pages.splice(a,1);this.index=a}else this.ui.pages.splice(this.index,0,this.relatedPage),this.index=null;SelectPage.prototype.execute.apply(this,arguments)}; -EditorUi.prototype.getSelectedPageIndex=function(){var a=null;if(null!=this.pages&&null!=this.currentPage)for(var d=0;d<this.pages.length;d++)if(this.pages[d]==this.currentPage){a=d;break}return a};EditorUi.prototype.getPageById=function(a){if(null!=this.pages)for(var d=0;d<this.pages.length;d++)if(this.pages[d].getId()==a)return this.pages[d];return null}; -EditorUi.prototype.initPages=function(){this.actions.addAction("previousPage",mxUtils.bind(this,function(){this.selectNextPage(!1)}));this.actions.addAction("nextPage",mxUtils.bind(this,function(){this.selectNextPage(!0)}));this.keyHandler.bindAction(33,!0,"previousPage",!0);this.keyHandler.bindAction(34,!0,"nextPage",!0);var a=this.editor.graph,d=a.view.validateBackground;a.view.validateBackground=mxUtils.bind(this,function(){if(null!=this.tabContainer){var b=this.tabContainer.style.height;this.tabContainer.style.height= -null==this.fileNode||null==this.pages||1==this.pages.length&&"0"==urlParams.pages?"0px":"30px";b!=this.tabContainer.style.height&&this.refresh(!1)}d.apply(a.view,arguments)});var e=null,b=mxUtils.bind(this,function(){this.updateTabContainer();var b=this.currentPage;null!=b&&b!=e&&(null==b.viewState||null==b.viewState.scrollLeft?(this.resetScrollbars(),a.isLightboxView()&&this.lightboxFit(),null!=this.chromelessResize&&(a.container.scrollLeft=0,a.container.scrollTop=0,this.chromelessResize())):(a.container.scrollLeft= +EditorUi.prototype.getSelectedPageIndex=function(){var a=null;if(null!=this.pages&&null!=this.currentPage)for(var b=0;b<this.pages.length;b++)if(this.pages[b]==this.currentPage){a=b;break}return a};EditorUi.prototype.getPageById=function(a){if(null!=this.pages)for(var b=0;b<this.pages.length;b++)if(this.pages[b].getId()==a)return this.pages[b];return null}; +EditorUi.prototype.initPages=function(){this.actions.addAction("previousPage",mxUtils.bind(this,function(){this.selectNextPage(!1)}));this.actions.addAction("nextPage",mxUtils.bind(this,function(){this.selectNextPage(!0)}));this.keyHandler.bindAction(33,!0,"previousPage",!0);this.keyHandler.bindAction(34,!0,"nextPage",!0);var a=this.editor.graph,b=a.view.validateBackground;a.view.validateBackground=mxUtils.bind(this,function(){if(null!=this.tabContainer){var d=this.tabContainer.style.height;this.tabContainer.style.height= +null==this.fileNode||null==this.pages||1==this.pages.length&&"0"==urlParams.pages?"0px":"30px";d!=this.tabContainer.style.height&&this.refresh(!1)}b.apply(a.view,arguments)});var e=null,d=mxUtils.bind(this,function(){this.updateTabContainer();var b=this.currentPage;null!=b&&b!=e&&(null==b.viewState||null==b.viewState.scrollLeft?(this.resetScrollbars(),a.isLightboxView()&&this.lightboxFit(),null!=this.chromelessResize&&(a.container.scrollLeft=0,a.container.scrollTop=0,this.chromelessResize())):(a.container.scrollLeft= a.view.translate.x*a.view.scale+b.viewState.scrollLeft,a.container.scrollTop=a.view.translate.y*a.view.scale+b.viewState.scrollTop),e=b);null!=this.actions.layersWindow&&this.actions.layersWindow.refreshLayers();"undefined"!==typeof MathJax&&"undefined"!==typeof MathJax.Hub?1!=MathJax.Hub.queue.pending||null==this.editor||this.editor.graph.mathEnabled||MathJax.Hub.Queue(mxUtils.bind(this,function(){null!=this.editor&&this.editor.graph.refresh()})):"undefined"===typeof Editor.MathJaxClear||null!=this.editor&& -this.editor.graph.mathEnabled||Editor.MathJaxClear()});this.editor.graph.model.addListener(mxEvent.CHANGE,mxUtils.bind(this,function(a,d){for(var e=d.getProperty("edit").changes,h=0;h<e.length;h++)if(e[h]instanceof SelectPage||e[h]instanceof RenamePage||e[h]instanceof MovePage||e[h]instanceof mxRootChange){b();break}}));null!=this.toolbar&&this.editor.addListener("pageSelected",this.toolbar.updateZoom)}; -Graph.prototype.createViewState=function(a){var d=a.getAttribute("page"),e=parseFloat(a.getAttribute("pageScale")),b=parseFloat(a.getAttribute("pageWidth")),h=parseFloat(a.getAttribute("pageHeight")),m=a.getAttribute("background"),p=a.getAttribute("backgroundImage"),p=null!=p&&0<p.length?JSON.parse(p):null;return{gridEnabled:"0"!=a.getAttribute("grid"),gridSize:parseFloat(a.getAttribute("gridSize"))||mxGraph.prototype.gridSize,guidesEnabled:"0"!=a.getAttribute("guides"),foldingEnabled:"0"!=a.getAttribute("fold"), -shadowVisible:"1"==a.getAttribute("shadow"),pageVisible:this.isLightboxView()?!1:null!=d?"0"!=d:this.defaultPageVisible,background:null!=m&&0<m.length?m:this.defaultGraphBackground,backgroundImage:null!=p?new mxImage(p.src,p.width,p.height):null,pageScale:isNaN(e)?mxGraph.prototype.pageScale:e,pageFormat:isNaN(b)||isNaN(h)?this.pageFormat:new mxRectangle(0,0,b,b),tooltips:"0"!=a.getAttribute("tooltips"),connect:"0"!=a.getAttribute("connect"),arrows:"0"!=a.getAttribute("arrows"),mathEnabled:"1"==a.getAttribute("math"), -selectionCells:null,defaultParent:null,scrollbars:this.defaultScrollbars,scale:1}}; -Graph.prototype.saveViewState=function(a,d){d.setAttribute("grid",null==a||a.gridEnabled?"1":"0");d.setAttribute("gridSize",null!=a?a.gridSize:mxGraph.prototype.gridSize);d.setAttribute("guides",null==a||a.guidesEnabled?"1":"0");d.setAttribute("tooltips",null==a||a.tooltips?"1":"0");d.setAttribute("connect",null==a||a.connect?"1":"0");d.setAttribute("arrows",null==a||a.arrows?"1":"0");d.setAttribute("fold",null==a||a.foldingEnabled?"1":"0");d.setAttribute("page",null==a&&this.defaultPageVisible|| -null!=a&&a.pageVisible?"1":"0");d.setAttribute("pageScale",null!=a&&null!=a.pageScale?a.pageScale:mxGraph.prototype.pageScale);var e=null!=a?a.pageFormat:mxSettings.getPageFormat();null!=e&&(d.setAttribute("pageWidth",e.width),d.setAttribute("pageHeight",e.height));d.setAttribute("background",null!=a&&null!=a.background?a.background:this.defaultGraphBackground);null!=a&&null!=a.backgroundImage&&d.setAttribute("backgroundImage",JSON.stringify(a.backgroundImage));d.setAttribute("math",null!=a&&a.mathEnabled? -"1":"0");d.setAttribute("shadow",null!=a&&a.shadowVisible?"1":"0")}; +this.editor.graph.mathEnabled||Editor.MathJaxClear()});this.editor.graph.model.addListener(mxEvent.CHANGE,mxUtils.bind(this,function(a,b){for(var e=b.getProperty("edit").changes,k=0;k<e.length;k++)if(e[k]instanceof SelectPage||e[k]instanceof RenamePage||e[k]instanceof MovePage||e[k]instanceof mxRootChange){d();break}}));null!=this.toolbar&&this.editor.addListener("pageSelected",this.toolbar.updateZoom)}; +Graph.prototype.createViewState=function(a){var b=a.getAttribute("page"),e=parseFloat(a.getAttribute("pageScale")),d=parseFloat(a.getAttribute("pageWidth")),k=parseFloat(a.getAttribute("pageHeight")),l=a.getAttribute("background"),p=a.getAttribute("backgroundImage"),p=null!=p&&0<p.length?JSON.parse(p):null;return{gridEnabled:"0"!=a.getAttribute("grid"),gridSize:parseFloat(a.getAttribute("gridSize"))||mxGraph.prototype.gridSize,guidesEnabled:"0"!=a.getAttribute("guides"),foldingEnabled:"0"!=a.getAttribute("fold"), +shadowVisible:"1"==a.getAttribute("shadow"),pageVisible:this.isLightboxView()?!1:null!=b?"0"!=b:this.defaultPageVisible,background:null!=l&&0<l.length?l:this.defaultGraphBackground,backgroundImage:null!=p?new mxImage(p.src,p.width,p.height):null,pageScale:isNaN(e)?mxGraph.prototype.pageScale:e,pageFormat:isNaN(d)||isNaN(k)?mxSettings.getPageFormat():new mxRectangle(0,0,d,k),tooltips:"0"!=a.getAttribute("tooltips"),connect:"0"!=a.getAttribute("connect"),arrows:"0"!=a.getAttribute("arrows"),mathEnabled:"1"== +a.getAttribute("math"),selectionCells:null,defaultParent:null,scrollbars:this.defaultScrollbars,scale:1}}; +Graph.prototype.saveViewState=function(a,b){b.setAttribute("grid",null==a||a.gridEnabled?"1":"0");b.setAttribute("gridSize",null!=a?a.gridSize:mxGraph.prototype.gridSize);b.setAttribute("guides",null==a||a.guidesEnabled?"1":"0");b.setAttribute("tooltips",null==a||a.tooltips?"1":"0");b.setAttribute("connect",null==a||a.connect?"1":"0");b.setAttribute("arrows",null==a||a.arrows?"1":"0");b.setAttribute("fold",null==a||a.foldingEnabled?"1":"0");b.setAttribute("page",null==a&&this.defaultPageVisible|| +null!=a&&a.pageVisible?"1":"0");b.setAttribute("pageScale",null!=a&&null!=a.pageScale?a.pageScale:mxGraph.prototype.pageScale);var e=null!=a?a.pageFormat:mxSettings.getPageFormat();null!=e&&(b.setAttribute("pageWidth",e.width),b.setAttribute("pageHeight",e.height));null!=a&&null!=a.background&&b.setAttribute("background",a.background);null!=a&&null!=a.backgroundImage&&b.setAttribute("backgroundImage",JSON.stringify(a.backgroundImage));b.setAttribute("math",null!=a&&a.mathEnabled?"1":"0");b.setAttribute("shadow", +null!=a&&a.shadowVisible?"1":"0")}; Graph.prototype.getViewState=function(){return{defaultParent:this.defaultParent,currentRoot:this.view.currentRoot,gridEnabled:this.gridEnabled,gridSize:this.gridSize,guidesEnabled:this.graphHandler.guidesEnabled,foldingEnabled:this.foldingEnabled,shadowVisible:this.shadowVisible,scrollbars:this.scrollbars,pageVisible:this.pageVisible,background:this.background,backgroundImage:this.backgroundImage,pageScale:this.pageScale,pageFormat:this.pageFormat,tooltips:this.tooltipHandler.isEnabled(),connect:this.connectionHandler.isEnabled(), arrows:this.connectionArrowsEnabled,scale:this.view.scale,scrollLeft:this.container.scrollLeft-this.view.translate.x*this.view.scale,scrollTop:this.container.scrollTop-this.view.translate.y*this.view.scale,translate:this.view.translate.clone(),lastPasteXml:this.lastPasteXml,pasteCounter:this.pasteCounter,mathEnabled:this.mathEnabled}}; Graph.prototype.setViewState=function(a){null!=a?(this.lastPasteXml=a.lastPasteXml,this.pasteCounter=a.pasteCounter||0,this.mathEnabled=a.mathEnabled,this.gridEnabled=a.gridEnabled,this.gridSize=a.gridSize,this.graphHandler.guidesEnabled=a.guidesEnabled,this.foldingEnabled=a.foldingEnabled,this.setShadowVisible(a.shadowVisible,!1),this.scrollbars=a.scrollbars,this.pageVisible=a.pageVisible,this.background=a.background,this.backgroundImage=a.backgroundImage,this.pageScale=a.pageScale,this.pageFormat= a.pageFormat,this.view.currentRoot=a.currentRoot,this.defaultParent=a.defaultParent,this.connectionArrowsEnabled=a.arrows,this.setTooltips(a.tooltips),this.setConnectable(a.connect),this.view.scale=null!=a.scale?a.scale:1,null==this.view.currentRoot||this.model.contains(this.view.currentRoot)||(this.view.currentRoot=null),null==this.defaultParent||this.model.contains(this.defaultParent)||(this.setDefaultParent(null),this.selectUnlockedLayer()),null!=a.translate&&(this.view.translate=a.translate)): (this.view.currentRoot=null,this.view.scale=1,this.gridEnabled=!0,this.gridSize=mxGraph.prototype.gridSize,this.pageScale=mxGraph.prototype.pageScale,this.pageFormat=mxSettings.getPageFormat(),this.pageVisible=this.defaultPageVisible,this.background=this.defaultGraphBackground,this.backgroundImage=null,this.scrollbars=this.defaultScrollbars,this.foldingEnabled=this.graphHandler.guidesEnabled=!0,this.setShadowVisible(!1,!1),this.defaultParent=null,this.setTooltips(!0),this.setConnectable(!0),this.lastPasteXml= -null,this.pasteCounter=0,this.mathEnabled=!1,this.connectionArrowsEnabled=!0);this.preferPageSize=this.pageBreaksVisible=this.pageVisible};EditorUi.prototype.updatePageRoot=function(a){if(null==a.root){var d=this.editor.extractGraphModel(a.node);if(null!=d){a.graphModelNode=d;a.viewState=this.editor.graph.createViewState(d);var e=new mxCodec(d.ownerDocument);a.root=e.decode(d).root}else a.root=this.editor.graph.model.createRoot()}return a}; -EditorUi.prototype.selectPage=function(a,d){this.editor.graph.isEditing()&&this.editor.graph.stopEditing(!1);d=null!=d?d:!1;this.editor.graph.isMouseDown=!1;this.editor.graph.reset();var e=this.editor.graph.model.createUndoableEdit();e.ignoreEdit=!0;var b=new SelectPage(this,a);b.execute();e.add(b);e.notify();this.editor.graph.tooltipHandler.hide();d||this.editor.graph.model.fireEvent(new mxEventObject(mxEvent.UNDO,"edit",e))}; -EditorUi.prototype.selectNextPage=function(a){var d=this.currentPage;null!=d&&null!=this.pages&&(d=mxUtils.indexOf(this.pages,d),a?this.selectPage(this.pages[mxUtils.mod(d+1,this.pages.length)]):a||this.selectPage(this.pages[mxUtils.mod(d-1,this.pages.length)]))};EditorUi.prototype.insertPage=function(a,d){if(this.editor.graph.isEnabled()){a=null!=a?a:this.createPage();d=null!=d?d:this.pages.length;var e=new ChangePage(this,a,a,d);this.editor.graph.model.execute(e)}return a}; -EditorUi.prototype.createPage=function(a){var d=new DiagramPage(this.fileNode.ownerDocument.createElement("diagram"));d.setName(null!=a?a:this.createPageName());return d};EditorUi.prototype.createPageName=function(){for(var a={},d=0;d<this.pages.length;d++){var e=this.pages[d].getName();null!=e&&0<e.length&&(a[e]=e)}d=this.pages.length;do e=mxResources.get("pageWithNumber",[++d]);while(null!=a[e]);return e}; -EditorUi.prototype.removePage=function(a){var d=this.editor.graph;if(d.isEnabled()){d.model.beginUpdate();try{var e=this.currentPage;if(e==a)if(1<this.pages.length){var b=mxUtils.indexOf(this.pages,a);b==this.pages.length-1?b--:b++;e=this.pages[b]}else e=this.insertPage(),d.model.execute(new RenamePage(this,e,mxResources.get("pageWithNumber",[1])));d.model.execute(new ChangePage(this,a,e))}finally{d.model.endUpdate()}}return a}; -EditorUi.prototype.duplicatePage=function(a,d){var e=this.editor.graph,b=null;e.isEnabled()&&(e.isEditing()&&e.stopEditing(),b=a.node.cloneNode(!1),b.removeAttribute("id"),b=new DiagramPage(b),b.root=e.cloneCells([e.model.root])[0],b.viewState=e.getViewState(),b.viewState.scale=1,b.viewState.scrollLeft=null,b.viewState.scrollTop=null,b.viewState.currentRoot=null,b.viewState.defaultParent=null,b.setName(d),b=this.insertPage(b,mxUtils.indexOf(this.pages,a)+1));return b}; -EditorUi.prototype.renamePage=function(a){if(this.editor.graph.isEnabled()){var d=new FilenameDialog(this,a.getName(),mxResources.get("rename"),mxUtils.bind(this,function(d){null!=d&&0<d.length&&this.editor.graph.model.execute(new RenamePage(this,a,d))}),mxResources.get("rename"));this.showDialog(d.container,300,80,!0,!0);d.init()}return a};EditorUi.prototype.movePage=function(a,d){this.editor.graph.model.execute(new MovePage(this,a,d))}; +null,this.pasteCounter=0,this.mathEnabled=!1,this.connectionArrowsEnabled=!0);this.preferPageSize=this.pageBreaksVisible=this.pageVisible};EditorUi.prototype.updatePageRoot=function(a){if(null==a.root){var b=this.editor.extractGraphModel(a.node);if(null!=b){a.graphModelNode=b;a.viewState=this.editor.graph.createViewState(b);var e=new mxCodec(b.ownerDocument);a.root=e.decode(b).root}else a.root=this.editor.graph.model.createRoot()}return a}; +EditorUi.prototype.selectPage=function(a,b){this.editor.graph.isEditing()&&this.editor.graph.stopEditing(!1);b=null!=b?b:!1;this.editor.graph.isMouseDown=!1;this.editor.graph.reset();var e=this.editor.graph.model.createUndoableEdit();e.ignoreEdit=!0;var d=new SelectPage(this,a);d.execute();e.add(d);e.notify();this.editor.graph.tooltipHandler.hide();b||this.editor.graph.model.fireEvent(new mxEventObject(mxEvent.UNDO,"edit",e))}; +EditorUi.prototype.selectNextPage=function(a){var b=this.currentPage;null!=b&&null!=this.pages&&(b=mxUtils.indexOf(this.pages,b),a?this.selectPage(this.pages[mxUtils.mod(b+1,this.pages.length)]):a||this.selectPage(this.pages[mxUtils.mod(b-1,this.pages.length)]))};EditorUi.prototype.insertPage=function(a,b){if(this.editor.graph.isEnabled()){a=null!=a?a:this.createPage();b=null!=b?b:this.pages.length;var e=new ChangePage(this,a,a,b);this.editor.graph.model.execute(e)}return a}; +EditorUi.prototype.createPage=function(a){var b=new DiagramPage(this.fileNode.ownerDocument.createElement("diagram"));b.setName(null!=a?a:this.createPageName());return b};EditorUi.prototype.createPageName=function(){for(var a={},b=0;b<this.pages.length;b++){var e=this.pages[b].getName();null!=e&&0<e.length&&(a[e]=e)}b=this.pages.length;do e=mxResources.get("pageWithNumber",[++b]);while(null!=a[e]);return e}; +EditorUi.prototype.removePage=function(a){var b=this.editor.graph;if(b.isEnabled()){b.model.beginUpdate();try{var e=this.currentPage;if(e==a)if(1<this.pages.length){var d=mxUtils.indexOf(this.pages,a);d==this.pages.length-1?d--:d++;e=this.pages[d]}else e=this.insertPage(),b.model.execute(new RenamePage(this,e,mxResources.get("pageWithNumber",[1])));b.model.execute(new ChangePage(this,a,e))}finally{b.model.endUpdate()}}return a}; +EditorUi.prototype.duplicatePage=function(a,b){var e=this.editor.graph,d=null;e.isEnabled()&&(e.isEditing()&&e.stopEditing(),d=a.node.cloneNode(!1),d.removeAttribute("id"),d=new DiagramPage(d),d.root=e.cloneCells([e.model.root])[0],d.viewState=e.getViewState(),d.viewState.scale=1,d.viewState.scrollLeft=null,d.viewState.scrollTop=null,d.viewState.currentRoot=null,d.viewState.defaultParent=null,d.setName(b),d=this.insertPage(d,mxUtils.indexOf(this.pages,a)+1));return d}; +EditorUi.prototype.renamePage=function(a){if(this.editor.graph.isEnabled()){var b=new FilenameDialog(this,a.getName(),mxResources.get("rename"),mxUtils.bind(this,function(b){null!=b&&0<b.length&&this.editor.graph.model.execute(new RenamePage(this,a,b))}),mxResources.get("rename"));this.showDialog(b.container,300,80,!0,!0);b.init()}return a};EditorUi.prototype.movePage=function(a,b){this.editor.graph.model.execute(new MovePage(this,a,b))}; EditorUi.prototype.createTabContainer=function(){var a=document.createElement("div");a.style.backgroundColor="dark"==uiTheme?"#2a2a2a":"#dcdcdc";a.style.position="absolute";a.style.whiteSpace="nowrap";a.style.overflow="hidden";a.style.height="0px";return a}; -EditorUi.prototype.updateTabContainer=function(){if(null!=this.tabContainer&&null!=this.pages){var a=this.editor.graph,d=document.createElement("div");d.style.position="relative";d.style.display=mxClient.IS_QUIRKS?"inline":"inline-block";d.style.verticalAlign="top";d.style.height=this.tabContainer.style.height;d.style.whiteSpace="nowrap";d.style.overflow="hidden";d.style.fontSize="12px";d.style.marginLeft="30px";for(var e=this.editor.isChromelessView()?29:59,b=Math.min(140,Math.max(20,(this.tabContainer.clientWidth- -e)/this.pages.length)+1),h=null,m=0;m<this.pages.length;m++)mxUtils.bind(this,function(b,e){this.pages[b]==this.currentPage?(e.className="geActivePage",e.style.backgroundColor="dark"==uiTheme?"#2a2a2a":"#eeeeee",e.style.fontWeight="bold",e.style.borderTopStyle="none"):e.className="geInactivePage";e.setAttribute("draggable","true");mxEvent.addListener(e,"dragstart",mxUtils.bind(this,function(c){a.isEnabled()?(mxClient.IS_FF&&c.dataTransfer.setData("Text","<diagram/>"),h=b):mxEvent.consume(c)}));mxEvent.addListener(e, -"dragend",mxUtils.bind(this,function(a){h=null;a.stopPropagation();a.preventDefault()}));mxEvent.addListener(e,"dragover",mxUtils.bind(this,function(a){null!=h&&(a.dataTransfer.dropEffect="move");a.stopPropagation();a.preventDefault()}));mxEvent.addListener(e,"drop",mxUtils.bind(this,function(a){null!=h&&b!=h&&this.movePage(h,b);a.stopPropagation();a.preventDefault()}));d.appendChild(e)})(m,this.createTabForPage(this.pages[m],b,this.pages[m]!=this.currentPage));this.tabContainer.innerHTML="";this.tabContainer.appendChild(d); -b=this.createPageMenuTab();this.tabContainer.appendChild(b);b=null;this.isPageInsertTabVisible()&&(b=this.createPageInsertTab(),this.tabContainer.appendChild(b));if(d.clientWidth>this.tabContainer.clientWidth-e){null!=b&&(b.style.position="absolute",b.style.right="0px",d.style.marginRight="30px");var p=this.createControlTab(4," ❮ ");p.style.position="absolute";p.style.right=this.editor.chromeless?"29px":"55px";p.style.fontSize="13pt";this.tabContainer.appendChild(p);var q=this.createControlTab(4, -" ❯");q.style.position="absolute";q.style.right=this.editor.chromeless?"0px":"29px";q.style.fontSize="13pt";this.tabContainer.appendChild(q);var u=Math.max(0,this.tabContainer.clientWidth-(this.editor.chromeless?86:116));d.style.width=u+"px";mxEvent.addListener(p,"click",mxUtils.bind(this,function(a){d.scrollLeft-=Math.max(20,u-20);mxUtils.setOpacity(p,0<d.scrollLeft?100:50);mxUtils.setOpacity(q,d.scrollLeft<d.scrollWidth-d.clientWidth?100:50);mxEvent.consume(a)}));mxUtils.setOpacity(p, -0<d.scrollLeft?100:50);mxUtils.setOpacity(q,d.scrollLeft<d.scrollWidth-d.clientWidth?100:50);mxEvent.addListener(q,"click",mxUtils.bind(this,function(a){d.scrollLeft+=Math.max(20,u-20);mxUtils.setOpacity(p,0<d.scrollLeft?100:50);mxUtils.setOpacity(q,d.scrollLeft<d.scrollWidth-d.clientWidth?100:50);mxEvent.consume(a)}))}}};EditorUi.prototype.isPageInsertTabVisible=function(){return 1==urlParams.embed||null!=this.getCurrentFile()&&this.getCurrentFile().isEditable()}; -EditorUi.prototype.createTab=function(a){var d=document.createElement("div");d.style.display=mxClient.IS_QUIRKS?"inline":"inline-block";d.style.whiteSpace="nowrap";d.style.boxSizing="border-box";d.style.position="relative";d.style.overflow="hidden";d.style.marginLeft="-1px";d.style.height=this.tabContainer.clientHeight+"px";d.style.padding="8px 4px 8px 4px";d.style.border="dark"==uiTheme?"1px solid #505759":"1px solid #c0c0c0";d.style.borderBottomStyle="solid";d.style.backgroundColor=this.tabContainer.style.backgroundColor; -d.style.cursor="move";d.style.color="gray";a&&(mxEvent.addListener(d,"mouseenter",mxUtils.bind(this,function(a){this.editor.graph.isMouseDown||(d.style.backgroundColor="dark"==uiTheme?"black":"#d3d3d3",mxEvent.consume(a))})),mxEvent.addListener(d,"mouseleave",mxUtils.bind(this,function(a){d.style.backgroundColor=this.tabContainer.style.backgroundColor;mxEvent.consume(a)})));return d}; -EditorUi.prototype.createControlTab=function(a,d){var e=this.createTab(!0);e.style.paddingTop=a+"px";e.style.cursor="pointer";e.style.width="30px";e.style.lineHeight="30px";e.innerHTML=d;null!=e.firstChild&&null!=e.firstChild.style&&mxUtils.setOpacity(e.firstChild,40);return e}; -EditorUi.prototype.createPageMenuTab=function(){var a=this.createControlTab(3,'<div class="geSprite geSprite-dots" style="display:inline-block;width:21px;height:21px;"></div>');a.setAttribute("title",mxResources.get("pages"));a.style.position="absolute";a.style.top="0px";a.style.left="1px";mxEvent.addListener(a,"click",mxUtils.bind(this,function(a){this.editor.graph.popupMenuHandler.hideMenu();var d=new mxPopupMenu(mxUtils.bind(this,function(a,b){for(var d=0;d<this.pages.length;d++)mxUtils.bind(this, +EditorUi.prototype.updateTabContainer=function(){if(null!=this.tabContainer&&null!=this.pages){var a=this.editor.graph,b=document.createElement("div");b.style.position="relative";b.style.display=mxClient.IS_QUIRKS?"inline":"inline-block";b.style.verticalAlign="top";b.style.height=this.tabContainer.style.height;b.style.whiteSpace="nowrap";b.style.overflow="hidden";b.style.fontSize="12px";b.style.marginLeft="30px";for(var e=this.editor.isChromelessView()?29:59,d=Math.min(140,Math.max(20,(this.tabContainer.clientWidth- +e)/this.pages.length)+1),k=null,l=0;l<this.pages.length;l++)mxUtils.bind(this,function(c,d){this.pages[c]==this.currentPage?(d.className="geActivePage",d.style.backgroundColor="dark"==uiTheme?"#2a2a2a":"#eeeeee",d.style.fontWeight="bold",d.style.borderTopStyle="none"):d.className="geInactivePage";d.setAttribute("draggable","true");mxEvent.addListener(d,"dragstart",mxUtils.bind(this,function(b){a.isEnabled()?(mxClient.IS_FF&&b.dataTransfer.setData("Text","<diagram/>"),k=c):mxEvent.consume(b)}));mxEvent.addListener(d, +"dragend",mxUtils.bind(this,function(a){k=null;a.stopPropagation();a.preventDefault()}));mxEvent.addListener(d,"dragover",mxUtils.bind(this,function(a){null!=k&&(a.dataTransfer.dropEffect="move");a.stopPropagation();a.preventDefault()}));mxEvent.addListener(d,"drop",mxUtils.bind(this,function(a){null!=k&&c!=k&&this.movePage(k,c);a.stopPropagation();a.preventDefault()}));b.appendChild(d)})(l,this.createTabForPage(this.pages[l],d,this.pages[l]!=this.currentPage));this.tabContainer.innerHTML="";this.tabContainer.appendChild(b); +d=this.createPageMenuTab();this.tabContainer.appendChild(d);d=null;this.isPageInsertTabVisible()&&(d=this.createPageInsertTab(),this.tabContainer.appendChild(d));if(b.clientWidth>this.tabContainer.clientWidth-e){null!=d&&(d.style.position="absolute",d.style.right="0px",b.style.marginRight="30px");var p=this.createControlTab(4," ❮ ");p.style.position="absolute";p.style.right=this.editor.chromeless?"29px":"55px";p.style.fontSize="13pt";this.tabContainer.appendChild(p);var q=this.createControlTab(4, +" ❯");q.style.position="absolute";q.style.right=this.editor.chromeless?"0px":"29px";q.style.fontSize="13pt";this.tabContainer.appendChild(q);var u=Math.max(0,this.tabContainer.clientWidth-(this.editor.chromeless?86:116));b.style.width=u+"px";mxEvent.addListener(p,"click",mxUtils.bind(this,function(a){b.scrollLeft-=Math.max(20,u-20);mxUtils.setOpacity(p,0<b.scrollLeft?100:50);mxUtils.setOpacity(q,b.scrollLeft<b.scrollWidth-b.clientWidth?100:50);mxEvent.consume(a)}));mxUtils.setOpacity(p, +0<b.scrollLeft?100:50);mxUtils.setOpacity(q,b.scrollLeft<b.scrollWidth-b.clientWidth?100:50);mxEvent.addListener(q,"click",mxUtils.bind(this,function(a){b.scrollLeft+=Math.max(20,u-20);mxUtils.setOpacity(p,0<b.scrollLeft?100:50);mxUtils.setOpacity(q,b.scrollLeft<b.scrollWidth-b.clientWidth?100:50);mxEvent.consume(a)}))}}};EditorUi.prototype.isPageInsertTabVisible=function(){return 1==urlParams.embed||null!=this.getCurrentFile()&&this.getCurrentFile().isEditable()}; +EditorUi.prototype.createTab=function(a){var b=document.createElement("div");b.style.display=mxClient.IS_QUIRKS?"inline":"inline-block";b.style.whiteSpace="nowrap";b.style.boxSizing="border-box";b.style.position="relative";b.style.overflow="hidden";b.style.marginLeft="-1px";b.style.height=this.tabContainer.clientHeight+"px";b.style.padding="8px 4px 8px 4px";b.style.border="dark"==uiTheme?"1px solid #505759":"1px solid #c0c0c0";b.style.borderBottomStyle="solid";b.style.backgroundColor=this.tabContainer.style.backgroundColor; +b.style.cursor="move";b.style.color="gray";a&&(mxEvent.addListener(b,"mouseenter",mxUtils.bind(this,function(a){this.editor.graph.isMouseDown||(b.style.backgroundColor="dark"==uiTheme?"black":"#d3d3d3",mxEvent.consume(a))})),mxEvent.addListener(b,"mouseleave",mxUtils.bind(this,function(a){b.style.backgroundColor=this.tabContainer.style.backgroundColor;mxEvent.consume(a)})));return b}; +EditorUi.prototype.createControlTab=function(a,b){var e=this.createTab(!0);e.style.paddingTop=a+"px";e.style.cursor="pointer";e.style.width="30px";e.style.lineHeight="30px";e.innerHTML=b;null!=e.firstChild&&null!=e.firstChild.style&&mxUtils.setOpacity(e.firstChild,40);return e}; +EditorUi.prototype.createPageMenuTab=function(){var a=this.createControlTab(3,'<div class="geSprite geSprite-dots" style="display:inline-block;width:21px;height:21px;"></div>');a.setAttribute("title",mxResources.get("pages"));a.style.position="absolute";a.style.top="0px";a.style.left="1px";mxEvent.addListener(a,"click",mxUtils.bind(this,function(a){this.editor.graph.popupMenuHandler.hideMenu();var b=new mxPopupMenu(mxUtils.bind(this,function(a,b){for(var d=0;d<this.pages.length;d++)mxUtils.bind(this, function(c){var d=a.addItem(this.pages[c].getName(),null,mxUtils.bind(this,function(){this.selectPage(this.pages[c])}),b);this.pages[c]==this.currentPage&&a.addCheckmark(d,Editor.checkmarkImage)})(d);if(this.editor.graph.isEnabled()){a.addSeparator(b);a.addItem(mxResources.get("insertPage"),null,mxUtils.bind(this,function(){this.insertPage()}),b);var e=this.currentPage;null!=e&&(a.addSeparator(b),a.addItem(mxResources.get("delete"),null,mxUtils.bind(this,function(){this.removePage(e)}),b),a.addItem(mxResources.get("rename"), -null,mxUtils.bind(this,function(){this.renamePage(e,e.getName())}),b),a.addSeparator(b),a.addItem(mxResources.get("duplicate"),null,mxUtils.bind(this,function(){this.duplicatePage(e,mxResources.get("copyOf",[e.getName()]))}),b))}}));d.div.className+=" geMenubarMenu";d.smartSeparators=!0;d.showDisabled=!0;d.autoExpand=!0;d.hideMenu=mxUtils.bind(this,function(){mxPopupMenu.prototype.hideMenu.apply(d,arguments);d.destroy()});var b=mxEvent.getClientX(a),h=mxEvent.getClientY(a);d.popup(b,h,null,a);this.setCurrentMenu(d); +null,mxUtils.bind(this,function(){this.renamePage(e,e.getName())}),b),a.addSeparator(b),a.addItem(mxResources.get("duplicate"),null,mxUtils.bind(this,function(){this.duplicatePage(e,mxResources.get("copyOf",[e.getName()]))}),b))}}));b.div.className+=" geMenubarMenu";b.smartSeparators=!0;b.showDisabled=!0;b.autoExpand=!0;b.hideMenu=mxUtils.bind(this,function(){mxPopupMenu.prototype.hideMenu.apply(b,arguments);b.destroy()});var d=mxEvent.getClientX(a),k=mxEvent.getClientY(a);b.popup(d,k,null,a);this.setCurrentMenu(b); mxEvent.consume(a)}));return a};EditorUi.prototype.createPageInsertTab=function(){var a=this.createControlTab(4,'<div class="geSprite geSprite-plus" style="display:inline-block;width:21px;height:21px;"></div>');a.setAttribute("title",mxResources.get("insertPage"));mxEvent.addListener(a,"click",mxUtils.bind(this,function(a){this.insertPage();mxEvent.consume(a)}));return a}; -EditorUi.prototype.createTabForPage=function(a,d,e){e=this.createTab(e);var b=a.getName();e.setAttribute("title",b);mxUtils.write(e,b);e.style.maxWidth=d+"px";e.style.width=d+"px";this.addTabListeners(a,e);42<d&&(e.style.textOverflow="ellipsis");return e}; -EditorUi.prototype.addTabListeners=function(a,d){mxEvent.disableContextMenu(d);var e=this.editor.graph;mxEvent.addListener(d,"dblclick",mxUtils.bind(this,function(b){this.renamePage(a);mxEvent.consume(b)}));var b=!1,h=!1;mxEvent.addGestureListeners(d,mxUtils.bind(this,function(d){b=null!=this.currentMenu;h=a==this.currentPage;e.isMouseDown||h||this.selectPage(a)}),null,mxUtils.bind(this,function(m){if(e.isEnabled()&&!e.isMouseDown&&(mxEvent.isTouchEvent(m)&&h||mxEvent.isPopupTrigger(m))){e.popupMenuHandler.hideMenu(); -this.hideCurrentMenu();if(!mxEvent.isTouchEvent(m)||!b){var p=new mxPopupMenu(this.createPageMenu(a));p.div.className+=" geMenubarMenu";p.smartSeparators=!0;p.showDisabled=!0;p.autoExpand=!0;p.hideMenu=mxUtils.bind(this,function(){mxPopupMenu.prototype.hideMenu.apply(p,arguments);this.resetCurrentMenu();p.destroy()});var q=mxEvent.getClientX(m),u=mxEvent.getClientY(m);p.popup(q,u,null,m);this.setCurrentMenu(p,d)}mxEvent.consume(m)}}))}; -EditorUi.prototype.createPageMenu=function(a,d){return mxUtils.bind(this,function(e,b){e.addItem(mxResources.get("insert"),null,mxUtils.bind(this,function(){this.insertPage(null,mxUtils.indexOf(this.pages,a)+1)}),b);e.addItem(mxResources.get("delete"),null,mxUtils.bind(this,function(){this.removePage(a)}),b);e.addItem(mxResources.get("rename"),null,mxUtils.bind(this,function(){this.renamePage(a,d)}),b);e.addSeparator(b);e.addItem(mxResources.get("duplicate"),null,mxUtils.bind(this,function(){this.duplicatePage(a, -mxResources.get("copyOf",[a.getName()]))}),b)})};(function(){var a=EditorUi.prototype.refresh;EditorUi.prototype.refresh=function(d){a.apply(this,arguments);this.updateTabContainer()}})();(function(){mxCodecRegistry.getCodec(ChangePageSetup).exclude.push("page")})();(function(){var a=new mxObjectCodec(new MovePage,["ui"]);a.beforeDecode=function(a,e,b){b.ui=a.ui;return e};a.afterDecode=function(a,e,b){a=b.oldIndex;b.oldIndex=b.newIndex;b.newIndex=a;return b};mxCodecRegistry.register(a)})(); -(function(){var a=new mxObjectCodec(new RenamePage,["ui","page"]);a.beforeDecode=function(a,e,b){b.ui=a.ui;return e};a.afterDecode=function(a,e,b){a=b.previous;b.previous=b.name;b.name=a;return b};mxCodecRegistry.register(a)})(); -(function(){var a=new mxObjectCodec(new ChangePage,"ui relatedPage index neverShown page previousPage".split(" ")),d="defaultParent currentRoot scrollLeft scrollTop scale translate lastPasteXml pasteCounter".split(" ");a.afterEncode=function(a,b,h){h.setAttribute("relatedPage",b.relatedPage.getId());null==b.index&&(h.setAttribute("name",b.relatedPage.getName()),null!=b.relatedPage.viewState&&h.setAttribute("viewState",JSON.stringify(b.relatedPage.viewState,function(a,b){return 0>mxUtils.indexOf(d, -a)?b:void 0})),null!=b.relatedPage.root&&a.encodeCell(b.relatedPage.root,h));return h};a.beforeDecode=function(a,b,d){d.ui=a.ui;d.relatedPage=d.ui.getPageById(b.getAttribute("relatedPage"));if(null==d.relatedPage){var e=b.ownerDocument.createElement("diagram");e.setAttribute("id",b.getAttribute("relatedPage"));e.setAttribute("name",b.getAttribute("name"));d.relatedPage=new DiagramPage(e);e=b.getAttribute("viewState");null!=e&&(d.relatedPage.viewState=JSON.parse(e),b.removeAttribute("viewState")); -b=b.cloneNode(!0);e=b.firstChild;if(null!=e)for(d.relatedPage.root=a.decodeCell(e,!1),d=e.nextSibling,e.parentNode.removeChild(e),e=d;null!=e;){d=e.nextSibling;if(e.nodeType==mxConstants.NODETYPE_ELEMENT){var h=e.getAttribute("id");null==a.lookup(h)&&a.decodeCell(e)}e.parentNode.removeChild(e);e=d}}return b};a.afterDecode=function(a,b,d){d.index=d.previousIndex;return d};mxCodecRegistry.register(a)})();(function(){var a=mxClient.IS_SVG?"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAMAAABhEH5lAAAASFBMVEUAAAAAAAB/f3/9/f319fUfHx/7+/s+Pj69vb0AAAAAAAAAAAAAAAAAAAAAAAAAAAB2dnZ1dXUAAAAAAAAVFRX///8ZGRkGBgbOcI1hAAAAE3RSTlMA+vr9/f38+fb1893Bo00u+/tFvPJUBQAAAIRJREFUGNM0jEcSxCAQAxlydGqD///TNWxZBx1aXVIrWysplbapL3sFxgDq/idXBnHgBPK1nIxwc55vCXl6dRFtrV6svs/A/UjsPcpzA5tqyByD92HqQlMFh45BG6ND1DiKSoPDdm96N77bg5F+wyaEqRGb8ZiOwHQqdg9hehszcLAEIQB2lQ4p/sEpnAAAAABJRU5ErkJggg==":IMAGE_PATH+"/move.png";EditorUi.prototype.altShiftActions[68]= -"selectDescendants";var d=Graph.prototype.foldCells;Graph.prototype.foldCells=function(a,b,e,q,u){b=null!=b?b:!1;null==e&&(e=this.getFoldableCells(this.getSelectionCells(),a));this.stopEditing();this.model.beginUpdate();try{for(var c=e.slice(),f=[],g=0;g<e.length;g++){var h=this.view.getState(e[g]),m=null!=h?h.style:this.getCellStyle(e[g]);"1"==mxUtils.getValue(m,"treeFolding","0")&&(this.traverse(e[g],!0,mxUtils.bind(this,function(a,b){null!=b&&f.push(b);a!=e[g]&&f.push(a);return a==e[g]||!this.model.isCollapsed(a)})), -this.model.setCollapsed(e[g],a))}for(g=0;g<f.length;g++)this.model.setVisible(f[g],!a);e=c;e=d.apply(this,arguments)}finally{this.model.endUpdate()}return e};var e=EditorUi.prototype.init;EditorUi.prototype.init=function(){e.apply(this,arguments);this.editor.isChromelessView()&&!this.editor.editable||this.addTrees()};EditorUi.prototype.addTrees=function(){function b(a){return n.isVertex(a)&&d(a)}function d(a){var b=!1;null!=a&&(a=n.getParent(a),b=l.view.getState(a),l.view.getState(a),b="tree"==(null!= -b?b.style:l.getCellStyle(a)).containerType);return b}function e(a){var b=!1;null!=a&&(a=n.getParent(a),b=l.view.getState(a),l.view.getState(a),b=null!=(null!=b?b.style:l.getCellStyle(a)).childLayout);return b}function q(a){a=l.view.getState(a);if(null!=a){var b=l.getIncomingEdges(a.cell);if(0<b.length&&(b=l.view.getState(b[0]),null!=b&&(b=b.absolutePoints,null!=b&&0<b.length&&(b=b[b.length-1],null!=b)))){if(b.y==a.y&&Math.abs(b.x-a.getCenterX())<a.width/2)return mxConstants.DIRECTION_SOUTH;if(b.y== -a.y+a.height&&Math.abs(b.x-a.getCenterX())<a.width/2)return mxConstants.DIRECTION_NORTH;if(b.x>a.getCenterX())return mxConstants.DIRECTION_WEST}}return mxConstants.DIRECTION_EAST}function u(a,b){b=null!=b?b:!0;l.model.beginUpdate();try{var d=l.model.getParent(a),c=l.getIncomingEdges(a),e=l.cloneCells([c[0],a]);l.model.setTerminal(e[0],l.model.getTerminal(c[0],!0),!0);var f=q(a),g=d.geometry;f==mxConstants.DIRECTION_SOUTH||f==mxConstants.DIRECTION_NORTH?e[1].geometry.x+=b?a.geometry.width+10:-e[1].geometry.width- -10:e[1].geometry.y+=b?a.geometry.height+10:-e[1].geometry.height-10;l.view.currentRoot!=d&&(e[1].geometry.x-=g.x,e[1].geometry.y-=g.y);var h=l.view.getState(a),k=l.view.scale;if(null!=h){var n=mxRectangle.fromRectangle(h);f==mxConstants.DIRECTION_SOUTH||f==mxConstants.DIRECTION_NORTH?n.x+=(b?a.geometry.width+10:-e[1].geometry.width-10)*k:n.y+=(b?a.geometry.height+10:-e[1].geometry.height-10)*k;var m=l.getOutgoingEdges(l.model.getTerminal(c[0],!0));if(null!=m){for(var p=f==mxConstants.DIRECTION_SOUTH|| -f==mxConstants.DIRECTION_NORTH,t=g=c=0;t<m.length;t++){var r=l.model.getTerminal(m[t],!1);if(f==q(r)){var x=l.view.getState(r);r!=a&&null!=x&&(p&&b!=x.getCenterX()<h.getCenterX()||!p&&b!=x.getCenterY()<h.getCenterY())&&mxUtils.intersects(n,x)&&(c=10+Math.max(c,(Math.min(n.x+n.width,x.x+x.width)-Math.max(n.x,x.x))/k),g=10+Math.max(g,(Math.min(n.y+n.height,x.y+x.height)-Math.max(n.y,x.y))/k))}}p?g=0:c=0;for(t=0;t<m.length;t++)if(r=l.model.getTerminal(m[t],!1),f==q(r)&&(x=l.view.getState(r),r!=a&&null!= -x&&(p&&b!=x.getCenterX()<h.getCenterX()||!p&&b!=x.getCenterY()<h.getCenterY()))){var u=[];l.traverse(x.cell,!0,function(a,b){null!=b&&u.push(b);u.push(a);return!0});l.moveCells(u,(b?1:-1)*c,(b?1:-1)*g)}}}return l.addCells(e,d)}finally{l.model.endUpdate()}}function c(a){l.model.beginUpdate();try{var b=q(a),c=l.getIncomingEdges(a),d=l.cloneCells([c[0],a]);l.model.setTerminal(c[0],d[1],!1);l.model.setTerminal(d[0],d[1],!0);l.model.setTerminal(d[0],a,!1);var e=l.model.getParent(a),f=e.geometry,g=[];l.view.currentRoot!= -e&&(d[1].geometry.x-=f.x,d[1].geometry.y-=f.y);l.traverse(a,!0,function(a,b){null!=b&&g.push(b);g.push(a);return!0});var h=a.geometry.width+40,k=a.geometry.height+40;b==mxConstants.DIRECTION_SOUTH?h=0:b==mxConstants.DIRECTION_NORTH?(h=0,k=-40):b==mxConstants.DIRECTION_WEST?(h=-40,k=0):b==mxConstants.DIRECTION_EAST&&(k=0);l.moveCells(g,h,k);return l.addCells(d,e)}finally{l.model.endUpdate()}}function f(a){l.model.beginUpdate();try{var b=l.model.getParent(a),d=l.getIncomingEdges(a),c=l.cloneCells([d[0], -a]);l.model.setTerminal(c[0],a,!0);var d=l.getOutgoingEdges(a),e=b.geometry,f=[];l.view.currentRoot==b&&(e=new mxRectangle);for(var g=0;g<d.length;g++){var h=l.model.getTerminal(d[g],!1);null!=h&&f.push(h)}var k=l.view.getBounds(f),n=q(a),m=l.view.translate,p=l.view.scale;n==mxConstants.DIRECTION_SOUTH?(c[1].geometry.x=null==k?a.geometry.x+(a.geometry.width-c[1].geometry.width)/2:(k.x+k.width)/p-m.x-e.x+10,c[1].geometry.y+=a.geometry.height-e.y+40):n==mxConstants.DIRECTION_NORTH?(c[1].geometry.x= -null==k?a.geometry.x+(a.geometry.width-c[1].geometry.width)/2:(k.x+k.width)/p-m.x+-e.x+10,c[1].geometry.y-=c[1].geometry.height-e.y+40):(c[1].geometry.x=n==mxConstants.DIRECTION_WEST?c[1].geometry.x-(c[1].geometry.width-e.x+40):c[1].geometry.x+(a.geometry.width-e.x+40),c[1].geometry.y=null==k?a.geometry.y+(a.geometry.height-c[1].geometry.height)/2:(k.y+k.height)/p-m.y+-e.y+10);return l.addCells(c,b)}finally{l.model.endUpdate()}}function g(a,b,c){a=l.getOutgoingEdges(a);c=l.view.getState(c);var d= -[];if(null!=c&&null!=a){for(var e=0;e<a.length;e++){var f=l.view.getState(l.model.getTerminal(a[e],!1));null!=f&&(!b&&Math.min(f.x+f.width,c.x+c.width)>=Math.max(f.x,c.x)||b&&Math.min(f.y+f.height,c.y+c.height)>=Math.max(f.y,c.y))&&d.push(f)}d.sort(function(a,c){return b?a.x+a.width-c.x-c.width:a.y+a.height-c.y-c.height})}return d}function k(a,b){var c=q(a),d=b==mxConstants.DIRECTION_EAST||b==mxConstants.DIRECTION_WEST;(c==mxConstants.DIRECTION_EAST||c==mxConstants.DIRECTION_WEST)==d&&c!=b?r.actions.get("selectParent").funct(): -c==b?(d=l.getOutgoingEdges(a),null!=d&&0<d.length&&l.setSelectionCell(l.model.getTerminal(d[0],!1))):(c=l.getIncomingEdges(a),null!=c&&0<c.length&&(d=g(l.model.getTerminal(c[0],!0),d,a),c=l.view.getState(a),null!=c&&(c=mxUtils.indexOf(d,c),0<=c&&(c+=b==mxConstants.DIRECTION_NORTH||b==mxConstants.DIRECTION_WEST?-1:1,0<=c&&c<=d.length-1&&l.setSelectionCell(d[c].cell)))))}var r=this,l=r.editor.graph,n=l.getModel();mxResources.parse("selectChildren=Select Children");mxResources.parse("selectSiblings=Select Siblings"); -mxResources.parse("selectDescendants=Select Descendants");mxResources.parse("selectParent=Select Parent");var w=r.menus.createPopupMenu;r.menus.createPopupMenu=function(a,c,d){w.apply(this,arguments);if(1==l.getSelectionCount()){c=l.getSelectionCell();var e=l.getOutgoingEdges(c);a.addSeparator();null!=e&&0<e.length&&(b(l.getSelectionCell())&&this.addMenuItems(a,["selectChildren"],null,d),this.addMenuItems(a,["selectDescendants"],null,d));b(l.getSelectionCell())&&(a.addSeparator(),0<l.getIncomingEdges(c).length&& -this.addMenuItems(a,["selectSiblings","selectParent"],null,d))}};r.actions.addAction("selectChildren",function(){if(l.isEnabled()&&1==l.getSelectionCount()){var a=l.getSelectionCell(),a=l.getOutgoingEdges(a);if(null!=a){for(var b=[],c=0;c<a.length;c++)b.push(l.model.getTerminal(a[c],!1));l.setSelectionCells(b)}}},null,null,"Alt+Shift+X");r.actions.addAction("selectSiblings",function(){if(l.isEnabled()&&1==l.getSelectionCount()){var a=l.getSelectionCell(),a=l.getIncomingEdges(a);if(null!=a&&0<a.length&& -(a=l.getOutgoingEdges(l.model.getTerminal(a[0],!0)),null!=a)){for(var b=[],c=0;c<a.length;c++)b.push(l.model.getTerminal(a[c],!1));l.setSelectionCells(b)}}},null,null,"Alt+Shift+S");r.actions.addAction("selectParent",function(){if(l.isEnabled()&&1==l.getSelectionCount()){var a=l.getSelectionCell(),a=l.getIncomingEdges(a);null!=a&&0<a.length&&l.setSelectionCell(l.model.getTerminal(a[0],!0))}},null,null,"Alt+Shift+P");r.actions.addAction("selectDescendants",function(){if(l.isEnabled()&&1==l.getSelectionCount()){var a= -l.getSelectionCell(),b=[];l.traverse(a,!0,function(a,c){null!=c&&b.push(c);b.push(a);return!0});l.setSelectionCells(b)}},null,null,"Alt+Shift+D");var v=l.removeCells;l.removeCells=function(a,c){c=null!=c?c:!0;null==a&&(a=this.getDeletableCells(this.getSelectionCells()));c&&(a=this.getDeletableCells(this.addAllEdges(a)));for(var e=[],f=0;f<a.length;f++){var g=a[f];n.isEdge(g)&&d(g)&&(e.push(g),g=n.getTerminal(g,!1));b(g)?(l.traverse(g,!0,function(a,b){null!=b&&e.push(b);e.push(a);return!0}),g=l.getIncomingEdges(a[f]), -a=a.concat(g)):e.push(a[f])}a=e;return v.apply(this,arguments)};r.hoverIcons.getStateAt=function(a,c,d){return b(a.cell)?null:this.graph.view.getState(this.graph.getCellAt(c,d))};var B=l.duplicateCells;l.duplicateCells=function(a,c){a=null!=a?a:this.getSelectionCells();for(var d=a.slice(0),e=0;e<d.length;e++){var f=l.view.getState(d[e]);if(null!=f&&b(f.cell))for(var g=l.getIncomingEdges(f.cell),f=0;f<g.length;f++)mxUtils.remove(g[f],a)}this.model.beginUpdate();try{var h=B.call(this,a,c);if(h.length== -a.length)for(e=0;e<a.length;e++)if(b(a[e])){var k=l.getIncomingEdges(h[e]),g=l.getIncomingEdges(a[e]);if(0==k.length&&0<g.length){var n=this.cloneCells([g[0]])[0];this.addEdge(n,l.getDefaultParent(),this.model.getTerminal(g[0],!0),h[e])}}}finally{this.model.endUpdate()}return h};var y=l.moveCells;l.moveCells=function(a,c,d,e,f,g,h){var k=null;this.model.beginUpdate();try{var n=f,m=this.view.getState(f),p=null!=m?m.style:this.getCellStyle(f);if(null!=a&&b(f)&&"1"==mxUtils.getValue(p,"treeFolding", -"0")){for(var q=0;q<a.length;q++)if(b(a[q])||l.model.isEdge(a[q])&&null==l.model.getTerminal(a[q],!0)){f=l.model.getParent(a[q]);break}if(null!=n&&f!=n&&null!=this.view.getState(a[0])){var t=l.getIncomingEdges(a[0]);if(0<t.length){var r=l.view.getState(l.model.getTerminal(t[0],!0));if(null!=r){var u=l.view.getState(n);null!=u&&(c=(u.getCenterX()-r.getCenterX())/l.view.scale,d=(u.getCenterY()-r.getCenterY())/l.view.scale)}}}}k=y.apply(this,arguments);if(null!=k&&null!=a&&k.length==a.length)for(q=0;q< -k.length;q++)if(this.model.isEdge(k[q]))b(n)&&0>mxUtils.indexOf(k,this.model.getTerminal(k[q],!0))&&this.model.setTerminal(k[q],n,!0);else if(b(a[q])&&(t=l.getIncomingEdges(a[q]),0<t.length))if(!e)b(n)&&0>mxUtils.indexOf(a,this.model.getTerminal(t[0],!0))&&this.model.setTerminal(t[0],n,!0);else if(0==l.getIncomingEdges(k[q]).length){m=n;if(null==m||m==l.model.getParent(a[q]))m=l.model.getTerminal(t[0],!0);e=this.cloneCells([t[0]])[0];this.addEdge(e,l.getDefaultParent(),m,k[q])}}finally{this.model.endUpdate()}return k}; -if(null!=r.sidebar){var t=r.sidebar.dropAndConnect;r.sidebar.dropAndConnect=function(a,c,d,e){var f=l.model,g=null;f.beginUpdate();try{if(g=t.apply(this,arguments),b(a))for(var h=0;h<g.length;h++)if(f.isEdge(g[h])&&null==f.getTerminal(g[h],!0)){f.setTerminal(g[h],a,!0);var k=l.getCellGeometry(g[h]);k.points=null;null!=k.getTerminalPoint(!0)&&k.setTerminalPoint(null,!0)}}finally{f.endUpdate()}return g}}var z={88:r.actions.get("selectChildren"),84:r.actions.get("selectSubtree"),80:r.actions.get("selectParent"), -83:r.actions.get("selectSiblings")},H=r.onKeyDown;r.onKeyDown=function(a){try{if(l.isEnabled()&&!l.isEditing()&&b(l.getSelectionCell())&&1==l.getSelectionCount()){var d=null;0<l.getIncomingEdges(l.getSelectionCell()).length&&(9==a.which?d=mxEvent.isShiftDown(a)?c(l.getSelectionCell()):f(l.getSelectionCell()):13==a.which&&(d=u(l.getSelectionCell(),!mxEvent.isShiftDown(a))));if(null!=d&&0<d.length)1==d.length&&l.model.isEdge(d[0])?l.setSelectionCell(l.model.getTerminal(d[0],!1)):l.setSelectionCell(d[d.length- -1]),null!=r.hoverIcons&&r.hoverIcons.update(l.view.getState(l.getSelectionCell())),l.startEditingAtCell(l.getSelectionCell()),mxEvent.consume(a);else if(mxEvent.isAltDown(a)&&mxEvent.isShiftDown(a)){var e=z[a.keyCode];null!=e&&(e.funct(a),mxEvent.consume(a))}else 37==a.keyCode?(k(l.getSelectionCell(),mxConstants.DIRECTION_WEST),mxEvent.consume(a)):38==a.keyCode?(k(l.getSelectionCell(),mxConstants.DIRECTION_NORTH),mxEvent.consume(a)):39==a.keyCode?(k(l.getSelectionCell(),mxConstants.DIRECTION_EAST), -mxEvent.consume(a)):40==a.keyCode&&(k(l.getSelectionCell(),mxConstants.DIRECTION_SOUTH),mxEvent.consume(a))}}catch(R){console.log("error",R)}mxEvent.isConsumed(a)||H.apply(this,arguments)};var G=l.connectVertex;l.connectVertex=function(a,d,e,g,h,k){var n=l.getIncomingEdges(a);return b(a)&&0<n.length?(e=q(a),g=e==mxConstants.DIRECTION_EAST||e==mxConstants.DIRECTION_WEST,h=d==mxConstants.DIRECTION_EAST||d==mxConstants.DIRECTION_WEST,e==d?f(a):g==h?c(a):u(a,d!=mxConstants.DIRECTION_NORTH&&d!=mxConstants.DIRECTION_WEST)): -G.call(this,a,d,e,g,h,k)};l.getSubtree=function(a){var c=[a];b(a)&&!e(a)&&l.traverse(a,!0,function(a,b){null!=b&&0>mxUtils.indexOf(c,b)&&c.push(b);0>mxUtils.indexOf(c,a)&&c.push(a);return!0});return c};var A=mxVertexHandler.prototype.init;mxVertexHandler.prototype.init=function(){A.apply(this,arguments);b(this.state.cell)&&0<this.graph.getOutgoingEdges(this.state.cell).length&&(this.moveHandle=mxUtils.createImage(a),this.moveHandle.setAttribute("title","Move Subtree"),this.moveHandle.style.position= +EditorUi.prototype.createTabForPage=function(a,b,e){e=this.createTab(e);var d=a.getName();e.setAttribute("title",d);mxUtils.write(e,d);e.style.maxWidth=b+"px";e.style.width=b+"px";this.addTabListeners(a,e);42<b&&(e.style.textOverflow="ellipsis");return e}; +EditorUi.prototype.addTabListeners=function(a,b){mxEvent.disableContextMenu(b);var e=this.editor.graph;mxEvent.addListener(b,"dblclick",mxUtils.bind(this,function(b){this.renamePage(a);mxEvent.consume(b)}));var d=!1,k=!1;mxEvent.addGestureListeners(b,mxUtils.bind(this,function(b){d=null!=this.currentMenu;k=a==this.currentPage;e.isMouseDown||k||this.selectPage(a)}),null,mxUtils.bind(this,function(l){if(e.isEnabled()&&!e.isMouseDown&&(mxEvent.isTouchEvent(l)&&k||mxEvent.isPopupTrigger(l))){e.popupMenuHandler.hideMenu(); +this.hideCurrentMenu();if(!mxEvent.isTouchEvent(l)||!d){var p=new mxPopupMenu(this.createPageMenu(a));p.div.className+=" geMenubarMenu";p.smartSeparators=!0;p.showDisabled=!0;p.autoExpand=!0;p.hideMenu=mxUtils.bind(this,function(){mxPopupMenu.prototype.hideMenu.apply(p,arguments);this.resetCurrentMenu();p.destroy()});var q=mxEvent.getClientX(l),u=mxEvent.getClientY(l);p.popup(q,u,null,l);this.setCurrentMenu(p,b)}mxEvent.consume(l)}}))}; +EditorUi.prototype.createPageMenu=function(a,b){return mxUtils.bind(this,function(e,d){e.addItem(mxResources.get("insert"),null,mxUtils.bind(this,function(){this.insertPage(null,mxUtils.indexOf(this.pages,a)+1)}),d);e.addItem(mxResources.get("delete"),null,mxUtils.bind(this,function(){this.removePage(a)}),d);e.addItem(mxResources.get("rename"),null,mxUtils.bind(this,function(){this.renamePage(a,b)}),d);e.addSeparator(d);e.addItem(mxResources.get("duplicate"),null,mxUtils.bind(this,function(){this.duplicatePage(a, +mxResources.get("copyOf",[a.getName()]))}),d)})};(function(){var a=EditorUi.prototype.refresh;EditorUi.prototype.refresh=function(b){a.apply(this,arguments);this.updateTabContainer()}})();(function(){mxCodecRegistry.getCodec(ChangePageSetup).exclude.push("page")})();(function(){var a=new mxObjectCodec(new MovePage,["ui"]);a.beforeDecode=function(a,e,d){d.ui=a.ui;return e};a.afterDecode=function(a,e,d){a=d.oldIndex;d.oldIndex=d.newIndex;d.newIndex=a;return d};mxCodecRegistry.register(a)})(); +(function(){var a=new mxObjectCodec(new RenamePage,["ui","page"]);a.beforeDecode=function(a,e,d){d.ui=a.ui;return e};a.afterDecode=function(a,e,d){a=d.previous;d.previous=d.name;d.name=a;return d};mxCodecRegistry.register(a)})(); +(function(){var a=new mxObjectCodec(new ChangePage,"ui relatedPage index neverShown page previousPage".split(" ")),b="defaultParent currentRoot scrollLeft scrollTop scale translate lastPasteXml pasteCounter".split(" ");a.afterEncode=function(a,d,k){k.setAttribute("relatedPage",d.relatedPage.getId());null==d.index&&(k.setAttribute("name",d.relatedPage.getName()),null!=d.relatedPage.viewState&&k.setAttribute("viewState",JSON.stringify(d.relatedPage.viewState,function(a,d){return 0>mxUtils.indexOf(b, +a)?d:void 0})),null!=d.relatedPage.root&&a.encodeCell(d.relatedPage.root,k));return k};a.beforeDecode=function(a,b,k){k.ui=a.ui;k.relatedPage=k.ui.getPageById(b.getAttribute("relatedPage"));if(null==k.relatedPage){var d=b.ownerDocument.createElement("diagram");d.setAttribute("id",b.getAttribute("relatedPage"));d.setAttribute("name",b.getAttribute("name"));k.relatedPage=new DiagramPage(d);d=b.getAttribute("viewState");null!=d&&(k.relatedPage.viewState=JSON.parse(d),b.removeAttribute("viewState")); +b=b.cloneNode(!0);d=b.firstChild;if(null!=d)for(k.relatedPage.root=a.decodeCell(d,!1),k=d.nextSibling,d.parentNode.removeChild(d),d=k;null!=d;){k=d.nextSibling;if(d.nodeType==mxConstants.NODETYPE_ELEMENT){var e=d.getAttribute("id");null==a.lookup(e)&&a.decodeCell(d)}d.parentNode.removeChild(d);d=k}}return b};a.afterDecode=function(a,b,k){k.index=k.previousIndex;return k};mxCodecRegistry.register(a)})();(function(){var a=mxClient.IS_SVG?"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAMAAABhEH5lAAAASFBMVEUAAAAAAAB/f3/9/f319fUfHx/7+/s+Pj69vb0AAAAAAAAAAAAAAAAAAAAAAAAAAAB2dnZ1dXUAAAAAAAAVFRX///8ZGRkGBgbOcI1hAAAAE3RSTlMA+vr9/f38+fb1893Bo00u+/tFvPJUBQAAAIRJREFUGNM0jEcSxCAQAxlydGqD///TNWxZBx1aXVIrWysplbapL3sFxgDq/idXBnHgBPK1nIxwc55vCXl6dRFtrV6svs/A/UjsPcpzA5tqyByD92HqQlMFh45BG6ND1DiKSoPDdm96N77bg5F+wyaEqRGb8ZiOwHQqdg9hehszcLAEIQB2lQ4p/sEpnAAAAABJRU5ErkJggg==":IMAGE_PATH+"/move.png";EditorUi.prototype.altShiftActions[68]= +"selectDescendants";var b=Graph.prototype.foldCells;Graph.prototype.foldCells=function(a,d,e,q,u){d=null!=d?d:!1;null==e&&(e=this.getFoldableCells(this.getSelectionCells(),a));this.stopEditing();this.model.beginUpdate();try{for(var c=e.slice(),f=[],g=0;g<e.length;g++){var k=this.view.getState(e[g]),l=null!=k?k.style:this.getCellStyle(e[g]);"1"==mxUtils.getValue(l,"treeFolding","0")&&(this.traverse(e[g],!0,mxUtils.bind(this,function(a,b){null!=b&&f.push(b);a!=e[g]&&f.push(a);return a==e[g]||!this.model.isCollapsed(a)})), +this.model.setCollapsed(e[g],a))}for(g=0;g<f.length;g++)this.model.setVisible(f[g],!a);e=c;e=b.apply(this,arguments)}finally{this.model.endUpdate()}return e};var e=EditorUi.prototype.init;EditorUi.prototype.init=function(){e.apply(this,arguments);this.editor.isChromelessView()&&!this.editor.editable||this.addTrees()};EditorUi.prototype.addTrees=function(){function b(a){return m.isVertex(a)&&d(a)}function d(a){var b=!1;null!=a&&(a=m.getParent(a),b=h.view.getState(a),h.view.getState(a),b="tree"==(null!= +b?b.style:h.getCellStyle(a)).containerType);return b}function e(a){var b=!1;null!=a&&(a=m.getParent(a),b=h.view.getState(a),h.view.getState(a),b=null!=(null!=b?b.style:h.getCellStyle(a)).childLayout);return b}function q(a){a=h.view.getState(a);if(null!=a){var b=h.getIncomingEdges(a.cell);if(0<b.length&&(b=h.view.getState(b[0]),null!=b&&(b=b.absolutePoints,null!=b&&0<b.length&&(b=b[b.length-1],null!=b)))){if(b.y==a.y&&Math.abs(b.x-a.getCenterX())<a.width/2)return mxConstants.DIRECTION_SOUTH;if(b.y== +a.y+a.height&&Math.abs(b.x-a.getCenterX())<a.width/2)return mxConstants.DIRECTION_NORTH;if(b.x>a.getCenterX())return mxConstants.DIRECTION_WEST}}return mxConstants.DIRECTION_EAST}function u(a,b){b=null!=b?b:!0;h.model.beginUpdate();try{var c=h.model.getParent(a),d=h.getIncomingEdges(a),e=h.cloneCells([d[0],a]);h.model.setTerminal(e[0],h.model.getTerminal(d[0],!0),!0);var f=q(a),g=c.geometry;f==mxConstants.DIRECTION_SOUTH||f==mxConstants.DIRECTION_NORTH?e[1].geometry.x+=b?a.geometry.width+10:-e[1].geometry.width- +10:e[1].geometry.y+=b?a.geometry.height+10:-e[1].geometry.height-10;h.view.currentRoot!=c&&(e[1].geometry.x-=g.x,e[1].geometry.y-=g.y);var k=h.view.getState(a),m=h.view.scale;if(null!=k){var l=mxRectangle.fromRectangle(k);f==mxConstants.DIRECTION_SOUTH||f==mxConstants.DIRECTION_NORTH?l.x+=(b?a.geometry.width+10:-e[1].geometry.width-10)*m:l.y+=(b?a.geometry.height+10:-e[1].geometry.height-10)*m;var p=h.getOutgoingEdges(h.model.getTerminal(d[0],!0));if(null!=p){for(var n=f==mxConstants.DIRECTION_SOUTH|| +f==mxConstants.DIRECTION_NORTH,t=g=d=0;t<p.length;t++){var r=h.model.getTerminal(p[t],!1);if(f==q(r)){var x=h.view.getState(r);r!=a&&null!=x&&(n&&b!=x.getCenterX()<k.getCenterX()||!n&&b!=x.getCenterY()<k.getCenterY())&&mxUtils.intersects(l,x)&&(d=10+Math.max(d,(Math.min(l.x+l.width,x.x+x.width)-Math.max(l.x,x.x))/m),g=10+Math.max(g,(Math.min(l.y+l.height,x.y+x.height)-Math.max(l.y,x.y))/m))}}n?g=0:d=0;for(t=0;t<p.length;t++)if(r=h.model.getTerminal(p[t],!1),f==q(r)&&(x=h.view.getState(r),r!=a&&null!= +x&&(n&&b!=x.getCenterX()<k.getCenterX()||!n&&b!=x.getCenterY()<k.getCenterY()))){var u=[];h.traverse(x.cell,!0,function(a,b){null!=b&&u.push(b);u.push(a);return!0});h.moveCells(u,(b?1:-1)*d,(b?1:-1)*g)}}}return h.addCells(e,c)}finally{h.model.endUpdate()}}function c(a){h.model.beginUpdate();try{var b=q(a),c=h.getIncomingEdges(a),d=h.cloneCells([c[0],a]);h.model.setTerminal(c[0],d[1],!1);h.model.setTerminal(d[0],d[1],!0);h.model.setTerminal(d[0],a,!1);var e=h.model.getParent(a),f=e.geometry,g=[];h.view.currentRoot!= +e&&(d[1].geometry.x-=f.x,d[1].geometry.y-=f.y);h.traverse(a,!0,function(a,b){null!=b&&g.push(b);g.push(a);return!0});var k=a.geometry.width+40,m=a.geometry.height+40;b==mxConstants.DIRECTION_SOUTH?k=0:b==mxConstants.DIRECTION_NORTH?(k=0,m=-40):b==mxConstants.DIRECTION_WEST?(k=-40,m=0):b==mxConstants.DIRECTION_EAST&&(m=0);h.moveCells(g,k,m);return h.addCells(d,e)}finally{h.model.endUpdate()}}function f(a){h.model.beginUpdate();try{var b=h.model.getParent(a),c=h.getIncomingEdges(a),d=h.cloneCells([c[0], +a]);h.model.setTerminal(d[0],a,!0);var c=h.getOutgoingEdges(a),e=b.geometry,f=[];h.view.currentRoot==b&&(e=new mxRectangle);for(var g=0;g<c.length;g++){var k=h.model.getTerminal(c[g],!1);null!=k&&f.push(k)}var m=h.view.getBounds(f),l=q(a),p=h.view.translate,n=h.view.scale;l==mxConstants.DIRECTION_SOUTH?(d[1].geometry.x=null==m?a.geometry.x+(a.geometry.width-d[1].geometry.width)/2:(m.x+m.width)/n-p.x-e.x+10,d[1].geometry.y+=a.geometry.height-e.y+40):l==mxConstants.DIRECTION_NORTH?(d[1].geometry.x= +null==m?a.geometry.x+(a.geometry.width-d[1].geometry.width)/2:(m.x+m.width)/n-p.x+-e.x+10,d[1].geometry.y-=d[1].geometry.height-e.y+40):(d[1].geometry.x=l==mxConstants.DIRECTION_WEST?d[1].geometry.x-(d[1].geometry.width-e.x+40):d[1].geometry.x+(a.geometry.width-e.x+40),d[1].geometry.y=null==m?a.geometry.y+(a.geometry.height-d[1].geometry.height)/2:(m.y+m.height)/n-p.y+-e.y+10);return h.addCells(d,b)}finally{h.model.endUpdate()}}function g(a,b,c){a=h.getOutgoingEdges(a);c=h.view.getState(c);var d= +[];if(null!=c&&null!=a){for(var e=0;e<a.length;e++){var f=h.view.getState(h.model.getTerminal(a[e],!1));null!=f&&(!b&&Math.min(f.x+f.width,c.x+c.width)>=Math.max(f.x,c.x)||b&&Math.min(f.y+f.height,c.y+c.height)>=Math.max(f.y,c.y))&&d.push(f)}d.sort(function(a,c){return b?a.x+a.width-c.x-c.width:a.y+a.height-c.y-c.height})}return d}function n(a,b){var c=q(a),d=b==mxConstants.DIRECTION_EAST||b==mxConstants.DIRECTION_WEST;(c==mxConstants.DIRECTION_EAST||c==mxConstants.DIRECTION_WEST)==d&&c!=b?r.actions.get("selectParent").funct(): +c==b?(d=h.getOutgoingEdges(a),null!=d&&0<d.length&&h.setSelectionCell(h.model.getTerminal(d[0],!1))):(c=h.getIncomingEdges(a),null!=c&&0<c.length&&(d=g(h.model.getTerminal(c[0],!0),d,a),c=h.view.getState(a),null!=c&&(c=mxUtils.indexOf(d,c),0<=c&&(c+=b==mxConstants.DIRECTION_NORTH||b==mxConstants.DIRECTION_WEST?-1:1,0<=c&&c<=d.length-1&&h.setSelectionCell(d[c].cell)))))}var r=this,h=r.editor.graph,m=h.getModel();mxResources.parse("selectChildren=Select Children");mxResources.parse("selectSiblings=Select Siblings"); +mxResources.parse("selectDescendants=Select Descendants");mxResources.parse("selectParent=Select Parent");var w=r.menus.createPopupMenu;r.menus.createPopupMenu=function(a,c,d){w.apply(this,arguments);if(1==h.getSelectionCount()){c=h.getSelectionCell();var e=h.getOutgoingEdges(c);a.addSeparator();null!=e&&0<e.length&&(b(h.getSelectionCell())&&this.addMenuItems(a,["selectChildren"],null,d),this.addMenuItems(a,["selectDescendants"],null,d));b(h.getSelectionCell())&&(a.addSeparator(),0<h.getIncomingEdges(c).length&& +this.addMenuItems(a,["selectSiblings","selectParent"],null,d))}};r.actions.addAction("selectChildren",function(){if(h.isEnabled()&&1==h.getSelectionCount()){var a=h.getSelectionCell(),a=h.getOutgoingEdges(a);if(null!=a){for(var b=[],c=0;c<a.length;c++)b.push(h.model.getTerminal(a[c],!1));h.setSelectionCells(b)}}},null,null,"Alt+Shift+X");r.actions.addAction("selectSiblings",function(){if(h.isEnabled()&&1==h.getSelectionCount()){var a=h.getSelectionCell(),a=h.getIncomingEdges(a);if(null!=a&&0<a.length&& +(a=h.getOutgoingEdges(h.model.getTerminal(a[0],!0)),null!=a)){for(var b=[],c=0;c<a.length;c++)b.push(h.model.getTerminal(a[c],!1));h.setSelectionCells(b)}}},null,null,"Alt+Shift+S");r.actions.addAction("selectParent",function(){if(h.isEnabled()&&1==h.getSelectionCount()){var a=h.getSelectionCell(),a=h.getIncomingEdges(a);null!=a&&0<a.length&&h.setSelectionCell(h.model.getTerminal(a[0],!0))}},null,null,"Alt+Shift+P");r.actions.addAction("selectDescendants",function(){if(h.isEnabled()&&1==h.getSelectionCount()){var a= +h.getSelectionCell(),b=[];h.traverse(a,!0,function(a,c){null!=c&&b.push(c);b.push(a);return!0});h.setSelectionCells(b)}},null,null,"Alt+Shift+D");var v=h.removeCells;h.removeCells=function(a,c){c=null!=c?c:!0;null==a&&(a=this.getDeletableCells(this.getSelectionCells()));c&&(a=this.getDeletableCells(this.addAllEdges(a)));for(var e=[],f=0;f<a.length;f++){var g=a[f];m.isEdge(g)&&d(g)&&(e.push(g),g=m.getTerminal(g,!1));b(g)?(h.traverse(g,!0,function(a,b){null!=b&&e.push(b);e.push(a);return!0}),g=h.getIncomingEdges(a[f]), +a=a.concat(g)):e.push(a[f])}a=e;return v.apply(this,arguments)};r.hoverIcons.getStateAt=function(a,c,d){return b(a.cell)?null:this.graph.view.getState(this.graph.getCellAt(c,d))};var A=h.duplicateCells;h.duplicateCells=function(a,c){a=null!=a?a:this.getSelectionCells();for(var d=a.slice(0),e=0;e<d.length;e++){var f=h.view.getState(d[e]);if(null!=f&&b(f.cell))for(var g=h.getIncomingEdges(f.cell),f=0;f<g.length;f++)mxUtils.remove(g[f],a)}this.model.beginUpdate();try{var k=A.call(this,a,c);if(k.length== +a.length)for(e=0;e<a.length;e++)if(b(a[e])){var m=h.getIncomingEdges(k[e]),g=h.getIncomingEdges(a[e]);if(0==m.length&&0<g.length){var l=this.cloneCells([g[0]])[0];this.addEdge(l,h.getDefaultParent(),this.model.getTerminal(g[0],!0),k[e])}}}finally{this.model.endUpdate()}return k};var y=h.moveCells;h.moveCells=function(a,c,d,e,f,g,k){var m=null;this.model.beginUpdate();try{var l=f,p=this.view.getState(f),n=null!=p?p.style:this.getCellStyle(f);if(null!=a&&b(f)&&"1"==mxUtils.getValue(n,"treeFolding", +"0")){for(var t=0;t<a.length;t++)if(b(a[t])||h.model.isEdge(a[t])&&null==h.model.getTerminal(a[t],!0)){f=h.model.getParent(a[t]);break}if(null!=l&&f!=l&&null!=this.view.getState(a[0])){var q=h.getIncomingEdges(a[0]);if(0<q.length){var r=h.view.getState(h.model.getTerminal(q[0],!0));if(null!=r){var u=h.view.getState(l);null!=u&&(c=(u.getCenterX()-r.getCenterX())/h.view.scale,d=(u.getCenterY()-r.getCenterY())/h.view.scale)}}}}m=y.apply(this,arguments);if(null!=m&&null!=a&&m.length==a.length)for(t=0;t< +m.length;t++)if(this.model.isEdge(m[t]))b(l)&&0>mxUtils.indexOf(m,this.model.getTerminal(m[t],!0))&&this.model.setTerminal(m[t],l,!0);else if(b(a[t])&&(q=h.getIncomingEdges(a[t]),0<q.length))if(!e)b(l)&&0>mxUtils.indexOf(a,this.model.getTerminal(q[0],!0))&&this.model.setTerminal(q[0],l,!0);else if(0==h.getIncomingEdges(m[t]).length){p=l;if(null==p||p==h.model.getParent(a[t]))p=h.model.getTerminal(q[0],!0);e=this.cloneCells([q[0]])[0];this.addEdge(e,h.getDefaultParent(),p,m[t])}}finally{this.model.endUpdate()}return m}; +if(null!=r.sidebar){var t=r.sidebar.dropAndConnect;r.sidebar.dropAndConnect=function(a,c,d,e){var f=h.model,g=null;f.beginUpdate();try{if(g=t.apply(this,arguments),b(a))for(var k=0;k<g.length;k++)if(f.isEdge(g[k])&&null==f.getTerminal(g[k],!0)){f.setTerminal(g[k],a,!0);var m=h.getCellGeometry(g[k]);m.points=null;null!=m.getTerminalPoint(!0)&&m.setTerminalPoint(null,!0)}}finally{f.endUpdate()}return g}}var z={88:r.actions.get("selectChildren"),84:r.actions.get("selectSubtree"),80:r.actions.get("selectParent"), +83:r.actions.get("selectSiblings")},H=r.onKeyDown;r.onKeyDown=function(a){try{if(h.isEnabled()&&!h.isEditing()&&b(h.getSelectionCell())&&1==h.getSelectionCount()){var d=null;0<h.getIncomingEdges(h.getSelectionCell()).length&&(9==a.which?d=mxEvent.isShiftDown(a)?c(h.getSelectionCell()):f(h.getSelectionCell()):13==a.which&&(d=u(h.getSelectionCell(),!mxEvent.isShiftDown(a))));if(null!=d&&0<d.length)1==d.length&&h.model.isEdge(d[0])?h.setSelectionCell(h.model.getTerminal(d[0],!1)):h.setSelectionCell(d[d.length- +1]),null!=r.hoverIcons&&r.hoverIcons.update(h.view.getState(h.getSelectionCell())),h.startEditingAtCell(h.getSelectionCell()),mxEvent.consume(a);else if(mxEvent.isAltDown(a)&&mxEvent.isShiftDown(a)){var e=z[a.keyCode];null!=e&&(e.funct(a),mxEvent.consume(a))}else 37==a.keyCode?(n(h.getSelectionCell(),mxConstants.DIRECTION_WEST),mxEvent.consume(a)):38==a.keyCode?(n(h.getSelectionCell(),mxConstants.DIRECTION_NORTH),mxEvent.consume(a)):39==a.keyCode?(n(h.getSelectionCell(),mxConstants.DIRECTION_EAST), +mxEvent.consume(a)):40==a.keyCode&&(n(h.getSelectionCell(),mxConstants.DIRECTION_SOUTH),mxEvent.consume(a))}}catch(R){console.log("error",R)}mxEvent.isConsumed(a)||H.apply(this,arguments)};var G=h.connectVertex;h.connectVertex=function(a,d,e,g,k,m){var l=h.getIncomingEdges(a);return b(a)&&0<l.length?(e=q(a),g=e==mxConstants.DIRECTION_EAST||e==mxConstants.DIRECTION_WEST,k=d==mxConstants.DIRECTION_EAST||d==mxConstants.DIRECTION_WEST,e==d?f(a):g==k?c(a):u(a,d!=mxConstants.DIRECTION_NORTH&&d!=mxConstants.DIRECTION_WEST)): +G.call(this,a,d,e,g,k,m)};h.getSubtree=function(a){var c=[a];b(a)&&!e(a)&&h.traverse(a,!0,function(a,b){null!=b&&0>mxUtils.indexOf(c,b)&&c.push(b);0>mxUtils.indexOf(c,a)&&c.push(a);return!0});return c};var B=mxVertexHandler.prototype.init;mxVertexHandler.prototype.init=function(){B.apply(this,arguments);b(this.state.cell)&&0<this.graph.getOutgoingEdges(this.state.cell).length&&(this.moveHandle=mxUtils.createImage(a),this.moveHandle.setAttribute("title","Move Subtree"),this.moveHandle.style.position= "absolute",this.moveHandle.style.cursor="pointer",this.moveHandle.style.width="18px",this.moveHandle.style.height="18px",this.graph.container.appendChild(this.moveHandle),mxEvent.addGestureListeners(this.moveHandle,mxUtils.bind(this,function(a){this.graph.graphHandler.start(this.state.cell,mxEvent.getClientX(a),mxEvent.getClientY(a));this.graph.graphHandler.cells=this.graph.getSubtree(this.state.cell);this.graph.graphHandler.bounds=this.state.view.getBounds(this.graph.graphHandler.cells);this.graph.graphHandler.pBounds= this.graph.graphHandler.getPreviewBounds(this.graph.graphHandler.cells);this.graph.graphHandler.cellWasClicked=!0;this.graph.isMouseTrigger=mxEvent.isMouseEvent(a);this.graph.isMouseDown=!0;mxEvent.consume(a)})))};var J=mxVertexHandler.prototype.redrawHandles;mxVertexHandler.prototype.redrawHandles=function(){J.apply(this,arguments);null!=this.moveHandle&&(this.moveHandle.style.left=this.state.x+this.state.width+(40>this.state.width?10:0)+2+"px",this.moveHandle.style.top=this.state.y+this.state.height+ -(40>this.state.height?10:0)+2+"px")};var K=mxVertexHandler.prototype.destroy;mxVertexHandler.prototype.destroy=function(a,b){K.apply(this,arguments);null!=this.moveHandle&&(this.moveHandle.parentNode.removeChild(this.moveHandle),this.moveHandle=null)}};if("undefined"!==typeof Sidebar){var b=Sidebar.prototype.createAdvancedShapes;Sidebar.prototype.createAdvancedShapes=function(){var a=b.apply(this,arguments),d=this.editorUi.editor.graph;return a.concat([this.addEntry("tree container",function(){var a= +(40>this.state.height?10:0)+2+"px")};var K=mxVertexHandler.prototype.destroy;mxVertexHandler.prototype.destroy=function(a,b){K.apply(this,arguments);null!=this.moveHandle&&(this.moveHandle.parentNode.removeChild(this.moveHandle),this.moveHandle=null)}};if("undefined"!==typeof Sidebar){var d=Sidebar.prototype.createAdvancedShapes;Sidebar.prototype.createAdvancedShapes=function(){var a=d.apply(this,arguments),b=this.editorUi.editor.graph;return a.concat([this.addEntry("tree container",function(){var a= new mxCell("Tree Container",new mxGeometry(0,0,220,160),"swimlane;html=1;startSize=20;horizontal=1;containerType=tree;");a.vertex=!0;return sb.createVertexTemplateFromCells([a],a.geometry.width,a.geometry.height,a.value)}),this.addEntry("tree mindmap central idea branch topic",function(){var a=new mxCell("Mindmap",new mxGeometry(0,0,420,126),"swimlane;html=1;startSize=20;horizontal=1;containerType=tree;");a.vertex=!0;var b=new mxCell("Central Idea",new mxGeometry(160,60,100,40),"ellipse;whiteSpace=wrap;html=1;align=center;container=1;recursiveResize=0;treeFolding=1;"); b.vertex=!0;var d=new mxCell("Topic",new mxGeometry(320,40,80,20),"whiteSpace=wrap;html=1;rounded=1;arcSize=50;align=center;verticalAlign=middle;container=1;recursiveResize=0;strokeWidth=1;autosize=1;spacing=4;treeFolding=1;");d.vertex=!0;var c=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=entityRelationEdgeStyle;startArrow=none;endArrow=none;segment=10;curved=1;");c.geometry.relative=!0;c.edge=!0;b.insertEdge(c,!0);d.insertEdge(c,!1);var e=new mxCell("Branch",new mxGeometry(320,80,72,26),"whiteSpace=wrap;html=1;shape=partialRectangle;top=0;left=0;bottom=1;right=0;points=[[0,1],[1,1]];strokeColor=#000000;fillColor=none;align=center;verticalAlign=bottom;routingCenterY=0.5;snapToPoint=1;container=1;recursiveResize=0;autosize=1;treeFolding=1;"); -e.vertex=!0;var g=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=entityRelationEdgeStyle;startArrow=none;endArrow=none;segment=10;curved=1;");g.geometry.relative=!0;g.edge=!0;b.insertEdge(g,!0);e.insertEdge(g,!1);var h=new mxCell("Topic",new mxGeometry(20,40,80,20),"whiteSpace=wrap;html=1;rounded=1;arcSize=50;align=center;verticalAlign=middle;container=1;recursiveResize=0;strokeWidth=1;autosize=1;spacing=4;treeFolding=1;");h.vertex=!0;var m=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=entityRelationEdgeStyle;startArrow=none;endArrow=none;segment=10;curved=1;"); -m.geometry.relative=!0;m.edge=!0;b.insertEdge(m,!0);h.insertEdge(m,!1);var l=new mxCell("Branch",new mxGeometry(20,80,72,26),"whiteSpace=wrap;html=1;shape=partialRectangle;top=0;left=0;bottom=1;right=0;points=[[0,1],[1,1]];strokeColor=#000000;fillColor=none;align=center;verticalAlign=bottom;routingCenterY=0.5;snapToPoint=1;container=1;recursiveResize=0;autosize=1;treeFolding=1;");l.vertex=!0;var n=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=entityRelationEdgeStyle;startArrow=none;endArrow=none;segment=10;curved=1;"); -n.geometry.relative=!0;n.edge=!0;b.insertEdge(n,!0);l.insertEdge(n,!1);a.insert(c);a.insert(g);a.insert(m);a.insert(n);a.insert(b);a.insert(d);a.insert(e);a.insert(h);a.insert(l);return sb.createVertexTemplateFromCells([a],a.geometry.width,a.geometry.height,a.value)}),this.addEntry("tree mindmap central idea",function(){var a=new mxCell("Central Idea",new mxGeometry(0,0,100,40),"ellipse;whiteSpace=wrap;html=1;align=center;container=1;recursiveResize=0;treeFolding=1;");a.vertex=!0;return sb.createVertexTemplateFromCells([a], +e.vertex=!0;var g=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=entityRelationEdgeStyle;startArrow=none;endArrow=none;segment=10;curved=1;");g.geometry.relative=!0;g.edge=!0;b.insertEdge(g,!0);e.insertEdge(g,!1);var k=new mxCell("Topic",new mxGeometry(20,40,80,20),"whiteSpace=wrap;html=1;rounded=1;arcSize=50;align=center;verticalAlign=middle;container=1;recursiveResize=0;strokeWidth=1;autosize=1;spacing=4;treeFolding=1;");k.vertex=!0;var l=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=entityRelationEdgeStyle;startArrow=none;endArrow=none;segment=10;curved=1;"); +l.geometry.relative=!0;l.edge=!0;b.insertEdge(l,!0);k.insertEdge(l,!1);var h=new mxCell("Branch",new mxGeometry(20,80,72,26),"whiteSpace=wrap;html=1;shape=partialRectangle;top=0;left=0;bottom=1;right=0;points=[[0,1],[1,1]];strokeColor=#000000;fillColor=none;align=center;verticalAlign=bottom;routingCenterY=0.5;snapToPoint=1;container=1;recursiveResize=0;autosize=1;treeFolding=1;");h.vertex=!0;var m=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=entityRelationEdgeStyle;startArrow=none;endArrow=none;segment=10;curved=1;"); +m.geometry.relative=!0;m.edge=!0;b.insertEdge(m,!0);h.insertEdge(m,!1);a.insert(c);a.insert(g);a.insert(l);a.insert(m);a.insert(b);a.insert(d);a.insert(e);a.insert(k);a.insert(h);return sb.createVertexTemplateFromCells([a],a.geometry.width,a.geometry.height,a.value)}),this.addEntry("tree mindmap central idea",function(){var a=new mxCell("Central Idea",new mxGeometry(0,0,100,40),"ellipse;whiteSpace=wrap;html=1;align=center;container=1;recursiveResize=0;treeFolding=1;");a.vertex=!0;return sb.createVertexTemplateFromCells([a], a.geometry.width,a.geometry.height,a.value)}),this.addEntry("tree mindmap branch",function(){var a=new mxCell("Branch",new mxGeometry(0,0,80,20),"whiteSpace=wrap;html=1;shape=partialRectangle;top=0;left=0;bottom=1;right=0;points=[[0,1],[1,1]];strokeColor=#000000;fillColor=none;align=center;verticalAlign=bottom;routingCenterY=0.5;snapToPoint=1;container=1;recursiveResize=0;autosize=1;treeFolding=1;");a.vertex=!0;var b=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=entityRelationEdgeStyle;startArrow=none;endArrow=none;segment=10;curved=1;"); b.geometry.setTerminalPoint(new mxPoint(-40,40),!0);b.geometry.relative=!0;b.edge=!0;a.insertEdge(b,!1);return sb.createVertexTemplateFromCells([a,b],a.geometry.width,a.geometry.height,a.value)}),this.addEntry("tree mindmap sub topic",function(){var a=new mxCell("Sub Topic",new mxGeometry(0,0,72,26),"whiteSpace=wrap;html=1;rounded=1;arcSize=50;align=center;verticalAlign=middle;container=1;recursiveResize=0;strokeWidth=1;autosize=1;spacing=4;treeFolding=1;");a.vertex=!0;var b=new mxCell("",new mxGeometry(0, -0,0,0),"edgeStyle=entityRelationEdgeStyle;startArrow=none;endArrow=none;segment=10;curved=1;");b.geometry.setTerminalPoint(new mxPoint(-40,40),!0);b.geometry.relative=!0;b.edge=!0;a.insertEdge(b,!1);return sb.createVertexTemplateFromCells([a,b],a.geometry.width,a.geometry.height,a.value)}),this.addEntry("tree orgchart organization division",function(){var a=new mxCell("Orgchart",new mxGeometry(0,0,280,220),"swimlane;html=1;startSize=20;horizontal=1;containerType=tree;");a.vertex=!0;var b=new mxCell("Organization", -new mxGeometry(80,40,120,60),"whiteSpace=wrap;html=1;align=center;treeFolding=1;container=1;recursiveResize=0;");d.setAttributeForCell(b,"treeRoot","1");b.vertex=!0;var e=new mxCell("Division",new mxGeometry(20,140,100,60),"whiteSpace=wrap;html=1;align=center;verticalAlign=middle;container=1;recursiveResize=0;treeFolding=1;");e.vertex=!0;var c=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=elbowEdgeStyle;elbow=vertical;startArrow=none;endArrow=none;rounded=0;");c.geometry.relative=!0;c.edge=!0; -b.insertEdge(c,!0);e.insertEdge(c,!1);var f=new mxCell("Division",new mxGeometry(160,140,100,60),"whiteSpace=wrap;html=1;align=center;verticalAlign=middle;container=1;recursiveResize=0;treeFolding=1;");f.vertex=!0;var g=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=elbowEdgeStyle;elbow=vertical;startArrow=none;endArrow=none;rounded=0;");g.geometry.relative=!0;g.edge=!0;b.insertEdge(g,!0);f.insertEdge(g,!1);a.insert(c);a.insert(g);a.insert(b);a.insert(e);a.insert(f);return sb.createVertexTemplateFromCells([a], -a.geometry.width,a.geometry.height,a.value)}),this.addEntry("tree root",function(){var a=new mxCell("Organization",new mxGeometry(0,0,120,60),"whiteSpace=wrap;html=1;align=center;treeFolding=1;container=1;recursiveResize=0;");d.setAttributeForCell(a,"treeRoot","1");a.vertex=!0;return sb.createVertexTemplateFromCells([a],a.geometry.width,a.geometry.height,a.value)}),this.addEntry("tree division",function(){var a=new mxCell("Division",new mxGeometry(20,40,100,60),"whiteSpace=wrap;html=1;align=center;verticalAlign=middle;container=1;recursiveResize=0;treeFolding=1;"); +0,0,0),"edgeStyle=entityRelationEdgeStyle;startArrow=none;endArrow=none;segment=10;curved=1;");b.geometry.setTerminalPoint(new mxPoint(-40,40),!0);b.geometry.relative=!0;b.edge=!0;a.insertEdge(b,!1);return sb.createVertexTemplateFromCells([a,b],a.geometry.width,a.geometry.height,a.value)}),this.addEntry("tree orgchart organization division",function(){var a=new mxCell("Orgchart",new mxGeometry(0,0,280,220),"swimlane;html=1;startSize=20;horizontal=1;containerType=tree;");a.vertex=!0;var d=new mxCell("Organization", +new mxGeometry(80,40,120,60),"whiteSpace=wrap;html=1;align=center;treeFolding=1;container=1;recursiveResize=0;");b.setAttributeForCell(d,"treeRoot","1");d.vertex=!0;var e=new mxCell("Division",new mxGeometry(20,140,100,60),"whiteSpace=wrap;html=1;align=center;verticalAlign=middle;container=1;recursiveResize=0;treeFolding=1;");e.vertex=!0;var c=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=elbowEdgeStyle;elbow=vertical;startArrow=none;endArrow=none;rounded=0;");c.geometry.relative=!0;c.edge=!0; +d.insertEdge(c,!0);e.insertEdge(c,!1);var f=new mxCell("Division",new mxGeometry(160,140,100,60),"whiteSpace=wrap;html=1;align=center;verticalAlign=middle;container=1;recursiveResize=0;treeFolding=1;");f.vertex=!0;var g=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=elbowEdgeStyle;elbow=vertical;startArrow=none;endArrow=none;rounded=0;");g.geometry.relative=!0;g.edge=!0;d.insertEdge(g,!0);f.insertEdge(g,!1);a.insert(c);a.insert(g);a.insert(d);a.insert(e);a.insert(f);return sb.createVertexTemplateFromCells([a], +a.geometry.width,a.geometry.height,a.value)}),this.addEntry("tree root",function(){var a=new mxCell("Organization",new mxGeometry(0,0,120,60),"whiteSpace=wrap;html=1;align=center;treeFolding=1;container=1;recursiveResize=0;");b.setAttributeForCell(a,"treeRoot","1");a.vertex=!0;return sb.createVertexTemplateFromCells([a],a.geometry.width,a.geometry.height,a.value)}),this.addEntry("tree division",function(){var a=new mxCell("Division",new mxGeometry(20,40,100,60),"whiteSpace=wrap;html=1;align=center;verticalAlign=middle;container=1;recursiveResize=0;treeFolding=1;"); a.vertex=!0;var b=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=elbowEdgeStyle;elbow=vertical;startArrow=none;endArrow=none;rounded=0;");b.geometry.setTerminalPoint(new mxPoint(0,0),!0);b.geometry.relative=!0;b.edge=!0;a.insertEdge(b,!1);return sb.createVertexTemplateFromCells([a,b],a.geometry.width,a.geometry.height,a.value)}),this.addEntry("tree sub sections",function(){var a=new mxCell("Sub Section",new mxGeometry(0,0,100,60),"whiteSpace=wrap;html=1;align=center;verticalAlign=middle;container=1;recursiveResize=0;treeFolding=1;"); a.vertex=!0;var b=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=orthogonalEdgeStyle;startArrow=none;endArrow=none;rounded=0;targetPortConstraint=eastwest;sourcePortConstraint=northsouth;");b.geometry.setTerminalPoint(new mxPoint(110,-40),!0);b.geometry.relative=!0;b.edge=!0;a.insertEdge(b,!1);var d=new mxCell("Sub Section",new mxGeometry(120,0,100,60),"whiteSpace=wrap;html=1;align=center;verticalAlign=middle;container=1;recursiveResize=0;treeFolding=1;");d.vertex=!0;var c=new mxCell("",new mxGeometry(0, -0,0,0),"edgeStyle=orthogonalEdgeStyle;startArrow=none;endArrow=none;rounded=0;targetPortConstraint=eastwest;sourcePortConstraint=northsouth;");c.geometry.setTerminalPoint(new mxPoint(110,-40),!0);c.geometry.relative=!0;c.edge=!0;d.insertEdge(c,!1);return sb.createVertexTemplateFromCells([b,c,a,d],220,60,"Sub Sections")})])}}})();EditorUi.initMinimalTheme=function(){function a(a){var b=a.editor.graph;b.popupMenuHandler.hideMenu();null==a.formatWindow?(a.formatWindow=new h(a,mxResources.get("format"),Math.max(20,a.diagramContainer.clientWidth-240-12),56,240,Math.min(550,b.container.clientHeight-10),function(b){b=a.createFormat(b);b.init();return b}),a.formatWindow.window.minimumSize=new mxRectangle(0,0,240,80),a.formatWindow.window.setVisible(!0)):a.formatWindow.window.setVisible(!a.formatWindow.window.isVisible());a.formatWindow.window.isVisible()&& -a.formatWindow.window.fit()}function d(a){var b=a.editor.graph;b.popupMenuHandler.hideMenu();new mxRectangle;if(null==a.sidebarWindow){var c=Math.min(b.container.clientWidth-10,266);a.sidebarWindow=new h(a,mxResources.get("shapes"),10,56,c-6,Math.min(650,b.container.clientHeight-30),function(b){function c(c,d){var f=a.menus.get(c),g=e.addMenu(d,mxUtils.bind(this,function(){f.funct.apply(this,arguments)}));g.style.cssText="position:absolute;border-top:1px solid lightgray;width:50%;height:24px;bottom:0px;text-align:center;cursor:pointer;padding:6px 0 0 0;"; +0,0,0),"edgeStyle=orthogonalEdgeStyle;startArrow=none;endArrow=none;rounded=0;targetPortConstraint=eastwest;sourcePortConstraint=northsouth;");c.geometry.setTerminalPoint(new mxPoint(110,-40),!0);c.geometry.relative=!0;c.edge=!0;d.insertEdge(c,!1);return sb.createVertexTemplateFromCells([b,c,a,d],220,60,"Sub Sections")})])}}})();EditorUi.initMinimalTheme=function(){function a(a){var b=a.editor.graph;b.popupMenuHandler.hideMenu();null==a.formatWindow?(a.formatWindow=new k(a,mxResources.get("format"),Math.max(20,a.diagramContainer.clientWidth-240-12),56,240,Math.min(550,b.container.clientHeight-10),function(b){b=a.createFormat(b);b.init();return b}),a.formatWindow.window.minimumSize=new mxRectangle(0,0,240,80),a.formatWindow.window.setVisible(!0)):a.formatWindow.window.setVisible(!a.formatWindow.window.isVisible());a.formatWindow.window.isVisible()&& +a.formatWindow.window.fit()}function b(a){var b=a.editor.graph;b.popupMenuHandler.hideMenu();new mxRectangle;if(null==a.sidebarWindow){var c=Math.min(b.container.clientWidth-10,266);a.sidebarWindow=new k(a,mxResources.get("shapes"),10,56,c-6,Math.min(650,b.container.clientHeight-30),function(b){function c(c,d){var f=a.menus.get(c),g=e.addMenu(d,mxUtils.bind(this,function(){f.funct.apply(this,arguments)}));g.style.cssText="position:absolute;border-top:1px solid lightgray;width:50%;height:24px;bottom:0px;text-align:center;cursor:pointer;padding:6px 0 0 0;"; g.className="geTitle";b.appendChild(g);return g}var d=document.createElement("div");d.style.cssText="position:absolute;left:0;right:0;border-top:1px solid lightgray;height:24px;bottom:31px;text-align:center;cursor:pointer;padding:6px 0 0 0;";d.className="geTitle";mxUtils.write(d,mxResources.get("moreShapes"));b.appendChild(d);mxEvent.addListener(d,"click",function(){a.actions.get("shapes").funct()});var e=new Menubar(a,b);if(!Editor.enableCustomLibraries||"1"==urlParams.embed&&"1"!=urlParams.libraries)d.style.bottom= "0";else if(null!=a.actions.get("newLibrary")){d=document.createElement("div");d.style.cssText="position:absolute;left:0px;width:50%;border-top:1px solid lightgray;height:30px;bottom:0px;text-align:center;cursor:pointer;padding:0px;";d.className="geTitle";var f=document.createElement("span");f.style.cssText="position:relative;top:6px;";mxUtils.write(f,mxResources.get("newLibrary"));d.appendChild(f);b.appendChild(d);mxEvent.addListener(d,"click",a.actions.get("newLibrary").funct);d=document.createElement("div"); d.style.cssText="position:absolute;left:50%;width:50%;border-top:1px solid lightgray;height:30px;bottom:0px;text-align:center;cursor:pointer;padding:0px;border-left: 1px solid lightgray;";d.className="geTitle";f=document.createElement("span");f.style.cssText="position:relative;top:6px;";mxUtils.write(f,mxResources.get("openLibrary"));d.appendChild(f);b.appendChild(d);mxEvent.addListener(d,"click",a.actions.get("openLibrary").funct)}else d=c("newLibrary",mxResources.get("newLibrary")),d.style.left= "0",d=c("openLibraryFrom",mxResources.get("openLibraryFrom")),d.style.borderLeft="1px solid lightgray",d.style.left="50%";b.appendChild(a.sidebar.container);b.style.overflow="hidden";return b});a.sidebarWindow.window.minimumSize=new mxRectangle(0,0,90,90);a.sidebarWindow.window.setVisible(!0);a.getLocalData("sidebar",function(b){a.sidebar.showEntries(b,null,!0)});a.restoreLibraries()}else a.sidebarWindow.window.setVisible(!a.sidebarWindow.window.isVisible());a.sidebarWindow.window.isVisible()&&a.sidebarWindow.window.fit()} -if("1"==urlParams.lightbox||"0"==urlParams.chrome||"undefined"===typeof window.Format||"undefined"===typeof window.Menus)window.uiTheme=null;else{var e=window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth;try{var b=document.createElement("style");b.type="text/css";b.innerHTML="* { -webkit-font-smoothing: antialiased; }html body .mxWindow button.geBtn { font-size:12px !important; margin-left: 0;}html body div.diagramContainer button, html body button.geBtn { font-size:14px; font-weight:700;border-radius: 5px; }html body button.geBtn:active { opacity: 0.6; }.geDialog input, .geToolbarContainer input, .mxWindow input {padding:2px !important;display:inline-block !important; }div.geDialog { border-radius: 5px; }html body div.geDialog button.geBigButton { color: #fff !important; }.mxWindow button, .geDialog select, .mxWindow select { display:inline-block; }html body .mxWindow .geColorBtn, html body .geDialog .geColorBtn { background: none; }html body div.diagramContainer button, html body .mxWindow button, html body .geDialog button { min-width: 0px; border-radius: 5px; color: #353535 !important; border-color: rgb(216, 216, 216); }div.diagramContainer button.geBtn, .mxWindow button.geBtn, .geDialog button.geBtn { min-width:72px; font-weight: 600; background: none; }div.diagramContainer button.geBtn:hover, .mxWindow button.geBtn:hover, .geDialog button.geBtn:hover { box-shadow: none; border-color: rgb(216, 216, 216); }div.diagramContainer button.gePrimaryBtn, .mxWindow button.gePrimaryBtn, .geDialog button.gePrimaryBtn, html body .gePrimaryBtn { background: #29b6f2; color: #fff !important; border: none; box-shadow: none; }html body .gePrimaryBtn:hover { background: #29b6f2; border: none; box-shadow: inherit; }html body button.gePrimaryBtn:hover { background: #29b6f2; border: none; }.geBtn button { min-width:72px !important; }div.geToolbarContainer a.geButton { margin:2px; padding: 0 2px 4px 2px; } .geDialog, .mxWindow td.mxWindowPane *, div.geSprite, td.mxWindowTitle, .geDiagramContainer { box-sizing:content-box; }.mxWindow div button.geStyleButton { box-sizing: border-box; }table.mxWindow td.mxWindowPane button.geColorBtn { padding:0px; box-sizing: border-box; }td.mxWindowPane .geSidebarContainer button { padding:2px 0 2px 0; box-sizing: border-box; }html body .geMenuItem { font-size:14px; text-decoration: none; font-weight: normal; padding: 6px 10px 6px 10px; border: none; border-radius: 5px; color: #353535; box-shadow: inset 0 0 0 1px rgba(0,0,0,.11), inset 0 -1px 0 0 rgba(0,0,0,.08), 0 1px 2px 0 rgba(0,0,0,.04); }a.geMenuItem:active { opacity: 0.4; }.geToolbarContainer { background:#fff !important; }div.mxWindow .geSidebarContainer .geTitle { background-color:#fdfdfd; }div.mxWindow .geSidebarContainer .geTitle:hover { background-color:#fafafa; }div.geSidebar { background-color: #fff !important;}div.mxWindow td.mxWindowPane button { background-image: none; float: none; }td.mxWindowTitle { height: 22px !important; background: none !important; font-size: 13px !important; text-align:center !important; border-bottom:1px solid lightgray; }div.mxWindow, div.mxWindowTitle { background-image: none !important; background-color:#fff !important; }div.mxWindow { border-radius:5px; box-shadow: 0px 0px 2px #C0C0C0 !important;}div.mxWindow * { font-family: inherit !important; }html div.geVerticalHandle { position:absolute;bottom:0px;left:50%;cursor:row-resize;width:11px;height:11px;background:white;margin-bottom:-6px; margin-left:-6px; border: none; border-radius: 6px; box-shadow: inset 0 0 0 1px rgba(0,0,0,.11), inset 0 -1px 0 0 rgba(0,0,0,.08), 0 1px 2px 0 rgba(0,0,0,.04); }html div.geInactivePage { background: rgb(249, 249, 249) !important; color:lightgray !important; } html div.geActivePage { background: white !important;color: #353535 !important; } html div.mxRubberband { border:1px solid; border-color: #29b6f2 !important; background:rgba(41,182,242,0.5) !important; } html body div.mxPopupMenu { border-radius:5px; border:1px solid #c0c0c0; padding:5px 0 5px 0; box-shadow: 0px 4px 17px -4px rgba(96,96,96,1); } html table.mxPopupMenu td.mxPopupMenuItem { color: #353535; font-size: 14px; padding-top: 4px; padding-bottom: 4px; }html table.mxPopupMenu tr.mxPopupMenuItemHover { background-color: #29b6f2; }html tr.mxPopupMenuItemHover td.mxPopupMenuItem, html tr.mxPopupMenuItemHover td.mxPopupMenuItem span { color: #fff !important; }html tr.mxPopupMenuItem, html td.mxPopupMenuItem { transition-property: none !important; }html table.mxPopupMenu hr { height: 2px; background-color: rgba(0,0,0,.07); margin: 5px 0; }"; -document.getElementsByTagName("head")[0].appendChild(b)}catch(n){}var h=function(a,b,c,d,e,f,g){a=document.createElement("div");a.className="geSidebarContainer";a.style.position="absolute";a.style.width="100%";a.style.height="100%";a.style.border="1px solid whiteSmoke";a.style.overflowX="hidden";a.style.overflowY="auto";g(a);this.window=new mxWindow(b,a,c,d,e,f,!0,!0);this.window.destroyOnClose=!1;this.window.setMaximizable(!1);this.window.setResizable(!0);this.window.setClosable(!0);this.window.setVisible(!0); +if("1"==urlParams.lightbox||"0"==urlParams.chrome||"undefined"===typeof window.Format||"undefined"===typeof window.Menus)window.uiTheme=null;else{var e=window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth;try{var d=document.createElement("style");d.type="text/css";d.innerHTML="* { -webkit-font-smoothing: antialiased; }html body .mxWindow button.geBtn { font-size:12px !important; margin-left: 0;}html body div.diagramContainer button, html body button.geBtn { font-size:14px; font-weight:700;border-radius: 5px; }html body button.geBtn:active { opacity: 0.6; }.geDialog input, .geToolbarContainer input, .mxWindow input {padding:2px !important;display:inline-block !important; }div.geDialog { border-radius: 5px; }html body div.geDialog button.geBigButton { color: #fff !important; }.mxWindow button, .geDialog select, .mxWindow select { display:inline-block; }html body .mxWindow .geColorBtn, html body .geDialog .geColorBtn { background: none; }html body div.diagramContainer button, html body .mxWindow button, html body .geDialog button { min-width: 0px; border-radius: 5px; color: #353535 !important; border-color: rgb(216, 216, 216); }div.diagramContainer button.geBtn, .mxWindow button.geBtn, .geDialog button.geBtn { min-width:72px; font-weight: 600; background: none; }div.diagramContainer button.geBtn:hover, .mxWindow button.geBtn:hover, .geDialog button.geBtn:hover { box-shadow: none; border-color: rgb(216, 216, 216); }div.diagramContainer button.gePrimaryBtn, .mxWindow button.gePrimaryBtn, .geDialog button.gePrimaryBtn, html body .gePrimaryBtn { background: #29b6f2; color: #fff !important; border: none; box-shadow: none; }html body .gePrimaryBtn:hover { background: #29b6f2; border: none; box-shadow: inherit; }html body button.gePrimaryBtn:hover { background: #29b6f2; border: none; }.geBtn button { min-width:72px !important; }div.geToolbarContainer a.geButton { margin:2px; padding: 0 2px 4px 2px; } .geDialog, .mxWindow td.mxWindowPane *, div.geSprite, td.mxWindowTitle, .geDiagramContainer { box-sizing:content-box; }.mxWindow div button.geStyleButton { box-sizing: border-box; }table.mxWindow td.mxWindowPane button.geColorBtn { padding:0px; box-sizing: border-box; }td.mxWindowPane .geSidebarContainer button { padding:2px 0 2px 0; box-sizing: border-box; }html body .geMenuItem { font-size:14px; text-decoration: none; font-weight: normal; padding: 6px 10px 6px 10px; border: none; border-radius: 5px; color: #353535; box-shadow: inset 0 0 0 1px rgba(0,0,0,.11), inset 0 -1px 0 0 rgba(0,0,0,.08), 0 1px 2px 0 rgba(0,0,0,.04); }a.geMenuItem:active { opacity: 0.4; }.geToolbarContainer { background:#fff !important; }div.mxWindow .geSidebarContainer .geTitle { background-color:#fdfdfd; }div.mxWindow .geSidebarContainer .geTitle:hover { background-color:#fafafa; }div.geSidebar { background-color: #fff !important;}div.mxWindow td.mxWindowPane button { background-image: none; float: none; }td.mxWindowTitle { height: 22px !important; background: none !important; font-size: 13px !important; text-align:center !important; border-bottom:1px solid lightgray; }div.mxWindow, div.mxWindowTitle { background-image: none !important; background-color:#fff !important; }div.mxWindow { border-radius:5px; box-shadow: 0px 0px 2px #C0C0C0 !important;}div.mxWindow * { font-family: inherit !important; }html div.geVerticalHandle { position:absolute;bottom:0px;left:50%;cursor:row-resize;width:11px;height:11px;background:white;margin-bottom:-6px; margin-left:-6px; border: none; border-radius: 6px; box-shadow: inset 0 0 0 1px rgba(0,0,0,.11), inset 0 -1px 0 0 rgba(0,0,0,.08), 0 1px 2px 0 rgba(0,0,0,.04); }html div.geInactivePage { background: rgb(249, 249, 249) !important; color:lightgray !important; } html div.geActivePage { background: white !important;color: #353535 !important; } html div.mxRubberband { border:1px solid; border-color: #29b6f2 !important; background:rgba(41,182,242,0.5) !important; } html body div.mxPopupMenu { border-radius:5px; border:1px solid #c0c0c0; padding:5px 0 5px 0; box-shadow: 0px 4px 17px -4px rgba(96,96,96,1); } html table.mxPopupMenu td.mxPopupMenuItem { color: #353535; font-size: 14px; padding-top: 4px; padding-bottom: 4px; }html table.mxPopupMenu tr.mxPopupMenuItemHover { background-color: #29b6f2; }html tr.mxPopupMenuItemHover td.mxPopupMenuItem, html tr.mxPopupMenuItemHover td.mxPopupMenuItem span { color: #fff !important; }html tr.mxPopupMenuItem, html td.mxPopupMenuItem { transition-property: none !important; }html table.mxPopupMenu hr { height: 2px; background-color: rgba(0,0,0,.07); margin: 5px 0; }"; +document.getElementsByTagName("head")[0].appendChild(d)}catch(m){}var k=function(a,b,c,d,e,f,g){a=document.createElement("div");a.className="geSidebarContainer";a.style.position="absolute";a.style.width="100%";a.style.height="100%";a.style.border="1px solid whiteSmoke";a.style.overflowX="hidden";a.style.overflowY="auto";g(a);this.window=new mxWindow(b,a,c,d,e,f,!0,!0);this.window.destroyOnClose=!1;this.window.setMaximizable(!1);this.window.setResizable(!0);this.window.setClosable(!0);this.window.setVisible(!0); this.window.setLocation=function(a,b){var c=window.innerHeight||document.documentElement.clientHeight||document.body.clientHeight;a=Math.max(0,Math.min(a,(window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth)-this.table.clientWidth));b=Math.max(0,Math.min(b,c-this.table.clientHeight-48));this.getX()==a&&this.getY()==b||mxWindow.prototype.setLocation.apply(this,arguments)}};Editor.checkmarkImage=Graph.createSvgImage(22,18,'<path transform="translate(4 0)" d="M7.181,15.007a1,1,0,0,1-.793-0.391L3.222,10.5A1,1,0,1,1,4.808,9.274L7.132,12.3l6.044-8.86A1,1,0,1,1,14.83,4.569l-6.823,10a1,1,0,0,1-.8.437H7.181Z" fill="#29b6f2"/>').src; mxWindow.prototype.closeImage=Graph.createSvgImage(18,10,'<path d="M 5 1 L 13 9 M 13 1 L 5 9" stroke="#C0C0C0" stroke-width="2"/>').src;mxWindow.prototype.minimizeImage=Graph.createSvgImage(14,10,'<path d="M 3 7 L 7 3 L 11 7" stroke="#C0C0C0" stroke-width="2" fill="#ffffff"/>').src;mxWindow.prototype.normalizeImage=Graph.createSvgImage(14,10,'<path d="M 3 3 L 7 7 L 11 3" stroke="#C0C0C0" stroke-width="2" fill="#ffffff"/>').src;mxConstraintHandler.prototype.pointImage=Graph.createSvgImage(5,5,'<path d="m 0 0 L 5 5 M 0 5 L 5 0" stroke="#29b6f2"/>'); mxOutline.prototype.sizerImage=null;mxConstants.VERTEX_SELECTION_COLOR="#C0C0C0";mxConstants.EDGE_SELECTION_COLOR="#C0C0C0";mxConstants.CONNECT_HANDLE_FILLCOLOR="#cee7ff";mxConstants.DEFAULT_VALID_COLOR="#29b6f2";mxConstants.GUIDE_COLOR="#C0C0C0";mxConstants.HIGHLIGHT_STROKEWIDTH=5;mxConstants.HIGHLIGHT_OPACITY=35;mxConstants.OUTLINE_COLOR="#29b6f2";mxConstants.OUTLINE_HANDLE_FILLCOLOR="#29b6f2";mxConstants.OUTLINE_HANDLE_STROKECOLOR="#fff";Graph.prototype.svgShadowColor="#3D4574";Graph.prototype.svgShadowOpacity= "0.4";Graph.prototype.svgShadowSize="0.6";Graph.prototype.svgShadowBlur="1.2";Format.prototype.inactiveTabBackgroundColor="#f0f0f0";mxGraphHandler.prototype.previewColor="#C0C0C0";mxRubberband.prototype.defaultOpacity=50;HoverIcons.prototype.inactiveOpacity=25;Format.prototype.showCloseButton=!1;EditorUi.prototype.closableScratchpad=!1;EditorUi.prototype.toolbarHeight=46;EditorUi.prototype.footerHeight=0;Graph.prototype.editAfterInsert=!0;Editor.prototype.isChromelessView=function(){return!1};Graph.prototype.isLightboxView= -function(){return!1};var m=EditorUi.prototype.updateTabContainer;EditorUi.prototype.updateTabContainer=function(){null!=this.tabContainer&&(this.tabContainer.style.right="70px",this.diagramContainer.style.bottom="30px");m.apply(this,arguments)};var p=EditorUi.prototype.updateActionStates;EditorUi.prototype.updateActionStates=function(){p.apply(this,arguments);this.menus.get("save").setEnabled(null!=this.getCurrentFile()||"1"==urlParams.embed)};var q=Menus.prototype.addShortcut;Menus.prototype.addShortcut= +function(){return!1};var l=EditorUi.prototype.updateTabContainer;EditorUi.prototype.updateTabContainer=function(){null!=this.tabContainer&&(this.tabContainer.style.right="70px",this.diagramContainer.style.bottom="30px");l.apply(this,arguments)};var p=EditorUi.prototype.updateActionStates;EditorUi.prototype.updateActionStates=function(){p.apply(this,arguments);this.menus.get("save").setEnabled(null!=this.getCurrentFile()||"1"==urlParams.embed)};var q=Menus.prototype.addShortcut;Menus.prototype.addShortcut= function(a,b){null!=b.shortcut&&900>e&&!mxClient.IS_IOS?a.firstChild.nextSibling.setAttribute("title",b.shortcut):q.apply(this,arguments)};var u=App.prototype.updateUserElement;App.prototype.updateUserElement=function(){u.apply(this,arguments);if(null!=this.userElement){var a=this.userElement;a.style.cssText="display:inline-block;position:relative;margin-right:4px;";a.className="";a.innerHTML="";a.style.backgroundImage="url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTIgMTJjMi4yMSAwIDQtMS43OSA0LTRzLTEuNzktNC00LTQtNCAxLjc5LTQgNCAxLjc5IDQgNCA0em0wIDJjLTIuNjcgMC04IDEuMzQtOCA0djJoMTZ2LTJjMC0yLjY2LTUuMzMtNC04LTR6Ii8+PC9zdmc+)"; a.style.backgroundPosition="center center";a.style.backgroundRepeat="no-repeat";a.style.backgroundSize="24px 24px";a.style.height="24px";a.style.width="24px";mxUtils.setOpacity(a,30);a.setAttribute("title",mxResources.get("changeUser"))}};var c=App.prototype.updateButtonContainer;App.prototype.updateButtonContainer=function(){c.apply(this,arguments);if(null!=this.shareButton){var a=this.shareButton;a.style.cssText="display:inline-block;position:relative;box-sizing:border-box;margin-right:4px;cursor:pointer;"; a.className="";a.innerHTML="";a.style.backgroundImage="url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTggMTYuMDhjLS43NiAwLTEuNDQuMy0xLjk2Ljc3TDguOTEgMTIuN2MuMDUtLjIzLjA5LS40Ni4wOS0uN3MtLjA0LS40Ny0uMDktLjdsNy4wNS00LjExYy41NC41IDEuMjUuODEgMi4wNC44MSAxLjY2IDAgMy0xLjM0IDMtM3MtMS4zNC0zLTMtMy0zIDEuMzQtMyAzYzAgLjI0LjA0LjQ3LjA5LjdMOC4wNCA5LjgxQzcuNSA5LjMxIDYuNzkgOSA2IDljLTEuNjYgMC0zIDEuMzQtMyAzczEuMzQgMyAzIDNjLjc5IDAgMS41LS4zMSAyLjA0LS44MWw3LjEyIDQuMTZjLS4wNS4yMS0uMDguNDMtLjA4LjY1IDAgMS42MSAxLjMxIDIuOTIgMi45MiAyLjkyIDEuNjEgMCAyLjkyLTEuMzEgMi45Mi0yLjkycy0xLjMxLTIuOTItMi45Mi0yLjkyeiIvPjwvc3ZnPg==)"; @@ -3203,99 +3208,99 @@ mxUtils.bind(this,function(a,b){var c=new FilenameDialog(this.editorUi,a,mxResou null,c),a.addSeparator(),this.addSubmenu("layout",a)):d.isSelectionEmpty()&&d.isEnabled()?(a.addSeparator(),this.addMenuItems(a,["editData"],null,c),a.addSeparator(),this.addSubmenu("insert",a),this.addSubmenu("layout",a),a.addSeparator(),this.addSubmenu("view",a,null,mxResources.get("options")),this.addMenuItems(a,["-","exitGroup"],null,c)):d.isEnabled()&&this.addMenuItems(a,["-","lockUnlock"],null,c)};EditorUi.prototype.toggleFormatPanel=function(b){null!=this.formatWindow?this.formatWindow.window.setVisible(b? !1:!this.formatWindow.window.isVisible()):a(this)};DiagramFormatPanel.prototype.isMathOptionVisible=function(){return!0};var g=EditorUi.prototype.destroy;EditorUi.prototype.destroy=function(){null!=this.sidebarWindow&&(this.sidebarWindow.window.setVisible(!1),this.sidebarWindow.window.destroy(),this.sidebarWindow=null);null!=this.formatWindow&&(this.formatWindow.window.setVisible(!1),this.formatWindow.window.destroy(),this.formatWindow=null);null!=this.actions.outlineWindow&&(this.actions.outlineWindow.window.setVisible(!1), this.actions.outlineWindow.window.destroy(),this.actions.outlineWindow=null);null!=this.actions.layersWindow&&(this.actions.layersWindow.window.setVisible(!1),this.actions.layersWindow.window.destroy(),this.actions.layersWindow=null);null!=this.menus.tagsWindow&&(this.menus.tagsWindow.window.setVisible(!1),this.menus.tagsWindow.window.destroy(),this.menus.tagsWindow=null);null!=this.menus.findWindow&&(this.menus.findWindow.window.setVisible(!1),this.menus.findWindow.window.destroy(),this.menus.findWindow= -null);g.apply(this,arguments)};var k=EditorUi.prototype.setGraphEnabled;EditorUi.prototype.setGraphEnabled=function(a){k.apply(this,arguments);a||(null!=this.sidebarWindow&&this.sidebarWindow.window.setVisible(!1),null!=this.formatWindow&&this.formatWindow.window.setVisible(!1))};EditorUi.prototype.chromelessWindowResize=function(){};var r=Menus.prototype.init;Menus.prototype.init=function(){r.apply(this,arguments);var b=this.editorUi,c=b.editor.graph;b.actions.get("insertText").label=mxResources.get("text"); -b.actions.get("insertText").label=mxResources.get("text");b.actions.get("editDiagram").label=mxResources.get("formatXml")+"...";b.actions.get("insertRectangle").label=mxResources.get("rectangle");b.actions.get("insertEllipse").label=mxResources.get("ellipse");b.actions.get("insertRhombus").label=mxResources.get("rhombus");b.actions.get("insertImage").label=mxResources.get("image")+"...";b.actions.get("insertLink").label=mxResources.get("link")+"...";b.actions.get("createShape").label=mxResources.get("shape")+ -"...";b.actions.get("outline").label=mxResources.get("outline")+"...";b.actions.get("layers").label=mxResources.get("layers")+"...";b.actions.put("importFile",new Action("File...",function(){c.popupMenuHandler.hideMenu();var a=document.createElement("input");a.setAttribute("type","file");mxEvent.addListener(a,"change",function(){null!=a.files&&b.importFiles(a.files,null,null,b.maxImageSize)});a.click()}));b.actions.put("importCsv",new Action(mxResources.get("csv")+"...",function(){c.popupMenuHandler.hideMenu(); -b.showImportCsvDialog()}));b.actions.put("importText",new Action(mxResources.get("text")+"...",function(){var a=new ParseDialog(b,"Insert from Text");b.showDialog(a.container,620,420,!0,!1);a.init()}));b.actions.put("formatSql",new Action(mxResources.get("formatSql")+"...",function(){var a=new ParseDialog(b,"Insert from Text","formatSql");b.showDialog(a.container,620,420,!0,!1);a.init()}));b.actions.put("toggleShapes",new Action(mxResources.get("shapes")+"...",function(){d(b)}));b.actions.put("toggleFormat", -new Action(mxResources.get("format")+"...",function(){a(b)}));EditorUi.enablePlantUml&&!b.isOffline()&&b.actions.put("plantUml",new Action(mxResources.get("plantUml")+"...",function(){var a=new ParseDialog(b,"Insert from Text","plantUml");b.showDialog(a.container,620,420,!0,!1);a.init()}));this.put("diagram",new Menu(mxUtils.bind(this,function(a,c){b.menus.addSubmenu("extras",a,c,mxResources.get("preferences"));a.addSeparator(c);mxClient.IS_CHROMEAPP||EditorUi.isElectronApp?b.menus.addMenuItems(a, -"new open - save saveAs -".split(" "),c):"1"==urlParams.embed?(b.menus.addMenuItems(a,["-","save"],c),"1"==urlParams.saveAndExit&&b.menus.addMenuItems(a,["saveAndExit"],c),a.addSeparator(c)):(b.menus.addMenuItems(a,["new"],c),b.menus.addSubmenu("openFrom",a,c),a.addSeparator(c),b.menus.addSubmenu("save",a,c));b.menus.addSubmenu("exportAs",a,c);var d=b.getCurrentFile();null!=d&&d.constructor==DriveFile&&(b.menus.addMenuItems(a,["-","share"],c),null!=d.realtime&&b.menus.addMenuItems(a,["chatWindowTitle"], -c),a.addSeparator(c));b.menus.addMenuItems(a,"- outline layers - find tags".split(" "),c);mxClient.IS_IOS&&navigator.standalone||b.menus.addMenuItems(a,["-","print","-"],c);b.menus.addSubmenu("help",a,c);"1"==urlParams.embed?b.menus.addMenuItems(a,["-","exit"],c):b.menus.addMenuItems(a,["-","close"])})));if(isLocalStorage){var e=this.get("openFrom"),f=e.funct;e.funct=function(a,c){f.apply(this,arguments);a.addSeparator(c);b.menus.addSubmenu("openRecent",a,c)}}this.put("save",new Menu(mxUtils.bind(this, -function(a,c){var d=b.getCurrentFile();null!=d&&d.constructor==DriveFile?b.menus.addMenuItems(a,["createRevision","makeCopy","-","rename","moveToFolder"],c):(b.menus.addMenuItems(a,["save","saveAs","-","rename"],c),b.isOfflineApp()?navigator.onLine&&"1"!=urlParams.stealth&&this.addMenuItems(a,["upload"],c):b.menus.addMenuItems(a,["makeCopy"],c));null==d||d.constructor!=DriveFile&&d.constructor!=DropboxFile||b.menus.addMenuItems(a,["-","revisionHistory"],c);b.menus.addMenuItems(a,["-","autosave"], -c)})));var g=this.get("exportAs");this.put("exportAs",new Menu(mxUtils.bind(this,function(a,c){g.funct(a,c);mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||b.menus.addMenuItems(a,["publishLink"],c);a.addSeparator(c);b.menus.addSubmenu("embed",a,c)})));var h=this.get("language");this.put("extras",new Menu(mxUtils.bind(this,function(a,c){"1"!=urlParams.embed&&b.menus.addSubmenu("theme",a,c);null!=h&&b.menus.addSubmenu("language",a,c);a.addSeparator(c);b.menus.addMenuItems(a,["scrollbars","tooltips"], -c);"1"!=urlParams.embed&&(isLocalStorage||mxClient.IS_CHROMEAPP)&&b.menus.addMenuItems(a,["-","search","scratchpad","-","showStartScreen"],c);!b.isOfflineApp()&&isLocalStorage&&(a.addSeparator(c),b.menus.addMenuItem(a,"plugins",c))})));this.put("insertAdvanced",new Menu(mxUtils.bind(this,function(a,c){b.menus.addMenuItems(a,"importText plantUml - formatSql importCsv - createShape editDiagram".split(" "),c)})));mxResources.parse("insertLayout="+mxResources.get("layout"));mxResources.parse("insertAdvanced="+ -mxResources.get("advanced"));this.put("insert",new Menu(mxUtils.bind(this,function(a,c){b.menus.addMenuItems(a,"insertRectangle insertEllipse insertRhombus - insertText insertLink - insertImage".split(" "),c);mxClient.IS_CHROMEAPP||EditorUi.isElectronApp?b.menus.addMenuItems(a,["import"],c):b.menus.addSubmenu("importFrom",a,c);a.addSeparator(c);b.menus.addSubmenu("insertLayout",a,c);b.menus.addSubmenu("insertAdvanced",a,c)})));var k="horizontalFlow verticalFlow - horizontalTree verticalTree radialTree - organic circle".split(" "), -l=function(a,c,d,e){a.addItem(d,null,mxUtils.bind(this,function(){var a=new CreateGraphDialog(b,d,e);b.showDialog(a.container,620,420,!0,!1);a.init()}),c)};this.put("insertLayout",new Menu(mxUtils.bind(this,function(a,b){for(var c=0;c<k.length;c++)"-"==k[c]?a.addSeparator(b):l(a,b,mxResources.get(k[c])+"...",k[c])})));this.put("view",new Menu(mxUtils.bind(this,function(a,c){b.menus.addMenuItems(a,"grid guides - connectionArrows connectionPoints -".split(" "),c);if("undefined"!==typeof MathJax){var d= -b.menus.addMenuItem(a,"mathematicalTypesetting",c);b.menus.addLinkToItem(d,"https://desk.draw.io/support/solutions/articles/16000032875")}b.menus.addMenuItems(a,["copyConnect","collapseExpand","-","pageScale"],c)})))};var l=EditorUi.prototype.init;EditorUi.prototype.init=function(){function a(a,b,c,d){var e=g.menus.get(a),f=p.addMenu(mxResources.get(a),mxUtils.bind(this,function(){e.funct.apply(this,arguments)}),m);f.className="geMenuItem";f.style.display="inline-block";f.style.boxSizing="border-box"; +null);g.apply(this,arguments)};var n=EditorUi.prototype.setGraphEnabled;EditorUi.prototype.setGraphEnabled=function(a){n.apply(this,arguments);a||(null!=this.sidebarWindow&&this.sidebarWindow.window.setVisible(!1),null!=this.formatWindow&&this.formatWindow.window.setVisible(!1))};EditorUi.prototype.chromelessWindowResize=function(){};var r=Menus.prototype.init;Menus.prototype.init=function(){r.apply(this,arguments);var c=this.editorUi,d=c.editor.graph;c.actions.get("insertText").label=mxResources.get("text"); +c.actions.get("insertText").label=mxResources.get("text");c.actions.get("editDiagram").label=mxResources.get("formatXml")+"...";c.actions.get("insertRectangle").label=mxResources.get("rectangle");c.actions.get("insertEllipse").label=mxResources.get("ellipse");c.actions.get("insertRhombus").label=mxResources.get("rhombus");c.actions.get("insertImage").label=mxResources.get("image")+"...";c.actions.get("insertLink").label=mxResources.get("link")+"...";c.actions.get("createShape").label=mxResources.get("shape")+ +"...";c.actions.get("outline").label=mxResources.get("outline")+"...";c.actions.get("layers").label=mxResources.get("layers")+"...";c.actions.put("importFile",new Action("File...",function(){d.popupMenuHandler.hideMenu();var a=document.createElement("input");a.setAttribute("type","file");mxEvent.addListener(a,"change",function(){null!=a.files&&c.importFiles(a.files,null,null,c.maxImageSize)});a.click()}));c.actions.put("importCsv",new Action(mxResources.get("csv")+"...",function(){d.popupMenuHandler.hideMenu(); +c.showImportCsvDialog()}));c.actions.put("importText",new Action(mxResources.get("text")+"...",function(){var a=new ParseDialog(c,"Insert from Text");c.showDialog(a.container,620,420,!0,!1);a.init()}));c.actions.put("formatSql",new Action(mxResources.get("formatSql")+"...",function(){var a=new ParseDialog(c,"Insert from Text","formatSql");c.showDialog(a.container,620,420,!0,!1);a.init()}));c.actions.put("toggleShapes",new Action(mxResources.get("shapes")+"...",function(){b(c)}));c.actions.put("toggleFormat", +new Action(mxResources.get("format")+"...",function(){a(c)}));EditorUi.enablePlantUml&&!c.isOffline()&&c.actions.put("plantUml",new Action(mxResources.get("plantUml")+"...",function(){var a=new ParseDialog(c,"Insert from Text","plantUml");c.showDialog(a.container,620,420,!0,!1);a.init()}));this.put("diagram",new Menu(mxUtils.bind(this,function(a,b){var d=c.getCurrentFile();c.menus.addSubmenu("extras",a,b,mxResources.get("preferences"));a.addSeparator(b);mxClient.IS_CHROMEAPP||EditorUi.isElectronApp? +c.menus.addMenuItems(a,"new open - save saveAs -".split(" "),b):"1"==urlParams.embed?(c.menus.addMenuItems(a,["-","save"],b),"1"==urlParams.saveAndExit&&c.menus.addMenuItems(a,["saveAndExit"],b),a.addSeparator(b)):(c.menus.addMenuItems(a,["new"],b),c.menus.addSubmenu("openFrom",a,b),a.addSeparator(b),c.menus.addSubmenu("save",a,b));c.menus.addSubmenu("exportAs",a,b);null!=d&&d.constructor==DriveFile&&(c.menus.addMenuItems(a,["-","share"],b),null!=d.realtime?c.menus.addMenuItems(a,["chatWindowTitle"], +b):c.menus.addMenuItems(a,["-","refresh"],b),a.addSeparator(b));c.menus.addMenuItems(a,"- outline layers - find tags".split(" "),b);mxClient.IS_IOS&&navigator.standalone||c.menus.addMenuItems(a,["-","print","-"],b);c.menus.addSubmenu("help",a,b);"1"==urlParams.embed?c.menus.addMenuItems(a,["-","exit"],b):c.menus.addMenuItems(a,["-","close"])})));if(isLocalStorage){var e=this.get("openFrom"),f=e.funct;e.funct=function(a,b){f.apply(this,arguments);a.addSeparator(b);c.menus.addSubmenu("openRecent",a, +b)}}this.put("save",new Menu(mxUtils.bind(this,function(a,b){var d=c.getCurrentFile();null!=d&&d.constructor==DriveFile?c.menus.addMenuItems(a,["createRevision","makeCopy","-","rename","moveToFolder"],b):(c.menus.addMenuItems(a,["save","saveAs","-","rename"],b),c.isOfflineApp()?navigator.onLine&&"1"!=urlParams.stealth&&this.addMenuItems(a,["upload"],b):c.menus.addMenuItems(a,["makeCopy"],b));null==d||d.constructor!=DriveFile&&d.constructor!=DropboxFile||c.menus.addMenuItems(a,["-","revisionHistory"], +b);c.menus.addMenuItems(a,["-","autosave"],b)})));var g=this.get("exportAs");this.put("exportAs",new Menu(mxUtils.bind(this,function(a,b){g.funct(a,b);mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||c.menus.addMenuItems(a,["publishLink"],b);a.addSeparator(b);c.menus.addSubmenu("embed",a,b)})));var h=this.get("language");this.put("extras",new Menu(mxUtils.bind(this,function(a,b){"1"!=urlParams.embed&&c.menus.addSubmenu("theme",a,b);null!=h&&c.menus.addSubmenu("language",a,b);a.addSeparator(b);c.menus.addMenuItems(a, +["scrollbars","tooltips"],b);"1"!=urlParams.embed&&(isLocalStorage||mxClient.IS_CHROMEAPP)&&c.menus.addMenuItems(a,["-","search","scratchpad","-","showStartScreen"],b);!c.isOfflineApp()&&isLocalStorage&&(a.addSeparator(b),c.menus.addMenuItem(a,"plugins",b))})));this.put("insertAdvanced",new Menu(mxUtils.bind(this,function(a,b){c.menus.addMenuItems(a,"importText plantUml - formatSql importCsv - createShape editDiagram".split(" "),b)})));mxResources.parse("insertLayout="+mxResources.get("layout")); +mxResources.parse("insertAdvanced="+mxResources.get("advanced"));this.put("insert",new Menu(mxUtils.bind(this,function(a,b){c.menus.addMenuItems(a,"insertRectangle insertEllipse insertRhombus - insertText insertLink - insertImage".split(" "),b);mxClient.IS_CHROMEAPP||EditorUi.isElectronApp?c.menus.addMenuItems(a,["import"],b):c.menus.addSubmenu("importFrom",a,b);a.addSeparator(b);c.menus.addSubmenu("insertLayout",a,b);c.menus.addSubmenu("insertAdvanced",a,b)})));var k="horizontalFlow verticalFlow - horizontalTree verticalTree radialTree - organic circle".split(" "), +l=function(a,b,d,e){a.addItem(d,null,mxUtils.bind(this,function(){var a=new CreateGraphDialog(c,d,e);c.showDialog(a.container,620,420,!0,!1);a.init()}),b)};this.put("insertLayout",new Menu(mxUtils.bind(this,function(a,b){for(var c=0;c<k.length;c++)"-"==k[c]?a.addSeparator(b):l(a,b,mxResources.get(k[c])+"...",k[c])})));this.put("view",new Menu(mxUtils.bind(this,function(a,b){c.menus.addMenuItems(a,"grid guides - connectionArrows connectionPoints -".split(" "),b);if("undefined"!==typeof MathJax){var d= +c.menus.addMenuItem(a,"mathematicalTypesetting",b);c.menus.addLinkToItem(d,"https://desk.draw.io/support/solutions/articles/16000032875")}c.menus.addMenuItems(a,["copyConnect","collapseExpand","-","pageScale"],b)})))};var h=EditorUi.prototype.init;EditorUi.prototype.init=function(){function a(a,b,c,d){var e=g.menus.get(a),f=p.addMenu(mxResources.get(a),mxUtils.bind(this,function(){e.funct.apply(this,arguments)}),n);f.className="geMenuItem";f.style.display="inline-block";f.style.boxSizing="border-box"; f.style.top="6px";f.style.marginRight="6px";f.style.height="30px";f.style.paddingTop="6px";f.style.paddingBottom="6px";f.setAttribute("title",mxResources.get(a));g.menus.menuCreated(e,f,"geMenuItem");null!=c?(f.style.backgroundImage="url("+c+")",f.style.backgroundPosition="center center",f.style.backgroundRepeat="no-repeat",f.style.backgroundSize="24px 24px",f.style.width="34px",f.innerHTML="",mxUtils.setOpacity(f,d||40)):b||(f.style.backgroundImage="url("+mxWindow.prototype.normalizeImage+")",f.style.backgroundPosition= -"right 6px center",f.style.backgroundRepeat="no-repeat",f.style.paddingRight="22px");return f}function b(a,b,c,d,e,f){var h=document.createElement("a");h.setAttribute("href","javascript:void(0)");h.className="geMenuItem";h.style.display="inline-block";h.style.boxSizing="border-box";h.style.height="30px";h.style.padding="6px";h.style.position="relative";h.style.verticalAlign="top";h.style.top="0px";null!=g.statusContainer?k.insertBefore(h,g.statusContainer):k.appendChild(h);null!=f?(h.style.backgroundImage= +"right 6px center",f.style.backgroundRepeat="no-repeat",f.style.paddingRight="22px");return f}function b(a,b,c,d,e,f){var h=document.createElement("a");h.setAttribute("href","javascript:void(0)");h.className="geMenuItem";h.style.display="inline-block";h.style.boxSizing="border-box";h.style.height="30px";h.style.padding="6px";h.style.position="relative";h.style.verticalAlign="top";h.style.top="0px";null!=g.statusContainer?l.insertBefore(h,g.statusContainer):l.appendChild(h);null!=f?(h.style.backgroundImage= "url("+f+")",h.style.backgroundPosition="center center",h.style.backgroundRepeat="no-repeat",h.style.backgroundSize="24px 24px",h.style.width="34px"):mxUtils.write(h,a);mxEvent.addListener(h,"click",function(a){"disabled"!=h.getAttribute("disabled")&&b(a);mxEvent.consume(a)});null==c&&(h.style.marginRight="4px");null!=d&&h.setAttribute("title",d);mxUtils.setOpacity(h,null!=f?40:100);null!=e&&(a=function(){e.isEnabled()?(h.removeAttribute("disabled"),mxUtils.setOpacity(h,null!=f?40:100),h.style.cursor= ""):(h.setAttribute("disabled","disabled"),mxUtils.setOpacity(h,null!=f?10:20),h.style.cursor="default")},e.addListener("stateChanged",a),a());return h}function c(a){var b=document.createElement("div");b.className="geMenuItem";b.style.display="inline-block";b.style.verticalAlign="top";b.style.marginRight="6px";b.style.padding="0 4px 0 4px";b.style.height="30px";b.style.position="relative";b.style.top="0px";for(var c=0;c<a.length;c++)null!=a[c]&&(a[c].style.margin="0px",a[c].style.boxShadow="none", -b.appendChild(a[c]));null!=g.statusContainer?k.insertBefore(b,g.statusContainer):k.appendChild(b);return b}function d(){for(var d=k.firstChild;null!=d;){var f=d.nextSibling;"geMenuItem"!=d.className&&"geItem"!=d.className||d.parentNode.removeChild(d);d=f}m=k.firstChild;e=window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth;(d=900>e)||a("diagram");c([d?a("diagram",null,IMAGE_PATH+"/drawlogo-gray.svg",100):null,b(mxResources.get("shapes"),g.actions.get("toggleShapes").funct, +b.appendChild(a[c]));null!=g.statusContainer?l.insertBefore(b,g.statusContainer):l.appendChild(b);return b}function d(){for(var d=l.firstChild;null!=d;){var f=d.nextSibling;"geMenuItem"!=d.className&&"geItem"!=d.className||d.parentNode.removeChild(d);d=f}n=l.firstChild;e=window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth;(d=900>e)||a("diagram");c([d?a("diagram",null,IMAGE_PATH+"/drawlogo-gray.svg",100):null,b(mxResources.get("shapes"),g.actions.get("toggleShapes").funct, null,mxResources.get("shapes"),g.actions.get("image"),d?"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTMgMTN2OGg4di04aC04ek0zIDIxaDh2LThIM3Y4ek0zIDN2OGg4VjNIM3ptMTMuNjYtMS4zMUwxMSA3LjM0IDE2LjY2IDEzbDUuNjYtNS42Ni01LjY2LTUuNjV6Ii8+PC9zdmc+":null),b(mxResources.get("format"),g.actions.get("toggleFormat").funct,null,mxResources.get("format")+" ("+g.actions.get("formatPanel").shortcut+")",g.actions.get("image"), d?"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTIgM2MtNC45NyAwLTkgNC4wMy05IDlzNC4wMyA5IDkgOWMuODMgMCAxLjUtLjY3IDEuNS0xLjUgMC0uMzktLjE1LS43NC0uMzktMS4wMS0uMjMtLjI2LS4zOC0uNjEtLjM4LS45OSAwLS44My42Ny0xLjUgMS41LTEuNUgxNmMyLjc2IDAgNS0yLjI0IDUtNSAwLTQuNDItNC4wMy04LTktOHptLTUuNSA5Yy0uODMgMC0xLjUtLjY3LTEuNS0xLjVTNS42NyA5IDYuNSA5IDggOS42NyA4IDEwLjUgNy4zMyAxMiA2LjUgMTJ6bTMtNEM4LjY3IDggOCA3LjMzIDggNi41UzguNjcgNSA5LjUgNXMxLjUuNjcgMS41IDEuNVMxMC4zMyA4IDkuNSA4em01IDBjLS44MyAwLTEuNS0uNjctMS41LTEuNVMxMy42NyA1IDE0LjUgNXMxLjUuNjcgMS41IDEuNVMxNS4zMyA4IDE0LjUgOHptMyA0Yy0uODMgMC0xLjUtLjY3LTEuNS0xLjVTMTYuNjcgOSAxNy41IDlzMS41LjY3IDEuNSAxLjUtLjY3IDEuNS0xLjUgMS41eiIvPjwvc3ZnPg==": null)]);f=a("insert",!0,d?"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTkgMTNoLTZ2NmgtMnYtNkg1di0yaDZWNWgydjZoNnYyeiIvPjwvc3ZnPg==":null,40);c([f,b(mxResources.get("delete"),g.actions.get("delete").funct,null,mxResources.get("delete"),g.actions.get("delete"),d?"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNNiAxOWMwIDEuMS45IDIgMiAyaDhjMS4xIDAgMi0uOSAyLTJWN0g2djEyek0xOSA0aC0zLjVsLTEtMWgtNWwtMSAxSDV2MmgxNFY0eiIvPjwvc3ZnPg==": null)]);if(411<=e&&(f=g.actions.get("undo"),d=g.actions.get("redo"),f=b("",f.funct,null,mxResources.get("undo")+" ("+f.shortcut+")",f,"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTIuNSA4Yy0yLjY1IDAtNS4wNS45OS02LjkgMi42TDIgN3Y5aDlsLTMuNjItMy42MmMxLjM5LTEuMTYgMy4xNi0xLjg4IDUuMTItMS44OCAzLjU0IDAgNi41NSAyLjMxIDcuNiA1LjVsMi4zNy0uNzhDMjEuMDggMTEuMDMgMTcuMTUgOCAxMi41IDh6Ii8+PC9zdmc+"),d=b("",d.funct, -null,mxResources.get("redo")+" ("+d.shortcut+")",d,"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTguNCAxMC42QzE2LjU1IDguOTkgMTQuMTUgOCAxMS41IDhjLTQuNjUgMC04LjU4IDMuMDMtOS45NiA3LjIyTDMuOSAxNmMxLjA1LTMuMTkgNC4wNS01LjUgNy42LTUuNSAxLjk1IDAgMy43My43MiA1LjEyIDEuODhMMTMgMTZoOVY3bC0zLjYgMy42eiIvPjwvc3ZnPg=="),c([f,d]),480<=e)){var d=g.actions.get("zoomIn"),f=g.actions.get("zoomOut"),l=g.actions.get("resetView"); -c([b("",function(){h.popupMenuHandler.hideMenu();var a=h.view.scale,b=h.view.translate.x,c=h.view.translate.y;g.actions.get("resetView").funct();1E-5>Math.abs(a-h.view.scale)&&b==h.view.translate.x&&c==h.view.translate.y&&g.actions.get(h.pageVisible?"fitPage":"fitWindow").funct()},!0,mxResources.get("fit")+" ("+Editor.ctrlKey+"+H)",l,"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMyA1djRoMlY1aDRWM0g1Yy0xLjEgMC0yIC45LTIgMnptMiAxMEgzdjRjMCAxLjEuOSAyIDIgMmg0di0ySDV2LTR6bTE0IDRoLTR2Mmg0YzEuMSAwIDItLjkgMi0ydi00aC0ydjR6bTAtMTZoLTR2Mmg0djRoMlY1YzAtMS4xLS45LTItMi0yeiIvPjwvc3ZnPg=="), +null,mxResources.get("redo")+" ("+d.shortcut+")",d,"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTguNCAxMC42QzE2LjU1IDguOTkgMTQuMTUgOCAxMS41IDhjLTQuNjUgMC04LjU4IDMuMDMtOS45NiA3LjIyTDMuOSAxNmMxLjA1LTMuMTkgNC4wNS01LjUgNy42LTUuNSAxLjk1IDAgMy43My43MiA1LjEyIDEuODhMMTMgMTZoOVY3bC0zLjYgMy42eiIvPjwvc3ZnPg=="),c([f,d]),480<=e)){var d=g.actions.get("zoomIn"),f=g.actions.get("zoomOut"),h=g.actions.get("resetView"); +c([b("",function(){k.popupMenuHandler.hideMenu();var a=k.view.scale,b=k.view.translate.x,c=k.view.translate.y;g.actions.get("resetView").funct();1E-5>Math.abs(a-k.view.scale)&&b==k.view.translate.x&&c==k.view.translate.y&&g.actions.get(k.pageVisible?"fitPage":"fitWindow").funct()},!0,mxResources.get("fit")+" ("+Editor.ctrlKey+"+H)",h,"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMyA1djRoMlY1aDRWM0g1Yy0xLjEgMC0yIC45LTIgMnptMiAxMEgzdjRjMCAxLjEuOSAyIDIgMmg0di0ySDV2LTR6bTE0IDRoLTR2Mmg0YzEuMSAwIDItLjkgMi0ydi00aC0ydjR6bTAtMTZoLTR2Mmg0djRoMlY1YzAtMS4xLS45LTItMi0yeiIvPjwvc3ZnPg=="), 640<=e?b("",d.funct,!0,mxResources.get("zoomIn")+" ("+Editor.ctrlKey+" +)",d,"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTUuNSAxNGgtLjc5bC0uMjgtLjI3QzE1LjQxIDEyLjU5IDE2IDExLjExIDE2IDkuNSAxNiA1LjkxIDEzLjA5IDMgOS41IDNTMyA1LjkxIDMgOS41IDUuOTEgMTYgOS41IDE2YzEuNjEgMCAzLjA5LS41OSA0LjIzLTEuNTdsLjI3LjI4di43OWw1IDQuOTlMMjAuNDkgMTlsLTQuOTktNXptLTYgMEM3LjAxIDE0IDUgMTEuOTkgNSA5LjVTNy4wMSA1IDkuNSA1IDE0IDcuMDEgMTQgOS41IDExLjk5IDE0IDkuNSAxNHptMi41LTRoLTJ2Mkg5di0ySDdWOWgyVjdoMXYyaDJ2MXoiLz48L3N2Zz4="): null,640<=e?b("",f.funct,!0,mxResources.get("zoomOut")+" ("+Editor.ctrlKey+" -)",f,"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTUuNSAxNGgtLjc5bC0uMjgtLjI3QzE1LjQxIDEyLjU5IDE2IDExLjExIDE2IDkuNSAxNiA1LjkxIDEzLjA5IDMgOS41IDNTMyA1LjkxIDMgOS41IDUuOTEgMTYgOS41IDE2YzEuNjEgMCAzLjA5LS41OSA0LjIzLTEuNTdsLjI3LjI4di43OWw1IDQuOTlMMjAuNDkgMTlsLTQuOTktNXptLTYgMEM3LjAxIDE0IDUgMTEuOTkgNSA5LjVTNy4wMSA1IDkuNSA1IDE0IDcuMDEgMTQgOS41IDExLjk5IDE0IDkuNSAxNHpNNyA5aDV2MUg3eiIvPjwvc3ZnPg=="): null])}d=g.menus.get("language");null!=d&&!mxClient.IS_CHROMEAPP&&!EditorUi.isElectronApp&&540<=e?(f=p.addMenu("",d.funct),f.setAttribute("title",mxResources.get("language")),f.style.backgroundImage="url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTEuOTkgMkM2LjQ3IDIgMiA2LjQ4IDIgMTJzNC40NyAxMCA5Ljk5IDEwQzE3LjUyIDIyIDIyIDE3LjUyIDIyIDEyUzE3LjUyIDIgMTEuOTkgMnptNi45MyA2aC0yLjk1Yy0uMzItMS4yNS0uNzgtMi40NS0xLjM4LTMuNTYgMS44NC42MyAzLjM3IDEuOTEgNC4zMyAzLjU2ek0xMiA0LjA0Yy44MyAxLjIgMS40OCAyLjUzIDEuOTEgMy45NmgtMy44MmMuNDMtMS40MyAxLjA4LTIuNzYgMS45MS0zLjk2ek00LjI2IDE0QzQuMSAxMy4zNiA0IDEyLjY5IDQgMTJzLjEtMS4zNi4yNi0yaDMuMzhjLS4wOC42Ni0uMTQgMS4zMi0uMTQgMiAwIC42OC4wNiAxLjM0LjE0IDJINC4yNnptLjgyIDJoMi45NWMuMzIgMS4yNS43OCAyLjQ1IDEuMzggMy41Ni0xLjg0LS42My0zLjM3LTEuOS00LjMzLTMuNTZ6bTIuOTUtOEg1LjA4Yy45Ni0xLjY2IDIuNDktMi45MyA0LjMzLTMuNTZDOC44MSA1LjU1IDguMzUgNi43NSA4LjAzIDh6TTEyIDE5Ljk2Yy0uODMtMS4yLTEuNDgtMi41My0xLjkxLTMuOTZoMy44MmMtLjQzIDEuNDMtMS4wOCAyLjc2LTEuOTEgMy45NnpNMTQuMzQgMTRIOS42NmMtLjA5LS42Ni0uMTYtMS4zMi0uMTYtMiAwLS42OC4wNy0xLjM1LjE2LTJoNC42OGMuMDkuNjUuMTYgMS4zMi4xNiAyIDAgLjY4LS4wNyAxLjM0LS4xNiAyem0uMjUgNS41NmMuNi0xLjExIDEuMDYtMi4zMSAxLjM4LTMuNTZoMi45NWMtLjk2IDEuNjUtMi40OSAyLjkzLTQuMzMgMy41NnpNMTYuMzYgMTRjLjA4LS42Ni4xNC0xLjMyLjE0LTIgMC0uNjgtLjA2LTEuMzQtLjE0LTJoMy4zOGMuMTYuNjQuMjYgMS4zMS4yNiAycy0uMSAxLjM2LS4yNiAyaC0zLjM4eiIvPjwvc3ZnPg==)", -f.style.backgroundPosition="center center",f.style.backgroundRepeat="no-repeat",f.style.backgroundSize="24px 24px",f.style.position="absolute",f.style.height="24px",f.style.width="24px",f.style.zIndex="1",f.style.top="11px",f.style.right="14px",mxUtils.setOpacity(f,30),k.appendChild(f),g.buttonContainer.style.right="40px"):g.buttonContainer.style.right="14px"}l.apply(this,arguments);var f=document.createElement("div");f.style.cssText="position:absolute;left:0px;right:0px;top:0px;overflow-y:auto;overflow-x:hidden;"; -f.style.bottom="1"!=urlParams.embed||"1"==urlParams.libraries?"63px":"32px";this.sidebar=this.createSidebar(f);var g=this,h=g.editor.graph;g.toolbar=this.createToolbar(g.createDiv("geToolbar"));g.defaultLibraryName=mxResources.get("untitledLibrary");var k=document.createElement("div");k.style.cssText="position:absolute;left:0px;right:0px;top:0px;height:30px;padding:8px;border-bottom:1px solid lightgray;background-color:#ffffff;text-align:left;white-space:nowrap;";var m=null,p=new Menubar(g,k);g.statusContainer= +f.style.backgroundPosition="center center",f.style.backgroundRepeat="no-repeat",f.style.backgroundSize="24px 24px",f.style.position="absolute",f.style.height="24px",f.style.width="24px",f.style.zIndex="1",f.style.top="11px",f.style.right="14px",mxUtils.setOpacity(f,30),l.appendChild(f),g.buttonContainer.style.right="40px"):g.buttonContainer.style.right="14px"}h.apply(this,arguments);var f=document.createElement("div");f.style.cssText="position:absolute;left:0px;right:0px;top:0px;overflow-y:auto;overflow-x:hidden;"; +f.style.bottom="1"!=urlParams.embed||"1"==urlParams.libraries?"63px":"32px";this.sidebar=this.createSidebar(f);var g=this,k=g.editor.graph;g.toolbar=this.createToolbar(g.createDiv("geToolbar"));g.defaultLibraryName=mxResources.get("untitledLibrary");var l=document.createElement("div");l.style.cssText="position:absolute;left:0px;right:0px;top:0px;height:30px;padding:8px;border-bottom:1px solid lightgray;background-color:#ffffff;text-align:left;white-space:nowrap;";var n=null,p=new Menubar(g,l);g.statusContainer= g.createStatusContainer();g.statusContainer.style.position="relative";g.statusContainer.style.maxWidth="";g.statusContainer.style.marginTop="7px";g.statusContainer.style.marginLeft="6px";g.statusContainer.style.color="gray";g.statusContainer.style.cursor="default";g.editor.addListener("statusChanged",mxUtils.bind(this,function(){g.setStatusText(g.editor.getStatus())}));var q=g.descriptorChanged;g.descriptorChanged=function(){q.apply(this,arguments);var a=g.getCurrentFile();if(null!=a&&null!=a.getTitle()){var b= -a.getMode();"google"==b?b="googleDrive":"github"==b?b="gitHub":"onedrive"==b&&(b="oneDrive");b=mxResources.get(b);k.setAttribute("title",a.getTitle()+(null!=b?" ("+b+")":""))}else k.removeAttribute("title")};g.setStatusText(g.editor.getStatus());k.appendChild(g.statusContainer);g.buttonContainer=document.createElement("div");g.buttonContainer.style.cssText="position:absolute;right:40px;top:12px;white-space:nowrap;";k.appendChild(g.buttonContainer);g.menubarContainer=g.buttonContainer;g.tabContainer= +a.getMode();"google"==b?b="googleDrive":"github"==b?b="gitHub":"onedrive"==b&&(b="oneDrive");b=mxResources.get(b);l.setAttribute("title",a.getTitle()+(null!=b?" ("+b+")":""))}else l.removeAttribute("title")};g.setStatusText(g.editor.getStatus());l.appendChild(g.statusContainer);g.buttonContainer=document.createElement("div");g.buttonContainer.style.cssText="position:absolute;right:40px;top:12px;white-space:nowrap;";l.appendChild(g.buttonContainer);g.menubarContainer=g.buttonContainer;g.tabContainer= document.createElement("div");g.tabContainer.style.cssText="position:absolute;left:0px;right:0px;bottom:0px;height:30px;white-space:nowrap;border-bottom:1px solid lightgray;background-color:#ffffff;border-top:1px solid lightgray;margin-bottom:-2px;visibility:hidden;";var f=g.diagramContainer.parentNode,r=document.createElement("div");r.style.cssText="position:absolute;top:0px;left:0px;right:0px;bottom:0px;overflow:hidden;";g.diagramContainer.style.top="47px";var u=g.menus.get("viewZoom");if(null!= u){this.tabContainer.style.right="70px";var C=p.addMenu("100%",u.funct);C.setAttribute("title",mxResources.get("zoom")+" (Alt+Mousewheel)");C.style.whiteSpace="nowrap";C.style.backgroundImage="url("+mxWindow.prototype.minimizeImage+")";C.style.backgroundPosition="right 6px center";C.style.backgroundRepeat="no-repeat";C.style.backgroundColor="#ffffff";C.style.paddingRight="10px";C.style.display="block";C.style.position="absolute";C.style.textDecoration="none";C.style.textDecoration="none";C.style.right= "0px";C.style.bottom="0px";C.style.overflow="hidden";C.style.visibility="hidden";C.style.textAlign="center";C.style.color="#000";C.style.fontSize="12px";C.style.color="#707070";C.style.width="59px";C.style.borderTop="1px solid lightgray";C.style.borderLeft="1px solid lightgray";C.style.height=parseInt(g.tabContainer.style.height)-1+"px";C.style.lineHeight=parseInt(g.tabContainer.style.height)+1+"px";r.appendChild(C);u=mxUtils.bind(this,function(){C.innerHTML=Math.round(100*g.editor.graph.view.scale)+ -"%"});g.editor.graph.view.addListener(mxEvent.EVENT_SCALE,u);g.editor.addListener("resetGraphView",u);g.editor.addListener("pageSelected",u);var I=g.setGraphEnabled;g.setGraphEnabled=function(){I.apply(this,arguments);null!=this.tabContainer&&(C.style.visibility=this.tabContainer.style.visibility,this.diagramContainer.style.bottom="hidden"!=this.tabContainer.style.visibility?"30px":"0px")}}r.appendChild(g.tabContainer);r.appendChild(k);r.appendChild(g.diagramContainer);f.appendChild(r);g.updateTabContainer(); +"%"});g.editor.graph.view.addListener(mxEvent.EVENT_SCALE,u);g.editor.addListener("resetGraphView",u);g.editor.addListener("pageSelected",u);var I=g.setGraphEnabled;g.setGraphEnabled=function(){I.apply(this,arguments);null!=this.tabContainer&&(C.style.visibility=this.tabContainer.style.visibility,this.diagramContainer.style.bottom="hidden"!=this.tabContainer.style.visibility?"30px":"0px")}}r.appendChild(g.tabContainer);r.appendChild(l);r.appendChild(g.diagramContainer);f.appendChild(r);g.updateTabContainer(); d();mxEvent.addListener(window,"resize",function(){d();null!=g.sidebarWindow&&g.sidebarWindow.window.fit();null!=g.formatWindow&&g.formatWindow.window.fit();null!=g.actions.outlineWindow&&g.actions.outlineWindow.window.fit();null!=g.actions.layersWindow&&g.actions.layersWindow.window.fit();null!=g.menus.tagsWindow&&g.menus.tagsWindow.window.fit();null!=g.menus.findWindow&&g.menus.findWindow.window.fit()})}}}; -(function(){var a=!1;"min"!=uiTheme||a||mxClient.IS_CHROMEAPP||(EditorUi.initMinimalTheme(),a=!0);var d=EditorUi.initTheme;EditorUi.initTheme=function(){d.apply(this,arguments);"min"!=uiTheme||a||(this.initMinimalTheme(),a=!0)}})();mxResources.parse("# *DO NOT DIRECTLY EDIT THIS FILE, IT IS AUTOMATICALLY GENERATED AND IT IS BASED ON:*\n# https://docs.google.com/spreadsheet/ccc?key=0AmQEO36liL4FdDJLWVNMaVV2UmRKSnpXU09MYkdGbEE\naboutDrawio=About draw.io\naccessDenied=Access Denied\naction=Action\nactualSize=Actual Size\nadd=Add\naddedFile=Added {1}\naddImages=Add Images\naddImageUrl=Add Image URL\naddLayer=Add Layer\naddProperty=Add Property\naddress=Address\naddToExistingDrawing=Add to Existing Drawing\naddWaypoint=Add Waypoint\nadjustTo=Adjust to\nadvanced=Advanced\nalign=Align\nalignment=Alignment\nallChangesLost=All changes will be lost!\nallPages=All Pages\nallProjects=All Projects\nallSpaces=All Spaces\nallTags=All Tags\nanchor=Anchor\nandroid=Android\nangle=Angle\narc=Arc\nareYouSure=Are you sure?\nensureDataSaved=Please ensure your data is saved before closing.\nallChangesSaved=All changes saved\nallChangesSavedInDrive=All changes saved in Drive\nallowPopups=Allow pop-ups to avoid this dialog.\nallowRelativeUrl=Allow relative URL\nalreadyConnected=Nodes already connected\napply=Apply\narchiMate21=ArchiMate 2.1\narrange=Arrange\narrow=Arrow\narrows=Arrows\nasNew=As New\natlas=Atlas\nauthor=Author\nauthorizationRequired=Authorization required\nauthorizeThisAppIn=Authorize this app in {1}:\nauthorize=Authorize\nauthorizing=Authorizing\nautomatic=Automatic\nautosave=Autosave\nautosize=Autosize\nattachments=Attachments\naws=AWS\naws3d=AWS 3D\nazure=Azure\nbackground=Background\nbackgroundColor=Background Color\nbackgroundImage=Background Image\nbasic=Basic\nblankDrawing=Blank Drawing\nblankDiagram=Blank Diagram\nblock=Block\nblockquote=Blockquote\nblog=Blog\nbold=Bold\nbootstrap=Bootstrap\nborder=Border\nborderColor=Border Color\nborderWidth=Borderwidth\nbottom=Bottom\nbottomAlign=Bottom Align\nbottomLeft=Bottom Left\nbottomRight=Bottom Right\nbpmn=BPMN\nbrowser=Browser\nbulletedList=Bulleted List\nbusiness=Business\nbusy=Operation in progress\ncabinets=Cabinets\ncancel=Cancel\ncenter=Center\ncannotLoad=Load attempts failed. Please try again later.\ncannotLogin=Log in attempts failed. Please try again later.\ncannotOpenFile=Cannot open file\nchange=Change\nchangeOrientation=Change Orientation\nchangeUser=Change user\nchangesNotSaved=Changes have not been saved\nchatJoined={1} has joined\nchatLeft={1} has left\nchatWindowTitle=Chat\nchooseAnOption=Choose an option\nchromeApp=Chrome App\ncompressed=Compressed\ncommitMessage=Commit Message\ncsv=CSV\ndark=Dark\ndraftFound=A draft for '{1}' has been found. Load it into the editor or discard it to continue.\ndragAndDropNotSupported=Drag and drop not supported for images. Would you like to import instead?\ndropboxCharsNotAllowed=The following characters are not allowed: / : ? * \" |\ncheck=Check\ncircle=Circle\ncisco=Cisco\nclassic=Classic\nclearDefaultStyle=Clear Default Style\nclearWaypoints=Clear Waypoints\nclipart=Clipart\nclose=Close\ncollaborator=Collaborator\ncollaborators=Collaborators\ncollapse=Collapse\ncollapseExpand=Collapse/Expand\ncollapse-expand=Click to collapse/expand\nShift-click to move neighbors \nAlt-click to protect group size\ncollapsible=Collapsible\ncomic=Comic\ncomment=Comment\ncommentsNotes=Comments/Notes\ncompress=Compress\nconnect=Connect\nconnecting=Connecting\nconnectWithDrive=Connect with Google Drive\nconnection=Connection\nconnectionArrows=Connection Arrows\nconnectionPoints=Connection Points\nconstrainProportions=Constrain Proportions\ncontainsValidationErrors=Contains validation errors\ncopiedToClipboard=Copied to clipboard\ncopy=Copy\ncopyConnect=Copy on connect\ncopyOf=Copy of {1}\ncopyOfDrawing=Copy of Drawing\ncopySize=Copy Size\ncopyStyle=Copy Style\ncreate=Create\ncreateNewDiagram=Create New Diagram\ncreateRevision=Create Revision\ncreateShape=Create Shape\ncrop=Crop\ncurved=Curved\ncustom=Custom\ncurrent=Current\ncut=Cut\ndashed=Dashed\ndecideLater=Decide later\ndefault=Default\ndelete=Delete\ndeleteColumn=Delete Column\ndeleteLibrary401=Insufficient permissions to delete this library\ndeleteLibrary404=Selected library could not be found\ndeleteLibrary500=Error deleting library\ndeleteLibraryConfirm=You are about to permanently delete this library. Are you sure you want to do this?\ndeleteRow=Delete Row\ndescription=Description\ndevice=Device\ndiagram=Diagram\ndiagramContent=Diagram Content\ndiagramLocked=Diagram has been locked to prevent further data loss.\ndiagramLockedBySince=The diagram is locked by {1} since {2} ago\ndiagramName=Diagram Name\ndiagramIsPublic=Diagram is public\ndiagramIsNotPublic=Diagram is not public\ndiamond=Diamond\ndiamondThin=Diamond (thin)\ndidYouKnow=Did you know...\ndirection=Direction\ndiscard=Discard\ndiscardChangesAndReconnect=Discard Changes and Reconnect\ngoogleDriveMissingClickHere=Google Drive missing? Click here!\ndiscardChanges=Discard Changes\ndisconnected=Disconnected\ndistribute=Distribute\ndone=Done\ndotted=Dotted\ndoubleClickOrientation=Doubleclick to change orientation\ndoubleClickTooltip=Doubleclick to insert text\ndoubleClickChangeProperty=Doubleclick to change property name\ndownload=Download\ndownloadDesktop=Download draw.io Desktop\ndownloadAs=Download as\nclickHereToSave=Click here to save.\ndraftDiscarded=Draft discarded\ndraftSaved=Draft saved\ndragElementsHere=Drag elements here\ndragImagesHere=Drag images or URLs here\ndragUrlsHere=Drag URLs here\ndraw.io=draw.io\ndrawing=Drawing{1}\ndrawingEmpty=Drawing is empty\ndrawingTooLarge=Drawing is too large\ndrawioForWork=Draw.io for GSuite\ndropbox=Dropbox\nduplicate=Duplicate\nduplicateIt=Duplicate {1}\ndivider=Divider\ndx=Dx\ndy=Dy\neast=East\nedit=Edit\neditData=Edit Data\neditDiagram=Edit Diagram\neditGeometry=Edit Geometry\neditImage=Edit Image\neditImageUrl=Edit Image URL\neditLink=Edit Link\neditShape=Edit Shape\neditStyle=Edit Style\neditText=Edit Text\neditTooltip=Edit Tooltip\nglass=Glass\ngoogleImages=Google Images\nimageSearch=Image Search\neip=EIP\nembed=Embed\nembedImages=Embed Images\nmainEmbedNotice=Paste this into the page\nelectrical=Electrical\nellipse=Ellipse\nembedNotice=Paste this once at the end of the page\nenterGroup=Enter Group\nenterName=Enter Name\nenterPropertyName=Enter Property Name\nenterValue=Enter Value\nentityRelation=Entity Relation\nerror=Error\nerrorDeletingFile=Error Deleting File\nerrorLoadingFile=Error loading file\nerrorRenamingFile=Error renaming file.\nerrorRenamingFileNotFound=Error renaming file. File was not found.\nerrorRenamingFileForbidden=Error renaming file. Insufficient access rights.\nerrorSavingDraft=Error saving draft\nerrorSavingFile=Error saving file\nerrorSavingFileUnknown=Error authorizing with Google's servers. Please refresh the page to re-attempt.\nerrorSavingFileForbidden=Error saving file. Insufficient access rights.\nerrorSavingFileNameConflict=Could not save diagram. Current page already contains file named '{1}'.\nerrorSavingFileNotFound=Error saving file. File was not found.\nerrorSavingFileReadOnlyMode=Could not save diagram while read-only mode is active.\nerrorSavingFileSessionTimeout=Your session has ended. Please <a target='_blank' href='{1}'>{2}</a> and return to this tab to try to save again.\nerrorSendingFeedback=Error sending feedback.\nerrorUpdatingPreview=Error updating preview.\nexit=Exit\nexitGroup=Exit Group\nexpand=Expand\nexport=Export\nexporting=Exporting\nexportAs=Export as\nexportOptionsDisabled=Export options disabled\nexportOptionsDisabledDetails=The owner has disabled options to download, print or copy for commenters and viewers on this file.\nextras=Extras\nfacebook=Facebook\nfailedToSaveTryReconnect=Failed to save, trying to reconnect\nfeatureRequest=Feature Request\nfeedback=Feedback\nfeedbackSent=Feedback successfully sent.\nfloorplans=Floorplans\nfile=File\nfileChangedOverwrite=File was changed. Overwrite changes?\noverwrite=Overwrite\nfilename=Filename\nfileExists=File already exists\nfileNearlyFullSeeFaq=File nearly full, please see FAQ\nfileNotFound=File not found\nrepositoryNotFound=Repository not found\nfileNotFoundOrDenied=The file was not found. It does not exist or you do not have read access.\nfileNotLoaded=File not loaded\nfileNotSaved=File not saved\nfileOpenLocation=How would you like to open these file(s)?\nfileWillBeSavedInAppFolder={1} will be saved in the app folder.\nfill=Fill\nfillColor=Fill Color\nfilterCards=Filter Cards\nfind=Find\nfit=Fit\nfitContainer=Resize Container\nfitIntoContainer=Fit into Container\nfitPage=Fit Page\nfitPageWidth=Fit Page Width\nfitTo=Fit to\nfitToSheetsAcross=sheet(s) across\nfitToBy=by\nfitToSheetsDown=sheet(s) down\nfitTwoPages=Two Pages\nfitWindow=Fit Window\nflip=Flip\nflipH=Flip Horizontal\nflipV=Flip Vertical\nflowchart=Flowchart\nfolder=Folder\nfont=Font\nfontColor=Font Color\nfontFamily=Font Family\nfontSize=Font Size\nforbidden=You are not authorized to access this file\nformat=Format\nformatPanel=Format Panel\nformatted=Formatted\nformattedText=Formatted Text\nformatPng=PNG\nformatGif=GIF\nformatJpg=JPEG\nformatPdf=PDF\nformatSql=SQL\nformatSvg=SVG\nformatHtmlEmbedded=HTML\nformatSvgEmbedded=SVG (with XML)\nformatVsdx=VSDX\nformatVssx=VSSX\nformatXmlPlain=XML (Plain)\nformatXml=XML\nforum=Discussion/Help Forums\nfromTemplate=From Template\nfromTemplateUrl=From Template URL\nfromText=From Text\nfromUrl=From URL\nfromThisPage=From this page\nfullscreen=Fullscreen\ngap=Gap\ngcp=GCP\ngeneral=General\ngithub=GitHub\ngliffy=Gliffy\nglobal=Global\ngoogleDocs=Google Docs\ngoogleDrive=Google Drive\ngoogleGadget=Google Gadget\ngooglePlus=Google+\ngoogleSites=Google Sites\ngradient=Gradient\ngradientColor=Color\ngrid=Grid\ngridColor=Grid Color\ngridSize=Grid Size\ngroup=Group\nguides=Guides\nhateApp=I hate draw.io\nheading=Heading\nheight=Height\nhelp=Help\nhelpTranslate=Help us translate this application\nhide=Hide\nhideIt=Hide {1}\nhidden=Hidden\nhome=Home\nhorizontal=Horizontal\nhorizontalFlow=Horizontal Flow\nhorizontalTree=Horizontal Tree\nhowTranslate=How good is the translation in your language?\nhtml=HTML\nhtmlText=HTML Text\nid=ID\niframe=IFrame\nignore=Ignore\nimage=Image\nimageUrl=Image URL\nimages=Images\nimagePreviewError=This image couldn't be loaded for preview. Please check the URL.\nimageTooBig=Image too big\nimgur=Imgur\nimport=Import\nimportFrom=Import from\nincludeCopyOfMyDiagram=Include a copy of my diagram\nincreaseIndent=Increase Indent\ndecreaseIndent=Decrease Indent\ninsert=Insert\ninsertColumnBefore=Insert Column Left\ninsertColumnAfter=Insert Column Right\ninsertEllipse=Insert Ellipse\ninsertImage=Insert Image\ninsertHorizontalRule=Insert Horizontal Rule\ninsertLink=Insert Link\ninsertPage=Insert Page\ninsertRectangle=Insert Rectangle\ninsertRhombus=Insert Rhombus\ninsertRowBefore=Insert Row Above\ninsertRowAfter=Insert Row After\ninsertText=Insert Text\ninserting=Inserting\ninvalidFilename=Diagram names must not contain the following characters: / | : ; { } < > & + ? = \"\ninvalidLicenseSeeThisPage=Your license is invalid, please see this <a target=\"_blank\" href=\"https://support.draw.io/display/DFCS/Licensing+your+draw.io+plugin\">page</a>.\ninvalidName=Invalid name\ninvalidOrMissingFile=Invalid or missing file\ninvalidPublicUrl=Invalid public URL\nisometric=Isometric\nios=iOS\nitalic=Italic\nkennedy=Kennedy\nkeyboardShortcuts=Keyboard Shortcuts\nlayers=Layers\nlandscape=Landscape\nlanguage=Language\nleanMapping=Lean Mapping\nlastChange=Last change {1} ago\nlessThanAMinute=less than a minute\nlicensingError=Licensing Error\nlicenseHasExpired=The license for {1} has expired on {2}. Click here.\nlicenseWillExpire=The license for {1} will expire on {2}. Click here.\nlineJumps=Line jumps\nlinkAccountRequired=If the diagram is not public a Google account is required to view the link.\nlinkText=Link Text\nlist=List\nminute=minute\nminutes=minutes\nhours=hours\ndays=days\nmonths=months\nyears=years\nrestartForChangeRequired=Changes will take effect after page refresh.\nlaneColor=Lanecolor\nlastModified=Last modified\nlayout=Layout\nleft=Left\nleftAlign=Left Align\nleftToRight=Left to right\nlibraryTooltip=Drag and drop shapes here or click + to insert. Double click to edit.\nlightbox=Lightbox\nline=Line\nlineend=Line end\nlineheight=Line Height\nlinestart=Line start\nlinewidth=Linewidth\nlink=Link\nlinks=Links\nloading=Loading\nlockUnlock=Lock/Unlock\nloggedOut=Logged Out\nlogIn=log in\nloveIt=I love {1}\nlucidchart=Lucidchart\nmaps=Maps\nmathematicalTypesetting=Mathematical Typesetting\nmakeCopy=Make a Copy\nmanual=Manual\nmiddle=Middle\nminimal=Minimal\nmisc=Misc\nmockups=Mockups\nmodificationDate=Modification date\nmodifiedBy=Modified by\nmore=More\nmoreResults=More Results\nmoreShapes=More Shapes\nmove=Move\nmoveToFolder=Move to Folder\nmoving=Moving\nmoveSelectionTo=Move selection to {1}\nname=Name\nnavigation=Navigation\nnetwork=Network\nnetworking=Networking\nnew=New\nnewLibrary=New Library\nnextPage=Next Page\nno=No\nnoAttachments=No attachments found\nnoColor=No Color\nnoFiles=No Files\nnoFileSelected=No file selected\nnoLibraries=No libraries found\nnoMoreResults=No more results\nnone=None\nnoOtherViewers=No other viewers\nnoPlugins=No plugins\nnoPreview=No preview\nnoResponse=No response from server\nnoResultsFor=No results for '{1}'\nnoRevisions=No revisions\nnoSearchResults=No search results found\nnoPageContentOrNotSaved=No anchors found on this page or it hasn't been saved yet\nnormal=Normal\nnorth=North\nnotADiagramFile=Not a diagram file\nnotALibraryFile=Not a library file\nnotAvailable=Not available\nnotAUtf8File=Not a UTF-8 file\nnotConnected=Not connected\nnote=Note\nnotUsingService=Not using {1}?\nnumberedList=Numbered list\noffline=Offline\nok=OK\noneDrive=OneDrive\nonline=Online\nopacity=Opacity\nopen=Open\nopenArrow=Open Arrow\nopenExistingDiagram=Open Existing Diagram\nopenFile=Open File\nopenFrom=Open from\nopenLibrary=Open Library\nopenLibraryFrom=Open Library from\nopenLink=Open Link\nopenInNewWindow=Open in New Window\nopenInThisWindow=Open in This Window\nopenIt=Open {1}\nopenRecent=Open Recent\nopenSupported=Supported formats are files saved from this software (.xml), .vsdx and .gliffy\noptions=Options\norganic=Organic\northogonal=Orthogonal\notherViewer=other viewer\notherViewers=other viewers\noutline=Outline\noval=Oval\npage=Page\npageContent=Page Content\npageNotFound=Page not found\npageWithNumber=Page-{1}\npages=Pages\npageView=Page View\npageSetup=Page Setup\npageScale=Page Scale\npan=Pan\npanTooltip=Space+Drag to pan\npaperSize=Paper Size\npattern=Pattern\npaste=Paste\npasteHere=Paste here\npasteSize=Paste Size\npasteStyle=Paste Style\nperimeter=Perimeter\npermissionAnyone=Anyone can edit\npermissionAuthor=Owner and admins can edit\npickFolder=Pick a folder\npickLibraryDialogTitle=Select Library\npublicDiagramUrl=Public URL of the diagram\nplaceholders=Placeholders\nplantUml=PlantUML\nplugins=Plugins\npluginUrl=Plugin URL\npluginWarning=The page has requested to load the following plugin(s):\n \n {1}\n \n Would you like to load these plugin(s) now?\n \n NOTE : Only allow plugins to run if you fully understand the security implications of doing so.\n\nplusTooltip=Click to connect and clone (ctrl+click to clone, shift+click to connect). Drag to connect (ctrl+drag to clone).\nportrait=Portrait\nposition=Position\nposterPrint=Poster Print\npreferences=Preferences\npreview=Preview\npreviousPage=Previous Page\nprint=Print\nprintAllPages=Print All Pages\nprocEng=Proc. Eng.\nproject=Project\npriority=Priority\nproperties=Properties\npublish=Publish\nquickStart=Quick Start Video\nrack=Rack\nradialTree=Radial Tree\nreadOnly=Read-only\nreconnecting=Reconnecting\nrecentlyUpdated=Recently Updated\nrecentlyViewed=Recently Viewed\nrectangle=Rectangle\nredirectToNewApp=This file was created or modified in a newer version of this app. You will be redirected now.\nrealtimeTimeout=It looks like you've made a few changes while offline. We're sorry, these changes cannot be saved.\nredo=Redo\nrefresh=Refresh\nregularExpression=Regular Expression\nrelative=Relative\nrelativeUrlNotAllowed=Relative URL not allowed\nrememberMe=Remember me\nrememberThisSetting=Remember this setting\nremoveFormat=Clear Formatting\nremoveFromGroup=Remove from Group\nremoveIt=Remove {1}\nremoveWaypoint=Remove Waypoint\nrename=Rename\nrenamed=Renamed\nrenameIt=Rename {1}\nrenaming=Renaming\nreplace=Replace\nreplaceIt={1} already exists. Do you want to replace it?\nreplaceExistingDrawing=Replace existing drawing\nrequired=required\nreset=Reset\nresetView=Reset View\nresize=Resize\nresizeLargeImages=Do you want to resize large images to make the application run faster?\nretina=Retina\nresponsive=Responsive\nrestore=Restore\nrestoring=Restoring\nretryingIn=Retrying in {1} second(s)\nretryingLoad=Load failed. Retrying...\nretryingLogin=Login time out. Retrying...\nreverse=Reverse\nrevision=Revision\nrevisionHistory=Revision History\nrhombus=Rhombus\nright=Right\nrightAlign=Right Align\nrightToLeft=Right to left\nrotate=Rotate\nrotateTooltip=Click and drag to rotate, click to turn shape only by 90 degrees\nrotation=Rotation\nrounded=Rounded\nsave=Save\nsaveAndExit=Save & Exit\nsaveAs=Save as\nsaveAsXmlFile=Save as XML file?\nsaved=Saved\nsaveDiagramsTo=Save diagrams to\nsaveLibrary403=Insufficient permissions to edit this library\nsaveLibrary500=There was an error while saving the library\nsaving=Saving\nscratchpad=Scratchpad\nscrollbars=Scrollbars\nsearch=Search\nsearchShapes=Search Shapes\nselectAll=Select All\nselectionOnly=Selection Only\nselectCard=Select Card\nselectEdges=Select Edges\nselectFile=Select File\nselectFolder=Select Folder\nselectFont=Select Font\nselectNone=Select None\nselectTemplate=Select Template\nselectVertices=Select Vertices\nsendMessage=Send\nsendYourFeedbackToDrawIo=Send your feedback to draw.io\nserviceUnavailableOrBlocked=Service unavailable or blocked\nsessionExpired=Your session has expired. Please refresh the browser window.\nsessionTimeoutOnSave=Your session has timed out and you have been disconnected from the Google Drive. Press OK to login and save. \nsetAsDefaultStyle=Set as Default Style\nshadow=Shadow\nshape=Shape\nshapes=Shapes\nshare=Share\nshareLink=Link for shared editing\nsharp=Sharp\nshow=Show\nshowStartScreen=Show Start Screen\nsidebarTooltip=Click to expand. Drag and drop shapes into the diagram. Shift+click to change selection. Alt+click to insert and connect.\nsigns=Signs\nsignOut=Sign out\nsimple=Simple\nsimpleArrow=Simple Arrow\nsize=Size\nsolid=Solid\nsourceSpacing=Source Spacing\nsouth=South\nsoftware=Software\nspace=Space\nspacing=Spacing\nspecialLink=Special Link\nstandard=Standard\nstarting=Starting\nstraight=Straight\nstrokeColor=Line Color\nstyle=Style\nsubscript=Subscript\nsummary=Summary\nsuperscript=Superscript\nsupport=Support\nsysml=SysML\ntags=Tags\ntable=Table\ntables=Tables\ntakeOver=Take Over\ntargetSpacing=Target Spacing\ntemplate=Template\ntemplates=Templates\ntext=Text\ntextAlignment=Text Alignment\ntextOpacity=Text Opacity\ntheme=Theme\ntimeout=Timeout\ntitle=Title\nto=to\ntoBack=To Back\ntoFront=To Front\ntooltips=Tooltips\ntop=Top\ntopAlign=Top Align\ntopLeft=Top Left\ntopRight=Top Right\ntransparent=Transparent\ntransparentBackground=Transparent Background\ntrello=Trello\ntryAgain=Try again\ntryOpeningViaThisPage=Try opening via this page.\nturn=Rotate shape only by 90°\ntype=Type\ntwitter=Twitter\numl=UML\nunderline=Underline\nundo=Undo\nungroup=Ungroup\nunsavedChanges=Unsaved changes\nunsavedChangesClickHereToSave=Unsaved changes. Click here to save.\nuntitled=Untitled\nuntitledDiagram=Untitled Diagram\nuntitledLayer=Untitled Layer\nuntitledLibrary=Untitled Library\nunknownError=Unknown error\nupdateFile=Update {1}\nupdatingDocument=Updating Document. Please wait...\nupdatingPreview=Updating Preview. Please wait...\nupdatingSelection=Updating Selection. Please wait...\nupload=Upload\nurl=URL\nuseOffline=Use Offline\nuseRootFolder=Use root folder?\nuserManual=User Manual\nvertical=Vertical\nverticalFlow=Vertical Flow\nverticalTree=Vertical Tree\nview=View\nviewUrl=Link to view: {1}\nvoiceAssistant=Voice Assistant (beta)\nwarning=Warning\nwaypoints=Waypoints\nwest=West\nwidth=Width\nwiki=Wiki\nwordWrap=Word Wrap\nwritingDirection=Writing Direction\nyes=Yes\nyourEmailAddress=Your email address\nzoom=Zoom\nzoomIn=Zoom In\nzoomOut=Zoom Out\nbasic=Basic\nbusinessprocess=Business Processes\ncharts=Charts\nengineering=Engineering\nflowcharts=Flowcharts\ngmdl=Material Design\nmindmaps=Mindmaps\nmockups=Mockups\nnetworkdiagrams=Network Diagrams\nnothingIsSelected=Nothing is selected\nother=Other\nsoftwaredesign=Software Design\nvenndiagrams=Venn Diagrams\nwebEmailOrOther=Web, email or any other internet address\nwebLink=Web Link\nwireframes=Wireframes\n");Graph.prototype.defaultThemes[Graph.prototype.defaultThemeName]=mxUtils.parseXml('<mxStylesheet><add as="defaultVertex"><add as="shape" value="label"/><add as="perimeter" value="rectanglePerimeter"/><add as="fontSize" value="12"/><add as="fontFamily" value="Helvetica"/><add as="align" value="center"/><add as="verticalAlign" value="middle"/><add as="fillColor" value="#ffffff"/><add as="strokeColor" value="#000000"/><add as="fontColor" value="#000000"/></add><add as="defaultEdge"><add as="shape" value="connector"/><add as="labelBackgroundColor" value="#ffffff"/><add as="endArrow" value="classic"/><add as="fontSize" value="11"/><add as="fontFamily" value="Helvetica"/><add as="align" value="center"/><add as="verticalAlign" value="middle"/><add as="rounded" value="1"/><add as="strokeColor" value="#000000"/><add as="fontColor" value="#000000"/></add><add as="fancy"><add as="shadow" value="1"/><add as="glass" value="1"/></add><add as="gray" extend="fancy"><add as="gradientColor" value="#B3B3B3"/><add as="fillColor" value="#F5F5F5"/><add as="strokeColor" value="#666666"/></add><add as="blue" extend="fancy"><add as="gradientColor" value="#7EA6E0"/><add as="fillColor" value="#DAE8FC"/><add as="strokeColor" value="#6C8EBF"/></add><add as="green" extend="fancy"><add as="gradientColor" value="#97D077"/><add as="fillColor" value="#D5E8D4"/><add as="strokeColor" value="#82B366"/></add><add as="turquoise" extend="fancy"><add as="gradientColor" value="#67AB9F"/><add as="fillColor" value="#D5E8D4"/><add as="strokeColor" value="#6A9153"/></add><add as="yellow" extend="fancy"><add as="gradientColor" value="#FFD966"/><add as="fillColor" value="#FFF2CC"/><add as="strokeColor" value="#D6B656"/></add><add as="orange" extend="fancy"><add as="gradientColor" value="#FFA500"/><add as="fillColor" value="#FFCD28"/><add as="strokeColor" value="#D79B00"/></add><add as="red" extend="fancy"><add as="gradientColor" value="#EA6B66"/><add as="fillColor" value="#F8CECC"/><add as="strokeColor" value="#B85450"/></add><add as="pink" extend="fancy"><add as="gradientColor" value="#B5739D"/><add as="fillColor" value="#E6D0DE"/><add as="strokeColor" value="#996185"/></add><add as="purple" extend="fancy"><add as="gradientColor" value="#8C6C9C"/><add as="fillColor" value="#E1D5E7"/><add as="strokeColor" value="#9673A6"/></add><add as="plain-gray"><add as="gradientColor" value="#B3B3B3"/><add as="fillColor" value="#F5F5F5"/><add as="strokeColor" value="#666666"/></add><add as="plain-blue"><add as="gradientColor" value="#7EA6E0"/><add as="fillColor" value="#DAE8FC"/><add as="strokeColor" value="#6C8EBF"/></add><add as="plain-green"><add as="gradientColor" value="#97D077"/><add as="fillColor" value="#D5E8D4"/><add as="strokeColor" value="#82B366"/></add><add as="plain-turquoise"><add as="gradientColor" value="#67AB9F"/><add as="fillColor" value="#D5E8D4"/><add as="strokeColor" value="#6A9153"/></add><add as="plain-yellow"><add as="gradientColor" value="#FFD966"/><add as="fillColor" value="#FFF2CC"/><add as="strokeColor" value="#D6B656"/></add><add as="plain-orange"><add as="gradientColor" value="#FFA500"/><add as="fillColor" value="#FFCD28"/><add as="strokeColor" value="#D79B00"/></add><add as="plain-red"><add as="gradientColor" value="#EA6B66"/><add as="fillColor" value="#F8CECC"/><add as="strokeColor" value="#B85450"/></add><add as="plain-pink"><add as="gradientColor" value="#B5739D"/><add as="fillColor" value="#E6D0DE"/><add as="strokeColor" value="#996185"/></add><add as="plain-purple"><add as="gradientColor" value="#8C6C9C"/><add as="fillColor" value="#E1D5E7"/><add as="strokeColor" value="#9673A6"/></add><add as="text"><add as="fillColor" value="none"/><add as="gradientColor" value="none"/><add as="strokeColor" value="none"/><add as="align" value="left"/><add as="verticalAlign" value="top"/></add><add as="label"><add as="fontStyle" value="1"/><add as="align" value="left"/><add as="verticalAlign" value="middle"/><add as="spacing" value="2"/><add as="spacingLeft" value="52"/><add as="imageWidth" value="42"/><add as="imageHeight" value="42"/><add as="rounded" value="1"/></add><add as="icon" extend="label"><add as="align" value="center"/><add as="imageAlign" value="center"/><add as="verticalLabelPosition" value="bottom"/><add as="verticalAlign" value="top"/><add as="spacingTop" value="4"/><add as="labelBackgroundColor" value="#ffffff"/><add as="spacing" value="0"/><add as="spacingLeft" value="0"/><add as="spacingTop" value="6"/><add as="fontStyle" value="0"/><add as="imageWidth" value="48"/><add as="imageHeight" value="48"/></add><add as="swimlane"><add as="shape" value="swimlane"/><add as="fontSize" value="12"/><add as="fontStyle" value="1"/><add as="startSize" value="23"/></add><add as="group"><add as="verticalAlign" value="top"/><add as="fillColor" value="none"/><add as="strokeColor" value="none"/><add as="gradientColor" value="none"/><add as="pointerEvents" value="0"/></add><add as="ellipse"><add as="shape" value="ellipse"/><add as="perimeter" value="ellipsePerimeter"/></add><add as="rhombus"><add as="shape" value="rhombus"/><add as="perimeter" value="rhombusPerimeter"/></add><add as="triangle"><add as="shape" value="triangle"/><add as="perimeter" value="trianglePerimeter"/></add><add as="line"><add as="shape" value="line"/><add as="strokeWidth" value="4"/><add as="labelBackgroundColor" value="#ffffff"/><add as="verticalAlign" value="top"/><add as="spacingTop" value="8"/></add><add as="image"><add as="shape" value="image"/><add as="labelBackgroundColor" value="white"/><add as="verticalAlign" value="top"/><add as="verticalLabelPosition" value="bottom"/></add><add as="roundImage" extend="image"><add as="perimeter" value="ellipsePerimeter"/></add><add as="rhombusImage" extend="image"><add as="perimeter" value="rhombusPerimeter"/></add><add as="arrow"><add as="shape" value="arrow"/><add as="edgeStyle" value="none"/><add as="fillColor" value="#ffffff"/></add></mxStylesheet>').documentElement; -Graph.prototype.defaultThemes.darkTheme=mxUtils.parseXml('<mxStylesheet><add as="defaultVertex"><add as="shape" value="label"/><add as="perimeter" value="rectanglePerimeter"/><add as="fontSize" value="12"/><add as="fontFamily" value="Helvetica"/><add as="align" value="center"/><add as="verticalAlign" value="middle"/><add as="fillColor" value="#2a2a2a"/><add as="strokeColor" value="#f0f0f0"/><add as="fontColor" value="#f0f0f0"/></add><add as="defaultEdge"><add as="shape" value="connector"/><add as="labelBackgroundColor" value="#2a2a2a"/><add as="endArrow" value="classic"/><add as="fontSize" value="11"/><add as="fontFamily" value="Helvetica"/><add as="align" value="center"/><add as="verticalAlign" value="middle"/><add as="rounded" value="1"/><add as="strokeColor" value="#f0f0f0"/><add as="fontColor" value="#f0f0f0"/></add><add as="text"><add as="fillColor" value="none"/><add as="gradientColor" value="none"/><add as="strokeColor" value="none"/><add as="align" value="left"/><add as="verticalAlign" value="top"/></add><add as="label"><add as="fontStyle" value="1"/><add as="align" value="left"/><add as="verticalAlign" value="middle"/><add as="spacing" value="2"/><add as="spacingLeft" value="52"/><add as="imageWidth" value="42"/><add as="imageHeight" value="42"/><add as="rounded" value="1"/></add><add as="icon" extend="label"><add as="align" value="center"/><add as="imageAlign" value="center"/><add as="verticalLabelPosition" value="bottom"/><add as="verticalAlign" value="top"/><add as="spacingTop" value="4"/><add as="labelBackgroundColor" value="#2a2a2a"/><add as="spacing" value="0"/><add as="spacingLeft" value="0"/><add as="spacingTop" value="6"/><add as="fontStyle" value="0"/><add as="imageWidth" value="48"/><add as="imageHeight" value="48"/></add><add as="swimlane"><add as="shape" value="swimlane"/><add as="fontSize" value="12"/><add as="fontStyle" value="1"/><add as="startSize" value="23"/></add><add as="group"><add as="verticalAlign" value="top"/><add as="fillColor" value="none"/><add as="strokeColor" value="none"/><add as="gradientColor" value="none"/><add as="pointerEvents" value="0"/></add><add as="ellipse"><add as="shape" value="ellipse"/><add as="perimeter" value="ellipsePerimeter"/></add><add as="rhombus"><add as="shape" value="rhombus"/><add as="perimeter" value="rhombusPerimeter"/></add><add as="triangle"><add as="shape" value="triangle"/><add as="perimeter" value="trianglePerimeter"/></add><add as="line"><add as="shape" value="line"/><add as="strokeWidth" value="4"/><add as="labelBackgroundColor" value="#2a2a2a"/><add as="verticalAlign" value="top"/><add as="spacingTop" value="8"/></add><add as="image"><add as="shape" value="image"/><add as="labelBackgroundColor" value="#2a2a2a"/><add as="verticalAlign" value="top"/><add as="verticalLabelPosition" value="bottom"/></add><add as="roundImage" extend="image"><add as="perimeter" value="ellipsePerimeter"/></add><add as="rhombusImage" extend="image"><add as="perimeter" value="rhombusPerimeter"/></add><add as="arrow"><add as="shape" value="arrow"/><add as="edgeStyle" value="none"/><add as="fillColor" value="#2a2a2a"/></add></mxStylesheet>').documentElement;GraphViewer=function(a,d,e){this.init(a,d,e)};mxUtils.extend(GraphViewer,mxEventSource);GraphViewer.prototype.editBlankUrl="https://www.draw.io/";GraphViewer.prototype.imageBaseUrl="https://www.draw.io/";GraphViewer.prototype.toolbarHeight="BackCompat"==document.compatMode?28:30;GraphViewer.prototype.lightboxChrome=!0;GraphViewer.prototype.lightboxZIndex=999;GraphViewer.prototype.toolbarZIndex=999;GraphViewer.prototype.autoFit=!0;GraphViewer.prototype.allowZoomIn=!1; +(function(){var a=!1;"min"!=uiTheme||a||mxClient.IS_CHROMEAPP||(EditorUi.initMinimalTheme(),a=!0);var b=EditorUi.initTheme;EditorUi.initTheme=function(){b.apply(this,arguments);"min"!=uiTheme||a||(this.initMinimalTheme(),a=!0)}})();mxResources.parse("# *DO NOT DIRECTLY EDIT THIS FILE, IT IS AUTOMATICALLY GENERATED AND IT IS BASED ON:*\n# https://docs.google.com/spreadsheet/ccc?key=0AmQEO36liL4FdDJLWVNMaVV2UmRKSnpXU09MYkdGbEE\naboutDrawio=About draw.io\naccessDenied=Access Denied\naction=Action\nactualSize=Actual Size\nadd=Add\naddedFile=Added {1}\naddImages=Add Images\naddImageUrl=Add Image URL\naddLayer=Add Layer\naddProperty=Add Property\naddress=Address\naddToExistingDrawing=Add to Existing Drawing\naddWaypoint=Add Waypoint\nadjustTo=Adjust to\nadvanced=Advanced\nalign=Align\nalignment=Alignment\nallChangesLost=All changes will be lost!\nallPages=All Pages\nallProjects=All Projects\nallSpaces=All Spaces\nallTags=All Tags\nanchor=Anchor\nandroid=Android\nangle=Angle\narc=Arc\nareYouSure=Are you sure?\nensureDataSaved=Please ensure your data is saved before closing.\nallChangesSaved=All changes saved\nallChangesSavedInDrive=All changes saved in Drive\nallowPopups=Allow pop-ups to avoid this dialog.\nallowRelativeUrl=Allow relative URL\nalreadyConnected=Nodes already connected\napply=Apply\narchiMate21=ArchiMate 2.1\narrange=Arrange\narrow=Arrow\narrows=Arrows\nasNew=As New\natlas=Atlas\nauthor=Author\nauthorizationRequired=Authorization required\nauthorizeThisAppIn=Authorize this app in {1}:\nauthorize=Authorize\nauthorizing=Authorizing\nautomatic=Automatic\nautosave=Autosave\nautosize=Autosize\nattachments=Attachments\naws=AWS\naws3d=AWS 3D\nazure=Azure\nbackground=Background\nbackgroundColor=Background Color\nbackgroundImage=Background Image\nbasic=Basic\nblankDrawing=Blank Drawing\nblankDiagram=Blank Diagram\nblock=Block\nblockquote=Blockquote\nblog=Blog\nbold=Bold\nbootstrap=Bootstrap\nborder=Border\nborderColor=Border Color\nborderWidth=Borderwidth\nbottom=Bottom\nbottomAlign=Bottom Align\nbottomLeft=Bottom Left\nbottomRight=Bottom Right\nbpmn=BPMN\nbrowser=Browser\nbulletedList=Bulleted List\nbusiness=Business\nbusy=Operation in progress\ncabinets=Cabinets\ncancel=Cancel\ncenter=Center\ncannotLoad=Load attempts failed. Please try again later.\ncannotLogin=Log in attempts failed. Please try again later.\ncannotOpenFile=Cannot open file\nchange=Change\nchangeOrientation=Change Orientation\nchangeUser=Change user\nchangesNotSaved=Changes have not been saved\nchatJoined={1} has joined\nchatLeft={1} has left\nchatWindowTitle=Chat\nchooseAnOption=Choose an option\nchromeApp=Chrome App\ncollaborativeEditingNotice=Important Notice for Collaborative Editing\ncompressed=Compressed\ncommitMessage=Commit Message\ncsv=CSV\ndark=Dark\ndraftFound=A draft for '{1}' has been found. Load it into the editor or discard it to continue.\ndragAndDropNotSupported=Drag and drop not supported for images. Would you like to import instead?\ndropboxCharsNotAllowed=The following characters are not allowed: / : ? * \" |\ncheck=Check\ncircle=Circle\ncisco=Cisco\nclassic=Classic\nclearDefaultStyle=Clear Default Style\nclearWaypoints=Clear Waypoints\nclipart=Clipart\nclose=Close\ncollaborator=Collaborator\ncollaborators=Collaborators\ncollapse=Collapse\ncollapseExpand=Collapse/Expand\ncollapse-expand=Click to collapse/expand\nShift-click to move neighbors \nAlt-click to protect group size\ncollapsible=Collapsible\ncomic=Comic\ncomment=Comment\ncommentsNotes=Comments/Notes\ncompress=Compress\nconnect=Connect\nconnecting=Connecting\nconnectWithDrive=Connect with Google Drive\nconnection=Connection\nconnectionArrows=Connection Arrows\nconnectionPoints=Connection Points\nconstrainProportions=Constrain Proportions\ncontainsValidationErrors=Contains validation errors\ncopiedToClipboard=Copied to clipboard\ncopy=Copy\ncopyConnect=Copy on connect\ncopyOf=Copy of {1}\ncopyOfDrawing=Copy of Drawing\ncopySize=Copy Size\ncopyStyle=Copy Style\ncreate=Create\ncreateNewDiagram=Create New Diagram\ncreateRevision=Create Revision\ncreateShape=Create Shape\ncrop=Crop\ncurved=Curved\ncustom=Custom\ncurrent=Current\ncut=Cut\ndashed=Dashed\ndecideLater=Decide later\ndefault=Default\ndelete=Delete\ndeleteColumn=Delete Column\ndeleteLibrary401=Insufficient permissions to delete this library\ndeleteLibrary404=Selected library could not be found\ndeleteLibrary500=Error deleting library\ndeleteLibraryConfirm=You are about to permanently delete this library. Are you sure you want to do this?\ndeleteRow=Delete Row\ndescription=Description\ndevice=Device\ndiagram=Diagram\ndiagramContent=Diagram Content\ndiagramLocked=Diagram has been locked to prevent further data loss.\ndiagramLockedBySince=The diagram is locked by {1} since {2} ago\ndiagramName=Diagram Name\ndiagramIsPublic=Diagram is public\ndiagramIsNotPublic=Diagram is not public\ndiamond=Diamond\ndiamondThin=Diamond (thin)\ndidYouKnow=Did you know...\ndirection=Direction\ndiscard=Discard\ndiscardChangesAndReconnect=Discard Changes and Reconnect\ngoogleDriveMissingClickHere=Google Drive missing? Click here!\ndiscardChanges=Discard Changes\ndisconnected=Disconnected\ndistribute=Distribute\ndone=Done\ndotted=Dotted\ndoubleClickOrientation=Doubleclick to change orientation\ndoubleClickTooltip=Doubleclick to insert text\ndoubleClickChangeProperty=Doubleclick to change property name\ndownload=Download\ndownloadDesktop=Download draw.io Desktop\ndownloadAs=Download as\nclickHereToSave=Click here to save.\ndraftDiscarded=Draft discarded\ndraftSaved=Draft saved\ndragElementsHere=Drag elements here\ndragImagesHere=Drag images or URLs here\ndragUrlsHere=Drag URLs here\ndraw.io=draw.io\ndrawing=Drawing{1}\ndrawingEmpty=Drawing is empty\ndrawingTooLarge=Drawing is too large\ndrawioForWork=Draw.io for GSuite\ndropbox=Dropbox\nduplicate=Duplicate\nduplicateIt=Duplicate {1}\ndivider=Divider\ndx=Dx\ndy=Dy\neast=East\nedit=Edit\neditData=Edit Data\neditDiagram=Edit Diagram\neditGeometry=Edit Geometry\neditImage=Edit Image\neditImageUrl=Edit Image URL\neditLink=Edit Link\neditShape=Edit Shape\neditStyle=Edit Style\neditText=Edit Text\neditTooltip=Edit Tooltip\nglass=Glass\ngoogleImages=Google Images\nimageSearch=Image Search\neip=EIP\nembed=Embed\nembedImages=Embed Images\nmainEmbedNotice=Paste this into the page\nelectrical=Electrical\nellipse=Ellipse\nembedNotice=Paste this once at the end of the page\nenterGroup=Enter Group\nenterName=Enter Name\nenterPropertyName=Enter Property Name\nenterValue=Enter Value\nentityRelation=Entity Relation\nerror=Error\nerrorDeletingFile=Error Deleting File\nerrorLoadingFile=Error loading file\nerrorRenamingFile=Error renaming file.\nerrorRenamingFileNotFound=Error renaming file. File was not found.\nerrorRenamingFileForbidden=Error renaming file. Insufficient access rights.\nerrorSavingDraft=Error saving draft\nerrorSavingFile=Error saving file\nerrorSavingFileUnknown=Error authorizing with Google's servers. Please refresh the page to re-attempt.\nerrorSavingFileForbidden=Error saving file. Insufficient access rights.\nerrorSavingFileNameConflict=Could not save diagram. Current page already contains file named '{1}'.\nerrorSavingFileNotFound=Error saving file. File was not found.\nerrorSavingFileReadOnlyMode=Could not save diagram while read-only mode is active.\nerrorSavingFileSessionTimeout=Your session has ended. Please <a target='_blank' href='{1}'>{2}</a> and return to this tab to try to save again.\nerrorSendingFeedback=Error sending feedback.\nerrorUpdatingPreview=Error updating preview.\nexit=Exit\nexitGroup=Exit Group\nexpand=Expand\nexport=Export\nexporting=Exporting\nexportAs=Export as\nexportOptionsDisabled=Export options disabled\nexportOptionsDisabledDetails=The owner has disabled options to download, print or copy for commenters and viewers on this file.\nexternalChanges=External Changes\nextras=Extras\nfacebook=Facebook\nfailedToSaveTryReconnect=Failed to save, trying to reconnect\nfeatureRequest=Feature Request\nfeedback=Feedback\nfeedbackSent=Feedback successfully sent.\nfloorplans=Floorplans\nfile=File\nfileChangedOverwrite=The file has been modified. Do you want to save the file and overwrite those changes?\noverwrite=Overwrite\nfilename=Filename\nfileExists=File already exists\nfileNearlyFullSeeFaq=File nearly full, please see FAQ\nfileNotFound=File not found\nrepositoryNotFound=Repository not found\nfileNotFoundOrDenied=The file was not found. It does not exist or you do not have read access.\nfileNotLoaded=File not loaded\nfileNotSaved=File not saved\nfileOpenLocation=How would you like to open these file(s)?\nfileWillBeSavedInAppFolder={1} will be saved in the app folder.\nfill=Fill\nfillColor=Fill Color\nfilterCards=Filter Cards\nfind=Find\nfit=Fit\nfitContainer=Resize Container\nfitIntoContainer=Fit into Container\nfitPage=Fit Page\nfitPageWidth=Fit Page Width\nfitTo=Fit to\nfitToSheetsAcross=sheet(s) across\nfitToBy=by\nfitToSheetsDown=sheet(s) down\nfitTwoPages=Two Pages\nfitWindow=Fit Window\nflip=Flip\nflipH=Flip Horizontal\nflipV=Flip Vertical\nflowchart=Flowchart\nfolder=Folder\nfont=Font\nfontColor=Font Color\nfontFamily=Font Family\nfontSize=Font Size\nforbidden=You are not authorized to access this file\nformat=Format\nformatPanel=Format Panel\nformatted=Formatted\nformattedText=Formatted Text\nformatPng=PNG\nformatGif=GIF\nformatJpg=JPEG\nformatPdf=PDF\nformatSql=SQL\nformatSvg=SVG\nformatHtmlEmbedded=HTML\nformatSvgEmbedded=SVG (with XML)\nformatVsdx=VSDX\nformatVssx=VSSX\nformatXmlPlain=XML (Plain)\nformatXml=XML\nforum=Discussion/Help Forums\nfromTemplate=From Template\nfromTemplateUrl=From Template URL\nfromText=From Text\nfromUrl=From URL\nfromThisPage=From this page\nfullscreen=Fullscreen\ngap=Gap\ngcp=GCP\ngeneral=General\ngithub=GitHub\ngliffy=Gliffy\nglobal=Global\ngoogleDocs=Google Docs\ngoogleDrive=Google Drive\ngoogleGadget=Google Gadget\ngooglePlus=Google+\ngoogleSites=Google Sites\ngradient=Gradient\ngradientColor=Color\ngrid=Grid\ngridColor=Grid Color\ngridSize=Grid Size\ngroup=Group\nguides=Guides\nhateApp=I hate draw.io\nheading=Heading\nheight=Height\nhelp=Help\nhelpTranslate=Help us translate this application\nhide=Hide\nhideIt=Hide {1}\nhidden=Hidden\nhome=Home\nhorizontal=Horizontal\nhorizontalFlow=Horizontal Flow\nhorizontalTree=Horizontal Tree\nhowTranslate=How good is the translation in your language?\nhtml=HTML\nhtmlText=HTML Text\nid=ID\niframe=IFrame\nignore=Ignore\nimage=Image\nimageUrl=Image URL\nimages=Images\nimagePreviewError=This image couldn't be loaded for preview. Please check the URL.\nimageTooBig=Image too big\nimgur=Imgur\nimport=Import\nimportFrom=Import from\nincludeCopyOfMyDiagram=Include a copy of my diagram\nincreaseIndent=Increase Indent\ndecreaseIndent=Decrease Indent\ninsert=Insert\ninsertColumnBefore=Insert Column Left\ninsertColumnAfter=Insert Column Right\ninsertEllipse=Insert Ellipse\ninsertImage=Insert Image\ninsertHorizontalRule=Insert Horizontal Rule\ninsertLink=Insert Link\ninsertPage=Insert Page\ninsertRectangle=Insert Rectangle\ninsertRhombus=Insert Rhombus\ninsertRowBefore=Insert Row Above\ninsertRowAfter=Insert Row After\ninsertText=Insert Text\ninserting=Inserting\ninvalidFilename=Diagram names must not contain the following characters: / | : ; { } < > & + ? = \"\ninvalidLicenseSeeThisPage=Your license is invalid, please see this <a target=\"_blank\" href=\"https://support.draw.io/display/DFCS/Licensing+your+draw.io+plugin\">page</a>.\ninvalidName=Invalid name\ninvalidOrMissingFile=Invalid or missing file\ninvalidPublicUrl=Invalid public URL\nisometric=Isometric\nios=iOS\nitalic=Italic\nkennedy=Kennedy\nkeyboardShortcuts=Keyboard Shortcuts\nlayers=Layers\nlandscape=Landscape\nlanguage=Language\nleanMapping=Lean Mapping\nlastChange=Last change {1} ago\nlessThanAMinute=less than a minute\nlicensingError=Licensing Error\nlicenseHasExpired=The license for {1} has expired on {2}. Click here.\nlicenseWillExpire=The license for {1} will expire on {2}. Click here.\nlineJumps=Line jumps\nlinkAccountRequired=If the diagram is not public a Google account is required to view the link.\nlinkText=Link Text\nlist=List\nminute=minute\nminutes=minutes\nhours=hours\ndays=days\nmonths=months\nyears=years\nrestartForChangeRequired=Changes will take effect after page refresh.\nlaneColor=Lanecolor\nlastModified=Last modified\nlayout=Layout\nleft=Left\nleftAlign=Left Align\nleftToRight=Left to right\nlibraryTooltip=Drag and drop shapes here or click + to insert. Double click to edit.\nlightbox=Lightbox\nline=Line\nlineend=Line end\nlineheight=Line Height\nlinestart=Line start\nlinewidth=Linewidth\nlink=Link\nlinks=Links\nloading=Loading\nlockUnlock=Lock/Unlock\nloggedOut=Logged Out\nlogIn=log in\nloveIt=I love {1}\nlucidchart=Lucidchart\nmaps=Maps\nmathematicalTypesetting=Mathematical Typesetting\nmakeCopy=Make a Copy\nmanual=Manual\nmiddle=Middle\nminimal=Minimal\nmisc=Misc\nmockups=Mockups\nmodificationDate=Modification date\nmodifiedBy=Modified by\nmore=More\nmoreResults=More Results\nmoreShapes=More Shapes\nmove=Move\nmoveToFolder=Move to Folder\nmoving=Moving\nmoveSelectionTo=Move selection to {1}\nname=Name\nnavigation=Navigation\nnetwork=Network\nnetworking=Networking\nnew=New\nnewLibrary=New Library\nnextPage=Next Page\nno=No\nnoAttachments=No attachments found\nnoColor=No Color\nnoFiles=No Files\nnoFileSelected=No file selected\nnoLibraries=No libraries found\nnoMoreResults=No more results\nnone=None\nnoOtherViewers=No other viewers\nnoPlugins=No plugins\nnoPreview=No preview\nnoResponse=No response from server\nnoResultsFor=No results for '{1}'\nnoRevisions=No revisions\nnoSearchResults=No search results found\nnoPageContentOrNotSaved=No anchors found on this page or it hasn't been saved yet\nnormal=Normal\nnorth=North\nnotADiagramFile=Not a diagram file\nnotALibraryFile=Not a library file\nnotAvailable=Not available\nnotAUtf8File=Not a UTF-8 file\nnotConnected=Not connected\nnote=Note\nnotUsingService=Not using {1}?\nnumberedList=Numbered list\noffline=Offline\nok=OK\noneDrive=OneDrive\nonline=Online\nopacity=Opacity\nopen=Open\nopenArrow=Open Arrow\nopenExistingDiagram=Open Existing Diagram\nopenFile=Open File\nopenFrom=Open from\nopenLibrary=Open Library\nopenLibraryFrom=Open Library from\nopenLink=Open Link\nopenInNewWindow=Open in New Window\nopenInThisWindow=Open in This Window\nopenIt=Open {1}\nopenRecent=Open Recent\nopenSupported=Supported formats are files saved from this software (.xml), .vsdx and .gliffy\noptions=Options\norganic=Organic\northogonal=Orthogonal\notherViewer=other viewer\notherViewers=other viewers\noutline=Outline\noval=Oval\npage=Page\npageContent=Page Content\npageNotFound=Page not found\npageWithNumber=Page-{1}\npages=Pages\npageView=Page View\npageSetup=Page Setup\npageScale=Page Scale\npan=Pan\npanTooltip=Space+Drag to pan\npaperSize=Paper Size\npattern=Pattern\npaste=Paste\npasteHere=Paste here\npasteSize=Paste Size\npasteStyle=Paste Style\nperimeter=Perimeter\npermissionAnyone=Anyone can edit\npermissionAuthor=Owner and admins can edit\npickFolder=Pick a folder\npickLibraryDialogTitle=Select Library\npublicDiagramUrl=Public URL of the diagram\nplaceholders=Placeholders\nplantUml=PlantUML\nplugins=Plugins\npluginUrl=Plugin URL\npluginWarning=The page has requested to load the following plugin(s):\n \n {1}\n \n Would you like to load these plugin(s) now?\n \n NOTE : Only allow plugins to run if you fully understand the security implications of doing so.\n\nplusTooltip=Click to connect and clone (ctrl+click to clone, shift+click to connect). Drag to connect (ctrl+drag to clone).\nportrait=Portrait\nposition=Position\nposterPrint=Poster Print\npreferences=Preferences\npreview=Preview\npreviousPage=Previous Page\nprint=Print\nprintAllPages=Print All Pages\nprocEng=Proc. Eng.\nproject=Project\npriority=Priority\nproperties=Properties\npublish=Publish\nquickStart=Quick Start Video\nrack=Rack\nradialTree=Radial Tree\nreadOnly=Read-only\nreconnecting=Reconnecting\nrecentlyUpdated=Recently Updated\nrecentlyViewed=Recently Viewed\nrectangle=Rectangle\nredirectToNewApp=This file was created or modified in a newer version of this app. You will be redirected now.\nrealtimeTimeout=It looks like you've made a few changes while offline. We're sorry, these changes cannot be saved.\nredo=Redo\nrefresh=Refresh\nregularExpression=Regular Expression\nrelative=Relative\nrelativeUrlNotAllowed=Relative URL not allowed\nrememberMe=Remember me\nrememberThisSetting=Remember this setting\nremoveFormat=Clear Formatting\nremoveFromGroup=Remove from Group\nremoveIt=Remove {1}\nremoveWaypoint=Remove Waypoint\nrename=Rename\nrenamed=Renamed\nrenameIt=Rename {1}\nrenaming=Renaming\nreplace=Replace\nreplaceIt={1} already exists. Do you want to replace it?\nreplaceExistingDrawing=Replace existing drawing\nrequired=required\nreset=Reset\nresetView=Reset View\nresize=Resize\nresizeLargeImages=Do you want to resize large images to make the application run faster?\nretina=Retina\nresponsive=Responsive\nrestore=Restore\nrestoring=Restoring\nretryingIn=Retrying in {1} second(s)\nretryingLoad=Load failed. Retrying...\nretryingLogin=Login time out. Retrying...\nreverse=Reverse\nrevision=Revision\nrevisionHistory=Revision History\nrhombus=Rhombus\nright=Right\nrightAlign=Right Align\nrightToLeft=Right to left\nrotate=Rotate\nrotateTooltip=Click and drag to rotate, click to turn shape only by 90 degrees\nrotation=Rotation\nrounded=Rounded\nsave=Save\nsaveAndExit=Save & Exit\nsaveAs=Save as\nsaveAsXmlFile=Save as XML file?\nsaved=Saved\nsaveDiagramsTo=Save diagrams to\nsaveLibrary403=Insufficient permissions to edit this library\nsaveLibrary500=There was an error while saving the library\nsaving=Saving\nscratchpad=Scratchpad\nscrollbars=Scrollbars\nsearch=Search\nsearchShapes=Search Shapes\nselectAll=Select All\nselectionOnly=Selection Only\nselectCard=Select Card\nselectEdges=Select Edges\nselectFile=Select File\nselectFolder=Select Folder\nselectFont=Select Font\nselectNone=Select None\nselectTemplate=Select Template\nselectVertices=Select Vertices\nsendMessage=Send\nsendYourFeedbackToDrawIo=Send your feedback to draw.io\nserviceUnavailableOrBlocked=Service unavailable or blocked\nsessionExpired=Your session has expired. Please refresh the browser window.\nsessionTimeoutOnSave=Your session has timed out and you have been disconnected from the Google Drive. Press OK to login and save. \nsetAsDefaultStyle=Set as Default Style\nshadow=Shadow\nshape=Shape\nshapes=Shapes\nshare=Share\nshareLink=Link for shared editing\nsharp=Sharp\nshow=Show\nshowStartScreen=Show Start Screen\nsidebarTooltip=Click to expand. Drag and drop shapes into the diagram. Shift+click to change selection. Alt+click to insert and connect.\nsigns=Signs\nsignOut=Sign out\nsimple=Simple\nsimpleArrow=Simple Arrow\nsize=Size\nsolid=Solid\nsourceSpacing=Source Spacing\nsouth=South\nsoftware=Software\nspace=Space\nspacing=Spacing\nspecialLink=Special Link\nstandard=Standard\nstarting=Starting\nstraight=Straight\nstrokeColor=Line Color\nstyle=Style\nsubscript=Subscript\nsummary=Summary\nsuperscript=Superscript\nsupport=Support\nsysml=SysML\ntags=Tags\ntable=Table\ntables=Tables\ntakeOver=Take Over\ntargetSpacing=Target Spacing\ntemplate=Template\ntemplates=Templates\ntext=Text\ntextAlignment=Text Alignment\ntextOpacity=Text Opacity\ntheme=Theme\ntimeout=Timeout\ntitle=Title\nto=to\ntoBack=To Back\ntoFront=To Front\ntooltips=Tooltips\ntop=Top\ntopAlign=Top Align\ntopLeft=Top Left\ntopRight=Top Right\ntransparent=Transparent\ntransparentBackground=Transparent Background\ntrello=Trello\ntryAgain=Try again\ntryOpeningViaThisPage=Try opening via this page.\nturn=Rotate shape only by 90°\ntype=Type\ntwitter=Twitter\numl=UML\nunderline=Underline\nundo=Undo\nungroup=Ungroup\nunsavedChanges=Unsaved changes\nunsavedChangesClickHereToSave=Unsaved changes. Click here to save.\nuntitled=Untitled\nuntitledDiagram=Untitled Diagram\nuntitledLayer=Untitled Layer\nuntitledLibrary=Untitled Library\nunknownError=Unknown error\nupdateFile=Update {1}\nupdatingDocument=Updating Document. Please wait...\nupdatingPreview=Updating Preview. Please wait...\nupdatingSelection=Updating Selection. Please wait...\nupload=Upload\nurl=URL\nuseOffline=Use Offline\nuseRootFolder=Use root folder?\nuserManual=User Manual\nvertical=Vertical\nverticalFlow=Vertical Flow\nverticalTree=Vertical Tree\nview=View\nviewUrl=Link to view: {1}\nvoiceAssistant=Voice Assistant (beta)\nwarning=Warning\nwaypoints=Waypoints\nwest=West\nwidth=Width\nwiki=Wiki\nwordWrap=Word Wrap\nwritingDirection=Writing Direction\nyes=Yes\nyourEmailAddress=Your email address\nzoom=Zoom\nzoomIn=Zoom In\nzoomOut=Zoom Out\nbasic=Basic\nbusinessprocess=Business Processes\ncharts=Charts\nengineering=Engineering\nflowcharts=Flowcharts\ngmdl=Material Design\nmindmaps=Mindmaps\nmockups=Mockups\nnetworkdiagrams=Network Diagrams\nnothingIsSelected=Nothing is selected\nother=Other\nsoftwaredesign=Software Design\nvenndiagrams=Venn Diagrams\nwebEmailOrOther=Web, email or any other internet address\nwebLink=Web Link\nwireframes=Wireframes\n");Graph.prototype.defaultThemes[Graph.prototype.defaultThemeName]=mxUtils.parseXml('<mxStylesheet><add as="defaultVertex"><add as="shape" value="label"/><add as="perimeter" value="rectanglePerimeter"/><add as="fontSize" value="12"/><add as="fontFamily" value="Helvetica"/><add as="align" value="center"/><add as="verticalAlign" value="middle"/><add as="fillColor" value="#ffffff"/><add as="strokeColor" value="#000000"/><add as="fontColor" value="#000000"/></add><add as="defaultEdge"><add as="shape" value="connector"/><add as="labelBackgroundColor" value="#ffffff"/><add as="endArrow" value="classic"/><add as="fontSize" value="11"/><add as="fontFamily" value="Helvetica"/><add as="align" value="center"/><add as="verticalAlign" value="middle"/><add as="rounded" value="1"/><add as="strokeColor" value="#000000"/><add as="fontColor" value="#000000"/></add><add as="fancy"><add as="shadow" value="1"/><add as="glass" value="1"/></add><add as="gray" extend="fancy"><add as="gradientColor" value="#B3B3B3"/><add as="fillColor" value="#F5F5F5"/><add as="strokeColor" value="#666666"/></add><add as="blue" extend="fancy"><add as="gradientColor" value="#7EA6E0"/><add as="fillColor" value="#DAE8FC"/><add as="strokeColor" value="#6C8EBF"/></add><add as="green" extend="fancy"><add as="gradientColor" value="#97D077"/><add as="fillColor" value="#D5E8D4"/><add as="strokeColor" value="#82B366"/></add><add as="turquoise" extend="fancy"><add as="gradientColor" value="#67AB9F"/><add as="fillColor" value="#D5E8D4"/><add as="strokeColor" value="#6A9153"/></add><add as="yellow" extend="fancy"><add as="gradientColor" value="#FFD966"/><add as="fillColor" value="#FFF2CC"/><add as="strokeColor" value="#D6B656"/></add><add as="orange" extend="fancy"><add as="gradientColor" value="#FFA500"/><add as="fillColor" value="#FFCD28"/><add as="strokeColor" value="#D79B00"/></add><add as="red" extend="fancy"><add as="gradientColor" value="#EA6B66"/><add as="fillColor" value="#F8CECC"/><add as="strokeColor" value="#B85450"/></add><add as="pink" extend="fancy"><add as="gradientColor" value="#B5739D"/><add as="fillColor" value="#E6D0DE"/><add as="strokeColor" value="#996185"/></add><add as="purple" extend="fancy"><add as="gradientColor" value="#8C6C9C"/><add as="fillColor" value="#E1D5E7"/><add as="strokeColor" value="#9673A6"/></add><add as="plain-gray"><add as="gradientColor" value="#B3B3B3"/><add as="fillColor" value="#F5F5F5"/><add as="strokeColor" value="#666666"/></add><add as="plain-blue"><add as="gradientColor" value="#7EA6E0"/><add as="fillColor" value="#DAE8FC"/><add as="strokeColor" value="#6C8EBF"/></add><add as="plain-green"><add as="gradientColor" value="#97D077"/><add as="fillColor" value="#D5E8D4"/><add as="strokeColor" value="#82B366"/></add><add as="plain-turquoise"><add as="gradientColor" value="#67AB9F"/><add as="fillColor" value="#D5E8D4"/><add as="strokeColor" value="#6A9153"/></add><add as="plain-yellow"><add as="gradientColor" value="#FFD966"/><add as="fillColor" value="#FFF2CC"/><add as="strokeColor" value="#D6B656"/></add><add as="plain-orange"><add as="gradientColor" value="#FFA500"/><add as="fillColor" value="#FFCD28"/><add as="strokeColor" value="#D79B00"/></add><add as="plain-red"><add as="gradientColor" value="#EA6B66"/><add as="fillColor" value="#F8CECC"/><add as="strokeColor" value="#B85450"/></add><add as="plain-pink"><add as="gradientColor" value="#B5739D"/><add as="fillColor" value="#E6D0DE"/><add as="strokeColor" value="#996185"/></add><add as="plain-purple"><add as="gradientColor" value="#8C6C9C"/><add as="fillColor" value="#E1D5E7"/><add as="strokeColor" value="#9673A6"/></add><add as="text"><add as="fillColor" value="none"/><add as="gradientColor" value="none"/><add as="strokeColor" value="none"/><add as="align" value="left"/><add as="verticalAlign" value="top"/></add><add as="label"><add as="fontStyle" value="1"/><add as="align" value="left"/><add as="verticalAlign" value="middle"/><add as="spacing" value="2"/><add as="spacingLeft" value="52"/><add as="imageWidth" value="42"/><add as="imageHeight" value="42"/><add as="rounded" value="1"/></add><add as="icon" extend="label"><add as="align" value="center"/><add as="imageAlign" value="center"/><add as="verticalLabelPosition" value="bottom"/><add as="verticalAlign" value="top"/><add as="spacingTop" value="4"/><add as="labelBackgroundColor" value="#ffffff"/><add as="spacing" value="0"/><add as="spacingLeft" value="0"/><add as="spacingTop" value="6"/><add as="fontStyle" value="0"/><add as="imageWidth" value="48"/><add as="imageHeight" value="48"/></add><add as="swimlane"><add as="shape" value="swimlane"/><add as="fontSize" value="12"/><add as="fontStyle" value="1"/><add as="startSize" value="23"/></add><add as="group"><add as="verticalAlign" value="top"/><add as="fillColor" value="none"/><add as="strokeColor" value="none"/><add as="gradientColor" value="none"/><add as="pointerEvents" value="0"/></add><add as="ellipse"><add as="shape" value="ellipse"/><add as="perimeter" value="ellipsePerimeter"/></add><add as="rhombus"><add as="shape" value="rhombus"/><add as="perimeter" value="rhombusPerimeter"/></add><add as="triangle"><add as="shape" value="triangle"/><add as="perimeter" value="trianglePerimeter"/></add><add as="line"><add as="shape" value="line"/><add as="strokeWidth" value="4"/><add as="labelBackgroundColor" value="#ffffff"/><add as="verticalAlign" value="top"/><add as="spacingTop" value="8"/></add><add as="image"><add as="shape" value="image"/><add as="labelBackgroundColor" value="white"/><add as="verticalAlign" value="top"/><add as="verticalLabelPosition" value="bottom"/></add><add as="roundImage" extend="image"><add as="perimeter" value="ellipsePerimeter"/></add><add as="rhombusImage" extend="image"><add as="perimeter" value="rhombusPerimeter"/></add><add as="arrow"><add as="shape" value="arrow"/><add as="edgeStyle" value="none"/><add as="fillColor" value="#ffffff"/></add></mxStylesheet>').documentElement; +Graph.prototype.defaultThemes.darkTheme=mxUtils.parseXml('<mxStylesheet><add as="defaultVertex"><add as="shape" value="label"/><add as="perimeter" value="rectanglePerimeter"/><add as="fontSize" value="12"/><add as="fontFamily" value="Helvetica"/><add as="align" value="center"/><add as="verticalAlign" value="middle"/><add as="fillColor" value="#2a2a2a"/><add as="strokeColor" value="#f0f0f0"/><add as="fontColor" value="#f0f0f0"/></add><add as="defaultEdge"><add as="shape" value="connector"/><add as="labelBackgroundColor" value="#2a2a2a"/><add as="endArrow" value="classic"/><add as="fontSize" value="11"/><add as="fontFamily" value="Helvetica"/><add as="align" value="center"/><add as="verticalAlign" value="middle"/><add as="rounded" value="1"/><add as="strokeColor" value="#f0f0f0"/><add as="fontColor" value="#f0f0f0"/></add><add as="text"><add as="fillColor" value="none"/><add as="gradientColor" value="none"/><add as="strokeColor" value="none"/><add as="align" value="left"/><add as="verticalAlign" value="top"/></add><add as="label"><add as="fontStyle" value="1"/><add as="align" value="left"/><add as="verticalAlign" value="middle"/><add as="spacing" value="2"/><add as="spacingLeft" value="52"/><add as="imageWidth" value="42"/><add as="imageHeight" value="42"/><add as="rounded" value="1"/></add><add as="icon" extend="label"><add as="align" value="center"/><add as="imageAlign" value="center"/><add as="verticalLabelPosition" value="bottom"/><add as="verticalAlign" value="top"/><add as="spacingTop" value="4"/><add as="labelBackgroundColor" value="#2a2a2a"/><add as="spacing" value="0"/><add as="spacingLeft" value="0"/><add as="spacingTop" value="6"/><add as="fontStyle" value="0"/><add as="imageWidth" value="48"/><add as="imageHeight" value="48"/></add><add as="swimlane"><add as="shape" value="swimlane"/><add as="fontSize" value="12"/><add as="fontStyle" value="1"/><add as="startSize" value="23"/></add><add as="group"><add as="verticalAlign" value="top"/><add as="fillColor" value="none"/><add as="strokeColor" value="none"/><add as="gradientColor" value="none"/><add as="pointerEvents" value="0"/></add><add as="ellipse"><add as="shape" value="ellipse"/><add as="perimeter" value="ellipsePerimeter"/></add><add as="rhombus"><add as="shape" value="rhombus"/><add as="perimeter" value="rhombusPerimeter"/></add><add as="triangle"><add as="shape" value="triangle"/><add as="perimeter" value="trianglePerimeter"/></add><add as="line"><add as="shape" value="line"/><add as="strokeWidth" value="4"/><add as="labelBackgroundColor" value="#2a2a2a"/><add as="verticalAlign" value="top"/><add as="spacingTop" value="8"/></add><add as="image"><add as="shape" value="image"/><add as="labelBackgroundColor" value="#2a2a2a"/><add as="verticalAlign" value="top"/><add as="verticalLabelPosition" value="bottom"/></add><add as="roundImage" extend="image"><add as="perimeter" value="ellipsePerimeter"/></add><add as="rhombusImage" extend="image"><add as="perimeter" value="rhombusPerimeter"/></add><add as="arrow"><add as="shape" value="arrow"/><add as="edgeStyle" value="none"/><add as="fillColor" value="#2a2a2a"/></add></mxStylesheet>').documentElement;GraphViewer=function(a,b,e){this.init(a,b,e)};mxUtils.extend(GraphViewer,mxEventSource);GraphViewer.prototype.editBlankUrl="https://www.draw.io/";GraphViewer.prototype.imageBaseUrl="https://www.draw.io/";GraphViewer.prototype.toolbarHeight="BackCompat"==document.compatMode?28:30;GraphViewer.prototype.lightboxChrome=!0;GraphViewer.prototype.lightboxZIndex=999;GraphViewer.prototype.toolbarZIndex=999;GraphViewer.prototype.autoFit=!0;GraphViewer.prototype.allowZoomIn=!1; GraphViewer.prototype.showTitleAsTooltip=!1;GraphViewer.prototype.checkVisibleState=!0; -GraphViewer.prototype.init=function(a,d,e){this.graphConfig=null!=e?e:{};this.autoFit=null!=this.graphConfig["auto-fit"]?this.graphConfig["auto-fit"]:this.autoFit;this.allowZoomIn=null!=this.graphConfig["allow-zoom-in"]?this.graphConfig["allow-zoom-in"]:this.allowZoomIn;this.checkVisibleState=null!=this.graphConfig["check-visible-state"]?this.graphConfig["check-visible-state"]:this.checkVisibleState;this.toolbarItems=null!=this.graphConfig.toolbar?this.graphConfig.toolbar.split(" "):[];this.zoomEnabled= -0<=mxUtils.indexOf(this.toolbarItems,"zoom");this.layersEnabled=0<=mxUtils.indexOf(this.toolbarItems,"layers");this.lightboxEnabled=0<=mxUtils.indexOf(this.toolbarItems,"lightbox");this.lightboxClickEnabled=0!=this.graphConfig.lightbox;this.initialWidth=null!=a?a.style.width:null;this.widthIsEmpty=null!=this.initialWidth?""==this.initialWidth:!0;this.currentPage=parseInt(this.graphConfig.page)||0;this.editor=null;if(null!=d&&(this.xmlDocument=d.ownerDocument,this.xmlNode=d,this.xml=mxUtils.getXml(d), -null!=a)){var b=mxUtils.bind(this,function(){this.graph=new Graph(a);this.graph.transparentBackground=!1;this.graphConfig.move&&(this.graph.isMoveCellsEvent=function(a){return!0});this.lightboxClickEnabled&&(a.style.cursor="pointer");this.editor=new Editor(!0,null,null,this.graph);this.editor.editBlankUrl=this.editBlankUrl;this.graph.lightbox=!0;this.graph.centerZoom=!1;this.graph.autoExtend=!1;this.graph.autoScroll=!1;this.graph.setEnabled(!1);var b=this;this.graph.getImageFromBundles=function(a){return b.getImageUrl(a)}; -mxClient.IS_SVG&&this.editor.graph.addSvgShadow(this.graph.view.canvas.ownerSVGElement,null,!0);if("mxfile"==d.nodeName){var e=d.getElementsByTagName("diagram");if(0<e.length){var h=this.graph.getGlobalVariable,b=this;this.graph.getGlobalVariable=function(a){var c=e[b.currentPage];return"page"==a?c.getAttribute("name")||"Page-"+(b.currentPage+1):"pagenumber"==a?b.currentPage+1:h.apply(this,arguments)}}}this.diagrams=[];var c=null;this.selectPage=function(a){this.currentPage=mxUtils.mod(a,this.diagrams.length); +GraphViewer.prototype.init=function(a,b,e){this.graphConfig=null!=e?e:{};this.autoFit=null!=this.graphConfig["auto-fit"]?this.graphConfig["auto-fit"]:this.autoFit;this.allowZoomIn=null!=this.graphConfig["allow-zoom-in"]?this.graphConfig["allow-zoom-in"]:this.allowZoomIn;this.checkVisibleState=null!=this.graphConfig["check-visible-state"]?this.graphConfig["check-visible-state"]:this.checkVisibleState;this.toolbarItems=null!=this.graphConfig.toolbar?this.graphConfig.toolbar.split(" "):[];this.zoomEnabled= +0<=mxUtils.indexOf(this.toolbarItems,"zoom");this.layersEnabled=0<=mxUtils.indexOf(this.toolbarItems,"layers");this.lightboxEnabled=0<=mxUtils.indexOf(this.toolbarItems,"lightbox");this.lightboxClickEnabled=0!=this.graphConfig.lightbox;this.initialWidth=null!=a?a.style.width:null;this.widthIsEmpty=null!=this.initialWidth?""==this.initialWidth:!0;this.currentPage=parseInt(this.graphConfig.page)||0;this.editor=null;if(null!=b&&(this.xmlDocument=b.ownerDocument,this.xmlNode=b,this.xml=mxUtils.getXml(b), +null!=a)){var d=mxUtils.bind(this,function(){this.graph=new Graph(a);this.graph.transparentBackground=!1;this.graphConfig.move&&(this.graph.isMoveCellsEvent=function(a){return!0});this.lightboxClickEnabled&&(a.style.cursor="pointer");this.editor=new Editor(!0,null,null,this.graph);this.editor.editBlankUrl=this.editBlankUrl;this.graph.lightbox=!0;this.graph.centerZoom=!1;this.graph.autoExtend=!1;this.graph.autoScroll=!1;this.graph.setEnabled(!1);var d=this;this.graph.getImageFromBundles=function(a){return d.getImageUrl(a)}; +mxClient.IS_SVG&&this.editor.graph.addSvgShadow(this.graph.view.canvas.ownerSVGElement,null,!0);if("mxfile"==b.nodeName){var e=b.getElementsByTagName("diagram");if(0<e.length){var k=this.graph.getGlobalVariable,d=this;this.graph.getGlobalVariable=function(a){var b=e[d.currentPage];return"page"==a?b.getAttribute("name")||"Page-"+(d.currentPage+1):"pagenumber"==a?d.currentPage+1:k.apply(this,arguments)}}}this.diagrams=[];var c=null;this.selectPage=function(a){this.currentPage=mxUtils.mod(a,this.diagrams.length); this.updateGraphXml(mxUtils.parseXml(this.graph.decompress(mxUtils.getTextContent(this.diagrams[this.currentPage]))).documentElement)};this.selectPageById=function(a){for(var b=!1,c=0;c<this.diagrams.length;c++)if(this.diagrams[c].getAttribute("id")==a){this.selectPage(c);b=!0;break}return b};var f=mxUtils.bind(this,function(){if(null==this.xmlNode||"mxfile"!=this.xmlNode.nodeName)this.diagrams=[];this.xmlNode!=c&&(this.diagrams=this.xmlNode.getElementsByTagName("diagram"),c=this.xmlNode)});this.addListener("xmlNodeChanged", -f);f();urlParams.page=b.currentPage;this.graph.getModel().beginUpdate();try{urlParams.nav=0!=this.graphConfig.nav?"1":"0",this.editor.setGraphXml(this.xmlNode),this.graph.border=null!=this.graphConfig.border?this.graphConfig.border:8,this.graph.view.scale=this.graphConfig.zoom||1}finally{this.graph.getModel().endUpdate()}this.graph.panningHandler.useLeftButtonForPanning=!0;this.graph.panningHandler.isForcePanningEvent=function(a){return!mxEvent.isPopupTrigger(a.getEvent())&&"auto"==this.graph.container.style.overflow}; -this.graph.panningHandler.usePopupTrigger=!1;this.graph.panningHandler.pinchEnabled=!1;this.graph.panningHandler.ignoreCell=!0;this.graph.setPanning(!1);this.addSizeHandler();this.showLayers(this.graph);this.addClickHandler(this.graph);this.graph.setTooltips(0!=this.graphConfig.tooltips);this.graph.initialViewState={translate:this.graph.view.translate.clone(),scale:this.graph.view.scale};b=this;this.graph.customLinkClicked=function(a){var c=!0;if("data:page/id,"==a.substring(0,13)){var d=a.indexOf(","); -b.selectPageById(a.substring(d+1))||(c=!1,alert(mxResources.get("pageNotFound")||"Page not found"))}else this.handleCustomLink(a);return c};null!=this.graphConfig.toolbar?this.addToolbar():null!=this.graphConfig.title&&this.showTitleAsTooltip&&a.setAttribute("title",this.graphConfig.title);this.fireEvent(new mxEventObject("render"))});e=window.MutationObserver||window.WebKitMutationObserver||window.MozMutationObserver;if(this.checkVisibleState&&0==a.offsetWidth&&"undefined"!==typeof e){var h=this.getObservableParent(a), -m=new e(mxUtils.bind(this,function(d){0<a.offsetWidth&&(m.disconnect(),b())}));m.observe(h,{attributes:!0})}else b()}};GraphViewer.prototype.getObservableParent=function(a){for(a=a.parentNode;a!=document.body&&null!=a.parentNode&&"none"!==mxUtils.getCurrentStyle(a).display;)a=a.parentNode;return a}; +f);f();urlParams.page=d.currentPage;this.graph.getModel().beginUpdate();try{urlParams.nav=0!=this.graphConfig.nav?"1":"0",this.editor.setGraphXml(this.xmlNode),this.graph.border=null!=this.graphConfig.border?this.graphConfig.border:8,this.graph.view.scale=this.graphConfig.zoom||1}finally{this.graph.getModel().endUpdate()}this.graph.panningHandler.useLeftButtonForPanning=!0;this.graph.panningHandler.isForcePanningEvent=function(a){return!mxEvent.isPopupTrigger(a.getEvent())&&"auto"==this.graph.container.style.overflow}; +this.graph.panningHandler.usePopupTrigger=!1;this.graph.panningHandler.pinchEnabled=!1;this.graph.panningHandler.ignoreCell=!0;this.graph.setPanning(!1);this.addSizeHandler();this.showLayers(this.graph);this.addClickHandler(this.graph);this.graph.setTooltips(0!=this.graphConfig.tooltips);this.graph.initialViewState={translate:this.graph.view.translate.clone(),scale:this.graph.view.scale};d=this;this.graph.customLinkClicked=function(a){var b=!0;if("data:page/id,"==a.substring(0,13)){var c=a.indexOf(","); +d.selectPageById(a.substring(c+1))||(b=!1,alert(mxResources.get("pageNotFound")||"Page not found"))}else this.handleCustomLink(a);return b};null!=this.graphConfig.toolbar?this.addToolbar():null!=this.graphConfig.title&&this.showTitleAsTooltip&&a.setAttribute("title",this.graphConfig.title);this.fireEvent(new mxEventObject("render"))});e=window.MutationObserver||window.WebKitMutationObserver||window.MozMutationObserver;if(this.checkVisibleState&&0==a.offsetWidth&&"undefined"!==typeof e){var k=this.getObservableParent(a), +l=new e(mxUtils.bind(this,function(b){0<a.offsetWidth&&(l.disconnect(),d())}));l.observe(k,{attributes:!0})}else d()}};GraphViewer.prototype.getObservableParent=function(a){for(a=a.parentNode;a!=document.body&&null!=a.parentNode&&"none"!==mxUtils.getCurrentStyle(a).display;)a=a.parentNode;return a}; GraphViewer.prototype.getImageUrl=function(a){null!=a&&"http://"!=a.substring(0,7)&&"https://"!=a.substring(0,8)&&"data:image"!=a.substring(0,10)&&("/"==a.charAt(0)&&(a=a.substring(1,a.length)),a=this.imageBaseUrl+a);return a};GraphViewer.prototype.setXmlNode=function(a){this.xmlDocument=a.ownerDocument;this.xml=mxUtils.getXml(a);this.xmlNode=a;this.updateGraphXml(a);this.fireEvent(new mxEventObject("xmlNodeChanged"))}; GraphViewer.prototype.setFileNode=function(a){null==this.xmlNode&&(this.xmlDocument=a.ownerDocument,this.xml=mxUtils.getXml(a),this.xmlNode=a);this.setGraphXml(a)};GraphViewer.prototype.updateGraphXml=function(a){this.setGraphXml(a);this.fireEvent(new mxEventObject("graphChanged"))}; GraphViewer.prototype.setGraphXml=function(a){null!=this.graph&&(this.graph.view.translate=new mxPoint,this.graph.view.scale=1,this.graph.getModel().clear(),this.editor.setGraphXml(a),this.widthIsEmpty?(this.graph.container.style.width="",this.graph.container.style.height=""):this.graph.container.style.width=this.initialWidth,this.positionGraph(),this.graph.initialViewState={translate:this.graph.view.translate.clone(),scale:this.graph.view.scale})}; -GraphViewer.prototype.addSizeHandler=function(){var a=this.graph.container,d=this.graph.getGraphBounds(),e=!1;a.style.overflow="hidden";var b=mxUtils.bind(this,function(){if(!e){e=!0;var b=this.graph.getGraphBounds();a.style.overflow=a.offsetWidth<=b.width+2*this.graph.border*this.graph.view.scale?"auto":"hidden";if(null!=this.toolbar){var b=a.getBoundingClientRect(),c=mxUtils.getScrollOrigin(document.body),c="relative"===document.body.style.position?document.body.getBoundingClientRect():{left:-c.x, -top:-c.y},b={left:b.left-c.left,top:b.top-c.top,bottom:b.bottom-c.top,right:b.right-c.left};this.toolbar.style.left=b.left+"px";"bottom"==this.graphConfig["toolbar-position"]?this.toolbar.style.top=b.bottom-1+"px":"inline"!=this.graphConfig["toolbar-position"]?(this.toolbar.style.width=Math.max(this.minToolbarWidth,a.offsetWidth)+"px",this.toolbar.style.top=b.top+1+"px"):this.toolbar.style.top=b.top+"px"}e=!1}}),h=null,m=!1;this.fitGraph=function(b){var c=a.offsetWidth;c==h||m||(m=!0,this.graph.maxFitScale= -null!=b?b:this.graphConfig.zoom||(this.allowZoomIn?null:1),this.graph.fit(null,null,null,null,!1,!0),this.graph.maxFitScale=null,b=this.graph.getGraphBounds(),this.updateContainerHeight(a,b.height+2*this.graph.border+1),this.graph.initialViewState={translate:this.graph.view.translate.clone(),scale:this.graph.view.scale},h=c,window.setTimeout(function(){m=!1},0))};GraphViewer.useResizeSensor&&(mxClient.IS_QUIRKS||9>=document.documentMode?(mxEvent.addListener(window,"resize",b),this.graph.addListener("size", -b)):new ResizeSensor(this.graph.container,b));if(this.graphConfig.resize||(this.zoomEnabled||!this.autoFit)&&0!=this.graphConfig.resize)this.graph.minimumContainerSize=new mxRectangle(0,0,100,1),this.graph.resizeContainer=!0;else if(this.widthIsEmpty&&this.updateContainerWidth(a,d.width+2*this.graph.border),this.updateContainerHeight(a,d.height+2*this.graph.border+1),!this.zoomEnabled&&this.autoFit){var p=h=null,b=mxUtils.bind(this,function(){window.clearTimeout(p);m||(p=window.setTimeout(mxUtils.bind(this, -this.fitGraph),100))});GraphViewer.useResizeSensor&&(mxClient.IS_QUIRKS||9>=document.documentMode?mxEvent.addListener(window,"resize",b):new ResizeSensor(this.graph.container,b))}else mxClient.IS_QUIRKS||9>=document.documentMode||this.graph.addListener("size",b);var q=mxUtils.bind(this,function(){var b=a.style.minWidth;this.widthIsEmpty&&(a.style.minWidth="100%");if(0<a.offsetWidth&&(this.allowZoomIn||d.width+2*this.graph.border>a.offsetWidth||d.height+2*this.graph.border>this.graphConfig["max-height"])){var c= -null;null!=this.graphConfig["max-height"]&&(c=this.graphConfig["max-height"]/(d.height+2*this.graph.border));this.fitGraph(c)}else this.graph.view.setTranslate(Math.floor((this.graph.border-d.x)/this.graph.view.scale),Math.floor((this.graph.border-d.y)/this.graph.view.scale)),h=a.offsetWidth;a.style.minWidth=b});mxClient.IS_QUIRKS||8==document.documentMode?window.setTimeout(q,0):q();this.positionGraph=function(){d=this.graph.getGraphBounds();h=null;q()}}; -GraphViewer.prototype.updateContainerWidth=function(a,d){a.style.width=d+"px"};GraphViewer.prototype.updateContainerHeight=function(a,d){if(this.zoomEnabled||!this.autoFit||"BackCompat"==document.compatMode||mxClient.IS_QUIRKS||8==document.documentMode)a.style.height=d+"px"}; -GraphViewer.prototype.showLayers=function(a,d){var e=this.graphConfig.layers;if(null!=e||null!=d)if(e=null!=e?e.split(" "):null,null!=d||0<e.length){var b=null!=d?d.getModel():null,h=a.getModel();h.beginUpdate();try{for(var m=h.getChildCount(h.root),p=0;p<m;p++)h.setVisible(h.getChildAt(h.root,p),null!=d?b.isVisible(b.getChildAt(b.root,p)):!1);if(null==b)for(p=0;p<e.length;p++)h.setVisible(h.getChildAt(h.root,parseInt(e[p])),!0)}finally{h.endUpdate()}}}; +GraphViewer.prototype.addSizeHandler=function(){var a=this.graph.container,b=this.graph.getGraphBounds(),e=!1;a.style.overflow="hidden";var d=mxUtils.bind(this,function(){if(!e){e=!0;var b=this.graph.getGraphBounds();a.style.overflow=a.offsetWidth<=b.width+2*this.graph.border*this.graph.view.scale?"auto":"hidden";if(null!=this.toolbar){var b=a.getBoundingClientRect(),c=mxUtils.getScrollOrigin(document.body),c="relative"===document.body.style.position?document.body.getBoundingClientRect():{left:-c.x, +top:-c.y},b={left:b.left-c.left,top:b.top-c.top,bottom:b.bottom-c.top,right:b.right-c.left};this.toolbar.style.left=b.left+"px";"bottom"==this.graphConfig["toolbar-position"]?this.toolbar.style.top=b.bottom-1+"px":"inline"!=this.graphConfig["toolbar-position"]?(this.toolbar.style.width=Math.max(this.minToolbarWidth,a.offsetWidth)+"px",this.toolbar.style.top=b.top+1+"px"):this.toolbar.style.top=b.top+"px"}e=!1}}),k=null,l=!1;this.fitGraph=function(b){var c=a.offsetWidth;c==k||l||(l=!0,this.graph.maxFitScale= +null!=b?b:this.graphConfig.zoom||(this.allowZoomIn?null:1),this.graph.fit(null,null,null,null,!1,!0),this.graph.maxFitScale=null,b=this.graph.getGraphBounds(),this.updateContainerHeight(a,b.height+2*this.graph.border+1),this.graph.initialViewState={translate:this.graph.view.translate.clone(),scale:this.graph.view.scale},k=c,window.setTimeout(function(){l=!1},0))};GraphViewer.useResizeSensor&&(mxClient.IS_QUIRKS||9>=document.documentMode?(mxEvent.addListener(window,"resize",d),this.graph.addListener("size", +d)):new ResizeSensor(this.graph.container,d));if(this.graphConfig.resize||(this.zoomEnabled||!this.autoFit)&&0!=this.graphConfig.resize)this.graph.minimumContainerSize=new mxRectangle(0,0,100,1),this.graph.resizeContainer=!0;else if(this.widthIsEmpty&&this.updateContainerWidth(a,b.width+2*this.graph.border),this.updateContainerHeight(a,b.height+2*this.graph.border+1),!this.zoomEnabled&&this.autoFit){var p=k=null,d=mxUtils.bind(this,function(){window.clearTimeout(p);l||(p=window.setTimeout(mxUtils.bind(this, +this.fitGraph),100))});GraphViewer.useResizeSensor&&(mxClient.IS_QUIRKS||9>=document.documentMode?mxEvent.addListener(window,"resize",d):new ResizeSensor(this.graph.container,d))}else mxClient.IS_QUIRKS||9>=document.documentMode||this.graph.addListener("size",d);var q=mxUtils.bind(this,function(){var d=a.style.minWidth;this.widthIsEmpty&&(a.style.minWidth="100%");if(0<a.offsetWidth&&(this.allowZoomIn||b.width+2*this.graph.border>a.offsetWidth||b.height+2*this.graph.border>this.graphConfig["max-height"])){var c= +null;null!=this.graphConfig["max-height"]&&(c=this.graphConfig["max-height"]/(b.height+2*this.graph.border));this.fitGraph(c)}else this.graph.view.setTranslate(Math.floor((this.graph.border-b.x)/this.graph.view.scale),Math.floor((this.graph.border-b.y)/this.graph.view.scale)),k=a.offsetWidth;a.style.minWidth=d});mxClient.IS_QUIRKS||8==document.documentMode?window.setTimeout(q,0):q();this.positionGraph=function(){b=this.graph.getGraphBounds();k=null;q()}}; +GraphViewer.prototype.updateContainerWidth=function(a,b){a.style.width=b+"px"};GraphViewer.prototype.updateContainerHeight=function(a,b){if(this.zoomEnabled||!this.autoFit||"BackCompat"==document.compatMode||mxClient.IS_QUIRKS||8==document.documentMode)a.style.height=b+"px"}; +GraphViewer.prototype.showLayers=function(a,b){var e=this.graphConfig.layers;if(null!=e||null!=b)if(e=null!=e?e.split(" "):null,null!=b||0<e.length){var d=null!=b?b.getModel():null,k=a.getModel();k.beginUpdate();try{for(var l=k.getChildCount(k.root),p=0;p<l;p++)k.setVisible(k.getChildAt(k.root,p),null!=b?d.isVisible(d.getChildAt(d.root,p)):!1);if(null==d)for(p=0;p<e.length;p++)k.setVisible(k.getChildAt(k.root,parseInt(e[p])),!0)}finally{k.endUpdate()}}}; GraphViewer.prototype.addToolbar=function(){function a(a,b,c,d){var g=document.createElement("div");g.style.borderRight="1px solid #d0d0d0";g.style.padding="3px 6px 3px 6px";mxEvent.addListener(g,"click",a);null!=c&&g.setAttribute("title",c);g.style.display=mxClient.IS_QUIRKS?"inline":"inline-block";a=document.createElement("img");a.setAttribute("border","0");a.setAttribute("src",b);null==d||d?(mxEvent.addListener(g,"mouseenter",function(){g.style.backgroundColor="#ddd"}),mxEvent.addListener(g,"mouseleave", -function(){g.style.backgroundColor="#eee"}),mxUtils.setOpacity(a,60),g.style.cursor="pointer"):mxUtils.setOpacity(g,30);g.appendChild(a);e.appendChild(g);f++;return g}var d=this.graph.container;"bottom"==this.graphConfig["toolbar-position"]?d.style.marginBottom=this.toolbarHeight+"px":"inline"!=this.graphConfig["toolbar-position"]&&(d.style.marginTop=this.toolbarHeight+"px");var e=d.ownerDocument.createElement("div");e.style.position="absolute";e.style.overflow="hidden";e.style.boxSizing="border-box"; -e.style.whiteSpace="nowrap";e.style.zIndex=this.toolbarZIndex;e.style.backgroundColor="#eee";e.style.height=this.toolbarHeight+"px";this.toolbar=e;if("inline"==this.graphConfig["toolbar-position"]){mxUtils.setPrefixedStyle(e.style,"transition","opacity 100ms ease-in-out");mxUtils.setOpacity(e,30);var b=null,h=null,m=mxUtils.bind(this,function(a){null!=b&&(window.clearTimeout(b),fadeThead=null);null!=h&&(window.clearTimeout(h),fadeThead2=null);b=window.setTimeout(mxUtils.bind(this,function(){mxUtils.setOpacity(e, -0);b=null;h=window.setTimeout(mxUtils.bind(this,function(){e.style.display="none";h=null}),100)}),a||200)}),p=mxUtils.bind(this,function(a){null!=b&&(window.clearTimeout(b),fadeThead=null);null!=h&&(window.clearTimeout(h),fadeThead2=null);e.style.display="";mxUtils.setOpacity(e,a||30)});mxEvent.addListener(this.graph.container,mxClient.IS_POINTER?"pointermove":"mousemove",mxUtils.bind(this,function(a){mxEvent.isTouchEvent(a)||(p(30),m())}));mxEvent.addListener(e,mxClient.IS_POINTER?"pointermove": +function(){g.style.backgroundColor="#eee"}),mxUtils.setOpacity(a,60),g.style.cursor="pointer"):mxUtils.setOpacity(g,30);g.appendChild(a);e.appendChild(g);f++;return g}var b=this.graph.container;"bottom"==this.graphConfig["toolbar-position"]?b.style.marginBottom=this.toolbarHeight+"px":"inline"!=this.graphConfig["toolbar-position"]&&(b.style.marginTop=this.toolbarHeight+"px");var e=b.ownerDocument.createElement("div");e.style.position="absolute";e.style.overflow="hidden";e.style.boxSizing="border-box"; +e.style.whiteSpace="nowrap";e.style.zIndex=this.toolbarZIndex;e.style.backgroundColor="#eee";e.style.height=this.toolbarHeight+"px";this.toolbar=e;if("inline"==this.graphConfig["toolbar-position"]){mxUtils.setPrefixedStyle(e.style,"transition","opacity 100ms ease-in-out");mxUtils.setOpacity(e,30);var d=null,k=null,l=mxUtils.bind(this,function(a){null!=d&&(window.clearTimeout(d),fadeThead=null);null!=k&&(window.clearTimeout(k),fadeThead2=null);d=window.setTimeout(mxUtils.bind(this,function(){mxUtils.setOpacity(e, +0);d=null;k=window.setTimeout(mxUtils.bind(this,function(){e.style.display="none";k=null}),100)}),a||200)}),p=mxUtils.bind(this,function(a){null!=d&&(window.clearTimeout(d),fadeThead=null);null!=k&&(window.clearTimeout(k),fadeThead2=null);e.style.display="";mxUtils.setOpacity(e,a||30)});mxEvent.addListener(this.graph.container,mxClient.IS_POINTER?"pointermove":"mousemove",mxUtils.bind(this,function(a){mxEvent.isTouchEvent(a)||(p(30),l())}));mxEvent.addListener(e,mxClient.IS_POINTER?"pointermove": "mousemove",function(a){mxEvent.consume(a)});mxEvent.addListener(e,"mouseenter",mxUtils.bind(this,function(a){p(100)}));mxEvent.addListener(e,"mousemove",mxUtils.bind(this,function(a){p(100);mxEvent.consume(a)}));mxEvent.addListener(e,"mouseleave",mxUtils.bind(this,function(a){mxEvent.isTouchEvent(a)||p(30)}));var q=this.graph,u=q.getTolerance();q.addMouseListener({startX:0,startY:0,scrollLeft:0,scrollTop:0,mouseDown:function(a,b){this.startX=b.getGraphX();this.startY=b.getGraphY();this.scrollLeft= -q.container.scrollLeft;this.scrollTop=q.container.scrollTop},mouseMove:function(a,b){},mouseUp:function(a,b){mxEvent.isTouchEvent(b.getEvent())&&Math.abs(this.scrollLeft-q.container.scrollLeft)<u&&Math.abs(this.scrollTop-q.container.scrollTop)<u&&Math.abs(this.startX-b.getGraphX())<u&&Math.abs(this.startY-b.getGraphY())<u&&(0<parseFloat(e.style.opacity||0)?m():p(30))}})}for(var c=this.toolbarItems,f=0,g=null,k=null,r=0;r<c.length;r++){var l=c[r];if("pages"==l){k=d.ownerDocument.createElement("div"); -k.style.cssText="display:inline-block;position:relative;padding:3px 4px 0 4px;vertical-align:top;font-family:Helvetica,Arial;font-size:12px;top:4px;cursor:default;";mxUtils.setOpacity(k,70);var n=a(mxUtils.bind(this,function(){this.selectPage(this.currentPage-1)}),Editor.previousImage,mxResources.get("previousPage")||"Previous Page");n.style.borderRightStyle="none";n.style.paddingLeft="0px";n.style.paddingRight="0px";e.appendChild(k);var w=a(mxUtils.bind(this,function(){this.selectPage(this.currentPage+ -1)}),Editor.nextImage,mxResources.get("nextPage")||"Next Page");w.style.paddingLeft="0px";w.style.paddingRight="0px";l=mxUtils.bind(this,function(){k.innerHTML="";mxUtils.write(k,this.currentPage+1+" / "+this.diagrams.length);k.style.display=1<this.diagrams.length?"inline-block":"none";n.style.display=k.style.display;w.style.display=k.style.display});this.addListener("graphChanged",l);l()}else if("zoom"==l)this.zoomEnabled&&(a(mxUtils.bind(this,function(){this.graph.zoomOut()}),Editor.zoomOutImage, -mxResources.get("zoomOut")||"Zoom Out"),a(mxUtils.bind(this,function(){this.graph.zoomIn()}),Editor.zoomInImage,mxResources.get("zoomIn")||"Zoom In"),a(mxUtils.bind(this,function(){this.graph.view.scaleAndTranslate(this.graph.initialViewState.scale,this.graph.initialViewState.translate.x,this.graph.initialViewState.translate.y)}),Editor.zoomFitImage,mxResources.get("fit")||"Fit"));else if("layers"==l){if(this.layersEnabled){var v=this.graph.getModel(),B=a(mxUtils.bind(this,function(a){if(null!=g)g.parentNode.removeChild(g), -g=null;else{g=this.graph.createLayersDialog();mxEvent.addListener(g,"mouseleave",function(){g.parentNode.removeChild(g);g=null});a=B.getBoundingClientRect();g.style.width="140px";g.style.padding="2px 0px 2px 0px";g.style.border="1px solid #d0d0d0";g.style.backgroundColor="#eee";g.style.fontFamily="Helvetica Neue,Helvetica,Arial Unicode MS,Arial";g.style.fontSize="11px";g.style.zIndex=this.toolbarZIndex+1;mxUtils.setOpacity(g,80);var b=mxUtils.getDocumentScrollOrigin(document);g.style.left=b.x+a.left+ -"px";g.style.top=b.y+a.bottom+"px";document.body.appendChild(g)}}),Editor.layersImage,mxResources.get("layers")||"Layers");v.addListener(mxEvent.CHANGE,function(){B.style.display=1<v.getChildCount(v.root)?"inline-block":"none"});B.style.display=1<v.getChildCount(v.root)?"inline-block":"none"}}else"lightbox"==l?this.lightboxEnabled&&a(mxUtils.bind(this,function(){this.showLightbox()}),Editor.maximizeImage,mxResources.get("show")||"Show"):null!=this.graphConfig["toolbar-buttons"]&&(l=this.graphConfig["toolbar-buttons"][l], -null!=l&&a(null==l.enabled||l.enabled?l.handler:function(){},l.image,l.title,l.enabled))}null!=this.graph.minimumContainerSize&&(this.graph.minimumContainerSize.width=34*f);null!=this.graphConfig.title&&(c=d.ownerDocument.createElement("div"),c.style.cssText="display:inline-block;position:relative;padding:3px 6px 0 6px;vertical-align:top;font-family:Helvetica,Arial;font-size:12px;top:4px;cursor:default;",c.setAttribute("title",this.graphConfig.title),mxUtils.write(c,this.graphConfig.title),mxUtils.setOpacity(c, -70),e.appendChild(c));this.minToolbarWidth=34*f;var y=d.style.border,c=mxUtils.bind(this,function(){var a=d.getBoundingClientRect(),b=mxUtils.getScrollOrigin(document.body),b="relative"===document.body.style.position?document.body.getBoundingClientRect():{left:-b.x,top:-b.y},a={left:a.left-b.left,top:a.top-b.top,bottom:a.bottom-b.top,right:a.right-b.left};e.style.left=a.left+"px";e.style.width="inline"==this.graphConfig["toolbar-position"]?"auto":Math.max(this.minToolbarWidth,d.offsetWidth)+"px"; -e.style.border="1px solid #d0d0d0";"bottom"==this.graphConfig["toolbar-position"]?e.style.top=a.bottom-1+"px":"inline"!=this.graphConfig["toolbar-position"]?(e.style.marginTop=-this.toolbarHeight+"px",e.style.top=a.top+1+"px"):e.style.top=a.top+"px";"1px solid transparent"==y&&(d.style.border="1px solid #d0d0d0");document.body.appendChild(e);var c=mxUtils.bind(this,function(){1!=this.graphConfig["toolbar-nohide"]&&(null!=e.parentNode&&e.parentNode.removeChild(e),null!=g&&(g.parentNode.removeChild(g), -g=null),d.style.border=y)});mxEvent.addListener(document,"mousemove",function(a){for(a=mxEvent.getSource(a);null!=a;){if(a==d||a==e||a==g)return;a=a.parentNode}c()});mxEvent.addListener(document,"mouseleave",function(a){c()})});mxEvent.addListener(d,"mouseenter",c)}; -GraphViewer.prototype.addClickHandler=function(a,d){a.linkPolicy=this.graphConfig.target||a.linkPolicy;a.addClickHandler(this.graphConfig.highlight,mxUtils.bind(this,function(e,b){if(null==b){var h=mxEvent.getSource(e);"a"==h.nodeName.toLowerCase()&&(b=h.getAttribute("href"))}null!=d?null==b||a.isExternalProtocol(b)||a.isBlankLink(b)||window.setTimeout(function(){d.destroy()},0):null!=b&&null==d&&a.isCustomLink(b)&&(mxEvent.isTouchEvent(e)||!mxEvent.isPopupTrigger(e))&&a.customLinkClicked(b)&&mxEvent.consume(e)}), -mxUtils.bind(this,function(a){null!=d||!this.lightboxClickEnabled||mxEvent.isTouchEvent(a)&&0!=this.toolbarItems.length||this.showLightbox()}))}; -GraphViewer.prototype.showLightbox=function(a,d,e){if("open"==this.graphConfig.lightbox||window.self!==window.top)if(null==this.lightboxWindow||this.lightboxWindow.closed){a=null!=a?a:null!=this.graphConfig.editable?this.graphConfig.editable:!0;e={client:1,lightbox:1,target:null!=e?e:"blank"};a&&(e.edit=this.graphConfig.edit||"_blank");if(null!=d?d:1)e.close=1;this.layersEnabled&&(e.layers=1);null!=this.graphConfig&&0!=this.graphConfig.nav&&(e.nav=1);null!=this.graphConfig&&null!=this.graphConfig.highlight&& +q.container.scrollLeft;this.scrollTop=q.container.scrollTop},mouseMove:function(a,b){},mouseUp:function(a,b){mxEvent.isTouchEvent(b.getEvent())&&Math.abs(this.scrollLeft-q.container.scrollLeft)<u&&Math.abs(this.scrollTop-q.container.scrollTop)<u&&Math.abs(this.startX-b.getGraphX())<u&&Math.abs(this.startY-b.getGraphY())<u&&(0<parseFloat(e.style.opacity||0)?l():p(30))}})}for(var c=this.toolbarItems,f=0,g=null,n=null,r=0;r<c.length;r++){var h=c[r];if("pages"==h){n=b.ownerDocument.createElement("div"); +n.style.cssText="display:inline-block;position:relative;padding:3px 4px 0 4px;vertical-align:top;font-family:Helvetica,Arial;font-size:12px;top:4px;cursor:default;";mxUtils.setOpacity(n,70);var m=a(mxUtils.bind(this,function(){this.selectPage(this.currentPage-1)}),Editor.previousImage,mxResources.get("previousPage")||"Previous Page");m.style.borderRightStyle="none";m.style.paddingLeft="0px";m.style.paddingRight="0px";e.appendChild(n);var w=a(mxUtils.bind(this,function(){this.selectPage(this.currentPage+ +1)}),Editor.nextImage,mxResources.get("nextPage")||"Next Page");w.style.paddingLeft="0px";w.style.paddingRight="0px";h=mxUtils.bind(this,function(){n.innerHTML="";mxUtils.write(n,this.currentPage+1+" / "+this.diagrams.length);n.style.display=1<this.diagrams.length?"inline-block":"none";m.style.display=n.style.display;w.style.display=n.style.display});this.addListener("graphChanged",h);h()}else if("zoom"==h)this.zoomEnabled&&(a(mxUtils.bind(this,function(){this.graph.zoomOut()}),Editor.zoomOutImage, +mxResources.get("zoomOut")||"Zoom Out"),a(mxUtils.bind(this,function(){this.graph.zoomIn()}),Editor.zoomInImage,mxResources.get("zoomIn")||"Zoom In"),a(mxUtils.bind(this,function(){this.graph.view.scaleAndTranslate(this.graph.initialViewState.scale,this.graph.initialViewState.translate.x,this.graph.initialViewState.translate.y)}),Editor.zoomFitImage,mxResources.get("fit")||"Fit"));else if("layers"==h){if(this.layersEnabled){var v=this.graph.getModel(),A=a(mxUtils.bind(this,function(a){if(null!=g)g.parentNode.removeChild(g), +g=null;else{g=this.graph.createLayersDialog();mxEvent.addListener(g,"mouseleave",function(){g.parentNode.removeChild(g);g=null});a=A.getBoundingClientRect();g.style.width="140px";g.style.padding="2px 0px 2px 0px";g.style.border="1px solid #d0d0d0";g.style.backgroundColor="#eee";g.style.fontFamily="Helvetica Neue,Helvetica,Arial Unicode MS,Arial";g.style.fontSize="11px";g.style.zIndex=this.toolbarZIndex+1;mxUtils.setOpacity(g,80);var b=mxUtils.getDocumentScrollOrigin(document);g.style.left=b.x+a.left+ +"px";g.style.top=b.y+a.bottom+"px";document.body.appendChild(g)}}),Editor.layersImage,mxResources.get("layers")||"Layers");v.addListener(mxEvent.CHANGE,function(){A.style.display=1<v.getChildCount(v.root)?"inline-block":"none"});A.style.display=1<v.getChildCount(v.root)?"inline-block":"none"}}else"lightbox"==h?this.lightboxEnabled&&a(mxUtils.bind(this,function(){this.showLightbox()}),Editor.maximizeImage,mxResources.get("show")||"Show"):null!=this.graphConfig["toolbar-buttons"]&&(h=this.graphConfig["toolbar-buttons"][h], +null!=h&&a(null==h.enabled||h.enabled?h.handler:function(){},h.image,h.title,h.enabled))}null!=this.graph.minimumContainerSize&&(this.graph.minimumContainerSize.width=34*f);null!=this.graphConfig.title&&(c=b.ownerDocument.createElement("div"),c.style.cssText="display:inline-block;position:relative;padding:3px 6px 0 6px;vertical-align:top;font-family:Helvetica,Arial;font-size:12px;top:4px;cursor:default;",c.setAttribute("title",this.graphConfig.title),mxUtils.write(c,this.graphConfig.title),mxUtils.setOpacity(c, +70),e.appendChild(c));this.minToolbarWidth=34*f;var y=b.style.border,c=mxUtils.bind(this,function(){var a=b.getBoundingClientRect(),c=mxUtils.getScrollOrigin(document.body),c="relative"===document.body.style.position?document.body.getBoundingClientRect():{left:-c.x,top:-c.y},a={left:a.left-c.left,top:a.top-c.top,bottom:a.bottom-c.top,right:a.right-c.left};e.style.left=a.left+"px";e.style.width="inline"==this.graphConfig["toolbar-position"]?"auto":Math.max(this.minToolbarWidth,b.offsetWidth)+"px"; +e.style.border="1px solid #d0d0d0";"bottom"==this.graphConfig["toolbar-position"]?e.style.top=a.bottom-1+"px":"inline"!=this.graphConfig["toolbar-position"]?(e.style.marginTop=-this.toolbarHeight+"px",e.style.top=a.top+1+"px"):e.style.top=a.top+"px";"1px solid transparent"==y&&(b.style.border="1px solid #d0d0d0");document.body.appendChild(e);var d=mxUtils.bind(this,function(){1!=this.graphConfig["toolbar-nohide"]&&(null!=e.parentNode&&e.parentNode.removeChild(e),null!=g&&(g.parentNode.removeChild(g), +g=null),b.style.border=y)});mxEvent.addListener(document,"mousemove",function(a){for(a=mxEvent.getSource(a);null!=a;){if(a==b||a==e||a==g)return;a=a.parentNode}d()});mxEvent.addListener(document,"mouseleave",function(a){d()})});mxEvent.addListener(b,"mouseenter",c)}; +GraphViewer.prototype.addClickHandler=function(a,b){a.linkPolicy=this.graphConfig.target||a.linkPolicy;a.addClickHandler(this.graphConfig.highlight,mxUtils.bind(this,function(e,d){if(null==d){var k=mxEvent.getSource(e);"a"==k.nodeName.toLowerCase()&&(d=k.getAttribute("href"))}null!=b?null==d||a.isExternalProtocol(d)||a.isBlankLink(d)||window.setTimeout(function(){b.destroy()},0):null!=d&&null==b&&a.isCustomLink(d)&&(mxEvent.isTouchEvent(e)||!mxEvent.isPopupTrigger(e))&&a.customLinkClicked(d)&&mxEvent.consume(e)}), +mxUtils.bind(this,function(a){null!=b||!this.lightboxClickEnabled||mxEvent.isTouchEvent(a)&&0!=this.toolbarItems.length||this.showLightbox()}))}; +GraphViewer.prototype.showLightbox=function(a,b,e){if("open"==this.graphConfig.lightbox||window.self!==window.top)if(null==this.lightboxWindow||this.lightboxWindow.closed){a=null!=a?a:null!=this.graphConfig.editable?this.graphConfig.editable:!0;e={client:1,lightbox:1,target:null!=e?e:"blank"};a&&(e.edit=this.graphConfig.edit||"_blank");if(null!=b?b:1)e.close=1;this.layersEnabled&&(e.layers=1);null!=this.graphConfig&&0!=this.graphConfig.nav&&(e.nav=1);null!=this.graphConfig&&null!=this.graphConfig.highlight&& (e.highlight=this.graphConfig.highlight.substring(1));null!=this.currentPage&&0<this.currentPage&&(e.page=this.currentPage);"undefined"!==typeof window.postMessage&&(null==document.documentMode||10<=document.documentMode)?null==this.lightboxWindow&&mxEvent.addListener(window,"message",mxUtils.bind(this,function(a){"ready"==a.data&&a.source==this.lightboxWindow&&this.lightboxWindow.postMessage(this.xml,"*")})):e.data=encodeURIComponent(this.xml);a="www.draw.io";"1"==urlParams.dev&&(e.dev="1",e.drawdev= "1",a="test.draw.io");this.lightboxWindow=window.open("https://"+a+"/#P"+encodeURIComponent(JSON.stringify(e)))}else this.lightboxWindow.focus();else this.showLocalLightbox()}; -GraphViewer.prototype.showLocalLightbox=function(){var a=mxUtils.getDocumentScrollOrigin(document),d=document.createElement("div");mxClient.IS_QUIRKS?(d.style.position="absolute",d.style.left=a.x+"px",d.style.top=a.y+"px",d.style.width=document.body.offsetWidth+"px",d.style.height=document.body.offsetHeight+"px"):d.style.cssText="position:fixed;top:0;left:0;bottom:0;right:0;";d.style.zIndex=this.lightboxZIndex;d.style.backgroundColor="#000000";mxUtils.setOpacity(d,70);document.body.appendChild(d); -var e=document.createElement("img");e.setAttribute("border","0");e.setAttribute("src",Editor.closeImage);mxClient.IS_QUIRKS?(e.style.position="absolute",e.style.right="32px",e.style.top=a.y+32+"px"):e.style.cssText="position:fixed;top:32px;right:32px;";e.style.cursor="pointer";mxEvent.addListener(e,"click",function(){b.destroy()});urlParams.pages="1";urlParams.page=this.currentPage;urlParams.nav=0!=this.graphConfig.nav?"1":"0";urlParams.layers=this.layersEnabled?"1":"0";if(null==document.documentMode|| -10<=document.documentMode)Editor.prototype.editButtonLink=this.graphConfig.edit,Editor.prototype.editButtonFunc=this.graphConfig.editFunc;EditorUi.prototype.updateActionStates=function(){};EditorUi.prototype.addBeforeUnloadListener=function(){};EditorUi.prototype.addChromelessClickHandler=function(){};Graph.prototype.shadowId="lightboxDropShadow";var b=new EditorUi(new Editor(!0),document.createElement("div"),!0);b.editor.editBlankUrl=this.editBlankUrl;Graph.prototype.shadowId="dropShadow";b.refresh= -function(){};var h=mxUtils.bind(this,function(a){27==a.keyCode&&b.destroy()}),m=b.destroy;b.destroy=function(){mxEvent.removeListener(document.documentElement,"keydown",h);document.body.removeChild(d);document.body.removeChild(e);document.body.style.overflow="auto";GraphViewer.resizeSensorEnabled=!0;m.apply(this,arguments)};var p=b.editor.graph,q=p.container;q.style.overflow="hidden";this.lightboxChrome?(q.style.border="1px solid #c0c0c0",q.style.margin="40px",mxEvent.addListener(document.documentElement, -"keydown",h)):(d.style.display="none",e.style.display="none");var u=this;p.getImageFromBundles=function(a){return u.getImageUrl(a)};var c=b.createTemporaryGraph;b.createTemporaryGraph=function(){var a=c.apply(this,arguments);a.getImageFromBundles=function(a){return u.getImageUrl(a)};return a};this.graphConfig.move&&(p.isMoveCellsEvent=function(a){return!0});mxClient.IS_QUIRKS||(mxUtils.setPrefixedStyle(q.style,"border-radius","4px"),q.style.position="fixed");GraphViewer.resizeSensorEnabled=!1;document.body.style.overflow= -"hidden";mxClient.IS_SF||mxClient.IS_EDGE||(mxUtils.setPrefixedStyle(q.style,"transform","rotateY(90deg)"),mxUtils.setPrefixedStyle(q.style,"transition","all .25s ease-in-out"));this.addClickHandler(p,b);window.setTimeout(mxUtils.bind(this,function(){q.style.outline="none";q.style.zIndex=this.lightboxZIndex;e.style.zIndex=this.lightboxZIndex;document.body.appendChild(q);document.body.appendChild(e);b.setFileData(this.xml);mxUtils.setPrefixedStyle(q.style,"transform","rotateY(0deg)");b.chromelessToolbar.style.bottom= -"60px";b.chromelessToolbar.style.zIndex=this.lightboxZIndex;document.body.appendChild(b.chromelessToolbar);b.getEditBlankXml=mxUtils.bind(this,function(){return this.xml});mxClient.IS_QUIRKS&&(q.style.position="absolute",q.style.display="block",q.style.left=a.x+"px",q.style.top=a.y+"px",q.style.width=document.body.clientWidth-80+"px",q.style.height=document.body.clientHeight-80+"px",q.style.backgroundColor="white",b.chromelessToolbar.style.display="block",b.chromelessToolbar.style.position="absolute", -b.chromelessToolbar.style.bottom="",b.chromelessToolbar.style.top=a.y+document.body.clientHeight-100+"px");b.lightboxFit();b.chromelessResize();this.showLayers(p,this.graph);mxEvent.addListener(d,"click",function(){b.destroy()})}),0);return b};GraphViewer.processElements=function(a){mxUtils.forEach(GraphViewer.getElementsByClassName(a||"mxgraph"),function(a){try{a.innerHTML="",GraphViewer.createViewerForElement(a)}catch(e){throw a.innerHTML=e.message,e;}})}; -GraphViewer.getElementsByClassName=function(a){if(document.getElementsByClassName){var d=document.getElementsByClassName(a);a=[];for(var e=0;e<d.length;e++)a.push(d[e]);return a}for(var b=document.getElementsByTagName("*"),d=[],e=0;e<b.length;e++){var h=b[e].className;null!=h&&0<h.length&&(h=h.split(" "),0<=mxUtils.indexOf(h,a)&&d.push(b[e]))}return d}; -GraphViewer.createViewerForElement=function(a,d){var e=a.getAttribute("data-mxgraph");if(null!=e){var b=JSON.parse(e),h=function(e){e=mxUtils.parseXml(e);e=new GraphViewer(a,e.documentElement,b);null!=d&&d(e)};null!=b.url?GraphViewer.getUrl(b.url,function(a){h(a)}):h(b.xml)}}; -GraphViewer.initCss=function(){try{var a=document.createElement("style");a.type="text/css";a.innerHTML="div.mxTooltip {\n-webkit-box-shadow: 3px 3px 12px #C0C0C0;\n-moz-box-shadow: 3px 3px 12px #C0C0C0;\nbox-shadow: 3px 3px 12px #C0C0C0;\nbackground: #FFFFCC;\nborder-style: solid;\nborder-width: 1px;\nborder-color: black;\nfont-family: Arial;\nfont-size: 8pt;\nposition: absolute;\ncursor: default;\npadding: 4px;\ncolor: black;}\ntd.mxPopupMenuIcon div {\nwidth:16px;\nheight:16px;}\nhtml div.mxPopupMenu {\n-webkit-box-shadow:2px 2px 3px #d5d5d5;\n-moz-box-shadow:2px 2px 3px #d5d5d5;\nbox-shadow:2px 2px 3px #d5d5d5;\n_filter:progid:DXImageTransform.Microsoft.DropShadow(OffX=2, OffY=2, Color='#d0d0d0',Positive='true');\nbackground:white;\nposition:absolute;\nborder:3px solid #e7e7e7;\npadding:3px;}\nhtml table.mxPopupMenu {\nborder-collapse:collapse;\nmargin:0px;}\nhtml td.mxPopupMenuItem {\npadding:7px 30px 7px 30px;\nfont-family:Helvetica Neue,Helvetica,Arial Unicode MS,Arial;\nfont-size:10pt;}\nhtml td.mxPopupMenuIcon {\nbackground-color:white;\npadding:0px;}\ntd.mxPopupMenuIcon .geIcon {\npadding:2px;\npadding-bottom:4px;\nmargin:2px;\nborder:1px solid transparent;\nopacity:0.5;\n_width:26px;\n_height:26px;}\ntd.mxPopupMenuIcon .geIcon:hover {\nborder:1px solid gray;\nborder-radius:2px;\nopacity:1;}\nhtml tr.mxPopupMenuItemHover {\nbackground-color: #eeeeee;\ncolor: black;}\ntable.mxPopupMenu hr {\ncolor:#cccccc;\nbackground-color:#cccccc;\nborder:none;\nheight:1px;}\ntable.mxPopupMenu tr {\tfont-size:4pt;}\n.geDialog { font-family:Helvetica Neue,Helvetica,Arial Unicode MS,Arial;\nfont-size:10pt;\nborder:none;\nmargin:0px;}\n.geDialog {\tposition:absolute;\tbackground:white;\toverflow:hidden;\tpadding:30px;\tborder:1px solid #acacac;\t-webkit-box-shadow:0px 0px 2px 2px #d5d5d5;\t-moz-box-shadow:0px 0px 2px 2px #d5d5d5;\tbox-shadow:0px 0px 2px 2px #d5d5d5;\t_filter:progid:DXImageTransform.Microsoft.DropShadow(OffX=2, OffY=2, Color='#d5d5d5', Positive='true');\tz-index: 2;}.geDialogClose {\tposition:absolute;\twidth:9px;\theight:9px;\topacity:0.5;\tcursor:pointer;\t_filter:alpha(opacity=50);}.geDialogClose:hover {\topacity:1;}.geDialogTitle {\tbox-sizing:border-box;\twhite-space:nowrap;\tbackground:rgb(229, 229, 229);\tborder-bottom:1px solid rgb(192, 192, 192);\tfont-size:15px;\tfont-weight:bold;\ttext-align:center;\tcolor:rgb(35, 86, 149);}.geDialogFooter {\tbackground:whiteSmoke;\twhite-space:nowrap;\ttext-align:right;\tbox-sizing:border-box;\tborder-top:1px solid #e5e5e5;\tcolor:darkGray;}\n.geBtn {\tbackground-color: #f5f5f5;\tborder-radius: 2px;\tborder: 1px solid #d8d8d8;\tcolor: #333;\tcursor: default;\tfont-size: 11px;\tfont-weight: bold;\theight: 29px;\tline-height: 27px;\tmargin: 0 0 0 8px;\tmin-width: 72px;\toutline: 0;\tpadding: 0 8px;\tcursor: pointer;}.geBtn:hover, .geBtn:focus {\t-webkit-box-shadow: 0px 1px 1px rgba(0,0,0,0.1);\t-moz-box-shadow: 0px 1px 1px rgba(0,0,0,0.1);\tbox-shadow: 0px 1px 1px rgba(0,0,0,0.1);\tborder: 1px solid #c6c6c6;\tbackground-color: #f8f8f8;\tbackground-image: linear-gradient(#f8f8f8 0px,#f1f1f1 100%);\tcolor: #111;}.geBtn:disabled {\topacity: .5;}.gePrimaryBtn {\tbackground-color: #4d90fe;\tbackground-image: linear-gradient(#4d90fe 0px,#4787ed 100%);\tborder: 1px solid #3079ed;\tcolor: #fff;}.gePrimaryBtn:hover, .gePrimaryBtn:focus {\tbackground-color: #357ae8;\tbackground-image: linear-gradient(#4d90fe 0px,#357ae8 100%);\tborder: 1px solid #2f5bb7;\tcolor: #fff;}.gePrimaryBtn:disabled {\topacity: .5;}";document.getElementsByTagName("head")[0].appendChild(a)}catch(d){}}; -GraphViewer.cachedUrls={};GraphViewer.getUrl=function(a,d,e){if(null!=GraphViewer.cachedUrls[a])d(GraphViewer.cachedUrls[a]);else{var b=0<navigator.userAgent.indexOf("MSIE 9")?new XDomainRequest:new XMLHttpRequest;b.open("GET",a);b.onload=function(){d(null!=b.getText?b.getText():b.responseText)};b.onerror=e;b.send()}};GraphViewer.resizeSensorEnabled=!0;GraphViewer.useResizeSensor=!0; -(function(){var a=window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||function(a){return window.setTimeout(a,20)},d=function(e,b){function h(){this.q=[];this.add=function(a){this.q.push(a)};var a,b;this.call=function(){a=0;for(b=this.q.length;a<b;a++)this.q[a].call()}}function m(a,b){return a.currentStyle?a.currentStyle[b]:window.getComputedStyle?window.getComputedStyle(a,null).getPropertyValue(b):a.style[b]}function p(b,c){if(!b.resizedAttached)b.resizedAttached= -new h,b.resizedAttached.add(c);else if(b.resizedAttached){b.resizedAttached.add(c);return}b.resizeSensor=document.createElement("div");b.resizeSensor.className="resize-sensor";b.resizeSensor.style.cssText="position: absolute; left: 0; top: 0; right: 0; bottom: 0; overflow: hidden; z-index: -1; visibility: hidden;";b.resizeSensor.innerHTML='<div class="resize-sensor-expand" style="position: absolute; left: 0; top: 0; right: 0; bottom: 0; overflow: hidden; z-index: -1; visibility: hidden;"><div style="position: absolute; left: 0; top: 0; transition: 0s;"></div></div><div class="resize-sensor-shrink" style="position: absolute; left: 0; top: 0; right: 0; bottom: 0; overflow: hidden; z-index: -1; visibility: hidden;"><div style="position: absolute; left: 0; top: 0; transition: 0s; width: 200%; height: 200%"></div></div>'; -b.appendChild(b.resizeSensor);"static"==m(b,"position")&&(b.style.position="relative");var d=b.resizeSensor.childNodes[0],e=d.childNodes[0],f=b.resizeSensor.childNodes[1],g=function(){e.style.width="100000px";e.style.height="100000px";d.scrollLeft=1E5;d.scrollTop=1E5;f.scrollLeft=1E5;f.scrollTop=1E5};g();var k=!1,p=function(){b.resizedAttached&&(k&&(b.resizedAttached.call(),k=!1),a(p))};a(p);var q,t,u,H,G=function(){if((u=b.offsetWidth)!=q||(H=b.offsetHeight)!=t)k=!0,q=u,t=H;g()},A=function(a,b,c){a.attachEvent? -a.attachEvent("on"+b,c):a.addEventListener(b,c)};A(d,"scroll",G);A(f,"scroll",G)}var q=function(){GraphViewer.resizeSensorEnabled&&b()},u=Object.prototype.toString.call(e),c="[object Array]"===u||"[object NodeList]"===u||"[object HTMLCollection]"===u||"undefined"!==typeof jQuery&&e instanceof jQuery||"undefined"!==typeof Elements&&e instanceof Elements;if(c)for(var u=0,f=e.length;u<f;u++)p(e[u],q);else p(e,q);this.detach=function(){if(c)for(var a=0,b=e.length;a<b;a++)d.detach(e[a]);else d.detach(e)}}; -d.detach=function(a){a.resizeSensor&&(a.removeChild(a.resizeSensor),delete a.resizeSensor,delete a.resizedAttached)};window.ResizeSensor=d})(); +GraphViewer.prototype.showLocalLightbox=function(){var a=mxUtils.getDocumentScrollOrigin(document),b=document.createElement("div");mxClient.IS_QUIRKS?(b.style.position="absolute",b.style.left=a.x+"px",b.style.top=a.y+"px",b.style.width=document.body.offsetWidth+"px",b.style.height=document.body.offsetHeight+"px"):b.style.cssText="position:fixed;top:0;left:0;bottom:0;right:0;";b.style.zIndex=this.lightboxZIndex;b.style.backgroundColor="#000000";mxUtils.setOpacity(b,70);document.body.appendChild(b); +var e=document.createElement("img");e.setAttribute("border","0");e.setAttribute("src",Editor.closeImage);mxClient.IS_QUIRKS?(e.style.position="absolute",e.style.right="32px",e.style.top=a.y+32+"px"):e.style.cssText="position:fixed;top:32px;right:32px;";e.style.cursor="pointer";mxEvent.addListener(e,"click",function(){d.destroy()});urlParams.pages="1";urlParams.page=this.currentPage;urlParams.nav=0!=this.graphConfig.nav?"1":"0";urlParams.layers=this.layersEnabled?"1":"0";if(null==document.documentMode|| +10<=document.documentMode)Editor.prototype.editButtonLink=this.graphConfig.edit,Editor.prototype.editButtonFunc=this.graphConfig.editFunc;EditorUi.prototype.updateActionStates=function(){};EditorUi.prototype.addBeforeUnloadListener=function(){};EditorUi.prototype.addChromelessClickHandler=function(){};Graph.prototype.shadowId="lightboxDropShadow";var d=new EditorUi(new Editor(!0),document.createElement("div"),!0);d.editor.editBlankUrl=this.editBlankUrl;Graph.prototype.shadowId="dropShadow";d.refresh= +function(){};var k=mxUtils.bind(this,function(a){27==a.keyCode&&d.destroy()}),l=d.destroy;d.destroy=function(){mxEvent.removeListener(document.documentElement,"keydown",k);document.body.removeChild(b);document.body.removeChild(e);document.body.style.overflow="auto";GraphViewer.resizeSensorEnabled=!0;l.apply(this,arguments)};var p=d.editor.graph,q=p.container;q.style.overflow="hidden";this.lightboxChrome?(q.style.border="1px solid #c0c0c0",q.style.margin="40px",mxEvent.addListener(document.documentElement, +"keydown",k)):(b.style.display="none",e.style.display="none");var u=this;p.getImageFromBundles=function(a){return u.getImageUrl(a)};var c=d.createTemporaryGraph;d.createTemporaryGraph=function(){var a=c.apply(this,arguments);a.getImageFromBundles=function(a){return u.getImageUrl(a)};return a};this.graphConfig.move&&(p.isMoveCellsEvent=function(a){return!0});mxClient.IS_QUIRKS||(mxUtils.setPrefixedStyle(q.style,"border-radius","4px"),q.style.position="fixed");GraphViewer.resizeSensorEnabled=!1;document.body.style.overflow= +"hidden";mxClient.IS_SF||mxClient.IS_EDGE||(mxUtils.setPrefixedStyle(q.style,"transform","rotateY(90deg)"),mxUtils.setPrefixedStyle(q.style,"transition","all .25s ease-in-out"));this.addClickHandler(p,d);window.setTimeout(mxUtils.bind(this,function(){q.style.outline="none";q.style.zIndex=this.lightboxZIndex;e.style.zIndex=this.lightboxZIndex;document.body.appendChild(q);document.body.appendChild(e);d.setFileData(this.xml);mxUtils.setPrefixedStyle(q.style,"transform","rotateY(0deg)");d.chromelessToolbar.style.bottom= +"60px";d.chromelessToolbar.style.zIndex=this.lightboxZIndex;document.body.appendChild(d.chromelessToolbar);d.getEditBlankXml=mxUtils.bind(this,function(){return this.xml});mxClient.IS_QUIRKS&&(q.style.position="absolute",q.style.display="block",q.style.left=a.x+"px",q.style.top=a.y+"px",q.style.width=document.body.clientWidth-80+"px",q.style.height=document.body.clientHeight-80+"px",q.style.backgroundColor="white",d.chromelessToolbar.style.display="block",d.chromelessToolbar.style.position="absolute", +d.chromelessToolbar.style.bottom="",d.chromelessToolbar.style.top=a.y+document.body.clientHeight-100+"px");d.lightboxFit();d.chromelessResize();this.showLayers(p,this.graph);mxEvent.addListener(b,"click",function(){d.destroy()})}),0);return d};GraphViewer.processElements=function(a){mxUtils.forEach(GraphViewer.getElementsByClassName(a||"mxgraph"),function(a){try{a.innerHTML="",GraphViewer.createViewerForElement(a)}catch(e){throw a.innerHTML=e.message,e;}})}; +GraphViewer.getElementsByClassName=function(a){if(document.getElementsByClassName){var b=document.getElementsByClassName(a);a=[];for(var e=0;e<b.length;e++)a.push(b[e]);return a}for(var d=document.getElementsByTagName("*"),b=[],e=0;e<d.length;e++){var k=d[e].className;null!=k&&0<k.length&&(k=k.split(" "),0<=mxUtils.indexOf(k,a)&&b.push(d[e]))}return b}; +GraphViewer.createViewerForElement=function(a,b){var e=a.getAttribute("data-mxgraph");if(null!=e){var d=JSON.parse(e),k=function(e){e=mxUtils.parseXml(e);e=new GraphViewer(a,e.documentElement,d);null!=b&&b(e)};null!=d.url?GraphViewer.getUrl(d.url,function(a){k(a)}):k(d.xml)}}; +GraphViewer.initCss=function(){try{var a=document.createElement("style");a.type="text/css";a.innerHTML="div.mxTooltip {\n-webkit-box-shadow: 3px 3px 12px #C0C0C0;\n-moz-box-shadow: 3px 3px 12px #C0C0C0;\nbox-shadow: 3px 3px 12px #C0C0C0;\nbackground: #FFFFCC;\nborder-style: solid;\nborder-width: 1px;\nborder-color: black;\nfont-family: Arial;\nfont-size: 8pt;\nposition: absolute;\ncursor: default;\npadding: 4px;\ncolor: black;}\ntd.mxPopupMenuIcon div {\nwidth:16px;\nheight:16px;}\nhtml div.mxPopupMenu {\n-webkit-box-shadow:2px 2px 3px #d5d5d5;\n-moz-box-shadow:2px 2px 3px #d5d5d5;\nbox-shadow:2px 2px 3px #d5d5d5;\n_filter:progid:DXImageTransform.Microsoft.DropShadow(OffX=2, OffY=2, Color='#d0d0d0',Positive='true');\nbackground:white;\nposition:absolute;\nborder:3px solid #e7e7e7;\npadding:3px;}\nhtml table.mxPopupMenu {\nborder-collapse:collapse;\nmargin:0px;}\nhtml td.mxPopupMenuItem {\npadding:7px 30px 7px 30px;\nfont-family:Helvetica Neue,Helvetica,Arial Unicode MS,Arial;\nfont-size:10pt;}\nhtml td.mxPopupMenuIcon {\nbackground-color:white;\npadding:0px;}\ntd.mxPopupMenuIcon .geIcon {\npadding:2px;\npadding-bottom:4px;\nmargin:2px;\nborder:1px solid transparent;\nopacity:0.5;\n_width:26px;\n_height:26px;}\ntd.mxPopupMenuIcon .geIcon:hover {\nborder:1px solid gray;\nborder-radius:2px;\nopacity:1;}\nhtml tr.mxPopupMenuItemHover {\nbackground-color: #eeeeee;\ncolor: black;}\ntable.mxPopupMenu hr {\ncolor:#cccccc;\nbackground-color:#cccccc;\nborder:none;\nheight:1px;}\ntable.mxPopupMenu tr {\tfont-size:4pt;}\n.geDialog { font-family:Helvetica Neue,Helvetica,Arial Unicode MS,Arial;\nfont-size:10pt;\nborder:none;\nmargin:0px;}\n.geDialog {\tposition:absolute;\tbackground:white;\toverflow:hidden;\tpadding:30px;\tborder:1px solid #acacac;\t-webkit-box-shadow:0px 0px 2px 2px #d5d5d5;\t-moz-box-shadow:0px 0px 2px 2px #d5d5d5;\tbox-shadow:0px 0px 2px 2px #d5d5d5;\t_filter:progid:DXImageTransform.Microsoft.DropShadow(OffX=2, OffY=2, Color='#d5d5d5', Positive='true');\tz-index: 2;}.geDialogClose {\tposition:absolute;\twidth:9px;\theight:9px;\topacity:0.5;\tcursor:pointer;\t_filter:alpha(opacity=50);}.geDialogClose:hover {\topacity:1;}.geDialogTitle {\tbox-sizing:border-box;\twhite-space:nowrap;\tbackground:rgb(229, 229, 229);\tborder-bottom:1px solid rgb(192, 192, 192);\tfont-size:15px;\tfont-weight:bold;\ttext-align:center;\tcolor:rgb(35, 86, 149);}.geDialogFooter {\tbackground:whiteSmoke;\twhite-space:nowrap;\ttext-align:right;\tbox-sizing:border-box;\tborder-top:1px solid #e5e5e5;\tcolor:darkGray;}\n.geBtn {\tbackground-color: #f5f5f5;\tborder-radius: 2px;\tborder: 1px solid #d8d8d8;\tcolor: #333;\tcursor: default;\tfont-size: 11px;\tfont-weight: bold;\theight: 29px;\tline-height: 27px;\tmargin: 0 0 0 8px;\tmin-width: 72px;\toutline: 0;\tpadding: 0 8px;\tcursor: pointer;}.geBtn:hover, .geBtn:focus {\t-webkit-box-shadow: 0px 1px 1px rgba(0,0,0,0.1);\t-moz-box-shadow: 0px 1px 1px rgba(0,0,0,0.1);\tbox-shadow: 0px 1px 1px rgba(0,0,0,0.1);\tborder: 1px solid #c6c6c6;\tbackground-color: #f8f8f8;\tbackground-image: linear-gradient(#f8f8f8 0px,#f1f1f1 100%);\tcolor: #111;}.geBtn:disabled {\topacity: .5;}.gePrimaryBtn {\tbackground-color: #4d90fe;\tbackground-image: linear-gradient(#4d90fe 0px,#4787ed 100%);\tborder: 1px solid #3079ed;\tcolor: #fff;}.gePrimaryBtn:hover, .gePrimaryBtn:focus {\tbackground-color: #357ae8;\tbackground-image: linear-gradient(#4d90fe 0px,#357ae8 100%);\tborder: 1px solid #2f5bb7;\tcolor: #fff;}.gePrimaryBtn:disabled {\topacity: .5;}";document.getElementsByTagName("head")[0].appendChild(a)}catch(b){}}; +GraphViewer.cachedUrls={};GraphViewer.getUrl=function(a,b,e){if(null!=GraphViewer.cachedUrls[a])b(GraphViewer.cachedUrls[a]);else{var d=0<navigator.userAgent.indexOf("MSIE 9")?new XDomainRequest:new XMLHttpRequest;d.open("GET",a);d.onload=function(){b(null!=d.getText?d.getText():d.responseText)};d.onerror=e;d.send()}};GraphViewer.resizeSensorEnabled=!0;GraphViewer.useResizeSensor=!0; +(function(){var a=window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||function(a){return window.setTimeout(a,20)},b=function(e,d){function k(){this.q=[];this.add=function(a){this.q.push(a)};var a,b;this.call=function(){a=0;for(b=this.q.length;a<b;a++)this.q[a].call()}}function l(a,b){return a.currentStyle?a.currentStyle[b]:window.getComputedStyle?window.getComputedStyle(a,null).getPropertyValue(b):a.style[b]}function p(b,c){if(!b.resizedAttached)b.resizedAttached= +new k,b.resizedAttached.add(c);else if(b.resizedAttached){b.resizedAttached.add(c);return}b.resizeSensor=document.createElement("div");b.resizeSensor.className="resize-sensor";b.resizeSensor.style.cssText="position: absolute; left: 0; top: 0; right: 0; bottom: 0; overflow: hidden; z-index: -1; visibility: hidden;";b.resizeSensor.innerHTML='<div class="resize-sensor-expand" style="position: absolute; left: 0; top: 0; right: 0; bottom: 0; overflow: hidden; z-index: -1; visibility: hidden;"><div style="position: absolute; left: 0; top: 0; transition: 0s;"></div></div><div class="resize-sensor-shrink" style="position: absolute; left: 0; top: 0; right: 0; bottom: 0; overflow: hidden; z-index: -1; visibility: hidden;"><div style="position: absolute; left: 0; top: 0; transition: 0s; width: 200%; height: 200%"></div></div>'; +b.appendChild(b.resizeSensor);"static"==l(b,"position")&&(b.style.position="relative");var d=b.resizeSensor.childNodes[0],e=d.childNodes[0],f=b.resizeSensor.childNodes[1],g=function(){e.style.width="100000px";e.style.height="100000px";d.scrollLeft=1E5;d.scrollTop=1E5;f.scrollLeft=1E5;f.scrollTop=1E5};g();var n=!1,p=function(){b.resizedAttached&&(n&&(b.resizedAttached.call(),n=!1),a(p))};a(p);var q,t,u,H,G=function(){if((u=b.offsetWidth)!=q||(H=b.offsetHeight)!=t)n=!0,q=u,t=H;g()},B=function(a,b,c){a.attachEvent? +a.attachEvent("on"+b,c):a.addEventListener(b,c)};B(d,"scroll",G);B(f,"scroll",G)}var q=function(){GraphViewer.resizeSensorEnabled&&d()},u=Object.prototype.toString.call(e),c="[object Array]"===u||"[object NodeList]"===u||"[object HTMLCollection]"===u||"undefined"!==typeof jQuery&&e instanceof jQuery||"undefined"!==typeof Elements&&e instanceof Elements;if(c)for(var u=0,f=e.length;u<f;u++)p(e[u],q);else p(e,q);this.detach=function(){if(c)for(var a=0,d=e.length;a<d;a++)b.detach(e[a]);else b.detach(e)}}; +b.detach=function(a){a.resizeSensor&&(a.removeChild(a.resizeSensor),delete a.resizeSensor,delete a.resizedAttached)};window.ResizeSensor=b})(); diff --git a/src/main/webapp/js/atlas.min.js b/src/main/webapp/js/atlas.min.js index 1a754285f..44cf04626 100644 --- a/src/main/webapp/js/atlas.min.js +++ b/src/main/webapp/js/atlas.min.js @@ -1,6 +1,7 @@ //fgnass.github.com/spin.js#v2.0.0 !function(a,b){"object"==typeof exports?module.exports=b():"function"==typeof define&&define.amd?define(b):a.Spinner=b()}(this,function(){"use strict";function a(a,b){var c,d=document.createElement(a||"div");for(c in b)d[c]=b[c];return d}function b(a){for(var b=1,c=arguments.length;c>b;b++)a.appendChild(arguments[b]);return a}function c(a,b,c,d){var e=["opacity",b,~~(100*a),c,d].join("-"),f=.01+c/d*100,g=Math.max(1-(1-a)/b*(100-f),a),h=j.substring(0,j.indexOf("Animation")).toLowerCase(),i=h&&"-"+h+"-"||"";return l[e]||(m.insertRule("@"+i+"keyframes "+e+"{0%{opacity:"+g+"}"+f+"%{opacity:"+a+"}"+(f+.01)+"%{opacity:1}"+(f+b)%100+"%{opacity:"+a+"}100%{opacity:"+g+"}}",m.cssRules.length),l[e]=1),e}function d(a,b){var c,d,e=a.style;for(b=b.charAt(0).toUpperCase()+b.slice(1),d=0;d<k.length;d++)if(c=k[d]+b,void 0!==e[c])return c;return void 0!==e[b]?b:void 0}function e(a,b){for(var c in b)a.style[d(a,c)||c]=b[c];return a}function f(a){for(var b=1;b<arguments.length;b++){var c=arguments[b];for(var d in c)void 0===a[d]&&(a[d]=c[d])}return a}function g(a,b){return"string"==typeof a?a:a[b%a.length]}function h(a){this.opts=f(a||{},h.defaults,n)}function i(){function c(b,c){return a("<"+b+' xmlns="urn:schemas-microsoft.com:vml" class="spin-vml">',c)}m.addRule(".spin-vml","behavior:url(#default#VML)"),h.prototype.lines=function(a,d){function f(){return e(c("group",{coordsize:k+" "+k,coordorigin:-j+" "+-j}),{width:k,height:k})}function h(a,h,i){b(m,b(e(f(),{rotation:360/d.lines*a+"deg",left:~~h}),b(e(c("roundrect",{arcsize:d.corners}),{width:j,height:d.width,left:d.radius,top:-d.width>>1,filter:i}),c("fill",{color:g(d.color,a),opacity:d.opacity}),c("stroke",{opacity:0}))))}var i,j=d.length+d.width,k=2*j,l=2*-(d.width+d.length)+"px",m=e(f(),{position:"absolute",top:l,left:l});if(d.shadow)for(i=1;i<=d.lines;i++)h(i,-2,"progid:DXImageTransform.Microsoft.Blur(pixelradius=2,makeshadow=1,shadowopacity=.3)");for(i=1;i<=d.lines;i++)h(i);return b(a,m)},h.prototype.opacity=function(a,b,c,d){var e=a.firstChild;d=d.shadow&&d.lines||0,e&&b+d<e.childNodes.length&&(e=e.childNodes[b+d],e=e&&e.firstChild,e=e&&e.firstChild,e&&(e.opacity=c))}}var j,k=["webkit","Moz","ms","O"],l={},m=function(){var c=a("style",{type:"text/css"});return b(document.getElementsByTagName("head")[0],c),c.sheet||c.styleSheet}(),n={lines:12,length:7,width:5,radius:10,rotate:0,corners:1,color:"#000",direction:1,speed:1,trail:100,opacity:.25,fps:20,zIndex:2e9,className:"spinner",top:"50%",left:"50%",position:"absolute"};h.defaults={},f(h.prototype,{spin:function(b){this.stop();{var c=this,d=c.opts,f=c.el=e(a(0,{className:d.className}),{position:d.position,width:0,zIndex:d.zIndex});d.radius+d.length+d.width}if(b&&(b.insertBefore(f,b.firstChild||null),e(f,{left:d.left,top:d.top})),f.setAttribute("role","progressbar"),c.lines(f,c.opts),!j){var g,h=0,i=(d.lines-1)*(1-d.direction)/2,k=d.fps,l=k/d.speed,m=(1-d.opacity)/(l*d.trail/100),n=l/d.lines;!function o(){h++;for(var a=0;a<d.lines;a++)g=Math.max(1-(h+(d.lines-a)*n)%l*m,d.opacity),c.opacity(f,a*d.direction+i,g,d);c.timeout=c.el&&setTimeout(o,~~(1e3/k))}()}return c},stop:function(){var a=this.el;return a&&(clearTimeout(this.timeout),a.parentNode&&a.parentNode.removeChild(a),this.el=void 0),this},lines:function(d,f){function h(b,c){return e(a(),{position:"absolute",width:f.length+f.width+"px",height:f.width+"px",background:b,boxShadow:c,transformOrigin:"left",transform:"rotate("+~~(360/f.lines*k+f.rotate)+"deg) translate("+f.radius+"px,0)",borderRadius:(f.corners*f.width>>1)+"px"})}for(var i,k=0,l=(f.lines-1)*(1-f.direction)/2;k<f.lines;k++)i=e(a(),{position:"absolute",top:1+~(f.width/2)+"px",transform:f.hwaccel?"translate3d(0,0,0)":"",opacity:f.opacity,animation:j&&c(f.opacity,f.trail,l+k*f.direction,f.lines)+" "+1/f.speed+"s linear infinite"}),f.shadow&&b(i,e(h("#000","0 0 4px #000"),{top:"2px"})),b(d,b(i,h(g(f.color,k),"0 0 1px rgba(0,0,0,.1)")));return d},opacity:function(a,b,c){b<a.childNodes.length&&(a.childNodes[b].style.opacity=c)}});var o=e(a("group"),{behavior:"url(#default#VML)"});return!d(o,"transform")&&o.adj?i():j=d(o,"animation"),h}); // NOTE: Modified to support data URIs for images, ie. data:image/* +// Modified to allow "word-break: break-word" in styles. It is done by adding "break-word" which is at index 55 of J array J[55] to "cssLitGroup" of "word-break" (function(){var c=void 0,n=!0,s=null,C=!1,J=["aliceblue,antiquewhite,aqua,aquamarine,azure,beige,bisque,black,blanchedalmond,blue,blueviolet,brown,burlywood,cadetblue,chartreuse,chocolate,coral,cornflowerblue,cornsilk,crimson,cyan,darkblue,darkcyan,darkgoldenrod,darkgray,darkgreen,darkkhaki,darkmagenta,darkolivegreen,darkorange,darkorchid,darkred,darksalmon,darkseagreen,darkslateblue,darkslategray,darkturquoise,darkviolet,deeppink,deepskyblue,dimgray,dodgerblue,firebrick,floralwhite,forestgreen,fuchsia,gainsboro,ghostwhite,gold,goldenrod,gray,green,greenyellow,honeydew,hotpink,indianred,indigo,ivory,khaki,lavender,lavenderblush,lawngreen,lemonchiffon,lightblue,lightcoral,lightcyan,lightgoldenrodyellow,lightgreen,lightgrey,lightpink,lightsalmon,lightseagreen,lightskyblue,lightslategray,lightsteelblue,lightyellow,lime,limegreen,linen,magenta,maroon,mediumaquamarine,mediumblue,mediumorchid,mediumpurple,mediumseagreen,mediumslateblue,mediumspringgreen,mediumturquoise,mediumvioletred,midnightblue,mintcream,mistyrose,moccasin,navajowhite,navy,oldlace,olive,olivedrab,orange,orangered,orchid,palegoldenrod,palegreen,paleturquoise,palevioletred,papayawhip,peachpuff,peru,pink,plum,powderblue,purple,red,rosybrown,royalblue,saddlebrown,salmon,sandybrown,seagreen,seashell,sienna,silver,skyblue,slateblue,slategray,snow,springgreen,steelblue,tan,teal,thistle,tomato,transparent,turquoise,violet,wheat,white,whitesmoke,yellow,yellowgreen".split(","), "all-scroll,col-resize,crosshair,default,e-resize,hand,help,move,n-resize,ne-resize,no-drop,not-allowed,nw-resize,pointer,progress,row-resize,s-resize,se-resize,sw-resize,text,vertical-text,w-resize,wait".split(","),"armenian,decimal,decimal-leading-zero,disc,georgian,lower-alpha,lower-greek,lower-latin,lower-roman,square,upper-alpha,upper-latin,upper-roman".split(","),"100,200,300,400,500,600,700,800,900,bold,bolder,lighter".split(","),"block-level,inline-level,table-caption,table-cell,table-column,table-column-group,table-footer-group,table-header-group,table-row,table-row-group".split(","), "condensed,expanded,extra-condensed,extra-expanded,narrower,semi-condensed,semi-expanded,ultra-condensed,ultra-expanded,wider".split(","),"inherit,inline,inline-block,inline-box,inline-flex,inline-grid,inline-list-item,inline-stack,inline-table,run-in".split(","),"behind,center-left,center-right,far-left,far-right,left-side,leftwards,right-side,rightwards".split(","),"large,larger,small,smaller,x-large,x-small,xx-large,xx-small".split(","),"dashed,dotted,double,groove,outset,ridge,solid".split(","), @@ -25,7 +26,7 @@ position:{cssPropBits:0,cssLitGroup:[J[23]],cssFns:[]},quotes:{cssPropBits:8,css cssLitGroup:[J[14],J[69]],cssFns:[]},stress:"border-bottom-left-radius","table-layout":{cssPropBits:0,cssLitGroup:[J[52],J[61]],cssFns:[]},"text-align":{cssPropBits:0,cssLitGroup:[J[42],J[56],J[66]],cssFns:[]},"text-decoration":{cssPropBits:0,cssLitGroup:[J[19],J[71]],cssFns:[]},"text-indent":"border-bottom-left-radius","text-overflow":{cssPropBits:8,cssLitGroup:[J[33]],cssFns:[]},"text-shadow":"box-shadow","text-transform":{cssPropBits:0,cssLitGroup:[J[26],J[71]],cssFns:[]},"text-wrap":{cssPropBits:0, cssLitGroup:[J[46],J[71],J[72]],cssFns:[]},top:"bottom",transform:{cssPropBits:0,cssLitGroup:[J[71]],cssFns:"matrix(),perspective(),rotate(),rotate3d(),rotatex(),rotatey(),rotatez(),scale(),scale3d(),scalex(),scaley(),scalez(),skew(),skewx(),skewy(),translate(),translate3d(),translatex(),translatey(),translatez()".split(",")},"transform-origin":"perspective-origin","transform-style":{cssPropBits:0,cssLitGroup:[J[37]],cssFns:[]},transition:{cssPropBits:1029,cssLitGroup:[J[10],J[48],J[50],J[71]],cssFns:["cubic-bezier()", "steps()"]},"transition-delay":"animation-delay","transition-duration":"animation-delay","transition-property":{cssPropBits:1024,cssLitGroup:[J[48],J[50]],cssFns:[]},"transition-timing-function":"animation-timing-function","unicode-bidi":{cssPropBits:0,cssLitGroup:[J[30],J[72]],cssFns:[]},"vertical-align":{cssPropBits:5,cssLitGroup:[J[12],J[31]],cssFns:[]},visibility:"backface-visibility","voice-family":{cssPropBits:8,cssLitGroup:[J[27],J[48]],cssFns:[]},volume:{cssPropBits:1,cssLitGroup:[J[17],J[69]], -cssFns:[]},"white-space":{cssPropBits:0,cssLitGroup:[J[22],J[72]],cssFns:[]},width:"min-height","word-break":{cssPropBits:0,cssLitGroup:[J[32],J[72]],cssFns:[]},"word-spacing":"letter-spacing","word-wrap":"overflow-wrap","z-index":"bottom",zoom:"line-height","cubic-bezier()":"animation-delay","steps()":{cssPropBits:5,cssLitGroup:[J[36],J[48]],cssFns:[]},"image()":{cssPropBits:18,cssLitGroup:[J[0],J[48]],cssFns:["rgb()","rgba()"]},"linear-gradient()":{cssPropBits:7,cssLitGroup:[J[0],J[31],J[42],J[48], +cssFns:[]},"white-space":{cssPropBits:0,cssLitGroup:[J[22],J[72]],cssFns:[]},width:"min-height","word-break":{cssPropBits:0,cssLitGroup:[J[32],J[72],J[55]],cssFns:[]},"word-spacing":"letter-spacing","word-wrap":"overflow-wrap","z-index":"bottom",zoom:"line-height","cubic-bezier()":"animation-delay","steps()":{cssPropBits:5,cssLitGroup:[J[36],J[48]],cssFns:[]},"image()":{cssPropBits:18,cssLitGroup:[J[0],J[48]],cssFns:["rgb()","rgba()"]},"linear-gradient()":{cssPropBits:7,cssLitGroup:[J[0],J[31],J[42],J[48], J[79]],cssFns:["rgb()","rgba()"]},"radial-gradient()":{cssPropBits:7,cssLitGroup:[J[0],J[11],J[31],J[42],J[48],J[56],J[57]],cssFns:["rgb()","rgba()"]},"repeating-linear-gradient()":"linear-gradient()","repeating-radial-gradient()":"radial-gradient()","rgb()":{cssPropBits:1,cssLitGroup:[J[48]],cssFns:[]},"rgba()":"rgb()","rect()":{cssPropBits:5,cssLitGroup:[J[48],J[52]],cssFns:[]},"alpha()":{cssPropBits:1,cssLitGroup:[J[28]],cssFns:[]},"matrix()":"animation-delay","perspective()":"border-bottom-left-radius", "rotate()":"border-bottom-left-radius","rotate3d()":"animation-delay","rotatex()":"border-bottom-left-radius","rotatey()":"border-bottom-left-radius","rotatez()":"border-bottom-left-radius","scale()":"animation-delay","scale3d()":"animation-delay","scalex()":"border-bottom-left-radius","scaley()":"border-bottom-left-radius","scalez()":"border-bottom-left-radius","skew()":"animation-delay","skewx()":"border-bottom-left-radius","skewy()":"border-bottom-left-radius","translate()":"animation-delay","translate3d()":"animation-delay", "translatex()":"border-bottom-left-radius","translatey()":"border-bottom-left-radius","translatez()":"border-bottom-left-radius"},O;for(O in L)"string"===typeof L[O]&&Object.hasOwnProperty.call(L,O)&&(L[O]=L[L[O]]);"undefined"!==typeof window&&(window.cssSchema=L);var U,X; @@ -663,7 +664,7 @@ mxSwimlane.prototype.paintDivider=function(a,b,c,d,e,f,g){g||a.setShadow(!1);a.b mxSwimlane.prototype.getImageBounds=function(a,b,c,d){return this.isHorizontal()?new mxRectangle(a+c-this.imageSize,b,this.imageSize,this.imageSize):new mxRectangle(a,b,this.imageSize,this.imageSize)};function mxGraphLayout(a){this.graph=a}mxGraphLayout.prototype.graph=null;mxGraphLayout.prototype.useBoundingBox=!0;mxGraphLayout.prototype.parent=null;mxGraphLayout.prototype.moveCell=function(a,b,c){};mxGraphLayout.prototype.execute=function(a){};mxGraphLayout.prototype.getGraph=function(){return this.graph}; mxGraphLayout.prototype.getConstraint=function(a,b,c,d){c=this.graph.view.getState(b);b=null!=c?c.style:this.graph.getCellStyle(b);return null!=b?b[a]:null}; mxGraphLayout.traverse=function(a,b,c,d,e){if(null!=c&&null!=a&&(b=null!=b?b:!0,e=e||new mxDictionary,!e.get(a)&&(e.put(a,!0),d=c(a,d),null==d||d))&&(d=this.graph.model.getEdgeCount(a),0<d))for(var f=0;f<d;f++){var g=this.graph.model.getEdgeAt(a,f),k=this.graph.model.getTerminal(g,!0)==a;if(!b||k)k=this.graph.view.getVisibleTerminal(g,!k),this.traverse(k,b,c,g,e)}}; -mxGraphLayout.prototype.isAncestor=function(a,b,c){if(!c)return this.graph.model.getParent(cell)==a;if(b==a)return!1;for(;null!=b&&b!=a;)b=this.graph.model.getParent(b);return b==a};mxGraphLayout.prototype.isVertexMovable=function(a){return this.graph.isCellMovable(a)};mxGraphLayout.prototype.isVertexIgnored=function(a){return!this.graph.getModel().isVertex(a)||!this.graph.isCellVisible(a)}; +mxGraphLayout.prototype.isAncestor=function(a,b,c){if(!c)return this.graph.model.getParent(b)==a;if(b==a)return!1;for(;null!=b&&b!=a;)b=this.graph.model.getParent(b);return b==a};mxGraphLayout.prototype.isVertexMovable=function(a){return this.graph.isCellMovable(a)};mxGraphLayout.prototype.isVertexIgnored=function(a){return!this.graph.getModel().isVertex(a)||!this.graph.isCellVisible(a)}; mxGraphLayout.prototype.isEdgeIgnored=function(a){var b=this.graph.getModel();return!b.isEdge(a)||!this.graph.isCellVisible(a)||null==b.getTerminal(a,!0)||null==b.getTerminal(a,!1)};mxGraphLayout.prototype.setEdgeStyleEnabled=function(a,b){this.graph.setCellStyles(mxConstants.STYLE_NOEDGESTYLE,b?"0":"1",[a])};mxGraphLayout.prototype.setOrthogonalEdge=function(a,b){this.graph.setCellStyles(mxConstants.STYLE_ORTHOGONAL,b?"1":"0",[a])}; mxGraphLayout.prototype.getParentOffset=function(a){var b=new mxPoint;if(null!=a&&a!=this.parent){var c=this.graph.getModel();if(c.isAncestor(this.parent,a))for(var d=c.getGeometry(a);a!=this.parent;)b.x+=d.x,b.y+=d.y,a=c.getParent(a),d=c.getGeometry(a)}return b}; mxGraphLayout.prototype.setEdgePoints=function(a,b){if(null!=a){var c=this.graph.model,d=c.getGeometry(a);null==d?(d=new mxGeometry,d.setRelative(!0)):d=d.clone();if(null!=this.parent&&null!=b)for(var e=c.getParent(a),e=this.getParentOffset(e),f=0;f<b.length;f++)b[f].x-=e.x,b[f].y-=e.y;d.points=b;c.setGeometry(a,d)}}; @@ -2461,13 +2462,14 @@ Graph.prototype.isCellFoldable=function(a){var c=this.view.getState(a),c=null!=c Graph.prototype.zoom=function(a,c){a=Math.max(.01,Math.min(this.view.scale*a,160))/this.view.scale;mxGraph.prototype.zoom.apply(this,arguments)};Graph.prototype.zoomIn=function(){.15>this.view.scale?this.zoom((this.view.scale+.01)/this.view.scale):this.zoom(Math.round(this.view.scale*this.zoomFactor*20)/20/this.view.scale)};Graph.prototype.zoomOut=function(){.15>=this.view.scale?this.zoom((this.view.scale-.01)/this.view.scale):this.zoom(Math.round(1/this.zoomFactor*this.view.scale*20)/20/this.view.scale)}; Graph.prototype.getTooltipForCell=function(a){var c="";if(mxUtils.isNode(a.value)){var d=a.value.getAttribute("tooltip");if(null!=d)null!=d&&this.isReplacePlaceholders(a)&&(d=this.replacePlaceholders(a,d)),c=this.sanitizeHtml(d);else{d=this.builtInProperties;a=a.value.attributes;var b=[];this.isEnabled()&&d.push("link");for(var f=0;f<a.length;f++)0>mxUtils.indexOf(d,a[f].nodeName)&&0<a[f].nodeValue.length&&b.push({name:a[f].nodeName,value:a[f].nodeValue});b.sort(function(a,b){return a.name<b.name? -1:a.name>b.name?1:0});for(f=0;f<b.length;f++)"link"==b[f].name&&this.isCustomLink(b[f].value)||(c+=("link"!=b[f].name?"<b>"+b[f].name+":</b> ":"")+mxUtils.htmlEntities(b[f].value)+"\n");0<c.length&&(c=c.substring(0,c.length-1),mxClient.IS_SVG&&(c='<div style="max-width:360px;">'+c+"</div>"))}}return c};Graph.prototype.stringToBytes=function(a){for(var c=Array(a.length),d=0;d<a.length;d++)c[d]=a.charCodeAt(d);return c}; -Graph.prototype.bytesToString=function(a){for(var c=Array(a.length),d=0;d<a.length;d++)c[d]=String.fromCharCode(a[d]);return c.join("")};Graph.prototype.compress=function(a){if(null==a||0==a.length||"undefined"===typeof pako)return a;a=this.bytesToString(pako.deflateRaw(encodeURIComponent(a)));return window.btoa?btoa(a):Base64.encode(a,!0)};Graph.prototype.decompress=function(a){if(null==a||0==a.length||"undefined"===typeof pako)return a;a=window.atob?atob(a):Base64.decode(a,!0);return this.zapGremlins(decodeURIComponent(this.bytesToString(pako.inflateRaw(a))))}; -Graph.prototype.zapGremlins=function(a){for(var c=[],d=0;d<a.length;d++){var b=a.charCodeAt(d);(32<=b||9==b||10==b||13==b)&&c.push(a.charAt(d))}return c.join("")};HoverIcons=function(a){this.graph=a;this.init()};HoverIcons.prototype.arrowSpacing=2;HoverIcons.prototype.updateDelay=500;HoverIcons.prototype.activationDelay=140;HoverIcons.prototype.currentState=null;HoverIcons.prototype.activeArrow=null;HoverIcons.prototype.inactiveOpacity=15;HoverIcons.prototype.cssCursor="copy"; -HoverIcons.prototype.checkCollisions=!0;HoverIcons.prototype.arrowFill="#29b6f2";HoverIcons.prototype.triangleUp=mxClient.IS_SVG?Graph.createSvgImage(18,28,'<path d="m 6 26 L 12 26 L 12 12 L 18 12 L 9 1 L 1 12 L 6 12 z" stroke="#fff" fill="'+HoverIcons.prototype.arrowFill+'"/>'):new mxImage(IMAGE_PATH+"/triangle-up.png",26,14); -HoverIcons.prototype.triangleRight=mxClient.IS_SVG?Graph.createSvgImage(26,18,'<path d="m 1 6 L 14 6 L 14 1 L 26 9 L 14 18 L 14 12 L 1 12 z" stroke="#fff" fill="'+HoverIcons.prototype.arrowFill+'"/>'):new mxImage(IMAGE_PATH+"/triangle-right.png",14,26);HoverIcons.prototype.triangleDown=mxClient.IS_SVG?Graph.createSvgImage(18,26,'<path d="m 6 1 L 6 14 L 1 14 L 9 26 L 18 14 L 12 14 L 12 1 z" stroke="#fff" fill="'+HoverIcons.prototype.arrowFill+'"/>'):new mxImage(IMAGE_PATH+"/triangle-down.png",26,14); -HoverIcons.prototype.triangleLeft=mxClient.IS_SVG?Graph.createSvgImage(28,18,'<path d="m 1 9 L 12 1 L 12 6 L 26 6 L 26 12 L 12 12 L 12 18 z" stroke="#fff" fill="'+HoverIcons.prototype.arrowFill+'"/>'):new mxImage(IMAGE_PATH+"/triangle-left.png",14,26);HoverIcons.prototype.roundDrop=mxClient.IS_SVG?Graph.createSvgImage(26,26,'<circle cx="13" cy="13" r="12" stroke="#fff" fill="'+HoverIcons.prototype.arrowFill+'"/>'):new mxImage(IMAGE_PATH+"/round-drop.png",26,26); -HoverIcons.prototype.refreshTarget=new mxImage(mxClient.IS_SVG?"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACYAAAAmCAYAAACoPemuAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBNYWNpbnRvc2giIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NDQxNERDRTU1QjY1MTFFNDkzNTRFQTVEMTdGMTdBQjciIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NDQxNERDRTY1QjY1MTFFNDkzNTRFQTVEMTdGMTdBQjciPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo0NDE0RENFMzVCNjUxMUU0OTM1NEVBNUQxN0YxN0FCNyIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo0NDE0RENFNDVCNjUxMUU0OTM1NEVBNUQxN0YxN0FCNyIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PsvuX50AAANaSURBVHja7FjRZ1tRGD9ZJ1NCyIQSwrivI4Q8hCpjlFDyFEoYfSp9Ko1QWnmo0If+BSXkIfo0QirTMUpeGo2EPfWllFYjZMLKLDJn53d3biU337m5J223bPbxk5t7v+/c3/2+73znO8fDOWezKM/YjMpz68Lj8ejY+QTeCCwLxOS9qPxtyN+6wAeBTwJ31CCO0cJDjXBGBN4LfIepSwykTUT1bgpuib0SONIgo8KRHOtRiCFcvUcgZeGrHPNBxLIyFPyRgTGz0xLbegJCdmzpElue5KlAIMDX19d5uVzm5+fnfDAYmMA17uEZdOx2Yvb/sHlu2S0xwymn5ufneTab5b1ej08S6EAXNrDd2dnhiUTim21MvMtwQ6yiIrWwsMDPzs64rsBmf3/fvM7n89TYlUnEllSkQqEQv7q64g+Vk5MTVXosORErU0Zer5f0FEIlw2N6MxwO82QyaXql2+2SxDqdjopYWUUsqEp45IldqtWq6UWVh/1+P7+8vCTJ4QMUJSRIEXuneoH96w8PDyeWAnhSJfCqwm6NIlaklFdXV0cGhRcQ2mlJQXK5nMq2YPEZbnteU1U2lUqN/D84OGD9fl+5fgnSrFarsUwmw0qlEru4uBjTicViTk3Cr27HSnxR+Doyz0ZE1CAWiUTusbu7y9rttlZv5fP5WDQavYfIMba4uEipfhF8XtqJoZXx/uH+sC/4vPg7OljZZQbsCmLtYzc3N6zRaJhotVrmfx0xDINtbm6athYUeXpHdbBNaqZUKpWxWXV7e2vex+xaWVnhc3NzjrPUXgexyCt0m67LBV7uJMITjqRE4o8tZeg8FPpFitgapYxiOC0poFgsji1jKNo6BZZckrAGUtJsNk1vqAihCBcKhTE7hNWhqw2qFnGy5UFOUYJVIJ1OjzSE+BCEilon0URavRmBqnbbQ00AXbm+vnZc9O1tj72OnQoc2+cwygRkb2+P1et17ZoEm3g87lRmjgWZ00kbXkNuse6/Bu2wlegIxfb2tuvWGroO4bO2c4bbzUh60mxDXm1sbJhhxkQYnhS4h2fUZoRAWnf7lv8N27f8P7Xhnekjgpk+VKGOoQbsiY+hhhtF3YO7twIJ+ULvUGv+GQ2fQEvWxI/THNx5/p/BaspPAQYAqStgiSQwCDoAAAAASUVORK5CYII=": -IMAGE_PATH+"/refresh.png",38,38);HoverIcons.prototype.tolerance=mxClient.IS_TOUCH?6:0; +Graph.prototype.bytesToString=function(a){for(var c=Array(a.length),d=0;d<a.length;d++)c[d]=String.fromCharCode(a[d]);return c.join("")};Graph.prototype.compressNode=function(a){return this.compress(this.zapGremlins(mxUtils.getXml(a)))};Graph.prototype.compress=function(a){if(null==a||0==a.length||"undefined"===typeof pako)return a;a=this.bytesToString(pako.deflateRaw(encodeURIComponent(a)));return window.btoa?btoa(a):Base64.encode(a,!0)}; +Graph.prototype.decompress=function(a){if(null==a||0==a.length||"undefined"===typeof pako)return a;a=window.atob?atob(a):Base64.decode(a,!0);return this.zapGremlins(decodeURIComponent(this.bytesToString(pako.inflateRaw(a))))};Graph.prototype.zapGremlins=function(a){for(var c=[],d=0;d<a.length;d++){var b=a.charCodeAt(d);(32<=b||9==b||10==b||13==b)&&c.push(a.charAt(d))}return c.join("")};HoverIcons=function(a){this.graph=a;this.init()};HoverIcons.prototype.arrowSpacing=2; +HoverIcons.prototype.updateDelay=500;HoverIcons.prototype.activationDelay=140;HoverIcons.prototype.currentState=null;HoverIcons.prototype.activeArrow=null;HoverIcons.prototype.inactiveOpacity=15;HoverIcons.prototype.cssCursor="copy";HoverIcons.prototype.checkCollisions=!0;HoverIcons.prototype.arrowFill="#29b6f2"; +HoverIcons.prototype.triangleUp=mxClient.IS_SVG?Graph.createSvgImage(18,28,'<path d="m 6 26 L 12 26 L 12 12 L 18 12 L 9 1 L 1 12 L 6 12 z" stroke="#fff" fill="'+HoverIcons.prototype.arrowFill+'"/>'):new mxImage(IMAGE_PATH+"/triangle-up.png",26,14);HoverIcons.prototype.triangleRight=mxClient.IS_SVG?Graph.createSvgImage(26,18,'<path d="m 1 6 L 14 6 L 14 1 L 26 9 L 14 18 L 14 12 L 1 12 z" stroke="#fff" fill="'+HoverIcons.prototype.arrowFill+'"/>'):new mxImage(IMAGE_PATH+"/triangle-right.png",14,26); +HoverIcons.prototype.triangleDown=mxClient.IS_SVG?Graph.createSvgImage(18,26,'<path d="m 6 1 L 6 14 L 1 14 L 9 26 L 18 14 L 12 14 L 12 1 z" stroke="#fff" fill="'+HoverIcons.prototype.arrowFill+'"/>'):new mxImage(IMAGE_PATH+"/triangle-down.png",26,14);HoverIcons.prototype.triangleLeft=mxClient.IS_SVG?Graph.createSvgImage(28,18,'<path d="m 1 9 L 12 1 L 12 6 L 26 6 L 26 12 L 12 12 L 12 18 z" stroke="#fff" fill="'+HoverIcons.prototype.arrowFill+'"/>'):new mxImage(IMAGE_PATH+"/triangle-left.png",14,26); +HoverIcons.prototype.roundDrop=mxClient.IS_SVG?Graph.createSvgImage(26,26,'<circle cx="13" cy="13" r="12" stroke="#fff" fill="'+HoverIcons.prototype.arrowFill+'"/>'):new mxImage(IMAGE_PATH+"/round-drop.png",26,26); +HoverIcons.prototype.refreshTarget=new mxImage(mxClient.IS_SVG?"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACYAAAAmCAYAAACoPemuAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBNYWNpbnRvc2giIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NDQxNERDRTU1QjY1MTFFNDkzNTRFQTVEMTdGMTdBQjciIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NDQxNERDRTY1QjY1MTFFNDkzNTRFQTVEMTdGMTdBQjciPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo0NDE0RENFMzVCNjUxMUU0OTM1NEVBNUQxN0YxN0FCNyIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo0NDE0RENFNDVCNjUxMUU0OTM1NEVBNUQxN0YxN0FCNyIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PsvuX50AAANaSURBVHja7FjRZ1tRGD9ZJ1NCyIQSwrivI4Q8hCpjlFDyFEoYfSp9Ko1QWnmo0If+BSXkIfo0QirTMUpeGo2EPfWllFYjZMLKLDJn53d3biU337m5J223bPbxk5t7v+/c3/2+73znO8fDOWezKM/YjMpz68Lj8ejY+QTeCCwLxOS9qPxtyN+6wAeBTwJ31CCO0cJDjXBGBN4LfIepSwykTUT1bgpuib0SONIgo8KRHOtRiCFcvUcgZeGrHPNBxLIyFPyRgTGz0xLbegJCdmzpElue5KlAIMDX19d5uVzm5+fnfDAYmMA17uEZdOx2Yvb/sHlu2S0xwymn5ufneTab5b1ej08S6EAXNrDd2dnhiUTim21MvMtwQ6yiIrWwsMDPzs64rsBmf3/fvM7n89TYlUnEllSkQqEQv7q64g+Vk5MTVXosORErU0Zer5f0FEIlw2N6MxwO82QyaXql2+2SxDqdjopYWUUsqEp45IldqtWq6UWVh/1+P7+8vCTJ4QMUJSRIEXuneoH96w8PDyeWAnhSJfCqwm6NIlaklFdXV0cGhRcQ2mlJQXK5nMq2YPEZbnteU1U2lUqN/D84OGD9fl+5fgnSrFarsUwmw0qlEru4uBjTicViTk3Cr27HSnxR+Doyz0ZE1CAWiUTusbu7y9rttlZv5fP5WDQavYfIMba4uEipfhF8XtqJoZXx/uH+sC/4vPg7OljZZQbsCmLtYzc3N6zRaJhotVrmfx0xDINtbm6athYUeXpHdbBNaqZUKpWxWXV7e2vex+xaWVnhc3NzjrPUXgexyCt0m67LBV7uJMITjqRE4o8tZeg8FPpFitgapYxiOC0poFgsji1jKNo6BZZckrAGUtJsNk1vqAihCBcKhTE7hNWhqw2qFnGy5UFOUYJVIJ1OjzSE+BCEilon0URavRmBqnbbQ00AXbm+vnZc9O1tj72OnQoc2+cwygRkb2+P1et17ZoEm3g87lRmjgWZ00kbXkNuse6/Bu2wlegIxfb2tuvWGroO4bO2c4bbzUh60mxDXm1sbJhhxkQYnhS4h2fUZoRAWnf7lv8N27f8P7Xhnekjgpk+VKGOoQbsiY+hhhtF3YO7twIJ+ULvUGv+GQ2fQEvWxI/THNx5/p/BaspPAQYAqStgiSQwCDoAAAAASUVORK5CYII=":IMAGE_PATH+ +"/refresh.png",38,38);HoverIcons.prototype.tolerance=mxClient.IS_TOUCH?6:0; HoverIcons.prototype.init=function(){this.arrowUp=this.createArrow(this.triangleUp,mxResources.get("plusTooltip"));this.arrowRight=this.createArrow(this.triangleRight,mxResources.get("plusTooltip"));this.arrowDown=this.createArrow(this.triangleDown,mxResources.get("plusTooltip"));this.arrowLeft=this.createArrow(this.triangleLeft,mxResources.get("plusTooltip"));this.elts=[this.arrowUp,this.arrowRight,this.arrowDown,this.arrowLeft];this.repaintHandler=mxUtils.bind(this,function(){this.repaint()});this.graph.selectionModel.addListener(mxEvent.CHANGE, this.repaintHandler);this.graph.model.addListener(mxEvent.CHANGE,this.repaintHandler);this.graph.view.addListener(mxEvent.SCALE_AND_TRANSLATE,this.repaintHandler);this.graph.view.addListener(mxEvent.TRANSLATE,this.repaintHandler);this.graph.view.addListener(mxEvent.SCALE,this.repaintHandler);this.graph.view.addListener(mxEvent.DOWN,this.repaintHandler);this.graph.view.addListener(mxEvent.UP,this.repaintHandler);this.graph.addListener(mxEvent.ROOT,this.repaintHandler);this.graph.addListener(mxEvent.ESCAPE, mxUtils.bind(this,function(){this.mouseDownPoint=null}));mxEvent.addListener(this.graph.container,"mouseleave",mxUtils.bind(this,function(a){null!=a.relatedTarget&&mxEvent.getSource(a)==this.graph.container&&this.setDisplay("none")}));this.graph.addListener(mxEvent.START_EDITING,mxUtils.bind(this,function(a){this.reset()}));var a=this.graph.click;this.graph.click=mxUtils.bind(this,function(c){a.apply(this.graph,arguments);null==this.currentState||this.graph.isCellSelected(this.currentState.cell)|| @@ -3169,9 +3171,8 @@ c=mxUtils.button(e||mxResources.get("cancel"),function(){a.hideDialog();null!=f& "right";var d=document.createElement("textarea");d.setAttribute("wrap","off");d.setAttribute("spellcheck","false");d.setAttribute("autocorrect","off");d.setAttribute("autocomplete","off");d.setAttribute("autocapitalize","off");d.style.overflow="auto";d.style.resize="none";d.style.width="600px";d.style.height="360px";d.style.marginBottom="16px";d.value=mxUtils.getPrettyXml(a.editor.getGraphXml());c.appendChild(d);this.init=function(){d.focus()};Graph.fileSupport&&(d.addEventListener("dragover",function(a){a.stopPropagation(); a.preventDefault()},!1),d.addEventListener("drop",function(b){b.stopPropagation();b.preventDefault();if(0<b.dataTransfer.files.length){b=b.dataTransfer.files[0];var c=new FileReader;c.onload=function(a){d.value=a.target.result};c.readAsText(b)}else d.value=a.extractGraphModelFromEvent(b)},!1));var b=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});b.className="geBtn";a.editor.cancelFirst&&c.appendChild(b);var f=document.createElement("select");f.style.width="180px";f.className= "geBtn";if(a.editor.graph.isEnabled()){var e=document.createElement("option");e.setAttribute("value","replace");mxUtils.write(e,mxResources.get("replaceExistingDrawing"));f.appendChild(e)}e=document.createElement("option");e.setAttribute("value","new");mxUtils.write(e,mxResources.get("openInNewWindow"));EditDiagramDialog.showNewWindowOption&&f.appendChild(e);a.editor.graph.isEnabled()&&(e=document.createElement("option"),e.setAttribute("value","import"),mxUtils.write(e,mxResources.get("addToExistingDrawing")), -f.appendChild(e));c.appendChild(f);e=mxUtils.button(mxResources.get("ok"),function(){var b=a.editor.graph.zapGremlins(mxUtils.trim(d.value)),c=null;if("new"==f.value)window.openFile=new OpenFile(function(){a.hideDialog();window.openFile=null}),window.openFile.setData(b,null),a.editor.graph.openLink(a.getUrl());else if("replace"==f.value){a.editor.graph.model.beginUpdate();try{a.editor.setGraphXml(mxUtils.parseXml(b).documentElement),a.hideDialog()}catch(p){c=p}finally{a.editor.graph.model.endUpdate()}}else if("import"== -f.value){a.editor.graph.model.beginUpdate();try{var e=mxUtils.parseXml(b),l=new mxGraphModel;(new mxCodec(e)).decode(e.documentElement,l);var m=l.getChildren(l.getChildAt(l.getRoot(),0));a.editor.graph.setSelectionCells(a.editor.graph.importCells(m));a.hideDialog()}catch(p){c=p}finally{a.editor.graph.model.endUpdate()}}null!=c&&mxUtils.alert(c.message)});e.className="geBtn gePrimaryBtn";c.appendChild(e);a.editor.cancelFirst||c.appendChild(b);this.container=c}; -EditDiagramDialog.showNewWindowOption=!0; +f.appendChild(e));c.appendChild(f);e=mxUtils.button(mxResources.get("ok"),function(){var b=a.editor.graph.zapGremlins(mxUtils.trim(d.value)),c=null;if("new"==f.value)a.hideDialog(),a.editor.editAsNew(b);else if("replace"==f.value){a.editor.graph.model.beginUpdate();try{a.editor.setGraphXml(mxUtils.parseXml(b).documentElement),a.hideDialog()}catch(p){c=p}finally{a.editor.graph.model.endUpdate()}}else if("import"==f.value){a.editor.graph.model.beginUpdate();try{var e=mxUtils.parseXml(b),l=new mxGraphModel; +(new mxCodec(e)).decode(e.documentElement,l);var m=l.getChildren(l.getChildAt(l.getRoot(),0));a.editor.graph.setSelectionCells(a.editor.graph.importCells(m));a.hideDialog()}catch(p){c=p}finally{a.editor.graph.model.endUpdate()}}null!=c&&mxUtils.alert(c.message)});e.className="geBtn gePrimaryBtn";c.appendChild(e);a.editor.cancelFirst||c.appendChild(b);this.container=c};EditDiagramDialog.showNewWindowOption=!0; var ExportDialog=function(a){function c(){var a=m.value,b=a.lastIndexOf(".");m.value=0<b?a.substring(0,b+1)+p.value:a+"."+p.value;"xml"===p.value?(n.setAttribute("disabled","true"),q.setAttribute("disabled","true"),r.setAttribute("disabled","true"),t.setAttribute("disabled","true")):(n.removeAttribute("disabled"),q.removeAttribute("disabled"),r.removeAttribute("disabled"),t.removeAttribute("disabled"));"png"===p.value||"svg"===p.value?u.removeAttribute("disabled"):u.setAttribute("disabled","disabled")} function d(){q.style.backgroundColor=q.value*r.value>MAX_AREA||0>=q.value?"red":"";r.style.backgroundColor=q.value*r.value>MAX_AREA||0>=r.value?"red":""}var b=a.editor.graph,f=b.getGraphBounds(),e=b.view.scale,h=Math.ceil(f.width/e),g=Math.ceil(f.height/e),k,e=document.createElement("table"),l=document.createElement("tbody");e.setAttribute("cellpadding",mxClient.IS_SF?"0":"2");f=document.createElement("tr");k=document.createElement("td");k.style.fontSize="10pt";k.style.width="100px";mxUtils.write(k, mxResources.get("filename")+":");f.appendChild(k);var m=document.createElement("input");m.setAttribute("value",a.editor.getOrCreateFilename());m.style.width="180px";k=document.createElement("td");k.appendChild(m);f.appendChild(k);l.appendChild(f);f=document.createElement("tr");k=document.createElement("td");k.style.fontSize="10pt";mxUtils.write(k,mxResources.get("format")+":");f.appendChild(k);var p=document.createElement("select");p.style.width="180px";k=document.createElement("option");k.setAttribute("value", @@ -7163,17 +7164,18 @@ DrawioFile=function(a,e){mxEventSource.call(this);this.ui=a;this.data=e||""};mxU DrawioFile.prototype.contentChanged=function(){this.fireEvent(new mxEventObject("contentChanged"))};DrawioFile.prototype.save=function(a,e,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,e,d){};DrawioFile.prototype.saveFile=function(a,e,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,e,d){};DrawioFile.prototype.isMovable=function(){return!1}; DrawioFile.prototype.move=function(a,e,d){};DrawioFile.prototype.getHash=function(){return""};DrawioFile.prototype.getId=function(){return""};DrawioFile.prototype.isEditable=function(){return!this.ui.editor.isChromelessView()||this.ui.editor.editable};DrawioFile.prototype.getUi=function(){return this.ui};DrawioFile.prototype.getTitle=function(){return""};DrawioFile.prototype.setData=function(a){this.data=a};DrawioFile.prototype.getData=function(){return this.data}; -DrawioFile.prototype.open=function(){this.ui.setFileData(this.getData());this.changeListener=mxUtils.bind(this,function(a,e){var d=null!=e?e.getProperty("edit"):null;!this.changeListenerEnabled||!this.isEditable()||null!=d&&d.ignoreEdit||(this.setModified(!0),this.isAutosave()?(this.ui.editor.setStatus(mxUtils.htmlEntities(mxResources.get("saving"))+"..."),this.autosave(this.autosaveDelay,this.maxAutosaveDelay,mxUtils.bind(this,function(a){null!=this.autosaveThread||this.ui.getCurrentFile()!=this|| -this.isModified()||this.addAllSavedStatus()}),mxUtils.bind(this,function(a){this.ui.getCurrentFile()==this&&this.addUnsavedStatus(a)}))):this.addUnsavedStatus())});this.ui.editor.graph.model.addListener(mxEvent.CHANGE,this.changeListener);this.ui.editor.graph.addListener("gridSizeChanged",this.changeListener);this.ui.editor.graph.addListener("shadowVisibleChanged",this.changeListener);this.ui.addListener("pageFormatChanged",this.changeListener);this.ui.addListener("pageScaleChanged",this.changeListener); -this.ui.addListener("backgroundColorChanged",this.changeListener);this.ui.addListener("backgroundImageChanged",this.changeListener);this.ui.addListener("foldingEnabledChanged",this.changeListener);this.ui.addListener("mathEnabledChanged",this.changeListener);this.ui.addListener("gridEnabledChanged",this.changeListener);this.ui.addListener("guidesEnabledChanged",this.changeListener);this.ui.addListener("pageViewChanged",this.changeListener)}; -DrawioFile.prototype.addAllSavedStatus=function(){var a=this.ui.getCurrentFile();null==a||a.constructor!=DriveFile&&a.constructor!=DropboxFile?this.ui.editor.setStatus(mxUtils.htmlEntities(mxResources.get("allChangesSaved"))):(this.ui.editor.setStatus('<span title="'+mxUtils.htmlEntities(mxResources.get("revisionHistory"))+'" style="text-decoration:underline;cursor:pointer;">'+mxUtils.htmlEntities(mxResources.get("allChangesSaved"))+"</span>"),null!=this.ui.statusContainer&&(a=this.ui.statusContainer.getElementsByTagName("span"), -0<a.length&&mxEvent.addListener(a[0],"click",mxUtils.bind(this,function(){this.ui.actions.get("revisionHistory").funct()}))))}; -DrawioFile.prototype.addUnsavedStatus=function(a){a instanceof Error&&null!=a.message?this.ui.editor.setStatus('<div class="geStatusAlert" style="overflow:hidden;">'+mxUtils.htmlEntities(mxResources.get("unsavedChanges"))+" ("+mxUtils.htmlEntities(a.message)+")</div>"):(this.ui.editor.setStatus('<div class="geStatusAlert" style="cursor:pointer;overflow:hidden;">'+mxUtils.htmlEntities(mxResources.get("unsavedChangesClickHereToSave"))+"</div>"),null!=this.ui.statusContainer&&(a=this.ui.statusContainer.getElementsByTagName("div"), -0<a.length&&mxEvent.addListener(a[0],"click",mxUtils.bind(this,function(){this.ui.actions.get(null==this.ui.mode?"saveAs":"save").funct()}))))}; -DrawioFile.prototype.autosave=function(a,e,d,c){null==this.lastAutosave&&(this.lastAutosave=(new Date).getTime());a=(new Date).getTime()-this.lastAutosave<e?a:0;this.clearAutosave();this.autosaveThread=window.setTimeout(mxUtils.bind(this,function(){this.lastAutosave=this.autosaveThread=null;if(this.isModified()&&this.isAutosaveNow()){var a=this.isAutosaveRevision();a&&(this.lastAutosaveRevision=(new Date).getTime());this.save(a,mxUtils.bind(this,function(a){this.autosaveCompleted();null!=d&&d(a)}), -mxUtils.bind(this,function(a){null!=c&&c(a)}))}else null!=d&&d(null)}),a)};DrawioFile.prototype.isAutosaveNow=function(){return!0};DrawioFile.prototype.autosaveCompleted=function(){};DrawioFile.prototype.clearAutosave=function(){null!=this.autosaveThread&&(window.clearTimeout(this.autosaveThread),this.autosaveThread=null)};DrawioFile.prototype.isAutosaveRevision=function(){var a=(new Date).getTime();return null==this.lastAutosaveRevision||a-this.lastAutosaveRevision>this.maxAutosaveRevisionDelay}; -DrawioFile.prototype.close=function(a){this.isAutosave()&&this.isModified()&&this.save(this.isAutosaveRevision(),null,null,a);this.destroy()};DrawioFile.prototype.hasSameExtension=function(a,e){if(null!=a&&null!=e){var d=a.lastIndexOf("."),c=0<d?a.substring(d):"",d=e.lastIndexOf(".");return c===(0<d?e.substring(d):"")}return a==e}; -DrawioFile.prototype.destroy=function(){this.clearAutosave();null!=this.changeListener&&(this.ui.editor.graph.model.removeListener(this.changeListener),this.ui.editor.graph.removeListener(this.changeListener),this.ui.removeListener(this.changeListener),this.changeListener=null)};LocalFile=function(a,e,d,c){DrawioFile.call(this,a,e);this.title=d;this.mode=c?null:App.MODE_DEVICE};mxUtils.extend(LocalFile,DrawioFile);LocalFile.prototype.isAutosave=function(){return!1};LocalFile.prototype.getMode=function(){return this.mode};LocalFile.prototype.getTitle=function(){return this.title};LocalFile.prototype.isRenamable=function(){return!0};LocalFile.prototype.save=function(a,e,d){this.saveAs(this.title,e,d)};LocalFile.prototype.saveAs=function(a,e,d){this.saveFile(a,!1,e,d)}; +DrawioFile.prototype.open=function(){var a=this.getData();null!=a&&this.ui.setFileData(a);this.changeListener=mxUtils.bind(this,function(a,d){var c=null!=d?d.getProperty("edit"):null;!this.changeListenerEnabled||!this.isEditable()||null!=c&&c.ignoreEdit||this.fileChanged()});this.ui.editor.graph.model.addListener(mxEvent.CHANGE,this.changeListener);this.ui.editor.graph.addListener("gridSizeChanged",this.changeListener);this.ui.editor.graph.addListener("shadowVisibleChanged",this.changeListener);this.ui.addListener("pageFormatChanged", +this.changeListener);this.ui.addListener("pageScaleChanged",this.changeListener);this.ui.addListener("backgroundColorChanged",this.changeListener);this.ui.addListener("backgroundImageChanged",this.changeListener);this.ui.addListener("foldingEnabledChanged",this.changeListener);this.ui.addListener("mathEnabledChanged",this.changeListener);this.ui.addListener("gridEnabledChanged",this.changeListener);this.ui.addListener("guidesEnabledChanged",this.changeListener);this.ui.addListener("pageViewChanged", +this.changeListener)}; +DrawioFile.prototype.addAllSavedStatus=function(){var a=this.ui.getCurrentFile();null==a||a.constructor!=DriveFile&&a.constructor!=DropboxFile?this.ui.editor.setStatus(mxUtils.htmlEntities(mxResources.get("allChangesSaved"))):(this.ui.editor.setStatus('<div title="'+mxUtils.htmlEntities(mxResources.get("revisionHistory"))+'" style="text-decoration:underline;cursor:pointer;">'+mxUtils.htmlEntities(mxResources.get("allChangesSaved"))+"</div>"),a=null!=this.ui.statusContainer?this.ui.statusContainer.getElementsByTagName("div"):null, +0<a.length&&mxEvent.addListener(a[0],"click",mxUtils.bind(this,function(){this.ui.actions.get("revisionHistory").funct()})))}; +DrawioFile.prototype.fileChanged=function(){this.setModified(!0);this.isAutosave()?(this.ui.editor.setStatus(mxUtils.htmlEntities(mxResources.get("saving"))+"..."),this.autosave(this.autosaveDelay,this.maxAutosaveDelay,mxUtils.bind(this,function(a){null!=this.autosaveThread||this.ui.getCurrentFile()!=this||this.isModified()||this.addAllSavedStatus()}),mxUtils.bind(this,function(a){this.ui.getCurrentFile()==this&&this.addUnsavedStatus(a)}))):this.addUnsavedStatus()}; +DrawioFile.prototype.addUnsavedStatus=function(a){a instanceof Error&&null!=a.message?this.ui.editor.setStatus('<div class="geStatusAlert" style="overflow:hidden;">'+mxUtils.htmlEntities(mxResources.get("unsavedChanges"))+" ("+mxUtils.htmlEntities(a.message)+")</div>"):(this.ui.editor.setStatus('<div class="geStatusAlert" style="cursor:pointer;overflow:hidden;">'+mxUtils.htmlEntities(mxResources.get("unsavedChangesClickHereToSave"))+"</div>"),a=null!=this.ui.statusContainer?this.ui.statusContainer.getElementsByTagName("div"): +null,null!=a&&0<a.length?mxEvent.addListener(a[0],"click",mxUtils.bind(this,function(){this.ui.actions.get(null==this.ui.mode?"saveAs":"save").funct()})):this.ui.editor.setStatus('<div class="geStatusAlert" style="overflow:hidden;">'+mxUtils.htmlEntities(mxResources.get("unsavedChanges"))+"</div>"))}; +DrawioFile.prototype.autosave=function(a,e,d,c){null==this.lastAutosave&&(this.lastAutosave=(new Date).getTime());a=(new Date).getTime()-this.lastAutosave<e?a:0;this.clearAutosave();var g=window.setTimeout(mxUtils.bind(this,function(){this.lastAutosave=null;this.autosaveThead==g&&(this.autosaveThread=null);if(this.isModified()&&this.isAutosaveNow()){var a=this.isAutosaveRevision();a&&(this.lastAutosaveRevision=(new Date).getTime());this.save(a,mxUtils.bind(this,function(a){this.autosaveCompleted(); +null!=d&&d(a)}),mxUtils.bind(this,function(a){null!=c&&c(a)}))}else this.isModified()||this.ui.editor.setStatus(""),null!=d&&d(null)}),a);this.autosaveThread=g};DrawioFile.prototype.isAutosaveNow=function(){return!0};DrawioFile.prototype.autosaveCompleted=function(){};DrawioFile.prototype.clearAutosave=function(){null!=this.autosaveThread&&(window.clearTimeout(this.autosaveThread),this.autosaveThread=null)}; +DrawioFile.prototype.isAutosaveRevision=function(){var a=(new Date).getTime();return null==this.lastAutosaveRevision||a-this.lastAutosaveRevision>this.maxAutosaveRevisionDelay};DrawioFile.prototype.close=function(a){this.isAutosave()&&this.isModified()&&this.save(this.isAutosaveRevision(),null,null,a);this.destroy()}; +DrawioFile.prototype.hasSameExtension=function(a,e){if(null!=a&&null!=e){var d=a.lastIndexOf("."),c=0<d?a.substring(d):"",d=e.lastIndexOf(".");return c===(0<d?e.substring(d):"")}return a==e};DrawioFile.prototype.destroy=function(){this.clearAutosave();null!=this.changeListener&&(this.ui.editor.graph.model.removeListener(this.changeListener),this.ui.editor.graph.removeListener(this.changeListener),this.ui.removeListener(this.changeListener),this.changeListener=null)};LocalFile=function(a,e,d,c){DrawioFile.call(this,a,e);this.title=d;this.mode=c?null:App.MODE_DEVICE};mxUtils.extend(LocalFile,DrawioFile);LocalFile.prototype.isAutosave=function(){return!1};LocalFile.prototype.getMode=function(){return this.mode};LocalFile.prototype.getTitle=function(){return this.title};LocalFile.prototype.isRenamable=function(){return!0};LocalFile.prototype.save=function(a,e,d){this.saveAs(this.title,e,d)};LocalFile.prototype.saveAs=function(a,e,d){this.saveFile(a,!1,e,d)}; LocalFile.prototype.saveFile=function(a,e,d,c){this.title=a;this.updateFileData();e=this.getData();var g=this.ui.useCanvasForExport&&/(\.png)$/i.test(this.getTitle()),k=mxUtils.bind(this,function(c){if(this.ui.isOfflineApp()||this.ui.isLocalFileSave())this.ui.doSaveLocalFile(c,a,g?"image/png":"text/xml",g);else if(c.length<MAX_REQUEST_SIZE){var e=a.lastIndexOf("."),e=0<e?a.substring(e+1):"xml";(new mxXmlRequest(SAVE_URL,"format="+e+"&xml="+encodeURIComponent(c)+"&filename="+encodeURIComponent(a)+ (g?"&binary=1":""))).simulate(document,"_blank")}else this.ui.handleError({message:mxResources.get("drawingTooLarge")},mxResources.get("error"),mxUtils.bind(this,function(){mxUtils.popup(c)}));this.setModified(!1);this.contentChanged();null!=d&&d()});g?this.ui.getEmbeddedPng(mxUtils.bind(this,function(a){k(a)}),c,this.ui.getCurrentFile()!=this?this.getData():null):k(e)};LocalFile.prototype.rename=function(a,e,d){this.title=a;this.descriptorChanged();null!=e&&e()}; LocalFile.prototype.open=function(){this.ui.setFileData(this.getData());this.changeListener=mxUtils.bind(this,function(a,e){this.setModified(!0);this.addUnsavedStatus()});this.ui.editor.graph.model.addListener(mxEvent.CHANGE,this.changeListener)};LocalLibrary=function(a,e,d){LocalFile.call(this,a,e,d)};mxUtils.extend(LocalLibrary,LocalFile);LocalLibrary.prototype.getHash=function(){return"F"+this.getTitle()};LocalLibrary.prototype.isAutosave=function(){return!1};LocalLibrary.prototype.saveAs=function(a,e,d){this.saveFile(a,!1,e,d)};LocalLibrary.prototype.updateFileData=function(){};LocalLibrary.prototype.open=function(){};StorageFile=function(a,e,d){DrawioFile.call(this,a,e);this.title=d};mxUtils.extend(StorageFile,DrawioFile);StorageFile.prototype.autosaveDelay=2E3;StorageFile.prototype.maxAutosaveDelay=2E4;StorageFile.prototype.getMode=function(){return App.MODE_BROWSER};StorageFile.prototype.isAutosaveOptional=function(){return!0};StorageFile.prototype.getHash=function(){return"L"+encodeURIComponent(this.getTitle())};StorageFile.prototype.getTitle=function(){return this.title}; @@ -7184,7 +7186,7 @@ StorageFile.prototype.open=function(){DrawioFile.prototype.open.apply(this,argum StorageLibrary.prototype.isRenamable=function(a,e,d){return".scratchpad"!=this.title};StorageLibrary.prototype.open=function(){};UrlLibrary=function(a,e,d){StorageFile.call(this,a,e,d);a=d;e=a.lastIndexOf("/");0<=e&&(a=a.substring(e+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,e,d){return!1};UrlLibrary.prototype.saveAs=function(a,e,d){};UrlLibrary.prototype.open=function(){};var StorageDialog=function(a,e,d){function c(c,q,t,m,v,x){function w(){mxEvent.addListener(u,"click",null!=x?x:function(){t!=App.MODE_GOOGLE||a.isDriveDomain()?t==App.MODE_GOOGLE&&a.spinner.spin(document.body,mxResources.get("authorizing"))?a.drive.checkToken(mxUtils.bind(this,function(){a.spinner.stop();a.setMode(t,b.checked);e()})):(a.setMode(t,b.checked),e()):window.location.hostname=DriveClient.prototype.newAppHostname})}var u=document.createElement("a");u.style.overflow="hidden";u.style.display= mxClient.IS_QUIRKS?"inline":"inline-block";u.className="geBaseButton";u.style.boxSizing="border-box";u.style.fontSize="11px";u.style.position="relative";u.style.margin="4px";u.style.padding="8px 10px 12px 10px";u.style.width="88px";u.style.height="100px";u.style.whiteSpace="nowrap";u.setAttribute("title",q);mxClient.IS_QUIRKS&&(u.style.cssFloat="left",u.style.zoom="1");var g=document.createElement("div");g.style.textOverflow="ellipsis";g.style.overflow="hidden";if(null!=c){var A=document.createElement("img"); A.setAttribute("src",c);A.setAttribute("border","0");A.setAttribute("align","absmiddle");A.style.width="60px";A.style.height="60px";A.style.paddingBottom="6px";u.appendChild(A)}else g.style.paddingTop="5px",g.style.whiteSpace="normal",mxClient.IS_IOS?(u.style.padding="0px 10px 20px 10px",u.style.top="6px"):mxClient.IS_FF&&(g.style.paddingTop="0px",g.style.marginTop="-2px");u.appendChild(g);mxUtils.write(g,q);if(null!=v)for(c=0;c<v.length;c++)mxUtils.br(g),mxUtils.write(g,v[c]);if(null!=m&&null==a[m]){A.style.visibility= -"hidden";mxUtils.setOpacity(g,10);var k=new Spinner({lines:12,length:12,width:5,radius:10,rotate:0,color:"dark"==uiTheme?"#c0c0c0":"#000",speed:1.5,trail:60,shadow:!1,hwaccel:!1,top:"40%",zIndex:2E9});k.spin(u);var z=window.setTimeout(function(){null==a[m]&&(k.stop(),u.style.display="none")},3E4);a.addListener("clientLoaded",mxUtils.bind(this,function(){null!=a[m]&&(window.clearTimeout(z),mxUtils.setOpacity(g,100),A.style.visibility="",k.stop(),w(),"drive"==m&&null!=h.parentNode&&h.parentNode.removeChild(h))}))}else w(); +"hidden";mxUtils.setOpacity(g,10);var y=new Spinner({lines:12,length:12,width:5,radius:10,rotate:0,color:"dark"==uiTheme?"#c0c0c0":"#000",speed:1.5,trail:60,shadow:!1,hwaccel:!1,top:"40%",zIndex:2E9});y.spin(u);var k=window.setTimeout(function(){null==a[m]&&(y.stop(),u.style.display="none")},3E4);a.addListener("clientLoaded",mxUtils.bind(this,function(){null!=a[m]&&(window.clearTimeout(k),mxUtils.setOpacity(g,100),A.style.visibility="",y.stop(),w(),"drive"==m&&null!=h.parentNode&&h.parentNode.removeChild(h))}))}else w(); n.appendChild(u);++f>=d&&(mxUtils.br(n),f=0)}d=null!=d?d:2;var g=document.createElement("div");g.style.textAlign="center";g.style.whiteSpace="nowrap";g.style.paddingTop="0px";g.style.paddingBottom="20px";var k=a.addLanguageMenu(g,!0);null!=k&&(k.style.bottom=parseInt("28px")-2+"px");if(!a.isOffline()&&1<a.getServiceCount()){k=document.createElement("a");k.setAttribute("href","https://about.draw.io/support/");k.setAttribute("title",mxResources.get("help"));k.setAttribute("target","_blank");k.style.position= "absolute";k.style.textDecoration="none";k.style.cursor="pointer";k.style.fontSize="12px";k.style.bottom="28px";k.style.left="26px";k.style.color="gray";var l=document.createElement("img");l.setAttribute("border","0");l.setAttribute("valign","bottom");l.setAttribute("src",Editor.helpImage);l.style.marginRight="2px";k.appendChild(l);mxUtils.write(k,mxResources.get("help"));g.appendChild(k)}var p=document.createElement("div");p.style.position="absolute";p.style.cursor="pointer";p.style.fontSize="12px"; p.style.bottom="28px";p.style.color="gray";mxUtils.write(p,mxResources.get("decideLater"));a.isOfflineApp()?p.style.right="20px":(mxUtils.setPrefixedStyle(p.style,"transform","translate(-50%,0)"),p.style.left="50%");this.init=function(){if(mxClient.IS_QUIRKS||8==document.documentMode)p.style.marginLeft=-Math.round(p.clientWidth/2)+"px"};g.appendChild(p);mxEvent.addListener(p,"click",function(){a.hideDialog();var b=Editor.useLocalStorage;a.createFile(a.defaultFilename,null,null,null,null,null,null, @@ -7218,14 +7220,14 @@ b=document.createElement("img");b.setAttribute("src",Editor.facebookImage);b.set f.className="geBtn",k.appendChild(f))}b=mxUtils.button(mxResources.get("close"),function(){a.hideDialog()});k.appendChild(b);f=mxUtils.button(mxResources.get("copy"),function(){p.focus();mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode||mxClient.IS_QUIRKS?p.select():document.execCommand("selectAll",!1,null);document.execCommand("copy");a.alert(mxResources.get("copiedToClipboard"))});5E5>e.length?mxClient.IS_SF||null!=document.documentMode?b.className="geBtn gePrimaryBtn":(k.appendChild(f), f.className="geBtn gePrimaryBtn",b.className="geBtn"):(k.appendChild(n),b.className="geBtn",n.className="geBtn gePrimaryBtn");c.appendChild(k);this.container=c};EmbedDialog.showPreviewOption=!0; var GoogleSitesDialog=function(a,e){function d(){var a=null!=B.getTitle()?B.getTitle():this.defaultFilename;if(x.checked&&""!=t.value){var c="https://www.draw.io/gadget.xml?type=4&diagram="+encodeURIComponent(mxUtils.htmlEntities(t.value));null!=a&&(c+="&title="+encodeURIComponent(a));0<C.length&&(c+="&s="+C);""!=q.value&&"0"!=q.value&&(c+="&border="+q.value);""!=h.value&&(c+="&height="+h.value);c+="&pan="+(u.checked?"1":"0");c+="&zoom="+(w.checked?"1":"0");c+="&fit="+(v.checked?"1":"0");c+="&resize="+ -(m.checked?"1":"0");c+="&x0="+Number(f.value);c+="&y0="+n;g.mathEnabled&&(c+="&math=1");A.checked?c+="&edit=_blank":z.checked&&(c+="&edit="+encodeURIComponent(mxUtils.htmlEntities(window.location.href)));b.value=c}else B.constructor==DriveFile||B.constructor==DropboxFile?(c="https://www.draw.io/gadget.xml?embed=0&diagram=",""!=t.value?c+=encodeURIComponent(mxUtils.htmlEntities(t.value))+"&type=3":(c+=B.getHash().substring(1),c=B.constructor==DropboxFile?c+"&type=2":c+"&type=1"),null!=a&&(c+="&title="+ +(m.checked?"1":"0");c+="&x0="+Number(f.value);c+="&y0="+n;g.mathEnabled&&(c+="&math=1");A.checked?c+="&edit=_blank":y.checked&&(c+="&edit="+encodeURIComponent(mxUtils.htmlEntities(window.location.href)));b.value=c}else B.constructor==DriveFile||B.constructor==DropboxFile?(c="https://www.draw.io/gadget.xml?embed=0&diagram=",""!=t.value?c+=encodeURIComponent(mxUtils.htmlEntities(t.value))+"&type=3":(c+=B.getHash().substring(1),c=B.constructor==DropboxFile?c+"&type=2":c+"&type=1"),null!=a&&(c+="&title="+ encodeURIComponent(a)),""!=h.value&&(a=parseInt(h.value)+parseInt(f.value),c+="&height="+a),b.value=c):b.value=""}var c=document.createElement("div"),g=a.editor.graph,k=g.getGraphBounds(),l=g.view.scale,p=Math.floor(k.x/l-g.view.translate.x),n=Math.floor(k.y/l-g.view.translate.y);mxUtils.write(c,mxResources.get("googleGadget")+":");mxUtils.br(c);var b=document.createElement("input");b.setAttribute("type","text");b.style.marginBottom="8px";b.style.marginTop="2px";b.style.width="410px";c.appendChild(b); mxUtils.br(c);this.init=function(){b.focus();mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode||mxClient.IS_QUIRKS?b.select():document.execCommand("selectAll",!1,null)};mxUtils.write(c,mxResources.get("top")+":");var f=document.createElement("input");f.setAttribute("type","text");f.setAttribute("size","4");f.style.marginRight="16px";f.style.marginLeft="4px";f.value=p;c.appendChild(f);mxUtils.write(c,mxResources.get("height")+":");var h=document.createElement("input");h.setAttribute("type", "text");h.setAttribute("size","4");h.style.marginLeft="4px";h.value=Math.ceil(k.height/l);c.appendChild(h);mxUtils.br(c);k=document.createElement("hr");k.setAttribute("size","1");k.style.marginBottom="16px";k.style.marginTop="16px";c.appendChild(k);mxUtils.write(c,mxResources.get("publicDiagramUrl")+":");mxUtils.br(c);var t=document.createElement("input");t.setAttribute("type","text");t.setAttribute("size","28");t.style.marginBottom="8px";t.style.marginTop="2px";t.style.width="410px";t.value=e||""; c.appendChild(t);mxUtils.br(c);mxUtils.write(c,mxResources.get("borderWidth")+":");var q=document.createElement("input");q.setAttribute("type","text");q.setAttribute("size","3");q.style.marginBottom="8px";q.style.marginLeft="4px";q.value="0";c.appendChild(q);mxUtils.br(c);var u=document.createElement("input");u.setAttribute("type","checkbox");u.setAttribute("checked","checked");u.defaultChecked=!0;u.style.marginLeft="16px";c.appendChild(u);mxUtils.write(c,mxResources.get("pan")+" ");var w=document.createElement("input"); -w.setAttribute("type","checkbox");w.setAttribute("checked","checked");w.defaultChecked=!0;w.style.marginLeft="8px";c.appendChild(w);mxUtils.write(c,mxResources.get("zoom")+" ");var z=document.createElement("input");z.setAttribute("type","checkbox");z.style.marginLeft="8px";z.setAttribute("title",window.location.href);c.appendChild(z);mxUtils.write(c,mxResources.get("edit")+" ");var A=document.createElement("input");A.setAttribute("type","checkbox");A.style.marginLeft="8px";c.appendChild(A);mxUtils.write(c, +w.setAttribute("type","checkbox");w.setAttribute("checked","checked");w.defaultChecked=!0;w.style.marginLeft="8px";c.appendChild(w);mxUtils.write(c,mxResources.get("zoom")+" ");var y=document.createElement("input");y.setAttribute("type","checkbox");y.style.marginLeft="8px";y.setAttribute("title",window.location.href);c.appendChild(y);mxUtils.write(c,mxResources.get("edit")+" ");var A=document.createElement("input");A.setAttribute("type","checkbox");A.style.marginLeft="8px";c.appendChild(A);mxUtils.write(c, mxResources.get("asNew")+" ");mxUtils.br(c);var m=document.createElement("input");m.setAttribute("type","checkbox");m.setAttribute("checked","checked");m.defaultChecked=!0;m.style.marginLeft="16px";c.appendChild(m);mxUtils.write(c,mxResources.get("resize")+" ");var v=document.createElement("input");v.setAttribute("type","checkbox");v.style.marginLeft="8px";c.appendChild(v);mxUtils.write(c,mxResources.get("fit")+" ");var x=document.createElement("input");x.setAttribute("type","checkbox");x.style.marginLeft= -"8px";c.appendChild(x);mxUtils.write(c,mxResources.get("embed")+" ");var C=a.getBasenames().join(";"),B=a.getCurrentFile();mxEvent.addListener(u,"change",d);mxEvent.addListener(w,"change",d);mxEvent.addListener(m,"change",d);mxEvent.addListener(v,"change",d);mxEvent.addListener(z,"change",d);mxEvent.addListener(A,"change",d);mxEvent.addListener(x,"change",d);mxEvent.addListener(h,"change",d);mxEvent.addListener(f,"change",d);mxEvent.addListener(q,"change",d);mxEvent.addListener(t,"change",d);d(); +"8px";c.appendChild(x);mxUtils.write(c,mxResources.get("embed")+" ");var C=a.getBasenames().join(";"),B=a.getCurrentFile();mxEvent.addListener(u,"change",d);mxEvent.addListener(w,"change",d);mxEvent.addListener(m,"change",d);mxEvent.addListener(v,"change",d);mxEvent.addListener(y,"change",d);mxEvent.addListener(A,"change",d);mxEvent.addListener(x,"change",d);mxEvent.addListener(h,"change",d);mxEvent.addListener(f,"change",d);mxEvent.addListener(q,"change",d);mxEvent.addListener(t,"change",d);d(); mxEvent.addListener(b,"click",function(){b.focus();mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode||mxClient.IS_QUIRKS?b.select():document.execCommand("selectAll",!1,null)});k=document.createElement("div");k.style.paddingTop="12px";k.style.textAlign="right";l=mxUtils.button(mxResources.get("close"),function(){a.hideDialog()});l.className="geBtn gePrimaryBtn";k.appendChild(l);c.appendChild(k);this.container=c},CreateGraphDialog=function(a,e,d){var c=document.createElement("div");c.style.textAlign= "right";this.init=function(){var e=document.createElement("div");e.style.position="relative";e.style.border="1px solid gray";e.style.width="100%";e.style.height="360px";e.style.overflow="hidden";e.style.marginBottom="16px";mxEvent.disableContextMenu(e);c.appendChild(e);var k=new Graph(e);k.setCellsCloneable(!0);k.setPanning(!0);k.setAllowDanglingEdges(!1);k.connectionHandler.select=!1;k.view.setTranslate(20,20);k.border=20;k.panningHandler.useLeftButtonForPanning=!0;var l="curved=1;";k.cellRenderer.installCellOverlayListeners= function(a,b,f){mxCellRenderer.prototype.installCellOverlayListeners.apply(this,arguments);mxEvent.addListener(f.node,mxClient.IS_POINTER?"pointerdown":"mousedown",function(f){b.fireEvent(new mxEventObject("pointerdown","event",f,"state",a))});!mxClient.IS_POINTER&&mxClient.IS_TOUCH&&mxEvent.addListener(f.node,"touchstart",function(f){b.fireEvent(new mxEventObject("pointerdown","event",f,"state",a))})};k.getAllConnectionConstraints=function(){return null};k.connectionHandler.marker.highlight.keepOnTop= @@ -7239,7 +7241,7 @@ CreateGraphDialog.prototype.connectImage=new mxImage(mxClient.IS_SVG?"data:image IMAGE_PATH+"/handle-connect.png",26,26); var BackgroundImageDialog=function(a,e){var d=document.createElement("div");d.style.whiteSpace="nowrap";var c=document.createElement("h2");mxUtils.write(c,mxResources.get("backgroundImage"));c.style.marginTop="0px";d.appendChild(c);mxUtils.write(d,mxResources.get("image")+" "+mxResources.get("url")+":");mxUtils.br(d);var c=a.editor.graph.backgroundImage,g=document.createElement("input");g.setAttribute("type","text");g.style.marginTop="4px";g.style.marginBottom="4px";g.style.width="350px";g.value= null!=c?c.src:"";var k=!1,l=function(){k||""==g.value||a.isOffline()?(p.value="",n.value=""):a.loadImage(mxUtils.trim(g.value),function(a){p.value=a.width;n.value=a.height},function(){a.showError(mxResources.get("error"),mxResources.get("fileNotFound"),mxResources.get("ok"));g.value="";p.value="";n.value=""})};this.init=function(){g.focus();if(Graph.fileSupport){g.setAttribute("placeholder",mxResources.get("dragImagesHere"));var b=d.parentNode,f=null;mxEvent.addListener(b,"dragleave",function(a){null!= -f&&(f.parentNode.removeChild(f),f=null);a.stopPropagation();a.preventDefault()});mxEvent.addListener(b,"dragover",mxUtils.bind(this,function(c){null==f&&(!mxClient.IS_IE||10<document.documentMode)&&(f=a.highlightElement(b));c.stopPropagation();c.preventDefault()}));mxEvent.addListener(b,"drop",mxUtils.bind(this,function(b){null!=f&&(f.parentNode.removeChild(f),f=null);if(0<b.dataTransfer.files.length)a.importFiles(b.dataTransfer.files,0,0,a.maxBackgroundSize,function(a,b,f,c,v,h){g.value=a;l()},function(){}, +f&&(f.parentNode.removeChild(f),f=null);a.stopPropagation();a.preventDefault()});mxEvent.addListener(b,"dragover",mxUtils.bind(this,function(c){null==f&&(!mxClient.IS_IE||10<document.documentMode)&&(f=a.highlightElement(b));c.stopPropagation();c.preventDefault()}));mxEvent.addListener(b,"drop",mxUtils.bind(this,function(b){null!=f&&(f.parentNode.removeChild(f),f=null);if(0<b.dataTransfer.files.length)a.importFiles(b.dataTransfer.files,0,0,a.maxBackgroundSize,function(a,b,f,c,h,d){g.value=a;l()},function(){}, function(a){return"image/"==a.type.substring(0,6)},function(a){for(var b=0;b<a.length;b++)a[b]()},!0,a.maxBackgroundBytes,a.maxBackgroundBytes);else if(0<=mxUtils.indexOf(b.dataTransfer.types,"text/uri-list")){var c=b.dataTransfer.getData("text/uri-list");/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(c)&&(g.value=decodeURIComponent(c),l())}b.stopPropagation();b.preventDefault()}),!1)}};d.appendChild(g);mxUtils.br(d);mxUtils.br(d);mxUtils.write(d,mxResources.get("width")+":");var p=document.createElement("input"); p.setAttribute("type","text");p.style.width="60px";p.style.marginLeft="4px";p.style.marginRight="16px";p.value=null!=c?c.width:"";d.appendChild(p);mxUtils.write(d,mxResources.get("height")+":");var n=document.createElement("input");n.setAttribute("type","text");n.style.width="60px";n.style.marginLeft="4px";n.style.marginRight="16px";n.value=null!=c?c.height:"";d.appendChild(n);c=mxUtils.button(mxResources.get("reset"),function(){g.value="";p.value="";n.value="";k=!1});mxEvent.addListener(c,"mousedown", function(){k=!0});mxEvent.addListener(c,"touchstart",function(){k=!0});c.className="geBtn";c.width="100";d.appendChild(c);mxUtils.br(d);mxEvent.addListener(g,"change",l);ImageDialog.filePicked=function(a){a.action==google.picker.Action.PICKED&&null!=a.docs[0].thumbnails&&(a=a.docs[0].thumbnails[a.docs[0].thumbnails.length-1],null!=a&&(g.value=a.url,l()));g.focus()};c=document.createElement("div");c.style.marginTop="40px";c.style.textAlign="right";var b=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()}); @@ -7265,44 +7267,44 @@ l=[];a.editor.graph.getModel().beginUpdate();try{l=a.editor.graph.importCells(h. n=document.createElement("option");n.setAttribute("value","diagram");mxUtils.write(n,mxResources.get("diagram"));"plantUml"!=d&&p.appendChild(n);n=document.createElement("option");n.setAttribute("value","plantUmlSvg");mxUtils.write(n,mxResources.get("plantUml")+" ("+mxResources.get("formatSvg")+")");"plantUml"==d&&n.setAttribute("selected","selected");var b=document.createElement("option");b.setAttribute("value","plantUmlPng");mxUtils.write(b,mxResources.get("plantUml")+" ("+mxResources.get("formatPng")+ ")");var f=document.createElement("option");f.setAttribute("value","plantUmlTxt");mxUtils.write(f,mxResources.get("plantUml")+" ("+mxResources.get("text")+")");EditorUi.enablePlantUml&&Graph.fileSupport&&!a.isOffline()&&"plantUml"==d&&(p.appendChild(n),p.appendChild(b),p.appendChild(f));var h=g();l.value=h;e.appendChild(l);this.init=function(){l.focus()};Graph.fileSupport&&(l.addEventListener("dragover",function(a){a.stopPropagation();a.preventDefault()},!1),l.addEventListener("drop",function(a){a.stopPropagation(); a.preventDefault();if(0<a.dataTransfer.files.length){a=a.dataTransfer.files[0];var b=new FileReader;b.onload=function(a){l.value=a.target.result};b.readAsText(a)}},!1));e.appendChild(p);mxEvent.addListener(p,"change",function(){var a=g();if(0==l.value.length||l.value==h)h=a,l.value=h});d=mxUtils.button(mxResources.get("close"),function(){l.value==h?a.hideDialog():a.confirm(mxResources.get("areYouSure"),function(){a.hideDialog()})});d.className="geBtn";a.editor.cancelFirst&&e.appendChild(d);n=mxUtils.button(mxResources.get("insert"), -function(){a.hideDialog();c(l.value,p.value)});e.appendChild(n);n.className="geBtn gePrimaryBtn";a.editor.cancelFirst||e.appendChild(d);this.container=e},NewDialog=function(a,e,d,c,g,k,l,p,n,b,f,h,t,q,u){function w(){for(var a=!0;E<O.length&&(a||0!=mxUtils.mod(E,30));)a=O[E++],m(a.url,a.libs,a.title,a.tooltip?a.tooltip:a.title,a.select,a.imgUrl,a.info,a.onClick,a.preview),a=!1}function z(){if(aa)d||a.hideDialog(),q(aa,Z,H.value);else if(c)d||a.hideDialog(),c(P,H.value);else{var b=H.value;null!=b&& -0<b.length&&a.pickFolder(a.mode,function(f){a.createFile(b,P,null!=T&&0<T.length?T:null,null,function(){a.hideDialog()},null,f)},a.mode!=App.MODE_GOOGLE||null==a.stateArg||null==a.stateArg.folderId)}}function A(a,b,f,c,h){null!=S&&(S.style.backgroundColor="transparent",S.style.border="1px solid transparent");F.removeAttribute("disabled");P=b;T=f;S=a;aa=c;Z=h;S.style.backgroundColor=p;S.style.border=n}function m(b,f,c,h,v,m,d,x,q){var e=document.createElement("div");e.className="geTemplate";e.style.height= -Q+"px";e.style.width=K+"px";null!=h&&0<h.length&&e.setAttribute("title",h);if(null!=m)e.style.backgroundImage="url("+m+")",e.style.backgroundSize="contain",e.style.backgroundPosition="center center",e.style.backgroundRepeat="no-repeat",mxEvent.addListener(e,"click",function(a){A(e,null,null,b,d)}),mxEvent.addListener(e,"dblclick",function(a){z()});else if(null!=b&&0<b.length){c=q||TEMPLATE_PATH+"/"+b.substring(0,b.length-4)+".png";e.style.backgroundImage="url("+c+")";e.style.backgroundPosition="center center"; -e.style.backgroundRepeat="no-repeat";var t=!1;mxEvent.addListener(e,"click",function(c){F.setAttribute("disabled","disabled");e.style.backgroundColor="transparent";e.style.border="1px solid transparent";c=b;c=/^https?:\/\//.test(c)&&!a.isCorsEnabledForUrl(c)?PROXY_URL+"?url="+encodeURIComponent(c):TEMPLATE_PATH+"/"+c;mxUtils.get(c,mxUtils.bind(this,function(a){200<=a.getStatus()&&299>=a.getStatus()&&(A(e,a.getText(),f),t&&z())}))});mxEvent.addListener(e,"dblclick",function(a){t=!0})}else e.innerHTML= -'<table width="100%" height="100%"><tr><td align="center" valign="middle">'+mxResources.get(c)+"</td></tr></table>",v&&A(e),null!=x?mxEvent.addListener(e,"click",x):(mxEvent.addListener(e,"click",function(a){A(e)}),mxEvent.addListener(e,"dblclick",function(a){z()}));N.appendChild(e)}function v(){mxEvent.addListener(N,"scroll",function(a){N.scrollTop+N.clientHeight>=N.scrollHeight&&(w(),mxEvent.consume(a))});var a=null,f;for(f in U){var c=document.createElement("div"),h=mxResources.get(f),v=U[f];null== +function(){a.hideDialog();c(l.value,p.value)});e.appendChild(n);n.className="geBtn gePrimaryBtn";a.editor.cancelFirst||e.appendChild(d);this.container=e},NewDialog=function(a,e,d,c,g,k,l,p,n,b,f,h,t,q,u){function w(){for(var a=!0;E<O.length&&(a||0!=mxUtils.mod(E,30));)a=O[E++],m(a.url,a.libs,a.title,a.tooltip?a.tooltip:a.title,a.select,a.imgUrl,a.info,a.onClick,a.preview),a=!1}function y(){if(aa)d||a.hideDialog(),q(aa,Z,F.value);else if(c)d||a.hideDialog(),c(P,F.value);else{var b=F.value;null!=b&& +0<b.length&&a.pickFolder(a.mode,function(f){a.createFile(b,P,null!=T&&0<T.length?T:null,null,function(){a.hideDialog()},null,f)},a.mode!=App.MODE_GOOGLE||null==a.stateArg||null==a.stateArg.folderId)}}function A(a,b,f,c,h){null!=S&&(S.style.backgroundColor="transparent",S.style.border="1px solid transparent");G.removeAttribute("disabled");P=b;T=f;S=a;aa=c;Z=h;S.style.backgroundColor=p;S.style.border=n}function m(b,f,c,h,v,m,d,x,e){var q=document.createElement("div");q.className="geTemplate";q.style.height= +Q+"px";q.style.width=K+"px";null!=h&&0<h.length&&q.setAttribute("title",h);if(null!=m)q.style.backgroundImage="url("+m+")",q.style.backgroundSize="contain",q.style.backgroundPosition="center center",q.style.backgroundRepeat="no-repeat",mxEvent.addListener(q,"click",function(a){A(q,null,null,b,d)}),mxEvent.addListener(q,"dblclick",function(a){y()});else if(null!=b&&0<b.length){c=e||TEMPLATE_PATH+"/"+b.substring(0,b.length-4)+".png";q.style.backgroundImage="url("+c+")";q.style.backgroundPosition="center center"; +q.style.backgroundRepeat="no-repeat";var t=!1;mxEvent.addListener(q,"click",function(c){G.setAttribute("disabled","disabled");q.style.backgroundColor="transparent";q.style.border="1px solid transparent";c=b;c=/^https?:\/\//.test(c)&&!a.isCorsEnabledForUrl(c)?PROXY_URL+"?url="+encodeURIComponent(c):TEMPLATE_PATH+"/"+c;mxUtils.get(c,mxUtils.bind(this,function(a){200<=a.getStatus()&&299>=a.getStatus()&&(A(q,a.getText(),f),t&&y())}))});mxEvent.addListener(q,"dblclick",function(a){t=!0})}else q.innerHTML= +'<table width="100%" height="100%"><tr><td align="center" valign="middle">'+mxResources.get(c)+"</td></tr></table>",v&&A(q),null!=x?mxEvent.addListener(q,"click",x):(mxEvent.addListener(q,"click",function(a){A(q)}),mxEvent.addListener(q,"dblclick",function(a){y()}));N.appendChild(q)}function v(){mxEvent.addListener(N,"scroll",function(a){N.scrollTop+N.clientHeight>=N.scrollHeight&&(w(),mxEvent.consume(a))});var a=null,f;for(f in U){var c=document.createElement("div"),h=mxResources.get(f),v=U[f];null== h&&(h=f.substring(0,1).toUpperCase()+f.substring(1));18<h.length&&(h=h.substring(0,18)+"…");c.style.cssText="display:block;cursor:pointer;padding:6px;white-space:nowrap;margin-bottom:-1px;overflow:hidden;text-overflow:ellipsis;";c.setAttribute("title",h+" ("+v.length+")");mxUtils.write(c,c.getAttribute("title"));null!=b&&(c.style.padding=b);Y.appendChild(c);null==a&&(a=c,a.style.backgroundColor=l);(function(b,f){mxEvent.addListener(c,"click",function(){a!=f&&(a.style.backgroundColor="",a=f, -a.style.backgroundColor=l,N.scrollTop=0,N.innerHTML="",E=0,O=U[b],y=null,w())})})(f,c)}w()}d=null!=d?d:!0;g=null!=g?g:!1;l=null!=l?l:"#ebf2f9";p=null!=p?p:"#e6eff8";n=null!=n?n:"1px solid #ccd9ea";f=null!=f?f:EditorUi.templateFile;var x=document.createElement("div");x.style.height="100%";var C=document.createElement("div");C.style.whiteSpace="nowrap";C.style.height="46px";d&&x.appendChild(C);var B=document.createElement("img");B.setAttribute("border","0");B.setAttribute("align","absmiddle");B.style.width= +a.style.backgroundColor=l,N.scrollTop=0,N.innerHTML="",E=0,O=U[b],z=null,w())})})(f,c)}w()}d=null!=d?d:!0;g=null!=g?g:!1;l=null!=l?l:"#ebf2f9";p=null!=p?p:"#e6eff8";n=null!=n?n:"1px solid #ccd9ea";f=null!=f?f:EditorUi.templateFile;var x=document.createElement("div");x.style.height="100%";var C=document.createElement("div");C.style.whiteSpace="nowrap";C.style.height="46px";d&&x.appendChild(C);var B=document.createElement("img");B.setAttribute("border","0");B.setAttribute("align","absmiddle");B.style.width= "40px";B.style.height="40px";B.style.marginRight="10px";B.style.paddingBottom="4px";B.src=a.mode==App.MODE_GOOGLE?IMAGE_PATH+"/google-drive-logo.svg":a.mode==App.MODE_DROPBOX?IMAGE_PATH+"/dropbox-logo.svg":a.mode==App.MODE_ONEDRIVE?IMAGE_PATH+"/onedrive-logo.svg":a.mode==App.MODE_GITHUB?IMAGE_PATH+"/github-logo.svg":a.mode==App.MODE_TRELLO?IMAGE_PATH+"/trello-logo.svg":a.mode==App.MODE_BROWSER?IMAGE_PATH+"/osa_database.png":IMAGE_PATH+"/osa_drive-harddisk.png";!e&&d&&C.appendChild(B);d&&mxUtils.write(C, -(null==a.mode||a.mode==App.MODE_GOOGLE||a.mode==App.MODE_BROWSER?mxResources.get("diagramName"):mxResources.get("filename"))+":");B=".xml";a.mode==App.MODE_GOOGLE&&null!=a.drive?B=a.drive.extension:a.mode==App.MODE_DROPBOX&&null!=a.dropbox?B=a.dropbox.extension:a.mode==App.MODE_ONEDRIVE&&null!=a.oneDrive?B=a.oneDrive.extension:a.mode==App.MODE_GITHUB&&null!=a.gitHub?B=a.gitHub.extension:a.mode==App.MODE_TRELLO&&null!=a.trello&&(B=a.trello.extension);var H=document.createElement("input");H.setAttribute("value", -a.defaultFilename+B);H.style.marginRight="20px";H.style.marginLeft="10px";H.style.width=e?"220px":"430px";this.init=function(){d&&(H.focus(),mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode||mxClient.IS_QUIRKS?H.select():document.execCommand("selectAll",!1,null))};d&&C.appendChild(H);var C=!1,E=0,F=mxUtils.button(mxResources.get("create"),function(){F.setAttribute("disabled","disabled");z();F.removeAttribute("disabled")});F.className="geBtn gePrimaryBtn";if(h||t){var L=[],y=null,D=function(a){F.setAttribute("disabled", -"disabled");for(var b=0;b<L.length;b++)L[b].className=b==a?"geBtn gePrimaryBtn":"geBtn"},C=!0,B=document.createElement("div");B.style.whiteSpace="nowrap";B.style.height="30px";x.appendChild(B);var G=mxUtils.button(mxResources.get("Templates",null,"Templates"),function(){Y.style.display="";N.style.left="160px";D(0);N.scrollTop=0;N.innerHTML="";E=0;y!=O&&(O=y,w(),y=null)});L.push(G);B.appendChild(G);var M=function(a){Y.style.display="none";N.style.left="30px";D(a?-1:1);null==y&&(y=O);N.scrollTop=0; -N.innerHTML="";var b=new Spinner({lines:12,length:10,width:5,radius:10,rotate:0,color:"#000",speed:1.5,trail:60,shadow:!1,hwaccel:!1,top:"40%",zIndex:2E9});b.spin(N);E=0;var f=function(a,f){b.stop();O=a;f?N.innerHTML=f:0==a.length?N.innerHTML=mxResources.get("noDiagrams",null,"No Diagrams Found"):(N.innerHTML="",w())};a?t(J.value,f):h(f)};h&&(G=mxUtils.button(mxResources.get("Recent",null,"Recent"),function(){M()}),B.appendChild(G),L.push(G));if(t){G=document.createElement("span");G.style.marginLeft= -"10px";G.innerHTML=mxResources.get("search")+":";B.appendChild(G);var J=document.createElement("input");J.style.marginRight="10px";J.style.marginLeft="10px";J.style.width="220px";mxEvent.addListener(J,"keypress",function(a){13==a.keyCode&&M(!0)});B.appendChild(J);G=mxUtils.button(mxResources.get("search"),function(){M(!0)});G.className="geBtn";B.appendChild(G)}D(0)}var T=null,P=null,S=null,aa=null,Z=null,N=document.createElement("div");N.style.border="1px solid #d3d3d3";N.style.position="absolute"; +(null==a.mode||a.mode==App.MODE_GOOGLE||a.mode==App.MODE_BROWSER?mxResources.get("diagramName"):mxResources.get("filename"))+":");B=".xml";a.mode==App.MODE_GOOGLE&&null!=a.drive?B=a.drive.extension:a.mode==App.MODE_DROPBOX&&null!=a.dropbox?B=a.dropbox.extension:a.mode==App.MODE_ONEDRIVE&&null!=a.oneDrive?B=a.oneDrive.extension:a.mode==App.MODE_GITHUB&&null!=a.gitHub?B=a.gitHub.extension:a.mode==App.MODE_TRELLO&&null!=a.trello&&(B=a.trello.extension);var F=document.createElement("input");F.setAttribute("value", +a.defaultFilename+B);F.style.marginRight="20px";F.style.marginLeft="10px";F.style.width=e?"220px":"430px";this.init=function(){d&&(F.focus(),mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode||mxClient.IS_QUIRKS?F.select():document.execCommand("selectAll",!1,null))};d&&C.appendChild(F);var C=!1,E=0,G=mxUtils.button(mxResources.get("create"),function(){G.setAttribute("disabled","disabled");y();G.removeAttribute("disabled")});G.className="geBtn gePrimaryBtn";if(h||t){var L=[],z=null,D=function(a){G.setAttribute("disabled", +"disabled");for(var b=0;b<L.length;b++)L[b].className=b==a?"geBtn gePrimaryBtn":"geBtn"},C=!0,B=document.createElement("div");B.style.whiteSpace="nowrap";B.style.height="30px";x.appendChild(B);var H=mxUtils.button(mxResources.get("Templates",null,"Templates"),function(){Y.style.display="";N.style.left="160px";D(0);N.scrollTop=0;N.innerHTML="";E=0;z!=O&&(O=z,w(),z=null)});L.push(H);B.appendChild(H);var M=function(a){Y.style.display="none";N.style.left="30px";D(a?-1:1);null==z&&(z=O);N.scrollTop=0; +N.innerHTML="";var b=new Spinner({lines:12,length:10,width:5,radius:10,rotate:0,color:"#000",speed:1.5,trail:60,shadow:!1,hwaccel:!1,top:"40%",zIndex:2E9});b.spin(N);E=0;var f=function(a,f){b.stop();O=a;f?N.innerHTML=f:0==a.length?N.innerHTML=mxResources.get("noDiagrams",null,"No Diagrams Found"):(N.innerHTML="",w())};a?t(J.value,f):h(f)};h&&(H=mxUtils.button(mxResources.get("Recent",null,"Recent"),function(){M()}),B.appendChild(H),L.push(H));if(t){H=document.createElement("span");H.style.marginLeft= +"10px";H.innerHTML=mxResources.get("search")+":";B.appendChild(H);var J=document.createElement("input");J.style.marginRight="10px";J.style.marginLeft="10px";J.style.width="220px";mxEvent.addListener(J,"keypress",function(a){13==a.keyCode&&M(!0)});B.appendChild(J);H=mxUtils.button(mxResources.get("search"),function(){M(!0)});H.className="geBtn";B.appendChild(H)}D(0)}var T=null,P=null,S=null,aa=null,Z=null,N=document.createElement("div");N.style.border="1px solid #d3d3d3";N.style.position="absolute"; N.style.left="160px";N.style.right="34px";C=(d?72:40)+(C?30:0);N.style.top=C+"px";N.style.bottom="68px";N.style.margin="6px 0 0 -1px";N.style.padding="6px";N.style.overflow="auto";var Y=document.createElement("div");Y.style.cssText="position:absolute;left:30px;width:128px;top:"+C+"px;bottom:68px;margin-top:6px;overflow:auto;border:1px solid #d3d3d3;";var Q=140,K=140,U={},R=1;U.basic=[{title:"blankDiagram",select:!0}];var O=U.basic;if(!e){x.appendChild(Y);x.appendChild(N);var V=!1;/^https?:\/\//.test(f)&& !a.isCorsEnabledForUrl(f)&&(f=PROXY_URL+"?url="+encodeURIComponent(f));mxUtils.get(f,function(a){if(!V){V=!0;for(a=a.getXml().documentElement.firstChild;null!=a;){if("undefined"!==typeof a.getAttribute){var b=a.getAttribute("url");if(null!=b){var f=a.getAttribute("section");null==f&&(f=b.indexOf("/"),f=b.substring(0,f));b=U[f];null==b&&(R++,b=[],U[f]=b);b.push({url:a.getAttribute("url"),libs:a.getAttribute("libs"),title:a.getAttribute("title"),tooltip:a.getAttribute("url"),preview:a.getAttribute("preview")})}}a= -a.nextSibling}v()}})}mxEvent.addListener(H,"keypress",function(a){13==a.keyCode&&z()});f=document.createElement("div");f.style.marginTop=e?"4px":"16px";f.style.textAlign="right";f.style.position="absolute";f.style.left="40px";f.style.bottom="24px";f.style.right="40px";C=mxUtils.button(mxResources.get("cancel"),function(){null!=k&&k();a.hideDialog(!0)});C.className="geBtn";!a.editor.cancelFirst||g&&null==k||f.appendChild(C);e||a.isOffline()||!d||null!=c||g||(B=mxUtils.button(mxResources.get("help"), -function(){a.openLink("https://support.draw.io/display/DO/Creating+and+Opening+Files")}),B.className="geBtn",f.appendChild(B));e||"1"==urlParams.embed||g||(e=mxUtils.button(mxResources.get("fromTemplateUrl"),function(){var b=new FilenameDialog(a,"",mxResources.get("create"),function(b){null!=b&&0<b.length&&(b=a.getUrl(window.location.pathname+"?mode="+a.mode+"&title="+encodeURIComponent(H.value)+"&create="+encodeURIComponent(b)),null==a.getCurrentFile()?window.location.href=b:window.openWindow(b))}, -mxResources.get("url"));a.showDialog(b.container,300,80,!0,!0);b.init()}),e.className="geBtn",f.appendChild(e));Graph.fileSupport&&u&&(u=mxUtils.button(mxResources.get("import"),function(){var b=document.createElement("input");b.setAttribute("multiple","multiple");b.setAttribute("type","file");mxEvent.addListener(b,"change",function(f){a.openFiles(b.files,!0)});b.click()}),u.className="geBtn",f.appendChild(u));f.appendChild(F);a.editor.cancelFirst||null!=c||g&&null==k||f.appendChild(C);x.appendChild(f); +a.nextSibling}v()}})}mxEvent.addListener(F,"keypress",function(a){13==a.keyCode&&y()});f=document.createElement("div");f.style.marginTop=e?"4px":"16px";f.style.textAlign="right";f.style.position="absolute";f.style.left="40px";f.style.bottom="24px";f.style.right="40px";C=mxUtils.button(mxResources.get("cancel"),function(){null!=k&&k();a.hideDialog(!0)});C.className="geBtn";!a.editor.cancelFirst||g&&null==k||f.appendChild(C);e||a.isOffline()||!d||null!=c||g||(B=mxUtils.button(mxResources.get("help"), +function(){a.openLink("https://support.draw.io/display/DO/Creating+and+Opening+Files")}),B.className="geBtn",f.appendChild(B));e||"1"==urlParams.embed||g||(e=mxUtils.button(mxResources.get("fromTemplateUrl"),function(){var b=new FilenameDialog(a,"",mxResources.get("create"),function(b){null!=b&&0<b.length&&(b=a.getUrl(window.location.pathname+"?mode="+a.mode+"&title="+encodeURIComponent(F.value)+"&create="+encodeURIComponent(b)),null==a.getCurrentFile()?window.location.href=b:window.openWindow(b))}, +mxResources.get("url"));a.showDialog(b.container,300,80,!0,!0);b.init()}),e.className="geBtn",f.appendChild(e));Graph.fileSupport&&u&&(u=mxUtils.button(mxResources.get("import"),function(){var b=document.createElement("input");b.setAttribute("multiple","multiple");b.setAttribute("type","file");mxEvent.addListener(b,"change",function(f){a.openFiles(b.files,!0)});b.click()}),u.className="geBtn",f.appendChild(u));f.appendChild(G);a.editor.cancelFirst||null!=c||g&&null==k||f.appendChild(C);x.appendChild(f); this.container=x},CreateDialog=function(a,e,d,c,g,k,l,p,n,b,f,h,t,q,u){function w(b,f,c,m){function d(){mxEvent.addListener(q,"click",function(){var b=c;if(l){var f=v.value,h=f.lastIndexOf(".");if(0>e.lastIndexOf(".")&&0>h){var b=null!=b?b:B.value,m="";b==App.MODE_GOOGLE?m=a.drive.extension:b==App.MODE_GITHUB?m=a.gitHub.extension:b==App.MODE_TRELLO?m=a.trello.extension:b==App.MODE_DROPBOX?m=a.dropbox.extension:b==App.MODE_ONEDRIVE?m=a.oneDrive.extension:b==App.MODE_DEVICE&&(m=".xml");0<=h&&(f=f.substring(0, -h));v.value=f+m}}z(c)})}var q=document.createElement("a");q.style.overflow="hidden";var t=document.createElement("img");t.src=b;t.setAttribute("border","0");t.setAttribute("align","absmiddle");t.style.width="60px";t.style.height="60px";t.style.paddingBottom="6px";q.style.display=mxClient.IS_QUIRKS?"inline":"inline-block";q.className="geBaseButton";q.style.position="relative";q.style.margin="4px";q.style.padding="8px 8px 10px 8px";q.style.whiteSpace="nowrap";q.appendChild(t);mxClient.IS_QUIRKS&&(q.style.cssFloat= +h));v.value=f+m}}y(c)})}var q=document.createElement("a");q.style.overflow="hidden";var t=document.createElement("img");t.src=b;t.setAttribute("border","0");t.setAttribute("align","absmiddle");t.style.width="60px";t.style.height="60px";t.style.paddingBottom="6px";q.style.display=mxClient.IS_QUIRKS?"inline":"inline-block";q.className="geBaseButton";q.style.position="relative";q.style.margin="4px";q.style.padding="8px 8px 10px 8px";q.style.whiteSpace="nowrap";q.appendChild(t);mxClient.IS_QUIRKS&&(q.style.cssFloat= "left",q.style.zoom="1");q.style.color="gray";q.style.fontSize="11px";var u=document.createElement("div");q.appendChild(u);mxUtils.write(u,f);if(null!=m&&null==a[m]){t.style.visibility="hidden";mxUtils.setOpacity(u,10);var w=new Spinner({lines:12,length:12,width:5,radius:10,rotate:0,color:"#000",speed:1.5,trail:60,shadow:!1,hwaccel:!1,top:"40%",zIndex:2E9});w.spin(q);var g=window.setTimeout(function(){null==a[m]&&(w.stop(),q.style.display="none")},3E4);a.addListener("clientLoaded",mxUtils.bind(this, -function(){null!=a[m]&&(window.clearTimeout(g),mxUtils.setOpacity(u,100),t.style.visibility="",w.stop(),d())}))}else d();x.appendChild(q);++C==h&&(mxUtils.br(x),C=0)}function z(b){var f=v.value;if(null==b||null!=f&&0<f.length)a.hideDialog(),d(f,b)}l=null!=l?l:!0;p=null!=p?p:!0;h=null!=h?h:4;var A=document.createElement("div");null==c&&a.addLanguageMenu(A);var m=document.createElement("h2");mxUtils.write(m,g||mxResources.get("create"));m.style.marginTop="0px";m.style.marginBottom="24px";A.appendChild(m); +function(){null!=a[m]&&(window.clearTimeout(g),mxUtils.setOpacity(u,100),t.style.visibility="",w.stop(),d())}))}else d();x.appendChild(q);++C==h&&(mxUtils.br(x),C=0)}function y(b){var f=v.value;if(null==b||null!=f&&0<f.length)a.hideDialog(),d(f,b)}l=null!=l?l:!0;p=null!=p?p:!0;h=null!=h?h:4;var A=document.createElement("div");null==c&&a.addLanguageMenu(A);var m=document.createElement("h2");mxUtils.write(m,g||mxResources.get("create"));m.style.marginTop="0px";m.style.marginBottom="24px";A.appendChild(m); mxUtils.write(A,mxResources.get("filename")+":");var v=document.createElement("input");v.setAttribute("value",e);v.style.width="280px";v.style.marginLeft="10px";v.style.marginBottom="20px";this.init=function(){v.focus();mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode||mxClient.IS_QUIRKS?v.select():document.execCommand("selectAll",!1,null)};A.appendChild(v);null!=t&&null!=q&&"image/"==q.substring(0,6)&&(v.style.width="160px",g=null,"image/svg+xml"==q&&mxClient.IS_SVG?(g=document.createElement("div"), g.innerHTML=mxUtils.trim(t),t=g.getElementsByTagName("svg")[0],q=parseInt(t.getAttribute("width")),u=parseInt(t.getAttribute("height")),t.setAttribute("viewBox","0 0 "+q+" "+u),t.setAttribute("width","120px"),t.setAttribute("height","80px")):(g=document.createElement("img"),g.setAttribute("src","data:"+q+(u?";base64,":";utf8,")+t)),g.style.position="absolute",g.style.top="70px",g.style.right="100px",g.style.maxWidth="120px",g.style.maxHeight="80px",mxUtils.setPrefixedStyle(g.style,"transform","translate(50%,-50%)"), -A.appendChild(g),n&&Editor.popupsAllowed&&(g.style.cursor="pointer",mxEvent.addListener(g,"click",function(){z("_blank")})));mxUtils.br(A);var x=document.createElement("div");x.style.textAlign="center";var C=0;x.style.marginTop="6px";A.appendChild(x);var B=document.createElement("select");B.style.marginLeft="10px";a.isOfflineApp()||a.isOffline()||("function"===typeof window.DriveClient&&(g=document.createElement("option"),g.setAttribute("value",App.MODE_GOOGLE),mxUtils.write(g,mxResources.get("googleDrive")), +A.appendChild(g),n&&Editor.popupsAllowed&&(g.style.cursor="pointer",mxEvent.addListener(g,"click",function(){y("_blank")})));mxUtils.br(A);var x=document.createElement("div");x.style.textAlign="center";var C=0;x.style.marginTop="6px";A.appendChild(x);var B=document.createElement("select");B.style.marginLeft="10px";a.isOfflineApp()||a.isOffline()||("function"===typeof window.DriveClient&&(g=document.createElement("option"),g.setAttribute("value",App.MODE_GOOGLE),mxUtils.write(g,mxResources.get("googleDrive")), B.appendChild(g),w(IMAGE_PATH+"/google-drive-logo.svg",mxResources.get("googleDrive"),App.MODE_GOOGLE,"drive")),"function"===typeof window.OneDriveClient&&(g=document.createElement("option"),g.setAttribute("value",App.MODE_ONEDRIVE),mxUtils.write(g,mxResources.get("oneDrive")),B.appendChild(g),a.mode==App.MODE_ONEDRIVE&&g.setAttribute("selected","selected"),w(IMAGE_PATH+"/onedrive-logo.svg",mxResources.get("oneDrive"),App.MODE_ONEDRIVE,"oneDrive")),"function"===typeof window.DropboxClient&&(g=document.createElement("option"), g.setAttribute("value",App.MODE_DROPBOX),mxUtils.write(g,mxResources.get("dropbox")),B.appendChild(g),a.mode==App.MODE_DROPBOX&&g.setAttribute("selected","selected"),w(IMAGE_PATH+"/dropbox-logo.svg",mxResources.get("dropbox"),App.MODE_DROPBOX,"dropbox")),null!=a.gitHub&&(g=document.createElement("option"),g.setAttribute("value",App.MODE_GITHUB),mxUtils.write(g,mxResources.get("github")),B.appendChild(g),w(IMAGE_PATH+"/github-logo.svg",mxResources.get("github"),App.MODE_GITHUB,"gitHub")),null!=a.trello&& (g=document.createElement("option"),g.setAttribute("value",App.MODE_TRELLO),mxUtils.write(g,mxResources.get("trello")),B.appendChild(g),w(IMAGE_PATH+"/trello-logo.svg",mxResources.get("trello"),App.MODE_TRELLO,"trello")));if(!Editor.useLocalStorage||"device"==urlParams.storage||null!=a.getCurrentFile()&&!mxClient.IS_IOS)g=document.createElement("option"),g.setAttribute("value",App.MODE_DEVICE),mxUtils.write(g,mxResources.get("device")),B.appendChild(g),a.mode!=App.MODE_DEVICE&&p||g.setAttribute("selected", "selected"),f&&w(IMAGE_PATH+"/osa_drive-harddisk.png",mxResources.get("device"),App.MODE_DEVICE);p&&isLocalStorage&&"0"!=urlParams.browser&&(p=document.createElement("option"),p.setAttribute("value",App.MODE_BROWSER),mxUtils.write(p,mxResources.get("browser")),B.appendChild(p),a.mode==App.MODE_BROWSER&&p.setAttribute("selected","selected"),w(IMAGE_PATH+"/osa_database.png",mxResources.get("browser"),App.MODE_BROWSER));p=document.createElement("div");p.style.marginTop="26px";p.style.textAlign="center"; -null!=b&&(g=mxUtils.button(mxResources.get("help"),function(){a.openLink(b)}),g.className="geBtn",p.appendChild(g));g=mxUtils.button(mxResources.get("cancel"),function(){null!=c?c():(a.fileLoaded(null),a.hideDialog(),window.close(),window.location.href=a.getUrl())});g.className="geBtn";a.editor.cancelFirst&&p.appendChild(g);null==c&&(t=mxUtils.button(mxResources.get("decideLater"),function(){z(null)}),t.className="geBtn",p.appendChild(t));n&&Editor.popupsAllowed&&(n=mxUtils.button(mxResources.get("openInNewWindow"), -function(){z("_blank")}),n.className="geBtn",p.appendChild(n));mxClient.IS_IOS||(k=mxUtils.button(k||mxResources.get("create"),function(){z(f?"download":App.MODE_DEVICE)}),k.className="geBtn gePrimaryBtn",p.appendChild(k));a.editor.cancelFirst||p.appendChild(g);mxEvent.addListener(v,"keypress",function(b){13==b.keyCode?z(App.MODE_DEVICE):27==b.keyCode&&(a.fileLoaded(null),a.hideDialog(),window.close())});A.appendChild(p);this.container=A},PopupDialog=function(a,e,d,c,g){g=null!=g?g:!0;var k=document.createElement("div"); +null!=b&&(g=mxUtils.button(mxResources.get("help"),function(){a.openLink(b)}),g.className="geBtn",p.appendChild(g));g=mxUtils.button(mxResources.get("cancel"),function(){null!=c?c():(a.fileLoaded(null),a.hideDialog(),window.close(),window.location.href=a.getUrl())});g.className="geBtn";a.editor.cancelFirst&&p.appendChild(g);null==c&&(t=mxUtils.button(mxResources.get("decideLater"),function(){y(null)}),t.className="geBtn",p.appendChild(t));n&&Editor.popupsAllowed&&(n=mxUtils.button(mxResources.get("openInNewWindow"), +function(){y("_blank")}),n.className="geBtn",p.appendChild(n));mxClient.IS_IOS||(k=mxUtils.button(k||mxResources.get("create"),function(){y(f?"download":App.MODE_DEVICE)}),k.className="geBtn gePrimaryBtn",p.appendChild(k));a.editor.cancelFirst||p.appendChild(g);mxEvent.addListener(v,"keypress",function(b){13==b.keyCode?y(App.MODE_DEVICE):27==b.keyCode&&(a.fileLoaded(null),a.hideDialog(),window.close())});A.appendChild(p);this.container=A},PopupDialog=function(a,e,d,c,g){g=null!=g?g:!0;var k=document.createElement("div"); k.style.textAlign="left";mxUtils.write(k,mxResources.get("fileOpenLocation"));mxUtils.br(k);mxUtils.br(k);var l=mxUtils.button(mxResources.get("openInThisWindow"),function(){g&&a.hideDialog();null!=c&&c()});l.className="geBtn";l.style.marginBottom="8px";l.style.width="280px";k.appendChild(l);mxUtils.br(k);var p=mxUtils.button(mxResources.get("openInNewWindow"),function(){g&&a.hideDialog();null!=d&&d();a.openLink(e,null,!0)});p.className="geBtn gePrimaryBtn";p.style.width=l.style.width;k.appendChild(p); mxUtils.br(k);mxUtils.br(k);mxUtils.write(k,mxResources.get("allowPopups"));this.container=k},ImageDialog=function(a,e,d,c,g,k){k=null!=k?k:!0;var l=a.editor.graph,p=document.createElement("div");mxUtils.write(p,e);e=document.createElement("div");e.className="geTitle";e.style.backgroundColor="transparent";e.style.borderColor="transparent";e.style.whiteSpace="nowrap";e.style.textOverflow="clip";e.style.cursor="default";mxClient.IS_VML||(e.style.paddingRight="20px");var n=document.createElement("input"); n.setAttribute("value",d);n.setAttribute("type","text");n.setAttribute("spellcheck","false");n.setAttribute("autocorrect","off");n.setAttribute("autocomplete","off");n.setAttribute("autocapitalize","off");n.style.marginTop="6px";n.style.width=(Graph.fileSupport?420:340)+(mxClient.IS_QUIRKS?20:-20)+"px";n.style.backgroundImage="url('"+Dialog.prototype.clearImage+"')";n.style.backgroundRepeat="no-repeat";n.style.backgroundPosition="100% 50%";n.style.paddingRight="14px";d=document.createElement("div"); -d.setAttribute("title",mxResources.get("reset"));d.style.position="relative";d.style.left="-16px";d.style.width="12px";d.style.height="14px";d.style.cursor="pointer";d.style.display=mxClient.IS_VML?"inline":"inline-block";d.style.top=(mxClient.IS_VML?0:3)+"px";d.style.background="url('"+a.editor.transparentImage+"')";mxEvent.addListener(d,"click",function(){n.value="";n.focus()});e.appendChild(n);e.appendChild(d);p.appendChild(e);var b=function(b,f,h,d){var e="data:"==b.substring(0,5);!a.isOffline()|| -e&&"undefined"===typeof chrome?0<b.length&&a.spinner.spin(document.body,mxResources.get("inserting"))?a.loadImage(b,function(m){a.spinner.stop();a.hideDialog();var v=!1===d?1:null!=f&&null!=h?Math.max(f/m.width,h/m.height):Math.min(1,Math.min(520/m.width,520/m.height));k&&(b=a.convertDataUri(b));c(b,Math.round(Number(m.width)*v),Math.round(Number(m.height)*v))},function(){a.spinner.stop();c(null);a.showError(mxResources.get("error"),mxResources.get("fileNotFound"),mxResources.get("ok"))}):(a.hideDialog(), +d.setAttribute("title",mxResources.get("reset"));d.style.position="relative";d.style.left="-16px";d.style.width="12px";d.style.height="14px";d.style.cursor="pointer";d.style.display=mxClient.IS_VML?"inline":"inline-block";d.style.top=(mxClient.IS_VML?0:3)+"px";d.style.background="url('"+a.editor.transparentImage+"')";mxEvent.addListener(d,"click",function(){n.value="";n.focus()});e.appendChild(n);e.appendChild(d);p.appendChild(e);var b=function(b,f,h,d){var q="data:"==b.substring(0,5);!a.isOffline()|| +q&&"undefined"===typeof chrome?0<b.length&&a.spinner.spin(document.body,mxResources.get("inserting"))?a.loadImage(b,function(m){a.spinner.stop();a.hideDialog();var v=!1===d?1:null!=f&&null!=h?Math.max(f/m.width,h/m.height):Math.min(1,Math.min(520/m.width,520/m.height));k&&(b=a.convertDataUri(b));c(b,Math.round(Number(m.width)*v),Math.round(Number(m.height)*v))},function(){a.spinner.stop();c(null);a.showError(mxResources.get("error"),mxResources.get("fileNotFound"),mxResources.get("ok"))}):(a.hideDialog(), c(b)):(b=a.convertDataUri(b),f=null==f?120:f,h=null==h?100:h,a.hideDialog(),c(b,f,h))},f=function(f,h){if(null!=f){var d=g?null:l.getModel().getGeometry(l.getSelectionCell());null!=d?b(f,d.width,d.height,h):b(f,null,null,h)}else a.hideDialog(),c(null)};this.init=function(){n.focus();if(Graph.fileSupport){n.setAttribute("placeholder",mxResources.get("dragImagesHere"));var b=p.parentNode,c=null;mxEvent.addListener(b,"dragleave",function(a){null!=c&&(c.parentNode.removeChild(c),c=null);a.stopPropagation(); -a.preventDefault()});mxEvent.addListener(b,"dragover",mxUtils.bind(this,function(f){null==c&&(!mxClient.IS_IE||10<document.documentMode)&&(c=a.highlightElement(b));f.stopPropagation();f.preventDefault()}));mxEvent.addListener(b,"drop",mxUtils.bind(this,function(b){null!=c&&(c.parentNode.removeChild(c),c=null);if(0<b.dataTransfer.files.length)a.importFiles(b.dataTransfer.files,0,0,a.maxImageSize,function(a,b,c,h,d,e,q,t){f(a,t)},function(){},function(a){return"image/"==a.type.substring(0,6)},function(a){for(var b= +a.preventDefault()});mxEvent.addListener(b,"dragover",mxUtils.bind(this,function(f){null==c&&(!mxClient.IS_IE||10<document.documentMode)&&(c=a.highlightElement(b));f.stopPropagation();f.preventDefault()}));mxEvent.addListener(b,"drop",mxUtils.bind(this,function(b){null!=c&&(c.parentNode.removeChild(c),c=null);if(0<b.dataTransfer.files.length)a.importFiles(b.dataTransfer.files,0,0,a.maxImageSize,function(a,b,c,h,d,q,e,t){f(a,t)},function(){},function(a){return"image/"==a.type.substring(0,6)},function(a){for(var b= 0;b<a.length;b++)a[b]()},!mxEvent.isControlDown(b));else if(0<=mxUtils.indexOf(b.dataTransfer.types,"text/uri-list")){var h=b.dataTransfer.getData("text/uri-list");/\.(gif|jpg|jpeg|tiff|png|svg)($|\?)/i.test(h)&&f(decodeURIComponent(h))}b.stopPropagation();b.preventDefault()}),!1)}};d=document.createElement("div");d.style.marginTop=mxClient.IS_QUIRKS?"22px":"14px";d.style.textAlign="right";e=mxUtils.button(mxResources.get("cancel"),function(){a.spinner.stop();a.hideDialog()});e.className="geBtn"; a.editor.cancelFirst&&d.appendChild(e);ImageDialog.filePicked=function(a){a.action==google.picker.Action.PICKED&&null!=a.docs[0].thumbnails&&(a=a.docs[0].thumbnails[a.docs[0].thumbnails.length-1],null!=a&&(n.value=a.url));n.focus()};if(Graph.fileSupport){var h=document.createElement("input");h.setAttribute("multiple","multiple");h.setAttribute("type","file");if(null==document.documentMode){mxEvent.addListener(h,"change",function(b){a.importFiles(h.files,0,0,a.maxImageSize,function(a,b,c,h,m,v){f(a)}, function(){},function(a){return"image/"==a.type.substring(0,6)},function(a){for(var b=0;b<a.length;b++)a[b]()},!0)});var t=mxUtils.button(mxResources.get("open"),function(){h.click()});t.className="geBtn";d.appendChild(t)}}document.createElement("canvas").getContext&&"data:image/"==n.value.substring(0,11)&&"data:image/svg"!=n.value.substring(0,14)&&(t=mxUtils.button(mxResources.get("crop"),function(){var b=new CropImageDialog(a,n.value,function(a){n.value=a});a.showDialog(b.container,200,185,!0,!0); @@ -7310,21 +7312,21 @@ b.init()}),t.className="geBtn",d.appendChild(t));"undefined"!=typeof google&&"un "geBtn",d.appendChild(t),null!=a.drive&&"1"==urlParams.photos&&(t=mxUtils.button(mxResources.get("googlePlus"),function(){a.spinner.spin(document.body,mxResources.get("authorizing"))&&a.drive.checkToken(mxUtils.bind(this,function(){a.spinner.stop();if(null==a.photoPicker){var b=gapi.auth.getToken().access_token,b=(new google.picker.PickerBuilder).setAppId(a.drive.appId).setLocale(mxLanguage).setOAuthToken(b).addView(google.picker.ViewId.PHOTOS).addView(google.picker.ViewId.PHOTO_ALBUMS).addView(google.picker.ViewId.PHOTO_UPLOAD); a.photoPicker=b.setCallback(function(a){ImageDialog.filePicked(a)}).build()}a.photoPicker.setVisible(!0)}))}),t.className="geBtn",d.appendChild(t)));mxEvent.addListener(n,"keypress",function(a){13==a.keyCode&&f(n.value)});t=mxUtils.button(mxResources.get("apply"),function(){f(n.value)});t.className="geBtn gePrimaryBtn";d.appendChild(t);a.editor.cancelFirst||d.appendChild(e);Graph.fileSupport&&(d.style.marginTop="120px",p.style.backgroundImage="url('"+IMAGE_PATH+"/droptarget.png')",p.style.backgroundPosition= "center 65%",p.style.backgroundRepeat="no-repeat",e=document.createElement("div"),e.style.position="absolute",e.style.width="420px",e.style.top="58%",e.style.textAlign="center",e.style.fontSize="18px",e.style.color="#a0c3ff",mxUtils.write(e,mxResources.get("dragImagesHere")),p.appendChild(e));p.appendChild(d);this.container=p},LinkDialog=function(a,e,d,c,g){function k(a,b,f){f=mxUtils.button("",f);f.className="geBtn";f.setAttribute("title",b);b=document.createElement("img");b.style.height="26px"; -b.style.width="26px";b.setAttribute("src",a);f.style.minWidth="42px";f.style.verticalAlign="middle";f.appendChild(b);z.appendChild(f)}var l=document.createElement("div");mxUtils.write(l,mxResources.get("editLink")+":");var p=document.createElement("div");p.className="geTitle";p.style.backgroundColor="transparent";p.style.borderColor="transparent";p.style.whiteSpace="nowrap";p.style.textOverflow="clip";p.style.cursor="default";mxClient.IS_VML||(p.style.paddingRight="20px");var n=document.createElement("input"); +b.style.width="26px";b.setAttribute("src",a);f.style.minWidth="42px";f.style.verticalAlign="middle";f.appendChild(b);y.appendChild(f)}var l=document.createElement("div");mxUtils.write(l,mxResources.get("editLink")+":");var p=document.createElement("div");p.className="geTitle";p.style.backgroundColor="transparent";p.style.borderColor="transparent";p.style.whiteSpace="nowrap";p.style.textOverflow="clip";p.style.cursor="default";mxClient.IS_VML||(p.style.paddingRight="20px");var n=document.createElement("input"); n.setAttribute("placeholder",mxResources.get("dragUrlsHere"));n.setAttribute("type","text");n.style.marginTop="6px";n.style.width="440px";n.style.backgroundImage="url('"+Dialog.prototype.clearImage+"')";n.style.backgroundRepeat="no-repeat";n.style.backgroundPosition="100% 50%";n.style.paddingRight="14px";var b=document.createElement("div");b.setAttribute("title",mxResources.get("reset"));b.style.position="relative";b.style.left="-16px";b.style.width="12px";b.style.height="14px";b.style.cursor="pointer"; b.style.display=mxClient.IS_VML?"inline":"inline-block";b.style.top=(mxClient.IS_VML?0:3)+"px";b.style.background="url('"+a.editor.transparentImage+"')";mxEvent.addListener(b,"click",function(){n.value="";n.focus()});var f=document.createElement("input");f.style.cssText="margin-right:8px;margin-bottom:8px;";f.setAttribute("value","url");f.setAttribute("type","radio");f.setAttribute("name","current-linkdialog");var h=document.createElement("input");h.style.cssText="margin-right:8px;margin-bottom:8px;"; h.setAttribute("value","url");h.setAttribute("type","radio");h.setAttribute("name","current-linkdialog");var t=document.createElement("select");t.style.width="420px";if(g&&null!=a.pages){null!=e&&"data:page/id,"==e.substring(0,13)?(h.setAttribute("checked","checked"),h.defaultChecked=!0):(n.setAttribute("value",e),f.setAttribute("checked","checked"),f.defaultChecked=!0);n.style.width="420px";p.appendChild(f);p.appendChild(n);p.appendChild(b);mxUtils.br(p);p.appendChild(h);g=!1;for(b=0;b<a.pages.length;b++){var q= document.createElement("option");mxUtils.write(q,a.pages[b].getName()||mxResources.get("pageWithNumber",[b+1]));q.setAttribute("value","data:page/id,"+a.pages[b].getId());e==q.getAttribute("value")&&(q.setAttribute("selected","selected"),g=!0);t.appendChild(q)}if(!g&&h.checked){var u=document.createElement("option");mxUtils.write(u,mxResources.get("pageNotFound"));u.setAttribute("disabled","disabled");u.setAttribute("selected","selected");u.setAttribute("value","pageNotFound");t.appendChild(u);mxEvent.addListener(t, "change",function(){null==u.parentNode||u.selected||u.parentNode.removeChild(u)})}p.appendChild(t)}else n.setAttribute("value",e),p.appendChild(n),p.appendChild(b);l.appendChild(p);var w=mxUtils.button(d,function(){a.hideDialog();c(h.checked?"pageNotFound"!==t.value?t.value:e:n.value,LinkDialog.selectedDocs)});w.style.verticalAlign="middle";w.className="geBtn gePrimaryBtn";this.init=function(){h.checked?t.focus():(n.focus(),mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode||mxClient.IS_QUIRKS? n.select():document.execCommand("selectAll",!1,null));mxEvent.addListener(t,"focus",function(){f.removeAttribute("checked");h.setAttribute("checked","checked");h.checked=!0});mxEvent.addListener(n,"focus",function(){h.removeAttribute("checked");f.setAttribute("checked","checked");f.checked=!0});if(Graph.fileSupport){var b=l.parentNode,c=null;mxEvent.addListener(b,"dragleave",function(a){null!=c&&(c.parentNode.removeChild(c),c=null);a.stopPropagation();a.preventDefault()});mxEvent.addListener(b,"dragover", -mxUtils.bind(this,function(f){null==c&&(!mxClient.IS_IE||10<document.documentMode)&&(c=a.highlightElement(b));f.stopPropagation();f.preventDefault()}));mxEvent.addListener(b,"drop",mxUtils.bind(this,function(a){null!=c&&(c.parentNode.removeChild(c),c=null);0<=mxUtils.indexOf(a.dataTransfer.types,"text/uri-list")&&(n.value=decodeURIComponent(a.dataTransfer.getData("text/uri-list")),f.setAttribute("checked","checked"),f.checked=!0,w.click());a.stopPropagation();a.preventDefault()}),!1)}};var z=document.createElement("div"); -z.style.marginTop="20px";z.style.textAlign="right";d=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});d.style.verticalAlign="middle";d.className="geBtn";a.editor.cancelFirst&&z.appendChild(d);p=mxUtils.button(mxResources.get("help"),function(){a.openLink("https://desk.draw.io/solution/articles/16000080137")});p.style.verticalAlign="middle";p.className="geBtn";z.appendChild(p);a.isOffline()&&!mxClient.IS_CHROMEAPP&&(p.style.display="none");LinkDialog.selectedDocs=null;LinkDialog.filePicked= +mxUtils.bind(this,function(f){null==c&&(!mxClient.IS_IE||10<document.documentMode)&&(c=a.highlightElement(b));f.stopPropagation();f.preventDefault()}));mxEvent.addListener(b,"drop",mxUtils.bind(this,function(a){null!=c&&(c.parentNode.removeChild(c),c=null);0<=mxUtils.indexOf(a.dataTransfer.types,"text/uri-list")&&(n.value=decodeURIComponent(a.dataTransfer.getData("text/uri-list")),f.setAttribute("checked","checked"),f.checked=!0,w.click());a.stopPropagation();a.preventDefault()}),!1)}};var y=document.createElement("div"); +y.style.marginTop="20px";y.style.textAlign="right";d=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});d.style.verticalAlign="middle";d.className="geBtn";a.editor.cancelFirst&&y.appendChild(d);p=mxUtils.button(mxResources.get("help"),function(){a.openLink("https://desk.draw.io/solution/articles/16000080137")});p.style.verticalAlign="middle";p.className="geBtn";y.appendChild(p);a.isOffline()&&!mxClient.IS_CHROMEAPP&&(p.style.display="none");LinkDialog.selectedDocs=null;LinkDialog.filePicked= function(a){if(a.action==google.picker.Action.PICKED){LinkDialog.selectedDocs=a.docs;var b=a.docs[0].url;"application/mxe"==a.docs[0].mimeType||"application/vnd.jgraph.mxfile"==a.docs[0].mimeType?(b=DriveClient.prototype.oldAppHostname,b="https://"+b+"/#G"+a.docs[0].id):"application/mxr"==a.docs[0].mimeType||"application/vnd.jgraph.mxfile.realtime"==a.docs[0].mimeType?(b=DriveClient.prototype.newAppHostname,b="https://"+b+"/#G"+a.docs[0].id):"application/vnd.google-apps.folder"==a.docs[0].mimeType&& (b="https://drive.google.com/#folders/"+a.docs[0].id);n.value=b;n.focus()}else LinkDialog.selectedDocs=null;n.focus()};"undefined"!=typeof google&&"undefined"!=typeof google.picker&&null!=a.drive&&k(IMAGE_PATH+"/google-drive-logo.svg",mxResources.get("googlePlus"),function(){a.spinner.spin(document.body,mxResources.get("authorizing"))&&a.drive.checkToken(mxUtils.bind(this,function(){a.spinner.stop();if(null==a.linkPicker){var b=gapi.auth.getToken().access_token,f=(new google.picker.DocsView(google.picker.ViewId.FOLDERS)).setParent("root").setIncludeFolders(!0).setSelectFolderEnabled(!0), c=(new google.picker.DocsView).setIncludeFolders(!0).setSelectFolderEnabled(!0),h=(new google.picker.DocsView).setIncludeFolders(!0).setEnableTeamDrives(!0).setSelectFolderEnabled(!0),b=(new google.picker.PickerBuilder).setAppId(a.drive.appId).setLocale(mxLanguage).setOAuthToken(b).enableFeature(google.picker.Feature.SUPPORT_TEAM_DRIVES).addView(f).addView(c).addView(h).addView(google.picker.ViewId.RECENTLY_PICKED).addView(google.picker.ViewId.IMAGE_SEARCH).addView(google.picker.ViewId.VIDEO_SEARCH).addView(google.picker.ViewId.MAPS); "1"==urlParams.photos&&b.addView(google.picker.ViewId.PHOTOS).addView(google.picker.ViewId.PHOTO_ALBUMS).addView(google.picker.ViewId.PHOTO_UPLOAD);a.linkPicker=b.setCallback(function(a){LinkDialog.filePicked(a)}).build()}a.linkPicker.setVisible(!0)}))});"undefined"!=typeof Dropbox&&"undefined"!=typeof Dropbox.choose&&k(IMAGE_PATH+"/dropbox-logo.svg",mxResources.get("dropbox"),function(){Dropbox.choose({linkType:"direct",cancel:function(){},success:function(a){n.value=a[0].link;n.focus()}})});null!= a.oneDrive&&k(IMAGE_PATH+"/onedrive-logo.svg",mxResources.get("oneDrive"),function(){a.oneDrive.pickFile(function(a,b){n.value=b.value[0].webUrl;n.focus()})});null!=a.gitHub&&k(IMAGE_PATH+"/github-logo.svg",mxResources.get("github"),function(){a.gitHub.pickFile(function(a){if(null!=a){a=a.split("/");var b=a[0],f=a[1],c=a[2];a=a.slice(3,a.length).join("/");n.value="https://github.com/"+b+"/"+f+"/blob/"+c+"/"+a;n.focus()}})});mxEvent.addListener(n,"keypress",function(b){13==b.keyCode&&(a.hideDialog(), -c(h.checked?t.value:n.value,LinkDialog.selectedDocs))});z.appendChild(w);a.editor.cancelFirst||z.appendChild(d);l.appendChild(z);this.container=l},AboutDialog=function(a){var e=document.createElement("div");e.style.marginTop="6px";e.setAttribute("align","center");var d=document.createElement("img");d.style.border="0px";mxClient.IS_SVG?(d.setAttribute("width","164"),d.setAttribute("height","221"),d.style.width="164px",d.style.height="221px",d.setAttribute("src",IMAGE_PATH+"/drawlogo-text-bottom.svg")): +c(h.checked?t.value:n.value,LinkDialog.selectedDocs))});y.appendChild(w);a.editor.cancelFirst||y.appendChild(d);l.appendChild(y);this.container=l},AboutDialog=function(a){var e=document.createElement("div");e.style.marginTop="6px";e.setAttribute("align","center");var d=document.createElement("img");d.style.border="0px";mxClient.IS_SVG?(d.setAttribute("width","164"),d.setAttribute("height","221"),d.style.width="164px",d.style.height="221px",d.setAttribute("src",IMAGE_PATH+"/drawlogo-text-bottom.svg")): (d.setAttribute("width","176"),d.setAttribute("height","219"),d.style.width="170px",d.style.height="219px",d.setAttribute("src",IMAGE_PATH+"/logo-flat.png"));e.appendChild(d);mxUtils.br(e);d=document.createElement("small");d.innerHTML="v "+EditorUi.VERSION;d.style.color="#505050";e.appendChild(d);mxUtils.br(e);mxUtils.br(e);d=document.createElement("small");d.style.color="#505050";d.innerHTML='© 2005-2018 <a href="https://about.draw.io/" style="color:inherit;" target="_blank">JGraph Ltd</a>.<br>All Rights Reserved.'; e.appendChild(d);mxEvent.addListener(e,"click",function(c){"A"!=mxEvent.getSource(c).nodeName&&a.hideDialog()});this.container=e},FeedbackDialog=function(a){var e=document.createElement("div"),d=document.createElement("div");mxUtils.write(d,mxResources.get("sendYourFeedbackToDrawIo"));d.style.fontSize="18px";d.style.marginBottom="18px";e.appendChild(d);d=document.createElement("div");mxUtils.write(d,mxResources.get("yourEmailAddress")+" ("+mxResources.get("required")+")");e.appendChild(d);var c=document.createElement("input"); c.setAttribute("type","text");c.style.marginTop="6px";c.style.width="600px";var g=mxUtils.button(mxResources.get("sendMessage"),function(){var b=(l.checked?"\nDiagram:\n"+a.getFileData():"")+"\nBrowser:\n"+navigator.userAgent;b.length>FeedbackDialog.maxAttachmentSize?a.alert(mxResources.get("drawingTooLarge")):(a.hideDialog(),a.spinner.spin(document.body)&&mxUtils.post(null!=FeedbackDialog.feedbackUrl?FeedbackDialog.feedbackUrl:"/email","email="+encodeURIComponent(c.value)+"&version="+encodeURIComponent(EditorUi.VERSION)+ @@ -7334,36 +7336,36 @@ mxEvent.addListener(c,"change",function(){0<c.value.length&&0<k.test(c.value)?g. e.appendChild(n);d=document.createElement("div");d.style.marginTop="26px";d.style.textAlign="right";p=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});p.className="geBtn";a.editor.cancelFirst?(d.appendChild(p),d.appendChild(g)):(d.appendChild(g),d.appendChild(p));e.appendChild(d);this.container=e};FeedbackDialog.maxAttachmentSize=1E6; var RevisionDialog=function(a,e,d){var c=document.createElement("div"),g=document.createElement("h3");g.style.marginTop="0px";mxUtils.write(g,mxResources.get("revisionHistory"));c.appendChild(g);var k=document.createElement("div");k.style.position="absolute";k.style.overflow="auto";k.style.width="170px";k.style.height="378px";c.appendChild(k);var l=document.createElement("div");l.style.position="absolute";l.style.border="1px solid lightGray";l.style.left="199px";l.style.width="470px";l.style.height= "376px";l.style.overflow="hidden";mxEvent.disableContextMenu(l);c.appendChild(l);var p=new Graph(l);p.setEnabled(!1);p.setPanning(!0);p.panningHandler.ignoreCell=!0;p.panningHandler.useLeftButtonForPanning=!0;p.minFitScale=null;p.maxFitScale=null;p.centerZoom=!0;var n=0,b=null,f=0,h=p.getGlobalVariable;p.getGlobalVariable=function(a){return"page"==a&&null!=b&&null!=b[f]?b[f].getAttribute("name"):"pagenumber"==a?f+1:h.apply(this,arguments)};p.getLinkForCell=function(){return null};Editor.MathJaxRender&& -p.addListener(mxEvent.SIZE,mxUtils.bind(this,function(b,f){a.editor.graph.mathEnabled&&Editor.MathJaxRender(p.container)}));var t=new Spinner({lines:11,length:15,width:6,radius:10,corners:1,rotate:0,direction:1,color:"#000",speed:1.4,trail:60,shadow:!1,hwaccel:!1,className:"spinner",zIndex:2E9,top:"50%",left:"50%"}),q=a.getCurrentFile(),u=null,w=null,z=null,A=null,m=mxUtils.button("",function(){null!=z&&p.zoomIn()});m.className="geSprite geSprite-zoomin";m.setAttribute("title",mxResources.get("zoomIn")); -m.style.outline="none";m.style.border="none";m.style.margin="2px";m.setAttribute("disabled","disabled");mxUtils.setOpacity(m,20);var v=mxUtils.button("",function(){null!=z&&p.zoomOut()});v.className="geSprite geSprite-zoomout";v.setAttribute("title",mxResources.get("zoomOut"));v.style.outline="none";v.style.border="none";v.style.margin="2px";v.setAttribute("disabled","disabled");mxUtils.setOpacity(v,20);var x=mxUtils.button("",function(){null!=z&&(p.maxFitScale=8,p.fit(8),p.center())});x.className= -"geSprite geSprite-fit";x.setAttribute("title",mxResources.get("fit"));x.style.outline="none";x.style.border="none";x.style.margin="2px";x.setAttribute("disabled","disabled");mxUtils.setOpacity(x,20);var C=mxUtils.button("",function(){null!=z&&(p.zoomActual(),p.center())});C.className="geSprite geSprite-actualsize";C.setAttribute("title",mxResources.get("actualSize"));C.style.outline="none";C.style.border="none";C.style.margin="2px";C.setAttribute("disabled","disabled");mxUtils.setOpacity(C,20);var B= -document.createElement("div");B.style.position="absolute";B.style.textAlign="right";B.style.color="gray";B.style.marginTop="10px";B.style.backgroundColor="transparent";B.style.top="440px";B.style.right="32px";B.style.maxWidth="380px";B.style.cursor="default";var H=mxUtils.button(mxResources.get("download"),function(){if(null!=z){var b=a.getCurrentFile(),b=null!=b&&null!=b.getTitle()?b.getTitle():a.defaultFilename,f=mxUtils.getXml(z.documentElement);a.isLocalFileSave()?a.saveLocalFile(f,b,"text/xml"): -(f="undefined"===typeof pako?"&xml="+encodeURIComponent(f):"&data="+encodeURIComponent(a.editor.graph.compress(f)),(new mxXmlRequest(SAVE_URL,"filename="+encodeURIComponent(b)+"&format=xml"+f)).simulate(document,"_blank"))}});H.className="geBtn";H.setAttribute("disabled","disabled");var E=mxUtils.button(mxResources.get("restore"),function(){null!=z&&null!=A&&a.confirm(mxResources.get("areYouSure"),function(){null!=d?d(A):a.spinner.spin(document.body,mxResources.get("restoring"))&&q.save(!0,function(b){a.spinner.stop(); -a.replaceFileData(A);a.hideDialog()},function(b){a.spinner.stop();a.editor.setStatus("");a.handleError(b,null!=b?mxResources.get("errorSavingFile"):null)})})});E.className="geBtn";E.setAttribute("disabled","disabled");var F=document.createElement("select");F.setAttribute("disabled","disabled");F.style.maxWidth="80px";F.style.position="relative";F.style.top="-2px";F.style.verticalAlign="bottom";F.style.marginRight="6px";F.style.display="none";var L=null;mxEvent.addListener(F,"change",function(a){null!= -L&&(L(a),mxEvent.consume(a))});var y=mxUtils.button(mxResources.get("openInNewWindow"),function(){null!=z&&(window.openFile=new OpenFile(function(){window.openFile=null}),window.openFile.setData(mxUtils.getXml(z.documentElement)),window.openWindow(a.getUrl()))});y.className="geBtn";y.setAttribute("disabled","disabled");null!=d&&(y.style.display="none");var D=mxUtils.button(mxResources.get("show"),function(){null!=w&&a.openLink(w.getUrl())});D.className="geBtn gePrimaryBtn";D.setAttribute("disabled", -"disabled");null!=d&&(D.style.display="none",E.className="geBtn gePrimaryBtn");g=document.createElement("div");g.style.position="absolute";g.style.top="482px";g.style.width="640px";g.style.textAlign="right";var G=document.createElement("div");G.className="geToolbarContainer";G.style.backgroundColor="transparent";G.style.padding="2px";G.style.border="none";G.style.left="199px";G.style.top="442px";var M=null;if(null!=e&&0<e.length){l.style.cursor="move";var J=document.createElement("table");J.style.border= +p.addListener(mxEvent.SIZE,mxUtils.bind(this,function(b,f){a.editor.graph.mathEnabled&&Editor.MathJaxRender(p.container)}));var t=new Spinner({lines:11,length:15,width:6,radius:10,corners:1,rotate:0,direction:1,color:"#000",speed:1.4,trail:60,shadow:!1,hwaccel:!1,className:"spinner",zIndex:2E9,top:"50%",left:"50%"}),q=a.getCurrentFile(),u=null,w=null,y=null,A=null,m=mxUtils.button("",function(){null!=y&&p.zoomIn()});m.className="geSprite geSprite-zoomin";m.setAttribute("title",mxResources.get("zoomIn")); +m.style.outline="none";m.style.border="none";m.style.margin="2px";m.setAttribute("disabled","disabled");mxUtils.setOpacity(m,20);var v=mxUtils.button("",function(){null!=y&&p.zoomOut()});v.className="geSprite geSprite-zoomout";v.setAttribute("title",mxResources.get("zoomOut"));v.style.outline="none";v.style.border="none";v.style.margin="2px";v.setAttribute("disabled","disabled");mxUtils.setOpacity(v,20);var x=mxUtils.button("",function(){null!=y&&(p.maxFitScale=8,p.fit(8),p.center())});x.className= +"geSprite geSprite-fit";x.setAttribute("title",mxResources.get("fit"));x.style.outline="none";x.style.border="none";x.style.margin="2px";x.setAttribute("disabled","disabled");mxUtils.setOpacity(x,20);var C=mxUtils.button("",function(){null!=y&&(p.zoomActual(),p.center())});C.className="geSprite geSprite-actualsize";C.setAttribute("title",mxResources.get("actualSize"));C.style.outline="none";C.style.border="none";C.style.margin="2px";C.setAttribute("disabled","disabled");mxUtils.setOpacity(C,20);var B= +document.createElement("div");B.style.position="absolute";B.style.textAlign="right";B.style.color="gray";B.style.marginTop="10px";B.style.backgroundColor="transparent";B.style.top="440px";B.style.right="32px";B.style.maxWidth="380px";B.style.cursor="default";var F=mxUtils.button(mxResources.get("download"),function(){if(null!=y){var b=a.getCurrentFile(),b=null!=b&&null!=b.getTitle()?b.getTitle():a.defaultFilename,f=mxUtils.getXml(y.documentElement);a.isLocalFileSave()?a.saveLocalFile(f,b,"text/xml"): +(f="undefined"===typeof pako?"&xml="+encodeURIComponent(f):"&data="+encodeURIComponent(a.editor.graph.compress(f)),(new mxXmlRequest(SAVE_URL,"filename="+encodeURIComponent(b)+"&format=xml"+f)).simulate(document,"_blank"))}});F.className="geBtn";F.setAttribute("disabled","disabled");var E=mxUtils.button(mxResources.get("restore"),function(){null!=y&&null!=A&&a.confirm(mxResources.get("areYouSure"),function(){null!=d?d(A):a.spinner.spin(document.body,mxResources.get("restoring"))&&q.save(!0,function(b){a.spinner.stop(); +a.replaceFileData(A);a.hideDialog()},function(b){a.spinner.stop();a.editor.setStatus("");a.handleError(b,null!=b?mxResources.get("errorSavingFile"):null)})})});E.className="geBtn";E.setAttribute("disabled","disabled");var G=document.createElement("select");G.setAttribute("disabled","disabled");G.style.maxWidth="80px";G.style.position="relative";G.style.top="-2px";G.style.verticalAlign="bottom";G.style.marginRight="6px";G.style.display="none";var L=null;mxEvent.addListener(G,"change",function(a){null!= +L&&(L(a),mxEvent.consume(a))});var z=mxUtils.button(mxResources.get("openInNewWindow"),function(){null!=y&&(window.openFile=new OpenFile(function(){window.openFile=null}),window.openFile.setData(mxUtils.getXml(y.documentElement)),window.openWindow(a.getUrl()))});z.className="geBtn";z.setAttribute("disabled","disabled");null!=d&&(z.style.display="none");var D=mxUtils.button(mxResources.get("show"),function(){null!=w&&a.openLink(w.getUrl())});D.className="geBtn gePrimaryBtn";D.setAttribute("disabled", +"disabled");null!=d&&(D.style.display="none",E.className="geBtn gePrimaryBtn");g=document.createElement("div");g.style.position="absolute";g.style.top="482px";g.style.width="640px";g.style.textAlign="right";var H=document.createElement("div");H.className="geToolbarContainer";H.style.backgroundColor="transparent";H.style.padding="2px";H.style.border="none";H.style.left="199px";H.style.top="442px";var M=null;if(null!=e&&0<e.length){l.style.cursor="move";var J=document.createElement("table");J.style.border= "1px solid lightGray";J.style.borderCollapse="collapse";J.style.borderSpacing="0px";J.style.width="100%";var T=document.createElement("tbody"),P=(new Date).toDateString();null!=a.currentPage&&null!=a.pages&&(n=mxUtils.indexOf(a.pages,a.currentPage));for(var S=e.length-1;0<=S;S--){var aa=function(c){var h=new Date(c.modifiedDate),d=null;if(0<=h.getTime()){var g=function(c){t.stop();var e=mxUtils.parseXml(c),u=a.editor.extractGraphModel(e.documentElement,!0);if(null!=u){var w=function(b){null!=b&&(b= -g(mxUtils.parseXml(a.editor.graph.decompress(mxUtils.getTextContent(b))).documentElement));return b},g=function(a){var b=a.getAttribute("background");if(null==b||""==b||b==mxConstants.NONE)b="#ffffff";l.style.backgroundColor=b;(new mxCodec(a.ownerDocument)).decode(a,p.getModel());p.maxFitScale=1;p.fit(8);p.center();return a};F.style.display="none";F.innerHTML="";z=e;A=c;b=parseSelectFunction=null;f=0;if("mxfile"==u.nodeName){e=u.getElementsByTagName("diagram");b=[];for(c=0;c<e.length;c++)b.push(e[c]); -f=Math.min(n,b.length-1);0<b.length&&w(b[f]);if(1<b.length)for(F.removeAttribute("disabled"),F.style.display="",c=0;c<b.length;c++)e=document.createElement("option"),mxUtils.write(e,b[c].getAttribute("name")||mxResources.get("pageWithNumber",[c+1])),e.setAttribute("value",c),c==f&&e.setAttribute("selected","selected"),F.appendChild(e);L=function(){f=n=parseInt(F.value);w(b[n])}}else g(u);B.innerHTML="";mxUtils.write(B,h.toLocaleDateString()+" "+h.toLocaleTimeString());B.setAttribute("title",d.getAttribute("title")); -m.removeAttribute("disabled");v.removeAttribute("disabled");x.removeAttribute("disabled");C.removeAttribute("disabled");null!=q&&q.isRestricted()||(a.editor.graph.isEnabled()&&E.removeAttribute("disabled"),H.removeAttribute("disabled"),D.removeAttribute("disabled"),y.removeAttribute("disabled"));mxUtils.setOpacity(m,60);mxUtils.setOpacity(v,60);mxUtils.setOpacity(x,60);mxUtils.setOpacity(C,60)}else F.style.display="none",F.innerHTML="",B.innerHTML="",mxUtils.write(B,mxResources.get("errorLoadingFile"))}, +g(mxUtils.parseXml(a.editor.graph.decompress(mxUtils.getTextContent(b))).documentElement));return b},g=function(a){var b=a.getAttribute("background");if(null==b||""==b||b==mxConstants.NONE)b="#ffffff";l.style.backgroundColor=b;(new mxCodec(a.ownerDocument)).decode(a,p.getModel());p.maxFitScale=1;p.fit(8);p.center();return a};G.style.display="none";G.innerHTML="";y=e;A=c;b=parseSelectFunction=null;f=0;if("mxfile"==u.nodeName){e=u.getElementsByTagName("diagram");b=[];for(c=0;c<e.length;c++)b.push(e[c]); +f=Math.min(n,b.length-1);0<b.length&&w(b[f]);if(1<b.length)for(G.removeAttribute("disabled"),G.style.display="",c=0;c<b.length;c++)e=document.createElement("option"),mxUtils.write(e,b[c].getAttribute("name")||mxResources.get("pageWithNumber",[c+1])),e.setAttribute("value",c),c==f&&e.setAttribute("selected","selected"),G.appendChild(e);L=function(){f=n=parseInt(G.value);w(b[n])}}else g(u);B.innerHTML="";mxUtils.write(B,h.toLocaleDateString()+" "+h.toLocaleTimeString());B.setAttribute("title",d.getAttribute("title")); +m.removeAttribute("disabled");v.removeAttribute("disabled");x.removeAttribute("disabled");C.removeAttribute("disabled");null!=q&&q.isRestricted()||(a.editor.graph.isEnabled()&&E.removeAttribute("disabled"),F.removeAttribute("disabled"),D.removeAttribute("disabled"),z.removeAttribute("disabled"));mxUtils.setOpacity(m,60);mxUtils.setOpacity(v,60);mxUtils.setOpacity(x,60);mxUtils.setOpacity(C,60)}else G.style.display="none",G.innerHTML="",B.innerHTML="",mxUtils.write(B,mxResources.get("errorLoadingFile"))}, d=document.createElement("tr");d.style.borderBottom="1px solid lightGray";d.style.fontSize="12px";d.style.cursor="pointer";var k=document.createElement("td");k.style.padding="6px";k.style.whiteSpace="nowrap";c==e[e.length-1]?mxUtils.write(k,mxResources.get("current")):h.toDateString()===P?mxUtils.write(k,h.toLocaleTimeString()):mxUtils.write(k,h.toLocaleDateString()+" "+h.toLocaleTimeString());d.appendChild(k);d.setAttribute("title",h.toLocaleDateString()+" "+h.toLocaleTimeString()+" "+a.formatFileSize(parseInt(c.fileSize))+ -(null!=c.lastModifyingUserName?" "+c.lastModifyingUserName:""));mxEvent.addListener(d,"click",function(a){w!=c&&(t.stop(),null!=u&&(u.style.backgroundColor=""),w=c,u=d,u.style.backgroundColor="#ebf2f9",A=z=null,B.removeAttribute("title"),B.innerHTML=mxResources.get("loading")+"...",l.style.backgroundColor="#ffffff",p.getModel().clear(),E.setAttribute("disabled","disabled"),H.setAttribute("disabled","disabled"),m.setAttribute("disabled","disabled"),v.setAttribute("disabled","disabled"),C.setAttribute("disabled", -"disabled"),x.setAttribute("disabled","disabled"),y.setAttribute("disabled","disabled"),D.setAttribute("disabled","disabled"),F.setAttribute("disabled","disabled"),mxUtils.setOpacity(m,20),mxUtils.setOpacity(v,20),mxUtils.setOpacity(x,20),mxUtils.setOpacity(C,20),t.spin(l),c.getXml(function(a){w==c&&g(a)},function(a){t.stop();F.style.display="none";F.innerHTML="";B.innerHTML="";mxUtils.write(B,mxResources.get("errorLoadingFile"))}),mxEvent.consume(a))});mxEvent.addListener(d,"dblclick",function(a){D.click(); -window.getSelection?window.getSelection().removeAllRanges():document.selection&&document.selection.empty();mxEvent.consume(a)},!1);T.appendChild(d)}return d}(e[S]);null!=aa&&S==e.length-1&&(M=aa)}J.appendChild(T);k.appendChild(J)}else null==q||null==a.drive&&q.constructor==window.DriveFile||null==a.dropbox&&q.constructor==window.DropboxFile?(l.style.display="none",G.style.display="none",mxUtils.write(k,mxResources.get("notAvailable"))):(l.style.display="none",G.style.display="none",mxUtils.write(k, -mxResources.get("noRevisions")));this.init=function(){null!=M&&M.click()};k=mxUtils.button(mxResources.get("close"),function(){a.hideDialog()});k.className="geBtn";G.appendChild(F);G.appendChild(m);G.appendChild(v);G.appendChild(C);G.appendChild(x);a.editor.cancelFirst?(g.appendChild(k),g.appendChild(H),g.appendChild(y),g.appendChild(E),g.appendChild(D)):(g.appendChild(H),g.appendChild(y),g.appendChild(E),g.appendChild(D),g.appendChild(k));c.appendChild(g);c.appendChild(G);c.appendChild(B);this.container= +(null!=c.lastModifyingUserName?" "+c.lastModifyingUserName:""));mxEvent.addListener(d,"click",function(a){w!=c&&(t.stop(),null!=u&&(u.style.backgroundColor=""),w=c,u=d,u.style.backgroundColor="#ebf2f9",A=y=null,B.removeAttribute("title"),B.innerHTML=mxResources.get("loading")+"...",l.style.backgroundColor="#ffffff",p.getModel().clear(),E.setAttribute("disabled","disabled"),F.setAttribute("disabled","disabled"),m.setAttribute("disabled","disabled"),v.setAttribute("disabled","disabled"),C.setAttribute("disabled", +"disabled"),x.setAttribute("disabled","disabled"),z.setAttribute("disabled","disabled"),D.setAttribute("disabled","disabled"),G.setAttribute("disabled","disabled"),mxUtils.setOpacity(m,20),mxUtils.setOpacity(v,20),mxUtils.setOpacity(x,20),mxUtils.setOpacity(C,20),t.spin(l),c.getXml(function(a){w==c&&g(a)},function(a){t.stop();G.style.display="none";G.innerHTML="";B.innerHTML="";mxUtils.write(B,mxResources.get("errorLoadingFile"))}),mxEvent.consume(a))});mxEvent.addListener(d,"dblclick",function(a){D.click(); +window.getSelection?window.getSelection().removeAllRanges():document.selection&&document.selection.empty();mxEvent.consume(a)},!1);T.appendChild(d)}return d}(e[S]);null!=aa&&S==e.length-1&&(M=aa)}J.appendChild(T);k.appendChild(J)}else null==q||null==a.drive&&q.constructor==window.DriveFile||null==a.dropbox&&q.constructor==window.DropboxFile?(l.style.display="none",H.style.display="none",mxUtils.write(k,mxResources.get("notAvailable"))):(l.style.display="none",H.style.display="none",mxUtils.write(k, +mxResources.get("noRevisions")));this.init=function(){null!=M&&M.click()};k=mxUtils.button(mxResources.get("close"),function(){a.hideDialog()});k.className="geBtn";H.appendChild(G);H.appendChild(m);H.appendChild(v);H.appendChild(C);H.appendChild(x);a.editor.cancelFirst?(g.appendChild(k),g.appendChild(F),g.appendChild(z),g.appendChild(E),g.appendChild(D)):(g.appendChild(F),g.appendChild(z),g.appendChild(E),g.appendChild(D),g.appendChild(k));c.appendChild(g);c.appendChild(H);c.appendChild(B);this.container= c},DraftDialog=function(a,e,d,c,g,k,l,p){var n=document.createElement("div"),b=document.createElement("div");b.style.marginTop="0px";b.style.whiteSpace="nowrap";b.style.overflow="auto";mxUtils.write(b,e);n.appendChild(b);var f=document.createElement("div");f.style.position="absolute";f.style.border="1px solid lightGray";f.style.marginTop="10px";f.style.width="640px";f.style.top="46px";f.style.bottom="74px";f.style.overflow="hidden";mxEvent.disableContextMenu(f);n.appendChild(f);var h=new Graph(f); h.setEnabled(!1);h.setPanning(!0);h.panningHandler.ignoreCell=!0;h.panningHandler.useLeftButtonForPanning=!0;h.minFitScale=null;h.maxFitScale=null;h.centerZoom=!0;e=mxUtils.parseXml(d);var t=a.editor.extractGraphModel(e.documentElement,!0),q=0,u=null,w=h.getGlobalVariable;h.getGlobalVariable=function(a){return"page"==a&&null!=u&&null!=u[q]?u[q].getAttribute("name"):"pagenumber"==a?q+1:w.apply(this,arguments)};h.getLinkForCell=function(){return null};e=mxUtils.button("",function(){h.zoomIn()});e.className= "geSprite geSprite-zoomin";e.setAttribute("title",mxResources.get("zoomIn"));e.style.outline="none";e.style.border="none";e.style.margin="2px";mxUtils.setOpacity(e,60);d=mxUtils.button("",function(){h.zoomOut()});d.className="geSprite geSprite-zoomout";d.setAttribute("title",mxResources.get("zoomOut"));d.style.outline="none";d.style.border="none";d.style.margin="2px";mxUtils.setOpacity(d,60);b=mxUtils.button("",function(){h.maxFitScale=8;h.fit(8);h.center()});b.className="geSprite geSprite-fit";b.setAttribute("title", -mxResources.get("fit"));b.style.outline="none";b.style.border="none";b.style.margin="2px";mxUtils.setOpacity(b,60);var z=mxUtils.button("",function(){h.zoomActual();h.center()});z.className="geSprite geSprite-actualsize";z.setAttribute("title",mxResources.get("actualSize"));z.style.outline="none";z.style.border="none";z.style.margin="2px";mxUtils.setOpacity(z,60);g=mxUtils.button(l||mxResources.get("discard"),g);g.className="geBtn";var A=document.createElement("select");A.style.maxWidth="80px";A.style.position= +mxResources.get("fit"));b.style.outline="none";b.style.border="none";b.style.margin="2px";mxUtils.setOpacity(b,60);var y=mxUtils.button("",function(){h.zoomActual();h.center()});y.className="geSprite geSprite-actualsize";y.setAttribute("title",mxResources.get("actualSize"));y.style.outline="none";y.style.border="none";y.style.margin="2px";mxUtils.setOpacity(y,60);g=mxUtils.button(l||mxResources.get("discard"),g);g.className="geBtn";var A=document.createElement("select");A.style.maxWidth="80px";A.style.position= "relative";A.style.top="-2px";A.style.verticalAlign="bottom";A.style.marginRight="6px";A.style.display="none";c=mxUtils.button(k||mxResources.get("edit"),c);c.className="geBtn gePrimaryBtn";k=document.createElement("div");k.style.position="absolute";k.style.bottom="30px";k.style.width="640px";k.style.textAlign="right";l=document.createElement("div");l.className="geToolbarContainer";l.style.cssText="box-shadow:none !important;background-color:transparent;padding:2px;border-style:none !important;bottom:30px;"; this.init=function(){function b(a){if(null!=a){var b=a.getAttribute("background");if(null==b||""==b||b==mxConstants.NONE)b="#ffffff";f.style.backgroundColor=b;(new mxCodec(a.ownerDocument)).decode(a,h.getModel());h.maxFitScale=1;h.fit(8);h.center()}}function c(f){null!=f&&(f=b(mxUtils.parseXml(a.editor.graph.decompress(mxUtils.getTextContent(f))).documentElement));return f}mxEvent.addListener(A,"change",function(a){q=parseInt(A.value);c(u[q]);mxEvent.consume(a)});if("mxfile"==t.nodeName){var d=t.getElementsByTagName("diagram"); -u=[];for(var e=0;e<d.length;e++)u.push(d[e]);0<u.length&&c(u[q]);if(1<u.length)for(A.style.display="",e=0;e<u.length;e++)d=document.createElement("option"),mxUtils.write(d,u[e].getAttribute("name")||mxResources.get("pageWithNumber",[e+1])),d.setAttribute("value",e),e==q&&d.setAttribute("selected","selected"),A.appendChild(d)}else b(t)};l.appendChild(A);l.appendChild(e);l.appendChild(d);l.appendChild(z);l.appendChild(b);e=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog(!0)});e.className= +u=[];for(var e=0;e<d.length;e++)u.push(d[e]);0<u.length&&c(u[q]);if(1<u.length)for(A.style.display="",e=0;e<u.length;e++)d=document.createElement("option"),mxUtils.write(d,u[e].getAttribute("name")||mxResources.get("pageWithNumber",[e+1])),d.setAttribute("value",e),e==q&&d.setAttribute("selected","selected"),A.appendChild(d)}else b(t)};l.appendChild(A);l.appendChild(e);l.appendChild(d);l.appendChild(y);l.appendChild(b);e=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog(!0)});e.className= "geBtn";p=null!=p?mxUtils.button(mxResources.get("ignore"),p):null;null!=p&&(p.className="geBtn");a.editor.cancelFirst?(k.appendChild(e),null!=p&&k.appendChild(p),k.appendChild(g),k.appendChild(c)):(k.appendChild(c),k.appendChild(g),null!=p&&k.appendChild(p),k.appendChild(e));n.appendChild(k);n.appendChild(l);this.container=n},FindWindow=function(a,e,d,c,g){function k(a,b,f){if("object"===typeof b.value&&null!=b.value.attributes){b=b.value.attributes;for(var c=0;c<b.length;c++)if("label"!=b[c].nodeName){var h= mxUtils.trim(b[c].nodeValue.replace(/[\x00-\x1F\x7F-\x9F]|\s+/g," ")).toLowerCase();if(null==a&&h.substring(0,f.length)===f||null!=a&&a.test(h))return!0}}return!1}function l(){var a=n.model.getDescendants(n.model.getRoot()),c=t.value.toLowerCase(),h=q.checked?new RegExp(c):null,v=null;b!=c&&(b=c,f=null);var d=null==f;if(0<c.length)for(var e=0;e<a.length;e++){var w=n.view.getState(a[e]);if(null!=w&&null!=w.cell.value&&(d||null==v)&&(n.model.isVertex(w.cell)||n.model.isEdge(w.cell))&&(n.isHtmlLabel(w.cell)? (u.innerHTML=n.getLabel(w.cell),label=mxUtils.extractTextWithWhitespace([u])):label=n.getLabel(w.cell),label=mxUtils.trim(label.replace(/[\x00-\x1F\x7F-\x9F]|\s+/g," ")).toLowerCase(),null==h&&(label.substring(0,c.length)===c||k(h,w.cell,c))||null!=h&&(h.test(label)||k(h,w.cell,c))))if(d){v=w;break}else null==v&&(v=w);d=d||w==f}null!=v?(f=v,n.scrollCellToVisible(f.cell),n.isEnabled()?n.setSelectionCell(f.cell):n.highlightCell(f.cell)):n.isEnabled()&&n.clearSelection();return 0==c.length||null!=v} var p=a.actions.get("find"),n=a.editor.graph,b=null,f=null,h=document.createElement("div");h.style.userSelect="none";h.style.overflow="hidden";h.style.padding="10px";h.style.height="100%";var t=document.createElement("input");t.setAttribute("placeholder",mxResources.get("find"));t.setAttribute("type","text");t.style.marginTop="4px";t.style.marginBottom="6px";t.style.width="200px";t.style.fontSize="12px";t.style.borderRadius="4px";t.style.padding="6px";h.appendChild(t);mxUtils.br(h);var q=document.createElement("input"); q.setAttribute("type","checkbox");q.style.marginRight="4px";h.appendChild(q);mxUtils.write(h,mxResources.get("regularExpression"));var u=document.createElement("div");mxUtils.br(h);var w=mxUtils.button(mxResources.get("reset"),function(){t.value="";t.style.backgroundColor="";b=f=null;t.focus()});w.setAttribute("title",mxResources.get("reset"));w.style.marginTop="6px";w.style.marginRight="4px";w.className="geBtn";h.appendChild(w);w=mxUtils.button(mxResources.get("find"),function(){try{t.style.backgroundColor= -l()?"":"#ffcfcf"}catch(z){a.handleError(z)}});w.setAttribute("title",mxResources.get("find")+" (Enter)");w.style.marginTop="6px";w.className="geBtn gePrimaryBtn";h.appendChild(w);mxEvent.addListener(t,"keyup",function(a){if(91==a.keyCode||17==a.keyCode)mxEvent.consume(a);else if(27==a.keyCode)p.funct();else if(b!=t.value.toLowerCase()||13==a.keyCode)try{t.style.backgroundColor=l()?"":"#ffcfcf"}catch(A){t.style.backgroundColor="#ffcfcf"}});mxEvent.addListener(h,"keydown",function(b){70==b.keyCode&& +l()?"":"#ffcfcf"}catch(y){a.handleError(y)}});w.setAttribute("title",mxResources.get("find")+" (Enter)");w.style.marginTop="6px";w.className="geBtn gePrimaryBtn";h.appendChild(w);mxEvent.addListener(t,"keyup",function(a){if(91==a.keyCode||17==a.keyCode)mxEvent.consume(a);else if(27==a.keyCode)p.funct();else if(b!=t.value.toLowerCase()||13==a.keyCode)try{t.style.backgroundColor=l()?"":"#ffcfcf"}catch(A){t.style.backgroundColor="#ffcfcf"}});mxEvent.addListener(h,"keydown",function(b){70==b.keyCode&& a.keyHandler.isControlDown(b)&&!mxEvent.isShiftDown(b)&&(p.funct(),mxEvent.consume(b))});this.window=new mxWindow(mxResources.get("find"),h,e,d,c,g,!0,!0);this.window.destroyOnClose=!1;this.window.setMaximizable(!1);this.window.setResizable(!1);this.window.setClosable(!0);this.window.addListener("show",mxUtils.bind(this,function(){this.window.isVisible()?(t.focus(),mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode||mxClient.IS_QUIRKS?t.select():document.execCommand("selectAll",!1,null)):n.container.focus()}))}, TagsWindow=function(a,e,d,c,g){var k=a.editor.graph,l="tags",p=document.createElement("div");p.style.userSelect="none";p.style.overflow="hidden";p.style.padding="10px";p.style.height="100%";var n=document.createElement("input");n.setAttribute("placeholder",mxResources.get("allTags"));n.setAttribute("type","text");n.style.marginTop="4px";n.style.width="260px";n.style.fontSize="12px";n.style.borderRadius="4px";n.style.padding="6px";p.appendChild(n);if(!a.isOffline()||mxClient.IS_CHROMEAPP){n.style.width= "240px";var b=a.menus.createHelpLink("https://desk.draw.io/support/solutions/articles/16000046966");b.firstChild.style.marginBottom="6px";b.style.marginLeft="6px";p.appendChild(b)}mxEvent.addListener(n,"dblclick",function(){var b=new FilenameDialog(a,l,mxResources.get("ok"),mxUtils.bind(this,function(a){null!=a&&0<a.length&&(l=a)}),mxResources.get("enterPropertyName"));a.showDialog(b.container,300,80,!0,!0);b.init()});n.setAttribute("title",mxResources.get("doubleClickChangeProperty"));mxUtils.br(p); @@ -7381,9 +7383,9 @@ mxUtils.write(c," "+b.title);f.appendChild(c);var d=function(a){if(null==a||"INP b.image+'"/>':null==b.desc&&(h.style.padding="20px",h.style.color="rgb(179, 179, 179)",mxUtils.write(h,mxResources.get("noPreview")));null!=t&&(t.style.backgroundColor="");t=c;t.style.backgroundColor="dark"==uiTheme?"#505759":"#ebf2f9";null!=a&&mxEvent.consume(a)}};mxEvent.addListener(c,"click",d);mxEvent.addListener(c,"dblclick",function(a){m.checked=!m.checked;mxEvent.consume(a)});q.push(function(){return m.checked?b.id:null});0==k&&0==v&&d()})(b.entries[v])})(d[k]);c.style.padding="30px";c.appendChild(n); c.appendChild(f);c.appendChild(h);d=document.createElement("div");d.className="geDialogFooter";d.style.position="absolute";d.style.paddingRight="16px";d.style.color="gray";d.style.left="0px";d.style.right="0px";d.style.bottom="0px";d.style.height="60px";d.style.lineHeight="52px";mxClient.IS_QUIRKS&&(d.style.width=n.style.width,d.style.paddingTop="12px");var w=document.createElement("input");w.setAttribute("type","checkbox");if(isLocalStorage||mxClient.IS_CHROMEAPP)n=document.createElement("span"), n.style.paddingRight="20px",n.appendChild(w),mxUtils.write(n," "+mxResources.get("rememberThisSetting")),w.checked=!0,w.defaultChecked=!0,mxEvent.addListener(n,"click",function(a){mxEvent.getSource(a)!=w&&(w.checked=!w.checked,mxEvent.consume(a))}),mxClient.IS_QUIRKS&&(n.style.position="relative",n.style.top="-6px"),d.appendChild(n);n=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});n.className="geBtn";e=mxUtils.button(mxResources.get("apply"),function(){a.hideDialog();for(var b= -[],f=0;f<q.length;f++){var c=q[f].apply(this,arguments);null!=c&&b.push(c)}a.sidebar.showEntries(b.join(";"),w.checked,!0)});e.className="geBtn gePrimaryBtn"}else{var z=document.createElement("table"),n=document.createElement("tbody");c.style.height="100%";c.style.overflow="auto";p=document.createElement("tr");z.style.width="100%";e=document.createElement("td");var g=document.createElement("td"),l=document.createElement("td"),A=mxUtils.bind(this,function(b,f,c){var h=document.createElement("input"); -h.type="checkbox";z.appendChild(h);h.checked=a.sidebar.isEntryVisible(c);var v=document.createElement("span");mxUtils.write(v,f);f=document.createElement("div");f.style.display="block";f.appendChild(h);f.appendChild(v);mxEvent.addListener(v,"click",function(a){h.checked=!h.checked;mxEvent.consume(a)});b.appendChild(f);return function(){return h.checked?c:null}});p.appendChild(e);p.appendChild(g);p.appendChild(l);n.appendChild(p);z.appendChild(n);for(var q=[],m=0,k=0;k<d.length;k++)for(n=0;n<d[k].entries.length;n++)m++; -for(var v=[e,g,l],x=0,k=0;k<d.length;k++)(function(a){for(var b=0;b<a.entries.length;b++){var f=a.entries[b];q.push(A(v[Math.floor(x/(m/3))],f.title,f.id));x++}})(d[k]);c.appendChild(z);d=document.createElement("div");d.style.marginTop="18px";d.style.textAlign="center";w=document.createElement("input");isLocalStorage&&(w.setAttribute("type","checkbox"),w.checked=!0,w.defaultChecked=!0,d.appendChild(w),n=document.createElement("span"),mxUtils.write(n," "+mxResources.get("rememberThisSetting")),d.appendChild(n), +[],f=0;f<q.length;f++){var c=q[f].apply(this,arguments);null!=c&&b.push(c)}a.sidebar.showEntries(b.join(";"),w.checked,!0)});e.className="geBtn gePrimaryBtn"}else{var y=document.createElement("table"),n=document.createElement("tbody");c.style.height="100%";c.style.overflow="auto";p=document.createElement("tr");y.style.width="100%";e=document.createElement("td");var g=document.createElement("td"),l=document.createElement("td"),A=mxUtils.bind(this,function(b,f,c){var h=document.createElement("input"); +h.type="checkbox";y.appendChild(h);h.checked=a.sidebar.isEntryVisible(c);var v=document.createElement("span");mxUtils.write(v,f);f=document.createElement("div");f.style.display="block";f.appendChild(h);f.appendChild(v);mxEvent.addListener(v,"click",function(a){h.checked=!h.checked;mxEvent.consume(a)});b.appendChild(f);return function(){return h.checked?c:null}});p.appendChild(e);p.appendChild(g);p.appendChild(l);n.appendChild(p);y.appendChild(n);for(var q=[],m=0,k=0;k<d.length;k++)for(n=0;n<d[k].entries.length;n++)m++; +for(var v=[e,g,l],x=0,k=0;k<d.length;k++)(function(a){for(var b=0;b<a.entries.length;b++){var f=a.entries[b];q.push(A(v[Math.floor(x/(m/3))],f.title,f.id));x++}})(d[k]);c.appendChild(y);d=document.createElement("div");d.style.marginTop="18px";d.style.textAlign="center";w=document.createElement("input");isLocalStorage&&(w.setAttribute("type","checkbox"),w.checked=!0,w.defaultChecked=!0,d.appendChild(w),n=document.createElement("span"),mxUtils.write(n," "+mxResources.get("rememberThisSetting")),d.appendChild(n), mxEvent.addListener(n,"click",function(a){w.checked=!w.checked;mxEvent.consume(a)}));c.appendChild(d);n=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});n.className="geBtn";e=mxUtils.button(mxResources.get("apply"),function(){for(var b=["search"],f=0;f<q.length;f++){var c=q[f].apply(this,arguments);null!=c&&b.push(c)}a.sidebar.showEntries(0<b.length?b.join(";"):"",w.checked);a.hideDialog()});e.className="geBtn gePrimaryBtn";d=document.createElement("div");d.style.marginTop="26px"; d.style.textAlign="right"}a.editor.cancelFirst?(d.appendChild(n),d.appendChild(e)):(d.appendChild(e),d.appendChild(n));c.appendChild(d);this.container=c},PluginsDialog=function(a){function e(){if(0==g.length)c.innerHTML=mxResources.get("noPlugins");else{c.innerHTML="";for(var b=0;b<g.length;b++){var h=document.createElement("span");h.style.whiteSpace="nowrap";var d=document.createElement("span");d.className="geSprite geSprite-delete";d.style.position="relative";d.style.cursor="pointer";d.style.top= "5px";d.style.marginRight="4px";d.style.display="inline-block";h.appendChild(d);mxUtils.write(h,g[b]);c.appendChild(h);mxUtils.br(c);mxEvent.addListener(d,"click",function(b){return function(){a.confirm(window.parent.mxResources.get("delete")+' "'+g[b]+'"?',function(){g.splice(b,1);e()})}}(b))}}}var d=document.createElement("div"),c=document.createElement("div");c.style.height="120px";c.style.overflow="auto";var g=mxSettings.getPlugins().slice();d.appendChild(c);e();var k=mxUtils.button(mxResources.get("add"), @@ -7393,32 +7395,32 @@ function(){var b="",c=urlParams.p;if(null!=c&&0<c.length){for(var d=c.split(";") document.createElement("td");p.style.whiteSpace="nowrap";p.setAttribute("colspan","2");mxUtils.write(p,mxResources.get("loading")+"...");l.appendChild(p);k.appendChild(l);var l=document.createElement("tr"),n=document.createElement("td"),b=document.createElement("td");g.style.paddingLeft="6px";mxUtils.write(n,mxResources.get("left")+":");var f=document.createElement("input");f.setAttribute("type","text");f.style.width="100px";f.value="0";this.init=function(){f.focus();f.select()};b.appendChild(f); l.appendChild(n);l.appendChild(b);k.appendChild(l);l=document.createElement("tr");n=document.createElement("td");b=document.createElement("td");mxUtils.write(n,mxResources.get("top")+":");var h=document.createElement("input");h.setAttribute("type","text");h.style.width="100px";h.value="0";b.appendChild(h);l.appendChild(n);l.appendChild(b);k.appendChild(l);l=document.createElement("tr");n=document.createElement("td");b=document.createElement("td");mxUtils.write(n,mxResources.get("right")+":");var t= document.createElement("input");t.setAttribute("type","text");t.style.width="100px";t.value="0";b.appendChild(t);l.appendChild(n);l.appendChild(b);k.appendChild(l);l=document.createElement("tr");n=document.createElement("td");b=document.createElement("td");mxUtils.write(n,mxResources.get("bottom")+":");var q=document.createElement("input");q.setAttribute("type","text");q.style.width="100px";q.value="0";b.appendChild(q);l.appendChild(n);l.appendChild(b);k.appendChild(l);l=document.createElement("tr"); -n=document.createElement("td");b=document.createElement("td");mxUtils.write(n,mxResources.get("circle")+":");l.appendChild(n);var u=document.createElement("input");u.setAttribute("type","checkbox");b.appendChild(u);l.appendChild(b);k.appendChild(l);g.appendChild(k);c.appendChild(g);var g=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()}),w=new Image,z=mxUtils.button(mxResources.get("apply"),function(){a.hideDialog();var b=document.createElement("canvas"),c=b.getContext("2d"),v=w.width, -e=w.height,g=parseInt(f.value),k=parseInt(h.value),v=Math.max(1,v-g-parseInt(t.value)),e=Math.max(1,e-k-parseInt(q.value));b.width=v;b.height=e;u.checked&&(c.fillStyle="#000000",c.arc(v/2,e/2,Math.min(v/2,e/2),0,2*Math.PI),c.fill(),c.globalCompositeOperation="source-in");c.drawImage(w,g,k,v,e,0,0,v,e);d(b.toDataURL())});z.setAttribute("disabled","disabled");w.onload=function(){z.removeAttribute("disabled");p.innerHTML="";mxUtils.write(p,mxResources.get("width")+": "+w.width+" "+mxResources.get("height")+ -": "+w.height)};w.src=e;mxEvent.addListener(c,"keypress",function(a){13==a.keyCode&&z.click()});e=document.createElement("div");e.style.marginTop="20px";e.style.textAlign="right";a.editor.cancelFirst?(e.appendChild(g),e.appendChild(z)):(e.appendChild(z),e.appendChild(g));c.appendChild(e);this.container=c},EditGeometryDialog=function(a,e){var d=a.editor.graph,c=1==e.length?d.getCellGeometry(e[0]):null,g=document.createElement("div"),k=document.createElement("table"),l=document.createElement("tbody"), +n=document.createElement("td");b=document.createElement("td");mxUtils.write(n,mxResources.get("circle")+":");l.appendChild(n);var u=document.createElement("input");u.setAttribute("type","checkbox");b.appendChild(u);l.appendChild(b);k.appendChild(l);g.appendChild(k);c.appendChild(g);var g=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()}),w=new Image,y=mxUtils.button(mxResources.get("apply"),function(){a.hideDialog();var b=document.createElement("canvas"),c=b.getContext("2d"),v=w.width, +e=w.height,g=parseInt(f.value),k=parseInt(h.value),v=Math.max(1,v-g-parseInt(t.value)),e=Math.max(1,e-k-parseInt(q.value));b.width=v;b.height=e;u.checked&&(c.fillStyle="#000000",c.arc(v/2,e/2,Math.min(v/2,e/2),0,2*Math.PI),c.fill(),c.globalCompositeOperation="source-in");c.drawImage(w,g,k,v,e,0,0,v,e);d(b.toDataURL())});y.setAttribute("disabled","disabled");w.onload=function(){y.removeAttribute("disabled");p.innerHTML="";mxUtils.write(p,mxResources.get("width")+": "+w.width+" "+mxResources.get("height")+ +": "+w.height)};w.src=e;mxEvent.addListener(c,"keypress",function(a){13==a.keyCode&&y.click()});e=document.createElement("div");e.style.marginTop="20px";e.style.textAlign="right";a.editor.cancelFirst?(e.appendChild(g),e.appendChild(y)):(e.appendChild(y),e.appendChild(g));c.appendChild(e);this.container=c},EditGeometryDialog=function(a,e){var d=a.editor.graph,c=1==e.length?d.getCellGeometry(e[0]):null,g=document.createElement("div"),k=document.createElement("table"),l=document.createElement("tbody"), p=document.createElement("tr"),n=document.createElement("td"),b=document.createElement("td");k.style.paddingLeft="6px";mxUtils.write(n,mxResources.get("relative")+":");var f=document.createElement("input");f.setAttribute("type","checkbox");null!=c&&c.relative&&(f.setAttribute("checked","checked"),f.defaultChecked=!0);this.init=function(){f.focus()};b.appendChild(f);p.appendChild(n);p.appendChild(b);l.appendChild(p);p=document.createElement("tr");n=document.createElement("td");b=document.createElement("td"); mxUtils.write(n,mxResources.get("left")+":");var h=document.createElement("input");h.setAttribute("type","text");h.style.width="100px";h.value=null!=c?c.x:"";b.appendChild(h);p.appendChild(n);p.appendChild(b);l.appendChild(p);p=document.createElement("tr");n=document.createElement("td");b=document.createElement("td");mxUtils.write(n,mxResources.get("top")+":");var t=document.createElement("input");t.setAttribute("type","text");t.style.width="100px";t.value=null!=c?c.y:"";b.appendChild(t);p.appendChild(n); p.appendChild(b);l.appendChild(p);p=document.createElement("tr");n=document.createElement("td");b=document.createElement("td");mxUtils.write(n,mxResources.get("dx")+":");var q=document.createElement("input");q.setAttribute("type","text");q.style.width="100px";q.value=null!=c&&null!=c.offset?c.offset.x:"";b.appendChild(q);p.appendChild(n);p.appendChild(b);l.appendChild(p);p=document.createElement("tr");n=document.createElement("td");b=document.createElement("td");mxUtils.write(n,mxResources.get("dy")+ ":");var u=document.createElement("input");u.setAttribute("type","text");u.style.width="100px";u.value=null!=c&&null!=c.offset?c.offset.y:"";b.appendChild(u);p.appendChild(n);p.appendChild(b);l.appendChild(p);p=document.createElement("tr");n=document.createElement("td");b=document.createElement("td");mxUtils.write(n,mxResources.get("width")+":");var w=document.createElement("input");w.setAttribute("type","text");w.style.width="100px";w.value=null!=c?c.width:"";b.appendChild(w);p.appendChild(n);p.appendChild(b); -l.appendChild(p);p=document.createElement("tr");n=document.createElement("td");b=document.createElement("td");mxUtils.write(n,mxResources.get("height")+":");var z=document.createElement("input");z.setAttribute("type","text");z.style.width="100px";z.value=null!=c?c.height:"";b.appendChild(z);p.appendChild(n);p.appendChild(b);l.appendChild(p);p=document.createElement("tr");n=document.createElement("td");b=document.createElement("td");mxUtils.write(n,mxResources.get("rotation")+":");var A=document.createElement("input"); +l.appendChild(p);p=document.createElement("tr");n=document.createElement("td");b=document.createElement("td");mxUtils.write(n,mxResources.get("height")+":");var y=document.createElement("input");y.setAttribute("type","text");y.style.width="100px";y.value=null!=c?c.height:"";b.appendChild(y);p.appendChild(n);p.appendChild(b);l.appendChild(p);p=document.createElement("tr");n=document.createElement("td");b=document.createElement("td");mxUtils.write(n,mxResources.get("rotation")+":");var A=document.createElement("input"); A.setAttribute("type","text");A.style.width="100px";A.value=1==e.length?mxUtils.getValue(d.getCellStyle(e[0]),mxConstants.STYLE_ROTATION,0):"";b.appendChild(A);p.appendChild(n);p.appendChild(b);l.appendChild(p);k.appendChild(l);g.appendChild(k);c=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});c.className="geBtn";var m=mxUtils.button(mxResources.get("apply"),function(){a.hideDialog();d.getModel().beginUpdate();try{for(var b=0;b<e.length;b++){var c=d.getCellGeometry(e[b]);null!= -c&&(c=c.clone(),d.isCellMovable(e[b])&&(c.relative=f.checked,0<mxUtils.trim(h.value).length&&(c.x=Number(h.value)),0<mxUtils.trim(t.value).length&&(c.y=Number(t.value)),0<mxUtils.trim(q.value).length&&(null==c.offset&&(c.offset=new mxPoint),c.offset.x=Number(q.value)),0<mxUtils.trim(u.value).length&&(null==c.offset&&(c.offset=new mxPoint),c.offset.y=Number(u.value))),d.isCellResizable(e[b])&&(0<mxUtils.trim(w.value).length&&(c.width=Number(w.value)),0<mxUtils.trim(z.value).length&&(c.height=Number(z.value))), +c&&(c=c.clone(),d.isCellMovable(e[b])&&(c.relative=f.checked,0<mxUtils.trim(h.value).length&&(c.x=Number(h.value)),0<mxUtils.trim(t.value).length&&(c.y=Number(t.value)),0<mxUtils.trim(q.value).length&&(null==c.offset&&(c.offset=new mxPoint),c.offset.x=Number(q.value)),0<mxUtils.trim(u.value).length&&(null==c.offset&&(c.offset=new mxPoint),c.offset.y=Number(u.value))),d.isCellResizable(e[b])&&(0<mxUtils.trim(w.value).length&&(c.width=Number(w.value)),0<mxUtils.trim(y.value).length&&(c.height=Number(y.value))), d.getModel().setGeometry(e[b],c));0<mxUtils.trim(A.value).length&&d.setCellStyles(mxConstants.STYLE_ROTATION,Number(A.value),[e[b]])}}finally{d.getModel().endUpdate()}});m.className="geBtn gePrimaryBtn";mxEvent.addListener(g,"keypress",function(b){13==b.keyCode&&m.click()});k=document.createElement("div");k.style.marginTop="20px";k.style.textAlign="right";a.editor.cancelFirst?(k.appendChild(c),k.appendChild(m)):(k.appendChild(m),k.appendChild(c));g.appendChild(k);this.container=g},LibraryDialog=function(a, e,d,c,g,k){function l(b){for(b=document.elementFromPoint(b.clientX,b.clientY);null!=b&&b.parentNode!=q;)b=b.parentNode;var a=null;if(null!=b)for(var c=q.firstChild,a=0;null!=c&&c!=b;)c=c.nextSibling,a++;return a}function p(b,c,h,d,e,t,g,k,C){try{if(null==c||"image/"==c.substring(0,6))if(null==b&&null!=g||null==w[b]){var A=function(){D.innerHTML="";D.style.cursor="pointer";D.style.whiteSpace="nowrap";D.style.textOverflow="ellipsis";mxUtils.write(D,null!=M.title&&0<M.title.length?M.title:mxResources.get("untitled")); -D.style.color=null==M.title||0==M.title.length?"#d0d0d0":""};q.style.backgroundImage="";u.style.display="none";var y=e,B=t;if(e>a.maxImageSize||t>a.maxImageSize){var n=Math.min(1,Math.min(a.maxImageSize/Math.max(1,e)),a.maxImageSize/Math.max(1,t));e*=n;t*=n}y>B?(B=Math.round(100*B/y),y=100):(y=Math.round(100*y/B),B=100);var H=document.createElement("div");H.setAttribute("draggable","true");H.style.display=mxClient.IS_QUIRKS?"inline":"inline-block";H.style.position="relative";H.style.cursor="move"; -mxUtils.setPrefixedStyle(H.style,"transition","transform .1s ease-in-out");if(null!=b){var E=document.createElement("img");E.setAttribute("src",v.convert(b));E.style.width=y+"px";E.style.height=B+"px";E.style.margin="10px";E.style.paddingBottom=Math.floor((100-B)/2)+"px";E.style.paddingLeft=Math.floor((100-y)/2)+"px";H.appendChild(E)}else if(null!=g){var F=a.stringToCells(a.editor.graph.decompress(g.xml));0<F.length&&(a.sidebar.createThumb(F,100,100,H,null,!0,!1),H.firstChild.style.display=mxClient.IS_QUIRKS? -"inline":"inline-block",H.firstChild.style.cursor="")}var G=document.createElement("img");G.setAttribute("src",Editor.closeImage);G.setAttribute("border","0");G.setAttribute("title",mxResources.get("delete"));G.setAttribute("align","top");G.style.paddingTop="4px";G.style.position="absolute";G.style.marginLeft="-12px";G.style.zIndex="1";G.style.cursor="pointer";mxEvent.addListener(G,"dragstart",function(b){mxEvent.consume(b)});(function(b,a,c){mxEvent.addListener(G,"click",function(h){w[a]=null;for(var v= -0;v<f.length;v++)if(null!=f[v].data&&f[v].data==a||null!=f[v].xml&&null!=c&&f[v].xml==c.xml){f.splice(v,1);break}H.parentNode.removeChild(b);0==f.length&&(q.style.backgroundImage="url('"+IMAGE_PATH+"/droptarget.png')",u.style.display="");mxEvent.consume(h)});mxEvent.addListener(G,"dblclick",function(b){mxEvent.consume(b)})})(H,b,g);H.appendChild(G);H.style.marginBottom="30px";var D=document.createElement("div");D.style.position="absolute";D.style.boxSizing="border-box";D.style.bottom="-18px";D.style.left= -"10px";D.style.right="10px";D.style.backgroundColor="#ffffff";D.style.overflow="hidden";D.style.textAlign="center";var M=null;null!=b?(M={data:b,w:e,h:t,title:C},null!=k&&(M.aspect=k),w[b]=E,f.push(M)):null!=g&&(g.aspect="fixed",f.push(g),M=g);mxEvent.addListener(D,"keydown",function(b){13==b.keyCode&&null!=m&&(m(),m=null,mxEvent.consume(b))});A();H.appendChild(D);mxEvent.addListener(D,"mousedown",function(b){"true"!=D.getAttribute("contentEditable")&&mxEvent.consume(b)});F=function(b){if(mxClient.IS_IOS|| +D.style.color=null==M.title||0==M.title.length?"#d0d0d0":""};q.style.backgroundImage="";u.style.display="none";var z=e,B=t;if(e>a.maxImageSize||t>a.maxImageSize){var n=Math.min(1,Math.min(a.maxImageSize/Math.max(1,e)),a.maxImageSize/Math.max(1,t));e*=n;t*=n}z>B?(B=Math.round(100*B/z),z=100):(z=Math.round(100*z/B),B=100);var F=document.createElement("div");F.setAttribute("draggable","true");F.style.display=mxClient.IS_QUIRKS?"inline":"inline-block";F.style.position="relative";F.style.cursor="move"; +mxUtils.setPrefixedStyle(F.style,"transition","transform .1s ease-in-out");if(null!=b){var E=document.createElement("img");E.setAttribute("src",v.convert(b));E.style.width=z+"px";E.style.height=B+"px";E.style.margin="10px";E.style.paddingBottom=Math.floor((100-B)/2)+"px";E.style.paddingLeft=Math.floor((100-z)/2)+"px";F.appendChild(E)}else if(null!=g){var G=a.stringToCells(a.editor.graph.decompress(g.xml));0<G.length&&(a.sidebar.createThumb(G,100,100,F,null,!0,!1),F.firstChild.style.display=mxClient.IS_QUIRKS? +"inline":"inline-block",F.firstChild.style.cursor="")}var H=document.createElement("img");H.setAttribute("src",Editor.closeImage);H.setAttribute("border","0");H.setAttribute("title",mxResources.get("delete"));H.setAttribute("align","top");H.style.paddingTop="4px";H.style.position="absolute";H.style.marginLeft="-12px";H.style.zIndex="1";H.style.cursor="pointer";mxEvent.addListener(H,"dragstart",function(b){mxEvent.consume(b)});(function(b,a,c){mxEvent.addListener(H,"click",function(h){w[a]=null;for(var v= +0;v<f.length;v++)if(null!=f[v].data&&f[v].data==a||null!=f[v].xml&&null!=c&&f[v].xml==c.xml){f.splice(v,1);break}F.parentNode.removeChild(b);0==f.length&&(q.style.backgroundImage="url('"+IMAGE_PATH+"/droptarget.png')",u.style.display="");mxEvent.consume(h)});mxEvent.addListener(H,"dblclick",function(b){mxEvent.consume(b)})})(F,b,g);F.appendChild(H);F.style.marginBottom="30px";var D=document.createElement("div");D.style.position="absolute";D.style.boxSizing="border-box";D.style.bottom="-18px";D.style.left= +"10px";D.style.right="10px";D.style.backgroundColor="#ffffff";D.style.overflow="hidden";D.style.textAlign="center";var M=null;null!=b?(M={data:b,w:e,h:t,title:C},null!=k&&(M.aspect=k),w[b]=E,f.push(M)):null!=g&&(g.aspect="fixed",f.push(g),M=g);mxEvent.addListener(D,"keydown",function(b){13==b.keyCode&&null!=m&&(m(),m=null,mxEvent.consume(b))});A();F.appendChild(D);mxEvent.addListener(D,"mousedown",function(b){"true"!=D.getAttribute("contentEditable")&&mxEvent.consume(b)});G=function(b){if(mxClient.IS_IOS|| mxClient.IS_QUIRKS||mxClient.IS_FF||!(null==document.documentMode||9<document.documentMode)){var c=new FilenameDialog(a,M.title||"",mxResources.get("ok"),function(b){null!=b&&(M.title=b,A())},mxResources.get("enterValue"));a.showDialog(c.container,300,80,!0,!0);c.init();mxEvent.consume(b)}else if("true"!=D.getAttribute("contentEditable")){null!=m&&(m(),m=null);if(null==M.title||0==M.title.length)D.innerHTML="";D.style.textOverflow="";D.style.whiteSpace="";D.style.cursor="text";D.style.color="";D.setAttribute("contentEditable", -"true");D.focus();document.execCommand("selectAll",!1,null);m=function(){D.removeAttribute("contentEditable");D.style.cursor="pointer";M.title=D.innerHTML;A()};mxEvent.consume(b)}};mxEvent.addListener(D,"click",F);mxEvent.addListener(H,"dblclick",F);q.appendChild(H);mxEvent.addListener(H,"dragstart",function(a){null==b&&null!=g&&(G.style.visibility="hidden",D.style.visibility="hidden");mxClient.IS_FF&&null!=g.xml&&a.dataTransfer.setData("Text",g.xml);z=l(a);mxClient.IS_GC&&(H.style.opacity="0.9"); -window.setTimeout(function(){mxUtils.setPrefixedStyle(H.style,"transform","scale(0.5,0.5)");mxUtils.setOpacity(H,30);G.style.visibility="";D.style.visibility=""},0)});mxEvent.addListener(H,"dragend",function(b){"hidden"==G.style.visibility&&(G.style.visibility="",D.style.visibility="");z=null;mxUtils.setOpacity(H,100);mxUtils.setPrefixedStyle(H.style,"transform",null)})}else x||(x=!0,a.handleError({message:mxResources.get("fileExists")}));else{e=!1;try{if(a.spinner.stop(),y=mxUtils.parseXml(b),"mxlibrary"== -y.documentElement.nodeName){B=JSON.parse(mxUtils.getTextContent(y.documentElement));if(null!=B&&0<B.length)for(var J=0;J<B.length;J++)null!=B[J].xml?p(null,null,0,0,0,0,B[J]):p(B[J].data,null,0,0,B[J].w,B[J].h,null,"fixed",B[J].title);e=!0}else if("mxfile"==y.documentElement.nodeName){for(var L=y.documentElement.getElementsByTagName("diagram"),J=0;J<L.length;J++){var B=mxUtils.getTextContent(L[J]),F=a.stringToCells(a.editor.graph.decompress(B)),V=a.editor.graph.getBoundingBoxFromGeometry(F);p(null, -null,0,0,0,0,{xml:B,w:V.width,h:V.height})}e=!0}}catch(I){}e||(a.spinner.stop(),a.handleError({message:mxResources.get("errorLoadingFile")}))}}catch(I){}return null}function n(b){b.dataTransfer.dropEffect=null!=z?"move":"copy";b.stopPropagation();b.preventDefault()}function b(b){b.stopPropagation();b.preventDefault();x=!1;A=l(b);if(null!=z)null!=A&&A<q.children.length?(f.splice(A>z?A-1:A,0,f.splice(z,1)[0]),q.insertBefore(q.children[z],q.children[A])):(f.push(f.splice(z,1)[0]),q.appendChild(q.children[z])); +"true");D.focus();document.execCommand("selectAll",!1,null);m=function(){D.removeAttribute("contentEditable");D.style.cursor="pointer";M.title=D.innerHTML;A()};mxEvent.consume(b)}};mxEvent.addListener(D,"click",G);mxEvent.addListener(F,"dblclick",G);q.appendChild(F);mxEvent.addListener(F,"dragstart",function(a){null==b&&null!=g&&(H.style.visibility="hidden",D.style.visibility="hidden");mxClient.IS_FF&&null!=g.xml&&a.dataTransfer.setData("Text",g.xml);y=l(a);mxClient.IS_GC&&(F.style.opacity="0.9"); +window.setTimeout(function(){mxUtils.setPrefixedStyle(F.style,"transform","scale(0.5,0.5)");mxUtils.setOpacity(F,30);H.style.visibility="";D.style.visibility=""},0)});mxEvent.addListener(F,"dragend",function(b){"hidden"==H.style.visibility&&(H.style.visibility="",D.style.visibility="");y=null;mxUtils.setOpacity(F,100);mxUtils.setPrefixedStyle(F.style,"transform",null)})}else x||(x=!0,a.handleError({message:mxResources.get("fileExists")}));else{e=!1;try{if(a.spinner.stop(),z=mxUtils.parseXml(b),"mxlibrary"== +z.documentElement.nodeName){B=JSON.parse(mxUtils.getTextContent(z.documentElement));if(null!=B&&0<B.length)for(var J=0;J<B.length;J++)null!=B[J].xml?p(null,null,0,0,0,0,B[J]):p(B[J].data,null,0,0,B[J].w,B[J].h,null,"fixed",B[J].title);e=!0}else if("mxfile"==z.documentElement.nodeName){for(var L=z.documentElement.getElementsByTagName("diagram"),J=0;J<L.length;J++){var B=mxUtils.getTextContent(L[J]),G=a.stringToCells(a.editor.graph.decompress(B)),V=a.editor.graph.getBoundingBoxFromGeometry(G);p(null, +null,0,0,0,0,{xml:B,w:V.width,h:V.height})}e=!0}}catch(I){}e||(a.spinner.stop(),a.handleError({message:mxResources.get("errorLoadingFile")}))}}catch(I){}return null}function n(b){b.dataTransfer.dropEffect=null!=y?"move":"copy";b.stopPropagation();b.preventDefault()}function b(b){b.stopPropagation();b.preventDefault();x=!1;A=l(b);if(null!=y)null!=A&&A<q.children.length?(f.splice(A>y?A-1:A,0,f.splice(y,1)[0]),q.insertBefore(q.children[y],q.children[A])):(f.push(f.splice(y,1)[0]),q.appendChild(q.children[y])); else if(0<b.dataTransfer.files.length)a.importFiles(b.dataTransfer.files,0,0,a.maxImageSize,C(b));else if(0<=mxUtils.indexOf(b.dataTransfer.types,"text/uri-list")){var c=decodeURIComponent(b.dataTransfer.getData("text/uri-list"));(/(\.jpg)($|\?)/i.test(c)||/(\.png)($|\?)/i.test(c)||/(\.gif)($|\?)/i.test(c)||/(\.svg)($|\?)/i.test(c))&&a.loadImage(c,function(b){p(c,null,0,0,b.width,b.height);q.scrollTop=q.scrollHeight})}b.stopPropagation();b.preventDefault()}var f=[];d=document.createElement("div"); d.style.height="100%";var h=document.createElement("div");h.style.whiteSpace="nowrap";h.style.height="40px";d.appendChild(h);mxUtils.write(h,mxResources.get("filename")+":");null==e&&(e=a.defaultLibraryName+".xml");var t=document.createElement("input");t.setAttribute("value",e);t.style.marginRight="20px";t.style.marginLeft="10px";t.style.width="500px";null==g||g.isRenamable()||t.setAttribute("disabled","true");this.init=function(){if(null==g||g.isRenamable())t.focus(),mxClient.IS_GC||mxClient.IS_FF|| 5<=document.documentMode||mxClient.IS_QUIRKS?t.select():document.execCommand("selectAll",!1,null)};h.appendChild(t);var q=document.createElement("div");q.style.borderWidth="1px 0px 1px 0px";q.style.borderColor="#d3d3d3";q.style.borderStyle="solid";q.style.marginTop="6px";q.style.overflow="auto";q.style.height="340px";q.style.backgroundPosition="center center";q.style.backgroundRepeat="no-repeat";0==f.length&&Graph.fileSupport&&(q.style.backgroundImage="url('"+IMAGE_PATH+"/droptarget.png')");var u= -document.createElement("div");u.style.position="absolute";u.style.width="640px";u.style.top="260px";u.style.textAlign="center";u.style.fontSize="22px";u.style.color="#a0c3ff";mxUtils.write(u,mxResources.get("dragImagesHere"));d.appendChild(u);var w={},z=null,A=null,m=null;e=function(b){"true"!=mxEvent.getSource(b).getAttribute("contentEditable")&&null!=m&&(m(),m=null,mxEvent.consume(b))};mxEvent.addListener(q,"mousedown",e);mxEvent.addListener(q,"pointerdown",e);mxEvent.addListener(q,"touchstart", +document.createElement("div");u.style.position="absolute";u.style.width="640px";u.style.top="260px";u.style.textAlign="center";u.style.fontSize="22px";u.style.color="#a0c3ff";mxUtils.write(u,mxResources.get("dragImagesHere"));d.appendChild(u);var w={},y=null,A=null,m=null;e=function(b){"true"!=mxEvent.getSource(b).getAttribute("contentEditable")&&null!=m&&(m(),m=null,mxEvent.consume(b))};mxEvent.addListener(q,"mousedown",e);mxEvent.addListener(q,"pointerdown",e);mxEvent.addListener(q,"touchstart", e);var v=new mxUrlConverter,x=!1;if(null!=c)for(e=0;e<c.length;e++)h=c[e],p(h.data,null,0,0,h.w,h.h,h,h.aspect,h.title);mxEvent.addListener(q,"dragleave",function(b){u.style.cursor="";for(var a=mxEvent.getSource(b);null!=a;){if(a==q||a==u){b.stopPropagation();b.preventDefault();break}a=a.parentNode}});var C=function(b){return function(c,f,h,v,m,d,e,t,x){null!=x&&(/(\.vsdx)($|\?)/i.test(x.name)||/(\.vssx)($|\?)/i.test(x.name))?a.importVisio(x,mxUtils.bind(this,function(c){a.spinner.stop();p(c,f,h, v,m,d,e,"fixed",mxEvent.isAltDown(b)?null:e.substring(0,e.lastIndexOf(".")).replace(/_/g," "))})):null!=x&&!a.isOffline()&&(new XMLHttpRequest).upload&&a.isRemoteFileFormat(c,x.name)?a.parseFile(x,mxUtils.bind(this,function(c){4==c.readyState&&(a.spinner.stop(),200<=c.status&&299>=c.status&&(p(c.responseText,f,h,v,m,d,e,"fixed",mxEvent.isAltDown(b)?null:e.substring(0,e.lastIndexOf(".")).replace(/_/g," ")),q.scrollTop=q.scrollHeight))})):(p(c,f,h,v,m,d,e,"fixed",mxEvent.isAltDown(b)?null:e.substring(0, e.lastIndexOf(".")).replace(/_/g," ")),q.scrollTop=q.scrollHeight)}};mxEvent.addListener(q,"dragover",n);mxEvent.addListener(q,"drop",b);mxEvent.addListener(u,"dragover",n);mxEvent.addListener(u,"drop",b);d.appendChild(q);c=document.createElement("div");c.style.textAlign="right";c.style.marginTop="20px";e=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog(!0)});e.setAttribute("id","btnCancel");e.className="geBtn";a.editor.cancelFirst&&c.appendChild(e);h=mxUtils.button(mxResources.get("export"), @@ -7439,24 +7441,24 @@ mxResources.get("linkToDiagramHint",null,"Add a link to this diagram. The diagra var a=window.innerWidth,d=window.innerHeight,c=987,g=712;.9*a<c&&(c=Math.max(.9*a,600),e.style.width=c+"px");.9*d<g&&(g=Math.max(.9*d,300),e.style.height=g+"px");this.width=c;this.height=g;this.container=e}; TemplatesDialog.prototype.init=function(a,e,d,c,g,k,l,p,n,b){function f(){null!=E&&(E.style.fontWeight="normal",E.style.textDecoration="none",E=null)}function h(b,a,c,f,h,v,m){if(-1<b.className.indexOf("geTempDlgRadioBtnActive"))return!1;b.className+=" geTempDlgRadioBtnActive";C.querySelector(".geTempDlgRadioBtn[data-id="+f+"]").className="geTempDlgRadioBtn "+(m?"geTempDlgRadioBtnLarge":"geTempDlgRadioBtnSmall");C.querySelector("."+a).src="/images/"+c+"-sel.svg";C.querySelector("."+h).src="/images/"+ v+".svg";return!0}function t(b){function a(b){Z.removeChild(f);C.removeChild(c);Z.scrollTop=v}b=b.prevImgUrl||b.imgUrl||TEMPLATE_PATH+"/"+b.url.substring(0,b.url.length-4)+".png";var c=document.createElement("div");c.className="geTempDlgDialogMask";C.appendChild(c);var f=document.createElement("div");f.className="geTempDlgDiagramPreviewBox";var h=document.createElement("img");h.src=b;f.appendChild(h);b=document.createElement("img");b.src="/images/close.png";b.className="geTempDlgPreviewCloseBtn"; -b.setAttribute("title",mxResources.get("close"));f.appendChild(b);var v=Z.scrollTop;mxEvent.addListener(b,"click",a);mxEvent.addListener(c,"click",a);Z.appendChild(f);Z.scrollTop=0;f.style.lineHeight=f.clientHeight+"px"}function q(b,a,c){if(null!=F){for(var f=F.className.split(" "),h=0;h<f.length;h++)if(-1<f[h].indexOf("Active")){f.splice(h,1);break}F.className=f.join(" ")}null!=b?(F=b,F.className+=" "+a,L=c,K.className="geTempDlgCreateBtn"):(L=F=null,K.className="geTempDlgCreateBtn geTempDlgCreateBtnDisabled")} +b.setAttribute("title",mxResources.get("close"));f.appendChild(b);var v=Z.scrollTop;mxEvent.addListener(b,"click",a);mxEvent.addListener(c,"click",a);Z.appendChild(f);Z.scrollTop=0;f.style.lineHeight=f.clientHeight+"px"}function q(b,a,c){if(null!=G){for(var f=G.className.split(" "),h=0;h<f.length;h++)if(-1<f[h].indexOf("Active")){f.splice(h,1);break}G.className=f.join(" ")}null!=b?(G=b,G.className+=" "+a,L=c,K.className="geTempDlgCreateBtn"):(L=G=null,K.className="geTempDlgCreateBtn geTempDlgCreateBtnDisabled")} function u(c){if(null!=L){var f=L;L=null;K.className="geTempDlgCreateBtn geTempDlgCreateBtnDisabled geTempDlgCreateBtnBusy";f.isExternal?(1==c?b(f.url,f,"nameInput.value"):n(f.url,f,"nameInput.value"),a.hideDialog(!0)):mxUtils.get(TEMPLATE_PATH+"/"+f.url,mxUtils.bind(this,function(b){200<=b.getStatus()&&299>=b.getStatus()&&(e(b.getText(),"nameInput.value"),a.hideDialog(!0))}))}}function w(b){b=b?"":"none";for(var a=C.querySelectorAll(".geTempDlgLinkToDiagram"),c=0;c<a.length;c++)a[c].style.display= -b}function z(b,a,c){function f(){K.innerHTML=a?mxResources.get("create"):mxResources.get("copy");w(!a)}P.innerHTML="";q();M=b;var h=null;if(c){h=document.createElement("table");h.className="geTempDlgDiagramsListGrid";var v=document.createElement("tr"),m=document.createElement("th");m.style.width="50%";m.innerHTML=mxResources.get("diagram",null,"Diagram");v.appendChild(m);m=document.createElement("th");m.style.width="25%";m.innerHTML=mxResources.get("changedBy",null,"Changed By");v.appendChild(m); +b}function y(b,a,c){function f(){K.innerHTML=a?mxResources.get("create"):mxResources.get("copy");w(!a)}P.innerHTML="";q();M=b;var h=null;if(c){h=document.createElement("table");h.className="geTempDlgDiagramsListGrid";var v=document.createElement("tr"),m=document.createElement("th");m.style.width="50%";m.innerHTML=mxResources.get("diagram",null,"Diagram");v.appendChild(m);m=document.createElement("th");m.style.width="25%";m.innerHTML=mxResources.get("changedBy",null,"Changed By");v.appendChild(m); m=document.createElement("th");m.style.width="25%";m.innerHTML=mxResources.get("lastModifiedOn",null,"Last modified on");v.appendChild(m);h.appendChild(v);P.appendChild(h)}for(v=0;v<b.length;v++){b[v].isExternal=!a;var d=b[v].url,m=mxUtils.htmlEntities(b[v].title),e=b[v].tooltip||b[v].title,x=b[v].imgUrl,g=mxUtils.htmlEntities(b[v].changedBy||""),k=mxUtils.htmlEntities(b[v].lastModifiedOn||"");x||(x=TEMPLATE_PATH+"/"+d.substring(0,d.length-4)+".png");d=c?50:15;null!=m&&m.length>d&&(m=m.substring(0, d)+"…");if(c){var C=document.createElement("tr"),x=document.createElement("td"),l=document.createElement("img");l.src="/images/icon-search.svg";l.className="geTempDlgDiagramListPreviewBtn";l.setAttribute("title",mxResources.get("preview"));x.appendChild(l);e=document.createElement("span");e.className="geTempDlgDiagramTitle";e.innerHTML=m;x.appendChild(e);C.appendChild(x);x=document.createElement("td");x.innerHTML=g;C.appendChild(x);x=document.createElement("td");x.innerHTML=k;C.appendChild(x); -h.appendChild(C);null==F&&(f(),q(C,"geTempDlgDiagramsListGridActive",b[v]));(function(b,a){mxEvent.addListener(C,"click",function(){F!=a&&(f(),q(a,"geTempDlgDiagramsListGridActive",b))});mxEvent.addListener(C,"dblclick",u);mxEvent.addListener(l,"click",function(){t(b)})})(b[v],C)}else{var A=document.createElement("div");A.className="geTempDlgDiagramTile";A.setAttribute("title",e);null==F&&(f(),q(A,"geTempDlgDiagramTileActive",b[v]));g=document.createElement("div");g.className="geTempDlgDiagramTileImg geTempDlgDiagramTileImgLoading"; -var z=document.createElement("img");z.style.display="none";(function(b,a){z.onload=function(){a.className="geTempDlgDiagramTileImg";b.style.display=""};z.onerror=function(){a.className="geTempDlgDiagramTileImg geTempDlgDiagramTileImgError"}})(z,g);z.src=x;g.appendChild(z);A.appendChild(g);g=document.createElement("div");g.className="geTempDlgDiagramTileLbl";g.innerHTML=null!=m?m:"";A.appendChild(g);l=document.createElement("img");l.src="/images/icon-search.svg";l.className="geTempDlgDiagramPreviewBtn"; -l.setAttribute("title",mxResources.get("preview"));A.appendChild(l);(function(b,a){mxEvent.addListener(A,"click",function(){F!=a&&(f(),q(a,"geTempDlgDiagramTileActive",b))});mxEvent.addListener(A,"dblclick",u);mxEvent.addListener(l,"click",function(){t(b)})})(b[v],A);P.appendChild(A)}}}function A(b,a){Q.innerHTML="";q();for(var c=!a&&5<b.length?5:b.length,f=0;f<c;f++){var h=b[f];h.isCategory=!0;var v=document.createElement("div"),m=mxResources.get(h.title);null==m&&(m=h.title.substring(0,1).toUpperCase()+ -h.title.substring(1));v.className="geTempDlgNewDiagramCatItem";v.setAttribute("title",m);m=mxUtils.htmlEntities(m);15<m.length&&(m=m.substring(0,15)+"…");null==F&&(K.innerHTML=mxResources.get("create"),w(),q(v,"geTempDlgNewDiagramCatItemActive",h));var d=document.createElement("div");d.className="geTempDlgNewDiagramCatItemImg";var e=document.createElement("img");e.src=NEW_DIAGRAM_CATS_PATH+"/"+h.img;d.appendChild(e);v.appendChild(d);d=document.createElement("div");d.className="geTempDlgNewDiagramCatItemLbl"; -d.innerHTML=m;v.appendChild(d);Q.appendChild(v);(function(b,a){mxEvent.addListener(v,"click",function(){F!=a&&(K.innerHTML=mxResources.get("create"),w(),q(a,"geTempDlgNewDiagramCatItemActive",b))});mxEvent.addListener(v,"dblclick",u)})(h,v)}T.style.display=5>b.length?"none":""}function m(b){var a=C.querySelector(".geTemplatesList"),c;for(c in b){var f=document.createElement("div"),h=mxResources.get(c),v=b[c];null==h&&(h=c.substring(0,1).toUpperCase()+c.substring(1));f.className="geTemplateCatLink"; -f.setAttribute("title",h+" ("+v.length+")");h=mxUtils.htmlEntities(h);15<h.length&&(h=h.substring(0,15)+"…");f.innerHTML=h+" ("+v.length+")";a.appendChild(f);(function(a,c,h){mxEvent.addListener(f,"click",function(){E!=h&&(null!=E?(E.style.fontWeight="normal",E.style.textDecoration="none"):(Y.style.display="none",N.style.minHeight="100%"),E=h,E.style.fontWeight="bold",E.style.textDecoration="underline",Z.scrollTop=0,B&&(H=!0),S.innerHTML=c,aa.style.display="none",z(b[a],!0))})})(c,h,f)}}function v(b){l&& -(Z.scrollTop=0,P.innerHTML="",U.spin(P),H=!1,B=!0,S.innerHTML=mxResources.get("recentDiag",null,"Recent Diagrams"),J=null,l(W,b?null:k))}function x(b){f();Z.scrollTop=0;P.innerHTML="";U.spin(P);H=!1;B=!0;da=null;S.innerHTML=mxResources.get("searchResults",null,"Search Results")+' "'+mxUtils.htmlEntities(b)+'"';p(b,W,D?null:k);J=b}c=null!=c?c:TEMPLATE_PATH+"/index.xml";g=null!=g?g:NEW_DIAGRAM_CATS_PATH+"/index.xml";var C=this.container,B=!1,H=!1,E=null,F=null,L=null,y=!1,D=!0,G=!1,M=[],J,T=C.querySelector(".geTempDlgShowAllBtn"), +h.appendChild(C);null==G&&(f(),q(C,"geTempDlgDiagramsListGridActive",b[v]));(function(b,a){mxEvent.addListener(C,"click",function(){G!=a&&(f(),q(a,"geTempDlgDiagramsListGridActive",b))});mxEvent.addListener(C,"dblclick",u);mxEvent.addListener(l,"click",function(){t(b)})})(b[v],C)}else{var A=document.createElement("div");A.className="geTempDlgDiagramTile";A.setAttribute("title",e);null==G&&(f(),q(A,"geTempDlgDiagramTileActive",b[v]));g=document.createElement("div");g.className="geTempDlgDiagramTileImg geTempDlgDiagramTileImgLoading"; +var y=document.createElement("img");y.style.display="none";(function(b,a){y.onload=function(){a.className="geTempDlgDiagramTileImg";b.style.display=""};y.onerror=function(){a.className="geTempDlgDiagramTileImg geTempDlgDiagramTileImgError"}})(y,g);y.src=x;g.appendChild(y);A.appendChild(g);g=document.createElement("div");g.className="geTempDlgDiagramTileLbl";g.innerHTML=null!=m?m:"";A.appendChild(g);l=document.createElement("img");l.src="/images/icon-search.svg";l.className="geTempDlgDiagramPreviewBtn"; +l.setAttribute("title",mxResources.get("preview"));A.appendChild(l);(function(b,a){mxEvent.addListener(A,"click",function(){G!=a&&(f(),q(a,"geTempDlgDiagramTileActive",b))});mxEvent.addListener(A,"dblclick",u);mxEvent.addListener(l,"click",function(){t(b)})})(b[v],A);P.appendChild(A)}}}function A(b,a){Q.innerHTML="";q();for(var c=!a&&5<b.length?5:b.length,f=0;f<c;f++){var h=b[f];h.isCategory=!0;var v=document.createElement("div"),m=mxResources.get(h.title);null==m&&(m=h.title.substring(0,1).toUpperCase()+ +h.title.substring(1));v.className="geTempDlgNewDiagramCatItem";v.setAttribute("title",m);m=mxUtils.htmlEntities(m);15<m.length&&(m=m.substring(0,15)+"…");null==G&&(K.innerHTML=mxResources.get("create"),w(),q(v,"geTempDlgNewDiagramCatItemActive",h));var d=document.createElement("div");d.className="geTempDlgNewDiagramCatItemImg";var e=document.createElement("img");e.src=NEW_DIAGRAM_CATS_PATH+"/"+h.img;d.appendChild(e);v.appendChild(d);d=document.createElement("div");d.className="geTempDlgNewDiagramCatItemLbl"; +d.innerHTML=m;v.appendChild(d);Q.appendChild(v);(function(b,a){mxEvent.addListener(v,"click",function(){G!=a&&(K.innerHTML=mxResources.get("create"),w(),q(a,"geTempDlgNewDiagramCatItemActive",b))});mxEvent.addListener(v,"dblclick",u)})(h,v)}T.style.display=5>b.length?"none":""}function m(b){var a=C.querySelector(".geTemplatesList"),c;for(c in b){var f=document.createElement("div"),h=mxResources.get(c),v=b[c];null==h&&(h=c.substring(0,1).toUpperCase()+c.substring(1));f.className="geTemplateCatLink"; +f.setAttribute("title",h+" ("+v.length+")");h=mxUtils.htmlEntities(h);15<h.length&&(h=h.substring(0,15)+"…");f.innerHTML=h+" ("+v.length+")";a.appendChild(f);(function(a,c,h){mxEvent.addListener(f,"click",function(){E!=h&&(null!=E?(E.style.fontWeight="normal",E.style.textDecoration="none"):(Y.style.display="none",N.style.minHeight="100%"),E=h,E.style.fontWeight="bold",E.style.textDecoration="underline",Z.scrollTop=0,B&&(F=!0),S.innerHTML=c,aa.style.display="none",y(b[a],!0))})})(c,h,f)}}function v(b){l&& +(Z.scrollTop=0,P.innerHTML="",U.spin(P),F=!1,B=!0,S.innerHTML=mxResources.get("recentDiag",null,"Recent Diagrams"),J=null,l(W,b?null:k))}function x(b){f();Z.scrollTop=0;P.innerHTML="";U.spin(P);F=!1;B=!0;da=null;S.innerHTML=mxResources.get("searchResults",null,"Search Results")+' "'+mxUtils.htmlEntities(b)+'"';p(b,W,D?null:k);J=b}c=null!=c?c:TEMPLATE_PATH+"/index.xml";g=null!=g?g:NEW_DIAGRAM_CATS_PATH+"/index.xml";var C=this.container,B=!1,F=!1,E=null,G=null,L=null,z=!1,D=!0,H=!1,M=[],J,T=C.querySelector(".geTempDlgShowAllBtn"), P=C.querySelector(".geTempDlgDiagramsTiles"),S=C.querySelector(".geTempDlgDiagramsListTitle"),aa=C.querySelector(".geTempDlgDiagramsListBtns"),Z=C.querySelector(".geTempDlgContent"),N=C.querySelector(".geTempDlgDiagramsList"),Y=C.querySelector(".geTempDlgNewDiagramCat"),Q=C.querySelector(".geTempDlgNewDiagramCatList"),K=C.querySelector(".geTempDlgCreateBtn"),U=new Spinner({lines:12,length:10,width:5,radius:10,rotate:0,color:"#000",speed:1.5,trail:60,shadow:!1,hwaccel:!1,top:"50px",zIndex:2E9});mxEvent.addListener(C.querySelector(".geTempDlgNewDiagramlbl"), "click",function(){f();Y.style.display="";N.style.minHeight="calc(100% - 280px)";v(D)});mxEvent.addListener(C.querySelector(".geTempDlgRadioBtn[data-id=allDiagramsBtn]"),"click",function(){h(this,"geTempDlgAllDiagramsBtnImg","all-diagrams","myDiagramsBtn","geTempDlgMyDiagramsBtnImg","my-diagrams",!0)&&(D=!0,null==J?v(D):x(J))});mxEvent.addListener(C.querySelector(".geTempDlgRadioBtn[data-id=myDiagramsBtn]"),"click",function(){h(this,"geTempDlgMyDiagramsBtnImg","my-diagrams","allDiagramsBtn","geTempDlgAllDiagramsBtnImg", -"all-diagrams",!0)&&(D=!1,null==J?v(D):x(J))});mxEvent.addListener(C.querySelector(".geTempDlgRadioBtn[data-id=listBtn]"),"click",function(){h(this,"geTempDlgListBtnImg","list","tilesBtn","geTempDlgTilesBtnImg","tiles",!1)&&(G=!0,z(M,!1,G))});mxEvent.addListener(C.querySelector(".geTempDlgRadioBtn[data-id=tilesBtn]"),"click",function(){h(this,"geTempDlgTilesBtnImg","tiles","listBtn","geTempDlgListBtnImg","list",!1)&&(G=!1,z(M,!1,G))});mxEvent.addListener(T,"click",function(){y?(Y.style.height="280px", -Q.style.height="190px",T.innerHTML=mxResources.get("showAll",null,"+ Show all"),A(I)):(Y.style.height="440px",Q.style.height="355px",T.innerHTML=mxResources.get("showLess",null,"- Show less"),A(I,!0));y=!y});var R=!1,O=!1,V={},I=[],X=1;mxUtils.get(c,function(b){if(!R){R=!0;for(b=b.getXml().documentElement.firstChild;null!=b;){if("undefined"!==typeof b.getAttribute){var a=b.getAttribute("url");if(null!=a){var c=a.indexOf("/"),a=a.substring(0,c),c=V[a];null==c&&(X++,c=[],V[a]=c);c.push({url:b.getAttribute("url"), -libs:b.getAttribute("libs"),title:b.getAttribute("title"),tooltip:b.getAttribute("url"),imgUrl:b.getAttribute("imgUrl")})}}b=b.nextSibling}m(V)}});mxUtils.get(g,function(b){if(!O){O=!0;for(b=b.getXml().documentElement.firstChild;null!=b;)"undefined"!==typeof b.getAttribute&&null!=b.getAttribute("title")&&I.push({img:b.getAttribute("img"),libs:b.getAttribute("libs"),title:b.getAttribute("title")}),b=b.nextSibling;A(I)}});var W=function(b,a){aa.style.display="";U.stop();B=!1;H?H=!1:a?P.innerHTML=a: -0==b.length?P.innerHTML=mxResources.get("noDiagrams",null,"No Diagrams Found"):z(b,!1,G)};v(D);var da=null;p&&mxEvent.addListener(C.querySelector(".geTempDlgSearchBox"),"keyup",function(b){var a=this;null!=da&&clearTimeout(da);13==b.keyCode?x(a.value):da=setTimeout(function(){x(a.value)},500)});mxEvent.addListener(K,"click",u);mxEvent.addListener(C.querySelector(".geTempDlgLinkToDiagramBtn"),"click",function(b){u(!0)});mxEvent.addListener(C.querySelector(".geTempDlgCancelBtn"),"click",function(){null!= +"all-diagrams",!0)&&(D=!1,null==J?v(D):x(J))});mxEvent.addListener(C.querySelector(".geTempDlgRadioBtn[data-id=listBtn]"),"click",function(){h(this,"geTempDlgListBtnImg","list","tilesBtn","geTempDlgTilesBtnImg","tiles",!1)&&(H=!0,y(M,!1,H))});mxEvent.addListener(C.querySelector(".geTempDlgRadioBtn[data-id=tilesBtn]"),"click",function(){h(this,"geTempDlgTilesBtnImg","tiles","listBtn","geTempDlgListBtnImg","list",!1)&&(H=!1,y(M,!1,H))});mxEvent.addListener(T,"click",function(){z?(Y.style.height="280px", +Q.style.height="190px",T.innerHTML=mxResources.get("showAll",null,"+ Show all"),A(I)):(Y.style.height="440px",Q.style.height="355px",T.innerHTML=mxResources.get("showLess",null,"- Show less"),A(I,!0));z=!z});var R=!1,O=!1,V={},I=[],X=1;mxUtils.get(c,function(b){if(!R){R=!0;for(b=b.getXml().documentElement.firstChild;null!=b;){if("undefined"!==typeof b.getAttribute){var a=b.getAttribute("url");if(null!=a){var c=a.indexOf("/"),a=a.substring(0,c),c=V[a];null==c&&(X++,c=[],V[a]=c);c.push({url:b.getAttribute("url"), +libs:b.getAttribute("libs"),title:b.getAttribute("title"),tooltip:b.getAttribute("url"),imgUrl:b.getAttribute("imgUrl")})}}b=b.nextSibling}m(V)}});mxUtils.get(g,function(b){if(!O){O=!0;for(b=b.getXml().documentElement.firstChild;null!=b;)"undefined"!==typeof b.getAttribute&&null!=b.getAttribute("title")&&I.push({img:b.getAttribute("img"),libs:b.getAttribute("libs"),title:b.getAttribute("title")}),b=b.nextSibling;A(I)}});var W=function(b,a){aa.style.display="";U.stop();B=!1;F?F=!1:a?P.innerHTML=a: +0==b.length?P.innerHTML=mxResources.get("noDiagrams",null,"No Diagrams Found"):y(b,!1,H)};v(D);var da=null;p&&mxEvent.addListener(C.querySelector(".geTempDlgSearchBox"),"keyup",function(b){var a=this;null!=da&&clearTimeout(da);13==b.keyCode?x(a.value):da=setTimeout(function(){x(a.value)},500)});mxEvent.addListener(K,"click",u);mxEvent.addListener(C.querySelector(".geTempDlgLinkToDiagramBtn"),"click",function(b){u(!0)});mxEvent.addListener(C.querySelector(".geTempDlgCancelBtn"),"click",function(){null!= d&&d();a.hideDialog(!0)})};(function(){Editor.prototype.appName="draw.io";Editor.closeImage=mxClient.IS_SVG?"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABkAAAAZCAMAAADzN3VRAAAApVBMVEUAAAD////k5OT///8AAAB1dXXMzMz9/f39/f37+/v5+fn+/v7///9iYmJaWlqFhYWnp6ejo6OHh4f////////////////7+/v5+fnx8fH///8AAAD///8bGxv7+/v5+fkoKCghISFDQ0MYGBjh4eHY2Njb29tQUFBvb29HR0c/Pz82NjYrKyu/v78SEhLu7u7s7OzV1dVVVVU7OzsVFRXAv78QEBBzqehMAAAAG3RSTlMAA/7p/vz5xZlrTiPL/v78+/v7+OXd2TYQDs8L70ZbAAABKUlEQVQoz3VS13LCMBBUXHChd8iukDslQChJ/v/TchaG4cXS+OSb1c7trU7V60OpdRz2ZtNZL4zXNlcN8BEtSG6+NxIXkeRPoBuQ1cjvZ31/VJFB10ISli6diYfH8iYO3WUNCcNlB0gTrXOtkxTo0O1aKKiBBMhhv2MNBQKoiA5wxlZo0JDzD3AYKbWacyj3fs01wxey0pyEP+R8pWKWXoqtIZ0DDg5pbki9krEKOa6LVDQsdoXEsi46Zqh69KFz7B1u7Hb2yDV8firXDKBlZ4UFiswKGRhXTS93/ECK7yxnJ3+S3y/ThpO+cfSD017nqa18aasabU0/t7d+tk0/1oMEJ1NaD67iwdF68OabFSLn+eHb0+vjy+uk8br9fdrftH0O2menfd7+AQfYM/lNjoDHAAAAAElFTkSuQmCC": IMAGE_PATH+"/delete.png";Editor.plusImage=mxClient.IS_SVG?"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBNYWNpbnRvc2giIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MDdCMTdENjVCOEM4MTFFNDlCRjVBNDdCODU5NjNBNUMiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MDdCMTdENjZCOEM4MTFFNDlCRjVBNDdCODU5NjNBNUMiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDowN0IxN0Q2M0I4QzgxMUU0OUJGNUE0N0I4NTk2M0E1QyIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDowN0IxN0Q2NEI4QzgxMUU0OUJGNUE0N0I4NTk2M0E1QyIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PtjrjmgAAAAtSURBVHjaYvz//z8DMigvLwcLdHZ2MiKLMzEQCaivkLGsrOw/dU0cAr4GCDAARQsQbTFrv10AAAAASUVORK5CYII=": IMAGE_PATH+"/plus.png";Editor.spinImage=mxClient.IS_SVG?"data:image/gif;base64,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": @@ -7469,8 +7471,9 @@ dispName:"Source Port Constraint",type:"enum",defVal:"none",enumList:[{val:"none type:"bool",defVal:!0},{name:"backgroundOutline",dispName:"Background Outline",type:"bool",defVal:!1},{name:"bendable",dispName:"Bendable",type:"bool",defVal:!0},{name:"movable",dispName:"Movable",type:"bool",defVal:!0},{name:"cloneable",dispName:"Cloneable",type:"bool",defVal:!0},{name:"deletable",dispName:"Deletable",type:"bool",defVal:!0},{name:"loopStyle",dispName:"Loop Style",type:"bool",defVal:!0}];Editor.commonVertexProperties=[{type:"separator"},{name:"fillOpacity",dispName:"Fill Opacity", type:"int",min:0,max:100,defVal:100},{name:"strokeOpacity",dispName:"Stroke Opacity",type:"int",min:0,max:100,defVal:100},{name:"overflow",dispName:"Text Overflow",defVal:"visible",type:"enum",enumList:[{val:"visible",dispName:"Visible"},{val:"hidden",dispName:"Hidden"},{val:"fill",dispName:"Fill"},{val:"width",dispName:"Width"}]},{name:"noLabel",dispName:"Hide Label",type:"bool",defVal:!1},{name:"labelPadding",dispName:"Label Padding",type:"float",defVal:0},{name:"direction",dispName:"Direction", type:"enum",defVal:"east",enumList:[{val:"east",dispName:"East"},{val:"north",dispName:"North"},{val:"south",dispName:"South"},{val:"west",dispName:"West"}]},{name:"portConstraint",dispName:"Port Constraint",type:"enum",defVal:"none",enumList:[{val:"none",dispName:"None"},{val:"east",dispName:"East"},{val:"north",dispName:"North"},{val:"south",dispName:"South"},{val:"west",dispName:"West"}]},{name:"portConstraintRotation",dispName:"Port Const. Rot.",type:"bool",defVal:!1},{name:"snapToPoint",dispName:"Snap to Point", -type:"bool",defVal:!1},{name:"fixDash",dispName:"Fixed Dash",type:"bool",defVal:!1},{name:"autosize",dispName:"Autosize",type:"bool",defVal:!1},{name:"collapsible",dispName:"Collapsible",type:"bool",defVal:!1},{name:"editable",dispName:"Editable",type:"bool",defVal:!0},{name:"backgroundOutline",dispName:"Background Outline",type:"bool",defVal:!1},{name:"movable",dispName:"Movable",type:"bool",defVal:!0},{name:"resizable",dispName:"Resizable",type:"bool",defVal:!0},{name:"resizeWidth",dispName:"Resize Width", -type:"bool",defVal:!1},{name:"resizeHeight",dispName:"Resize Height",type:"bool",defVal:!1},{name:"rotatable",dispName:"Rotatable",type:"bool",defVal:!0},{name:"cloneable",dispName:"Cloneable",type:"bool",defVal:!0},{name:"deletable",dispName:"Deletable",type:"bool",defVal:!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%<br><i style="color:gray;">%position%</i><br><a href="mailto:%email%">Email</a>\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## Parent style for nodes with child nodes (placeholders are replaced once).\n#\n# parentstyle: swimlane;whiteSpace=wrap;html=1;childLayout=stackLayout;horizontal=1;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;\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## Uses the given column name as the parent reference for cells. Default is no parent (empty or -).\n## The identity above is used for resolving the reference so it must be specified.\n#\n# parent: -\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 levels of hierarchical layouts. Default is 100.\n#\n# levelspacing: 100\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'; +type:"bool",defVal:!1},{name:"perimeter",dispName:"Perimeter",defVal:"none",type:"enum",enumList:[{val:"none",dispName:"None"},{val:"rectanglePerimeter",dispName:"Rectangle"},{val:"ellipsePerimeter",dispName:"Ellipse"},{val:"rhombusPerimeter",dispName:"Rhombus"},{val:"trianglePerimeter",dispName:"Triangle"},{val:"hexagonPerimeter2",dispName:"Hexagon"},{val:"lifelinePerimeter",dispName:"Lifeline"},{val:"orthogonalPerimeter",dispName:"Orthogonal"},{val:"backbonePerimeter",dispName:"Backbone"},{val:"calloutPerimeter", +dispName:"Callout"},{val:"parallelogramPerimeter",dispName:"Parallelogram"},{val:"trapezoidPerimeter",dispName:"Trapezoid"},{val:"stepPerimeter",dispName:"Step"}]},{name:"fixDash",dispName:"Fixed Dash",type:"bool",defVal:!1},{name:"autosize",dispName:"Autosize",type:"bool",defVal:!1},{name:"collapsible",dispName:"Collapsible",type:"bool",defVal:!1},{name:"editable",dispName:"Editable",type:"bool",defVal:!0},{name:"backgroundOutline",dispName:"Background Outline",type:"bool",defVal:!1},{name:"movable", +dispName:"Movable",type:"bool",defVal:!0},{name:"resizable",dispName:"Resizable",type:"bool",defVal:!0},{name:"resizeWidth",dispName:"Resize Width",type:"bool",defVal:!1},{name:"resizeHeight",dispName:"Resize Height",type:"bool",defVal:!1},{name:"rotatable",dispName:"Rotatable",type:"bool",defVal:!0},{name:"cloneable",dispName:"Cloneable",type:"bool",defVal:!0},{name:"deletable",dispName:"Deletable",type:"bool",defVal:!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%<br><i style="color:gray;">%position%</i><br><a href="mailto:%email%">Email</a>\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## Parent style for nodes with child nodes (placeholders are replaced once).\n#\n# parentstyle: swimlane;whiteSpace=wrap;html=1;childLayout=stackLayout;horizontal=1;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;\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## Uses the given column name as the parent reference for cells. Default is no parent (empty or -).\n## The identity above is used for resolving the reference so it must be specified.\n#\n# parent: -\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 levels of hierarchical layouts. Default is 100.\n#\n# levelspacing: 100\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.config=null;Editor.configVersion=null;Editor.configure=function(b,a){if(null!=b){Editor.config=b;Editor.configVersion=b.version;Menus.prototype.defaultFonts=b.defaultFonts||Menus.prototype.defaultFonts;ColorDialog.prototype.presetColors=b.presetColors||ColorDialog.prototype.presetColors;ColorDialog.prototype.defaultColors=b.defaultColors||ColorDialog.prototype.defaultColors;StyleFormatPanel.prototype.defaultColorSchemes=b.defaultColorSchemes||StyleFormatPanel.prototype.defaultColorSchemes; Graph.prototype.defaultEdgeLength=b.defaultEdgeLength||Graph.prototype.defaultEdgeLength;null!=b.templateFile&&(EditorUi.templateFile=b.templateFile);b.customFonts&&(Menus.prototype.defaultFonts=b.customFonts.concat(Menus.prototype.defaultFonts));b.customPresetColors&&(ColorDialog.prototype.presetColors=b.customPresetColors.concat(ColorDialog.prototype.presetColors));null!=b.customColorSchemes&&(StyleFormatPanel.prototype.defaultColorSchemes=b.customColorSchemes.concat(StyleFormatPanel.prototype.defaultColorSchemes)); if(null!=b.css){var c=document.createElement("style");c.setAttribute("type","text/css");c.appendChild(document.createTextNode(b.css));var f=document.getElementsByTagName("script")[0];f.parentNode.insertBefore(c,f)}null!=b.libraries&&(Sidebar.prototype.customEntries=b.libraries);null!=b.enabledLibraries&&(Sidebar.prototype.enabledLibraries=b.enabledLibraries);null!=b.defaultLibraries&&(Sidebar.prototype.defaultEntries=b.defaultLibraries);null!=b.defaultCustomLibraries&&(Editor.defaultCustomLibraries= @@ -7526,20 +7529,20 @@ h.push(c.dependentProps[b]);m.push(q)}t.editorUi.fireEvent(new mxEventObject("st values:a,type:c,defVal:h,countProperty:m,parentRow:d,isDeletable:!0,flipBkg:e}));btn=mxUtils.button("+",mxUtils.bind(t,function(a){for(var v=d,t=0;null!=v.nextSibling;)if(v.nextSibling.getAttribute("data-pName")==b)v=v.nextSibling,t++;else break;var g={type:c,parentRow:d,index:t,isDeletable:!0,defVal:h,countProperty:m},t=q(b,"",g,0==t%2,e);f(b,h,g);v.parentNode.insertBefore(t,v.nextSibling);mxEvent.consume(a)}));btn.style.height="16px";btn.style.width="25px";btn.className="geColorBtn";return btn} function e(b,a,c,f,h,m,d){if(0<h){var e=Array(h);a=null!=a?a.split(","):[];for(var v=0;v<h;v++)e[v]=null!=a[v]?a[v]:null!=f?f:"";w.push({name:b,values:e,type:c,defVal:f,parentRow:m,flipBkg:d,size:h})}return document.createElement("div")}function v(b,a,c){var h=document.createElement("input");h.type="checkbox";h.checked="1"==a;mxEvent.addListener(h,"change",function(){f(b,h.checked?"1":"0",c)});return h}function q(a,c,q,g,w){var u=q.dispName,x=q.type,k=document.createElement("tr");k.className="gePropRow"+ (w?"Dark":"")+(g?"Alt":"")+" gePropNonHeaderRow";k.setAttribute("data-pName",a);k.setAttribute("data-pValue",c);g=!1;null!=q.index&&(k.setAttribute("data-index",q.index),u=(null!=u?u:"")+"["+q.index+"]",g=!0);var l=document.createElement("td");l.className="gePropRowCell";l.innerHTML=mxUtils.htmlEntities(mxResources.get(u,null,u));g&&(l.style.textAlign="right");k.appendChild(l);l=document.createElement("td");l.className="gePropRowCell";if("color"==x)l.appendChild(m(a,c,q));else if("bool"==x||"boolean"== -x)l.appendChild(v(a,c,q));else if("enum"==x){var A=q.enumList;for(w=0;w<A.length;w++)if(u=A[w],u.val==c){l.innerHTML=mxUtils.htmlEntities(mxResources.get(u.dispName,null,u.dispName));break}mxEvent.addListener(l,"click",mxUtils.bind(t,function(){var m=document.createElement("select");h(l,m);for(var d=0;d<A.length;d++){var e=A[d],v=document.createElement("option");v.value=mxUtils.htmlEntities(e.val);v.innerHTML=mxUtils.htmlEntities(mxResources.get(e.dispName,null,e.dispName));m.appendChild(v)}m.value= -c;b.appendChild(m);mxEvent.addListener(m,"change",function(){var b=mxUtils.htmlEntities(m.value);f(a,b,q)});m.focus();mxEvent.addListener(m,"blur",function(){b.removeChild(m)})}))}else"dynamicArr"==x?l.appendChild(d(a,c,q.subType,q.subDefVal,q.countProperty,k,w)):"staticArr"==x?l.appendChild(e(a,c,q.subType,q.subDefVal,q.size,k,w)):(l.innerHTML=c,mxEvent.addListener(l,"click",mxUtils.bind(t,function(){function m(){var b=d.value;null!=q.min&&b<q.min?b=q.min:null!=q.max&&b>q.max&&(b=q.max);b=mxUtils.htmlEntities(("int"== -x?parseInt(b):b)+"");f(a,b,q)}var d=document.createElement("input");h(l,d,!0);d.value=c;d.className="gePropEditor";if("int"==x||"float"==x)d.type="number",d.step="int"==x?"1":"any",null!=q.min&&(d.min=parseFloat(q.min)),null!=q.max&&(d.max=parseFloat(q.max));b.appendChild(d);mxEvent.addListener(d,"change",m);mxEvent.addListener(d,"keypress",function(b){13==b.keyCode&&m()});d.focus();mxEvent.addListener(d,"blur",function(){b.removeChild(d)})})));q.isDeletable&&(w=mxUtils.button("-",mxUtils.bind(t, -function(b){f(a,"",q,q.index);mxEvent.consume(b)})),w.style.height="16px",w.style.width="25px",w.style["float"]="right",w.className="geColorBtn",l.appendChild(w));k.appendChild(l);return k}var t=this,g=this.editorUi.editor.graph,w=[];b.style.position="relative";b.style.padding="0";var u=document.createElement("table");u.style.whiteSpace="nowrap";u.style.width="100%";var x=document.createElement("tr");x.className="gePropHeader";var k=document.createElement("th");k.className="gePropHeaderCell";var l= -document.createElement("img");l.src=Sidebar.prototype.expandedImage;k.appendChild(l);mxUtils.write(k,mxResources.get("property",null,"Property"));x.style.cursor="pointer";var A=function(){var a=u.querySelectorAll(".gePropNonHeaderRow"),c;if(t.editorUi.propertiesCollapsed){l.src=Sidebar.prototype.collapsedImage;c="none";for(var f=b.childNodes.length-1;0<=f;f--)try{var h=b.childNodes[f],m=h.nodeName.toUpperCase();"INPUT"!=m&&"SELECT"!=m||b.removeChild(h)}catch(ea){}}else l.src=Sidebar.prototype.expandedImage, -c="";for(f=0;f<a.length;f++)a[f].style.display=c};mxEvent.addListener(x,"click",function(){t.editorUi.propertiesCollapsed=!t.editorUi.propertiesCollapsed;A()});x.appendChild(k);k=document.createElement("th");k.className="gePropHeaderCell";k.innerHTML=mxResources.get("value",null,"Value");x.appendChild(k);u.appendChild(x);var z=!1,p=!1,C;for(C in a){var x=a[C],n=null!=c.style[C]?mxUtils.htmlEntities(c.style[C]+""):x.defVal;if("separator"==x.type)p=!p;else{if("staticArr"==x.type)x.size=parseInt(c.style[x.sizeProperty]|| -a[x.sizeProperty].defVal)||0;else if(null!=x.dependentProps){for(var U=x.dependentProps,R=[],O=[],k=0;k<U.length;k++){var V=c.style[U[k]];O.push(a[U[k]].subDefVal);R.push(null!=V?V.split(","):[])}x.dependentPropsDefVal=O;x.dependentPropsVals=R}u.appendChild(q(C,n,x,z,p));z=!z}}for(k=0;k<w.length;k++)for(x=w[k],a=x.parentRow,c=0;c<x.values.length;c++)C=q(x.name,x.values[c],{type:x.type,parentRow:x.parentRow,isDeletable:x.isDeletable,index:c,defVal:x.defVal,countProperty:x.countProperty,size:x.size}, -0==c%2,x.flipBkg),a.parentNode.insertBefore(C,a.nextSibling),a=C;b.appendChild(u);A();return b};StyleFormatPanel.prototype.addStyles=function(b){function a(b){function a(b){var a=mxUtils.button("",function(a){f.getModel().beginUpdate();try{var c=f.getSelectionCells();for(a=0;a<c.length;a++){for(var h=f.getModel().getStyle(c[a]),d=0;d<m.length;d++)h=mxUtils.removeStylename(h,m[d]);var e=f.getModel().isVertex(c[a])?f.defaultVertexStyle:f.defaultEdgeStyle;null!=b?(h=mxUtils.setStyle(h,mxConstants.STYLE_FILLCOLOR, -b.fill||mxUtils.getValue(e,mxConstants.STYLE_FILLCOLOR,null)),h=mxUtils.setStyle(h,mxConstants.STYLE_STROKECOLOR,b.stroke||mxUtils.getValue(e,mxConstants.STYLE_STROKECOLOR,null)),h=mxUtils.setStyle(h,mxConstants.STYLE_GRADIENTCOLOR,b.gradient||mxUtils.getValue(e,mxConstants.STYLE_GRADIENTCOLOR,null)),f.getModel().isVertex(c[a])&&(h=mxUtils.setStyle(h,mxConstants.STYLE_FONTCOLOR,b.font||mxUtils.getValue(e,mxConstants.STYLE_FONTCOLOR,null)))):(h=mxUtils.setStyle(h,mxConstants.STYLE_FILLCOLOR,mxUtils.getValue(e, -mxConstants.STYLE_FILLCOLOR,"#ffffff")),h=mxUtils.setStyle(h,mxConstants.STYLE_STROKECOLOR,mxUtils.getValue(e,mxConstants.STYLE_STROKECOLOR,"#000000")),h=mxUtils.setStyle(h,mxConstants.STYLE_GRADIENTCOLOR,mxUtils.getValue(e,mxConstants.STYLE_GRADIENTCOLOR,null)),f.getModel().isVertex(c[a])&&(h=mxUtils.setStyle(h,mxConstants.STYLE_FONTCOLOR,mxUtils.getValue(e,mxConstants.STYLE_FONTCOLOR,null))));f.getModel().setStyle(c[a],h)}}finally{f.getModel().endUpdate()}});a.className="geStyleButton";a.style.width= -"36px";a.style.height="30px";a.style.margin="0px 6px 6px 0px";if(null!=b)null!=b.gradient?mxClient.IS_IE&&(mxClient.IS_QUIRKS||10>document.documentMode)?a.style.filter="progid:DXImageTransform.Microsoft.Gradient(StartColorStr='"+b.fill+"', EndColorStr='"+b.gradient+"', GradientType=0)":a.style.backgroundImage="linear-gradient("+b.fill+" 0px,"+b.gradient+" 100%)":b.fill==mxConstants.NONE?a.style.background="url('"+Dialog.prototype.noColorImage+"')":a.style.backgroundColor=b.fill||mxUtils.getValue(f.defaultVertexStyle, -mxConstants.STYLE_FILLCOLOR,"#ffffff"),a.style.border="1px solid "+(b.stroke||mxUtils.getValue(f.defaultVertexStyle,mxConstants.STYLE_STROKECOLOR,"#000000"));else{var c=mxUtils.getValue(f.defaultVertexStyle,mxConstants.STYLE_FILLCOLOR,"#ffffff"),d=mxUtils.getValue(f.defaultVertexStyle,mxConstants.STYLE_STROKECOLOR,"#000000");a.style.backgroundColor=c;a.style.border="1px solid "+d}h.appendChild(a)}h.innerHTML="";for(var c=0;c<b.length;c++)0<c&&0==mxUtils.mod(c,4)&&mxUtils.br(h),a(b[c])}function c(b){mxEvent.addListener(b, -"mouseenter",function(){b.style.opacity="1"});mxEvent.addListener(b,"mouseleave",function(){b.style.opacity="0.5"})}var f=this.editorUi.editor.graph,h=document.createElement("div");h.style.whiteSpace="nowrap";h.style.paddingLeft="24px";h.style.paddingRight="20px";b.style.paddingLeft="16px";b.style.paddingBottom="6px";b.style.position="relative";b.appendChild(h);var m="plain-gray plain-blue plain-green plain-turquoise plain-orange plain-yellow plain-red plain-pink plain-purple gray blue green turquoise orange yellow red pink purple".split(" "); -null==this.editorUi.currentScheme&&(this.editorUi.currentScheme=0);var d=document.createElement("div");d.style.cssText="position:absolute;left:10px;top:8px;bottom:8px;width:20px;margin:4px;opacity:0.5;background-repeat:no-repeat;background-position:center center;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAQBAMAAADQT4M0AAAAIVBMVEUAAAB2dnZ4eHh3d3d1dXVxcXF2dnZ2dnZ2dnZxcXF2dnYmb3w1AAAACnRSTlMAfCTkhhvb7cQSPH2JPgAAADRJREFUCNdjwACMAmBKaiGYs2oJmLPKAZ3DabU8AMRTXpUKopislqFyVzCAuUZgikkBZjoAcMYLnp53P/UAAAAASUVORK5CYII=);"; +x)l.appendChild(v(a,c,q));else if("enum"==x){var A=q.enumList;for(w=0;w<A.length;w++)if(u=A[w],u.val==c){l.innerHTML=mxUtils.htmlEntities(mxResources.get(u.dispName,null,u.dispName));break}mxEvent.addListener(l,"click",mxUtils.bind(t,function(){var m=document.createElement("select");h(l,m);for(var d=0;d<A.length;d++){var v=A[d],e=document.createElement("option");e.value=mxUtils.htmlEntities(v.val);e.innerHTML=mxUtils.htmlEntities(mxResources.get(v.dispName,null,v.dispName));m.appendChild(e)}m.value= +c;b.appendChild(m);mxEvent.addListener(m,"change",function(){var b=mxUtils.htmlEntities(m.value);f(a,b,q)});m.focus();mxEvent.addListener(m,"blur",function(){b.removeChild(m)})}))}else"dynamicArr"==x?l.appendChild(d(a,c,q.subType,q.subDefVal,q.countProperty,k,w)):"staticArr"==x?l.appendChild(e(a,c,q.subType,q.subDefVal,q.size,k,w)):(l.innerHTML=c,mxEvent.addListener(l,"click",mxUtils.bind(t,function(){function m(){var b=d.value,b=0==b.length&&"string"!=x?0:b;q.allowAuto&&("auto"==b.trim().toLowerCase()? +(b="auto",x="string"):(b=parseFloat(b),b=isNaN(b)?0:b));null!=q.min&&b<q.min?b=q.min:null!=q.max&&b>q.max&&(b=q.max);b=mxUtils.htmlEntities(("int"==x?parseInt(b):b)+"");f(a,b,q)}var d=document.createElement("input");h(l,d,!0);d.value=c;d.className="gePropEditor";"int"!=x&&"float"!=x||q.allowAuto||(d.type="number",d.step="int"==x?"1":"any",null!=q.min&&(d.min=parseFloat(q.min)),null!=q.max&&(d.max=parseFloat(q.max)));b.appendChild(d);mxEvent.addListener(d,"change",m);mxEvent.addListener(d,"keypress", +function(b){13==b.keyCode&&m()});d.focus();mxEvent.addListener(d,"blur",function(){b.removeChild(d)})})));q.isDeletable&&(w=mxUtils.button("-",mxUtils.bind(t,function(b){f(a,"",q,q.index);mxEvent.consume(b)})),w.style.height="16px",w.style.width="25px",w.style["float"]="right",w.className="geColorBtn",l.appendChild(w));k.appendChild(l);return k}var t=this,g=this.editorUi.editor.graph,w=[];b.style.position="relative";b.style.padding="0";var u=document.createElement("table");u.style.whiteSpace="nowrap"; +u.style.width="100%";var x=document.createElement("tr");x.className="gePropHeader";var k=document.createElement("th");k.className="gePropHeaderCell";var l=document.createElement("img");l.src=Sidebar.prototype.expandedImage;k.appendChild(l);mxUtils.write(k,mxResources.get("property",null,"Property"));x.style.cursor="pointer";var A=function(){var a=u.querySelectorAll(".gePropNonHeaderRow"),c;if(t.editorUi.propertiesCollapsed){l.src=Sidebar.prototype.collapsedImage;c="none";for(var f=b.childNodes.length- +1;0<=f;f--)try{var h=b.childNodes[f],m=h.nodeName.toUpperCase();"INPUT"!=m&&"SELECT"!=m||b.removeChild(h)}catch(ea){}}else l.src=Sidebar.prototype.expandedImage,c="";for(f=0;f<a.length;f++)a[f].style.display=c};mxEvent.addListener(x,"click",function(){t.editorUi.propertiesCollapsed=!t.editorUi.propertiesCollapsed;A()});x.appendChild(k);k=document.createElement("th");k.className="gePropHeaderCell";k.innerHTML=mxResources.get("value",null,"Value");x.appendChild(k);u.appendChild(x);var y=!1,C=!1,p;for(p in a){var x= +a[p],n=null!=c.style[p]?mxUtils.htmlEntities(c.style[p]+""):x.defVal;if("separator"==x.type)C=!C;else{if("staticArr"==x.type)x.size=parseInt(c.style[x.sizeProperty]||a[x.sizeProperty].defVal)||0;else if(null!=x.dependentProps){for(var U=x.dependentProps,R=[],O=[],k=0;k<U.length;k++){var V=c.style[U[k]];O.push(a[U[k]].subDefVal);R.push(null!=V?V.split(","):[])}x.dependentPropsDefVal=O;x.dependentPropsVals=R}u.appendChild(q(p,n,x,y,C));y=!y}}for(k=0;k<w.length;k++)for(x=w[k],a=x.parentRow,c=0;c<x.values.length;c++)p= +q(x.name,x.values[c],{type:x.type,parentRow:x.parentRow,isDeletable:x.isDeletable,index:c,defVal:x.defVal,countProperty:x.countProperty,size:x.size},0==c%2,x.flipBkg),a.parentNode.insertBefore(p,a.nextSibling),a=p;b.appendChild(u);A();return b};StyleFormatPanel.prototype.addStyles=function(b){function a(b){function a(b){var a=mxUtils.button("",function(a){f.getModel().beginUpdate();try{var c=f.getSelectionCells();for(a=0;a<c.length;a++){for(var h=f.getModel().getStyle(c[a]),d=0;d<m.length;d++)h=mxUtils.removeStylename(h, +m[d]);var e=f.getModel().isVertex(c[a])?f.defaultVertexStyle:f.defaultEdgeStyle;null!=b?(h=mxUtils.setStyle(h,mxConstants.STYLE_FILLCOLOR,b.fill||mxUtils.getValue(e,mxConstants.STYLE_FILLCOLOR,null)),h=mxUtils.setStyle(h,mxConstants.STYLE_STROKECOLOR,b.stroke||mxUtils.getValue(e,mxConstants.STYLE_STROKECOLOR,null)),h=mxUtils.setStyle(h,mxConstants.STYLE_GRADIENTCOLOR,b.gradient||mxUtils.getValue(e,mxConstants.STYLE_GRADIENTCOLOR,null)),f.getModel().isVertex(c[a])&&(h=mxUtils.setStyle(h,mxConstants.STYLE_FONTCOLOR, +b.font||mxUtils.getValue(e,mxConstants.STYLE_FONTCOLOR,null)))):(h=mxUtils.setStyle(h,mxConstants.STYLE_FILLCOLOR,mxUtils.getValue(e,mxConstants.STYLE_FILLCOLOR,"#ffffff")),h=mxUtils.setStyle(h,mxConstants.STYLE_STROKECOLOR,mxUtils.getValue(e,mxConstants.STYLE_STROKECOLOR,"#000000")),h=mxUtils.setStyle(h,mxConstants.STYLE_GRADIENTCOLOR,mxUtils.getValue(e,mxConstants.STYLE_GRADIENTCOLOR,null)),f.getModel().isVertex(c[a])&&(h=mxUtils.setStyle(h,mxConstants.STYLE_FONTCOLOR,mxUtils.getValue(e,mxConstants.STYLE_FONTCOLOR, +null))));f.getModel().setStyle(c[a],h)}}finally{f.getModel().endUpdate()}});a.className="geStyleButton";a.style.width="36px";a.style.height="30px";a.style.margin="0px 6px 6px 0px";if(null!=b)null!=b.gradient?mxClient.IS_IE&&(mxClient.IS_QUIRKS||10>document.documentMode)?a.style.filter="progid:DXImageTransform.Microsoft.Gradient(StartColorStr='"+b.fill+"', EndColorStr='"+b.gradient+"', GradientType=0)":a.style.backgroundImage="linear-gradient("+b.fill+" 0px,"+b.gradient+" 100%)":b.fill==mxConstants.NONE? +a.style.background="url('"+Dialog.prototype.noColorImage+"')":a.style.backgroundColor=b.fill||mxUtils.getValue(f.defaultVertexStyle,mxConstants.STYLE_FILLCOLOR,"#ffffff"),a.style.border="1px solid "+(b.stroke||mxUtils.getValue(f.defaultVertexStyle,mxConstants.STYLE_STROKECOLOR,"#000000"));else{var c=mxUtils.getValue(f.defaultVertexStyle,mxConstants.STYLE_FILLCOLOR,"#ffffff"),d=mxUtils.getValue(f.defaultVertexStyle,mxConstants.STYLE_STROKECOLOR,"#000000");a.style.backgroundColor=c;a.style.border="1px solid "+ +d}h.appendChild(a)}h.innerHTML="";for(var c=0;c<b.length;c++)0<c&&0==mxUtils.mod(c,4)&&mxUtils.br(h),a(b[c])}function c(b){mxEvent.addListener(b,"mouseenter",function(){b.style.opacity="1"});mxEvent.addListener(b,"mouseleave",function(){b.style.opacity="0.5"})}var f=this.editorUi.editor.graph,h=document.createElement("div");h.style.whiteSpace="nowrap";h.style.paddingLeft="24px";h.style.paddingRight="20px";b.style.paddingLeft="16px";b.style.paddingBottom="6px";b.style.position="relative";b.appendChild(h); +var m="plain-gray plain-blue plain-green plain-turquoise plain-orange plain-yellow plain-red plain-pink plain-purple gray blue green turquoise orange yellow red pink purple".split(" ");null==this.editorUi.currentScheme&&(this.editorUi.currentScheme=0);var d=document.createElement("div");d.style.cssText="position:absolute;left:10px;top:8px;bottom:8px;width:20px;margin:4px;opacity:0.5;background-repeat:no-repeat;background-position:center center;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAQBAMAAADQT4M0AAAAIVBMVEUAAAB2dnZ4eHh3d3d1dXVxcXF2dnZ2dnZ2dnZxcXF2dnYmb3w1AAAACnRSTlMAfCTkhhvb7cQSPH2JPgAAADRJREFUCNdjwACMAmBKaiGYs2oJmLPKAZ3DabU8AMRTXpUKopislqFyVzCAuUZgikkBZjoAcMYLnp53P/UAAAAASUVORK5CYII=);"; mxEvent.addListener(d,"click",mxUtils.bind(this,function(){this.editorUi.currentScheme=mxUtils.mod(this.editorUi.currentScheme-1,this.defaultColorSchemes.length);a(this.defaultColorSchemes[this.editorUi.currentScheme])}));var e=document.createElement("div");e.style.cssText="position:absolute;left:202px;top:8px;bottom:8px;width:20px;margin:4px;opacity:0.5;background-repeat:no-repeat;background-position:center center;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAQBAMAAADQT4M0AAAAIVBMVEUAAAB2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnYBuwCcAAAACnRSTlMAfCTkhhvb7cQSPH2JPgAAADZJREFUCNdjQAOMAmBKaiGY8loF5rKswsZlrVo8AUiFrTICcbIWK8A5DF1gDoMymMPApIAwHwCS0Qx/U7qCBQAAAABJRU5ErkJggg==);"; 1<this.defaultColorSchemes.length&&(b.appendChild(d),b.appendChild(e));mxEvent.addListener(e,"click",mxUtils.bind(this,function(){this.editorUi.currentScheme=mxUtils.mod(this.editorUi.currentScheme+1,this.defaultColorSchemes.length);a(this.defaultColorSchemes[this.editorUi.currentScheme])}));c(d);c(e);a(this.defaultColorSchemes[this.editorUi.currentScheme]);return b};StyleFormatPanel.prototype.addEditOps=function(b){var a=this.format.getSelectionState(),c=null;1==this.editorUi.editor.graph.getSelectionCount()&& (c=mxUtils.button(mxResources.get("editStyle"),mxUtils.bind(this,function(b){this.editorUi.actions.get("editStyle").funct()})),c.setAttribute("title",mxResources.get("editStyle")+" ("+this.editorUi.actions.get("editStyle").shortcut+")"),c.style.width="202px",c.style.marginBottom="2px",b.appendChild(c));var f=this.editorUi.editor.graph,h=f.view.getState(f.getSelectionCell());1==f.getSelectionCount()&&null!=h&&null!=h.shape&&null!=h.shape.stencil?(a=mxUtils.button(mxResources.get("editShape"),mxUtils.bind(this, @@ -7550,7 +7553,7 @@ this.getInsertPoint=function(){return null!=a?this.getPointForEvent(a):c.apply(t a)};c.fill=!0;c.unitSize=mxRackContainer.unitSize|20;c.marginLeft=a.marginLeft||0;c.marginRight=a.marginRight||0;c.marginTop=a.marginTop||0;c.marginBottom=a.marginBottom||0;c.resizeParent=!1;return c}return f.apply(this,arguments)}};var q=Graph.prototype.isCssTransformsSupported;Graph.prototype.isCssTransformsSupported=function(){return q.apply(this,arguments)&&!mxClient.IS_SF};var u=Graph.prototype.getGlobalVariable;Graph.prototype.getGlobalVariable=function(b){var a=u.apply(this,arguments);if(null== a){if(null==this.globalUrlVars&&null!=urlParams.vars)try{this.globalUrlVars=JSON.parse(decodeURIComponent(urlParams.vars))}catch(C){null!=window.console&&console.log("Error in vars URL parameter: "+C)}null!=this.globalUrlVars&&(a=this.globalUrlVars[b])}return a};var w=mxGraphView.prototype.validateBackgroundPage;mxGraphView.prototype.validateBackgroundPage=function(){w.apply(this,arguments);if(mxClient.IS_GC&&null!=this.getDrawPane()){var b=this.getDrawPane().parentNode;!this.graph.mathEnabled||mxClient.NO_FO|| null!=this.webKitForceRepaintNode&&null!=this.webKitForceRepaintNode.parentNode||"svg"!=this.graph.container.firstChild.nodeName?null==this.webKitForceRepaintNode||this.graph.mathEnabled&&("svg"==this.graph.container.firstChild.nodeName||this.graph.container.firstChild==this.webKitForceRepaintNode)||(null!=this.webKitForceRepaintNode.parentNode&&this.webKitForceRepaintNode.parentNode.removeChild(this.webKitForceRepaintNode),this.webKitForceRepaintNode=null):(this.webKitForceRepaintNode=document.createElement("div"), -this.webKitForceRepaintNode.style.cssText="position:absolute;",b.ownerSVGElement.parentNode.insertBefore(this.webKitForceRepaintNode,b.ownerSVGElement))}};var z=Graph.prototype.loadStylesheet;Graph.prototype.loadStylesheet=function(){z.apply(this,arguments);this.currentStyle="default-style2"};Graph.prototype.handleCustomLink=function(b){if("data:action/json,"==b.substring(0,17)&&(b=JSON.parse(b.substring(17)),null!=b.actions)){for(var a=0;a<b.actions.length;a++)if(null!=b.actions[a].open)if(this.isCustomLink(b.actions[a].open)){if(!this.customLinkClicked(b.actions[a].open))return}else this.openLink(b.actions[a].open); +this.webKitForceRepaintNode.style.cssText="position:absolute;",b.ownerSVGElement.parentNode.insertBefore(this.webKitForceRepaintNode,b.ownerSVGElement))}};var y=Graph.prototype.loadStylesheet;Graph.prototype.loadStylesheet=function(){y.apply(this,arguments);this.currentStyle="default-style2"};Graph.prototype.handleCustomLink=function(b){if("data:action/json,"==b.substring(0,17)&&(b=JSON.parse(b.substring(17)),null!=b.actions)){for(var a=0;a<b.actions.length;a++)if(null!=b.actions[a].open)if(this.isCustomLink(b.actions[a].open)){if(!this.customLinkClicked(b.actions[a].open))return}else this.openLink(b.actions[a].open); this.model.beginUpdate();try{for(a=0;a<b.actions.length;a++)this.handleLinkAction(b.actions[a])}finally{this.model.endUpdate()}}};Graph.prototype.handleLinkAction=function(b){var a=[];null!=b.select&&this.isEnabled()&&(a=this.getCellsForAction(b.select),this.setSelectionCells(a));null!=b.highlight&&(a=this.getCellsForAction(b.highlight),this.highlightCells(a,b.highlight.color,b.highlight.duration,b.highlight.opacity));null!=b.toggle&&this.toggleCells(this.getCellsForAction(b.toggle));null!=b.show&& this.setCellsVisible(this.getCellsForAction(b.show),!0);null!=b.hide&&this.setCellsVisible(this.getCellsForAction(b.hide),!1);null!=b.scroll&&(a=this.getCellsForAction(b.scroll));0<a.length&&this.scrollCellToVisible(a[0])};Graph.prototype.getCellsForAction=function(b){return this.getCellsById(b.cells).concat(this.getCellsForTags(b.tags))};Graph.prototype.getCellsById=function(b){var a=[];if(null!=b)for(var c=0;c<b.length;c++)if("*"==b[c])var f=this.getDefaultParent(),a=a.concat(this.model.filterDescendants(function(b){return b!= f},f));else{var h=this.model.getCell(b[c]);null!=h&&a.push(h)}return a};Graph.prototype.getCellsForTags=function(b,a,c){var f=[];if(null!=b){a=null!=a?a:this.model.getDescendants(this.model.getRoot());c=null!=c?c:"tags";for(var h=0;h<a.length;h++)if(this.model.isVertex(a[h])||this.model.isEdge(a[h])){var m=null!=a[h].value&&"object"==typeof a[h].value?mxUtils.trim(a[h].value.getAttribute(c)||""):"",d=!0;if(0<m.length)for(var m=m.toLowerCase().split(" "),e=0;e<b.length&&d;e++)var q=mxUtils.trim(b[e]).toLowerCase(), @@ -7572,17 +7575,17 @@ mxStencilRegistry.libraries.aws3d=[SHAPES_PATH+"/mxAWS3D.js",STENCIL_PATH+"/aws3 Math.min(e,Math.max(parseInt(u.value),parseInt(w.value))));w.value=Math.max(1,Math.min(e,Math.min(parseInt(u.value),parseInt(w.value))))}function f(a){function c(a,c,h){var m=a.getGraphBounds(),d=0,e=0,q=da.get(),t=1/a.pageScale,g=A.checked;if(g)var t=parseInt(X.value),v=parseInt(W.value),t=Math.min(q.height*v/(m.height/a.view.scale),q.width*t/(m.width/a.view.scale));else t=parseInt(l.value)/(100*a.pageScale),isNaN(t)&&(f=1/a.pageScale,l.value="100 %");q=mxRectangle.fromRectangle(q);q.width=Math.ceil(q.width* f);q.height=Math.ceil(q.height*f);t*=f;!g&&a.pageVisible?(m=a.getPageLayout(),d-=m.x*q.width,e-=m.y*q.height):g=!0;if(null==c){c=PrintDialog.createPrintPreview(a,t,q,0,d,e,g);c.pageSelector=!1;c.mathEnabled=!1;a=b.getCurrentFile();null!=a&&(c.title=a.getTitle());var w=c.writeHead;c.writeHead=function(a){w.apply(this,arguments);null!=b.editor.fontCss&&(a.writeln('<style type="text/css">'),a.writeln(b.editor.fontCss),a.writeln("</style>"))};if("undefined"!==typeof MathJax){var u=c.renderPage;c.renderPage= function(b,a,c,f,h,m){var d=mxClient.NO_FO;mxClient.NO_FO=this.graph.mathEnabled&&!this.useForeignObjectForMath?!0:this.originalNoForeignObject;var e=u.apply(this,arguments);mxClient.NO_FO=d;this.graph.mathEnabled?this.mathEnabled=this.mathEnabled||!0:e.className="geDisableMathJax";return e}}c.open(null,null,h,!0)}else{q=a.background;if(null==q||""==q||q==mxConstants.NONE)q="#ffffff";c.backgroundColor=q;c.autoOrigin=g;c.appendGraph(a,t,d,e,h,!0)}return c}var f=parseInt(ba.value)/100;isNaN(f)&&(f= -1,ba.value="100 %");var f=.75*f,m=w.value,d=u.value,e=!v.checked,t=null;e&&(e=m==q&&d==q);if(!e&&null!=b.pages&&b.pages.length){var g=0,e=b.pages.length-1;v.checked||(g=parseInt(m)-1,e=parseInt(d)-1);for(var k=g;k<=e;k++){var x=b.pages[k],m=x==b.currentPage?h:null;if(null==m){var m=b.createTemporaryGraph(h.getStylesheet()),d=!0,g=!1,z=null,p=null;null==x.viewState&&null==x.mapping&&null==x.root&&b.updatePageRoot(x);null!=x.viewState?(d=x.viewState.pageVisible,g=x.viewState.mathEnabled,z=x.viewState.background, -p=x.viewState.backgroundImage):null!=x.mapping&&null!=x.mapping.diagramMap&&(g="0"!=x.mapping.diagramMap.get("mathEnabled"),z=x.mapping.diagramMap.get("background"),p=x.mapping.diagramMap.get("backgroundImage"),p=null!=p&&0<p.length?JSON.parse(p):null);m.background=z;m.backgroundImage=null!=p?new mxImage(p.src,p.width,p.height):null;m.pageVisible=d;m.mathEnabled=g;var y=m.getGlobalVariable;m.getGlobalVariable=function(b){return"page"==b?x.getName():"pagenumber"==b?k+1:y.apply(this,arguments)};document.body.appendChild(m.container); +1,ba.value="100 %");var f=.75*f,m=w.value,d=u.value,e=!g.checked,t=null;e&&(e=m==q&&d==q);if(!e&&null!=b.pages&&b.pages.length){var v=0,e=b.pages.length-1;g.checked||(v=parseInt(m)-1,e=parseInt(d)-1);for(var k=v;k<=e;k++){var x=b.pages[k],m=x==b.currentPage?h:null;if(null==m){var m=b.createTemporaryGraph(h.getStylesheet()),d=!0,v=!1,y=null,p=null;null==x.viewState&&null==x.mapping&&null==x.root&&b.updatePageRoot(x);null!=x.viewState?(d=x.viewState.pageVisible,v=x.viewState.mathEnabled,y=x.viewState.background, +p=x.viewState.backgroundImage):null!=x.mapping&&null!=x.mapping.diagramMap&&(v="0"!=x.mapping.diagramMap.get("mathEnabled"),y=x.mapping.diagramMap.get("background"),p=x.mapping.diagramMap.get("backgroundImage"),p=null!=p&&0<p.length?JSON.parse(p):null);m.background=y;m.backgroundImage=null!=p?new mxImage(p.src,p.width,p.height):null;m.pageVisible=d;m.mathEnabled=v;var z=m.getGlobalVariable;m.getGlobalVariable=function(b){return"page"==b?x.getName():"pagenumber"==b?k+1:z.apply(this,arguments)};document.body.appendChild(m.container); b.updatePageRoot(x);m.model.setRoot(x.root)}t=c(m,t,k!=e);m!=h&&m.container.parentNode.removeChild(m.container)}}else t=c(h);t.mathEnabled&&(e=t.wnd.document,e.writeln('<script type="text/x-mathjax-config">'),e.writeln("MathJax.Hub.Config({"),e.writeln("showMathMenu: false,"),e.writeln('messageStyle: "none",'),e.writeln('jax: ["input/TeX", "input/MathML", "input/AsciiMath", "output/HTML-CSS"],'),e.writeln('extensions: ["tex2jax.js", "mml2jax.js", "asciimath2jax.js"],'),e.writeln('"HTML-CSS": {'), e.writeln("imageFont: null"),e.writeln("},"),e.writeln("TeX: {"),e.writeln('extensions: ["AMSmath.js", "AMSsymbols.js", "noErrors.js", "noUndefined.js"]'),e.writeln("},"),e.writeln("tex2jax: {"),e.writeln('\tignoreClass: "geDisableMathJax"'),e.writeln("},"),e.writeln("asciimath2jax: {"),e.writeln('\tignoreClass: "geDisableMathJax"'),e.writeln("}"),e.writeln("});"),a&&(e.writeln("MathJax.Hub.Queue(function () {"),e.writeln("window.print();"),e.writeln("});")),e.writeln("\x3c/script>"),e.writeln('<script type="text/javascript" src="https://math.draw.io/current/MathJax.js">\x3c/script>')); -t.closeDocument();!t.mathEnabled&&a&&PrintDialog.printPreview(t)}var h=b.editor.graph,m=document.createElement("div"),d=document.createElement("h3");d.style.width="100%";d.style.textAlign="center";d.style.marginTop="0px";mxUtils.write(d,a||mxResources.get("print"));m.appendChild(d);var e=1,q=1,t=document.createElement("div");t.style.cssText="border-bottom:1px solid lightGray;padding-bottom:12px;margin-bottom:12px;";var v=document.createElement("input");v.style.cssText="margin-right:8px;margin-bottom:8px;"; -v.setAttribute("value","all");v.setAttribute("type","radio");v.setAttribute("name","pages-printdialog");t.appendChild(v);d=document.createElement("span");mxUtils.write(d,mxResources.get("printAllPages"));t.appendChild(d);mxUtils.br(t);var g=v.cloneNode(!0);v.setAttribute("checked","checked");g.setAttribute("value","range");t.appendChild(g);d=document.createElement("span");mxUtils.write(d,mxResources.get("pages")+":");t.appendChild(d);var w=document.createElement("input");w.style.cssText="margin:0 8px 0 8px;"; -w.setAttribute("value","1");w.setAttribute("type","number");w.setAttribute("min","1");w.style.width="50px";t.appendChild(w);d=document.createElement("span");mxUtils.write(d,mxResources.get("to"));t.appendChild(d);var u=w.cloneNode(!0);t.appendChild(u);mxEvent.addListener(w,"focus",function(){g.checked=!0});mxEvent.addListener(u,"focus",function(){g.checked=!0});mxEvent.addListener(w,"change",c);mxEvent.addListener(u,"change",c);if(null!=b.pages&&(e=b.pages.length,null!=b.currentPage))for(d=0;d<b.pages.length;d++)if(b.currentPage== +t.closeDocument();!t.mathEnabled&&a&&PrintDialog.printPreview(t)}var h=b.editor.graph,m=document.createElement("div"),d=document.createElement("h3");d.style.width="100%";d.style.textAlign="center";d.style.marginTop="0px";mxUtils.write(d,a||mxResources.get("print"));m.appendChild(d);var e=1,q=1,t=document.createElement("div");t.style.cssText="border-bottom:1px solid lightGray;padding-bottom:12px;margin-bottom:12px;";var g=document.createElement("input");g.style.cssText="margin-right:8px;margin-bottom:8px;"; +g.setAttribute("value","all");g.setAttribute("type","radio");g.setAttribute("name","pages-printdialog");t.appendChild(g);d=document.createElement("span");mxUtils.write(d,mxResources.get("printAllPages"));t.appendChild(d);mxUtils.br(t);var v=g.cloneNode(!0);g.setAttribute("checked","checked");v.setAttribute("value","range");t.appendChild(v);d=document.createElement("span");mxUtils.write(d,mxResources.get("pages")+":");t.appendChild(d);var w=document.createElement("input");w.style.cssText="margin:0 8px 0 8px;"; +w.setAttribute("value","1");w.setAttribute("type","number");w.setAttribute("min","1");w.style.width="50px";t.appendChild(w);d=document.createElement("span");mxUtils.write(d,mxResources.get("to"));t.appendChild(d);var u=w.cloneNode(!0);t.appendChild(u);mxEvent.addListener(w,"focus",function(){v.checked=!0});mxEvent.addListener(u,"focus",function(){v.checked=!0});mxEvent.addListener(w,"change",c);mxEvent.addListener(u,"change",c);if(null!=b.pages&&(e=b.pages.length,null!=b.currentPage))for(d=0;d<b.pages.length;d++)if(b.currentPage== b.pages[d]){q=d+1;w.value=q;u.value=q;break}w.setAttribute("max",e);u.setAttribute("max",e);1<e&&m.appendChild(t);var k=document.createElement("div");k.style.marginBottom="10px";var x=document.createElement("input");x.style.marginRight="8px";x.setAttribute("value","adjust");x.setAttribute("type","radio");x.setAttribute("name","printZoom");k.appendChild(x);d=document.createElement("span");mxUtils.write(d,mxResources.get("adjustTo"));k.appendChild(d);var l=document.createElement("input");l.style.cssText= -"margin:0 8px 0 8px;";l.setAttribute("value","100 %");l.style.width="50px";k.appendChild(l);mxEvent.addListener(l,"focus",function(){x.checked=!0});m.appendChild(k);var t=t.cloneNode(!1),A=x.cloneNode(!0);A.setAttribute("value","fit");x.setAttribute("checked","checked");d=document.createElement("div");d.style.cssText="display:inline-block;height:100%;vertical-align:top;padding-top:2px;";d.appendChild(A);t.appendChild(d);k=document.createElement("table");k.style.display="inline-block";var z=document.createElement("tbody"), +"margin:0 8px 0 8px;";l.setAttribute("value","100 %");l.style.width="50px";k.appendChild(l);mxEvent.addListener(l,"focus",function(){x.checked=!0});m.appendChild(k);var t=t.cloneNode(!1),A=x.cloneNode(!0);A.setAttribute("value","fit");x.setAttribute("checked","checked");d=document.createElement("div");d.style.cssText="display:inline-block;height:100%;vertical-align:top;padding-top:2px;";d.appendChild(A);t.appendChild(d);k=document.createElement("table");k.style.display="inline-block";var y=document.createElement("tbody"), p=document.createElement("tr"),n=p.cloneNode(!0),K=document.createElement("td"),U=K.cloneNode(!0),R=K.cloneNode(!0),O=K.cloneNode(!0),V=K.cloneNode(!0),I=K.cloneNode(!0);K.style.textAlign="right";O.style.textAlign="right";mxUtils.write(K,mxResources.get("fitTo"));var X=document.createElement("input");X.style.cssText="margin:0 8px 0 8px;";X.setAttribute("value","1");X.setAttribute("min","1");X.setAttribute("type","number");X.style.width="40px";U.appendChild(X);d=document.createElement("span");mxUtils.write(d, -mxResources.get("fitToSheetsAcross"));R.appendChild(d);mxUtils.write(O,mxResources.get("fitToBy"));var W=X.cloneNode(!0);V.appendChild(W);mxEvent.addListener(X,"focus",function(){A.checked=!0});mxEvent.addListener(W,"focus",function(){A.checked=!0});d=document.createElement("span");mxUtils.write(d,mxResources.get("fitToSheetsDown"));I.appendChild(d);p.appendChild(K);p.appendChild(U);p.appendChild(R);n.appendChild(O);n.appendChild(V);n.appendChild(I);z.appendChild(p);z.appendChild(n);k.appendChild(z); +mxResources.get("fitToSheetsAcross"));R.appendChild(d);mxUtils.write(O,mxResources.get("fitToBy"));var W=X.cloneNode(!0);V.appendChild(W);mxEvent.addListener(X,"focus",function(){A.checked=!0});mxEvent.addListener(W,"focus",function(){A.checked=!0});d=document.createElement("span");mxUtils.write(d,mxResources.get("fitToSheetsDown"));I.appendChild(d);p.appendChild(K);p.appendChild(U);p.appendChild(R);n.appendChild(O);n.appendChild(V);n.appendChild(I);y.appendChild(p);y.appendChild(n);k.appendChild(y); t.appendChild(k);m.appendChild(t);t=document.createElement("div");d=document.createElement("div");d.style.fontWeight="bold";d.style.marginBottom="12px";mxUtils.write(d,mxResources.get("paperSize"));t.appendChild(d);d=document.createElement("div");d.style.marginBottom="12px";var da=PageSetupDialog.addPageFormatPanel(d,"printdialog",b.editor.graph.pageFormat||mxConstants.PAGE_FORMAT_A4_PORTRAIT);t.appendChild(d);d=document.createElement("span");mxUtils.write(d,mxResources.get("pageScale"));t.appendChild(d); var ba=document.createElement("input");ba.style.cssText="margin:0 8px 0 8px;";ba.setAttribute("value","100 %");ba.style.width="60px";t.appendChild(ba);m.appendChild(t);d=document.createElement("div");d.style.cssText="text-align:right;margin:48px 0 0 0;";t=mxUtils.button(mxResources.get("cancel"),function(){b.hideDialog()});t.className="geBtn";b.editor.cancelFirst&&d.appendChild(t);b.isOffline()||(k=mxUtils.button(mxResources.get("help"),function(){h.openLink("https://desk.draw.io/support/solutions/articles/16000048947")}), k.className="geBtn",d.appendChild(k));PrintDialog.previewEnabled&&(k=mxUtils.button(mxResources.get("preview"),function(){b.hideDialog();f(!1)}),k.className="geBtn",d.appendChild(k));k=mxUtils.button(mxResources.get(PrintDialog.previewEnabled?"print":"ok"),function(){b.hideDialog();f(!0)});k.className="geBtn gePrimaryBtn";d.appendChild(k);b.editor.cancelFirst||d.appendChild(t);m.appendChild(d);this.container=m};var m=ChangePageSetup.prototype.execute;ChangePageSetup.prototype.execute=function(){null== @@ -7591,7 +7594,7 @@ this.mathEnabled!=this.ui.isMathEnabled()&&(this.ui.setMathEnabled(this.mathEnab var ErrorDialog=function(a,e,d,c,g,k,l,p,n,b,f){n=null!=n?n:!0;var h=document.createElement("div");h.style.textAlign="center";if(null!=e){var t=document.createElement("div");t.style.padding="0px";t.style.margin="0px";t.style.fontSize="18px";t.style.paddingBottom="16px";t.style.marginBottom="16px";t.style.borderBottom="1px solid #c0c0c0";t.style.color="gray";mxUtils.write(t,e);h.appendChild(t)}e=document.createElement("div");e.style.padding="6px";e.innerHTML=d;h.appendChild(e);d=document.createElement("div"); d.style.marginTop="16px";d.style.textAlign="center";null!=k&&(e=mxUtils.button(mxResources.get("tryAgain"),function(){a.hideDialog();k()}),e.className="geBtn",d.appendChild(e),d.style.textAlign="center");null!=b&&(b=mxUtils.button(b,function(){null!=f&&f()}),b.className="geBtn",d.appendChild(b));var q=mxUtils.button(c,function(){n&&a.hideDialog();null!=g&&g()});q.className="geBtn";d.appendChild(q);null!=l&&(c=mxUtils.button(l,function(){n&&a.hideDialog();null!=p&&p()}),c.className="geBtn gePrimaryBtn", d.appendChild(c));this.init=function(){q.focus()};h.appendChild(d);this.container=h}; -(function(){var a=new mxObjectCodec(new ChangePageSetup,["ui","previousColor","previousImage","previousFormat"]);a.beforeDecode=function(a,d,c){c.ui=a.ui;return d};a.afterDecode=function(a,d,c){c.previousColor=c.color;c.previousImage=c.image;c.previousFormat=c.format;null!=c.foldingEnabled&&(c.foldingEnabled=!c.foldingEnabled);null!=c.mathEnabled&&(c.mathEnabled=!c.mathEnabled);null!=c.shadowVisible&&(c.shadowVisible=!c.shadowVisible);return c};mxCodecRegistry.register(a)})();(function(){EditorUi.VERSION="9.3.1";EditorUi.compactUi="atlas"!=uiTheme;EditorUi.enableLogging=/.*\.draw\.io$/.test(window.location.hostname)&&"support.draw.io"!=window.location.hostname;EditorUi.templateFile=TEMPLATE_PATH+"/index.xml";EditorUi.enablePlantUml=EditorUi.enableLogging;EditorUi.isElectronApp=null!=window&&null!=window.process&&null!=window.process.versions&&null!=window.process.versions.electron;EditorUi.scratchpadHelpLink="https://desk.draw.io/support/solutions/articles/16000042367"; +(function(){var a=new mxObjectCodec(new ChangePageSetup,["ui","previousColor","previousImage","previousFormat"]);a.beforeDecode=function(a,d,c){c.ui=a.ui;return d};a.afterDecode=function(a,d,c){c.previousColor=c.color;c.previousImage=c.image;c.previousFormat=c.format;null!=c.foldingEnabled&&(c.foldingEnabled=!c.foldingEnabled);null!=c.mathEnabled&&(c.mathEnabled=!c.mathEnabled);null!=c.shadowVisible&&(c.shadowVisible=!c.shadowVisible);return c};mxCodecRegistry.register(a)})();(function(){EditorUi.VERSION="9.3.4";EditorUi.compactUi="atlas"!=uiTheme;EditorUi.enableLogging=/.*\.draw\.io$/.test(window.location.hostname)&&"support.draw.io"!=window.location.hostname;EditorUi.templateFile=TEMPLATE_PATH+"/index.xml";EditorUi.enablePlantUml=EditorUi.enableLogging;EditorUi.isElectronApp=null!=window&&null!=window.process&&null!=window.process.versions&&null!=window.process.versions.electron;EditorUi.scratchpadHelpLink="https://desk.draw.io/support/solutions/articles/16000042367"; EditorUi.prototype.emptyDiagramXml='<mxGraphModel><root><mxCell id="0"/><mxCell id="1" parent="0"/></root></mxGraphModel>';EditorUi.prototype.emptyLibraryXml="<mxlibrary>[]</mxlibrary>";EditorUi.prototype.mode=null;EditorUi.prototype.sidebarFooterHeight=36;EditorUi.prototype.defaultCustomShapeStyle="shape=stencil(tZRtTsQgEEBPw1+DJR7AoN6DbWftpAgE0Ortd/jYRGq72R+YNE2YgTePloEJGWblgA18ZuKFDcMj5/Sm8boZq+BgjCX4pTyqk6ZlKROitwusOMXKQDODx5iy4pXxZ5qTHiFHawxB0JrQZH7lCabQ0Fr+XWC1/E8zcsT/gAi+Subo2/3Mh6d/oJb5nU1b5tW7r2knautaa3T+U32o7f7vZwpJkaNDLORJjcu7t59m2jXxqX9un+tt022acsfmoKaQZ+vhhswZtS6Ne/ThQGt0IV0N3Yyv6P3CeT9/tHO0XFI5cAE=);whiteSpace=wrap;html=1;"; EditorUi.prototype.svgBrokenImage=Graph.createSvgImage(10,10,'<rect x="0" y="0" width="10" height="10" stroke="#000" fill="transparent"/><path d="m 0 0 L 10 10 L 0 10 L 10 0" stroke="#000" fill="transparent"/>');EditorUi.prototype.crossOriginImages=!mxClient.IS_IE;EditorUi.prototype.maxBackgroundSize=1600;EditorUi.prototype.maxImageSize=520;EditorUi.prototype.resampleThreshold=1E5;EditorUi.prototype.maxImageBytes=1E6;EditorUi.prototype.maxBackgroundBytes=25E5;EditorUi.prototype.currentFile=null;EditorUi.prototype.printPdfExport= !1;EditorUi.prototype.pdfPageExport=!0;EditorUi.prototype.formatEnabled="0"!=urlParams.format;EditorUi.prototype.closableScratchpad=!0;(function(){EditorUi.prototype.useCanvasForExport=!1;EditorUi.prototype.jpgSupported=!1;try{var b=document.createElement("canvas");EditorUi.prototype.canvasSupported=!(!b.getContext||!b.getContext("2d"))}catch(q){}try{var a=document.createElement("canvas"),c=new Image;c.onload=function(){try{a.getContext("2d").drawImage(c,0,0);var b=a.toDataURL("image/png");EditorUi.prototype.useCanvasForExport= @@ -7606,13 +7609,13 @@ var a=EditorUi.prototype.extractGraphModelFromHtml;EditorUi.prototype.extractGra g?mxUtils.getXml(g):""}catch(w){}return c};EditorUi.prototype.validateFileData=function(b){if(null!=b&&0<b.length){var a=b.indexOf('<meta charset="utf-8">');0<=a&&(b=b.slice(0,a)+'<meta charset="utf-8"/>'+b.slice(a+23-1,b.length))}return b};EditorUi.prototype.replaceFileData=function(b){b=this.validateFileData(b);b=null!=b&&0<b.length?mxUtils.parseXml(b).documentElement:null;var a=null!=b?this.editor.extractGraphModel(b,!0):null;null!=a&&(b=a);if(null!=b){a=this.editor.graph;a.model.beginUpdate(); try{var c=null!=this.pages?this.pages.slice():null,d=b.getElementsByTagName("diagram");if("0"!=urlParams.pages||1<d.length||1==d.length&&d[0].hasAttribute("name")){this.fileNode=b;this.pages=null!=this.pages?this.pages:[];for(var e=d.length-1;0<=e;e--){var g=this.updatePageRoot(new DiagramPage(d[e]));null==g.getName()&&g.setName(mxResources.get("pageWithNumber",[e+1]));a.model.execute(new ChangePage(this,g,0==e?g:null,0))}}else"0"!=urlParams.pages&&null==this.fileNode&&(this.fileNode=b.ownerDocument.createElement("mxfile"), this.currentPage=new DiagramPage(b.ownerDocument.createElement("diagram")),this.currentPage.setName(mxResources.get("pageWithNumber",[1])),a.model.execute(new ChangePage(this,this.currentPage,this.currentPage,0))),this.editor.setGraphXml(b),null!=this.currentPage&&(this.currentPage.root=this.editor.graph.model.root);if(null!=c)for(e=0;e<c.length;e++)a.model.execute(new ChangePage(this,c[e],null))}finally{a.model.endUpdate()}}};EditorUi.prototype.createFileData=function(b,a,c,d,e,g,w,k,l,m){a=null!= -a?a:this.editor.graph;e=null!=e?e:!1;l=null!=l?l:!0;var f,h=null;null==c||c.getMode()==App.MODE_DEVICE||c.getMode()==App.MODE_BROWSER?f="_blank":h=f=d;if(null==b)return"";var q=b;if("mxfile"!=q.nodeName.toLowerCase()){var t=a.zapGremlins(mxUtils.getXml(b)),q=a.compress(t);if(a.decompress(q)!=t)return t;t=b.ownerDocument.createElement("diagram");mxUtils.setTextContent(t,q);q=b.ownerDocument.createElement("mxfile");q.appendChild(t)}m?(q=q.cloneNode(!0),q.removeAttribute("userAgent"),q.removeAttribute("version"), -q.removeAttribute("editor"),q.removeAttribute("type")):(q.setAttribute("userAgent",navigator.userAgent),q.setAttribute("version",EditorUi.VERSION),q.setAttribute("editor","www.draw.io"),b=null!=c?c.getMode():this.mode,null!=b&&q.setAttribute("type",b));b=mxUtils.getXml(q);if(!g&&!e&&(w||null!=c&&/(\.html)$/i.test(c.getTitle())))b=this.getHtml2(mxUtils.getXml(q),a,null!=c?c.getTitle():null,f,h);else if(g||!e&&null!=c&&/(\.svg)$/i.test(c.getTitle()))null==c||c.getMode()!=App.MODE_DEVICE&&c.getMode()!= -App.MODE_BROWSER||(d=null),b=this.getEmbeddedSvg(b,a,d,null,k,l,h);return b};EditorUi.prototype.getXmlFileData=function(b,a){b=null!=b?b:!0;a=null!=a?a:!1;var c=this.editor.getGraphXml(b);if(b&&null!=this.fileNode&&null!=this.currentPage){var f=this.editor.graph.compress(this.editor.graph.zapGremlins(mxUtils.getXml(c)));mxUtils.setTextContent(this.currentPage.node,f);c=this.fileNode.cloneNode(!1);if(a)c.appendChild(this.currentPage.node);else for(var d=0;d<this.pages.length;d++){var e=this.pages[d].mapping; -this.currentPage!=this.pages[d]&&null!=e&&e.needsUpdate&&(f=(new mxCodec(mxUtils.createXmlDocument())).encode(e.graphModel),e.writeRealtimeToNode(f),f=this.editor.graph.compress(this.editor.graph.zapGremlins(mxUtils.getXml(f))),mxUtils.setTextContent(this.pages[d].node,f),e.needsUpdate=!1);c.appendChild(this.pages[d].node)}}return c};EditorUi.prototype.getFileData=function(b,a,c,d,e,g,w,k,l){e=null!=e?e:!0;w=null!=w?w:this.getXmlFileData(e,null!=g?g:!1);l=null!=l?l:this.getCurrentFile();g=this.editor.graph; -if(null!=this.pages&&this.currentPage!=this.pages[0]&&(a||!b&&null!=l&&/(\.svg)$/i.test(l.getTitle()))){g=this.createTemporaryGraph(g.getStylesheet());var f=g.getGlobalVariable,h=this.pages[0];g.getGlobalVariable=function(b){return"page"==b?h.getName():"pagenumber"==b?1:f.apply(this,arguments)};document.body.appendChild(g.container);g.model.setRoot(h.root)}b=this.createFileData(w,g,l,window.location.href,b,a,c,d,e,k);g!=this.editor.graph&&g.container.parentNode.removeChild(g.container);return b}; -EditorUi.prototype.getHtml=function(b,a,c,d,e,g){g=null!=g?g:!0;var f=null,h="https://www.draw.io/js/embed-static.min.js";if(null!=a){var f=g?a.getGraphBounds():a.getBoundingBox(a.getSelectionCells()),q=a.view.scale;g=Math.floor(f.x/q-a.view.translate.x);q=Math.floor(f.y/q-a.view.translate.y);f=a.background;null==e&&(a=this.getBasenames().join(";"),0<a.length&&(h="https://www.draw.io/embed.js?s="+a));b.setAttribute("x0",g);b.setAttribute("y0",q)}null!=b&&(b.setAttribute("pan","1"),b.setAttribute("zoom", -"1"),b.setAttribute("resize","0"),b.setAttribute("fit","0"),b.setAttribute("border","20"),b.setAttribute("links","1"),null!=d&&b.setAttribute("edit",d));null!=e&&(e=e.replace(/&/g,"&"));b=null!=b?this.editor.graph.zapGremlins(mxUtils.getXml(b)):"";d=this.editor.graph.compress(b);this.editor.graph.decompress(d)!=b&&(d=encodeURIComponent(b));return(null==e?'\x3c!--[if IE]><meta http-equiv="X-UA-Compatible" content="IE=5,IE=9" ><![endif]--\x3e\n':"")+"<!DOCTYPE html>\n<html"+(null!=e?' xmlns="http://www.w3.org/1999/xhtml">': +a?a:this.editor.graph;e=null!=e?e:!1;l=null!=l?l:!0;var f,h=null;null==c||c.getMode()==App.MODE_DEVICE||c.getMode()==App.MODE_BROWSER?f="_blank":h=f=d;if(null==b)return"";var q=b;if("mxfile"!=q.nodeName.toLowerCase()){var t=a.zapGremlins(mxUtils.getXml(b)),q=a.compress(t);if(a.decompress(q)!=t)return t;t=b.ownerDocument.createElement("diagram");t.setAttribute("id",Editor.guid());mxUtils.setTextContent(t,q);q=b.ownerDocument.createElement("mxfile");q.appendChild(t)}m?(q=q.cloneNode(!0),q.removeAttribute("userAgent"), +q.removeAttribute("version"),q.removeAttribute("editor"),q.removeAttribute("type")):(q.setAttribute("userAgent",navigator.userAgent),q.setAttribute("version",EditorUi.VERSION),q.setAttribute("editor","www.draw.io"),b=null!=c?c.getMode():this.mode,null!=b&&q.setAttribute("type",b));b=mxUtils.getXml(q);if(!g&&!e&&(w||null!=c&&/(\.html)$/i.test(c.getTitle())))b=this.getHtml2(mxUtils.getXml(q),a,null!=c?c.getTitle():null,f,h);else if(g||!e&&null!=c&&/(\.svg)$/i.test(c.getTitle()))null==c||c.getMode()!= +App.MODE_DEVICE&&c.getMode()!=App.MODE_BROWSER||(d=null),b=this.getEmbeddedSvg(b,a,d,null,k,l,h);return b};EditorUi.prototype.getXmlFileData=function(b,a){b=null!=b?b:!0;a=null!=a?a:!1;var c=this.editor.getGraphXml(b);if(b&&null!=this.fileNode&&null!=this.currentPage)if(c=this.editor.graph.compress(this.editor.graph.zapGremlins(mxUtils.getXml(c))),mxUtils.setTextContent(this.currentPage.node,c),c=this.fileNode.cloneNode(!1),a)c.appendChild(this.currentPage.node);else for(var f=0;f<this.pages.length;f++){var d= +this.pages[f].mapping;if(this.currentPage!=this.pages[f]&&null!=d&&d.needsUpdate){var e=(new mxCodec(mxUtils.createXmlDocument())).encode(d.graphModel);d.writeRealtimeToNode(e);mxUtils.setTextContent(this.pages[f].node,this.editor.graph.compressNode(e));d.needsUpdate=!1}c.appendChild(this.pages[f].node)}return c};EditorUi.prototype.getFileData=function(b,a,c,d,e,g,w,k,l){e=null!=e?e:!0;w=null!=w?w:this.getXmlFileData(e,null!=g?g:!1);l=null!=l?l:this.getCurrentFile();g=this.editor.graph;if(null!=this.pages&& +this.currentPage!=this.pages[0]&&(a||!b&&null!=l&&/(\.svg)$/i.test(l.getTitle()))){g=this.createTemporaryGraph(g.getStylesheet());var f=g.getGlobalVariable,h=this.pages[0];g.getGlobalVariable=function(b){return"page"==b?h.getName():"pagenumber"==b?1:f.apply(this,arguments)};document.body.appendChild(g.container);g.model.setRoot(h.root)}b=this.createFileData(w,g,l,window.location.href,b,a,c,d,e,k);g!=this.editor.graph&&g.container.parentNode.removeChild(g.container);return b};EditorUi.prototype.getHtml= +function(b,a,c,d,e,g){g=null!=g?g:!0;var f=null,h="https://www.draw.io/js/embed-static.min.js";if(null!=a){var f=g?a.getGraphBounds():a.getBoundingBox(a.getSelectionCells()),q=a.view.scale;g=Math.floor(f.x/q-a.view.translate.x);q=Math.floor(f.y/q-a.view.translate.y);f=a.background;null==e&&(a=this.getBasenames().join(";"),0<a.length&&(h="https://www.draw.io/embed.js?s="+a));b.setAttribute("x0",g);b.setAttribute("y0",q)}null!=b&&(b.setAttribute("pan","1"),b.setAttribute("zoom","1"),b.setAttribute("resize", +"0"),b.setAttribute("fit","0"),b.setAttribute("border","20"),b.setAttribute("links","1"),null!=d&&b.setAttribute("edit",d));null!=e&&(e=e.replace(/&/g,"&"));b=null!=b?this.editor.graph.zapGremlins(mxUtils.getXml(b)):"";d=this.editor.graph.compress(b);this.editor.graph.decompress(d)!=b&&(d=encodeURIComponent(b));return(null==e?'\x3c!--[if IE]><meta http-equiv="X-UA-Compatible" content="IE=5,IE=9" ><![endif]--\x3e\n':"")+"<!DOCTYPE html>\n<html"+(null!=e?' xmlns="http://www.w3.org/1999/xhtml">': ">")+"\n<head>\n"+(null==e?null!=c?"<title>"+mxUtils.htmlEntities(c)+"</title>\n":"":"<title>Draw.io Diagram</title>\n")+(null!=e?'<meta http-equiv="refresh" content="0;URL=\''+e+"'\"/>\n":"")+"</head>\n<body"+(null==e&&null!=f&&f!=mxConstants.NONE?' style="background-color:'+f+';">':">")+'\n<div class="mxgraph" style="position:relative;overflow:auto;width:100%;">\n<div style="width:1px;height:1px;overflow:hidden;">'+d+"</div>\n</div>\n"+(null==e?'<script type="text/javascript" src="'+h+'">\x3c/script>': '<a style="position:absolute;top:50%;left:50%;margin-top:-128px;margin-left:-64px;" href="'+e+'" target="_blank"><img border="0" src="https://www.draw.io/images/drawlogo128.png"/></a>')+"\n</body>\n</html>\n"};EditorUi.prototype.getHtml2=function(b,a,c,d,e){null!=e&&(e=e.replace(/&/g,"&"));b={highlight:"#0000ff",nav:this.editor.graph.foldingEnabled,resize:!0,xml:this.editor.graph.zapGremlins(b),toolbar:"pages zoom layers lightbox"};null!=this.pages&&null!=this.currentPage&&(b.page=mxUtils.indexOf(this.pages, this.currentPage));return(null==e?'\x3c!--[if IE]><meta http-equiv="X-UA-Compatible" content="IE=5,IE=9" ><![endif]--\x3e\n':"")+"<!DOCTYPE html>\n<html"+(null!=e?' xmlns="http://www.w3.org/1999/xhtml">':">")+"\n<head>\n"+(null==e?null!=c?"<title>"+mxUtils.htmlEntities(c)+"</title>\n":"":"<title>Draw.io Diagram</title>\n")+(null!=e?'<meta http-equiv="refresh" content="0;URL=\''+e+"'\"/>\n":"")+'<meta charset="utf-8"/>\n</head>\n<body>\n<div class="mxgraph" style="max-width:100%;border:1px solid transparent;" data-mxgraph="'+ @@ -7621,44 +7624,45 @@ mxUtils.parseXml(b).documentElement:null;b=null!=a?this.editor.extractGraphModel 0))];a=this.currentPage.node}"0"!=urlParams.pages&&null==this.fileNode&&null!=a&&(this.fileNode=a.ownerDocument.createElement("mxfile"),this.currentPage=new DiagramPage(a.ownerDocument.createElement("diagram")),this.currentPage.setName(mxResources.get("pageWithNumber",[1])),this.pages=[this.currentPage]);this.editor.setGraphXml(a);null!=this.currentPage&&(this.currentPage.root=this.editor.graph.model.root)};EditorUi.prototype.getBaseFilename=function(b){var a=this.getCurrentFile(),a=null!=a&&null!= a.getTitle()?a.getTitle():this.defaultFilename;if(/(\.xml)$/i.test(a)||/(\.html)$/i.test(a)||/(\.svg)$/i.test(a)||/(\.png)$/i.test(a))a=a.substring(0,a.lastIndexOf("."));!b&&null!=this.pages&&1<this.pages.length&&null!=this.currentPage&&null!=this.currentPage.node.getAttribute("name")&&0<this.currentPage.getName().length&&(a=a+"-"+this.currentPage.getName());return a};EditorUi.prototype.downloadFile=function(b,a,c,d,e,g,w){try{d=null!=d?d:this.editor.graph.isSelectionEmpty();var f=this.getBaseFilename(!e), h=f+"."+b;if("xml"==b){var m='<?xml version="1.0" encoding="UTF-8"?>\n'+(a?mxUtils.getXml(this.editor.getGraphXml(d)):this.getFileData(!0,null,null,null,d,e));this.saveData(h,b,m,"text/xml")}else if("html"==b)m=this.getHtml2(this.getFileData(!0),this.editor.graph,f),this.saveData(h,b,m,"text/html");else if("svg"!=b&&"xmlsvg"!=b||!this.spinner.spin(document.body,mxResources.get("export")))"xmlpng"==b?h=f+".png":"jpeg"==b&&(h=f+".jpg"),this.saveRequest(h,b,mxUtils.bind(this,function(a,c){try{var f= -this.editor.graph.pageVisible;null!=g&&(this.editor.graph.pageVisible=g);var h=this.createDownloadRequest(a,b,d,c,w);this.editor.graph.pageVisible=f;return h}catch(y){this.handleError(y)}}));else{var q=null,t=mxUtils.bind(this,function(b){b.length<=MAX_REQUEST_SIZE?this.saveData(h,"svg",b,"image/svg+xml"):this.handleError({message:mxResources.get("drawingTooLarge")},mxResources.get("error"),mxUtils.bind(this,function(){mxUtils.popup(q)}))});if("svg"==b){var k=this.editor.graph.background;if(w||k== -mxConstants.NONE)k=null;var u=this.editor.graph.getSvg(k,null,null,null,null,d);c&&this.editor.graph.addSvgShadow(u);this.convertImages(u,mxUtils.bind(this,mxUtils.bind(this,function(b){this.spinner.stop();t('<?xml version="1.0" encoding="UTF-8"?>\n<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">\n'+mxUtils.getXml(b))})))}else h=f+".svg",q=this.getFileData(!1,!0,null,mxUtils.bind(this,function(b){this.spinner.stop();t(b)}),d)}}catch(H){this.handleError(H)}}; +this.editor.graph.pageVisible;null!=g&&(this.editor.graph.pageVisible=g);var h=this.createDownloadRequest(a,b,d,c,w);this.editor.graph.pageVisible=f;return h}catch(z){this.handleError(z)}}));else{var q=null,t=mxUtils.bind(this,function(b){b.length<=MAX_REQUEST_SIZE?this.saveData(h,"svg",b,"image/svg+xml"):this.handleError({message:mxResources.get("drawingTooLarge")},mxResources.get("error"),mxUtils.bind(this,function(){mxUtils.popup(q)}))});if("svg"==b){var u=this.editor.graph.background;if(w||u== +mxConstants.NONE)u=null;var k=this.editor.graph.getSvg(u,null,null,null,null,d);c&&this.editor.graph.addSvgShadow(k);this.convertImages(k,mxUtils.bind(this,mxUtils.bind(this,function(b){this.spinner.stop();t('<?xml version="1.0" encoding="UTF-8"?>\n<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">\n'+mxUtils.getXml(b))})))}else h=f+".svg",q=this.getFileData(!1,!0,null,mxUtils.bind(this,function(b){this.spinner.stop();t(b)}),d)}}catch(F){this.handleError(F)}}; EditorUi.prototype.createDownloadRequest=function(b,a,c,d,e){var f=this.editor.graph.getGraphBounds();c=this.getFileData(!0,null,null,null,c,"xmlpng"!=a);var h="";if(f.width*f.height>MAX_AREA||c.length>MAX_REQUEST_SIZE)throw{message:mxResources.get("drawingTooLarge")};f="0";if("xmlpng"==a&&(f="1",a="png",null!=this.pages&&null!=this.currentPage))for(var q=0;q<this.pages.length;q++)if(this.pages[q]==this.currentPage){h="&from="+q;break}q=this.editor.graph.background;"png"==a&&e&&(q=mxConstants.NONE); return new mxXmlRequest(EXPORT_URL,"format="+a+h+"&bg="+(null!=q?q:mxConstants.NONE)+"&base64="+d+"&embedXml="+f+"&xml="+encodeURIComponent(c)+(null!=b?"&filename="+encodeURIComponent(b):""))};EditorUi.prototype.setMode=function(b,a){this.mode=b};EditorUi.prototype.loadDescriptor=function(b,a,c){var f=window.location.hash,h=mxUtils.bind(this,function(c){var h=null!=b.data?b.data:"";null!=c&&0<c.length&&(0<h.length&&(h+="\n"),h+=c);c=new LocalFile(this,"csv"!=b.format&&0<h.length?h:this.emptyDiagramXml, -null!=urlParams.title?decodeURIComponent(urlParams.title):this.defaultFilename,!0);c.getHash=function(){return f};this.fileLoaded(c);"csv"==b.format&&this.importCsv(h,mxUtils.bind(this,function(b){this.editor.undoManager.clear();this.editor.setModified(!1);this.editor.setStatus("")}));if(null!=b.update){var d=null!=b.interval?parseInt(b.interval):6E4,e=null,q=mxUtils.bind(this,function(){var a=this.currentPage;mxUtils.post(b.update,"xml="+encodeURIComponent(mxUtils.getXml(this.editor.getGraphXml())), -mxUtils.bind(this,function(b){a===this.currentPage&&(200<=b.getStatus()&&300>=b.getStatus()?(this.updateDiagram(b.getText()),g()):this.handleError({message:mxResources.get("error")+" "+b.getStatus()}))}),mxUtils.bind(this,function(b){this.handleError(b)}))}),g=mxUtils.bind(this,function(){window.clearTimeout(e);e=window.setTimeout(q,d)});this.editor.addListener("pageSelected",mxUtils.bind(this,function(){g();q()}));g();q()}null!=a&&a()});if(null!=b.url&&0<b.url.length){var d=b.url;/^https?:\/\//.test(d)&& +null!=urlParams.title?decodeURIComponent(urlParams.title):this.defaultFilename,!0);c.getHash=function(){return f};this.fileLoaded(c);"csv"==b.format&&this.importCsv(h,mxUtils.bind(this,function(b){this.editor.undoManager.clear();this.editor.setModified(!1);this.editor.setStatus("")}));if(null!=b.update){var d=null!=b.interval?parseInt(b.interval):6E4,m=null,e=mxUtils.bind(this,function(){var a=this.currentPage;mxUtils.post(b.update,"xml="+encodeURIComponent(mxUtils.getXml(this.editor.getGraphXml())), +mxUtils.bind(this,function(b){a===this.currentPage&&(200<=b.getStatus()&&300>=b.getStatus()?(this.updateDiagram(b.getText()),q()):this.handleError({message:mxResources.get("error")+" "+b.getStatus()}))}),mxUtils.bind(this,function(b){this.handleError(b)}))}),q=mxUtils.bind(this,function(){window.clearTimeout(m);m=window.setTimeout(e,d)});this.editor.addListener("pageSelected",mxUtils.bind(this,function(){q();e()}));q();e()}null!=a&&a()});if(null!=b.url&&0<b.url.length){var d=b.url;/^https?:\/\//.test(d)&& !this.isCorsEnabledForUrl(d)&&(d=PROXY_URL+"?url="+encodeURIComponent(b.url));this.loadUrl(d,mxUtils.bind(this,function(b){h(b)}),mxUtils.bind(this,function(b){null!=c&&c(b)}))}else h("")};EditorUi.prototype.updateDiagram=function(b){function a(b){var a=new mxCellOverlay(b.image||d.warningImage,b.tooltip,b.align,b.valign,b.offset);a.addListener(mxEvent.CLICK,function(a,c){editorUi.alert(b.tooltip)});return a}var c=null;if(null!=b&&0<b.length&&(c=mxUtils.parseXml(b),b=null!=c?c.documentElement:null, -null!=b&&"updates"==b.nodeName)){var d=this.editor.graph,e=d.getModel();e.beginUpdate();var g=null;try{for(b=b.firstChild;null!=b;){if("update"==b.nodeName){var w=e.getCell(b.getAttribute("id"));if(null!=w){try{var k=b.getAttribute("value");if(null!=k){var l=mxUtils.parseXml(k).documentElement;if(null!=l)if("1"==l.getAttribute("replace-value"))e.setValue(w,l);else for(var m=l.attributes,v=0;v<m.length;v++)d.setAttributeForCell(w,m[v].nodeName,0<m[v].nodeValue.length?m[v].nodeValue:null)}}catch(y){null!= -window.console&&console.log("Error in value for "+w.id+": "+y)}try{var x=b.getAttribute("style");null!=x&&d.model.setStyle(w,x)}catch(y){null!=window.console&&console.log("Error in style for "+w.id+": "+y)}try{var p=b.getAttribute("icon");if(null!=p){var n=0<p.length?JSON.parse(p):null;null!=n&&n.append||d.removeCellOverlays(w);null!=n&&d.addCellOverlay(w,a(n))}}catch(y){null!=window.console&&console.log("Error in icon for "+w.id+": "+y)}try{var H=b.getAttribute("geometry");if(null!=H){var H=JSON.parse(H), -E=d.getCellGeometry(w);if(null!=E){E=E.clone();for(key in H){var F=parseFloat(H[key]);"dx"==key?E.x+=F:"dy"==key?E.y+=F:"dw"==key?E.width+=F:"dh"==key?E.height+=F:E[key]=parseFloat(H[key])}d.model.setGeometry(w,E)}}}catch(y){null!=window.console&&console.log("Error in icon for "+w.id+": "+y)}}}else if("model"==b.nodeName){for(var L=b.firstChild;null!=L&&L.nodeType!=mxConstants.NODETYPE_ELEMENT;)L=L.nextSibling;null!=L&&(new mxCodec(b.firstChild)).decode(L,e)}else if("view"==b.nodeName){if(b.hasAttribute("scale")&& -(d.view.scale=parseFloat(b.getAttribute("scale"))),b.hasAttribute("dx")||b.hasAttribute("dy"))d.view.translate=new mxPoint(parseFloat(b.getAttribute("dx")||0),parseFloat(b.getAttribute("dy")||0))}else"fit"==b.nodeName&&(g=b.hasAttribute("max-scale")?parseFloat(b.getAttribute("max-scale")):1);b=b.nextSibling}}finally{e.endUpdate()}null!=g&&this.chromelessResize&&this.chromelessResize(!0,g)}return c};EditorUi.prototype.fileLoaded=function(b){var a=!1;this.hideDialog();var c=this.getCurrentFile();this.setCurrentFile(null); -null!=c&&(c.removeListener(this.descriptorChangedListener),c.close());this.editor.graph.model.clear();this.editor.undoManager.clear();var d=mxUtils.bind(this,function(){this.setGraphEnabled(!1);this.setCurrentFile(null);null!=c&&this.updateDocumentTitle();this.editor.graph.model.clear();this.editor.undoManager.clear();this.setBackgroundImage(null);null!=window.location.hash&&0<window.location.hash.length&&(window.location.hash="");null!=this.fname&&(this.fnameWrapper.style.display="none",this.fname.innerHTML= -"",this.fname.setAttribute("title",mxResources.get("rename")));this.editor.setStatus("");this.updateUi();this.showSplash()});if(null!=b)try{this.setCurrentFile(b);b.addListener("descriptorChanged",this.descriptorChangedListener);b.addListener("contentChanged",this.descriptorChangedListener);b.open();this.setGraphEnabled(!0);this.setMode(b.getMode());this.editor.undoManager.clear();this.descriptorChanged();this.updateUi();null==b.realtime&&(b.isEditable()?this.editor.setStatus(""):this.editor.setStatus('<span class="geStatusAlert" style="margin-left:8px;">'+ -mxUtils.htmlEntities(mxResources.get("readOnly"))+"</span>"));!this.editor.isChromelessView()||this.editor.editable?(this.editor.graph.selectUnlockedLayer(),this.showLayersDialog(),this.restoreLibraries(),window.self!==window.top&&window.focus()):this.editor.graph.isLightboxView()&&this.lightboxFit();this.chromelessResize&&this.chromelessResize();this.editor.fireEvent(new mxEventObject("fileLoaded"));a=!0;this.isOffline()||null==b.getMode()||this.logEvent({category:"File",action:"open",label:b.getMode()}); -if(this.mode==b.getMode()&&b.getMode()!=App.MODE_DEVICE&&null!=b.getMode())try{this.addRecent({id:b.getHash(),title:b.getTitle(),mode:b.getMode()})}catch(q){}try{mxSettings.setOpenCounter(mxSettings.getOpenCounter()+1),mxSettings.save()}catch(q){}}catch(q){null!=window.console&&console.log("error in fileLoaded:",b,q);if(EditorUi.enableLogging&&!this.isOffline())try{(new Image).src=(null!=window.DRAWIO_LOG_URL?window.DRAWIO_LOG_URL:"")+"/log?v="+encodeURIComponent(EditorUi.VERSION)+"&msg=errorInFileLoaded:url:"+ -encodeURIComponent(window.location.href)+(null!=q&&null!=q.message?":err:"+encodeURIComponent(q.message):"")+(null!=q&&null!=q.stack?"&stack="+encodeURIComponent(q.stack):"")}catch(u){}this.handleError(q,mxResources.get("errorLoadingFile"),mxUtils.bind(this,function(){null!=urlParams.url&&this.spinner.spin(document.body,mxResources.get("reconnecting"))?window.location.search=this.getSearch(["url"]):null!=c?c.constructor==DriveFile?this.loadFile(c.getHash()):this.fileLoaded(c):d()}))}else d();return a}; -EditorUi.prototype.descriptorChanged=function(){};EditorUi.prototype.logEvent=function(b){if(EditorUi.enableLogging)try{var a=null!=window.DRAWIO_LOG_URL?window.DRAWIO_LOG_URL:"";(new Image).src=a+"/images/1x1.png?v="+encodeURIComponent(EditorUi.VERSION)+(null!=b?"&data="+encodeURIComponent(JSON.stringify(b)):"")}catch(h){}};EditorUi.prototype.restoreLibraries=function(){};EditorUi.prototype.saveLibrary=function(b,a,c,d,e,g,w){};EditorUi.prototype.isScratchpadEnabled=function(){return isLocalStorage|| -mxClient.IS_CHROMEAPP};EditorUi.prototype.toggleScratchpad=function(){this.isScratchpadEnabled()&&(null==this.scratchpad?this.getLocalData(".scratchpad",mxUtils.bind(this,function(b){null==b&&(b=this.emptyLibraryXml);this.loadLibrary(new StorageLibrary(this,b,".scratchpad"))})):this.closeLibrary(this.scratchpad))};EditorUi.prototype.createLibraryDataFromImages=function(b){var a=mxUtils.createXmlDocument(),c=a.createElement("mxlibrary");mxUtils.setTextContent(c,JSON.stringify(b));a.appendChild(c); -return mxUtils.getXml(a)};EditorUi.prototype.closeLibrary=function(b){null!=b&&(this.removeLibrarySidebar(b.getHash()),b.constructor!=LocalLibrary&&mxSettings.removeCustomLibrary(b.getHash()),".scratchpad"==b.title&&(this.scratchpad=null))};EditorUi.prototype.removeLibrarySidebar=function(b){var a=this.sidebar.palettes[b];if(null!=a){for(var c=0;c<a.length;c++)a[c].parentNode.removeChild(a[c]);delete this.sidebar.palettes[b]}};EditorUi.prototype.repositionLibrary=function(b){var a=this.sidebar.container; -if(null==b){var c=this.sidebar.palettes["L.scratchpad"];null==c&&(c=this.sidebar.palettes.search);null!=c&&(b=c[c.length-1].nextSibling)}b=null!=b?b:a.firstChild.nextSibling.nextSibling;var c=a.lastChild,d=c.previousSibling;a.insertBefore(c,b);a.insertBefore(d,c)};EditorUi.prototype.loadLibrary=function(b){var a=mxUtils.parseXml(b.getData());if("mxlibrary"==a.documentElement.nodeName){var c=JSON.parse(mxUtils.getTextContent(a.documentElement));this.libraryLoaded(b,c,a.documentElement.getAttribute("title"))}else throw{message:mxResources.get("notALibraryFile")}; -};EditorUi.prototype.getLibraryStorageHint=function(b){return""};EditorUi.prototype.libraryLoaded=function(b,a,c){if(null!=this.sidebar){b.constructor!=LocalLibrary&&mxSettings.addCustomLibrary(b.getHash());".scratchpad"==b.title&&(this.scratchpad=b);var f=this.sidebar.palettes[b.getHash()],f=null!=f?f[f.length-1].nextSibling:null;this.removeLibrarySidebar(b.getHash());var h=null,d=mxUtils.bind(this,function(a,c){0==a.length&&b.isEditable()?(null==h&&(h=document.createElement("div"),mxUtils.setPrefixedStyle(h.style, -"borderRadius","6px"),h.style.border="3px dotted lightGray",h.style.textAlign="center",h.style.padding="8px",h.style.color="#B3B3B3",mxUtils.write(h,mxResources.get("dragElementsHere"))),c.appendChild(h)):this.addLibraryEntries(a,c)});if(null!=this.sidebar&&null!=a)for(var e=0;e<a.length;e++)mxUtils.bind(this,function(b){var a=b.data;null!=a&&null!=b.title?this.sidebar.addEntry(b.title,mxUtils.bind(this,function(){a=this.convertDataUri(a);var c="shape=image;verticalLabelPosition=bottom;verticalAlign=top;imageAspect=0;"; -"fixed"==b.aspect&&(c+="aspect=fixed;");return this.sidebar.createVertexTemplate(c+"image="+a,b.w,b.h,"",b.title||"",!1,!1,!0)})):null!=b.xml&&null!=b.title&&this.sidebar.addEntry(b.title,mxUtils.bind(this,function(){var a=this.stringToCells(this.editor.graph.decompress(b.xml));return this.sidebar.createVertexTemplateFromCells(a,b.w,b.h,b.title||"",!0,!1,!0)}))})(a[e]);c=null!=c&&0<c.length?c:b.getTitle();var g=this.sidebar.addPalette(b.getHash(),c,!0,mxUtils.bind(this,function(b){d(a,b)}));this.repositionLibrary(f); -var k=g.parentNode.previousSibling;c=k.getAttribute("title");null!=c&&0<c.length&&".scratchpad"!=b.title&&k.setAttribute("title",this.getLibraryStorageHint(b)+"\n"+c);var m=document.createElement("div");m.style.position="absolute";m.style.right="0px";m.style.top="0px";m.style.padding="8px";mxClient.IS_QUIRKS||8==document.documentMode||(m.style.backgroundColor="inherit");k.style.position="relative";var v=document.createElement("img");v.setAttribute("src",Dialog.prototype.closeImage);v.setAttribute("title", -mxResources.get("close"));v.setAttribute("valign","absmiddle");v.setAttribute("border","0");v.style.margin="0 3px";var x=null;if(".scratchpad"!=b.title||this.closableScratchpad)m.appendChild(v),mxEvent.addListener(v,"click",mxUtils.bind(this,function(a){if(!mxEvent.isConsumed(a)){var c=mxUtils.bind(this,function(){this.closeLibrary(b)});null!=x?this.confirm(mxResources.get("allChangesLost"),null,c,mxResources.get("cancel"),mxResources.get("discardChanges")):c();mxEvent.consume(a)}}));if(b.isEditable()){var l= -this.editor.graph,p=null,n=mxUtils.bind(this,function(c){this.showLibraryDialog(b.getTitle(),g,a,b,b.getMode());mxEvent.consume(c)}),E=mxUtils.bind(this,function(c){b.setModified(!0);b.isAutosave()?(null!=p&&null!=p.parentNode&&p.parentNode.removeChild(p),p=v.cloneNode(!1),p.setAttribute("src",Editor.spinImage),p.setAttribute("title",mxResources.get("saving")),p.style.cursor="default",p.style.marginRight="2px",p.style.marginTop="-2px",m.insertBefore(p,m.firstChild),k.style.paddingRight=18*m.childNodes.length+ -"px",this.saveLibrary(b.getTitle(),a,b,b.getMode(),!0,!0,function(){null!=p&&null!=p.parentNode&&(p.parentNode.removeChild(p),k.style.paddingRight=18*m.childNodes.length+"px")})):null==x&&(x=v.cloneNode(!1),x.setAttribute("src",IMAGE_PATH+"/download.png"),x.setAttribute("title",mxResources.get("save")),m.insertBefore(x,m.firstChild),mxEvent.addListener(x,"click",mxUtils.bind(this,function(c){this.saveLibrary(b.getTitle(),a,b,b.getMode(),b.constructor==LocalLibrary,!0,function(){null==x||b.isModified()|| -(k.style.paddingRight=18*m.childNodes.length+"px",x.parentNode.removeChild(x),x=null)});mxEvent.consume(c)})),k.style.paddingRight=18*m.childNodes.length+"px")}),F=mxUtils.bind(this,function(b,c,f,d){b=l.cloneCells(mxUtils.sortCells(l.model.getTopmostCells(b)));for(var e=0;e<b.length;e++){var m=l.getCellGeometry(b[e]);null!=m&&m.translate(-c.x,-c.y)}g.appendChild(this.sidebar.createVertexTemplateFromCells(b,c.width,c.height,d||"",!0,!1,!1));b={xml:this.editor.graph.compress(mxUtils.getXml(this.editor.graph.encodeCells(b))), -w:c.width,h:c.height};null!=d&&(b.title=d);a.push(b);E(f);null!=h&&null!=h.parentNode&&0<a.length&&(h.parentNode.removeChild(h),h=null)}),L=mxUtils.bind(this,function(b){if(l.isSelectionEmpty())l.getRubberband().isActive()?(l.getRubberband().execute(b),l.getRubberband().reset()):this.showError(mxResources.get("error"),mxResources.get("nothingIsSelected"),mxResources.get("ok"));else{var a=l.getSelectionCells(),c=l.view.getBounds(a),f=l.view.scale;c.x/=f;c.y/=f;c.width/=f;c.height/=f;c.x-=l.view.translate.x; -c.y-=l.view.translate.y;F(a,c)}mxEvent.consume(b)});g.style.border="3px solid transparent";mxEvent.addGestureListeners(g,function(){},mxUtils.bind(this,function(b){l.isMouseDown&&null!=l.panningManager&&null!=l.graphHandler.shape&&(l.graphHandler.shape.node.style.visibility="hidden",null!=h?h.style.border="3px dotted rgb(254, 137, 12)":g.style.border="3px dotted rgb(254, 137, 12)",g.style.cursor="copy",l.panningManager.stop(),l.autoScroll=!1,null!=l.graphHandler.guide&&l.graphHandler.guide.setVisible(!1), -null!=l.graphHandler.hint&&(l.graphHandler.hint.style.visibility="hidden"),mxEvent.consume(b))}),mxUtils.bind(this,function(b){l.isMouseDown&&null!=l.panningManager&&null!=l.graphHandler&&(g.style.border="3px solid transparent",null!=h&&(h.style.border="3px dotted lightGray"),g.style.cursor="default",this.sidebar.showTooltips=!0,l.panningManager.stop(),l.graphHandler.reset(),l.isMouseDown=!1,l.autoScroll=!0,L(b),mxEvent.consume(b))}));mxEvent.addListener(g,"mouseleave",mxUtils.bind(this,function(b){l.isMouseDown&& -null!=l.graphHandler.shape&&(l.graphHandler.shape.node.style.visibility="visible",g.style.border="3px solid transparent",g.style.cursor="",l.autoScroll=!0,null!=l.graphHandler.guide&&l.graphHandler.guide.setVisible(!0),null!=l.graphHandler.hint&&(l.graphHandler.hint.style.visibility="visible"),null!=h&&(h.style.border="3px dotted lightGray"))}));Graph.fileSupport&&(mxEvent.addListener(g,"dragover",mxUtils.bind(this,function(b){null!=h?h.style.border="3px dotted rgb(254, 137, 12)":g.style.border="3px dotted rgb(254, 137, 12)"; -b.dataTransfer.dropEffect="copy";g.style.cursor="copy";this.sidebar.hideTooltip();b.stopPropagation();b.preventDefault()})),mxEvent.addListener(g,"drop",mxUtils.bind(this,function(b){g.style.border="3px solid transparent";g.style.cursor="";null!=h&&(h.style.border="3px dotted lightGray");0<b.dataTransfer.files.length&&this.importFiles(b.dataTransfer.files,0,0,this.maxImageSize,mxUtils.bind(this,function(c,f,e,m,q,v,t,k,w){if(null!=c&&"image/"==f.substring(0,6))c="shape=image;verticalLabelPosition=bottom;verticalAlign=top;aspect=fixed;image="+ -this.convertDataUri(c),c=[new mxCell("",new mxGeometry(0,0,q,v),c)],c[0].vertex=!0,F(c,new mxRectangle(0,0,q,v),b,mxEvent.isAltDown(b)?null:t.substring(0,t.lastIndexOf(".")).replace(/_/g," ")),null!=h&&null!=h.parentNode&&0<a.length&&(h.parentNode.removeChild(h),h=null);else{var u=!1,l=mxUtils.bind(this,function(c,f){if(null!=c&&"text/xml"==f){var e=mxUtils.parseXml(c);if("mxlibrary"==e.documentElement.nodeName)try{var m=JSON.parse(mxUtils.getTextContent(e.documentElement));d(m,g);a=a.concat(m);E(b); -this.spinner.stop();u=!0}catch(X){}else if("mxfile"==e.documentElement.nodeName)try{for(var q=e.documentElement.getElementsByTagName("diagram"),e=0;e<q.length;e++){var m=mxUtils.getTextContent(q[e]),t=this.stringToCells(this.editor.graph.decompress(m)),v=this.editor.graph.getBoundingBoxFromGeometry(t);F(t,new mxRectangle(0,0,v.width,v.height),b)}u=!0}catch(X){null!=window.console&&console.log("error in drop handler:",X)}}u||(this.spinner.stop(),this.handleError({message:mxResources.get("errorLoadingFile")})); -null!=h&&null!=h.parentNode&&0<a.length&&(h.parentNode.removeChild(h),h=null)});null!=w&&null!=t&&(/(\.v(dx|sdx?))($|\?)/i.test(t)||/(\.vs(x|sx?))($|\?)/i.test(t))?this.importVisio(w,function(b){l(b,"text/xml")},null,t):!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(c,t)&&null!=w?this.parseFile(w,mxUtils.bind(this,function(b){4==b.readyState&&(this.spinner.stop(),200<=b.status&&299>=b.status?l(b.responseText,"text/xml"):this.handleError({message:mxResources.get(413==b.status? -"drawingTooLarge":"invalidOrMissingFile")},mxResources.get("errorLoadingFile")))})):l(c,f)}}));b.stopPropagation();b.preventDefault()})),mxEvent.addListener(g,"dragleave",function(b){null!=h?h.style.border="3px dotted lightGray":(g.style.border="3px solid transparent",g.style.cursor="");b.stopPropagation();b.preventDefault()}));v=v.cloneNode(!1);v.setAttribute("src",Editor.editImage);v.setAttribute("title",mxResources.get("edit"));m.insertBefore(v,m.firstChild);mxEvent.addListener(v,"click",n);mxEvent.addListener(g, -"dblclick",function(b){mxEvent.getSource(b)==g&&n(b)});c=v.cloneNode(!1);c.setAttribute("src",Editor.plusImage);c.setAttribute("title",mxResources.get("add"));m.insertBefore(c,m.firstChild);mxEvent.addListener(c,"click",L);this.isOffline()||".scratchpad"!=b.title||null==EditorUi.scratchpadHelpLink||(c=document.createElement("span"),c.setAttribute("title",mxResources.get("help")),c.style.cssText="color:#a3a3a3;text-decoration:none;margin-right:2px;",mxUtils.write(c,"?"),mxEvent.addGestureListeners(c, +null!=b&&"updates"==b.nodeName)){var d=this.editor.graph,e=d.getModel();e.beginUpdate();var g=null;try{for(b=b.firstChild;null!=b;){if("update"==b.nodeName){var w=e.getCell(b.getAttribute("id"));if(null!=w){try{var k=b.getAttribute("value");if(null!=k){var l=mxUtils.parseXml(k).documentElement;if(null!=l)if("1"==l.getAttribute("replace-value"))e.setValue(w,l);else for(var m=l.attributes,v=0;v<m.length;v++)d.setAttributeForCell(w,m[v].nodeName,0<m[v].nodeValue.length?m[v].nodeValue:null)}}catch(z){null!= +window.console&&console.log("Error in value for "+w.id+": "+z)}try{var x=b.getAttribute("style");null!=x&&d.model.setStyle(w,x)}catch(z){null!=window.console&&console.log("Error in style for "+w.id+": "+z)}try{var p=b.getAttribute("icon");if(null!=p){var n=0<p.length?JSON.parse(p):null;null!=n&&n.append||d.removeCellOverlays(w);null!=n&&d.addCellOverlay(w,a(n))}}catch(z){null!=window.console&&console.log("Error in icon for "+w.id+": "+z)}try{var F=b.getAttribute("geometry");if(null!=F){var F=JSON.parse(F), +E=d.getCellGeometry(w);if(null!=E){E=E.clone();for(key in F){var G=parseFloat(F[key]);"dx"==key?E.x+=G:"dy"==key?E.y+=G:"dw"==key?E.width+=G:"dh"==key?E.height+=G:E[key]=parseFloat(F[key])}d.model.setGeometry(w,E)}}}catch(z){null!=window.console&&console.log("Error in icon for "+w.id+": "+z)}}}else if("model"==b.nodeName){for(var L=b.firstChild;null!=L&&L.nodeType!=mxConstants.NODETYPE_ELEMENT;)L=L.nextSibling;null!=L&&(new mxCodec(b.firstChild)).decode(L,e)}else if("view"==b.nodeName){if(b.hasAttribute("scale")&& +(d.view.scale=parseFloat(b.getAttribute("scale"))),b.hasAttribute("dx")||b.hasAttribute("dy"))d.view.translate=new mxPoint(parseFloat(b.getAttribute("dx")||0),parseFloat(b.getAttribute("dy")||0))}else"fit"==b.nodeName&&(g=b.hasAttribute("max-scale")?parseFloat(b.getAttribute("max-scale")):1);b=b.nextSibling}}finally{e.endUpdate()}null!=g&&this.chromelessResize&&this.chromelessResize(!0,g)}return c};EditorUi.prototype.getCopyFilename=function(b,a){var c=null!=b&&null!=b.getTitle()?b.getTitle():this.defaultFilename, +f="",d=c.lastIndexOf(".");0<=d&&(f=c.substring(d),c=c.substring(0,d));if(a)var e=new Date,d=e.getFullYear(),g=e.getMonth()+1,k=e.getDate(),l=e.getHours(),m=e.getMinutes(),e=e.getSeconds(),c=c+("-"+(d+"-"+g+"-"+k+"-"+l+"-"+m+"-"+e));return c=mxResources.get("copyOf",[c])+f};EditorUi.prototype.fileLoaded=function(b){var a=!1;this.hideDialog();var c=this.getCurrentFile();this.setCurrentFile(null);null!=c&&(c.removeListener(this.descriptorChangedListener),c.close());this.editor.graph.model.clear();this.editor.undoManager.clear(); +var d=mxUtils.bind(this,function(){this.setGraphEnabled(!1);this.setCurrentFile(null);null!=c&&this.updateDocumentTitle();this.editor.graph.model.clear();this.editor.undoManager.clear();this.setBackgroundImage(null);null!=window.location.hash&&0<window.location.hash.length&&(window.location.hash="");null!=this.fname&&(this.fnameWrapper.style.display="none",this.fname.innerHTML="",this.fname.setAttribute("title",mxResources.get("rename")));this.editor.setStatus("");this.updateUi();this.showSplash()}); +if(null!=b)try{this.setCurrentFile(b);b.addListener("descriptorChanged",this.descriptorChangedListener);b.addListener("contentChanged",this.descriptorChangedListener);b.open();this.setGraphEnabled(!0);this.setMode(b.getMode());this.editor.undoManager.clear();this.descriptorChanged();this.updateUi();null==b.realtime&&(b.isEditable()?this.editor.setStatus(""):this.editor.setStatus('<span class="geStatusAlert" style="margin-left:8px;">'+mxUtils.htmlEntities(mxResources.get("readOnly"))+"</span>"));!this.editor.isChromelessView()|| +this.editor.editable?(this.editor.graph.selectUnlockedLayer(),this.showLayersDialog(),this.restoreLibraries(),window.self!==window.top&&window.focus()):this.editor.graph.isLightboxView()&&this.lightboxFit();this.chromelessResize&&this.chromelessResize();this.editor.fireEvent(new mxEventObject("fileLoaded"));a=!0;this.isOffline()||null==b.getMode()||this.logEvent({category:"File",action:"open",label:b.getMode()});if(this.mode==b.getMode()&&b.getMode()!=App.MODE_DEVICE&&null!=b.getMode())try{this.addRecent({id:b.getHash(), +title:b.getTitle(),mode:b.getMode()})}catch(q){}try{mxSettings.setOpenCounter(mxSettings.getOpenCounter()+1),mxSettings.save()}catch(q){}}catch(q){null!=window.console&&console.log("error in fileLoaded:",b,q);if(EditorUi.enableLogging&&!this.isOffline())try{(new Image).src=(null!=window.DRAWIO_LOG_URL?window.DRAWIO_LOG_URL:"")+"/log?v="+encodeURIComponent(EditorUi.VERSION)+"&msg=errorInFileLoaded:url:"+encodeURIComponent(window.location.href)+(null!=q&&null!=q.message?":err:"+encodeURIComponent(q.message): +"")+(null!=q&&null!=q.stack?"&stack="+encodeURIComponent(q.stack):"")}catch(u){}this.handleError(q,mxResources.get("errorLoadingFile"),mxUtils.bind(this,function(){null!=urlParams.url&&this.spinner.spin(document.body,mxResources.get("reconnecting"))?window.location.search=this.getSearch(["url"]):null!=c?c.constructor==DriveFile?this.loadFile(c.getHash()):this.fileLoaded(c):d()}))}else d();return a};EditorUi.prototype.descriptorChanged=function(){};EditorUi.prototype.logEvent=function(b){if(EditorUi.enableLogging)try{var a= +null!=window.DRAWIO_LOG_URL?window.DRAWIO_LOG_URL:"";(new Image).src=a+"/images/1x1.png?v="+encodeURIComponent(EditorUi.VERSION)+(null!=b?"&data="+encodeURIComponent(JSON.stringify(b)):"")}catch(h){}};EditorUi.prototype.restoreLibraries=function(){};EditorUi.prototype.saveLibrary=function(b,a,c,d,e,g,w){};EditorUi.prototype.isScratchpadEnabled=function(){return isLocalStorage||mxClient.IS_CHROMEAPP};EditorUi.prototype.toggleScratchpad=function(){this.isScratchpadEnabled()&&(null==this.scratchpad? +this.getLocalData(".scratchpad",mxUtils.bind(this,function(b){null==b&&(b=this.emptyLibraryXml);this.loadLibrary(new StorageLibrary(this,b,".scratchpad"))})):this.closeLibrary(this.scratchpad))};EditorUi.prototype.createLibraryDataFromImages=function(b){var a=mxUtils.createXmlDocument(),c=a.createElement("mxlibrary");mxUtils.setTextContent(c,JSON.stringify(b));a.appendChild(c);return mxUtils.getXml(a)};EditorUi.prototype.closeLibrary=function(b){null!=b&&(this.removeLibrarySidebar(b.getHash()),b.constructor!= +LocalLibrary&&mxSettings.removeCustomLibrary(b.getHash()),".scratchpad"==b.title&&(this.scratchpad=null))};EditorUi.prototype.removeLibrarySidebar=function(b){var a=this.sidebar.palettes[b];if(null!=a){for(var c=0;c<a.length;c++)a[c].parentNode.removeChild(a[c]);delete this.sidebar.palettes[b]}};EditorUi.prototype.repositionLibrary=function(b){var a=this.sidebar.container;if(null==b){var c=this.sidebar.palettes["L.scratchpad"];null==c&&(c=this.sidebar.palettes.search);null!=c&&(b=c[c.length-1].nextSibling)}b= +null!=b?b:a.firstChild.nextSibling.nextSibling;var c=a.lastChild,d=c.previousSibling;a.insertBefore(c,b);a.insertBefore(d,c)};EditorUi.prototype.loadLibrary=function(b){var a=mxUtils.parseXml(b.getData());if("mxlibrary"==a.documentElement.nodeName){var c=JSON.parse(mxUtils.getTextContent(a.documentElement));this.libraryLoaded(b,c,a.documentElement.getAttribute("title"))}else throw{message:mxResources.get("notALibraryFile")};};EditorUi.prototype.getLibraryStorageHint=function(b){return""};EditorUi.prototype.libraryLoaded= +function(b,a,c){if(null!=this.sidebar){b.constructor!=LocalLibrary&&mxSettings.addCustomLibrary(b.getHash());".scratchpad"==b.title&&(this.scratchpad=b);var f=this.sidebar.palettes[b.getHash()],f=null!=f?f[f.length-1].nextSibling:null;this.removeLibrarySidebar(b.getHash());var h=null,d=mxUtils.bind(this,function(a,c){0==a.length&&b.isEditable()?(null==h&&(h=document.createElement("div"),mxUtils.setPrefixedStyle(h.style,"borderRadius","6px"),h.style.border="3px dotted lightGray",h.style.textAlign= +"center",h.style.padding="8px",h.style.color="#B3B3B3",mxUtils.write(h,mxResources.get("dragElementsHere"))),c.appendChild(h)):this.addLibraryEntries(a,c)});if(null!=this.sidebar&&null!=a)for(var e=0;e<a.length;e++)mxUtils.bind(this,function(b){var a=b.data;null!=a&&null!=b.title?this.sidebar.addEntry(b.title,mxUtils.bind(this,function(){a=this.convertDataUri(a);var c="shape=image;verticalLabelPosition=bottom;verticalAlign=top;imageAspect=0;";"fixed"==b.aspect&&(c+="aspect=fixed;");return this.sidebar.createVertexTemplate(c+ +"image="+a,b.w,b.h,"",b.title||"",!1,!1,!0)})):null!=b.xml&&null!=b.title&&this.sidebar.addEntry(b.title,mxUtils.bind(this,function(){var a=this.stringToCells(this.editor.graph.decompress(b.xml));return this.sidebar.createVertexTemplateFromCells(a,b.w,b.h,b.title||"",!0,!1,!0)}))})(a[e]);c=null!=c&&0<c.length?c:b.getTitle();var g=this.sidebar.addPalette(b.getHash(),c,!0,mxUtils.bind(this,function(b){d(a,b)}));this.repositionLibrary(f);var k=g.parentNode.previousSibling;c=k.getAttribute("title");null!= +c&&0<c.length&&".scratchpad"!=b.title&&k.setAttribute("title",this.getLibraryStorageHint(b)+"\n"+c);var m=document.createElement("div");m.style.position="absolute";m.style.right="0px";m.style.top="0px";m.style.padding="8px";mxClient.IS_QUIRKS||8==document.documentMode||(m.style.backgroundColor="inherit");k.style.position="relative";var v=document.createElement("img");v.setAttribute("src",Dialog.prototype.closeImage);v.setAttribute("title",mxResources.get("close"));v.setAttribute("valign","absmiddle"); +v.setAttribute("border","0");v.style.margin="0 3px";var l=null;if(".scratchpad"!=b.title||this.closableScratchpad)m.appendChild(v),mxEvent.addListener(v,"click",mxUtils.bind(this,function(a){if(!mxEvent.isConsumed(a)){var c=mxUtils.bind(this,function(){this.closeLibrary(b)});null!=l?this.confirm(mxResources.get("allChangesLost"),null,c,mxResources.get("cancel"),mxResources.get("discardChanges")):c();mxEvent.consume(a)}}));if(b.isEditable()){var p=this.editor.graph,n=null,F=mxUtils.bind(this,function(c){this.showLibraryDialog(b.getTitle(), +g,a,b,b.getMode());mxEvent.consume(c)}),E=mxUtils.bind(this,function(c){b.setModified(!0);b.isAutosave()?(null!=n&&null!=n.parentNode&&n.parentNode.removeChild(n),n=v.cloneNode(!1),n.setAttribute("src",Editor.spinImage),n.setAttribute("title",mxResources.get("saving")),n.style.cursor="default",n.style.marginRight="2px",n.style.marginTop="-2px",m.insertBefore(n,m.firstChild),k.style.paddingRight=18*m.childNodes.length+"px",this.saveLibrary(b.getTitle(),a,b,b.getMode(),!0,!0,function(){null!=n&&null!= +n.parentNode&&(n.parentNode.removeChild(n),k.style.paddingRight=18*m.childNodes.length+"px")})):null==l&&(l=v.cloneNode(!1),l.setAttribute("src",IMAGE_PATH+"/download.png"),l.setAttribute("title",mxResources.get("save")),m.insertBefore(l,m.firstChild),mxEvent.addListener(l,"click",mxUtils.bind(this,function(c){this.saveLibrary(b.getTitle(),a,b,b.getMode(),b.constructor==LocalLibrary,!0,function(){null==l||b.isModified()||(k.style.paddingRight=18*m.childNodes.length+"px",l.parentNode.removeChild(l), +l=null)});mxEvent.consume(c)})),k.style.paddingRight=18*m.childNodes.length+"px")}),G=mxUtils.bind(this,function(b,c,f,d){b=p.cloneCells(mxUtils.sortCells(p.model.getTopmostCells(b)));for(var m=0;m<b.length;m++){var e=p.getCellGeometry(b[m]);null!=e&&e.translate(-c.x,-c.y)}g.appendChild(this.sidebar.createVertexTemplateFromCells(b,c.width,c.height,d||"",!0,!1,!1));b={xml:this.editor.graph.compress(mxUtils.getXml(this.editor.graph.encodeCells(b))),w:c.width,h:c.height};null!=d&&(b.title=d);a.push(b); +E(f);null!=h&&null!=h.parentNode&&0<a.length&&(h.parentNode.removeChild(h),h=null)}),L=mxUtils.bind(this,function(b){if(p.isSelectionEmpty())p.getRubberband().isActive()?(p.getRubberband().execute(b),p.getRubberband().reset()):this.showError(mxResources.get("error"),mxResources.get("nothingIsSelected"),mxResources.get("ok"));else{var a=p.getSelectionCells(),c=p.view.getBounds(a),f=p.view.scale;c.x/=f;c.y/=f;c.width/=f;c.height/=f;c.x-=p.view.translate.x;c.y-=p.view.translate.y;G(a,c)}mxEvent.consume(b)}); +g.style.border="3px solid transparent";mxEvent.addGestureListeners(g,function(){},mxUtils.bind(this,function(b){p.isMouseDown&&null!=p.panningManager&&null!=p.graphHandler.shape&&(p.graphHandler.shape.node.style.visibility="hidden",null!=h?h.style.border="3px dotted rgb(254, 137, 12)":g.style.border="3px dotted rgb(254, 137, 12)",g.style.cursor="copy",p.panningManager.stop(),p.autoScroll=!1,null!=p.graphHandler.guide&&p.graphHandler.guide.setVisible(!1),null!=p.graphHandler.hint&&(p.graphHandler.hint.style.visibility= +"hidden"),mxEvent.consume(b))}),mxUtils.bind(this,function(b){p.isMouseDown&&null!=p.panningManager&&null!=p.graphHandler&&(g.style.border="3px solid transparent",null!=h&&(h.style.border="3px dotted lightGray"),g.style.cursor="default",this.sidebar.showTooltips=!0,p.panningManager.stop(),p.graphHandler.reset(),p.isMouseDown=!1,p.autoScroll=!0,L(b),mxEvent.consume(b))}));mxEvent.addListener(g,"mouseleave",mxUtils.bind(this,function(b){p.isMouseDown&&null!=p.graphHandler.shape&&(p.graphHandler.shape.node.style.visibility= +"visible",g.style.border="3px solid transparent",g.style.cursor="",p.autoScroll=!0,null!=p.graphHandler.guide&&p.graphHandler.guide.setVisible(!0),null!=p.graphHandler.hint&&(p.graphHandler.hint.style.visibility="visible"),null!=h&&(h.style.border="3px dotted lightGray"))}));Graph.fileSupport&&(mxEvent.addListener(g,"dragover",mxUtils.bind(this,function(b){null!=h?h.style.border="3px dotted rgb(254, 137, 12)":g.style.border="3px dotted rgb(254, 137, 12)";b.dataTransfer.dropEffect="copy";g.style.cursor= +"copy";this.sidebar.hideTooltip();b.stopPropagation();b.preventDefault()})),mxEvent.addListener(g,"drop",mxUtils.bind(this,function(b){g.style.border="3px solid transparent";g.style.cursor="";null!=h&&(h.style.border="3px dotted lightGray");0<b.dataTransfer.files.length&&this.importFiles(b.dataTransfer.files,0,0,this.maxImageSize,mxUtils.bind(this,function(c,f,m,e,q,v,t,w,k){if(null!=c&&"image/"==f.substring(0,6))c="shape=image;verticalLabelPosition=bottom;verticalAlign=top;aspect=fixed;image="+this.convertDataUri(c), +c=[new mxCell("",new mxGeometry(0,0,q,v),c)],c[0].vertex=!0,G(c,new mxRectangle(0,0,q,v),b,mxEvent.isAltDown(b)?null:t.substring(0,t.lastIndexOf(".")).replace(/_/g," ")),null!=h&&null!=h.parentNode&&0<a.length&&(h.parentNode.removeChild(h),h=null);else{var u=!1,l=mxUtils.bind(this,function(c,f){if(null!=c&&"text/xml"==f){var m=mxUtils.parseXml(c);if("mxlibrary"==m.documentElement.nodeName)try{var e=JSON.parse(mxUtils.getTextContent(m.documentElement));d(e,g);a=a.concat(e);E(b);this.spinner.stop(); +u=!0}catch(X){}else if("mxfile"==m.documentElement.nodeName)try{for(var q=m.documentElement.getElementsByTagName("diagram"),m=0;m<q.length;m++){var e=mxUtils.getTextContent(q[m]),t=this.stringToCells(this.editor.graph.decompress(e)),v=this.editor.graph.getBoundingBoxFromGeometry(t);G(t,new mxRectangle(0,0,v.width,v.height),b)}u=!0}catch(X){null!=window.console&&console.log("error in drop handler:",X)}}u||(this.spinner.stop(),this.handleError({message:mxResources.get("errorLoadingFile")}));null!=h&& +null!=h.parentNode&&0<a.length&&(h.parentNode.removeChild(h),h=null)});null!=k&&null!=t&&(/(\.v(dx|sdx?))($|\?)/i.test(t)||/(\.vs(x|sx?))($|\?)/i.test(t))?this.importVisio(k,function(b){l(b,"text/xml")},null,t):!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(c,t)&&null!=k?this.parseFile(k,mxUtils.bind(this,function(b){4==b.readyState&&(this.spinner.stop(),200<=b.status&&299>=b.status?l(b.responseText,"text/xml"):this.handleError({message:mxResources.get(413==b.status?"drawingTooLarge": +"invalidOrMissingFile")},mxResources.get("errorLoadingFile")))})):l(c,f)}}));b.stopPropagation();b.preventDefault()})),mxEvent.addListener(g,"dragleave",function(b){null!=h?h.style.border="3px dotted lightGray":(g.style.border="3px solid transparent",g.style.cursor="");b.stopPropagation();b.preventDefault()}));v=v.cloneNode(!1);v.setAttribute("src",Editor.editImage);v.setAttribute("title",mxResources.get("edit"));m.insertBefore(v,m.firstChild);mxEvent.addListener(v,"click",F);mxEvent.addListener(g, +"dblclick",function(b){mxEvent.getSource(b)==g&&F(b)});c=v.cloneNode(!1);c.setAttribute("src",Editor.plusImage);c.setAttribute("title",mxResources.get("add"));m.insertBefore(c,m.firstChild);mxEvent.addListener(c,"click",L);this.isOffline()||".scratchpad"!=b.title||null==EditorUi.scratchpadHelpLink||(c=document.createElement("span"),c.setAttribute("title",mxResources.get("help")),c.style.cssText="color:#a3a3a3;text-decoration:none;margin-right:2px;",mxUtils.write(c,"?"),mxEvent.addGestureListeners(c, mxUtils.bind(this,function(b){this.openLink(EditorUi.scratchpadHelpLink);mxEvent.consume(b)})),m.insertBefore(c,m.firstChild))}k.appendChild(m);k.style.paddingRight=18*m.childNodes.length+"px"}};EditorUi.prototype.addLibraryEntries=function(b,a){for(var c=0;c<b.length;c++){var f=b[c],d=f.data;if(null!=d){var d=this.convertDataUri(d),e="shape=image;verticalLabelPosition=bottom;verticalAlign=top;imageAspect=0;";"fixed"==f.aspect&&(e+="aspect=fixed;");a.appendChild(this.sidebar.createVertexTemplate(e+ "image="+d,f.w,f.h,"",f.title||"",!1,!1,!0))}else null!=f.xml&&(d=this.stringToCells(this.editor.graph.decompress(f.xml)),0<d.length&&a.appendChild(this.sidebar.createVertexTemplateFromCells(d,f.w,f.h,f.title||"",!0,!1,!0)))}};EditorUi.prototype.getResource=function(b){return null!=b?b[mxLanguage]||b.main:null};"1"==urlParams.offline||EditorUi.isElectronApp?EditorUi.prototype.footerHeight=4:("1"==urlParams.savesidebar&&(Sidebar.prototype.thumbWidth=64,Sidebar.prototype.thumbHeight=64),EditorUi.prototype.footerHeight= 760<=screen.width&&240<=screen.height?46:0,EditorUi.prototype.createFooter=function(){var b=document.getElementById("geFooter");if(null!=b){b.style.visibility="visible";var a=document.createElement("img");a.setAttribute("border","0");a.setAttribute("src",Dialog.prototype.closeImage);a.setAttribute("title",mxResources.get("hide"));b.appendChild(a);mxClient.IS_QUIRKS&&(a.style.position="relative",a.style.styleFloat="right",a.style.top="-30px",a.style.left="164px",a.style.cursor="pointer");mxEvent.addListener(a, @@ -7671,7 +7675,7 @@ Editor.checkmarkImage="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABUAAAAVCAM b.style.position="absolute";b.style.overflow="hidden";b.style.borderWidth="3px";var a=document.createElement("a");a.setAttribute("href","javascript:void(0);");a.className="geTitle";a.style.height="100%";a.style.paddingTop="9px";mxUtils.write(a,mxResources.get("moreShapes")+"...");mxEvent.addListener(a,"click",mxUtils.bind(this,function(b){this.actions.get("shapes").funct();mxEvent.consume(b)}));b.appendChild(a);return b};EditorUi.prototype.handleError=function(b,a,c){var f=null!=this.spinner&&null!= this.spinner.pause?this.spinner.pause():function(){},h=null!=b&&null!=b.error?b.error:b;if(null!=h||null!=a){b=mxUtils.htmlEntities(mxResources.get("unknownError"));var d=mxResources.get("ok"),e=null;a=null!=a?a:mxResources.get("error");if(null!=h)if(null!=h.retry&&(d=mxResources.get("cancel"),e=function(){f();h.retry()}),"undefined"!=typeof gapi&&"undefined"!=typeof gapi.drive&&"undefined"!=typeof gapi.drive.realtime&&h.type==gapi.drive.realtime.ErrorType.FORBIDDEN)b=mxUtils.htmlEntities(mxResources.get("forbidden")); else if(404==h.code||404==h.status||"undefined"!=typeof gapi&&"undefined"!=typeof gapi.drive&&"undefined"!=typeof gapi.drive.realtime&&h.type==gapi.drive.realtime.ErrorType.NOT_FOUND){b=mxUtils.htmlEntities(mxResources.get("fileNotFoundOrDenied"));var g=window.location.hash;null!=g&&"#G"==g.substring(0,2)&&(g=g.substring(2),b+=' <a href="https://drive.google.com/open?id='+g+'" target="_blank">'+mxUtils.htmlEntities(mxResources.get("tryOpeningViaThisPage"))+"</a>")}else null!=h.message?b=mxUtils.htmlEntities(h.message): -null!=h.response&&null!=h.response.error?b=mxUtils.htmlEntities(h.response.error):"undefined"!==window.App&&(h.code==App.ERROR_TIMEOUT?b=mxUtils.htmlEntities(mxResources.get("timeout")):h.code==App.ERROR_BUSY&&(b=mxUtils.htmlEntities(mxResources.get("busy"))));this.showError(a,b,d,c,e)}else null!=c&&c()};EditorUi.prototype.showError=function(b,a,c,d,e,g,k,l,p,m,v,x){b=new ErrorDialog(this,b,a,c||mxResources.get("ok"),d,e,g,k,x,l,p);this.showDialog(b.container,m||340,v||150,!0,!1);b.init()};EditorUi.prototype.alert= +null!=h.response&&null!=h.response.error?b=mxUtils.htmlEntities(h.response.error):"undefined"!==window.App&&(h.code==App.ERROR_TIMEOUT?b=mxUtils.htmlEntities(mxResources.get("timeout")):h.code==App.ERROR_BUSY&&(b=mxUtils.htmlEntities(mxResources.get("busy"))));this.showError(a,b,d,c,e)}else null!=c&&c()};EditorUi.prototype.showError=function(b,a,c,d,e,g,w,k,l,m,v,x){b=new ErrorDialog(this,b,a,c||mxResources.get("ok"),d,e,g,w,x,k,l);this.showDialog(b.container,m||340,v||150,!0,!1);b.init()};EditorUi.prototype.alert= function(b,a){var c=new ErrorDialog(this,null,b,mxResources.get("ok"),a);this.showDialog(c.container,340,100,!0,!1);c.init()};EditorUi.prototype.confirm=function(b,a,c,d,e){var f=null!=this.spinner&&null!=this.spinner.pause?this.spinner.pause():function(){};this.showDialog((new ConfirmDialog(this,b,function(){f();null!=a&&a()},function(){f();null!=c&&c()},d,e)).container,340,90,!0,!1)};EditorUi.prototype.setCurrentFile=function(b){this.currentFile=b};EditorUi.prototype.getCurrentFile=function(){return this.currentFile}; EditorUi.prototype.isExportToCanvas=function(){return mxClient.IS_CHROMEAPP||!this.editor.graph.mathEnabled&&this.useCanvasForExport};EditorUi.prototype.createSvgDataUri=function(b){return"data:image/svg+xml;base64,"+btoa(unescape(encodeURIComponent(b)))};EditorUi.prototype.createImageDataUri=function(b,a,c){var f=b.toDataURL("image/"+c);if(6>=f.length||f==b.cloneNode(!1).toDataURL("image/"+c))throw{message:"Invalid image"};null!=a&&(f=this.writeGraphModelToPng(f,"zTXt","mxGraphModel",atob(this.editor.graph.compress(a)))); return f};EditorUi.prototype.saveCanvas=function(b,a,c){var f="jpeg"==c?"jpg":c,h=this.getBaseFilename()+"."+f;b=this.createImageDataUri(b,a,c);this.saveData(h,f,b.substring(b.lastIndexOf(",")+1),"image/"+c,!0)};EditorUi.prototype.isLocalFileSave=function(){return"remote"!=urlParams.save&&(mxClient.IS_IE||"undefined"!==typeof window.Blob&&"undefined"!==typeof window.URL)&&9!=document.documentMode&&8!=document.documentMode&&7!=document.documentMode&&!mxClient.IS_QUIRKS||this.isOfflineApp()||mxClient.IS_IOS}; @@ -7706,31 +7710,31 @@ p||(f.lightbox=!1);f.nav=this.editor.graph.foldingEnabled;c=parseInt(c);isNaN(c) f.style.whiteSpace="nowrap";var e=document.createElement("h3");mxUtils.write(e,mxResources.get("html"));e.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:12px";f.appendChild(e);var h=document.createElement("div");h.style.cssText="border-bottom:1px solid lightGray;padding-bottom:8px;margin-bottom:12px;";var g=document.createElement("input");g.style.cssText="margin-right:8px;margin-top:8px;margin-bottom:8px;";g.setAttribute("value","url");g.setAttribute("type","radio");g.setAttribute("name", "type-embedhtmldialog");e=g.cloneNode(!0);e.setAttribute("value","copy");h.appendChild(e);var k=document.createElement("span");mxUtils.write(k,mxResources.get("includeCopyOfMyDiagram"));h.appendChild(k);mxUtils.br(h);h.appendChild(g);k=document.createElement("span");mxUtils.write(k,mxResources.get("publicDiagramUrl"));h.appendChild(k);var m=this.getCurrentFile();null==c&&null!=m&&m.constructor==window.DriveFile&&(k=document.createElement("a"),k.style.paddingLeft="12px",k.style.color="gray",k.setAttribute("href", "javascript:void(0);"),mxUtils.write(k,mxResources.get("share")),h.appendChild(k),mxEvent.addListener(k,"click",mxUtils.bind(this,function(){this.hideDialog();this.drive.showPermissions(m.getId())})));e.setAttribute("checked","checked");null==c&&g.setAttribute("disabled","disabled");f.appendChild(h);var v=this.addLinkSection(f),l=this.addCheckbox(f,mxResources.get("zoom"),!0,null,!0);mxUtils.write(f,":");var t=document.createElement("input");t.setAttribute("type","text");t.style.marginRight="16px"; -t.style.width="60px";t.style.marginLeft="4px";t.style.marginRight="12px";t.value="100%";f.appendChild(t);var p=this.addCheckbox(f,mxResources.get("fit"),!0),h=null!=this.pages&&1<this.pages.length,n=n=this.addCheckbox(f,mxResources.get("allPages"),h,!h),E=this.addCheckbox(f,mxResources.get("layers"),!0),F=this.addCheckbox(f,mxResources.get("lightbox"),!0),L=this.addEditButton(f,F),y=L.getEditInput();y.style.marginBottom="16px";mxEvent.addListener(F,"change",function(){F.checked?y.removeAttribute("disabled"): -y.setAttribute("disabled","disabled");y.checked&&F.checked?L.getEditSelect().removeAttribute("disabled"):L.getEditSelect().setAttribute("disabled","disabled")});b=new CustomDialog(this,f,mxUtils.bind(this,function(){d(g.checked?c:null,l.checked,t.value,v.getTarget(),v.getColor(),p.checked,n.checked,E.checked,F.checked,L.getLink())}),null,b,a);this.showDialog(b.container,340,384,!0,!0);e.focus()};EditorUi.prototype.showPublishLinkDialog=function(b,a,c,d,e,g){var f=document.createElement("div");f.style.whiteSpace= +t.style.width="60px";t.style.marginLeft="4px";t.style.marginRight="12px";t.value="100%";f.appendChild(t);var p=this.addCheckbox(f,mxResources.get("fit"),!0),h=null!=this.pages&&1<this.pages.length,n=n=this.addCheckbox(f,mxResources.get("allPages"),h,!h),E=this.addCheckbox(f,mxResources.get("layers"),!0),G=this.addCheckbox(f,mxResources.get("lightbox"),!0),L=this.addEditButton(f,G),z=L.getEditInput();z.style.marginBottom="16px";mxEvent.addListener(G,"change",function(){G.checked?z.removeAttribute("disabled"): +z.setAttribute("disabled","disabled");z.checked&&G.checked?L.getEditSelect().removeAttribute("disabled"):L.getEditSelect().setAttribute("disabled","disabled")});b=new CustomDialog(this,f,mxUtils.bind(this,function(){d(g.checked?c:null,l.checked,t.value,v.getTarget(),v.getColor(),p.checked,n.checked,E.checked,G.checked,L.getLink())}),null,b,a);this.showDialog(b.container,340,384,!0,!0);e.focus()};EditorUi.prototype.showPublishLinkDialog=function(b,a,c,d,e,g){var f=document.createElement("div");f.style.whiteSpace= "nowrap";var h=document.createElement("h3");mxUtils.write(h,b||mxResources.get("link"));h.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:12px";f.appendChild(h);var k=this.getCurrentFile(),h="https://desk.draw.io/support/solutions/articles/16000051941";b=0;if(null!=k&&k.constructor==window.DriveFile&&!a){b=80;var h="https://desk.draw.io/support/solutions/articles/16000039384",m=document.createElement("div");m.style.cssText="border-bottom:1px solid lightGray;padding-bottom:14px;padding-top:6px;margin-bottom:14px;text-align:center;"; var v=document.createElement("div");v.style.whiteSpace="normal";mxUtils.write(v,mxResources.get("linkAccountRequired"));m.appendChild(v);v=mxUtils.button(mxResources.get("share"),mxUtils.bind(this,function(){this.drive.showPermissions(k.getId())}));v.style.marginTop="12px";v.className="geBtn";m.appendChild(v);f.appendChild(m);v=document.createElement("a");v.style.paddingLeft="12px";v.style.color="gray";v.style.fontSize="11px";v.setAttribute("href","javascript:void(0);");mxUtils.write(v,mxResources.get("check")); -m.appendChild(v);mxEvent.addListener(v,"click",mxUtils.bind(this,function(){this.spinner.spin(document.body,mxResources.get("loading"))&&this.getPublicUrl(this.getCurrentFile(),mxUtils.bind(this,function(b){this.spinner.stop();b=new ErrorDialog(this,null,mxResources.get(null!=b?"diagramIsPublic":"diagramIsNotPublic"),mxResources.get("ok"));this.showDialog(b.container,300,80,!0,!1);b.init()}))}))}var l=null,q=null;if(null!=c||null!=d)b+=30,mxUtils.write(f,mxResources.get("width")+":"),l=document.createElement("input"), -l.setAttribute("type","text"),l.style.marginRight="16px",l.style.width="50px",l.style.marginLeft="6px",l.style.marginRight="16px",l.style.marginBottom="10px",l.value="100%",f.appendChild(l),mxUtils.write(f,mxResources.get("height")+":"),q=document.createElement("input"),q.setAttribute("type","text"),q.style.width="50px",q.style.marginLeft="6px",q.style.marginBottom="10px",q.value=d+"px",f.appendChild(q),mxUtils.br(f);var t=this.addLinkSection(f,g);c=null!=this.pages&&1<this.pages.length;var u=null; -if(null==k||k.constructor!=window.DriveFile||a)u=this.addCheckbox(f,mxResources.get("allPages"),c,!c);var p=this.addCheckbox(f,mxResources.get("lightbox"),!0),n=this.addEditButton(f,p),L=n.getEditInput(),y=this.addCheckbox(f,mxResources.get("layers"),!0);y.style.marginLeft=L.style.marginLeft;y.style.marginBottom="16px";y.style.marginTop="8px";mxEvent.addListener(p,"change",function(){p.checked?(y.removeAttribute("disabled"),L.removeAttribute("disabled")):(y.setAttribute("disabled","disabled"),L.setAttribute("disabled", -"disabled"));L.checked&&p.checked?n.getEditSelect().removeAttribute("disabled"):n.getEditSelect().setAttribute("disabled","disabled")});a=new CustomDialog(this,f,mxUtils.bind(this,function(){e(t.getTarget(),t.getColor(),null==u?!0:u.checked,p.checked,n.getLink(),y.checked,null!=l?l.value:null,null!=q?q.value:null)}),null,mxResources.get("create"),h);this.showDialog(a.container,340,254+b,!0,!0);null!=l?(l.focus(),mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode||mxClient.IS_QUIRKS?l.select(): +m.appendChild(v);mxEvent.addListener(v,"click",mxUtils.bind(this,function(){this.spinner.spin(document.body,mxResources.get("loading"))&&this.getPublicUrl(this.getCurrentFile(),mxUtils.bind(this,function(b){this.spinner.stop();b=new ErrorDialog(this,null,mxResources.get(null!=b?"diagramIsPublic":"diagramIsNotPublic"),mxResources.get("ok"));this.showDialog(b.container,300,80,!0,!1);b.init()}))}))}var q=null,l=null;if(null!=c||null!=d)b+=30,mxUtils.write(f,mxResources.get("width")+":"),q=document.createElement("input"), +q.setAttribute("type","text"),q.style.marginRight="16px",q.style.width="50px",q.style.marginLeft="6px",q.style.marginRight="16px",q.style.marginBottom="10px",q.value="100%",f.appendChild(q),mxUtils.write(f,mxResources.get("height")+":"),l=document.createElement("input"),l.setAttribute("type","text"),l.style.width="50px",l.style.marginLeft="6px",l.style.marginBottom="10px",l.value=d+"px",f.appendChild(l),mxUtils.br(f);var t=this.addLinkSection(f,g);c=null!=this.pages&&1<this.pages.length;var u=null; +if(null==k||k.constructor!=window.DriveFile||a)u=this.addCheckbox(f,mxResources.get("allPages"),c,!c);var p=this.addCheckbox(f,mxResources.get("lightbox"),!0),n=this.addEditButton(f,p),L=n.getEditInput(),z=this.addCheckbox(f,mxResources.get("layers"),!0);z.style.marginLeft=L.style.marginLeft;z.style.marginBottom="16px";z.style.marginTop="8px";mxEvent.addListener(p,"change",function(){p.checked?(z.removeAttribute("disabled"),L.removeAttribute("disabled")):(z.setAttribute("disabled","disabled"),L.setAttribute("disabled", +"disabled"));L.checked&&p.checked?n.getEditSelect().removeAttribute("disabled"):n.getEditSelect().setAttribute("disabled","disabled")});a=new CustomDialog(this,f,mxUtils.bind(this,function(){e(t.getTarget(),t.getColor(),null==u?!0:u.checked,p.checked,n.getLink(),z.checked,null!=q?q.value:null,null!=l?l.value:null)}),null,mxResources.get("create"),h);this.showDialog(a.container,340,254+b,!0,!0);null!=q?(q.focus(),mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode||mxClient.IS_QUIRKS?q.select(): document.execCommand("selectAll",!1,null)):t.focus()};EditorUi.prototype.showRemoteExportDialog=function(b,a,c,d){var f=document.createElement("div");f.style.whiteSpace="nowrap";var e=document.createElement("h3");mxUtils.write(e,mxResources.get("image"));e.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:4px";f.appendChild(e);var h=this.addCheckbox(f,mxResources.get("selectionOnly"),!1,this.editor.graph.isSelectionEmpty()),g=d?null:this.addCheckbox(f,mxResources.get("includeCopyOfMyDiagram"), !0),e=this.editor.graph,k=d?null:this.addCheckbox(f,mxResources.get("transparentBackground"),e.background==mxConstants.NONE||null==e.background);null!=k&&(k.style.marginBottom="16px");b=new CustomDialog(this,f,mxUtils.bind(this,function(){c(!h.checked,null!=g?g.checked:!1,null!=k?k.checked:!1)}),null,b,a);this.showDialog(b.container,300,d?100:186,!0,!0)};EditorUi.prototype.showExportDialog=function(b,a,c,d,e,g,k,l){k=null!=k?k:!0;var f=document.createElement("div");f.style.whiteSpace="nowrap";var h= this.editor.graph,v="jpeg"==l?196:300,q=document.createElement("h3");mxUtils.write(q,b);q.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:10px";f.appendChild(q);mxUtils.write(f,mxResources.get("zoom")+":");var t=document.createElement("input");t.setAttribute("type","text");t.style.marginRight="16px";t.style.width="60px";t.style.marginLeft="4px";t.style.marginRight="12px";t.value=this.lastExportZoom||"100%";f.appendChild(t);mxUtils.write(f,mxResources.get("borderWidth")+":"); -var w=document.createElement("input");w.setAttribute("type","text");w.style.marginRight="16px";w.style.width="60px";w.style.marginLeft="4px";w.value=this.lastExportBorder||"0";f.appendChild(w);mxUtils.br(f);var u=this.addCheckbox(f,mxResources.get("transparentBackground"),h.background==mxConstants.NONE||null==h.background,null,null,"jpeg"!=l),p=this.addCheckbox(f,mxResources.get("selectionOnly"),!1,h.isSelectionEmpty()),n=document.createElement("input");n.style.marginTop="16px";n.style.marginRight= -"8px";n.style.marginLeft="24px";n.setAttribute("disabled","disabled");n.setAttribute("type","checkbox");g&&(f.appendChild(n),mxUtils.write(f,mxResources.get("crop")),mxUtils.br(f),v+=26,mxEvent.addListener(p,"change",function(){p.checked?n.removeAttribute("disabled"):n.setAttribute("disabled","disabled")}));h.isSelectionEmpty()||(n.setAttribute("checked","checked"),n.defaultChecked=!0);var z=this.addCheckbox(f,mxResources.get("shadow"),h.shadowVisible),y=document.createElement("input");y.style.marginTop= -"16px";y.style.marginRight="8px";y.setAttribute("type","checkbox");!this.isOffline()&&this.canvasSupported||y.setAttribute("disabled","disabled");a&&(f.appendChild(y),mxUtils.write(f,mxResources.get("embedImages")),mxUtils.br(f),v+=26);var D=this.addCheckbox(f,mxResources.get("includeCopyOfMyDiagram"),k,null,null,"jpeg"!=l),G=null!=this.pages&&1<this.pages.length,M=this.addCheckbox(f,G?mxResources.get("allPages"):"",G,!G,null,"jpeg"!=l);M.style.marginLeft="24px";M.style.marginBottom="16px";G||(M.style.display= -"none");mxEvent.addListener(D,"change",function(){D.checked&&G?M.removeAttribute("disabled"):M.setAttribute("disabled","disabled")});k&&G||M.setAttribute("disabled","disabled");var J=document.createElement("select");J.style.maxWidth="260px";J.style.marginLeft="8px";J.style.marginRight="10px";J.className="geBtn";b=document.createElement("option");b.setAttribute("value","auto");mxUtils.write(b,mxResources.get("automatic"));J.appendChild(b);b=document.createElement("option");b.setAttribute("value","blank"); -mxUtils.write(b,mxResources.get("openInNewWindow"));J.appendChild(b);b=document.createElement("option");b.setAttribute("value","self");mxUtils.write(b,mxResources.get("openInThisWindow"));J.appendChild(b);"svg"==l&&(mxUtils.write(f,mxResources.get("links")+":"),f.appendChild(J),mxUtils.br(f),mxUtils.br(f),v+=26);c=new CustomDialog(this,f,mxUtils.bind(this,function(){this.lastExportBorder=w.value;this.lastExportZoom=t.value;e(t.value,u.checked,!p.checked,z.checked,D.checked,y.checked,w.value,n.checked, +var w=document.createElement("input");w.setAttribute("type","text");w.style.marginRight="16px";w.style.width="60px";w.style.marginLeft="4px";w.value=this.lastExportBorder||"0";f.appendChild(w);mxUtils.br(f);var p=this.addCheckbox(f,mxResources.get("transparentBackground"),h.background==mxConstants.NONE||null==h.background,null,null,"jpeg"!=l),u=this.addCheckbox(f,mxResources.get("selectionOnly"),!1,h.isSelectionEmpty()),n=document.createElement("input");n.style.marginTop="16px";n.style.marginRight= +"8px";n.style.marginLeft="24px";n.setAttribute("disabled","disabled");n.setAttribute("type","checkbox");g&&(f.appendChild(n),mxUtils.write(f,mxResources.get("crop")),mxUtils.br(f),v+=26,mxEvent.addListener(u,"change",function(){u.checked?n.removeAttribute("disabled"):n.setAttribute("disabled","disabled")}));h.isSelectionEmpty()||(n.setAttribute("checked","checked"),n.defaultChecked=!0);var y=this.addCheckbox(f,mxResources.get("shadow"),h.shadowVisible),z=document.createElement("input");z.style.marginTop= +"16px";z.style.marginRight="8px";z.setAttribute("type","checkbox");!this.isOffline()&&this.canvasSupported||z.setAttribute("disabled","disabled");a&&(f.appendChild(z),mxUtils.write(f,mxResources.get("embedImages")),mxUtils.br(f),v+=26);var D=this.addCheckbox(f,mxResources.get("includeCopyOfMyDiagram"),k,null,null,"jpeg"!=l),H=null!=this.pages&&1<this.pages.length,M=this.addCheckbox(f,H?mxResources.get("allPages"):"",H,!H,null,"jpeg"!=l);M.style.marginLeft="24px";M.style.marginBottom="16px";H||(M.style.display= +"none");mxEvent.addListener(D,"change",function(){D.checked&&H?M.removeAttribute("disabled"):M.setAttribute("disabled","disabled")});k&&H||M.setAttribute("disabled","disabled");var J=document.createElement("select");J.style.maxWidth="260px";J.style.marginLeft="8px";J.style.marginRight="10px";J.className="geBtn";b=document.createElement("option");b.setAttribute("value","auto");mxUtils.write(b,mxResources.get("automatic"));J.appendChild(b);b=document.createElement("option");b.setAttribute("value","blank"); +mxUtils.write(b,mxResources.get("openInNewWindow"));J.appendChild(b);b=document.createElement("option");b.setAttribute("value","self");mxUtils.write(b,mxResources.get("openInThisWindow"));J.appendChild(b);"svg"==l&&(mxUtils.write(f,mxResources.get("links")+":"),f.appendChild(J),mxUtils.br(f),mxUtils.br(f),v+=26);c=new CustomDialog(this,f,mxUtils.bind(this,function(){this.lastExportBorder=w.value;this.lastExportZoom=t.value;e(t.value,p.checked,!u.checked,y.checked,D.checked,z.checked,w.value,n.checked, !M.checked,J.value)}),null,c,d);this.showDialog(c.container,340,v,!0,!0);t.focus();mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode||mxClient.IS_QUIRKS?t.select():document.execCommand("selectAll",!1,null)};EditorUi.prototype.showEmbedImageDialog=function(b,a,c,d,e){var f=document.createElement("div");f.style.whiteSpace="nowrap";var h=this.editor.graph;if(null!=a){var g=document.createElement("h3");mxUtils.write(g,a);g.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:4px"; -f.appendChild(g)}var k=this.addCheckbox(f,mxResources.get("fit"),!0),m=this.addCheckbox(f,mxResources.get("shadow"),h.shadowVisible&&d,!d),v=this.addCheckbox(f,c),l=this.addCheckbox(f,mxResources.get("lightbox"),!0),q=this.addEditButton(f,l),t=q.getEditInput(),p=1<h.model.getChildCount(h.model.getRoot()),n=this.addCheckbox(f,mxResources.get("layers"),p,!p);n.style.marginLeft=t.style.marginLeft;n.style.marginBottom="12px";n.style.marginTop="8px";mxEvent.addListener(l,"change",function(){l.checked? -(p&&n.removeAttribute("disabled"),t.removeAttribute("disabled")):(n.setAttribute("disabled","disabled"),t.setAttribute("disabled","disabled"));t.checked&&l.checked?q.getEditSelect().removeAttribute("disabled"):q.getEditSelect().setAttribute("disabled","disabled")});a=new CustomDialog(this,f,mxUtils.bind(this,function(){b(k.checked,m.checked,v.checked,l.checked,q.getLink(),n.checked)}),null,mxResources.get("embed"),e);this.showDialog(a.container,280,280,!0,!0)};EditorUi.prototype.createEmbedImage= +f.appendChild(g)}var k=this.addCheckbox(f,mxResources.get("fit"),!0),m=this.addCheckbox(f,mxResources.get("shadow"),h.shadowVisible&&d,!d),v=this.addCheckbox(f,c),q=this.addCheckbox(f,mxResources.get("lightbox"),!0),l=this.addEditButton(f,q),t=l.getEditInput(),p=1<h.model.getChildCount(h.model.getRoot()),n=this.addCheckbox(f,mxResources.get("layers"),p,!p);n.style.marginLeft=t.style.marginLeft;n.style.marginBottom="12px";n.style.marginTop="8px";mxEvent.addListener(q,"change",function(){q.checked? +(p&&n.removeAttribute("disabled"),t.removeAttribute("disabled")):(n.setAttribute("disabled","disabled"),t.setAttribute("disabled","disabled"));t.checked&&q.checked?l.getEditSelect().removeAttribute("disabled"):l.getEditSelect().setAttribute("disabled","disabled")});a=new CustomDialog(this,f,mxUtils.bind(this,function(){b(k.checked,m.checked,v.checked,q.checked,l.getLink(),n.checked)}),null,mxResources.get("embed"),e);this.showDialog(a.container,280,280,!0,!0)};EditorUi.prototype.createEmbedImage= function(b,a,c,d,e,g,k,l){function f(a){var f=" ",m="";d&&(f=" onclick=\"(function(img){if(img.wnd!=null&&!img.wnd.closed){img.wnd.focus();}else{var r=function(evt){if(evt.data=='ready'&&evt.source==img.wnd){img.wnd.postMessage(decodeURIComponent(img.getAttribute('src')),'*');window.removeEventListener('message',r);}};window.addEventListener('message',r);img.wnd=window.open('https://www.draw.io/?client=1&lightbox=1"+(e?"&edit=_blank":"")+(g?"&layers=1":"")+"');}})(this);\"",m+="cursor:pointer;"); b&&(m+="max-width:100%;");var v="";c&&(v=' width="'+Math.round(h.width)+'" height="'+Math.round(h.height)+'"');k('<img src="'+a+'"'+v+(""!=m?' style="'+m+'"':"")+f+"/>")}var h=this.editor.graph.getGraphBounds();if(this.isExportToCanvas())this.exportToCanvas(mxUtils.bind(this,function(b){var a=d?this.getFileData(!0):null;b=this.createImageDataUri(b,a,"png");f(b)}),null,null,null,mxUtils.bind(this,function(b){l({message:mxResources.get("unknownError")})}),null,!0,c?2:1,null,a);else if(a=this.getFileData(!0), h.width*h.height<=MAX_AREA&&a.length<=MAX_REQUEST_SIZE){var v="";c&&(v="&w="+Math.round(2*h.width)+"&h="+Math.round(2*h.height));var q=new mxXmlRequest(EXPORT_URL,"format=png&base64=1&embedXml="+(d?"1":"0")+v+"&xml="+encodeURIComponent(a));q.send(mxUtils.bind(this,function(){200<=q.getStatus()&&299>=q.getStatus()?f("data:image/png;base64,"+q.getText()):l({message:mxResources.get("unknownError")})}))}else l({message:mxResources.get("drawingTooLarge")})};EditorUi.prototype.createEmbedSvg=function(b, -a,c,d,e,g,k){var f=this.editor.graph.getSvg(),h=f.getElementsByTagName("a");if(null!=h)for(var m=0;m<h.length;m++){var v=h[m].getAttribute("href");null!=v&&"#"==v.charAt(0)&&"_blank"==h[m].getAttribute("target")&&h[m].removeAttribute("target")}d&&f.setAttribute("content",this.getFileData(!0));a&&this.editor.graph.addSvgShadow(f);if(c){var l=" ",q="";d&&(l="onclick=\"(function(img){if(img.wnd!=null&&!img.wnd.closed){img.wnd.focus();}else{var r=function(evt){if(evt.data=='ready'&&evt.source==img.wnd){img.wnd.postMessage(decodeURIComponent(img.getAttribute('src')),'*');window.removeEventListener('message',r);}};window.addEventListener('message',r);img.wnd=window.open('https://www.draw.io/?client=1&lightbox=1"+ -(e?"&edit=_blank":"")+(g?"&layers=1":"")+"');}})(this);\"",q+="cursor:pointer;");b&&(q+="max-width:100%;");this.convertImages(f,mxUtils.bind(this,function(b){k('<img src="'+this.createSvgDataUri(mxUtils.getXml(b))+'"'+(""!=q?' style="'+q+'"':"")+l+"/>")}))}else q="",d&&(f.setAttribute("onclick","(function(svg){var src=window.event.target||window.event.srcElement;while (src!=null&&src.nodeName.toLowerCase()!='a'){src=src.parentNode;}if(src==null){if(svg.wnd!=null&&!svg.wnd.closed){svg.wnd.focus();}else{var r=function(evt){if(evt.data=='ready'&&evt.source==svg.wnd){svg.wnd.postMessage(decodeURIComponent(svg.getAttribute('content')),'*');window.removeEventListener('message',r);}};window.addEventListener('message',r);svg.wnd=window.open('https://www.draw.io/?client=1&lightbox=1"+ -(e?"&edit=_blank":"")+(g?"&layers=1":"")+"');}}})(this);"),q+="cursor:pointer;"),b&&(b=parseInt(f.getAttribute("width")),a=parseInt(f.getAttribute("height")),f.setAttribute("viewBox","0 0 "+b+" "+a),q+="max-width:100%;max-height:"+a+"px;",f.removeAttribute("height")),""!=q&&f.setAttribute("style",q),k(mxUtils.getXml(f))};EditorUi.prototype.timeSince=function(b){b=Math.floor((new Date-b)/1E3);var a=Math.floor(b/31536E3);if(1<a)return a+" "+mxResources.get("years");a=Math.floor(b/2592E3);if(1<a)return a+ +a,c,d,e,g,k){var f=this.editor.graph.getSvg(),h=f.getElementsByTagName("a");if(null!=h)for(var m=0;m<h.length;m++){var v=h[m].getAttribute("href");null!=v&&"#"==v.charAt(0)&&"_blank"==h[m].getAttribute("target")&&h[m].removeAttribute("target")}d&&f.setAttribute("content",this.getFileData(!0));a&&this.editor.graph.addSvgShadow(f);if(c){var q=" ",l="";d&&(q="onclick=\"(function(img){if(img.wnd!=null&&!img.wnd.closed){img.wnd.focus();}else{var r=function(evt){if(evt.data=='ready'&&evt.source==img.wnd){img.wnd.postMessage(decodeURIComponent(img.getAttribute('src')),'*');window.removeEventListener('message',r);}};window.addEventListener('message',r);img.wnd=window.open('https://www.draw.io/?client=1&lightbox=1"+ +(e?"&edit=_blank":"")+(g?"&layers=1":"")+"');}})(this);\"",l+="cursor:pointer;");b&&(l+="max-width:100%;");this.convertImages(f,mxUtils.bind(this,function(b){k('<img src="'+this.createSvgDataUri(mxUtils.getXml(b))+'"'+(""!=l?' style="'+l+'"':"")+q+"/>")}))}else l="",d&&(f.setAttribute("onclick","(function(svg){var src=window.event.target||window.event.srcElement;while (src!=null&&src.nodeName.toLowerCase()!='a'){src=src.parentNode;}if(src==null){if(svg.wnd!=null&&!svg.wnd.closed){svg.wnd.focus();}else{var r=function(evt){if(evt.data=='ready'&&evt.source==svg.wnd){svg.wnd.postMessage(decodeURIComponent(svg.getAttribute('content')),'*');window.removeEventListener('message',r);}};window.addEventListener('message',r);svg.wnd=window.open('https://www.draw.io/?client=1&lightbox=1"+ +(e?"&edit=_blank":"")+(g?"&layers=1":"")+"');}}})(this);"),l+="cursor:pointer;"),b&&(b=parseInt(f.getAttribute("width")),a=parseInt(f.getAttribute("height")),f.setAttribute("viewBox","0 0 "+b+" "+a),l+="max-width:100%;max-height:"+a+"px;",f.removeAttribute("height")),""!=l&&f.setAttribute("style",l),k(mxUtils.getXml(f))};EditorUi.prototype.timeSince=function(b){b=Math.floor((new Date-b)/1E3);var a=Math.floor(b/31536E3);if(1<a)return a+" "+mxResources.get("years");a=Math.floor(b/2592E3);if(1<a)return a+ " "+mxResources.get("months");a=Math.floor(b/86400);if(1<a)return a+" "+mxResources.get("days");a=Math.floor(b/3600);if(1<a)return a+" "+mxResources.get("hours");a=Math.floor(b/60);return 1<a?a+" "+mxResources.get("minutes"):1==a?a+" "+mxResources.get("minute"):null};EditorUi.prototype.convertMath=function(b,a,c,d){b.mathEnabled&&"undefined"!==typeof MathJax&&"undefined"!==typeof MathJax.Hub?(Editor.MathJaxRender(a),window.setTimeout(mxUtils.bind(this,function(){MathJax.Hub.Queue(mxUtils.bind(this, function(){d()}))}),0)):d()};EditorUi.prototype.decodeNodeIntoGraph=function(b,a){if(null!=b){var c=null;if("diagram"==b.nodeName)c=b;else if("mxfile"==b.nodeName){var f=b.getElementsByTagName("diagram");if(0<f.length){var c=f[0],d=a.getGlobalVariable;a.getGlobalVariable=function(b){return"page"==b?c.getAttribute("name")||mxResources.get("pageWithNumber",[1]):"pagenumber"==b?1:d.apply(this,arguments)}}}null!=c&&(f=a.decompress(mxUtils.getTextContent(c)),null!=f&&0<f.length&&(b=mxUtils.parseXml(f).documentElement))}f= this.editor.graph;try{this.editor.graph=a,this.editor.setGraphXml(b)}catch(u){}finally{this.editor.graph=f}return b};EditorUi.prototype.getEmbeddedPng=function(b,a,c){var f=this.editor.graph,d=null;if(null!=c&&0<c.length)f=this.createTemporaryGraph(this.editor.graph.getStylesheet()),document.body.appendChild(f.container),this.decodeNodeIntoGraph(this.editor.extractGraphModel(mxUtils.parseXml(c).documentElement,!0),f),d=c;else if(null!=this.pages&&this.currentPage!=this.pages[0]){var f=this.createTemporaryGraph(f.getStylesheet()), @@ -7743,38 +7747,38 @@ e[b]){e[b]=b;d++;var a="application/x-font-ttf";if("svg"==p||/(\.svg)($|\?)/i.te b;/^https?:\/\//.test(c)&&!this.isCorsEnabledForUrl(c)&&(c=PROXY_URL+"?url="+encodeURIComponent(b));this.loadUrl(c,mxUtils.bind(this,function(a){e[b]=a;d--;g()}),mxUtils.bind(this,function(b){d--;g()}),!0,null,"data:"+a+";charset=utf-8;base64,")}})(a(c[k].substring(0,l)),p)}}else b()};EditorUi.prototype.exportToCanvas=function(b,a,c,d,e,g,k,l,p,m,v,x,n,B){g=null!=g?g:!0;x=null!=x?x:this.editor.graph;n=null!=n?n:0;var f=p?null:x.background;f==mxConstants.NONE&&(f=null);null==f&&(f=d);null==f&&0==p&& (f=this.editor.graph.defaultPageBackgroundColor);this.convertImages(x.getSvg(f,null,null,B,null,null!=k?k:!0),mxUtils.bind(this,function(c){var d=new Image;d.onload=mxUtils.bind(this,function(){try{var h=document.createElement("canvas"),m=parseInt(c.getAttribute("width")),k=parseInt(c.getAttribute("height"));l=null!=l?l:1;null!=a&&(l=g?Math.min(1,Math.min(3*a/(4*k),a/m)):a/m);m=Math.ceil(l*m)+2*n;k=Math.ceil(l*k)+2*n;h.setAttribute("width",m);h.setAttribute("height",k);var v=h.getContext("2d");null!= f&&(v.beginPath(),v.rect(0,0,m,k),v.fillStyle=f,v.fill());v.scale(l,l);mxClient.IS_SF?window.setTimeout(function(){v.drawImage(d,n/l,n/l);b(h)},0):(v.drawImage(d,n/l,n/l),b(h))}catch(J){null!=e&&e(J)}});d.onerror=function(b){null!=e&&e(b)};try{m&&this.editor.graph.addSvgShadow(c);var h=mxUtils.bind(this,function(){if(null!=this.editor.resolvedFontCss){var b=document.createElement("style");b.setAttribute("type","text/css");b.innerHTML=this.editor.resolvedFontCss;c.getElementsByTagName("defs")[0].appendChild(b)}this.convertMath(x, -c,!0,mxUtils.bind(this,function(){d.src=this.createSvgDataUri(mxUtils.getXml(c))}))});this.loadFonts(h)}catch(y){null!=e&&e(y)}}),c,v)};EditorUi.prototype.createImageUrlConverter=function(){var b=new mxUrlConverter;b.updateBaseUrl();var a=b.convert,c=this;b.convert=function(f){if(null!=f){var d="http://"==f.substring(0,7)||"https://"==f.substring(0,8);d&&!navigator.onLine?f=c.svgBrokenImage.src:!d||f.substring(0,b.baseUrl.length)==b.baseUrl||c.crossOriginImages&&c.isCorsEnabledForUrl(f)?"chrome-extension://"!= +c,!0,mxUtils.bind(this,function(){d.src=this.createSvgDataUri(mxUtils.getXml(c))}))});this.loadFonts(h)}catch(z){null!=e&&e(z)}}),c,v)};EditorUi.prototype.createImageUrlConverter=function(){var b=new mxUrlConverter;b.updateBaseUrl();var a=b.convert,c=this;b.convert=function(f){if(null!=f){var d="http://"==f.substring(0,7)||"https://"==f.substring(0,8);d&&!navigator.onLine?f=c.svgBrokenImage.src:!d||f.substring(0,b.baseUrl.length)==b.baseUrl||c.crossOriginImages&&c.isCorsEnabledForUrl(f)?"chrome-extension://"!= f.substring(0,19)&&(f=a.apply(this,arguments)):f=PROXY_URL+"?url="+encodeURIComponent(f)}return f};return b};EditorUi.prototype.convertImages=function(b,a,c,d){null==d&&(d=this.createImageUrlConverter());var f=0,e=c||{};c=mxUtils.bind(this,function(c,h){for(var g=b.getElementsByTagName(c),m=0;m<g.length;m++)mxUtils.bind(this,function(c){var m=d.convert(c.getAttribute(h));if(null!=m&&"data:"!=m.substring(0,5)){var g=e[m];null==g?(f++,this.convertImageToDataUri(m,function(d){null!=d&&(e[m]=d,c.setAttribute(h, d));f--;0==f&&a(b)})):c.setAttribute(h,g)}else null!=m&&c.setAttribute(h,m)})(g[m])});c("image","xlink:href");c("img","src");0==f&&a(b)};EditorUi.prototype.loadUrl=function(b,a,c,d,e,g){try{var f=d||/(\.png)($|\?)/i.test(b)||/(\.jpe?g)($|\?)/i.test(b)||/(\.gif)($|\?)/i.test(b);e=null!=e?e:!0;var h=mxUtils.bind(this,function(){mxUtils.get(b,mxUtils.bind(this,function(b){if(200<=b.getStatus()&&299>=b.getStatus()){if(null!=a){var d=b.getText();if(f){if((9==document.documentMode||10==document.documentMode)&& "undefined"!==typeof window.mxUtilsBinaryToArray){b=mxUtilsBinaryToArray(b.request.responseBody).toArray();for(var d=Array(b.length),e=0;e<b.length;e++)d[e]=String.fromCharCode(b[e]);d=d.join("")}g=null!=g?g:"data:image/png;base64,";d=g+this.base64Encode(d)}a(d)}}else null!=c&&c({code:App.ERROR_UNKNOWN},b)}),function(){null!=c&&c({code:App.ERROR_UNKNOWN})},f,this.timeout,function(){e&&null!=c&&c({code:App.ERROR_TIMEOUT,retry:h})})});h()}catch(A){null!=c&&c(A)}};EditorUi.prototype.isCorsEnabledForUrl= function(b){null!=urlParams.cors&&null==this.corsRegExp&&(this.corsRegExp=new RegExp(decodeURIComponent(urlParams.cors)));return null!=this.corsRegExp&&this.corsRegExp.test(b)||"https://raw.githubusercontent.com/"===b.substring(0,34)||"https://cdn.rawgit.com/"===b.substring(0,23)||"https://rawgit.com/"===b.substring(0,19)||/^https?:\/\/[^\/]*\.iconfinder.com\//.test(b)||/^https?:\/\/[^\/]*\.draw\.io\/proxy/.test(b)||/^https?:\/\/[^\/]*\.github\.io\//.test(b)};EditorUi.prototype.convertImageToDataUri= function(b,a){if(/(\.svg)$/i.test(b))mxUtils.get(b,mxUtils.bind(this,function(b){a(this.createSvgDataUri(b.getText()))}),function(){a(this.svgBrokenImage.src)});else{var c=new Image,f=this;this.crossOriginImages&&(c.crossOrigin="anonymous");c.onload=function(){var b=document.createElement("canvas"),d=b.getContext("2d");b.height=c.height;b.width=c.width;d.drawImage(c,0,0);try{a(b.toDataURL())}catch(w){a(f.svgBrokenImage.src)}};c.onerror=function(){a(f.svgBrokenImage.src)};c.src=b}};EditorUi.prototype.importXml= function(b,a,c,d,e){a=null!=a?a:0;c=null!=c?c:0;var f=[];try{var h=this.editor.graph;if(null!=b&&0<b.length){var g=mxUtils.parseXml(b),k=this.editor.extractGraphModel(g.documentElement,null!=this.pages);if(null!=k&&"mxfile"==k.nodeName&&null!=this.pages){var m=k.getElementsByTagName("diagram");if(1==m.length)k=mxUtils.parseXml(h.decompress(mxUtils.getTextContent(m[0]))).documentElement;else if(1<m.length){h.model.beginUpdate();try{for(b=0;b<m.length;b++){m[b].removeAttribute("id");var l=this.updatePageRoot(new DiagramPage(m[b])), -q=this.pages.length;null==l.getName()&&l.setName(mxResources.get("pageWithNumber",[q+1]));h.model.execute(new ChangePage(this,l,l,q))}}finally{h.model.endUpdate()}}}null!=k&&"mxGraphModel"===k.nodeName&&(f=h.importGraphModel(k,a,c,d))}}catch(C){throw e||this.handleError(C,mxResources.get("invalidOrMissingFile")),C;}return f};EditorUi.prototype.isRemoteVisioFormat=function(b){return/(\.v(sd|dx))($|\?)/i.test(b)||/(\.vs(s|x))($|\?)/i.test(b)};EditorUi.prototype.importVisio=function(b,a,c,d){d=null!= -d?d:b.name;c=null!=c?c:mxUtils.bind(this,function(b){this.handleError(b)});var f=mxUtils.bind(this,function(){this.loadingExtensions=!1;if(this.doImportVisio)if(this.isRemoteVisioFormat(d)&&null!=VSD_CONVERT_URL){var f=new FormData;f.append("file1",b,d);var e=new XMLHttpRequest;e.open("POST",VSD_CONVERT_URL);e.responseType="blob";e.onreadystatechange=mxUtils.bind(this,function(){if(4==e.readyState)if(200<=e.status&&299>=e.status)try{e.response.name=d,this.doImportVisio(e.response,a,c)}catch(z){c(z)}else c({})}); -e.send(f)}else try{this.doImportVisio(b,a,c)}catch(z){c(z)}});this.doImportVisio||this.loadingExtensions||this.isOffline()?f():(this.loadingExtensions=!0,mxscript("js/extensions.min.js",f))};EditorUi.prototype.exportVisio=function(){var b=mxUtils.bind(this,function(){this.loadingExtensions=!1;if("undefined"!==typeof VsdxExport)try{(new VsdxExport(this)).exportCurrentDiagrams()}catch(f){this.handleError(f)}});"undefined"!==typeof VsdxExport||this.loadingExtensions||this.isOffline()?b():(this.loadingExtensions= -!0,mxscript("js/extensions.min.js",b))};EditorUi.prototype.convertLucidChart=function(b,a,c){var f=mxUtils.bind(this,function(){this.loadingExtensions=!1;if("undefined"!==typeof window.LucidImporter)try{a(LucidImporter.importState(JSON.parse(b)))}catch(q){c(q)}else c({message:mxResources.get("serviceUnavailableOrBlocked")})});"undefined"!==typeof window.LucidImporter||this.loadingExtensions||this.isOffline()?window.setTimeout(f,0):(this.loadingExtensions=!0,"1"==urlParams.dev?mxscript("js/diagramly/Extensions.js", -f):mxscript("js/extensions.min.js",f))};EditorUi.prototype.insertAsPreText=function(b,a,c){var f=this.editor.graph,d=null;f.getModel().beginUpdate();try{d=f.insertVertex(null,null,"<pre>"+b+"</pre>",a,c,1,1,"text;html=1;align=center;verticalAlign=middle;"),f.updateCellSize(d,!0)}finally{f.getModel().endUpdate()}return d};EditorUi.prototype.insertTextAt=function(b,a,c,d,e,g,k){g=null!=g?g:!0;k=null!=k?k:!0;if(null!=b)if(Graph.fileSupport&&!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(b))this.parseFile(new Blob([b.replace(/\s+/g, -" ")],{type:"application/octet-stream"}),mxUtils.bind(this,function(b){4==b.readyState&&200<=b.status&&299>=b.status&&this.editor.graph.setSelectionCells(this.insertTextAt(b.responseText,a,c,!0))}));else if("data:"==b.substring(0,5)||!this.isOffline()&&(e||/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(b))){var f=this.editor.graph;if("data:image/png;base64,"==b.substring(0,22)){var h=this.extractGraphModelFromPng(b),m=this.importXml(h,a,c,g,!0);if(0<m.length)return m}if("data:image/svg+xml;"==b.substring(0, -19))try{if(h=null,"data:image/svg+xml;base64,"==b.substring(0,26)?(h=b.substring(b.indexOf(",")+1),h=window.atob&&!mxClient.IS_SF?atob(h):Base64.decode(h,!0)):h=decodeURIComponent(b.substring(b.indexOf(",")+1)),m=this.importXml(h,a,c,g,!0),0<m.length)return m}catch(v){}this.loadImage(b,mxUtils.bind(this,function(d){if("data:"==b.substring(0,5))this.resizeImage(d,b,mxUtils.bind(this,function(b,d,e){f.setSelectionCell(f.insertVertex(null,null,"",f.snap(a),f.snap(c),d,e,"shape=image;verticalLabelPosition=bottom;labelBackgroundColor=#ffffff;verticalAlign=top;aspect=fixed;imageAspect=0;image="+ -this.convertDataUri(b)+";"))}),k,this.maxImageSize);else{var e=Math.min(1,Math.min(this.maxImageSize/d.width,this.maxImageSize/d.height)),h=Math.round(d.width*e);d=Math.round(d.height*e);f.setSelectionCell(f.insertVertex(null,null,"",f.snap(a),f.snap(c),h,d,"shape=image;verticalLabelPosition=bottom;labelBackgroundColor=#ffffff;verticalAlign=top;aspect=fixed;imageAspect=0;image="+b+";"))}}),mxUtils.bind(this,function(){var e=null;f.getModel().beginUpdate();try{e=f.insertVertex(f.getDefaultParent(), -null,b,f.snap(a),f.snap(c),1,1,"text;"+(d?"html=1;":"")),f.updateCellSize(e),f.fireEvent(new mxEventObject("textInserted","cells",[e]))}finally{f.getModel().endUpdate()}f.setSelectionCell(e)}))}else{b=this.editor.graph.zapGremlins(mxUtils.trim(b));if(this.isCompatibleString(b))return this.importXml(b,a,c,g);if(0<b.length)if(this.isLucidChartData(b))this.convertLucidChart(b,mxUtils.bind(this,function(b){this.editor.graph.setSelectionCells(this.importXml(b,a,c,g))}),mxUtils.bind(this,function(b){this.handleError(b)})); -else{f=this.editor.graph;e=null;f.getModel().beginUpdate();try{e=f.insertVertex(f.getDefaultParent(),null,"",f.snap(a),f.snap(c),1,1,"text;"+(d?"html=1;":"")),f.fireEvent(new mxEventObject("textInserted","cells",[e])),"<"==b.charAt(0)&&b.indexOf(">")==b.length-1&&(b=mxUtils.htmlEntities(b)),e.value=b,f.updateCellSize(e),/\b((?:[a-z][\w-]+:(?:\/{1,3}|[a-z0-9%])|www\d{0,3}[.]|[a-z0-9.\-]+[.][a-z]{2,4}\/)(?:[^\s()<>]+|\(([^\s()<>]+|(\([^\s()<>]+\)))*\))+(?:\(([^\s()<>]+|(\([^\s()<>]+\)))*\)|[^\s`!()\[\]{};:'".,<>?«»“â€â€˜â€™]))/i.test(e.value)&& +q=this.pages.length;null==l.getName()&&(l.setName(mxResources.get("pageWithNumber",[q+1])),l.needsUpdate=!0);h.model.execute(new ChangePage(this,l,l,q))}}finally{h.model.endUpdate()}}}null!=k&&"mxGraphModel"===k.nodeName&&(f=h.importGraphModel(k,a,c,d))}}catch(C){throw e||this.handleError(C,mxResources.get("invalidOrMissingFile")),C;}return f};EditorUi.prototype.isRemoteVisioFormat=function(b){return/(\.v(sd|dx))($|\?)/i.test(b)||/(\.vs(s|x))($|\?)/i.test(b)};EditorUi.prototype.importVisio=function(b, +a,c,d){d=null!=d?d:b.name;c=null!=c?c:mxUtils.bind(this,function(b){this.handleError(b)});var f=mxUtils.bind(this,function(){this.loadingExtensions=!1;if(this.doImportVisio)if(this.isRemoteVisioFormat(d)&&null!=VSD_CONVERT_URL){var f=new FormData;f.append("file1",b,d);var e=new XMLHttpRequest;e.open("POST",VSD_CONVERT_URL);e.responseType="blob";e.onreadystatechange=mxUtils.bind(this,function(){if(4==e.readyState)if(200<=e.status&&299>=e.status)try{e.response.name=d,this.doImportVisio(e.response,a, +c)}catch(y){c(y)}else c({})});e.send(f)}else try{this.doImportVisio(b,a,c)}catch(y){c(y)}});this.doImportVisio||this.loadingExtensions||this.isOffline()?f():(this.loadingExtensions=!0,mxscript("js/extensions.min.js",f))};EditorUi.prototype.exportVisio=function(){var b=mxUtils.bind(this,function(){this.loadingExtensions=!1;if("undefined"!==typeof VsdxExport)try{(new VsdxExport(this)).exportCurrentDiagrams()}catch(f){this.handleError(f)}});"undefined"!==typeof VsdxExport||this.loadingExtensions||this.isOffline()? +b():(this.loadingExtensions=!0,mxscript("js/extensions.min.js",b))};EditorUi.prototype.convertLucidChart=function(b,a,c){var f=mxUtils.bind(this,function(){this.loadingExtensions=!1;if("undefined"!==typeof window.LucidImporter)try{a(LucidImporter.importState(JSON.parse(b)))}catch(q){c(q)}else c({message:mxResources.get("serviceUnavailableOrBlocked")})});"undefined"!==typeof window.LucidImporter||this.loadingExtensions||this.isOffline()?window.setTimeout(f,0):(this.loadingExtensions=!0,"1"==urlParams.dev? +mxscript("js/diagramly/Extensions.js",f):mxscript("js/extensions.min.js",f))};EditorUi.prototype.insertAsPreText=function(b,a,c){var f=this.editor.graph,d=null;f.getModel().beginUpdate();try{d=f.insertVertex(null,null,"<pre>"+b+"</pre>",a,c,1,1,"text;html=1;align=center;verticalAlign=middle;"),f.updateCellSize(d,!0)}finally{f.getModel().endUpdate()}return d};EditorUi.prototype.insertTextAt=function(b,a,c,d,e,g,k){g=null!=g?g:!0;k=null!=k?k:!0;if(null!=b)if(Graph.fileSupport&&!this.isOffline()&&(new XMLHttpRequest).upload&& +this.isRemoteFileFormat(b))this.parseFile(new Blob([b.replace(/\s+/g," ")],{type:"application/octet-stream"}),mxUtils.bind(this,function(b){4==b.readyState&&200<=b.status&&299>=b.status&&this.editor.graph.setSelectionCells(this.insertTextAt(b.responseText,a,c,!0))}));else if("data:"==b.substring(0,5)||!this.isOffline()&&(e||/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(b))){var f=this.editor.graph;if("data:image/png;base64,"==b.substring(0,22)){var h=this.extractGraphModelFromPng(b),m=this.importXml(h,a, +c,g,!0);if(0<m.length)return m}if("data:image/svg+xml;"==b.substring(0,19))try{if(h=null,"data:image/svg+xml;base64,"==b.substring(0,26)?(h=b.substring(b.indexOf(",")+1),h=window.atob&&!mxClient.IS_SF?atob(h):Base64.decode(h,!0)):h=decodeURIComponent(b.substring(b.indexOf(",")+1)),m=this.importXml(h,a,c,g,!0),0<m.length)return m}catch(v){}this.loadImage(b,mxUtils.bind(this,function(d){if("data:"==b.substring(0,5))this.resizeImage(d,b,mxUtils.bind(this,function(b,d,e){f.setSelectionCell(f.insertVertex(null, +null,"",f.snap(a),f.snap(c),d,e,"shape=image;verticalLabelPosition=bottom;labelBackgroundColor=#ffffff;verticalAlign=top;aspect=fixed;imageAspect=0;image="+this.convertDataUri(b)+";"))}),k,this.maxImageSize);else{var e=Math.min(1,Math.min(this.maxImageSize/d.width,this.maxImageSize/d.height)),h=Math.round(d.width*e);d=Math.round(d.height*e);f.setSelectionCell(f.insertVertex(null,null,"",f.snap(a),f.snap(c),h,d,"shape=image;verticalLabelPosition=bottom;labelBackgroundColor=#ffffff;verticalAlign=top;aspect=fixed;imageAspect=0;image="+ +b+";"))}}),mxUtils.bind(this,function(){var e=null;f.getModel().beginUpdate();try{e=f.insertVertex(f.getDefaultParent(),null,b,f.snap(a),f.snap(c),1,1,"text;"+(d?"html=1;":"")),f.updateCellSize(e),f.fireEvent(new mxEventObject("textInserted","cells",[e]))}finally{f.getModel().endUpdate()}f.setSelectionCell(e)}))}else{b=this.editor.graph.zapGremlins(mxUtils.trim(b));if(this.isCompatibleString(b))return this.importXml(b,a,c,g);if(0<b.length)if(this.isLucidChartData(b))this.convertLucidChart(b,mxUtils.bind(this, +function(b){this.editor.graph.setSelectionCells(this.importXml(b,a,c,g))}),mxUtils.bind(this,function(b){this.handleError(b)}));else{f=this.editor.graph;e=null;f.getModel().beginUpdate();try{e=f.insertVertex(f.getDefaultParent(),null,"",f.snap(a),f.snap(c),1,1,"text;"+(d?"html=1;":"")),f.fireEvent(new mxEventObject("textInserted","cells",[e])),"<"==b.charAt(0)&&b.indexOf(">")==b.length-1&&(b=mxUtils.htmlEntities(b)),e.value=b,f.updateCellSize(e),/\b((?:[a-z][\w-]+:(?:\/{1,3}|[a-z0-9%])|www\d{0,3}[.]|[a-z0-9.\-]+[.][a-z]{2,4}\/)(?:[^\s()<>]+|\(([^\s()<>]+|(\([^\s()<>]+\)))*\))+(?:\(([^\s()<>]+|(\([^\s()<>]+\)))*\)|[^\s`!()\[\]{};:'".,<>?«»“â€â€˜â€™]))/i.test(e.value)&& f.setLinkForCell(e,e.value),e.geometry.width+=f.gridSize,e.geometry.height+=f.gridSize}finally{f.getModel().endUpdate()}return[e]}}return[]};EditorUi.prototype.formatFileSize=function(b){var a=-1;do b/=1024,a++;while(1024<b);return Math.max(b,.1).toFixed(1)+" kB; MB; GB; TB;PB;EB;ZB;YB".split(";")[a]};EditorUi.prototype.convertDataUri=function(b){if("data:"==b.substring(0,5)){var a=b.indexOf(";");0<a&&(b=b.substring(0,a)+b.substring(b.indexOf(",",a+1)))}return b};EditorUi.prototype.isRemoteFileFormat= function(b,a){return/(\"contentType\":\s*\"application\/gliffy\+json\")/.test(b)};EditorUi.prototype.isLucidChartData=function(b){return null!=b&&'{"state":"{\\"Properties\\":'==b.substring(0,26)};EditorUi.prototype.importLocalFile=function(b,a){if(b&&Graph.fileSupport&&(!mxClient.IS_IE&&!mxClient.IS_IE11||0>navigator.appVersion.indexOf("Windows NT 6.1"))){var c=document.createElement("input");c.setAttribute("type","file");mxEvent.addListener(c,"change",mxUtils.bind(this,function(){null!=c.files&& this.importFiles(c.files,null,null,this.maxImageSize)}));c.click()}else{window.openNew=!1;window.openKey="import";if(!a){var f=Editor.useLocalStorage;Editor.useLocalStorage=!b}window.openFile=new OpenFile(mxUtils.bind(this,function(b){this.hideDialog(b)}));window.openFile.setConsumer(mxUtils.bind(this,function(b,a){if(null!=a&&Graph.fileSupport&&/(\.v(dx|sdx?))($|\?)/i.test(a)){var c=new Blob([b],{type:"application/octet-stream"});this.importVisio(c,mxUtils.bind(this,function(b){this.importXml(b)}), -null,a)}else this.editor.graph.setSelectionCells(this.importXml(b))}));this.showDialog((new OpenDialog(this)).container,360,220,!0,!0,function(){window.openFile=null});if(!a){var d=this.dialog,e=d.close;this.dialog.close=mxUtils.bind(this,function(b){Editor.useLocalStorage=f;e.apply(d,arguments);b&&null==this.getCurrentFile()&&"1"!=urlParams.embed&&this.showSplash()})}}};EditorUi.prototype.importFile=function(b,a,c,d,e,g,k,l,p,m,v){m=null!=m?m:!0;var f=!1,h=null,q=mxUtils.bind(this,function(a){var b= -null;null!=a&&"<mxlibrary"==a.substring(0,10)?this.loadLibrary(new LocalLibrary(this,a,k)):b=this.importXml(a,c,d,m);null!=l&&l(b)});"image"==a.substring(0,5)?(p=!1,"image/png"==a.substring(0,9)&&(a=v?null:this.extractGraphModelFromPng(b),null!=a&&0<a.length&&(h=this.importXml(a,c,d,m),p=!0)),p||(h=this.editor.graph,a=b.indexOf(";"),0<a&&(b=b.substring(0,a)+b.substring(b.indexOf(",",a+1))),m&&h.isGridEnabled()&&(c=h.snap(c),d=h.snap(d)),h=[h.insertVertex(null,null,"",c,d,e,g,"shape=image;verticalLabelPosition=bottom;labelBackgroundColor=#ffffff;verticalAlign=top;aspect=fixed;imageAspect=0;image="+ -b+";")])):/(\.*<graphml )/.test(b)&&"undefined"!==typeof window.mxGraphMlCodec?(new mxGraphMlCodec).decode(b,mxUtils.bind(this,function(a){a=this.importXml(a,c,d,m);null!=l&&l(a)})):null!=p&&null!=k&&(/(\.v(dx|sdx?))($|\?)/i.test(k)||/(\.vs(x|sx?))($|\?)/i.test(k))?(f=!0,this.importVisio(p,q)):!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(b,k)?(f=!0,this.parseFile(null!=p?p:new Blob([b],{type:"application/octet-stream"}),mxUtils.bind(this,function(a){4==a.readyState&&(200<= -a.status&&299>=a.status?q(a.responseText):null!=l&&l(null))}),k)):/(\.v(sd|dx))($|\?)/i.test(k)||/(\.vs(s|x))($|\?)/i.test(k)||(h=this.insertTextAt(this.validateFileData(b),c,d,!0,null,m));f||null==l||l(h);return h};EditorUi.prototype.base64Encode=function(a){for(var b="",c=0,d=a.length,e,g,k;c<d;){e=a.charCodeAt(c++)&255;if(c==d){b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(e>>2);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((e&3)<<4); -b+="==";break}g=a.charCodeAt(c++);if(c==d){b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(e>>2);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((e&3)<<4|(g&240)>>4);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((g&15)<<2);b+="=";break}k=a.charCodeAt(c++);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(e>>2);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((e& -3)<<4|(g&240)>>4);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((g&15)<<2|(k&192)>>6);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(k&63)}return b};EditorUi.prototype.importFiles=function(a,c,d,e,g,k,l,p,n,m,v,x){c=null!=c?c:0;d=null!=d?d:0;e=null!=e?e:this.maxImageSize;m=null!=m?m:this.maxImageBytes;var b=null!=c&&null!=d,f=!0,h=!1;if(!mxClient.IS_CHROMEAPP&&null!=a)for(var q=v||this.resampleThreshold,t=0;t<a.length;t++)if("image/"==a[t].type.substring(0, +null,a)}else this.editor.graph.setSelectionCells(this.importXml(b))}));this.showDialog((new OpenDialog(this)).container,360,220,!0,!0,function(){window.openFile=null});if(!a){var d=this.dialog,e=d.close;this.dialog.close=mxUtils.bind(this,function(b){Editor.useLocalStorage=f;e.apply(d,arguments);b&&null==this.getCurrentFile()&&"1"!=urlParams.embed&&this.showSplash()})}}};EditorUi.prototype.importFile=function(b,a,c,d,e,g,k,l,p,m,v){m=null!=m?m:!0;var f=!1,h=null,q=mxUtils.bind(this,function(b){var a= +null;null!=b&&"<mxlibrary"==b.substring(0,10)?this.loadLibrary(new LocalLibrary(this,b,k)):a=this.importXml(b,c,d,m);null!=l&&l(a)});"image"==a.substring(0,5)?(p=!1,"image/png"==a.substring(0,9)&&(a=v?null:this.extractGraphModelFromPng(b),null!=a&&0<a.length&&(h=this.importXml(a,c,d,m),p=!0)),p||(h=this.editor.graph,a=b.indexOf(";"),0<a&&(b=b.substring(0,a)+b.substring(b.indexOf(",",a+1))),m&&h.isGridEnabled()&&(c=h.snap(c),d=h.snap(d)),h=[h.insertVertex(null,null,"",c,d,e,g,"shape=image;verticalLabelPosition=bottom;labelBackgroundColor=#ffffff;verticalAlign=top;aspect=fixed;imageAspect=0;image="+ +b+";")])):/(\.*<graphml )/.test(b)&&"undefined"!==typeof window.mxGraphMlCodec?(new mxGraphMlCodec).decode(b,mxUtils.bind(this,function(b){b=this.importXml(b,c,d,m);null!=l&&l(b)})):null!=p&&null!=k&&(/(\.v(dx|sdx?))($|\?)/i.test(k)||/(\.vs(x|sx?))($|\?)/i.test(k))?(f=!0,this.importVisio(p,q)):!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(b,k)?(f=!0,this.parseFile(null!=p?p:new Blob([b],{type:"application/octet-stream"}),mxUtils.bind(this,function(b){4==b.readyState&&(200<= +b.status&&299>=b.status?q(b.responseText):null!=l&&l(null))}),k)):/(\.v(sd|dx))($|\?)/i.test(k)||/(\.vs(s|x))($|\?)/i.test(k)||(h=this.insertTextAt(this.validateFileData(b),c,d,!0,null,m));f||null==l||l(h);return h};EditorUi.prototype.base64Encode=function(b){for(var a="",c=0,d=b.length,e,g,k;c<d;){e=b.charCodeAt(c++)&255;if(c==d){a+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(e>>2);a+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((e&3)<<4); +a+="==";break}g=b.charCodeAt(c++);if(c==d){a+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(e>>2);a+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((e&3)<<4|(g&240)>>4);a+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((g&15)<<2);a+="=";break}k=b.charCodeAt(c++);a+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(e>>2);a+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((e& +3)<<4|(g&240)>>4);a+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((g&15)<<2|(k&192)>>6);a+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(k&63)}return a};EditorUi.prototype.importFiles=function(a,c,d,e,g,k,l,p,n,m,v,x){c=null!=c?c:0;d=null!=d?d:0;e=null!=e?e:this.maxImageSize;m=null!=m?m:this.maxImageBytes;var b=null!=c&&null!=d,f=!0,h=!1;if(!mxClient.IS_CHROMEAPP&&null!=a)for(var q=v||this.resampleThreshold,t=0;t<a.length;t++)if("image/"==a[t].type.substring(0, 6)&&a[t].size>q){h=!0;break}var w=mxUtils.bind(this,function(){var h=this.editor.graph,q=h.gridSize;g=null!=g?g:mxUtils.bind(this,function(a,c,f,d,e,h,m,g,k){return null!=a&&"<mxlibrary"==a.substring(0,10)?(this.spinner.stop(),this.loadLibrary(new LocalLibrary(this,a,m)),null):this.importFile(a,c,f,d,e,h,m,g,k,b,x)});k=null!=k?k:mxUtils.bind(this,function(a){h.setSelectionCells(a)});if(this.spinner.spin(document.body,mxResources.get("loading")))for(var t=a.length,w=t,n=[],u=mxUtils.bind(this,function(a, b){n[a]=b;if(0==--w){this.spinner.stop();if(null!=p)p(n);else{var c=[];h.getModel().beginUpdate();try{for(var f=0;f<n.length;f++){var d=n[f]();null!=d&&(c=c.concat(d))}}finally{h.getModel().endUpdate()}}k(c)}}),A=0;A<t;A++)mxUtils.bind(this,function(b){var k=a[b],p=new FileReader;p.onload=mxUtils.bind(this,function(a){if(null==l||l(k))if("image/"==k.type.substring(0,6))if("image/svg"==k.type.substring(0,9)){var p=a.target.result,t=p.indexOf(","),w=decodeURIComponent(escape(atob(p.substring(t+1)))), -n=mxUtils.parseXml(w),w=n.getElementsByTagName("svg");if(0<w.length){var w=w[0],y=x?null:w.getAttribute("content");null!=y&&"<"!=y.charAt(0)&&"%"!=y.charAt(0)&&(y=unescape(window.atob?atob(y):Base64.decode(y,!0)));null!=y&&"%"==y.charAt(0)&&(y=decodeURIComponent(y));null==y||"<mxfile "!==y.substring(0,8)&&"<mxGraphModel "!==y.substring(0,14)?u(b,mxUtils.bind(this,function(){try{if(p.substring(0,t+1),null!=n){var a=n.getElementsByTagName("svg");if(0<a.length){var f=a[0],m=parseFloat(f.getAttribute("width")), -l=parseFloat(f.getAttribute("height")),v=f.getAttribute("viewBox");if(null==v||0==v.length)f.setAttribute("viewBox","0 0 "+m+" "+l);else if(isNaN(m)||isNaN(l)){var w=v.split(" ");3<w.length&&(m=parseFloat(w[2]),l=parseFloat(w[3]))}p=this.createSvgDataUri(mxUtils.getXml(f));var x=Math.min(1,Math.min(e/Math.max(1,m)),e/Math.max(1,l)),u=g(p,k.type,c+b*q,d+b*q,Math.max(1,Math.round(m*x)),Math.max(1,Math.round(l*x)),k.name);if(isNaN(m)||isNaN(l)){var y=new Image;y.onload=mxUtils.bind(this,function(){m= -Math.max(1,y.width);l=Math.max(1,y.height);u[0].geometry.width=m;u[0].geometry.height=l;f.setAttribute("viewBox","0 0 "+m+" "+l);p=this.createSvgDataUri(mxUtils.getXml(f));var a=p.indexOf(";");0<a&&(p=p.substring(0,a)+p.substring(p.indexOf(",",a+1)));h.setCellStyles("image",p,[u[0]])});y.src=this.createSvgDataUri(mxUtils.getXml(f))}return u}}}catch(fa){}return null})):u(b,mxUtils.bind(this,function(){return g(y,"text/xml",c+b*q,d+b*q,0,0,k.name)}))}else u(b,mxUtils.bind(this,function(){return null}))}else{w= -!1;if("image/png"==k.type){var A=x?null:this.extractGraphModelFromPng(a.target.result);if(null!=A&&0<A.length){var z=new Image;z.src=a.target.result;u(b,mxUtils.bind(this,function(){return g(A,"text/xml",c+b*q,d+b*q,z.width,z.height,k.name)}));w=!0}}w||(mxClient.IS_CHROMEAPP?(this.spinner.stop(),this.showError(mxResources.get("error"),mxResources.get("dragAndDropNotSupported"),mxResources.get("cancel"),mxUtils.bind(this,function(){}),null,mxResources.get("ok"),mxUtils.bind(this,function(){this.actions.get("import").funct()}))): +n=mxUtils.parseXml(w),w=n.getElementsByTagName("svg");if(0<w.length){var w=w[0],z=x?null:w.getAttribute("content");null!=z&&"<"!=z.charAt(0)&&"%"!=z.charAt(0)&&(z=unescape(window.atob?atob(z):Base64.decode(z,!0)));null!=z&&"%"==z.charAt(0)&&(z=decodeURIComponent(z));null==z||"<mxfile "!==z.substring(0,8)&&"<mxGraphModel "!==z.substring(0,14)?u(b,mxUtils.bind(this,function(){try{if(p.substring(0,t+1),null!=n){var a=n.getElementsByTagName("svg");if(0<a.length){var f=a[0],m=parseFloat(f.getAttribute("width")), +l=parseFloat(f.getAttribute("height")),v=f.getAttribute("viewBox");if(null==v||0==v.length)f.setAttribute("viewBox","0 0 "+m+" "+l);else if(isNaN(m)||isNaN(l)){var w=v.split(" ");3<w.length&&(m=parseFloat(w[2]),l=parseFloat(w[3]))}p=this.createSvgDataUri(mxUtils.getXml(f));var x=Math.min(1,Math.min(e/Math.max(1,m)),e/Math.max(1,l)),u=g(p,k.type,c+b*q,d+b*q,Math.max(1,Math.round(m*x)),Math.max(1,Math.round(l*x)),k.name);if(isNaN(m)||isNaN(l)){var z=new Image;z.onload=mxUtils.bind(this,function(){m= +Math.max(1,z.width);l=Math.max(1,z.height);u[0].geometry.width=m;u[0].geometry.height=l;f.setAttribute("viewBox","0 0 "+m+" "+l);p=this.createSvgDataUri(mxUtils.getXml(f));var a=p.indexOf(";");0<a&&(p=p.substring(0,a)+p.substring(p.indexOf(",",a+1)));h.setCellStyles("image",p,[u[0]])});z.src=this.createSvgDataUri(mxUtils.getXml(f))}return u}}}catch(fa){}return null})):u(b,mxUtils.bind(this,function(){return g(z,"text/xml",c+b*q,d+b*q,0,0,k.name)}))}else u(b,mxUtils.bind(this,function(){return null}))}else{w= +!1;if("image/png"==k.type){var A=x?null:this.extractGraphModelFromPng(a.target.result);if(null!=A&&0<A.length){var y=new Image;y.src=a.target.result;u(b,mxUtils.bind(this,function(){return g(A,"text/xml",c+b*q,d+b*q,y.width,y.height,k.name)}));w=!0}}w||(mxClient.IS_CHROMEAPP?(this.spinner.stop(),this.showError(mxResources.get("error"),mxResources.get("dragAndDropNotSupported"),mxResources.get("cancel"),mxUtils.bind(this,function(){}),null,mxResources.get("ok"),mxUtils.bind(this,function(){this.actions.get("import").funct()}))): this.loadImage(a.target.result,mxUtils.bind(this,function(h){this.resizeImage(h,a.target.result,mxUtils.bind(this,function(h,l,p){u(b,mxUtils.bind(this,function(){if(null!=h&&h.length<m){var t=f&&this.isResampleImage(a.target.result,v)?Math.min(1,Math.min(e/l,e/p)):1;return g(h,k.type,c+b*q,d+b*q,Math.round(l*t),Math.round(p*t),k.name)}this.handleError({message:mxResources.get("imageTooBig")});return null}))}),f,e,v)}),mxUtils.bind(this,function(){this.handleError({message:mxResources.get("invalidOrMissingFile")})})))}else g(a.target.result, k.type,c+b*q,d+b*q,240,160,k.name,function(a){u(b,function(){return a})})});/(\.v(dx|sdx?))($|\?)/i.test(k.name)||/(\.vs(x|sx?))($|\?)/i.test(k.name)?g(null,k.type,c+b*q,d+b*q,240,160,k.name,function(a){u(b,function(){return a})},k):"image"==k.type.substring(0,5)?p.readAsDataURL(k):p.readAsText(k)})(A)});h?this.confirmImageResize(function(a){f=a;w()},n):w()};EditorUi.prototype.confirmImageResize=function(a,c){c=null!=c?c:!1;var b=null!=this.spinner&&null!=this.spinner.pause?this.spinner.pause():function(){}, f=isLocalStorage||mxClient.IS_CHROMEAPP?mxSettings.getResizeImages():null,d=function(f,d){if(f||c)mxSettings.setResizeImages(f?d:null),mxSettings.save();b();a(d)};null==f||c?this.showDialog((new ConfirmDialog(this,mxResources.get("resizeLargeImages"),function(a){d(a,!0)},function(a){d(a,!1)},mxResources.get("resize"),mxResources.get("actualSize"),'<img style="margin-top:8px;" src="'+Editor.loResImage+'"/>','<img style="margin-top:8px;" src="'+Editor.hiResImage+'"/>',isLocalStorage||mxClient.IS_CHROMEAPP)).container, @@ -7784,7 +7788,7 @@ f=Math.max(1,a.height);if(e&&this.isResampleImage(c,k))try{var h=Math.max(b/g,f/ (a.charCodeAt(2)<<8)+(a.charCodeAt(1)<<16)+(a.charCodeAt(0)<<24)}function h(a){return String.fromCharCode(a>>24&255,a>>16&255,a>>8&255,a&255)}a=a.substring(a.indexOf(",")+1);a=window.atob?atob(a):Base64.decode(a,!0);var k=0;if(b(a,8)!=String.fromCharCode(137)+"PNG"+String.fromCharCode(13,10,26,10))null!=g&&g();else if(b(a,4),"IHDR"!=b(a,4))null!=g&&g();else{b(a,17);g=a.substring(0,k);do{var m=f(a);if("IDAT"==b(a,4)){g=a.substring(0,k-8);d=d+String.fromCharCode(0)+("zTXt"==c?String.fromCharCode(0): "")+e;e=4294967295;e=this.updateCRC(e,c,0,4);e=this.updateCRC(e,d,0,d.length);g+=h(d.length)+c+d+h(e^4294967295);g+=a.substring(k-8,a.length);break}g+=a.substring(k-8,k-4+m);b(a,m);b(a,4)}while(m);return"data:image/png;base64,"+(window.btoa?btoa(g):Base64.encode(g,!0))}};EditorUi.prototype.extractGraphModelFromPng=function(a){var b=null;try{var c=a.substring(a.indexOf(",")+1),d=window.atob&&!mxClient.IS_SF?atob(c):Base64.decode(c,!0);EditorUi.parsePng(d,mxUtils.bind(this,function(a,c,f){a=d.substring(a+ 8,a+8+f);"zTXt"==c?(f=a.indexOf(String.fromCharCode(0)),"mxGraphModel"==a.substring(0,f)&&(a=this.editor.graph.bytesToString(pako.inflateRaw(a.substring(f+2))).replace(/\+/g," "),null!=a&&0<a.length&&(b=a))):"tEXt"==c&&(a=a.split(String.fromCharCode(0)),1<a.length&&"mxGraphModel"==a[0]&&(b=a[1]));if(null!=b||"IDAT"==c)return!0}))}catch(q){}null!=b&&"%"==b.charAt(0)&&(b=decodeURIComponent(b));null!=b&&"%"==b.charAt(0)&&(b=decodeURIComponent(b));return b};EditorUi.prototype.loadImage=function(a,c,d){var b= -new Image;b.onload=function(){c(b)};null!=d&&(b.onerror=d);b.src=a};var k=EditorUi.prototype.init;EditorUi.prototype.init=function(){mxStencilRegistry.allowEval=mxStencilRegistry.allowEval&&!this.isOfflineApp();"undefined"!==typeof window.mxSettings&&(this.formatWidth=mxSettings.getFormatWidth());var a=this,c=this.editor.graph;c.getLinkTitle=function(b){return a.getLinkTitle(b)};c.customLinkClicked=function(b){var c=!1;try{a.handleCustomLink(b),c=!0}catch(y){a.handleError(y)}return c};var d=this.clearDefaultStyle; +new Image;b.onload=function(){c(b)};null!=d&&(b.onerror=d);b.src=a};var k=EditorUi.prototype.init;EditorUi.prototype.init=function(){mxStencilRegistry.allowEval=mxStencilRegistry.allowEval&&!this.isOfflineApp();"undefined"!==typeof window.mxSettings&&(this.formatWidth=mxSettings.getFormatWidth());var a=this,c=this.editor.graph;c.getLinkTitle=function(b){return a.getLinkTitle(b)};c.customLinkClicked=function(b){var c=!1;try{a.handleCustomLink(b),c=!0}catch(z){a.handleError(z)}return c};var d=this.clearDefaultStyle; this.clearDefaultStyle=function(){d.apply(this,arguments)};this.isOffline()||"undefined"===typeof window.EditDataDialog||(EditDataDialog.placeholderHelpLink="https://desk.draw.io/support/solutions/articles/16000051979");var e=a.editor.getEditBlankUrl;this.editor.getEditBlankUrl=function(b){b=null!=b?b:"";if(null!=a.pages&&null!=a.currentPage)for(var c=0;c<a.pages.length;c++)if(a.pages[c]==a.currentPage){0<c&&(b+=(0<b.length?"&":"?")+"page="+c);break}"1"==urlParams.dev&&(b+=(0<b.length?"&":"?")+"dev=1&drawdev=1"); return e.apply(this,arguments)};var g=c.addClickHandler;c.addClickHandler=function(a,b,f){var d=b;b=function(a,b){if(null==b){var f=mxEvent.getSource(a);"a"==f.nodeName.toLowerCase()&&(b=f.getAttribute("href"))}null!=b&&c.isCustomLink(b)&&(mxEvent.isTouchEvent(a)||!mxEvent.isPopupTrigger(a))&&c.customLinkClicked(b)&&mxEvent.consume(a);null!=d&&d(a,b)};g.call(this,a,b,f)};k.apply(this,arguments);mxClient.IS_SVG&&this.editor.graph.addSvgShadow(c.view.canvas.ownerSVGElement,null,!0);a.actions.get("print").funct= function(){a.showDialog((new PrintDialog(a)).container,360,null!=a.pages&&1<a.pages.length?420:360,!0,!0)};this.defaultFilename=mxResources.get("untitledDiagram");var l=c.getGlobalVariable;c.getGlobalVariable=function(b){return"page"==b&&null!=a.currentPage?a.currentPage.getName():"pagenumber"==b?null!=a.currentPage&&null!=a.pages?mxUtils.indexOf(a.pages,a.currentPage)+1:1:l.apply(this,arguments)};var p=c.labelLinkClicked;c.labelLinkClicked=function(a,b,f){var d=b.getAttribute("href");if(null==d|| @@ -7801,8 +7805,8 @@ mxEvent.addListener(c,"dragover",mxUtils.bind(this,function(a){null==f&&(!mxClie mxUtils.indexOf(a.dataTransfer.types,"text/html")?document.execCommand("insertHTML",!1,a.dataTransfer.getData("text/html")):0<=mxUtils.indexOf(a.dataTransfer.types,"text/plain")&&document.execCommand("insertHTML",!1,a.dataTransfer.getData("text/plain"));a.stopPropagation();a.preventDefault()})))}));if("1"==urlParams.ruler&&"undefined"!==typeof mxRuler){n=document.createElement("div");n.style.position="absolute";n.style.top="95px";n.style.left="250px";n.style.width="2000px";n.style.height="30px";n.style.background= "whiteSmoke";document.body.appendChild(n);var C=document.createElement("div");C.style.position="absolute";C.style.top="125px";C.style.left="220px";C.style.width="30px";C.style.height="1000px";C.style.background="whiteSmoke";document.body.appendChild(C);var B=document.createElement("div");B.style.position="absolute";B.style.top="95px";B.style.left="220px";B.style.width="30px";B.style.height="30px";B.style.background="whiteSmoke";document.body.appendChild(B);this.vRuler=new mxRuler(this.editor.graph, C,!0);this.hRuler=new mxRuler(this.editor.graph,n,!1)}if("1"==urlParams.styledev){n=document.getElementById("geFooter");null!=n&&(this.styleInput=document.createElement("input"),this.styleInput.setAttribute("type","text"),this.styleInput.style.position="absolute",this.styleInput.style.top="14px",this.styleInput.style.left="2px",this.styleInput.style.width="98%",this.styleInput.style.visibility="hidden",this.styleInput.style.opacity="0.9",mxEvent.addListener(this.styleInput,"change",mxUtils.bind(this, -function(){this.editor.graph.getModel().setStyle(this.editor.graph.getSelectionCell(),this.styleInput.value)})),n.appendChild(this.styleInput),this.editor.graph.getSelectionModel().addListener(mxEvent.CHANGE,mxUtils.bind(this,function(a,b){if(0<this.editor.graph.getSelectionCount()){var c=this.editor.graph.getSelectionCell(),c=this.editor.graph.getModel().getStyle(c);this.styleInput.value=c||"";this.styleInput.style.visibility="visible"}else this.styleInput.style.visibility="hidden"})));var H=this.isSelectionAllowed; -this.isSelectionAllowed=function(a){return mxEvent.getSource(a)==this.styleInput?!0:H.apply(this,arguments)}}n=document.getElementById("geInfo");null!=n&&n.parentNode.removeChild(n);if(Graph.fileSupport&&(!this.editor.chromeless||this.editor.editable)){var E=null;mxEvent.addListener(c.container,"dragleave",function(a){c.isEnabled()&&(null!=E&&(E.parentNode.removeChild(E),E=null),a.stopPropagation(),a.preventDefault())});mxEvent.addListener(c.container,"dragover",mxUtils.bind(this,function(a){null== +function(){this.editor.graph.getModel().setStyle(this.editor.graph.getSelectionCell(),this.styleInput.value)})),n.appendChild(this.styleInput),this.editor.graph.getSelectionModel().addListener(mxEvent.CHANGE,mxUtils.bind(this,function(a,b){if(0<this.editor.graph.getSelectionCount()){var c=this.editor.graph.getSelectionCell(),c=this.editor.graph.getModel().getStyle(c);this.styleInput.value=c||"";this.styleInput.style.visibility="visible"}else this.styleInput.style.visibility="hidden"})));var F=this.isSelectionAllowed; +this.isSelectionAllowed=function(a){return mxEvent.getSource(a)==this.styleInput?!0:F.apply(this,arguments)}}n=document.getElementById("geInfo");null!=n&&n.parentNode.removeChild(n);if(Graph.fileSupport&&(!this.editor.chromeless||this.editor.editable)){var E=null;mxEvent.addListener(c.container,"dragleave",function(a){c.isEnabled()&&(null!=E&&(E.parentNode.removeChild(E),E=null),a.stopPropagation(),a.preventDefault())});mxEvent.addListener(c.container,"dragover",mxUtils.bind(this,function(a){null== E&&(!mxClient.IS_IE||10<document.documentMode)&&(E=this.highlightElement(c.container));null!=this.sidebar&&this.sidebar.hideTooltip();a.stopPropagation();a.preventDefault()}));mxEvent.addListener(c.container,"drop",mxUtils.bind(this,function(a){null!=E&&(E.parentNode.removeChild(E),E=null);if(c.isEnabled()){var b=mxUtils.convertPoint(c.container,mxEvent.getClientX(a),mxEvent.getClientY(a)),f=c.view.translate,d=c.view.scale,e=b.x/d-f.x,h=b.y/d-f.y;mxEvent.isAltDown(a)&&(h=e=0);if(0<a.dataTransfer.files.length)this.importFiles(a.dataTransfer.files, e,h,this.maxImageSize,null,null,null,null,mxEvent.isControlDown(a),null,null,mxEvent.isShiftDown(a));else{var m=0<=mxUtils.indexOf(a.dataTransfer.types,"text/uri-list")?a.dataTransfer.getData("text/uri-list"):null,b=this.extractGraphModelFromEvent(a,null!=this.pages);if(null!=b)c.setSelectionCells(this.importXml(b,e,h,!0));else if(0<=mxUtils.indexOf(a.dataTransfer.types,"text/html")){var g=a.dataTransfer.getData("text/html"),b=document.createElement("div");b.innerHTML=g;var k=null,f=b.getElementsByTagName("img"); null!=f&&1==f.length?(g=f[0].getAttribute("src"),/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(g)||(k=!0)):(b=b.getElementsByTagName("a"),null!=b&&1==b.length&&(g=b[0].getAttribute("href")));var l=!0,v=mxUtils.bind(this,function(){c.setSelectionCells(this.insertTextAt(g,e,h,!0,k,null,l))});k&&g.length>this.resampleThreshold?this.confirmImageResize(function(a){l=a;v()},mxEvent.isControlDown(a)):v()}else null!=m&&/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(m)?this.loadImage(decodeURIComponent(m),mxUtils.bind(this, @@ -7835,39 +7839,39 @@ this.spinner.spin(document.body,mxResources.get("loading")))&&this.installMessag this.editor.modified=null!=d?d:!1;this.updateUi();window.self!==window.top&&window.focus();null!=this.format&&this.format.refresh()}))};EditorUi.prototype.showLayersDialog=function(){1<this.editor.graph.getModel().getChildCount(this.editor.graph.getModel().getRoot())&&(null==this.actions.layersWindow?this.actions.get("layers").funct():this.actions.layersWindow.window.setVisible(!0))};EditorUi.prototype.getPublicUrl=function(a,c){null!=a?a.getPublicUrl(c):c(null)};EditorUi.prototype.createLoadMessage= function(a){var b=this.editor.graph;return{event:a,pageVisible:b.pageVisible,translate:b.view.translate,bounds:b.getGraphBounds(),currentPage:this.getSelectedPageIndex(),scale:b.view.scale,page:b.view.getBackgroundPageBounds()}};EditorUi.prototype.installMessageHandler=function(a){var b=null,c=!1,d=!1,e=null,g=mxUtils.bind(this,function(a,b){this.editor.modified&&"0"!=urlParams.modified?null!=urlParams.modified&&this.editor.setStatus(mxUtils.htmlEntities(mxResources.get(urlParams.modified))):this.editor.setStatus("")}); this.editor.graph.model.addListener(mxEvent.CHANGE,g);mxEvent.addListener(window,"message",mxUtils.bind(this,function(f){if(f.source==(window.opener||window.parent)){var g=f.data,m=mxUtils.bind(this,function(a){if(null!=a&&"function"===typeof a.charAt&&"<"!=a.charAt(0))try{"data:image/png;base64,"==a.substring(0,22)?a=this.extractGraphModelFromPng(a):"data:image/svg+xml;base64,"==a.substring(0,26)?a=atob(a.substring(26)):"data:image/svg+xml;utf8,"==a.substring(0,24)&&(a=a.substring(24)),null!=a&& -("%"==a.charAt(0)?a=decodeURIComponent(a):"<"!=a.charAt(0)&&(a=this.editor.graph.decompress(a)))}catch(M){}return a});if("json"==urlParams.proto){try{g=JSON.parse(g)}catch(G){g=null}if(null==g)return;if("dialog"==g.action){this.showError(null!=g.titleKey?mxResources.get(g.titleKey):g.title,null!=g.messageKey?mxResources.get(g.messageKey):g.message,null!=g.buttonKey?mxResources.get(g.buttonKey):g.button);null!=g.modified&&(this.editor.modified=g.modified);return}if("prompt"==g.action){this.spinner.stop(); +("%"==a.charAt(0)?a=decodeURIComponent(a):"<"!=a.charAt(0)&&(a=this.editor.graph.decompress(a)))}catch(M){}return a});if("json"==urlParams.proto){try{g=JSON.parse(g)}catch(H){g=null}if(null==g)return;if("dialog"==g.action){this.showError(null!=g.titleKey?mxResources.get(g.titleKey):g.title,null!=g.messageKey?mxResources.get(g.messageKey):g.message,null!=g.buttonKey?mxResources.get(g.buttonKey):g.button);null!=g.modified&&(this.editor.modified=g.modified);return}if("prompt"==g.action){this.spinner.stop(); m=new FilenameDialog(this,g.defaultValue||"",null!=g.okKey?mxResources.get(g.okKey):null,function(a){null!=a&&k.postMessage(JSON.stringify({event:"prompt",value:a,message:g}),"*")},null!=g.titleKey?mxResources.get(g.titleKey):g.title);this.showDialog(m.container,300,80,!0,!1);m.init();return}if("draft"==g.action){var h=m(g.xml);this.spinner.stop();m=new DraftDialog(this,mxResources.get("draftFound",[g.name||this.defaultFilename]),h,mxUtils.bind(this,function(){this.hideDialog();k.postMessage(JSON.stringify({event:"draft", result:"edit",message:g}),"*")}),mxUtils.bind(this,function(){this.hideDialog();k.postMessage(JSON.stringify({event:"draft",result:"discard",message:g}),"*")}),g.editKey?mxResources.get(g.editKey):null,g.discardKey?mxResources.get(g.discardKey):null,g.ignore?mxUtils.bind(this,function(){this.hideDialog();k.postMessage(JSON.stringify({event:"draft",result:"ignore",message:g}),"*")}):null);this.showDialog(m.container,640,480,!0,!1,mxUtils.bind(this,function(a){a&&this.actions.get("exit").funct()})); -try{m.init()}catch(G){k.postMessage(JSON.stringify({event:"draft",error:G.toString(),message:g}),"*")}return}if("template"==g.action){this.spinner.stop();m=1==g.enableRecent;h=1==g.enableSearch;m=new NewDialog(this,!1,null!=g.callback,mxUtils.bind(this,function(b,c){b=b||this.emptyDiagramXml;null!=g.callback?k.postMessage(JSON.stringify({event:"template",xml:b,blank:b==this.emptyDiagramXml,name:c}),"*"):(a(b,f,b!=this.emptyDiagramXml),this.editor.modified||this.editor.setStatus(""))}),null,null,null, +try{m.init()}catch(H){k.postMessage(JSON.stringify({event:"draft",error:H.toString(),message:g}),"*")}return}if("template"==g.action){this.spinner.stop();m=1==g.enableRecent;h=1==g.enableSearch;m=new NewDialog(this,!1,null!=g.callback,mxUtils.bind(this,function(b,c){b=b||this.emptyDiagramXml;null!=g.callback?k.postMessage(JSON.stringify({event:"template",xml:b,blank:b==this.emptyDiagramXml,name:c}),"*"):(a(b,f,b!=this.emptyDiagramXml),this.editor.modified||this.editor.setStatus(""))}),null,null,null, null,null,null,null,m?mxUtils.bind(this,function(a){this.recentReadyCallback=a;k.postMessage(JSON.stringify({event:"recentDocs"}),"*")}):null,h?mxUtils.bind(this,function(a,b){this.searchReadyCallback=b;k.postMessage(JSON.stringify({event:"searchDocs",searchStr:a}),"*")}):null,function(a,b,c){k.postMessage(JSON.stringify({event:"template",docUrl:a,info:b,name:c}),"*")});this.showDialog(m.container,620,440,!0,!1,mxUtils.bind(this,function(a){a&&this.actions.get("exit").funct()}));m.init();return}if("searchDocsList"== g.action)this.searchReadyCallback(g.list,g.errorMsg);else if("recentDocsList"==g.action)this.recentReadyCallback(g.list,g.errorMsg);else{if("textContent"==g.action){this.editor.graph.setEnabled(!1);var l=this.editor.graph,m="";if(null!=this.pages)for(h=0;h<this.pages.length;h++){var p=l;this.currentPage!=this.pages[h]&&(p=this.createTemporaryGraph(l.getStylesheet()),p.model.setRoot(this.pages[h].root));m+=this.pages[h].getName()+" "+p.getIndexableText()+" "}else m=l.getIndexableText();this.editor.graph.setEnabled(!0); k.postMessage(JSON.stringify({event:"textContent",data:m,message:g}),"*");return}if("status"==g.action){null!=g.messageKey?this.editor.setStatus(mxUtils.htmlEntities(mxResources.get(g.messageKey))):null!=g.message&&this.editor.setStatus(mxUtils.htmlEntities(g.message));null!=g.modified&&(this.editor.modified=g.modified);return}if("spinner"==g.action){var n=null!=g.messageKey?mxResources.get(g.messageKey):g.message;null==g.show||g.show?this.spinner.spin(document.body,n):this.spinner.stop();return}if("export"== g.action){if("png"==g.format||"xmlpng"==g.format){if(null==g.spin&&null==g.spinKey||this.spinner.spin(document.body,null!=g.spinKey?mxResources.get(g.spinKey):g.spin)){var q=null!=g.xml?g.xml:this.getFileData(!0);this.editor.graph.setEnabled(!1);var l=this.editor.graph,w=mxUtils.bind(this,function(a){this.editor.graph.setEnabled(!0);this.spinner.stop();var b=this.createLoadMessage("export");b.format=g.format;b.message=g;b.data=a;b.xml=encodeURIComponent(q);k.postMessage(JSON.stringify(b),"*")}),t= -mxUtils.bind(this,function(a){null==a&&(a=Editor.blankImage);"xmlpng"==g.format&&(a=this.writeGraphModelToPng(a,"zTXt","mxGraphModel",atob(this.editor.graph.compress(q))));l!=this.editor.graph&&l.container.parentNode.removeChild(l.container);w(a)});if(this.isExportToCanvas()){if(null!=this.pages&&this.currentPage!=this.pages[0]){var l=this.createTemporaryGraph(l.getStylesheet()),u=l.getGlobalVariable,y=this.pages[0];l.getGlobalVariable=function(a){return"page"==a?y.getName():"pagenumber"==a?1:u.apply(this, -arguments)};document.body.appendChild(l.container);l.model.setRoot(y.root)}this.exportToCanvas(mxUtils.bind(this,function(a){t(a.toDataURL("image/png"))}),null,null,null,mxUtils.bind(this,function(){t(null)}),null,null,null,null,null,null,l)}else(new mxXmlRequest(EXPORT_URL,"format=png&embedXml="+("xmlpng"==g.format?"1":"0")+"&base64=1&xml="+encodeURIComponent(encodeURIComponent(q)))).send(mxUtils.bind(this,function(a){200<=a.getStatus()&&299>=a.getStatus()?w("data:image/png;base64,"+a.getText()): +mxUtils.bind(this,function(a){null==a&&(a=Editor.blankImage);"xmlpng"==g.format&&(a=this.writeGraphModelToPng(a,"zTXt","mxGraphModel",atob(this.editor.graph.compress(q))));l!=this.editor.graph&&l.container.parentNode.removeChild(l.container);w(a)});if(this.isExportToCanvas()){if(null!=this.pages&&this.currentPage!=this.pages[0]){var l=this.createTemporaryGraph(l.getStylesheet()),u=l.getGlobalVariable,z=this.pages[0];l.getGlobalVariable=function(a){return"page"==a?z.getName():"pagenumber"==a?1:u.apply(this, +arguments)};document.body.appendChild(l.container);l.model.setRoot(z.root)}this.exportToCanvas(mxUtils.bind(this,function(a){t(a.toDataURL("image/png"))}),null,null,null,mxUtils.bind(this,function(){t(null)}),null,null,null,null,null,null,l)}else(new mxXmlRequest(EXPORT_URL,"format=png&embedXml="+("xmlpng"==g.format?"1":"0")+"&base64=1&xml="+encodeURIComponent(encodeURIComponent(q)))).send(mxUtils.bind(this,function(a){200<=a.getStatus()&&299>=a.getStatus()?w("data:image/png;base64,"+a.getText()): t(null)}),mxUtils.bind(this,function(){t(null)}))}}else{null!=g.xml&&0<g.xml.length&&this.setFileData(g.xml);n=this.createLoadMessage("export");if("html2"==g.format||"html"==g.format&&("0"!=urlParams.pages||null!=this.pages&&1<this.pages.length))m=this.getXmlFileData(),n.xml=mxUtils.getXml(m),n.data=this.getFileData(null,null,!0,null,null,null,m),n.format=g.format;else if("html"==g.format)q=this.editor.getGraphXml(),n.data=this.getHtml(q,this.editor.graph),n.xml=mxUtils.getXml(q),n.format=g.format; else{mxSvgCanvas2D.prototype.foAltText=null;m=this.editor.graph.background;m==mxConstants.NONE&&(m=null);n.xml=this.getFileData(!0);n.format="svg";if(g.embedImages||null==g.embedImages){if(null==g.spin&&null==g.spinKey||this.spinner.spin(document.body,null!=g.spinKey?mxResources.get(g.spinKey):g.spin))this.editor.graph.setEnabled(!1),"xmlsvg"==g.format?this.getEmbeddedSvg(n.xml,this.editor.graph,null,!0,mxUtils.bind(this,function(a){this.editor.graph.setEnabled(!0);this.spinner.stop();n.data=this.createSvgDataUri(a); k.postMessage(JSON.stringify(n),"*")})):this.convertImages(this.editor.graph.getSvg(m),mxUtils.bind(this,function(a){this.editor.graph.setEnabled(!0);this.spinner.stop();n.data=this.createSvgDataUri(mxUtils.getXml(a));k.postMessage(JSON.stringify(n),"*")}));return}m="xmlsvg"==g.format?this.getEmbeddedSvg(this.getFileData(!0),this.editor.graph,null,!0):mxUtils.getXml(this.editor.graph.getSvg(m));n.data=this.createSvgDataUri(m)}k.postMessage(JSON.stringify(n),"*")}return}if("load"==g.action)d=1==g.autosave, this.hideDialog(),null!=g.modified&&null==urlParams.modified&&(urlParams.modified=g.modified),null!=g.saveAndExit&&null==urlParams.saveAndExit&&(urlParams.saveAndExit=g.saveAndExit),null!=g.title&&null!=this.buttonContainer&&(h=document.createElement("span"),mxUtils.write(h,g.title),"atlas"==uiTheme?(this.buttonContainer.style.paddingRight="12px",this.buttonContainer.style.paddingTop="12px"):"min"!=uiTheme&&(this.buttonContainer.style.paddingRight="38px",this.buttonContainer.style.paddingTop="6px"), -null!=this.embedFilenameSpan&&this.embedFilenameSpan.parentNode.removeChild(this.embedFilenameSpan),this.buttonContainer.appendChild(h),this.embedFilenameSpan=h),g=null!=g.xmlpng?this.extractGraphModelFromPng(g.xmlpng):g.xml;else{k.postMessage(JSON.stringify({error:"unknownMessage",data:JSON.stringify(g)}),"*");return}}}var z=mxUtils.bind(this,function(f,g){c=!0;try{a(f,g)}catch(T){this.handleError(T)}c=!1;null!=urlParams.modified&&this.editor.setStatus("");var m=mxUtils.bind(this,function(){return"0"!= +null!=this.embedFilenameSpan&&this.embedFilenameSpan.parentNode.removeChild(this.embedFilenameSpan),this.buttonContainer.appendChild(h),this.embedFilenameSpan=h),g=null!=g.xmlpng?this.extractGraphModelFromPng(g.xmlpng):g.xml;else{k.postMessage(JSON.stringify({error:"unknownMessage",data:JSON.stringify(g)}),"*");return}}}var y=mxUtils.bind(this,function(f,g){c=!0;try{a(f,g)}catch(T){this.handleError(T)}c=!1;null!=urlParams.modified&&this.editor.setStatus("");var m=mxUtils.bind(this,function(){return"0"!= urlParams.pages||null!=this.pages&&1<this.pages.length?this.getFileData(!0):mxUtils.getXml(this.editor.getGraphXml())});e=m();d&&null==b&&(b=mxUtils.bind(this,function(a,b){var f=m();if(f!=e&&!c){var d=this.createLoadMessage("autosave");d.xml=f;f=JSON.stringify(d);(window.opener||window.parent).postMessage(f,"*")}e=f}),this.editor.graph.model.addListener(mxEvent.CHANGE,b),this.editor.graph.addListener("gridSizeChanged",b),this.editor.graph.addListener("shadowVisibleChanged",b),this.addListener("pageFormatChanged", b),this.addListener("pageScaleChanged",b),this.addListener("backgroundColorChanged",b),this.addListener("backgroundImageChanged",b),this.addListener("foldingEnabledChanged",b),this.addListener("mathEnabledChanged",b),this.addListener("gridEnabledChanged",b),this.addListener("guidesEnabledChanged",b),this.addListener("pageViewChanged",b));"1"!=urlParams.returnbounds&&"json"!=urlParams.proto||k.postMessage(JSON.stringify(this.createLoadMessage("load")),"*")});null!=g&&"function"===typeof g.substring&& -"data:application/vnd.visio;base64,"==g.substring(0,34)?(m="0M8R4KGxGuE"==g.substring(34,45)?"raw.vsd":"raw.vsdx",this.importVisio(this.base64ToBlob(g.substring(g.indexOf(",")+1)),function(a){z(a,f)},mxUtils.bind(this,function(a){this.handleError(a)}),m)):null!=g&&"function"===typeof g.substring&&!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(g,"")?this.parseFile(new Blob([g],{type:"application/octet-stream"}),mxUtils.bind(this,function(a){4==a.readyState&&200<=a.status&& -299>=a.status&&"<mxGraphModel"==a.responseText.substring(0,13)&&z(a.responseText,f)}),""):null!=g&&"function"===typeof g.substring&&this.isLucidChartData(g)?this.convertLucidChart(g,mxUtils.bind(this,function(a){z(a)}),mxUtils.bind(this,function(a){this.handleError(a)})):(g=m(g),z(g,f))}}));var k=window.opener||window.parent,g="json"==urlParams.proto?JSON.stringify({event:"init"}):urlParams.ready||"ready";k.postMessage(g,"*")};EditorUi.prototype.addEmbedButtons=function(){if(null!=this.menubar){var a= +"data:application/vnd.visio;base64,"==g.substring(0,34)?(m="0M8R4KGxGuE"==g.substring(34,45)?"raw.vsd":"raw.vsdx",this.importVisio(this.base64ToBlob(g.substring(g.indexOf(",")+1)),function(a){y(a,f)},mxUtils.bind(this,function(a){this.handleError(a)}),m)):null!=g&&"function"===typeof g.substring&&!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(g,"")?this.parseFile(new Blob([g],{type:"application/octet-stream"}),mxUtils.bind(this,function(a){4==a.readyState&&200<=a.status&& +299>=a.status&&"<mxGraphModel"==a.responseText.substring(0,13)&&y(a.responseText,f)}),""):null!=g&&"function"===typeof g.substring&&this.isLucidChartData(g)?this.convertLucidChart(g,mxUtils.bind(this,function(a){y(a)}),mxUtils.bind(this,function(a){this.handleError(a)})):(g=m(g),y(g,f))}}));var k=window.opener||window.parent,g="json"==urlParams.proto?JSON.stringify({event:"init"}):urlParams.ready||"ready";k.postMessage(g,"*")};EditorUi.prototype.addEmbedButtons=function(){if(null!=this.menubar){var a= document.createElement("div");a.style.display="inline-block";a.style.position="absolute";a.style.paddingTop="atlas"==uiTheme?"2px":"3px";a.style.paddingLeft="8px";a.style.paddingBottom="2px";var c=document.createElement("button");mxUtils.write(c,mxResources.get("save"));c.setAttribute("title",mxResources.get("save")+" ("+Editor.ctrlKey+"+S)");c.className="geBigButton";c.style.fontSize="12px";c.style.padding="4px 6px 4px 6px";c.style.borderRadius="3px";mxEvent.addListener(c,"click",mxUtils.bind(this, function(){this.actions.get("save").funct()}));a.appendChild(c);"1"==urlParams.saveAndExit&&(c=document.createElement("a"),mxUtils.write(c,mxResources.get("saveAndExit")),c.setAttribute("title",mxResources.get("saveAndExit")),c.style.fontSize="12px",c.style.marginLeft="6px",c.style.padding="4px",c.style.cursor="pointer",mxEvent.addListener(c,"click",mxUtils.bind(this,function(){this.actions.get("saveAndExit").funct()})),a.appendChild(c));c=document.createElement("a");mxUtils.write(c,mxResources.get("exit")); c.setAttribute("title",mxResources.get("exit"));c.style.fontSize="12px";c.style.marginLeft="6px";c.style.marginRight="20px";c.style.padding="4px";c.style.cursor="pointer";mxEvent.addListener(c,"click",mxUtils.bind(this,function(){this.actions.get("exit").funct()}));a.appendChild(c);this.toolbar.container.appendChild(a);this.toolbar.staticElements.push(a);a.style.right="atlas"!=uiTheme?"52px":"42px"}};EditorUi.prototype.showImportCsvDialog=function(){null==this.importCsvDialog&&(this.importCsvDialog= -new TextareaDialog(this,mxResources.get("csv")+":",Editor.defaultCsvValue,mxUtils.bind(this,function(a){this.importCsv(a)}),null,null,620,430,null,!0,!0,mxResources.get("import")));this.showDialog(this.importCsvDialog.container,640,520,!0,!0);this.importCsvDialog.init()};EditorUi.prototype.importCsv=function(a,c){try{var b=a.split("\n"),f=[];if(0<b.length){var d={},e=null,g=null,k=null,l=null,m="",v="auto",p="auto",n=null,B=null,H=40,E=40,F=100,L=0,y=this.editor.graph;y.getGraphBounds();for(var D= -function(){null!=c?c(ea):(y.setSelectionCells(ea),y.scrollCellToVisible(y.getSelectionCell()))},G=y.getFreeInsertPoint(),M=G.x,J=G.y,G=J,T=null,P="auto",l=null,S=[],aa=null,Z=null,N=0;N<b.length&&"#"==b[N].charAt(0);){a=b[N];for(N++;N<b.length&&"\\"==a.charAt(a.length-1)&&"#"==b[N].charAt(0);)a=a.substring(0,a.length-1)+mxUtils.trim(b[N].substring(1)),N++;if("#"!=a.charAt(1)){var Y=a.indexOf(":");if(0<Y){var Q=mxUtils.trim(a.substring(1,Y)),K=mxUtils.trim(a.substring(Y+1));"label"==Q?T=y.sanitizeHtml(K): -"style"==Q?e=K:"parentstyle"==Q?g=K:"identity"==Q&&0<K.length&&"-"!=K?k=K:"parent"==Q&&0<K.length&&"-"!=K?l=K:"namespace"==Q&&0<K.length&&"-"!=K?m=K:"width"==Q?v=K:"height"==Q?p=K:"left"==Q&&0<K.length?n=K:"top"==Q&&0<K.length?B=K:"ignore"==Q?Z=K.split(","):"connect"==Q?S.push(JSON.parse(K)):"link"==Q?aa=K:"padding"==Q?L=parseFloat(K):"edgespacing"==Q?H=parseFloat(K):"nodespacing"==Q?E=parseFloat(K):"levelspacing"==Q?F=parseFloat(K):"layout"==Q&&(P=K)}}}var U=this.editor.csvToArray(b[N]),Q=Y=null; -if(null!=k||null!=l)for(var R=0;R<U.length;R++)k==U[R]&&(Y=R),l==U[R]&&(Q=R);null==T&&(T="%"+U[0]+"%");if(null!=S)for(var O=0;O<S.length;O++)null==d[S[O].to]&&(d[S[O].to]={});y.model.beginUpdate();try{for(R=N+1;R<b.length;R++){var V=this.editor.csvToArray(b[R]);if(V.length==U.length){var I=null,X=null!=Y?m+V[Y]:null;null!=X&&(I=y.model.getCell(X));null==I&&(I=new mxCell(T,new mxGeometry(M,G,0,0),e||"whiteSpace=wrap;html=1;"),I.vertex=!0,I.id=X);for(var W=0;W<V.length;W++)y.setAttributeForCell(I,U[W], -V[W]);y.setAttributeForCell(I,"placeholders","1");I.style=y.replacePlaceholders(I,I.style);for(O=0;O<S.length;O++)d[S[O].to][I.getAttribute(S[O].to)]=I;null!=aa&&"link"!=aa&&(y.setLinkForCell(I,I.getAttribute(aa)),y.setAttributeForCell(I,aa,null));y.fireEvent(new mxEventObject("cellsInserted","cells",[I]));var da=this.editor.graph.getPreferredSizeForCell(I);I.vertex&&(null!=n&&null!=I.getAttribute(n)&&(I.geometry.x=M+parseFloat(I.getAttribute(n))),null!=B&&null!=I.getAttribute(B)&&(I.geometry.y=J+ -parseFloat(I.getAttribute(B))),"@"==v.charAt(0)&&null!=I.getAttribute(v.substring(1))?I.geometry.width=parseFloat(I.getAttribute(v.substring(1))):I.geometry.width="auto"==v?da.width+L:parseFloat(v),"@"==p.charAt(0)&&null!=I.getAttribute(p.substring(1))?I.geometry.height=parseFloat(I.getAttribute(p.substring(1))):I.geometry.height="auto"==p?da.height+L:parseFloat(p),G+=I.geometry.height+E);l=null!=Q?y.model.getCell(m+V[Q]):null;null!=l?(l.style=y.replacePlaceholders(l,g),y.addCell(I,l)):f.push(y.addCell(I))}}for(var ba= -f.slice(),ea=f.slice(),O=0;O<S.length;O++)for(var ca=S[O],R=0;R<f.length;R++){var I=f[R],la=I.getAttribute(ca.from);if(null!=la){y.setAttributeForCell(I,ca.from,null);for(var ma=la.split(","),W=0;W<ma.length;W++){var fa=d[ca.to][ma[W]];null!=fa&&(T=ca.label,null!=ca.fromlabel&&(T=(I.getAttribute(ca.fromlabel)||"")+(T||"")),null!=ca.tolabel&&(T=(T||"")+(fa.getAttribute(ca.tolabel)||"")),ea.push(y.insertEdge(null,null,T||"",ca.invert?fa:I,ca.invert?I:fa,ca.style||y.createCurrentEdgeStyle())),mxUtils.remove(ca.invert? -I:fa,ba))}}}if(null!=Z)for(R=0;R<f.length;R++)for(I=f[R],W=0;W<Z.length;W++)y.setAttributeForCell(I,mxUtils.trim(Z[W]),null);var ia=new mxParallelEdgeLayout(y);ia.spacing=H;var na=function(){ia.execute(y.getDefaultParent());for(var a=0;a<f.length;a++){var b=y.getCellGeometry(f[a]);b.x=Math.round(y.snap(b.x));b.y=Math.round(y.snap(b.y));"auto"==v&&(b.width=Math.round(y.snap(b.width)));"auto"==p&&(b.height=Math.round(y.snap(b.height)))}};if("circle"==P){var ja=new mxCircleLayout(y);ja.resetEdges=!1; -var oa=ja.isVertexIgnored;ja.isVertexIgnored=function(a){return oa.apply(this,arguments)||0>mxUtils.indexOf(f,a)};this.executeLayout(function(){ja.execute(y.getDefaultParent());na()},!0,D);D=null}else if("horizontaltree"==P||"verticaltree"==P||"auto"==P&&ea.length==2*f.length-1&&1==ba.length){y.view.validate();var ka=new mxCompactTreeLayout(y,"horizontaltree"==P);ka.levelDistance=E;ka.edgeRouting=!1;ka.resetEdges=!1;this.executeLayout(function(){ka.execute(y.getDefaultParent(),0<ba.length?ba[0]:null)}, -!0,D);D=null}else if("horizontalflow"==P||"verticalflow"==P||"auto"==P&&1==ba.length){y.view.validate();var ga=new mxHierarchicalLayout(y,"horizontalflow"==P?mxConstants.DIRECTION_WEST:mxConstants.DIRECTION_NORTH);ga.intraCellSpacing=E;ga.parallelEdgeSpacing=H;ga.interRankCellSpacing=F;ga.disableEdgeStyle=!1;this.executeLayout(function(){ga.execute(y.getDefaultParent(),ea);y.moveCells(ea,M,J)},!0,D);D=null}else if("organic"==P||"auto"==P&&ea.length>f.length){y.view.validate();var ha=new mxFastOrganicLayout(y); -ha.forceConstant=3*E;ha.resetEdges=!1;var pa=ha.isVertexIgnored;ha.isVertexIgnored=function(a){return pa.apply(this,arguments)||0>mxUtils.indexOf(f,a)};ia=new mxParallelEdgeLayout(y);ia.spacing=H;this.executeLayout(function(){ha.execute(y.getDefaultParent());na()},!0,D);D=null}this.hideDialog()}finally{y.model.endUpdate()}null!=D&&D()}}catch(qa){this.handleError(qa)}};EditorUi.prototype.getSearch=function(a){var b="";if("1"!=urlParams.offline&&"1"!=urlParams.demo&&null!=a&&0<window.location.search.length){var c= +new TextareaDialog(this,mxResources.get("csv")+":",Editor.defaultCsvValue,mxUtils.bind(this,function(a){this.importCsv(a)}),null,null,620,430,null,!0,!0,mxResources.get("import")));this.showDialog(this.importCsvDialog.container,640,520,!0,!0);this.importCsvDialog.init()};EditorUi.prototype.importCsv=function(a,c){try{var b=a.split("\n"),f=[];if(0<b.length){var d={},e=null,g=null,k=null,l=null,m="",v="auto",p="auto",n=null,B=null,F=40,E=40,G=100,L=0,z=this.editor.graph;z.getGraphBounds();for(var D= +function(){null!=c?c(ea):(z.setSelectionCells(ea),z.scrollCellToVisible(z.getSelectionCell()))},H=z.getFreeInsertPoint(),M=H.x,J=H.y,H=J,T=null,P="auto",l=null,S=[],aa=null,Z=null,N=0;N<b.length&&"#"==b[N].charAt(0);){a=b[N];for(N++;N<b.length&&"\\"==a.charAt(a.length-1)&&"#"==b[N].charAt(0);)a=a.substring(0,a.length-1)+mxUtils.trim(b[N].substring(1)),N++;if("#"!=a.charAt(1)){var Y=a.indexOf(":");if(0<Y){var Q=mxUtils.trim(a.substring(1,Y)),K=mxUtils.trim(a.substring(Y+1));"label"==Q?T=z.sanitizeHtml(K): +"style"==Q?e=K:"parentstyle"==Q?g=K:"identity"==Q&&0<K.length&&"-"!=K?k=K:"parent"==Q&&0<K.length&&"-"!=K?l=K:"namespace"==Q&&0<K.length&&"-"!=K?m=K:"width"==Q?v=K:"height"==Q?p=K:"left"==Q&&0<K.length?n=K:"top"==Q&&0<K.length?B=K:"ignore"==Q?Z=K.split(","):"connect"==Q?S.push(JSON.parse(K)):"link"==Q?aa=K:"padding"==Q?L=parseFloat(K):"edgespacing"==Q?F=parseFloat(K):"nodespacing"==Q?E=parseFloat(K):"levelspacing"==Q?G=parseFloat(K):"layout"==Q&&(P=K)}}}var U=this.editor.csvToArray(b[N]),Q=Y=null; +if(null!=k||null!=l)for(var R=0;R<U.length;R++)k==U[R]&&(Y=R),l==U[R]&&(Q=R);null==T&&(T="%"+U[0]+"%");if(null!=S)for(var O=0;O<S.length;O++)null==d[S[O].to]&&(d[S[O].to]={});z.model.beginUpdate();try{for(R=N+1;R<b.length;R++){var V=this.editor.csvToArray(b[R]);if(V.length==U.length){var I=null,X=null!=Y?m+V[Y]:null;null!=X&&(I=z.model.getCell(X));null==I&&(I=new mxCell(T,new mxGeometry(M,H,0,0),e||"whiteSpace=wrap;html=1;"),I.vertex=!0,I.id=X);for(var W=0;W<V.length;W++)z.setAttributeForCell(I,U[W], +V[W]);z.setAttributeForCell(I,"placeholders","1");I.style=z.replacePlaceholders(I,I.style);for(O=0;O<S.length;O++)d[S[O].to][I.getAttribute(S[O].to)]=I;null!=aa&&"link"!=aa&&(z.setLinkForCell(I,I.getAttribute(aa)),z.setAttributeForCell(I,aa,null));z.fireEvent(new mxEventObject("cellsInserted","cells",[I]));var da=this.editor.graph.getPreferredSizeForCell(I);I.vertex&&(null!=n&&null!=I.getAttribute(n)&&(I.geometry.x=M+parseFloat(I.getAttribute(n))),null!=B&&null!=I.getAttribute(B)&&(I.geometry.y=J+ +parseFloat(I.getAttribute(B))),"@"==v.charAt(0)&&null!=I.getAttribute(v.substring(1))?I.geometry.width=parseFloat(I.getAttribute(v.substring(1))):I.geometry.width="auto"==v?da.width+L:parseFloat(v),"@"==p.charAt(0)&&null!=I.getAttribute(p.substring(1))?I.geometry.height=parseFloat(I.getAttribute(p.substring(1))):I.geometry.height="auto"==p?da.height+L:parseFloat(p),H+=I.geometry.height+E);l=null!=Q?z.model.getCell(m+V[Q]):null;null!=l?(l.style=z.replacePlaceholders(l,g),z.addCell(I,l)):f.push(z.addCell(I))}}for(var ba= +f.slice(),ea=f.slice(),O=0;O<S.length;O++)for(var ca=S[O],R=0;R<f.length;R++){var I=f[R],la=I.getAttribute(ca.from);if(null!=la){z.setAttributeForCell(I,ca.from,null);for(var ma=la.split(","),W=0;W<ma.length;W++){var fa=d[ca.to][ma[W]];null!=fa&&(T=ca.label,null!=ca.fromlabel&&(T=(I.getAttribute(ca.fromlabel)||"")+(T||"")),null!=ca.tolabel&&(T=(T||"")+(fa.getAttribute(ca.tolabel)||"")),ea.push(z.insertEdge(null,null,T||"",ca.invert?fa:I,ca.invert?I:fa,ca.style||z.createCurrentEdgeStyle())),mxUtils.remove(ca.invert? +I:fa,ba))}}}if(null!=Z)for(R=0;R<f.length;R++)for(I=f[R],W=0;W<Z.length;W++)z.setAttributeForCell(I,mxUtils.trim(Z[W]),null);var ia=new mxParallelEdgeLayout(z);ia.spacing=F;var na=function(){ia.execute(z.getDefaultParent());for(var a=0;a<f.length;a++){var b=z.getCellGeometry(f[a]);b.x=Math.round(z.snap(b.x));b.y=Math.round(z.snap(b.y));"auto"==v&&(b.width=Math.round(z.snap(b.width)));"auto"==p&&(b.height=Math.round(z.snap(b.height)))}};if("circle"==P){var ja=new mxCircleLayout(z);ja.resetEdges=!1; +var oa=ja.isVertexIgnored;ja.isVertexIgnored=function(a){return oa.apply(this,arguments)||0>mxUtils.indexOf(f,a)};this.executeLayout(function(){ja.execute(z.getDefaultParent());na()},!0,D);D=null}else if("horizontaltree"==P||"verticaltree"==P||"auto"==P&&ea.length==2*f.length-1&&1==ba.length){z.view.validate();var ka=new mxCompactTreeLayout(z,"horizontaltree"==P);ka.levelDistance=E;ka.edgeRouting=!1;ka.resetEdges=!1;this.executeLayout(function(){ka.execute(z.getDefaultParent(),0<ba.length?ba[0]:null)}, +!0,D);D=null}else if("horizontalflow"==P||"verticalflow"==P||"auto"==P&&1==ba.length){z.view.validate();var ga=new mxHierarchicalLayout(z,"horizontalflow"==P?mxConstants.DIRECTION_WEST:mxConstants.DIRECTION_NORTH);ga.intraCellSpacing=E;ga.parallelEdgeSpacing=F;ga.interRankCellSpacing=G;ga.disableEdgeStyle=!1;this.executeLayout(function(){ga.execute(z.getDefaultParent(),ea);z.moveCells(ea,M,J)},!0,D);D=null}else if("organic"==P||"auto"==P&&ea.length>f.length){z.view.validate();var ha=new mxFastOrganicLayout(z); +ha.forceConstant=3*E;ha.resetEdges=!1;var pa=ha.isVertexIgnored;ha.isVertexIgnored=function(a){return pa.apply(this,arguments)||0>mxUtils.indexOf(f,a)};ia=new mxParallelEdgeLayout(z);ia.spacing=F;this.executeLayout(function(){ha.execute(z.getDefaultParent());na()},!0,D);D=null}this.hideDialog()}finally{z.model.endUpdate()}null!=D&&D()}}catch(qa){this.handleError(qa)}};EditorUi.prototype.getSearch=function(a){var b="";if("1"!=urlParams.offline&&"1"!=urlParams.demo&&null!=a&&0<window.location.search.length){var c= "?",d;for(d in urlParams)0>mxUtils.indexOf(a,d)&&null!=urlParams[d]&&(b+=c+d+"="+urlParams[d],c="&")}else b=window.location.search;return b};EditorUi.prototype.getUrl=function(a){a=null!=a?a:window.location.pathname;var b=0<a.indexOf("?")?1:0;if("1"==urlParams.offline)a+=window.location.search;else{var c="tmp libs clibs state fileId code share notitle data url embed client create title splash".split(" "),d;for(d in urlParams)0>mxUtils.indexOf(c,d)&&(a=0==b?a+"?":a+"&",null!=urlParams[d]&&(a+=d+"="+ urlParams[d],b++))}return a};EditorUi.prototype.showLinkDialog=function(a,c,d){a=new LinkDialog(this,a,c,d,!0);this.showDialog(a.container,480,130,!0,!0);a.init()};var l=EditorUi.prototype.createOutline;EditorUi.prototype.createOutline=function(a){var b=l.apply(this,arguments),c=this.editor.graph,d=b.getSourceGraphBounds;b.getSourceGraphBounds=function(){if(mxUtils.hasScrollbars(c.container)&&c.pageVisible&&null!=this.source.minimumGraphSize){var a=this.source.getPagePadding(),b=this.source.view.scale; return new mxRectangle(0,0,Math.ceil(this.source.minimumGraphSize.width-2*a.x/b),Math.ceil(this.source.minimumGraphSize.height-2*a.y/b))}return d.apply(this,arguments)};var e=b.getSourceContainerSize;b.getSourceContainerSize=function(){if(mxUtils.hasScrollbars(c.container)&&null!=this.source.minimumGraphSize){var a=this.source.getPagePadding(),b=this.source.view.scale;return new mxRectangle(0,0,Math.ceil(this.source.minimumGraphSize.width*b-2*a.x),Math.ceil(this.source.minimumGraphSize.height*b-2* @@ -7897,7 +7901,8 @@ mxSettings.defaultFormatWidth),null!=mxSettings.settings.lastAlert&&delete mxSet mxGraphView.prototype.gridColor),null==mxSettings.settings.autosave&&(mxSettings.settings.autosave=!0),null!=mxSettings.settings.scratchpadSeen&&delete mxSettings.settings.scratchpadSeen))},clear:function(){isLocalStorage&&localStorage.removeItem(mxSettings.key)}};("undefined"==typeof mxLoadSettings||mxLoadSettings)&&mxSettings.load();App=function(a,e,d){EditorUi.call(this,a,e,null!=d?d:"1"==urlParams.lightbox||"min"==uiTheme&&"0"!=urlParams.chrome);mxClient.IS_SVG?mxGraph.prototype.warningImage.src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAE7SURBVHjaYvz//z8DJQAggBjwGXDuHMP/tWuD/uPTCxBAOA0AaQRK/f/+XeJ/cbHlf1wGAAQQTgPu3QNLgfHSpZo4DQAIIKwGwGyH4e/fFbG6AiQJEEAs2Ew2NFzH8OOHBMO6dT/A/KCg7wxGRh+wuhQggDBcALMdFIAcHBxgDGJjcwVIIUAAYbhAUXEdVos4OO4DXcGBIQ4QQCguQPY7sgtgAYruCpAgQACx4LJdU1OCwctLEcyWlLwPJF+AXQE0EMUBAAEEdwF6yMOiD4RRY0QT7gqQAEAAseDzu6XldYYPH9DD4joQa8L5AAEENgWb7SBcXa0JDQMBrK4AcQACiAlfyOMCEFdAnAYQQEz4FLa0XGf4/v0H0IIPONUABBAjyBmMjIwMS5cK/L927QORbtBkaG29DtYLEGAAH6f7oq3Zc+kAAAAASUVORK5CYII=": (new Image).src=mxGraph.prototype.warningImage.src;window.openWindow=mxUtils.bind(this,function(a,d,e){var c=null;try{c=window.open(a)}catch(p){}null==c||void 0===c?this.showDialog((new PopupDialog(this,a,d,e)).container,320,140,!0,!0):null!=d&&d()});this.updateDocumentTitle();this.updateUi();window.showOpenAlert=mxUtils.bind(this,function(a){null!=window.openFile&&window.openFile.cancel(!0);this.handleError(a)});this.editor.chromeless&&!this.editor.editable||this.addFileDropHandler([document]);if(null!= App.DrawPlugins){for(a=0;a<App.DrawPlugins.length;a++)try{App.DrawPlugins[a](this)}catch(c){null!=window.console&&console.log("Plugin Error:",c,App.DrawPlugins[a])}window.Draw.loadPlugin=mxUtils.bind(this,function(a){a(this)})}this.load()};App.ERROR_TIMEOUT="timeout";App.ERROR_BUSY="busy";App.ERROR_UNKNOWN="unknown";App.MODE_GOOGLE="google";App.MODE_DROPBOX="dropbox";App.MODE_ONEDRIVE="onedrive";App.MODE_GITHUB="github";App.MODE_DEVICE="device";App.MODE_BROWSER="browser";App.MODE_TRELLO="trello"; -App.DROPBOX_APPKEY="libwls2fa9szdji";App.DROPBOX_URL="js/dropbox/Dropbox-sdk.min.js";App.DROPINS_URL="https://www.dropbox.com/static/api/2/dropins.js";App.ONEDRIVE_URL="https://js.live.net/v7.2/OneDrive.js";App.TRELLO_URL="https://api.trello.com/1/client.js";App.TRELLO_JQUERY_URL="https://code.jquery.com/jquery-1.7.1.min.js";App.FOOTER_PLUGIN_URL="https://www.jgraph.com/drawio-footer.js"; +App.DROPBOX_APPKEY="libwls2fa9szdji";App.DROPBOX_URL="js/dropbox/Dropbox-sdk.min.js";App.DROPINS_URL="https://www.dropbox.com/static/api/2/dropins.js";App.ONEDRIVE_URL="https://js.live.net/v7.2/OneDrive.js";App.TRELLO_URL="https://api.trello.com/1/client.js";App.TRELLO_JQUERY_URL="https://code.jquery.com/jquery-1.7.1.min.js";App.FOOTER_PLUGIN_URL="https://www.jgraph.com/drawio-footer.js";App.GOOGLE_REALTIME="0"!=urlParams["google-realtime"]; +App.GOOGLE_APIS="client,drive-share"+(App.GOOGLE_REALTIME?",drive-realtime":""); App.pluginRegistry={"4xAKTrabTpTzahoLthkwPNUn":"/plugins/explore.js",ex:"/plugins/explore.js",p1:"/plugins/p1.js",ac:"/plugins/connect.js",acj:"/plugins/connectJira.js",ac148:"/plugins/cConf-1-4-8.js",voice:"/plugins/voice.js",tips:"/plugins/tooltips.js",svgdata:"/plugins/svgdata.js",doors:"/plugins/doors.js",electron:"plugins/electron.js",number:"/plugins/number.js",sql:"/plugins/sql.js",props:"/plugins/props.js",text:"/plugins/text.js",anim:"/plugins/animation.js",update:"/plugins/update.js",trees:"/plugins/trees/trees.js", "import":"/plugins/import.js",replay:"/plugins/replay.js",anon:"/plugins/anonymize.js",tr:"/plugins/trello.js",f5:"/plugins/rackF5.js",tickets:"/plugins/tickets.js",flow:"/plugins/flow.js",webcola:"/plugins/webcola/webcola.js"}; App.getStoredMode=function(){var a=null;null==a&&isLocalStorage&&(a=localStorage.getItem(".mode"));if(null==a&&"undefined"!=typeof Storage){for(var e=document.cookie.split(";"),d=0;d<e.length;d++){var c=mxUtils.trim(e[d]);if("MODE="==c.substring(0,5)){a=c.substring(5);break}}null!=a&&isLocalStorage&&(e=new Date,e.setYear(e.getFullYear()-1),document.cookie="MODE=; expires="+e.toUTCString(),localStorage.setItem(".mode",a))}return a}; @@ -7910,12 +7915,12 @@ null!=window.DrawDropboxClientCallback&&("1"!=urlParams.embed&&"0"!=urlParams.db null!=window.DrawOneDriveClientCallback&&("1"!=urlParams.embed&&"0"!=urlParams.od||"1"==urlParams.embed&&"1"==urlParams.od)&&(0>navigator.userAgent.indexOf("MSIE")||10<=document.documentMode)?mxscript(App.ONEDRIVE_URL,window.DrawOneDriveClientCallback):"undefined"===typeof window.OneDrive&&(window.OneDriveClient=null);"function"===typeof window.TrelloClient&&"undefined"===typeof window.Trello&&null!=window.DrawTrelloClientCallback&&("1"!=urlParams.embed&&"0"!=urlParams.tr||"1"==urlParams.embed&&"1"== urlParams.tr)&&(0>navigator.userAgent.indexOf("MSIE")||10<=document.documentMode)?mxscript(App.TRELLO_JQUERY_URL,function(){mxscript(App.TRELLO_URL,function(){DrawTrelloClientCallback()})}):"undefined"===typeof window.Trello&&(window.TrelloClient=null)}null!=a&&a(b);"0"!=urlParams.chrome&&"1"==urlParams.test&&(mxLog.show(),mxLog.debug("Started in "+((new Date).getTime()-t0.getTime())+"ms"),mxLog.debug("Export:",EXPORT_URL),mxLog.debug("Development mode:","1"==urlParams.dev?"active":"inactive"),mxLog.debug("Test mode:", "1"==urlParams.test?"active":"inactive"))},function(a){document.getElementById("geStatus").innerHTML='Error loading page. <a href="javascript:void(0);">Please try refreshing.</a>';document.getElementById("geStatus").getElementsByTagName("a")[0].onclick=function(){mxLanguage="en";d(mxResources.getDefaultBundle(RESOURCE_BASE,mxLanguage)||mxResources.getSpecialBundle(RESOURCE_BASE,mxLanguage))}})}function c(){mxResources.loadDefaultBundle=!1;d(mxResources.getDefaultBundle(RESOURCE_BASE,mxLanguage)|| -mxResources.getSpecialBundle(RESOURCE_BASE,mxLanguage))}var g=null;EditorUi.enableLogging&&(window.onerror=function(a,b,c,d,f){try{if(a!=g&&(null==a||null==b||-1==a.indexOf("Script error")&&-1==a.indexOf("extension"))&&null!=a&&0>a.indexOf("DocumentClosedError")){g=a;var e=new Image,h=0<=a.indexOf("NetworkError")||0<=a.indexOf("SecurityError")||0<=a.indexOf("NS_ERROR_FAILURE")||0<=a.indexOf("out of memory")?"CONFIG":"SEVERE";e.src=(null!=window.DRAWIO_LOG_URL?window.DRAWIO_LOG_URL:"")+"/log?severity="+ -h+"&v="+encodeURIComponent(EditorUi.VERSION)+"&msg=clientError:"+encodeURIComponent(a)+":url:"+encodeURIComponent(window.location.href)+":lnum:"+encodeURIComponent(c)+(null!=d?":colno:"+encodeURIComponent(d):"")+(null!=f&&null!=f.stack?"&stack="+encodeURIComponent(f.stack):"")}}catch(x){}});if(null!=window.mxscript){if("1"==urlParams.offline||"1"==urlParams.appcache){mxscript("js/shapes.min.js");mxscript("js/stencils.min.js");mxscript("js/extensions.min.js");var k=document.createElement("iframe"); -k.setAttribute("width","0");k.setAttribute("height","0");k.setAttribute("src","offline.html");document.body.appendChild(k)}if("0"!=urlParams.plugins&&"1"!=urlParams.offline){var k=null!=mxSettings.settings?mxSettings.getPlugins():null,l={},p=urlParams.p;App.initPluginCallback();if(null!=p){var n="";"1"==urlParams.drawdev&&(n=document.location.protocol+"//drawhost.jgraph.com/");for(var b=p.split(";"),p=0;p<b.length;p++){var f=App.pluginRegistry[b[p]];null!=f&&null==l[f]?(l[f]=!0,mxscript(n+f)):null!= -window.console&&console.log("Unknown plugin:",b[p])}}else"0"==urlParams.chrome||EditorUi.isElectronApp||mxscript(App.FOOTER_PLUGIN_URL,null,null,null,mxClient.IS_SVG);if(null!=k&&0<k.length&&"0"!=urlParams.plugins){n=window.location.protocol+"//"+window.location.host;b=!0;for(p=0;p<k.length&&b;p++)"/"!=k[p].charAt(0)&&k[p].substring(0,n.length)!=n&&(b=!1);if(b||mxUtils.confirm(mxResources.replacePlaceholders("The page has requested to load the following plugin(s):\n \n {1}\n \n Would you like to load these plugin(s) now?\n \n NOTE : Only allow plugins to run if you fully understand the security implications of doing so.\n", -[k.join("\n")]).replace(/\\n/g,"\n")))for(p=0;p<k.length;p++)try{null==l[k[p]]&&(l[f]=!0,mxscript(k[p]))}catch(q){}}}"function"===typeof window.DriveClient&&"undefined"===typeof gapi&&("1"!=urlParams.embed&&"0"!=urlParams.gapi||"1"==urlParams.embed&&"1"==urlParams.gapi)&&isSvgBrowser&&isLocalStorage&&(null==document.documentMode||10<=document.documentMode)?mxscript("https://apis.google.com/js/api.js?onload=DrawGapiClientCallback",null,null,null,mxClient.IS_SVG):"undefined"===typeof window.gapi&&(window.DriveClient= -null)}"0"!=urlParams.math&&Editor.initMath();if("1"==urlParams.configure){var h=window.opener||window.parent,t=function(a){if(a.source==h)try{var b=JSON.parse(a.data);null!=b&&"configure"==b.action&&(mxEvent.removeListener(window,"message",t),Editor.configure(b.config,!0),mxSettings.load(),c())}catch(w){null!=window.console&&console.log("Error in configuration: "+w)}};mxEvent.addListener(window,"message",t);h.postMessage(JSON.stringify({event:"load"}),"*")}else c()};mxUtils.extend(App,EditorUi); +mxResources.getSpecialBundle(RESOURCE_BASE,mxLanguage))}var g=Editor.guid(),k=null;EditorUi.enableLogging&&(window.onerror=function(a,b,c,d,f){try{if(a!=k&&(null==a||null==b||-1==a.indexOf("Script error")&&-1==a.indexOf("extension"))&&null!=a&&0>a.indexOf("DocumentClosedError")){k=a;var e=0<=a.indexOf("NetworkError")||0<=a.indexOf("SecurityError")||0<=a.indexOf("NS_ERROR_FAILURE")||0<=a.indexOf("out of memory")?"CONFIG":"SEVERE",m=null!=window.DRAWIO_LOG_URL?window.DRAWIO_LOG_URL:"";(new Image).src= +m+"/log?severity="+e+"&v="+encodeURIComponent(EditorUi.VERSION)+"&msg=clientError:"+encodeURIComponent(a)+":url:"+encodeURIComponent(window.location.href)+":lnum:"+encodeURIComponent(c)+(null!=d?":colno:"+encodeURIComponent(d):"")+(null!=f&&null!=f.stack?"&stack="+encodeURIComponent(f.stack):"")+"&sid="+g}}catch(C){}});if(null!=window.mxscript){if("1"==urlParams.offline||"1"==urlParams.appcache){mxscript("js/shapes.min.js");mxscript("js/stencils.min.js");mxscript("js/extensions.min.js");var l=document.createElement("iframe"); +l.setAttribute("width","0");l.setAttribute("height","0");l.setAttribute("src","offline.html");document.body.appendChild(l)}if("0"!=urlParams.plugins&&"1"!=urlParams.offline){var l=null!=mxSettings.settings?mxSettings.getPlugins():null,p={},n=urlParams.p;App.initPluginCallback();if(null!=n){var b="";"1"==urlParams.drawdev&&(b=document.location.protocol+"//drawhost.jgraph.com/");for(var f=n.split(";"),n=0;n<f.length;n++){var h=App.pluginRegistry[f[n]];null!=h&&null==p[h]?(p[h]=!0,mxscript(b+h)):null!= +window.console&&console.log("Unknown plugin:",f[n])}}else"0"==urlParams.chrome||EditorUi.isElectronApp||mxscript(App.FOOTER_PLUGIN_URL,null,null,null,mxClient.IS_SVG);if(null!=l&&0<l.length&&"0"!=urlParams.plugins){b=window.location.protocol+"//"+window.location.host;f=!0;for(n=0;n<l.length&&f;n++)"/"!=l[n].charAt(0)&&l[n].substring(0,b.length)!=b&&(f=!1);if(f||mxUtils.confirm(mxResources.replacePlaceholders("The page has requested to load the following plugin(s):\n \n {1}\n \n Would you like to load these plugin(s) now?\n \n NOTE : Only allow plugins to run if you fully understand the security implications of doing so.\n", +[l.join("\n")]).replace(/\\n/g,"\n")))for(n=0;n<l.length;n++)try{null==p[l[n]]&&(p[h]=!0,mxscript(l[n]))}catch(u){}}}"function"===typeof window.DriveClient&&"undefined"===typeof gapi&&("1"!=urlParams.embed&&"0"!=urlParams.gapi||"1"==urlParams.embed&&"1"==urlParams.gapi)&&isSvgBrowser&&isLocalStorage&&(null==document.documentMode||10<=document.documentMode)?mxscript("https://apis.google.com/js/api.js?onload=DrawGapiClientCallback",null,null,null,mxClient.IS_SVG):"undefined"===typeof window.gapi&&(window.DriveClient= +null)}"0"!=urlParams.math&&Editor.initMath();if("1"==urlParams.configure){var t=window.opener||window.parent,q=function(a){if(a.source==t)try{var b=JSON.parse(a.data);null!=b&&"configure"==b.action&&(mxEvent.removeListener(window,"message",q),Editor.configure(b.config,!0),mxSettings.load(),c())}catch(y){null!=window.console&&console.log("Error in configuration: "+y)}};mxEvent.addListener(window,"message",q);t.postMessage(JSON.stringify({event:"load"}),"*")}else c()};mxUtils.extend(App,EditorUi); App.prototype.defaultUserPicture="https://lh3.googleusercontent.com/-HIzvXUy6QUY/AAAAAAAAAAI/AAAAAAAAAAA/giuR7PQyjEk/photo.jpg?sz=30";App.prototype.shareImage="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA2RpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDowOTgwMTE3NDA3MjA2ODExODhDNkFGMDBEQkQ0RTgwOSIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDoxMjU2NzdEMTcwRDIxMUUxQjc0MDkxRDhCNUQzOEFGRCIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDoxMjU2NzdEMDcwRDIxMUUxQjc0MDkxRDhCNUQzOEFGRCIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M1IFdpbmRvd3MiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDowNjgwMTE3NDA3MjA2ODExODcxRkM4MUY1OTFDMjQ5OCIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDowNzgwMTE3NDA3MjA2ODExODhDNkFGMDBEQkQ0RTgwOSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PrM/fs0AAADgSURBVHjaYmDAA/7//88MwgzkAKDGFiD+BsQ/QWxSNaf9RwN37twpI8WAS+gGfP78+RpQSoRYA36iG/D379+vQClNdLVMOMz4gi7w79+/n0CKg1gD9qELvH379hzIHGK9oA508ieY8//8+fO5rq4uFCilRKwL1JmYmNhhHEZGRiZ+fn6Q2meEbDYG4u3/cYCfP38uA7kOm0ZOIJ7zn0jw48ePPiDFhmzArv8kgi9fvuwB+w5qwH9ykjswbFSZyM4sEMDPBDTlL5BxkFSd7969OwZ2BZKYGhDzkmjOJ4AAAwBhpRqGnEFb8QAAAABJRU5ErkJggg=="; App.prototype.chevronUpImage=mxClient.IS_SVG?"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBNYWNpbnRvc2giIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NDg2NEE3NUY1MUVBMTFFM0I3MUVEMTc0N0YyOUI4QzEiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NDg2NEE3NjA1MUVBMTFFM0I3MUVEMTc0N0YyOUI4QzEiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo0ODY0QTc1RDUxRUExMUUzQjcxRUQxNzQ3RjI5QjhDMSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo0ODY0QTc1RTUxRUExMUUzQjcxRUQxNzQ3RjI5QjhDMSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Pg+qUokAAAAMUExURQAAANnZ2b+/v////5bgre4AAAAEdFJOU////wBAKqn0AAAAL0lEQVR42mJgRgMMRAswMKAKMDDARBjg8lARBoR6KImkH0wTbygT6YaS4DmAAAMAYPkClOEDDD0AAAAASUVORK5CYII=": IMAGE_PATH+"/chevron-up.png"; @@ -7929,11 +7934,11 @@ App.prototype.init=function(){EditorUi.prototype.init.apply(this,arguments);this if("1"!=urlParams.embed||"1"==urlParams.od){var a=mxUtils.bind(this,function(){"undefined"!==typeof OneDrive?(this.oneDrive=new OneDriveClient(this),this.oneDrive.addListener("userChanged",mxUtils.bind(this,function(){this.updateUserElement();this.restoreLibraries()})),this.fireEvent(new mxEventObject("clientLoaded","client",this.oneDrive))):null==window.DrawOneDriveClientCallback&&(window.DrawOneDriveClientCallback=a)});a()}if("1"!=urlParams.embed||"1"==urlParams.tr){var e=mxUtils.bind(this,function(){"undefined"!== typeof window.Trello?(this.trello=new TrelloClient(this),this.trello.addListener("userChanged",mxUtils.bind(this,function(){this.updateUserElement();this.restoreLibraries()})),this.fireEvent(new mxEventObject("clientLoaded","client",this.trello))):null==window.DrawTrelloClientCallback&&(window.DrawTrelloClientCallback=e)});e()}if("1"!=urlParams.embed||"1"==urlParams.gapi){var d=mxUtils.bind(this,function(){if("undefined"!==typeof gapi){var a=mxUtils.bind(this,function(){this.drive=new DriveClient(this); "420247213240"==this.drive.appId&&this.editor.addListener("fileLoaded",mxUtils.bind(this,function(){var a=this.getCurrentFile();null!=a&&a.constructor==DriveFile&&(a=document.getElementById("geFooterItem2"),null!=a&&(a.innerHTML='<a href="https://support.draw.io/display/DO/2014/11/27/Switching+application+in+Google+Drive" target="_blank" title="IMPORTANT NOTICE" >IMPORTANT NOTICE</a>'))}));this.drive.addListener("userChanged",mxUtils.bind(this,function(){this.updateUserElement();this.restoreLibraries(); -this.checkLicense()}));this.fireEvent(new mxEventObject("clientLoaded","client",this.drive))});null!=window.DrawGapiClientCallback?(gapi.load(("0"!=urlParams.picker?"picker,":"")+"auth:client,drive-realtime,drive-share",mxUtils.bind(this,function(c){null!=gapi.drive&&null!=gapi.drive.realtime&&gapi.client.load("drive","v2",mxUtils.bind(this,function(){this.defineCustomObjects();gapi.auth.init(mxUtils.bind(this,function(){null!=gapi.client.drive&&a()}))}))})),window.DrawGapiClientCallback=null):a()}else null== -window.DrawGapiClientCallback&&(window.DrawGapiClientCallback=d)});d()}if("1"!=urlParams.embed||"1"==urlParams.db){var c=mxUtils.bind(this,function(){"function"===typeof Dropbox&&"undefined"!==typeof Dropbox.choose?(window.DrawDropboxClientCallback=null,this.dropbox=new DropboxClient(this),this.dropbox.addListener("userChanged",mxUtils.bind(this,function(){this.updateUserElement();this.restoreLibraries()})),this.fireEvent(new mxEventObject("clientLoaded","client",this.dropbox))):null==window.DrawDropboxClientCallback&& -(window.DrawDropboxClientCallback=c)});c()}"1"!=urlParams.embed?(this.bg=this.createBackground(),document.body.appendChild(this.bg),this.diagramContainer.style.visibility="hidden",this.formatContainer.style.visibility="hidden",this.hsplit.style.display="none",this.sidebarContainer.style.display="none",this.sidebarFooterContainer.style.display="none","1"==urlParams.local?this.setMode(App.MODE_DEVICE):this.mode=App.mode):null!=this.menubar&&(this.menubar.container.style.paddingTop="0px");this.updateHeader(); -null!=this.menubar&&(this.buttonContainer=document.createElement("div"),this.buttonContainer.style.display="inline-block",this.buttonContainer.style.paddingRight="48px",this.buttonContainer.style.position="absolute",this.buttonContainer.style.right="0px",this.menubar.container.appendChild(this.buttonContainer));"atlas"==uiTheme&&null!=this.menubar&&(null!=this.toggleElement&&(this.toggleElement.click(),this.toggleElement.style.display="none"),this.icon=document.createElement("img"),this.icon.setAttribute("src", -IMAGE_PATH+"/logo-flat-small.png"),this.icon.setAttribute("title",mxResources.get("draw.io")),this.icon.style.paddingTop="11px",this.icon.style.marginLeft="4px",this.icon.style.marginRight="6px",mxClient.IS_QUIRKS&&(this.icon.style.marginTop="12px"),this.menubar.container.insertBefore(this.icon,this.menubar.container.firstChild))}; +this.checkLicense()}));this.fireEvent(new mxEventObject("clientLoaded","client",this.drive))});null!=window.DrawGapiClientCallback?(gapi.load(("0"!=urlParams.picker?"picker,":"")+"auth:"+App.GOOGLE_APIS,mxUtils.bind(this,function(c){null!=gapi.client&&gapi.client.load("drive","v2",mxUtils.bind(this,function(){this.defineCustomObjects();gapi.auth.init(mxUtils.bind(this,function(){null!=gapi.client.drive&&a()}))}))})),window.DrawGapiClientCallback=null):a()}else null==window.DrawGapiClientCallback&& +(window.DrawGapiClientCallback=d)});d()}if("1"!=urlParams.embed||"1"==urlParams.db){var c=mxUtils.bind(this,function(){"function"===typeof Dropbox&&"undefined"!==typeof Dropbox.choose?(window.DrawDropboxClientCallback=null,this.dropbox=new DropboxClient(this),this.dropbox.addListener("userChanged",mxUtils.bind(this,function(){this.updateUserElement();this.restoreLibraries()})),this.fireEvent(new mxEventObject("clientLoaded","client",this.dropbox))):null==window.DrawDropboxClientCallback&&(window.DrawDropboxClientCallback= +c)});c()}"1"!=urlParams.embed?(this.bg=this.createBackground(),document.body.appendChild(this.bg),this.diagramContainer.style.visibility="hidden",this.formatContainer.style.visibility="hidden",this.hsplit.style.display="none",this.sidebarContainer.style.display="none",this.sidebarFooterContainer.style.display="none","1"==urlParams.local?this.setMode(App.MODE_DEVICE):this.mode=App.mode):null!=this.menubar&&(this.menubar.container.style.paddingTop="0px");this.updateHeader();null!=this.menubar&&(this.buttonContainer= +document.createElement("div"),this.buttonContainer.style.display="inline-block",this.buttonContainer.style.paddingRight="48px",this.buttonContainer.style.position="absolute",this.buttonContainer.style.right="0px",this.menubar.container.appendChild(this.buttonContainer));"atlas"==uiTheme&&null!=this.menubar&&(null!=this.toggleElement&&(this.toggleElement.click(),this.toggleElement.style.display="none"),this.icon=document.createElement("img"),this.icon.setAttribute("src",IMAGE_PATH+"/logo-flat-small.png"), +this.icon.setAttribute("title",mxResources.get("draw.io")),this.icon.style.paddingTop="11px",this.icon.style.marginLeft="4px",this.icon.style.marginRight="6px",mxClient.IS_QUIRKS&&(this.icon.style.marginTop="12px"),this.menubar.container.insertBefore(this.icon,this.menubar.container.firstChild))}; App.prototype.isDriveDomain=function(){return"0"!=urlParams.drive&&("test.draw.io"==window.location.hostname||"cdn.draw.io"==window.location.hostname||"www.draw.io"==window.location.hostname||"drive.draw.io"==window.location.hostname||"jgraph.github.io"==window.location.hostname)};App.prototype.isLegacyDriveDomain=function(){return 0==urlParams.drive||"legacy.draw.io"==window.location.hostname}; App.prototype.checkLicense=function(){var a=this.drive.getUser(),e=("1"==urlParams.dev?urlParams.lic:null)||(null!=a?a.email:null);if(!this.isOffline()&&!this.editor.chromeless&&null!=e){var d=e.lastIndexOf("@"),c=e;0<=d&&(c=e.substring(d+1),e=this.crc32(e.substring(0,d))+"@"+c);mxUtils.post("/license","domain="+encodeURIComponent(c)+"&email="+encodeURIComponent(e)+"&ds="+encodeURIComponent(a.displayName)+"&lc="+encodeURIComponent(a.locale)+"&ts="+(new Date).getTime(),mxUtils.bind(this,function(a){try{if(200<= a.getStatus()&&299>=a.getStatus()){var d=a.getText();if(0<d.length){var e=JSON.parse(d);null!=e&&this.handleLicense(e,c)}}}catch(p){}}))}}; @@ -7948,17 +7953,19 @@ App.prototype.updateDocumentTitle=function(){if(!this.editor.graph.isLightboxVie App.prototype.getThumbnail=function(a,e){var d=!1;try{null==this.thumbImageCache&&(this.thumbImageCache={});var c=this.editor.graph;if(null!=this.pages&&this.currentPage!=this.pages[0]){var c=this.createTemporaryGraph(c.getStylesheet()),g=c.getGlobalVariable,k=this.pages[0];c.getGlobalVariable=function(a){return"page"==a?k.getName():"pagenumber"==a?1:g.apply(this,arguments)};document.body.appendChild(c.container);c.model.setRoot(k.root)}if(mxClient.IS_CHROMEAPP||!c.mathEnabled&&this.useCanvasForExport)this.exportToCanvas(mxUtils.bind(this, function(a){c!=this.editor.graph&&c.container.parentNode.removeChild(c.container);e(a)}),a,this.thumbImageCache,"#ffffff",function(){e()},null,null,null,null,null,null,c),d=!0;else if(this.canvasSupported&&null!=this.getCurrentFile()){var l=document.createElement("canvas"),p=c.getGraphBounds(),n=a/p.width,n=Math.min(1,Math.min(3*a/(4*p.height),n)),b=Math.floor(p.x),f=Math.floor(p.y);l.setAttribute("width",Math.ceil(n*(p.width+4)));l.setAttribute("height",Math.ceil(n*(p.height+4)));var h=l.getContext("2d"); h.scale(n,n);h.translate(-b,-f);var t=c.background;if(null==t||""==t||t==mxConstants.NONE)t="#ffffff";h.save();h.fillStyle=t;h.fillRect(b,f,Math.ceil(p.width+4),Math.ceil(p.height+4));h.restore();var q=new mxJsCanvas(l),u=new mxAsyncCanvas(this.thumbImageCache);q.images=this.thumbImageCache.images;var w=new mxImageExport;w.drawShape=function(a,b){a.shape instanceof mxShape&&a.shape.checkBounds()&&(b.save(),b.translate(.5,.5),a.shape.paint(b),b.translate(-.5,-.5),b.restore())};w.drawText=function(a, -b){};w.drawState(c.getView().getState(c.model.root),u);u.finish(mxUtils.bind(this,function(){w.drawState(c.getView().getState(c.model.root),q);c!=this.editor.graph&&c.container.parentNode.removeChild(c.container);e(l)}));d=!0}}catch(z){c!=this.editor.graph&&c.container.parentNode.removeChild(c.container)}return d}; +b){};w.drawState(c.getView().getState(c.model.root),u);u.finish(mxUtils.bind(this,function(){w.drawState(c.getView().getState(c.model.root),q);c!=this.editor.graph&&c.container.parentNode.removeChild(c.container);e(l)}));d=!0}}catch(y){c!=this.editor.graph&&c.container.parentNode.removeChild(c.container)}return d}; App.prototype.createBackground=function(){var a=this.createDiv("background");a.style.position="absolute";a.style.background="white";a.style.left="0px";a.style.top="0px";a.style.bottom="0px";a.style.right="0px";mxUtils.setOpacity(a,100);mxClient.IS_QUIRKS&&new mxDivResizer(a);return a}; (function(){var a=EditorUi.prototype.setMode;App.prototype.setMode=function(e,d){a.apply(this,arguments);null!=this.mode&&(Editor.useLocalStorage=this.mode==App.MODE_BROWSER);if(d)if(isLocalStorage)localStorage.setItem(".mode",e);else if("undefined"!=typeof Storage){var c=new Date;c.setYear(c.getFullYear()+1);document.cookie="MODE="+e+"; expires="+c.toUTCString()}null!=this.appIcon&&(c=this.getCurrentFile(),e=null!=c?c.getMode():null,e==App.MODE_GOOGLE?(this.appIcon.setAttribute("title",mxResources.get("openIt", [mxResources.get("googleDrive")])),this.appIcon.style.cursor="pointer"):e==App.MODE_DROPBOX?(this.appIcon.setAttribute("title",mxResources.get("openIt",[mxResources.get("dropbox")])),this.appIcon.style.cursor="pointer"):e==App.MODE_ONEDRIVE?(this.appIcon.setAttribute("title",mxResources.get("openIt",[mxResources.get("oneDrive")])),this.appIcon.style.cursor="pointer"):(this.appIcon.removeAttribute("title"),this.appIcon.style.cursor="default"))}})(); -App.prototype.appIconClicked=function(a){if(mxEvent.isAltDown(a))this.showSplash(!0);else{var e=this.getCurrentFile(),d=null!=e?e.getMode():null;d==App.MODE_GOOGLE?null!=e.desc&&0<e.desc.parents.length?this.openLink("https://drive.google.com/drive/folders/"+e.desc.parents[0].id):this.openLink("https://drive.google.com/?authuser=0"):d==App.MODE_DROPBOX?this.openLink("https://www.dropbox.com/"):d==App.MODE_ONEDRIVE?this.openLink("https://onedrive.live.com/"):d==App.MODE_TRELLO?this.openLink("https://trello.com/"): -d==App.MODE_GITHUB&&(null!=e&&e.constructor==GitHubFile?this.openLink(e.meta.html_url):this.openLink("https://github.com/"))}mxEvent.consume(a)};App.prototype.clearMode=function(){if(isLocalStorage)localStorage.removeItem(".mode");else if("undefined"!=typeof Storage){var a=new Date;a.setYear(a.getFullYear()-1);document.cookie="MODE=; expires="+a.toUTCString()}};App.prototype.getDiagramId=function(){var a=window.location.hash;null!=a&&0<a.length&&(a=a.substring(1));return a}; +App.prototype.appIconClicked=function(a){if(mxEvent.isAltDown(a))this.showSplash(!0);else{var e=this.getCurrentFile(),d=null!=e?e.getMode():null;d==App.MODE_GOOGLE?null!=e.desc&&null!=e.desc.parents&&0<e.desc.parents.length?this.openLink("https://drive.google.com/drive/folders/"+e.desc.parents[0].id):this.openLink("https://drive.google.com/?authuser=0"):d==App.MODE_DROPBOX?this.openLink("https://www.dropbox.com/"):d==App.MODE_ONEDRIVE?this.openLink("https://onedrive.live.com/"):d==App.MODE_TRELLO? +this.openLink("https://trello.com/"):d==App.MODE_GITHUB&&(null!=e&&e.constructor==GitHubFile?this.openLink(e.meta.html_url):this.openLink("https://github.com/"))}mxEvent.consume(a)};App.prototype.clearMode=function(){if(isLocalStorage)localStorage.removeItem(".mode");else if("undefined"!=typeof Storage){var a=new Date;a.setYear(a.getFullYear()-1);document.cookie="MODE=; expires="+a.toUTCString()}}; +App.prototype.getDiagramId=function(){var a=window.location.hash;null!=a&&0<a.length&&(a=a.substring(1));return a}; App.prototype.open=function(){try{if(null!=window.opener){var a=urlParams.create;null!=a&&(a=decodeURIComponent(a));if(null!=a&&0<a.length&&"http://"!=a.substring(0,7)&&"https://"!=a.substring(0,8)){var e=mxUtils.parseXml(window.opener[a]);this.editor.setGraphXml(e.documentElement)}else null!=window.opener.openFile&&window.opener.openFile.setConsumer(mxUtils.bind(this,function(a,c,e){this.spinner.stop();null==c&&(c=urlParams.title,e=!0,c=null!=c?decodeURIComponent(c):this.defaultFilename);0<(this.useCanvasForExport? -1:".png"==c.substring(c.length-4))&&(c=c.substring(0,c.length-4)+".xml");this.fileLoaded(mxClient.IS_IOS?new StorageFile(this,a,c):new LocalFile(this,a,c,e))}))}}catch(d){}}; -App.prototype.loadGapi=function(a){"undefined"!==typeof gapi&&gapi.load(("0"!=urlParams.picker?"picker,":"")+"auth:client,drive-realtime,drive-share",mxUtils.bind(this,function(e){null==gapi.drive||null==gapi.drive.realtime?(this.drive=this.mode=null,a()):gapi.client.load("drive","v2",mxUtils.bind(this,function(){gapi.auth.init(mxUtils.bind(this,function(){null==gapi.client.drive&&(this.drive=this.mode=null);a()}))}))}))}; +App.prototype.loadGapi=function(a){"undefined"!==typeof gapi&&gapi.load(("0"!=urlParams.picker?"picker,":"")+"auth:"+App.GOOGLE_APIS,mxUtils.bind(this,function(e){null==gapi.client?(this.mode=this.drive=null,a()):gapi.client.load("drive","v2",mxUtils.bind(this,function(){gapi.auth.init(mxUtils.bind(this,function(){null==gapi.client.drive&&(this.mode=this.drive=null);a()}))}))}))}; App.prototype.load=function(){if("1"!=urlParams.embed){if(this.spinner.spin(document.body,mxResources.get("starting"))){try{this.stateArg=null!=urlParams.state&&null!=this.drive?JSON.parse(decodeURIComponent(urlParams.state)):null}catch(a){}this.editor.graph.setEnabled(null!=this.getCurrentFile());null!=window.location.hash&&0!=window.location.hash.length||null==this.drive||null==this.stateArg||null==this.stateArg.userId||this.drive.setUserId(this.stateArg.userId);null!=urlParams.fileId?(window.location.hash= "G"+urlParams.fileId,window.location.search=this.getSearch(["fileId"])):null==this.drive?(this.mode==App.MODE_GOOGLE&&(this.mode=null),this.start()):this.loadGapi(mxUtils.bind(this,function(){this.start()}))}}else this.restoreLibraries(),"1"==urlParams.gapi&&this.loadGapi(function(){})}; +App.prototype.showRefreshDialog=function(a,e){this.showingRefreshDialog||(this.showingRefreshDialog=!0,this.showError(a||mxResources.get("error"),e||mxResources.get("redirectToNewApp"),mxResources.get("refresh"),mxUtils.bind(this,function(){this.spinner.spin(document.body,mxResources.get("connecting"));this.editor.graph.setEnabled(!1);window.location.reload()})))}; App.prototype.showAlert=function(a){if(null!=a&&0<a.length){var e=document.createElement("div");e.className="geAlert";e.style.zIndex=2E9;e.style.left="50%";e.style.top="-100%";mxUtils.setPrefixedStyle(e.style,"transform","translate(-50%,0%)");mxUtils.setPrefixedStyle(e.style,"transition","all 1s ease");e.innerHTML=a;a=document.createElement("a");a.className="geAlertLink";a.style.textAlign="right";a.style.marginTop="20px";a.style.display="block";a.setAttribute("href","javascript:void(0);");a.setAttribute("title", mxResources.get("close"));a.innerHTML=mxResources.get("close");e.appendChild(a);mxEvent.addListener(a,"click",function(a){null!=e.parentNode&&(e.parentNode.removeChild(e),mxEvent.consume(a))});document.body.appendChild(e);window.setTimeout(function(){e.style.top="30px"},10);window.setTimeout(function(){mxUtils.setPrefixedStyle(e.style,"transition","all 2s ease");e.style.opacity="0";window.setTimeout(function(){null!=e.parentNode&&e.parentNode.removeChild(e)},2E3)},15E3)}}; App.prototype.start=function(){this.bg.parentNode.removeChild(this.bg);this.restoreLibraries();this.spinner.stop();try{if("1"!=urlParams.client&&"1"!=urlParams.embed&&mxEvent.addListener(window,"hashchange",mxUtils.bind(this,function(a){try{var c=this.getDiagramId(),d=this.getCurrentFile();null!=d&&d.getHash()==c||this.loadFile(c,!0)}catch(p){null!=document.body&&this.handleError(p,mxResources.get("errorLoadingFile"),mxUtils.bind(this,function(){var a=this.getCurrentFile();window.location.hash=null!= @@ -8016,14 +8023,14 @@ App.prototype.getLibraryStorageHint=function(a){var e=a.getTitle();a.constructor mxResources.get("browser")+")":a.constructor==LocalLibrary&&(e+=" ("+mxResources.get("device")+")");return e}; App.prototype.restoreLibraries=function(){if(null!=this.sidebar){null==this.pendingLibraries&&(this.pendingLibraries={});var a=mxUtils.bind(this,function(a){mxSettings.removeCustomLibrary(a);delete this.pendingLibraries[a]}),e=mxUtils.bind(this,function(d,c){var e=0,k=[],l=mxUtils.bind(this,function(){if(0==e){if(null!=d)for(var a=d.length-1;0<=a;a--)null!=k[a]&&this.loadLibrary(k[a]);null!=c&&c()}});if(null!=d)for(var p=0;p<d.length;p++){var n=encodeURIComponent(decodeURIComponent(d[p]));mxUtils.bind(this, function(b,c){if(null!=b&&0<b.length&&null==this.pendingLibraries[b]&&null==this.sidebar.palettes[b]){e++;var d=mxUtils.bind(this,function(a){delete this.pendingLibraries[b];k[c]=a;e--;l()}),f=mxUtils.bind(this,function(){a(b);e--;l()});this.pendingLibraries[b]=!0;var g=b.substring(0,1);if("L"==g)(isLocalStorage||mxClient.IS_CHROMEAPP)&&window.setTimeout(mxUtils.bind(this,function(){try{var a=decodeURIComponent(b.substring(1));this.getLocalData(a,mxUtils.bind(this,function(b){".scratchpad"==a&&null== -b&&(b=this.emptyLibraryXml);null!=b?d(new StorageLibrary(this,b,a)):f()}))}catch(A){f()}}),0);else if("U"==g){var p=decodeURIComponent(b.substring(1));if(!this.isOffline()){g=p;this.isCorsEnabledForUrl(g)||(g="t="+(new Date).getTime(),g=PROXY_URL+"?url="+encodeURIComponent(p)+"&"+g);try{mxUtils.get(g,mxUtils.bind(this,function(a){if(200<=a.getStatus()&&299>=a.getStatus())try{d(new UrlLibrary(this,a.getText(),p))}catch(A){f()}else f()}),function(){f()})}catch(z){f()}}}else{var n=null;"G"==g?null!= +b&&(b=this.emptyLibraryXml);null!=b?d(new StorageLibrary(this,b,a)):f()}))}catch(A){f()}}),0);else if("U"==g){var p=decodeURIComponent(b.substring(1));if(!this.isOffline()){g=p;this.isCorsEnabledForUrl(g)||(g="t="+(new Date).getTime(),g=PROXY_URL+"?url="+encodeURIComponent(p)+"&"+g);try{mxUtils.get(g,mxUtils.bind(this,function(a){if(200<=a.getStatus()&&299>=a.getStatus())try{d(new UrlLibrary(this,a.getText(),p))}catch(A){f()}else f()}),function(){f()})}catch(y){f()}}}else{var n=null;"G"==g?null!= this.drive&&null!=this.drive.user&&(n=this.drive):"H"==g?null!=this.gitHub&&null!=this.gitHub.getUser()&&(n=this.gitHub):"T"==g?null!=this.trello&&this.trello.isAuthorized()&&(n=this.trello):"D"==g?null!=this.dropbox&&null!=this.dropbox.getUser()&&(n=this.dropbox):"W"==g&&null!=this.oneDrive&&null!=this.oneDrive.getUser()&&(n=this.oneDrive);null!=n?n.getLibrary(decodeURIComponent(b.substring(1)),mxUtils.bind(this,function(a){try{d(a)}catch(A){f()}}),function(a){f()}):(delete this.pendingLibraries[b], f())}}})(n,p)}l()});e(mxSettings.getCustomLibraries(),function(){e((urlParams.clibs||"").split(";"))})}}; App.prototype.updateButtonContainer=function(){if(null!=this.buttonContainer){var a=this.getCurrentFile();null!=a&&a.constructor==DriveFile?null==this.shareButton&&(this.shareButton=document.createElement("div"),this.shareButton.className="geBtn gePrimaryBtn",this.shareButton.style.display="inline-block",this.shareButton.style.padding="0 10px 0 10px",this.shareButton.style.marginTop="-4px",this.shareButton.style.height="28px",this.shareButton.style.lineHeight="28px",this.shareButton.style.minWidth= "0px",this.shareButton.style.cssFloat="right",a=document.createElement("img"),a.setAttribute("src",this.shareImage),a.setAttribute("align","absmiddle"),a.style.marginRight="4px",a.style.marginTop="-3px",this.shareButton.appendChild(a),mxUtils.write(this.shareButton,mxResources.get("share")),mxEvent.addListener(this.shareButton,"click",mxUtils.bind(this,function(){this.actions.get("share").funct()})),this.buttonContainer.appendChild(this.shareButton)):null!=this.shareButton&&(this.shareButton.parentNode.removeChild(this.shareButton), this.shareButton=null)}}; App.prototype.save=function(a,e){var d=this.getCurrentFile(),c=mxResources.get("saving");null!=d&&d.constructor==DriveFile&&(c=mxResources.get("createRevision"));if(null!=d&&this.spinner.spin(document.body,c)){this.editor.setStatus("");this.editor.graph.isEditing()&&this.editor.graph.stopEditing();var c=mxUtils.bind(this,function(a){this.spinner.stop();this.getCurrentFile()==d&&(d.isModified()?d.isAutosave()||d.addUnsavedStatus():this.editor.setStatus(mxUtils.htmlEntities(mxResources.get("allChangesSaved"))));null!= -e&&e()}),g=mxUtils.bind(this,function(a){this.handleError(a,null!=a?mxResources.get("errorSavingFile"):null)});a==d.getTitle()?d.save(!0,c,g):d.saveAs(a,c,g)}}; +e&&e()}),g=mxUtils.bind(this,function(a){this.getCurrentFile()==d&&d.isModified()&&d.addUnsavedStatus();this.handleError(a,null!=a?mxResources.get("errorSavingFile"):null)});a==d.getTitle()?d.save(!0,c,g):d.saveAs(a,c,g)}}; App.prototype.pickFolder=function(a,e,d){d=null!=d?d:!0;var c=this.spinner.pause();d&&a==App.MODE_GOOGLE&&null!=this.drive?this.drive.pickFolder(mxUtils.bind(this,function(a){c();if(a.action==google.picker.Action.PICKED){var d=null;null!=a.docs&&0<a.docs.length&&"folder"==a.docs[0].type&&(d=a.docs[0].id);e(d)}})):d&&a==App.MODE_ONEDRIVE&&null!=this.oneDrive?this.oneDrive.pickFolder(mxUtils.bind(this,function(a){c();null!=a&&null!=a.value&&0<a.value.length&&(a=OneDriveFile.prototype.getIdOf(a.value[0]), e(a))})):d&&a==App.MODE_GITHUB&&null!=this.gitHub?this.gitHub.pickFolder(mxUtils.bind(this,function(a){c();e(a)})):d&&a==App.MODE_TRELLO&&null!=this.trello?this.trello.pickFolder(mxUtils.bind(this,function(a){c();e(a)})):EditorUi.prototype.pickFolder.apply(this,arguments)}; App.prototype.exportFile=function(a,e,d,c,g,k){g==App.MODE_DROPBOX?null!=this.dropbox&&this.spinner.spin(document.body,mxResources.get("saving"))&&this.dropbox.insertFile(e,c?this.base64ToBlob(a,d):a,mxUtils.bind(this,function(){this.spinner.stop()}),mxUtils.bind(this,function(a){this.spinner.stop();this.handleError(a)})):g==App.MODE_GOOGLE?null!=this.drive&&this.spinner.spin(document.body,mxResources.get("saving"))&&this.drive.insertFile(e,a,k,mxUtils.bind(this,function(a){this.spinner.stop()}), @@ -8072,100 +8079,100 @@ this.userElement.style.display="none"}else null!=this.userElement&&(this.userEle var d=document.createElement("img");d.setAttribute("border","0");d.setAttribute("valign","bottom");d.setAttribute("src",Editor.helpImage);c.appendChild(d);mxEvent.addGestureListeners(c,mxUtils.bind(this,function(c){null!=this.editorUi.menubar&&this.editorUi.menubar.hideMenu();this.editorUi.openLink(a);mxEvent.consume(c)}));return c};Menus.prototype.addLinkToItem=function(a,d){null!=a&&a.firstChild.nextSibling.appendChild(this.createHelpLink(d))};var e=Menus.prototype.init;Menus.prototype.init=function(){e.apply(this, arguments);var a=this.editorUi,d=a.editor.graph,k=mxUtils.bind(d,d.isEnabled),l=("1"!=urlParams.embed&&"0"!=urlParams.gapi||"1"==urlParams.embed&&"1"==urlParams.gapi)&&mxClient.IS_SVG&&isLocalStorage&&(null==document.documentMode||10<=document.documentMode),p=("1"!=urlParams.embed&&"0"!=urlParams.db||"1"==urlParams.embed&&"1"==urlParams.db)&&mxClient.IS_SVG&&(null==document.documentMode||9<document.documentMode),n=("www.draw.io"==window.location.hostname||"test.draw.io"==window.location.hostname|| "drive.draw.io"==window.location.hostname||"legacy.draw.io"==window.location.hostname)&&("1"!=urlParams.embed&&"0"!=urlParams.od||"1"==urlParams.embed&&"1"==urlParams.od)&&!navigator.userAgent.match(/(iPad|iPhone|iPod)/g)&&(0>navigator.userAgent.indexOf("MSIE")||10<=document.documentMode),b=("1"!=urlParams.embed&&"0"!=urlParams.tr||"1"==urlParams.embed&&"1"==urlParams.tr)&&mxClient.IS_SVG&&(null==document.documentMode||9<document.documentMode);mxClient.IS_SVG||a.isOffline()||((new Image).src=IMAGE_PATH+ -"/help.png");a.actions.addAction("new...",function(){var b=a.isOffline(),c=new NewDialog(a,b);a.showDialog(c.container,b?350:620,b?70:440,!0,!0,function(b){b&&null==a.getCurrentFile()&&a.showSplash()});c.init()});a.actions.put("exportSvg",new Action(mxResources.get("formatSvg")+"...",function(){a.showExportDialog(mxResources.get("formatSvg"),!0,mxResources.get("export"),"https://support.draw.io/display/DO/Exporting+Files",mxUtils.bind(this,function(b,c,d,e,f,g,h,k,l,p){b=parseInt(b);!isNaN(b)&&0< -b&&a.exportSvg(b/100,c,d,e,f,g,h,!k,l,p)}),!0,null,"svg")}));a.actions.put("exportXml",new Action(mxResources.get("formatXml")+"...",function(){var b=document.createElement("div");b.style.whiteSpace="nowrap";var c=null==a.pages||1>=a.pages.length,e=document.createElement("h3");mxUtils.write(e,mxResources.get("formatXml"));e.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:4px";b.appendChild(e);var f=a.addCheckbox(b,mxResources.get("selectionOnly"),!1,d.isSelectionEmpty()), -g=a.addCheckbox(b,mxResources.get(c?"compressed":"allPages"),!0);g.style.marginBottom="16px";mxEvent.addListener(f,"change",function(){f.checked?g.setAttribute("disabled","disabled"):g.removeAttribute("disabled")});b=new CustomDialog(a,b,mxUtils.bind(this,function(){a.downloadFile("xml",c?!g.checked:null,null,!f.checked,c?null:!g.checked)}),null,mxResources.get("export"));a.showDialog(b.container,300,146,!0,!0)}));a.actions.put("exportUrl",new Action(mxResources.get("url")+"...",function(){a.showPublishLinkDialog(mxResources.get("url"), -!0,null,null,function(b,c,d,e,f,g){b=new EmbedDialog(a,a.createLink(b,c,d,e,f,g,null,!0));a.showDialog(b.container,440,240,!0,!0);b.init()})}));a.actions.put("exportHtml",new Action(mxResources.get("formatHtmlEmbedded")+"...",function(){a.spinner.spin(document.body,mxResources.get("loading"))&&a.getPublicUrl(a.getCurrentFile(),function(b){a.spinner.stop();a.showHtmlDialog(mxResources.get("export"),null,b,function(b,c,d,e,f,m,g,h,k,l){a.createHtml(b,c,d,e,f,m,g,h,k,l,mxUtils.bind(this,function(b,c){var d= -a.getBaseFilename(g),e='\x3c!--[if IE]><meta http-equiv="X-UA-Compatible" content="IE=5,IE=9" ><![endif]--\x3e\n<!DOCTYPE html>\n<html>\n<head>\n<title>'+mxUtils.htmlEntities(d)+'</title>\n<meta charset="utf-8"/>\n</head>\n<body>'+b+"\n"+c+"\n</body>\n</html>";a.saveData(d+".html","html",e,"text/html")}))})})}));a.actions.put("exportPdf",new Action(mxResources.get("formatPdf")+"...",function(){if(a.isOffline()||a.printPdfExport)a.showDialog((new PrintDialog(a,mxResources.get("formatPdf"))).container, -360,null!=a.pages&&1<a.pages.length?420:360,!0,!0);else{var b=document.createElement("div");b.style.whiteSpace="nowrap";var c=document.createElement("h3");mxUtils.write(c,mxResources.get("formatPdf"));c.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:4px";b.appendChild(c);var e=a.addCheckbox(b,mxResources.get("selectionOnly"),!1,d.isSelectionEmpty()),f=a.addCheckbox(b,mxResources.get("crop"),!d.pageVisible||!a.pdfPageExport,!a.pdfPageExport);f.style.marginBottom="16px";a.pdfPageExport|| -mxEvent.addListener(e,"change",function(){e.checked?f.removeAttribute("disabled"):f.setAttribute("disabled","disabled")});b=new CustomDialog(a,b,mxUtils.bind(this,function(){a.downloadFile("pdf",null,null,!e.checked,null,!f.checked)}),null,mxResources.get("export"));a.showDialog(b.container,300,146,!0,!0)}}));a.actions.addAction("open...",function(){a.pickFile()});a.actions.addAction("close",function(){function b(){a.fileLoaded(null)}var c=a.getCurrentFile();null!=c&&c.isModified()?a.confirm(mxResources.get("allChangesLost"), +"/help.png");a.actions.addAction("new...",function(){var b=a.isOffline(),c=new NewDialog(a,b);a.showDialog(c.container,b?350:620,b?70:440,!0,!0,function(b){b&&null==a.getCurrentFile()&&a.showSplash()});c.init()});a.actions.put("exportSvg",new Action(mxResources.get("formatSvg")+"...",function(){a.showExportDialog(mxResources.get("formatSvg"),!0,mxResources.get("export"),"https://support.draw.io/display/DO/Exporting+Files",mxUtils.bind(this,function(b,c,d,f,e,g,h,k,l,p){b=parseInt(b);!isNaN(b)&&0< +b&&a.exportSvg(b/100,c,d,f,e,g,h,!k,l,p)}),!0,null,"svg")}));a.actions.put("exportXml",new Action(mxResources.get("formatXml")+"...",function(){var b=document.createElement("div");b.style.whiteSpace="nowrap";var c=null==a.pages||1>=a.pages.length,f=document.createElement("h3");mxUtils.write(f,mxResources.get("formatXml"));f.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:4px";b.appendChild(f);var e=a.addCheckbox(b,mxResources.get("selectionOnly"),!1,d.isSelectionEmpty()), +g=a.addCheckbox(b,mxResources.get(c?"compressed":"allPages"),!0);g.style.marginBottom="16px";mxEvent.addListener(e,"change",function(){e.checked?g.setAttribute("disabled","disabled"):g.removeAttribute("disabled")});b=new CustomDialog(a,b,mxUtils.bind(this,function(){a.downloadFile("xml",c?!g.checked:null,null,!e.checked,c?null:!g.checked)}),null,mxResources.get("export"));a.showDialog(b.container,300,146,!0,!0)}));a.actions.put("exportUrl",new Action(mxResources.get("url")+"...",function(){a.showPublishLinkDialog(mxResources.get("url"), +!0,null,null,function(b,c,d,f,e,g){b=new EmbedDialog(a,a.createLink(b,c,d,f,e,g,null,!0));a.showDialog(b.container,440,240,!0,!0);b.init()})}));a.actions.put("exportHtml",new Action(mxResources.get("formatHtmlEmbedded")+"...",function(){a.spinner.spin(document.body,mxResources.get("loading"))&&a.getPublicUrl(a.getCurrentFile(),function(b){a.spinner.stop();a.showHtmlDialog(mxResources.get("export"),null,b,function(b,c,d,f,e,m,g,h,k,l){a.createHtml(b,c,d,f,e,m,g,h,k,l,mxUtils.bind(this,function(b,c){var d= +a.getBaseFilename(g),f='\x3c!--[if IE]><meta http-equiv="X-UA-Compatible" content="IE=5,IE=9" ><![endif]--\x3e\n<!DOCTYPE html>\n<html>\n<head>\n<title>'+mxUtils.htmlEntities(d)+'</title>\n<meta charset="utf-8"/>\n</head>\n<body>'+b+"\n"+c+"\n</body>\n</html>";a.saveData(d+".html","html",f,"text/html")}))})})}));a.actions.put("exportPdf",new Action(mxResources.get("formatPdf")+"...",function(){if(a.isOffline()||a.printPdfExport)a.showDialog((new PrintDialog(a,mxResources.get("formatPdf"))).container, +360,null!=a.pages&&1<a.pages.length?420:360,!0,!0);else{var b=document.createElement("div");b.style.whiteSpace="nowrap";var c=document.createElement("h3");mxUtils.write(c,mxResources.get("formatPdf"));c.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:4px";b.appendChild(c);var f=a.addCheckbox(b,mxResources.get("selectionOnly"),!1,d.isSelectionEmpty()),e=a.addCheckbox(b,mxResources.get("crop"),!d.pageVisible||!a.pdfPageExport,!a.pdfPageExport);e.style.marginBottom="16px";a.pdfPageExport|| +mxEvent.addListener(f,"change",function(){f.checked?e.removeAttribute("disabled"):e.setAttribute("disabled","disabled")});b=new CustomDialog(a,b,mxUtils.bind(this,function(){a.downloadFile("pdf",null,null,!f.checked,null,!e.checked)}),null,mxResources.get("export"));a.showDialog(b.container,300,146,!0,!0)}}));a.actions.addAction("open...",function(){a.pickFile()});a.actions.addAction("close",function(){function b(){a.fileLoaded(null)}var c=a.getCurrentFile();null!=c&&c.isModified()?a.confirm(mxResources.get("allChangesLost"), null,b,mxResources.get("cancel"),mxResources.get("discardChanges")):b()});a.actions.addAction("editShape...",mxUtils.bind(this,function(){d.getSelectionCells();if(1==d.getSelectionCount()){var b=d.getSelectionCell(),c=d.view.getState(b);null!=c&&null!=c.shape&&null!=c.shape.stencil&&(b=new EditShapeDialog(a,b,mxResources.get("editShape")+":",630,400),a.showDialog(b.container,640,480,!0,!1),b.init())}}));a.actions.addAction("revisionHistory...",function(){var b=a.getCurrentFile();if(null==b||b.constructor!= -DriveFile&&b.constructor!=DropboxFile||null==a.drive&&b.constructor==DriveFile||null==a.dropbox&&b.constructor==DropboxFile)a.showError(mxResources.get("error"),mxResources.get("notAvailable"),mxResources.get("ok"));else if(a.spinner.spin(document.body,mxResources.get("loading")))if(b.constructor==DropboxFile){var c=a.dropbox.client.filesListRevisions({path:b.stat.path_lower,limit:100});c.then(mxUtils.bind(this,function(c){a.spinner.stop();try{for(var d=[],e=c.entries.length-1;0<=e;e--)(function(c){d.push({modifiedDate:c.client_modified, -fileSize:c.size,getXml:function(d,e){a.dropbox.readFile({path:b.stat.path_lower,rev:c.rev},d,e)},getUrl:function(){return a.getUrl(window.location.pathname+"?rev="+c.rev+"&chrome=0&edit=_blank")+window.location.hash}})})(c.entries[e]);var f=new RevisionDialog(a,d);a.showDialog(f.container,640,480,!0,!0);f.init()}catch(E){a.handleError(E)}}));c["catch"](function(b){a.spinner.stop();a.handleError(b)})}else a.drive.executeRequest(gapi.client.drive.revisions.list({fileId:b.getId()}),function(c){a.spinner.stop(); -for(var d=0;d<c.items.length;d++)(function(d){d.getXml=function(e,f){a.drive.executeRequest(gapi.client.drive.revisions.get({fileId:b.getId(),revisionId:c.items[c.items.length-1]===d?b.desc.headRevisionId:d.id}),function(b){a.drive.getXmlFile(b,null,function(a){e(a.getData())},function(a){f(a)})},function(a){f(a)})};d.getUrl=function(){return a.getUrl(window.location.pathname+"?rev="+d.id+"&chrome=0&edit=_blank")+window.location.hash}})(c.items[d]);d=new RevisionDialog(a,c.items);a.showDialog(d.container, -640,480,!0,!0);d.init()},function(b){a.spinner.stop();a.handleError(b)})});a.actions.addAction("createRevision",function(){a.actions.get("save").funct()},null,null,Editor.ctrlKey+"+S");a.actions.addAction("upload...",function(){var b=a.getCurrentFile();null!=b&&(window.drawdata=a.getFileData(),b=null!=b.getTitle()?b.getTitle():a.defaultFilename,a.openLink(window.location.protocol+"//"+window.location.host+"/?create=drawdata&"+(a.mode==App.MODE_DROPBOX?"mode=dropbox&":"")+"title="+encodeURIComponent(b), -null,!0))});if("undefined"!==typeof MathJax){var f=a.actions.addAction("mathematicalTypesetting",function(){var b=new ChangePageSetup(a);b.ignoreColor=!0;b.ignoreImage=!0;b.mathEnabled=!a.isMathEnabled();d.model.execute(b)});f.setToggleAction(!0);f.setSelectedCallback(function(){return a.isMathEnabled()});f.isEnabled=k}if(isLocalStorage||mxClient.IS_CHROMEAPP)f=a.actions.addAction("showStartScreen",function(){mxSettings.setShowStartScreen(!mxSettings.getShowStartScreen());mxSettings.save()}),f.setToggleAction(!0), -f.setSelectedCallback(function(){return mxSettings.getShowStartScreen()});var h=a.actions.addAction("autosave",function(){a.editor.setAutosave(!a.editor.autosave)});h.setToggleAction(!0);h.setSelectedCallback(function(){return h.isEnabled()&&a.editor.autosave});a.actions.addAction("editGeometry...",function(){for(var b=d.getSelectionCells(),c=[],e=0;e<b.length;e++)d.getModel().isVertex(b[e])&&c.push(b[e]);0<c.length&&(b=new EditGeometryDialog(a,c),a.showDialog(b.container,200,250,!0,!0),b.init())}, -null,null,Editor.ctrlKey+"+Shift+M");var t="rounded shadow dashed dashPattern fontFamily fontSize fontColor fontStyle align verticalAlign strokeColor strokeWidth fillColor gradientColor swimlaneFillColor textOpacity gradientDirection glass labelBackgroundColor labelBorderColor opacity spacing spacingTop spacingLeft spacingBottom spacingRight endFill endArrow endSize startStill startArrow startSize arcSize".split(" ");a.actions.addAction("copyStyle",function(){var b=d.view.getState(d.getSelectionCell()); -if(d.isEnabled()&&null!=b){a.copiedStyle=mxUtils.clone(b.style);for(var b=d.getModel().getStyle(b.cell),b=null!=b?b.split(";"):[],c=0;c<b.length;c++){var e=b[c],f=e.indexOf("=");if(0<=f){var g=e.substring(0,f),e=e.substring(f+1);null==a.copiedStyle[g]&&"none"==e&&(a.copiedStyle[g]="none")}}}},null,null,Editor.ctrlKey+"+Shift+C");a.actions.addAction("pasteStyle",function(){if(d.isEnabled()&&!d.isSelectionEmpty()&&null!=a.copiedStyle){d.getModel().beginUpdate();try{for(var b=d.getSelectionCells(),c= -0;c<b.length;c++)for(var e=d.view.getState(b[c]),f=0;f<t.length;f++){var g=t[f],h=a.copiedStyle[g];e.style[g]!=h&&d.setCellStyles(g,h,[b[c]])}}finally{d.getModel().endUpdate()}}},null,null,Editor.ctrlKey+"+Shift+V");a.actions.put("pageBackgroundImage",new Action(mxResources.get("backgroundImage")+"...",function(){if(!a.isOffline()){var b=new BackgroundImageDialog(a,function(b){a.setBackgroundImage(b)});a.showDialog(b.container,320,170,!0,!0);b.init()}}));a.actions.put("exportPng",new Action(mxResources.get("formatPng")+ -"...",function(){a.isExportToCanvas()?a.showExportDialog(mxResources.get("image"),!1,mxResources.get("export"),"https://support.draw.io/display/DO/Exporting+Files",mxUtils.bind(this,function(b,c,d,e,f,g,h,k,l){b=parseInt(b);!isNaN(b)&&0<b&&a.exportImage(b/100,c,d,e,f,h,!k,l)}),!0,!1,"png"):a.isOffline()||mxClient.IS_IOS&&navigator.standalone||a.showRemoteExportDialog(mxResources.get("export"),null,mxUtils.bind(this,function(b,c,d){a.downloadFile(c?"xmlpng":"png",null,null,b,null,null,d)}))}));a.actions.put("exportJpg", -new Action(mxResources.get("formatJpg")+"...",function(){a.isExportToCanvas()?a.showExportDialog(mxResources.get("image"),!1,mxResources.get("export"),"https://support.draw.io/display/DO/Exporting+Files",mxUtils.bind(this,function(b,c,d,e,f,g,h,k,l){b=parseInt(b);!isNaN(b)&&0<b&&a.exportImage(b/100,!1,d,e,!1,h,!k,!1,"jpeg")}),!0,!1,"jpeg"):a.isOffline()||mxClient.IS_IOS&&navigator.standalone||a.showRemoteExportDialog(mxResources.get("export"),null,mxUtils.bind(this,function(b,c){a.downloadFile("jpeg", -null,null,b)}),!0)}));f=a.actions.put("shadowVisible",new Action(mxResources.get("shadow"),function(){d.setShadowVisible(!d.shadowVisible)}));f.setToggleAction(!0);f.setSelectedCallback(function(){return d.shadowVisible});var q=!1;a.actions.put("about",new Action(mxResources.get("aboutDrawio")+"...",function(){q||(a.showDialog((new AboutDialog(a)).container,220,300,!0,!0,function(){q=!1}),q=!0)},null,null,"F1"));a.actions.addAction("userManual...",function(){a.openLink("https://support.draw.io/display/DO/Draw.io+Online+User+Manual")}); -a.actions.addAction("support...",function(){a.openLink("https://about.draw.io/support/")});a.actions.addAction("exportOptionsDisabled...",function(){a.handleError({message:mxResources.get("exportOptionsDisabledDetails")},mxResources.get("exportOptionsDisabled"))});a.actions.addAction("keyboardShortcuts...",function(){mxClient.IS_CHROMEAPP||EditorUi.isElectronApp?a.openLink("https://www.draw.io/shortcuts.svg"):mxClient.IS_SVG?a.openLink("shortcuts.svg"):a.openLink("https://www.draw.io/?lightbox=1#Uhttps%3A%2F%2Fwww.draw.io%2Fshortcuts.svg")}); -a.actions.addAction("feedback...",function(){var b=new FeedbackDialog(a);a.showDialog(b.container,610,360,!0,!0);b.init()});a.actions.addAction("quickStart...",function(){a.openLink("https://www.youtube.com/watch?v=Z0D96ZikMkc")});f=a.actions.addAction("tags...",mxUtils.bind(this,function(){null==this.tagsWindow?(this.tagsWindow=new TagsWindow(a,document.body.offsetWidth-380,230,300,120),this.tagsWindow.window.addListener("show",function(){a.fireEvent(new mxEventObject("tags"))}),this.tagsWindow.window.addListener("hide", -function(){a.fireEvent(new mxEventObject("tags"))}),this.tagsWindow.window.setVisible(!0),a.fireEvent(new mxEventObject("tags"))):this.tagsWindow.window.setVisible(!this.tagsWindow.window.isVisible())}));f.setToggleAction(!0);f.setSelectedCallback(mxUtils.bind(this,function(){return null!=this.tagsWindow&&this.tagsWindow.window.isVisible()}));f=a.actions.addAction("find...",mxUtils.bind(this,function(){null==this.findWindow?(this.findWindow=new FindWindow(a,document.body.offsetWidth-300,110,240,140), -this.findWindow.window.addListener("show",function(){a.fireEvent(new mxEventObject("find"))}),this.findWindow.window.addListener("hide",function(){a.fireEvent(new mxEventObject("find"))}),this.findWindow.window.setVisible(!0),a.fireEvent(new mxEventObject("find"))):this.findWindow.window.setVisible(!this.findWindow.window.isVisible())}));f.setToggleAction(!0);f.setSelectedCallback(mxUtils.bind(this,function(){return null!=this.findWindow&&this.findWindow.window.isVisible()}));a.actions.put("exportVsdx", -new Action(mxResources.get("formatVsdx")+" (beta)...",function(){a.exportVisio()}));if(mxClient.IS_CHROMEAPP||isLocalStorage&&"1"!=urlParams.offline)if(this.put("language",new Menu(mxUtils.bind(this,function(b,c){var d=mxUtils.bind(this,function(d){var e=""==d?mxResources.get("automatic"):mxLanguageMap[d],f=null;""!=e&&(f=b.addItem(e,null,mxUtils.bind(this,function(){mxSettings.setLanguage(d);mxSettings.save();mxClient.language=d;mxResources.loadDefaultBundle=!1;mxResources.add(RESOURCE_BASE);a.alert(mxResources.get("restartForChangeRequired"))}), -c),(d==mxLanguage||""==d&&null==mxLanguage)&&b.addCheckmark(f,Editor.checkmarkImage));return f});d("");b.addSeparator(c);for(var e in mxLanguageMap)d(e)}))),"atlas"!=uiTheme){var u=Menus.prototype.createMenubar;Menus.prototype.createMenubar=function(a){var b=u.apply(this,arguments);if(null!=b){var c=this.get("language");null!=c&&(c=b.addMenu("",c.funct),c.setAttribute("title",mxResources.get("language")),c.style.width="16px",c.style.paddingTop="2px",c.style.paddingLeft="4px",c.innerHTML='<div class="geIcon geSprite geSprite-globe"/>', -c.style.zIndex="1",c.style.position="absolute",c.style.top="2px",c.style.right="17px",c.style.display="block",mxClient.IS_VML||mxUtils.setOpacity(c,60),document.body.appendChild(c))}return b}}this.put("help",new Menu(mxUtils.bind(this,function(b,c){if(!mxClient.IS_CHROMEAPP&&a.isOffline())this.addMenuItems(b,["about"],c);else{var e=b.addItem("Search:",null,null,c,null,null,!1);e.style.backgroundColor="dark"==uiTheme?"#505759":"whiteSmoke";e.style.cursor="default";var f=document.createElement("input"); -f.setAttribute("type","text");f.setAttribute("size","25");f.style.marginLeft="8px";mxEvent.addListener(f,"keydown",mxUtils.bind(this,function(a){var b=mxUtils.trim(f.value);13==a.keyCode&&0<b.length?(this.editorUi.openLink("https://desk.draw.io/support/search/solutions?term="+encodeURIComponent(b)),f.value="",this.editorUi.logEvent({category:"Help",action:"search",label:b}),null!=this.editorUi.menubar&&window.setTimeout(mxUtils.bind(this,function(){this.editorUi.menubar.hideMenu()}),0)):27==a.keyCode&& -(f.value="")}));e.firstChild.nextSibling.appendChild(f);mxEvent.addGestureListeners(f,function(a){document.activeElement!=f&&f.focus();mxEvent.consume(a)},function(a){mxEvent.consume(a)},function(a){mxEvent.consume(a)});window.setTimeout(function(){f.focus()},0);this.addMenuItems(b,["-","quickStart","userManual","keyboardShortcuts","-"],c);mxClient.IS_CHROMEAPP||this.addMenuItems(b,["feedback"],c);this.addMenuItems(b,["support","-"],c);a.isOffline()||EditorUi.isElectronApp||navigator.standalone|| -"1"==urlParams.embed||this.addMenuItems(b,["downloadDesktop"],c);navigator.standalone||"1"==urlParams.embed||this.addMenuItems(b,["useOffline"],c);this.addMenuItems(b,["-","about"],c)}"1"==urlParams.ruler&&(mxResources.parse("rulerInch=Ruler unit: Inches"),this.editorUi.actions.addAction("rulerInch",mxUtils.bind(this,function(){this.editorUi.vRuler.setUnit(mxRuler.prototype.INCHES);this.editorUi.hRuler.setUnit(mxRuler.prototype.INCHES);this.editorUi.vRuler.drawRuler(!0);this.editorUi.hRuler.drawRuler(!0)})), -mxResources.parse("rulerCM=Ruler unit: CMs"),this.editorUi.actions.addAction("rulerCM",mxUtils.bind(this,function(){this.editorUi.vRuler.setUnit(mxRuler.prototype.CENTIMETER);this.editorUi.hRuler.setUnit(mxRuler.prototype.CENTIMETER);this.editorUi.vRuler.drawRuler(!0);this.editorUi.hRuler.drawRuler(!0)})),mxResources.parse("rulerPixel=Ruler unit: Pixels"),this.editorUi.actions.addAction("rulerPixel",mxUtils.bind(this,function(){this.editorUi.vRuler.setUnit(mxRuler.prototype.PIXELS);this.editorUi.hRuler.setUnit(mxRuler.prototype.PIXELS); -this.editorUi.vRuler.drawRuler(!0);this.editorUi.hRuler.drawRuler(!0)})),this.addMenuItems(b,["-","rulerInch","rulerCM","rulerPixel"],c));"1"==urlParams.test&&(mxResources.parse("showBoundingBox=Show bounding box"),this.editorUi.actions.addAction("showBoundingBox",mxUtils.bind(this,function(){var a=d.getGraphBounds(),b=d.view.translate,e=d.view.scale;d.insertVertex(c,null,"",a.x/e-b.x,a.y/e-b.y,a.width/e,a.height/e,"fillColor=none;strokeColor=red;")})),mxResources.parse("createSidebarEntry=Create sidebar entry"), -this.editorUi.actions.addAction("createSidebarEntry",mxUtils.bind(this,function(){d.isSelectionEmpty()||(mxLog.show(),mxLog.debug("sb.createVertexTemplateFromData('"+d.compress(mxUtils.getXml(d.encodeCells(d.getSelectionCells())))+"', width, height, 'Title');"))})),this.addMenuItems(b,["-","createSidebarEntry","showBoundingBox"],c),mxResources.parse("testXmlImageExport=XML Image Export"),this.editorUi.actions.addAction("testXmlImageExport",mxUtils.bind(this,function(){var a=new mxImageExport,b=d.getGraphBounds(), -c=d.view.scale,e=mxUtils.createXmlDocument(),f=e.createElement("output");e.appendChild(f);e=new mxXmlCanvas2D(f);e.translate(Math.floor((1-b.x)/c),Math.floor((1-b.y)/c));e.scale(1/c);var g=0,h=e.save;e.save=function(){g++;h.apply(this,arguments)};var m=e.restore;e.restore=function(){g--;m.apply(this,arguments)};var k=a.drawShape;a.drawShape=function(a){mxLog.debug("entering shape",a,g);k.apply(this,arguments);mxLog.debug("leaving shape",a,g)};a.drawState(d.getView().getState(d.model.root),e);mxLog.show(); -mxLog.debug(mxUtils.getXml(f));mxLog.debug("stateCounter",g)})),this.addMenuItems(b,["testXmlImageExport"],c),mxResources.parse("testShowRtModel=Show RT model"),mxResources.parse("testDebugRtModel=Debug RT model"),mxResources.parse("testDownloadRtModel=Download RT model"),this.editorUi.actions.addAction("testShowRtModel",mxUtils.bind(this,function(){null!=this.editorUi.getCurrentFile()&&null!=this.editorUi.getCurrentFile().realtime&&(console.log("bytesUsed",this.editorUi.getCurrentFile().realtime.rtModel.bytesUsed), -console.log("root",this.editorUi.getCurrentFile().realtime.dumpRoot()),this.editorUi.getCurrentFile().realtime.check())})),this.editorUi.actions.addAction("testDebugRtModel",mxUtils.bind(this,function(){gapi.drive.realtime.debug()})),this.editorUi.actions.addAction("testDownloadRtModel",mxUtils.bind(this,function(){var b=this.editorUi.getCurrentFile();null!=b&&null!=b.realtime&&a.spinner.spin(document.body,mxResources.get("export"))&&(b=new mxXmlRequest("https://www.googleapis.com/drive/v2/files/"+ -b.getHash().substring(1)+"/realtime",null,"GET"),b.setRequestHeaders=function(a){mxXmlRequest.prototype.setRequestHeaders.apply(this,arguments);var b=gapi.auth.getToken().access_token;a.setRequestHeader("authorization","Bearer "+b)},b.send(function(b){a.spinner.stop();200<=b.getStatus()&&299>=b.getStatus()&&a.saveLocalFile(b.getText(),"realtime.txt","text/plain")}))})),null!=this.editorUi.getCurrentFile()&&null!=this.editorUi.getCurrentFile().realtime&&this.addMenuItems(b,["-","testShowRtModel","testDebugRtModel", -"testDownloadRtModel"],c),mxResources.parse("testShowConsole=Show Console"),this.editorUi.actions.addAction("testShowConsole",function(){mxLog.isVisible()?mxLog.window.fit():mxLog.show();mxLog.window.div.style.zIndex=mxPopupMenu.prototype.zIndex-1}),this.addMenuItems(b,["-","testShowConsole"]))})));a.actions.addAction("shapes...",function(){mxClient.IS_CHROMEAPP||!a.isOffline()?a.showDialog((new MoreShapesDialog(a,!0)).container,640,isLocalStorage?mxClient.IS_IOS?480:460:440,!0,!0):a.showDialog((new MoreShapesDialog(a, -!1)).container,360,isLocalStorage?mxClient.IS_IOS?300:280:260,!0,!0)});a.actions.addAction("createShape...",function(){a.getCurrentFile();if(d.isEnabled()){var b=new mxCell("",new mxGeometry(0,0,120,120),a.defaultCustomShapeStyle);b.vertex=!0;b=new EditShapeDialog(a,b,mxResources.get("editShape")+":",630,400);a.showDialog(b.container,640,480,!0,!1);b.init()}});a.actions.put("embedHtml",new Action(mxResources.get("html")+"...",function(){a.spinner.spin(document.body,mxResources.get("loading"))&&a.getPublicUrl(a.getCurrentFile(), -function(b){a.spinner.stop();a.showHtmlDialog(mxResources.get("create"),"https://desk.draw.io/support/solutions/articles/16000042542",b,function(b,c,d,e,f,g,h,m,k,l){a.createHtml(b,c,d,e,f,g,h,m,k,l,mxUtils.bind(this,function(b,c){var d=new EmbedDialog(a,b+"\n"+c,null,null,function(){var a=window.open(),d=a.document;"CSS1Compat"===document.compatMode&&d.writeln("<!DOCTYPE html>");d.writeln("<html>");d.writeln("<head><title>"+encodeURIComponent(mxResources.get("preview"))+'</title><meta charset="utf-8"></head>'); -d.writeln("<body>");d.writeln(b);var e=mxClient.IS_IE||mxClient.IS_EDGE||null!=document.documentMode;e&&d.writeln(c);d.writeln("</body>");d.writeln("</html>");d.close();if(!e){var f=a.document.createElement("div");f.marginLeft="26px";f.marginTop="26px";mxUtils.write(f,mxResources.get("updatingDocument"));e=a.document.createElement("img");e.setAttribute("src",window.location.protocol+"//"+window.location.hostname+"/"+IMAGE_PATH+"/spin.gif");e.style.marginLeft="6px";f.appendChild(e);a.document.body.insertBefore(f, -a.document.body.firstChild);window.setTimeout(function(){var a=document.createElement("script");a.type="text/javascript";a.src=/<script.*?src="(.*?)"/.exec(c)[1];d.body.appendChild(a);f.parentNode.removeChild(f)},20)}});a.showDialog(d.container,440,240,!0,!0);d.init()}))})})}));a.actions.put("liveImage",new Action("Live image...",function(){a.spinner.spin(document.body,mxResources.get("loading"))&&a.getPublicUrl(a.getCurrentFile(),function(b){a.spinner.stop();null!=b?(b=encodeURIComponent(b),b=new EmbedDialog(a, -EXPORT_URL+"?format=png&url="+b,0),a.showDialog(b.container,440,240,!0,!0),b.init()):a.handleError({message:mxResources.get("invalidPublicUrl")})})}));a.actions.put("embedImage",new Action(mxResources.get("image")+"...",function(){a.showEmbedImageDialog(function(b,c,d,e,f,g){a.spinner.spin(document.body,mxResources.get("loading"))&&a.createEmbedImage(b,c,d,e,f,g,function(b){a.spinner.stop();b=new EmbedDialog(a,b);a.showDialog(b.container,440,240,!0,!0);b.init()},function(b){a.spinner.stop();a.handleError(b)})}, -mxResources.get("image"),mxResources.get("retina"),a.isExportToCanvas())}));a.actions.put("embedSvg",new Action(mxResources.get("formatSvg")+"...",function(){a.showEmbedImageDialog(function(b,c,d,e,f,g){a.spinner.spin(document.body,mxResources.get("loading"))&&a.createEmbedSvg(b,c,d,e,f,g,function(b){a.spinner.stop();b=new EmbedDialog(a,b);a.showDialog(b.container,440,240,!0,!0);b.init()},function(b){a.spinner.stop();a.handleError(b)})},mxResources.get("formatSvg"),mxResources.get("image"),!0,"https://desk.draw.io/support/solutions/articles/16000042548")})); -a.actions.put("embedIframe",new Action(mxResources.get("iframe")+"...",function(){var b=d.getGraphBounds();a.showPublishLinkDialog(mxResources.get("iframe"),null,"100%",Math.ceil((b.y+b.height-d.view.translate.y)/d.view.scale)+2,function(b,c,d,e,f,g,h,m){a.spinner.spin(document.body,mxResources.get("loading"))&&a.getPublicUrl(a.getCurrentFile(),function(k){a.spinner.stop();k=new EmbedDialog(a,'<iframe frameborder="0" style="width:'+h+";height:"+m+';" src="'+a.createLink(b,c,d,e,f,g,k)+'"></iframe>'); -a.showDialog(k.container,440,240,!0,!0);k.init()})},!0)}));a.actions.put("publishLink",new Action(mxResources.get("link")+"...",function(){a.showPublishLinkDialog(null,null,null,null,function(b,c,d,e,f,g){a.spinner.spin(document.body,mxResources.get("loading"))&&a.getPublicUrl(a.getCurrentFile(),function(h){a.spinner.stop();h=new EmbedDialog(a,a.createLink(b,c,d,e,f,g,h));a.showDialog(h.container,440,240,!0,!0);h.init()})})}));a.actions.addAction("googleDocs...",function(){a.openLink("http://docsaddon.draw.io")}); -a.actions.addAction("googleSites...",function(){a.spinner.spin(document.body,mxResources.get("loading"))&&a.getPublicUrl(a.getCurrentFile(),function(b){a.spinner.stop();b=new GoogleSitesDialog(a,b);a.showDialog(b.container,420,256,!0,!0);b.init()})});if(isLocalStorage||mxClient.IS_CHROMEAPP)f=a.actions.addAction("scratchpad",function(){a.toggleScratchpad()}),f.setToggleAction(!0),f.setSelectedCallback(function(){return null!=a.scratchpad}),a.actions.addAction("plugins...",function(){a.showDialog((new PluginsDialog(a)).container, -360,170,!0,!1)});f=a.actions.addAction("search",function(){var b=a.sidebar.isEntryVisible("search");a.sidebar.showPalette("search",!b);isLocalStorage&&(mxSettings.settings.search=!b,mxSettings.save())});f.setToggleAction(!0);f.setSelectedCallback(function(){return a.sidebar.isEntryVisible("search")});"1"==urlParams.embed&&(a.actions.get("save").funct=function(b){d.isEditing()&&d.stopEditing();var c="0"!=urlParams.pages||null!=a.pages&&1<a.pages.length?a.getFileData(!0):mxUtils.getXml(a.editor.getGraphXml()); -if("json"==urlParams.proto){var e=a.createLoadMessage("save");e.xml=c;b&&(e.exit=!0);c=JSON.stringify(e)}(window.opener||window.parent).postMessage(c,"*");"0"!=urlParams.modified&&"1"!=urlParams.keepmodified&&(a.editor.modified=!1,a.editor.setStatus(""));null!=a.getCurrentFile()&&a.saveFile()},a.actions.addAction("saveAndExit",function(){a.actions.get("save").funct(!0)}),a.actions.addAction("exit",function(){var b=function(){a.editor.modified=!1;var b="json"==urlParams.proto?JSON.stringify({event:"exit", -modified:a.editor.modified}):"";(window.opener||window.parent).postMessage(b,"*")};a.editor.modified?a.confirm(mxResources.get("allChangesLost"),null,b,mxResources.get("cancel"),mxResources.get("discardChanges")):b()}));this.put("exportAs",new Menu(mxUtils.bind(this,function(b,c){a.isExportToCanvas()?(this.addMenuItems(b,["exportPng"],c),a.jpgSupported&&this.addMenuItems(b,["exportJpg"],c)):a.isOffline()||mxClient.IS_IOS&&navigator.standalone||this.addMenuItems(b,["exportPng","exportJpg"],c);this.addMenuItems(b, -["exportSvg","-"],c);a.isOffline()||a.printPdfExport?this.addMenuItems(b,["exportPdf"],c):a.isOffline()||mxClient.IS_IOS&&navigator.standalone||this.addMenuItems(b,["exportPdf"],c);mxClient.IS_IE||"undefined"===typeof VsdxExport&&a.isOffline()||this.addMenuItems(b,["exportVsdx"],c);this.addMenuItems(b,["-","exportHtml","exportXml","exportUrl"],c);a.isOffline()||(b.addSeparator(c),this.addMenuItem(b,"export",c).firstChild.nextSibling.innerHTML=mxResources.get("advanced")+"...")})));this.editorUi.actions.addAction("chatWindowTitle...", -mxUtils.bind(this.editorUi,this.editorUi.toggleChat));this.put("importFrom",new Menu(function(c,e){function f(b){b.pickFile(function(c){a.spinner.spin(document.body,mxResources.get("loading"))&&b.getFile(c,function(b){var c=h(b.getTitle());/\.svg$/i.test(b.getTitle())&&!a.editor.isDataSvg(b.getData())&&(b.setData(a.createSvgDataUri(b.getData())),c="image/svg+xml");g(b.getData(),c,b.getTitle())},function(b){a.handleError(b,null!=b?mxResources.get("errorLoadingFile"):null)},b==a.drive)},!0)}var g=mxUtils.bind(this, -function(b,c,e){var f=d.view,g=d.getGraphBounds(),h=d.snap(Math.ceil(Math.max(0,g.x/f.scale-f.translate.x)+4*d.gridSize)),k=d.snap(Math.ceil(Math.max(0,(g.y+g.height)/f.scale-f.translate.y)+4*d.gridSize));"data:image/"==b.substring(0,11)?a.loadImage(b,mxUtils.bind(this,function(f){var g=!0,m=mxUtils.bind(this,function(){a.resizeImage(f,b,mxUtils.bind(this,function(f,m,l){f=g?Math.min(1,Math.min(a.maxImageSize/m,a.maxImageSize/l)):1;a.importFile(b,c,h,k,Math.round(m*f),Math.round(l*f),e,function(b){a.spinner.stop(); -d.setSelectionCells(b);d.scrollCellToVisible(d.getSelectionCell())})}),g)});b.length>a.resampleThreshold?a.confirmImageResize(function(a){g=a;m()}):m()}),mxUtils.bind(this,function(){a.handleError({message:mxResources.get("cannotOpenFile")})})):a.importFile(b,c,h,k,0,0,e,function(b){a.spinner.stop();d.setSelectionCells(b);d.scrollCellToVisible(d.getSelectionCell())})}),h=mxUtils.bind(this,function(a){var b="text/xml";/\.png$/i.test(a)?b="image/png":/\.jpe?g$/i.test(a)?b="image/jpg":/\.gif$/i.test(a)&& -(b="image/gif");return b});"undefined"!=typeof google&&"undefined"!=typeof google.picker&&(null!=a.drive?c.addItem(mxResources.get("googleDrive")+"...",null,function(){f(a.drive)},e):l&&c.addItem(mxResources.get("googleDrive")+" ("+mxResources.get("loading")+"...)",null,function(){},e,null,!1));null!=a.gitHub&&c.addItem(mxResources.get("github")+"...",null,function(){f(a.gitHub)},e);null!=a.dropbox?c.addItem(mxResources.get("dropbox")+"...",null,function(){f(a.dropbox)},e):p&&c.addItem(mxResources.get("dropbox")+ -" ("+mxResources.get("loading")+"...)",null,function(){},e,null,!1);null!=a.oneDrive?c.addItem(mxResources.get("oneDrive")+"...",null,function(){f(a.oneDrive)},e):n&&c.addItem(mxResources.get("oneDrive")+" ("+mxResources.get("loading")+"...)",null,function(){},e,null,!1);null!=a.trello?c.addItem(mxResources.get("trello")+"...",null,function(){f(a.trello)},e):b&&c.addItem(mxResources.get("trello")+" ("+mxResources.get("loading")+"...)",null,function(){},e,null,!1);c.addSeparator(e);isLocalStorage&& -"0"!=urlParams.browser&&c.addItem(mxResources.get("browser")+"...",null,function(){a.importLocalFile(!1)},e);mxClient.IS_IOS||c.addItem(mxResources.get("device")+"...",null,function(){a.importLocalFile(!0)},e);a.isOffline()||(c.addSeparator(e),c.addItem(mxResources.get("url")+"...",null,function(){var b=new FilenameDialog(a,"",mxResources.get("import"),function(b){if(null!=b&&0<b.length&&a.spinner.spin(document.body,mxResources.get("loading"))){var c=/(\.png)($|\?)/i.test(b)?"image/png":"text/xml"; -a.loadUrl(PROXY_URL+"?url="+encodeURIComponent(b),function(a){g(a,c,b)},function(){a.spinner.stop();a.handleError(null,mxResources.get("errorLoadingFile"))},"image/png"==c)}},mxResources.get("url"));a.showDialog(b.container,300,80,!0,!0);b.init()},e))})).isEnabled=k;this.put("theme",new Menu(mxUtils.bind(this,function(b,c){var d=mxSettings.getUi(),e=b.addItem(mxResources.get("automatic"),null,function(){mxSettings.setUi("");mxSettings.save();a.alert(mxResources.get("restartForChangeRequired"))},c); -"kennedy"!=d&&"atlas"!=d&&"dark"!=d&&"min"!=d&&b.addCheckmark(e,Editor.checkmarkImage);b.addSeparator(c);e=b.addItem(mxResources.get("kennedy"),null,function(){mxSettings.setUi("kennedy");mxSettings.save();a.alert(mxResources.get("restartForChangeRequired"))},c);"kennedy"==d&&b.addCheckmark(e,Editor.checkmarkImage);e=b.addItem(mxResources.get("minimal"),null,function(){mxSettings.setUi("min");mxSettings.save();a.alert(mxResources.get("restartForChangeRequired"))},c);"min"==d&&b.addCheckmark(e,Editor.checkmarkImage); -e=b.addItem(mxResources.get("atlas"),null,function(){mxSettings.setUi("atlas");mxSettings.save();a.alert(mxResources.get("restartForChangeRequired"))},c);"atlas"==d&&b.addCheckmark(e,Editor.checkmarkImage);e=b.addItem(mxResources.get("dark"),null,function(){mxSettings.setUi("dark");mxSettings.save();a.alert(mxResources.get("restartForChangeRequired"))},c);"dark"==d&&b.addCheckmark(e,Editor.checkmarkImage)})));f=this.editorUi.actions.addAction("rename...",mxUtils.bind(this,function(){var b=this.editorUi.getCurrentFile(); -if(null!=b){var c=null!=b.getTitle()?b.getTitle():this.editorUi.defaultFilename,c=new FilenameDialog(this.editorUi,c,mxResources.get("rename"),mxUtils.bind(this,function(a){null!=a&&0<a.length&&null!=b&&this.editorUi.spinner.spin(document.body,mxResources.get("renaming"))&&b.rename(a,mxUtils.bind(this,function(a){this.editorUi.spinner.stop()}),mxUtils.bind(this,function(a){this.editorUi.handleError(a,null!=a?mxResources.get("errorRenamingFile"):null)}))}),b.constructor==DriveFile||b.constructor== -StorageFile?mxResources.get("diagramName"):null,function(b){if(null!=b&&0<b.length)return!0;a.showError(mxResources.get("error"),mxResources.get("invalidName"),mxResources.get("ok"));return!1});this.editorUi.showDialog(c.container,300,80,!0,!0);c.init()}}));f.isEnabled=function(){return this.enabled&&k.apply(this,arguments)};f.visible="1"!=urlParams.embed;a.actions.addAction("makeCopy...",mxUtils.bind(this,function(){var b=a.getCurrentFile();if(null!=b){var c=null!=b.getTitle()?b.getTitle():a.defaultFilename, -d="",e=c.lastIndexOf(".");0<=e&&(d=c.substring(e),c=c.substring(0,e));c=mxResources.get("copyOf",[c])+d;b.constructor==DriveFile?(c=new CreateDialog(a,c,mxUtils.bind(this,function(c,d){"download"==d&&(d=App.MODE_GOOGLE);null!=c&&0<c.length&&(d==App.MODE_GOOGLE?a.spinner.spin(document.body,mxResources.get("saving"))&&b.save(!1,mxUtils.bind(this,function(){b.saveAs(c,mxUtils.bind(this,function(b){a.spinner.stop();var c=a.getUrl();window.openWindow(c+"#G"+b.id,null,mxUtils.bind(this,function(){window.location.hash= -"G"+b.id}))}),mxUtils.bind(this,function(b){a.handleError(b)}))}),mxUtils.bind(this,function(b){a.handleError(b)})):this.editorUi.createFile(c,this.editorUi.getFileData(!0),null,d))}),mxUtils.bind(this,function(){a.hideDialog()}),mxResources.get("makeCopy"),mxResources.get("create"),null,null,null,null,!0),a.showDialog(c.container,420,380,!0,!0),c.init()):a.editor.editAsNew(this.editorUi.getFileData(!0),c)}}));a.actions.addAction("moveToFolder...",mxUtils.bind(this,function(){var b=a.getCurrentFile(); -b.getMode()!=App.MODE_GOOGLE&&b.getMode()!=App.MODE_ONEDRIVE||a.pickFolder(b.getMode(),mxUtils.bind(this,function(c){a.spinner.spin(document.body,mxResources.get("moving"))&&b.move(c,mxUtils.bind(this,function(b){a.spinner.stop()}),mxUtils.bind(this,function(b){a.handleError(b)}))}))}));this.put("publish",new Menu(mxUtils.bind(this,function(a,b){this.addMenuItems(a,["publishLink"],b)})));a.actions.put("useOffline",new Action(mxResources.get("useOffline")+"...",function(){a.openLink("https://app.draw.io/")})); -a.actions.put("downloadDesktop",new Action(mxResources.get("downloadDesktop")+"...",function(){a.openLink("https://get.draw.io/")}));this.editorUi.actions.addAction("share...",mxUtils.bind(this,function(){var a=this.editorUi.getCurrentFile();null!=a&&this.editorUi.drive.showPermissions(a.getId())}));this.put("embed",new Menu(mxUtils.bind(this,function(b,c){"1"==urlParams.test&&this.addMenuItems(b,["liveImage","-"],c);this.addMenuItems(b,["embedImage","embedSvg","-","embedHtml"],c);navigator.standalone|| -a.isOffline()||this.addMenuItems(b,["embedIframe"],c);a.isOffline()||this.addMenuItems(b,["-","googleSites","googleDocs"],c)})));var w=function(b,c,d,e){("plantUml"!=e||EditorUi.enablePlantUml&&!a.isOffline())&&b.addItem(d,null,mxUtils.bind(this,function(){if("fromText"==e||"formatSql"==e||"plantUml"==e){var b=new ParseDialog(a,d,e);a.showDialog(b.container,620,420,!0,!1);a.dialog.container.style.overflow="auto"}else b=new CreateGraphDialog(a,d,e),a.showDialog(b.container,620,420,!0,!1);b.init()}), -c)},z=function(a,b,c,e){var f=d.isMouseInsertPoint()?d.getInsertPoint():d.getFreeInsertPoint();a=new mxCell(a,new mxGeometry(f.x,f.y,b,c),e);a.vertex=!0;d.getModel().beginUpdate();try{a=d.addCell(a),d.fireEvent(new mxEventObject("cellsInserted","cells",[a]))}finally{d.getModel().endUpdate()}d.scrollCellToVisible(a);d.setSelectionCell(a);d.container.focus();d.editAfterInsert&&d.startEditing(a);return a};a.actions.addAction("insertText",function(){d.isEnabled()&&!d.isCellLocked(d.getDefaultParent())&& -d.startEditingAtCell(z("Text",40,20,"text;html=1;resizable=0;autosize=1;align=center;verticalAlign=middle;points=[];fillColor=none;strokeColor=none;rounded=0;"))},null,null,Editor.ctrlKey+"+Shift+X").isEnabled=k;a.actions.addAction("insertRectangle",function(){d.isEnabled()&&!d.isCellLocked(d.getDefaultParent())&&z("",120,60,"whiteSpace=wrap;html=1;")},null,null,Editor.ctrlKey+"+K").isEnabled=k;a.actions.addAction("insertEllipse",function(){d.isEnabled()&&!d.isCellLocked(d.getDefaultParent())&&z("", -80,80,"ellipse;whiteSpace=wrap;html=1;")},null,null,Editor.ctrlKey+"+Shift+K").isEnabled=k;a.actions.addAction("insertRhombus",function(){d.isEnabled()&&!d.isCellLocked(d.getDefaultParent())&&z("",80,80,"rhombus;whiteSpace=wrap;html=1;")}).isEnabled=k;var A=mxUtils.bind(this,function(a,b,c){for(var d=0;d<c.length;d++)"-"==c[d]?a.addSeparator(b):w(a,b,mxResources.get(c[d])+"...",c[d])});this.put("insert",new Menu(mxUtils.bind(this,function(b,c){this.addMenuItems(b,"insertText insertRectangle - insertEllipse insertRhombus - insertLink insertImage".split(" "), -c);b.addSeparator(c);this.addSubmenu("insertLayout",b,c,mxResources.get("layout"));b.addSeparator(c);A(b,c,["fromText","plantUml","-","formatSql"]);b.addItem(mxResources.get("csv")+"...",null,function(){a.showImportCsvDialog()},c)})));this.put("insertLayout",new Menu(mxUtils.bind(this,function(a,b){A(a,b,"horizontalFlow verticalFlow - horizontalTree verticalTree radialTree - organic circle".split(" "))})));this.put("openRecent",new Menu(function(b,c){var d=a.getRecent();if(null!=d){for(var e=0;e< -d.length;e++)(function(d){var e=d.mode;e==App.MODE_GOOGLE?e="googleDrive":e==App.MODE_ONEDRIVE&&(e="oneDrive");b.addItem(d.title+" ("+mxResources.get(e)+")",null,function(){a.loadFile(d.id)},c)})(d[e]);b.addSeparator(c)}b.addItem(mxResources.get("reset"),null,function(){a.resetRecent()},c)}));this.put("openFrom",new Menu(function(c,d){null!=a.drive?c.addItem(mxResources.get("googleDrive")+"...",null,function(){a.pickFile(App.MODE_GOOGLE)},d):l&&c.addItem(mxResources.get("googleDrive")+" ("+mxResources.get("loading")+ -"...)",null,function(){},d,null,!1);null!=a.gitHub&&c.addItem(mxResources.get("github")+"...",null,function(){a.pickFile(App.MODE_GITHUB)},d);null!=a.dropbox?c.addItem(mxResources.get("dropbox")+"...",null,function(){a.pickFile(App.MODE_DROPBOX)},d):p&&c.addItem(mxResources.get("dropbox")+" ("+mxResources.get("loading")+"...)",null,function(){},d,null,!1);null!=a.oneDrive?c.addItem(mxResources.get("oneDrive")+"...",null,function(){a.pickFile(App.MODE_ONEDRIVE)},d):n&&c.addItem(mxResources.get("oneDrive")+ -" ("+mxResources.get("loading")+"...)",null,function(){},d,null,!1);null!=a.trello?c.addItem(mxResources.get("trello")+"...",null,function(){a.pickFile(App.MODE_TRELLO)},d):b&&c.addItem(mxResources.get("trello")+" ("+mxResources.get("loading")+"...)",null,function(){},d,null,!1);c.addSeparator(d);isLocalStorage&&"0"!=urlParams.browser&&c.addItem(mxResources.get("browser")+"...",null,function(){a.pickFile(App.MODE_BROWSER)},d);mxClient.IS_IOS||c.addItem(mxResources.get("device")+"...",null,function(){a.pickFile(App.MODE_DEVICE)}, -d);a.isOffline()||(c.addSeparator(d),c.addItem(mxResources.get("url")+"...",null,function(){var b=new FilenameDialog(a,"",mxResources.get("open"),function(b){null!=b&&0<b.length&&(null==a.getCurrentFile()?window.location.hash="#U"+encodeURIComponent(b):window.openWindow((mxClient.IS_CHROMEAPP?"https://www.draw.io/":"https://"+location.host+"/")+window.location.search+"#U"+encodeURIComponent(b)))},mxResources.get("url"));a.showDialog(b.container,300,80,!0,!0);b.init()},d))}));Editor.enableCustomLibraries&& -(this.put("newLibrary",new Menu(function(c,d){"undefined"!=typeof google&&"undefined"!=typeof google.picker&&(null!=a.drive?c.addItem(mxResources.get("googleDrive")+"...",null,function(){a.showLibraryDialog(null,null,null,null,App.MODE_GOOGLE)},d):l&&c.addItem(mxResources.get("googleDrive")+" ("+mxResources.get("loading")+"...)",null,function(){},d,null,!1));null!=a.gitHub&&c.addItem(mxResources.get("github")+"...",null,function(){a.showLibraryDialog(null,null,null,null,App.MODE_GITHUB)},d);null!= -a.dropbox?c.addItem(mxResources.get("dropbox")+"...",null,function(){a.showLibraryDialog(null,null,null,null,App.MODE_DROPBOX)},d):p&&c.addItem(mxResources.get("dropbox")+" ("+mxResources.get("loading")+"...)",null,function(){},d,null,!1);null!=a.oneDrive?c.addItem(mxResources.get("oneDrive")+"...",null,function(){a.showLibraryDialog(null,null,null,null,App.MODE_ONEDRIVE)},d):n&&c.addItem(mxResources.get("oneDrive")+" ("+mxResources.get("loading")+"...)",null,function(){},d,null,!1);null!=a.trello? -c.addItem(mxResources.get("trello")+"...",null,function(){a.showLibraryDialog(null,null,null,null,App.MODE_TRELLO)},d):b&&c.addItem(mxResources.get("trello")+" ("+mxResources.get("loading")+"...)",null,function(){},d,null,!1);c.addSeparator(d);isLocalStorage&&"0"!=urlParams.browser&&c.addItem(mxResources.get("browser")+"...",null,function(){a.showLibraryDialog(null,null,null,null,App.MODE_BROWSER)},d);mxClient.IS_IOS||c.addItem(mxResources.get("device")+"...",null,function(){a.showLibraryDialog(null, -null,null,null,App.MODE_DEVICE)},d)})),this.put("openLibraryFrom",new Menu(function(c,d){"undefined"!=typeof google&&"undefined"!=typeof google.picker&&(null!=a.drive?c.addItem(mxResources.get("googleDrive")+"...",null,function(){a.pickLibrary(App.MODE_GOOGLE)},d):l&&c.addItem(mxResources.get("googleDrive")+" ("+mxResources.get("loading")+"...)",null,function(){},d,null,!1));null!=a.gitHub&&c.addItem(mxResources.get("github")+"...",null,function(){a.pickLibrary(App.MODE_GITHUB)},d);null!=a.dropbox? -c.addItem(mxResources.get("dropbox")+"...",null,function(){a.pickLibrary(App.MODE_DROPBOX)},d):p&&c.addItem(mxResources.get("dropbox")+" ("+mxResources.get("loading")+"...)",null,function(){},d,null,!1);null!=a.oneDrive?c.addItem(mxResources.get("oneDrive")+"...",null,function(){a.pickLibrary(App.MODE_ONEDRIVE)},d):n&&c.addItem(mxResources.get("oneDrive")+" ("+mxResources.get("loading")+"...)",null,function(){},d,null,!1);null!=a.trello?c.addItem(mxResources.get("trello")+"...",null,function(){a.pickLibrary(App.MODE_TRELLO)}, -d):b&&c.addItem(mxResources.get("trello")+" ("+mxResources.get("loading")+"...)",null,function(){},d,null,!1);c.addSeparator(d);isLocalStorage&&"0"!=urlParams.browser&&c.addItem(mxResources.get("browser")+"...",null,function(){a.pickLibrary(App.MODE_BROWSER)},d);mxClient.IS_IOS||c.addItem(mxResources.get("device")+"...",null,function(){a.pickLibrary(App.MODE_DEVICE)},d);a.isOffline()||(c.addSeparator(d),c.addItem(mxResources.get("url")+"...",null,function(){var b=new FilenameDialog(a,"",mxResources.get("open"), -function(b){if(null!=b&&0<b.length&&a.spinner.spin(document.body,mxResources.get("loading"))){var c=b;a.isCorsEnabledForUrl(b)||(c=PROXY_URL+"?url="+encodeURIComponent(b));mxUtils.get(c,function(c){if(200<=c.getStatus()&&299>=c.getStatus()){a.spinner.stop();try{a.loadLibrary(new UrlLibrary(this,c.getText(),b))}catch(E){a.handleError(E,mxResources.get("errorLoadingFile"))}}else a.spinner.stop(),a.handleError(null,mxResources.get("errorLoadingFile"))},function(){a.spinner.stop();a.handleError(null, -mxResources.get("errorLoadingFile"))})}},mxResources.get("url"));a.showDialog(b.container,300,80,!0,!0);b.init()},d))})));this.put("edit",new Menu(mxUtils.bind(this,function(a,b){this.addMenuItems(a,"undo redo - cut copy paste delete - duplicate - find - editData editTooltip - editStyle editGeometry - edit - editLink openLink - selectVertices selectEdges selectAll selectNone - lockUnlock".split(" "))})));this.put("view",new Menu(mxUtils.bind(this,function(b,c){this.addMenuItems(b,(null!=this.editorUi.format? -["formatPanel"]:[]).concat(["outline","layers","-"]));this.addMenuItems(b,["-","search"],c);if(isLocalStorage||mxClient.IS_CHROMEAPP){var d=this.addMenuItem(b,"scratchpad",c);a.isOffline()&&!mxClient.IS_CHROMEAPP||this.addLinkToItem(d,"https://desk.draw.io/support/solutions/articles/16000042367")}this.addMenuItems(b,"shapes - pageView pageScale - scrollbars tooltips - grid guides".split(" "),c);mxClient.IS_SVG&&(null==document.documentMode||9<document.documentMode)&&this.addMenuItem(b,"shadowVisible", -c);this.addMenuItems(b,"- connectionArrows connectionPoints - resetView zoomIn zoomOut".split(" "),c)})));this.put("extras",new Menu(mxUtils.bind(this,function(b,c){"1"!=urlParams.embed&&(this.addSubmenu("theme",b,c),b.addSeparator(c));this.addMenuItems(b,["copyConnect","collapseExpand","-"],c);if("undefined"!==typeof MathJax){var d=this.addMenuItem(b,"mathematicalTypesetting",c);this.addLinkToItem(d,"https://desk.draw.io/support/solutions/articles/16000032875")}"1"!=urlParams.embed&&this.addMenuItems(b, -["autosave"],c);this.addMenuItems(b,["-","createShape","editDiagram"],c);b.addSeparator(c);"1"!=urlParams.embed&&(isLocalStorage||mxClient.IS_CHROMEAPP)&&this.addMenuItems(b,["showStartScreen"],c);!a.isOfflineApp()&&isLocalStorage&&this.addMenuItem(b,"plugins",c);b.addSeparator(c);this.addMenuItem(b,"tags",c);"1"==urlParams.newTempDlg&&(a.actions.addAction("templates",function(){var b=new TemplatesDialog;a.showDialog(b.container,b.width,b.height,!0,!1,null,!1,!0);b.init(a,function(a){console.log(a)}, -null,null,null,"user",function(a,b){setTimeout(function(){b?a([{url:"123",title:"Test 1Test 1Test 1Test 1Test 1Test 1Test 11Test 1Test 11Test 1Test 1dgdsgdfg fdg dfgdfg dfg dfg"},{url:"123",title:"Test 2",imgUrl:"https://www.google.com.eg/images/branding/googlelogo/2x/googlelogo_color_272x92dp.png"},{url:"123",title:"Test 3",changedBy:"Ashraf Teleb",lastModifiedOn:"Yesterday"},{url:"123",title:"Test 4"},{url:"123",title:"Test 5"},{url:"123",title:"Test 6"}]):a([{url:"123",title:"Test 4",imgUrl:"https://images.pexels.com/photos/459225/pexels-photo-459225.jpeg"}, -{url:"123",title:"Test 5"},{url:"123",title:"Test 6"},{url:"123",title:"Test 1Test 1Test 1Test 1Test 1Test 1Test 11Test 1Test 11Test 1Test 1dgdsgdfg fdg dfgdfg dfg dfg"},{url:"123",title:"Test 2",imgUrl:"https://www.google.com.eg/images/branding/googlelogo/2x/googlelogo_color_272x92dp.png"},{url:"123",title:"Test 3",changedBy:"Ashraf Teleb",lastModifiedOn:"Yesterday"}]);console.log(b)},1E3)},function(a,b,c){setTimeout(function(){b(c?[{url:"123",title:a+"Test 1Test 1Test 1Test 1Test 1Test 1Test 1"}, -{url:"123",title:a+"Test 2"},{url:"123",title:a+"Test 3"},{url:"123",title:a+"Test 4"},{url:"123",title:a+"Test 5"},{url:"123",title:a+"Test 6"}]:[{url:"123",title:a+"Test 5"},{url:"123",title:a+"Test 6"},{url:"123",title:a+"Test 1Test 1Test 1Test 1Test 1Test 1Test 1"},{url:"123",title:a+"Test 2"},{url:"123",title:a+"Test 3"},{url:"123",title:a+"Test 4"}])},2E3)},null)}),this.addMenuItem(b,"templates",c))})));this.put("file",new Menu(mxUtils.bind(this,function(b,c){if("1"==urlParams.embed)this.addSubmenu("importFrom", -b,c),this.addSubmenu("exportAs",b,c),this.addSubmenu("embed",b,c),"1"==urlParams.libraries&&(this.addMenuItems(b,["-"],c),this.addSubmenu("newLibrary",b,c),this.addSubmenu("openLibraryFrom",b,c)),this.addMenuItems(b,"- pageSetup print - rename save".split(" "),c),"1"==urlParams.saveAndExit&&this.addMenuItems(b,["saveAndExit"],c),this.addMenuItems(b,["exit"],c);else{var d=this.editorUi.getCurrentFile();null!=d&&d.constructor==DriveFile?(d.isRestricted()&&this.addMenuItems(b,["exportOptionsDisabled"], -c),null==d.realtime?this.addMenuItems(b,["save","share","-"],c):(d.isAutosave()||this.addMenuItems(b,["save"],c),this.addMenuItems(b,["share","chatWindowTitle","-"],c))):this.addMenuItems(b,["new"],c);this.addSubmenu("openFrom",b,c);isLocalStorage&&this.addSubmenu("openRecent",b,c);null!=d&&d.constructor==DriveFile?this.addMenuItems(b,["new","-","rename","makeCopy","moveToFolder"],c):(this.addMenuItems(b,["-","save","saveAs","-","rename"],c),a.isOfflineApp()?navigator.onLine&&"1"!=urlParams.stealth&& -this.addMenuItems(b,["upload"],c):(this.addMenuItems(b,["makeCopy"],c),null!=d&&d.constructor==OneDriveFile&&this.addMenuItems(b,["moveToFolder"],c)));b.addSeparator(c);this.addSubmenu("importFrom",b,c);this.addSubmenu("exportAs",b,c);b.addSeparator(c);this.addSubmenu("embed",b,c);this.addSubmenu("publish",b,c);b.addSeparator(c);this.addSubmenu("newLibrary",b,c);this.addSubmenu("openLibraryFrom",b,c);null==d||d.constructor!=DriveFile&&d.constructor!=DropboxFile||this.addMenuItems(b,["-","revisionHistory"], -c);null!=d&&d.constructor==DriveFile&&this.addMenuItems(b,["createRevision"],c);this.addMenuItems(b,["-","pageSetup"],c);mxClient.IS_IOS&&navigator.standalone||this.addMenuItems(b,["print"],c);this.addMenuItems(b,["-","close"])}})))};var d=Menus.prototype.menuCreated;Menus.prototype.menuCreated=function(a,e){if(480>=screen.width&&a==this.get("help")){e.style.paddingRight="0px";e.style.paddingLeft="0px";e.innerHTML="";var c=document.createElement("img");c.setAttribute("border","0");c.setAttribute("valign", -"bottom");c.setAttribute("src",Editor.helpImage);e.appendChild(c)}d.apply(this,arguments)}})();function DiagramPage(a){this.node=a;(null==this.node.hasAttribute&&null==this.node.getAttribute("id")||null!=this.node.hasAttribute&&!this.node.hasAttribute("id"))&&this.node.setAttribute("id",Editor.guid())}DiagramPage.prototype.node=null;DiagramPage.prototype.root=null;DiagramPage.prototype.viewState=null;DiagramPage.prototype.getId=function(){return this.node.getAttribute("id")};DiagramPage.prototype.getName=function(){return this.node.getAttribute("name")}; +DriveFile&&b.constructor!=DropboxFile||null==a.drive&&b.constructor==DriveFile||null==a.dropbox&&b.constructor==DropboxFile)a.showError(mxResources.get("error"),mxResources.get("notAvailable"),mxResources.get("ok"));else if(a.spinner.spin(document.body,mxResources.get("loading")))if(b.constructor==DropboxFile){var c=a.dropbox.client.filesListRevisions({path:b.stat.path_lower,limit:100});c.then(mxUtils.bind(this,function(c){a.spinner.stop();try{for(var d=[],f=c.entries.length-1;0<=f;f--)(function(c){d.push({modifiedDate:c.client_modified, +fileSize:c.size,getXml:function(d,f){a.dropbox.readFile({path:b.stat.path_lower,rev:c.rev},d,f)},getUrl:function(){return a.getUrl(window.location.pathname+"?rev="+c.rev+"&chrome=0&edit=_blank")+window.location.hash}})})(c.entries[f]);var e=new RevisionDialog(a,d);a.showDialog(e.container,640,480,!0,!0);e.init()}catch(E){a.handleError(E)}}));c["catch"](function(b){a.spinner.stop();a.handleError(b)})}else a.drive.executeRequest(gapi.client.drive.revisions.list({fileId:b.getId()}),function(c){a.spinner.stop(); +for(var d=0;d<c.items.length;d++)(function(d){d.getXml=function(f,e){a.drive.executeRequest(gapi.client.drive.revisions.get({fileId:b.getId(),revisionId:c.items[c.items.length-1]===d?b.desc.headRevisionId:d.id}),function(b){a.drive.getXmlFile(b,null,function(a){f(a.getData())},function(a){e(a)})},function(a){e(a)})};d.getUrl=function(){return a.getUrl(window.location.pathname+"?rev="+d.id+"&chrome=0&edit=_blank")+window.location.hash}})(c.items[d]);d=new RevisionDialog(a,c.items);a.showDialog(d.container, +640,480,!0,!0);d.init()},function(b){a.spinner.stop();a.handleError(b)})});a.actions.addAction("createRevision",function(){a.actions.get("save").funct()},null,null,Editor.ctrlKey+"+S");a.actions.addAction("refresh",function(){function b(){c.setModified(!1);a.loadFile(c.getHash(),!0)}var c=a.getCurrentFile();null!=c&&c.isModified()?a.confirm(mxResources.get("allChangesLost"),null,b,mxResources.get("cancel"),mxResources.get("discardChanges")):b()},null,null,"Alt+Shift+R");a.actions.addAction("upload...", +function(){var b=a.getCurrentFile();null!=b&&(window.drawdata=a.getFileData(),b=null!=b.getTitle()?b.getTitle():a.defaultFilename,a.openLink(window.location.protocol+"//"+window.location.host+"/?create=drawdata&"+(a.mode==App.MODE_DROPBOX?"mode=dropbox&":"")+"title="+encodeURIComponent(b),null,!0))});if("undefined"!==typeof MathJax){var f=a.actions.addAction("mathematicalTypesetting",function(){var b=new ChangePageSetup(a);b.ignoreColor=!0;b.ignoreImage=!0;b.mathEnabled=!a.isMathEnabled();d.model.execute(b)}); +f.setToggleAction(!0);f.setSelectedCallback(function(){return a.isMathEnabled()});f.isEnabled=k}if(isLocalStorage||mxClient.IS_CHROMEAPP)f=a.actions.addAction("showStartScreen",function(){mxSettings.setShowStartScreen(!mxSettings.getShowStartScreen());mxSettings.save()}),f.setToggleAction(!0),f.setSelectedCallback(function(){return mxSettings.getShowStartScreen()});var h=a.actions.addAction("autosave",function(){a.editor.setAutosave(!a.editor.autosave)});h.setToggleAction(!0);h.setSelectedCallback(function(){return h.isEnabled()&& +a.editor.autosave});a.actions.addAction("editGeometry...",function(){for(var b=d.getSelectionCells(),c=[],f=0;f<b.length;f++)d.getModel().isVertex(b[f])&&c.push(b[f]);0<c.length&&(b=new EditGeometryDialog(a,c),a.showDialog(b.container,200,250,!0,!0),b.init())},null,null,Editor.ctrlKey+"+Shift+M");var t="rounded shadow dashed dashPattern fontFamily fontSize fontColor fontStyle align verticalAlign strokeColor strokeWidth fillColor gradientColor swimlaneFillColor textOpacity gradientDirection glass labelBackgroundColor labelBorderColor opacity spacing spacingTop spacingLeft spacingBottom spacingRight endFill endArrow endSize startStill startArrow startSize arcSize".split(" "); +a.actions.addAction("copyStyle",function(){var b=d.view.getState(d.getSelectionCell());if(d.isEnabled()&&null!=b){a.copiedStyle=mxUtils.clone(b.style);for(var b=d.getModel().getStyle(b.cell),b=null!=b?b.split(";"):[],c=0;c<b.length;c++){var f=b[c],e=f.indexOf("=");if(0<=e){var g=f.substring(0,e),f=f.substring(e+1);null==a.copiedStyle[g]&&"none"==f&&(a.copiedStyle[g]="none")}}}},null,null,Editor.ctrlKey+"+Shift+C");a.actions.addAction("pasteStyle",function(){if(d.isEnabled()&&!d.isSelectionEmpty()&& +null!=a.copiedStyle){d.getModel().beginUpdate();try{for(var b=d.getSelectionCells(),c=0;c<b.length;c++)for(var f=d.view.getState(b[c]),e=0;e<t.length;e++){var g=t[e],h=a.copiedStyle[g];f.style[g]!=h&&d.setCellStyles(g,h,[b[c]])}}finally{d.getModel().endUpdate()}}},null,null,Editor.ctrlKey+"+Shift+V");a.actions.put("pageBackgroundImage",new Action(mxResources.get("backgroundImage")+"...",function(){if(!a.isOffline()){var b=new BackgroundImageDialog(a,function(b){a.setBackgroundImage(b)});a.showDialog(b.container, +320,170,!0,!0);b.init()}}));a.actions.put("exportPng",new Action(mxResources.get("formatPng")+"...",function(){a.isExportToCanvas()?a.showExportDialog(mxResources.get("image"),!1,mxResources.get("export"),"https://support.draw.io/display/DO/Exporting+Files",mxUtils.bind(this,function(b,c,d,f,e,g,h,k,l){b=parseInt(b);!isNaN(b)&&0<b&&a.exportImage(b/100,c,d,f,e,h,!k,l)}),!0,!1,"png"):a.isOffline()||mxClient.IS_IOS&&navigator.standalone||a.showRemoteExportDialog(mxResources.get("export"),null,mxUtils.bind(this, +function(b,c,d){a.downloadFile(c?"xmlpng":"png",null,null,b,null,null,d)}))}));a.actions.put("exportJpg",new Action(mxResources.get("formatJpg")+"...",function(){a.isExportToCanvas()?a.showExportDialog(mxResources.get("image"),!1,mxResources.get("export"),"https://support.draw.io/display/DO/Exporting+Files",mxUtils.bind(this,function(b,c,d,f,e,g,h,k,l){b=parseInt(b);!isNaN(b)&&0<b&&a.exportImage(b/100,!1,d,f,!1,h,!k,!1,"jpeg")}),!0,!1,"jpeg"):a.isOffline()||mxClient.IS_IOS&&navigator.standalone|| +a.showRemoteExportDialog(mxResources.get("export"),null,mxUtils.bind(this,function(b,c){a.downloadFile("jpeg",null,null,b)}),!0)}));f=a.actions.put("shadowVisible",new Action(mxResources.get("shadow"),function(){d.setShadowVisible(!d.shadowVisible)}));f.setToggleAction(!0);f.setSelectedCallback(function(){return d.shadowVisible});var q=!1;a.actions.put("about",new Action(mxResources.get("aboutDrawio")+"...",function(){q||(a.showDialog((new AboutDialog(a)).container,220,300,!0,!0,function(){q=!1}), +q=!0)},null,null,"F1"));a.actions.addAction("userManual...",function(){a.openLink("https://support.draw.io/display/DO/Draw.io+Online+User+Manual")});a.actions.addAction("support...",function(){a.openLink("https://about.draw.io/support/")});a.actions.addAction("exportOptionsDisabled...",function(){a.handleError({message:mxResources.get("exportOptionsDisabledDetails")},mxResources.get("exportOptionsDisabled"))});a.actions.addAction("keyboardShortcuts...",function(){mxClient.IS_CHROMEAPP||EditorUi.isElectronApp? +a.openLink("https://www.draw.io/shortcuts.svg"):mxClient.IS_SVG?a.openLink("shortcuts.svg"):a.openLink("https://www.draw.io/?lightbox=1#Uhttps%3A%2F%2Fwww.draw.io%2Fshortcuts.svg")});a.actions.addAction("feedback...",function(){var b=new FeedbackDialog(a);a.showDialog(b.container,610,360,!0,!0);b.init()});a.actions.addAction("quickStart...",function(){a.openLink("https://www.youtube.com/watch?v=Z0D96ZikMkc")});f=a.actions.addAction("tags...",mxUtils.bind(this,function(){null==this.tagsWindow?(this.tagsWindow= +new TagsWindow(a,document.body.offsetWidth-380,230,300,120),this.tagsWindow.window.addListener("show",function(){a.fireEvent(new mxEventObject("tags"))}),this.tagsWindow.window.addListener("hide",function(){a.fireEvent(new mxEventObject("tags"))}),this.tagsWindow.window.setVisible(!0),a.fireEvent(new mxEventObject("tags"))):this.tagsWindow.window.setVisible(!this.tagsWindow.window.isVisible())}));f.setToggleAction(!0);f.setSelectedCallback(mxUtils.bind(this,function(){return null!=this.tagsWindow&& +this.tagsWindow.window.isVisible()}));f=a.actions.addAction("find...",mxUtils.bind(this,function(){null==this.findWindow?(this.findWindow=new FindWindow(a,document.body.offsetWidth-300,110,240,140),this.findWindow.window.addListener("show",function(){a.fireEvent(new mxEventObject("find"))}),this.findWindow.window.addListener("hide",function(){a.fireEvent(new mxEventObject("find"))}),this.findWindow.window.setVisible(!0),a.fireEvent(new mxEventObject("find"))):this.findWindow.window.setVisible(!this.findWindow.window.isVisible())})); +f.setToggleAction(!0);f.setSelectedCallback(mxUtils.bind(this,function(){return null!=this.findWindow&&this.findWindow.window.isVisible()}));a.actions.put("exportVsdx",new Action(mxResources.get("formatVsdx")+" (beta)...",function(){a.exportVisio()}));if(mxClient.IS_CHROMEAPP||isLocalStorage&&"1"!=urlParams.offline)if(this.put("language",new Menu(mxUtils.bind(this,function(b,c){var d=mxUtils.bind(this,function(d){var f=""==d?mxResources.get("automatic"):mxLanguageMap[d],e=null;""!=f&&(e=b.addItem(f, +null,mxUtils.bind(this,function(){mxSettings.setLanguage(d);mxSettings.save();mxClient.language=d;mxResources.loadDefaultBundle=!1;mxResources.add(RESOURCE_BASE);a.alert(mxResources.get("restartForChangeRequired"))}),c),(d==mxLanguage||""==d&&null==mxLanguage)&&b.addCheckmark(e,Editor.checkmarkImage));return e});d("");b.addSeparator(c);for(var f in mxLanguageMap)d(f)}))),"atlas"!=uiTheme){var u=Menus.prototype.createMenubar;Menus.prototype.createMenubar=function(a){var b=u.apply(this,arguments);if(null!= +b){var c=this.get("language");null!=c&&(c=b.addMenu("",c.funct),c.setAttribute("title",mxResources.get("language")),c.style.width="16px",c.style.paddingTop="2px",c.style.paddingLeft="4px",c.innerHTML='<div class="geIcon geSprite geSprite-globe"/>',c.style.zIndex="1",c.style.position="absolute",c.style.top="2px",c.style.right="17px",c.style.display="block",mxClient.IS_VML||mxUtils.setOpacity(c,60),document.body.appendChild(c))}return b}}this.put("help",new Menu(mxUtils.bind(this,function(b,c){if(!mxClient.IS_CHROMEAPP&& +a.isOffline())this.addMenuItems(b,["about"],c);else{var f=b.addItem("Search:",null,null,c,null,null,!1);f.style.backgroundColor="dark"==uiTheme?"#505759":"whiteSmoke";f.style.cursor="default";var e=document.createElement("input");e.setAttribute("type","text");e.setAttribute("size","25");e.style.marginLeft="8px";mxEvent.addListener(e,"keydown",mxUtils.bind(this,function(a){var b=mxUtils.trim(e.value);13==a.keyCode&&0<b.length?(this.editorUi.openLink("https://desk.draw.io/support/search/solutions?term="+ +encodeURIComponent(b)),e.value="",this.editorUi.logEvent({category:"Help",action:"search",label:b}),null!=this.editorUi.menubar&&window.setTimeout(mxUtils.bind(this,function(){this.editorUi.menubar.hideMenu()}),0)):27==a.keyCode&&(e.value="")}));f.firstChild.nextSibling.appendChild(e);mxEvent.addGestureListeners(e,function(a){document.activeElement!=e&&e.focus();mxEvent.consume(a)},function(a){mxEvent.consume(a)},function(a){mxEvent.consume(a)});window.setTimeout(function(){e.focus()},0);this.addMenuItems(b, +["-","quickStart","userManual","keyboardShortcuts","-"],c);mxClient.IS_CHROMEAPP||this.addMenuItems(b,["feedback"],c);this.addMenuItems(b,["support","-"],c);a.isOffline()||EditorUi.isElectronApp||navigator.standalone||"1"==urlParams.embed||this.addMenuItems(b,["downloadDesktop"],c);navigator.standalone||"1"==urlParams.embed||this.addMenuItems(b,["useOffline"],c);this.addMenuItems(b,["-","about"],c)}"1"==urlParams.ruler&&(mxResources.parse("rulerInch=Ruler unit: Inches"),this.editorUi.actions.addAction("rulerInch", +mxUtils.bind(this,function(){this.editorUi.vRuler.setUnit(mxRuler.prototype.INCHES);this.editorUi.hRuler.setUnit(mxRuler.prototype.INCHES);this.editorUi.vRuler.drawRuler(!0);this.editorUi.hRuler.drawRuler(!0)})),mxResources.parse("rulerCM=Ruler unit: CMs"),this.editorUi.actions.addAction("rulerCM",mxUtils.bind(this,function(){this.editorUi.vRuler.setUnit(mxRuler.prototype.CENTIMETER);this.editorUi.hRuler.setUnit(mxRuler.prototype.CENTIMETER);this.editorUi.vRuler.drawRuler(!0);this.editorUi.hRuler.drawRuler(!0)})), +mxResources.parse("rulerPixel=Ruler unit: Pixels"),this.editorUi.actions.addAction("rulerPixel",mxUtils.bind(this,function(){this.editorUi.vRuler.setUnit(mxRuler.prototype.PIXELS);this.editorUi.hRuler.setUnit(mxRuler.prototype.PIXELS);this.editorUi.vRuler.drawRuler(!0);this.editorUi.hRuler.drawRuler(!0)})),this.addMenuItems(b,["-","rulerInch","rulerCM","rulerPixel"],c));"1"==urlParams.test&&(mxResources.parse("showBoundingBox=Show bounding box"),this.editorUi.actions.addAction("showBoundingBox",mxUtils.bind(this, +function(){var a=d.getGraphBounds(),b=d.view.translate,c=d.view.scale;d.insertVertex(d.getDefaultParent(),null,"",a.x/c-b.x,a.y/c-b.y,a.width/c,a.height/c,"fillColor=none;strokeColor=red;")})),mxResources.parse("createSidebarEntry=Create sidebar entry"),this.editorUi.actions.addAction("createSidebarEntry",mxUtils.bind(this,function(){d.isSelectionEmpty()||(mxLog.show(),mxLog.debug("sb.createVertexTemplateFromData('"+d.compress(mxUtils.getXml(d.encodeCells(d.getSelectionCells())))+"', width, height, 'Title');"))})), +this.addMenuItems(b,["-","createSidebarEntry","showBoundingBox"],c),mxResources.parse("testXmlImageExport=XML Image Export"),this.editorUi.actions.addAction("testXmlImageExport",mxUtils.bind(this,function(){var a=new mxImageExport,b=d.getGraphBounds(),c=d.view.scale,f=mxUtils.createXmlDocument(),e=f.createElement("output");f.appendChild(e);f=new mxXmlCanvas2D(e);f.translate(Math.floor((1-b.x)/c),Math.floor((1-b.y)/c));f.scale(1/c);var g=0,m=f.save;f.save=function(){g++;m.apply(this,arguments)};var h= +f.restore;f.restore=function(){g--;h.apply(this,arguments)};var k=a.drawShape;a.drawShape=function(a){mxLog.debug("entering shape",a,g);k.apply(this,arguments);mxLog.debug("leaving shape",a,g)};a.drawState(d.getView().getState(d.model.root),f);mxLog.show();mxLog.debug(mxUtils.getXml(e));mxLog.debug("stateCounter",g)})),this.addMenuItems(b,["testXmlImageExport"],c),mxResources.parse("testShowRtModel=Show RT model"),mxResources.parse("testDebugRtModel=Debug RT model"),mxResources.parse("testDownloadRtModel=Download RT model"), +this.editorUi.actions.addAction("testShowRtModel",mxUtils.bind(this,function(){null!=this.editorUi.getCurrentFile()&&null!=this.editorUi.getCurrentFile().realtime&&(console.log("bytesUsed",this.editorUi.getCurrentFile().realtime.rtModel.bytesUsed),console.log("root",this.editorUi.getCurrentFile().realtime.dumpRoot()),this.editorUi.getCurrentFile().realtime.check())})),this.editorUi.actions.addAction("testDebugRtModel",mxUtils.bind(this,function(){gapi.drive.realtime.debug()})),this.editorUi.actions.addAction("testDownloadRtModel", +mxUtils.bind(this,function(){var b=this.editorUi.getCurrentFile();null!=b&&null!=b.realtime&&a.spinner.spin(document.body,mxResources.get("export"))&&(b=new mxXmlRequest("https://www.googleapis.com/drive/v2/files/"+b.getHash().substring(1)+"/realtime",null,"GET"),b.setRequestHeaders=function(a){mxXmlRequest.prototype.setRequestHeaders.apply(this,arguments);var b=gapi.auth.getToken().access_token;a.setRequestHeader("authorization","Bearer "+b)},b.send(function(b){a.spinner.stop();200<=b.getStatus()&& +299>=b.getStatus()&&a.saveLocalFile(b.getText(),"realtime.txt","text/plain")}))})),null!=this.editorUi.getCurrentFile()&&null!=this.editorUi.getCurrentFile().realtime&&this.addMenuItems(b,["-","testShowRtModel","testDebugRtModel","testDownloadRtModel"],c),mxResources.parse("testShowConsole=Show Console"),this.editorUi.actions.addAction("testShowConsole",function(){mxLog.isVisible()?mxLog.window.fit():mxLog.show();mxLog.window.div.style.zIndex=mxPopupMenu.prototype.zIndex-1}),this.addMenuItems(b,["-", +"testShowConsole"]))})));a.actions.addAction("shapes...",function(){mxClient.IS_CHROMEAPP||!a.isOffline()?a.showDialog((new MoreShapesDialog(a,!0)).container,640,isLocalStorage?mxClient.IS_IOS?480:460:440,!0,!0):a.showDialog((new MoreShapesDialog(a,!1)).container,360,isLocalStorage?mxClient.IS_IOS?300:280:260,!0,!0)});a.actions.addAction("createShape...",function(){a.getCurrentFile();if(d.isEnabled()){var b=new mxCell("",new mxGeometry(0,0,120,120),a.defaultCustomShapeStyle);b.vertex=!0;b=new EditShapeDialog(a, +b,mxResources.get("editShape")+":",630,400);a.showDialog(b.container,640,480,!0,!1);b.init()}});a.actions.put("embedHtml",new Action(mxResources.get("html")+"...",function(){a.spinner.spin(document.body,mxResources.get("loading"))&&a.getPublicUrl(a.getCurrentFile(),function(b){a.spinner.stop();a.showHtmlDialog(mxResources.get("create"),"https://desk.draw.io/support/solutions/articles/16000042542",b,function(b,c,d,f,e,g,h,m,k,l){a.createHtml(b,c,d,f,e,g,h,m,k,l,mxUtils.bind(this,function(b,c){var d= +new EmbedDialog(a,b+"\n"+c,null,null,function(){var a=window.open(),d=a.document;"CSS1Compat"===document.compatMode&&d.writeln("<!DOCTYPE html>");d.writeln("<html>");d.writeln("<head><title>"+encodeURIComponent(mxResources.get("preview"))+'</title><meta charset="utf-8"></head>');d.writeln("<body>");d.writeln(b);var f=mxClient.IS_IE||mxClient.IS_EDGE||null!=document.documentMode;f&&d.writeln(c);d.writeln("</body>");d.writeln("</html>");d.close();if(!f){var e=a.document.createElement("div");e.marginLeft= +"26px";e.marginTop="26px";mxUtils.write(e,mxResources.get("updatingDocument"));f=a.document.createElement("img");f.setAttribute("src",window.location.protocol+"//"+window.location.hostname+"/"+IMAGE_PATH+"/spin.gif");f.style.marginLeft="6px";e.appendChild(f);a.document.body.insertBefore(e,a.document.body.firstChild);window.setTimeout(function(){var a=document.createElement("script");a.type="text/javascript";a.src=/<script.*?src="(.*?)"/.exec(c)[1];d.body.appendChild(a);e.parentNode.removeChild(e)}, +20)}});a.showDialog(d.container,440,240,!0,!0);d.init()}))})})}));a.actions.put("liveImage",new Action("Live image...",function(){a.spinner.spin(document.body,mxResources.get("loading"))&&a.getPublicUrl(a.getCurrentFile(),function(b){a.spinner.stop();null!=b?(b=encodeURIComponent(b),b=new EmbedDialog(a,EXPORT_URL+"?format=png&url="+b,0),a.showDialog(b.container,440,240,!0,!0),b.init()):a.handleError({message:mxResources.get("invalidPublicUrl")})})}));a.actions.put("embedImage",new Action(mxResources.get("image")+ +"...",function(){a.showEmbedImageDialog(function(b,c,d,f,e,g){a.spinner.spin(document.body,mxResources.get("loading"))&&a.createEmbedImage(b,c,d,f,e,g,function(b){a.spinner.stop();b=new EmbedDialog(a,b);a.showDialog(b.container,440,240,!0,!0);b.init()},function(b){a.spinner.stop();a.handleError(b)})},mxResources.get("image"),mxResources.get("retina"),a.isExportToCanvas())}));a.actions.put("embedSvg",new Action(mxResources.get("formatSvg")+"...",function(){a.showEmbedImageDialog(function(b,c,d,f,e, +g){a.spinner.spin(document.body,mxResources.get("loading"))&&a.createEmbedSvg(b,c,d,f,e,g,function(b){a.spinner.stop();b=new EmbedDialog(a,b);a.showDialog(b.container,440,240,!0,!0);b.init()},function(b){a.spinner.stop();a.handleError(b)})},mxResources.get("formatSvg"),mxResources.get("image"),!0,"https://desk.draw.io/support/solutions/articles/16000042548")}));a.actions.put("embedIframe",new Action(mxResources.get("iframe")+"...",function(){var b=d.getGraphBounds();a.showPublishLinkDialog(mxResources.get("iframe"), +null,"100%",Math.ceil((b.y+b.height-d.view.translate.y)/d.view.scale)+2,function(b,c,d,f,e,g,h,m){a.spinner.spin(document.body,mxResources.get("loading"))&&a.getPublicUrl(a.getCurrentFile(),function(k){a.spinner.stop();k=new EmbedDialog(a,'<iframe frameborder="0" style="width:'+h+";height:"+m+';" src="'+a.createLink(b,c,d,f,e,g,k)+'"></iframe>');a.showDialog(k.container,440,240,!0,!0);k.init()})},!0)}));a.actions.put("publishLink",new Action(mxResources.get("link")+"...",function(){a.showPublishLinkDialog(null, +null,null,null,function(b,c,d,f,e,g){a.spinner.spin(document.body,mxResources.get("loading"))&&a.getPublicUrl(a.getCurrentFile(),function(h){a.spinner.stop();h=new EmbedDialog(a,a.createLink(b,c,d,f,e,g,h));a.showDialog(h.container,440,240,!0,!0);h.init()})})}));a.actions.addAction("googleDocs...",function(){a.openLink("http://docsaddon.draw.io")});a.actions.addAction("googleSites...",function(){a.spinner.spin(document.body,mxResources.get("loading"))&&a.getPublicUrl(a.getCurrentFile(),function(b){a.spinner.stop(); +b=new GoogleSitesDialog(a,b);a.showDialog(b.container,420,256,!0,!0);b.init()})});if(isLocalStorage||mxClient.IS_CHROMEAPP)f=a.actions.addAction("scratchpad",function(){a.toggleScratchpad()}),f.setToggleAction(!0),f.setSelectedCallback(function(){return null!=a.scratchpad}),a.actions.addAction("plugins...",function(){a.showDialog((new PluginsDialog(a)).container,360,170,!0,!1)});f=a.actions.addAction("search",function(){var b=a.sidebar.isEntryVisible("search");a.sidebar.showPalette("search",!b);isLocalStorage&& +(mxSettings.settings.search=!b,mxSettings.save())});f.setToggleAction(!0);f.setSelectedCallback(function(){return a.sidebar.isEntryVisible("search")});"1"==urlParams.embed&&(a.actions.get("save").funct=function(b){d.isEditing()&&d.stopEditing();var c="0"!=urlParams.pages||null!=a.pages&&1<a.pages.length?a.getFileData(!0):mxUtils.getXml(a.editor.getGraphXml());if("json"==urlParams.proto){var f=a.createLoadMessage("save");f.xml=c;b&&(f.exit=!0);c=JSON.stringify(f)}(window.opener||window.parent).postMessage(c, +"*");"0"!=urlParams.modified&&"1"!=urlParams.keepmodified&&(a.editor.modified=!1,a.editor.setStatus(""));null!=a.getCurrentFile()&&a.saveFile()},a.actions.addAction("saveAndExit",function(){a.actions.get("save").funct(!0)}),a.actions.addAction("exit",function(){var b=function(){a.editor.modified=!1;var b="json"==urlParams.proto?JSON.stringify({event:"exit",modified:a.editor.modified}):"";(window.opener||window.parent).postMessage(b,"*")};a.editor.modified?a.confirm(mxResources.get("allChangesLost"), +null,b,mxResources.get("cancel"),mxResources.get("discardChanges")):b()}));this.put("exportAs",new Menu(mxUtils.bind(this,function(b,c){a.isExportToCanvas()?(this.addMenuItems(b,["exportPng"],c),a.jpgSupported&&this.addMenuItems(b,["exportJpg"],c)):a.isOffline()||mxClient.IS_IOS&&navigator.standalone||this.addMenuItems(b,["exportPng","exportJpg"],c);this.addMenuItems(b,["exportSvg","-"],c);a.isOffline()||a.printPdfExport?this.addMenuItems(b,["exportPdf"],c):a.isOffline()||mxClient.IS_IOS&&navigator.standalone|| +this.addMenuItems(b,["exportPdf"],c);mxClient.IS_IE||"undefined"===typeof VsdxExport&&a.isOffline()||this.addMenuItems(b,["exportVsdx"],c);this.addMenuItems(b,["-","exportHtml","exportXml","exportUrl"],c);a.isOffline()||(b.addSeparator(c),this.addMenuItem(b,"export",c).firstChild.nextSibling.innerHTML=mxResources.get("advanced")+"...")})));this.editorUi.actions.addAction("chatWindowTitle...",mxUtils.bind(this.editorUi,this.editorUi.toggleChat));this.put("importFrom",new Menu(function(c,f){function e(b){b.pickFile(function(c){a.spinner.spin(document.body, +mxResources.get("loading"))&&b.getFile(c,function(b){var c=h(b.getTitle());/\.svg$/i.test(b.getTitle())&&!a.editor.isDataSvg(b.getData())&&(b.setData(a.createSvgDataUri(b.getData())),c="image/svg+xml");g(b.getData(),c,b.getTitle())},function(b){a.handleError(b,null!=b?mxResources.get("errorLoadingFile"):null)},b==a.drive)},!0)}var g=mxUtils.bind(this,function(b,c,f){var e=d.view,g=d.getGraphBounds(),h=d.snap(Math.ceil(Math.max(0,g.x/e.scale-e.translate.x)+4*d.gridSize)),m=d.snap(Math.ceil(Math.max(0, +(g.y+g.height)/e.scale-e.translate.y)+4*d.gridSize));"data:image/"==b.substring(0,11)?a.loadImage(b,mxUtils.bind(this,function(e){var g=!0,k=mxUtils.bind(this,function(){a.resizeImage(e,b,mxUtils.bind(this,function(e,k,l){e=g?Math.min(1,Math.min(a.maxImageSize/k,a.maxImageSize/l)):1;a.importFile(b,c,h,m,Math.round(k*e),Math.round(l*e),f,function(b){a.spinner.stop();d.setSelectionCells(b);d.scrollCellToVisible(d.getSelectionCell())})}),g)});b.length>a.resampleThreshold?a.confirmImageResize(function(a){g= +a;k()}):k()}),mxUtils.bind(this,function(){a.handleError({message:mxResources.get("cannotOpenFile")})})):a.importFile(b,c,h,m,0,0,f,function(b){a.spinner.stop();d.setSelectionCells(b);d.scrollCellToVisible(d.getSelectionCell())})}),h=mxUtils.bind(this,function(a){var b="text/xml";/\.png$/i.test(a)?b="image/png":/\.jpe?g$/i.test(a)?b="image/jpg":/\.gif$/i.test(a)&&(b="image/gif");return b});"undefined"!=typeof google&&"undefined"!=typeof google.picker&&(null!=a.drive?c.addItem(mxResources.get("googleDrive")+ +"...",null,function(){e(a.drive)},f):l&&c.addItem(mxResources.get("googleDrive")+" ("+mxResources.get("loading")+"...)",null,function(){},f,null,!1));null!=a.gitHub&&c.addItem(mxResources.get("github")+"...",null,function(){e(a.gitHub)},f);null!=a.dropbox?c.addItem(mxResources.get("dropbox")+"...",null,function(){e(a.dropbox)},f):p&&c.addItem(mxResources.get("dropbox")+" ("+mxResources.get("loading")+"...)",null,function(){},f,null,!1);null!=a.oneDrive?c.addItem(mxResources.get("oneDrive")+"...", +null,function(){e(a.oneDrive)},f):n&&c.addItem(mxResources.get("oneDrive")+" ("+mxResources.get("loading")+"...)",null,function(){},f,null,!1);null!=a.trello?c.addItem(mxResources.get("trello")+"...",null,function(){e(a.trello)},f):b&&c.addItem(mxResources.get("trello")+" ("+mxResources.get("loading")+"...)",null,function(){},f,null,!1);c.addSeparator(f);isLocalStorage&&"0"!=urlParams.browser&&c.addItem(mxResources.get("browser")+"...",null,function(){a.importLocalFile(!1)},f);mxClient.IS_IOS||c.addItem(mxResources.get("device")+ +"...",null,function(){a.importLocalFile(!0)},f);a.isOffline()||(c.addSeparator(f),c.addItem(mxResources.get("url")+"...",null,function(){var b=new FilenameDialog(a,"",mxResources.get("import"),function(b){if(null!=b&&0<b.length&&a.spinner.spin(document.body,mxResources.get("loading"))){var c=/(\.png)($|\?)/i.test(b)?"image/png":"text/xml";a.loadUrl(PROXY_URL+"?url="+encodeURIComponent(b),function(a){g(a,c,b)},function(){a.spinner.stop();a.handleError(null,mxResources.get("errorLoadingFile"))},"image/png"== +c)}},mxResources.get("url"));a.showDialog(b.container,300,80,!0,!0);b.init()},f))})).isEnabled=k;this.put("theme",new Menu(mxUtils.bind(this,function(b,c){var d=mxSettings.getUi(),f=b.addItem(mxResources.get("automatic"),null,function(){mxSettings.setUi("");mxSettings.save();a.alert(mxResources.get("restartForChangeRequired"))},c);"kennedy"!=d&&"atlas"!=d&&"dark"!=d&&"min"!=d&&b.addCheckmark(f,Editor.checkmarkImage);b.addSeparator(c);f=b.addItem(mxResources.get("kennedy"),null,function(){mxSettings.setUi("kennedy"); +mxSettings.save();a.alert(mxResources.get("restartForChangeRequired"))},c);"kennedy"==d&&b.addCheckmark(f,Editor.checkmarkImage);f=b.addItem(mxResources.get("minimal"),null,function(){mxSettings.setUi("min");mxSettings.save();a.alert(mxResources.get("restartForChangeRequired"))},c);"min"==d&&b.addCheckmark(f,Editor.checkmarkImage);f=b.addItem(mxResources.get("atlas"),null,function(){mxSettings.setUi("atlas");mxSettings.save();a.alert(mxResources.get("restartForChangeRequired"))},c);"atlas"==d&&b.addCheckmark(f, +Editor.checkmarkImage);f=b.addItem(mxResources.get("dark"),null,function(){mxSettings.setUi("dark");mxSettings.save();a.alert(mxResources.get("restartForChangeRequired"))},c);"dark"==d&&b.addCheckmark(f,Editor.checkmarkImage)})));f=this.editorUi.actions.addAction("rename...",mxUtils.bind(this,function(){var b=this.editorUi.getCurrentFile();if(null!=b){var c=null!=b.getTitle()?b.getTitle():this.editorUi.defaultFilename,c=new FilenameDialog(this.editorUi,c,mxResources.get("rename"),mxUtils.bind(this, +function(a){null!=a&&0<a.length&&null!=b&&this.editorUi.spinner.spin(document.body,mxResources.get("renaming"))&&b.rename(a,mxUtils.bind(this,function(a){this.editorUi.spinner.stop()}),mxUtils.bind(this,function(a){this.editorUi.handleError(a,null!=a?mxResources.get("errorRenamingFile"):null)}))}),b.constructor==DriveFile||b.constructor==StorageFile?mxResources.get("diagramName"):null,function(b){if(null!=b&&0<b.length)return!0;a.showError(mxResources.get("error"),mxResources.get("invalidName"),mxResources.get("ok")); +return!1});this.editorUi.showDialog(c.container,300,80,!0,!0);c.init()}}));f.isEnabled=function(){return this.enabled&&k.apply(this,arguments)};f.visible="1"!=urlParams.embed;a.actions.addAction("makeCopy...",mxUtils.bind(this,function(){var b=a.getCurrentFile();if(null!=b){var c=a.getCopyFilename(b);b.constructor==DriveFile?(c=new CreateDialog(a,c,mxUtils.bind(this,function(c,d){"download"==d&&(d=App.MODE_GOOGLE);null!=c&&0<c.length&&(d==App.MODE_GOOGLE?a.spinner.spin(document.body,mxResources.get("saving"))&& +b.saveAs(c,mxUtils.bind(this,function(c){b.desc=c;b.save(!1,mxUtils.bind(this,function(){a.spinner.stop();b.setModified(!1);b.addAllSavedStatus()}),mxUtils.bind(this,function(b){a.handleError(b)}))}),mxUtils.bind(this,function(b){a.handleError(b)})):a.createFile(c,a.getFileData(!0),null,d))}),mxUtils.bind(this,function(){a.hideDialog()}),mxResources.get("makeCopy"),mxResources.get("create"),null,null,null,null,!0),a.showDialog(c.container,420,380,!0,!0),c.init()):a.editor.editAsNew(this.editorUi.getFileData(!0), +c)}}));a.actions.addAction("moveToFolder...",mxUtils.bind(this,function(){var b=a.getCurrentFile();b.getMode()!=App.MODE_GOOGLE&&b.getMode()!=App.MODE_ONEDRIVE||a.pickFolder(b.getMode(),mxUtils.bind(this,function(c){a.spinner.spin(document.body,mxResources.get("moving"))&&b.move(c,mxUtils.bind(this,function(b){a.spinner.stop()}),mxUtils.bind(this,function(b){a.handleError(b)}))}))}));this.put("publish",new Menu(mxUtils.bind(this,function(a,b){this.addMenuItems(a,["publishLink"],b)})));a.actions.put("useOffline", +new Action(mxResources.get("useOffline")+"...",function(){a.openLink("https://app.draw.io/")}));a.actions.put("downloadDesktop",new Action(mxResources.get("downloadDesktop")+"...",function(){a.openLink("https://get.draw.io/")}));this.editorUi.actions.addAction("share...",mxUtils.bind(this,function(){var a=this.editorUi.getCurrentFile();null!=a&&this.editorUi.drive.showPermissions(a.getId())}));this.put("embed",new Menu(mxUtils.bind(this,function(b,c){"1"==urlParams.test&&this.addMenuItems(b,["liveImage", +"-"],c);this.addMenuItems(b,["embedImage","embedSvg","-","embedHtml"],c);navigator.standalone||a.isOffline()||this.addMenuItems(b,["embedIframe"],c);a.isOffline()||this.addMenuItems(b,["-","googleSites","googleDocs"],c)})));var w=function(b,c,d,f){("plantUml"!=f||EditorUi.enablePlantUml&&!a.isOffline())&&b.addItem(d,null,mxUtils.bind(this,function(){if("fromText"==f||"formatSql"==f||"plantUml"==f){var b=new ParseDialog(a,d,f);a.showDialog(b.container,620,420,!0,!1);a.dialog.container.style.overflow= +"auto"}else b=new CreateGraphDialog(a,d,f),a.showDialog(b.container,620,420,!0,!1);b.init()}),c)},y=function(a,b,c,f){var e=d.isMouseInsertPoint()?d.getInsertPoint():d.getFreeInsertPoint();a=new mxCell(a,new mxGeometry(e.x,e.y,b,c),f);a.vertex=!0;d.getModel().beginUpdate();try{a=d.addCell(a),d.fireEvent(new mxEventObject("cellsInserted","cells",[a]))}finally{d.getModel().endUpdate()}d.scrollCellToVisible(a);d.setSelectionCell(a);d.container.focus();d.editAfterInsert&&d.startEditing(a);return a};a.actions.addAction("insertText", +function(){d.isEnabled()&&!d.isCellLocked(d.getDefaultParent())&&d.startEditingAtCell(y("Text",40,20,"text;html=1;resizable=0;autosize=1;align=center;verticalAlign=middle;points=[];fillColor=none;strokeColor=none;rounded=0;"))},null,null,Editor.ctrlKey+"+Shift+X").isEnabled=k;a.actions.addAction("insertRectangle",function(){d.isEnabled()&&!d.isCellLocked(d.getDefaultParent())&&y("",120,60,"whiteSpace=wrap;html=1;")},null,null,Editor.ctrlKey+"+K").isEnabled=k;a.actions.addAction("insertEllipse",function(){d.isEnabled()&& +!d.isCellLocked(d.getDefaultParent())&&y("",80,80,"ellipse;whiteSpace=wrap;html=1;")},null,null,Editor.ctrlKey+"+Shift+K").isEnabled=k;a.actions.addAction("insertRhombus",function(){d.isEnabled()&&!d.isCellLocked(d.getDefaultParent())&&y("",80,80,"rhombus;whiteSpace=wrap;html=1;")}).isEnabled=k;var A=mxUtils.bind(this,function(a,b,c){for(var d=0;d<c.length;d++)"-"==c[d]?a.addSeparator(b):w(a,b,mxResources.get(c[d])+"...",c[d])});this.put("insert",new Menu(mxUtils.bind(this,function(b,c){this.addMenuItems(b, +"insertText insertRectangle - insertEllipse insertRhombus - insertLink insertImage".split(" "),c);b.addSeparator(c);this.addSubmenu("insertLayout",b,c,mxResources.get("layout"));b.addSeparator(c);A(b,c,["fromText","plantUml","-","formatSql"]);b.addItem(mxResources.get("csv")+"...",null,function(){a.showImportCsvDialog()},c)})));this.put("insertLayout",new Menu(mxUtils.bind(this,function(a,b){A(a,b,"horizontalFlow verticalFlow - horizontalTree verticalTree radialTree - organic circle".split(" "))}))); +this.put("openRecent",new Menu(function(b,c){var d=a.getRecent();if(null!=d){for(var f=0;f<d.length;f++)(function(d){var f=d.mode;f==App.MODE_GOOGLE?f="googleDrive":f==App.MODE_ONEDRIVE&&(f="oneDrive");b.addItem(d.title+" ("+mxResources.get(f)+")",null,function(){a.loadFile(d.id)},c)})(d[f]);b.addSeparator(c)}b.addItem(mxResources.get("reset"),null,function(){a.resetRecent()},c)}));this.put("openFrom",new Menu(function(c,d){null!=a.drive?c.addItem(mxResources.get("googleDrive")+"...",null,function(){a.pickFile(App.MODE_GOOGLE)}, +d):l&&c.addItem(mxResources.get("googleDrive")+" ("+mxResources.get("loading")+"...)",null,function(){},d,null,!1);null!=a.gitHub&&c.addItem(mxResources.get("github")+"...",null,function(){a.pickFile(App.MODE_GITHUB)},d);null!=a.dropbox?c.addItem(mxResources.get("dropbox")+"...",null,function(){a.pickFile(App.MODE_DROPBOX)},d):p&&c.addItem(mxResources.get("dropbox")+" ("+mxResources.get("loading")+"...)",null,function(){},d,null,!1);null!=a.oneDrive?c.addItem(mxResources.get("oneDrive")+"...",null, +function(){a.pickFile(App.MODE_ONEDRIVE)},d):n&&c.addItem(mxResources.get("oneDrive")+" ("+mxResources.get("loading")+"...)",null,function(){},d,null,!1);null!=a.trello?c.addItem(mxResources.get("trello")+"...",null,function(){a.pickFile(App.MODE_TRELLO)},d):b&&c.addItem(mxResources.get("trello")+" ("+mxResources.get("loading")+"...)",null,function(){},d,null,!1);c.addSeparator(d);isLocalStorage&&"0"!=urlParams.browser&&c.addItem(mxResources.get("browser")+"...",null,function(){a.pickFile(App.MODE_BROWSER)}, +d);mxClient.IS_IOS||c.addItem(mxResources.get("device")+"...",null,function(){a.pickFile(App.MODE_DEVICE)},d);a.isOffline()||(c.addSeparator(d),c.addItem(mxResources.get("url")+"...",null,function(){var b=new FilenameDialog(a,"",mxResources.get("open"),function(b){null!=b&&0<b.length&&(null==a.getCurrentFile()?window.location.hash="#U"+encodeURIComponent(b):window.openWindow((mxClient.IS_CHROMEAPP?"https://www.draw.io/":"https://"+location.host+"/")+window.location.search+"#U"+encodeURIComponent(b)))}, +mxResources.get("url"));a.showDialog(b.container,300,80,!0,!0);b.init()},d))}));Editor.enableCustomLibraries&&(this.put("newLibrary",new Menu(function(c,d){"undefined"!=typeof google&&"undefined"!=typeof google.picker&&(null!=a.drive?c.addItem(mxResources.get("googleDrive")+"...",null,function(){a.showLibraryDialog(null,null,null,null,App.MODE_GOOGLE)},d):l&&c.addItem(mxResources.get("googleDrive")+" ("+mxResources.get("loading")+"...)",null,function(){},d,null,!1));null!=a.gitHub&&c.addItem(mxResources.get("github")+ +"...",null,function(){a.showLibraryDialog(null,null,null,null,App.MODE_GITHUB)},d);null!=a.dropbox?c.addItem(mxResources.get("dropbox")+"...",null,function(){a.showLibraryDialog(null,null,null,null,App.MODE_DROPBOX)},d):p&&c.addItem(mxResources.get("dropbox")+" ("+mxResources.get("loading")+"...)",null,function(){},d,null,!1);null!=a.oneDrive?c.addItem(mxResources.get("oneDrive")+"...",null,function(){a.showLibraryDialog(null,null,null,null,App.MODE_ONEDRIVE)},d):n&&c.addItem(mxResources.get("oneDrive")+ +" ("+mxResources.get("loading")+"...)",null,function(){},d,null,!1);null!=a.trello?c.addItem(mxResources.get("trello")+"...",null,function(){a.showLibraryDialog(null,null,null,null,App.MODE_TRELLO)},d):b&&c.addItem(mxResources.get("trello")+" ("+mxResources.get("loading")+"...)",null,function(){},d,null,!1);c.addSeparator(d);isLocalStorage&&"0"!=urlParams.browser&&c.addItem(mxResources.get("browser")+"...",null,function(){a.showLibraryDialog(null,null,null,null,App.MODE_BROWSER)},d);mxClient.IS_IOS|| +c.addItem(mxResources.get("device")+"...",null,function(){a.showLibraryDialog(null,null,null,null,App.MODE_DEVICE)},d)})),this.put("openLibraryFrom",new Menu(function(c,d){"undefined"!=typeof google&&"undefined"!=typeof google.picker&&(null!=a.drive?c.addItem(mxResources.get("googleDrive")+"...",null,function(){a.pickLibrary(App.MODE_GOOGLE)},d):l&&c.addItem(mxResources.get("googleDrive")+" ("+mxResources.get("loading")+"...)",null,function(){},d,null,!1));null!=a.gitHub&&c.addItem(mxResources.get("github")+ +"...",null,function(){a.pickLibrary(App.MODE_GITHUB)},d);null!=a.dropbox?c.addItem(mxResources.get("dropbox")+"...",null,function(){a.pickLibrary(App.MODE_DROPBOX)},d):p&&c.addItem(mxResources.get("dropbox")+" ("+mxResources.get("loading")+"...)",null,function(){},d,null,!1);null!=a.oneDrive?c.addItem(mxResources.get("oneDrive")+"...",null,function(){a.pickLibrary(App.MODE_ONEDRIVE)},d):n&&c.addItem(mxResources.get("oneDrive")+" ("+mxResources.get("loading")+"...)",null,function(){},d,null,!1);null!= +a.trello?c.addItem(mxResources.get("trello")+"...",null,function(){a.pickLibrary(App.MODE_TRELLO)},d):b&&c.addItem(mxResources.get("trello")+" ("+mxResources.get("loading")+"...)",null,function(){},d,null,!1);c.addSeparator(d);isLocalStorage&&"0"!=urlParams.browser&&c.addItem(mxResources.get("browser")+"...",null,function(){a.pickLibrary(App.MODE_BROWSER)},d);mxClient.IS_IOS||c.addItem(mxResources.get("device")+"...",null,function(){a.pickLibrary(App.MODE_DEVICE)},d);a.isOffline()||(c.addSeparator(d), +c.addItem(mxResources.get("url")+"...",null,function(){var b=new FilenameDialog(a,"",mxResources.get("open"),function(b){if(null!=b&&0<b.length&&a.spinner.spin(document.body,mxResources.get("loading"))){var c=b;a.isCorsEnabledForUrl(b)||(c=PROXY_URL+"?url="+encodeURIComponent(b));mxUtils.get(c,function(c){if(200<=c.getStatus()&&299>=c.getStatus()){a.spinner.stop();try{a.loadLibrary(new UrlLibrary(this,c.getText(),b))}catch(E){a.handleError(E,mxResources.get("errorLoadingFile"))}}else a.spinner.stop(), +a.handleError(null,mxResources.get("errorLoadingFile"))},function(){a.spinner.stop();a.handleError(null,mxResources.get("errorLoadingFile"))})}},mxResources.get("url"));a.showDialog(b.container,300,80,!0,!0);b.init()},d))})));this.put("edit",new Menu(mxUtils.bind(this,function(a,b){this.addMenuItems(a,"undo redo - cut copy paste delete - duplicate - find - editData editTooltip - editStyle editGeometry - edit - editLink openLink - selectVertices selectEdges selectAll selectNone - lockUnlock".split(" "))}))); +this.put("view",new Menu(mxUtils.bind(this,function(b,c){this.addMenuItems(b,(null!=this.editorUi.format?["formatPanel"]:[]).concat(["outline","layers","-"]));this.addMenuItems(b,["-","search"],c);if(isLocalStorage||mxClient.IS_CHROMEAPP){var d=this.addMenuItem(b,"scratchpad",c);a.isOffline()&&!mxClient.IS_CHROMEAPP||this.addLinkToItem(d,"https://desk.draw.io/support/solutions/articles/16000042367")}this.addMenuItems(b,"shapes - pageView pageScale - scrollbars tooltips - grid guides".split(" "),c); +mxClient.IS_SVG&&(null==document.documentMode||9<document.documentMode)&&this.addMenuItem(b,"shadowVisible",c);this.addMenuItems(b,"- connectionArrows connectionPoints - resetView zoomIn zoomOut".split(" "),c)})));this.put("extras",new Menu(mxUtils.bind(this,function(b,c){"1"!=urlParams.embed&&(this.addSubmenu("theme",b,c),b.addSeparator(c));this.addMenuItems(b,["copyConnect","collapseExpand","-"],c);if("undefined"!==typeof MathJax){var d=this.addMenuItem(b,"mathematicalTypesetting",c);this.addLinkToItem(d, +"https://desk.draw.io/support/solutions/articles/16000032875")}"1"!=urlParams.embed&&this.addMenuItems(b,["autosave"],c);this.addMenuItems(b,["-","createShape","editDiagram"],c);b.addSeparator(c);"1"!=urlParams.embed&&(isLocalStorage||mxClient.IS_CHROMEAPP)&&this.addMenuItems(b,["showStartScreen"],c);!a.isOfflineApp()&&isLocalStorage&&this.addMenuItem(b,"plugins",c);b.addSeparator(c);this.addMenuItem(b,"tags",c);"1"==urlParams.newTempDlg&&(a.actions.addAction("templates",function(){var b=new TemplatesDialog; +a.showDialog(b.container,b.width,b.height,!0,!1,null,!1,!0);b.init(a,function(a){console.log(a)},null,null,null,"user",function(a,b){setTimeout(function(){b?a([{url:"123",title:"Test 1Test 1Test 1Test 1Test 1Test 1Test 11Test 1Test 11Test 1Test 1dgdsgdfg fdg dfgdfg dfg dfg"},{url:"123",title:"Test 2",imgUrl:"https://www.google.com.eg/images/branding/googlelogo/2x/googlelogo_color_272x92dp.png"},{url:"123",title:"Test 3",changedBy:"Ashraf Teleb",lastModifiedOn:"Yesterday"},{url:"123",title:"Test 4"}, +{url:"123",title:"Test 5"},{url:"123",title:"Test 6"}]):a([{url:"123",title:"Test 4",imgUrl:"https://images.pexels.com/photos/459225/pexels-photo-459225.jpeg"},{url:"123",title:"Test 5"},{url:"123",title:"Test 6"},{url:"123",title:"Test 1Test 1Test 1Test 1Test 1Test 1Test 11Test 1Test 11Test 1Test 1dgdsgdfg fdg dfgdfg dfg dfg"},{url:"123",title:"Test 2",imgUrl:"https://www.google.com.eg/images/branding/googlelogo/2x/googlelogo_color_272x92dp.png"},{url:"123",title:"Test 3",changedBy:"Ashraf Teleb", +lastModifiedOn:"Yesterday"}]);console.log(b)},1E3)},function(a,b,c){setTimeout(function(){b(c?[{url:"123",title:a+"Test 1Test 1Test 1Test 1Test 1Test 1Test 1"},{url:"123",title:a+"Test 2"},{url:"123",title:a+"Test 3"},{url:"123",title:a+"Test 4"},{url:"123",title:a+"Test 5"},{url:"123",title:a+"Test 6"}]:[{url:"123",title:a+"Test 5"},{url:"123",title:a+"Test 6"},{url:"123",title:a+"Test 1Test 1Test 1Test 1Test 1Test 1Test 1"},{url:"123",title:a+"Test 2"},{url:"123",title:a+"Test 3"},{url:"123",title:a+ +"Test 4"}])},2E3)},null)}),this.addMenuItem(b,"templates",c))})));this.put("file",new Menu(mxUtils.bind(this,function(b,c){if("1"==urlParams.embed)this.addSubmenu("importFrom",b,c),this.addSubmenu("exportAs",b,c),this.addSubmenu("embed",b,c),"1"==urlParams.libraries&&(this.addMenuItems(b,["-"],c),this.addSubmenu("newLibrary",b,c),this.addSubmenu("openLibraryFrom",b,c)),this.addMenuItems(b,"- pageSetup print - rename save".split(" "),c),"1"==urlParams.saveAndExit&&this.addMenuItems(b,["saveAndExit"], +c),this.addMenuItems(b,["exit"],c);else{var d=this.editorUi.getCurrentFile();null!=d&&d.constructor==DriveFile?(d.isRestricted()&&this.addMenuItems(b,["exportOptionsDisabled"],c),null==d.realtime?this.addMenuItems(b,["save","share","-","refresh","-"],c):(d.isAutosave()||this.addMenuItems(b,["save"],c),this.addMenuItems(b,["share","chatWindowTitle","-"],c))):this.addMenuItems(b,["new"],c);this.addSubmenu("openFrom",b,c);isLocalStorage&&this.addSubmenu("openRecent",b,c);null!=d&&d.constructor==DriveFile? +this.addMenuItems(b,["new","-","rename","makeCopy","moveToFolder"],c):(this.addMenuItems(b,["-","save","saveAs","-","rename"],c),a.isOfflineApp()?navigator.onLine&&"1"!=urlParams.stealth&&this.addMenuItems(b,["upload"],c):(this.addMenuItems(b,["makeCopy"],c),null!=d&&d.constructor==OneDriveFile&&this.addMenuItems(b,["moveToFolder"],c)));b.addSeparator(c);this.addSubmenu("importFrom",b,c);this.addSubmenu("exportAs",b,c);b.addSeparator(c);this.addSubmenu("embed",b,c);this.addSubmenu("publish",b,c); +b.addSeparator(c);this.addSubmenu("newLibrary",b,c);this.addSubmenu("openLibraryFrom",b,c);null==d||d.constructor!=DriveFile&&d.constructor!=DropboxFile||this.addMenuItems(b,["-","revisionHistory"],c);null!=d&&d.constructor==DriveFile&&this.addMenuItems(b,["createRevision"],c);this.addMenuItems(b,["-","pageSetup"],c);mxClient.IS_IOS&&navigator.standalone||this.addMenuItems(b,["print"],c);this.addMenuItems(b,["-","close"])}})))};var d=Menus.prototype.menuCreated;Menus.prototype.menuCreated=function(a, +e){if(480>=screen.width&&a==this.get("help")){e.style.paddingRight="0px";e.style.paddingLeft="0px";e.innerHTML="";var c=document.createElement("img");c.setAttribute("border","0");c.setAttribute("valign","bottom");c.setAttribute("src",Editor.helpImage);e.appendChild(c)}d.apply(this,arguments)}})();function DiagramPage(a){this.node=a;(null==this.node.hasAttribute&&null==this.node.getAttribute("id")||null!=this.node.hasAttribute&&!this.node.hasAttribute("id"))&&this.node.setAttribute("id",Editor.guid())}DiagramPage.prototype.node=null;DiagramPage.prototype.root=null;DiagramPage.prototype.viewState=null;DiagramPage.prototype.getId=function(){return this.node.getAttribute("id")};DiagramPage.prototype.getName=function(){return this.node.getAttribute("name")}; DiagramPage.prototype.setName=function(a){null==a?this.node.removeAttribute("name"):this.node.setAttribute("name",a)};function RenamePage(a,e,d){this.ui=a;this.page=e;this.previous=this.name=d}RenamePage.prototype.execute=function(){var a=this.page.getName();this.page.setName(this.previous);this.name=this.previous;this.previous=a;this.ui.editor.graph.updatePlaceholders();this.ui.editor.fireEvent(new mxEventObject("pageRenamed"))}; function MovePage(a,e,d){this.ui=a;this.oldIndex=e;this.newIndex=d}MovePage.prototype.execute=function(){this.ui.pages.splice(this.newIndex,0,this.ui.pages.splice(this.oldIndex,1)[0]);var a=this.oldIndex;this.oldIndex=this.newIndex;this.newIndex=a;this.ui.editor.graph.updatePlaceholders();this.ui.editor.fireEvent(new mxEventObject("pageMoved"))}; function SelectPage(a,e){this.ui=a;this.previousPage=this.page=e;this.neverShown=!0;null!=e&&(this.neverShown=null==e.viewState,this.ui.updatePageRoot(e))} @@ -8179,11 +8186,11 @@ null==this.fileNode||null==this.pages||1==this.pages.length&&"0"==urlParams.page a.view.translate.x*a.view.scale+c.viewState.scrollLeft,a.container.scrollTop=a.view.translate.y*a.view.scale+c.viewState.scrollTop),d=c);null!=this.actions.layersWindow&&this.actions.layersWindow.refreshLayers();"undefined"!==typeof MathJax&&"undefined"!==typeof MathJax.Hub?1!=MathJax.Hub.queue.pending||null==this.editor||this.editor.graph.mathEnabled||MathJax.Hub.Queue(mxUtils.bind(this,function(){null!=this.editor&&this.editor.graph.refresh()})):"undefined"===typeof Editor.MathJaxClear||null!=this.editor&& this.editor.graph.mathEnabled||Editor.MathJaxClear()});this.editor.graph.model.addListener(mxEvent.CHANGE,mxUtils.bind(this,function(a,d){for(var e=d.getProperty("edit").changes,g=0;g<e.length;g++)if(e[g]instanceof SelectPage||e[g]instanceof RenamePage||e[g]instanceof MovePage||e[g]instanceof mxRootChange){c();break}}));null!=this.toolbar&&this.editor.addListener("pageSelected",this.toolbar.updateZoom)}; Graph.prototype.createViewState=function(a){var e=a.getAttribute("page"),d=parseFloat(a.getAttribute("pageScale")),c=parseFloat(a.getAttribute("pageWidth")),g=parseFloat(a.getAttribute("pageHeight")),k=a.getAttribute("background"),l=a.getAttribute("backgroundImage"),l=null!=l&&0<l.length?JSON.parse(l):null;return{gridEnabled:"0"!=a.getAttribute("grid"),gridSize:parseFloat(a.getAttribute("gridSize"))||mxGraph.prototype.gridSize,guidesEnabled:"0"!=a.getAttribute("guides"),foldingEnabled:"0"!=a.getAttribute("fold"), -shadowVisible:"1"==a.getAttribute("shadow"),pageVisible:this.isLightboxView()?!1:null!=e?"0"!=e:this.defaultPageVisible,background:null!=k&&0<k.length?k:this.defaultGraphBackground,backgroundImage:null!=l?new mxImage(l.src,l.width,l.height):null,pageScale:isNaN(d)?mxGraph.prototype.pageScale:d,pageFormat:isNaN(c)||isNaN(g)?this.pageFormat:new mxRectangle(0,0,c,c),tooltips:"0"!=a.getAttribute("tooltips"),connect:"0"!=a.getAttribute("connect"),arrows:"0"!=a.getAttribute("arrows"),mathEnabled:"1"==a.getAttribute("math"), -selectionCells:null,defaultParent:null,scrollbars:this.defaultScrollbars,scale:1}}; +shadowVisible:"1"==a.getAttribute("shadow"),pageVisible:this.isLightboxView()?!1:null!=e?"0"!=e:this.defaultPageVisible,background:null!=k&&0<k.length?k:this.defaultGraphBackground,backgroundImage:null!=l?new mxImage(l.src,l.width,l.height):null,pageScale:isNaN(d)?mxGraph.prototype.pageScale:d,pageFormat:isNaN(c)||isNaN(g)?mxSettings.getPageFormat():new mxRectangle(0,0,c,g),tooltips:"0"!=a.getAttribute("tooltips"),connect:"0"!=a.getAttribute("connect"),arrows:"0"!=a.getAttribute("arrows"),mathEnabled:"1"== +a.getAttribute("math"),selectionCells:null,defaultParent:null,scrollbars:this.defaultScrollbars,scale:1}}; Graph.prototype.saveViewState=function(a,e){e.setAttribute("grid",null==a||a.gridEnabled?"1":"0");e.setAttribute("gridSize",null!=a?a.gridSize:mxGraph.prototype.gridSize);e.setAttribute("guides",null==a||a.guidesEnabled?"1":"0");e.setAttribute("tooltips",null==a||a.tooltips?"1":"0");e.setAttribute("connect",null==a||a.connect?"1":"0");e.setAttribute("arrows",null==a||a.arrows?"1":"0");e.setAttribute("fold",null==a||a.foldingEnabled?"1":"0");e.setAttribute("page",null==a&&this.defaultPageVisible|| -null!=a&&a.pageVisible?"1":"0");e.setAttribute("pageScale",null!=a&&null!=a.pageScale?a.pageScale:mxGraph.prototype.pageScale);var d=null!=a?a.pageFormat:mxSettings.getPageFormat();null!=d&&(e.setAttribute("pageWidth",d.width),e.setAttribute("pageHeight",d.height));e.setAttribute("background",null!=a&&null!=a.background?a.background:this.defaultGraphBackground);null!=a&&null!=a.backgroundImage&&e.setAttribute("backgroundImage",JSON.stringify(a.backgroundImage));e.setAttribute("math",null!=a&&a.mathEnabled? -"1":"0");e.setAttribute("shadow",null!=a&&a.shadowVisible?"1":"0")}; +null!=a&&a.pageVisible?"1":"0");e.setAttribute("pageScale",null!=a&&null!=a.pageScale?a.pageScale:mxGraph.prototype.pageScale);var d=null!=a?a.pageFormat:mxSettings.getPageFormat();null!=d&&(e.setAttribute("pageWidth",d.width),e.setAttribute("pageHeight",d.height));null!=a&&null!=a.background&&e.setAttribute("background",a.background);null!=a&&null!=a.backgroundImage&&e.setAttribute("backgroundImage",JSON.stringify(a.backgroundImage));e.setAttribute("math",null!=a&&a.mathEnabled?"1":"0");e.setAttribute("shadow", +null!=a&&a.shadowVisible?"1":"0")}; Graph.prototype.getViewState=function(){return{defaultParent:this.defaultParent,currentRoot:this.view.currentRoot,gridEnabled:this.gridEnabled,gridSize:this.gridSize,guidesEnabled:this.graphHandler.guidesEnabled,foldingEnabled:this.foldingEnabled,shadowVisible:this.shadowVisible,scrollbars:this.scrollbars,pageVisible:this.pageVisible,background:this.background,backgroundImage:this.backgroundImage,pageScale:this.pageScale,pageFormat:this.pageFormat,tooltips:this.tooltipHandler.isEnabled(),connect:this.connectionHandler.isEnabled(), arrows:this.connectionArrowsEnabled,scale:this.view.scale,scrollLeft:this.container.scrollLeft-this.view.translate.x*this.view.scale,scrollTop:this.container.scrollTop-this.view.translate.y*this.view.scale,translate:this.view.translate.clone(),lastPasteXml:this.lastPasteXml,pasteCounter:this.pasteCounter,mathEnabled:this.mathEnabled}}; Graph.prototype.setViewState=function(a){null!=a?(this.lastPasteXml=a.lastPasteXml,this.pasteCounter=a.pasteCounter||0,this.mathEnabled=a.mathEnabled,this.gridEnabled=a.gridEnabled,this.gridSize=a.gridSize,this.graphHandler.guidesEnabled=a.guidesEnabled,this.foldingEnabled=a.foldingEnabled,this.setShadowVisible(a.shadowVisible,!1),this.scrollbars=a.scrollbars,this.pageVisible=a.pageVisible,this.background=a.background,this.backgroundImage=a.backgroundImage,this.pageScale=a.pageScale,this.pageFormat= @@ -8222,36 +8229,36 @@ c=c.cloneNode(!0);d=c.firstChild;if(null!=d)for(e.relatedPage.root=a.decodeCell( "selectDescendants";var e=Graph.prototype.foldCells;Graph.prototype.foldCells=function(a,c,d,p,n){c=null!=c?c:!1;null==d&&(d=this.getFoldableCells(this.getSelectionCells(),a));this.stopEditing();this.model.beginUpdate();try{for(var b=d.slice(),f=[],g=0;g<d.length;g++){var k=this.view.getState(d[g]),l=null!=k?k.style:this.getCellStyle(d[g]);"1"==mxUtils.getValue(l,"treeFolding","0")&&(this.traverse(d[g],!0,mxUtils.bind(this,function(a,b){null!=b&&f.push(b);a!=d[g]&&f.push(a);return a==d[g]||!this.model.isCollapsed(a)})), this.model.setCollapsed(d[g],a))}for(g=0;g<f.length;g++)this.model.setVisible(f[g],!a);d=b;d=e.apply(this,arguments)}finally{this.model.endUpdate()}return d};var d=EditorUi.prototype.init;EditorUi.prototype.init=function(){d.apply(this,arguments);this.editor.isChromelessView()&&!this.editor.editable||this.addTrees()};EditorUi.prototype.addTrees=function(){function c(a){return w.isVertex(a)&&d(a)}function d(a){var b=!1;null!=a&&(a=w.getParent(a),b=u.view.getState(a),u.view.getState(a),b="tree"==(null!= b?b.style:u.getCellStyle(a)).containerType);return b}function e(a){var b=!1;null!=a&&(a=w.getParent(a),b=u.view.getState(a),u.view.getState(a),b=null!=(null!=b?b.style:u.getCellStyle(a)).childLayout);return b}function p(a){a=u.view.getState(a);if(null!=a){var b=u.getIncomingEdges(a.cell);if(0<b.length&&(b=u.view.getState(b[0]),null!=b&&(b=b.absolutePoints,null!=b&&0<b.length&&(b=b[b.length-1],null!=b)))){if(b.y==a.y&&Math.abs(b.x-a.getCenterX())<a.width/2)return mxConstants.DIRECTION_SOUTH;if(b.y== -a.y+a.height&&Math.abs(b.x-a.getCenterX())<a.width/2)return mxConstants.DIRECTION_NORTH;if(b.x>a.getCenterX())return mxConstants.DIRECTION_WEST}}return mxConstants.DIRECTION_EAST}function n(a,b){b=null!=b?b:!0;u.model.beginUpdate();try{var c=u.model.getParent(a),d=u.getIncomingEdges(a),e=u.cloneCells([d[0],a]);u.model.setTerminal(e[0],u.model.getTerminal(d[0],!0),!0);var f=p(a),g=c.geometry;f==mxConstants.DIRECTION_SOUTH||f==mxConstants.DIRECTION_NORTH?e[1].geometry.x+=b?a.geometry.width+10:-e[1].geometry.width- -10:e[1].geometry.y+=b?a.geometry.height+10:-e[1].geometry.height-10;u.view.currentRoot!=c&&(e[1].geometry.x-=g.x,e[1].geometry.y-=g.y);var h=u.view.getState(a),k=u.view.scale;if(null!=h){var l=mxRectangle.fromRectangle(h);f==mxConstants.DIRECTION_SOUTH||f==mxConstants.DIRECTION_NORTH?l.x+=(b?a.geometry.width+10:-e[1].geometry.width-10)*k:l.y+=(b?a.geometry.height+10:-e[1].geometry.height-10)*k;var m=u.getOutgoingEdges(u.model.getTerminal(d[0],!0));if(null!=m){for(var n=f==mxConstants.DIRECTION_SOUTH|| -f==mxConstants.DIRECTION_NORTH,w=g=d=0;w<m.length;w++){var q=u.model.getTerminal(m[w],!1);if(f==p(q)){var t=u.view.getState(q);q!=a&&null!=t&&(n&&b!=t.getCenterX()<h.getCenterX()||!n&&b!=t.getCenterY()<h.getCenterY())&&mxUtils.intersects(l,t)&&(d=10+Math.max(d,(Math.min(l.x+l.width,t.x+t.width)-Math.max(l.x,t.x))/k),g=10+Math.max(g,(Math.min(l.y+l.height,t.y+t.height)-Math.max(l.y,t.y))/k))}}n?g=0:d=0;for(w=0;w<m.length;w++)if(q=u.model.getTerminal(m[w],!1),f==p(q)&&(t=u.view.getState(q),q!=a&&null!= -t&&(n&&b!=t.getCenterX()<h.getCenterX()||!n&&b!=t.getCenterY()<h.getCenterY()))){var v=[];u.traverse(t.cell,!0,function(a,b){null!=b&&v.push(b);v.push(a);return!0});u.moveCells(v,(b?1:-1)*d,(b?1:-1)*g)}}}return u.addCells(e,c)}finally{u.model.endUpdate()}}function b(a){u.model.beginUpdate();try{var b=p(a),c=u.getIncomingEdges(a),d=u.cloneCells([c[0],a]);u.model.setTerminal(c[0],d[1],!1);u.model.setTerminal(d[0],d[1],!0);u.model.setTerminal(d[0],a,!1);var e=u.model.getParent(a),f=e.geometry,g=[];u.view.currentRoot!= -e&&(d[1].geometry.x-=f.x,d[1].geometry.y-=f.y);u.traverse(a,!0,function(a,b){null!=b&&g.push(b);g.push(a);return!0});var h=a.geometry.width+40,k=a.geometry.height+40;b==mxConstants.DIRECTION_SOUTH?h=0:b==mxConstants.DIRECTION_NORTH?(h=0,k=-40):b==mxConstants.DIRECTION_WEST?(h=-40,k=0):b==mxConstants.DIRECTION_EAST&&(k=0);u.moveCells(g,h,k);return u.addCells(d,e)}finally{u.model.endUpdate()}}function f(a){u.model.beginUpdate();try{var b=u.model.getParent(a),c=u.getIncomingEdges(a),d=u.cloneCells([c[0], -a]);u.model.setTerminal(d[0],a,!0);var c=u.getOutgoingEdges(a),e=b.geometry,f=[];u.view.currentRoot==b&&(e=new mxRectangle);for(var g=0;g<c.length;g++){var h=u.model.getTerminal(c[g],!1);null!=h&&f.push(h)}var k=u.view.getBounds(f),l=p(a),m=u.view.translate,n=u.view.scale;l==mxConstants.DIRECTION_SOUTH?(d[1].geometry.x=null==k?a.geometry.x+(a.geometry.width-d[1].geometry.width)/2:(k.x+k.width)/n-m.x-e.x+10,d[1].geometry.y+=a.geometry.height-e.y+40):l==mxConstants.DIRECTION_NORTH?(d[1].geometry.x= -null==k?a.geometry.x+(a.geometry.width-d[1].geometry.width)/2:(k.x+k.width)/n-m.x+-e.x+10,d[1].geometry.y-=d[1].geometry.height-e.y+40):(d[1].geometry.x=l==mxConstants.DIRECTION_WEST?d[1].geometry.x-(d[1].geometry.width-e.x+40):d[1].geometry.x+(a.geometry.width-e.x+40),d[1].geometry.y=null==k?a.geometry.y+(a.geometry.height-d[1].geometry.height)/2:(k.y+k.height)/n-m.y+-e.y+10);return u.addCells(d,b)}finally{u.model.endUpdate()}}function h(a,b,c){a=u.getOutgoingEdges(a);c=u.view.getState(c);var d= -[];if(null!=c&&null!=a){for(var e=0;e<a.length;e++){var f=u.view.getState(u.model.getTerminal(a[e],!1));null!=f&&(!b&&Math.min(f.x+f.width,c.x+c.width)>=Math.max(f.x,c.x)||b&&Math.min(f.y+f.height,c.y+c.height)>=Math.max(f.y,c.y))&&d.push(f)}d.sort(function(a,c){return b?a.x+a.width-c.x-c.width:a.y+a.height-c.y-c.height})}return d}function t(a,b){var c=p(a),d=b==mxConstants.DIRECTION_EAST||b==mxConstants.DIRECTION_WEST;(c==mxConstants.DIRECTION_EAST||c==mxConstants.DIRECTION_WEST)==d&&c!=b?q.actions.get("selectParent").funct(): +a.y+a.height&&Math.abs(b.x-a.getCenterX())<a.width/2)return mxConstants.DIRECTION_NORTH;if(b.x>a.getCenterX())return mxConstants.DIRECTION_WEST}}return mxConstants.DIRECTION_EAST}function n(a,b){b=null!=b?b:!0;u.model.beginUpdate();try{var c=u.model.getParent(a),d=u.getIncomingEdges(a),f=u.cloneCells([d[0],a]);u.model.setTerminal(f[0],u.model.getTerminal(d[0],!0),!0);var e=p(a),g=c.geometry;e==mxConstants.DIRECTION_SOUTH||e==mxConstants.DIRECTION_NORTH?f[1].geometry.x+=b?a.geometry.width+10:-f[1].geometry.width- +10:f[1].geometry.y+=b?a.geometry.height+10:-f[1].geometry.height-10;u.view.currentRoot!=c&&(f[1].geometry.x-=g.x,f[1].geometry.y-=g.y);var h=u.view.getState(a),k=u.view.scale;if(null!=h){var l=mxRectangle.fromRectangle(h);e==mxConstants.DIRECTION_SOUTH||e==mxConstants.DIRECTION_NORTH?l.x+=(b?a.geometry.width+10:-f[1].geometry.width-10)*k:l.y+=(b?a.geometry.height+10:-f[1].geometry.height-10)*k;var m=u.getOutgoingEdges(u.model.getTerminal(d[0],!0));if(null!=m){for(var n=e==mxConstants.DIRECTION_SOUTH|| +e==mxConstants.DIRECTION_NORTH,q=g=d=0;q<m.length;q++){var w=u.model.getTerminal(m[q],!1);if(e==p(w)){var t=u.view.getState(w);w!=a&&null!=t&&(n&&b!=t.getCenterX()<h.getCenterX()||!n&&b!=t.getCenterY()<h.getCenterY())&&mxUtils.intersects(l,t)&&(d=10+Math.max(d,(Math.min(l.x+l.width,t.x+t.width)-Math.max(l.x,t.x))/k),g=10+Math.max(g,(Math.min(l.y+l.height,t.y+t.height)-Math.max(l.y,t.y))/k))}}n?g=0:d=0;for(q=0;q<m.length;q++)if(w=u.model.getTerminal(m[q],!1),e==p(w)&&(t=u.view.getState(w),w!=a&&null!= +t&&(n&&b!=t.getCenterX()<h.getCenterX()||!n&&b!=t.getCenterY()<h.getCenterY()))){var v=[];u.traverse(t.cell,!0,function(a,b){null!=b&&v.push(b);v.push(a);return!0});u.moveCells(v,(b?1:-1)*d,(b?1:-1)*g)}}}return u.addCells(f,c)}finally{u.model.endUpdate()}}function b(a){u.model.beginUpdate();try{var b=p(a),c=u.getIncomingEdges(a),d=u.cloneCells([c[0],a]);u.model.setTerminal(c[0],d[1],!1);u.model.setTerminal(d[0],d[1],!0);u.model.setTerminal(d[0],a,!1);var f=u.model.getParent(a),e=f.geometry,g=[];u.view.currentRoot!= +f&&(d[1].geometry.x-=e.x,d[1].geometry.y-=e.y);u.traverse(a,!0,function(a,b){null!=b&&g.push(b);g.push(a);return!0});var h=a.geometry.width+40,k=a.geometry.height+40;b==mxConstants.DIRECTION_SOUTH?h=0:b==mxConstants.DIRECTION_NORTH?(h=0,k=-40):b==mxConstants.DIRECTION_WEST?(h=-40,k=0):b==mxConstants.DIRECTION_EAST&&(k=0);u.moveCells(g,h,k);return u.addCells(d,f)}finally{u.model.endUpdate()}}function f(a){u.model.beginUpdate();try{var b=u.model.getParent(a),c=u.getIncomingEdges(a),d=u.cloneCells([c[0], +a]);u.model.setTerminal(d[0],a,!0);var c=u.getOutgoingEdges(a),f=b.geometry,e=[];u.view.currentRoot==b&&(f=new mxRectangle);for(var g=0;g<c.length;g++){var h=u.model.getTerminal(c[g],!1);null!=h&&e.push(h)}var k=u.view.getBounds(e),l=p(a),m=u.view.translate,n=u.view.scale;l==mxConstants.DIRECTION_SOUTH?(d[1].geometry.x=null==k?a.geometry.x+(a.geometry.width-d[1].geometry.width)/2:(k.x+k.width)/n-m.x-f.x+10,d[1].geometry.y+=a.geometry.height-f.y+40):l==mxConstants.DIRECTION_NORTH?(d[1].geometry.x= +null==k?a.geometry.x+(a.geometry.width-d[1].geometry.width)/2:(k.x+k.width)/n-m.x+-f.x+10,d[1].geometry.y-=d[1].geometry.height-f.y+40):(d[1].geometry.x=l==mxConstants.DIRECTION_WEST?d[1].geometry.x-(d[1].geometry.width-f.x+40):d[1].geometry.x+(a.geometry.width-f.x+40),d[1].geometry.y=null==k?a.geometry.y+(a.geometry.height-d[1].geometry.height)/2:(k.y+k.height)/n-m.y+-f.y+10);return u.addCells(d,b)}finally{u.model.endUpdate()}}function h(a,b,c){a=u.getOutgoingEdges(a);c=u.view.getState(c);var d= +[];if(null!=c&&null!=a){for(var f=0;f<a.length;f++){var e=u.view.getState(u.model.getTerminal(a[f],!1));null!=e&&(!b&&Math.min(e.x+e.width,c.x+c.width)>=Math.max(e.x,c.x)||b&&Math.min(e.y+e.height,c.y+c.height)>=Math.max(e.y,c.y))&&d.push(e)}d.sort(function(a,c){return b?a.x+a.width-c.x-c.width:a.y+a.height-c.y-c.height})}return d}function t(a,b){var c=p(a),d=b==mxConstants.DIRECTION_EAST||b==mxConstants.DIRECTION_WEST;(c==mxConstants.DIRECTION_EAST||c==mxConstants.DIRECTION_WEST)==d&&c!=b?q.actions.get("selectParent").funct(): c==b?(d=u.getOutgoingEdges(a),null!=d&&0<d.length&&u.setSelectionCell(u.model.getTerminal(d[0],!1))):(c=u.getIncomingEdges(a),null!=c&&0<c.length&&(d=h(u.model.getTerminal(c[0],!0),d,a),c=u.view.getState(a),null!=c&&(c=mxUtils.indexOf(d,c),0<=c&&(c+=b==mxConstants.DIRECTION_NORTH||b==mxConstants.DIRECTION_WEST?-1:1,0<=c&&c<=d.length-1&&u.setSelectionCell(d[c].cell)))))}var q=this,u=q.editor.graph,w=u.getModel();mxResources.parse("selectChildren=Select Children");mxResources.parse("selectSiblings=Select Siblings"); -mxResources.parse("selectDescendants=Select Descendants");mxResources.parse("selectParent=Select Parent");var z=q.menus.createPopupMenu;q.menus.createPopupMenu=function(a,b,d){z.apply(this,arguments);if(1==u.getSelectionCount()){b=u.getSelectionCell();var e=u.getOutgoingEdges(b);a.addSeparator();null!=e&&0<e.length&&(c(u.getSelectionCell())&&this.addMenuItems(a,["selectChildren"],null,d),this.addMenuItems(a,["selectDescendants"],null,d));c(u.getSelectionCell())&&(a.addSeparator(),0<u.getIncomingEdges(b).length&& +mxResources.parse("selectDescendants=Select Descendants");mxResources.parse("selectParent=Select Parent");var y=q.menus.createPopupMenu;q.menus.createPopupMenu=function(a,b,d){y.apply(this,arguments);if(1==u.getSelectionCount()){b=u.getSelectionCell();var f=u.getOutgoingEdges(b);a.addSeparator();null!=f&&0<f.length&&(c(u.getSelectionCell())&&this.addMenuItems(a,["selectChildren"],null,d),this.addMenuItems(a,["selectDescendants"],null,d));c(u.getSelectionCell())&&(a.addSeparator(),0<u.getIncomingEdges(b).length&& this.addMenuItems(a,["selectSiblings","selectParent"],null,d))}};q.actions.addAction("selectChildren",function(){if(u.isEnabled()&&1==u.getSelectionCount()){var a=u.getSelectionCell(),a=u.getOutgoingEdges(a);if(null!=a){for(var b=[],c=0;c<a.length;c++)b.push(u.model.getTerminal(a[c],!1));u.setSelectionCells(b)}}},null,null,"Alt+Shift+X");q.actions.addAction("selectSiblings",function(){if(u.isEnabled()&&1==u.getSelectionCount()){var a=u.getSelectionCell(),a=u.getIncomingEdges(a);if(null!=a&&0<a.length&& (a=u.getOutgoingEdges(u.model.getTerminal(a[0],!0)),null!=a)){for(var b=[],c=0;c<a.length;c++)b.push(u.model.getTerminal(a[c],!1));u.setSelectionCells(b)}}},null,null,"Alt+Shift+S");q.actions.addAction("selectParent",function(){if(u.isEnabled()&&1==u.getSelectionCount()){var a=u.getSelectionCell(),a=u.getIncomingEdges(a);null!=a&&0<a.length&&u.setSelectionCell(u.model.getTerminal(a[0],!0))}},null,null,"Alt+Shift+P");q.actions.addAction("selectDescendants",function(){if(u.isEnabled()&&1==u.getSelectionCount()){var a= -u.getSelectionCell(),b=[];u.traverse(a,!0,function(a,c){null!=c&&b.push(c);b.push(a);return!0});u.setSelectionCells(b)}},null,null,"Alt+Shift+D");var A=u.removeCells;u.removeCells=function(a,b){b=null!=b?b:!0;null==a&&(a=this.getDeletableCells(this.getSelectionCells()));b&&(a=this.getDeletableCells(this.addAllEdges(a)));for(var e=[],f=0;f<a.length;f++){var g=a[f];w.isEdge(g)&&d(g)&&(e.push(g),g=w.getTerminal(g,!1));c(g)?(u.traverse(g,!0,function(a,b){null!=b&&e.push(b);e.push(a);return!0}),g=u.getIncomingEdges(a[f]), -a=a.concat(g)):e.push(a[f])}a=e;return A.apply(this,arguments)};q.hoverIcons.getStateAt=function(a,b,d){return c(a.cell)?null:this.graph.view.getState(this.graph.getCellAt(b,d))};var m=u.duplicateCells;u.duplicateCells=function(a,b){a=null!=a?a:this.getSelectionCells();for(var d=a.slice(0),e=0;e<d.length;e++){var f=u.view.getState(d[e]);if(null!=f&&c(f.cell))for(var g=u.getIncomingEdges(f.cell),f=0;f<g.length;f++)mxUtils.remove(g[f],a)}this.model.beginUpdate();try{var h=m.call(this,a,b);if(h.length== -a.length)for(e=0;e<a.length;e++)if(c(a[e])){var k=u.getIncomingEdges(h[e]),g=u.getIncomingEdges(a[e]);if(0==k.length&&0<g.length){var l=this.cloneCells([g[0]])[0];this.addEdge(l,u.getDefaultParent(),this.model.getTerminal(g[0],!0),h[e])}}}finally{this.model.endUpdate()}return h};var v=u.moveCells;u.moveCells=function(a,b,d,e,f,g,h){var k=null;this.model.beginUpdate();try{var l=f,m=this.view.getState(f),p=null!=m?m.style:this.getCellStyle(f);if(null!=a&&c(f)&&"1"==mxUtils.getValue(p,"treeFolding", -"0")){for(var n=0;n<a.length;n++)if(c(a[n])||u.model.isEdge(a[n])&&null==u.model.getTerminal(a[n],!0)){f=u.model.getParent(a[n]);break}if(null!=l&&f!=l&&null!=this.view.getState(a[0])){var w=u.getIncomingEdges(a[0]);if(0<w.length){var q=u.view.getState(u.model.getTerminal(w[0],!0));if(null!=q){var t=u.view.getState(l);null!=t&&(b=(t.getCenterX()-q.getCenterX())/u.view.scale,d=(t.getCenterY()-q.getCenterY())/u.view.scale)}}}}k=v.apply(this,arguments);if(null!=k&&null!=a&&k.length==a.length)for(n=0;n< -k.length;n++)if(this.model.isEdge(k[n]))c(l)&&0>mxUtils.indexOf(k,this.model.getTerminal(k[n],!0))&&this.model.setTerminal(k[n],l,!0);else if(c(a[n])&&(w=u.getIncomingEdges(a[n]),0<w.length))if(!e)c(l)&&0>mxUtils.indexOf(a,this.model.getTerminal(w[0],!0))&&this.model.setTerminal(w[0],l,!0);else if(0==u.getIncomingEdges(k[n]).length){m=l;if(null==m||m==u.model.getParent(a[n]))m=u.model.getTerminal(w[0],!0);e=this.cloneCells([w[0]])[0];this.addEdge(e,u.getDefaultParent(),m,k[n])}}finally{this.model.endUpdate()}return k}; -if(null!=q.sidebar){var x=q.sidebar.dropAndConnect;q.sidebar.dropAndConnect=function(a,b,d,e){var f=u.model,g=null;f.beginUpdate();try{if(g=x.apply(this,arguments),c(a))for(var h=0;h<g.length;h++)if(f.isEdge(g[h])&&null==f.getTerminal(g[h],!0)){f.setTerminal(g[h],a,!0);var k=u.getCellGeometry(g[h]);k.points=null;null!=k.getTerminalPoint(!0)&&k.setTerminalPoint(null,!0)}}finally{f.endUpdate()}return g}}var C={88:q.actions.get("selectChildren"),84:q.actions.get("selectSubtree"),80:q.actions.get("selectParent"), +u.getSelectionCell(),b=[];u.traverse(a,!0,function(a,c){null!=c&&b.push(c);b.push(a);return!0});u.setSelectionCells(b)}},null,null,"Alt+Shift+D");var A=u.removeCells;u.removeCells=function(a,b){b=null!=b?b:!0;null==a&&(a=this.getDeletableCells(this.getSelectionCells()));b&&(a=this.getDeletableCells(this.addAllEdges(a)));for(var f=[],e=0;e<a.length;e++){var g=a[e];w.isEdge(g)&&d(g)&&(f.push(g),g=w.getTerminal(g,!1));c(g)?(u.traverse(g,!0,function(a,b){null!=b&&f.push(b);f.push(a);return!0}),g=u.getIncomingEdges(a[e]), +a=a.concat(g)):f.push(a[e])}a=f;return A.apply(this,arguments)};q.hoverIcons.getStateAt=function(a,b,d){return c(a.cell)?null:this.graph.view.getState(this.graph.getCellAt(b,d))};var m=u.duplicateCells;u.duplicateCells=function(a,b){a=null!=a?a:this.getSelectionCells();for(var d=a.slice(0),f=0;f<d.length;f++){var e=u.view.getState(d[f]);if(null!=e&&c(e.cell))for(var g=u.getIncomingEdges(e.cell),e=0;e<g.length;e++)mxUtils.remove(g[e],a)}this.model.beginUpdate();try{var h=m.call(this,a,b);if(h.length== +a.length)for(f=0;f<a.length;f++)if(c(a[f])){var k=u.getIncomingEdges(h[f]),g=u.getIncomingEdges(a[f]);if(0==k.length&&0<g.length){var l=this.cloneCells([g[0]])[0];this.addEdge(l,u.getDefaultParent(),this.model.getTerminal(g[0],!0),h[f])}}}finally{this.model.endUpdate()}return h};var v=u.moveCells;u.moveCells=function(a,b,d,f,e,g,h){var k=null;this.model.beginUpdate();try{var l=e,m=this.view.getState(e),p=null!=m?m.style:this.getCellStyle(e);if(null!=a&&c(e)&&"1"==mxUtils.getValue(p,"treeFolding", +"0")){for(var n=0;n<a.length;n++)if(c(a[n])||u.model.isEdge(a[n])&&null==u.model.getTerminal(a[n],!0)){e=u.model.getParent(a[n]);break}if(null!=l&&e!=l&&null!=this.view.getState(a[0])){var q=u.getIncomingEdges(a[0]);if(0<q.length){var w=u.view.getState(u.model.getTerminal(q[0],!0));if(null!=w){var t=u.view.getState(l);null!=t&&(b=(t.getCenterX()-w.getCenterX())/u.view.scale,d=(t.getCenterY()-w.getCenterY())/u.view.scale)}}}}k=v.apply(this,arguments);if(null!=k&&null!=a&&k.length==a.length)for(n=0;n< +k.length;n++)if(this.model.isEdge(k[n]))c(l)&&0>mxUtils.indexOf(k,this.model.getTerminal(k[n],!0))&&this.model.setTerminal(k[n],l,!0);else if(c(a[n])&&(q=u.getIncomingEdges(a[n]),0<q.length))if(!f)c(l)&&0>mxUtils.indexOf(a,this.model.getTerminal(q[0],!0))&&this.model.setTerminal(q[0],l,!0);else if(0==u.getIncomingEdges(k[n]).length){m=l;if(null==m||m==u.model.getParent(a[n]))m=u.model.getTerminal(q[0],!0);f=this.cloneCells([q[0]])[0];this.addEdge(f,u.getDefaultParent(),m,k[n])}}finally{this.model.endUpdate()}return k}; +if(null!=q.sidebar){var x=q.sidebar.dropAndConnect;q.sidebar.dropAndConnect=function(a,b,d,f){var e=u.model,g=null;e.beginUpdate();try{if(g=x.apply(this,arguments),c(a))for(var h=0;h<g.length;h++)if(e.isEdge(g[h])&&null==e.getTerminal(g[h],!0)){e.setTerminal(g[h],a,!0);var k=u.getCellGeometry(g[h]);k.points=null;null!=k.getTerminalPoint(!0)&&k.setTerminalPoint(null,!0)}}finally{e.endUpdate()}return g}}var C={88:q.actions.get("selectChildren"),84:q.actions.get("selectSubtree"),80:q.actions.get("selectParent"), 83:q.actions.get("selectSiblings")},B=q.onKeyDown;q.onKeyDown=function(a){try{if(u.isEnabled()&&!u.isEditing()&&c(u.getSelectionCell())&&1==u.getSelectionCount()){var d=null;0<u.getIncomingEdges(u.getSelectionCell()).length&&(9==a.which?d=mxEvent.isShiftDown(a)?b(u.getSelectionCell()):f(u.getSelectionCell()):13==a.which&&(d=n(u.getSelectionCell(),!mxEvent.isShiftDown(a))));if(null!=d&&0<d.length)1==d.length&&u.model.isEdge(d[0])?u.setSelectionCell(u.model.getTerminal(d[0],!1)):u.setSelectionCell(d[d.length- 1]),null!=q.hoverIcons&&q.hoverIcons.update(u.view.getState(u.getSelectionCell())),u.startEditingAtCell(u.getSelectionCell()),mxEvent.consume(a);else if(mxEvent.isAltDown(a)&&mxEvent.isShiftDown(a)){var e=C[a.keyCode];null!=e&&(e.funct(a),mxEvent.consume(a))}else 37==a.keyCode?(t(u.getSelectionCell(),mxConstants.DIRECTION_WEST),mxEvent.consume(a)):38==a.keyCode?(t(u.getSelectionCell(),mxConstants.DIRECTION_NORTH),mxEvent.consume(a)):39==a.keyCode?(t(u.getSelectionCell(),mxConstants.DIRECTION_EAST), -mxEvent.consume(a)):40==a.keyCode&&(t(u.getSelectionCell(),mxConstants.DIRECTION_SOUTH),mxEvent.consume(a))}}catch(M){console.log("error",M)}mxEvent.isConsumed(a)||B.apply(this,arguments)};var H=u.connectVertex;u.connectVertex=function(a,d,e,g,h,k){var l=u.getIncomingEdges(a);return c(a)&&0<l.length?(e=p(a),g=e==mxConstants.DIRECTION_EAST||e==mxConstants.DIRECTION_WEST,h=d==mxConstants.DIRECTION_EAST||d==mxConstants.DIRECTION_WEST,e==d?f(a):g==h?b(a):n(a,d!=mxConstants.DIRECTION_NORTH&&d!=mxConstants.DIRECTION_WEST)): -H.call(this,a,d,e,g,h,k)};u.getSubtree=function(a){var b=[a];c(a)&&!e(a)&&u.traverse(a,!0,function(a,c){null!=c&&0>mxUtils.indexOf(b,c)&&b.push(c);0>mxUtils.indexOf(b,a)&&b.push(a);return!0});return b};var E=mxVertexHandler.prototype.init;mxVertexHandler.prototype.init=function(){E.apply(this,arguments);c(this.state.cell)&&0<this.graph.getOutgoingEdges(this.state.cell).length&&(this.moveHandle=mxUtils.createImage(a),this.moveHandle.setAttribute("title","Move Subtree"),this.moveHandle.style.position= +mxEvent.consume(a)):40==a.keyCode&&(t(u.getSelectionCell(),mxConstants.DIRECTION_SOUTH),mxEvent.consume(a))}}catch(M){console.log("error",M)}mxEvent.isConsumed(a)||B.apply(this,arguments)};var F=u.connectVertex;u.connectVertex=function(a,d,e,g,h,k){var l=u.getIncomingEdges(a);return c(a)&&0<l.length?(e=p(a),g=e==mxConstants.DIRECTION_EAST||e==mxConstants.DIRECTION_WEST,h=d==mxConstants.DIRECTION_EAST||d==mxConstants.DIRECTION_WEST,e==d?f(a):g==h?b(a):n(a,d!=mxConstants.DIRECTION_NORTH&&d!=mxConstants.DIRECTION_WEST)): +F.call(this,a,d,e,g,h,k)};u.getSubtree=function(a){var b=[a];c(a)&&!e(a)&&u.traverse(a,!0,function(a,c){null!=c&&0>mxUtils.indexOf(b,c)&&b.push(c);0>mxUtils.indexOf(b,a)&&b.push(a);return!0});return b};var E=mxVertexHandler.prototype.init;mxVertexHandler.prototype.init=function(){E.apply(this,arguments);c(this.state.cell)&&0<this.graph.getOutgoingEdges(this.state.cell).length&&(this.moveHandle=mxUtils.createImage(a),this.moveHandle.setAttribute("title","Move Subtree"),this.moveHandle.style.position= "absolute",this.moveHandle.style.cursor="pointer",this.moveHandle.style.width="18px",this.moveHandle.style.height="18px",this.graph.container.appendChild(this.moveHandle),mxEvent.addGestureListeners(this.moveHandle,mxUtils.bind(this,function(a){this.graph.graphHandler.start(this.state.cell,mxEvent.getClientX(a),mxEvent.getClientY(a));this.graph.graphHandler.cells=this.graph.getSubtree(this.state.cell);this.graph.graphHandler.bounds=this.state.view.getBounds(this.graph.graphHandler.cells);this.graph.graphHandler.pBounds= -this.graph.graphHandler.getPreviewBounds(this.graph.graphHandler.cells);this.graph.graphHandler.cellWasClicked=!0;this.graph.isMouseTrigger=mxEvent.isMouseEvent(a);this.graph.isMouseDown=!0;mxEvent.consume(a)})))};var F=mxVertexHandler.prototype.redrawHandles;mxVertexHandler.prototype.redrawHandles=function(){F.apply(this,arguments);null!=this.moveHandle&&(this.moveHandle.style.left=this.state.x+this.state.width+(40>this.state.width?10:0)+2+"px",this.moveHandle.style.top=this.state.y+this.state.height+ +this.graph.graphHandler.getPreviewBounds(this.graph.graphHandler.cells);this.graph.graphHandler.cellWasClicked=!0;this.graph.isMouseTrigger=mxEvent.isMouseEvent(a);this.graph.isMouseDown=!0;mxEvent.consume(a)})))};var G=mxVertexHandler.prototype.redrawHandles;mxVertexHandler.prototype.redrawHandles=function(){G.apply(this,arguments);null!=this.moveHandle&&(this.moveHandle.style.left=this.state.x+this.state.width+(40>this.state.width?10:0)+2+"px",this.moveHandle.style.top=this.state.y+this.state.height+ (40>this.state.height?10:0)+2+"px")};var L=mxVertexHandler.prototype.destroy;mxVertexHandler.prototype.destroy=function(a,b){L.apply(this,arguments);null!=this.moveHandle&&(this.moveHandle.parentNode.removeChild(this.moveHandle),this.moveHandle=null)}};if("undefined"!==typeof Sidebar){var c=Sidebar.prototype.createAdvancedShapes;Sidebar.prototype.createAdvancedShapes=function(){var a=c.apply(this,arguments),d=this.editorUi.editor.graph;return a.concat([this.addEntry("tree container",function(){var a= new mxCell("Tree Container",new mxGeometry(0,0,220,160),"swimlane;html=1;startSize=20;horizontal=1;containerType=tree;");a.vertex=!0;return sb.createVertexTemplateFromCells([a],a.geometry.width,a.geometry.height,a.value)}),this.addEntry("tree mindmap central idea branch topic",function(){var a=new mxCell("Mindmap",new mxGeometry(0,0,420,126),"swimlane;html=1;startSize=20;horizontal=1;containerType=tree;");a.vertex=!0;var c=new mxCell("Central Idea",new mxGeometry(160,60,100,40),"ellipse;whiteSpace=wrap;html=1;align=center;container=1;recursiveResize=0;treeFolding=1;"); -c.vertex=!0;var d=new mxCell("Topic",new mxGeometry(320,40,80,20),"whiteSpace=wrap;html=1;rounded=1;arcSize=50;align=center;verticalAlign=middle;container=1;recursiveResize=0;strokeWidth=1;autosize=1;spacing=4;treeFolding=1;");d.vertex=!0;var b=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=entityRelationEdgeStyle;startArrow=none;endArrow=none;segment=10;curved=1;");b.geometry.relative=!0;b.edge=!0;c.insertEdge(b,!0);d.insertEdge(b,!1);var e=new mxCell("Branch",new mxGeometry(320,80,72,26),"whiteSpace=wrap;html=1;shape=partialRectangle;top=0;left=0;bottom=1;right=0;points=[[0,1],[1,1]];strokeColor=#000000;fillColor=none;align=center;verticalAlign=bottom;routingCenterY=0.5;snapToPoint=1;container=1;recursiveResize=0;autosize=1;treeFolding=1;"); -e.vertex=!0;var g=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=entityRelationEdgeStyle;startArrow=none;endArrow=none;segment=10;curved=1;");g.geometry.relative=!0;g.edge=!0;c.insertEdge(g,!0);e.insertEdge(g,!1);var k=new mxCell("Topic",new mxGeometry(20,40,80,20),"whiteSpace=wrap;html=1;rounded=1;arcSize=50;align=center;verticalAlign=middle;container=1;recursiveResize=0;strokeWidth=1;autosize=1;spacing=4;treeFolding=1;");k.vertex=!0;var q=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=entityRelationEdgeStyle;startArrow=none;endArrow=none;segment=10;curved=1;"); -q.geometry.relative=!0;q.edge=!0;c.insertEdge(q,!0);k.insertEdge(q,!1);var u=new mxCell("Branch",new mxGeometry(20,80,72,26),"whiteSpace=wrap;html=1;shape=partialRectangle;top=0;left=0;bottom=1;right=0;points=[[0,1],[1,1]];strokeColor=#000000;fillColor=none;align=center;verticalAlign=bottom;routingCenterY=0.5;snapToPoint=1;container=1;recursiveResize=0;autosize=1;treeFolding=1;");u.vertex=!0;var w=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=entityRelationEdgeStyle;startArrow=none;endArrow=none;segment=10;curved=1;"); -w.geometry.relative=!0;w.edge=!0;c.insertEdge(w,!0);u.insertEdge(w,!1);a.insert(b);a.insert(g);a.insert(q);a.insert(w);a.insert(c);a.insert(d);a.insert(e);a.insert(k);a.insert(u);return sb.createVertexTemplateFromCells([a],a.geometry.width,a.geometry.height,a.value)}),this.addEntry("tree mindmap central idea",function(){var a=new mxCell("Central Idea",new mxGeometry(0,0,100,40),"ellipse;whiteSpace=wrap;html=1;align=center;container=1;recursiveResize=0;treeFolding=1;");a.vertex=!0;return sb.createVertexTemplateFromCells([a], +c.vertex=!0;var d=new mxCell("Topic",new mxGeometry(320,40,80,20),"whiteSpace=wrap;html=1;rounded=1;arcSize=50;align=center;verticalAlign=middle;container=1;recursiveResize=0;strokeWidth=1;autosize=1;spacing=4;treeFolding=1;");d.vertex=!0;var b=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=entityRelationEdgeStyle;startArrow=none;endArrow=none;segment=10;curved=1;");b.geometry.relative=!0;b.edge=!0;c.insertEdge(b,!0);d.insertEdge(b,!1);var f=new mxCell("Branch",new mxGeometry(320,80,72,26),"whiteSpace=wrap;html=1;shape=partialRectangle;top=0;left=0;bottom=1;right=0;points=[[0,1],[1,1]];strokeColor=#000000;fillColor=none;align=center;verticalAlign=bottom;routingCenterY=0.5;snapToPoint=1;container=1;recursiveResize=0;autosize=1;treeFolding=1;"); +f.vertex=!0;var e=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=entityRelationEdgeStyle;startArrow=none;endArrow=none;segment=10;curved=1;");e.geometry.relative=!0;e.edge=!0;c.insertEdge(e,!0);f.insertEdge(e,!1);var g=new mxCell("Topic",new mxGeometry(20,40,80,20),"whiteSpace=wrap;html=1;rounded=1;arcSize=50;align=center;verticalAlign=middle;container=1;recursiveResize=0;strokeWidth=1;autosize=1;spacing=4;treeFolding=1;");g.vertex=!0;var k=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=entityRelationEdgeStyle;startArrow=none;endArrow=none;segment=10;curved=1;"); +k.geometry.relative=!0;k.edge=!0;c.insertEdge(k,!0);g.insertEdge(k,!1);var u=new mxCell("Branch",new mxGeometry(20,80,72,26),"whiteSpace=wrap;html=1;shape=partialRectangle;top=0;left=0;bottom=1;right=0;points=[[0,1],[1,1]];strokeColor=#000000;fillColor=none;align=center;verticalAlign=bottom;routingCenterY=0.5;snapToPoint=1;container=1;recursiveResize=0;autosize=1;treeFolding=1;");u.vertex=!0;var w=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=entityRelationEdgeStyle;startArrow=none;endArrow=none;segment=10;curved=1;"); +w.geometry.relative=!0;w.edge=!0;c.insertEdge(w,!0);u.insertEdge(w,!1);a.insert(b);a.insert(e);a.insert(k);a.insert(w);a.insert(c);a.insert(d);a.insert(f);a.insert(g);a.insert(u);return sb.createVertexTemplateFromCells([a],a.geometry.width,a.geometry.height,a.value)}),this.addEntry("tree mindmap central idea",function(){var a=new mxCell("Central Idea",new mxGeometry(0,0,100,40),"ellipse;whiteSpace=wrap;html=1;align=center;container=1;recursiveResize=0;treeFolding=1;");a.vertex=!0;return sb.createVertexTemplateFromCells([a], a.geometry.width,a.geometry.height,a.value)}),this.addEntry("tree mindmap branch",function(){var a=new mxCell("Branch",new mxGeometry(0,0,80,20),"whiteSpace=wrap;html=1;shape=partialRectangle;top=0;left=0;bottom=1;right=0;points=[[0,1],[1,1]];strokeColor=#000000;fillColor=none;align=center;verticalAlign=bottom;routingCenterY=0.5;snapToPoint=1;container=1;recursiveResize=0;autosize=1;treeFolding=1;");a.vertex=!0;var c=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=entityRelationEdgeStyle;startArrow=none;endArrow=none;segment=10;curved=1;"); c.geometry.setTerminalPoint(new mxPoint(-40,40),!0);c.geometry.relative=!0;c.edge=!0;a.insertEdge(c,!1);return sb.createVertexTemplateFromCells([a,c],a.geometry.width,a.geometry.height,a.value)}),this.addEntry("tree mindmap sub topic",function(){var a=new mxCell("Sub Topic",new mxGeometry(0,0,72,26),"whiteSpace=wrap;html=1;rounded=1;arcSize=50;align=center;verticalAlign=middle;container=1;recursiveResize=0;strokeWidth=1;autosize=1;spacing=4;treeFolding=1;");a.vertex=!0;var c=new mxCell("",new mxGeometry(0, 0,0,0),"edgeStyle=entityRelationEdgeStyle;startArrow=none;endArrow=none;segment=10;curved=1;");c.geometry.setTerminalPoint(new mxPoint(-40,40),!0);c.geometry.relative=!0;c.edge=!0;a.insertEdge(c,!1);return sb.createVertexTemplateFromCells([a,c],a.geometry.width,a.geometry.height,a.value)}),this.addEntry("tree orgchart organization division",function(){var a=new mxCell("Orgchart",new mxGeometry(0,0,280,220),"swimlane;html=1;startSize=20;horizontal=1;containerType=tree;");a.vertex=!0;var c=new mxCell("Organization", @@ -8267,7 +8274,7 @@ g.className="geTitle";b.appendChild(g);return g}var d=document.createElement("di d.style.cssText="position:absolute;left:50%;width:50%;border-top:1px solid lightgray;height:30px;bottom:0px;text-align:center;cursor:pointer;padding:0px;border-left: 1px solid lightgray;";d.className="geTitle";f=document.createElement("span");f.style.cssText="position:relative;top:6px;";mxUtils.write(f,mxResources.get("openLibrary"));d.appendChild(f);b.appendChild(d);mxEvent.addListener(d,"click",a.actions.get("openLibrary").funct)}else d=c("newLibrary",mxResources.get("newLibrary")),d.style.left= "0",d=c("openLibraryFrom",mxResources.get("openLibraryFrom")),d.style.borderLeft="1px solid lightgray",d.style.left="50%";b.appendChild(a.sidebar.container);b.style.overflow="hidden";return b});a.sidebarWindow.window.minimumSize=new mxRectangle(0,0,90,90);a.sidebarWindow.window.setVisible(!0);a.getLocalData("sidebar",function(b){a.sidebar.showEntries(b,null,!0)});a.restoreLibraries()}else a.sidebarWindow.window.setVisible(!a.sidebarWindow.window.isVisible());a.sidebarWindow.window.isVisible()&&a.sidebarWindow.window.fit()} if("1"==urlParams.lightbox||"0"==urlParams.chrome||"undefined"===typeof window.Format||"undefined"===typeof window.Menus)window.uiTheme=null;else{var d=window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth;try{var c=document.createElement("style");c.type="text/css";c.innerHTML="* { -webkit-font-smoothing: antialiased; }html body .mxWindow button.geBtn { font-size:12px !important; margin-left: 0;}html body div.diagramContainer button, html body button.geBtn { font-size:14px; font-weight:700;border-radius: 5px; }html body button.geBtn:active { opacity: 0.6; }.geDialog input, .geToolbarContainer input, .mxWindow input {padding:2px !important;display:inline-block !important; }div.geDialog { border-radius: 5px; }html body div.geDialog button.geBigButton { color: #fff !important; }.mxWindow button, .geDialog select, .mxWindow select { display:inline-block; }html body .mxWindow .geColorBtn, html body .geDialog .geColorBtn { background: none; }html body div.diagramContainer button, html body .mxWindow button, html body .geDialog button { min-width: 0px; border-radius: 5px; color: #353535 !important; border-color: rgb(216, 216, 216); }div.diagramContainer button.geBtn, .mxWindow button.geBtn, .geDialog button.geBtn { min-width:72px; font-weight: 600; background: none; }div.diagramContainer button.geBtn:hover, .mxWindow button.geBtn:hover, .geDialog button.geBtn:hover { box-shadow: none; border-color: rgb(216, 216, 216); }div.diagramContainer button.gePrimaryBtn, .mxWindow button.gePrimaryBtn, .geDialog button.gePrimaryBtn, html body .gePrimaryBtn { background: #29b6f2; color: #fff !important; border: none; box-shadow: none; }html body .gePrimaryBtn:hover { background: #29b6f2; border: none; box-shadow: inherit; }html body button.gePrimaryBtn:hover { background: #29b6f2; border: none; }.geBtn button { min-width:72px !important; }div.geToolbarContainer a.geButton { margin:2px; padding: 0 2px 4px 2px; } .geDialog, .mxWindow td.mxWindowPane *, div.geSprite, td.mxWindowTitle, .geDiagramContainer { box-sizing:content-box; }.mxWindow div button.geStyleButton { box-sizing: border-box; }table.mxWindow td.mxWindowPane button.geColorBtn { padding:0px; box-sizing: border-box; }td.mxWindowPane .geSidebarContainer button { padding:2px 0 2px 0; box-sizing: border-box; }html body .geMenuItem { font-size:14px; text-decoration: none; font-weight: normal; padding: 6px 10px 6px 10px; border: none; border-radius: 5px; color: #353535; box-shadow: inset 0 0 0 1px rgba(0,0,0,.11), inset 0 -1px 0 0 rgba(0,0,0,.08), 0 1px 2px 0 rgba(0,0,0,.04); }a.geMenuItem:active { opacity: 0.4; }.geToolbarContainer { background:#fff !important; }div.mxWindow .geSidebarContainer .geTitle { background-color:#fdfdfd; }div.mxWindow .geSidebarContainer .geTitle:hover { background-color:#fafafa; }div.geSidebar { background-color: #fff !important;}div.mxWindow td.mxWindowPane button { background-image: none; float: none; }td.mxWindowTitle { height: 22px !important; background: none !important; font-size: 13px !important; text-align:center !important; border-bottom:1px solid lightgray; }div.mxWindow, div.mxWindowTitle { background-image: none !important; background-color:#fff !important; }div.mxWindow { border-radius:5px; box-shadow: 0px 0px 2px #C0C0C0 !important;}div.mxWindow * { font-family: inherit !important; }html div.geVerticalHandle { position:absolute;bottom:0px;left:50%;cursor:row-resize;width:11px;height:11px;background:white;margin-bottom:-6px; margin-left:-6px; border: none; border-radius: 6px; box-shadow: inset 0 0 0 1px rgba(0,0,0,.11), inset 0 -1px 0 0 rgba(0,0,0,.08), 0 1px 2px 0 rgba(0,0,0,.04); }html div.geInactivePage { background: rgb(249, 249, 249) !important; color:lightgray !important; } html div.geActivePage { background: white !important;color: #353535 !important; } html div.mxRubberband { border:1px solid; border-color: #29b6f2 !important; background:rgba(41,182,242,0.5) !important; } html body div.mxPopupMenu { border-radius:5px; border:1px solid #c0c0c0; padding:5px 0 5px 0; box-shadow: 0px 4px 17px -4px rgba(96,96,96,1); } html table.mxPopupMenu td.mxPopupMenuItem { color: #353535; font-size: 14px; padding-top: 4px; padding-bottom: 4px; }html table.mxPopupMenu tr.mxPopupMenuItemHover { background-color: #29b6f2; }html tr.mxPopupMenuItemHover td.mxPopupMenuItem, html tr.mxPopupMenuItemHover td.mxPopupMenuItem span { color: #fff !important; }html tr.mxPopupMenuItem, html td.mxPopupMenuItem { transition-property: none !important; }html table.mxPopupMenu hr { height: 2px; background-color: rgba(0,0,0,.07); margin: 5px 0; }"; -document.getElementsByTagName("head")[0].appendChild(c)}catch(w){}var g=function(a,b,c,d,e,f,g){a=document.createElement("div");a.className="geSidebarContainer";a.style.position="absolute";a.style.width="100%";a.style.height="100%";a.style.border="1px solid whiteSmoke";a.style.overflowX="hidden";a.style.overflowY="auto";g(a);this.window=new mxWindow(b,a,c,d,e,f,!0,!0);this.window.destroyOnClose=!1;this.window.setMaximizable(!1);this.window.setResizable(!0);this.window.setClosable(!0);this.window.setVisible(!0); +document.getElementsByTagName("head")[0].appendChild(c)}catch(w){}var g=function(a,b,c,d,f,e,g){a=document.createElement("div");a.className="geSidebarContainer";a.style.position="absolute";a.style.width="100%";a.style.height="100%";a.style.border="1px solid whiteSmoke";a.style.overflowX="hidden";a.style.overflowY="auto";g(a);this.window=new mxWindow(b,a,c,d,f,e,!0,!0);this.window.destroyOnClose=!1;this.window.setMaximizable(!1);this.window.setResizable(!0);this.window.setClosable(!0);this.window.setVisible(!0); this.window.setLocation=function(a,b){var c=window.innerHeight||document.documentElement.clientHeight||document.body.clientHeight;a=Math.max(0,Math.min(a,(window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth)-this.table.clientWidth));b=Math.max(0,Math.min(b,c-this.table.clientHeight-48));this.getX()==a&&this.getY()==b||mxWindow.prototype.setLocation.apply(this,arguments)}};Editor.checkmarkImage=Graph.createSvgImage(22,18,'<path transform="translate(4 0)" d="M7.181,15.007a1,1,0,0,1-.793-0.391L3.222,10.5A1,1,0,1,1,4.808,9.274L7.132,12.3l6.044-8.86A1,1,0,1,1,14.83,4.569l-6.823,10a1,1,0,0,1-.8.437H7.181Z" fill="#29b6f2"/>').src; mxWindow.prototype.closeImage=Graph.createSvgImage(18,10,'<path d="M 5 1 L 13 9 M 13 1 L 5 9" stroke="#C0C0C0" stroke-width="2"/>').src;mxWindow.prototype.minimizeImage=Graph.createSvgImage(14,10,'<path d="M 3 7 L 7 3 L 11 7" stroke="#C0C0C0" stroke-width="2" fill="#ffffff"/>').src;mxWindow.prototype.normalizeImage=Graph.createSvgImage(14,10,'<path d="M 3 3 L 7 7 L 11 3" stroke="#C0C0C0" stroke-width="2" fill="#ffffff"/>').src;mxConstraintHandler.prototype.pointImage=Graph.createSvgImage(5,5,'<path d="m 0 0 L 5 5 M 0 5 L 5 0" stroke="#29b6f2"/>'); mxOutline.prototype.sizerImage=null;mxConstants.VERTEX_SELECTION_COLOR="#C0C0C0";mxConstants.EDGE_SELECTION_COLOR="#C0C0C0";mxConstants.CONNECT_HANDLE_FILLCOLOR="#cee7ff";mxConstants.DEFAULT_VALID_COLOR="#29b6f2";mxConstants.GUIDE_COLOR="#C0C0C0";mxConstants.HIGHLIGHT_STROKEWIDTH=5;mxConstants.HIGHLIGHT_OPACITY=35;mxConstants.OUTLINE_COLOR="#29b6f2";mxConstants.OUTLINE_HANDLE_FILLCOLOR="#29b6f2";mxConstants.OUTLINE_HANDLE_STROKECOLOR="#fff";Graph.prototype.svgShadowColor="#3D4574";Graph.prototype.svgShadowOpacity= @@ -8288,20 +8295,20 @@ null);h.apply(this,arguments)};var t=EditorUi.prototype.setGraphEnabled;EditorUi b.actions.get("insertText").label=mxResources.get("text");b.actions.get("editDiagram").label=mxResources.get("formatXml")+"...";b.actions.get("insertRectangle").label=mxResources.get("rectangle");b.actions.get("insertEllipse").label=mxResources.get("ellipse");b.actions.get("insertRhombus").label=mxResources.get("rhombus");b.actions.get("insertImage").label=mxResources.get("image")+"...";b.actions.get("insertLink").label=mxResources.get("link")+"...";b.actions.get("createShape").label=mxResources.get("shape")+ "...";b.actions.get("outline").label=mxResources.get("outline")+"...";b.actions.get("layers").label=mxResources.get("layers")+"...";b.actions.put("importFile",new Action("File...",function(){c.popupMenuHandler.hideMenu();var a=document.createElement("input");a.setAttribute("type","file");mxEvent.addListener(a,"change",function(){null!=a.files&&b.importFiles(a.files,null,null,b.maxImageSize)});a.click()}));b.actions.put("importCsv",new Action(mxResources.get("csv")+"...",function(){c.popupMenuHandler.hideMenu(); b.showImportCsvDialog()}));b.actions.put("importText",new Action(mxResources.get("text")+"...",function(){var a=new ParseDialog(b,"Insert from Text");b.showDialog(a.container,620,420,!0,!1);a.init()}));b.actions.put("formatSql",new Action(mxResources.get("formatSql")+"...",function(){var a=new ParseDialog(b,"Insert from Text","formatSql");b.showDialog(a.container,620,420,!0,!1);a.init()}));b.actions.put("toggleShapes",new Action(mxResources.get("shapes")+"...",function(){e(b)}));b.actions.put("toggleFormat", -new Action(mxResources.get("format")+"...",function(){a(b)}));EditorUi.enablePlantUml&&!b.isOffline()&&b.actions.put("plantUml",new Action(mxResources.get("plantUml")+"...",function(){var a=new ParseDialog(b,"Insert from Text","plantUml");b.showDialog(a.container,620,420,!0,!1);a.init()}));this.put("diagram",new Menu(mxUtils.bind(this,function(a,c){b.menus.addSubmenu("extras",a,c,mxResources.get("preferences"));a.addSeparator(c);mxClient.IS_CHROMEAPP||EditorUi.isElectronApp?b.menus.addMenuItems(a, -"new open - save saveAs -".split(" "),c):"1"==urlParams.embed?(b.menus.addMenuItems(a,["-","save"],c),"1"==urlParams.saveAndExit&&b.menus.addMenuItems(a,["saveAndExit"],c),a.addSeparator(c)):(b.menus.addMenuItems(a,["new"],c),b.menus.addSubmenu("openFrom",a,c),a.addSeparator(c),b.menus.addSubmenu("save",a,c));b.menus.addSubmenu("exportAs",a,c);var d=b.getCurrentFile();null!=d&&d.constructor==DriveFile&&(b.menus.addMenuItems(a,["-","share"],c),null!=d.realtime&&b.menus.addMenuItems(a,["chatWindowTitle"], -c),a.addSeparator(c));b.menus.addMenuItems(a,"- outline layers - find tags".split(" "),c);mxClient.IS_IOS&&navigator.standalone||b.menus.addMenuItems(a,["-","print","-"],c);b.menus.addSubmenu("help",a,c);"1"==urlParams.embed?b.menus.addMenuItems(a,["-","exit"],c):b.menus.addMenuItems(a,["-","close"])})));if(isLocalStorage){var d=this.get("openFrom"),f=d.funct;d.funct=function(a,c){f.apply(this,arguments);a.addSeparator(c);b.menus.addSubmenu("openRecent",a,c)}}this.put("save",new Menu(mxUtils.bind(this, -function(a,c){var d=b.getCurrentFile();null!=d&&d.constructor==DriveFile?b.menus.addMenuItems(a,["createRevision","makeCopy","-","rename","moveToFolder"],c):(b.menus.addMenuItems(a,["save","saveAs","-","rename"],c),b.isOfflineApp()?navigator.onLine&&"1"!=urlParams.stealth&&this.addMenuItems(a,["upload"],c):b.menus.addMenuItems(a,["makeCopy"],c));null==d||d.constructor!=DriveFile&&d.constructor!=DropboxFile||b.menus.addMenuItems(a,["-","revisionHistory"],c);b.menus.addMenuItems(a,["-","autosave"], -c)})));var g=this.get("exportAs");this.put("exportAs",new Menu(mxUtils.bind(this,function(a,c){g.funct(a,c);mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||b.menus.addMenuItems(a,["publishLink"],c);a.addSeparator(c);b.menus.addSubmenu("embed",a,c)})));var h=this.get("language");this.put("extras",new Menu(mxUtils.bind(this,function(a,c){"1"!=urlParams.embed&&b.menus.addSubmenu("theme",a,c);null!=h&&b.menus.addSubmenu("language",a,c);a.addSeparator(c);b.menus.addMenuItems(a,["scrollbars","tooltips"], -c);"1"!=urlParams.embed&&(isLocalStorage||mxClient.IS_CHROMEAPP)&&b.menus.addMenuItems(a,["-","search","scratchpad","-","showStartScreen"],c);!b.isOfflineApp()&&isLocalStorage&&(a.addSeparator(c),b.menus.addMenuItem(a,"plugins",c))})));this.put("insertAdvanced",new Menu(mxUtils.bind(this,function(a,c){b.menus.addMenuItems(a,"importText plantUml - formatSql importCsv - createShape editDiagram".split(" "),c)})));mxResources.parse("insertLayout="+mxResources.get("layout"));mxResources.parse("insertAdvanced="+ -mxResources.get("advanced"));this.put("insert",new Menu(mxUtils.bind(this,function(a,c){b.menus.addMenuItems(a,"insertRectangle insertEllipse insertRhombus - insertText insertLink - insertImage".split(" "),c);mxClient.IS_CHROMEAPP||EditorUi.isElectronApp?b.menus.addMenuItems(a,["import"],c):b.menus.addSubmenu("importFrom",a,c);a.addSeparator(c);b.menus.addSubmenu("insertLayout",a,c);b.menus.addSubmenu("insertAdvanced",a,c)})));var k="horizontalFlow verticalFlow - horizontalTree verticalTree radialTree - organic circle".split(" "), -l=function(a,c,d,e){a.addItem(d,null,mxUtils.bind(this,function(){var a=new CreateGraphDialog(b,d,e);b.showDialog(a.container,620,420,!0,!1);a.init()}),c)};this.put("insertLayout",new Menu(mxUtils.bind(this,function(a,b){for(var c=0;c<k.length;c++)"-"==k[c]?a.addSeparator(b):l(a,b,mxResources.get(k[c])+"...",k[c])})));this.put("view",new Menu(mxUtils.bind(this,function(a,c){b.menus.addMenuItems(a,"grid guides - connectionArrows connectionPoints -".split(" "),c);if("undefined"!==typeof MathJax){var d= -b.menus.addMenuItem(a,"mathematicalTypesetting",c);b.menus.addLinkToItem(d,"https://desk.draw.io/support/solutions/articles/16000032875")}b.menus.addMenuItems(a,["copyConnect","collapseExpand","-","pageScale"],c)})))};var u=EditorUi.prototype.init;EditorUi.prototype.init=function(){function a(a,b,c,d){var e=g.menus.get(a),f=n.addMenu(mxResources.get(a),mxUtils.bind(this,function(){e.funct.apply(this,arguments)}),l);f.className="geMenuItem";f.style.display="inline-block";f.style.boxSizing="border-box"; -f.style.top="6px";f.style.marginRight="6px";f.style.height="30px";f.style.paddingTop="6px";f.style.paddingBottom="6px";f.setAttribute("title",mxResources.get(a));g.menus.menuCreated(e,f,"geMenuItem");null!=c?(f.style.backgroundImage="url("+c+")",f.style.backgroundPosition="center center",f.style.backgroundRepeat="no-repeat",f.style.backgroundSize="24px 24px",f.style.width="34px",f.innerHTML="",mxUtils.setOpacity(f,d||40)):b||(f.style.backgroundImage="url("+mxWindow.prototype.normalizeImage+")",f.style.backgroundPosition= -"right 6px center",f.style.backgroundRepeat="no-repeat",f.style.paddingRight="22px");return f}function b(a,b,c,d,e,f){var h=document.createElement("a");h.setAttribute("href","javascript:void(0)");h.className="geMenuItem";h.style.display="inline-block";h.style.boxSizing="border-box";h.style.height="30px";h.style.padding="6px";h.style.position="relative";h.style.verticalAlign="top";h.style.top="0px";null!=g.statusContainer?k.insertBefore(h,g.statusContainer):k.appendChild(h);null!=f?(h.style.backgroundImage= +new Action(mxResources.get("format")+"...",function(){a(b)}));EditorUi.enablePlantUml&&!b.isOffline()&&b.actions.put("plantUml",new Action(mxResources.get("plantUml")+"...",function(){var a=new ParseDialog(b,"Insert from Text","plantUml");b.showDialog(a.container,620,420,!0,!1);a.init()}));this.put("diagram",new Menu(mxUtils.bind(this,function(a,c){var d=b.getCurrentFile();b.menus.addSubmenu("extras",a,c,mxResources.get("preferences"));a.addSeparator(c);mxClient.IS_CHROMEAPP||EditorUi.isElectronApp? +b.menus.addMenuItems(a,"new open - save saveAs -".split(" "),c):"1"==urlParams.embed?(b.menus.addMenuItems(a,["-","save"],c),"1"==urlParams.saveAndExit&&b.menus.addMenuItems(a,["saveAndExit"],c),a.addSeparator(c)):(b.menus.addMenuItems(a,["new"],c),b.menus.addSubmenu("openFrom",a,c),a.addSeparator(c),b.menus.addSubmenu("save",a,c));b.menus.addSubmenu("exportAs",a,c);null!=d&&d.constructor==DriveFile&&(b.menus.addMenuItems(a,["-","share"],c),null!=d.realtime?b.menus.addMenuItems(a,["chatWindowTitle"], +c):b.menus.addMenuItems(a,["-","refresh"],c),a.addSeparator(c));b.menus.addMenuItems(a,"- outline layers - find tags".split(" "),c);mxClient.IS_IOS&&navigator.standalone||b.menus.addMenuItems(a,["-","print","-"],c);b.menus.addSubmenu("help",a,c);"1"==urlParams.embed?b.menus.addMenuItems(a,["-","exit"],c):b.menus.addMenuItems(a,["-","close"])})));if(isLocalStorage){var d=this.get("openFrom"),f=d.funct;d.funct=function(a,c){f.apply(this,arguments);a.addSeparator(c);b.menus.addSubmenu("openRecent",a, +c)}}this.put("save",new Menu(mxUtils.bind(this,function(a,c){var d=b.getCurrentFile();null!=d&&d.constructor==DriveFile?b.menus.addMenuItems(a,["createRevision","makeCopy","-","rename","moveToFolder"],c):(b.menus.addMenuItems(a,["save","saveAs","-","rename"],c),b.isOfflineApp()?navigator.onLine&&"1"!=urlParams.stealth&&this.addMenuItems(a,["upload"],c):b.menus.addMenuItems(a,["makeCopy"],c));null==d||d.constructor!=DriveFile&&d.constructor!=DropboxFile||b.menus.addMenuItems(a,["-","revisionHistory"], +c);b.menus.addMenuItems(a,["-","autosave"],c)})));var g=this.get("exportAs");this.put("exportAs",new Menu(mxUtils.bind(this,function(a,c){g.funct(a,c);mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||b.menus.addMenuItems(a,["publishLink"],c);a.addSeparator(c);b.menus.addSubmenu("embed",a,c)})));var h=this.get("language");this.put("extras",new Menu(mxUtils.bind(this,function(a,c){"1"!=urlParams.embed&&b.menus.addSubmenu("theme",a,c);null!=h&&b.menus.addSubmenu("language",a,c);a.addSeparator(c);b.menus.addMenuItems(a, +["scrollbars","tooltips"],c);"1"!=urlParams.embed&&(isLocalStorage||mxClient.IS_CHROMEAPP)&&b.menus.addMenuItems(a,["-","search","scratchpad","-","showStartScreen"],c);!b.isOfflineApp()&&isLocalStorage&&(a.addSeparator(c),b.menus.addMenuItem(a,"plugins",c))})));this.put("insertAdvanced",new Menu(mxUtils.bind(this,function(a,c){b.menus.addMenuItems(a,"importText plantUml - formatSql importCsv - createShape editDiagram".split(" "),c)})));mxResources.parse("insertLayout="+mxResources.get("layout")); +mxResources.parse("insertAdvanced="+mxResources.get("advanced"));this.put("insert",new Menu(mxUtils.bind(this,function(a,c){b.menus.addMenuItems(a,"insertRectangle insertEllipse insertRhombus - insertText insertLink - insertImage".split(" "),c);mxClient.IS_CHROMEAPP||EditorUi.isElectronApp?b.menus.addMenuItems(a,["import"],c):b.menus.addSubmenu("importFrom",a,c);a.addSeparator(c);b.menus.addSubmenu("insertLayout",a,c);b.menus.addSubmenu("insertAdvanced",a,c)})));var k="horizontalFlow verticalFlow - horizontalTree verticalTree radialTree - organic circle".split(" "), +l=function(a,c,d,f){a.addItem(d,null,mxUtils.bind(this,function(){var a=new CreateGraphDialog(b,d,f);b.showDialog(a.container,620,420,!0,!1);a.init()}),c)};this.put("insertLayout",new Menu(mxUtils.bind(this,function(a,b){for(var c=0;c<k.length;c++)"-"==k[c]?a.addSeparator(b):l(a,b,mxResources.get(k[c])+"...",k[c])})));this.put("view",new Menu(mxUtils.bind(this,function(a,c){b.menus.addMenuItems(a,"grid guides - connectionArrows connectionPoints -".split(" "),c);if("undefined"!==typeof MathJax){var d= +b.menus.addMenuItem(a,"mathematicalTypesetting",c);b.menus.addLinkToItem(d,"https://desk.draw.io/support/solutions/articles/16000032875")}b.menus.addMenuItems(a,["copyConnect","collapseExpand","-","pageScale"],c)})))};var u=EditorUi.prototype.init;EditorUi.prototype.init=function(){function a(a,b,c,d){var f=g.menus.get(a),e=n.addMenu(mxResources.get(a),mxUtils.bind(this,function(){f.funct.apply(this,arguments)}),l);e.className="geMenuItem";e.style.display="inline-block";e.style.boxSizing="border-box"; +e.style.top="6px";e.style.marginRight="6px";e.style.height="30px";e.style.paddingTop="6px";e.style.paddingBottom="6px";e.setAttribute("title",mxResources.get(a));g.menus.menuCreated(f,e,"geMenuItem");null!=c?(e.style.backgroundImage="url("+c+")",e.style.backgroundPosition="center center",e.style.backgroundRepeat="no-repeat",e.style.backgroundSize="24px 24px",e.style.width="34px",e.innerHTML="",mxUtils.setOpacity(e,d||40)):b||(e.style.backgroundImage="url("+mxWindow.prototype.normalizeImage+")",e.style.backgroundPosition= +"right 6px center",e.style.backgroundRepeat="no-repeat",e.style.paddingRight="22px");return e}function b(a,b,c,d,e,f){var h=document.createElement("a");h.setAttribute("href","javascript:void(0)");h.className="geMenuItem";h.style.display="inline-block";h.style.boxSizing="border-box";h.style.height="30px";h.style.padding="6px";h.style.position="relative";h.style.verticalAlign="top";h.style.top="0px";null!=g.statusContainer?k.insertBefore(h,g.statusContainer):k.appendChild(h);null!=f?(h.style.backgroundImage= "url("+f+")",h.style.backgroundPosition="center center",h.style.backgroundRepeat="no-repeat",h.style.backgroundSize="24px 24px",h.style.width="34px"):mxUtils.write(h,a);mxEvent.addListener(h,"click",function(a){"disabled"!=h.getAttribute("disabled")&&b(a);mxEvent.consume(a)});null==c&&(h.style.marginRight="4px");null!=d&&h.setAttribute("title",d);mxUtils.setOpacity(h,null!=f?40:100);null!=e&&(a=function(){e.isEnabled()?(h.removeAttribute("disabled"),mxUtils.setOpacity(h,null!=f?40:100),h.style.cursor= ""):(h.setAttribute("disabled","disabled"),mxUtils.setOpacity(h,null!=f?10:20),h.style.cursor="default")},e.addListener("stateChanged",a),a());return h}function c(a){var b=document.createElement("div");b.className="geMenuItem";b.style.display="inline-block";b.style.verticalAlign="top";b.style.marginRight="6px";b.style.padding="0 4px 0 4px";b.style.height="30px";b.style.position="relative";b.style.top="0px";for(var c=0;c<a.length;c++)null!=a[c]&&(a[c].style.margin="0px",a[c].style.boxShadow="none", -b.appendChild(a[c]));null!=g.statusContainer?k.insertBefore(b,g.statusContainer):k.appendChild(b);return b}function e(){for(var e=k.firstChild;null!=e;){var f=e.nextSibling;"geMenuItem"!=e.className&&"geItem"!=e.className||e.parentNode.removeChild(e);e=f}l=k.firstChild;d=window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth;(e=900>d)||a("diagram");c([e?a("diagram",null,IMAGE_PATH+"/drawlogo-gray.svg",100):null,b(mxResources.get("shapes"),g.actions.get("toggleShapes").funct, +b.appendChild(a[c]));null!=g.statusContainer?k.insertBefore(b,g.statusContainer):k.appendChild(b);return b}function f(){for(var e=k.firstChild;null!=e;){var f=e.nextSibling;"geMenuItem"!=e.className&&"geItem"!=e.className||e.parentNode.removeChild(e);e=f}l=k.firstChild;d=window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth;(e=900>d)||a("diagram");c([e?a("diagram",null,IMAGE_PATH+"/drawlogo-gray.svg",100):null,b(mxResources.get("shapes"),g.actions.get("toggleShapes").funct, null,mxResources.get("shapes"),g.actions.get("image"),e?"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTMgMTN2OGg4di04aC04ek0zIDIxaDh2LThIM3Y4ek0zIDN2OGg4VjNIM3ptMTMuNjYtMS4zMUwxMSA3LjM0IDE2LjY2IDEzbDUuNjYtNS42Ni01LjY2LTUuNjV6Ii8+PC9zdmc+":null),b(mxResources.get("format"),g.actions.get("toggleFormat").funct,null,mxResources.get("format")+" ("+g.actions.get("formatPanel").shortcut+")",g.actions.get("image"), e?"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTIgM2MtNC45NyAwLTkgNC4wMy05IDlzNC4wMyA5IDkgOWMuODMgMCAxLjUtLjY3IDEuNS0xLjUgMC0uMzktLjE1LS43NC0uMzktMS4wMS0uMjMtLjI2LS4zOC0uNjEtLjM4LS45OSAwLS44My42Ny0xLjUgMS41LTEuNUgxNmMyLjc2IDAgNS0yLjI0IDUtNSAwLTQuNDItNC4wMy04LTktOHptLTUuNSA5Yy0uODMgMC0xLjUtLjY3LTEuNS0xLjVTNS42NyA5IDYuNSA5IDggOS42NyA4IDEwLjUgNy4zMyAxMiA2LjUgMTJ6bTMtNEM4LjY3IDggOCA3LjMzIDggNi41UzguNjcgNSA5LjUgNXMxLjUuNjcgMS41IDEuNVMxMC4zMyA4IDkuNSA4em01IDBjLS44MyAwLTEuNS0uNjctMS41LTEuNVMxMy42NyA1IDE0LjUgNXMxLjUuNjcgMS41IDEuNVMxNS4zMyA4IDE0LjUgOHptMyA0Yy0uODMgMC0xLjUtLjY3LTEuNS0xLjVTMTYuNjcgOSAxNy41IDlzMS41LjY3IDEuNSAxLjUtLjY3IDEuNS0xLjUgMS41eiIvPjwvc3ZnPg==": null)]);f=a("insert",!0,e?"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTkgMTNoLTZ2NmgtMnYtNkg1di0yaDZWNWgydjZoNnYyeiIvPjwvc3ZnPg==":null,40);c([f,b(mxResources.get("delete"),g.actions.get("delete").funct,null,mxResources.get("delete"),g.actions.get("delete"),e?"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNNiAxOWMwIDEuMS45IDIgMiAyaDhjMS4xIDAgMi0uOSAyLTJWN0g2djEyek0xOSA0aC0zLjVsLTEtMWgtNWwtMSAxSDV2MmgxNFY0eiIvPjwvc3ZnPg==": @@ -8311,15 +8318,15 @@ c([b("",function(){h.popupMenuHandler.hideMenu();var a=h.view.scale,b=h.view.tra 640<=d?b("",e.funct,!0,mxResources.get("zoomIn")+" ("+Editor.ctrlKey+" +)",e,"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTUuNSAxNGgtLjc5bC0uMjgtLjI3QzE1LjQxIDEyLjU5IDE2IDExLjExIDE2IDkuNSAxNiA1LjkxIDEzLjA5IDMgOS41IDNTMyA1LjkxIDMgOS41IDUuOTEgMTYgOS41IDE2YzEuNjEgMCAzLjA5LS41OSA0LjIzLTEuNTdsLjI3LjI4di43OWw1IDQuOTlMMjAuNDkgMTlsLTQuOTktNXptLTYgMEM3LjAxIDE0IDUgMTEuOTkgNSA5LjVTNy4wMSA1IDkuNSA1IDE0IDcuMDEgMTQgOS41IDExLjk5IDE0IDkuNSAxNHptMi41LTRoLTJ2Mkg5di0ySDdWOWgyVjdoMXYyaDJ2MXoiLz48L3N2Zz4="): null,640<=d?b("",f.funct,!0,mxResources.get("zoomOut")+" ("+Editor.ctrlKey+" -)",f,"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTUuNSAxNGgtLjc5bC0uMjgtLjI3QzE1LjQxIDEyLjU5IDE2IDExLjExIDE2IDkuNSAxNiA1LjkxIDEzLjA5IDMgOS41IDNTMyA1LjkxIDMgOS41IDUuOTEgMTYgOS41IDE2YzEuNjEgMCAzLjA5LS41OSA0LjIzLTEuNTdsLjI3LjI4di43OWw1IDQuOTlMMjAuNDkgMTlsLTQuOTktNXptLTYgMEM3LjAxIDE0IDUgMTEuOTkgNSA5LjVTNy4wMSA1IDkuNSA1IDE0IDcuMDEgMTQgOS41IDExLjk5IDE0IDkuNSAxNHpNNyA5aDV2MUg3eiIvPjwvc3ZnPg=="): null])}e=g.menus.get("language");null!=e&&!mxClient.IS_CHROMEAPP&&!EditorUi.isElectronApp&&540<=d?(f=n.addMenu("",e.funct),f.setAttribute("title",mxResources.get("language")),f.style.backgroundImage="url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTEuOTkgMkM2LjQ3IDIgMiA2LjQ4IDIgMTJzNC40NyAxMCA5Ljk5IDEwQzE3LjUyIDIyIDIyIDE3LjUyIDIyIDEyUzE3LjUyIDIgMTEuOTkgMnptNi45MyA2aC0yLjk1Yy0uMzItMS4yNS0uNzgtMi40NS0xLjM4LTMuNTYgMS44NC42MyAzLjM3IDEuOTEgNC4zMyAzLjU2ek0xMiA0LjA0Yy44MyAxLjIgMS40OCAyLjUzIDEuOTEgMy45NmgtMy44MmMuNDMtMS40MyAxLjA4LTIuNzYgMS45MS0zLjk2ek00LjI2IDE0QzQuMSAxMy4zNiA0IDEyLjY5IDQgMTJzLjEtMS4zNi4yNi0yaDMuMzhjLS4wOC42Ni0uMTQgMS4zMi0uMTQgMiAwIC42OC4wNiAxLjM0LjE0IDJINC4yNnptLjgyIDJoMi45NWMuMzIgMS4yNS43OCAyLjQ1IDEuMzggMy41Ni0xLjg0LS42My0zLjM3LTEuOS00LjMzLTMuNTZ6bTIuOTUtOEg1LjA4Yy45Ni0xLjY2IDIuNDktMi45MyA0LjMzLTMuNTZDOC44MSA1LjU1IDguMzUgNi43NSA4LjAzIDh6TTEyIDE5Ljk2Yy0uODMtMS4yLTEuNDgtMi41My0xLjkxLTMuOTZoMy44MmMtLjQzIDEuNDMtMS4wOCAyLjc2LTEuOTEgMy45NnpNMTQuMzQgMTRIOS42NmMtLjA5LS42Ni0uMTYtMS4zMi0uMTYtMiAwLS42OC4wNy0xLjM1LjE2LTJoNC42OGMuMDkuNjUuMTYgMS4zMi4xNiAyIDAgLjY4LS4wNyAxLjM0LS4xNiAyem0uMjUgNS41NmMuNi0xLjExIDEuMDYtMi4zMSAxLjM4LTMuNTZoMi45NWMtLjk2IDEuNjUtMi40OSAyLjkzLTQuMzMgMy41NnpNMTYuMzYgMTRjLjA4LS42Ni4xNC0xLjMyLjE0LTIgMC0uNjgtLjA2LTEuMzQtLjE0LTJoMy4zOGMuMTYuNjQuMjYgMS4zMS4yNiAycy0uMSAxLjM2LS4yNiAyaC0zLjM4eiIvPjwvc3ZnPg==)", -f.style.backgroundPosition="center center",f.style.backgroundRepeat="no-repeat",f.style.backgroundSize="24px 24px",f.style.position="absolute",f.style.height="24px",f.style.width="24px",f.style.zIndex="1",f.style.top="11px",f.style.right="14px",mxUtils.setOpacity(f,30),k.appendChild(f),g.buttonContainer.style.right="40px"):g.buttonContainer.style.right="14px"}u.apply(this,arguments);var f=document.createElement("div");f.style.cssText="position:absolute;left:0px;right:0px;top:0px;overflow-y:auto;overflow-x:hidden;"; -f.style.bottom="1"!=urlParams.embed||"1"==urlParams.libraries?"63px":"32px";this.sidebar=this.createSidebar(f);var g=this,h=g.editor.graph;g.toolbar=this.createToolbar(g.createDiv("geToolbar"));g.defaultLibraryName=mxResources.get("untitledLibrary");var k=document.createElement("div");k.style.cssText="position:absolute;left:0px;right:0px;top:0px;height:30px;padding:8px;border-bottom:1px solid lightgray;background-color:#ffffff;text-align:left;white-space:nowrap;";var l=null,n=new Menubar(g,k);g.statusContainer= +f.style.backgroundPosition="center center",f.style.backgroundRepeat="no-repeat",f.style.backgroundSize="24px 24px",f.style.position="absolute",f.style.height="24px",f.style.width="24px",f.style.zIndex="1",f.style.top="11px",f.style.right="14px",mxUtils.setOpacity(f,30),k.appendChild(f),g.buttonContainer.style.right="40px"):g.buttonContainer.style.right="14px"}u.apply(this,arguments);var e=document.createElement("div");e.style.cssText="position:absolute;left:0px;right:0px;top:0px;overflow-y:auto;overflow-x:hidden;"; +e.style.bottom="1"!=urlParams.embed||"1"==urlParams.libraries?"63px":"32px";this.sidebar=this.createSidebar(e);var g=this,h=g.editor.graph;g.toolbar=this.createToolbar(g.createDiv("geToolbar"));g.defaultLibraryName=mxResources.get("untitledLibrary");var k=document.createElement("div");k.style.cssText="position:absolute;left:0px;right:0px;top:0px;height:30px;padding:8px;border-bottom:1px solid lightgray;background-color:#ffffff;text-align:left;white-space:nowrap;";var l=null,n=new Menubar(g,k);g.statusContainer= g.createStatusContainer();g.statusContainer.style.position="relative";g.statusContainer.style.maxWidth="";g.statusContainer.style.marginTop="7px";g.statusContainer.style.marginLeft="6px";g.statusContainer.style.color="gray";g.statusContainer.style.cursor="default";g.editor.addListener("statusChanged",mxUtils.bind(this,function(){g.setStatusText(g.editor.getStatus())}));var p=g.descriptorChanged;g.descriptorChanged=function(){p.apply(this,arguments);var a=g.getCurrentFile();if(null!=a&&null!=a.getTitle()){var b= a.getMode();"google"==b?b="googleDrive":"github"==b?b="gitHub":"onedrive"==b&&(b="oneDrive");b=mxResources.get(b);k.setAttribute("title",a.getTitle()+(null!=b?" ("+b+")":""))}else k.removeAttribute("title")};g.setStatusText(g.editor.getStatus());k.appendChild(g.statusContainer);g.buttonContainer=document.createElement("div");g.buttonContainer.style.cssText="position:absolute;right:40px;top:12px;white-space:nowrap;";k.appendChild(g.buttonContainer);g.menubarContainer=g.buttonContainer;g.tabContainer= -document.createElement("div");g.tabContainer.style.cssText="position:absolute;left:0px;right:0px;bottom:0px;height:30px;white-space:nowrap;border-bottom:1px solid lightgray;background-color:#ffffff;border-top:1px solid lightgray;margin-bottom:-2px;visibility:hidden;";var f=g.diagramContainer.parentNode,q=document.createElement("div");q.style.cssText="position:absolute;top:0px;left:0px;right:0px;bottom:0px;overflow:hidden;";g.diagramContainer.style.top="47px";var t=g.menus.get("viewZoom");if(null!= +document.createElement("div");g.tabContainer.style.cssText="position:absolute;left:0px;right:0px;bottom:0px;height:30px;white-space:nowrap;border-bottom:1px solid lightgray;background-color:#ffffff;border-top:1px solid lightgray;margin-bottom:-2px;visibility:hidden;";var e=g.diagramContainer.parentNode,q=document.createElement("div");q.style.cssText="position:absolute;top:0px;left:0px;right:0px;bottom:0px;overflow:hidden;";g.diagramContainer.style.top="47px";var t=g.menus.get("viewZoom");if(null!= t){this.tabContainer.style.right="70px";var D=n.addMenu("100%",t.funct);D.setAttribute("title",mxResources.get("zoom")+" (Alt+Mousewheel)");D.style.whiteSpace="nowrap";D.style.backgroundImage="url("+mxWindow.prototype.minimizeImage+")";D.style.backgroundPosition="right 6px center";D.style.backgroundRepeat="no-repeat";D.style.backgroundColor="#ffffff";D.style.paddingRight="10px";D.style.display="block";D.style.position="absolute";D.style.textDecoration="none";D.style.textDecoration="none";D.style.right= "0px";D.style.bottom="0px";D.style.overflow="hidden";D.style.visibility="hidden";D.style.textAlign="center";D.style.color="#000";D.style.fontSize="12px";D.style.color="#707070";D.style.width="59px";D.style.borderTop="1px solid lightgray";D.style.borderLeft="1px solid lightgray";D.style.height=parseInt(g.tabContainer.style.height)-1+"px";D.style.lineHeight=parseInt(g.tabContainer.style.height)+1+"px";q.appendChild(D);t=mxUtils.bind(this,function(){D.innerHTML=Math.round(100*g.editor.graph.view.scale)+ -"%"});g.editor.graph.view.addListener(mxEvent.EVENT_SCALE,t);g.editor.addListener("resetGraphView",t);g.editor.addListener("pageSelected",t);var G=g.setGraphEnabled;g.setGraphEnabled=function(){G.apply(this,arguments);null!=this.tabContainer&&(D.style.visibility=this.tabContainer.style.visibility,this.diagramContainer.style.bottom="hidden"!=this.tabContainer.style.visibility?"30px":"0px")}}q.appendChild(g.tabContainer);q.appendChild(k);q.appendChild(g.diagramContainer);f.appendChild(q);g.updateTabContainer(); -e();mxEvent.addListener(window,"resize",function(){e();null!=g.sidebarWindow&&g.sidebarWindow.window.fit();null!=g.formatWindow&&g.formatWindow.window.fit();null!=g.actions.outlineWindow&&g.actions.outlineWindow.window.fit();null!=g.actions.layersWindow&&g.actions.layersWindow.window.fit();null!=g.menus.tagsWindow&&g.menus.tagsWindow.window.fit();null!=g.menus.findWindow&&g.menus.findWindow.window.fit()})}}}; +"%"});g.editor.graph.view.addListener(mxEvent.EVENT_SCALE,t);g.editor.addListener("resetGraphView",t);g.editor.addListener("pageSelected",t);var H=g.setGraphEnabled;g.setGraphEnabled=function(){H.apply(this,arguments);null!=this.tabContainer&&(D.style.visibility=this.tabContainer.style.visibility,this.diagramContainer.style.bottom="hidden"!=this.tabContainer.style.visibility?"30px":"0px")}}q.appendChild(g.tabContainer);q.appendChild(k);q.appendChild(g.diagramContainer);e.appendChild(q);g.updateTabContainer(); +f();mxEvent.addListener(window,"resize",function(){f();null!=g.sidebarWindow&&g.sidebarWindow.window.fit();null!=g.formatWindow&&g.formatWindow.window.fit();null!=g.actions.outlineWindow&&g.actions.outlineWindow.window.fit();null!=g.actions.layersWindow&&g.actions.layersWindow.window.fit();null!=g.menus.tagsWindow&&g.menus.tagsWindow.window.fit();null!=g.menus.findWindow&&g.menus.findWindow.window.fit()})}}}; (function(){var a=!1;"min"!=uiTheme||a||mxClient.IS_CHROMEAPP||(EditorUi.initMinimalTheme(),a=!0);var e=EditorUi.initTheme;EditorUi.initTheme=function(){e.apply(this,arguments);"min"!=uiTheme||a||(this.initMinimalTheme(),a=!0)}})();Graph.prototype.defaultThemes[Graph.prototype.defaultThemeName]=mxUtils.parseXml('<mxStylesheet><add as="defaultVertex"><add as="shape" value="label"/><add as="perimeter" value="rectanglePerimeter"/><add as="fontSize" value="12"/><add as="fontFamily" value="Helvetica"/><add as="align" value="center"/><add as="verticalAlign" value="middle"/><add as="fillColor" value="#ffffff"/><add as="strokeColor" value="#000000"/><add as="fontColor" value="#000000"/></add><add as="defaultEdge"><add as="shape" value="connector"/><add as="labelBackgroundColor" value="#ffffff"/><add as="endArrow" value="classic"/><add as="fontSize" value="11"/><add as="fontFamily" value="Helvetica"/><add as="align" value="center"/><add as="verticalAlign" value="middle"/><add as="rounded" value="1"/><add as="strokeColor" value="#000000"/><add as="fontColor" value="#000000"/></add><add as="fancy"><add as="shadow" value="1"/><add as="glass" value="1"/></add><add as="gray" extend="fancy"><add as="gradientColor" value="#B3B3B3"/><add as="fillColor" value="#F5F5F5"/><add as="strokeColor" value="#666666"/></add><add as="blue" extend="fancy"><add as="gradientColor" value="#7EA6E0"/><add as="fillColor" value="#DAE8FC"/><add as="strokeColor" value="#6C8EBF"/></add><add as="green" extend="fancy"><add as="gradientColor" value="#97D077"/><add as="fillColor" value="#D5E8D4"/><add as="strokeColor" value="#82B366"/></add><add as="turquoise" extend="fancy"><add as="gradientColor" value="#67AB9F"/><add as="fillColor" value="#D5E8D4"/><add as="strokeColor" value="#6A9153"/></add><add as="yellow" extend="fancy"><add as="gradientColor" value="#FFD966"/><add as="fillColor" value="#FFF2CC"/><add as="strokeColor" value="#D6B656"/></add><add as="orange" extend="fancy"><add as="gradientColor" value="#FFA500"/><add as="fillColor" value="#FFCD28"/><add as="strokeColor" value="#D79B00"/></add><add as="red" extend="fancy"><add as="gradientColor" value="#EA6B66"/><add as="fillColor" value="#F8CECC"/><add as="strokeColor" value="#B85450"/></add><add as="pink" extend="fancy"><add as="gradientColor" value="#B5739D"/><add as="fillColor" value="#E6D0DE"/><add as="strokeColor" value="#996185"/></add><add as="purple" extend="fancy"><add as="gradientColor" value="#8C6C9C"/><add as="fillColor" value="#E1D5E7"/><add as="strokeColor" value="#9673A6"/></add><add as="plain-gray"><add as="gradientColor" value="#B3B3B3"/><add as="fillColor" value="#F5F5F5"/><add as="strokeColor" value="#666666"/></add><add as="plain-blue"><add as="gradientColor" value="#7EA6E0"/><add as="fillColor" value="#DAE8FC"/><add as="strokeColor" value="#6C8EBF"/></add><add as="plain-green"><add as="gradientColor" value="#97D077"/><add as="fillColor" value="#D5E8D4"/><add as="strokeColor" value="#82B366"/></add><add as="plain-turquoise"><add as="gradientColor" value="#67AB9F"/><add as="fillColor" value="#D5E8D4"/><add as="strokeColor" value="#6A9153"/></add><add as="plain-yellow"><add as="gradientColor" value="#FFD966"/><add as="fillColor" value="#FFF2CC"/><add as="strokeColor" value="#D6B656"/></add><add as="plain-orange"><add as="gradientColor" value="#FFA500"/><add as="fillColor" value="#FFCD28"/><add as="strokeColor" value="#D79B00"/></add><add as="plain-red"><add as="gradientColor" value="#EA6B66"/><add as="fillColor" value="#F8CECC"/><add as="strokeColor" value="#B85450"/></add><add as="plain-pink"><add as="gradientColor" value="#B5739D"/><add as="fillColor" value="#E6D0DE"/><add as="strokeColor" value="#996185"/></add><add as="plain-purple"><add as="gradientColor" value="#8C6C9C"/><add as="fillColor" value="#E1D5E7"/><add as="strokeColor" value="#9673A6"/></add><add as="text"><add as="fillColor" value="none"/><add as="gradientColor" value="none"/><add as="strokeColor" value="none"/><add as="align" value="left"/><add as="verticalAlign" value="top"/></add><add as="label"><add as="fontStyle" value="1"/><add as="align" value="left"/><add as="verticalAlign" value="middle"/><add as="spacing" value="2"/><add as="spacingLeft" value="52"/><add as="imageWidth" value="42"/><add as="imageHeight" value="42"/><add as="rounded" value="1"/></add><add as="icon" extend="label"><add as="align" value="center"/><add as="imageAlign" value="center"/><add as="verticalLabelPosition" value="bottom"/><add as="verticalAlign" value="top"/><add as="spacingTop" value="4"/><add as="labelBackgroundColor" value="#ffffff"/><add as="spacing" value="0"/><add as="spacingLeft" value="0"/><add as="spacingTop" value="6"/><add as="fontStyle" value="0"/><add as="imageWidth" value="48"/><add as="imageHeight" value="48"/></add><add as="swimlane"><add as="shape" value="swimlane"/><add as="fontSize" value="12"/><add as="fontStyle" value="1"/><add as="startSize" value="23"/></add><add as="group"><add as="verticalAlign" value="top"/><add as="fillColor" value="none"/><add as="strokeColor" value="none"/><add as="gradientColor" value="none"/><add as="pointerEvents" value="0"/></add><add as="ellipse"><add as="shape" value="ellipse"/><add as="perimeter" value="ellipsePerimeter"/></add><add as="rhombus"><add as="shape" value="rhombus"/><add as="perimeter" value="rhombusPerimeter"/></add><add as="triangle"><add as="shape" value="triangle"/><add as="perimeter" value="trianglePerimeter"/></add><add as="line"><add as="shape" value="line"/><add as="strokeWidth" value="4"/><add as="labelBackgroundColor" value="#ffffff"/><add as="verticalAlign" value="top"/><add as="spacingTop" value="8"/></add><add as="image"><add as="shape" value="image"/><add as="labelBackgroundColor" value="white"/><add as="verticalAlign" value="top"/><add as="verticalLabelPosition" value="bottom"/></add><add as="roundImage" extend="image"><add as="perimeter" value="ellipsePerimeter"/></add><add as="rhombusImage" extend="image"><add as="perimeter" value="rhombusPerimeter"/></add><add as="arrow"><add as="shape" value="arrow"/><add as="edgeStyle" value="none"/><add as="fillColor" value="#ffffff"/></add></mxStylesheet>').documentElement; Graph.prototype.defaultThemes.darkTheme=mxUtils.parseXml('<mxStylesheet><add as="defaultVertex"><add as="shape" value="label"/><add as="perimeter" value="rectanglePerimeter"/><add as="fontSize" value="12"/><add as="fontFamily" value="Helvetica"/><add as="align" value="center"/><add as="verticalAlign" value="middle"/><add as="fillColor" value="#2a2a2a"/><add as="strokeColor" value="#f0f0f0"/><add as="fontColor" value="#f0f0f0"/></add><add as="defaultEdge"><add as="shape" value="connector"/><add as="labelBackgroundColor" value="#2a2a2a"/><add as="endArrow" value="classic"/><add as="fontSize" value="11"/><add as="fontFamily" value="Helvetica"/><add as="align" value="center"/><add as="verticalAlign" value="middle"/><add as="rounded" value="1"/><add as="strokeColor" value="#f0f0f0"/><add as="fontColor" value="#f0f0f0"/></add><add as="text"><add as="fillColor" value="none"/><add as="gradientColor" value="none"/><add as="strokeColor" value="none"/><add as="align" value="left"/><add as="verticalAlign" value="top"/></add><add as="label"><add as="fontStyle" value="1"/><add as="align" value="left"/><add as="verticalAlign" value="middle"/><add as="spacing" value="2"/><add as="spacingLeft" value="52"/><add as="imageWidth" value="42"/><add as="imageHeight" value="42"/><add as="rounded" value="1"/></add><add as="icon" extend="label"><add as="align" value="center"/><add as="imageAlign" value="center"/><add as="verticalLabelPosition" value="bottom"/><add as="verticalAlign" value="top"/><add as="spacingTop" value="4"/><add as="labelBackgroundColor" value="#2a2a2a"/><add as="spacing" value="0"/><add as="spacingLeft" value="0"/><add as="spacingTop" value="6"/><add as="fontStyle" value="0"/><add as="imageWidth" value="48"/><add as="imageHeight" value="48"/></add><add as="swimlane"><add as="shape" value="swimlane"/><add as="fontSize" value="12"/><add as="fontStyle" value="1"/><add as="startSize" value="23"/></add><add as="group"><add as="verticalAlign" value="top"/><add as="fillColor" value="none"/><add as="strokeColor" value="none"/><add as="gradientColor" value="none"/><add as="pointerEvents" value="0"/></add><add as="ellipse"><add as="shape" value="ellipse"/><add as="perimeter" value="ellipsePerimeter"/></add><add as="rhombus"><add as="shape" value="rhombus"/><add as="perimeter" value="rhombusPerimeter"/></add><add as="triangle"><add as="shape" value="triangle"/><add as="perimeter" value="trianglePerimeter"/></add><add as="line"><add as="shape" value="line"/><add as="strokeWidth" value="4"/><add as="labelBackgroundColor" value="#2a2a2a"/><add as="verticalAlign" value="top"/><add as="spacingTop" value="8"/></add><add as="image"><add as="shape" value="image"/><add as="labelBackgroundColor" value="#2a2a2a"/><add as="verticalAlign" value="top"/><add as="verticalLabelPosition" value="bottom"/></add><add as="roundImage" extend="image"><add as="perimeter" value="ellipsePerimeter"/></add><add as="rhombusImage" extend="image"><add as="perimeter" value="rhombusPerimeter"/></add><add as="arrow"><add as="shape" value="arrow"/><add as="edgeStyle" value="none"/><add as="fillColor" value="#2a2a2a"/></add></mxStylesheet>').documentElement; LucidImporter={}; @@ -8916,7 +8923,7 @@ c,b,p)}};h.prototype.sanitiseGraph=function(c){var b=c.getModel().getRoot();this -1==p.indexOf(mxConstants.STYLE_STROKECOLOR+"=none")||-1!=p.indexOf("image=")?!1:!0};return h}();w.mxVsdxCodec=l;l.__class="com.mxgraph.io.mxVsdxCodec"})(m.io||(m.io={}))})(c.mxgraph||(c.mxgraph={}))})(com||(com={})); (function(c){(function(m){(function(w){var l=function(h){function f(){var b=h.call(this)||this;b.RESPONSE_END="";b.RESPONSE_DIAGRAM_START="";b.RESPONSE_DIAGRAM_END="";b.RESPONSE_HEADER="";return b}__extends(f,h);f.prototype.decodeVssx=function(b,a,d){var g=this,p="<mxlibrary>[";this.decodeVsdx(b,function(b){p=p.concat(b);var d=g.vsdxModel.getMasterShapes(),f=function(a){var b=0;return{next:function(){return b<a.length?a[b++]:null},hasNext:function(){return b<a.length}}}(function(a){var b=[];null== a.entries&&(a.entries=[]);for(var d=0;d<a.entries.length;d++)b.push(a.entries[d].value);return b}(g.vsdxModel.getPages())).next();if(null!=d){var D={str:"",toString:function(){return this.str}},l=0===b.length?"":",",w=function(a){return Object.keys(a).map(function(b){return a[b]})}(d);b=function(a){a=w[a];var b=m.createMxGraph(),g=a.getMasterShape().getShape(),g=new c.mxgraph.io.vsdx.VsdxShape(f,g,!f.isEdge(g),d,null,m.vsdxModel),p=1;if(null!=a.pageSheet){var x=p=1,E=a.pageSheet.DrawingScale;null!= -E&&(p=parseFloat(E.getAttribute("V")));E=a.pageSheet.PageScale;null!=E&&(x=parseFloat(E.getAttribute("V")));p=x/p}x=null;if(g.isVertex())for(m.edgeShapeMap.entries=[],m.parentsMap.entries=[],x=m.addShape(b,g,b.getDefaultParent(),0,1169),g=function(a){null==a.entries&&(a.entries=[]);return a.entries}(m.edgeShapeMap),E=0;E<g.length;E++){var t=g[E],z=function(a,b){null==a.entries&&(a.entries=[]);for(var d=0;d<a.entries.length;d++)if(null!=a.entries[d].key.equals&&a.entries[d].key.equals(b)||a.entries[d].key=== +E&&(p=parseFloat(E.getAttribute("V"))||1);E=a.pageSheet.PageScale;null!=E&&(x=parseFloat(E.getAttribute("V"))||1);p=x/p}x=null;if(g.isVertex())for(m.edgeShapeMap.entries=[],m.parentsMap.entries=[],x=m.addShape(b,g,b.getDefaultParent(),0,1169),g=function(a){null==a.entries&&(a.entries=[]);return a.entries}(m.edgeShapeMap),E=0;E<g.length;E++){var t=g[E],z=function(a,b){null==a.entries&&(a.entries=[]);for(var d=0;d<a.entries.length;d++)if(null!=a.entries[d].key.equals&&a.entries[d].key.equals(b)||a.entries[d].key=== b)return a.entries[d].value;return null}(m.parentsMap,t.getKey());m.addUnconnectedEdge(b,z,t.getValue(),1169)}else x=m.addUnconnectedEdge(b,null,g,1169);if(null!=x){m.scaleGraph(b,p);g=m.normalizeGeo(x);m.sanitiseGraph(b);if(0===b.getModel().getChildCount(b.getDefaultParent()))return"continue";D.str=D.str.concat(l);D.str=D.str.concat('{"xml":"');b=h.prototype.processPage.call(m,b,null);D.str=D.str.concat(b);D.str=D.str.concat('","w":');D.str=D.str.concat(g.width);D.str=D.str.concat(',"h":');D.str= D.str.concat(g.height);D.str=D.str.concat(',"title":');a=a.getName();null==a&&(a="");a=JSON.stringify(mxUtils.htmlEntities(a));D.str=D.str.concat(a);D.str=D.str.concat("}");l=","}};for(var m=g,C=0;C<w.length;C++)b(C);p=p.concat(D)}p=p.concat("]</mxlibrary>");a&&a(p)},d)};f.prototype.normalizeGeo=function(b){var a=b.getGeometry();a.x=0;a.y=0;var d=a.sourcePoint;if(b.isEdge()&&null!=d){this.transPoint(a.targetPoint,d);this.transPoint(a.offset,d);b=a.points;if(null!=b)for(var g=0;g<b.length;g++)this.transPoint(b[g], d);this.transPoint(d,d)}return a};f.prototype.transPoint=function(b,a){null!=b&&(b.x-=a.x,b.y-=a.y)};f.prototype.processPage=function(b,a){var d=b.getModel(),g="",p="",f;for(f in d.cells){var E=d.cells[f];if(b.getDefaultParent()===d.getParent(E)){var g=g.concat(p),g=g.concat('{"xml":"'),x=this.createMxGraph();x.addCell(E);this.sanitiseGraph(x);if(0===x.getModel().getChildCount(x.getDefaultParent()))return"continue";p=this.normalizeGeo(E);x=h.prototype.processPage.call(this,x,null);g=g.concat(x);g= @@ -8924,8 +8931,8 @@ g.concat('","w":');g=g.concat(p.width);g=g.concat(',"h":');g=g.concat(p.height); p.entries[t].key===x){p=p.entries[t].value;break a}p=null}null!=p&&(E=p.getName())}g=g.concat(E);g=g.concat('"}');p=","}}this.RESPONSE_DIAGRAM_START=0<g.length?",":"";return g};return f}(c.mxgraph.io.mxVsdxCodec);w.mxVssxCodec=l;l.__class="com.mxgraph.io.mxVssxCodec"})(m.io||(m.io={}))})(c.mxgraph||(c.mxgraph={}))})(com||(com={})); (function(c){(function(c){(function(c){(function(c){(function(c){var f=function(){function b(a,b,g){this.formulaE=this.formulaA=this.d=this.c=this.b=this.a=this.y=this.x=null;this.index=0;this.index=a;this.x=b;this.y=g}b.prototype.getX=function(){return this.x};b.prototype.getY=function(){return this.y};b.prototype.getA=function(){return this.a};b.prototype.getB=function(){return this.b};b.prototype.getC=function(){return this.c};b.prototype.getD=function(){return this.d};b.prototype.getFormulaA= function(){return this.formulaA};b.prototype.getFormulaE=function(){return this.formulaE};b.prototype.getIndex=function(){return this.index};return b}();c.Row=f;f.__class="com.mxgraph.io.vsdx.geometry.Row"})(c.geometry||(c.geometry={}))})(c.vsdx||(c.vsdx={}))})(c.io||(c.io={}))})(c.mxgraph||(c.mxgraph={}))})(com||(com={})); -(function(c){(function(m){(function(m){(function(l){(function(h){var f=function(){function b(){}b.getIndex=function(a){try{return parseInt(a.getAttribute("IX"))}catch(d){return 1}};b.getDoubleVal=function(a){try{if(null!=a&&0!==a.length){var b=parseFloat(a);if(isFinite(b))return b}}catch(g){}return null};b.getRowObj=function(a,d){var g=a.getAttribute("T"),p=b.getIndex(a),f;f=(f=a.getAttribute("Del"))&&f.equals?f.equals("1"):"1"===f;if(!f){var E=null;p<=d.length&&(E=d[p-1]);var x=f=null,t=null,h=null, -l=null,m=null,w=null,A=null;null!=E&&(f=E.x,x=E.y,t=E.getA(),h=E.getB(),l=E.getC(),m=E.getD(),A=E.getFormulaA(),w=E.getFormulaE());for(var E=c.mxgraph.io.vsdx.mxVsdxUtils.getDirectChildElements(a),F=0;F<E.length;F++){var B=E[F],Y=B.getAttribute("N"),J=B.getAttribute("V");switch(Y){case "X":f=b.getDoubleVal(J);break;case "Y":x=b.getDoubleVal(J);break;case "A":t=b.getDoubleVal(J);A=B.getAttribute("V");break;case "B":h=b.getDoubleVal(J);break;case "C":l=b.getDoubleVal(J);break;case "D":m=b.getDoubleVal(J); +(function(c){(function(m){(function(m){(function(l){(function(h){var f=function(){function b(){}b.getIndex=function(a){try{return parseInt(a.getAttribute("IX"))||1}catch(d){return 1}};b.getDoubleVal=function(a){try{if(null!=a&&0!==a.length){var b=parseFloat(a);if(isFinite(b))return b}}catch(g){}return null};b.getRowObj=function(a,d){var g=a.getAttribute("T"),p=b.getIndex(a),f;f=(f=a.getAttribute("Del"))&&f.equals?f.equals("1"):"1"===f;if(!f){var E=null;p<=d.length&&(E=d[p-1]);var x=f=null,t=null, +h=null,l=null,m=null,w=null,A=null;null!=E&&(f=E.x,x=E.y,t=E.getA(),h=E.getB(),l=E.getC(),m=E.getD(),A=E.getFormulaA(),w=E.getFormulaE());for(var E=c.mxgraph.io.vsdx.mxVsdxUtils.getDirectChildElements(a),F=0;F<E.length;F++){var B=E[F],Y=B.getAttribute("N"),J=B.getAttribute("V");switch(Y){case "X":f=b.getDoubleVal(J);break;case "Y":x=b.getDoubleVal(J);break;case "A":t=b.getDoubleVal(J);A=B.getAttribute("V");break;case "B":h=b.getDoubleVal(J);break;case "C":l=b.getDoubleVal(J);break;case "D":m=b.getDoubleVal(J); break;case "E":w=J}}switch(g){case "MoveTo":return new c.mxgraph.io.vsdx.geometry.MoveTo(p,f,x);case "LineTo":return new c.mxgraph.io.vsdx.geometry.LineTo(p,f,x);case "ArcTo":return new c.mxgraph.io.vsdx.geometry.ArcTo(p,f,x,t);case "Ellipse":return new c.mxgraph.io.vsdx.geometry.Ellipse(p,f,x,t,h,l,m);case "EllipticalArcTo":return new c.mxgraph.io.vsdx.geometry.EllipticalArcTo(p,f,x,t,h,l,m);case "InfiniteLine":return new c.mxgraph.io.vsdx.geometry.InfiniteLine(p,f,x,t,h);case "NURBSTo":return new c.mxgraph.io.vsdx.geometry.NURBSTo(p, f,x,t,h,l,m,w);case "PolylineTo":return new c.mxgraph.io.vsdx.geometry.PolylineTo(p,f,x,A);case "RelCubBezTo":return new c.mxgraph.io.vsdx.geometry.RelCubBezTo(p,f,x,t,h,l,m);case "RelEllipticalArcTo":return new c.mxgraph.io.vsdx.geometry.RelEllipticalArcTo(p,f,x,t,h,l,m);case "RelLineTo":return new c.mxgraph.io.vsdx.geometry.RelLineTo(p,f,x);case "RelMoveTo":return new c.mxgraph.io.vsdx.geometry.RelMoveTo(p,f,x);case "RelQuadBezTo":return new c.mxgraph.io.vsdx.geometry.RelQuadBezTo(p,f,x,t,h);case "SplineKnot":return new c.mxgraph.io.vsdx.geometry.SplineKnot(p, f,x,t);case "SplineStart":return new c.mxgraph.io.vsdx.geometry.SplineStart(p,f,x,t,h,l,m)}}return new c.mxgraph.io.vsdx.geometry.DelRow(p)};return b}();h.RowFactory=f;f.__class="com.mxgraph.io.vsdx.geometry.RowFactory"})(l.geometry||(l.geometry={}))})(m.vsdx||(m.vsdx={}))})(m.io||(m.io={}))})(c.mxgraph||(c.mxgraph={}))})(com||(com={})); @@ -8946,7 +8953,7 @@ h.BULLET="Bullet";h.CASE="Case";h.CHARACTER="Character";h.COLOR="Color";h.COLOR_ "TextBlock";h.TEXT_STYLE="TextStyle";h.TO_PART="ToPart";h.TO_SHEET="ToSheet";h.TOP_MARGIN="TopMargin";h.TRUE="1";h.TXT_ANGLE="TxtAngle";h.TXT_HEIGHT="TxtHeight";h.TXT_LOC_PIN_X="TxtLocPinX";h.TXT_LOC_PIN_Y="TxtLocPinY";h.TXT_PIN_X="TxtPinX";h.TXT_PIN_Y="TxtPinY";h.TXT_WIDTH="TxtWidth";h.TYPE="Type";h.TYPE_GROUP="Group";h.TYPE_SHAPE="Shape";h.UNIQUE_ID="UniqueID";h.VERTICAL_ALIGN="VerticalAlign";h.WIDTH="Width";h.X_CON="XCon";h.X_DYN="XDyn";h.X="X";h.Y_CON="YCon";h.Y_DYN="YDyn";h.Y="Y";h.HIDE_TEXT= "HideText";h.VSDX_ID="vsdxID";h.CONNECT_TO_PART_WHOLE_SHAPE=3;c.mxVsdxConstants=h;h.__class="com.mxgraph.io.vsdx.mxVsdxConstants"})(c.vsdx||(c.vsdx={}))})(c.io||(c.io={}))})(c.mxgraph||(c.mxgraph={}))})(com||(com={})); (function(c){(function(m){(function(m){(function(l){var h=function(){function f(b,a){this.noQuickDrag=this.noSnap=this.noShow=this.noLine=this.noFill=!1;this.rows=null;if((null!=b&&1==b.nodeType||null===b)&&(null!=a&&a instanceof Array||null===a))Array.prototype.slice.call(arguments),this.index=0,this.noQuickDrag=this.noSnap=this.noShow=this.noLine=this.noFill=!1,this.rows=null,this.index=0,this.index=this.getIndex$org_w3c_dom_Element(b),null!=a&&this.index<a.length&&this.inheritGeo(a[this.index]), -this.processGeoElem(b);else if((null!=b&&1==b.nodeType||null===b)&&void 0===a)Array.prototype.slice.call(arguments),this.index=0,this.noQuickDrag=this.noSnap=this.noShow=this.noLine=this.noFill=!1,this.rows=null,this.index=0,this.index=this.getIndex$org_w3c_dom_Element(b),this.processGeoElem(b);else throw Error("invalid overload");}f.prototype.getIndex$org_w3c_dom_Element=function(b){try{return parseInt(b.getAttribute("IX"))}catch(a){return 0}};f.prototype.getIndex=function(b){if(null!=b&&1==b.nodeType|| +this.processGeoElem(b);else if((null!=b&&1==b.nodeType||null===b)&&void 0===a)Array.prototype.slice.call(arguments),this.index=0,this.noQuickDrag=this.noSnap=this.noShow=this.noLine=this.noFill=!1,this.rows=null,this.index=0,this.index=this.getIndex$org_w3c_dom_Element(b),this.processGeoElem(b);else throw Error("invalid overload");}f.prototype.getIndex$org_w3c_dom_Element=function(b){try{return parseInt(b.getAttribute("IX"))||0}catch(a){return 0}};f.prototype.getIndex=function(b){if(null!=b&&1==b.nodeType|| null===b)return this.getIndex$org_w3c_dom_Element(b);if(void 0===b)return this.getIndex$();throw Error("invalid overload");};f.prototype.processGeoElem=function(b){var a=c.mxgraph.io.vsdx.mxVsdxUtils.getDirectChildNamedElements(b,"Cell");b=c.mxgraph.io.vsdx.mxVsdxUtils.getDirectChildNamedElements(b,"Row");if(null==this.rows){this.rows=[];for(var d=0;d<b.length;d++)0<this.rows.push(null)}for(d=0;d<a.length;d++){var g=a[d],p=g.getAttribute("N"),g=g.getAttribute("V");switch(p){case "NoFill":this.noFill= function(a,b){return a&&a.equals?a.equals(b):a===b}("1",g);break;case "NoLine":this.noLine=function(a,b){return a&&a.equals?a.equals(b):a===b}("1",g);break;case "NoShow":this.noShow=function(a,b){return a&&a.equals?a.equals(b):a===b}("1",g);break;case "NoSnap":this.noSnap=function(a,b){return a&&a.equals?a.equals(b):a===b}("1",g);break;case "NoQuickDrag":this.noQuickDrag=function(a,b){return a&&a.equals?a.equals(b):a===b}("1",g)}}a=this.rows.length;d=!1;for(p=0;p<b.length;p++)g=c.mxgraph.io.vsdx.geometry.RowFactory.getRowObj(b[p], this.rows),g.getIndex()>a?(0<this.rows.push(g),d=!0):this.rows[g.getIndex()-1]=g;d&&function(a,b){b.compare?a.sort(function(a,d){return b.compare(a,d)}):a.sort(b)}(this.rows,new f.mxVsdxGeometry$0(this))};f.prototype.inheritGeo=function(b){this.noFill=b.noFill;this.noLine=b.noLine;this.noShow=b.noShow;this.noSnap=b.noSnap;this.noQuickDrag=b.noQuickDrag;var a=this.rows=[];a.push.apply(a,b.rows)};f.prototype.getIndex$=function(){return this.index};f.prototype.isNoFill=function(){return this.noFill}; @@ -9201,7 +9208,7 @@ this.geomListProcessed=!0}};b.prototype.parseShapeElem=function(a,d){f.prototype a.equals?a.equals(b):a===b}(h,"Enhanced Metafile")||function(a,b){return a&&a.equals?a.equals(b):a===b}(h,"EnhMetaFile"))g="png";else return;h=a.firstChild;if(null!=h){if(null!=h&&1==h.nodeType){var l=h;if(function(a,b){return a&&a.equals?a.equals(b):a===b}(l.nodeName.toLowerCase(),"rel")&&(l=l.getAttribute("r:id"),null!=l&&0!==l.length)){var h=p.lastIndexOf("/"),m="",t="";try{m=p.substring(0,h),t=p.substring(h,p.length)}catch(z){return}h=d.getRelationship(l,m+"/_rels"+t+".rels");if(null!=h){p=h.getAttribute("Target")|| "";l=h.getAttribute("Type");h=p.lastIndexOf("/");try{p=p.substring(h+1,p.length)}catch(z){return}null!=l&&function(a,b){var d=a.length-b.length,g=a.indexOf(b,d);return-1!==g&&g===d}(l,"image")&&(this.imageData={},(h=d.getMedia(c.mxgraph.io.mxVsdxCodec.vsdxPlaceholder+"/media/"+p))?(this.imageData.iData=h,function(a,b){var d=a.length-b.length,g=a.indexOf(b,d);return-1!==g&&g===d}(p.toLowerCase(),".bmp")&&(g="jpg"),this.imageData.iType=g):(this.imageData.iData=b.ERROR_IMAGE,this.imageData.iType="svg+xml"))}return}}h= h.nextSibling}}else(function(a,b){return a&&a.equals?a.equals(b):a===b})(g,c.mxgraph.io.vsdx.mxVsdxConstants.TEXT)&&(this.text=a)};b.prototype.parseSection=function(a){var d=a.getAttribute("N");if(function(a,b){return a&&a.equals?a.equals(b):a===b}(d,"Geometry"))null==this.geom&&(this.geom=[]),0<this.geom.push(a);else if(function(a,b){return a&&a.equals?a.equals(b):a===b}(d,"Field")){a=c.mxgraph.io.vsdx.mxVsdxUtils.getDirectChildNamedElements(a,"Row");for(var g=0;g<a.length;g++){var d=a[g],p=d.getAttribute("IX")|| -"";if(0!==p.length)if(null==this.fields&&(this.fields={}),function(a,b){return a&&a.equals?a.equals(b):a===b}("1",d.getAttribute("Del")))this.fields[p]="";else{for(var h=c.mxgraph.io.vsdx.mxVsdxUtils.getDirectChildNamedElements(d,"Cell"),l="",m="",t=0;t<h.length;t++){var z=h[t],d=z.getAttribute("N"),z=z.getAttribute("V");switch(d){case "Value":l=z;break;case "Format":m=z}}if(0!==l.length){try{(function(a,b,d){void 0===d&&(d=0);return a.substr(d,b.length)===b})(m,"{{")&&(l=(new Date(b.VSDX_START_TIME+ +"";if(0!==p.length)if(null==this.fields&&(this.fields={}),function(a,b){return a&&a.equals?a.equals(b):a===b}("1",d.getAttribute("Del")))this.fields[p]="";else{for(var h=c.mxgraph.io.vsdx.mxVsdxUtils.getDirectChildNamedElements(d,"Cell"),l="",m="",t=0;t<h.length;t++){var z=h[t],d=z.getAttribute("N"),z=z.getAttribute("V")||z.textContent||"";switch(d){case "Value":l=z;break;case "Format":m=z}}if(0!==l.length){try{(function(a,b,d){void 0===d&&(d=0);return a.substr(d,b.length)===b})(m,"{{")&&(l=(new Date(b.VSDX_START_TIME+ Math.floor(864E5*parseFloat(l)))).toString())}catch(aa){}this.fields[p]=l}}}}else f.prototype.parseSection.call(this,a)};b.prototype.parseGeom=function(){return this.hasGeomList()?this.geomList.getShapeXML(this):""};b.prototype.getText=function(){return null!=this.text?this.text.textContent:null};b.prototype.getTextChildren=function(){return null!=this.text?this.text.childNodes:null};b.prototype.getWidth=function(){return 0===this.width&&0<this.height?1:this.width};b.prototype.getHeight=function(){return 0=== this.height&&0<this.width?1:this.height};b.prototype.getRotation=function(){return this.rotation};b.prototype.getStyleMap=function(){return this.styleMap};b.prototype.hasGeom=function(){return!(null==this.geom||0==this.geom.length)};b.prototype.hasGeomList=function(){return null!=this.geomList&&this.geomList.hasGeom()};b.prototype.textToList=function(a,b){if(!function(a,b){return a&&a.equals?a.equals(b):a===b}(b,"")){var d=this.getBullet(b);if(!function(a,b){return a&&a.equals?a.equals(b):a===b}(d, "0")){var f=a.split("\n");f[f.length-1]||f.pop();for(var h="",l=0;l<f.length;l++)h+=c.mxgraph.io.vsdx.mxVsdxUtils.surroundByTags(f[l],"li");h=c.mxgraph.io.vsdx.mxVsdxUtils.surroundByTags(h,"ul");f={};(function(a,b){return a&&a.equals?a.equals(b):a===b})(d,"4")?f["list-style-type"]="square":f["list-style-type"]="disc";return h=this.insertAttributes(h,f)}}return a};b.prototype.getTextParagraphFormated=function(a){var b="",g={};g.align=this.getHorizontalAlign(this.pp,!0);g["margin-left"]=this.getIndentLeft(this.pp); @@ -9291,7 +9298,7 @@ b.prototype.getMasterName=function(){return this.shapeName};b.prototype.setLabel if(function(a,b,d){void 0===d&&(d=0);return a.substr(d,b.length)===b}(d,"Organizational unit")||function(a,b,d){void 0===d&&(d=0);return a.substr(d,b.length)===b}(f,"Organizational unit")){var h=this.shape.getElementsByTagName(c.mxgraph.io.vsdx.mxVsdxConstants.CONTROL).item(0),d=null,d="0.0",f=null,f="-0.4";null!=h&&(d=h.getElementsByTagName(c.mxgraph.io.vsdx.mxVsdxConstants.X).item(0),d=d.hasAttribute("F")?d.getAttribute("F"):d.textContent,f=h.getElementsByTagName(c.mxgraph.io.vsdx.mxVsdxConstants.Y).item(0), f=f.hasAttribute("F")?f.getAttribute("F"):f.textContent);h=a.getGeometry();d=d.split("Width/2+").join("");d=d.split("DL").join("");f=f.split("Height*").join("");(function(a,b){return a&&a.equals?a.equals(b):a===b})(d,"Inh")&&(d="0.0");(function(a,b){return a&&a.equals?a.equals(b):a===b})(f,"Inh")&&(f="-0.4");-1!=f.indexOf("txtHeight")&&(f="-0.4");for(var l=b.split(";"),m="",t=0;t<l.length;t++){var z=l[t],z=z.trim();(function(a,b,d){void 0===d&&(d=0);return a.substr(d,b.length)===b})(z,"tabHeight=")&& (m=z.split("tabHeight=").join(""))}(function(a,b){return a&&a.equals?a.equals(b):a===b})(m,"")&&(m="20");l=parseFloat(m);d=parseFloat(d);f=parseFloat(f);m=h.height;d=.1*h.width+100*d;d=new mxPoint(d,m-m*f-l/2);a.getGeometry().offset=d}else if(function(a,b,d){void 0===d&&(d=0);return a.substr(d,b.length)===b}(d,"Domain 3D")||function(a,b,d){void 0===d&&(d=0);return a.substr(d,b.length)===b}(f,"Domain 3D")){h=this.shape.getElementsByTagName(c.mxgraph.io.vsdx.mxVsdxConstants.CONTROL).item(0);d=null; -d="0.0";f=null;f="-0.4";null!=h&&(d=h.getElementsByTagName(c.mxgraph.io.vsdx.mxVsdxConstants.X).item(0),d=d.getAttribute("F"),f=h.getElementsByTagName(c.mxgraph.io.vsdx.mxVsdxConstants.Y).item(0),f=f.getAttribute("F"));h=a.getGeometry();d=d.split("Width/2+").join("");d=d.split("DL").join("");f=f.split("Height*").join("");if(function(a,b){return a&&a.equals?a.equals(b):a===b}(d,"Inh")||function(a,b){return a&&a.equals?a.equals(b):a===b}(d,""))d="0.0";if(function(a,b){return a&&a.equals?a.equals(b): +d="0.0";f=null;f="-0.4";null!=h&&(d=h.getElementsByTagName(c.mxgraph.io.vsdx.mxVsdxConstants.X).item(0),d=d.getAttribute("F")||"",f=h.getElementsByTagName(c.mxgraph.io.vsdx.mxVsdxConstants.Y).item(0),f=f.getAttribute("F")||"");h=a.getGeometry();d=d.split("Width/2+").join("");d=d.split("DL").join("");f=f.split("Height*").join("");if(function(a,b){return a&&a.equals?a.equals(b):a===b}(d,"Inh")||function(a,b){return a&&a.equals?a.equals(b):a===b}(d,""))d="0.0";if(function(a,b){return a&&a.equals?a.equals(b): a===b}(f,"Inh")||function(a,b){return a&&a.equals?a.equals(b):a===b}(f,""))f="-0.4";-1!=f.indexOf("txtHeight")&&(f="-0.4");d=parseFloat(d);f=parseFloat(f);m=h.height;d=.1*h.width+100*d;d=new mxPoint(d,m-m*f);a.getGeometry().offset=d}};b.prototype.getForm=function(){var a={};if(this.isVertex())try{var d=b.getType(this.getShape());this.styleDebug("shape type = "+d);if(null!=this.imageData||function(a,b){return a&&a.equals?a.equals(b):a===b}(c.mxgraph.io.vsdx.mxVsdxConstants.FOREIGN,d)&&null!=this.masterShape&& null!=this.masterShape.imageData){var f=null!=this.imageData?this.imageData:this.masterShape.imageData;a.shape="image";a.aspect="fixed";var h=function(a,b){return a[b]?a[b]:null}(f,"iType"),l=function(a,b){return a[b]?a[b]:null}(f,"iData");a.image="data:image/"+h+","+l;return a}var m=this.parseGeom();if(function(a,b){return a&&a.equals?a.equals(b):a===b}(m,""))return this.styleDebug("No geom found"),a;var x=Graph.prototype.compress(m);a[mxConstants.STYLE_SHAPE]="stencil("+x+")"}catch(t){console.error(t.message, t)}else return this.getEdgeStyle();return a};b.prototype.isOff_page_reference=function(){var a=this.getNameU();return function(a,b){return a&&a.equals?a.equals(b):a===b}(a,"Off-page reference")||function(a,b){return a&&a.equals?a.equals(b):a===b}(a,"Lined/Shaded process")?!0:!1};b.prototype.isExternal_process=function(){var a;a=(a=this.shapeName)&&a.equals?a.equals("External process"):"External process"===a;return a};b.prototype.getDirection=function(a){a=mxResources.get("mxOffset"+this.shapeName); @@ -9303,8 +9310,8 @@ a===b}(f.toLowerCase(),"width*1")&&function(a,b){return a&&a.equals?a.equals(b): b,d){void 0===d&&(d=0);return a.substr(d,b.length)===b}(a.toLowerCase(),"controls.row_")||function(a,b,d){void 0===d&&(d=0);return a.substr(d,b.length)===b}(b.toLowerCase(),"controls.row_"))?!1:!0};b.prototype.isRotatedLabel=function(){var a=this.getAttribute(c.mxgraph.io.vsdx.mxVsdxConstants.TXT_ANGLE,"V","");null!=this.masterShape&&function(a,b){return a&&a.equals?a.equals(b):a===b}(a,"")&&(a=this.masterShape.getAttribute(c.mxgraph.io.vsdx.mxVsdxConstants.TXT_ANGLE,"V",""));return function(a,b){return a&& a.equals?a.equals(b):a===b}(a,"0")||function(a,b){return a&&a.equals?a.equals(b):a===b}(a,"0.0")||function(a,b){return a&&a.equals?a.equals(b):a===b}(a,"")?!1:!0};b.prototype.setRootShape=function(a){this.rootShape=a};b.prototype.getRootShape=function(){return this.rootShape};b.prototype.getStartXY=function(a){var b=Math.floor(Math.round(100*this.getScreenNumericalValue$org_w3c_dom_Element$double(this.getCellElement$java_lang_String(c.mxgraph.io.vsdx.mxVsdxConstants.BEGIN_X),0))/100);a=Math.floor(Math.round(100* (a-this.getScreenNumericalValue$org_w3c_dom_Element$double(this.getCellElement$java_lang_String(c.mxgraph.io.vsdx.mxVsdxConstants.BEGIN_Y),0)))/100);return new mxPoint(b,a)};b.prototype.getEndXY=function(a){var b=Math.floor(Math.round(100*this.getScreenNumericalValue$org_w3c_dom_Element$double(this.getCellElement$java_lang_String(c.mxgraph.io.vsdx.mxVsdxConstants.END_X),0))/100);a=Math.floor(Math.round(100*(a-this.getScreenNumericalValue$org_w3c_dom_Element$double(this.getCellElement$java_lang_String(c.mxgraph.io.vsdx.mxVsdxConstants.END_Y), -0)))/100);return new mxPoint(b,a)};b.prototype.getRoutingPoints=function(a,b,c){return null!=this.geomList?this.geomList.getRoutingPoints(a,b,c):null};b.prototype.getControlPoints=function(a){var b=this.getStartXY(a);a=this.getEndXY(a);var f=[];if(null!=this.shape){var h=this.shape.getElementsByTagName(c.mxgraph.io.vsdx.mxVsdxConstants.GEOM);if(0<h.length&&(h=h.item(0).getElementsByTagName(c.mxgraph.io.vsdx.mxVsdxConstants.NURBS_TO).item(0).getElementsByTagName("E").item(0),null!=h)){for(var h=h.getAttribute("F"), -h=h.replace(RegExp("NURBS\\(","g"),""),h=h.replace(RegExp("\\)","g"),""),h=h.replace(RegExp(",","g")," "),h=h.replace(RegExp("\\s\\s","g")," "),h=h.split(" "),l=h.length,m=[];0<l--;)m.push(0);for(l=0;l<h.length;l++)m[l]=parseFloat(h[l]);for(l=2;l+4<h.length;l+=4){var x=new mxPoint,t=m[l+3];x.x=Math.floor(Math.round(100*(b.x+Math.min(100,Math.abs(a.x-b.x))*m[l+2]))/100);x.y=Math.floor(Math.round(100*(b.y-100*t))/100);0<f.push(x)}return f}}return null};b.prototype.getStyleFromEdgeShape=function(a){this.styleMap[c.mxgraph.io.vsdx.mxVsdxConstants.VSDX_ID]= +0)))/100);return new mxPoint(b,a)};b.prototype.getRoutingPoints=function(a,b,c){return null!=this.geomList?this.geomList.getRoutingPoints(a,b,c):null};b.prototype.getControlPoints=function(a){var b=this.getStartXY(a);a=this.getEndXY(a);var f=[];if(null!=this.shape){var h=this.shape.getElementsByTagName(c.mxgraph.io.vsdx.mxVsdxConstants.GEOM);if(0<h.length&&(h=h.item(0).getElementsByTagName(c.mxgraph.io.vsdx.mxVsdxConstants.NURBS_TO).item(0).getElementsByTagName("E").item(0),null!=h)){for(var h=h.getAttribute("F")|| +"",h=h.replace(RegExp("NURBS\\(","g"),""),h=h.replace(RegExp("\\)","g"),""),h=h.replace(RegExp(",","g")," "),h=h.replace(RegExp("\\s\\s","g")," "),h=h.split(" "),l=h.length,m=[];0<l--;)m.push(0);for(l=0;l<h.length;l++)m[l]=parseFloat(h[l]);for(l=2;l+4<h.length;l+=4){var x=new mxPoint,t=m[l+3];x.x=Math.floor(Math.round(100*(b.x+Math.min(100,Math.abs(a.x-b.x))*m[l+2]))/100);x.y=Math.floor(Math.round(100*(b.y-100*t))/100);0<f.push(x)}return f}}return null};b.prototype.getStyleFromEdgeShape=function(a){this.styleMap[c.mxgraph.io.vsdx.mxVsdxConstants.VSDX_ID]= this.getId().toString();a=this.getForm();if(null!=a&&!function(a,b){return a&&a.equals?a.equals(b):a===b}(a,""))for(var d in a)this.styleMap[d]=a[d];this.isDashed()&&(this.styleMap[mxConstants.STYLE_DASHED]="1",d=this.getDashPattern(),null!=d&&(this.styleMap[mxConstants.STYLE_DASH_PATTERN]=d));d=this.getEdgeMarker(!0);null!=d&&(function(a,b,d){void 0===d&&(d=0);return a.substr(d,b.length)===b}(d,b.ARROW_NO_FILL_MARKER)&&(d=d.substring(b.ARROW_NO_FILL_MARKER.length),this.styleMap[mxConstants.STYLE_STARTFILL]= "0"),this.styleMap[mxConstants.STYLE_STARTARROW]=d);d=this.getEdgeMarker(!1);null!=d&&(function(a,b,d){void 0===d&&(d=0);return a.substr(d,b.length)===b}(d,b.ARROW_NO_FILL_MARKER)&&(d=d.substring(b.ARROW_NO_FILL_MARKER.length),this.styleMap[mxConstants.STYLE_ENDFILL]="0"),this.styleMap[mxConstants.STYLE_ENDARROW]=d);d=Math.round(this.getStartArrowSize())|0;6!==d&&(this.styleMap[mxConstants.STYLE_STARTSIZE]=""+d);d=Math.round(this.getFinalArrowSize())|0;6!==d&&(this.styleMap[mxConstants.STYLE_ENDSIZE]= ""+d);d=Math.round(this.getLineWidth())|0;1!==d&&(this.styleMap[mxConstants.STYLE_STROKEWIDTH]=""+d);d=this.getStrokeColor();(function(a,b){return a&&a.equals?a.equals(b):a===b})(d,"")||(this.styleMap[mxConstants.STYLE_STROKECOLOR]=d);this.isShadow()&&(this.styleMap[mxConstants.STYLE_SHADOW]=c.mxgraph.io.vsdx.mxVsdxConstants.TRUE);this.isConnectorBigNameU(this.getNameU())&&(this.styleMap[mxConstants.STYLE_SHAPE]=mxConstants.SHAPE_ARROW,d=this.getFillColor(),function(a,b){return a&&a.equals?a.equals(b): diff --git a/src/main/webapp/js/diagramly/App.js b/src/main/webapp/js/diagramly/App.js index 38dd21664..65254c35f 100644 --- a/src/main/webapp/js/diagramly/App.js +++ b/src/main/webapp/js/diagramly/App.js @@ -186,6 +186,16 @@ App.TRELLO_JQUERY_URL = 'https://code.jquery.com/jquery-1.7.1.min.js'; */ App.FOOTER_PLUGIN_URL = 'https://www.jgraph.com/drawio-footer.js'; +/** + * Switch to disable Google realtime. If true this will convert existing realtime files. + */ +App.GOOGLE_REALTIME = urlParams['google-realtime'] != '0'; + +/** + * Switch to disable Google realtime. If true this will convert existing realtime files. + */ +App.GOOGLE_APIS = 'client,drive-share' + ((App.GOOGLE_REALTIME) ? ',drive-realtime' : ''); + /** * Defines plugin IDs for loading via p URL parameter. Update the table at * https://desk.draw.io/solution/articles/16000042546 @@ -400,6 +410,7 @@ App.getStoredMode = function() */ App.main = function(callback, createUi) { + var sessionId = Editor.guid(); var lastErrorMessage = null; // Changes top level error handling @@ -420,16 +431,19 @@ App.main = function(callback, createUi) else if (message != null && message.indexOf('DocumentClosedError') < 0) { lastErrorMessage = message; - var img = new Image(); var severity = (message.indexOf('NetworkError') >= 0 || message.indexOf('SecurityError') >= 0 || message.indexOf('NS_ERROR_FAILURE') >= 0 || message.indexOf('out of memory') >= 0) ? 'CONFIG' : 'SEVERE'; var logDomain = window.DRAWIO_LOG_URL != null ? window.DRAWIO_LOG_URL : ''; - img.src = logDomain + '/log?severity=' + severity + '&v=' + encodeURIComponent(EditorUi.VERSION) + - '&msg=clientError:' + encodeURIComponent(message) + ':url:' + encodeURIComponent(window.location.href) + - ':lnum:' + encodeURIComponent(linenumber) + - ((colno != null) ? ':colno:' + encodeURIComponent(colno) : '') + - ((err != null && err.stack != null) ? '&stack=' + encodeURIComponent(err.stack) : ''); + + var img = new Image(); + img.src = logDomain + '/log?severity=' + severity + '&v=' + encodeURIComponent(EditorUi.VERSION) + + '&msg=clientError:' + encodeURIComponent(message) + + ':url:' + encodeURIComponent(window.location.href) + + ':lnum:' + encodeURIComponent(linenumber) + + ((colno != null) ? ':colno:' + encodeURIComponent(colno) : '') + + ((err != null && err.stack != null) ? '&stack=' + encodeURIComponent(err.stack) : '') + + '&sid=' + sessionId; } } catch (err) @@ -438,7 +452,7 @@ App.main = function(callback, createUi) } }; } - + if (window.mxscript != null) { /** @@ -960,10 +974,10 @@ App.prototype.init = function() if (window.DrawGapiClientCallback != null) { - gapi.load(((urlParams['picker'] != '0') ? 'picker,': '') + 'auth:client,drive-realtime,drive-share', mxUtils.bind(this, function(resp) + gapi.load(((urlParams['picker'] != '0') ? 'picker,': '') + 'auth:' + App.GOOGLE_APIS, mxUtils.bind(this, function(resp) { // Starts the app without the Google Option if the API fails to load - if (gapi.drive != null && gapi.drive.realtime != null) + if (gapi.client != null) { gapi.client.load('drive', 'v2', mxUtils.bind(this, function() { @@ -1751,7 +1765,7 @@ App.prototype.appIconClicked = function(evt) if (mode == App.MODE_GOOGLE) { - if (file.desc != null && file.desc.parents.length > 0) + if (file.desc != null && file.desc.parents != null && file.desc.parents.length > 0) { // Opens containing folder this.openLink('https://drive.google.com/drive/folders/' + file.desc.parents[0].id); @@ -1901,13 +1915,13 @@ App.prototype.loadGapi = function(then) { if (typeof gapi !== 'undefined') { - gapi.load(((urlParams['picker'] != '0') ? 'picker,': '') + 'auth:client,drive-realtime,drive-share', mxUtils.bind(this, function(resp) + gapi.load(((urlParams['picker'] != '0') ? 'picker,': '') + 'auth:' + App.GOOGLE_APIS, mxUtils.bind(this, function(resp) { // Starts the app without the Google Option if the API fails to load - if (gapi.drive == null || gapi.drive.realtime == null) + if (gapi.client == null) { - this.mode = null; this.drive = null; + this.mode = null; then(); } else @@ -1919,8 +1933,8 @@ App.prototype.loadGapi = function(then) { if (gapi.client.drive == null) { - this.mode = null; this.drive = null; + this.mode = null; } then(); @@ -2001,6 +2015,26 @@ App.prototype.load = function() } }; +/** + * Adds the listener for automatically saving the diagram for local changes. + */ +App.prototype.showRefreshDialog = function(title, message) +{ + if (!this.showingRefreshDialog) + { + this.showingRefreshDialog = true; + + this.showError(title || mxResources.get('error'), + message || mxResources.get('redirectToNewApp'), + mxResources.get('refresh'), mxUtils.bind(this, function() + { + this.spinner.spin(document.body, mxResources.get('connecting')); + this.editor.graph.setEnabled(false); + window.location.reload(); + })); + } +}; + /** * Called in start after the spinner stops. */ @@ -4104,6 +4138,11 @@ App.prototype.save = function(name, done) var error = mxUtils.bind(this, function(resp) { + if (this.getCurrentFile() == file && file.isModified()) + { + file.addUnsavedStatus(); + } + // Spinner is paused and resumed in handleError this.handleError(resp, (resp != null) ? mxResources.get('errorSavingFile') : null); }); diff --git a/src/main/webapp/js/diagramly/DistanceGuides.js b/src/main/webapp/js/diagramly/DistanceGuides.js index b35a72c8f..11dbf7665 100644 --- a/src/main/webapp/js/diagramly/DistanceGuides.js +++ b/src/main/webapp/js/diagramly/DistanceGuides.js @@ -26,6 +26,8 @@ { var yShift = delta.y; var xShift = delta.x; + var hasHorGuides = false; + var hasVerGuides = false; if (this.states != null && bounds != null && delta != null) { @@ -68,11 +70,13 @@ } var eqCy = 0; + var dy = 0; + var fixedDy = 0; + var midDy = 0; var eqCx = 0; - var dy = 0.0; - var fixedDy = 0.0; - var dx = 0.0; - var fixedDx = 0.0; + var dx = 0; + var fixedDx = 0; + var midDx = 0; var shift = 5 * scale; if (verticalCells.length > 1) @@ -84,29 +88,75 @@ return s1.y - s2.y; }); + var newStatePassed = false; + var firstMoving = newState == verticalCells[0]; + var lastMoving = newState == verticalCells[verticalCells.length - 1]; + + //find the mid space and use it as dy and fixedDy + if (!firstMoving && !lastMoving) + { + for (var i = 1; i < verticalCells.length - 1; i++) + { + if (newState == verticalCells[i]) + { + var s1 = verticalCells[i - 1]; + var s3 = verticalCells[i + 1]; + midDy = (s3.y - s1.y - s1.height - newState.height) / 2; + dy = midDy; + fixedDy = dy; + break; + } + } + } + for (var i = 0; i < verticalCells.length - 1; i++) { var s1 = verticalCells[i]; var s2 = verticalCells[i + 1]; var isMovingOne = newState == s1 || newState == s2; - var curDy = s2.y - s1.y - s1.height; - if (!isMovingOne) - { - fixedDy = curDy; - } - - if (eqCy == 0) + newStatePassed |= newState == s1; + + if (dy == 0 && eqCy == 0) { dy = curDy; eqCy = 1; } - else if (Math.abs(dy - curDy) <= (isMovingOne? tolerance : tolerance)) + else if (Math.abs(dy - curDy) <= (isMovingOne || (i == 1 && newStatePassed)? tolerance : 0)) //non-moving cells must have exact same dy, must handle the case of having the first cell moving so we allow tolerance for second cell (until fixedDy is non-zero) { eqCy += 1; } - } + else if (eqCy > 1 && newStatePassed) //stop and ignore the following cells + { + verticalCells = verticalCells.slice(0, i + 1); + break; + } + else if (verticalCells.length - i >= 3 && !newStatePassed) //reset and start counting again + { + eqCy = 0; + dy = midDy != 0? midDy : 0; + fixedDy = dy; + verticalCells.splice(0, i == 0? 1 : i); + i = -1; + } + else + { + break; + } + + if (fixedDy == 0 && !isMovingOne) + { + fixedDy = curDy; + //Update dy such that following cells shows equal distance guides without tolerance + dy = fixedDy; + } + } + + if (verticalCells.length == 3 && verticalCells[1] == newState) + { + fixedDy = 0; + } } if (horizontalCells.length > 1) @@ -118,36 +168,81 @@ return s1.x - s2.x; }); + var newStatePassed = false; + var firstMoving = newState == horizontalCells[0]; + var lastMoving = newState == horizontalCells[horizontalCells.length - 1]; + + //find the mid space and use it as dx and fixedDx + if (!firstMoving && !lastMoving) + { + for (var i = 1; i < horizontalCells.length - 1; i++) + { + if (newState == horizontalCells[i]) + { + var s1 = horizontalCells[i - 1]; + var s3 = horizontalCells[i + 1]; + midDx = (s3.x - s1.x - s1.width - newState.width) / 2; + dx = midDx; + fixedDx = dx; + break; + } + } + } + for (var i = 0; i < horizontalCells.length - 1; i++) { var s1 = horizontalCells[i]; var s2 = horizontalCells[i + 1]; var isMovingOne = newState == s1 || newState == s2; - var curDx = s2.x - s1.x - s1.width; - if (!isMovingOne) - { - fixedDx = curDx; - } + newStatePassed |= newState == s1; - if (eqCx == 0) + if (dx == 0 && eqCx == 0) { dx = curDx; eqCx = 1; } - else if (Math.abs(dx - curDx) <= (isMovingOne? tolerance : tolerance)) + else if (Math.abs(dx - curDx) <= (isMovingOne || (i == 1 && newStatePassed)? tolerance : 0)) { eqCx += 1; } - } + else if (eqCx > 1 && newStatePassed) //stop and ignore the following cells + { + horizontalCells = horizontalCells.slice(0, i + 1); + break; + } + else if (horizontalCells.length - i >= 3 && !newStatePassed) //reset and start counting again + { + eqCx = 0; + dx = midDx != 0? midDx : 0; + fixedDx = dx; + horizontalCells.splice(0, i == 0? 1 : i); + i = -1; + } + else + { + break; + } + + if (fixedDx == 0 && !isMovingOne) + { + fixedDx = curDx; + //Update dx such that following cells shows equal distance guides without tolerance + dx = fixedDx; + } + } + if (horizontalCells.length == 3 && horizontalCells[1] == newState) + { + fixedDx = 0; + } } var createEqGuide = function(p1, p2, curGuide, isVer) { var points = []; - var dx = 0.0; - var dy = 0.0; + var dx = 0 + var dy = 0; if (isVer) { @@ -181,7 +276,26 @@ return guideEq; } }; - + + var hideEqGuides = function(horizontal, vertical) + { + if (horizontal && guide.guidesArrHor != null) + { + for (var i = 0; i < guide.guidesArrHor.length; i++) + { + guide.guidesArrHor[i].node.style.visibility = "hidden"; + } + } + + if (vertical && guide.guidesArrVer != null) + { + for (var i = 0; i < guide.guidesArrVer.length; i++) + { + guide.guidesArrVer[i].node.style.visibility = "hidden"; + } + } + }; + if (eqCx > 1 && eqCx == horizontalCells.length - 1) { var guidesArr = []; @@ -239,16 +353,21 @@ guideEq.redraw(); guidesArr.push(guideEq); } + + //destroy old non-recycled guides + for (var i = hPoints.length / 2; curArr != null && i < curArr.length; i ++) + { + curArr[i].destroy(); + } + guide.guidesArrHor = guidesArr; xShift = newX - bounds.x; + hasHorGuides = true; } - else if (guide.guidesArrHor != null) + else { - for (var i = 0; i < guide.guidesArrHor.length; i++) - { - guide.guidesArrHor[i].node.style.visibility = "hidden"; - } + hideEqGuides(true); } if (eqCy > 1 && eqCy == verticalCells.length - 1) @@ -299,7 +418,7 @@ vPoints.push(new mxPoint(firstX, s3.y - shift)); } - for (i = 0; i < vPoints.length; i += 2) + for (var i = 0; i < vPoints.length; i += 2) { var p1 = vPoints[i]; var p2 = vPoints[i+1]; @@ -308,21 +427,44 @@ guideEq.redraw(); guidesArr.push(guideEq); } + + //destroy old non-recycled guides + for (var i = vPoints.length / 2; curArr != null && i < curArr.length; i ++) + { + curArr[i].destroy(); + } guide.guidesArrVer = guidesArr; yShift = newY - bounds.y; + hasVerGuides = true; } - else if (guide.guidesArrVer != null) + else { - for (var i = 0; i < guide.guidesArrVer.length; i++) - { - guide.guidesArrVer[i].node.style.visibility = "hidden"; - } + hideEqGuides(false, true); } } - return guideMove.call(this, bounds, new mxPoint(xShift, yShift), gridEnabled); + //TODO force other guides not to change the point! + if (hasHorGuides || hasVerGuides) + { + var eqPoint = new mxPoint(xShift, yShift); + guideMove.call(this, bounds, eqPoint, gridEnabled, clone); + + //if other guides changed the calculated point, hide the guides +// if ((hasHorGuides && newPoint.x != xShift) || (hasVerGuides && newPoint.y != yShift)) +// { +// hideEqGuides(true, true); +// } +// return newPoint; + //Discard other guides modifications and return our point! Not the best (correct?) solution + return eqPoint; + } + else + { + hideEqGuides(true, true); + return guideMove.apply(this, arguments); + } }; var guideSetVisible = mxGuide.prototype.setVisible; diff --git a/src/main/webapp/js/diagramly/DrawioFile.js b/src/main/webapp/js/diagramly/DrawioFile.js index 0c0c99e65..f90d4c53c 100644 --- a/src/main/webapp/js/diagramly/DrawioFile.js +++ b/src/main/webapp/js/diagramly/DrawioFile.js @@ -25,27 +25,28 @@ DrawioFile = function(ui, data) mxUtils.extend(DrawioFile, mxEventSource); /** - * Sets the delay for autosave in milliseconds. Default is 1500. + * Specifies the delay between the last change and the autosave. */ DrawioFile.prototype.autosaveDelay = 1500; /** - * Sets the delay for autosave in milliseconds. Default is 30000. + * Specifies the maximum delay before an autosave is forced even if the graph + * is being changed. */ DrawioFile.prototype.maxAutosaveDelay = 30000; /** - * Sets the delay for autosave in milliseconds. Default is 2000. + * Contains the thread for the next autosave. */ DrawioFile.prototype.autosaveThread = null; /** - * Sets the delay for autosave in milliseconds. Default is 500. + * Stores the timestamp for hte last autosave. */ DrawioFile.prototype.lastAutosave = null; /** - * Sets the delay for autosave in milliseconds. Default is 1500. + * Stores the modified state. */ DrawioFile.prototype.modified = false; @@ -297,40 +298,20 @@ DrawioFile.prototype.getData = function() */ DrawioFile.prototype.open = function() { - this.ui.setFileData(this.getData()); + var data = this.getData(); + + if (data != null) + { + this.ui.setFileData(data); + } this.changeListener = mxUtils.bind(this, function(sender, eventObject) { var edit = (eventObject != null) ? eventObject.getProperty('edit') : null; - if (this.changeListenerEnabled && this.isEditable() && - (edit == null || !edit.ignoreEdit)) + if (this.changeListenerEnabled && this.isEditable() && (edit == null || !edit.ignoreEdit)) { - this.setModified(true); - - if (this.isAutosave()) - { - this.ui.editor.setStatus(mxUtils.htmlEntities(mxResources.get('saving')) + '...'); - - this.autosave(this.autosaveDelay, this.maxAutosaveDelay, mxUtils.bind(this, function(resp) - { - // Does not update status if another autosave was scheduled - if (this.autosaveThread == null && this.ui.getCurrentFile() == this && !this.isModified()) - { - this.addAllSavedStatus(); - } - }), mxUtils.bind(this, function(resp) - { - if (this.ui.getCurrentFile() == this) - { - this.addUnsavedStatus(resp); - } - })); - } - else - { - this.addUnsavedStatus(); - } + this.fileChanged(); } }); @@ -360,22 +341,17 @@ DrawioFile.prototype.addAllSavedStatus = function() if (file != null && (file.constructor == DriveFile || file.constructor == DropboxFile)) { - - this.ui.editor.setStatus('<span title="'+ mxUtils.htmlEntities(mxResources.get('revisionHistory')) + + this.ui.editor.setStatus('<div title="'+ mxUtils.htmlEntities(mxResources.get('revisionHistory')) + '" style="text-decoration:underline;cursor:pointer;">' + - mxUtils.htmlEntities(mxResources.get('allChangesSaved')) + '</span>'); + mxUtils.htmlEntities(mxResources.get('allChangesSaved')) + '</div>'); + var links = (this.ui.statusContainer != null) ? this.ui.statusContainer.getElementsByTagName('div') : null; - if (this.ui.statusContainer != null) + if (links.length > 0) { - var links = this.ui.statusContainer.getElementsByTagName('span'); - - if (links.length > 0) + mxEvent.addListener(links[0], 'click', mxUtils.bind(this, function() { - mxEvent.addListener(links[0], 'click', mxUtils.bind(this, function() - { - this.ui.actions.get('revisionHistory').funct(); - })); - } + this.ui.actions.get('revisionHistory').funct(); + })); } } else @@ -384,6 +360,38 @@ DrawioFile.prototype.addAllSavedStatus = function() } }; +/** + * Adds the listener for automatically saving the diagram for local changes. + */ +DrawioFile.prototype.fileChanged = function() +{ + this.setModified(true); + + if (this.isAutosave()) + { + this.ui.editor.setStatus(mxUtils.htmlEntities(mxResources.get('saving')) + '...'); + + this.autosave(this.autosaveDelay, this.maxAutosaveDelay, mxUtils.bind(this, function(resp) + { + // Does not update status if another autosave was scheduled + if (this.autosaveThread == null && this.ui.getCurrentFile() == this && !this.isModified()) + { + this.addAllSavedStatus(); + } + }), mxUtils.bind(this, function(resp) + { + if (this.ui.getCurrentFile() == this) + { + this.addUnsavedStatus(resp); + } + })); + } + else + { + this.addUnsavedStatus(); + } +}; + /** * Adds the listener for automatically saving the diagram for local changes. */ @@ -392,8 +400,8 @@ DrawioFile.prototype.addUnsavedStatus = function(err) if (err instanceof Error && err.message != null) { this.ui.editor.setStatus('<div class="geStatusAlert" style="overflow:hidden;">' + - mxUtils.htmlEntities(mxResources.get('unsavedChanges')) + - ' (' + mxUtils.htmlEntities(err.message) + ')</div>'); + mxUtils.htmlEntities(mxResources.get('unsavedChanges')) + + ' (' + mxUtils.htmlEntities(err.message) + ')</div>'); } else { @@ -415,17 +423,19 @@ DrawioFile.prototype.addUnsavedStatus = function(err) mxUtils.htmlEntities(mxResources.get('unsavedChangesClickHereToSave')) + '</div>'); // Installs click handler for saving - if (this.ui.statusContainer != null) + var links = (this.ui.statusContainer != null) ? this.ui.statusContainer.getElementsByTagName('div') : null; + + if (links != null && links.length > 0) { - var links = this.ui.statusContainer.getElementsByTagName('div'); - - if (links.length > 0) + mxEvent.addListener(links[0], 'click', mxUtils.bind(this, function() { - mxEvent.addListener(links[0], 'click', mxUtils.bind(this, function() - { - this.ui.actions.get((this.ui.mode == null) ? 'saveAs' : 'save').funct(); - })); - } + this.ui.actions.get((this.ui.mode == null) ? 'saveAs' : 'save').funct(); + })); + } + else + { + this.ui.editor.setStatus('<div class="geStatusAlert" style="overflow:hidden;">' + + mxUtils.htmlEntities(mxResources.get('unsavedChanges')) + '</div>'); } } }; @@ -442,13 +452,17 @@ DrawioFile.prototype.autosave = function(delay, maxDelay, success, error) var tmp = (new Date().getTime() - this.lastAutosave < maxDelay) ? delay : 0; this.clearAutosave(); - + // Starts new timer or executes immediately if not unsaved for maxDelay - this.autosaveThread = window.setTimeout(mxUtils.bind(this, function() + var thread = window.setTimeout(mxUtils.bind(this, function() { - this.autosaveThread = null; this.lastAutosave = null; + if (this.autosaveThead == thread) + { + this.autosaveThread = null; + } + // Workaround for duplicate save if UI is blocking // after save while pending autosave triggers if (this.isModified() && this.isAutosaveNow()) @@ -478,12 +492,19 @@ DrawioFile.prototype.autosave = function(delay, maxDelay, success, error) } else { + if (!this.isModified()) + { + this.ui.editor.setStatus(''); + } + if (success != null) { success(null); } } }), tmp); + + this.autosaveThread = thread; }; /** diff --git a/src/main/webapp/js/diagramly/DriveClient.js b/src/main/webapp/js/diagramly/DriveClient.js index e4f53968f..2aa09c314 100644 --- a/src/main/webapp/js/diagramly/DriveClient.js +++ b/src/main/webapp/js/diagramly/DriveClient.js @@ -10,6 +10,9 @@ DriveClient = function(editorUi) * Holds a reference to the UI. Needed for the sharing client. */ this.ui = editorUi; + + // New mime type for XML files + this.xmlMimeType = 'application/vnd.jgraph.mxfile'; if (this.ui.editor.isChromelessView() && urlParams['rt'] != '1') { @@ -37,9 +40,8 @@ DriveClient = function(editorUi) this.mimeType = 'application/vnd.jgraph.mxfile.rtlegacy'; } - this.mimeTypes = 'application/mxe,application/vnd.jgraph.mxfile,' + - 'application/mxr,application/vnd.jgraph.mxfile.realtime,' + - 'application/vnd.jgraph.mxfile.rtlegacy'; + this.mimeTypes = this.xmlMimeType + 'application/mxe,application/mxr,' + + 'application/vnd.jgraph.mxfile.realtime,application/vnd.jgraph.mxfile.rtlegacy'; }; // Extends mxEventSource @@ -58,6 +60,12 @@ DriveClient.prototype.scopes = (urlParams['photos'] == '1') ? 'https://www.googleapis.com/auth/drive.install', 'https://www.googleapis.com/auth/userinfo.profile']; +/** + * Contains the hostname of the old app. + */ +DriveClient.prototype.allFields = 'kind,id,parents,headRevisionId,etag,title,mimeType,modifiedDate,' + + 'editable,copyable,labels,properties,downloadUrl,webContentLink,userPermission'; + /** * Specifies if thumbnails should be enabled. Default is true. * LATER: If thumbnails are disabled, make sure to replace the @@ -377,7 +385,8 @@ DriveClient.prototype.executeRequest = function(req, success, error) // Schedules a retry if no new request was executed // TODO: Check for 'rateLimitExceeded', 'userRateLimitExceeded' in errors // see https://developers.google.com/drive/handle-errors - else if (resp != null && resp.error != null && resp.error.code != 404 && this.currentRequest == req && retryCount < this.maxRetries) + else if (resp != null && resp.error != null && resp.error.code != 412 && resp.error.code != 404 && + this.currentRequest == req && retryCount < this.maxRetries) { retryCount++; var jitter = 1 + 0.1 * (Math.random() - 0.5); @@ -561,8 +570,9 @@ DriveClient.prototype.copyFile = function(id, title, success, error) { if (id != null && title != null) { - this.executeRequest(gapi.client.drive.files.copy({'fileId': id, 'resource': - {'title' : title}, 'supportsTeamDrives': true}), success, error); + this.executeRequest(gapi.client.drive.files.copy({'fileId': id, + 'fields': this.allFields, 'supportsTeamDrives': true, + 'resource': {'title' : title}}), success, error); } }; @@ -576,7 +586,8 @@ DriveClient.prototype.renameFile = function(id, title, success, error) { if (id != null && title != null) { - this.executeRequest(this.createDriveRequest(id, {'title' : title}), success, error); + this.executeRequest(this.createDriveRequest( + id, {'title' : title}), success, error); } }; @@ -620,6 +631,40 @@ DriveClient.prototype.getLibrary = function(id, success, error) return this.getFile(id, success, error, true, true); }; +/** + * Loads the descriptorf for the given file ID. + */ +DriveClient.prototype.loadDescriptor = function(id, success, error) +{ + this.executeRequest(gapi.client.drive.files.get({'fileId': id, + 'fields': this.allFields, 'supportsTeamDrives': true}), + success, error); +}; + +/** + * Gets the channel ID from the given descriptor. + */ +DriveClient.prototype.getChannelId = function(desc) +{ + var props = desc.properties; + var result = null; + + if (props != null) + { + for (var i = 0; i < props.length; i++) + { + if (props[i].key == 'channel') + { + result = props[i].value; + + break; + } + } + } + + return result; +}; + /** * Checks if the client is authorized and calls the next step. The optional * readXml argument is used for import. Default is false. The optional @@ -632,14 +677,16 @@ DriveClient.prototype.getFile = function(id, success, error, readXml, readLibrar if (urlParams['rev'] != null) { - this.executeRequest(gapi.client.drive.revisions.get({'fileId': id, 'revisionId': urlParams['rev']}), mxUtils.bind(this, function(resp) - { - this.getXmlFile(resp, null, success, error); - }), error); + this.executeRequest(gapi.client.drive.revisions.get({'fileId': id, + 'revisionId': urlParams['rev'], 'supportsTeamDrives': true}), + mxUtils.bind(this, function(resp) + { + this.getXmlFile(resp, null, success, error); + }), error); } else { - this.executeRequest(gapi.client.drive.files.get({'fileId': id, 'supportsTeamDrives': true}), mxUtils.bind(this, function(resp) + this.loadDescriptor(id, mxUtils.bind(this, function(resp) { if (this.user != null) { @@ -654,20 +701,39 @@ DriveClient.prototype.getFile = function(id, success, error, readXml, readLibrar } else { - if (readXml || readLibrary || resp.mimeType == this.libraryMimeType) + // Handles converted realtime files as XML files + if (readXml || readLibrary || resp.mimeType == this.libraryMimeType || + resp.mimeType == this.xmlMimeType) { this.getXmlFile(resp, null, success, error, true, readLibrary); } else { - this.loadRealtime(resp, mxUtils.bind(this, function(doc) - { - try + if (!App.GOOGLE_REALTIME) + { + if (this.isGoogleRealtimeMimeType(resp.mimeType)) { - // Converts XML files to realtime including old realtime model - if (doc == null || doc.getModel() == null || doc.getModel().getRoot() == null || - doc.getModel().getRoot().isEmpty() || (doc.getModel().getRoot().has('cells') && - !doc.getModel().getRoot().has(DriveRealtime.prototype.diagramsKey))) + this.convertRealtimeFile(resp, mxUtils.bind(this, function(file) + { + this.notifyRealtimeConverted(file); + success(file); + }), error); + } + else + { + this.getXmlFile(resp, null, success, error); + } + } + else + { + this.loadRealtime(resp, mxUtils.bind(this, function(doc) + { + try + { + // Converts XML files to realtime including old realtime model + if (doc == null || doc.getModel() == null || doc.getModel().getRoot() == null || + doc.getModel().getRoot().isEmpty() || (doc.getModel().getRoot().has('cells') && + !doc.getModel().getRoot().has(DriveRealtime.prototype.diagramsKey))) { this.getXmlFile(resp, doc, success, error); } @@ -676,12 +742,13 @@ DriveClient.prototype.getFile = function(id, success, error, readXml, readLibrar // XML not required here since the realtime model is not empty success(new DriveFile(this.ui, null, resp, doc)); } - } - catch (e) - { - error(e); - } - }), error); + } + catch (e) + { + error(e); + } + }), error); + } } } } @@ -693,6 +760,50 @@ DriveClient.prototype.getFile = function(id, success, error, readXml, readLibrar } }; +/** + * Returns true if the given mime type is for Google Realtime files. + */ +DriveClient.prototype.isGoogleRealtimeMimeType = function(mimeType) +{ + return mimeType != null && mimeType.substring(0, 30) == 'application/vnd.jgraph.mxfile.'; +}; + +/** + * Checks if the client is authorized and calls the next step. + */ +DriveClient.prototype.getRealtimeData = function(id, success, error, retryCount) +{ + this.executeRequest(gapi.client.drive.realtime.get({'fileId': id, + 'supportsTeamDrives': true}), mxUtils.bind(this, function(resp) + { + var json = (resp.result != null) ? resp.result.data : null; + + if (json != null && json.value != null && json.value.diagrams != null) + { + success(json); + } + else if (error != null) + { + error(); + } + }), mxUtils.bind(this, function(resp) + { + if (retryCount == null) + { + retryCount = 0; + } + + if (retryCount < 3) + { + this.getRealtimeData(id, success, error, retryCount + 1); + } + else if (error != null) + { + error(); + } + })); +}; + /** * Checks if the client is authorized and calls the next step. */ @@ -707,7 +818,7 @@ DriveClient.prototype.loadRealtime = function(resp, success, error) } // Checks if we're in viewer app or if the file is writeable if it needs to be converted else if (this.appId != '850530949725' && (resp.editable || (resp.mimeType != 'application/mxe' && - resp.mimeType != 'application/vnd.jgraph.mxfile'))) + resp.mimeType != 'application/vnd.jgraph.mxfile')) && gapi.drive.realtime != null) { var fn = mxUtils.bind(this, function() { @@ -792,7 +903,8 @@ DriveClient.prototype.getXmlFile = function(resp, doc, success, error, ignoreMim var file = new DriveFile(this.ui, data, resp, doc); // Checks if mime-type needs to be updated if the file is editable and no viewer app - if (!ignoreMime && this.appId != '850530949725' && file.isEditable() && resp.mimeType != this.mimeType) + if (App.GOOGLE_REALTIME && !ignoreMime && this.appId != '850530949725' && file.isEditable() && + resp.mimeType != this.mimeType) { // Overwrites mime-type (only mutable on update when uploading new content) this.saveFile(file, true, mxUtils.bind(this, function(resp) @@ -816,7 +928,7 @@ DriveClient.prototype.getXmlFile = function(resp, doc, success, error, ignoreMim * @param {number} dx X-coordinate of the translation. * @param {number} dy Y-coordinate of the translation. */ -DriveClient.prototype.saveFile = function(file, revision, success, error, noCheck, unloading) +DriveClient.prototype.saveFile = function(file, revision, success, error, noCheck, unloading, overwrite, properties) { if (file.isEditable()) { @@ -839,10 +951,29 @@ DriveClient.prototype.saveFile = function(file, revision, success, error, noChec { var meta = { - 'mimeType': (file.constructor == DriveLibrary) ? this.libraryMimeType : this.mimeType, + 'mimeType': file.desc.mimeType, 'title': file.getTitle() }; + // Overrides old mime type and creates a revision + if (!App.GOOGLE_REALTIME && file.realtime == null && + this.isGoogleRealtimeMimeType(file.desc.mimeType)) + { + meta.mimeType = this.xmlMimeType; + revision = true; + } + + // Inserts a channel ID + if (file.constructor == DriveFile && this.getChannelId(file.desc) == null) + { + if (properties == null) + { + properties = []; + } + + properties.push({'key': 'channel', 'value': Editor.guid()}); + } + // Specifies that no thumbnail should be uploaded in which case the existing thumbnail is used if (!keepExisting) { @@ -869,15 +1000,24 @@ DriveClient.prototype.saveFile = function(file, revision, success, error, noChec // Updates saveDelay on drive file var wrapper = function() { - file.saveDelay = new Date().getTime() - t0; - success.apply(this, arguments); + file.saveDelay = new Date().getTime() - t0; + success.apply(this, arguments); }; var fn = mxUtils.bind(this, function(data, binary) { + if (properties != null) + { + meta.properties = properties; + } + + // Used to check if file was changed externally + var etag = (!overwrite && file.constructor == DriveFile && + file.realtime == null) ? file.desc.etag : null; + this.executeRequest(this.createUploadRequest(file.getId(), meta, data, revision || (file.desc.mimeType != this.mimeType && - file.desc.mimeType != this.libraryMimeType), binary), + file.desc.mimeType != this.libraryMimeType), binary, etag), wrapper, error); }); @@ -900,37 +1040,38 @@ DriveClient.prototype.saveFile = function(file, revision, success, error, noChec { // NOTE: getThumbnail is asynchronous and returns false if no thumbnails can be created if (unloading || file.constructor == DriveLibrary || !this.enableThumbnails || urlParams['thumb'] == '0' || - (file.realtime != null && !file.realtime.connected) || !this.ui.getThumbnail(this.thumbnailWidth, mxUtils.bind(this, function(canvas) - { - // Callback for getThumbnail - var thumb = null; - - if (canvas != null) + (file.realtime != null && !file.realtime.connected) || !this.ui.getThumbnail(this.thumbnailWidth, + mxUtils.bind(this, function(canvas) { - try + // Callback for getThumbnail + var thumb = null; + + if (canvas != null) { - // Security errors are possible - thumb = canvas.toDataURL('image/png'); + try + { + // Security errors are possible + thumb = canvas.toDataURL('image/png'); + } + catch (e) + { + // ignore and continue with placeholder + } } - catch (e) + + // Maximum thumbnail size is 2MB + if (thumb == null || thumb.length > this.maxThumbnailSize) { - // ignore and continue with placeholder + thumb = null; } - } - - // Maximum thumbnail size is 2MB - if (thumb == null || thumb.length > this.maxThumbnailSize) - { - thumb = null; - } - else - { - // Converts base64 data into required format for Drive (base64url with no prefix) - thumb = thumb.substring(thumb.indexOf(',') + 1).replace(/\+/g, '-').replace(/\//g, '_'); - } - - doSave(thumb, 'image/png'); - }))) + else + { + // Converts base64 data into required format for Drive (base64url with no prefix) + thumb = thumb.substring(thumb.indexOf(',') + 1).replace(/\+/g, '-').replace(/\//g, '_'); + } + + doSave(thumb, 'image/png'); + }))) { // If-branch doSave(null, null, file.constructor != DriveLibrary && (file.realtime == null || file.realtime.connected)); @@ -963,6 +1104,39 @@ DriveClient.prototype.saveFile = function(file, revision, success, error, noChec } }; +/** + * Sends a message to all collaborators and stores the head revision ID. + */ +DriveClient.prototype.notifyRealtimeConverted = function(file) +{ + try + { + if (gapi.drive.realtime != null) + { + gapi.drive.realtime.load(file.getId(), mxUtils.bind(this, function(doc) + { + try + { + if (doc != null && doc.getModel() != null && + doc.getModel().getRoot() != null) + { + doc.getModel().getRoot().set('realtimeConverted', + file.desc.headRevisionId); + } + } + catch (e) + { + // ignore + } + })); + } + } + catch (e) + { + // ignore + } +}; + /** * Verifies the mime type of the given file ID. */ @@ -1049,7 +1223,7 @@ DriveClient.prototype.redirectToNewApp = function(error, fileId) */ DriveClient.prototype.insertFile = function(title, data, folderId, success, error, mimeType, binary, allowRealtime) { - mimeType = (mimeType != null) ? mimeType : this.mimeType; + mimeType = (mimeType != null) ? mimeType : ((App.GOOGLE_REALTIME) ? this.mimeType : this.xmlMimeType); allowRealtime = (allowRealtime != null) ? allowRealtime : true; var metadata = @@ -1062,7 +1236,7 @@ DriveClient.prototype.insertFile = function(title, data, folderId, success, erro { metadata.parents = [{'kind': 'drive#fileLink', 'id': folderId}]; } - + // NOTE: Cannot create thumbnail on insert since no ui has no current file this.executeRequest(this.createUploadRequest(null, metadata, data, false, binary), mxUtils.bind(this, function(resp) { @@ -1077,10 +1251,11 @@ DriveClient.prototype.insertFile = function(title, data, folderId, success, erro error({message: mxResources.get('errorSavingFile')}); } } - else if (allowRealtime) + else if (App.GOOGLE_REALTIME && allowRealtime && + this.isGoogleRealtimeMimeType(resp.mimeType)) { this.loadRealtime(resp, mxUtils.bind(this, function(doc) - { + { if (this.user != null) { var file = new DriveFile(this.ui, data, resp, doc); @@ -1094,11 +1269,11 @@ DriveClient.prototype.insertFile = function(title, data, folderId, success, erro { error({message: mxResources.get('loggedOut')}); } - }), error); + }), error, false); } else { - success(resp); + success(new DriveFile(this.ui, data, resp)); } }), error); }; @@ -1109,20 +1284,27 @@ DriveClient.prototype.insertFile = function(title, data, folderId, success, erro * @param {number} dx X-coordinate of the translation. * @param {number} dy Y-coordinate of the translation. */ -DriveClient.prototype.createUploadRequest = function(id, metadata, data, revision, binary) +DriveClient.prototype.createUploadRequest = function(id, metadata, data, revision, binary, etag) { binary = (binary != null) ? binary : false; var bd = '-------314159265358979323846'; var delim = '\r\n--' + bd + '\r\n'; var close = '\r\n--' + bd + '--'; var ctype = 'application/octect-stream'; + + var headers = {'Content-Type' : 'multipart/mixed; boundary="' + bd + '"'}; + + if (etag != null) + { + headers['If-Match'] = etag; + } var reqObj = { 'path': '/upload/drive/v2/files' + (id != null ? '/' + id : ''), 'method': (id != null) ? 'PUT' : 'POST', 'params': {'uploadType': 'multipart'}, - 'headers': {'Content-Type' : 'multipart/mixed; boundary="' + bd + '"'}, + 'headers': headers, 'body' : delim + 'Content-Type: application/json\r\n\r\n' + JSON.stringify(metadata) + delim + 'Content-Type: ' + ctype + '\r\n' + 'Content-Transfer-Encoding: base64\r\n' + '\r\n' + ((data != null) ? (binary) ? data : Base64.encode(data) : '') + close @@ -1134,6 +1316,7 @@ DriveClient.prototype.createUploadRequest = function(id, metadata, data, revisio } reqObj.params['supportsTeamDrives'] = true; + reqObj.params['fields'] = this.allFields; return gapi.client.request(reqObj); }; @@ -1397,7 +1580,7 @@ DriveClient.prototype.pickLibrary = function(fn) } }); - // Reuses picker as long as token doesn't change. + // Reuses picker as long as token doesn't change var token = gapi.auth.getToken().access_token; if (this.libraryPicker == null || this.libraryPickerToken != token) @@ -1477,3 +1660,255 @@ DriveClient.prototype.showPermissions = function(id) shareClient.showSettingsDialog(); })); }; + +/** + * Converts the given file from realtime to XML. + */ +DriveClient.prototype.getRealtimeAge = function(desc, json) +{ + var mod = (json != null && json.value != null && json.value.modifiedDate != null) ? + json.value.modifiedDate.json : null; + var result = 0; + + if (mod != null && mod > 0) + { + var ts = new Date(desc.modifiedDate); + var rt = new Date(mod); + result = ts.getTime() - rt.getTime(); + } + + return result; +}; + +/** + * Converts the given file from realtime to XML. + */ +DriveClient.prototype.convertRealtimeFile = function(desc, success, error) +{ + this.getRealtimeData(desc.id, mxUtils.bind(this, function(json) + { + var age = this.getRealtimeAge(desc, json); + + // Uses the newer of the two + if (age < 0) + { + var node = this.convertJsonToXml(json); + console.log('converted realtime model', age, json, node); + success(new DriveFile(this.ui, mxUtils.getXml(node), desc)); + } + else + { + console.log('using newer XML file', age, json); + this.getXmlFile(desc, null, success, error); + } + }), mxUtils.bind(this, function() + { + console.log('no realtime data, using XML file'); + this.getXmlFile(desc, null, success, error); + })); +}; + +/** + * Returns the location as a new object. + */ +DriveClient.prototype.convertJsonToXml = function(json, uncompressed) +{ + if (json.value == null || json.value.diagrams == null) + { + throw Error('Invalid JSON: no diagrams in root map'); + } + else + { + var node = mxUtils.createXmlDocument().createElement('mxfile'); + var diagrams = json.value.diagrams.value; + + for (var i = 0; i < diagrams.length; i++) + { + try + { + var diagramNode = this.decodeJsonPage(diagrams[i].value, + node.ownerDocument.createElement('diagram'), + uncompressed); + + //if (diagramNode.getAttribute('name') == null) + //{ + // TODO: Should only use when converting but not when comparing + //diagramNode.setAttribute('name', mxResources.get('pageWithNumber', [i + 1])); + //} + + node.appendChild(diagramNode); + } + catch (e) + { + throw Error('Error on page ' + i + ': ' + e.stack); + } + } + + //console.log('leaving convertJson', mxUtils.getPrettyXml(node)); + + return node; + } +}; + +/** + * Returns true if copy, export and print are not allowed for this file. + */ +DriveClient.prototype.decodeJsonPage = function(json, node, uncompressed) +{ + if (json == null) + { + throw Error('Invalid JSON: json for page is null'); + } + else + { + var codec = new mxCodec(); + var root = this.createJsonCell(json.root, codec); + + if (root == null) + { + throw Error('Invalid JSON: no root cell for page'); + } + else + { + // Dummy model for encoding + var modelNode = codec.encode(new mxGraphModel(root)); + this.decodeJsonViewState(json, modelNode); + + if (uncompressed) + { + node.appendChild(modelNode); + } + else + { + mxUtils.setTextContent(node, this.ui.editor.graph.compressNode(modelNode)); + } + + // Adds attributes to diagram node + if (json.id != null) + { + node.setAttribute('id', json.id.json); + } + else + { + // Workaround for missing page ID in JSON + this.node.setAttribute('id', Editor.guid()); + } + + if (json.name != null) + { + node.setAttribute('name', json.name.json); + } + } + } + + //console.log('decoded json page', json, node); + + return node; +}; + +/** + * Writes the view state to the given node. + */ +DriveClient.prototype.decodeJsonViewState = function(json, node) +{ + // Page format is stored as "width,height" + var pf = (json.pageFormat != null) ? json.pageFormat.json : null; + + if (pf != null && pf.length > 0) + { + var values = pf.split(','); + + if (values.length > 1) + { + node.setAttribute('pageWidth', values[0]); + node.setAttribute('pageHeight', values[1]); + } + } + + var bg = (json.backgroundColor != null) ? json.backgroundColor.json : null; + + if (bg != null && bg.length > 0) + { + node.setAttribute('background', bg); + } + + var img = (json.backgroundImage != null) ? json.backgroundImage.json : null; + + if (img != null && img.length > 0) + { + node.setAttribute('backgroundImage', img); + } + + node.setAttribute('fold', (json.foldingEnabled != null) ? json.foldingEnabled.json : '0'); + node.setAttribute('pageScale', (json.pageScale != null) ? json.pageScale.json : mxGraph.prototype.pageScale); + node.setAttribute('math', (json.mathEnabled != null) ? json.mathEnabled.json : '0'); + node.setAttribute('shadow', (json.shadowVisible != null) ? json.shadowVisible.json : '0'); + + return node; +}; + +/** + * Syncs initial state from collab model to graph model. + */ +DriveClient.prototype.createJsonCell = function(json, codec) +{ + if (json != null && json.id != null) + { + var val = json.value; + var cell = this.jsonToCell(val, codec); + codec.putObject(json.id, cell); + + cell.source = (val.source != null) ? this.createJsonCell(val.source, codec) : null; + cell.target = (val.target != null) ? this.createJsonCell(val.target, codec) : null; + + // Cells can be serialized as parents of terminals + this.createJsonCell(val.parent, codec) + + for (var i = 0; i < val.children.value.length; i++) + { + var child = this.createJsonCell(val.children.value[i], codec); + + if (child != null) + { + cell.insert(child); + } + else + { + throw Error('Invalid JSON: no child ' + i + ' for cell ' + json.id); + } + } + + return cell; + } + else if (json != null && json.ref != null) + { + return codec.objects[json.ref]; + } + else + { + return null; + } +}; + +/** + * Adds the listener for automatically saving the diagram for local changes. + */ +DriveClient.prototype.jsonToCell = function(val, codec) +{ + var cell = new mxCell(); + + cell.id = val.cellId.json; + cell.vertex = val.type.json == 'vertex'; + cell.edge = val.type.json == 'edge'; + cell.connectable = val.connectable.json != '0'; + cell.collapsed = val.collapsed.json == '1'; + cell.visible = val.visible.json != '0'; + cell.style = (val.style != null) ? val.style.json : null; + cell.value = (val.xmlValue != null) ? + mxUtils.parseXml(val.xmlValue.json).documentElement : + ((val.value != null) ? val.value.json : null); + cell.geometry = (val.geometry != null) ? + codec.decode(mxUtils.parseXml(val.geometry.json).documentElement) : null; + + return cell; +}; diff --git a/src/main/webapp/js/diagramly/DriveFile.js b/src/main/webapp/js/diagramly/DriveFile.js index 96411ee6e..99b39b2cc 100644 --- a/src/main/webapp/js/diagramly/DriveFile.js +++ b/src/main/webapp/js/diagramly/DriveFile.js @@ -17,6 +17,11 @@ DriveFile = function(ui, data, desc, doc) //Extends mxEventSource mxUtils.extend(DriveFile, DrawioFile); +/** + * Delay for last save in ms. + */ +DriveFile.prototype.saveDelay = 0; + /** * Returns true if copy, export and print are not allowed for this file. */ @@ -27,9 +32,12 @@ DriveFile.prototype.isRestricted = function() }; /** - * Delay for last save in ms. + * Adds the listener for automatically saving the diagram for local changes. */ -DriveFile.prototype.saveDelay = 0; +DriveFile.prototype.isConflict = function(err) +{ + return err != null && err.error != null && err.error.code == 412; +}; /** * Translates this point by the given vector. @@ -87,7 +95,7 @@ DriveFile.prototype.isAutosaveOptional = function() */ DriveFile.prototype.isAutosave = function() { - return this.ui.editor.autosave || this.isAutosaveRevision(); + return this.ui.editor.autosave || (this.realtime != null && this.isAutosaveRevision()); }; /** @@ -103,8 +111,10 @@ DriveFile.prototype.isAutosaveNow = function() return isNaN(backup) || isNaN(modified) || backup < modified; } - - return true; + else + { + return true; + } }; /** @@ -146,11 +156,11 @@ DriveFile.prototype.isMovable = function() * @param {number} dx X-coordinate of the translation. * @param {number} dy Y-coordinate of the translation. */ -DriveFile.prototype.save = function(revision, success, error, unloading) +DriveFile.prototype.save = function(revision, success, error, unloading, overwrite) { DrawioFile.prototype.save.apply(this, arguments); - this.saveFile(null, revision, success, error, unloading); + this.saveFile(null, revision, success, error, unloading, overwrite); }; /** @@ -159,7 +169,7 @@ DriveFile.prototype.save = function(revision, success, error, unloading) * @param {number} dx X-coordinate of the translation. * @param {number} dy Y-coordinate of the translation. */ -DriveFile.prototype.saveFile = function(title, revision, success, error, unloading) +DriveFile.prototype.saveFile = function(title, revision, success, error, unloading, overwrite) { if (!this.isEditable()) { @@ -170,59 +180,119 @@ DriveFile.prototype.saveFile = function(title, revision, success, error, unloadi } else if (!this.savingFile) { - this.savingFile = true; - - // Makes sure no changes get lost while the file is saved var prevModified = this.isModified; var modified = this.isModified(); + + // Makes sure no changes get lost while the file is saved this.setModified(false); + + // Waits for success for modified state to be visible + this.isModified = function() + { + return true; + }; - this.ui.drive.saveFile(this, revision, mxUtils.bind(this, function(resp) + var doSave = mxUtils.bind(this, function(realOverwrite, realRevision) { - this.savingFile = false; - this.isModified = prevModified; + this.savingFile = true; - // Handles special case where resp is false eg - // if the old file was converted to realtime - if (resp != false) + this.ui.drive.saveFile(this, realRevision, mxUtils.bind(this, function(resp) { - if (revision) + this.isModified = prevModified; + this.savingFile = false; + + // Handles special case where resp is false eg + // if the old file was converted to realtime + if (resp != false) { - this.lastAutosaveRevision = new Date().getTime(); + if (revision) + { + this.lastAutosaveRevision = new Date().getTime(); + } + + this.desc = resp; + this.contentChanged(); + + if (success != null) + { + success(resp); + } } - - this.desc = resp; - this.contentChanged(); - - if (success != null) + else { - success(resp); + this.setModified(modified || this.isModified()); + + if (error != null) + { + error(resp); + } } - } - else + }), mxUtils.bind(this, function(err) { - this.setModified(modified || this.isModified()); + var doError = mxUtils.bind(this, function() + { + this.setModified(modified || this.isModified()); + this.isModified = prevModified; + this.savingFile = false; + + if (error != null) + { + error(err); + } + }); - if (error != null) + if (this.isConflict(err)) { - error(); + this.showConflictDialog(function() + { + // Overwrites and creates revision + doSave(true, true); + }, function() + { + err = null; + doError(); + }); } - } - }), mxUtils.bind(this, function(resp) + else + { + doError(); + } + }), unloading, unloading, realOverwrite); + }); + + doSave(overwrite, revision); + } +}; + +/** + * Shows a conflict dialog to the user. + */ +DriveFile.prototype.makeCopy = function(success, error, timestamp) +{ + if (this.ui.spinner.spin(document.body, mxResources.get('saving'))) + { + // Uses copyFile internally which is a remote REST call with the advantage of keeping + // the parents of the file in-place, but copies the remote file contents so needs to + // be updated as soon as we have the ID. + this.saveAs(this.ui.getCopyFilename(this, timestamp), mxUtils.bind(this, function(resp) { - this.savingFile = false; - this.isModified = prevModified; - this.setModified(modified || this.isModified()); + // Replaces the descriptor to and writes the file + this.ui.spinner.stop(); + this.desc = resp; + success(); + this.setModified(false); + }), mxUtils.bind(this, function() + { + this.ui.spinner.stop(); if (error != null) { - error(resp); + error(); } - }), unloading, unloading); + })); } }; - /** * Translates this point by the given vector. * @@ -364,3 +434,324 @@ DriveFile.prototype.close = function(unloading) this.realtime = null; } }; + +/** + * Shows a conflict dialog to the user. + */ +DriveFile.prototype.showConflictDialog = function(retry, error) +{ + if (!this.showingConflictDialog) + { + var resume = (this.ui.spinner != null && this.ui.spinner.pause != null) ? + this.ui.spinner.pause() : function() {}; + var prev = this.changeListenerEnabled; + this.changeListenerEnabled = false; + this.showingConflictDialog = true; + + this.ui.showError(mxResources.get('externalChanges'), mxResources.get('fileChangedOverwrite'), + mxResources.get('makeCopy'), mxUtils.bind(this, function() + { + this.showingConflictDialog = false; + this.changeListenerEnabled = prev; + this.makeCopy(retry, error, true); + }), null, mxResources.get('overwrite'), mxUtils.bind(this, function() + { + this.showingConflictDialog = false; + this.changeListenerEnabled = prev; + resume(); + retry(); + }), mxResources.get('cancel'), mxUtils.bind(this, function() + { + this.showingConflictDialog = false; + this.changeListenerEnabled = prev; + this.ui.hideDialog(); + resume(); + error(); + }), 360, 180); + + // Adds important notice to dialog + if (this.ui.dialog != null && this.ui.dialog.container != null) + { + var alert = document.createElement('a'); + alert.className = 'geStatusAlert'; + alert.style.display = 'block'; + alert.style.position = 'absolute'; + alert.style.cursor = 'pointer'; + alert.style.bottom = '0'; + alert.style.padding = '8px 0 8px 0'; + alert.style.marginBottom = '26px'; + alert.style.left = '0'; + alert.style.right = '0'; + alert.style.textAlign = 'center'; + alert.style.borderRadius = '0'; + alert.style.borderLeftStyle = 'none'; + alert.style.borderRightStyle = 'none'; + alert.style.textDecoration = 'none'; + alert.style.fontWeight = 'bold'; + + alert.setAttribute('href', 'https://desk.draw.io/support/solutions/articles/16000087215'); + alert.setAttribute('target', '_blank'); + mxUtils.write(alert, mxResources.get('collaborativeEditingNotice')); + + this.ui.dialog.container.appendChild(alert); + } + } +}; + +/** + * Checks the conversion of the realtime model for this file. + */ +DriveFile.prototype.checkConvert = function() +{ + var doCheck = mxUtils.bind(this, function(json) + { + try + { + if (this.ui.getCurrentFile() == this && !this.isModified()) + { + this.ui.drive.getXmlFile(this.desc, null, mxUtils.bind(this, function(file) + { + try + { + var data = file.getData(); + var node = (data != null) ? mxUtils.parseXml(data).documentElement : null; + + if (node != null) + { + var tmp = this.ui.editor.extractGraphModel(node, true); + + if (tmp != null) + { + node = tmp; + } + } + + if (this.runCheck != null) + { + this.runCheck(json, node, data); + } + } + catch (e) + { + this.log('CATCH-PARSEFILE-' + e.stack); + this.runCheck(json, null, 'CATCH-PARSEFILE-' + e.stack); + } + }), mxUtils.bind(this, function(err) + { + this.log('ERROR-GETFILE'); + this.runCheck(json, null, 'ERROR-GETFILE'); + }), true); + } + } + catch (e) + { + this.log('CATCH-GETFILE-' + e.stack); + this.runCheck(json, null, 'CATCH-GETFILE-' + e.stack); + } + }); + + try + { + this.ui.drive.getRealtimeData(this.desc.id, doCheck, doCheck); + } + catch (e) + { + this.log('CATCH-GETJSON-' + e.stack, true); + } +}; + +/** + * Removes all attributes that are irrelevant for structural diff. + */ +DriveFile.prototype.getComparableFile = function(node) +{ + // Removes all attributes from the mxfile + while (node.attributes.length > 0) + { + node.removeAttribute(node.attributes[0].name); + } + + // Removes all diagram IDs since those can be missing in + // realtime but will be added on the fly + var diagrams = node.getElementsByTagName('diagram'); + + for (var i = 0; i < diagrams.length; i++) + { + diagrams[i].removeAttribute('name'); + diagrams[i].removeAttribute('id'); + + // Uncompress diagram data for structural comparison + var tmp = this.ui.editor.graph.decompress(mxUtils.getTextContent(diagrams[i])); + + if (tmp != null && tmp.length > 0) + { + while (diagrams[i].firstChild != null) + { + diagrams[i].removeChild(diagrams[i].firstChild); + } + + diagrams[i].appendChild(mxUtils.parseXml(tmp).documentElement); + } + } + + // Some attributes have been initialized using different defaults + // in the UI compared to realtime so they must be ignored + var models = node.getElementsByTagName('mxGraphModel'); + + for (var i = 0; i < models.length; i++) + { + while (models[i].attributes.length > 0) + { + models[i].removeAttribute(models[i].attributes[0].name); + } + } + + return node; +}; + +/** + * Removes all labels, user objects and styles from the given node. + */ +DriveFile.prototype.getAnonymizedXml = function(node) +{ + if (node != null) + { + var nodes = node.getElementsByTagName('mxCell'); + + for (var i = 0; i < nodes.length; i++) + { + nodes[i].removeAttribute('style'); + nodes[i].removeAttribute('value'); + + if (nodes[i].parentNode != null && nodes[i].parentNode.nodeName == 'UserObject' && + nodes[i].parentNode.parentNode != null) + { + nodes[i].parentNode.parentNode.replaceChild(nodes[i], nodes[i].parentNode); + } + } + + return mxUtils.getPrettyXml(node);; + } + else + { + return 'null'; + } +}; + +/** + * Removes all labels, user objects and styles from the given JSON. + */ +DriveFile.prototype.getAnonymizedJson = function(json) +{ + if (json != null) + { + var diagrams = json.value.diagrams.value; + + for (var i = 0; i < diagrams.length; i++) + { + if (diagrams[i].value != null && diagrams[i].value.root != null) + { + this.anonymizeJsonCell(diagrams[i].value.root.value); + } + } + + return JSON.stringify(json); + } + else + { + return 'null'; + } +}; + +/** + * Returns the location as a new object. + */ +DriveFile.prototype.anonymizeJsonCell = function(json) +{ + if (json != null) + { + delete json.xmlValue; + delete json.value; + delete json.style; + + if (json.children != null && json.children.value != null) + { + for (var i = 0; i < json.children.value.length; i++) + { + this.anonymizeJsonCell(json.children.value[i].value); + } + } + } +}; + +/** + * Debug output. + */ +DriveFile.prototype.debug = function() +{ + if (window.console != null && urlParams['test'] == '1') + { + console.log.apply(console, arguments); + } +}; + +/** + * Debug output. + */ +DriveFile.prototype.log = function(msg, sendReport) +{ + this.debug(msg); + + try + { + this.ui.logEvent({category: this.ui.JSON_CHECK, action: msg, label: this.desc.id}); + + if (sendReport) + { + this.report('Realtime Log Report ' + new Date() + + '\n\nDescription: ' + JSON.stringify({version: this.ui.JSON_CHECK, + title: this.desc.title, editable: this.desc.editable, + copyable: this.desc.copyable, labels: this.desc.labels, id: this.desc.id, + userPermission: this.desc.userPermission, fileSize: this.desc.fileSize, + fileExtension: this.desc.fileExtension, modifiedDate: this.desc.modifiedDate, + mimeType: this.desc.mimeType}) + + '\n\nMessage:\n' + msg); + } + } + catch (e) + { + // ignore + } +}; + +/** + * Debug output. + */ +DriveFile.prototype.report = function(data) +{ + try + { + if (data.length > 3000000) + { + data = data.substring(0, 3000000) + '\n...[REPORT SHORTENED]' + } + + this.debug(data); + + mxUtils.post('/email', 'version=' + encodeURIComponent(EditorUi.VERSION) + + '&url=' + encodeURIComponent(window.location.href) + + '&data=' + encodeURIComponent(data), + mxUtils.bind(this, function(req) + { + this.debug('report sent'); + }), + mxUtils.bind(this, function() + { + this.debug('report failed'); + })); + } + catch (e) + { + // ignore + } +}; diff --git a/src/main/webapp/js/diagramly/DriveRealtime.js b/src/main/webapp/js/diagramly/DriveRealtime.js index 86e06067f..186511bd6 100644 --- a/src/main/webapp/js/diagramly/DriveRealtime.js +++ b/src/main/webapp/js/diagramly/DriveRealtime.js @@ -25,7 +25,7 @@ function DriveRealtime(file, doc) this.ui.allowAnimation = false; this.codec = new mxCodec(); - + this.disconnectListener = mxUtils.bind(this, function() { // LATER: How to reload realtime document without refreshing the page @@ -181,6 +181,20 @@ DriveRealtime.prototype.start = function() this.log('reset realtime'); } + // Forces a refresh if realtime was disabled on the file + this.root.addEventListener(gapi.drive.realtime.EventType.VALUE_CHANGED, mxUtils.bind(this, function(evt) + { + if (evt.property == 'realtimeConverted') + { + this.ui.showRefreshDialog(); + } + })); + + if (this.root.has('realtimeConverted')) + { + this.ui.showRefreshDialog(); + } + var prefix = this.createPrefix(); this.model.prefix = prefix + '-'; this.ui.editor.resetGraph(); @@ -265,9 +279,14 @@ DriveRealtime.prototype.start = function() // Dummy node, should be XML node if used this.page = new DiagramPage(document.createElement('diagram')); this.page.mapping = new RealtimeMapping(this, this.diagramMap, this.page); - this.diagramMap.set('name', mxResources.get('pageWithNumber', [1])); - this.diagramMap.set('id', this.page.getId()); - this.page.setName(this.diagramMap.get('name')); + + if (this.file.isEditable()) + { + this.diagramMap.set('name', mxResources.get('pageWithNumber', [1])); + this.diagramMap.set('id', this.page.getId()); + } + + this.page.setName(this.diagramMap.get('name') || mxResources.get('pageWithNumber', [1])); this.page.mapping.init(); } else @@ -282,10 +301,17 @@ DriveRealtime.prototype.start = function() page.mapping = new RealtimeMapping(this, diagramMap, page); this.ui.currentPage = page; - if (this.file.isEditable() && !page.mapping.diagramMap.has('name')) + if (this.file.isEditable()) { - page.mapping.diagramMap.set('name', mxResources.get('pageWithNumber', [1])); - page.mapping.diagramMap.set('id', page.getId()); + if (!page.mapping.diagramMap.has('name')) + { + page.mapping.diagramMap.set('name', mxResources.get('pageWithNumber', [1])); + } + + if (!page.mapping.diagramMap.has('id')) + { + page.mapping.diagramMap.set('id', page.getId()); + } } page.setName(page.mapping.diagramMap.get('name') || mxResources.get('pageWithNumber', [1])); @@ -872,6 +898,7 @@ DriveRealtime.prototype.installPageSelectListener = function() if (this.file.isEditable()) { page.mapping.diagramMap.set('name', page.getName()); + page.mapping.diagramMap.set('id', page.getId()); } } }); @@ -922,6 +949,12 @@ DriveRealtime.prototype.installPageSelectListener = function() page.mapping = new RealtimeMapping(this, evt.values[i], page); page.setName(page.mapping.diagramMap.get('name') || mxResources.get('pageWithNumber', [this.ui.pages.length + 1])); + + if (page.mapping.diagramMap.has('id')) + { + page.node.setAttribute('id', page.mapping.diagramMap.get('id')); + } + this.ui.pages.splice(evt.index + i, 0, page); page.mapping.init(); } diff --git a/src/main/webapp/js/diagramly/Editor.js b/src/main/webapp/js/diagramly/Editor.js index d893a9a46..e7468f929 100644 --- a/src/main/webapp/js/diagramly/Editor.js +++ b/src/main/webapp/js/diagramly/Editor.js @@ -120,6 +120,15 @@ }, {name: 'portConstraintRotation', dispName: 'Port Const. Rot.', type: 'bool', defVal: false}, {name: 'snapToPoint', dispName: 'Snap to Point', type: 'bool', defVal: false}, + {name: 'perimeter', dispName: 'Perimeter', defVal: 'none', type: 'enum', + enumList: [{val: 'none', dispName: 'None'}, + {val: 'rectanglePerimeter', dispName: 'Rectangle'}, {val: 'ellipsePerimeter', dispName: 'Ellipse'}, + {val: 'rhombusPerimeter', dispName: 'Rhombus'}, {val: 'trianglePerimeter', dispName: 'Triangle'}, + {val: 'hexagonPerimeter2', dispName: 'Hexagon'}, {val: 'lifelinePerimeter', dispName: 'Lifeline'}, + {val: 'orthogonalPerimeter', dispName: 'Orthogonal'}, {val: 'backbonePerimeter', dispName: 'Backbone'}, + {val: 'calloutPerimeter', dispName: 'Callout'}, {val: 'parallelogramPerimeter', dispName: 'Parallelogram'}, + {val: 'trapezoidPerimeter', dispName: 'Trapezoid'}, {val: 'stepPerimeter', dispName: 'Step'}] + }, {name: 'fixDash', dispName: 'Fixed Dash', type: 'bool', defVal: false}, {name: 'autosize', dispName: 'Autosize', type: 'bool', defVal: false}, {name: 'collapsible', dispName: 'Collapsible', type: 'bool', defVal: false}, @@ -2020,7 +2029,7 @@ input.value = pValue; input.className = "gePropEditor"; - if (pType == "int" || pType == "float") + if ((pType == "int" || pType == "float") && !prop.allowAuto) { input.type = "number"; input.step = pType == "int"? "1" : "any"; @@ -2041,6 +2050,21 @@ function setInputVal() { var inputVal = input.value; + inputVal = inputVal.length == 0 && pType != "string"? 0 : inputVal; + + if (prop.allowAuto) + { + if (inputVal.trim().toLowerCase() == "auto") + { + inputVal = "auto"; + pType = "string"; + } + else + { + inputVal = parseFloat(inputVal); + inputVal = isNaN(inputVal)? 0 : inputVal; + } + } if (prop.min != null && inputVal < prop.min) { diff --git a/src/main/webapp/js/diagramly/EditorUi.js b/src/main/webapp/js/diagramly/EditorUi.js index 4d225de2e..ebebd1380 100644 --- a/src/main/webapp/js/diagramly/EditorUi.js +++ b/src/main/webapp/js/diagramly/EditorUi.js @@ -684,6 +684,7 @@ else { var diagramNode = node.ownerDocument.createElement('diagram'); + diagramNode.setAttribute('id', Editor.guid()); mxUtils.setTextContent(diagramNode, data); fileNode = node.ownerDocument.createElement('mxfile'); @@ -773,9 +774,7 @@ // Uses the graph state from the realtime model mapping.writeRealtimeToNode(temp); - - var data = this.editor.graph.compress(this.editor.graph.zapGremlins(mxUtils.getXml(temp))); - mxUtils.setTextContent(this.pages[i].node, data); + mxUtils.setTextContent(this.pages[i].node, this.editor.graph.compressNode(temp)); // Marks the page as up-to-date mapping.needsUpdate = false; @@ -1630,6 +1629,49 @@ return doc; }; + /** + * Constructs a filename for a copy of the given file. + */ + EditorUi.prototype.getCopyFilename = function(file, timestamp) + { + var title = (file != null && file.getTitle() != null) ? + file.getTitle() : this.defaultFilename; + + // Handles extension + var extension = ''; + var dot = title.lastIndexOf('.'); + + if (dot >= 0) + { + extension = title.substring(dot); + title = title.substring(0, dot); + } + + if (timestamp) + { + function getFormattedTime() + { + var today = new Date(); + var y = today.getFullYear(); + // JavaScript months are 0-based. + var m = today.getMonth() + 1; + var d = today.getDate(); + var h = today.getHours(); + var mi = today.getMinutes(); + var s = today.getSeconds(); + + return y + "-" + m + "-" + d + "-" + h + "-" + mi + "-" + s; + } + + var ts = new Date(); + title += '-' + getFormattedTime(); + } + + title = mxResources.get('copyOf', [title]) + extension; + + return title; + }; + /** * Translates this point by the given vector. * @@ -5820,6 +5862,7 @@ if (page.getName() == null) { page.setName(mxResources.get('pageWithNumber', [index + 1])); + page.needsUpdate = true; } graph.model.execute(new ChangePage(this, page, page, index)); diff --git a/src/main/webapp/js/diagramly/GitHubClient.js b/src/main/webapp/js/diagramly/GitHubClient.js index ad0c8d235..ea95d05be 100644 --- a/src/main/webapp/js/diagramly/GitHubClient.js +++ b/src/main/webapp/js/diagramly/GitHubClient.js @@ -629,7 +629,7 @@ GitHubClient.prototype.saveFile = function(file, success, error) { resume = this.ui.spinner.pause(); - var dlg = new ErrorDialog(this.ui, mxResources.get('errorSavingFile'), + var dlg = new ErrorDialog(this.ui, mxResources.get('externalChanges'), mxResources.get('fileChangedOverwrite'), mxResources.get('cancel'), mxUtils.bind(this, function() { error(); diff --git a/src/main/webapp/js/diagramly/Menus.js b/src/main/webapp/js/diagramly/Menus.js index 02b30e8ee..9b8085f98 100644 --- a/src/main/webapp/js/diagramly/Menus.js +++ b/src/main/webapp/js/diagramly/Menus.js @@ -386,6 +386,27 @@ { editorUi.actions.get('save').funct(); }, null, null, Editor.ctrlKey + '+S'); + + editorUi.actions.addAction('refresh', function() + { + var currentFile = editorUi.getCurrentFile(); + + function fn() + { + currentFile.setModified(false); + editorUi.loadFile(currentFile.getHash(), true); + }; + + if (currentFile != null && currentFile.isModified()) + { + editorUi.confirm(mxResources.get('allChangesLost'), null, fn, + mxResources.get('cancel'), mxResources.get('discardChanges')); + } + else + { + fn(); + } + }, null, null, 'Alt+Shift+R'); editorUi.actions.addAction('upload...', function() { @@ -945,7 +966,9 @@ var b = graph.getGraphBounds(); var tr = graph.view.translate; var s = graph.view.scale; - graph.insertVertex(parent, null, '', b.x / s - tr.x, b.y / s - tr.y, b.width / s, b.height / s, 'fillColor=none;strokeColor=red;'); + graph.insertVertex(graph.getDefaultParent(), null, '', + b.x / s - tr.x, b.y / s - tr.y, b.width / s, b.height / s, + 'fillColor=none;strokeColor=red;'); })); mxResources.parse('createSidebarEntry=Create sidebar entry'); @@ -1830,20 +1853,8 @@ if (file != null) { - var title = (file.getTitle() != null) ? file.getTitle() : editorUi.defaultFilename; - - // Handles extension - var extension = ''; - var dot = title.lastIndexOf('.'); - - if (dot >= 0) - { - extension = title.substring(dot); - title = title.substring(0, dot); - } - - title = mxResources.get('copyOf', [title]) + extension; - + var title = editorUi.getCopyFilename(file); + if (file.constructor == DriveFile) { var dlg = new CreateDialog(editorUi, title, mxUtils.bind(this, function(newTitle, mode) @@ -1860,18 +1871,18 @@ { if (editorUi.spinner.spin(document.body, mxResources.get('saving'))) { - // Makes sure the latest XML is in the file - file.save(false, mxUtils.bind(this, function() + // Saveas does not update the file descriptor in Google Drive + file.saveAs(newTitle, mxUtils.bind(this, function(resp) { - // Saveas does not update the file descriptor in Google Drive - file.saveAs(newTitle, mxUtils.bind(this, function(resp) + // Replaces file descriptor in-place and saves + file.desc = resp; + + // Makes sure the latest XML is in the file + file.save(false, mxUtils.bind(this, function() { editorUi.spinner.stop(); - var url = editorUi.getUrl(); - window.openWindow(url + '#G' + resp.id, null, mxUtils.bind(this, function() - { - window.location.hash = 'G' + resp.id; - })); + file.setModified(false); + file.addAllSavedStatus(); }), mxUtils.bind(this, function(resp) { editorUi.handleError(resp); @@ -1884,7 +1895,7 @@ } else { - this.editorUi.createFile(newTitle, this.editorUi.getFileData(true), null, mode); + editorUi.createFile(newTitle, editorUi.getFileData(true), null, mode); } } }), mxUtils.bind(this, function() @@ -2648,7 +2659,7 @@ if (file.realtime == null) { - this.addMenuItems(menu, ['save', 'share', '-'], parent); + this.addMenuItems(menu, ['save', 'share', '-', 'refresh', '-'], parent); } else { diff --git a/src/main/webapp/js/diagramly/Minimal.js b/src/main/webapp/js/diagramly/Minimal.js index d15897979..fd0faa470 100644 --- a/src/main/webapp/js/diagramly/Minimal.js +++ b/src/main/webapp/js/diagramly/Minimal.js @@ -694,9 +694,10 @@ EditorUi.initMinimalTheme = function() this.put('diagram', new Menu(mxUtils.bind(this, function(menu, parent) { + var file = ui.getCurrentFile(); ui.menus.addSubmenu('extras', menu, parent, mxResources.get('preferences')); menu.addSeparator(parent); - + if (mxClient.IS_CHROMEAPP || EditorUi.isElectronApp) { ui.menus.addMenuItems(menu, ['new', 'open', '-', 'save', 'saveAs', '-'], parent); @@ -721,17 +722,19 @@ EditorUi.initMinimalTheme = function() } ui.menus.addSubmenu('exportAs', menu, parent); - - var file = ui.getCurrentFile(); if (file != null && file.constructor == DriveFile) { ui.menus.addMenuItems(menu, ['-', 'share'], parent); - + if (file.realtime != null) { ui.menus.addMenuItems(menu, ['chatWindowTitle'], parent); } + else + { + ui.menus.addMenuItems(menu, ['-', 'refresh'], parent); + } menu.addSeparator(parent); } diff --git a/src/main/webapp/js/diagramly/Pages.js b/src/main/webapp/js/diagramly/Pages.js index 81fd0d4dd..699730146 100644 --- a/src/main/webapp/js/diagramly/Pages.js +++ b/src/main/webapp/js/diagramly/Pages.js @@ -460,7 +460,7 @@ Graph.prototype.createViewState = function(node) background: (bg != null && bg.length > 0) ? bg : this.defaultGraphBackground, backgroundImage: (bgImg != null) ? new mxImage(bgImg.src, bgImg.width, bgImg.height) : null, pageScale: (!isNaN(ps)) ? ps : mxGraph.prototype.pageScale, - pageFormat: (!isNaN(pw) && !isNaN(ph)) ? new mxRectangle(0, 0, pw, pw) : this.pageFormat, + pageFormat: (!isNaN(pw) && !isNaN(ph)) ? new mxRectangle(0, 0, pw, ph) : mxSettings.getPageFormat(), tooltips: node.getAttribute('tooltips') != '0', connect: node.getAttribute('connect') != '0', arrows: node.getAttribute('arrows') != '0', @@ -496,8 +496,10 @@ Graph.prototype.saveViewState = function(vs, node) node.setAttribute('pageHeight', pf.height); } - node.setAttribute('background', (vs != null && vs.background != null) ? - vs.background : this.defaultGraphBackground); + if (vs != null && vs.background != null) + { + node.setAttribute('background', vs.background); + } if (vs != null && vs.backgroundImage != null) { diff --git a/src/main/webapp/js/diagramly/vsdx/importer.js b/src/main/webapp/js/diagramly/vsdx/importer.js index 55c36b6c5..f343b92dc 100644 --- a/src/main/webapp/js/diagramly/vsdx/importer.js +++ b/src/main/webapp/js/diagramly/vsdx/importer.js @@ -1287,14 +1287,14 @@ var com; if (dScale != null) { - dScaleV = parseFloat(dScale.getAttribute("V")); + dScaleV = parseFloat(dScale.getAttribute("V")) || 1; } var pScale = master.pageSheet["PageScale"]; if (pScale != null) { - pScaleV = parseFloat(pScale.getAttribute("V")); + pScaleV = parseFloat(pScale.getAttribute("V")) || 1; } scale = pScaleV / dScaleV; @@ -1533,7 +1533,7 @@ var com; } /*private*/ RowFactory.getIndex = function (elem) { try { - return parseInt(elem.getAttribute("IX")); + return parseInt(elem.getAttribute("IX")) || 1; } catch (e) { return 1; @@ -2142,7 +2142,7 @@ var com; } mxVsdxGeometry.prototype.getIndex$org_w3c_dom_Element = function (elem) { try { - return parseInt(elem.getAttribute("IX")); + return parseInt(elem.getAttribute("IX")) || 0; } catch (e) { return 0; @@ -8609,7 +8609,7 @@ var com; var cell = cells[index158]; { n = cell.getAttribute("N"); - var v = cell.getAttribute("V"); + var v = cell.getAttribute("V") || cell.textContent || ""; switch ((n)) { case "Value": value = v; @@ -10688,9 +10688,9 @@ var com; var yS = "-0.4"; if (control != null) { xEl = control.getElementsByTagName(com.mxgraph.io.vsdx.mxVsdxConstants.X).item(0); - xS = xEl.getAttribute("F"); + xS = xEl.getAttribute("F") || ""; yEl = control.getElementsByTagName(com.mxgraph.io.vsdx.mxVsdxConstants.Y).item(0); - yS = yEl.getAttribute("F"); + yS = yEl.getAttribute("F") || ""; } var geometry_4 = vertex.getGeometry(); xS = xS.split("Width/2+").join(""); @@ -11080,7 +11080,7 @@ var com; var firstNURBS = firstGeom.getElementsByTagName(com.mxgraph.io.vsdx.mxVsdxConstants.NURBS_TO).item(0); var firstE = firstNURBS.getElementsByTagName("E").item(0); if (firstE != null) { - var f = firstE.getAttribute("F"); + var f = firstE.getAttribute("F") || ""; f = f.replace(new RegExp("NURBS\\(", 'g'), ""); f = f.replace(new RegExp("\\)", 'g'), ""); f = f.replace(new RegExp(",", 'g'), " "); diff --git a/src/main/webapp/js/embed-static.min.js b/src/main/webapp/js/embed-static.min.js index 3ddb74e76..9449b657c 100644 --- a/src/main/webapp/js/embed-static.min.js +++ b/src/main/webapp/js/embed-static.min.js @@ -22,8 +22,8 @@ position:{cssPropBits:0,cssLitGroup:[a[23]],cssFns:[]},quotes:{cssPropBits:8,css cssLitGroup:[a[14],a[69]],cssFns:[]},stress:"border-bottom-left-radius","table-layout":{cssPropBits:0,cssLitGroup:[a[52],a[61]],cssFns:[]},"text-align":{cssPropBits:0,cssLitGroup:[a[42],a[56],a[66]],cssFns:[]},"text-decoration":{cssPropBits:0,cssLitGroup:[a[19],a[71]],cssFns:[]},"text-indent":"border-bottom-left-radius","text-overflow":{cssPropBits:8,cssLitGroup:[a[33]],cssFns:[]},"text-shadow":"box-shadow","text-transform":{cssPropBits:0,cssLitGroup:[a[26],a[71]],cssFns:[]},"text-wrap":{cssPropBits:0, cssLitGroup:[a[46],a[71],a[72]],cssFns:[]},top:"bottom",transform:{cssPropBits:0,cssLitGroup:[a[71]],cssFns:"matrix() perspective() rotate() rotate3d() rotatex() rotatey() rotatez() scale() scale3d() scalex() scaley() scalez() skew() skewx() skewy() translate() translate3d() translatex() translatey() translatez()".split(" ")},"transform-origin":"perspective-origin","transform-style":{cssPropBits:0,cssLitGroup:[a[37]],cssFns:[]},transition:{cssPropBits:1029,cssLitGroup:[a[10],a[48],a[50],a[71]],cssFns:["cubic-bezier()", "steps()"]},"transition-delay":"animation-delay","transition-duration":"animation-delay","transition-property":{cssPropBits:1024,cssLitGroup:[a[48],a[50]],cssFns:[]},"transition-timing-function":"animation-timing-function","unicode-bidi":{cssPropBits:0,cssLitGroup:[a[30],a[72]],cssFns:[]},"vertical-align":{cssPropBits:5,cssLitGroup:[a[12],a[31]],cssFns:[]},visibility:"backface-visibility","voice-family":{cssPropBits:8,cssLitGroup:[a[27],a[48]],cssFns:[]},volume:{cssPropBits:1,cssLitGroup:[a[17],a[69]], -cssFns:[]},"white-space":{cssPropBits:0,cssLitGroup:[a[22],a[72]],cssFns:[]},width:"min-height","word-break":{cssPropBits:0,cssLitGroup:[a[32],a[72]],cssFns:[]},"word-spacing":"letter-spacing","word-wrap":"overflow-wrap","z-index":"bottom",zoom:"line-height","cubic-bezier()":"animation-delay","steps()":{cssPropBits:5,cssLitGroup:[a[36],a[48]],cssFns:[]},"image()":{cssPropBits:18,cssLitGroup:[a[0],a[48]],cssFns:["rgb()","rgba()"]},"linear-gradient()":{cssPropBits:7,cssLitGroup:[a[0],a[31],a[42],a[48], -a[79]],cssFns:["rgb()","rgba()"]},"radial-gradient()":{cssPropBits:7,cssLitGroup:[a[0],a[11],a[31],a[42],a[48],a[56],a[57]],cssFns:["rgb()","rgba()"]},"repeating-linear-gradient()":"linear-gradient()","repeating-radial-gradient()":"radial-gradient()","rgb()":{cssPropBits:1,cssLitGroup:[a[48]],cssFns:[]},"rgba()":"rgb()","rect()":{cssPropBits:5,cssLitGroup:[a[48],a[52]],cssFns:[]},"alpha()":{cssPropBits:1,cssLitGroup:[a[28]],cssFns:[]},"matrix()":"animation-delay","perspective()":"border-bottom-left-radius", +cssFns:[]},"white-space":{cssPropBits:0,cssLitGroup:[a[22],a[72]],cssFns:[]},width:"min-height","word-break":{cssPropBits:0,cssLitGroup:[a[32],a[72],a[55]],cssFns:[]},"word-spacing":"letter-spacing","word-wrap":"overflow-wrap","z-index":"bottom",zoom:"line-height","cubic-bezier()":"animation-delay","steps()":{cssPropBits:5,cssLitGroup:[a[36],a[48]],cssFns:[]},"image()":{cssPropBits:18,cssLitGroup:[a[0],a[48]],cssFns:["rgb()","rgba()"]},"linear-gradient()":{cssPropBits:7,cssLitGroup:[a[0],a[31],a[42], +a[48],a[79]],cssFns:["rgb()","rgba()"]},"radial-gradient()":{cssPropBits:7,cssLitGroup:[a[0],a[11],a[31],a[42],a[48],a[56],a[57]],cssFns:["rgb()","rgba()"]},"repeating-linear-gradient()":"linear-gradient()","repeating-radial-gradient()":"radial-gradient()","rgb()":{cssPropBits:1,cssLitGroup:[a[48]],cssFns:[]},"rgba()":"rgb()","rect()":{cssPropBits:5,cssLitGroup:[a[48],a[52]],cssFns:[]},"alpha()":{cssPropBits:1,cssLitGroup:[a[28]],cssFns:[]},"matrix()":"animation-delay","perspective()":"border-bottom-left-radius", "rotate()":"border-bottom-left-radius","rotate3d()":"animation-delay","rotatex()":"border-bottom-left-radius","rotatey()":"border-bottom-left-radius","rotatez()":"border-bottom-left-radius","scale()":"animation-delay","scale3d()":"animation-delay","scalex()":"border-bottom-left-radius","scaley()":"border-bottom-left-radius","scalez()":"border-bottom-left-radius","skew()":"animation-delay","skewx()":"border-bottom-left-radius","skewy()":"border-bottom-left-radius","translate()":"animation-delay","translate3d()":"animation-delay", "translatex()":"border-bottom-left-radius","translatey()":"border-bottom-left-radius","translatez()":"border-bottom-left-radius"},c;for(c in b)"string"===typeof b[c]&&Object.hasOwnProperty.call(b,c)&&(b[c]=b[b[c]]);"undefined"!==typeof window&&(window.cssSchema=b);var d,e;(function(){function a(a){var b=parseInt(a.substring(1),16);return 65535<b?(b-=65536,String.fromCharCode(55296+(b>>10),56320+(b&1023))):b==b?String.fromCharCode(b):" ">a[1]?"":a[1]}function b(a,b){return'"'+a.replace(/[\u0000-\u001f\\\"<>]/g, b)+'"'}function c(a){return g[a]||(g[a]="\\"+a.charCodeAt(0).toString(16)+" ")}function f(a){return h[a]||(h[a]=("">a?"%0":"%")+a.charCodeAt(0).toString(16))}var g={"\\":"\\\\"},h={"\\":"%5c"},k=RegExp("\\uFEFF|U[+][0-9A-F?]{1,6}(?:-[0-9A-F]{1,6})?|url[(][\\t\\n\\f ]*(?:\"(?:'|[^'\"\\n\\f\\\\]|\\\\[\\s\\S])*\"|'(?:\"|[^'\"\\n\\f\\\\]|\\\\[\\s\\S])*'|(?:[\\t\\x21\\x23-\\x26\\x28-\\x5b\\x5d-\\x7e]|[\\u0080-\\ud7ff\\ue000-\\ufffd]|[\\ud800-\\udbff][\\udc00-\\udfff]|\\\\(?:[0-9a-fA-F]{1,6}[\\t\\n\\f ]?|[\\u0020-\\u007e\\u0080-\\ud7ff\\ue000\\ufffd]|[\\ud800-\\udbff][\\udc00-\\udfff]))*)[\\t\\n\\f ]*[)]|(?!url[(])-?(?:[a-zA-Z_]|[\\u0080-\\ud7ff\\ue000-\\ufffd]|[\\ud800-\\udbff][\\udc00-\\udfff]|\\\\(?:[0-9a-fA-F]{1,6}[\\t\\n\\f ]?|[\\u0020-\\u007e\\u0080-\\ud7ff\\ue000\\ufffd]|[\\ud800-\\udbff][\\udc00-\\udfff]))(?:[a-zA-Z0-9_-]|[\\u0080-\\ud7ff\\ue000-\\ufffd]|[\\ud800-\\udbff][\\udc00-\\udfff]|\\\\(?:[0-9a-fA-F]{1,6}[\\t\\n\\f ]?|[\\u0020-\\u007e\\u0080-\\ud7ff\\ue000\\ufffd]|[\\ud800-\\udbff][\\udc00-\\udfff]))*[(]|(?:@?-?(?:[a-zA-Z_]|[\\u0080-\\ud7ff\\ue000-\\ufffd]|[\\ud800-\\udbff][\\udc00-\\udfff]|\\\\(?:[0-9a-fA-F]{1,6}[\\t\\n\\f ]?|[\\u0020-\\u007e\\u0080-\\ud7ff\\ue000\\ufffd]|[\\ud800-\\udbff][\\udc00-\\udfff]))|#)(?:[a-zA-Z0-9_-]|[\\u0080-\\ud7ff\\ue000-\\ufffd]|[\\ud800-\\udbff][\\udc00-\\udfff]|\\\\(?:[0-9a-fA-F]{1,6}[\\t\\n\\f ]?|[\\u0020-\\u007e\\u0080-\\ud7ff\\ue000\\ufffd]|[\\ud800-\\udbff][\\udc00-\\udfff]))*|\"(?:'|[^'\"\\n\\f\\\\]|\\\\[\\s\\S])*\"|'(?:\"|[^'\"\\n\\f\\\\]|\\\\[\\s\\S])*'|[-+]?(?:[0-9]+(?:[.][0-9]+)?|[.][0-9]+)(?:%|-?(?:[a-zA-Z_]|[\\u0080-\\ud7ff\\ue000-\\ufffd]|[\\ud800-\\udbff][\\udc00-\\udfff]|\\\\(?:[0-9a-fA-F]{1,6}[\\t\\n\\f ]?|[\\u0020-\\u007e\\u0080-\\ud7ff\\ue000\\ufffd]|[\\ud800-\\udbff][\\udc00-\\udfff]))(?:[a-zA-Z0-9_-]|[\\u0080-\\ud7ff\\ue000-\\ufffd]|[\\ud800-\\udbff][\\udc00-\\udfff]|\\\\(?:[0-9a-fA-F]{1,6}[\\t\\n\\f ]?|[\\u0020-\\u007e\\u0080-\\ud7ff\\ue000\\ufffd]|[\\ud800-\\udbff][\\udc00-\\udfff]))*)?|\x3c!--|--\x3e|[\\t\\n\\f ]+|/(?:[*][^*]*[*]+(?:[^/][^*]*[*]+)*/|/[^\\n\\f]*)|[~|^$*]=|[^\"'\\\\/]|/(?![/*])", @@ -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;e<d;e+=1)g+=" ";else"string"===typeof d&&(g=d);if((k=b)&&"function"!==typeof b&&("object"!==typeof b||"number"!==typeof b.length))throw Error("JSON.stringify");return c("",{"":a})}); "function"!==typeof JSON.parse&&(JSON.parse=function(a,b){function c(a,d){var e,f,g=a[d];if(g&&"object"===typeof g)for(e in g)Object.prototype.hasOwnProperty.call(g,e)&&(f=c(g,e),void 0!==f?g[e]=f:delete g[e]);return b.call(a,d,g)}var e;a=""+a;d.lastIndex=0;d.test(a)&&(a=a.replace(d,function(a){return"\\u"+("0000"+a.charCodeAt(0).toString(16)).slice(-4)}));if(/^[\],:{}\s]*$/.test(a.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,"@").replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g, "]").replace(/(?:^|:|,)(?:\s*\[)+/g,"")))return e=eval("("+a+")"),"function"===typeof b?c({"":e},""):e;throw new SyntaxError("JSON.parse");})})();"undefined"===typeof window.mxBasePath&&(window.mxBasePath="https://www.draw.io/mxgraph/");window.mxLoadStylesheets=window.mxLoadStylesheets||!1;window.mxLoadResources=window.mxLoadResources||!1;window.mxLanguage=window.mxLanguage||"en";window.urlParams=window.urlParams||{};window.MAX_REQUEST_SIZE=window.MAX_REQUEST_SIZE||10485760;window.MAX_AREA=window.MAX_AREA||225E6;window.EXPORT_URL=window.EXPORT_URL||"/export";window.SAVE_URL=window.SAVE_URL||"/save";window.OPEN_URL=window.OPEN_URL||"/open";window.RESOURCES_PATH=window.RESOURCES_PATH||"resources";window.RESOURCE_BASE=window.RESOURCE_BASE||window.RESOURCES_PATH+"/grapheditor";window.STENCIL_PATH=window.STENCIL_PATH||"stencils";window.IMAGE_PATH=window.IMAGE_PATH||"images"; -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:"9.3.1",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")&& +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:"9.3.4",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/")|| @@ -615,7 +615,7 @@ mxSwimlane.prototype.paintDivider=function(a,b,c,d,e,f,g){g||a.setShadow(!1);a.b mxSwimlane.prototype.getImageBounds=function(a,b,c,d){return this.isHorizontal()?new mxRectangle(a+c-this.imageSize,b,this.imageSize,this.imageSize):new mxRectangle(a,b,this.imageSize,this.imageSize)};function mxGraphLayout(a){this.graph=a}mxGraphLayout.prototype.graph=null;mxGraphLayout.prototype.useBoundingBox=!0;mxGraphLayout.prototype.parent=null;mxGraphLayout.prototype.moveCell=function(a,b,c){};mxGraphLayout.prototype.execute=function(a){};mxGraphLayout.prototype.getGraph=function(){return this.graph}; mxGraphLayout.prototype.getConstraint=function(a,b,c,d){c=this.graph.view.getState(b);b=null!=c?c.style:this.graph.getCellStyle(b);return null!=b?b[a]:null}; mxGraphLayout.traverse=function(a,b,c,d,e){if(null!=c&&null!=a&&(b=null!=b?b:!0,e=e||new mxDictionary,!e.get(a)&&(e.put(a,!0),d=c(a,d),null==d||d))&&(d=this.graph.model.getEdgeCount(a),0<d))for(var f=0;f<d;f++){var g=this.graph.model.getEdgeAt(a,f),h=this.graph.model.getTerminal(g,!0)==a;if(!b||h)h=this.graph.view.getVisibleTerminal(g,!h),this.traverse(h,b,c,g,e)}}; -mxGraphLayout.prototype.isAncestor=function(a,b,c){if(!c)return this.graph.model.getParent(cell)==a;if(b==a)return!1;for(;null!=b&&b!=a;)b=this.graph.model.getParent(b);return b==a};mxGraphLayout.prototype.isVertexMovable=function(a){return this.graph.isCellMovable(a)};mxGraphLayout.prototype.isVertexIgnored=function(a){return!this.graph.getModel().isVertex(a)||!this.graph.isCellVisible(a)}; +mxGraphLayout.prototype.isAncestor=function(a,b,c){if(!c)return this.graph.model.getParent(b)==a;if(b==a)return!1;for(;null!=b&&b!=a;)b=this.graph.model.getParent(b);return b==a};mxGraphLayout.prototype.isVertexMovable=function(a){return this.graph.isCellMovable(a)};mxGraphLayout.prototype.isVertexIgnored=function(a){return!this.graph.getModel().isVertex(a)||!this.graph.isCellVisible(a)}; mxGraphLayout.prototype.isEdgeIgnored=function(a){var b=this.graph.getModel();return!b.isEdge(a)||!this.graph.isCellVisible(a)||null==b.getTerminal(a,!0)||null==b.getTerminal(a,!1)};mxGraphLayout.prototype.setEdgeStyleEnabled=function(a,b){this.graph.setCellStyles(mxConstants.STYLE_NOEDGESTYLE,b?"0":"1",[a])};mxGraphLayout.prototype.setOrthogonalEdge=function(a,b){this.graph.setCellStyles(mxConstants.STYLE_ORTHOGONAL,b?"1":"0",[a])}; mxGraphLayout.prototype.getParentOffset=function(a){var b=new mxPoint;if(null!=a&&a!=this.parent){var c=this.graph.getModel();if(c.isAncestor(this.parent,a))for(var d=c.getGeometry(a);a!=this.parent;)b.x+=d.x,b.y+=d.y,a=c.getParent(a),d=c.getGeometry(a)}return b}; mxGraphLayout.prototype.setEdgePoints=function(a,b){if(null!=a){var c=this.graph.model,d=c.getGeometry(a);null==d?(d=new mxGeometry,d.setRelative(!0)):d=d.clone();if(null!=this.parent&&null!=b)for(var e=c.getParent(a),e=this.getParentOffset(e),f=0;f<b.length;f++)b[f].x-=e.x,b[f].y-=e.y;d.points=b;c.setGeometry(a,d)}}; @@ -1607,13 +1607,14 @@ Graph.prototype.isCellFoldable=function(a){var b=this.view.getState(a),b=null!=b Graph.prototype.zoom=function(a,b){a=Math.max(.01,Math.min(this.view.scale*a,160))/this.view.scale;mxGraph.prototype.zoom.apply(this,arguments)};Graph.prototype.zoomIn=function(){.15>this.view.scale?this.zoom((this.view.scale+.01)/this.view.scale):this.zoom(Math.round(this.view.scale*this.zoomFactor*20)/20/this.view.scale)};Graph.prototype.zoomOut=function(){.15>=this.view.scale?this.zoom((this.view.scale-.01)/this.view.scale):this.zoom(Math.round(1/this.zoomFactor*this.view.scale*20)/20/this.view.scale)}; Graph.prototype.getTooltipForCell=function(a){var b="";if(mxUtils.isNode(a.value)){var c=a.value.getAttribute("tooltip");if(null!=c)null!=c&&this.isReplacePlaceholders(a)&&(c=this.replacePlaceholders(a,c)),b=this.sanitizeHtml(c);else{c=this.builtInProperties;a=a.value.attributes;var d=[];this.isEnabled()&&c.push("link");for(var e=0;e<a.length;e++)0>mxUtils.indexOf(c,a[e].nodeName)&&0<a[e].nodeValue.length&&d.push({name:a[e].nodeName,value:a[e].nodeValue});d.sort(function(a,b){return a.name<b.name? -1:a.name>b.name?1:0});for(e=0;e<d.length;e++)"link"==d[e].name&&this.isCustomLink(d[e].value)||(b+=("link"!=d[e].name?"<b>"+d[e].name+":</b> ":"")+mxUtils.htmlEntities(d[e].value)+"\n");0<b.length&&(b=b.substring(0,b.length-1),mxClient.IS_SVG&&(b='<div style="max-width:360px;">'+b+"</div>"))}}return b};Graph.prototype.stringToBytes=function(a){for(var b=Array(a.length),c=0;c<a.length;c++)b[c]=a.charCodeAt(c);return b}; -Graph.prototype.bytesToString=function(a){for(var b=Array(a.length),c=0;c<a.length;c++)b[c]=String.fromCharCode(a[c]);return b.join("")};Graph.prototype.compress=function(a){if(null==a||0==a.length||"undefined"===typeof pako)return a;a=this.bytesToString(pako.deflateRaw(encodeURIComponent(a)));return window.btoa?btoa(a):Base64.encode(a,!0)};Graph.prototype.decompress=function(a){if(null==a||0==a.length||"undefined"===typeof pako)return a;a=window.atob?atob(a):Base64.decode(a,!0);return this.zapGremlins(decodeURIComponent(this.bytesToString(pako.inflateRaw(a))))}; -Graph.prototype.zapGremlins=function(a){for(var b=[],c=0;c<a.length;c++){var d=a.charCodeAt(c);(32<=d||9==d||10==d||13==d)&&b.push(a.charAt(c))}return b.join("")};HoverIcons=function(a){this.graph=a;this.init()};HoverIcons.prototype.arrowSpacing=2;HoverIcons.prototype.updateDelay=500;HoverIcons.prototype.activationDelay=140;HoverIcons.prototype.currentState=null;HoverIcons.prototype.activeArrow=null;HoverIcons.prototype.inactiveOpacity=15;HoverIcons.prototype.cssCursor="copy"; -HoverIcons.prototype.checkCollisions=!0;HoverIcons.prototype.arrowFill="#29b6f2";HoverIcons.prototype.triangleUp=mxClient.IS_SVG?Graph.createSvgImage(18,28,'<path d="m 6 26 L 12 26 L 12 12 L 18 12 L 9 1 L 1 12 L 6 12 z" stroke="#fff" fill="'+HoverIcons.prototype.arrowFill+'"/>'):new mxImage(IMAGE_PATH+"/triangle-up.png",26,14); -HoverIcons.prototype.triangleRight=mxClient.IS_SVG?Graph.createSvgImage(26,18,'<path d="m 1 6 L 14 6 L 14 1 L 26 9 L 14 18 L 14 12 L 1 12 z" stroke="#fff" fill="'+HoverIcons.prototype.arrowFill+'"/>'):new mxImage(IMAGE_PATH+"/triangle-right.png",14,26);HoverIcons.prototype.triangleDown=mxClient.IS_SVG?Graph.createSvgImage(18,26,'<path d="m 6 1 L 6 14 L 1 14 L 9 26 L 18 14 L 12 14 L 12 1 z" stroke="#fff" fill="'+HoverIcons.prototype.arrowFill+'"/>'):new mxImage(IMAGE_PATH+"/triangle-down.png",26,14); -HoverIcons.prototype.triangleLeft=mxClient.IS_SVG?Graph.createSvgImage(28,18,'<path d="m 1 9 L 12 1 L 12 6 L 26 6 L 26 12 L 12 12 L 12 18 z" stroke="#fff" fill="'+HoverIcons.prototype.arrowFill+'"/>'):new mxImage(IMAGE_PATH+"/triangle-left.png",14,26);HoverIcons.prototype.roundDrop=mxClient.IS_SVG?Graph.createSvgImage(26,26,'<circle cx="13" cy="13" r="12" stroke="#fff" fill="'+HoverIcons.prototype.arrowFill+'"/>'):new mxImage(IMAGE_PATH+"/round-drop.png",26,26); -HoverIcons.prototype.refreshTarget=new mxImage(mxClient.IS_SVG?"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACYAAAAmCAYAAACoPemuAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBNYWNpbnRvc2giIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NDQxNERDRTU1QjY1MTFFNDkzNTRFQTVEMTdGMTdBQjciIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NDQxNERDRTY1QjY1MTFFNDkzNTRFQTVEMTdGMTdBQjciPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo0NDE0RENFMzVCNjUxMUU0OTM1NEVBNUQxN0YxN0FCNyIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo0NDE0RENFNDVCNjUxMUU0OTM1NEVBNUQxN0YxN0FCNyIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PsvuX50AAANaSURBVHja7FjRZ1tRGD9ZJ1NCyIQSwrivI4Q8hCpjlFDyFEoYfSp9Ko1QWnmo0If+BSXkIfo0QirTMUpeGo2EPfWllFYjZMLKLDJn53d3biU337m5J223bPbxk5t7v+/c3/2+73znO8fDOWezKM/YjMpz68Lj8ejY+QTeCCwLxOS9qPxtyN+6wAeBTwJ31CCO0cJDjXBGBN4LfIepSwykTUT1bgpuib0SONIgo8KRHOtRiCFcvUcgZeGrHPNBxLIyFPyRgTGz0xLbegJCdmzpElue5KlAIMDX19d5uVzm5+fnfDAYmMA17uEZdOx2Yvb/sHlu2S0xwymn5ufneTab5b1ej08S6EAXNrDd2dnhiUTim21MvMtwQ6yiIrWwsMDPzs64rsBmf3/fvM7n89TYlUnEllSkQqEQv7q64g+Vk5MTVXosORErU0Zer5f0FEIlw2N6MxwO82QyaXql2+2SxDqdjopYWUUsqEp45IldqtWq6UWVh/1+P7+8vCTJ4QMUJSRIEXuneoH96w8PDyeWAnhSJfCqwm6NIlaklFdXV0cGhRcQ2mlJQXK5nMq2YPEZbnteU1U2lUqN/D84OGD9fl+5fgnSrFarsUwmw0qlEru4uBjTicViTk3Cr27HSnxR+Doyz0ZE1CAWiUTusbu7y9rttlZv5fP5WDQavYfIMba4uEipfhF8XtqJoZXx/uH+sC/4vPg7OljZZQbsCmLtYzc3N6zRaJhotVrmfx0xDINtbm6athYUeXpHdbBNaqZUKpWxWXV7e2vex+xaWVnhc3NzjrPUXgexyCt0m67LBV7uJMITjqRE4o8tZeg8FPpFitgapYxiOC0poFgsji1jKNo6BZZckrAGUtJsNk1vqAihCBcKhTE7hNWhqw2qFnGy5UFOUYJVIJ1OjzSE+BCEilon0URavRmBqnbbQ00AXbm+vnZc9O1tj72OnQoc2+cwygRkb2+P1et17ZoEm3g87lRmjgWZ00kbXkNuse6/Bu2wlegIxfb2tuvWGroO4bO2c4bbzUh60mxDXm1sbJhhxkQYnhS4h2fUZoRAWnf7lv8N27f8P7Xhnekjgpk+VKGOoQbsiY+hhhtF3YO7twIJ+ULvUGv+GQ2fQEvWxI/THNx5/p/BaspPAQYAqStgiSQwCDoAAAAASUVORK5CYII=": -IMAGE_PATH+"/refresh.png",38,38);HoverIcons.prototype.tolerance=mxClient.IS_TOUCH?6:0; +Graph.prototype.bytesToString=function(a){for(var b=Array(a.length),c=0;c<a.length;c++)b[c]=String.fromCharCode(a[c]);return b.join("")};Graph.prototype.compressNode=function(a){return this.compress(this.zapGremlins(mxUtils.getXml(a)))};Graph.prototype.compress=function(a){if(null==a||0==a.length||"undefined"===typeof pako)return a;a=this.bytesToString(pako.deflateRaw(encodeURIComponent(a)));return window.btoa?btoa(a):Base64.encode(a,!0)}; +Graph.prototype.decompress=function(a){if(null==a||0==a.length||"undefined"===typeof pako)return a;a=window.atob?atob(a):Base64.decode(a,!0);return this.zapGremlins(decodeURIComponent(this.bytesToString(pako.inflateRaw(a))))};Graph.prototype.zapGremlins=function(a){for(var b=[],c=0;c<a.length;c++){var d=a.charCodeAt(c);(32<=d||9==d||10==d||13==d)&&b.push(a.charAt(c))}return b.join("")};HoverIcons=function(a){this.graph=a;this.init()};HoverIcons.prototype.arrowSpacing=2; +HoverIcons.prototype.updateDelay=500;HoverIcons.prototype.activationDelay=140;HoverIcons.prototype.currentState=null;HoverIcons.prototype.activeArrow=null;HoverIcons.prototype.inactiveOpacity=15;HoverIcons.prototype.cssCursor="copy";HoverIcons.prototype.checkCollisions=!0;HoverIcons.prototype.arrowFill="#29b6f2"; +HoverIcons.prototype.triangleUp=mxClient.IS_SVG?Graph.createSvgImage(18,28,'<path d="m 6 26 L 12 26 L 12 12 L 18 12 L 9 1 L 1 12 L 6 12 z" stroke="#fff" fill="'+HoverIcons.prototype.arrowFill+'"/>'):new mxImage(IMAGE_PATH+"/triangle-up.png",26,14);HoverIcons.prototype.triangleRight=mxClient.IS_SVG?Graph.createSvgImage(26,18,'<path d="m 1 6 L 14 6 L 14 1 L 26 9 L 14 18 L 14 12 L 1 12 z" stroke="#fff" fill="'+HoverIcons.prototype.arrowFill+'"/>'):new mxImage(IMAGE_PATH+"/triangle-right.png",14,26); +HoverIcons.prototype.triangleDown=mxClient.IS_SVG?Graph.createSvgImage(18,26,'<path d="m 6 1 L 6 14 L 1 14 L 9 26 L 18 14 L 12 14 L 12 1 z" stroke="#fff" fill="'+HoverIcons.prototype.arrowFill+'"/>'):new mxImage(IMAGE_PATH+"/triangle-down.png",26,14);HoverIcons.prototype.triangleLeft=mxClient.IS_SVG?Graph.createSvgImage(28,18,'<path d="m 1 9 L 12 1 L 12 6 L 26 6 L 26 12 L 12 12 L 12 18 z" stroke="#fff" fill="'+HoverIcons.prototype.arrowFill+'"/>'):new mxImage(IMAGE_PATH+"/triangle-left.png",14,26); +HoverIcons.prototype.roundDrop=mxClient.IS_SVG?Graph.createSvgImage(26,26,'<circle cx="13" cy="13" r="12" stroke="#fff" fill="'+HoverIcons.prototype.arrowFill+'"/>'):new mxImage(IMAGE_PATH+"/round-drop.png",26,26); +HoverIcons.prototype.refreshTarget=new mxImage(mxClient.IS_SVG?"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACYAAAAmCAYAAACoPemuAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBNYWNpbnRvc2giIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NDQxNERDRTU1QjY1MTFFNDkzNTRFQTVEMTdGMTdBQjciIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NDQxNERDRTY1QjY1MTFFNDkzNTRFQTVEMTdGMTdBQjciPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo0NDE0RENFMzVCNjUxMUU0OTM1NEVBNUQxN0YxN0FCNyIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo0NDE0RENFNDVCNjUxMUU0OTM1NEVBNUQxN0YxN0FCNyIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PsvuX50AAANaSURBVHja7FjRZ1tRGD9ZJ1NCyIQSwrivI4Q8hCpjlFDyFEoYfSp9Ko1QWnmo0If+BSXkIfo0QirTMUpeGo2EPfWllFYjZMLKLDJn53d3biU337m5J223bPbxk5t7v+/c3/2+73znO8fDOWezKM/YjMpz68Lj8ejY+QTeCCwLxOS9qPxtyN+6wAeBTwJ31CCO0cJDjXBGBN4LfIepSwykTUT1bgpuib0SONIgo8KRHOtRiCFcvUcgZeGrHPNBxLIyFPyRgTGz0xLbegJCdmzpElue5KlAIMDX19d5uVzm5+fnfDAYmMA17uEZdOx2Yvb/sHlu2S0xwymn5ufneTab5b1ej08S6EAXNrDd2dnhiUTim21MvMtwQ6yiIrWwsMDPzs64rsBmf3/fvM7n89TYlUnEllSkQqEQv7q64g+Vk5MTVXosORErU0Zer5f0FEIlw2N6MxwO82QyaXql2+2SxDqdjopYWUUsqEp45IldqtWq6UWVh/1+P7+8vCTJ4QMUJSRIEXuneoH96w8PDyeWAnhSJfCqwm6NIlaklFdXV0cGhRcQ2mlJQXK5nMq2YPEZbnteU1U2lUqN/D84OGD9fl+5fgnSrFarsUwmw0qlEru4uBjTicViTk3Cr27HSnxR+Doyz0ZE1CAWiUTusbu7y9rttlZv5fP5WDQavYfIMba4uEipfhF8XtqJoZXx/uH+sC/4vPg7OljZZQbsCmLtYzc3N6zRaJhotVrmfx0xDINtbm6athYUeXpHdbBNaqZUKpWxWXV7e2vex+xaWVnhc3NzjrPUXgexyCt0m67LBV7uJMITjqRE4o8tZeg8FPpFitgapYxiOC0poFgsji1jKNo6BZZckrAGUtJsNk1vqAihCBcKhTE7hNWhqw2qFnGy5UFOUYJVIJ1OjzSE+BCEilon0URavRmBqnbbQ00AXbm+vnZc9O1tj72OnQoc2+cwygRkb2+P1et17ZoEm3g87lRmjgWZ00kbXkNuse6/Bu2wlegIxfb2tuvWGroO4bO2c4bbzUh60mxDXm1sbJhhxkQYnhS4h2fUZoRAWnf7lv8N27f8P7Xhnekjgpk+VKGOoQbsiY+hhhtF3YO7twIJ+ULvUGv+GQ2fQEvWxI/THNx5/p/BaspPAQYAqStgiSQwCDoAAAAASUVORK5CYII=":IMAGE_PATH+ +"/refresh.png",38,38);HoverIcons.prototype.tolerance=mxClient.IS_TOUCH?6:0; HoverIcons.prototype.init=function(){this.arrowUp=this.createArrow(this.triangleUp,mxResources.get("plusTooltip"));this.arrowRight=this.createArrow(this.triangleRight,mxResources.get("plusTooltip"));this.arrowDown=this.createArrow(this.triangleDown,mxResources.get("plusTooltip"));this.arrowLeft=this.createArrow(this.triangleLeft,mxResources.get("plusTooltip"));this.elts=[this.arrowUp,this.arrowRight,this.arrowDown,this.arrowLeft];this.repaintHandler=mxUtils.bind(this,function(){this.repaint()});this.graph.selectionModel.addListener(mxEvent.CHANGE, this.repaintHandler);this.graph.model.addListener(mxEvent.CHANGE,this.repaintHandler);this.graph.view.addListener(mxEvent.SCALE_AND_TRANSLATE,this.repaintHandler);this.graph.view.addListener(mxEvent.TRANSLATE,this.repaintHandler);this.graph.view.addListener(mxEvent.SCALE,this.repaintHandler);this.graph.view.addListener(mxEvent.DOWN,this.repaintHandler);this.graph.view.addListener(mxEvent.UP,this.repaintHandler);this.graph.addListener(mxEvent.ROOT,this.repaintHandler);this.graph.addListener(mxEvent.ESCAPE, mxUtils.bind(this,function(){this.mouseDownPoint=null}));mxEvent.addListener(this.graph.container,"mouseleave",mxUtils.bind(this,function(a){null!=a.relatedTarget&&mxEvent.getSource(a)==this.graph.container&&this.setDisplay("none")}));this.graph.addListener(mxEvent.START_EDITING,mxUtils.bind(this,function(a){this.reset()}));var a=this.graph.click;this.graph.click=mxUtils.bind(this,function(b){a.apply(this.graph,arguments);null==this.currentState||this.graph.isCellSelected(this.currentState.cell)|| diff --git a/src/main/webapp/js/extensions.min.js b/src/main/webapp/js/extensions.min.js index 8198335d0..8690f5cc7 100644 --- a/src/main/webapp/js/extensions.min.js +++ b/src/main/webapp/js/extensions.min.js @@ -592,7 +592,7 @@ c,b,p)}};h.prototype.sanitiseGraph=function(c){var b=c.getModel().getRoot();this -1==p.indexOf(mxConstants.STYLE_STROKECOLOR+"=none")||-1!=p.indexOf("image=")?!1:!0};return h}();w.mxVsdxCodec=l;l.__class="com.mxgraph.io.mxVsdxCodec"})(m.io||(m.io={}))})(c.mxgraph||(c.mxgraph={}))})(com||(com={})); (function(c){(function(m){(function(w){var l=function(h){function f(){var b=h.call(this)||this;b.RESPONSE_END="";b.RESPONSE_DIAGRAM_START="";b.RESPONSE_DIAGRAM_END="";b.RESPONSE_HEADER="";return b}__extends(f,h);f.prototype.decodeVssx=function(b,a,d){var g=this,p="<mxlibrary>[";this.decodeVsdx(b,function(b){p=p.concat(b);var d=g.vsdxModel.getMasterShapes(),f=function(a){var b=0;return{next:function(){return b<a.length?a[b++]:null},hasNext:function(){return b<a.length}}}(function(a){var b=[];null== a.entries&&(a.entries=[]);for(var d=0;d<a.entries.length;d++)b.push(a.entries[d].value);return b}(g.vsdxModel.getPages())).next();if(null!=d){var D={str:"",toString:function(){return this.str}},l=0===b.length?"":",",w=function(a){return Object.keys(a).map(function(b){return a[b]})}(d);b=function(a){a=w[a];var b=m.createMxGraph(),g=a.getMasterShape().getShape(),g=new c.mxgraph.io.vsdx.VsdxShape(f,g,!f.isEdge(g),d,null,m.vsdxModel),p=1;if(null!=a.pageSheet){var x=p=1,E=a.pageSheet.DrawingScale;null!= -E&&(p=parseFloat(E.getAttribute("V")));E=a.pageSheet.PageScale;null!=E&&(x=parseFloat(E.getAttribute("V")));p=x/p}x=null;if(g.isVertex())for(m.edgeShapeMap.entries=[],m.parentsMap.entries=[],x=m.addShape(b,g,b.getDefaultParent(),0,1169),g=function(a){null==a.entries&&(a.entries=[]);return a.entries}(m.edgeShapeMap),E=0;E<g.length;E++){var t=g[E],z=function(a,b){null==a.entries&&(a.entries=[]);for(var d=0;d<a.entries.length;d++)if(null!=a.entries[d].key.equals&&a.entries[d].key.equals(b)||a.entries[d].key=== +E&&(p=parseFloat(E.getAttribute("V"))||1);E=a.pageSheet.PageScale;null!=E&&(x=parseFloat(E.getAttribute("V"))||1);p=x/p}x=null;if(g.isVertex())for(m.edgeShapeMap.entries=[],m.parentsMap.entries=[],x=m.addShape(b,g,b.getDefaultParent(),0,1169),g=function(a){null==a.entries&&(a.entries=[]);return a.entries}(m.edgeShapeMap),E=0;E<g.length;E++){var t=g[E],z=function(a,b){null==a.entries&&(a.entries=[]);for(var d=0;d<a.entries.length;d++)if(null!=a.entries[d].key.equals&&a.entries[d].key.equals(b)||a.entries[d].key=== b)return a.entries[d].value;return null}(m.parentsMap,t.getKey());m.addUnconnectedEdge(b,z,t.getValue(),1169)}else x=m.addUnconnectedEdge(b,null,g,1169);if(null!=x){m.scaleGraph(b,p);g=m.normalizeGeo(x);m.sanitiseGraph(b);if(0===b.getModel().getChildCount(b.getDefaultParent()))return"continue";D.str=D.str.concat(l);D.str=D.str.concat('{"xml":"');b=h.prototype.processPage.call(m,b,null);D.str=D.str.concat(b);D.str=D.str.concat('","w":');D.str=D.str.concat(g.width);D.str=D.str.concat(',"h":');D.str= D.str.concat(g.height);D.str=D.str.concat(',"title":');a=a.getName();null==a&&(a="");a=JSON.stringify(mxUtils.htmlEntities(a));D.str=D.str.concat(a);D.str=D.str.concat("}");l=","}};for(var m=g,C=0;C<w.length;C++)b(C);p=p.concat(D)}p=p.concat("]</mxlibrary>");a&&a(p)},d)};f.prototype.normalizeGeo=function(b){var a=b.getGeometry();a.x=0;a.y=0;var d=a.sourcePoint;if(b.isEdge()&&null!=d){this.transPoint(a.targetPoint,d);this.transPoint(a.offset,d);b=a.points;if(null!=b)for(var g=0;g<b.length;g++)this.transPoint(b[g], d);this.transPoint(d,d)}return a};f.prototype.transPoint=function(b,a){null!=b&&(b.x-=a.x,b.y-=a.y)};f.prototype.processPage=function(b,a){var d=b.getModel(),g="",p="",f;for(f in d.cells){var E=d.cells[f];if(b.getDefaultParent()===d.getParent(E)){var g=g.concat(p),g=g.concat('{"xml":"'),x=this.createMxGraph();x.addCell(E);this.sanitiseGraph(x);if(0===x.getModel().getChildCount(x.getDefaultParent()))return"continue";p=this.normalizeGeo(E);x=h.prototype.processPage.call(this,x,null);g=g.concat(x);g= @@ -600,8 +600,8 @@ g.concat('","w":');g=g.concat(p.width);g=g.concat(',"h":');g=g.concat(p.height); p.entries[t].key===x){p=p.entries[t].value;break a}p=null}null!=p&&(E=p.getName())}g=g.concat(E);g=g.concat('"}');p=","}}this.RESPONSE_DIAGRAM_START=0<g.length?",":"";return g};return f}(c.mxgraph.io.mxVsdxCodec);w.mxVssxCodec=l;l.__class="com.mxgraph.io.mxVssxCodec"})(m.io||(m.io={}))})(c.mxgraph||(c.mxgraph={}))})(com||(com={})); (function(c){(function(c){(function(c){(function(c){(function(c){var f=function(){function b(a,b,g){this.formulaE=this.formulaA=this.d=this.c=this.b=this.a=this.y=this.x=null;this.index=0;this.index=a;this.x=b;this.y=g}b.prototype.getX=function(){return this.x};b.prototype.getY=function(){return this.y};b.prototype.getA=function(){return this.a};b.prototype.getB=function(){return this.b};b.prototype.getC=function(){return this.c};b.prototype.getD=function(){return this.d};b.prototype.getFormulaA= function(){return this.formulaA};b.prototype.getFormulaE=function(){return this.formulaE};b.prototype.getIndex=function(){return this.index};return b}();c.Row=f;f.__class="com.mxgraph.io.vsdx.geometry.Row"})(c.geometry||(c.geometry={}))})(c.vsdx||(c.vsdx={}))})(c.io||(c.io={}))})(c.mxgraph||(c.mxgraph={}))})(com||(com={})); -(function(c){(function(m){(function(m){(function(l){(function(h){var f=function(){function b(){}b.getIndex=function(a){try{return parseInt(a.getAttribute("IX"))}catch(d){return 1}};b.getDoubleVal=function(a){try{if(null!=a&&0!==a.length){var b=parseFloat(a);if(isFinite(b))return b}}catch(g){}return null};b.getRowObj=function(a,d){var g=a.getAttribute("T"),p=b.getIndex(a),f;f=(f=a.getAttribute("Del"))&&f.equals?f.equals("1"):"1"===f;if(!f){var E=null;p<=d.length&&(E=d[p-1]);var x=f=null,t=null,h=null, -l=null,m=null,w=null,A=null;null!=E&&(f=E.x,x=E.y,t=E.getA(),h=E.getB(),l=E.getC(),m=E.getD(),A=E.getFormulaA(),w=E.getFormulaE());for(var E=c.mxgraph.io.vsdx.mxVsdxUtils.getDirectChildElements(a),F=0;F<E.length;F++){var B=E[F],Y=B.getAttribute("N"),J=B.getAttribute("V");switch(Y){case "X":f=b.getDoubleVal(J);break;case "Y":x=b.getDoubleVal(J);break;case "A":t=b.getDoubleVal(J);A=B.getAttribute("V");break;case "B":h=b.getDoubleVal(J);break;case "C":l=b.getDoubleVal(J);break;case "D":m=b.getDoubleVal(J); +(function(c){(function(m){(function(m){(function(l){(function(h){var f=function(){function b(){}b.getIndex=function(a){try{return parseInt(a.getAttribute("IX"))||1}catch(d){return 1}};b.getDoubleVal=function(a){try{if(null!=a&&0!==a.length){var b=parseFloat(a);if(isFinite(b))return b}}catch(g){}return null};b.getRowObj=function(a,d){var g=a.getAttribute("T"),p=b.getIndex(a),f;f=(f=a.getAttribute("Del"))&&f.equals?f.equals("1"):"1"===f;if(!f){var E=null;p<=d.length&&(E=d[p-1]);var x=f=null,t=null, +h=null,l=null,m=null,w=null,A=null;null!=E&&(f=E.x,x=E.y,t=E.getA(),h=E.getB(),l=E.getC(),m=E.getD(),A=E.getFormulaA(),w=E.getFormulaE());for(var E=c.mxgraph.io.vsdx.mxVsdxUtils.getDirectChildElements(a),F=0;F<E.length;F++){var B=E[F],Y=B.getAttribute("N"),J=B.getAttribute("V");switch(Y){case "X":f=b.getDoubleVal(J);break;case "Y":x=b.getDoubleVal(J);break;case "A":t=b.getDoubleVal(J);A=B.getAttribute("V");break;case "B":h=b.getDoubleVal(J);break;case "C":l=b.getDoubleVal(J);break;case "D":m=b.getDoubleVal(J); break;case "E":w=J}}switch(g){case "MoveTo":return new c.mxgraph.io.vsdx.geometry.MoveTo(p,f,x);case "LineTo":return new c.mxgraph.io.vsdx.geometry.LineTo(p,f,x);case "ArcTo":return new c.mxgraph.io.vsdx.geometry.ArcTo(p,f,x,t);case "Ellipse":return new c.mxgraph.io.vsdx.geometry.Ellipse(p,f,x,t,h,l,m);case "EllipticalArcTo":return new c.mxgraph.io.vsdx.geometry.EllipticalArcTo(p,f,x,t,h,l,m);case "InfiniteLine":return new c.mxgraph.io.vsdx.geometry.InfiniteLine(p,f,x,t,h);case "NURBSTo":return new c.mxgraph.io.vsdx.geometry.NURBSTo(p, f,x,t,h,l,m,w);case "PolylineTo":return new c.mxgraph.io.vsdx.geometry.PolylineTo(p,f,x,A);case "RelCubBezTo":return new c.mxgraph.io.vsdx.geometry.RelCubBezTo(p,f,x,t,h,l,m);case "RelEllipticalArcTo":return new c.mxgraph.io.vsdx.geometry.RelEllipticalArcTo(p,f,x,t,h,l,m);case "RelLineTo":return new c.mxgraph.io.vsdx.geometry.RelLineTo(p,f,x);case "RelMoveTo":return new c.mxgraph.io.vsdx.geometry.RelMoveTo(p,f,x);case "RelQuadBezTo":return new c.mxgraph.io.vsdx.geometry.RelQuadBezTo(p,f,x,t,h);case "SplineKnot":return new c.mxgraph.io.vsdx.geometry.SplineKnot(p, f,x,t);case "SplineStart":return new c.mxgraph.io.vsdx.geometry.SplineStart(p,f,x,t,h,l,m)}}return new c.mxgraph.io.vsdx.geometry.DelRow(p)};return b}();h.RowFactory=f;f.__class="com.mxgraph.io.vsdx.geometry.RowFactory"})(l.geometry||(l.geometry={}))})(m.vsdx||(m.vsdx={}))})(m.io||(m.io={}))})(c.mxgraph||(c.mxgraph={}))})(com||(com={})); @@ -622,7 +622,7 @@ h.BULLET="Bullet";h.CASE="Case";h.CHARACTER="Character";h.COLOR="Color";h.COLOR_ "TextBlock";h.TEXT_STYLE="TextStyle";h.TO_PART="ToPart";h.TO_SHEET="ToSheet";h.TOP_MARGIN="TopMargin";h.TRUE="1";h.TXT_ANGLE="TxtAngle";h.TXT_HEIGHT="TxtHeight";h.TXT_LOC_PIN_X="TxtLocPinX";h.TXT_LOC_PIN_Y="TxtLocPinY";h.TXT_PIN_X="TxtPinX";h.TXT_PIN_Y="TxtPinY";h.TXT_WIDTH="TxtWidth";h.TYPE="Type";h.TYPE_GROUP="Group";h.TYPE_SHAPE="Shape";h.UNIQUE_ID="UniqueID";h.VERTICAL_ALIGN="VerticalAlign";h.WIDTH="Width";h.X_CON="XCon";h.X_DYN="XDyn";h.X="X";h.Y_CON="YCon";h.Y_DYN="YDyn";h.Y="Y";h.HIDE_TEXT= "HideText";h.VSDX_ID="vsdxID";h.CONNECT_TO_PART_WHOLE_SHAPE=3;c.mxVsdxConstants=h;h.__class="com.mxgraph.io.vsdx.mxVsdxConstants"})(c.vsdx||(c.vsdx={}))})(c.io||(c.io={}))})(c.mxgraph||(c.mxgraph={}))})(com||(com={})); (function(c){(function(m){(function(m){(function(l){var h=function(){function f(b,a){this.noQuickDrag=this.noSnap=this.noShow=this.noLine=this.noFill=!1;this.rows=null;if((null!=b&&1==b.nodeType||null===b)&&(null!=a&&a instanceof Array||null===a))Array.prototype.slice.call(arguments),this.index=0,this.noQuickDrag=this.noSnap=this.noShow=this.noLine=this.noFill=!1,this.rows=null,this.index=0,this.index=this.getIndex$org_w3c_dom_Element(b),null!=a&&this.index<a.length&&this.inheritGeo(a[this.index]), -this.processGeoElem(b);else if((null!=b&&1==b.nodeType||null===b)&&void 0===a)Array.prototype.slice.call(arguments),this.index=0,this.noQuickDrag=this.noSnap=this.noShow=this.noLine=this.noFill=!1,this.rows=null,this.index=0,this.index=this.getIndex$org_w3c_dom_Element(b),this.processGeoElem(b);else throw Error("invalid overload");}f.prototype.getIndex$org_w3c_dom_Element=function(b){try{return parseInt(b.getAttribute("IX"))}catch(a){return 0}};f.prototype.getIndex=function(b){if(null!=b&&1==b.nodeType|| +this.processGeoElem(b);else if((null!=b&&1==b.nodeType||null===b)&&void 0===a)Array.prototype.slice.call(arguments),this.index=0,this.noQuickDrag=this.noSnap=this.noShow=this.noLine=this.noFill=!1,this.rows=null,this.index=0,this.index=this.getIndex$org_w3c_dom_Element(b),this.processGeoElem(b);else throw Error("invalid overload");}f.prototype.getIndex$org_w3c_dom_Element=function(b){try{return parseInt(b.getAttribute("IX"))||0}catch(a){return 0}};f.prototype.getIndex=function(b){if(null!=b&&1==b.nodeType|| null===b)return this.getIndex$org_w3c_dom_Element(b);if(void 0===b)return this.getIndex$();throw Error("invalid overload");};f.prototype.processGeoElem=function(b){var a=c.mxgraph.io.vsdx.mxVsdxUtils.getDirectChildNamedElements(b,"Cell");b=c.mxgraph.io.vsdx.mxVsdxUtils.getDirectChildNamedElements(b,"Row");if(null==this.rows){this.rows=[];for(var d=0;d<b.length;d++)0<this.rows.push(null)}for(d=0;d<a.length;d++){var g=a[d],p=g.getAttribute("N"),g=g.getAttribute("V");switch(p){case "NoFill":this.noFill= function(a,b){return a&&a.equals?a.equals(b):a===b}("1",g);break;case "NoLine":this.noLine=function(a,b){return a&&a.equals?a.equals(b):a===b}("1",g);break;case "NoShow":this.noShow=function(a,b){return a&&a.equals?a.equals(b):a===b}("1",g);break;case "NoSnap":this.noSnap=function(a,b){return a&&a.equals?a.equals(b):a===b}("1",g);break;case "NoQuickDrag":this.noQuickDrag=function(a,b){return a&&a.equals?a.equals(b):a===b}("1",g)}}a=this.rows.length;d=!1;for(p=0;p<b.length;p++)g=c.mxgraph.io.vsdx.geometry.RowFactory.getRowObj(b[p], this.rows),g.getIndex()>a?(0<this.rows.push(g),d=!0):this.rows[g.getIndex()-1]=g;d&&function(a,b){b.compare?a.sort(function(a,d){return b.compare(a,d)}):a.sort(b)}(this.rows,new f.mxVsdxGeometry$0(this))};f.prototype.inheritGeo=function(b){this.noFill=b.noFill;this.noLine=b.noLine;this.noShow=b.noShow;this.noSnap=b.noSnap;this.noQuickDrag=b.noQuickDrag;var a=this.rows=[];a.push.apply(a,b.rows)};f.prototype.getIndex$=function(){return this.index};f.prototype.isNoFill=function(){return this.noFill}; @@ -877,7 +877,7 @@ this.geomListProcessed=!0}};b.prototype.parseShapeElem=function(a,d){f.prototype a.equals?a.equals(b):a===b}(h,"Enhanced Metafile")||function(a,b){return a&&a.equals?a.equals(b):a===b}(h,"EnhMetaFile"))g="png";else return;h=a.firstChild;if(null!=h){if(null!=h&&1==h.nodeType){var l=h;if(function(a,b){return a&&a.equals?a.equals(b):a===b}(l.nodeName.toLowerCase(),"rel")&&(l=l.getAttribute("r:id"),null!=l&&0!==l.length)){var h=p.lastIndexOf("/"),m="",t="";try{m=p.substring(0,h),t=p.substring(h,p.length)}catch(z){return}h=d.getRelationship(l,m+"/_rels"+t+".rels");if(null!=h){p=h.getAttribute("Target")|| "";l=h.getAttribute("Type");h=p.lastIndexOf("/");try{p=p.substring(h+1,p.length)}catch(z){return}null!=l&&function(a,b){var d=a.length-b.length,g=a.indexOf(b,d);return-1!==g&&g===d}(l,"image")&&(this.imageData={},(h=d.getMedia(c.mxgraph.io.mxVsdxCodec.vsdxPlaceholder+"/media/"+p))?(this.imageData.iData=h,function(a,b){var d=a.length-b.length,g=a.indexOf(b,d);return-1!==g&&g===d}(p.toLowerCase(),".bmp")&&(g="jpg"),this.imageData.iType=g):(this.imageData.iData=b.ERROR_IMAGE,this.imageData.iType="svg+xml"))}return}}h= h.nextSibling}}else(function(a,b){return a&&a.equals?a.equals(b):a===b})(g,c.mxgraph.io.vsdx.mxVsdxConstants.TEXT)&&(this.text=a)};b.prototype.parseSection=function(a){var d=a.getAttribute("N");if(function(a,b){return a&&a.equals?a.equals(b):a===b}(d,"Geometry"))null==this.geom&&(this.geom=[]),0<this.geom.push(a);else if(function(a,b){return a&&a.equals?a.equals(b):a===b}(d,"Field")){a=c.mxgraph.io.vsdx.mxVsdxUtils.getDirectChildNamedElements(a,"Row");for(var g=0;g<a.length;g++){var d=a[g],p=d.getAttribute("IX")|| -"";if(0!==p.length)if(null==this.fields&&(this.fields={}),function(a,b){return a&&a.equals?a.equals(b):a===b}("1",d.getAttribute("Del")))this.fields[p]="";else{for(var h=c.mxgraph.io.vsdx.mxVsdxUtils.getDirectChildNamedElements(d,"Cell"),l="",m="",t=0;t<h.length;t++){var z=h[t],d=z.getAttribute("N"),z=z.getAttribute("V");switch(d){case "Value":l=z;break;case "Format":m=z}}if(0!==l.length){try{(function(a,b,d){void 0===d&&(d=0);return a.substr(d,b.length)===b})(m,"{{")&&(l=(new Date(b.VSDX_START_TIME+ +"";if(0!==p.length)if(null==this.fields&&(this.fields={}),function(a,b){return a&&a.equals?a.equals(b):a===b}("1",d.getAttribute("Del")))this.fields[p]="";else{for(var h=c.mxgraph.io.vsdx.mxVsdxUtils.getDirectChildNamedElements(d,"Cell"),l="",m="",t=0;t<h.length;t++){var z=h[t],d=z.getAttribute("N"),z=z.getAttribute("V")||z.textContent||"";switch(d){case "Value":l=z;break;case "Format":m=z}}if(0!==l.length){try{(function(a,b,d){void 0===d&&(d=0);return a.substr(d,b.length)===b})(m,"{{")&&(l=(new Date(b.VSDX_START_TIME+ Math.floor(864E5*parseFloat(l)))).toString())}catch(aa){}this.fields[p]=l}}}}else f.prototype.parseSection.call(this,a)};b.prototype.parseGeom=function(){return this.hasGeomList()?this.geomList.getShapeXML(this):""};b.prototype.getText=function(){return null!=this.text?this.text.textContent:null};b.prototype.getTextChildren=function(){return null!=this.text?this.text.childNodes:null};b.prototype.getWidth=function(){return 0===this.width&&0<this.height?1:this.width};b.prototype.getHeight=function(){return 0=== this.height&&0<this.width?1:this.height};b.prototype.getRotation=function(){return this.rotation};b.prototype.getStyleMap=function(){return this.styleMap};b.prototype.hasGeom=function(){return!(null==this.geom||0==this.geom.length)};b.prototype.hasGeomList=function(){return null!=this.geomList&&this.geomList.hasGeom()};b.prototype.textToList=function(a,b){if(!function(a,b){return a&&a.equals?a.equals(b):a===b}(b,"")){var d=this.getBullet(b);if(!function(a,b){return a&&a.equals?a.equals(b):a===b}(d, "0")){var f=a.split("\n");f[f.length-1]||f.pop();for(var h="",l=0;l<f.length;l++)h+=c.mxgraph.io.vsdx.mxVsdxUtils.surroundByTags(f[l],"li");h=c.mxgraph.io.vsdx.mxVsdxUtils.surroundByTags(h,"ul");f={};(function(a,b){return a&&a.equals?a.equals(b):a===b})(d,"4")?f["list-style-type"]="square":f["list-style-type"]="disc";return h=this.insertAttributes(h,f)}}return a};b.prototype.getTextParagraphFormated=function(a){var b="",g={};g.align=this.getHorizontalAlign(this.pp,!0);g["margin-left"]=this.getIndentLeft(this.pp); @@ -967,7 +967,7 @@ b.prototype.getMasterName=function(){return this.shapeName};b.prototype.setLabel if(function(a,b,d){void 0===d&&(d=0);return a.substr(d,b.length)===b}(d,"Organizational unit")||function(a,b,d){void 0===d&&(d=0);return a.substr(d,b.length)===b}(f,"Organizational unit")){var h=this.shape.getElementsByTagName(c.mxgraph.io.vsdx.mxVsdxConstants.CONTROL).item(0),d=null,d="0.0",f=null,f="-0.4";null!=h&&(d=h.getElementsByTagName(c.mxgraph.io.vsdx.mxVsdxConstants.X).item(0),d=d.hasAttribute("F")?d.getAttribute("F"):d.textContent,f=h.getElementsByTagName(c.mxgraph.io.vsdx.mxVsdxConstants.Y).item(0), f=f.hasAttribute("F")?f.getAttribute("F"):f.textContent);h=a.getGeometry();d=d.split("Width/2+").join("");d=d.split("DL").join("");f=f.split("Height*").join("");(function(a,b){return a&&a.equals?a.equals(b):a===b})(d,"Inh")&&(d="0.0");(function(a,b){return a&&a.equals?a.equals(b):a===b})(f,"Inh")&&(f="-0.4");-1!=f.indexOf("txtHeight")&&(f="-0.4");for(var l=b.split(";"),m="",t=0;t<l.length;t++){var z=l[t],z=z.trim();(function(a,b,d){void 0===d&&(d=0);return a.substr(d,b.length)===b})(z,"tabHeight=")&& (m=z.split("tabHeight=").join(""))}(function(a,b){return a&&a.equals?a.equals(b):a===b})(m,"")&&(m="20");l=parseFloat(m);d=parseFloat(d);f=parseFloat(f);m=h.height;d=.1*h.width+100*d;d=new mxPoint(d,m-m*f-l/2);a.getGeometry().offset=d}else if(function(a,b,d){void 0===d&&(d=0);return a.substr(d,b.length)===b}(d,"Domain 3D")||function(a,b,d){void 0===d&&(d=0);return a.substr(d,b.length)===b}(f,"Domain 3D")){h=this.shape.getElementsByTagName(c.mxgraph.io.vsdx.mxVsdxConstants.CONTROL).item(0);d=null; -d="0.0";f=null;f="-0.4";null!=h&&(d=h.getElementsByTagName(c.mxgraph.io.vsdx.mxVsdxConstants.X).item(0),d=d.getAttribute("F"),f=h.getElementsByTagName(c.mxgraph.io.vsdx.mxVsdxConstants.Y).item(0),f=f.getAttribute("F"));h=a.getGeometry();d=d.split("Width/2+").join("");d=d.split("DL").join("");f=f.split("Height*").join("");if(function(a,b){return a&&a.equals?a.equals(b):a===b}(d,"Inh")||function(a,b){return a&&a.equals?a.equals(b):a===b}(d,""))d="0.0";if(function(a,b){return a&&a.equals?a.equals(b): +d="0.0";f=null;f="-0.4";null!=h&&(d=h.getElementsByTagName(c.mxgraph.io.vsdx.mxVsdxConstants.X).item(0),d=d.getAttribute("F")||"",f=h.getElementsByTagName(c.mxgraph.io.vsdx.mxVsdxConstants.Y).item(0),f=f.getAttribute("F")||"");h=a.getGeometry();d=d.split("Width/2+").join("");d=d.split("DL").join("");f=f.split("Height*").join("");if(function(a,b){return a&&a.equals?a.equals(b):a===b}(d,"Inh")||function(a,b){return a&&a.equals?a.equals(b):a===b}(d,""))d="0.0";if(function(a,b){return a&&a.equals?a.equals(b): a===b}(f,"Inh")||function(a,b){return a&&a.equals?a.equals(b):a===b}(f,""))f="-0.4";-1!=f.indexOf("txtHeight")&&(f="-0.4");d=parseFloat(d);f=parseFloat(f);m=h.height;d=.1*h.width+100*d;d=new mxPoint(d,m-m*f);a.getGeometry().offset=d}};b.prototype.getForm=function(){var a={};if(this.isVertex())try{var d=b.getType(this.getShape());this.styleDebug("shape type = "+d);if(null!=this.imageData||function(a,b){return a&&a.equals?a.equals(b):a===b}(c.mxgraph.io.vsdx.mxVsdxConstants.FOREIGN,d)&&null!=this.masterShape&& null!=this.masterShape.imageData){var f=null!=this.imageData?this.imageData:this.masterShape.imageData;a.shape="image";a.aspect="fixed";var h=function(a,b){return a[b]?a[b]:null}(f,"iType"),l=function(a,b){return a[b]?a[b]:null}(f,"iData");a.image="data:image/"+h+","+l;return a}var m=this.parseGeom();if(function(a,b){return a&&a.equals?a.equals(b):a===b}(m,""))return this.styleDebug("No geom found"),a;var x=Graph.prototype.compress(m);a[mxConstants.STYLE_SHAPE]="stencil("+x+")"}catch(t){console.error(t.message, t)}else return this.getEdgeStyle();return a};b.prototype.isOff_page_reference=function(){var a=this.getNameU();return function(a,b){return a&&a.equals?a.equals(b):a===b}(a,"Off-page reference")||function(a,b){return a&&a.equals?a.equals(b):a===b}(a,"Lined/Shaded process")?!0:!1};b.prototype.isExternal_process=function(){var a;a=(a=this.shapeName)&&a.equals?a.equals("External process"):"External process"===a;return a};b.prototype.getDirection=function(a){a=mxResources.get("mxOffset"+this.shapeName); @@ -979,8 +979,8 @@ a===b}(f.toLowerCase(),"width*1")&&function(a,b){return a&&a.equals?a.equals(b): b,d){void 0===d&&(d=0);return a.substr(d,b.length)===b}(a.toLowerCase(),"controls.row_")||function(a,b,d){void 0===d&&(d=0);return a.substr(d,b.length)===b}(b.toLowerCase(),"controls.row_"))?!1:!0};b.prototype.isRotatedLabel=function(){var a=this.getAttribute(c.mxgraph.io.vsdx.mxVsdxConstants.TXT_ANGLE,"V","");null!=this.masterShape&&function(a,b){return a&&a.equals?a.equals(b):a===b}(a,"")&&(a=this.masterShape.getAttribute(c.mxgraph.io.vsdx.mxVsdxConstants.TXT_ANGLE,"V",""));return function(a,b){return a&& a.equals?a.equals(b):a===b}(a,"0")||function(a,b){return a&&a.equals?a.equals(b):a===b}(a,"0.0")||function(a,b){return a&&a.equals?a.equals(b):a===b}(a,"")?!1:!0};b.prototype.setRootShape=function(a){this.rootShape=a};b.prototype.getRootShape=function(){return this.rootShape};b.prototype.getStartXY=function(a){var b=Math.floor(Math.round(100*this.getScreenNumericalValue$org_w3c_dom_Element$double(this.getCellElement$java_lang_String(c.mxgraph.io.vsdx.mxVsdxConstants.BEGIN_X),0))/100);a=Math.floor(Math.round(100* (a-this.getScreenNumericalValue$org_w3c_dom_Element$double(this.getCellElement$java_lang_String(c.mxgraph.io.vsdx.mxVsdxConstants.BEGIN_Y),0)))/100);return new mxPoint(b,a)};b.prototype.getEndXY=function(a){var b=Math.floor(Math.round(100*this.getScreenNumericalValue$org_w3c_dom_Element$double(this.getCellElement$java_lang_String(c.mxgraph.io.vsdx.mxVsdxConstants.END_X),0))/100);a=Math.floor(Math.round(100*(a-this.getScreenNumericalValue$org_w3c_dom_Element$double(this.getCellElement$java_lang_String(c.mxgraph.io.vsdx.mxVsdxConstants.END_Y), -0)))/100);return new mxPoint(b,a)};b.prototype.getRoutingPoints=function(a,b,c){return null!=this.geomList?this.geomList.getRoutingPoints(a,b,c):null};b.prototype.getControlPoints=function(a){var b=this.getStartXY(a);a=this.getEndXY(a);var f=[];if(null!=this.shape){var h=this.shape.getElementsByTagName(c.mxgraph.io.vsdx.mxVsdxConstants.GEOM);if(0<h.length&&(h=h.item(0).getElementsByTagName(c.mxgraph.io.vsdx.mxVsdxConstants.NURBS_TO).item(0).getElementsByTagName("E").item(0),null!=h)){for(var h=h.getAttribute("F"), -h=h.replace(RegExp("NURBS\\(","g"),""),h=h.replace(RegExp("\\)","g"),""),h=h.replace(RegExp(",","g")," "),h=h.replace(RegExp("\\s\\s","g")," "),h=h.split(" "),l=h.length,m=[];0<l--;)m.push(0);for(l=0;l<h.length;l++)m[l]=parseFloat(h[l]);for(l=2;l+4<h.length;l+=4){var x=new mxPoint,t=m[l+3];x.x=Math.floor(Math.round(100*(b.x+Math.min(100,Math.abs(a.x-b.x))*m[l+2]))/100);x.y=Math.floor(Math.round(100*(b.y-100*t))/100);0<f.push(x)}return f}}return null};b.prototype.getStyleFromEdgeShape=function(a){this.styleMap[c.mxgraph.io.vsdx.mxVsdxConstants.VSDX_ID]= +0)))/100);return new mxPoint(b,a)};b.prototype.getRoutingPoints=function(a,b,c){return null!=this.geomList?this.geomList.getRoutingPoints(a,b,c):null};b.prototype.getControlPoints=function(a){var b=this.getStartXY(a);a=this.getEndXY(a);var f=[];if(null!=this.shape){var h=this.shape.getElementsByTagName(c.mxgraph.io.vsdx.mxVsdxConstants.GEOM);if(0<h.length&&(h=h.item(0).getElementsByTagName(c.mxgraph.io.vsdx.mxVsdxConstants.NURBS_TO).item(0).getElementsByTagName("E").item(0),null!=h)){for(var h=h.getAttribute("F")|| +"",h=h.replace(RegExp("NURBS\\(","g"),""),h=h.replace(RegExp("\\)","g"),""),h=h.replace(RegExp(",","g")," "),h=h.replace(RegExp("\\s\\s","g")," "),h=h.split(" "),l=h.length,m=[];0<l--;)m.push(0);for(l=0;l<h.length;l++)m[l]=parseFloat(h[l]);for(l=2;l+4<h.length;l+=4){var x=new mxPoint,t=m[l+3];x.x=Math.floor(Math.round(100*(b.x+Math.min(100,Math.abs(a.x-b.x))*m[l+2]))/100);x.y=Math.floor(Math.round(100*(b.y-100*t))/100);0<f.push(x)}return f}}return null};b.prototype.getStyleFromEdgeShape=function(a){this.styleMap[c.mxgraph.io.vsdx.mxVsdxConstants.VSDX_ID]= this.getId().toString();a=this.getForm();if(null!=a&&!function(a,b){return a&&a.equals?a.equals(b):a===b}(a,""))for(var d in a)this.styleMap[d]=a[d];this.isDashed()&&(this.styleMap[mxConstants.STYLE_DASHED]="1",d=this.getDashPattern(),null!=d&&(this.styleMap[mxConstants.STYLE_DASH_PATTERN]=d));d=this.getEdgeMarker(!0);null!=d&&(function(a,b,d){void 0===d&&(d=0);return a.substr(d,b.length)===b}(d,b.ARROW_NO_FILL_MARKER)&&(d=d.substring(b.ARROW_NO_FILL_MARKER.length),this.styleMap[mxConstants.STYLE_STARTFILL]= "0"),this.styleMap[mxConstants.STYLE_STARTARROW]=d);d=this.getEdgeMarker(!1);null!=d&&(function(a,b,d){void 0===d&&(d=0);return a.substr(d,b.length)===b}(d,b.ARROW_NO_FILL_MARKER)&&(d=d.substring(b.ARROW_NO_FILL_MARKER.length),this.styleMap[mxConstants.STYLE_ENDFILL]="0"),this.styleMap[mxConstants.STYLE_ENDARROW]=d);d=Math.round(this.getStartArrowSize())|0;6!==d&&(this.styleMap[mxConstants.STYLE_STARTSIZE]=""+d);d=Math.round(this.getFinalArrowSize())|0;6!==d&&(this.styleMap[mxConstants.STYLE_ENDSIZE]= ""+d);d=Math.round(this.getLineWidth())|0;1!==d&&(this.styleMap[mxConstants.STYLE_STROKEWIDTH]=""+d);d=this.getStrokeColor();(function(a,b){return a&&a.equals?a.equals(b):a===b})(d,"")||(this.styleMap[mxConstants.STYLE_STROKECOLOR]=d);this.isShadow()&&(this.styleMap[mxConstants.STYLE_SHADOW]=c.mxgraph.io.vsdx.mxVsdxConstants.TRUE);this.isConnectorBigNameU(this.getNameU())&&(this.styleMap[mxConstants.STYLE_SHAPE]=mxConstants.SHAPE_ARROW,d=this.getFillColor(),function(a,b){return a&&a.equals?a.equals(b): diff --git a/src/main/webapp/js/mxgraph/Dialogs.js b/src/main/webapp/js/mxgraph/Dialogs.js index c7dbf6c08..59114bab5 100644 --- a/src/main/webapp/js/mxgraph/Dialogs.js +++ b/src/main/webapp/js/mxgraph/Dialogs.js @@ -773,14 +773,8 @@ var EditDiagramDialog = function(editorUi) if (select.value == 'new') { - window.openFile = new OpenFile(function() - { - editorUi.hideDialog(); - window.openFile = null; - }); - - window.openFile.setData(data, null); - editorUi.editor.graph.openLink(editorUi.getUrl()); + editorUi.hideDialog(); + editorUi.editor.editAsNew(data); } else if (select.value == 'replace') { diff --git a/src/main/webapp/js/mxgraph/Graph.js b/src/main/webapp/js/mxgraph/Graph.js index 1f2dcbc3e..6da08ce9f 100644 --- a/src/main/webapp/js/mxgraph/Graph.js +++ b/src/main/webapp/js/mxgraph/Graph.js @@ -2924,6 +2924,14 @@ Graph.prototype.bytesToString = function(arr) return result.join(''); }; +/** + * Returns a base64 encoded version of the compressed outer XML of the given node. + */ +Graph.prototype.compressNode = function(node) +{ + return this.compress(this.zapGremlins(mxUtils.getXml(node))); +}; + /** * Returns a base64 encoded version of the compressed string. */ @@ -4797,6 +4805,10 @@ if (typeof mxVertexHandler != 'undefined') // Mapping for multiple calls to cloneCells with the same set of cells var mapping = new Object(); + // Populates the mapping to fix lookups for forward refs from edges + // to cells in parents that are cloned later in the loop below +// this.cloneCells([model.root], this.isCloneInvalidEdges(), mapping); + for (var i = 0; i < childCount; i++) { var parent = model.getChildAt(model.getRoot(), i); diff --git a/src/main/webapp/js/reader.min.js b/src/main/webapp/js/reader.min.js index 4ae85efdd..6b89d99db 100644 --- a/src/main/webapp/js/reader.min.js +++ b/src/main/webapp/js/reader.min.js @@ -22,8 +22,8 @@ position:{cssPropBits:0,cssLitGroup:[a[23]],cssFns:[]},quotes:{cssPropBits:8,css cssLitGroup:[a[14],a[69]],cssFns:[]},stress:"border-bottom-left-radius","table-layout":{cssPropBits:0,cssLitGroup:[a[52],a[61]],cssFns:[]},"text-align":{cssPropBits:0,cssLitGroup:[a[42],a[56],a[66]],cssFns:[]},"text-decoration":{cssPropBits:0,cssLitGroup:[a[19],a[71]],cssFns:[]},"text-indent":"border-bottom-left-radius","text-overflow":{cssPropBits:8,cssLitGroup:[a[33]],cssFns:[]},"text-shadow":"box-shadow","text-transform":{cssPropBits:0,cssLitGroup:[a[26],a[71]],cssFns:[]},"text-wrap":{cssPropBits:0, cssLitGroup:[a[46],a[71],a[72]],cssFns:[]},top:"bottom",transform:{cssPropBits:0,cssLitGroup:[a[71]],cssFns:"matrix() perspective() rotate() rotate3d() rotatex() rotatey() rotatez() scale() scale3d() scalex() scaley() scalez() skew() skewx() skewy() translate() translate3d() translatex() translatey() translatez()".split(" ")},"transform-origin":"perspective-origin","transform-style":{cssPropBits:0,cssLitGroup:[a[37]],cssFns:[]},transition:{cssPropBits:1029,cssLitGroup:[a[10],a[48],a[50],a[71]],cssFns:["cubic-bezier()", "steps()"]},"transition-delay":"animation-delay","transition-duration":"animation-delay","transition-property":{cssPropBits:1024,cssLitGroup:[a[48],a[50]],cssFns:[]},"transition-timing-function":"animation-timing-function","unicode-bidi":{cssPropBits:0,cssLitGroup:[a[30],a[72]],cssFns:[]},"vertical-align":{cssPropBits:5,cssLitGroup:[a[12],a[31]],cssFns:[]},visibility:"backface-visibility","voice-family":{cssPropBits:8,cssLitGroup:[a[27],a[48]],cssFns:[]},volume:{cssPropBits:1,cssLitGroup:[a[17],a[69]], -cssFns:[]},"white-space":{cssPropBits:0,cssLitGroup:[a[22],a[72]],cssFns:[]},width:"min-height","word-break":{cssPropBits:0,cssLitGroup:[a[32],a[72]],cssFns:[]},"word-spacing":"letter-spacing","word-wrap":"overflow-wrap","z-index":"bottom",zoom:"line-height","cubic-bezier()":"animation-delay","steps()":{cssPropBits:5,cssLitGroup:[a[36],a[48]],cssFns:[]},"image()":{cssPropBits:18,cssLitGroup:[a[0],a[48]],cssFns:["rgb()","rgba()"]},"linear-gradient()":{cssPropBits:7,cssLitGroup:[a[0],a[31],a[42],a[48], -a[79]],cssFns:["rgb()","rgba()"]},"radial-gradient()":{cssPropBits:7,cssLitGroup:[a[0],a[11],a[31],a[42],a[48],a[56],a[57]],cssFns:["rgb()","rgba()"]},"repeating-linear-gradient()":"linear-gradient()","repeating-radial-gradient()":"radial-gradient()","rgb()":{cssPropBits:1,cssLitGroup:[a[48]],cssFns:[]},"rgba()":"rgb()","rect()":{cssPropBits:5,cssLitGroup:[a[48],a[52]],cssFns:[]},"alpha()":{cssPropBits:1,cssLitGroup:[a[28]],cssFns:[]},"matrix()":"animation-delay","perspective()":"border-bottom-left-radius", +cssFns:[]},"white-space":{cssPropBits:0,cssLitGroup:[a[22],a[72]],cssFns:[]},width:"min-height","word-break":{cssPropBits:0,cssLitGroup:[a[32],a[72],a[55]],cssFns:[]},"word-spacing":"letter-spacing","word-wrap":"overflow-wrap","z-index":"bottom",zoom:"line-height","cubic-bezier()":"animation-delay","steps()":{cssPropBits:5,cssLitGroup:[a[36],a[48]],cssFns:[]},"image()":{cssPropBits:18,cssLitGroup:[a[0],a[48]],cssFns:["rgb()","rgba()"]},"linear-gradient()":{cssPropBits:7,cssLitGroup:[a[0],a[31],a[42], +a[48],a[79]],cssFns:["rgb()","rgba()"]},"radial-gradient()":{cssPropBits:7,cssLitGroup:[a[0],a[11],a[31],a[42],a[48],a[56],a[57]],cssFns:["rgb()","rgba()"]},"repeating-linear-gradient()":"linear-gradient()","repeating-radial-gradient()":"radial-gradient()","rgb()":{cssPropBits:1,cssLitGroup:[a[48]],cssFns:[]},"rgba()":"rgb()","rect()":{cssPropBits:5,cssLitGroup:[a[48],a[52]],cssFns:[]},"alpha()":{cssPropBits:1,cssLitGroup:[a[28]],cssFns:[]},"matrix()":"animation-delay","perspective()":"border-bottom-left-radius", "rotate()":"border-bottom-left-radius","rotate3d()":"animation-delay","rotatex()":"border-bottom-left-radius","rotatey()":"border-bottom-left-radius","rotatez()":"border-bottom-left-radius","scale()":"animation-delay","scale3d()":"animation-delay","scalex()":"border-bottom-left-radius","scaley()":"border-bottom-left-radius","scalez()":"border-bottom-left-radius","skew()":"animation-delay","skewx()":"border-bottom-left-radius","skewy()":"border-bottom-left-radius","translate()":"animation-delay","translate3d()":"animation-delay", "translatex()":"border-bottom-left-radius","translatey()":"border-bottom-left-radius","translatez()":"border-bottom-left-radius"},c;for(c in b)"string"===typeof b[c]&&Object.hasOwnProperty.call(b,c)&&(b[c]=b[b[c]]);"undefined"!==typeof window&&(window.cssSchema=b);var d,e;(function(){function a(a){var b=parseInt(a.substring(1),16);return 65535<b?(b-=65536,String.fromCharCode(55296+(b>>10),56320+(b&1023))):b==b?String.fromCharCode(b):" ">a[1]?"":a[1]}function b(a,b){return'"'+a.replace(/[\u0000-\u001f\\\"<>]/g, b)+'"'}function c(a){return g[a]||(g[a]="\\"+a.charCodeAt(0).toString(16)+" ")}function f(a){return h[a]||(h[a]=("">a?"%0":"%")+a.charCodeAt(0).toString(16))}var g={"\\":"\\\\"},h={"\\":"%5c"},k=RegExp("\\uFEFF|U[+][0-9A-F?]{1,6}(?:-[0-9A-F]{1,6})?|url[(][\\t\\n\\f ]*(?:\"(?:'|[^'\"\\n\\f\\\\]|\\\\[\\s\\S])*\"|'(?:\"|[^'\"\\n\\f\\\\]|\\\\[\\s\\S])*'|(?:[\\t\\x21\\x23-\\x26\\x28-\\x5b\\x5d-\\x7e]|[\\u0080-\\ud7ff\\ue000-\\ufffd]|[\\ud800-\\udbff][\\udc00-\\udfff]|\\\\(?:[0-9a-fA-F]{1,6}[\\t\\n\\f ]?|[\\u0020-\\u007e\\u0080-\\ud7ff\\ue000\\ufffd]|[\\ud800-\\udbff][\\udc00-\\udfff]))*)[\\t\\n\\f ]*[)]|(?!url[(])-?(?:[a-zA-Z_]|[\\u0080-\\ud7ff\\ue000-\\ufffd]|[\\ud800-\\udbff][\\udc00-\\udfff]|\\\\(?:[0-9a-fA-F]{1,6}[\\t\\n\\f ]?|[\\u0020-\\u007e\\u0080-\\ud7ff\\ue000\\ufffd]|[\\ud800-\\udbff][\\udc00-\\udfff]))(?:[a-zA-Z0-9_-]|[\\u0080-\\ud7ff\\ue000-\\ufffd]|[\\ud800-\\udbff][\\udc00-\\udfff]|\\\\(?:[0-9a-fA-F]{1,6}[\\t\\n\\f ]?|[\\u0020-\\u007e\\u0080-\\ud7ff\\ue000\\ufffd]|[\\ud800-\\udbff][\\udc00-\\udfff]))*[(]|(?:@?-?(?:[a-zA-Z_]|[\\u0080-\\ud7ff\\ue000-\\ufffd]|[\\ud800-\\udbff][\\udc00-\\udfff]|\\\\(?:[0-9a-fA-F]{1,6}[\\t\\n\\f ]?|[\\u0020-\\u007e\\u0080-\\ud7ff\\ue000\\ufffd]|[\\ud800-\\udbff][\\udc00-\\udfff]))|#)(?:[a-zA-Z0-9_-]|[\\u0080-\\ud7ff\\ue000-\\ufffd]|[\\ud800-\\udbff][\\udc00-\\udfff]|\\\\(?:[0-9a-fA-F]{1,6}[\\t\\n\\f ]?|[\\u0020-\\u007e\\u0080-\\ud7ff\\ue000\\ufffd]|[\\ud800-\\udbff][\\udc00-\\udfff]))*|\"(?:'|[^'\"\\n\\f\\\\]|\\\\[\\s\\S])*\"|'(?:\"|[^'\"\\n\\f\\\\]|\\\\[\\s\\S])*'|[-+]?(?:[0-9]+(?:[.][0-9]+)?|[.][0-9]+)(?:%|-?(?:[a-zA-Z_]|[\\u0080-\\ud7ff\\ue000-\\ufffd]|[\\ud800-\\udbff][\\udc00-\\udfff]|\\\\(?:[0-9a-fA-F]{1,6}[\\t\\n\\f ]?|[\\u0020-\\u007e\\u0080-\\ud7ff\\ue000\\ufffd]|[\\ud800-\\udbff][\\udc00-\\udfff]))(?:[a-zA-Z0-9_-]|[\\u0080-\\ud7ff\\ue000-\\ufffd]|[\\ud800-\\udbff][\\udc00-\\udfff]|\\\\(?:[0-9a-fA-F]{1,6}[\\t\\n\\f ]?|[\\u0020-\\u007e\\u0080-\\ud7ff\\ue000\\ufffd]|[\\ud800-\\udbff][\\udc00-\\udfff]))*)?|\x3c!--|--\x3e|[\\t\\n\\f ]+|/(?:[*][^*]*[*]+(?:[^/][^*]*[*]+)*/|/[^\\n\\f]*)|[~|^$*]=|[^\"'\\\\/]|/(?![/*])", @@ -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;e<d;e+=1)g+=" ";else"string"===typeof d&&(g=d);if((k=b)&&"function"!==typeof b&&("object"!==typeof b||"number"!==typeof b.length))throw Error("JSON.stringify");return c("",{"":a})}); "function"!==typeof JSON.parse&&(JSON.parse=function(a,b){function c(a,d){var e,f,g=a[d];if(g&&"object"===typeof g)for(e in g)Object.prototype.hasOwnProperty.call(g,e)&&(f=c(g,e),void 0!==f?g[e]=f:delete g[e]);return b.call(a,d,g)}var e;a=""+a;d.lastIndex=0;d.test(a)&&(a=a.replace(d,function(a){return"\\u"+("0000"+a.charCodeAt(0).toString(16)).slice(-4)}));if(/^[\],:{}\s]*$/.test(a.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,"@").replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g, "]").replace(/(?:^|:|,)(?:\s*\[)+/g,"")))return e=eval("("+a+")"),"function"===typeof b?c({"":e},""):e;throw new SyntaxError("JSON.parse");})})();"undefined"===typeof window.mxBasePath&&(window.mxBasePath="https://www.draw.io/mxgraph/");window.mxLoadStylesheets=window.mxLoadStylesheets||!1;window.mxLoadResources=window.mxLoadResources||!1;window.mxLanguage=window.mxLanguage||"en";window.urlParams=window.urlParams||{};window.MAX_REQUEST_SIZE=window.MAX_REQUEST_SIZE||10485760;window.MAX_AREA=window.MAX_AREA||225E6;window.EXPORT_URL=window.EXPORT_URL||"/export";window.SAVE_URL=window.SAVE_URL||"/save";window.OPEN_URL=window.OPEN_URL||"/open";window.RESOURCES_PATH=window.RESOURCES_PATH||"resources";window.RESOURCE_BASE=window.RESOURCE_BASE||window.RESOURCES_PATH+"/grapheditor";window.STENCIL_PATH=window.STENCIL_PATH||"stencils";window.IMAGE_PATH=window.IMAGE_PATH||"images"; -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:"9.3.1",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")&& +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:"9.3.4",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/")|| @@ -615,7 +615,7 @@ mxSwimlane.prototype.paintDivider=function(a,b,c,d,e,f,g){g||a.setShadow(!1);a.b mxSwimlane.prototype.getImageBounds=function(a,b,c,d){return this.isHorizontal()?new mxRectangle(a+c-this.imageSize,b,this.imageSize,this.imageSize):new mxRectangle(a,b,this.imageSize,this.imageSize)};function mxGraphLayout(a){this.graph=a}mxGraphLayout.prototype.graph=null;mxGraphLayout.prototype.useBoundingBox=!0;mxGraphLayout.prototype.parent=null;mxGraphLayout.prototype.moveCell=function(a,b,c){};mxGraphLayout.prototype.execute=function(a){};mxGraphLayout.prototype.getGraph=function(){return this.graph}; mxGraphLayout.prototype.getConstraint=function(a,b,c,d){c=this.graph.view.getState(b);b=null!=c?c.style:this.graph.getCellStyle(b);return null!=b?b[a]:null}; mxGraphLayout.traverse=function(a,b,c,d,e){if(null!=c&&null!=a&&(b=null!=b?b:!0,e=e||new mxDictionary,!e.get(a)&&(e.put(a,!0),d=c(a,d),null==d||d))&&(d=this.graph.model.getEdgeCount(a),0<d))for(var f=0;f<d;f++){var g=this.graph.model.getEdgeAt(a,f),h=this.graph.model.getTerminal(g,!0)==a;if(!b||h)h=this.graph.view.getVisibleTerminal(g,!h),this.traverse(h,b,c,g,e)}}; -mxGraphLayout.prototype.isAncestor=function(a,b,c){if(!c)return this.graph.model.getParent(cell)==a;if(b==a)return!1;for(;null!=b&&b!=a;)b=this.graph.model.getParent(b);return b==a};mxGraphLayout.prototype.isVertexMovable=function(a){return this.graph.isCellMovable(a)};mxGraphLayout.prototype.isVertexIgnored=function(a){return!this.graph.getModel().isVertex(a)||!this.graph.isCellVisible(a)}; +mxGraphLayout.prototype.isAncestor=function(a,b,c){if(!c)return this.graph.model.getParent(b)==a;if(b==a)return!1;for(;null!=b&&b!=a;)b=this.graph.model.getParent(b);return b==a};mxGraphLayout.prototype.isVertexMovable=function(a){return this.graph.isCellMovable(a)};mxGraphLayout.prototype.isVertexIgnored=function(a){return!this.graph.getModel().isVertex(a)||!this.graph.isCellVisible(a)}; mxGraphLayout.prototype.isEdgeIgnored=function(a){var b=this.graph.getModel();return!b.isEdge(a)||!this.graph.isCellVisible(a)||null==b.getTerminal(a,!0)||null==b.getTerminal(a,!1)};mxGraphLayout.prototype.setEdgeStyleEnabled=function(a,b){this.graph.setCellStyles(mxConstants.STYLE_NOEDGESTYLE,b?"0":"1",[a])};mxGraphLayout.prototype.setOrthogonalEdge=function(a,b){this.graph.setCellStyles(mxConstants.STYLE_ORTHOGONAL,b?"1":"0",[a])}; mxGraphLayout.prototype.getParentOffset=function(a){var b=new mxPoint;if(null!=a&&a!=this.parent){var c=this.graph.getModel();if(c.isAncestor(this.parent,a))for(var d=c.getGeometry(a);a!=this.parent;)b.x+=d.x,b.y+=d.y,a=c.getParent(a),d=c.getGeometry(a)}return b}; mxGraphLayout.prototype.setEdgePoints=function(a,b){if(null!=a){var c=this.graph.model,d=c.getGeometry(a);null==d?(d=new mxGeometry,d.setRelative(!0)):d=d.clone();if(null!=this.parent&&null!=b)for(var e=c.getParent(a),e=this.getParentOffset(e),f=0;f<b.length;f++)b[f].x-=e.x,b[f].y-=e.y;d.points=b;c.setGeometry(a,d)}}; @@ -1607,13 +1607,14 @@ Graph.prototype.isCellFoldable=function(a){var b=this.view.getState(a),b=null!=b Graph.prototype.zoom=function(a,b){a=Math.max(.01,Math.min(this.view.scale*a,160))/this.view.scale;mxGraph.prototype.zoom.apply(this,arguments)};Graph.prototype.zoomIn=function(){.15>this.view.scale?this.zoom((this.view.scale+.01)/this.view.scale):this.zoom(Math.round(this.view.scale*this.zoomFactor*20)/20/this.view.scale)};Graph.prototype.zoomOut=function(){.15>=this.view.scale?this.zoom((this.view.scale-.01)/this.view.scale):this.zoom(Math.round(1/this.zoomFactor*this.view.scale*20)/20/this.view.scale)}; Graph.prototype.getTooltipForCell=function(a){var b="";if(mxUtils.isNode(a.value)){var c=a.value.getAttribute("tooltip");if(null!=c)null!=c&&this.isReplacePlaceholders(a)&&(c=this.replacePlaceholders(a,c)),b=this.sanitizeHtml(c);else{c=this.builtInProperties;a=a.value.attributes;var d=[];this.isEnabled()&&c.push("link");for(var e=0;e<a.length;e++)0>mxUtils.indexOf(c,a[e].nodeName)&&0<a[e].nodeValue.length&&d.push({name:a[e].nodeName,value:a[e].nodeValue});d.sort(function(a,b){return a.name<b.name? -1:a.name>b.name?1:0});for(e=0;e<d.length;e++)"link"==d[e].name&&this.isCustomLink(d[e].value)||(b+=("link"!=d[e].name?"<b>"+d[e].name+":</b> ":"")+mxUtils.htmlEntities(d[e].value)+"\n");0<b.length&&(b=b.substring(0,b.length-1),mxClient.IS_SVG&&(b='<div style="max-width:360px;">'+b+"</div>"))}}return b};Graph.prototype.stringToBytes=function(a){for(var b=Array(a.length),c=0;c<a.length;c++)b[c]=a.charCodeAt(c);return b}; -Graph.prototype.bytesToString=function(a){for(var b=Array(a.length),c=0;c<a.length;c++)b[c]=String.fromCharCode(a[c]);return b.join("")};Graph.prototype.compress=function(a){if(null==a||0==a.length||"undefined"===typeof pako)return a;a=this.bytesToString(pako.deflateRaw(encodeURIComponent(a)));return window.btoa?btoa(a):Base64.encode(a,!0)};Graph.prototype.decompress=function(a){if(null==a||0==a.length||"undefined"===typeof pako)return a;a=window.atob?atob(a):Base64.decode(a,!0);return this.zapGremlins(decodeURIComponent(this.bytesToString(pako.inflateRaw(a))))}; -Graph.prototype.zapGremlins=function(a){for(var b=[],c=0;c<a.length;c++){var d=a.charCodeAt(c);(32<=d||9==d||10==d||13==d)&&b.push(a.charAt(c))}return b.join("")};HoverIcons=function(a){this.graph=a;this.init()};HoverIcons.prototype.arrowSpacing=2;HoverIcons.prototype.updateDelay=500;HoverIcons.prototype.activationDelay=140;HoverIcons.prototype.currentState=null;HoverIcons.prototype.activeArrow=null;HoverIcons.prototype.inactiveOpacity=15;HoverIcons.prototype.cssCursor="copy"; -HoverIcons.prototype.checkCollisions=!0;HoverIcons.prototype.arrowFill="#29b6f2";HoverIcons.prototype.triangleUp=mxClient.IS_SVG?Graph.createSvgImage(18,28,'<path d="m 6 26 L 12 26 L 12 12 L 18 12 L 9 1 L 1 12 L 6 12 z" stroke="#fff" fill="'+HoverIcons.prototype.arrowFill+'"/>'):new mxImage(IMAGE_PATH+"/triangle-up.png",26,14); -HoverIcons.prototype.triangleRight=mxClient.IS_SVG?Graph.createSvgImage(26,18,'<path d="m 1 6 L 14 6 L 14 1 L 26 9 L 14 18 L 14 12 L 1 12 z" stroke="#fff" fill="'+HoverIcons.prototype.arrowFill+'"/>'):new mxImage(IMAGE_PATH+"/triangle-right.png",14,26);HoverIcons.prototype.triangleDown=mxClient.IS_SVG?Graph.createSvgImage(18,26,'<path d="m 6 1 L 6 14 L 1 14 L 9 26 L 18 14 L 12 14 L 12 1 z" stroke="#fff" fill="'+HoverIcons.prototype.arrowFill+'"/>'):new mxImage(IMAGE_PATH+"/triangle-down.png",26,14); -HoverIcons.prototype.triangleLeft=mxClient.IS_SVG?Graph.createSvgImage(28,18,'<path d="m 1 9 L 12 1 L 12 6 L 26 6 L 26 12 L 12 12 L 12 18 z" stroke="#fff" fill="'+HoverIcons.prototype.arrowFill+'"/>'):new mxImage(IMAGE_PATH+"/triangle-left.png",14,26);HoverIcons.prototype.roundDrop=mxClient.IS_SVG?Graph.createSvgImage(26,26,'<circle cx="13" cy="13" r="12" stroke="#fff" fill="'+HoverIcons.prototype.arrowFill+'"/>'):new mxImage(IMAGE_PATH+"/round-drop.png",26,26); -HoverIcons.prototype.refreshTarget=new mxImage(mxClient.IS_SVG?"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACYAAAAmCAYAAACoPemuAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBNYWNpbnRvc2giIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NDQxNERDRTU1QjY1MTFFNDkzNTRFQTVEMTdGMTdBQjciIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NDQxNERDRTY1QjY1MTFFNDkzNTRFQTVEMTdGMTdBQjciPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo0NDE0RENFMzVCNjUxMUU0OTM1NEVBNUQxN0YxN0FCNyIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo0NDE0RENFNDVCNjUxMUU0OTM1NEVBNUQxN0YxN0FCNyIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PsvuX50AAANaSURBVHja7FjRZ1tRGD9ZJ1NCyIQSwrivI4Q8hCpjlFDyFEoYfSp9Ko1QWnmo0If+BSXkIfo0QirTMUpeGo2EPfWllFYjZMLKLDJn53d3biU337m5J223bPbxk5t7v+/c3/2+73znO8fDOWezKM/YjMpz68Lj8ejY+QTeCCwLxOS9qPxtyN+6wAeBTwJ31CCO0cJDjXBGBN4LfIepSwykTUT1bgpuib0SONIgo8KRHOtRiCFcvUcgZeGrHPNBxLIyFPyRgTGz0xLbegJCdmzpElue5KlAIMDX19d5uVzm5+fnfDAYmMA17uEZdOx2Yvb/sHlu2S0xwymn5ufneTab5b1ej08S6EAXNrDd2dnhiUTim21MvMtwQ6yiIrWwsMDPzs64rsBmf3/fvM7n89TYlUnEllSkQqEQv7q64g+Vk5MTVXosORErU0Zer5f0FEIlw2N6MxwO82QyaXql2+2SxDqdjopYWUUsqEp45IldqtWq6UWVh/1+P7+8vCTJ4QMUJSRIEXuneoH96w8PDyeWAnhSJfCqwm6NIlaklFdXV0cGhRcQ2mlJQXK5nMq2YPEZbnteU1U2lUqN/D84OGD9fl+5fgnSrFarsUwmw0qlEru4uBjTicViTk3Cr27HSnxR+Doyz0ZE1CAWiUTusbu7y9rttlZv5fP5WDQavYfIMba4uEipfhF8XtqJoZXx/uH+sC/4vPg7OljZZQbsCmLtYzc3N6zRaJhotVrmfx0xDINtbm6athYUeXpHdbBNaqZUKpWxWXV7e2vex+xaWVnhc3NzjrPUXgexyCt0m67LBV7uJMITjqRE4o8tZeg8FPpFitgapYxiOC0poFgsji1jKNo6BZZckrAGUtJsNk1vqAihCBcKhTE7hNWhqw2qFnGy5UFOUYJVIJ1OjzSE+BCEilon0URavRmBqnbbQ00AXbm+vnZc9O1tj72OnQoc2+cwygRkb2+P1et17ZoEm3g87lRmjgWZ00kbXkNuse6/Bu2wlegIxfb2tuvWGroO4bO2c4bbzUh60mxDXm1sbJhhxkQYnhS4h2fUZoRAWnf7lv8N27f8P7Xhnekjgpk+VKGOoQbsiY+hhhtF3YO7twIJ+ULvUGv+GQ2fQEvWxI/THNx5/p/BaspPAQYAqStgiSQwCDoAAAAASUVORK5CYII=": -IMAGE_PATH+"/refresh.png",38,38);HoverIcons.prototype.tolerance=mxClient.IS_TOUCH?6:0; +Graph.prototype.bytesToString=function(a){for(var b=Array(a.length),c=0;c<a.length;c++)b[c]=String.fromCharCode(a[c]);return b.join("")};Graph.prototype.compressNode=function(a){return this.compress(this.zapGremlins(mxUtils.getXml(a)))};Graph.prototype.compress=function(a){if(null==a||0==a.length||"undefined"===typeof pako)return a;a=this.bytesToString(pako.deflateRaw(encodeURIComponent(a)));return window.btoa?btoa(a):Base64.encode(a,!0)}; +Graph.prototype.decompress=function(a){if(null==a||0==a.length||"undefined"===typeof pako)return a;a=window.atob?atob(a):Base64.decode(a,!0);return this.zapGremlins(decodeURIComponent(this.bytesToString(pako.inflateRaw(a))))};Graph.prototype.zapGremlins=function(a){for(var b=[],c=0;c<a.length;c++){var d=a.charCodeAt(c);(32<=d||9==d||10==d||13==d)&&b.push(a.charAt(c))}return b.join("")};HoverIcons=function(a){this.graph=a;this.init()};HoverIcons.prototype.arrowSpacing=2; +HoverIcons.prototype.updateDelay=500;HoverIcons.prototype.activationDelay=140;HoverIcons.prototype.currentState=null;HoverIcons.prototype.activeArrow=null;HoverIcons.prototype.inactiveOpacity=15;HoverIcons.prototype.cssCursor="copy";HoverIcons.prototype.checkCollisions=!0;HoverIcons.prototype.arrowFill="#29b6f2"; +HoverIcons.prototype.triangleUp=mxClient.IS_SVG?Graph.createSvgImage(18,28,'<path d="m 6 26 L 12 26 L 12 12 L 18 12 L 9 1 L 1 12 L 6 12 z" stroke="#fff" fill="'+HoverIcons.prototype.arrowFill+'"/>'):new mxImage(IMAGE_PATH+"/triangle-up.png",26,14);HoverIcons.prototype.triangleRight=mxClient.IS_SVG?Graph.createSvgImage(26,18,'<path d="m 1 6 L 14 6 L 14 1 L 26 9 L 14 18 L 14 12 L 1 12 z" stroke="#fff" fill="'+HoverIcons.prototype.arrowFill+'"/>'):new mxImage(IMAGE_PATH+"/triangle-right.png",14,26); +HoverIcons.prototype.triangleDown=mxClient.IS_SVG?Graph.createSvgImage(18,26,'<path d="m 6 1 L 6 14 L 1 14 L 9 26 L 18 14 L 12 14 L 12 1 z" stroke="#fff" fill="'+HoverIcons.prototype.arrowFill+'"/>'):new mxImage(IMAGE_PATH+"/triangle-down.png",26,14);HoverIcons.prototype.triangleLeft=mxClient.IS_SVG?Graph.createSvgImage(28,18,'<path d="m 1 9 L 12 1 L 12 6 L 26 6 L 26 12 L 12 12 L 12 18 z" stroke="#fff" fill="'+HoverIcons.prototype.arrowFill+'"/>'):new mxImage(IMAGE_PATH+"/triangle-left.png",14,26); +HoverIcons.prototype.roundDrop=mxClient.IS_SVG?Graph.createSvgImage(26,26,'<circle cx="13" cy="13" r="12" stroke="#fff" fill="'+HoverIcons.prototype.arrowFill+'"/>'):new mxImage(IMAGE_PATH+"/round-drop.png",26,26); +HoverIcons.prototype.refreshTarget=new mxImage(mxClient.IS_SVG?"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACYAAAAmCAYAAACoPemuAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBNYWNpbnRvc2giIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NDQxNERDRTU1QjY1MTFFNDkzNTRFQTVEMTdGMTdBQjciIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NDQxNERDRTY1QjY1MTFFNDkzNTRFQTVEMTdGMTdBQjciPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo0NDE0RENFMzVCNjUxMUU0OTM1NEVBNUQxN0YxN0FCNyIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo0NDE0RENFNDVCNjUxMUU0OTM1NEVBNUQxN0YxN0FCNyIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PsvuX50AAANaSURBVHja7FjRZ1tRGD9ZJ1NCyIQSwrivI4Q8hCpjlFDyFEoYfSp9Ko1QWnmo0If+BSXkIfo0QirTMUpeGo2EPfWllFYjZMLKLDJn53d3biU337m5J223bPbxk5t7v+/c3/2+73znO8fDOWezKM/YjMpz68Lj8ejY+QTeCCwLxOS9qPxtyN+6wAeBTwJ31CCO0cJDjXBGBN4LfIepSwykTUT1bgpuib0SONIgo8KRHOtRiCFcvUcgZeGrHPNBxLIyFPyRgTGz0xLbegJCdmzpElue5KlAIMDX19d5uVzm5+fnfDAYmMA17uEZdOx2Yvb/sHlu2S0xwymn5ufneTab5b1ej08S6EAXNrDd2dnhiUTim21MvMtwQ6yiIrWwsMDPzs64rsBmf3/fvM7n89TYlUnEllSkQqEQv7q64g+Vk5MTVXosORErU0Zer5f0FEIlw2N6MxwO82QyaXql2+2SxDqdjopYWUUsqEp45IldqtWq6UWVh/1+P7+8vCTJ4QMUJSRIEXuneoH96w8PDyeWAnhSJfCqwm6NIlaklFdXV0cGhRcQ2mlJQXK5nMq2YPEZbnteU1U2lUqN/D84OGD9fl+5fgnSrFarsUwmw0qlEru4uBjTicViTk3Cr27HSnxR+Doyz0ZE1CAWiUTusbu7y9rttlZv5fP5WDQavYfIMba4uEipfhF8XtqJoZXx/uH+sC/4vPg7OljZZQbsCmLtYzc3N6zRaJhotVrmfx0xDINtbm6athYUeXpHdbBNaqZUKpWxWXV7e2vex+xaWVnhc3NzjrPUXgexyCt0m67LBV7uJMITjqRE4o8tZeg8FPpFitgapYxiOC0poFgsji1jKNo6BZZckrAGUtJsNk1vqAihCBcKhTE7hNWhqw2qFnGy5UFOUYJVIJ1OjzSE+BCEilon0URavRmBqnbbQ00AXbm+vnZc9O1tj72OnQoc2+cwygRkb2+P1et17ZoEm3g87lRmjgWZ00kbXkNuse6/Bu2wlegIxfb2tuvWGroO4bO2c4bbzUh60mxDXm1sbJhhxkQYnhS4h2fUZoRAWnf7lv8N27f8P7Xhnekjgpk+VKGOoQbsiY+hhhtF3YO7twIJ+ULvUGv+GQ2fQEvWxI/THNx5/p/BaspPAQYAqStgiSQwCDoAAAAASUVORK5CYII=":IMAGE_PATH+ +"/refresh.png",38,38);HoverIcons.prototype.tolerance=mxClient.IS_TOUCH?6:0; HoverIcons.prototype.init=function(){this.arrowUp=this.createArrow(this.triangleUp,mxResources.get("plusTooltip"));this.arrowRight=this.createArrow(this.triangleRight,mxResources.get("plusTooltip"));this.arrowDown=this.createArrow(this.triangleDown,mxResources.get("plusTooltip"));this.arrowLeft=this.createArrow(this.triangleLeft,mxResources.get("plusTooltip"));this.elts=[this.arrowUp,this.arrowRight,this.arrowDown,this.arrowLeft];this.repaintHandler=mxUtils.bind(this,function(){this.repaint()});this.graph.selectionModel.addListener(mxEvent.CHANGE, this.repaintHandler);this.graph.model.addListener(mxEvent.CHANGE,this.repaintHandler);this.graph.view.addListener(mxEvent.SCALE_AND_TRANSLATE,this.repaintHandler);this.graph.view.addListener(mxEvent.TRANSLATE,this.repaintHandler);this.graph.view.addListener(mxEvent.SCALE,this.repaintHandler);this.graph.view.addListener(mxEvent.DOWN,this.repaintHandler);this.graph.view.addListener(mxEvent.UP,this.repaintHandler);this.graph.addListener(mxEvent.ROOT,this.repaintHandler);this.graph.addListener(mxEvent.ESCAPE, mxUtils.bind(this,function(){this.mouseDownPoint=null}));mxEvent.addListener(this.graph.container,"mouseleave",mxUtils.bind(this,function(a){null!=a.relatedTarget&&mxEvent.getSource(a)==this.graph.container&&this.setDisplay("none")}));this.graph.addListener(mxEvent.START_EDITING,mxUtils.bind(this,function(a){this.reset()}));var a=this.graph.click;this.graph.click=mxUtils.bind(this,function(b){a.apply(this.graph,arguments);null==this.currentState||this.graph.isCellSelected(this.currentState.cell)|| diff --git a/src/main/webapp/js/sanitizer/sanitizer.min.js b/src/main/webapp/js/sanitizer/sanitizer.min.js index 6e7d30d55..0d8f9a3e4 100644 --- a/src/main/webapp/js/sanitizer/sanitizer.min.js +++ b/src/main/webapp/js/sanitizer/sanitizer.min.js @@ -1,4 +1,5 @@ // NOTE: Modified to support data URIs for images, ie. data:image/* +// Modified to allow "word-break: break-word" in styles. It is done by adding "break-word" which is at index 55 of J array J[55] to "cssLitGroup" of "word-break" (function(){var c=void 0,n=!0,s=null,C=!1,J=["aliceblue,antiquewhite,aqua,aquamarine,azure,beige,bisque,black,blanchedalmond,blue,blueviolet,brown,burlywood,cadetblue,chartreuse,chocolate,coral,cornflowerblue,cornsilk,crimson,cyan,darkblue,darkcyan,darkgoldenrod,darkgray,darkgreen,darkkhaki,darkmagenta,darkolivegreen,darkorange,darkorchid,darkred,darksalmon,darkseagreen,darkslateblue,darkslategray,darkturquoise,darkviolet,deeppink,deepskyblue,dimgray,dodgerblue,firebrick,floralwhite,forestgreen,fuchsia,gainsboro,ghostwhite,gold,goldenrod,gray,green,greenyellow,honeydew,hotpink,indianred,indigo,ivory,khaki,lavender,lavenderblush,lawngreen,lemonchiffon,lightblue,lightcoral,lightcyan,lightgoldenrodyellow,lightgreen,lightgrey,lightpink,lightsalmon,lightseagreen,lightskyblue,lightslategray,lightsteelblue,lightyellow,lime,limegreen,linen,magenta,maroon,mediumaquamarine,mediumblue,mediumorchid,mediumpurple,mediumseagreen,mediumslateblue,mediumspringgreen,mediumturquoise,mediumvioletred,midnightblue,mintcream,mistyrose,moccasin,navajowhite,navy,oldlace,olive,olivedrab,orange,orangered,orchid,palegoldenrod,palegreen,paleturquoise,palevioletred,papayawhip,peachpuff,peru,pink,plum,powderblue,purple,red,rosybrown,royalblue,saddlebrown,salmon,sandybrown,seagreen,seashell,sienna,silver,skyblue,slateblue,slategray,snow,springgreen,steelblue,tan,teal,thistle,tomato,transparent,turquoise,violet,wheat,white,whitesmoke,yellow,yellowgreen".split(","), "all-scroll,col-resize,crosshair,default,e-resize,hand,help,move,n-resize,ne-resize,no-drop,not-allowed,nw-resize,pointer,progress,row-resize,s-resize,se-resize,sw-resize,text,vertical-text,w-resize,wait".split(","),"armenian,decimal,decimal-leading-zero,disc,georgian,lower-alpha,lower-greek,lower-latin,lower-roman,square,upper-alpha,upper-latin,upper-roman".split(","),"100,200,300,400,500,600,700,800,900,bold,bolder,lighter".split(","),"block-level,inline-level,table-caption,table-cell,table-column,table-column-group,table-footer-group,table-header-group,table-row,table-row-group".split(","), "condensed,expanded,extra-condensed,extra-expanded,narrower,semi-condensed,semi-expanded,ultra-condensed,ultra-expanded,wider".split(","),"inherit,inline,inline-block,inline-box,inline-flex,inline-grid,inline-list-item,inline-stack,inline-table,run-in".split(","),"behind,center-left,center-right,far-left,far-right,left-side,leftwards,right-side,rightwards".split(","),"large,larger,small,smaller,x-large,x-small,xx-large,xx-small".split(","),"dashed,dotted,double,groove,outset,ridge,solid".split(","), @@ -23,7 +24,7 @@ position:{cssPropBits:0,cssLitGroup:[J[23]],cssFns:[]},quotes:{cssPropBits:8,css cssLitGroup:[J[14],J[69]],cssFns:[]},stress:"border-bottom-left-radius","table-layout":{cssPropBits:0,cssLitGroup:[J[52],J[61]],cssFns:[]},"text-align":{cssPropBits:0,cssLitGroup:[J[42],J[56],J[66]],cssFns:[]},"text-decoration":{cssPropBits:0,cssLitGroup:[J[19],J[71]],cssFns:[]},"text-indent":"border-bottom-left-radius","text-overflow":{cssPropBits:8,cssLitGroup:[J[33]],cssFns:[]},"text-shadow":"box-shadow","text-transform":{cssPropBits:0,cssLitGroup:[J[26],J[71]],cssFns:[]},"text-wrap":{cssPropBits:0, cssLitGroup:[J[46],J[71],J[72]],cssFns:[]},top:"bottom",transform:{cssPropBits:0,cssLitGroup:[J[71]],cssFns:"matrix(),perspective(),rotate(),rotate3d(),rotatex(),rotatey(),rotatez(),scale(),scale3d(),scalex(),scaley(),scalez(),skew(),skewx(),skewy(),translate(),translate3d(),translatex(),translatey(),translatez()".split(",")},"transform-origin":"perspective-origin","transform-style":{cssPropBits:0,cssLitGroup:[J[37]],cssFns:[]},transition:{cssPropBits:1029,cssLitGroup:[J[10],J[48],J[50],J[71]],cssFns:["cubic-bezier()", "steps()"]},"transition-delay":"animation-delay","transition-duration":"animation-delay","transition-property":{cssPropBits:1024,cssLitGroup:[J[48],J[50]],cssFns:[]},"transition-timing-function":"animation-timing-function","unicode-bidi":{cssPropBits:0,cssLitGroup:[J[30],J[72]],cssFns:[]},"vertical-align":{cssPropBits:5,cssLitGroup:[J[12],J[31]],cssFns:[]},visibility:"backface-visibility","voice-family":{cssPropBits:8,cssLitGroup:[J[27],J[48]],cssFns:[]},volume:{cssPropBits:1,cssLitGroup:[J[17],J[69]], -cssFns:[]},"white-space":{cssPropBits:0,cssLitGroup:[J[22],J[72]],cssFns:[]},width:"min-height","word-break":{cssPropBits:0,cssLitGroup:[J[32],J[72]],cssFns:[]},"word-spacing":"letter-spacing","word-wrap":"overflow-wrap","z-index":"bottom",zoom:"line-height","cubic-bezier()":"animation-delay","steps()":{cssPropBits:5,cssLitGroup:[J[36],J[48]],cssFns:[]},"image()":{cssPropBits:18,cssLitGroup:[J[0],J[48]],cssFns:["rgb()","rgba()"]},"linear-gradient()":{cssPropBits:7,cssLitGroup:[J[0],J[31],J[42],J[48], +cssFns:[]},"white-space":{cssPropBits:0,cssLitGroup:[J[22],J[72]],cssFns:[]},width:"min-height","word-break":{cssPropBits:0,cssLitGroup:[J[32],J[72],J[55]],cssFns:[]},"word-spacing":"letter-spacing","word-wrap":"overflow-wrap","z-index":"bottom",zoom:"line-height","cubic-bezier()":"animation-delay","steps()":{cssPropBits:5,cssLitGroup:[J[36],J[48]],cssFns:[]},"image()":{cssPropBits:18,cssLitGroup:[J[0],J[48]],cssFns:["rgb()","rgba()"]},"linear-gradient()":{cssPropBits:7,cssLitGroup:[J[0],J[31],J[42],J[48], J[79]],cssFns:["rgb()","rgba()"]},"radial-gradient()":{cssPropBits:7,cssLitGroup:[J[0],J[11],J[31],J[42],J[48],J[56],J[57]],cssFns:["rgb()","rgba()"]},"repeating-linear-gradient()":"linear-gradient()","repeating-radial-gradient()":"radial-gradient()","rgb()":{cssPropBits:1,cssLitGroup:[J[48]],cssFns:[]},"rgba()":"rgb()","rect()":{cssPropBits:5,cssLitGroup:[J[48],J[52]],cssFns:[]},"alpha()":{cssPropBits:1,cssLitGroup:[J[28]],cssFns:[]},"matrix()":"animation-delay","perspective()":"border-bottom-left-radius", "rotate()":"border-bottom-left-radius","rotate3d()":"animation-delay","rotatex()":"border-bottom-left-radius","rotatey()":"border-bottom-left-radius","rotatez()":"border-bottom-left-radius","scale()":"animation-delay","scale3d()":"animation-delay","scalex()":"border-bottom-left-radius","scaley()":"border-bottom-left-radius","scalez()":"border-bottom-left-radius","skew()":"animation-delay","skewx()":"border-bottom-left-radius","skewy()":"border-bottom-left-radius","translate()":"animation-delay","translate3d()":"animation-delay", "translatex()":"border-bottom-left-radius","translatey()":"border-bottom-left-radius","translatez()":"border-bottom-left-radius"},O;for(O in L)"string"===typeof L[O]&&Object.hasOwnProperty.call(L,O)&&(L[O]=L[L[O]]);"undefined"!==typeof window&&(window.cssSchema=L);var U,X; diff --git a/src/main/webapp/js/viewer.min.js b/src/main/webapp/js/viewer.min.js index 83dfccf58..fd8b55c2b 100644 --- a/src/main/webapp/js/viewer.min.js +++ b/src/main/webapp/js/viewer.min.js @@ -2,6 +2,7 @@ window.STENCIL_PATH=window.STENCIL_PATH||"https://www.draw.io/stencils";window.S //fgnass.github.com/spin.js#v2.0.0 !function(a,b){"object"==typeof exports?module.exports=b():"function"==typeof define&&define.amd?define(b):a.Spinner=b()}(this,function(){"use strict";function a(a,b){var c,d=document.createElement(a||"div");for(c in b)d[c]=b[c];return d}function b(a){for(var b=1,c=arguments.length;c>b;b++)a.appendChild(arguments[b]);return a}function c(a,b,c,d){var e=["opacity",b,~~(100*a),c,d].join("-"),f=.01+c/d*100,g=Math.max(1-(1-a)/b*(100-f),a),h=j.substring(0,j.indexOf("Animation")).toLowerCase(),i=h&&"-"+h+"-"||"";return l[e]||(m.insertRule("@"+i+"keyframes "+e+"{0%{opacity:"+g+"}"+f+"%{opacity:"+a+"}"+(f+.01)+"%{opacity:1}"+(f+b)%100+"%{opacity:"+a+"}100%{opacity:"+g+"}}",m.cssRules.length),l[e]=1),e}function d(a,b){var c,d,e=a.style;for(b=b.charAt(0).toUpperCase()+b.slice(1),d=0;d<k.length;d++)if(c=k[d]+b,void 0!==e[c])return c;return void 0!==e[b]?b:void 0}function e(a,b){for(var c in b)a.style[d(a,c)||c]=b[c];return a}function f(a){for(var b=1;b<arguments.length;b++){var c=arguments[b];for(var d in c)void 0===a[d]&&(a[d]=c[d])}return a}function g(a,b){return"string"==typeof a?a:a[b%a.length]}function h(a){this.opts=f(a||{},h.defaults,n)}function i(){function c(b,c){return a("<"+b+' xmlns="urn:schemas-microsoft.com:vml" class="spin-vml">',c)}m.addRule(".spin-vml","behavior:url(#default#VML)"),h.prototype.lines=function(a,d){function f(){return e(c("group",{coordsize:k+" "+k,coordorigin:-j+" "+-j}),{width:k,height:k})}function h(a,h,i){b(m,b(e(f(),{rotation:360/d.lines*a+"deg",left:~~h}),b(e(c("roundrect",{arcsize:d.corners}),{width:j,height:d.width,left:d.radius,top:-d.width>>1,filter:i}),c("fill",{color:g(d.color,a),opacity:d.opacity}),c("stroke",{opacity:0}))))}var i,j=d.length+d.width,k=2*j,l=2*-(d.width+d.length)+"px",m=e(f(),{position:"absolute",top:l,left:l});if(d.shadow)for(i=1;i<=d.lines;i++)h(i,-2,"progid:DXImageTransform.Microsoft.Blur(pixelradius=2,makeshadow=1,shadowopacity=.3)");for(i=1;i<=d.lines;i++)h(i);return b(a,m)},h.prototype.opacity=function(a,b,c,d){var e=a.firstChild;d=d.shadow&&d.lines||0,e&&b+d<e.childNodes.length&&(e=e.childNodes[b+d],e=e&&e.firstChild,e=e&&e.firstChild,e&&(e.opacity=c))}}var j,k=["webkit","Moz","ms","O"],l={},m=function(){var c=a("style",{type:"text/css"});return b(document.getElementsByTagName("head")[0],c),c.sheet||c.styleSheet}(),n={lines:12,length:7,width:5,radius:10,rotate:0,corners:1,color:"#000",direction:1,speed:1,trail:100,opacity:.25,fps:20,zIndex:2e9,className:"spinner",top:"50%",left:"50%",position:"absolute"};h.defaults={},f(h.prototype,{spin:function(b){this.stop();{var c=this,d=c.opts,f=c.el=e(a(0,{className:d.className}),{position:d.position,width:0,zIndex:d.zIndex});d.radius+d.length+d.width}if(b&&(b.insertBefore(f,b.firstChild||null),e(f,{left:d.left,top:d.top})),f.setAttribute("role","progressbar"),c.lines(f,c.opts),!j){var g,h=0,i=(d.lines-1)*(1-d.direction)/2,k=d.fps,l=k/d.speed,m=(1-d.opacity)/(l*d.trail/100),n=l/d.lines;!function o(){h++;for(var a=0;a<d.lines;a++)g=Math.max(1-(h+(d.lines-a)*n)%l*m,d.opacity),c.opacity(f,a*d.direction+i,g,d);c.timeout=c.el&&setTimeout(o,~~(1e3/k))}()}return c},stop:function(){var a=this.el;return a&&(clearTimeout(this.timeout),a.parentNode&&a.parentNode.removeChild(a),this.el=void 0),this},lines:function(d,f){function h(b,c){return e(a(),{position:"absolute",width:f.length+f.width+"px",height:f.width+"px",background:b,boxShadow:c,transformOrigin:"left",transform:"rotate("+~~(360/f.lines*k+f.rotate)+"deg) translate("+f.radius+"px,0)",borderRadius:(f.corners*f.width>>1)+"px"})}for(var i,k=0,l=(f.lines-1)*(1-f.direction)/2;k<f.lines;k++)i=e(a(),{position:"absolute",top:1+~(f.width/2)+"px",transform:f.hwaccel?"translate3d(0,0,0)":"",opacity:f.opacity,animation:j&&c(f.opacity,f.trail,l+k*f.direction,f.lines)+" "+1/f.speed+"s linear infinite"}),f.shadow&&b(i,e(h("#000","0 0 4px #000"),{top:"2px"})),b(d,b(i,h(g(f.color,k),"0 0 1px rgba(0,0,0,.1)")));return d},opacity:function(a,b,c){b<a.childNodes.length&&(a.childNodes[b].style.opacity=c)}});var o=e(a("group"),{behavior:"url(#default#VML)"});return!d(o,"transform")&&o.adj?i():j=d(o,"animation"),h}); // NOTE: Modified to support data URIs for images, ie. data:image/* +// Modified to allow "word-break: break-word" in styles. It is done by adding "break-word" which is at index 55 of J array J[55] to "cssLitGroup" of "word-break" (function(){var c=void 0,n=!0,s=null,C=!1,J=["aliceblue,antiquewhite,aqua,aquamarine,azure,beige,bisque,black,blanchedalmond,blue,blueviolet,brown,burlywood,cadetblue,chartreuse,chocolate,coral,cornflowerblue,cornsilk,crimson,cyan,darkblue,darkcyan,darkgoldenrod,darkgray,darkgreen,darkkhaki,darkmagenta,darkolivegreen,darkorange,darkorchid,darkred,darksalmon,darkseagreen,darkslateblue,darkslategray,darkturquoise,darkviolet,deeppink,deepskyblue,dimgray,dodgerblue,firebrick,floralwhite,forestgreen,fuchsia,gainsboro,ghostwhite,gold,goldenrod,gray,green,greenyellow,honeydew,hotpink,indianred,indigo,ivory,khaki,lavender,lavenderblush,lawngreen,lemonchiffon,lightblue,lightcoral,lightcyan,lightgoldenrodyellow,lightgreen,lightgrey,lightpink,lightsalmon,lightseagreen,lightskyblue,lightslategray,lightsteelblue,lightyellow,lime,limegreen,linen,magenta,maroon,mediumaquamarine,mediumblue,mediumorchid,mediumpurple,mediumseagreen,mediumslateblue,mediumspringgreen,mediumturquoise,mediumvioletred,midnightblue,mintcream,mistyrose,moccasin,navajowhite,navy,oldlace,olive,olivedrab,orange,orangered,orchid,palegoldenrod,palegreen,paleturquoise,palevioletred,papayawhip,peachpuff,peru,pink,plum,powderblue,purple,red,rosybrown,royalblue,saddlebrown,salmon,sandybrown,seagreen,seashell,sienna,silver,skyblue,slateblue,slategray,snow,springgreen,steelblue,tan,teal,thistle,tomato,transparent,turquoise,violet,wheat,white,whitesmoke,yellow,yellowgreen".split(","), "all-scroll,col-resize,crosshair,default,e-resize,hand,help,move,n-resize,ne-resize,no-drop,not-allowed,nw-resize,pointer,progress,row-resize,s-resize,se-resize,sw-resize,text,vertical-text,w-resize,wait".split(","),"armenian,decimal,decimal-leading-zero,disc,georgian,lower-alpha,lower-greek,lower-latin,lower-roman,square,upper-alpha,upper-latin,upper-roman".split(","),"100,200,300,400,500,600,700,800,900,bold,bolder,lighter".split(","),"block-level,inline-level,table-caption,table-cell,table-column,table-column-group,table-footer-group,table-header-group,table-row,table-row-group".split(","), "condensed,expanded,extra-condensed,extra-expanded,narrower,semi-condensed,semi-expanded,ultra-condensed,ultra-expanded,wider".split(","),"inherit,inline,inline-block,inline-box,inline-flex,inline-grid,inline-list-item,inline-stack,inline-table,run-in".split(","),"behind,center-left,center-right,far-left,far-right,left-side,leftwards,right-side,rightwards".split(","),"large,larger,small,smaller,x-large,x-small,xx-large,xx-small".split(","),"dashed,dotted,double,groove,outset,ridge,solid".split(","), @@ -26,7 +27,7 @@ position:{cssPropBits:0,cssLitGroup:[J[23]],cssFns:[]},quotes:{cssPropBits:8,css cssLitGroup:[J[14],J[69]],cssFns:[]},stress:"border-bottom-left-radius","table-layout":{cssPropBits:0,cssLitGroup:[J[52],J[61]],cssFns:[]},"text-align":{cssPropBits:0,cssLitGroup:[J[42],J[56],J[66]],cssFns:[]},"text-decoration":{cssPropBits:0,cssLitGroup:[J[19],J[71]],cssFns:[]},"text-indent":"border-bottom-left-radius","text-overflow":{cssPropBits:8,cssLitGroup:[J[33]],cssFns:[]},"text-shadow":"box-shadow","text-transform":{cssPropBits:0,cssLitGroup:[J[26],J[71]],cssFns:[]},"text-wrap":{cssPropBits:0, cssLitGroup:[J[46],J[71],J[72]],cssFns:[]},top:"bottom",transform:{cssPropBits:0,cssLitGroup:[J[71]],cssFns:"matrix(),perspective(),rotate(),rotate3d(),rotatex(),rotatey(),rotatez(),scale(),scale3d(),scalex(),scaley(),scalez(),skew(),skewx(),skewy(),translate(),translate3d(),translatex(),translatey(),translatez()".split(",")},"transform-origin":"perspective-origin","transform-style":{cssPropBits:0,cssLitGroup:[J[37]],cssFns:[]},transition:{cssPropBits:1029,cssLitGroup:[J[10],J[48],J[50],J[71]],cssFns:["cubic-bezier()", "steps()"]},"transition-delay":"animation-delay","transition-duration":"animation-delay","transition-property":{cssPropBits:1024,cssLitGroup:[J[48],J[50]],cssFns:[]},"transition-timing-function":"animation-timing-function","unicode-bidi":{cssPropBits:0,cssLitGroup:[J[30],J[72]],cssFns:[]},"vertical-align":{cssPropBits:5,cssLitGroup:[J[12],J[31]],cssFns:[]},visibility:"backface-visibility","voice-family":{cssPropBits:8,cssLitGroup:[J[27],J[48]],cssFns:[]},volume:{cssPropBits:1,cssLitGroup:[J[17],J[69]], -cssFns:[]},"white-space":{cssPropBits:0,cssLitGroup:[J[22],J[72]],cssFns:[]},width:"min-height","word-break":{cssPropBits:0,cssLitGroup:[J[32],J[72]],cssFns:[]},"word-spacing":"letter-spacing","word-wrap":"overflow-wrap","z-index":"bottom",zoom:"line-height","cubic-bezier()":"animation-delay","steps()":{cssPropBits:5,cssLitGroup:[J[36],J[48]],cssFns:[]},"image()":{cssPropBits:18,cssLitGroup:[J[0],J[48]],cssFns:["rgb()","rgba()"]},"linear-gradient()":{cssPropBits:7,cssLitGroup:[J[0],J[31],J[42],J[48], +cssFns:[]},"white-space":{cssPropBits:0,cssLitGroup:[J[22],J[72]],cssFns:[]},width:"min-height","word-break":{cssPropBits:0,cssLitGroup:[J[32],J[72],J[55]],cssFns:[]},"word-spacing":"letter-spacing","word-wrap":"overflow-wrap","z-index":"bottom",zoom:"line-height","cubic-bezier()":"animation-delay","steps()":{cssPropBits:5,cssLitGroup:[J[36],J[48]],cssFns:[]},"image()":{cssPropBits:18,cssLitGroup:[J[0],J[48]],cssFns:["rgb()","rgba()"]},"linear-gradient()":{cssPropBits:7,cssLitGroup:[J[0],J[31],J[42],J[48], J[79]],cssFns:["rgb()","rgba()"]},"radial-gradient()":{cssPropBits:7,cssLitGroup:[J[0],J[11],J[31],J[42],J[48],J[56],J[57]],cssFns:["rgb()","rgba()"]},"repeating-linear-gradient()":"linear-gradient()","repeating-radial-gradient()":"radial-gradient()","rgb()":{cssPropBits:1,cssLitGroup:[J[48]],cssFns:[]},"rgba()":"rgb()","rect()":{cssPropBits:5,cssLitGroup:[J[48],J[52]],cssFns:[]},"alpha()":{cssPropBits:1,cssLitGroup:[J[28]],cssFns:[]},"matrix()":"animation-delay","perspective()":"border-bottom-left-radius", "rotate()":"border-bottom-left-radius","rotate3d()":"animation-delay","rotatex()":"border-bottom-left-radius","rotatey()":"border-bottom-left-radius","rotatez()":"border-bottom-left-radius","scale()":"animation-delay","scale3d()":"animation-delay","scalex()":"border-bottom-left-radius","scaley()":"border-bottom-left-radius","scalez()":"border-bottom-left-radius","skew()":"animation-delay","skewx()":"border-bottom-left-radius","skewy()":"border-bottom-left-radius","translate()":"animation-delay","translate3d()":"animation-delay", "translatex()":"border-bottom-left-radius","translatey()":"border-bottom-left-radius","translatez()":"border-bottom-left-radius"},O;for(O in L)"string"===typeof L[O]&&Object.hasOwnProperty.call(L,O)&&(L[O]=L[L[O]]);"undefined"!==typeof window&&(window.cssSchema=L);var U,X; @@ -664,7 +665,7 @@ mxSwimlane.prototype.paintDivider=function(a,b,c,d,e,f,g){g||a.setShadow(!1);a.b mxSwimlane.prototype.getImageBounds=function(a,b,c,d){return this.isHorizontal()?new mxRectangle(a+c-this.imageSize,b,this.imageSize,this.imageSize):new mxRectangle(a,b,this.imageSize,this.imageSize)};function mxGraphLayout(a){this.graph=a}mxGraphLayout.prototype.graph=null;mxGraphLayout.prototype.useBoundingBox=!0;mxGraphLayout.prototype.parent=null;mxGraphLayout.prototype.moveCell=function(a,b,c){};mxGraphLayout.prototype.execute=function(a){};mxGraphLayout.prototype.getGraph=function(){return this.graph}; mxGraphLayout.prototype.getConstraint=function(a,b,c,d){c=this.graph.view.getState(b);b=null!=c?c.style:this.graph.getCellStyle(b);return null!=b?b[a]:null}; mxGraphLayout.traverse=function(a,b,c,d,e){if(null!=c&&null!=a&&(b=null!=b?b:!0,e=e||new mxDictionary,!e.get(a)&&(e.put(a,!0),d=c(a,d),null==d||d))&&(d=this.graph.model.getEdgeCount(a),0<d))for(var f=0;f<d;f++){var g=this.graph.model.getEdgeAt(a,f),k=this.graph.model.getTerminal(g,!0)==a;if(!b||k)k=this.graph.view.getVisibleTerminal(g,!k),this.traverse(k,b,c,g,e)}}; -mxGraphLayout.prototype.isAncestor=function(a,b,c){if(!c)return this.graph.model.getParent(cell)==a;if(b==a)return!1;for(;null!=b&&b!=a;)b=this.graph.model.getParent(b);return b==a};mxGraphLayout.prototype.isVertexMovable=function(a){return this.graph.isCellMovable(a)};mxGraphLayout.prototype.isVertexIgnored=function(a){return!this.graph.getModel().isVertex(a)||!this.graph.isCellVisible(a)}; +mxGraphLayout.prototype.isAncestor=function(a,b,c){if(!c)return this.graph.model.getParent(b)==a;if(b==a)return!1;for(;null!=b&&b!=a;)b=this.graph.model.getParent(b);return b==a};mxGraphLayout.prototype.isVertexMovable=function(a){return this.graph.isCellMovable(a)};mxGraphLayout.prototype.isVertexIgnored=function(a){return!this.graph.getModel().isVertex(a)||!this.graph.isCellVisible(a)}; mxGraphLayout.prototype.isEdgeIgnored=function(a){var b=this.graph.getModel();return!b.isEdge(a)||!this.graph.isCellVisible(a)||null==b.getTerminal(a,!0)||null==b.getTerminal(a,!1)};mxGraphLayout.prototype.setEdgeStyleEnabled=function(a,b){this.graph.setCellStyles(mxConstants.STYLE_NOEDGESTYLE,b?"0":"1",[a])};mxGraphLayout.prototype.setOrthogonalEdge=function(a,b){this.graph.setCellStyles(mxConstants.STYLE_ORTHOGONAL,b?"1":"0",[a])}; mxGraphLayout.prototype.getParentOffset=function(a){var b=new mxPoint;if(null!=a&&a!=this.parent){var c=this.graph.getModel();if(c.isAncestor(this.parent,a))for(var d=c.getGeometry(a);a!=this.parent;)b.x+=d.x,b.y+=d.y,a=c.getParent(a),d=c.getGeometry(a)}return b}; mxGraphLayout.prototype.setEdgePoints=function(a,b){if(null!=a){var c=this.graph.model,d=c.getGeometry(a);null==d?(d=new mxGeometry,d.setRelative(!0)):d=d.clone();if(null!=this.parent&&null!=b)for(var e=c.getParent(a),e=this.getParentOffset(e),f=0;f<b.length;f++)b[f].x-=e.x,b[f].y-=e.y;d.points=b;c.setGeometry(a,d)}}; @@ -1955,9 +1956,9 @@ x.style.color=.5>.213*this.rgb[0]+.715*this.rgb[1]+.072*this.rgb[2]?"#FFF":"#000 this.rgb[1]=b;var e=null===c?this.rgb[2]:this.rgb[2]=c,f=Math.min(Math.min(a,b),e);c=Math.max(Math.max(a,b),e);var g=c-f;0===g?a=[null,0,c]:(a=a===f?3+(e-b)/g:b===f?5+(a-e)/g:1+(b-a)/g,a=[6===a?0:a,g/c,c]);null!==a[0]&&(this.hsv[0]=a[0]);0!==a[2]&&(this.hsv[1]=a[1]);this.hsv[2]=a[2];this.exportColor(d)};this.fromString=function(a,b){var c=a.match(/^\W*([0-9A-F]{3}([0-9A-F]{3})?)\W*$/i);return c?(6===c[1].length?this.fromRGB(parseInt(c[1].substr(0,2),16)/255,parseInt(c[1].substr(2,2),16)/255,parseInt(c[1].substr(4, 2),16)/255,b):this.fromRGB(parseInt(c[1].charAt(0)+c[1].charAt(0),16)/255,parseInt(c[1].charAt(1)+c[1].charAt(1),16)/255,parseInt(c[1].charAt(2)+c[1].charAt(2),16)/255,b),!0):!1};this.toString=function(){return(256|Math.round(255*this.rgb[0])).toString(16).substr(1)+(256|Math.round(255*this.rgb[1])).toString(16).substr(1)+(256|Math.round(255*this.rgb[2])).toString(16).substr(1)};var r=this,t="hvs"===this.pickerMode.toLowerCase()?1:0,u=jscolor.fetchElement(this.valueElement),x=jscolor.fetchElement(this.styleElement), y=!1,A=!1,z=1,v=2,B=4,C=8;u&&(q=function(){r.fromString(u.value,z);p()},jscolor.addEvent(u,"keyup",q),jscolor.addEvent(u,"input",q),jscolor.addEvent(u,"blur",l),u.setAttribute("autocomplete","off"));x&&(x.jscStyle={backgroundImage:x.style.backgroundImage,backgroundColor:x.style.backgroundColor,color:x.style.color});switch(t){case 0:jscolor.requireImage("hs.png");break;case 1:jscolor.requireImage("hv.png")}this.importColor()}};jscolor.install(); -Editor=function(a,d,e,b,h){mxEventSource.call(this);this.chromeless=null!=a?a:this.chromeless;this.initStencilRegistry();this.graph=b||this.createGraph(d,e);this.editable=null!=h?h:!a;this.undoManager=this.createUndoManager();this.status="";this.getOrCreateFilename=function(){return this.filename||mxResources.get("drawing",[Editor.pageCounter])+".xml"};this.getFilename=function(){return this.filename};this.setStatus=function(a){this.status=a;this.fireEvent(new mxEventObject("statusChanged"))};this.getStatus= -function(){return this.status};this.graphChangeListener=function(a,b){var d=null!=b?b.getProperty("edit"):null;null!=d&&d.ignoreEdit||this.setModified(!0)};this.graph.getModel().addListener(mxEvent.CHANGE,mxUtils.bind(this,function(){this.graphChangeListener.apply(this,arguments)}));this.graph.resetViewOnRootChange=!1;this.init()};Editor.pageCounter=0; -(function(){try{for(var a=window;null!=a.opener&&"undefined"!==typeof a.opener.Editor&&!isNaN(a.opener.Editor.pageCounter)&&a.opener!=a;)a=a.opener;null!=a&&(a.Editor.pageCounter++,Editor.pageCounter=a.Editor.pageCounter)}catch(d){}})();Editor.useLocalStorage="undefined"!=typeof Storage&&mxClient.IS_IOS; +Editor=function(a,b,e,d,k){mxEventSource.call(this);this.chromeless=null!=a?a:this.chromeless;this.initStencilRegistry();this.graph=d||this.createGraph(b,e);this.editable=null!=k?k:!a;this.undoManager=this.createUndoManager();this.status="";this.getOrCreateFilename=function(){return this.filename||mxResources.get("drawing",[Editor.pageCounter])+".xml"};this.getFilename=function(){return this.filename};this.setStatus=function(a){this.status=a;this.fireEvent(new mxEventObject("statusChanged"))};this.getStatus= +function(){return this.status};this.graphChangeListener=function(a,d){var b=null!=d?d.getProperty("edit"):null;null!=b&&b.ignoreEdit||this.setModified(!0)};this.graph.getModel().addListener(mxEvent.CHANGE,mxUtils.bind(this,function(){this.graphChangeListener.apply(this,arguments)}));this.graph.resetViewOnRootChange=!1;this.init()};Editor.pageCounter=0; +(function(){try{for(var a=window;null!=a.opener&&"undefined"!==typeof a.opener.Editor&&!isNaN(a.opener.Editor.pageCounter)&&a.opener!=a;)a=a.opener;null!=a&&(a.Editor.pageCounter++,Editor.pageCounter=a.Editor.pageCounter)}catch(b){}})();Editor.useLocalStorage="undefined"!=typeof Storage&&mxClient.IS_IOS; Editor.helpImage=mxClient.IS_SVG?"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAXVBMVEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC5BxTwAAAAH3RSTlMAlUF8boNQIE0LBgOgkGlHNSwqFIx/dGVUOjApmV9ezNACSAAAAIVJREFUGNNtjNsOgzAMQ5NeoVcKDAZs+//PXLKI8YKlWvaRU7jXuFpb9qsbdK05XILUiE8JHQox1Pv3OgFUzf1AGqWqUg+QBwLF0YAeegBlCNgRWOpB5vUfTCmeoHQ/wNdy0jLH/cM+b+wLTw4n/7ACEmHVVy8h6qy8V7MNcGowWpsNbvUFcGUEdSi1s/oAAAAASUVORK5CYII=":IMAGE_PATH+ "/help.png"; Editor.checkmarkImage=mxClient.IS_SVG?"data:image/gif;base64,R0lGODlhFQAVAMQfAGxsbHx8fIqKioaGhvb29nJycvr6+sDAwJqamltbW5OTk+np6YGBgeTk5Ly8vJiYmP39/fLy8qWlpa6ursjIyOLi4vj4+N/f3+3t7fT09LCwsHZ2dubm5r6+vmZmZv///yH/C1hNUCBEYXRhWE1QPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS4wLWMwNjAgNjEuMTM0Nzc3LCAyMDEwLzAyLzEyLTE3OjMyOjAwICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdFJlZj0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlUmVmIyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M1IFdpbmRvd3MiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6OEY4NTZERTQ5QUFBMTFFMUE5MTVDOTM5MUZGMTE3M0QiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6OEY4NTZERTU5QUFBMTFFMUE5MTVDOTM5MUZGMTE3M0QiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo4Rjg1NkRFMjlBQUExMUUxQTkxNUM5MzkxRkYxMTczRCIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo4Rjg1NkRFMzlBQUExMUUxQTkxNUM5MzkxRkYxMTczRCIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PgH//v38+/r5+Pf29fTz8vHw7+7t7Ovq6ejn5uXk4+Lh4N/e3dzb2tnY19bV1NPS0dDPzs3My8rJyMfGxcTDwsHAv769vLu6ubi3trW0s7KxsK+urayrqqmop6alpKOioaCfnp2cm5qZmJeWlZSTkpGQj46NjIuKiYiHhoWEg4KBgH9+fXx7enl4d3Z1dHNycXBvbm1sa2ppaGdmZWRjYmFgX15dXFtaWVhXVlVUU1JRUE9OTUxLSklIR0ZFRENCQUA/Pj08Ozo5ODc2NTQzMjEwLy4tLCsqKSgnJiUkIyIhIB8eHRwbGhkYFxYVFBMSERAPDg0MCwoJCAcGBQQDAgEAACH5BAEAAB8ALAAAAAAVABUAAAVI4CeOZGmeaKqubKtylktSgCOLRyLd3+QJEJnh4VHcMoOfYQXQLBcBD4PA6ngGlIInEHEhPOANRkaIFhq8SuHCE1Hb8Lh8LgsBADs=":IMAGE_PATH+ @@ -1976,26 +1977,26 @@ Editor.previousLargeImage="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAA Editor.ctrlKey=mxClient.IS_MAC?"Cmd":"Ctrl";Editor.popupsAllowed=!0;mxUtils.extend(Editor,mxEventSource);Editor.prototype.originalNoForeignObject=mxClient.NO_FO;Editor.prototype.transparentImage=mxClient.IS_SVG?"data:image/gif;base64,R0lGODlhMAAwAIAAAP///wAAACH5BAEAAAAALAAAAAAwADAAAAIxhI+py+0Po5y02ouz3rz7D4biSJbmiabqyrbuC8fyTNf2jef6zvf+DwwKh8Si8egpAAA7":IMAGE_PATH+"/transparent.gif";Editor.prototype.extendCanvas=!0;Editor.prototype.chromeless=!1;Editor.prototype.cancelFirst=!0; Editor.prototype.enabled=!0;Editor.prototype.filename=null;Editor.prototype.modified=!1;Editor.prototype.autosave=!0;Editor.prototype.initialTopSpacing=0;Editor.prototype.appName=document.title;Editor.prototype.editBlankUrl=window.location.protocol+"//"+window.location.host+"/";Editor.prototype.init=function(){};Editor.prototype.isChromelessView=function(){return this.chromeless};Editor.prototype.setAutosave=function(a){this.autosave=a;this.fireEvent(new mxEventObject("autosaveChanged"))}; Editor.prototype.getEditBlankUrl=function(a){return this.editBlankUrl+a}; -Editor.prototype.editAsNew=function(a,d){var e=null!=d?"?title="+encodeURIComponent(d):"";null!=urlParams.ui&&(e+=(0<e.length?"&":"?")+"ui="+urlParams.ui);null==this.editorWindow||this.editorWindow.closed?"undefined"!==typeof window.postMessage&&(null==document.documentMode||10<=document.documentMode)?(null==this.editorWindow&&mxEvent.addListener(window,"message",mxUtils.bind(this,function(b){"ready"==b.data&&b.source==this.editorWindow&&this.editorWindow.postMessage(a,"*")})),this.editorWindow=this.graph.openLink(this.getEditBlankUrl(e+ -(0<e.length?"&":"?")+"client=1"),null,!0)):this.editorWindow=this.graph.openLink(this.getEditBlankUrl(e)+"#R"+encodeURIComponent(a)):this.editorWindow.focus()};Editor.prototype.createGraph=function(a,d){var e=new Graph(null,d,null,null,a);e.transparentBackground=!1;this.chromeless||(e.isBlankLink=function(a){return!this.isExternalProtocol(a)});return e}; +Editor.prototype.editAsNew=function(a,b){var e=null!=b?"?title="+encodeURIComponent(b):"";null!=urlParams.ui&&(e+=(0<e.length?"&":"?")+"ui="+urlParams.ui);null==this.editorWindow||this.editorWindow.closed?"undefined"!==typeof window.postMessage&&(null==document.documentMode||10<=document.documentMode)?(null==this.editorWindow&&mxEvent.addListener(window,"message",mxUtils.bind(this,function(d){"ready"==d.data&&d.source==this.editorWindow&&this.editorWindow.postMessage(a,"*")})),this.editorWindow=this.graph.openLink(this.getEditBlankUrl(e+ +(0<e.length?"&":"?")+"client=1"),null,!0)):this.editorWindow=this.graph.openLink(this.getEditBlankUrl(e)+"#R"+encodeURIComponent(a)):this.editorWindow.focus()};Editor.prototype.createGraph=function(a,b){var e=new Graph(null,b,null,null,a);e.transparentBackground=!1;this.chromeless||(e.isBlankLink=function(a){return!this.isExternalProtocol(a)});return e}; Editor.prototype.resetGraph=function(){this.graph.gridEnabled=!this.isChromelessView()||"1"==urlParams.grid;this.graph.graphHandler.guidesEnabled=!0;this.graph.setTooltips(!0);this.graph.setConnectable(!0);this.graph.foldingEnabled=!0;this.graph.scrollbars=this.graph.defaultScrollbars;this.graph.pageVisible=this.graph.defaultPageVisible;this.graph.pageBreaksVisible=this.graph.pageVisible;this.graph.preferPageSize=this.graph.pageBreaksVisible;this.graph.background=this.graph.defaultGraphBackground; this.graph.pageScale=mxGraph.prototype.pageScale;this.graph.pageFormat=mxGraph.prototype.pageFormat;this.graph.currentScale=1;this.graph.currentTranslate.x=0;this.graph.currentTranslate.y=0;this.updateGraphComponents();this.graph.view.setScale(1)}; Editor.prototype.readGraphState=function(a){this.graph.gridEnabled="0"!=a.getAttribute("grid")&&(!this.isChromelessView()||"1"==urlParams.grid);this.graph.gridSize=parseFloat(a.getAttribute("gridSize"))||mxGraph.prototype.gridSize;this.graph.graphHandler.guidesEnabled="0"!=a.getAttribute("guides");this.graph.setTooltips("0"!=a.getAttribute("tooltips"));this.graph.setConnectable("0"!=a.getAttribute("connect"));this.graph.connectionArrowsEnabled="0"!=a.getAttribute("arrows");this.graph.foldingEnabled= -"0"!=a.getAttribute("fold");this.isChromelessView()&&this.graph.foldingEnabled&&(this.graph.foldingEnabled="1"==urlParams.nav,this.graph.cellRenderer.forceControlClickHandler=this.graph.foldingEnabled);var d=parseFloat(a.getAttribute("pageScale"));!isNaN(d)&&0<d?this.graph.pageScale=d:this.graph.pageScale=mxGraph.prototype.pageScale;this.graph.isLightboxView()?this.graph.pageVisible=!1:(d=a.getAttribute("page"),this.graph.pageVisible=null!=d?"0"!=d:this.graph.defaultPageVisible);this.graph.pageBreaksVisible= -this.graph.pageVisible;this.graph.preferPageSize=this.graph.pageBreaksVisible;var d=parseFloat(a.getAttribute("pageWidth")),e=parseFloat(a.getAttribute("pageHeight"));isNaN(d)||isNaN(e)||(this.graph.pageFormat=new mxRectangle(0,0,d,e));a=a.getAttribute("background");this.graph.background=null!=a&&0<a.length?a:this.graph.defaultGraphBackground}; -Editor.prototype.setGraphXml=function(a){if(null!=a){var d=new mxCodec(a.ownerDocument);if("mxGraphModel"==a.nodeName){this.graph.model.beginUpdate();try{this.graph.model.clear(),this.graph.view.scale=1,this.readGraphState(a),this.updateGraphComponents(),d.decode(a,this.graph.getModel())}finally{this.graph.model.endUpdate()}this.fireEvent(new mxEventObject("resetGraphView"))}else if("root"==a.nodeName){this.resetGraph();var e=d.document.createElement("mxGraphModel");e.appendChild(a);d.decode(e,this.graph.getModel()); +"0"!=a.getAttribute("fold");this.isChromelessView()&&this.graph.foldingEnabled&&(this.graph.foldingEnabled="1"==urlParams.nav,this.graph.cellRenderer.forceControlClickHandler=this.graph.foldingEnabled);var b=parseFloat(a.getAttribute("pageScale"));!isNaN(b)&&0<b?this.graph.pageScale=b:this.graph.pageScale=mxGraph.prototype.pageScale;this.graph.isLightboxView()?this.graph.pageVisible=!1:(b=a.getAttribute("page"),this.graph.pageVisible=null!=b?"0"!=b:this.graph.defaultPageVisible);this.graph.pageBreaksVisible= +this.graph.pageVisible;this.graph.preferPageSize=this.graph.pageBreaksVisible;var b=parseFloat(a.getAttribute("pageWidth")),e=parseFloat(a.getAttribute("pageHeight"));isNaN(b)||isNaN(e)||(this.graph.pageFormat=new mxRectangle(0,0,b,e));a=a.getAttribute("background");this.graph.background=null!=a&&0<a.length?a:this.graph.defaultGraphBackground}; +Editor.prototype.setGraphXml=function(a){if(null!=a){var b=new mxCodec(a.ownerDocument);if("mxGraphModel"==a.nodeName){this.graph.model.beginUpdate();try{this.graph.model.clear(),this.graph.view.scale=1,this.readGraphState(a),this.updateGraphComponents(),b.decode(a,this.graph.getModel())}finally{this.graph.model.endUpdate()}this.fireEvent(new mxEventObject("resetGraphView"))}else if("root"==a.nodeName){this.resetGraph();var e=b.document.createElement("mxGraphModel");e.appendChild(a);b.decode(e,this.graph.getModel()); this.updateGraphComponents();this.fireEvent(new mxEventObject("resetGraphView"))}else throw{message:mxResources.get("cannotOpenFile"),node:a,toString:function(){return this.message}};}else this.resetGraph(),this.graph.model.clear(),this.fireEvent(new mxEventObject("resetGraphView"))}; Editor.prototype.getGraphXml=function(a){a=(null!=a?a:1)?(new mxCodec(mxUtils.createXmlDocument())).encode(this.graph.getModel()):this.graph.encodeCells(mxUtils.sortCells(this.graph.model.getTopmostCells(this.graph.getSelectionCells())));if(0!=this.graph.view.translate.x||0!=this.graph.view.translate.y)a.setAttribute("dx",Math.round(100*this.graph.view.translate.x)/100),a.setAttribute("dy",Math.round(100*this.graph.view.translate.y)/100);a.setAttribute("grid",this.graph.isGridEnabled()?"1":"0");a.setAttribute("gridSize", this.graph.gridSize);a.setAttribute("guides",this.graph.graphHandler.guidesEnabled?"1":"0");a.setAttribute("tooltips",this.graph.tooltipHandler.isEnabled()?"1":"0");a.setAttribute("connect",this.graph.connectionHandler.isEnabled()?"1":"0");a.setAttribute("arrows",this.graph.connectionArrowsEnabled?"1":"0");a.setAttribute("fold",this.graph.foldingEnabled?"1":"0");a.setAttribute("page",this.graph.pageVisible?"1":"0");a.setAttribute("pageScale",this.graph.pageScale);a.setAttribute("pageWidth",this.graph.pageFormat.width); a.setAttribute("pageHeight",this.graph.pageFormat.height);null!=this.graph.background&&a.setAttribute("background",this.graph.background);return a};Editor.prototype.updateGraphComponents=function(){var a=this.graph;null!=a.container&&(a.view.validateBackground(),a.container.style.overflow=a.scrollbars?"auto":"hidden",this.fireEvent(new mxEventObject("updateGraphComponents")))};Editor.prototype.setModified=function(a){this.modified=a};Editor.prototype.setFilename=function(a){this.filename=a}; -Editor.prototype.createUndoManager=function(){var a=this.graph,d=new mxUndoManager;this.undoListener=function(a,e){d.undoableEditHappened(e.getProperty("edit"))};var e=mxUtils.bind(this,function(a,d){this.undoListener.apply(this,arguments)});a.getModel().addListener(mxEvent.UNDO,e);a.getView().addListener(mxEvent.UNDO,e);e=function(b,d){for(var e=a.getSelectionCellsForChanges(d.getProperty("edit").changes),h=a.getModel(),q=[],u=0;u<e.length;u++)(h.isVertex(e[u])||h.isEdge(e[u]))&&null!=a.view.getState(e[u])&& -q.push(e[u]);a.setSelectionCells(q)};d.addListener(mxEvent.UNDO,e);d.addListener(mxEvent.REDO,e);return d};Editor.prototype.initStencilRegistry=function(){};Editor.prototype.destroy=function(){null!=this.graph&&(this.graph.destroy(),this.graph=null)};OpenFile=function(a){this.consumer=this.producer=null;this.done=a;this.args=null};OpenFile.prototype.setConsumer=function(a){this.consumer=a;this.execute()};OpenFile.prototype.setData=function(){this.args=arguments;this.execute()}; +Editor.prototype.createUndoManager=function(){var a=this.graph,b=new mxUndoManager;this.undoListener=function(a,e){b.undoableEditHappened(e.getProperty("edit"))};var e=mxUtils.bind(this,function(a,b){this.undoListener.apply(this,arguments)});a.getModel().addListener(mxEvent.UNDO,e);a.getView().addListener(mxEvent.UNDO,e);e=function(d,b){for(var e=a.getSelectionCellsForChanges(b.getProperty("edit").changes),k=a.getModel(),q=[],u=0;u<e.length;u++)(k.isVertex(e[u])||k.isEdge(e[u]))&&null!=a.view.getState(e[u])&& +q.push(e[u]);a.setSelectionCells(q)};b.addListener(mxEvent.UNDO,e);b.addListener(mxEvent.REDO,e);return b};Editor.prototype.initStencilRegistry=function(){};Editor.prototype.destroy=function(){null!=this.graph&&(this.graph.destroy(),this.graph=null)};OpenFile=function(a){this.consumer=this.producer=null;this.done=a;this.args=null};OpenFile.prototype.setConsumer=function(a){this.consumer=a;this.execute()};OpenFile.prototype.setData=function(){this.args=arguments;this.execute()}; OpenFile.prototype.error=function(a){this.cancel(!0);mxUtils.alert(a)};OpenFile.prototype.execute=function(){null!=this.consumer&&null!=this.args&&(this.cancel(!1),this.consumer.apply(this,this.args))};OpenFile.prototype.cancel=function(a){null!=this.done&&this.done(null!=a?a:!0)}; -function Dialog(a,d,e,b,h,m,p,q,u){var c=0;mxClient.IS_VML&&(null==document.documentMode||8>document.documentMode)&&(c=80);e+=c;b+=c;var f=e,g=b,k=0<document.documentElement.clientHeight?document.documentElement.clientHeight:Math.max(document.body.clientHeight||0,document.documentElement.clientHeight),r=Math.max(1,Math.round((document.body.clientWidth-e-64)/2)),l=Math.max(1,Math.round((k-b-a.footerHeight)/3));mxClient.IS_QUIRKS||(d.style.maxHeight="100%");e=Math.min(e,document.body.scrollWidth-64); -b=Math.min(b,k-64);0<a.dialogs.length&&(this.zIndex+=2*a.dialogs.length);null==this.bg&&(this.bg=a.createDiv("background"),this.bg.style.position="absolute",this.bg.style.background=Dialog.backdropColor,this.bg.style.height=k+"px",this.bg.style.right="0px",this.bg.style.zIndex=this.zIndex-2,mxUtils.setOpacity(this.bg,this.bgOpacity),mxClient.IS_QUIRKS&&new mxDivResizer(this.bg));var n=mxUtils.getDocumentScrollOrigin(document);this.bg.style.left=n.x+"px";this.bg.style.top=n.y+"px";r+=n.x;l+=n.y;h&& -document.body.appendChild(this.bg);var w=a.createDiv(u?"geTransDialog":"geDialog");h=this.getPosition(r,l,e,b);r=h.x;l=h.y;w.style.width=e+"px";w.style.height=b+"px";w.style.left=r+"px";w.style.top=l+"px";w.style.zIndex=this.zIndex;w.appendChild(d);document.body.appendChild(w);!q&&d.clientHeight>w.clientHeight-64&&(d.style.overflowY="auto");m&&(m=document.createElement("img"),m.setAttribute("src",Dialog.prototype.closeImage),m.setAttribute("title",mxResources.get("close")),m.className="geDialogClose", -m.style.top=l+14+"px",m.style.left=r+e+38-c+"px",m.style.zIndex=this.zIndex,mxEvent.addListener(m,"click",mxUtils.bind(this,function(){a.hideDialog(!0)})),document.body.appendChild(m),this.dialogImg=m,mxEvent.addGestureListeners(this.bg,null,null,mxUtils.bind(this,function(c){a.hideDialog(!0)})));this.resizeListener=mxUtils.bind(this,function(){k=Math.max(document.body.clientHeight,document.documentElement.clientHeight);this.bg.style.height=k+"px";r=Math.max(1,Math.round((document.body.clientWidth- -e-64)/2));l=Math.max(1,Math.round((k-b-a.footerHeight)/3));e=Math.min(f,document.body.scrollWidth-64);b=Math.min(g,k-64);var n=this.getPosition(r,l,e,b);r=n.x;l=n.y;w.style.left=r+"px";w.style.top=l+"px";w.style.width=e+"px";w.style.height=b+"px";!q&&d.clientHeight>w.clientHeight-64&&(d.style.overflowY="auto");null!=this.dialogImg&&(this.dialogImg.style.top=l+14+"px",this.dialogImg.style.left=r+e+38-c+"px")});mxEvent.addListener(window,"resize",this.resizeListener);this.onDialogClose=p;this.container= +function Dialog(a,b,e,d,k,l,p,q,u){var c=0;mxClient.IS_VML&&(null==document.documentMode||8>document.documentMode)&&(c=80);e+=c;d+=c;var f=e,g=d,n=0<document.documentElement.clientHeight?document.documentElement.clientHeight:Math.max(document.body.clientHeight||0,document.documentElement.clientHeight),r=Math.max(1,Math.round((document.body.clientWidth-e-64)/2)),h=Math.max(1,Math.round((n-d-a.footerHeight)/3));mxClient.IS_QUIRKS||(b.style.maxHeight="100%");e=Math.min(e,document.body.scrollWidth-64); +d=Math.min(d,n-64);0<a.dialogs.length&&(this.zIndex+=2*a.dialogs.length);null==this.bg&&(this.bg=a.createDiv("background"),this.bg.style.position="absolute",this.bg.style.background=Dialog.backdropColor,this.bg.style.height=n+"px",this.bg.style.right="0px",this.bg.style.zIndex=this.zIndex-2,mxUtils.setOpacity(this.bg,this.bgOpacity),mxClient.IS_QUIRKS&&new mxDivResizer(this.bg));var m=mxUtils.getDocumentScrollOrigin(document);this.bg.style.left=m.x+"px";this.bg.style.top=m.y+"px";r+=m.x;h+=m.y;k&& +document.body.appendChild(this.bg);var w=a.createDiv(u?"geTransDialog":"geDialog");k=this.getPosition(r,h,e,d);r=k.x;h=k.y;w.style.width=e+"px";w.style.height=d+"px";w.style.left=r+"px";w.style.top=h+"px";w.style.zIndex=this.zIndex;w.appendChild(b);document.body.appendChild(w);!q&&b.clientHeight>w.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=h+14+"px",l.style.left=r+e+38-c+"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(c){a.hideDialog(!0)})));this.resizeListener=mxUtils.bind(this,function(){n=Math.max(document.body.clientHeight,document.documentElement.clientHeight);this.bg.style.height=n+"px";r=Math.max(1,Math.round((document.body.clientWidth- +e-64)/2));h=Math.max(1,Math.round((n-d-a.footerHeight)/3));e=Math.min(f,document.body.scrollWidth-64);d=Math.min(g,n-64);var m=this.getPosition(r,h,e,d);r=m.x;h=m.y;w.style.left=r+"px";w.style.top=h+"px";w.style.width=e+"px";w.style.height=d+"px";!q&&b.clientHeight>w.clientHeight-64&&(b.style.overflowY="auto");null!=this.dialogImg&&(this.dialogImg.style.top=h+14+"px",this.dialogImg.style.left=r+e+38-c+"px")});mxEvent.addListener(window,"resize",this.resizeListener);this.onDialogClose=p;this.container= w;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"; @@ -2004,150 +2005,150 @@ Dialog.prototype.clearImage=mxClient.IS_SVG?"data:image/gif;base64,R0lGODlhDQAKA Dialog.prototype.lockedImage=mxClient.IS_SVG?"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAMAAABhq6zVAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBNYWNpbnRvc2giIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MzdDMDZCODExNzIxMTFFNUI0RTk5NTg4OTcyMUUyODEiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MzdDMDZCODIxNzIxMTFFNUI0RTk5NTg4OTcyMUUyODEiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDozN0MwNkI3RjE3MjExMUU1QjRFOTk1ODg5NzIxRTI4MSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDozN0MwNkI4MDE3MjExMUU1QjRFOTk1ODg5NzIxRTI4MSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PvqMCFYAAAAVUExURZmZmb+/v7KysqysrMzMzLGxsf///4g8N1cAAAAHdFJOU////////wAaSwNGAAAAPElEQVR42lTMQQ4AIQgEwUa0//9kTQirOweYOgDqAMbZUr10AGlAwx4/BJ2QJ4U0L5brYjovvpv32xZgAHZaATFtMbu4AAAAAElFTkSuQmCC":IMAGE_PATH+ "/locked.png"; 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,d){return new mxPoint(a,d)};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,d){this.create(a,d)}; -PrintDialog.prototype.create=function(a){function d(a){var b=q.checked||c.checked,d=parseInt(g.value)/100;isNaN(d)&&(d=1,g.value="100%");var d=.75*d,k=e.pageFormat||mxConstants.PAGE_FORMAT_A4_PORTRAIT,r=1/e.pageScale;if(b){var h=q.checked?1:parseInt(f.value);isNaN(h)||(r=mxUtils.getScaleForPageCount(h,e,k))}e.getGraphBounds();var y=h=0,k=mxRectangle.fromRectangle(k);k.width=Math.ceil(k.width*d);k.height=Math.ceil(k.height*d);r*=d;!b&&e.pageVisible?(d=e.getPageLayout(),h-=d.x*k.width,y-=d.y*k.height): -b=!0;b=PrintDialog.createPrintPreview(e,r,k,0,h,y,b);b.open();a&&PrintDialog.printPreview(b)}var e=a.editor.graph,b,h,m=document.createElement("table");m.style.width="100%";m.style.height="100%";var p=document.createElement("tbody");b=document.createElement("tr");var q=document.createElement("input");q.setAttribute("type","checkbox");h=document.createElement("td");h.setAttribute("colspan","2");h.style.fontSize="10pt";h.appendChild(q);var u=document.createElement("span");mxUtils.write(u," "+mxResources.get("fitPage")); -h.appendChild(u);mxEvent.addListener(u,"click",function(a){q.checked=!q.checked;c.checked=!q.checked;mxEvent.consume(a)});mxEvent.addListener(q,"change",function(){c.checked=!q.checked});b.appendChild(h);p.appendChild(b);b=b.cloneNode(!1);var c=document.createElement("input");c.setAttribute("type","checkbox");h=document.createElement("td");h.style.fontSize="10pt";h.appendChild(c);u=document.createElement("span");mxUtils.write(u," "+mxResources.get("posterPrint")+":");h.appendChild(u);mxEvent.addListener(u, -"click",function(a){c.checked=!c.checked;q.checked=!c.checked;mxEvent.consume(a)});b.appendChild(h);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";h=document.createElement("td");h.style.fontSize="10pt";h.appendChild(f);mxUtils.write(h," "+mxResources.get("pages")+" (max)");b.appendChild(h);p.appendChild(b);mxEvent.addListener(c,"change", -function(){c.checked?f.removeAttribute("disabled"):f.setAttribute("disabled","disabled");q.checked=!c.checked});b=b.cloneNode(!1);h=document.createElement("td");mxUtils.write(h,mxResources.get("pageScale")+":");b.appendChild(h);h=document.createElement("td");var g=document.createElement("input");g.setAttribute("value","100 %");g.setAttribute("size","5");g.style.width="50px";h.appendChild(g);b.appendChild(h);p.appendChild(b);b=document.createElement("tr");h=document.createElement("td");h.colSpan=2; -h.style.paddingTop="20px";h.setAttribute("align","right");u=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});u.className="geBtn";a.editor.cancelFirst&&h.appendChild(u);if(PrintDialog.previewEnabled){var k=mxUtils.button(mxResources.get("preview"),function(){a.hideDialog();d(!1)});k.className="geBtn";h.appendChild(k)}k=mxUtils.button(mxResources.get(PrintDialog.previewEnabled?"print":"ok"),function(){a.hideDialog();d(!0)});k.className="geBtn gePrimaryBtn";h.appendChild(k);a.editor.cancelFirst|| -h.appendChild(u);b.appendChild(h);p.appendChild(b);m.appendChild(p);this.container=m};PrintDialog.printPreview=function(a){if(null!=a.wnd){var d=function(){a.wnd.focus();a.wnd.print();a.wnd.close()};mxClient.IS_GC?window.setTimeout(d,500):d()}}; -PrintDialog.createPrintPreview=function(a,d,e,b,h,m,p){d=new mxPrintPreview(a,d,e,b,h,m);d.title=mxResources.get("preview");d.printBackgroundImage=!0;d.autoOrigin=p;a=a.background;if(null==a||""==a||a==mxConstants.NONE)a="#ffffff";d.backgroundColor=a;var q=d.writeHead;d.writeHead=function(a){q.apply(this,arguments);a.writeln('<style type="text/css">');a.writeln("@media screen {");a.writeln(" body > div { padding:30px;box-sizing:content-box; }");a.writeln("}");a.writeln("</style>")};return d}; +"/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 d=q.checked||c.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(d){var k=q.checked?1:parseInt(f.value);isNaN(k)||(r=mxUtils.getScaleForPageCount(k,e,n))}e.getGraphBounds();var y=k=0,n=mxRectangle.fromRectangle(n);n.width=Math.ceil(n.width*b);n.height=Math.ceil(n.height*b);r*=b;!d&&e.pageVisible?(b=e.getPageLayout(),k-=b.x*n.width,y-=b.y*n.height): +d=!0;d=PrintDialog.createPrintPreview(e,r,n,0,k,y,d);d.open();a&&PrintDialog.printPreview(d)}var e=a.editor.graph,d,k,l=document.createElement("table");l.style.width="100%";l.style.height="100%";var p=document.createElement("tbody");d=document.createElement("tr");var q=document.createElement("input");q.setAttribute("type","checkbox");k=document.createElement("td");k.setAttribute("colspan","2");k.style.fontSize="10pt";k.appendChild(q);var u=document.createElement("span");mxUtils.write(u," "+mxResources.get("fitPage")); +k.appendChild(u);mxEvent.addListener(u,"click",function(a){q.checked=!q.checked;c.checked=!q.checked;mxEvent.consume(a)});mxEvent.addListener(q,"change",function(){c.checked=!q.checked});d.appendChild(k);p.appendChild(d);d=d.cloneNode(!1);var c=document.createElement("input");c.setAttribute("type","checkbox");k=document.createElement("td");k.style.fontSize="10pt";k.appendChild(c);u=document.createElement("span");mxUtils.write(u," "+mxResources.get("posterPrint")+":");k.appendChild(u);mxEvent.addListener(u, +"click",function(a){c.checked=!c.checked;q.checked=!c.checked;mxEvent.consume(a)});d.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)");d.appendChild(k);p.appendChild(d);mxEvent.addListener(c,"change", +function(){c.checked?f.removeAttribute("disabled"):f.setAttribute("disabled","disabled");q.checked=!c.checked});d=d.cloneNode(!1);k=document.createElement("td");mxUtils.write(k,mxResources.get("pageScale")+":");d.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);d.appendChild(k);p.appendChild(d);d=document.createElement("tr");k=document.createElement("td");k.colSpan=2; +k.style.paddingTop="20px";k.setAttribute("align","right");u=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});u.className="geBtn";a.editor.cancelFirst&&k.appendChild(u);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.appendChild(u);d.appendChild(k);p.appendChild(d);l.appendChild(p);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,d,k,l,p){b=new mxPrintPreview(a,b,e,d,k,l);b.title=mxResources.get("preview");b.printBackgroundImage=!0;b.autoOrigin=p;a=a.background;if(null==a||""==a||a==mxConstants.NONE)a="#ffffff";b.backgroundColor=a;var q=b.writeHead;b.writeHead=function(a){q.apply(this,arguments);a.writeln('<style type="text/css">');a.writeln("@media screen {");a.writeln(" body > div { padding:30px;box-sizing:content-box; }");a.writeln("}");a.writeln("</style>")};return b}; PrintDialog.previewEnabled=!0; -var PageSetupDialog=function(a){function d(){null==f||f==mxConstants.NONE?(c.style.backgroundColor="",c.style.backgroundImage="url('"+Dialog.prototype.noColorImage+"')"):(c.style.backgroundColor=f,c.style.backgroundImage="")}function e(){null==r?(k.removeAttribute("title"),k.style.fontSize="",k.innerHTML=mxResources.get("change")+"..."):(k.setAttribute("title",r.src),k.style.fontSize="11px",k.innerHTML=r.src.substring(0,42)+"...")}var b=a.editor.graph,h,m,p=document.createElement("table");p.style.width= -"100%";p.style.height="100%";var q=document.createElement("tbody");h=document.createElement("tr");m=document.createElement("td");m.style.verticalAlign="top";m.style.fontSize="10pt";mxUtils.write(m,mxResources.get("paperSize")+":");h.appendChild(m);m=document.createElement("td");m.style.verticalAlign="top";m.style.fontSize="10pt";var u=PageSetupDialog.addPageFormatPanel(m,"pagesetupdialog",b.pageFormat);h.appendChild(m);q.appendChild(h);h=document.createElement("tr");m=document.createElement("td"); -mxUtils.write(m,mxResources.get("background")+":");h.appendChild(m);m=document.createElement("td");m.style.whiteSpace="nowrap";document.createElement("input").setAttribute("type","text");var c=document.createElement("button");c.style.width="18px";c.style.height="18px";c.style.marginRight="20px";c.style.backgroundPosition="center center";c.style.backgroundRepeat="no-repeat";var f=b.background;d();mxEvent.addListener(c,"click",function(c){a.pickColor(f||"none",function(a){f=a;d()});mxEvent.consume(c)}); -m.appendChild(c);mxUtils.write(m,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=b.getGridSize();m.appendChild(g);mxEvent.addListener(g,"change",function(){var a=parseInt(g.value);g.value=Math.max(1,isNaN(a)?b.getGridSize():a)});h.appendChild(m);q.appendChild(h);h=document.createElement("tr");m=document.createElement("td");mxUtils.write(m,mxResources.get("image")+ -":");h.appendChild(m);m=document.createElement("td");var k=document.createElement("a");k.style.textDecoration="underline";k.style.cursor="pointer";k.style.color="#a0a0a0";var r=b.backgroundImage;mxEvent.addListener(k,"click",function(c){a.showBackgroundImageDialog(function(a){r=a;e()});mxEvent.consume(c)});e();m.appendChild(k);h.appendChild(m);q.appendChild(h);h=document.createElement("tr");m=document.createElement("td");m.colSpan=2;m.style.paddingTop="16px";m.setAttribute("align","right");var l= -mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});l.className="geBtn";a.editor.cancelFirst&&m.appendChild(l);var n=mxUtils.button(mxResources.get("apply"),function(){a.hideDialog();b.gridSize!==g.value&&b.setGridSize(parseInt(g.value));var c=new ChangePageSetup(a,f,r,u.get());c.ignoreColor=b.background==f;c.ignoreImage=(null!=b.backgroundImage?b.backgroundImage.src:null)===(null!=r?r.src:null);b.pageFormat.width==c.previousFormat.width&&b.pageFormat.height==c.previousFormat.height&& -c.ignoreColor&&c.ignoreImage||b.model.execute(c)});n.className="geBtn gePrimaryBtn";m.appendChild(n);a.editor.cancelFirst||m.appendChild(l);h.appendChild(m);q.appendChild(h);p.appendChild(q);this.container=p}; -PageSetupDialog.addPageFormatPanel=function(a,d,e,b){function h(a,c,b){if(b||g!=document.activeElement&&k!=document.activeElement){a=!1;for(c=0;c<l.length;c++)b=l[c],B?"custom"==b.key&&(q.value=b.key,B=!1):null!=b.format&&("a4"==b.key?826==e.width?(e=mxRectangle.fromRectangle(e),e.width=827):826==e.height&&(e=mxRectangle.fromRectangle(e),e.height=827):"a5"==b.key&&(584==e.width?(e=mxRectangle.fromRectangle(e),e.width=583):584==e.height&&(e=mxRectangle.fromRectangle(e),e.height=583)),e.width==b.format.width&& -e.height==b.format.height?(q.value=b.key,m.setAttribute("checked","checked"),m.defaultChecked=!0,m.checked=!0,p.removeAttribute("checked"),p.defaultChecked=!1,p.checked=!1,a=!0):e.width==b.format.height&&e.height==b.format.width&&(q.value=b.key,m.removeAttribute("checked"),m.defaultChecked=!1,m.checked=!1,p.setAttribute("checked","checked"),p.defaultChecked=!0,a=p.checked=!0));a?(u.style.display="",f.style.display="none"):(g.value=e.width/100,k.value=e.height/100,m.setAttribute("checked","checked"), -q.value="custom",u.style.display="none",f.style.display="")}}d="format-"+d;var m=document.createElement("input");m.setAttribute("name",d);m.setAttribute("type","radio");m.setAttribute("value","portrait");var p=document.createElement("input");p.setAttribute("name",d);p.setAttribute("type","radio");p.setAttribute("value","landscape");var q=document.createElement("select");q.style.marginBottom="8px";q.style.width="202px";var u=document.createElement("div");u.style.marginLeft="4px";u.style.width="210px"; -u.style.height="24px";m.style.marginRight="6px";u.appendChild(m);d=document.createElement("span");d.style.maxWidth="100px";mxUtils.write(d,mxResources.get("portrait"));u.appendChild(d);p.style.marginLeft="10px";p.style.marginRight="6px";u.appendChild(p);var c=document.createElement("span");c.style.width="100px";mxUtils.write(c,mxResources.get("landscape"));u.appendChild(c);var f=document.createElement("div");f.style.marginLeft="4px";f.style.width="210px";f.style.height="24px";var g=document.createElement("input"); -g.setAttribute("size","7");g.style.textAlign="right";f.appendChild(g);mxUtils.write(f," in x ");var k=document.createElement("input");k.setAttribute("size","7");k.style.textAlign="right";f.appendChild(k);mxUtils.write(f," in");u.style.display="none";f.style.display="none";for(var r={},l=PageSetupDialog.getFormats(),n=0;n<l.length;n++){var w=l[n];r[w.key]=w;var v=document.createElement("option");v.setAttribute("value",w.key);mxUtils.write(v,w.title);q.appendChild(v)}var B=!1;h();a.appendChild(q);mxUtils.br(a); -a.appendChild(u);a.appendChild(f);var y=e,t=function(a,c){var d=r[q.value];null!=d.format?(g.value=d.format.width/100,k.value=d.format.height/100,f.style.display="none",u.style.display=""):(u.style.display="none",f.style.display="");d=parseFloat(g.value);if(isNaN(d)||0>=d)g.value=e.width/100;d=parseFloat(k.value);if(isNaN(d)||0>=d)k.value=e.height/100;d=new mxRectangle(0,0,Math.floor(100*parseFloat(g.value)),Math.floor(100*parseFloat(k.value)));"custom"!=q.value&&p.checked&&(d=new mxRectangle(0,0, -d.height,d.width));c&&B||d.width==y.width&&d.height==y.height||(y=d,null!=b&&b(y))};mxEvent.addListener(d,"click",function(a){m.checked=!0;t(a);mxEvent.consume(a)});mxEvent.addListener(c,"click",function(a){p.checked=!0;t(a);mxEvent.consume(a)});mxEvent.addListener(g,"blur",t);mxEvent.addListener(g,"click",t);mxEvent.addListener(k,"blur",t);mxEvent.addListener(k,"click",t);mxEvent.addListener(p,"change",t);mxEvent.addListener(m,"change",t);mxEvent.addListener(q,"change",function(a){B="custom"==q.value; -t(a,!0)});t();return{set:function(a){e=a;h(null,null,!0)},get:function(){return y},widthInput:g,heightInput:k}}; +var PageSetupDialog=function(a){function b(){null==f||f==mxConstants.NONE?(c.style.backgroundColor="",c.style.backgroundImage="url('"+Dialog.prototype.noColorImage+"')"):(c.style.backgroundColor=f,c.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 d=a.editor.graph,k,l,p=document.createElement("table");p.style.width= +"100%";p.style.height="100%";var q=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 u=PageSetupDialog.addPageFormatPanel(l,"pagesetupdialog",d.pageFormat);k.appendChild(l);q.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 c=document.createElement("button");c.style.width="18px";c.style.height="18px";c.style.marginRight="20px";c.style.backgroundPosition="center center";c.style.backgroundRepeat="no-repeat";var f=d.background;b();mxEvent.addListener(c,"click",function(c){a.pickColor(f||"none",function(a){f=a;b()});mxEvent.consume(c)}); +l.appendChild(c);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=d.getGridSize();l.appendChild(g);mxEvent.addListener(g,"change",function(){var a=parseInt(g.value);g.value=Math.max(1,isNaN(a)?d.getGridSize():a)});k.appendChild(l);q.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=d.backgroundImage;mxEvent.addListener(n,"click",function(c){a.showBackgroundImageDialog(function(a){r=a;e()});mxEvent.consume(c)});e();l.appendChild(n);k.appendChild(l);q.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();d.gridSize!==g.value&&d.setGridSize(parseInt(g.value));var c=new ChangePageSetup(a,f,r,u.get());c.ignoreColor=d.background==f;c.ignoreImage=(null!=d.backgroundImage?d.backgroundImage.src:null)===(null!=r?r.src:null);d.pageFormat.width==c.previousFormat.width&&d.pageFormat.height==c.previousFormat.height&& +c.ignoreColor&&c.ignoreImage||d.model.execute(c)});m.className="geBtn gePrimaryBtn";l.appendChild(m);a.editor.cancelFirst||l.appendChild(h);k.appendChild(l);q.appendChild(k);p.appendChild(q);this.container=p}; +PageSetupDialog.addPageFormatPanel=function(a,b,e,d){function k(a,c,d){if(d||g!=document.activeElement&&n!=document.activeElement){a=!1;for(c=0;c<h.length;c++)d=h[c],A?"custom"==d.key&&(q.value=d.key,A=!1):null!=d.format&&("a4"==d.key?826==e.width?(e=mxRectangle.fromRectangle(e),e.width=827):826==e.height&&(e=mxRectangle.fromRectangle(e),e.height=827):"a5"==d.key&&(584==e.width?(e=mxRectangle.fromRectangle(e),e.width=583):584==e.height&&(e=mxRectangle.fromRectangle(e),e.height=583)),e.width==d.format.width&& +e.height==d.format.height?(q.value=d.key,l.setAttribute("checked","checked"),l.defaultChecked=!0,l.checked=!0,p.removeAttribute("checked"),p.defaultChecked=!1,p.checked=!1,a=!0):e.width==d.format.height&&e.height==d.format.width&&(q.value=d.key,l.removeAttribute("checked"),l.defaultChecked=!1,l.checked=!1,p.setAttribute("checked","checked"),p.defaultChecked=!0,a=p.checked=!0));a?(u.style.display="",f.style.display="none"):(g.value=e.width/100,n.value=e.height/100,l.setAttribute("checked","checked"), +q.value="custom",u.style.display="none",f.style.display="")}}b="format-"+b;var l=document.createElement("input");l.setAttribute("name",b);l.setAttribute("type","radio");l.setAttribute("value","portrait");var p=document.createElement("input");p.setAttribute("name",b);p.setAttribute("type","radio");p.setAttribute("value","landscape");var q=document.createElement("select");q.style.marginBottom="8px";q.style.width="202px";var u=document.createElement("div");u.style.marginLeft="4px";u.style.width="210px"; +u.style.height="24px";l.style.marginRight="6px";u.appendChild(l);b=document.createElement("span");b.style.maxWidth="100px";mxUtils.write(b,mxResources.get("portrait"));u.appendChild(b);p.style.marginLeft="10px";p.style.marginRight="6px";u.appendChild(p);var c=document.createElement("span");c.style.width="100px";mxUtils.write(c,mxResources.get("landscape"));u.appendChild(c);var f=document.createElement("div");f.style.marginLeft="4px";f.style.width="210px";f.style.height="24px";var g=document.createElement("input"); +g.setAttribute("size","7");g.style.textAlign="right";f.appendChild(g);mxUtils.write(f," in x ");var n=document.createElement("input");n.setAttribute("size","7");n.style.textAlign="right";f.appendChild(n);mxUtils.write(f," in");u.style.display="none";f.style.display="none";for(var r={},h=PageSetupDialog.getFormats(),m=0;m<h.length;m++){var w=h[m];r[w.key]=w;var v=document.createElement("option");v.setAttribute("value",w.key);mxUtils.write(v,w.title);q.appendChild(v)}var A=!1;k();a.appendChild(q);mxUtils.br(a); +a.appendChild(u);a.appendChild(f);var y=e,t=function(a,c){var b=r[q.value];null!=b.format?(g.value=b.format.width/100,n.value=b.format.height/100,f.style.display="none",u.style.display=""):(u.style.display="none",f.style.display="");b=parseFloat(g.value);if(isNaN(b)||0>=b)g.value=e.width/100;b=parseFloat(n.value);if(isNaN(b)||0>=b)n.value=e.height/100;b=new mxRectangle(0,0,Math.floor(100*parseFloat(g.value)),Math.floor(100*parseFloat(n.value)));"custom"!=q.value&&p.checked&&(b=new mxRectangle(0,0, +b.height,b.width));c&&A||b.width==y.width&&b.height==y.height||(y=b,null!=d&&d(y))};mxEvent.addListener(b,"click",function(a){l.checked=!0;t(a);mxEvent.consume(a)});mxEvent.addListener(c,"click",function(a){p.checked=!0;t(a);mxEvent.consume(a)});mxEvent.addListener(g,"blur",t);mxEvent.addListener(g,"click",t);mxEvent.addListener(n,"blur",t);mxEvent.addListener(n,"click",t);mxEvent.addListener(p,"change",t);mxEvent.addListener(l,"change",t);mxEvent.addListener(q,"change",function(a){A="custom"==q.value; +t(a,!0)});t();return{set:function(a){e=a;k(null,null,!0)},get:function(){return y},widthInput:g,heightInput:n}}; PageSetupDialog.getFormats=function(){return[{key:"letter",title:'US-Letter (8,5" x 11")',format:mxConstants.PAGE_FORMAT_LETTER_PORTRAIT},{key:"legal",title:'US-Legal (8,5" x 14")',format:new mxRectangle(0,0,850,1400)},{key:"tabloid",title:"US-Tabloid (279 mm x 432 mm)",format:new mxRectangle(0,0,1100,1700)},{key:"a0",title:"A0 (841 mm x 1189 mm)",format:new mxRectangle(0,0,3300,4681)},{key:"a1",title:"A1 (594 mm x 841 mm)",format:new mxRectangle(0,0,2339,3300)},{key:"a2",title:"A2 (420 mm x 594 mm)", format:new mxRectangle(0,0,1654,2336)},{key:"a3",title:"A3 (297 mm x 420 mm)",format:new mxRectangle(0,0,1169,1654)},{key:"a4",title:"A4 (210 mm x 297 mm)",format:mxConstants.PAGE_FORMAT_A4_PORTRAIT},{key:"a5",title:"A5 (148 mm x 210 mm)",format:new mxRectangle(0,0,583,827)},{key:"a6",title:"A6 (105 mm x 148 mm)",format:new mxRectangle(0,0,413,583)},{key:"a7",title:"A7 (74 mm x 105 mm)",format:new mxRectangle(0,0,291,413)},{key:"custom",title:mxResources.get("custom"),format:null}]}; -(function(){mxGraphView.prototype.validateBackgroundPage=function(){var a=this.graph;if(null!=a.container&&!a.transparentBackground){if(a.pageVisible){var b=this.getBackgroundPageBounds();if(null==this.backgroundPageShape){for(var c=a.container.firstChild;null!=c&&c.nodeType!=mxConstants.NODETYPE_ELEMENT;)c=c.nextSibling;null!=c&&(this.backgroundPageShape=this.createBackgroundPageShape(b),this.backgroundPageShape.scale=1,this.backgroundPageShape.isShadow=!mxClient.IS_QUIRKS,this.backgroundPageShape.dialect= +(function(){mxGraphView.prototype.validateBackgroundPage=function(){var a=this.graph;if(null!=a.container&&!a.transparentBackground){if(a.pageVisible){var d=this.getBackgroundPageBounds();if(null==this.backgroundPageShape){for(var c=a.container.firstChild;null!=c&&c.nodeType!=mxConstants.NODETYPE_ELEMENT;)c=c.nextSibling;null!=c&&(this.backgroundPageShape=this.createBackgroundPageShape(d),this.backgroundPageShape.scale=1,this.backgroundPageShape.isShadow=!mxClient.IS_QUIRKS,this.backgroundPageShape.dialect= mxConstants.DIALECT_STRICTHTML,this.backgroundPageShape.init(a.container),c.style.position="absolute",a.container.insertBefore(this.backgroundPageShape.node,c),this.backgroundPageShape.redraw(),this.backgroundPageShape.node.className="geBackgroundPage",mxEvent.addListener(this.backgroundPageShape.node,"dblclick",mxUtils.bind(this,function(c){a.dblClick(c)})),mxEvent.addGestureListeners(this.backgroundPageShape.node,mxUtils.bind(this,function(c){a.fireMouseEvent(mxEvent.MOUSE_DOWN,new mxMouseEvent(c))}), -mxUtils.bind(this,function(c){null!=a.tooltipHandler&&a.tooltipHandler.isHideOnHover()&&a.tooltipHandler.hide();a.isMouseDown&&!mxEvent.isConsumed(c)&&a.fireMouseEvent(mxEvent.MOUSE_MOVE,new mxMouseEvent(c))}),mxUtils.bind(this,function(c){a.fireMouseEvent(mxEvent.MOUSE_UP,new mxMouseEvent(c))})))}else this.backgroundPageShape.scale=1,this.backgroundPageShape.bounds=b,this.backgroundPageShape.redraw()}else null!=this.backgroundPageShape&&(this.backgroundPageShape.destroy(),this.backgroundPageShape= -null);this.validateBackgroundStyles()}};mxGraphView.prototype.validateBackgroundStyles=function(){var a=this.graph,b=null==a.background||a.background==mxConstants.NONE?a.defaultPageBackgroundColor:a.background,c=null!=b&&this.gridColor!=b.toLowerCase()?this.gridColor:"#ffffff",d="none",g="";if(a.isGridEnabled()){g=10;mxClient.IS_SVG?(d=unescape(encodeURIComponent(this.createSvgGrid(c))),d=window.btoa?btoa(d):Base64.encode(d,!0),d="url(data:image/svg+xml;base64,"+d+")",g=a.gridSize*this.scale*this.gridSteps): -d="url("+this.gridImage+")";var e=c=0;null!=a.view.backgroundPageShape&&(e=this.getBackgroundPageBounds(),c=1+e.x,e=1+e.y);g=-Math.round(g-mxUtils.mod(this.translate.x*this.scale-c,g))+"px "+-Math.round(g-mxUtils.mod(this.translate.y*this.scale-e,g))+"px"}c=a.view.canvas;null!=c.ownerSVGElement&&(c=c.ownerSVGElement);null!=a.view.backgroundPageShape?(a.view.backgroundPageShape.node.style.backgroundPosition=g,a.view.backgroundPageShape.node.style.backgroundImage=d,a.view.backgroundPageShape.node.style.backgroundColor= -b,a.container.className="geDiagramContainer geDiagramBackdrop",c.style.backgroundImage="none",c.style.backgroundColor=""):(a.container.className="geDiagramContainer",c.style.backgroundPosition=g,c.style.backgroundColor=b,c.style.backgroundImage=d)};mxGraphView.prototype.createSvgGrid=function(a){for(var b=this.graph.gridSize*this.scale;b<this.minGridSize;)b*=2;for(var c=this.gridSteps*b,d=[],g=1;g<this.gridSteps;g++){var e=g*b;d.push("M 0 "+e+" L "+c+" "+e+" M "+e+" 0 L "+e+" "+c)}return'<svg width="'+ -c+'" height="'+c+'" xmlns="'+mxConstants.NS_SVG+'"><defs><pattern id="grid" width="'+c+'" height="'+c+'" patternUnits="userSpaceOnUse"><path d="'+d.join(" ")+'" fill="none" stroke="'+a+'" opacity="0.2" stroke-width="1"/><path d="M '+c+" 0 L 0 0 0 "+c+'" fill="none" stroke="'+a+'" stroke-width="1"/></pattern></defs><rect width="100%" height="100%" fill="url(#grid)"/></svg>'};var a=mxGraph.prototype.panGraph;mxGraph.prototype.panGraph=function(b,d){a.apply(this,arguments);if(null!=this.shiftPreview1){var c= -this.view.canvas;null!=c.ownerSVGElement&&(c=c.ownerSVGElement);var f=this.gridSize*this.view.scale*this.view.gridSteps,f=-Math.round(f-mxUtils.mod(this.view.translate.x*this.view.scale+b,f))+"px "+-Math.round(f-mxUtils.mod(this.view.translate.y*this.view.scale+d,f))+"px";c.style.backgroundPosition=f}};mxGraph.prototype.updatePageBreaks=function(a,b,c){var d=this.view.scale,g=this.view.translate,e=this.pageFormat,r=d*this.pageScale,l=this.view.getBackgroundPageBounds();b=l.width;c=l.height;var n= -new mxRectangle(d*g.x,d*g.y,e.width*r,e.height*r),w=(a=a&&Math.min(n.width,n.height)>this.minPageBreakDist)?Math.ceil(c/n.height)-1:0,v=a?Math.ceil(b/n.width)-1:0,h=l.x+b,y=l.y+c;null==this.horizontalPageBreaks&&0<w&&(this.horizontalPageBreaks=[]);null==this.verticalPageBreaks&&0<v&&(this.verticalPageBreaks=[]);a=mxUtils.bind(this,function(a){if(null!=a){for(var c=a==this.horizontalPageBreaks?w:v,b=0;b<=c;b++){var d=a==this.horizontalPageBreaks?[new mxPoint(Math.round(l.x),Math.round(l.y+(b+1)*n.height)), -new mxPoint(Math.round(h),Math.round(l.y+(b+1)*n.height))]:[new mxPoint(Math.round(l.x+(b+1)*n.width),Math.round(l.y)),new mxPoint(Math.round(l.x+(b+1)*n.width),Math.round(y))];null!=a[b]?(a[b].points=d,a[b].redraw()):(d=new mxPolyline(d,this.pageBreakColor),d.dialect=this.dialect,d.isDashed=this.pageBreakDashed,d.pointerEvents=!1,d.init(this.view.backgroundPane),d.redraw(),a[b]=d)}for(b=c;b<a.length;b++)a[b].destroy();a.splice(c,a.length-c)}});a(this.horizontalPageBreaks);a(this.verticalPageBreaks)}; -var d=mxGraphHandler.prototype.shouldRemoveCellsFromParent;mxGraphHandler.prototype.shouldRemoveCellsFromParent=function(a,b,c){for(var f=0;f<b.length;f++)if(this.graph.getModel().isVertex(b[f])){var g=this.graph.getCellGeometry(b[f]);if(null!=g&&g.relative)return!1}return d.apply(this,arguments)};var e=mxConnectionHandler.prototype.createMarker;mxConnectionHandler.prototype.createMarker=function(){var a=e.apply(this,arguments);a.intersects=mxUtils.bind(this,function(b,c){return this.isConnecting()? -!0:mxCellMarker.prototype.intersects.apply(a,arguments)});return a};mxGraphView.prototype.createBackgroundPageShape=function(a){return new mxRectangleShape(a,"#ffffff",this.graph.defaultPageBorderColor)};mxGraphView.prototype.getBackgroundPageBounds=function(){var a=this.getGraphBounds(),b=0<a.width?a.x/this.scale-this.translate.x:0,c=0<a.height?a.y/this.scale-this.translate.y:0,d=this.graph.pageFormat,g=this.graph.pageScale,e=d.width*g,d=d.height*g,g=Math.floor(Math.min(0,b)/e),r=Math.floor(Math.min(0, -c)/d);return new mxRectangle(this.scale*(this.translate.x+g*e),this.scale*(this.translate.y+r*d),this.scale*(Math.ceil(Math.max(1,b+a.width/this.scale)/e)-g)*e,this.scale*(Math.ceil(Math.max(1,c+a.height/this.scale)/d)-r)*d)};var b=mxGraph.prototype.panGraph;mxGraph.prototype.panGraph=function(a,d){b.apply(this,arguments);this.dialect==mxConstants.DIALECT_SVG||null==this.view.backgroundPageShape||this.useScrollbarsForPanning&&mxUtils.hasScrollbars(this.container)||(this.view.backgroundPageShape.node.style.marginLeft= -a+"px",this.view.backgroundPageShape.node.style.marginTop=d+"px")};var h=mxPopupMenu.prototype.addItem;mxPopupMenu.prototype.addItem=function(a,b,c,d,g,e){var f=h.apply(this,arguments);null==e||e||mxEvent.addListener(f,"mousedown",function(a){mxEvent.consume(a)});return f};var m=mxGraphHandler.prototype.getInitialCellForEvent;mxGraphHandler.prototype.getInitialCellForEvent=function(a){var b=this.graph.getModel(),c=b.getParent(this.graph.getSelectionCell()),d=m.apply(this,arguments),g=b.getParent(d); -if(null==c||c!=d&&c!=g)for(;!this.graph.isCellSelected(d)&&!this.graph.isCellSelected(g)&&b.isVertex(g)&&!this.graph.isContainer(g);)d=g,g=this.graph.getModel().getParent(d);return d};var p=mxGraphHandler.prototype.isDelayedSelection;mxGraphHandler.prototype.isDelayedSelection=function(a,b){var c=p.apply(this,arguments);if(!c)for(var d=this.graph.getModel(),g=d.getParent(a);null!=g;){if(this.graph.isCellSelected(g)&&d.isVertex(g)){c=!0;break}g=d.getParent(g)}return c};mxGraphHandler.prototype.selectDelayed= -function(a){if(!this.graph.popupMenuHandler.isPopupTrigger(a)){var b=a.getCell();null==b&&(b=this.cell);var c=this.graph.view.getState(b);if(null==c||!a.isSource(c.control))for(var c=this.graph.getModel(),d=c.getParent(b);!this.graph.isCellSelected(d)&&c.isVertex(d);)b=d,d=c.getParent(b);this.graph.selectCellForEvent(b,a.getEvent())}};mxPopupMenuHandler.prototype.getCellForPopupEvent=function(a){a=a.getCell();for(var b=this.graph.getModel(),c=b.getParent(a);b.isVertex(c)&&!this.graph.isContainer(c);)this.graph.isCellSelected(c)&& -(a=c),c=b.getParent(c);return a}})();EditorUi=function(a,d,e){mxEventSource.call(this);this.destroyFunctions=[];this.editor=a||new Editor;this.container=d||document.body;var b=this.editor.graph;b.lightbox=e;b.useCssTransforms&&(this.lazyZoomDelay=0);mxClient.IS_SVG?mxPopupMenu.prototype.submenuImage="data:image/gif;base64,R0lGODlhCQAJAIAAAP///zMzMyH5BAEAAAAALAAAAAAJAAkAAAIPhI8WebHsHopSOVgb26AAADs=":(new Image).src=mxPopupMenu.prototype.submenuImage;mxClient.IS_SVG||null==mxConnectionHandler.prototype.connectImage||((new Image).src=mxConnectionHandler.prototype.connectImage.src); -this.editor.chromeless&&!this.editor.editable&&(this.footerHeight=0,b.isEnabled=function(){return!1},b.panningHandler.isForcePanningEvent=function(a){return!mxEvent.isPopupTrigger(a.getEvent())});this.actions=new Actions(this);this.menus=this.createMenus();this.createDivs();this.createUi();this.refresh();var h=mxUtils.bind(this,function(a){null==a&&(a=window.event);return this.isSelectionAllowed(a)||b.isEditing()});this.container==document.body&&(this.menubarContainer.onselectstart=h,this.menubarContainer.onmousedown= -h,this.toolbarContainer.onselectstart=h,this.toolbarContainer.onmousedown=h,this.diagramContainer.onselectstart=h,this.diagramContainer.onmousedown=h,this.sidebarContainer.onselectstart=h,this.sidebarContainer.onmousedown=h,this.formatContainer.onselectstart=h,this.formatContainer.onmousedown=h,this.footerContainer.onselectstart=h,this.footerContainer.onmousedown=h,null!=this.tabContainer&&(this.tabContainer.onselectstart=h));!this.editor.chromeless||this.editor.editable?(d=function(a){var c=mxEvent.getSource(a); -if("A"==c.nodeName)for(;null!=c;){if("geHint"==c.className)return!0;c=c.parentNode}return h(a)},mxClient.IS_IE&&("undefined"===typeof document.documentMode||9>document.documentMode)?mxEvent.addListener(this.diagramContainer,"contextmenu",d):this.diagramContainer.oncontextmenu=d):b.panningHandler.usePopupTrigger=!1;b.init(this.diagramContainer);mxClient.IS_SVG&&null!=b.view.getDrawPane()&&(d=b.view.getDrawPane().ownerSVGElement,null!=d&&(d.style.position="absolute"));this.hoverIcons=this.createHoverIcons(); -mxEvent.addListener(this.diagramContainer,"mousemove",mxUtils.bind(this,function(a){var c=mxUtils.getOffset(this.diagramContainer);0<mxEvent.getClientX(a)-c.x-this.diagramContainer.clientWidth||0<mxEvent.getClientY(a)-c.y-this.diagramContainer.clientHeight?this.diagramContainer.setAttribute("title",mxResources.get("panTooltip")):this.diagramContainer.removeAttribute("title")}));var m=!1,p=this.hoverIcons.isResetEvent;this.hoverIcons.isResetEvent=function(a,c){return m||p.apply(this,arguments)};this.keydownHandler= -mxUtils.bind(this,function(a){32==a.which?(m=!0,this.hoverIcons.reset(),b.container.style.cursor="move",b.isEditing()||mxEvent.getSource(a)!=b.container||mxEvent.consume(a)):mxEvent.isConsumed(a)||27!=a.keyCode||this.hideDialog()});mxEvent.addListener(document,"keydown",this.keydownHandler);this.keyupHandler=mxUtils.bind(this,function(a){b.container.style.cursor="";m=!1});mxEvent.addListener(document,"keyup",this.keyupHandler);var q=b.panningHandler.isForcePanningEvent;b.panningHandler.isForcePanningEvent= -function(a){return q.apply(this,arguments)||m||mxEvent.isMouseEvent(a.getEvent())&&(this.usePopupTrigger||!mxEvent.isPopupTrigger(a.getEvent()))&&(!mxEvent.isControlDown(a.getEvent())&&mxEvent.isRightMouseButton(a.getEvent())||mxEvent.isMiddleMouseButton(a.getEvent()))};var u=b.cellEditor.isStopEditingEvent;b.cellEditor.isStopEditingEvent=function(a){return u.apply(this,arguments)||13==a.keyCode&&(!mxClient.IS_SF&&mxEvent.isControlDown(a)||mxClient.IS_MAC&&mxEvent.isMetaDown(a)||mxClient.IS_SF&&mxEvent.isShiftDown(a))}; -var c=!1,f=null,g=null,k=null,r=mxUtils.bind(this,function(){if(null!=this.toolbar&&c!=b.cellEditor.isContentEditing()){for(var a=this.toolbar.container.firstChild,d=[];null!=a;){var e=a.nextSibling;0>mxUtils.indexOf(this.toolbar.staticElements,a)&&(a.parentNode.removeChild(a),d.push(a));a=e}a=this.toolbar.fontMenu;e=this.toolbar.sizeMenu;if(null==k)this.toolbar.createTextToolbar();else{for(var l=0;l<k.length;l++)this.toolbar.container.appendChild(k[l]);this.toolbar.fontMenu=f;this.toolbar.sizeMenu= -g}c=b.cellEditor.isContentEditing();f=a;g=e;k=d}}),l=this,n=b.cellEditor.startEditing;b.cellEditor.startEditing=function(){n.apply(this,arguments);r();if(b.cellEditor.isContentEditing()){var a=!1,c=function(){a||(a=!0,window.setTimeout(function(){for(var c=b.getSelectedElement();null!=c&&c.nodeType!=mxConstants.NODETYPE_ELEMENT;)c=c.parentNode;if(null!=c&&(c=mxUtils.getCurrentStyle(c),null!=c&&null!=l.toolbar)){var d=c.fontFamily;"'"==d.charAt(0)&&(d=d.substring(1));"'"==d.charAt(d.length-1)&&(d= -d.substring(0,d.length-1));l.toolbar.setFontName(d);l.toolbar.setFontSize(parseInt(c.fontSize))}a=!1},0))};mxEvent.addListener(b.cellEditor.textarea,"input",c);mxEvent.addListener(b.cellEditor.textarea,"touchend",c);mxEvent.addListener(b.cellEditor.textarea,"mouseup",c);mxEvent.addListener(b.cellEditor.textarea,"keyup",c);c()}};var w=b.cellEditor.stopEditing;b.cellEditor.stopEditing=function(a,c){w.apply(this,arguments);r()};b.container.setAttribute("tabindex","0");b.container.style.cursor="default"; -if(window.self===window.top&&null!=b.container.parentNode)try{b.container.focus()}catch(A){}var v=b.fireMouseEvent;b.fireMouseEvent=function(a,c,b){a==mxEvent.MOUSE_DOWN&&this.container.focus();v.apply(this,arguments)};b.popupMenuHandler.autoExpand=!0;null!=this.menus&&(b.popupMenuHandler.factoryMethod=mxUtils.bind(this,function(a,c,b){this.menus.createPopupMenu(a,c,b)}));mxEvent.addGestureListeners(document,mxUtils.bind(this,function(a){b.popupMenuHandler.hideMenu()}));this.keyHandler=this.createKeyHandler(a); -this.getKeyHandler=function(){return keyHandler};var B="rounded shadow glass dashed dashPattern comic labelBackgroundColor".split(" "),y="shape edgeStyle curved rounded elbow comic jumpStyle jumpSize".split(" ");this.setDefaultStyle=function(a){var c=b.view.getState(a);if(null!=c){a=a.clone();a.style="";a=b.getCellStyle(a);var d=[],f=[],g;for(g in c.style)a[g]!=c.style[g]&&(d.push(c.style[g]),f.push(g));g=b.getModel().getStyle(c.cell);for(var e=null!=g?g.split(";"):[],l=0;l<e.length;l++){var k=e[l], -n=k.indexOf("=");0<=n&&(g=k.substring(0,n),k=k.substring(n+1),null!=a[g]&&"none"==k&&(d.push(k),f.push(g)))}b.getModel().isEdge(c.cell)?b.currentEdgeStyle={}:b.currentVertexStyle={};this.fireEvent(new mxEventObject("styleChanged","keys",f,"values",d,"cells",[c.cell]))}};this.clearDefaultStyle=function(){b.currentEdgeStyle=mxUtils.clone(b.defaultEdgeStyle);b.currentVertexStyle=mxUtils.clone(b.defaultVertexStyle);this.fireEvent(new mxEventObject("styleChanged","keys",[],"values",[],"cells",[]))};var t= -["fontFamily","fontSize","fontColor"],z="edgeStyle startArrow startFill startSize endArrow endFill endSize jettySize orthogonalLoop".split(" "),H=["startArrow startFill startSize endArrow endFill endSize jettySize orthogonalLoop".split(" "),["strokeColor","strokeWidth"],["fillColor","gradientColor"],t,["opacity"],["align"],["html"]];for(a=0;a<H.length;a++)for(d=0;d<H[a].length;d++)B.push(H[a][d]);for(a=0;a<y.length;a++)0>mxUtils.indexOf(B,y[a])&&B.push(y[a]);var G=function(a,c){var d=b.getModel(); -d.beginUpdate();try{if(c)for(var f=d.isEdge(l),g=f?b.currentEdgeStyle:b.currentVertexStyle,f=["fontSize","fontFamily","fontColor"],e=0;e<f.length;e++){var k=g[f[e]];null!=k&&b.setCellStyles(f[e],k,a)}else for(k=0;k<a.length;k++){for(var l=a[k],n=d.getStyle(l),r=null!=n?n.split(";"):[],F=B.slice(),e=0;e<r.length;e++){var t=r[e],v=t.indexOf("=");if(0<=v){var w=t.substring(0,v),h=mxUtils.indexOf(F,w);0<=h&&F.splice(h,1);for(var q=0;q<H.length;q++){var z=H[q];if(0<=mxUtils.indexOf(z,w))for(var A=0;A< -z.length;A++){var m=mxUtils.indexOf(F,z[A]);0<=m&&F.splice(m,1)}}}}for(var g=(f=d.isEdge(l))?b.currentEdgeStyle:b.currentVertexStyle,p=d.getStyle(l),e=0;e<F.length;e++){var w=F[e],J=g[w];null==J||"shape"==w&&!f||f&&!(0>mxUtils.indexOf(y,w))||(p=mxUtils.setStyle(p,w,J))}d.setStyle(l,p)}}finally{d.endUpdate()}};b.addListener("cellsInserted",function(a,c){G(c.getProperty("cells"))});b.addListener("textInserted",function(a,c){G(c.getProperty("cells"),!0)});b.connectionHandler.addListener(mxEvent.CONNECT, -function(a,c){var b=[c.getProperty("cell")];c.getProperty("terminalInserted")&&b.push(c.getProperty("terminal"));G(b)});this.addListener("styleChanged",mxUtils.bind(this,function(a,c){var d=c.getProperty("cells"),f=!1,g=!1;if(0<d.length)for(var e=0;e<d.length&&(f=b.getModel().isVertex(d[e])||f,!(g=b.getModel().isEdge(d[e])||g)||!f);e++);else g=f=!0;for(var d=c.getProperty("keys"),k=c.getProperty("values"),e=0;e<d.length;e++){var l=0<=mxUtils.indexOf(t,d[e]);if("strokeColor"!=d[e]||null!=k[e]&&"none"!= -k[e])if(0<=mxUtils.indexOf(y,d[e]))g||0<=mxUtils.indexOf(z,d[e])?null==k[e]?delete b.currentEdgeStyle[d[e]]:b.currentEdgeStyle[d[e]]=k[e]:f&&0<=mxUtils.indexOf(B,d[e])&&(null==k[e]?delete b.currentVertexStyle[d[e]]:b.currentVertexStyle[d[e]]=k[e]);else if(0<=mxUtils.indexOf(B,d[e])){if(f||l)null==k[e]?delete b.currentVertexStyle[d[e]]:b.currentVertexStyle[d[e]]=k[e];if(g||l||0<=mxUtils.indexOf(z,d[e]))null==k[e]?delete b.currentEdgeStyle[d[e]]:b.currentEdgeStyle[d[e]]=k[e]}}null!=this.toolbar&&(this.toolbar.setFontName(b.currentVertexStyle.fontFamily|| -Menus.prototype.defaultFont),this.toolbar.setFontSize(b.currentVertexStyle.fontSize||Menus.prototype.defaultFontSize),null!=this.toolbar.edgeStyleMenu&&(this.toolbar.edgeStyleMenu.getElementsByTagName("div")[0].className="orthogonalEdgeStyle"==b.currentEdgeStyle.edgeStyle&&"1"==b.currentEdgeStyle.curved?"geSprite geSprite-curved":"straight"==b.currentEdgeStyle.edgeStyle||"none"==b.currentEdgeStyle.edgeStyle||null==b.currentEdgeStyle.edgeStyle?"geSprite geSprite-straight":"entityRelationEdgeStyle"== -b.currentEdgeStyle.edgeStyle?"geSprite geSprite-entity":"elbowEdgeStyle"==b.currentEdgeStyle.edgeStyle?"geSprite geSprite-"+("vertical"==b.currentEdgeStyle.elbow?"verticalelbow":"horizontalelbow"):"isometricEdgeStyle"==b.currentEdgeStyle.edgeStyle?"geSprite geSprite-"+("vertical"==b.currentEdgeStyle.elbow?"verticalisometric":"horizontalisometric"):"geSprite geSprite-orthogonal"),null!=this.toolbar.edgeShapeMenu&&(this.toolbar.edgeShapeMenu.getElementsByTagName("div")[0].className="link"==b.currentEdgeStyle.shape? -"geSprite geSprite-linkedge":"flexArrow"==b.currentEdgeStyle.shape?"geSprite geSprite-arrow":"arrow"==b.currentEdgeStyle.shape?"geSprite geSprite-simplearrow":"geSprite geSprite-connection"),null!=this.toolbar.lineStartMenu&&(this.toolbar.lineStartMenu.getElementsByTagName("div")[0].className=this.getCssClassForMarker("start",b.currentEdgeStyle.shape,b.currentEdgeStyle[mxConstants.STYLE_STARTARROW],mxUtils.getValue(b.currentEdgeStyle,"startFill","1"))),null!=this.toolbar.lineEndMenu&&(this.toolbar.lineEndMenu.getElementsByTagName("div")[0].className= -this.getCssClassForMarker("end",b.currentEdgeStyle.shape,b.currentEdgeStyle[mxConstants.STYLE_ENDARROW],mxUtils.getValue(b.currentEdgeStyle,"endFill","1"))))}));null!=this.toolbar&&(a=mxUtils.bind(this,function(){var a=b.currentVertexStyle.fontFamily||"Helvetica",c=String(b.currentVertexStyle.fontSize||"12"),d=b.getView().getState(b.getSelectionCell());null!=d&&(a=d.style[mxConstants.STYLE_FONTFAMILY]||a,c=d.style[mxConstants.STYLE_FONTSIZE]||c,10<a.length&&(a=a.substring(0,8)+"..."));this.toolbar.setFontName(a); -this.toolbar.setFontSize(c)}),b.getSelectionModel().addListener(mxEvent.CHANGE,a),b.getModel().addListener(mxEvent.CHANGE,a));b.addListener(mxEvent.CELLS_ADDED,function(a,c){var d=c.getProperty("cells"),f=c.getProperty("parent");b.getModel().isLayer(f)&&!b.isCellVisible(f)&&null!=d&&0<d.length&&b.getModel().setVisible(f,!0)});this.gestureHandler=mxUtils.bind(this,function(a){null!=this.currentMenu&&mxEvent.getSource(a)!=this.currentMenu.div&&this.hideCurrentMenu()});mxEvent.addGestureListeners(document, +mxUtils.bind(this,function(c){null!=a.tooltipHandler&&a.tooltipHandler.isHideOnHover()&&a.tooltipHandler.hide();a.isMouseDown&&!mxEvent.isConsumed(c)&&a.fireMouseEvent(mxEvent.MOUSE_MOVE,new mxMouseEvent(c))}),mxUtils.bind(this,function(c){a.fireMouseEvent(mxEvent.MOUSE_UP,new mxMouseEvent(c))})))}else this.backgroundPageShape.scale=1,this.backgroundPageShape.bounds=d,this.backgroundPageShape.redraw()}else null!=this.backgroundPageShape&&(this.backgroundPageShape.destroy(),this.backgroundPageShape= +null);this.validateBackgroundStyles()}};mxGraphView.prototype.validateBackgroundStyles=function(){var a=this.graph,d=null==a.background||a.background==mxConstants.NONE?a.defaultPageBackgroundColor:a.background,c=null!=d&&this.gridColor!=d.toLowerCase()?this.gridColor:"#ffffff",b="none",g="";if(a.isGridEnabled()){g=10;mxClient.IS_SVG?(b=unescape(encodeURIComponent(this.createSvgGrid(c))),b=window.btoa?btoa(b):Base64.encode(b,!0),b="url(data:image/svg+xml;base64,"+b+")",g=a.gridSize*this.scale*this.gridSteps): +b="url("+this.gridImage+")";var e=c=0;null!=a.view.backgroundPageShape&&(e=this.getBackgroundPageBounds(),c=1+e.x,e=1+e.y);g=-Math.round(g-mxUtils.mod(this.translate.x*this.scale-c,g))+"px "+-Math.round(g-mxUtils.mod(this.translate.y*this.scale-e,g))+"px"}c=a.view.canvas;null!=c.ownerSVGElement&&(c=c.ownerSVGElement);null!=a.view.backgroundPageShape?(a.view.backgroundPageShape.node.style.backgroundPosition=g,a.view.backgroundPageShape.node.style.backgroundImage=b,a.view.backgroundPageShape.node.style.backgroundColor= +d,a.container.className="geDiagramContainer geDiagramBackdrop",c.style.backgroundImage="none",c.style.backgroundColor=""):(a.container.className="geDiagramContainer",c.style.backgroundPosition=g,c.style.backgroundColor=d,c.style.backgroundImage=b)};mxGraphView.prototype.createSvgGrid=function(a){for(var d=this.graph.gridSize*this.scale;d<this.minGridSize;)d*=2;for(var c=this.gridSteps*d,b=[],g=1;g<this.gridSteps;g++){var e=g*d;b.push("M 0 "+e+" L "+c+" "+e+" M "+e+" 0 L "+e+" "+c)}return'<svg width="'+ +c+'" height="'+c+'" xmlns="'+mxConstants.NS_SVG+'"><defs><pattern id="grid" width="'+c+'" height="'+c+'" patternUnits="userSpaceOnUse"><path d="'+b.join(" ")+'" fill="none" stroke="'+a+'" opacity="0.2" stroke-width="1"/><path d="M '+c+" 0 L 0 0 0 "+c+'" fill="none" stroke="'+a+'" stroke-width="1"/></pattern></defs><rect width="100%" height="100%" fill="url(#grid)"/></svg>'};var a=mxGraph.prototype.panGraph;mxGraph.prototype.panGraph=function(d,b){a.apply(this,arguments);if(null!=this.shiftPreview1){var c= +this.view.canvas;null!=c.ownerSVGElement&&(c=c.ownerSVGElement);var f=this.gridSize*this.view.scale*this.view.gridSteps,f=-Math.round(f-mxUtils.mod(this.view.translate.x*this.view.scale+d,f))+"px "+-Math.round(f-mxUtils.mod(this.view.translate.y*this.view.scale+b,f))+"px";c.style.backgroundPosition=f}};mxGraph.prototype.updatePageBreaks=function(a,d,c){var b=this.view.scale,g=this.view.translate,e=this.pageFormat,r=b*this.pageScale,h=this.view.getBackgroundPageBounds();d=h.width;c=h.height;var m= +new mxRectangle(b*g.x,b*g.y,e.width*r,e.height*r),w=(a=a&&Math.min(m.width,m.height)>this.minPageBreakDist)?Math.ceil(c/m.height)-1:0,v=a?Math.ceil(d/m.width)-1:0,k=h.x+d,y=h.y+c;null==this.horizontalPageBreaks&&0<w&&(this.horizontalPageBreaks=[]);null==this.verticalPageBreaks&&0<v&&(this.verticalPageBreaks=[]);a=mxUtils.bind(this,function(a){if(null!=a){for(var c=a==this.horizontalPageBreaks?w:v,d=0;d<=c;d++){var b=a==this.horizontalPageBreaks?[new mxPoint(Math.round(h.x),Math.round(h.y+(d+1)*m.height)), +new mxPoint(Math.round(k),Math.round(h.y+(d+1)*m.height))]:[new mxPoint(Math.round(h.x+(d+1)*m.width),Math.round(h.y)),new mxPoint(Math.round(h.x+(d+1)*m.width),Math.round(y))];null!=a[d]?(a[d].points=b,a[d].redraw()):(b=new mxPolyline(b,this.pageBreakColor),b.dialect=this.dialect,b.isDashed=this.pageBreakDashed,b.pointerEvents=!1,b.init(this.view.backgroundPane),b.redraw(),a[d]=b)}for(d=c;d<a.length;d++)a[d].destroy();a.splice(c,a.length-c)}});a(this.horizontalPageBreaks);a(this.verticalPageBreaks)}; +var b=mxGraphHandler.prototype.shouldRemoveCellsFromParent;mxGraphHandler.prototype.shouldRemoveCellsFromParent=function(a,d,c){for(var f=0;f<d.length;f++)if(this.graph.getModel().isVertex(d[f])){var g=this.graph.getCellGeometry(d[f]);if(null!=g&&g.relative)return!1}return b.apply(this,arguments)};var e=mxConnectionHandler.prototype.createMarker;mxConnectionHandler.prototype.createMarker=function(){var a=e.apply(this,arguments);a.intersects=mxUtils.bind(this,function(d,c){return this.isConnecting()? +!0:mxCellMarker.prototype.intersects.apply(a,arguments)});return a};mxGraphView.prototype.createBackgroundPageShape=function(a){return new mxRectangleShape(a,"#ffffff",this.graph.defaultPageBorderColor)};mxGraphView.prototype.getBackgroundPageBounds=function(){var a=this.getGraphBounds(),d=0<a.width?a.x/this.scale-this.translate.x:0,c=0<a.height?a.y/this.scale-this.translate.y:0,b=this.graph.pageFormat,g=this.graph.pageScale,e=b.width*g,b=b.height*g,g=Math.floor(Math.min(0,d)/e),r=Math.floor(Math.min(0, +c)/b);return new mxRectangle(this.scale*(this.translate.x+g*e),this.scale*(this.translate.y+r*b),this.scale*(Math.ceil(Math.max(1,d+a.width/this.scale)/e)-g)*e,this.scale*(Math.ceil(Math.max(1,c+a.height/this.scale)/b)-r)*b)};var d=mxGraph.prototype.panGraph;mxGraph.prototype.panGraph=function(a,b){d.apply(this,arguments);this.dialect==mxConstants.DIALECT_SVG||null==this.view.backgroundPageShape||this.useScrollbarsForPanning&&mxUtils.hasScrollbars(this.container)||(this.view.backgroundPageShape.node.style.marginLeft= +a+"px",this.view.backgroundPageShape.node.style.marginTop=b+"px")};var k=mxPopupMenu.prototype.addItem;mxPopupMenu.prototype.addItem=function(a,d,c,b,g,e){var f=k.apply(this,arguments);null==e||e||mxEvent.addListener(f,"mousedown",function(a){mxEvent.consume(a)});return f};var l=mxGraphHandler.prototype.getInitialCellForEvent;mxGraphHandler.prototype.getInitialCellForEvent=function(a){var d=this.graph.getModel(),c=d.getParent(this.graph.getSelectionCell()),b=l.apply(this,arguments),g=d.getParent(b); +if(null==c||c!=b&&c!=g)for(;!this.graph.isCellSelected(b)&&!this.graph.isCellSelected(g)&&d.isVertex(g)&&!this.graph.isContainer(g);)b=g,g=this.graph.getModel().getParent(b);return b};var p=mxGraphHandler.prototype.isDelayedSelection;mxGraphHandler.prototype.isDelayedSelection=function(a,d){var c=p.apply(this,arguments);if(!c)for(var b=this.graph.getModel(),g=b.getParent(a);null!=g;){if(this.graph.isCellSelected(g)&&b.isVertex(g)){c=!0;break}g=b.getParent(g)}return c};mxGraphHandler.prototype.selectDelayed= +function(a){if(!this.graph.popupMenuHandler.isPopupTrigger(a)){var d=a.getCell();null==d&&(d=this.cell);var c=this.graph.view.getState(d);if(null==c||!a.isSource(c.control))for(var c=this.graph.getModel(),b=c.getParent(d);!this.graph.isCellSelected(b)&&c.isVertex(b);)d=b,b=c.getParent(d);this.graph.selectCellForEvent(d,a.getEvent())}};mxPopupMenuHandler.prototype.getCellForPopupEvent=function(a){a=a.getCell();for(var d=this.graph.getModel(),c=d.getParent(a);d.isVertex(c)&&!this.graph.isContainer(c);)this.graph.isCellSelected(c)&& +(a=c),c=d.getParent(c);return a}})();EditorUi=function(a,b,e){mxEventSource.call(this);this.destroyFunctions=[];this.editor=a||new Editor;this.container=b||document.body;var d=this.editor.graph;d.lightbox=e;d.useCssTransforms&&(this.lazyZoomDelay=0);mxClient.IS_SVG?mxPopupMenu.prototype.submenuImage="data:image/gif;base64,R0lGODlhCQAJAIAAAP///zMzMyH5BAEAAAAALAAAAAAJAAkAAAIPhI8WebHsHopSOVgb26AAADs=":(new Image).src=mxPopupMenu.prototype.submenuImage;mxClient.IS_SVG||null==mxConnectionHandler.prototype.connectImage||((new Image).src=mxConnectionHandler.prototype.connectImage.src); +this.editor.chromeless&&!this.editor.editable&&(this.footerHeight=0,d.isEnabled=function(){return!1},d.panningHandler.isForcePanningEvent=function(a){return!mxEvent.isPopupTrigger(a.getEvent())});this.actions=new Actions(this);this.menus=this.createMenus();this.createDivs();this.createUi();this.refresh();var k=mxUtils.bind(this,function(a){null==a&&(a=window.event);return this.isSelectionAllowed(a)||d.isEditing()});this.container==document.body&&(this.menubarContainer.onselectstart=k,this.menubarContainer.onmousedown= +k,this.toolbarContainer.onselectstart=k,this.toolbarContainer.onmousedown=k,this.diagramContainer.onselectstart=k,this.diagramContainer.onmousedown=k,this.sidebarContainer.onselectstart=k,this.sidebarContainer.onmousedown=k,this.formatContainer.onselectstart=k,this.formatContainer.onmousedown=k,this.footerContainer.onselectstart=k,this.footerContainer.onmousedown=k,null!=this.tabContainer&&(this.tabContainer.onselectstart=k));!this.editor.chromeless||this.editor.editable?(b=function(a){var c=mxEvent.getSource(a); +if("A"==c.nodeName)for(;null!=c;){if("geHint"==c.className)return!0;c=c.parentNode}return k(a)},mxClient.IS_IE&&("undefined"===typeof document.documentMode||9>document.documentMode)?mxEvent.addListener(this.diagramContainer,"contextmenu",b):this.diagramContainer.oncontextmenu=b):d.panningHandler.usePopupTrigger=!1;d.init(this.diagramContainer);mxClient.IS_SVG&&null!=d.view.getDrawPane()&&(b=d.view.getDrawPane().ownerSVGElement,null!=b&&(b.style.position="absolute"));this.hoverIcons=this.createHoverIcons(); +mxEvent.addListener(this.diagramContainer,"mousemove",mxUtils.bind(this,function(a){var c=mxUtils.getOffset(this.diagramContainer);0<mxEvent.getClientX(a)-c.x-this.diagramContainer.clientWidth||0<mxEvent.getClientY(a)-c.y-this.diagramContainer.clientHeight?this.diagramContainer.setAttribute("title",mxResources.get("panTooltip")):this.diagramContainer.removeAttribute("title")}));var l=!1,p=this.hoverIcons.isResetEvent;this.hoverIcons.isResetEvent=function(a,c){return l||p.apply(this,arguments)};this.keydownHandler= +mxUtils.bind(this,function(a){32==a.which?(l=!0,this.hoverIcons.reset(),d.container.style.cursor="move",d.isEditing()||mxEvent.getSource(a)!=d.container||mxEvent.consume(a)):mxEvent.isConsumed(a)||27!=a.keyCode||this.hideDialog()});mxEvent.addListener(document,"keydown",this.keydownHandler);this.keyupHandler=mxUtils.bind(this,function(a){d.container.style.cursor="";l=!1});mxEvent.addListener(document,"keyup",this.keyupHandler);var q=d.panningHandler.isForcePanningEvent;d.panningHandler.isForcePanningEvent= +function(a){return q.apply(this,arguments)||l||mxEvent.isMouseEvent(a.getEvent())&&(this.usePopupTrigger||!mxEvent.isPopupTrigger(a.getEvent()))&&(!mxEvent.isControlDown(a.getEvent())&&mxEvent.isRightMouseButton(a.getEvent())||mxEvent.isMiddleMouseButton(a.getEvent()))};var u=d.cellEditor.isStopEditingEvent;d.cellEditor.isStopEditingEvent=function(a){return u.apply(this,arguments)||13==a.keyCode&&(!mxClient.IS_SF&&mxEvent.isControlDown(a)||mxClient.IS_MAC&&mxEvent.isMetaDown(a)||mxClient.IS_SF&&mxEvent.isShiftDown(a))}; +var c=!1,f=null,g=null,n=null,r=mxUtils.bind(this,function(){if(null!=this.toolbar&&c!=d.cellEditor.isContentEditing()){for(var a=this.toolbar.container.firstChild,b=[];null!=a;){var e=a.nextSibling;0>mxUtils.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;h<n.length;h++)this.toolbar.container.appendChild(n[h]);this.toolbar.fontMenu=f;this.toolbar.sizeMenu= +g}c=d.cellEditor.isContentEditing();f=a;g=e;n=b}}),h=this,m=d.cellEditor.startEditing;d.cellEditor.startEditing=function(){m.apply(this,arguments);r();if(d.cellEditor.isContentEditing()){var a=!1,c=function(){a||(a=!0,window.setTimeout(function(){for(var c=d.getSelectedElement();null!=c&&c.nodeType!=mxConstants.NODETYPE_ELEMENT;)c=c.parentNode;if(null!=c&&(c=mxUtils.getCurrentStyle(c),null!=c&&null!=h.toolbar)){var b=c.fontFamily;"'"==b.charAt(0)&&(b=b.substring(1));"'"==b.charAt(b.length-1)&&(b= +b.substring(0,b.length-1));h.toolbar.setFontName(b);h.toolbar.setFontSize(parseInt(c.fontSize))}a=!1},0))};mxEvent.addListener(d.cellEditor.textarea,"input",c);mxEvent.addListener(d.cellEditor.textarea,"touchend",c);mxEvent.addListener(d.cellEditor.textarea,"mouseup",c);mxEvent.addListener(d.cellEditor.textarea,"keyup",c);c()}};var w=d.cellEditor.stopEditing;d.cellEditor.stopEditing=function(a,c){w.apply(this,arguments);r()};d.container.setAttribute("tabindex","0");d.container.style.cursor="default"; +if(window.self===window.top&&null!=d.container.parentNode)try{d.container.focus()}catch(B){}var v=d.fireMouseEvent;d.fireMouseEvent=function(a,c,d){a==mxEvent.MOUSE_DOWN&&this.container.focus();v.apply(this,arguments)};d.popupMenuHandler.autoExpand=!0;null!=this.menus&&(d.popupMenuHandler.factoryMethod=mxUtils.bind(this,function(a,c,d){this.menus.createPopupMenu(a,c,d)}));mxEvent.addGestureListeners(document,mxUtils.bind(this,function(a){d.popupMenuHandler.hideMenu()}));this.keyHandler=this.createKeyHandler(a); +this.getKeyHandler=function(){return keyHandler};var A="rounded shadow glass dashed dashPattern comic labelBackgroundColor".split(" "),y="shape edgeStyle curved rounded elbow comic jumpStyle jumpSize".split(" ");this.setDefaultStyle=function(a){var c=d.view.getState(a);if(null!=c){a=a.clone();a.style="";a=d.getCellStyle(a);var b=[],f=[],g;for(g in c.style)a[g]!=c.style[g]&&(b.push(c.style[g]),f.push(g));g=d.getModel().getStyle(c.cell);for(var e=null!=g?g.split(";"):[],h=0;h<e.length;h++){var n=e[h], +m=n.indexOf("=");0<=m&&(g=n.substring(0,m),n=n.substring(m+1),null!=a[g]&&"none"==n&&(b.push(n),f.push(g)))}d.getModel().isEdge(c.cell)?d.currentEdgeStyle={}:d.currentVertexStyle={};this.fireEvent(new mxEventObject("styleChanged","keys",f,"values",b,"cells",[c.cell]))}};this.clearDefaultStyle=function(){d.currentEdgeStyle=mxUtils.clone(d.defaultEdgeStyle);d.currentVertexStyle=mxUtils.clone(d.defaultVertexStyle);this.fireEvent(new mxEventObject("styleChanged","keys",[],"values",[],"cells",[]))};var t= +["fontFamily","fontSize","fontColor"],z="edgeStyle startArrow startFill startSize endArrow endFill endSize jettySize orthogonalLoop".split(" "),H=["startArrow startFill startSize endArrow endFill endSize jettySize orthogonalLoop".split(" "),["strokeColor","strokeWidth"],["fillColor","gradientColor"],t,["opacity"],["align"],["html"]];for(a=0;a<H.length;a++)for(b=0;b<H[a].length;b++)A.push(H[a][b]);for(a=0;a<y.length;a++)0>mxUtils.indexOf(A,y[a])&&A.push(y[a]);var G=function(a,c){var b=d.getModel(); +b.beginUpdate();try{if(c)for(var f=b.isEdge(n),g=f?d.currentEdgeStyle:d.currentVertexStyle,f=["fontSize","fontFamily","fontColor"],e=0;e<f.length;e++){var h=g[f[e]];null!=h&&d.setCellStyles(f[e],h,a)}else for(h=0;h<a.length;h++){for(var n=a[h],m=b.getStyle(n),r=null!=m?m.split(";"):[],F=A.slice(),e=0;e<r.length;e++){var t=r[e],v=t.indexOf("=");if(0<=v){var w=t.substring(0,v),k=mxUtils.indexOf(F,w);0<=k&&F.splice(k,1);for(var q=0;q<H.length;q++){var z=H[q];if(0<=mxUtils.indexOf(z,w))for(var B=0;B< +z.length;B++){var l=mxUtils.indexOf(F,z[B]);0<=l&&F.splice(l,1)}}}}for(var g=(f=b.isEdge(n))?d.currentEdgeStyle:d.currentVertexStyle,p=b.getStyle(n),e=0;e<F.length;e++){var w=F[e],J=g[w];null==J||"shape"==w&&!f||f&&!(0>mxUtils.indexOf(y,w))||(p=mxUtils.setStyle(p,w,J))}b.setStyle(n,p)}}finally{b.endUpdate()}};d.addListener("cellsInserted",function(a,c){G(c.getProperty("cells"))});d.addListener("textInserted",function(a,c){G(c.getProperty("cells"),!0)});d.connectionHandler.addListener(mxEvent.CONNECT, +function(a,c){var d=[c.getProperty("cell")];c.getProperty("terminalInserted")&&d.push(c.getProperty("terminal"));G(d)});this.addListener("styleChanged",mxUtils.bind(this,function(a,c){var b=c.getProperty("cells"),f=!1,g=!1;if(0<b.length)for(var e=0;e<b.length&&(f=d.getModel().isVertex(b[e])||f,!(g=d.getModel().isEdge(b[e])||g)||!f);e++);else g=f=!0;for(var b=c.getProperty("keys"),h=c.getProperty("values"),e=0;e<b.length;e++){var n=0<=mxUtils.indexOf(t,b[e]);if("strokeColor"!=b[e]||null!=h[e]&&"none"!= +h[e])if(0<=mxUtils.indexOf(y,b[e]))g||0<=mxUtils.indexOf(z,b[e])?null==h[e]?delete d.currentEdgeStyle[b[e]]:d.currentEdgeStyle[b[e]]=h[e]:f&&0<=mxUtils.indexOf(A,b[e])&&(null==h[e]?delete d.currentVertexStyle[b[e]]:d.currentVertexStyle[b[e]]=h[e]);else if(0<=mxUtils.indexOf(A,b[e])){if(f||n)null==h[e]?delete d.currentVertexStyle[b[e]]:d.currentVertexStyle[b[e]]=h[e];if(g||n||0<=mxUtils.indexOf(z,b[e]))null==h[e]?delete d.currentEdgeStyle[b[e]]:d.currentEdgeStyle[b[e]]=h[e]}}null!=this.toolbar&&(this.toolbar.setFontName(d.currentVertexStyle.fontFamily|| +Menus.prototype.defaultFont),this.toolbar.setFontSize(d.currentVertexStyle.fontSize||Menus.prototype.defaultFontSize),null!=this.toolbar.edgeStyleMenu&&(this.toolbar.edgeStyleMenu.getElementsByTagName("div")[0].className="orthogonalEdgeStyle"==d.currentEdgeStyle.edgeStyle&&"1"==d.currentEdgeStyle.curved?"geSprite geSprite-curved":"straight"==d.currentEdgeStyle.edgeStyle||"none"==d.currentEdgeStyle.edgeStyle||null==d.currentEdgeStyle.edgeStyle?"geSprite geSprite-straight":"entityRelationEdgeStyle"== +d.currentEdgeStyle.edgeStyle?"geSprite geSprite-entity":"elbowEdgeStyle"==d.currentEdgeStyle.edgeStyle?"geSprite geSprite-"+("vertical"==d.currentEdgeStyle.elbow?"verticalelbow":"horizontalelbow"):"isometricEdgeStyle"==d.currentEdgeStyle.edgeStyle?"geSprite geSprite-"+("vertical"==d.currentEdgeStyle.elbow?"verticalisometric":"horizontalisometric"):"geSprite geSprite-orthogonal"),null!=this.toolbar.edgeShapeMenu&&(this.toolbar.edgeShapeMenu.getElementsByTagName("div")[0].className="link"==d.currentEdgeStyle.shape? +"geSprite geSprite-linkedge":"flexArrow"==d.currentEdgeStyle.shape?"geSprite geSprite-arrow":"arrow"==d.currentEdgeStyle.shape?"geSprite geSprite-simplearrow":"geSprite geSprite-connection"),null!=this.toolbar.lineStartMenu&&(this.toolbar.lineStartMenu.getElementsByTagName("div")[0].className=this.getCssClassForMarker("start",d.currentEdgeStyle.shape,d.currentEdgeStyle[mxConstants.STYLE_STARTARROW],mxUtils.getValue(d.currentEdgeStyle,"startFill","1"))),null!=this.toolbar.lineEndMenu&&(this.toolbar.lineEndMenu.getElementsByTagName("div")[0].className= +this.getCssClassForMarker("end",d.currentEdgeStyle.shape,d.currentEdgeStyle[mxConstants.STYLE_ENDARROW],mxUtils.getValue(d.currentEdgeStyle,"endFill","1"))))}));null!=this.toolbar&&(a=mxUtils.bind(this,function(){var a=d.currentVertexStyle.fontFamily||"Helvetica",c=String(d.currentVertexStyle.fontSize||"12"),b=d.getView().getState(d.getSelectionCell());null!=b&&(a=b.style[mxConstants.STYLE_FONTFAMILY]||a,c=b.style[mxConstants.STYLE_FONTSIZE]||c,10<a.length&&(a=a.substring(0,8)+"..."));this.toolbar.setFontName(a); +this.toolbar.setFontSize(c)}),d.getSelectionModel().addListener(mxEvent.CHANGE,a),d.getModel().addListener(mxEvent.CHANGE,a));d.addListener(mxEvent.CELLS_ADDED,function(a,c){var b=c.getProperty("cells"),f=c.getProperty("parent");d.getModel().isLayer(f)&&!d.isCellVisible(f)&&null!=b&&0<b.length&&d.getModel().setVisible(f,!0)});this.gestureHandler=mxUtils.bind(this,function(a){null!=this.currentMenu&&mxEvent.getSource(a)!=this.currentMenu.div&&this.hideCurrentMenu()});mxEvent.addGestureListeners(document, this.gestureHandler);this.resizeHandler=mxUtils.bind(this,function(){window.setTimeout(mxUtils.bind(this,function(){null!=this.editor.graph&&this.refresh()}),0)});mxEvent.addListener(window,"resize",this.resizeHandler);this.orientationChangeHandler=mxUtils.bind(this,function(){this.refresh()});mxEvent.addListener(window,"orientationchange",this.orientationChangeHandler);mxClient.IS_IOS&&!window.navigator.standalone&&(this.scrollHandler=mxUtils.bind(this,function(){window.scrollTo(0,0)}),mxEvent.addListener(window, -"scroll",this.scrollHandler));this.editor.addListener("resetGraphView",mxUtils.bind(this,function(){this.resetScrollbars()}));this.addListener("gridEnabledChanged",mxUtils.bind(this,function(){b.view.validateBackground()}));this.addListener("backgroundColorChanged",mxUtils.bind(this,function(){b.view.validateBackground()}));b.addListener("gridSizeChanged",mxUtils.bind(this,function(){b.isGridEnabled()&&b.view.validateBackground()}));this.editor.resetGraph();this.init();this.open()}; +"scroll",this.scrollHandler));this.editor.addListener("resetGraphView",mxUtils.bind(this,function(){this.resetScrollbars()}));this.addListener("gridEnabledChanged",mxUtils.bind(this,function(){d.view.validateBackground()}));this.addListener("backgroundColorChanged",mxUtils.bind(this,function(){d.view.validateBackground()}));d.addListener("gridSizeChanged",mxUtils.bind(this,function(){d.isGridEnabled()&&d.view.validateBackground()}));this.editor.resetGraph();this.init();this.open()}; mxUtils.extend(EditorUi,mxEventSource);EditorUi.compactUi=!0;EditorUi.prototype.splitSize=mxClient.IS_TOUCH||mxClient.IS_POINTER?12:8;EditorUi.prototype.menubarHeight=30;EditorUi.prototype.formatEnabled=!0;EditorUi.prototype.formatWidth=240;EditorUi.prototype.toolbarHeight=34;EditorUi.prototype.footerHeight=28;EditorUi.prototype.sidebarFooterHeight=34;EditorUi.prototype.hsplitPosition=640>=screen.width?118:208;EditorUi.prototype.allowAnimation=!0;EditorUi.prototype.lightboxMaxFitScale=2; EditorUi.prototype.lightboxVerticalDivider=4;EditorUi.prototype.hsplitClickEnabled=!1; EditorUi.prototype.init=function(){var a=this.editor.graph;mxEvent.addListener(a.container,"keydown",mxUtils.bind(this,function(a){this.onKeyDown(a)}));mxEvent.addListener(a.container,"keypress",mxUtils.bind(this,function(a){this.onKeyPress(a)}));this.addUndoListener();this.addBeforeUnloadListener();a.getSelectionModel().addListener(mxEvent.CHANGE,mxUtils.bind(this,function(){this.updateActionStates()}));a.getModel().addListener(mxEvent.CHANGE,mxUtils.bind(this,function(){this.updateActionStates()})); -var d=a.setDefaultParent,e=this;this.editor.graph.setDefaultParent=function(){d.apply(this,arguments);e.updateActionStates()};a.editLink=e.actions.get("editLink").funct;this.updateActionStates();this.initClipboard();this.initCanvas();null!=this.format&&this.format.init()};EditorUi.prototype.onKeyDown=function(a){var d=this.editor.graph;9==a.which&&d.isEnabled()&&!mxEvent.isAltDown(a)&&(d.isEditing()?d.stopEditing(!1):d.selectCell(!mxEvent.isShiftDown(a)),mxEvent.consume(a))}; -EditorUi.prototype.onKeyPress=function(a){var d=this.editor.graph;!this.isImmediateEditingEvent(a)||d.isEditing()||d.isSelectionEmpty()||0===a.which||mxEvent.isAltDown(a)||mxEvent.isControlDown(a)||mxEvent.isMetaDown(a)||(d.escape(),d.startEditing(),mxClient.IS_FF&&(d=d.cellEditor,d.textarea.innerHTML=String.fromCharCode(a.which),a=document.createRange(),a.selectNodeContents(d.textarea),a.collapse(!1),d=window.getSelection(),d.removeAllRanges(),d.addRange(a)))}; +var b=a.setDefaultParent,e=this;this.editor.graph.setDefaultParent=function(){b.apply(this,arguments);e.updateActionStates()};a.editLink=e.actions.get("editLink").funct;this.updateActionStates();this.initClipboard();this.initCanvas();null!=this.format&&this.format.init()};EditorUi.prototype.onKeyDown=function(a){var b=this.editor.graph;9==a.which&&b.isEnabled()&&!mxEvent.isAltDown(a)&&(b.isEditing()?b.stopEditing(!1):b.selectCell(!mxEvent.isShiftDown(a)),mxEvent.consume(a))}; +EditorUi.prototype.onKeyPress=function(a){var b=this.editor.graph;!this.isImmediateEditingEvent(a)||b.isEditing()||b.isSelectionEmpty()||0===a.which||mxEvent.isAltDown(a)||mxEvent.isControlDown(a)||mxEvent.isMetaDown(a)||(b.escape(),b.startEditing(),mxClient.IS_FF&&(b=b.cellEditor,b.textarea.innerHTML=String.fromCharCode(a.which),a=document.createRange(),a.selectNodeContents(b.textarea),a.collapse(!1),b=window.getSelection(),b.removeAllRanges(),b.addRange(a)))}; EditorUi.prototype.isImmediateEditingEvent=function(a){return!0}; -EditorUi.prototype.getCssClassForMarker=function(a,d,e,b){return"flexArrow"==d?null!=e&&e!=mxConstants.NONE?"geSprite geSprite-"+a+"blocktrans":"geSprite geSprite-noarrow":e==mxConstants.ARROW_CLASSIC?"1"==b?"geSprite geSprite-"+a+"classic":"geSprite geSprite-"+a+"classictrans":e==mxConstants.ARROW_CLASSIC_THIN?"1"==b?"geSprite geSprite-"+a+"classicthin":"geSprite geSprite-"+a+"classicthintrans":e==mxConstants.ARROW_OPEN?"geSprite geSprite-"+a+"open":e==mxConstants.ARROW_OPEN_THIN?"geSprite geSprite-"+ -a+"openthin":e==mxConstants.ARROW_BLOCK?"1"==b?"geSprite geSprite-"+a+"block":"geSprite geSprite-"+a+"blocktrans":e==mxConstants.ARROW_BLOCK_THIN?"1"==b?"geSprite geSprite-"+a+"blockthin":"geSprite geSprite-"+a+"blockthintrans":e==mxConstants.ARROW_OVAL?"1"==b?"geSprite geSprite-"+a+"oval":"geSprite geSprite-"+a+"ovaltrans":e==mxConstants.ARROW_DIAMOND?"1"==b?"geSprite geSprite-"+a+"diamond":"geSprite geSprite-"+a+"diamondtrans":e==mxConstants.ARROW_DIAMOND_THIN?"1"==b?"geSprite geSprite-"+a+"thindiamond": -"geSprite geSprite-"+a+"thindiamondtrans":"openAsync"==e?"geSprite geSprite-"+a+"openasync":"dash"==e?"geSprite geSprite-"+a+"dash":"cross"==e?"geSprite geSprite-"+a+"cross":"async"==e?"1"==b?"geSprite geSprite-"+a+"async":"geSprite geSprite-"+a+"asynctrans":"circle"==e||"circlePlus"==e?"1"==b||"circle"==e?"geSprite geSprite-"+a+"circle":"geSprite geSprite-"+a+"circleplus":"ERone"==e?"geSprite geSprite-"+a+"erone":"ERmandOne"==e?"geSprite geSprite-"+a+"eronetoone":"ERmany"==e?"geSprite geSprite-"+ +EditorUi.prototype.getCssClassForMarker=function(a,b,e,d){return"flexArrow"==b?null!=e&&e!=mxConstants.NONE?"geSprite geSprite-"+a+"blocktrans":"geSprite geSprite-noarrow":e==mxConstants.ARROW_CLASSIC?"1"==d?"geSprite geSprite-"+a+"classic":"geSprite geSprite-"+a+"classictrans":e==mxConstants.ARROW_CLASSIC_THIN?"1"==d?"geSprite geSprite-"+a+"classicthin":"geSprite geSprite-"+a+"classicthintrans":e==mxConstants.ARROW_OPEN?"geSprite geSprite-"+a+"open":e==mxConstants.ARROW_OPEN_THIN?"geSprite geSprite-"+ +a+"openthin":e==mxConstants.ARROW_BLOCK?"1"==d?"geSprite geSprite-"+a+"block":"geSprite geSprite-"+a+"blocktrans":e==mxConstants.ARROW_BLOCK_THIN?"1"==d?"geSprite geSprite-"+a+"blockthin":"geSprite geSprite-"+a+"blockthintrans":e==mxConstants.ARROW_OVAL?"1"==d?"geSprite geSprite-"+a+"oval":"geSprite geSprite-"+a+"ovaltrans":e==mxConstants.ARROW_DIAMOND?"1"==d?"geSprite geSprite-"+a+"diamond":"geSprite geSprite-"+a+"diamondtrans":e==mxConstants.ARROW_DIAMOND_THIN?"1"==d?"geSprite geSprite-"+a+"thindiamond": +"geSprite geSprite-"+a+"thindiamondtrans":"openAsync"==e?"geSprite geSprite-"+a+"openasync":"dash"==e?"geSprite geSprite-"+a+"dash":"cross"==e?"geSprite geSprite-"+a+"cross":"async"==e?"1"==d?"geSprite geSprite-"+a+"async":"geSprite geSprite-"+a+"asynctrans":"circle"==e||"circlePlus"==e?"1"==d||"circle"==e?"geSprite geSprite-"+a+"circle":"geSprite geSprite-"+a+"circleplus":"ERone"==e?"geSprite geSprite-"+a+"erone":"ERmandOne"==e?"geSprite geSprite-"+a+"eronetoone":"ERmany"==e?"geSprite geSprite-"+ a+"ermany":"ERoneToMany"==e?"geSprite geSprite-"+a+"eronetomany":"ERzeroToOne"==e?"geSprite geSprite-"+a+"eroneopt":"ERzeroToMany"==e?"geSprite geSprite-"+a+"ermanyopt":"geSprite geSprite-noarrow"};EditorUi.prototype.createMenus=function(){return null}; -EditorUi.prototype.updatePasteActionStates=function(){var a=this.editor.graph,d=this.actions.get("paste"),e=this.actions.get("pasteHere");d.setEnabled(this.editor.graph.cellEditor.isContentEditing()||!mxClipboard.isEmpty()&&a.isEnabled()&&!a.isCellLocked(a.getDefaultParent()));e.setEnabled(d.isEnabled())}; -EditorUi.prototype.initClipboard=function(){var a=this,d=mxClipboard.cut;mxClipboard.cut=function(b){b.cellEditor.isContentEditing()?document.execCommand("cut",!1,null):d.apply(this,arguments);a.updatePasteActionStates()};var e=mxClipboard.copy;mxClipboard.copy=function(d){d.cellEditor.isContentEditing()?document.execCommand("copy",!1,null):e.apply(this,arguments);a.updatePasteActionStates()};var b=mxClipboard.paste;mxClipboard.paste=function(d){var e=null;d.cellEditor.isContentEditing()?document.execCommand("paste", -!1,null):e=b.apply(this,arguments);a.updatePasteActionStates();return e};var h=this.editor.graph.cellEditor.startEditing;this.editor.graph.cellEditor.startEditing=function(){h.apply(this,arguments);a.updatePasteActionStates()};var m=this.editor.graph.cellEditor.stopEditing;this.editor.graph.cellEditor.stopEditing=function(d,b){m.apply(this,arguments);a.updatePasteActionStates()};this.updatePasteActionStates()};EditorUi.prototype.lazyZoomDelay=20; +EditorUi.prototype.updatePasteActionStates=function(){var a=this.editor.graph,b=this.actions.get("paste"),e=this.actions.get("pasteHere");b.setEnabled(this.editor.graph.cellEditor.isContentEditing()||!mxClipboard.isEmpty()&&a.isEnabled()&&!a.isCellLocked(a.getDefaultParent()));e.setEnabled(b.isEnabled())}; +EditorUi.prototype.initClipboard=function(){var a=this,b=mxClipboard.cut;mxClipboard.cut=function(d){d.cellEditor.isContentEditing()?document.execCommand("cut",!1,null):b.apply(this,arguments);a.updatePasteActionStates()};var e=mxClipboard.copy;mxClipboard.copy=function(b){b.cellEditor.isContentEditing()?document.execCommand("copy",!1,null):e.apply(this,arguments);a.updatePasteActionStates()};var d=mxClipboard.paste;mxClipboard.paste=function(b){var e=null;b.cellEditor.isContentEditing()?document.execCommand("paste", +!1,null):e=d.apply(this,arguments);a.updatePasteActionStates();return e};var k=this.editor.graph.cellEditor.startEditing;this.editor.graph.cellEditor.startEditing=function(){k.apply(this,arguments);a.updatePasteActionStates()};var l=this.editor.graph.cellEditor.stopEditing;this.editor.graph.cellEditor.stopEditing=function(b,d){l.apply(this,arguments);a.updatePasteActionStates()};this.updatePasteActionStates()};EditorUi.prototype.lazyZoomDelay=20; EditorUi.prototype.initCanvas=function(){var a=this.editor.graph;a.timerAutoScroll=!0;a.getPagePadding=function(){return new mxPoint(Math.max(0,Math.round((a.container.offsetWidth-34)/a.view.scale)),Math.max(0,Math.round((a.container.offsetHeight-34)/a.view.scale)))};a.view.getBackgroundPageBounds=function(){var a=this.graph.getPageLayout(),c=this.graph.getPageSize();return new mxRectangle(this.scale*(this.translate.x+a.x*c.width),this.scale*(this.translate.y+a.y*c.height),this.scale*a.width*c.width, -this.scale*a.height*c.height)};a.getPreferredPageSize=function(a,c,d){a=this.getPageLayout();c=this.getPageSize();return new mxRectangle(0,0,a.width*c.width,a.height*c.height)};var d=null,e=this;if(this.editor.isChromelessView()){this.chromelessResize=d=mxUtils.bind(this,function(c,d,b,f){if(null!=a.container){b=null!=b?b:0;f=null!=f?f:0;var g=a.pageVisible?a.view.getBackgroundPageBounds():a.getGraphBounds(),e=mxUtils.hasScrollbars(a.container),k=a.view.translate,l=a.view.scale,n=mxRectangle.fromRectangle(g); -n.x=n.x/l-k.x;n.y=n.y/l-k.y;n.width/=l;n.height/=l;var k=a.container.scrollTop,r=a.container.scrollLeft,t=mxClient.IS_QUIRKS||8<=document.documentMode?20:14;if(8==document.documentMode||9==document.documentMode)t+=3;var y=a.container.offsetWidth-t,t=a.container.offsetHeight-t;c=c?Math.max(.3,Math.min(d||1,y/n.width)):l;d=(y-c*n.width)/2/c;var F=0==this.lightboxVerticalDivider?0:(t-c*n.height)/this.lightboxVerticalDivider/c;e&&(d=Math.max(d,0),F=Math.max(F,0));if(e||g.width<y||g.height<t)a.view.scaleAndTranslate(c, -Math.floor(d-n.x),Math.floor(F-n.y)),a.container.scrollTop=k*c/l,a.container.scrollLeft=r*c/l;else if(0!=b||0!=f)g=a.view.translate,a.view.setTranslate(Math.floor(g.x+b/l),Math.floor(g.y+f/l))}});this.chromelessWindowResize=mxUtils.bind(this,function(){this.chromelessResize(!1)});var b=mxUtils.bind(this,function(){this.chromelessWindowResize(!1)});mxEvent.addListener(window,"resize",b);this.destroyFunctions.push(function(){mxEvent.removeListener(window,"resize",b)});this.editor.addListener("resetGraphView", +this.scale*a.height*c.height)};a.getPreferredPageSize=function(a,c,b){a=this.getPageLayout();c=this.getPageSize();return new mxRectangle(0,0,a.width*c.width,a.height*c.height)};var b=null,e=this;if(this.editor.isChromelessView()){this.chromelessResize=b=mxUtils.bind(this,function(c,b,d,f){if(null!=a.container){d=null!=d?d:0;f=null!=f?f:0;var g=a.pageVisible?a.view.getBackgroundPageBounds():a.getGraphBounds(),e=mxUtils.hasScrollbars(a.container),h=a.view.translate,n=a.view.scale,m=mxRectangle.fromRectangle(g); +m.x=m.x/n-h.x;m.y=m.y/n-h.y;m.width/=n;m.height/=n;var h=a.container.scrollTop,r=a.container.scrollLeft,t=mxClient.IS_QUIRKS||8<=document.documentMode?20:14;if(8==document.documentMode||9==document.documentMode)t+=3;var y=a.container.offsetWidth-t,t=a.container.offsetHeight-t;c=c?Math.max(.3,Math.min(b||1,y/m.width)):n;b=(y-c*m.width)/2/c;var F=0==this.lightboxVerticalDivider?0:(t-c*m.height)/this.lightboxVerticalDivider/c;e&&(b=Math.max(b,0),F=Math.max(F,0));if(e||g.width<y||g.height<t)a.view.scaleAndTranslate(c, +Math.floor(b-m.x),Math.floor(F-m.y)),a.container.scrollTop=h*c/n,a.container.scrollLeft=r*c/n;else if(0!=d||0!=f)g=a.view.translate,a.view.setTranslate(Math.floor(g.x+d/n),Math.floor(g.y+f/n))}});this.chromelessWindowResize=mxUtils.bind(this,function(){this.chromelessResize(!1)});var d=mxUtils.bind(this,function(){this.chromelessWindowResize(!1)});mxEvent.addListener(window,"resize",d);this.destroyFunctions.push(function(){mxEvent.removeListener(window,"resize",d)});this.editor.addListener("resetGraphView", mxUtils.bind(this,function(){this.chromelessResize(!0)}));this.actions.get("zoomIn").funct=mxUtils.bind(this,function(c){a.zoomIn();this.chromelessResize(!1)});this.actions.get("zoomOut").funct=mxUtils.bind(this,function(c){a.zoomOut();this.chromelessResize(!1)});if("0"!=urlParams.toolbar){this.chromelessToolbar=document.createElement("div");this.chromelessToolbar.style.position="fixed";this.chromelessToolbar.style.overflow="hidden";this.chromelessToolbar.style.boxSizing="border-box";this.chromelessToolbar.style.whiteSpace= -"nowrap";this.chromelessToolbar.style.backgroundColor="#000000";this.chromelessToolbar.style.padding="10px 10px 8px 10px";this.chromelessToolbar.style.left="50%";mxClient.IS_VML||(mxUtils.setPrefixedStyle(this.chromelessToolbar.style,"borderRadius","20px"),mxUtils.setPrefixedStyle(this.chromelessToolbar.style,"transition","opacity 600ms ease-in-out"));var h=mxUtils.bind(this,function(){var c=mxUtils.getCurrentStyle(a.container);this.chromelessToolbar.style.bottom=(null!=c?parseInt(c["margin-bottom"]|| -0):0)+(null!=this.tabContainer?20+parseInt(this.tabContainer.style.height):20)+"px"});this.editor.addListener("resetGraphView",h);h();var m=0,h=mxUtils.bind(this,function(a,c,d){m++;var b=document.createElement("span");b.style.paddingLeft="8px";b.style.paddingRight="8px";b.style.cursor="pointer";mxEvent.addListener(b,"click",a);null!=d&&b.setAttribute("title",d);a=document.createElement("img");a.setAttribute("border","0");a.setAttribute("src",c);b.appendChild(a);this.chromelessToolbar.appendChild(b); -return b}),p=h(mxUtils.bind(this,function(a){this.actions.get("previousPage").funct();mxEvent.consume(a)}),Editor.previousLargeImage,mxResources.get("previousPage")),q=document.createElement("div");q.style.display="inline-block";q.style.verticalAlign="top";q.style.fontFamily="Helvetica,Arial";q.style.marginTop="8px";q.style.fontSize="14px";q.style.color="#ffffff";this.chromelessToolbar.appendChild(q);var u=h(mxUtils.bind(this,function(a){this.actions.get("nextPage").funct();mxEvent.consume(a)}),Editor.nextLargeImage, +"nowrap";this.chromelessToolbar.style.backgroundColor="#000000";this.chromelessToolbar.style.padding="10px 10px 8px 10px";this.chromelessToolbar.style.left="50%";mxClient.IS_VML||(mxUtils.setPrefixedStyle(this.chromelessToolbar.style,"borderRadius","20px"),mxUtils.setPrefixedStyle(this.chromelessToolbar.style,"transition","opacity 600ms ease-in-out"));var k=mxUtils.bind(this,function(){var c=mxUtils.getCurrentStyle(a.container);this.chromelessToolbar.style.bottom=(null!=c?parseInt(c["margin-bottom"]|| +0):0)+(null!=this.tabContainer?20+parseInt(this.tabContainer.style.height):20)+"px"});this.editor.addListener("resetGraphView",k);k();var l=0,k=mxUtils.bind(this,function(a,c,b){l++;var d=document.createElement("span");d.style.paddingLeft="8px";d.style.paddingRight="8px";d.style.cursor="pointer";mxEvent.addListener(d,"click",a);null!=b&&d.setAttribute("title",b);a=document.createElement("img");a.setAttribute("border","0");a.setAttribute("src",c);d.appendChild(a);this.chromelessToolbar.appendChild(d); +return d}),p=k(mxUtils.bind(this,function(a){this.actions.get("previousPage").funct();mxEvent.consume(a)}),Editor.previousLargeImage,mxResources.get("previousPage")),q=document.createElement("div");q.style.display="inline-block";q.style.verticalAlign="top";q.style.fontFamily="Helvetica,Arial";q.style.marginTop="8px";q.style.fontSize="14px";q.style.color="#ffffff";this.chromelessToolbar.appendChild(q);var u=k(mxUtils.bind(this,function(a){this.actions.get("nextPage").funct();mxEvent.consume(a)}),Editor.nextLargeImage, mxResources.get("nextPage")),c=mxUtils.bind(this,function(){null!=this.pages&&1<this.pages.length&&null!=this.currentPage&&(q.innerHTML="",mxUtils.write(q,mxUtils.indexOf(this.pages,this.currentPage)+1+" / "+this.pages.length))});p.style.paddingLeft="0px";p.style.paddingRight="4px";u.style.paddingLeft="4px";u.style.paddingRight="0px";var f=mxUtils.bind(this,function(){null!=this.pages&&1<this.pages.length&&null!=this.currentPage?(u.style.display="",p.style.display="",q.style.display="inline-block"): -(u.style.display="none",p.style.display="none",q.style.display="none");c()});this.editor.addListener("resetGraphView",f);this.editor.addListener("pageSelected",c);h(mxUtils.bind(this,function(a){this.actions.get("zoomOut").funct();mxEvent.consume(a)}),Editor.zoomOutLargeImage,mxResources.get("zoomOut")+" (Alt+Mousewheel)");h(mxUtils.bind(this,function(a){this.actions.get("zoomIn").funct();mxEvent.consume(a)}),Editor.zoomInLargeImage,mxResources.get("zoomIn")+" (Alt+Mousewheel)");h(mxUtils.bind(this, -function(c){a.isLightboxView()?(1==a.view.scale?this.lightboxFit():a.zoomTo(1),this.chromelessResize(!1)):this.chromelessResize(!0);mxEvent.consume(c)}),Editor.actualSizeLargeImage,mxResources.get("fit"));var g=null,k=null,r=mxUtils.bind(this,function(a){null!=g&&(window.clearTimeout(g),fadeThead=null);null!=k&&(window.clearTimeout(k),fadeThead2=null);g=window.setTimeout(mxUtils.bind(this,function(){mxUtils.setOpacity(this.chromelessToolbar,0);g=null;k=window.setTimeout(mxUtils.bind(this,function(){this.chromelessToolbar.style.display= -"none";k=null}),600)}),a||200)}),l=mxUtils.bind(this,function(a){null!=g&&(window.clearTimeout(g),fadeThead=null);null!=k&&(window.clearTimeout(k),fadeThead2=null);this.chromelessToolbar.style.display="";mxUtils.setOpacity(this.chromelessToolbar,a||30)});if("1"==urlParams.layers){this.layersDialog=null;var n=h(mxUtils.bind(this,function(c){if(null!=this.layersDialog)this.layersDialog.parentNode.removeChild(this.layersDialog),this.layersDialog=null;else{this.layersDialog=a.createLayersDialog();mxEvent.addListener(this.layersDialog, -"mouseleave",mxUtils.bind(this,function(){this.layersDialog.parentNode.removeChild(this.layersDialog);this.layersDialog=null}));var d=n.getBoundingClientRect();mxUtils.setPrefixedStyle(this.layersDialog.style,"borderRadius","5px");this.layersDialog.style.position="fixed";this.layersDialog.style.fontFamily="Helvetica,Arial";this.layersDialog.style.backgroundColor="#000000";this.layersDialog.style.width="160px";this.layersDialog.style.padding="4px 2px 4px 2px";this.layersDialog.style.color="#ffffff"; -mxUtils.setOpacity(this.layersDialog,70);this.layersDialog.style.left=d.left+"px";this.layersDialog.style.bottom=parseInt(this.chromelessToolbar.style.bottom)+this.chromelessToolbar.offsetHeight+4+"px";d=mxUtils.getCurrentStyle(this.editor.graph.container);this.layersDialog.style.zIndex=d.zIndex;document.body.appendChild(this.layersDialog)}mxEvent.consume(c)}),Editor.layersLargeImage,mxResources.get("layers")),w=a.getModel();w.addListener(mxEvent.CHANGE,function(){n.style.display=1<w.getChildCount(w.root)? -"":"none"})}this.addChromelessToolbarItems(h);null==this.editor.editButtonLink&&null==this.editor.editButtonFunc||h(mxUtils.bind(this,function(c){null!=this.editor.editButtonFunc?this.editor.editButtonFunc():"_blank"==this.editor.editButtonLink?this.editor.editAsNew(this.getEditBlankXml()):a.openLink(this.editor.editButtonLink,"editWindow");mxEvent.consume(c)}),Editor.editLargeImage,mxResources.get("edit"));if(null!=this.lightboxToolbarActions)for(f=0;f<this.lightboxToolbarActions.length;f++){var v= -this.lightboxToolbarActions[f];h(v.fn,v.icon,v.tooltip)}!a.lightbox||"1"!=urlParams.close&&this.container==document.body||h(mxUtils.bind(this,function(a){"1"==urlParams.close?window.close():(this.destroy(),mxEvent.consume(a))}),Editor.closeLargeImage,mxResources.get("close")+" (Escape)");this.chromelessToolbar.style.display="none";mxUtils.setPrefixedStyle(this.chromelessToolbar.style,"transform","translate(-50%,0)");a.container.appendChild(this.chromelessToolbar);mxEvent.addListener(a.container,mxClient.IS_POINTER? -"pointermove":"mousemove",mxUtils.bind(this,function(a){mxEvent.isTouchEvent(a)||(mxEvent.isShiftDown(a)||l(30),r())}));mxEvent.addListener(this.chromelessToolbar,mxClient.IS_POINTER?"pointermove":"mousemove",function(a){mxEvent.consume(a)});mxEvent.addListener(this.chromelessToolbar,"mouseenter",mxUtils.bind(this,function(a){mxEvent.isShiftDown(a)?r():l(100)}));mxEvent.addListener(this.chromelessToolbar,"mousemove",mxUtils.bind(this,function(a){mxEvent.isShiftDown(a)?r():l(100);mxEvent.consume(a)})); -mxEvent.addListener(this.chromelessToolbar,"mouseleave",mxUtils.bind(this,function(a){mxEvent.isTouchEvent(a)||l(30)}));var B=a.getTolerance();a.addMouseListener({startX:0,startY:0,scrollLeft:0,scrollTop:0,mouseDown:function(c,d){this.startX=d.getGraphX();this.startY=d.getGraphY();this.scrollLeft=a.container.scrollLeft;this.scrollTop=a.container.scrollTop},mouseMove:function(a,c){},mouseUp:function(c,d){mxEvent.isTouchEvent(d.getEvent())&&Math.abs(this.scrollLeft-a.container.scrollLeft)<B&&Math.abs(this.scrollTop- -a.container.scrollTop)<B&&Math.abs(this.startX-d.getGraphX())<B&&Math.abs(this.startY-d.getGraphY())<B&&(0<parseFloat(e.chromelessToolbar.style.opacity||0)?r():l(30))}})}this.editor.editable||this.addChromelessClickHandler()}else if(this.editor.extendCanvas){var y=a.view.validate;a.view.validate=function(){if(null!=this.graph.container&&mxUtils.hasScrollbars(this.graph.container)){var a=this.graph.getPagePadding(),c=this.graph.getPageSize();this.translate.x=a.x-(this.x0||0)*c.width;this.translate.y= -a.y-(this.y0||0)*c.height}y.apply(this,arguments)};var t=a.sizeDidChange;a.sizeDidChange=function(){if(null!=this.container&&mxUtils.hasScrollbars(this.container)){var c=this.getPageLayout(),d=this.getPagePadding(),b=this.getPageSize(),f=Math.ceil(2*d.x+c.width*b.width),g=Math.ceil(2*d.y+c.height*b.height),e=a.minimumGraphSize;if(null==e||e.width!=f||e.height!=g)a.minimumGraphSize=new mxRectangle(0,0,f,g);f=d.x-c.x*b.width;d=d.y-c.y*b.height;this.autoTranslate||this.view.translate.x==f&&this.view.translate.y== -d?t.apply(this,arguments):(this.autoTranslate=!0,this.view.x0=c.x,this.view.y0=c.y,c=a.view.translate.x,b=a.view.translate.y,a.view.setTranslate(f,d),a.container.scrollLeft+=Math.round((f-c)*a.view.scale),a.container.scrollTop+=Math.round((d-b)*a.view.scale),this.autoTranslate=!1)}}}a.updateZoomTimeout=null;a.cumulativeZoomFactor=1;var z=null;a.lazyZoom=function(c){null!=this.updateZoomTimeout&&window.clearTimeout(this.updateZoomTimeout);c?.15>this.view.scale*this.cumulativeZoomFactor?this.cumulativeZoomFactor= +(u.style.display="none",p.style.display="none",q.style.display="none");c()});this.editor.addListener("resetGraphView",f);this.editor.addListener("pageSelected",c);k(mxUtils.bind(this,function(a){this.actions.get("zoomOut").funct();mxEvent.consume(a)}),Editor.zoomOutLargeImage,mxResources.get("zoomOut")+" (Alt+Mousewheel)");k(mxUtils.bind(this,function(a){this.actions.get("zoomIn").funct();mxEvent.consume(a)}),Editor.zoomInLargeImage,mxResources.get("zoomIn")+" (Alt+Mousewheel)");k(mxUtils.bind(this, +function(c){a.isLightboxView()?(1==a.view.scale?this.lightboxFit():a.zoomTo(1),this.chromelessResize(!1)):this.chromelessResize(!0);mxEvent.consume(c)}),Editor.actualSizeLargeImage,mxResources.get("fit"));var g=null,n=null,r=mxUtils.bind(this,function(a){null!=g&&(window.clearTimeout(g),fadeThead=null);null!=n&&(window.clearTimeout(n),fadeThead2=null);g=window.setTimeout(mxUtils.bind(this,function(){mxUtils.setOpacity(this.chromelessToolbar,0);g=null;n=window.setTimeout(mxUtils.bind(this,function(){this.chromelessToolbar.style.display= +"none";n=null}),600)}),a||200)}),h=mxUtils.bind(this,function(a){null!=g&&(window.clearTimeout(g),fadeThead=null);null!=n&&(window.clearTimeout(n),fadeThead2=null);this.chromelessToolbar.style.display="";mxUtils.setOpacity(this.chromelessToolbar,a||30)});if("1"==urlParams.layers){this.layersDialog=null;var m=k(mxUtils.bind(this,function(c){if(null!=this.layersDialog)this.layersDialog.parentNode.removeChild(this.layersDialog),this.layersDialog=null;else{this.layersDialog=a.createLayersDialog();mxEvent.addListener(this.layersDialog, +"mouseleave",mxUtils.bind(this,function(){this.layersDialog.parentNode.removeChild(this.layersDialog);this.layersDialog=null}));var b=m.getBoundingClientRect();mxUtils.setPrefixedStyle(this.layersDialog.style,"borderRadius","5px");this.layersDialog.style.position="fixed";this.layersDialog.style.fontFamily="Helvetica,Arial";this.layersDialog.style.backgroundColor="#000000";this.layersDialog.style.width="160px";this.layersDialog.style.padding="4px 2px 4px 2px";this.layersDialog.style.color="#ffffff"; +mxUtils.setOpacity(this.layersDialog,70);this.layersDialog.style.left=b.left+"px";this.layersDialog.style.bottom=parseInt(this.chromelessToolbar.style.bottom)+this.chromelessToolbar.offsetHeight+4+"px";b=mxUtils.getCurrentStyle(this.editor.graph.container);this.layersDialog.style.zIndex=b.zIndex;document.body.appendChild(this.layersDialog)}mxEvent.consume(c)}),Editor.layersLargeImage,mxResources.get("layers")),w=a.getModel();w.addListener(mxEvent.CHANGE,function(){m.style.display=1<w.getChildCount(w.root)? +"":"none"})}this.addChromelessToolbarItems(k);null==this.editor.editButtonLink&&null==this.editor.editButtonFunc||k(mxUtils.bind(this,function(c){null!=this.editor.editButtonFunc?this.editor.editButtonFunc():"_blank"==this.editor.editButtonLink?this.editor.editAsNew(this.getEditBlankXml()):a.openLink(this.editor.editButtonLink,"editWindow");mxEvent.consume(c)}),Editor.editLargeImage,mxResources.get("edit"));if(null!=this.lightboxToolbarActions)for(f=0;f<this.lightboxToolbarActions.length;f++){var v= +this.lightboxToolbarActions[f];k(v.fn,v.icon,v.tooltip)}!a.lightbox||"1"!=urlParams.close&&this.container==document.body||k(mxUtils.bind(this,function(a){"1"==urlParams.close?window.close():(this.destroy(),mxEvent.consume(a))}),Editor.closeLargeImage,mxResources.get("close")+" (Escape)");this.chromelessToolbar.style.display="none";mxUtils.setPrefixedStyle(this.chromelessToolbar.style,"transform","translate(-50%,0)");a.container.appendChild(this.chromelessToolbar);mxEvent.addListener(a.container,mxClient.IS_POINTER? +"pointermove":"mousemove",mxUtils.bind(this,function(a){mxEvent.isTouchEvent(a)||(mxEvent.isShiftDown(a)||h(30),r())}));mxEvent.addListener(this.chromelessToolbar,mxClient.IS_POINTER?"pointermove":"mousemove",function(a){mxEvent.consume(a)});mxEvent.addListener(this.chromelessToolbar,"mouseenter",mxUtils.bind(this,function(a){mxEvent.isShiftDown(a)?r():h(100)}));mxEvent.addListener(this.chromelessToolbar,"mousemove",mxUtils.bind(this,function(a){mxEvent.isShiftDown(a)?r():h(100);mxEvent.consume(a)})); +mxEvent.addListener(this.chromelessToolbar,"mouseleave",mxUtils.bind(this,function(a){mxEvent.isTouchEvent(a)||h(30)}));var A=a.getTolerance();a.addMouseListener({startX:0,startY:0,scrollLeft:0,scrollTop:0,mouseDown:function(c,b){this.startX=b.getGraphX();this.startY=b.getGraphY();this.scrollLeft=a.container.scrollLeft;this.scrollTop=a.container.scrollTop},mouseMove:function(a,c){},mouseUp:function(c,b){mxEvent.isTouchEvent(b.getEvent())&&Math.abs(this.scrollLeft-a.container.scrollLeft)<A&&Math.abs(this.scrollTop- +a.container.scrollTop)<A&&Math.abs(this.startX-b.getGraphX())<A&&Math.abs(this.startY-b.getGraphY())<A&&(0<parseFloat(e.chromelessToolbar.style.opacity||0)?r():h(30))}})}this.editor.editable||this.addChromelessClickHandler()}else if(this.editor.extendCanvas){var y=a.view.validate;a.view.validate=function(){if(null!=this.graph.container&&mxUtils.hasScrollbars(this.graph.container)){var a=this.graph.getPagePadding(),c=this.graph.getPageSize();this.translate.x=a.x-(this.x0||0)*c.width;this.translate.y= +a.y-(this.y0||0)*c.height}y.apply(this,arguments)};var t=a.sizeDidChange;a.sizeDidChange=function(){if(null!=this.container&&mxUtils.hasScrollbars(this.container)){var c=this.getPageLayout(),b=this.getPagePadding(),d=this.getPageSize(),f=Math.ceil(2*b.x+c.width*d.width),g=Math.ceil(2*b.y+c.height*d.height),e=a.minimumGraphSize;if(null==e||e.width!=f||e.height!=g)a.minimumGraphSize=new mxRectangle(0,0,f,g);f=b.x-c.x*d.width;b=b.y-c.y*d.height;this.autoTranslate||this.view.translate.x==f&&this.view.translate.y== +b?t.apply(this,arguments):(this.autoTranslate=!0,this.view.x0=c.x,this.view.y0=c.y,c=a.view.translate.x,d=a.view.translate.y,a.view.setTranslate(f,b),a.container.scrollLeft+=Math.round((f-c)*a.view.scale),a.container.scrollTop+=Math.round((b-d)*a.view.scale),this.autoTranslate=!1)}}}a.updateZoomTimeout=null;a.cumulativeZoomFactor=1;var z=null;a.lazyZoom=function(c){null!=this.updateZoomTimeout&&window.clearTimeout(this.updateZoomTimeout);c?.15>this.view.scale*this.cumulativeZoomFactor?this.cumulativeZoomFactor= (this.view.scale+.01)/this.view.scale:(this.cumulativeZoomFactor*=this.zoomFactor,this.cumulativeZoomFactor=Math.round(this.view.scale*this.cumulativeZoomFactor*20)/20/this.view.scale):.15>=this.view.scale*this.cumulativeZoomFactor?this.cumulativeZoomFactor=(this.view.scale-.01)/this.view.scale:(this.cumulativeZoomFactor/=this.zoomFactor,this.cumulativeZoomFactor=Math.round(this.view.scale*this.cumulativeZoomFactor*20)/20/this.view.scale);this.cumulativeZoomFactor=Math.max(.01,Math.min(this.view.scale* -this.cumulativeZoomFactor,160)/this.view.scale);this.updateZoomTimeout=window.setTimeout(mxUtils.bind(this,function(){var c=mxUtils.getOffset(a.container),b=0,f=0;null!=z&&(b=a.container.offsetWidth/2-z.x+c.x,f=a.container.offsetHeight/2-z.y+c.y);c=this.view.scale;this.zoom(this.cumulativeZoomFactor);this.view.scale!=c&&(null!=d&&e.chromelessResize(!1,null,b*(this.cumulativeZoomFactor-1),f*(this.cumulativeZoomFactor-1)),!mxUtils.hasScrollbars(a.container)||0==b&&0==f||(a.container.scrollLeft-=b*(this.cumulativeZoomFactor- -1),a.container.scrollTop-=f*(this.cumulativeZoomFactor-1)));this.cumulativeZoomFactor=1;this.updateZoomTimeout=null}),this.lazyZoomDelay)};mxEvent.addMouseWheelListener(mxUtils.bind(this,function(c,d){if((null==this.dialogs||0==this.dialogs.length)&&a.isZoomWheelEvent(c))for(var b=mxEvent.getSource(c);null!=b;){if(b==a.container){z=new mxPoint(mxEvent.getClientX(c),mxEvent.getClientY(c));a.lazyZoom(d);mxEvent.consume(c);break}b=b.parentNode}}))}; +this.cumulativeZoomFactor,160)/this.view.scale);this.updateZoomTimeout=window.setTimeout(mxUtils.bind(this,function(){var c=mxUtils.getOffset(a.container),d=0,f=0;null!=z&&(d=a.container.offsetWidth/2-z.x+c.x,f=a.container.offsetHeight/2-z.y+c.y);c=this.view.scale;this.zoom(this.cumulativeZoomFactor);this.view.scale!=c&&(null!=b&&e.chromelessResize(!1,null,d*(this.cumulativeZoomFactor-1),f*(this.cumulativeZoomFactor-1)),!mxUtils.hasScrollbars(a.container)||0==d&&0==f||(a.container.scrollLeft-=d*(this.cumulativeZoomFactor- +1),a.container.scrollTop-=f*(this.cumulativeZoomFactor-1)));this.cumulativeZoomFactor=1;this.updateZoomTimeout=null}),this.lazyZoomDelay)};mxEvent.addMouseWheelListener(mxUtils.bind(this,function(c,b){if((null==this.dialogs||0==this.dialogs.length)&&a.isZoomWheelEvent(c))for(var d=mxEvent.getSource(c);null!=d;){if(d==a.container){z=new mxPoint(mxEvent.getClientX(c),mxEvent.getClientY(c));a.lazyZoom(b);mxEvent.consume(c);break}d=d.parentNode}}))}; EditorUi.prototype.addChromelessToolbarItems=function(a){a(mxUtils.bind(this,function(a){this.actions.get("print").funct();mxEvent.consume(a)}),Editor.printLargeImage,mxResources.get("print"))}; EditorUi.prototype.createTemporaryGraph=function(a){a=new Graph(document.createElement("div"),null,null,a);a.resetViewOnRootChange=!1;a.setConnectable(!1);a.gridEnabled=!1;a.autoScroll=!1;a.setTooltips(!1);a.setEnabled(!1);a.container.style.visibility="hidden";a.container.style.position="absolute";a.container.style.overflow="hidden";a.container.style.height="1px";a.container.style.width="1px";return a}; EditorUi.prototype.addChromelessClickHandler=function(){var a=urlParams.highlight;null!=a&&0<a.length&&(a="#"+a);this.editor.graph.addClickHandler(a)};EditorUi.prototype.toggleFormatPanel=function(a){this.formatWidth=a||0<this.formatWidth?0:240;this.formatContainer.style.display=a||0<this.formatWidth?"":"none";this.refresh();this.format.refresh();this.fireEvent(new mxEventObject("formatWidthChanged"))}; -EditorUi.prototype.lightboxFit=function(a){if(this.isDiagramEmpty())this.editor.graph.view.setScale(1);else{var d=urlParams.border,e=60;null!=d&&(e=parseInt(d));this.editor.graph.maxFitScale=this.lightboxMaxFitScale;this.editor.graph.fit(e,null,null,null,null,null,a);this.editor.graph.maxFitScale=null}};EditorUi.prototype.isDiagramEmpty=function(){var a=this.editor.graph.getModel();return 1==a.getChildCount(a.root)&&0==a.getChildCount(a.getChildAt(a.root,0))}; +EditorUi.prototype.lightboxFit=function(a){if(this.isDiagramEmpty())this.editor.graph.view.setScale(1);else{var b=urlParams.border,e=60;null!=b&&(e=parseInt(b));this.editor.graph.maxFitScale=this.lightboxMaxFitScale;this.editor.graph.fit(e,null,null,null,null,null,a);this.editor.graph.maxFitScale=null}};EditorUi.prototype.isDiagramEmpty=function(){var a=this.editor.graph.getModel();return 1==a.getChildCount(a.root)&&0==a.getChildCount(a.getChildAt(a.root,0))}; EditorUi.prototype.isSelectionAllowed=function(a){return"SELECT"==mxEvent.getSource(a).nodeName||"INPUT"==mxEvent.getSource(a).nodeName&&mxUtils.isAncestorNode(this.formatContainer,mxEvent.getSource(a))};EditorUi.prototype.addBeforeUnloadListener=function(){window.onbeforeunload=mxUtils.bind(this,function(){if(!this.editor.isChromelessView())return this.onBeforeUnload()})};EditorUi.prototype.onBeforeUnload=function(){if(this.editor.modified)return mxResources.get("allChangesLost")}; -EditorUi.prototype.open=function(){try{null!=window.opener&&null!=window.opener.openFile&&window.opener.openFile.setConsumer(mxUtils.bind(this,function(a,d){try{var e=mxUtils.parseXml(a);this.editor.setGraphXml(e.documentElement);this.editor.setModified(!1);this.editor.undoManager.clear();null!=d&&(this.editor.setFilename(d),this.updateDocumentTitle())}catch(b){mxUtils.alert(mxResources.get("invalidOrMissingFile")+": "+b.message)}}))}catch(a){}this.editor.graph.view.validate();this.editor.graph.sizeDidChange(); -this.editor.fireEvent(new mxEventObject("resetGraphView"))};EditorUi.prototype.setCurrentMenu=function(a,d){this.currentMenuElt=d;this.currentMenu=a};EditorUi.prototype.resetCurrentMenu=function(){this.currentMenu=this.currentMenuElt=null};EditorUi.prototype.hideCurrentMenu=function(){null!=this.currentMenu&&(this.currentMenu.hideMenu(),this.resetCurrentMenu())}; +EditorUi.prototype.open=function(){try{null!=window.opener&&null!=window.opener.openFile&&window.opener.openFile.setConsumer(mxUtils.bind(this,function(a,b){try{var e=mxUtils.parseXml(a);this.editor.setGraphXml(e.documentElement);this.editor.setModified(!1);this.editor.undoManager.clear();null!=b&&(this.editor.setFilename(b),this.updateDocumentTitle())}catch(d){mxUtils.alert(mxResources.get("invalidOrMissingFile")+": "+d.message)}}))}catch(a){}this.editor.graph.view.validate();this.editor.graph.sizeDidChange(); +this.editor.fireEvent(new mxEventObject("resetGraphView"))};EditorUi.prototype.setCurrentMenu=function(a,b){this.currentMenuElt=b;this.currentMenu=a};EditorUi.prototype.resetCurrentMenu=function(){this.currentMenu=this.currentMenuElt=null};EditorUi.prototype.hideCurrentMenu=function(){null!=this.currentMenu&&(this.currentMenu.hideMenu(),this.resetCurrentMenu())}; EditorUi.prototype.updateDocumentTitle=function(){var a=this.editor.getOrCreateFilename();null!=this.editor.appName&&(a+=" - "+this.editor.appName);document.title=a};EditorUi.prototype.createHoverIcons=function(){return new HoverIcons(this.editor.graph)};EditorUi.prototype.redo=function(){try{this.editor.graph.isEditing()?document.execCommand("redo",!1,null):this.editor.undoManager.redo()}catch(a){}}; -EditorUi.prototype.undo=function(){try{var a=this.editor.graph;if(a.isEditing()){var d=a.cellEditor.textarea.innerHTML;document.execCommand("undo",!1,null);d==a.cellEditor.textarea.innerHTML&&(a.stopEditing(!0),this.editor.undoManager.undo())}else this.editor.undoManager.undo()}catch(e){}};EditorUi.prototype.canRedo=function(){return this.editor.graph.isEditing()||this.editor.undoManager.canRedo()};EditorUi.prototype.canUndo=function(){return this.editor.graph.isEditing()||this.editor.undoManager.canUndo()}; -EditorUi.prototype.getEditBlankXml=function(){return mxUtils.getXml(this.editor.getGraphXml())};EditorUi.prototype.getUrl=function(a){a=null!=a?a:window.location.pathname;var d=0<a.indexOf("?")?1:0,e;for(e in urlParams)a=0==d?a+"?":a+"&",a+=e+"="+urlParams[e],d++;return a}; -EditorUi.prototype.setScrollbars=function(a){var d=this.editor.graph,e=d.container.style.overflow;d.scrollbars=a;this.editor.updateGraphComponents();e!=d.container.style.overflow&&("hidden"==d.container.style.overflow?(a=d.view.translate,d.view.setTranslate(a.x-d.container.scrollLeft/d.view.scale,a.y-d.container.scrollTop/d.view.scale),d.container.scrollLeft=0,d.container.scrollTop=0,d.minimumGraphSize=null,d.sizeDidChange()):(a=d.view.translate.x,e=d.view.translate.y,d.view.translate.x=0,d.view.translate.y= -0,d.sizeDidChange(),d.container.scrollLeft-=Math.round(a*d.view.scale),d.container.scrollTop-=Math.round(e*d.view.scale)));this.fireEvent(new mxEventObject("scrollbarsChanged"))};EditorUi.prototype.hasScrollbars=function(){return this.editor.graph.scrollbars}; -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 d=a.getPagePadding();a.container.scrollTop=Math.floor(d.y-this.editor.initialTopSpacing)-1;a.container.scrollLeft=Math.floor(Math.min(d.x,(a.container.scrollWidth-a.container.clientWidth)/2))- -1;d=a.getGraphBounds();0<d.width&&0<d.height&&(d.x>a.container.scrollLeft+.9*a.container.clientWidth&&(a.container.scrollLeft=Math.min(d.x+d.width-a.container.clientWidth,d.x-10)),d.y>a.container.scrollTop+.9*a.container.clientHeight&&(a.container.scrollTop=Math.min(d.y+d.height-a.container.clientHeight,d.y-10)))}else{var d=a.getGraphBounds(),e=Math.max(d.width,a.scrollTileSize.width*a.view.scale);a.container.scrollTop=Math.floor(Math.max(0,d.y-Math.max(20,(a.container.clientHeight-Math.max(d.height, -a.scrollTileSize.height*a.view.scale))/4)));a.container.scrollLeft=Math.floor(Math.max(0,d.x-Math.max(0,(a.container.clientWidth-e)/2)))}else a.pageVisible?(d=a.view.getBackgroundPageBounds(),a.view.setTranslate(Math.floor(Math.max(0,(a.container.clientWidth-d.width)/2)-d.x),Math.floor(Math.max(0,(a.container.clientHeight-d.height)/2)-d.y))):(d=a.getGraphBounds(),a.view.setTranslate(Math.floor(Math.max(0,Math.max(0,(a.container.clientWidth-d.width)/2)-d.x)),Math.floor(Math.max(0,Math.max(20,(a.container.clientHeight- -d.height)/4))-d.y)))}; -EditorUi.prototype.setPageVisible=function(a){var d=this.editor.graph,e=mxUtils.hasScrollbars(d.container),b=0,h=0;e&&(b=d.view.translate.x*d.view.scale-d.container.scrollLeft,h=d.view.translate.y*d.view.scale-d.container.scrollTop);d.pageVisible=a;d.pageBreaksVisible=a;d.preferPageSize=a;d.view.validateBackground();e&&(a=d.getSelectionCells(),d.clearSelection(),d.setSelectionCells(a));d.sizeDidChange();e&&(d.container.scrollLeft=d.view.translate.x*d.view.scale-b,d.container.scrollTop=d.view.translate.y* -d.view.scale-h);this.fireEvent(new mxEventObject("pageViewChanged"))};function ChangePageSetup(a,d,e,b){this.ui=a;this.previousColor=this.color=d;this.previousImage=this.image=e;this.previousFormat=this.format=b;this.ignoreImage=this.ignoreColor=!1} -ChangePageSetup.prototype.execute=function(){var a=this.ui.editor.graph;if(!this.ignoreColor){this.color=this.previousColor;var d=a.background;this.ui.setBackgroundColor(this.previousColor);this.previousColor=d}this.ignoreImage||(this.image=this.previousImage,d=a.backgroundImage,this.ui.setBackgroundImage(this.previousImage),this.previousImage=d);null!=this.previousFormat&&(this.format=this.previousFormat,d=a.pageFormat,this.previousFormat.width!=d.width||this.previousFormat.height!=d.height)&&(this.ui.setPageFormat(this.previousFormat), -this.previousFormat=d);null!=this.foldingEnabled&&this.foldingEnabled!=this.ui.editor.graph.foldingEnabled&&(this.ui.setFoldingEnabled(this.foldingEnabled),this.foldingEnabled=!this.foldingEnabled)};(function(){var a=new mxObjectCodec(new ChangePageSetup,["ui","previousColor","previousImage","previousFormat"]);a.afterDecode=function(a,e,b){b.previousColor=b.color;b.previousImage=b.image;b.previousFormat=b.format;null!=b.foldingEnabled&&(b.foldingEnabled=!b.foldingEnabled);return b};mxCodecRegistry.register(a)})(); +EditorUi.prototype.undo=function(){try{var a=this.editor.graph;if(a.isEditing()){var b=a.cellEditor.textarea.innerHTML;document.execCommand("undo",!1,null);b==a.cellEditor.textarea.innerHTML&&(a.stopEditing(!0),this.editor.undoManager.undo())}else this.editor.undoManager.undo()}catch(e){}};EditorUi.prototype.canRedo=function(){return this.editor.graph.isEditing()||this.editor.undoManager.canRedo()};EditorUi.prototype.canUndo=function(){return this.editor.graph.isEditing()||this.editor.undoManager.canUndo()}; +EditorUi.prototype.getEditBlankXml=function(){return mxUtils.getXml(this.editor.getGraphXml())};EditorUi.prototype.getUrl=function(a){a=null!=a?a:window.location.pathname;var b=0<a.indexOf("?")?1:0,e;for(e in urlParams)a=0==b?a+"?":a+"&",a+=e+"="+urlParams[e],b++;return a}; +EditorUi.prototype.setScrollbars=function(a){var b=this.editor.graph,e=b.container.style.overflow;b.scrollbars=a;this.editor.updateGraphComponents();e!=b.container.style.overflow&&("hidden"==b.container.style.overflow?(a=b.view.translate,b.view.setTranslate(a.x-b.container.scrollLeft/b.view.scale,a.y-b.container.scrollTop/b.view.scale),b.container.scrollLeft=0,b.container.scrollTop=0,b.minimumGraphSize=null,b.sizeDidChange()):(a=b.view.translate.x,e=b.view.translate.y,b.view.translate.x=0,b.view.translate.y= +0,b.sizeDidChange(),b.container.scrollLeft-=Math.round(a*b.view.scale),b.container.scrollTop-=Math.round(e*b.view.scale)));this.fireEvent(new mxEventObject("scrollbarsChanged"))};EditorUi.prototype.hasScrollbars=function(){return this.editor.graph.scrollbars}; +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();0<b.width&&0<b.height&&(b.x>a.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),d=0,k=0;e&&(d=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-d,b.container.scrollTop=b.view.translate.y* +b.view.scale-k);this.fireEvent(new mxEventObject("pageViewChanged"))};function ChangePageSetup(a,b,e,d){this.ui=a;this.previousColor=this.color=b;this.previousImage=this.image=e;this.previousFormat=this.format=d;this.ignoreImage=this.ignoreColor=!1} +ChangePageSetup.prototype.execute=function(){var a=this.ui.editor.graph;if(!this.ignoreColor){this.color=this.previousColor;var b=a.background;this.ui.setBackgroundColor(this.previousColor);this.previousColor=b}this.ignoreImage||(this.image=this.previousImage,b=a.backgroundImage,this.ui.setBackgroundImage(this.previousImage),this.previousImage=b);null!=this.previousFormat&&(this.format=this.previousFormat,b=a.pageFormat,this.previousFormat.width!=b.width||this.previousFormat.height!=b.height)&&(this.ui.setPageFormat(this.previousFormat), +this.previousFormat=b);null!=this.foldingEnabled&&this.foldingEnabled!=this.ui.editor.graph.foldingEnabled&&(this.ui.setFoldingEnabled(this.foldingEnabled),this.foldingEnabled=!this.foldingEnabled)};(function(){var a=new mxObjectCodec(new ChangePageSetup,["ui","previousColor","previousImage","previousFormat"]);a.afterDecode=function(a,e,d){d.previousColor=d.color;d.previousImage=d.image;d.previousFormat=d.format;null!=d.foldingEnabled&&(d.foldingEnabled=!d.foldingEnabled);return d};mxCodecRegistry.register(a)})(); EditorUi.prototype.setBackgroundColor=function(a){this.editor.graph.background=a;this.editor.graph.view.validateBackground();this.fireEvent(new mxEventObject("backgroundColorChanged"))};EditorUi.prototype.setFoldingEnabled=function(a){this.editor.graph.foldingEnabled=a;this.editor.graph.view.revalidate();this.fireEvent(new mxEventObject("foldingEnabledChanged"))}; EditorUi.prototype.setPageFormat=function(a){this.editor.graph.pageFormat=a;this.editor.graph.pageVisible?(this.editor.graph.view.validateBackground(),this.editor.graph.sizeDidChange()):this.actions.get("pageView").funct();this.fireEvent(new mxEventObject("pageFormatChanged"))};EditorUi.prototype.setPageScale=function(a){this.editor.graph.pageScale=a;this.editor.graph.pageVisible?(this.editor.graph.view.validateBackground(),this.editor.graph.sizeDidChange()):this.actions.get("pageView").funct();this.fireEvent(new mxEventObject("pageScaleChanged"))}; EditorUi.prototype.setGridColor=function(a){this.editor.graph.view.gridColor=a;this.editor.graph.view.validateBackground();this.fireEvent(new mxEventObject("gridColorChanged"))}; -EditorUi.prototype.addUndoListener=function(){var a=this.actions.get("undo"),d=this.actions.get("redo"),e=this.editor.undoManager,b=mxUtils.bind(this,function(){a.setEnabled(this.canUndo());d.setEnabled(this.canRedo())});e.addListener(mxEvent.ADD,b);e.addListener(mxEvent.UNDO,b);e.addListener(mxEvent.REDO,b);e.addListener(mxEvent.CLEAR,b);var h=this.editor.graph.cellEditor.startEditing;this.editor.graph.cellEditor.startEditing=function(){h.apply(this,arguments);b()};var m=this.editor.graph.cellEditor.stopEditing; -this.editor.graph.cellEditor.stopEditing=function(a,d){m.apply(this,arguments);b()};b()}; -EditorUi.prototype.updateActionStates=function(){var a=this.editor.graph,d=!a.isSelectionEmpty(),e=!1,b=!1,h=a.getSelectionCells();if(null!=h)for(var m=0;m<h.length;m++){var p=h[m];a.getModel().isEdge(p)&&(b=!0);a.getModel().isVertex(p)&&(e=!0);if(b&&e)break}h="cut copy bold italic underline delete duplicate editStyle editTooltip editLink backgroundColor borderColor edit toFront toBack lockUnlock solid dashed pasteSize dotted fillColor gradientColor shadow fontColor formattedText rounded toggleRounded sharp strokeColor".split(" ");for(m= -0;m<h.length;m++)this.actions.get(h[m]).setEnabled(d);this.actions.get("setAsDefaultStyle").setEnabled(1==a.getSelectionCount());this.actions.get("clearWaypoints").setEnabled(!a.isSelectionEmpty());this.actions.get("copySize").setEnabled(1==a.getSelectionCount());this.actions.get("turn").setEnabled(!a.isSelectionEmpty());this.actions.get("curved").setEnabled(b);this.actions.get("rotation").setEnabled(e);this.actions.get("wordWrap").setEnabled(e);this.actions.get("autosize").setEnabled(e);b=e&&1== -a.getSelectionCount();this.actions.get("group").setEnabled(1<a.getSelectionCount()||b&&!a.isContainer(a.getSelectionCell()));this.actions.get("ungroup").setEnabled(1==a.getSelectionCount()&&(0<a.getModel().getChildCount(a.getSelectionCell())||b&&a.isContainer(a.getSelectionCell())));this.actions.get("removeFromGroup").setEnabled(b&&a.getModel().isVertex(a.getModel().getParent(a.getSelectionCell())));a.view.getState(a.getSelectionCell());this.menus.get("navigation").setEnabled(d||null!=a.view.currentRoot); -this.actions.get("collapsible").setEnabled(e&&(a.isContainer(a.getSelectionCell())||0<a.model.getChildCount(a.getSelectionCell())));this.actions.get("home").setEnabled(null!=a.view.currentRoot);this.actions.get("exitGroup").setEnabled(null!=a.view.currentRoot);this.actions.get("enterGroup").setEnabled(1==a.getSelectionCount()&&a.isValidRoot(a.getSelectionCell()));d=1==a.getSelectionCount()&&a.isCellFoldable(a.getSelectionCell());this.actions.get("expand").setEnabled(d);this.actions.get("collapse").setEnabled(d); -this.actions.get("editLink").setEnabled(1==a.getSelectionCount());this.actions.get("openLink").setEnabled(1==a.getSelectionCount()&&null!=a.getLinkForCell(a.getSelectionCell()));this.actions.get("guides").setEnabled(a.isEnabled());this.actions.get("grid").setEnabled(!this.editor.chromeless||this.editor.editable);d=a.isEnabled()&&!a.isCellLocked(a.getDefaultParent());this.menus.get("layout").setEnabled(d);this.menus.get("insert").setEnabled(d);this.menus.get("direction").setEnabled(d&&e);this.menus.get("align").setEnabled(d&& -e&&1<a.getSelectionCount());this.menus.get("distribute").setEnabled(d&&e&&1<a.getSelectionCount());this.actions.get("selectVertices").setEnabled(d);this.actions.get("selectEdges").setEnabled(d);this.actions.get("selectAll").setEnabled(d);this.actions.get("selectNone").setEnabled(d);this.updatePasteActionStates()}; -EditorUi.prototype.refresh=function(a){a=null!=a?a:!0;var d=mxClient.IS_IE&&(null==document.documentMode||5==document.documentMode),e=this.container.clientWidth,b=this.container.clientHeight;this.container==document.body&&(e=document.body.clientWidth||document.documentElement.clientWidth,b=d?document.body.clientHeight||document.documentElement.clientHeight:document.documentElement.clientHeight);var h=0;mxClient.IS_IOS&&!window.navigator.standalone&&window.innerHeight!=document.documentElement.clientHeight&& -(h=document.documentElement.clientHeight-window.innerHeight,window.scrollTo(0,0));var m=Math.max(0,Math.min(this.hsplitPosition,e-this.splitSize-20)),p=0;null!=this.menubar&&(this.menubarContainer.style.height=this.menubarHeight+"px",p+=this.menubarHeight);null!=this.toolbar&&(this.toolbarContainer.style.top=this.menubarHeight+"px",this.toolbarContainer.style.height=this.toolbarHeight+"px",p+=this.toolbarHeight);0<p&&!mxClient.IS_QUIRKS&&(p+=1);var q=0;if(null!=this.sidebarFooterContainer){var u= -this.footerHeight+h,q=Math.max(0,Math.min(b-p-u,this.sidebarFooterHeight));this.sidebarFooterContainer.style.width=m+"px";this.sidebarFooterContainer.style.height=q+"px";this.sidebarFooterContainer.style.bottom=u+"px"}u=null!=this.format?this.formatWidth:0;this.sidebarContainer.style.top=p+"px";this.sidebarContainer.style.width=m+"px";this.formatContainer.style.top=p+"px";this.formatContainer.style.width=u+"px";this.formatContainer.style.display=null!=this.format?"":"none";this.diagramContainer.style.left= -null!=this.hsplit.parentNode?m+this.splitSize+"px":"0px";this.diagramContainer.style.top=this.sidebarContainer.style.top;this.footerContainer.style.height=this.footerHeight+"px";this.hsplit.style.top=this.sidebarContainer.style.top;this.hsplit.style.bottom=this.footerHeight+h+"px";this.hsplit.style.left=m+"px";null!=this.tabContainer&&(this.tabContainer.style.left=this.diagramContainer.style.left);d?(this.menubarContainer.style.width=e+"px",this.toolbarContainer.style.width=this.menubarContainer.style.width, -d=Math.max(0,b-this.footerHeight-this.menubarHeight-this.toolbarHeight),this.sidebarContainer.style.height=d-q+"px",this.formatContainer.style.height=d+"px",this.diagramContainer.style.width=null!=this.hsplit.parentNode?Math.max(0,e-m-this.splitSize-u)+"px":e+"px",this.footerContainer.style.width=this.menubarContainer.style.width,q=Math.max(0,b-this.footerHeight-this.menubarHeight-this.toolbarHeight),null!=this.tabContainer&&(this.tabContainer.style.width=this.diagramContainer.style.width,this.tabContainer.style.bottom= -this.footerHeight+h+"px",q-=this.tabContainer.clientHeight),this.diagramContainer.style.height=q+"px",this.hsplit.style.height=q+"px"):(0<this.footerHeight&&(this.footerContainer.style.bottom=h+"px"),this.diagramContainer.style.right=u+"px",e=0,null!=this.tabContainer&&(this.tabContainer.style.bottom=this.footerHeight+h+"px",this.tabContainer.style.right=this.diagramContainer.style.right,e=this.tabContainer.clientHeight),this.sidebarContainer.style.bottom=this.footerHeight+q+h+"px",this.formatContainer.style.bottom= -this.footerHeight+h+"px",this.diagramContainer.style.bottom=this.footerHeight+h+e+"px");a&&this.editor.graph.sizeDidChange()};EditorUi.prototype.createTabContainer=function(){return null}; +EditorUi.prototype.addUndoListener=function(){var a=this.actions.get("undo"),b=this.actions.get("redo"),e=this.editor.undoManager,d=mxUtils.bind(this,function(){a.setEnabled(this.canUndo());b.setEnabled(this.canRedo())});e.addListener(mxEvent.ADD,d);e.addListener(mxEvent.UNDO,d);e.addListener(mxEvent.REDO,d);e.addListener(mxEvent.CLEAR,d);var k=this.editor.graph.cellEditor.startEditing;this.editor.graph.cellEditor.startEditing=function(){k.apply(this,arguments);d()};var l=this.editor.graph.cellEditor.stopEditing; +this.editor.graph.cellEditor.stopEditing=function(a,b){l.apply(this,arguments);d()};d()}; +EditorUi.prototype.updateActionStates=function(){var a=this.editor.graph,b=!a.isSelectionEmpty(),e=!1,d=!1,k=a.getSelectionCells();if(null!=k)for(var l=0;l<k.length;l++){var p=k[l];a.getModel().isEdge(p)&&(d=!0);a.getModel().isVertex(p)&&(e=!0);if(d&&e)break}k="cut copy bold italic underline delete duplicate editStyle editTooltip editLink backgroundColor borderColor edit toFront toBack lockUnlock solid dashed pasteSize dotted fillColor gradientColor shadow fontColor formattedText rounded toggleRounded sharp strokeColor".split(" ");for(l= +0;l<k.length;l++)this.actions.get(k[l]).setEnabled(b);this.actions.get("setAsDefaultStyle").setEnabled(1==a.getSelectionCount());this.actions.get("clearWaypoints").setEnabled(!a.isSelectionEmpty());this.actions.get("copySize").setEnabled(1==a.getSelectionCount());this.actions.get("turn").setEnabled(!a.isSelectionEmpty());this.actions.get("curved").setEnabled(d);this.actions.get("rotation").setEnabled(e);this.actions.get("wordWrap").setEnabled(e);this.actions.get("autosize").setEnabled(e);d=e&&1== +a.getSelectionCount();this.actions.get("group").setEnabled(1<a.getSelectionCount()||d&&!a.isContainer(a.getSelectionCell()));this.actions.get("ungroup").setEnabled(1==a.getSelectionCount()&&(0<a.getModel().getChildCount(a.getSelectionCell())||d&&a.isContainer(a.getSelectionCell())));this.actions.get("removeFromGroup").setEnabled(d&&a.getModel().isVertex(a.getModel().getParent(a.getSelectionCell())));a.view.getState(a.getSelectionCell());this.menus.get("navigation").setEnabled(b||null!=a.view.currentRoot); +this.actions.get("collapsible").setEnabled(e&&(a.isContainer(a.getSelectionCell())||0<a.model.getChildCount(a.getSelectionCell())));this.actions.get("home").setEnabled(null!=a.view.currentRoot);this.actions.get("exitGroup").setEnabled(null!=a.view.currentRoot);this.actions.get("enterGroup").setEnabled(1==a.getSelectionCount()&&a.isValidRoot(a.getSelectionCell()));b=1==a.getSelectionCount()&&a.isCellFoldable(a.getSelectionCell());this.actions.get("expand").setEnabled(b);this.actions.get("collapse").setEnabled(b); +this.actions.get("editLink").setEnabled(1==a.getSelectionCount());this.actions.get("openLink").setEnabled(1==a.getSelectionCount()&&null!=a.getLinkForCell(a.getSelectionCell()));this.actions.get("guides").setEnabled(a.isEnabled());this.actions.get("grid").setEnabled(!this.editor.chromeless||this.editor.editable);b=a.isEnabled()&&!a.isCellLocked(a.getDefaultParent());this.menus.get("layout").setEnabled(b);this.menus.get("insert").setEnabled(b);this.menus.get("direction").setEnabled(b&&e);this.menus.get("align").setEnabled(b&& +e&&1<a.getSelectionCount());this.menus.get("distribute").setEnabled(b&&e&&1<a.getSelectionCount());this.actions.get("selectVertices").setEnabled(b);this.actions.get("selectEdges").setEnabled(b);this.actions.get("selectAll").setEnabled(b);this.actions.get("selectNone").setEnabled(b);this.updatePasteActionStates()}; +EditorUi.prototype.refresh=function(a){a=null!=a?a:!0;var b=mxClient.IS_IE&&(null==document.documentMode||5==document.documentMode),e=this.container.clientWidth,d=this.container.clientHeight;this.container==document.body&&(e=document.body.clientWidth||document.documentElement.clientWidth,d=b?document.body.clientHeight||document.documentElement.clientHeight:document.documentElement.clientHeight);var k=0;mxClient.IS_IOS&&!window.navigator.standalone&&window.innerHeight!=document.documentElement.clientHeight&& +(k=document.documentElement.clientHeight-window.innerHeight,window.scrollTo(0,0));var l=Math.max(0,Math.min(this.hsplitPosition,e-this.splitSize-20)),p=0;null!=this.menubar&&(this.menubarContainer.style.height=this.menubarHeight+"px",p+=this.menubarHeight);null!=this.toolbar&&(this.toolbarContainer.style.top=this.menubarHeight+"px",this.toolbarContainer.style.height=this.toolbarHeight+"px",p+=this.toolbarHeight);0<p&&!mxClient.IS_QUIRKS&&(p+=1);var q=0;if(null!=this.sidebarFooterContainer){var u= +this.footerHeight+k,q=Math.max(0,Math.min(d-p-u,this.sidebarFooterHeight));this.sidebarFooterContainer.style.width=l+"px";this.sidebarFooterContainer.style.height=q+"px";this.sidebarFooterContainer.style.bottom=u+"px"}u=null!=this.format?this.formatWidth:0;this.sidebarContainer.style.top=p+"px";this.sidebarContainer.style.width=l+"px";this.formatContainer.style.top=p+"px";this.formatContainer.style.width=u+"px";this.formatContainer.style.display=null!=this.format?"":"none";this.diagramContainer.style.left= +null!=this.hsplit.parentNode?l+this.splitSize+"px":"0px";this.diagramContainer.style.top=this.sidebarContainer.style.top;this.footerContainer.style.height=this.footerHeight+"px";this.hsplit.style.top=this.sidebarContainer.style.top;this.hsplit.style.bottom=this.footerHeight+k+"px";this.hsplit.style.left=l+"px";null!=this.tabContainer&&(this.tabContainer.style.left=this.diagramContainer.style.left);b?(this.menubarContainer.style.width=e+"px",this.toolbarContainer.style.width=this.menubarContainer.style.width, +b=Math.max(0,d-this.footerHeight-this.menubarHeight-this.toolbarHeight),this.sidebarContainer.style.height=b-q+"px",this.formatContainer.style.height=b+"px",this.diagramContainer.style.width=null!=this.hsplit.parentNode?Math.max(0,e-l-this.splitSize-u)+"px":e+"px",this.footerContainer.style.width=this.menubarContainer.style.width,q=Math.max(0,d-this.footerHeight-this.menubarHeight-this.toolbarHeight),null!=this.tabContainer&&(this.tabContainer.style.width=this.diagramContainer.style.width,this.tabContainer.style.bottom= +this.footerHeight+k+"px",q-=this.tabContainer.clientHeight),this.diagramContainer.style.height=q+"px",this.hsplit.style.height=q+"px"):(0<this.footerHeight&&(this.footerContainer.style.bottom=k+"px"),this.diagramContainer.style.right=u+"px",e=0,null!=this.tabContainer&&(this.tabContainer.style.bottom=this.footerHeight+k+"px",this.tabContainer.style.right=this.diagramContainer.style.right,e=this.tabContainer.clientHeight),this.sidebarContainer.style.bottom=this.footerHeight+q+k+"px",this.formatContainer.style.bottom= +this.footerHeight+k+"px",this.diagramContainer.style.bottom=this.footerHeight+k+e+"px");a&&this.editor.graph.sizeDidChange()};EditorUi.prototype.createTabContainer=function(){return null}; EditorUi.prototype.createDivs=function(){this.menubarContainer=this.createDiv("geMenubarContainer");this.toolbarContainer=this.createDiv("geToolbarContainer");this.sidebarContainer=this.createDiv("geSidebarContainer");this.formatContainer=this.createDiv("geSidebarContainer geFormatContainer");this.diagramContainer=this.createDiv("geDiagramContainer");this.footerContainer=this.createDiv("geFooterContainer");this.hsplit=this.createDiv("geHsplit");this.hsplit.setAttribute("title",mxResources.get("collapseExpand")); this.menubarContainer.style.top="0px";this.menubarContainer.style.left="0px";this.menubarContainer.style.right="0px";this.toolbarContainer.style.left="0px";this.toolbarContainer.style.right="0px";this.sidebarContainer.style.left="0px";this.formatContainer.style.right="0px";this.formatContainer.style.zIndex="1";this.diagramContainer.style.right=(null!=this.format?this.formatWidth:0)+"px";this.footerContainer.style.left="0px";this.footerContainer.style.right="0px";this.footerContainer.style.bottom= "0px";this.footerContainer.style.zIndex=mxPopupMenu.prototype.zIndex-2;this.hsplit.style.width=this.splitSize+"px";if(this.sidebarFooterContainer=this.createSidebarFooterContainer())this.sidebarFooterContainer.style.left="0px";this.editor.chromeless?this.diagramContainer.style.border="none":this.tabContainer=this.createTabContainer()};EditorUi.prototype.createSidebarFooterContainer=function(){return null}; @@ -2155,251 +2156,252 @@ EditorUi.prototype.createUi=function(){this.menubar=this.editor.chromeless?null: this.sidebar=this.editor.chromeless?null:this.createSidebar(this.sidebarContainer);null!=this.sidebar&&this.container.appendChild(this.sidebarContainer);this.format=this.editor.chromeless||!this.formatEnabled?null:this.createFormat(this.formatContainer);null!=this.format&&this.container.appendChild(this.formatContainer);var a=this.editor.chromeless?null:this.createFooter();null!=a&&(this.footerContainer.appendChild(a),this.container.appendChild(this.footerContainer));null!=this.sidebar&&this.sidebarFooterContainer&& this.container.appendChild(this.sidebarFooterContainer);this.container.appendChild(this.diagramContainer);null!=this.container&&null!=this.tabContainer&&this.container.appendChild(this.tabContainer);this.toolbar=this.editor.chromeless?null:this.createToolbar(this.createDiv("geToolbar"));null!=this.toolbar&&(this.toolbarContainer.appendChild(this.toolbar.container),this.container.appendChild(this.toolbarContainer));null!=this.sidebar&&(this.container.appendChild(this.hsplit),this.addSplitHandler(this.hsplit, !0,0,mxUtils.bind(this,function(a){this.hsplitPosition=a;this.refresh()})))};EditorUi.prototype.createStatusContainer=function(){var a=document.createElement("a");a.className="geItem geStatus";420>screen.width&&(a.style.maxWidth=Math.max(20,screen.width-320)+"px",a.style.overflow="hidden");return a};EditorUi.prototype.setStatusText=function(a){this.statusContainer.innerHTML=a};EditorUi.prototype.createToolbar=function(a){return new Toolbar(this,a)}; -EditorUi.prototype.createSidebar=function(a){return new Sidebar(this,a)};EditorUi.prototype.createFormat=function(a){return new Format(this,a)};EditorUi.prototype.createFooter=function(){return this.createDiv("geFooter")};EditorUi.prototype.createDiv=function(a){var d=document.createElement("div");d.className=a;return d}; -EditorUi.prototype.addSplitHandler=function(a,d,e,b){function h(a){if(null!=p){var g=new mxPoint(mxEvent.getClientX(a),mxEvent.getClientY(a));b(Math.max(0,q+(d?g.x-p.x:p.y-g.y)-e));mxEvent.consume(a);q!=f()&&(u=!0,c=null)}}function m(a){h(a);p=q=null}var p=null,q=null,u=!0,c=null;mxClient.IS_POINTER&&(a.style.touchAction="none");var f=mxUtils.bind(this,function(){var c=parseInt(d?a.style.left:a.style.bottom);d||(c=c+e-this.footerHeight);return c});mxEvent.addGestureListeners(a,function(a){p=new mxPoint(mxEvent.getClientX(a), -mxEvent.getClientY(a));q=f();u=!1;mxEvent.consume(a)});mxEvent.addListener(a,"click",mxUtils.bind(this,function(a){if(!u&&this.hsplitClickEnabled){var d=null!=c?c-e:0;c=f();b(d);mxEvent.consume(a)}}));mxEvent.addGestureListeners(document,null,h,m);this.destroyFunctions.push(function(){mxEvent.removeGestureListeners(document,null,h,m)})}; -EditorUi.prototype.showDialog=function(a,d,e,b,h,m,p,q){this.editor.graph.tooltipHandler.hideTooltip();null==this.dialogs&&(this.dialogs=[]);this.dialog=new Dialog(this,a,d,e,b,h,m,p,q);this.dialogs.push(this.dialog)}; +EditorUi.prototype.createSidebar=function(a){return new Sidebar(this,a)};EditorUi.prototype.createFormat=function(a){return new Format(this,a)};EditorUi.prototype.createFooter=function(){return this.createDiv("geFooter")};EditorUi.prototype.createDiv=function(a){var b=document.createElement("div");b.className=a;return b}; +EditorUi.prototype.addSplitHandler=function(a,b,e,d){function k(a){if(null!=p){var g=new mxPoint(mxEvent.getClientX(a),mxEvent.getClientY(a));d(Math.max(0,q+(b?g.x-p.x:p.y-g.y)-e));mxEvent.consume(a);q!=f()&&(u=!0,c=null)}}function l(a){k(a);p=q=null}var p=null,q=null,u=!0,c=null;mxClient.IS_POINTER&&(a.style.touchAction="none");var f=mxUtils.bind(this,function(){var c=parseInt(b?a.style.left:a.style.bottom);b||(c=c+e-this.footerHeight);return c});mxEvent.addGestureListeners(a,function(a){p=new mxPoint(mxEvent.getClientX(a), +mxEvent.getClientY(a));q=f();u=!1;mxEvent.consume(a)});mxEvent.addListener(a,"click",mxUtils.bind(this,function(a){if(!u&&this.hsplitClickEnabled){var b=null!=c?c-e:0;c=f();d(b);mxEvent.consume(a)}}));mxEvent.addGestureListeners(document,null,k,l);this.destroyFunctions.push(function(){mxEvent.removeGestureListeners(document,null,k,l)})}; +EditorUi.prototype.showDialog=function(a,b,e,d,k,l,p,q){this.editor.graph.tooltipHandler.hideTooltip();null==this.dialogs&&(this.dialogs=[]);this.dialog=new Dialog(this,a,b,e,d,k,l,p,q);this.dialogs.push(this.dialog)}; EditorUi.prototype.hideDialog=function(a){null!=this.dialogs&&0<this.dialogs.length&&(this.dialogs.pop().close(a),this.dialog=0<this.dialogs.length?this.dialogs[this.dialogs.length-1]:null,null==this.dialog&&"hidden"!=this.editor.graph.container.style.visibility&&this.editor.graph.container.focus(),mxUtils.clearSelection(),this.editor.fireEvent(new mxEventObject("hideDialog")))}; -EditorUi.prototype.pickColor=function(a,d){var e=this.editor.graph,b=e.cellEditor.saveSelection(),h=226+17*(Math.ceil(ColorDialog.prototype.presetColors.length/12)+Math.ceil(ColorDialog.prototype.defaultColors.length/12)),m=new ColorDialog(this,a||"none",function(a){e.cellEditor.restoreSelection(b);d(a)},function(){e.cellEditor.restoreSelection(b)});this.showDialog(m.container,230,h,!0,!1);m.init()}; +EditorUi.prototype.pickColor=function(a,b){var e=this.editor.graph,d=e.cellEditor.saveSelection(),k=226+17*(Math.ceil(ColorDialog.prototype.presetColors.length/12)+Math.ceil(ColorDialog.prototype.defaultColors.length/12)),l=new ColorDialog(this,a||"none",function(a){e.cellEditor.restoreSelection(d);b(a)},function(){e.cellEditor.restoreSelection(d)});this.showDialog(l.container,230,k,!0,!1);l.init()}; EditorUi.prototype.openFile=function(){window.openFile=new OpenFile(mxUtils.bind(this,function(a){this.hideDialog(a)}));this.showDialog((new OpenDialog(this)).container,Editor.useLocalStorage?640:320,Editor.useLocalStorage?480:220,!0,!0,function(){window.openFile=null})}; -EditorUi.prototype.extractGraphModelFromHtml=function(a){var d=null;try{var e=a.indexOf("<mxGraphModel ");if(0<=e){var b=a.lastIndexOf("</mxGraphModel>");b>e&&(d=a.substring(e,b+21).replace(/>/g,">").replace(/</g,"<").replace(/\\"/g,'"').replace(/\n/g,""))}}catch(h){}return d}; -EditorUi.prototype.extractGraphModelFromEvent=function(a){var d=null,e=null;null!=a&&(a=null!=a.dataTransfer?a.dataTransfer:a.clipboardData,null!=a&&(10==document.documentMode||11==document.documentMode?e=a.getData("Text"):(e=0<=mxUtils.indexOf(a.types,"text/html")?a.getData("text/html"):null,mxUtils.indexOf(a.types,null==e||0==e.length)&&(e=a.getData("text/plain"))),null!=e&&(e=this.editor.graph.zapGremlins(mxUtils.trim(e)),a=this.extractGraphModelFromHtml(e),null!=a&&(e=a))));null!=e&&this.isCompatibleString(e)&& -(d=e);return d};EditorUi.prototype.isCompatibleString=function(a){return!1};EditorUi.prototype.saveFile=function(a){a||null==this.editor.filename?(a=new FilenameDialog(this,this.editor.getOrCreateFilename(),mxResources.get("save"),mxUtils.bind(this,function(a){this.save(a)}),null,mxUtils.bind(this,function(a){if(null!=a&&0<a.length)return!0;mxUtils.confirm(mxResources.get("invalidName"));return!1})),this.showDialog(a.container,300,100,!0,!0),a.init()):this.save(this.editor.getOrCreateFilename())}; -EditorUi.prototype.save=function(a){if(null!=a){this.editor.graph.isEditing()&&this.editor.graph.stopEditing();var d=mxUtils.getXml(this.editor.getGraphXml());try{if(Editor.useLocalStorage){if(null!=localStorage.getItem(a)&&!mxUtils.confirm(mxResources.get("replaceIt",[a])))return;localStorage.setItem(a,d);this.editor.setStatus(mxUtils.htmlEntities(mxResources.get("saved"))+" "+new Date)}else if(d.length<MAX_REQUEST_SIZE)(new mxXmlRequest(SAVE_URL,"filename="+encodeURIComponent(a)+"&xml="+encodeURIComponent(d))).simulate(document, -"_blank");else{mxUtils.alert(mxResources.get("drawingTooLarge"));mxUtils.popup(d);return}this.editor.setModified(!1);this.editor.setFilename(a);this.updateDocumentTitle()}catch(e){this.editor.setStatus(mxUtils.htmlEntities(mxResources.get("errorSavingFile")))}}}; -EditorUi.prototype.executeLayout=function(a,d,e){var b=this.editor.graph;if(b.isEnabled()){b.getModel().beginUpdate();try{a()}catch(h){throw h;}finally{this.allowAnimation&&d&&0>navigator.userAgent.indexOf("Camino")?(a=new mxMorphing(b),a.addListener(mxEvent.DONE,mxUtils.bind(this,function(){b.getModel().endUpdate();null!=e&&e()})),a.startAnimation()):(b.getModel().endUpdate(),null!=e&&e())}}}; -EditorUi.prototype.showImageDialog=function(a,d,e,b){b=this.editor.graph.cellEditor;var h=b.saveSelection(),m=mxUtils.prompt(a,d);b.restoreSelection(h);if(null!=m&&0<m.length){var p=new Image;p.onload=function(){e(m,p.width,p.height)};p.onerror=function(){e(null);mxUtils.alert(mxResources.get("fileNotFound"))};p.src=m}else e(null)};EditorUi.prototype.showLinkDialog=function(a,d,e){a=new LinkDialog(this,a,d,e);this.showDialog(a.container,420,90,!0,!0);a.init()}; +EditorUi.prototype.extractGraphModelFromHtml=function(a){var b=null;try{var e=a.indexOf("<mxGraphModel ");if(0<=e){var d=a.lastIndexOf("</mxGraphModel>");d>e&&(b=a.substring(e,d+21).replace(/>/g,">").replace(/</g,"<").replace(/\\"/g,'"').replace(/\n/g,""))}}catch(k){}return b}; +EditorUi.prototype.extractGraphModelFromEvent=function(a){var b=null,e=null;null!=a&&(a=null!=a.dataTransfer?a.dataTransfer:a.clipboardData,null!=a&&(10==document.documentMode||11==document.documentMode?e=a.getData("Text"):(e=0<=mxUtils.indexOf(a.types,"text/html")?a.getData("text/html"):null,mxUtils.indexOf(a.types,null==e||0==e.length)&&(e=a.getData("text/plain"))),null!=e&&(e=this.editor.graph.zapGremlins(mxUtils.trim(e)),a=this.extractGraphModelFromHtml(e),null!=a&&(e=a))));null!=e&&this.isCompatibleString(e)&& +(b=e);return b};EditorUi.prototype.isCompatibleString=function(a){return!1};EditorUi.prototype.saveFile=function(a){a||null==this.editor.filename?(a=new FilenameDialog(this,this.editor.getOrCreateFilename(),mxResources.get("save"),mxUtils.bind(this,function(a){this.save(a)}),null,mxUtils.bind(this,function(a){if(null!=a&&0<a.length)return!0;mxUtils.confirm(mxResources.get("invalidName"));return!1})),this.showDialog(a.container,300,100,!0,!0),a.init()):this.save(this.editor.getOrCreateFilename())}; +EditorUi.prototype.save=function(a){if(null!=a){this.editor.graph.isEditing()&&this.editor.graph.stopEditing();var b=mxUtils.getXml(this.editor.getGraphXml());try{if(Editor.useLocalStorage){if(null!=localStorage.getItem(a)&&!mxUtils.confirm(mxResources.get("replaceIt",[a])))return;localStorage.setItem(a,b);this.editor.setStatus(mxUtils.htmlEntities(mxResources.get("saved"))+" "+new Date)}else if(b.length<MAX_REQUEST_SIZE)(new mxXmlRequest(SAVE_URL,"filename="+encodeURIComponent(a)+"&xml="+encodeURIComponent(b))).simulate(document, +"_blank");else{mxUtils.alert(mxResources.get("drawingTooLarge"));mxUtils.popup(b);return}this.editor.setModified(!1);this.editor.setFilename(a);this.updateDocumentTitle()}catch(e){this.editor.setStatus(mxUtils.htmlEntities(mxResources.get("errorSavingFile")))}}}; +EditorUi.prototype.executeLayout=function(a,b,e){var d=this.editor.graph;if(d.isEnabled()){d.getModel().beginUpdate();try{a()}catch(k){throw k;}finally{this.allowAnimation&&b&&0>navigator.userAgent.indexOf("Camino")?(a=new mxMorphing(d),a.addListener(mxEvent.DONE,mxUtils.bind(this,function(){d.getModel().endUpdate();null!=e&&e()})),a.startAnimation()):(d.getModel().endUpdate(),null!=e&&e())}}}; +EditorUi.prototype.showImageDialog=function(a,b,e,d){d=this.editor.graph.cellEditor;var k=d.saveSelection(),l=mxUtils.prompt(a,b);d.restoreSelection(k);if(null!=l&&0<l.length){var p=new Image;p.onload=function(){e(l,p.width,p.height)};p.onerror=function(){e(null);mxUtils.alert(mxResources.get("fileNotFound"))};p.src=l}else e(null)};EditorUi.prototype.showLinkDialog=function(a,b,e){a=new LinkDialog(this,a,b,e);this.showDialog(a.container,420,90,!0,!0);a.init()}; EditorUi.prototype.showDataDialog=function(a){null!=a&&(a=new EditDataDialog(this,a),this.showDialog(a.container,340,340,!0,!1,null,!1),a.init())}; -EditorUi.prototype.showBackgroundImageDialog=function(a){a=null!=a?a:mxUtils.bind(this,function(a){a=new ChangePageSetup(this,null,a);a.ignoreColor=!0;this.editor.graph.model.execute(a)});var d=mxUtils.prompt(mxResources.get("backgroundImage"),"");if(null!=d&&0<d.length){var e=new Image;e.onload=function(){a(new mxImage(d,e.width,e.height))};e.onerror=function(){a(null);mxUtils.alert(mxResources.get("fileNotFound"))};e.src=d}else a(null)}; -EditorUi.prototype.setBackgroundImage=function(a){this.editor.graph.setBackgroundImage(a);this.editor.graph.view.validateBackgroundImage();this.fireEvent(new mxEventObject("backgroundImageChanged"))};EditorUi.prototype.confirm=function(a,d,e){mxUtils.confirm(a)?null!=d&&d():null!=e&&e()}; -EditorUi.prototype.createOutline=function(a){var d=new mxOutline(this.editor.graph);d.border=20;mxEvent.addListener(window,"resize",function(){d.update()});this.addListener("pageFormatChanged",function(){d.update()});return d};EditorUi.prototype.altShiftActions={67:"clearWaypoints",65:"connectionArrows",76:"editLink",80:"connectionPoints",84:"editTooltip",86:"pasteSize",88:"copySize"}; -EditorUi.prototype.createKeyHandler=function(a){function d(a,c,d){p.push(function(){if(!b.isSelectionEmpty()&&b.isEnabled())if(c=null!=c?c:1,d){b.getModel().beginUpdate();try{for(var f=b.getSelectionCells(),g=0;g<f.length;g++)if(b.getModel().isVertex(f[g])&&b.isCellResizable(f[g])){var e=b.getCellGeometry(f[g]);null!=e&&(e=e.clone(),37==a?e.width=Math.max(0,e.width-c):38==a?e.height=Math.max(0,e.height-c):39==a?e.width+=c:40==a&&(e.height+=c),b.getModel().setGeometry(f[g],e))}}finally{b.getModel().endUpdate()}}else f= -b.getSelectionCell(),g=b.model.getParent(f),e=null,1==b.getSelectionCount()&&b.model.isVertex(f)&&null!=b.layoutManager&&!b.isCellLocked(f)&&(e=b.layoutManager.getLayout(g)),null!=e&&e.constructor==mxStackLayout?(e=g.getIndex(f),37==a||38==a?b.model.add(g,f,Math.max(0,e-1)):39!=a&&40!=a||b.model.add(g,f,Math.min(b.model.getChildCount(g),e+1))):(g=f=0,37==a?f=-c:38==a?g=-c:39==a?f=c:40==a&&(g=c),b.moveCells(b.getMovableCells(b.getSelectionCells()),f,g))});null!=q&&window.clearTimeout(q);q=window.setTimeout(function(){if(0< -p.length){b.getModel().beginUpdate();try{for(var a=0;a<p.length;a++)p[a]();p=[]}finally{b.getModel().endUpdate()}b.scrollCellToVisible(b.getSelectionCell())}},200)}var e=this,b=this.editor.graph,h=new mxKeyHandler(b),m=h.isEventIgnored;h.isEventIgnored=function(a){return(!this.isControlDown(a)||mxEvent.isShiftDown(a)||90!=a.keyCode&&89!=a.keyCode&&188!=a.keyCode&&190!=a.keyCode&&85!=a.keyCode)&&(66!=a.keyCode&&73!=a.keyCode||!this.isControlDown(a)||this.graph.cellEditor.isContentEditing()&&!mxClient.IS_FF&& -!mxClient.IS_SF)&&m.apply(this,arguments)};h.isEnabledForEvent=function(a){return!mxEvent.isConsumed(a)&&this.isGraphEvent(a)&&this.isEnabled()&&(null==e.dialogs||0==e.dialogs.length)};h.isControlDown=function(a){return mxEvent.isControlDown(a)||mxClient.IS_MAC&&a.metaKey};var p=[],q=null,u={37:mxConstants.DIRECTION_WEST,38:mxConstants.DIRECTION_NORTH,39:mxConstants.DIRECTION_EAST,40:mxConstants.DIRECTION_SOUTH},c=h.getFunction;mxKeyHandler.prototype.getFunction=function(a){if(b.isEnabled()){if(mxEvent.isShiftDown(a)&& -mxEvent.isAltDown(a)){var f=e.actions.get(e.altShiftActions[a.keyCode]);if(null!=f)return f.funct}if(9==a.keyCode&&mxEvent.isAltDown(a))return mxEvent.isShiftDown(a)?function(){b.selectParentCell()}:function(){b.selectChildCell()};if(null!=u[a.keyCode]&&!b.isSelectionEmpty())if(mxEvent.isShiftDown(a)&&mxEvent.isAltDown(a)){if(b.model.isVertex(b.getSelectionCell()))return function(){var c=b.connectVertex(b.getSelectionCell(),u[a.keyCode],b.defaultEdgeLength,a,!0);null!=c&&0<c.length&&(1==c.length&& -b.model.isEdge(c[0])?b.setSelectionCell(b.model.getTerminal(c[0],!1)):b.setSelectionCell(c[c.length-1]),b.scrollCellToVisible(b.getSelectionCell()),null!=e.hoverIcons&&e.hoverIcons.update(b.view.getState(b.getSelectionCell())))}}else return this.isControlDown(a)?function(){d(a.keyCode,mxEvent.isShiftDown(a)?b.gridSize:null,!0)}:function(){d(a.keyCode,mxEvent.isShiftDown(a)?b.gridSize:null)}}return c.apply(this,arguments)};h.bindAction=mxUtils.bind(this,function(a,c,d,b){var f=this.actions.get(d); -null!=f&&(d=function(){f.isEnabled()&&f.funct()},c?b?h.bindControlShiftKey(a,d):h.bindControlKey(a,d):b?h.bindShiftKey(a,d):h.bindKey(a,d))});var f=h.escape;h.escape=function(a){f.apply(this,arguments)};h.enter=function(){};h.bindControlShiftKey(36,function(){b.exitGroup()});h.bindControlShiftKey(35,function(){b.enterGroup()});h.bindKey(36,function(){b.home()});h.bindKey(35,function(){b.refresh()});h.bindAction(107,!0,"zoomIn");h.bindAction(109,!0,"zoomOut");h.bindAction(80,!0,"print");h.bindAction(79, -!0,"outline",!0);h.bindAction(112,!1,"about");if(!this.editor.chromeless||this.editor.editable)h.bindControlKey(36,function(){b.isEnabled()&&b.foldCells(!0)}),h.bindControlKey(35,function(){b.isEnabled()&&b.foldCells(!1)}),h.bindControlKey(13,function(){b.isEnabled()&&b.setSelectionCells(b.duplicateCells(b.getSelectionCells(),!1))}),h.bindAction(8,!1,"delete"),h.bindAction(8,!0,"deleteAll"),h.bindAction(46,!1,"delete"),h.bindAction(46,!0,"deleteAll"),h.bindAction(72,!0,"resetView"),h.bindAction(72, -!0,"fitWindow",!0),h.bindAction(74,!0,"fitPage"),h.bindAction(74,!0,"fitTwoPages",!0),h.bindAction(48,!0,"customZoom"),h.bindAction(82,!0,"turn"),h.bindAction(82,!0,"clearDefaultStyle",!0),h.bindAction(83,!0,"save"),h.bindAction(83,!0,"saveAs",!0),h.bindAction(65,!0,"selectAll"),h.bindAction(65,!0,"selectNone",!0),h.bindAction(73,!0,"selectVertices",!0),h.bindAction(69,!0,"selectEdges",!0),h.bindAction(69,!0,"editStyle"),h.bindAction(66,!0,"bold"),h.bindAction(66,!0,"toBack",!0),h.bindAction(70,!0, -"toFront",!0),h.bindAction(68,!0,"duplicate"),h.bindAction(68,!0,"setAsDefaultStyle",!0),h.bindAction(90,!0,"undo"),h.bindAction(89,!0,"autosize",!0),h.bindAction(88,!0,"cut"),h.bindAction(67,!0,"copy"),h.bindAction(86,!0,"paste"),h.bindAction(71,!0,"group"),h.bindAction(77,!0,"editData"),h.bindAction(71,!0,"grid",!0),h.bindAction(73,!0,"italic"),h.bindAction(76,!0,"lockUnlock"),h.bindAction(76,!0,"layers",!0),h.bindAction(80,!0,"formatPanel",!0),h.bindAction(85,!0,"underline"),h.bindAction(85,!0, -"ungroup",!0),h.bindAction(190,!0,"superscript"),h.bindAction(188,!0,"subscript"),h.bindKey(13,function(){b.isEnabled()&&b.startEditingAtCell()}),h.bindKey(113,function(){b.isEnabled()&&b.startEditingAtCell()});mxClient.IS_WIN?h.bindAction(89,!0,"redo"):h.bindAction(90,!0,"redo",!0);return h}; +EditorUi.prototype.showBackgroundImageDialog=function(a){a=null!=a?a:mxUtils.bind(this,function(a){a=new ChangePageSetup(this,null,a);a.ignoreColor=!0;this.editor.graph.model.execute(a)});var b=mxUtils.prompt(mxResources.get("backgroundImage"),"");if(null!=b&&0<b.length){var e=new Image;e.onload=function(){a(new mxImage(b,e.width,e.height))};e.onerror=function(){a(null);mxUtils.alert(mxResources.get("fileNotFound"))};e.src=b}else a(null)}; +EditorUi.prototype.setBackgroundImage=function(a){this.editor.graph.setBackgroundImage(a);this.editor.graph.view.validateBackgroundImage();this.fireEvent(new mxEventObject("backgroundImageChanged"))};EditorUi.prototype.confirm=function(a,b,e){mxUtils.confirm(a)?null!=b&&b():null!=e&&e()}; +EditorUi.prototype.createOutline=function(a){var b=new mxOutline(this.editor.graph);b.border=20;mxEvent.addListener(window,"resize",function(){b.update()});this.addListener("pageFormatChanged",function(){b.update()});return b};EditorUi.prototype.altShiftActions={67:"clearWaypoints",65:"connectionArrows",76:"editLink",80:"connectionPoints",84:"editTooltip",86:"pasteSize",88:"copySize"}; +EditorUi.prototype.createKeyHandler=function(a){function b(a,c,b){p.push(function(){if(!d.isSelectionEmpty()&&d.isEnabled())if(c=null!=c?c:1,b){d.getModel().beginUpdate();try{for(var f=d.getSelectionCells(),g=0;g<f.length;g++)if(d.getModel().isVertex(f[g])&&d.isCellResizable(f[g])){var e=d.getCellGeometry(f[g]);null!=e&&(e=e.clone(),37==a?e.width=Math.max(0,e.width-c):38==a?e.height=Math.max(0,e.height-c):39==a?e.width+=c:40==a&&(e.height+=c),d.getModel().setGeometry(f[g],e))}}finally{d.getModel().endUpdate()}}else f= +d.getSelectionCell(),g=d.model.getParent(f),e=null,1==d.getSelectionCount()&&d.model.isVertex(f)&&null!=d.layoutManager&&!d.isCellLocked(f)&&(e=d.layoutManager.getLayout(g)),null!=e&&e.constructor==mxStackLayout?(e=g.getIndex(f),37==a||38==a?d.model.add(g,f,Math.max(0,e-1)):39!=a&&40!=a||d.model.add(g,f,Math.min(d.model.getChildCount(g),e+1))):(g=f=0,37==a?f=-c:38==a?g=-c:39==a?f=c:40==a&&(g=c),d.moveCells(d.getMovableCells(d.getSelectionCells()),f,g))});null!=q&&window.clearTimeout(q);q=window.setTimeout(function(){if(0< +p.length){d.getModel().beginUpdate();try{for(var a=0;a<p.length;a++)p[a]();p=[]}finally{d.getModel().endUpdate()}d.scrollCellToVisible(d.getSelectionCell())}},200)}var e=this,d=this.editor.graph,k=new mxKeyHandler(d),l=k.isEventIgnored;k.isEventIgnored=function(a){return(!this.isControlDown(a)||mxEvent.isShiftDown(a)||90!=a.keyCode&&89!=a.keyCode&&188!=a.keyCode&&190!=a.keyCode&&85!=a.keyCode)&&(66!=a.keyCode&&73!=a.keyCode||!this.isControlDown(a)||this.graph.cellEditor.isContentEditing()&&!mxClient.IS_FF&& +!mxClient.IS_SF)&&l.apply(this,arguments)};k.isEnabledForEvent=function(a){return!mxEvent.isConsumed(a)&&this.isGraphEvent(a)&&this.isEnabled()&&(null==e.dialogs||0==e.dialogs.length)};k.isControlDown=function(a){return mxEvent.isControlDown(a)||mxClient.IS_MAC&&a.metaKey};var p=[],q=null,u={37:mxConstants.DIRECTION_WEST,38:mxConstants.DIRECTION_NORTH,39:mxConstants.DIRECTION_EAST,40:mxConstants.DIRECTION_SOUTH},c=k.getFunction;mxKeyHandler.prototype.getFunction=function(a){if(d.isEnabled()){if(mxEvent.isShiftDown(a)&& +mxEvent.isAltDown(a)){var f=e.actions.get(e.altShiftActions[a.keyCode]);if(null!=f)return f.funct}if(9==a.keyCode&&mxEvent.isAltDown(a))return mxEvent.isShiftDown(a)?function(){d.selectParentCell()}:function(){d.selectChildCell()};if(null!=u[a.keyCode]&&!d.isSelectionEmpty())if(mxEvent.isShiftDown(a)&&mxEvent.isAltDown(a)){if(d.model.isVertex(d.getSelectionCell()))return function(){var c=d.connectVertex(d.getSelectionCell(),u[a.keyCode],d.defaultEdgeLength,a,!0);null!=c&&0<c.length&&(1==c.length&& +d.model.isEdge(c[0])?d.setSelectionCell(d.model.getTerminal(c[0],!1)):d.setSelectionCell(c[c.length-1]),d.scrollCellToVisible(d.getSelectionCell()),null!=e.hoverIcons&&e.hoverIcons.update(d.view.getState(d.getSelectionCell())))}}else return this.isControlDown(a)?function(){b(a.keyCode,mxEvent.isShiftDown(a)?d.gridSize:null,!0)}:function(){b(a.keyCode,mxEvent.isShiftDown(a)?d.gridSize:null)}}return c.apply(this,arguments)};k.bindAction=mxUtils.bind(this,function(a,c,b,d){var f=this.actions.get(b); +null!=f&&(b=function(){f.isEnabled()&&f.funct()},c?d?k.bindControlShiftKey(a,b):k.bindControlKey(a,b):d?k.bindShiftKey(a,b):k.bindKey(a,b))});var f=k.escape;k.escape=function(a){f.apply(this,arguments)};k.enter=function(){};k.bindControlShiftKey(36,function(){d.exitGroup()});k.bindControlShiftKey(35,function(){d.enterGroup()});k.bindKey(36,function(){d.home()});k.bindKey(35,function(){d.refresh()});k.bindAction(107,!0,"zoomIn");k.bindAction(109,!0,"zoomOut");k.bindAction(80,!0,"print");k.bindAction(79, +!0,"outline",!0);k.bindAction(112,!1,"about");if(!this.editor.chromeless||this.editor.editable)k.bindControlKey(36,function(){d.isEnabled()&&d.foldCells(!0)}),k.bindControlKey(35,function(){d.isEnabled()&&d.foldCells(!1)}),k.bindControlKey(13,function(){d.isEnabled()&&d.setSelectionCells(d.duplicateCells(d.getSelectionCells(),!1))}),k.bindAction(8,!1,"delete"),k.bindAction(8,!0,"deleteAll"),k.bindAction(46,!1,"delete"),k.bindAction(46,!0,"deleteAll"),k.bindAction(72,!0,"resetView"),k.bindAction(72, +!0,"fitWindow",!0),k.bindAction(74,!0,"fitPage"),k.bindAction(74,!0,"fitTwoPages",!0),k.bindAction(48,!0,"customZoom"),k.bindAction(82,!0,"turn"),k.bindAction(82,!0,"clearDefaultStyle",!0),k.bindAction(83,!0,"save"),k.bindAction(83,!0,"saveAs",!0),k.bindAction(65,!0,"selectAll"),k.bindAction(65,!0,"selectNone",!0),k.bindAction(73,!0,"selectVertices",!0),k.bindAction(69,!0,"selectEdges",!0),k.bindAction(69,!0,"editStyle"),k.bindAction(66,!0,"bold"),k.bindAction(66,!0,"toBack",!0),k.bindAction(70,!0, +"toFront",!0),k.bindAction(68,!0,"duplicate"),k.bindAction(68,!0,"setAsDefaultStyle",!0),k.bindAction(90,!0,"undo"),k.bindAction(89,!0,"autosize",!0),k.bindAction(88,!0,"cut"),k.bindAction(67,!0,"copy"),k.bindAction(86,!0,"paste"),k.bindAction(71,!0,"group"),k.bindAction(77,!0,"editData"),k.bindAction(71,!0,"grid",!0),k.bindAction(73,!0,"italic"),k.bindAction(76,!0,"lockUnlock"),k.bindAction(76,!0,"layers",!0),k.bindAction(80,!0,"formatPanel",!0),k.bindAction(85,!0,"underline"),k.bindAction(85,!0, +"ungroup",!0),k.bindAction(190,!0,"superscript"),k.bindAction(188,!0,"subscript"),k.bindKey(13,function(){d.isEnabled()&&d.startEditingAtCell()}),k.bindKey(113,function(){d.isEnabled()&&d.startEditingAtCell()});mxClient.IS_WIN?k.bindAction(89,!0,"redo"):k.bindAction(90,!0,"redo",!0);return k}; EditorUi.prototype.destroy=function(){null!=this.editor&&(this.editor.destroy(),this.editor=null);null!=this.menubar&&(this.menubar.destroy(),this.menubar=null);null!=this.toolbar&&(this.toolbar.destroy(),this.toolbar=null);null!=this.sidebar&&(this.sidebar.destroy(),this.sidebar=null);null!=this.keyHandler&&(this.keyHandler.destroy(),this.keyHandler=null);null!=this.keydownHandler&&(mxEvent.removeListener(document,"keydown",this.keydownHandler),this.keydownHandler=null);null!=this.keyupHandler&& (mxEvent.removeListener(document,"keyup",this.keyupHandler),this.keyupHandler=null);null!=this.resizeHandler&&(mxEvent.removeListener(window,"resize",this.resizeHandler),this.resizeHandler=null);null!=this.gestureHandler&&(mxEvent.removeGestureListeners(document,this.gestureHandler),this.gestureHandler=null);null!=this.orientationChangeHandler&&(mxEvent.removeListener(window,"orientationchange",this.orientationChangeHandler),this.orientationChangeHandler=null);null!=this.scrollHandler&&(mxEvent.removeListener(window, -"scroll",this.scrollHandler),this.scrollHandler=null);if(null!=this.destroyFunctions){for(var a=0;a<this.destroyFunctions.length;a++)this.destroyFunctions[a]();this.destroyFunctions=null}for(var d=[this.menubarContainer,this.toolbarContainer,this.sidebarContainer,this.formatContainer,this.diagramContainer,this.footerContainer,this.chromelessToolbar,this.hsplit,this.sidebarFooterContainer,this.layersDialog],a=0;a<d.length;a++)null!=d[a]&&null!=d[a].parentNode&&d[a].parentNode.removeChild(d[a])};"undefined"!==typeof html4&&(html4.ATTRIBS["a::target"]=0,html4.ATTRIBS["source::src"]=0,html4.ATTRIBS["video::src"]=0);mxConstants.SHADOW_OPACITY=.25;mxConstants.SHADOWCOLOR="#000000";mxConstants.VML_SHADOWCOLOR="#d0d0d0";mxGraph.prototype.pageBreakColor="#c0c0c0";mxGraph.prototype.pageScale=1; -(function(){try{if(null!=navigator&&null!=navigator.language){var a=navigator.language.toLowerCase();mxGraph.prototype.pageFormat="en-us"===a||"en-ca"===a||"es-mx"===a?mxConstants.PAGE_FORMAT_LETTER_PORTRAIT:mxConstants.PAGE_FORMAT_A4_PORTRAIT}}catch(d){}})();mxText.prototype.baseSpacingTop=5;mxText.prototype.baseSpacingBottom=1;mxGraphModel.prototype.ignoreRelativeEdgeParent=!1; +"scroll",this.scrollHandler),this.scrollHandler=null);if(null!=this.destroyFunctions){for(var a=0;a<this.destroyFunctions.length;a++)this.destroyFunctions[a]();this.destroyFunctions=null}for(var b=[this.menubarContainer,this.toolbarContainer,this.sidebarContainer,this.formatContainer,this.diagramContainer,this.footerContainer,this.chromelessToolbar,this.hsplit,this.sidebarFooterContainer,this.layersDialog],a=0;a<b.length;a++)null!=b[a]&&null!=b[a].parentNode&&b[a].parentNode.removeChild(b[a])};"undefined"!==typeof html4&&(html4.ATTRIBS["a::target"]=0,html4.ATTRIBS["source::src"]=0,html4.ATTRIBS["video::src"]=0);mxConstants.SHADOW_OPACITY=.25;mxConstants.SHADOWCOLOR="#000000";mxConstants.VML_SHADOWCOLOR="#d0d0d0";mxGraph.prototype.pageBreakColor="#c0c0c0";mxGraph.prototype.pageScale=1; +(function(){try{if(null!=navigator&&null!=navigator.language){var a=navigator.language.toLowerCase();mxGraph.prototype.pageFormat="en-us"===a||"en-ca"===a||"es-mx"===a?mxConstants.PAGE_FORMAT_LETTER_PORTRAIT:mxConstants.PAGE_FORMAT_A4_PORTRAIT}}catch(b){}})();mxText.prototype.baseSpacingTop=5;mxText.prototype.baseSpacingBottom=1;mxGraphModel.prototype.ignoreRelativeEdgeParent=!1; mxGraphView.prototype.gridImage=mxClient.IS_SVG?"data:image/gif;base64,R0lGODlhCgAKAJEAAAAAAP///8zMzP///yH5BAEAAAMALAAAAAAKAAoAAAIJ1I6py+0Po2wFADs=":IMAGE_PATH+"/grid.gif";mxGraphView.prototype.gridSteps=4;mxGraphView.prototype.minGridSize=4;mxGraphView.prototype.gridColor="#e0e0e0";mxSvgCanvas2D.prototype.foAltText="[Not supported by viewer]"; -Graph=function(a,d,e,b,h){mxGraph.call(this,a,d,e,b);this.themes=h||this.defaultThemes;this.currentEdgeStyle=mxUtils.clone(this.defaultEdgeStyle);this.currentVertexStyle=mxUtils.clone(this.defaultVertexStyle);a=this.baseUrl;d=a.indexOf("//");this.domainPathUrl=this.domainUrl="";0<d&&(d=a.indexOf("/",d+2),0<d&&(this.domainUrl=a.substring(0,d)),d=a.lastIndexOf("/"),0<d&&(this.domainPathUrl=a.substring(0,d+1)));this.isHtmlLabel=function(a){var c=this.view.getState(a);a=null!=c?c.style:this.getCellStyle(a); -return"1"==a.html||"wrap"==a[mxConstants.STYLE_WHITE_SPACE]};if(this.edgeMode){var m=null,p=null,q=null,u=null,c=!1;this.addListener(mxEvent.FIRE_MOUSE_EVENT,mxUtils.bind(this,function(a,d){if("mouseDown"==d.getProperty("eventName")&&this.isEnabled()){var b=d.getProperty("event");if(!mxEvent.isControlDown(b.getEvent())&&!mxEvent.isShiftDown(b.getEvent())){var f=b.getState();null!=f&&this.model.isEdge(f.cell)&&(m=new mxPoint(b.getGraphX(),b.getGraphY()),c=this.isCellSelected(f.cell),q=f,p=b,null!= -f.text&&null!=f.text.boundingBox&&mxUtils.contains(f.text.boundingBox,b.getGraphX(),b.getGraphY())?u=mxEvent.LABEL_HANDLE:(f=this.selectionCellsHandler.getHandler(f.cell),null!=f&&null!=f.bends&&0<f.bends.length&&(u=f.getHandleForEvent(b))))}}}));this.addMouseListener({mouseDown:function(a,c){},mouseMove:mxUtils.bind(this,function(a,d){var b=this.selectionCellsHandler.handlers.map,f;for(f in b)if(null!=b[f].index)return;if(this.isEnabled()&&!this.panningHandler.isActive()&&!mxEvent.isControlDown(d.getEvent())&& -!mxEvent.isShiftDown(d.getEvent())&&!mxEvent.isAltDown(d.getEvent()))if(f=this.tolerance,null!=m&&null!=q&&null!=p){if(b=q,Math.abs(m.x-d.getGraphX())>f||Math.abs(m.y-d.getGraphY())>f){this.isCellSelected(b.cell)||this.setSelectionCell(b.cell);var g=this.selectionCellsHandler.getHandler(b.cell);if(null!=g&&null!=g.bends&&0<g.bends.length){var e=g.getHandleForEvent(p),k=this.view.getEdgeStyle(b);f=k==mxEdgeStyle.EntityRelation;c||u!=mxEvent.LABEL_HANDLE||(e=u);if(f&&0!=e&&e!=g.bends.length-1&&e!=mxEvent.LABEL_HANDLE)!f|| -null==b.visibleSourceState&&null==b.visibleTargetState||(this.graphHandler.reset(),d.consume());else if(e==mxEvent.LABEL_HANDLE||0==e||null!=b.visibleSourceState||e==g.bends.length-1||null!=b.visibleTargetState)f||e==mxEvent.LABEL_HANDLE||(f=b.absolutePoints,null!=f&&(null==k&&null==e||k==mxEdgeStyle.OrthConnector)&&(e=u,null==e&&(e=new mxRectangle(m.x,m.y),e.grow(mxEdgeHandler.prototype.handleImage.width/2),mxUtils.contains(e,f[0].x,f[0].y)?e=0:mxUtils.contains(e,f[f.length-1].x,f[f.length-1].y)? -e=g.bends.length-1:null!=k&&(2==f.length||3==f.length&&(0==Math.round(f[0].x-f[1].x)&&0==Math.round(f[1].x-f[2].x)||0==Math.round(f[0].y-f[1].y)&&0==Math.round(f[1].y-f[2].y)))?e=2:(e=mxUtils.findNearestSegment(b,m.x,m.y),e=null==k?mxEvent.VIRTUAL_HANDLE-e:e+1))),null==e&&(e=mxEvent.VIRTUAL_HANDLE)),g.start(d.getGraphX(),d.getGraphX(),e),u=m=p=q=null,c=!1,d.consume(),this.graphHandler.reset()}}}else if(b=d.getState(),null!=b&&this.model.isEdge(b.cell)){g=null;f=b.absolutePoints;if(null!=f)if(e=new mxRectangle(d.getGraphX(), -d.getGraphY()),e.grow(mxEdgeHandler.prototype.handleImage.width/2),null!=b.text&&null!=b.text.boundingBox&&mxUtils.contains(b.text.boundingBox,d.getGraphX(),d.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!=b.visibleSourceState||null!=b.visibleTargetState)k=this.view.getEdgeStyle(b),g="crosshair",k!=mxEdgeStyle.EntityRelation&&this.isOrthogonal(b)&&(k=mxUtils.findNearestSegment(b,d.getGraphX(),d.getGraphY()), -k<f.length-1&&0<=k&&(g=0==Math.round(f[k].x-f[k+1].x)?"col-resize":"row-resize"));null!=g&&b.setCursor(g)}}),mouseUp:mxUtils.bind(this,function(a,c){u=m=p=q=null})})}this.cellRenderer.getLabelValue=function(a){var c=mxCellRenderer.prototype.getLabelValue.apply(this,arguments);a.view.graph.isHtmlLabel(a.cell)&&(c=1!=a.style.html?mxUtils.htmlEntities(c,!1):a.view.graph.sanitizeHtml(c));return c};if("undefined"!==typeof mxVertexHandler){this.setConnectable(!0);this.setDropEnabled(!0);this.setPanning(!0); -this.setTooltips(!0);this.setAllowLoops(!0);this.allowAutoPanning=!0;this.constrainChildren=this.resetEdgesOnConnect=!1;this.constrainRelativeChildren=!0;this.graphHandler.scrollOnMove=!1;this.graphHandler.scaleGrid=!0;this.connectionHandler.setCreateTarget(!1);this.connectionHandler.insertBeforeSource=!0;this.connectionHandler.isValidSource=function(a,c){return!1};this.alternateEdgeStyle="vertical";null==b&&this.loadStylesheet();var f=this.graphHandler.getGuideStates;this.graphHandler.getGuideStates= -function(){var a=f.apply(this,arguments);if(this.graph.pageVisible){for(var c=[],d=this.graph.pageFormat,b=this.graph.pageScale,g=d.width*b,d=d.height*b,b=this.graph.view.translate,e=this.graph.view.scale,k=this.graph.getPageLayout(),l=0;l<k.width;l++)c.push(new mxRectangle(((k.x+l)*g+b.x)*e,(k.y*d+b.y)*e,g*e,d*e));for(l=0;l<k.height;l++)c.push(new mxRectangle((k.x*g+b.x)*e,((k.y+l)*d+b.y)*e,g*e,d*e));a=c.concat(a)}return a};mxDragSource.prototype.dragElementZIndex=mxPopupMenu.prototype.zIndex;mxGuide.prototype.getGuideColor= -function(a,c){return null==a.cell?"#ffa500":mxConstants.GUIDE_COLOR};this.graphHandler.createPreviewShape=function(a){this.previewColor="#000000"==this.graph.background?"#ffffff":mxGraphHandler.prototype.previewColor;return mxGraphHandler.prototype.createPreviewShape.apply(this,arguments)};this.graphHandler.getCells=function(a){for(var c=mxGraphHandler.prototype.getCells.apply(this,arguments),d=[],b=0;b<c.length;b++){var f=this.graph.view.getState(c[b]),f=null!=f?f.style:this.graph.getCellStyle(c[b]); -"1"==mxUtils.getValue(f,"part","0")?(f=this.graph.model.getParent(c[b]),this.graph.model.isVertex(f)&&0>mxUtils.indexOf(c,f)&&d.push(f)):d.push(c[b])}return d};this.connectionHandler.createTargetVertex=function(a,c){var d=this.graph.view.getState(c),d=null!=d?d.style:this.graph.getCellStyle(c);mxUtils.getValue(d,"part",!1)&&(d=this.graph.model.getParent(c),this.graph.model.isVertex(d)&&(c=d));return mxConnectionHandler.prototype.createTargetVertex.apply(this,arguments)};var g=new mxRubberband(this); -this.getRubberband=function(){return g};var k=(new Date).getTime(),r=0,l=this.connectionHandler.mouseMove;this.connectionHandler.mouseMove=function(){var a=this.currentState;l.apply(this,arguments);a!=this.currentState?(k=(new Date).getTime(),r=0):r=(new Date).getTime()-k};var n=this.connectionHandler.isOutlineConnectEvent;this.connectionHandler.isOutlineConnectEvent=function(a){return null!=this.currentState&&a.getState()==this.currentState&&2E3<r||(null==this.currentState||"0"!=mxUtils.getValue(this.currentState.style, -"outlineConnect","1"))&&n.apply(this,arguments)};var w=this.isToggleEvent;this.isToggleEvent=function(a){return w.apply(this,arguments)||mxEvent.isShiftDown(a)};var v=g.isForceRubberbandEvent;g.isForceRubberbandEvent=function(a){return v.apply(this,arguments)||mxUtils.hasScrollbars(this.graph.container)&&mxClient.IS_FF&&mxClient.IS_WIN&&null==a.getState()&&mxEvent.isTouchEvent(a.getEvent())};var B=null;this.panningHandler.addListener(mxEvent.PAN_START,mxUtils.bind(this,function(){this.isEnabled()&& -(B=this.container.style.cursor,this.container.style.cursor="move")}));this.panningHandler.addListener(mxEvent.PAN_END,mxUtils.bind(this,function(){this.isEnabled()&&(this.container.style.cursor=B)}));this.popupMenuHandler.autoExpand=!0;this.popupMenuHandler.isSelectOnPopup=function(a){return mxEvent.isMouseEvent(a.getEvent())};var y=this.click;this.click=function(a){var c=null==a.state&&null!=a.sourceState&&this.isCellLocked(a.sourceState.cell);if(this.isEnabled()&&!c||a.isConsumed())return y.apply(this, +Graph=function(a,b,e,d,k){mxGraph.call(this,a,b,e,d);this.themes=k||this.defaultThemes;this.currentEdgeStyle=mxUtils.clone(this.defaultEdgeStyle);this.currentVertexStyle=mxUtils.clone(this.defaultVertexStyle);a=this.baseUrl;b=a.indexOf("//");this.domainPathUrl=this.domainUrl="";0<b&&(b=a.indexOf("/",b+2),0<b&&(this.domainUrl=a.substring(0,b)),b=a.lastIndexOf("/"),0<b&&(this.domainPathUrl=a.substring(0,b+1)));this.isHtmlLabel=function(a){var c=this.view.getState(a);a=null!=c?c.style:this.getCellStyle(a); +return"1"==a.html||"wrap"==a[mxConstants.STYLE_WHITE_SPACE]};if(this.edgeMode){var l=null,p=null,q=null,u=null,c=!1;this.addListener(mxEvent.FIRE_MOUSE_EVENT,mxUtils.bind(this,function(a,b){if("mouseDown"==b.getProperty("eventName")&&this.isEnabled()){var d=b.getProperty("event");if(!mxEvent.isControlDown(d.getEvent())&&!mxEvent.isShiftDown(d.getEvent())){var f=d.getState();null!=f&&this.model.isEdge(f.cell)&&(l=new mxPoint(d.getGraphX(),d.getGraphY()),c=this.isCellSelected(f.cell),q=f,p=d,null!= +f.text&&null!=f.text.boundingBox&&mxUtils.contains(f.text.boundingBox,d.getGraphX(),d.getGraphY())?u=mxEvent.LABEL_HANDLE:(f=this.selectionCellsHandler.getHandler(f.cell),null!=f&&null!=f.bends&&0<f.bends.length&&(u=f.getHandleForEvent(d))))}}}));this.addMouseListener({mouseDown:function(a,c){},mouseMove:mxUtils.bind(this,function(a,b){var d=this.selectionCellsHandler.handlers.map,f;for(f in d)if(null!=d[f].index)return;if(this.isEnabled()&&!this.panningHandler.isActive()&&!mxEvent.isControlDown(b.getEvent())&& +!mxEvent.isShiftDown(b.getEvent())&&!mxEvent.isAltDown(b.getEvent()))if(f=this.tolerance,null!=l&&null!=q&&null!=p){if(d=q,Math.abs(l.x-b.getGraphX())>f||Math.abs(l.y-b.getGraphY())>f){this.isCellSelected(d.cell)||this.setSelectionCell(d.cell);var g=this.selectionCellsHandler.getHandler(d.cell);if(null!=g&&null!=g.bends&&0<g.bends.length){var e=g.getHandleForEvent(p),h=this.view.getEdgeStyle(d);f=h==mxEdgeStyle.EntityRelation;c||u!=mxEvent.LABEL_HANDLE||(e=u);if(f&&0!=e&&e!=g.bends.length-1&&e!=mxEvent.LABEL_HANDLE)!f|| +null==d.visibleSourceState&&null==d.visibleTargetState||(this.graphHandler.reset(),b.consume());else if(e==mxEvent.LABEL_HANDLE||0==e||null!=d.visibleSourceState||e==g.bends.length-1||null!=d.visibleTargetState)f||e==mxEvent.LABEL_HANDLE||(f=d.absolutePoints,null!=f&&(null==h&&null==e||h==mxEdgeStyle.OrthConnector)&&(e=u,null==e&&(e=new mxRectangle(l.x,l.y),e.grow(mxEdgeHandler.prototype.handleImage.width/2),mxUtils.contains(e,f[0].x,f[0].y)?e=0:mxUtils.contains(e,f[f.length-1].x,f[f.length-1].y)? +e=g.bends.length-1:null!=h&&(2==f.length||3==f.length&&(0==Math.round(f[0].x-f[1].x)&&0==Math.round(f[1].x-f[2].x)||0==Math.round(f[0].y-f[1].y)&&0==Math.round(f[1].y-f[2].y)))?e=2:(e=mxUtils.findNearestSegment(d,l.x,l.y),e=null==h?mxEvent.VIRTUAL_HANDLE-e:e+1))),null==e&&(e=mxEvent.VIRTUAL_HANDLE)),g.start(b.getGraphX(),b.getGraphX(),e),u=l=p=q=null,c=!1,b.consume(),this.graphHandler.reset()}}}else if(d=b.getState(),null!=d&&this.model.isEdge(d.cell)){g=null;f=d.absolutePoints;if(null!=f)if(e=new mxRectangle(b.getGraphX(), +b.getGraphY()),e.grow(mxEdgeHandler.prototype.handleImage.width/2),null!=d.text&&null!=d.text.boundingBox&&mxUtils.contains(d.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!=d.visibleSourceState||null!=d.visibleTargetState)h=this.view.getEdgeStyle(d),g="crosshair",h!=mxEdgeStyle.EntityRelation&&this.isOrthogonal(d)&&(h=mxUtils.findNearestSegment(d,b.getGraphX(),b.getGraphY()), +h<f.length-1&&0<=h&&(g=0==Math.round(f[h].x-f[h+1].x)?"col-resize":"row-resize"));null!=g&&d.setCursor(g)}}),mouseUp:mxUtils.bind(this,function(a,c){u=l=p=q=null})})}this.cellRenderer.getLabelValue=function(a){var c=mxCellRenderer.prototype.getLabelValue.apply(this,arguments);a.view.graph.isHtmlLabel(a.cell)&&(c=1!=a.style.html?mxUtils.htmlEntities(c,!1):a.view.graph.sanitizeHtml(c));return c};if("undefined"!==typeof mxVertexHandler){this.setConnectable(!0);this.setDropEnabled(!0);this.setPanning(!0); +this.setTooltips(!0);this.setAllowLoops(!0);this.allowAutoPanning=!0;this.constrainChildren=this.resetEdgesOnConnect=!1;this.constrainRelativeChildren=!0;this.graphHandler.scrollOnMove=!1;this.graphHandler.scaleGrid=!0;this.connectionHandler.setCreateTarget(!1);this.connectionHandler.insertBeforeSource=!0;this.connectionHandler.isValidSource=function(a,c){return!1};this.alternateEdgeStyle="vertical";null==d&&this.loadStylesheet();var f=this.graphHandler.getGuideStates;this.graphHandler.getGuideStates= +function(){var a=f.apply(this,arguments);if(this.graph.pageVisible){for(var c=[],b=this.graph.pageFormat,d=this.graph.pageScale,g=b.width*d,b=b.height*d,d=this.graph.view.translate,e=this.graph.view.scale,h=this.graph.getPageLayout(),n=0;n<h.width;n++)c.push(new mxRectangle(((h.x+n)*g+d.x)*e,(h.y*b+d.y)*e,g*e,b*e));for(n=0;n<h.height;n++)c.push(new mxRectangle((h.x*g+d.x)*e,((h.y+n)*b+d.y)*e,g*e,b*e));a=c.concat(a)}return a};mxDragSource.prototype.dragElementZIndex=mxPopupMenu.prototype.zIndex;mxGuide.prototype.getGuideColor= +function(a,c){return null==a.cell?"#ffa500":mxConstants.GUIDE_COLOR};this.graphHandler.createPreviewShape=function(a){this.previewColor="#000000"==this.graph.background?"#ffffff":mxGraphHandler.prototype.previewColor;return mxGraphHandler.prototype.createPreviewShape.apply(this,arguments)};this.graphHandler.getCells=function(a){for(var c=mxGraphHandler.prototype.getCells.apply(this,arguments),b=[],d=0;d<c.length;d++){var f=this.graph.view.getState(c[d]),f=null!=f?f.style:this.graph.getCellStyle(c[d]); +"1"==mxUtils.getValue(f,"part","0")?(f=this.graph.model.getParent(c[d]),this.graph.model.isVertex(f)&&0>mxUtils.indexOf(c,f)&&b.push(f)):b.push(c[d])}return b};this.connectionHandler.createTargetVertex=function(a,c){var b=this.graph.view.getState(c),b=null!=b?b.style:this.graph.getCellStyle(c);mxUtils.getValue(b,"part",!1)&&(b=this.graph.model.getParent(c),this.graph.model.isVertex(b)&&(c=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<r||(null==this.currentState||"0"!=mxUtils.getValue(this.currentState.style, +"outlineConnect","1"))&&m.apply(this,arguments)};var w=this.isToggleEvent;this.isToggleEvent=function(a){return w.apply(this,arguments)||mxEvent.isShiftDown(a)};var v=g.isForceRubberbandEvent;g.isForceRubberbandEvent=function(a){return v.apply(this,arguments)||mxUtils.hasScrollbars(this.graph.container)&&mxClient.IS_FF&&mxClient.IS_WIN&&null==a.getState()&&mxEvent.isTouchEvent(a.getEvent())};var A=null;this.panningHandler.addListener(mxEvent.PAN_START,mxUtils.bind(this,function(){this.isEnabled()&& +(A=this.container.style.cursor,this.container.style.cursor="move")}));this.panningHandler.addListener(mxEvent.PAN_END,mxUtils.bind(this,function(){this.isEnabled()&&(this.container.style.cursor=A)}));this.popupMenuHandler.autoExpand=!0;this.popupMenuHandler.isSelectOnPopup=function(a){return mxEvent.isMouseEvent(a.getEvent())};var y=this.click;this.click=function(a){var c=null==a.state&&null!=a.sourceState&&this.isCellLocked(a.sourceState.cell);if(this.isEnabled()&&!c||a.isConsumed())return y.apply(this, arguments);c=c?a.sourceState.cell:a.getCell();null!=c&&(c=this.getLinkForCell(c),null!=c&&(this.isCustomLink(c)?this.customLinkClicked(c):this.openLink(c)))};this.tooltipHandler.getStateForEvent=function(a){return a.sourceState};this.getCursorForMouseEvent=function(a){var c=null==a.state&&null!=a.sourceState&&this.isCellLocked(a.sourceState.cell);return this.getCursorForCell(c?a.sourceState.cell:a.getCell())};var t=this.getCursorForCell;this.getCursorForCell=function(a){if(!this.isEnabled()||this.isCellLocked(a)){if(null!= -this.getLinkForCell(a))return"pointer";if(this.isCellLocked(a))return"default"}return t.apply(this,arguments)};this.selectRegion=function(a,c){var d=this.getAllCells(a.x,a.y,a.width,a.height);this.selectCellsForEvent(d,c);return d};this.getAllCells=function(a,c,d,b,f,g){g=null!=g?g:[];if(0<d||0<b){var e=this.getModel(),k=a+d,l=c+b;null==f&&(f=this.getCurrentRoot(),null==f&&(f=e.getRoot()));if(null!=f)for(var n=e.getChildCount(f),F=0;F<n;F++){var r=e.getChildAt(f,F),t=this.view.getState(r);if(null!= -t&&this.isCellVisible(r)&&"1"!=mxUtils.getValue(t.style,"locked","0")){var y=mxUtils.getValue(t.style,mxConstants.STYLE_ROTATION)||0;0!=y&&(t=mxUtils.getBoundingBox(t,y));(e.isEdge(r)||e.isVertex(r))&&t.x>=a&&t.y+t.height<=l&&t.y>=c&&t.x+t.width<=k&&g.push(r);this.getAllCells(a,c,d,b,r,g)}}}return g};var z=this.graphHandler.shouldRemoveCellsFromParent;this.graphHandler.shouldRemoveCellsFromParent=function(a,c,d){return this.graph.isCellSelected(a)?!1:z.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 H=null;this.addListener(mxEvent.FIRE_MOUSE_EVENT,mxUtils.bind(this,function(a,c){if("mouseDown"==c.getProperty("eventName")){var d=c.getProperty("event").getState();H=null==d||this.isSelectionEmpty()||this.isCellSelected(d.cell)?null:this.getSelectionCells()}}));this.addListener(mxEvent.TAP_AND_HOLD,mxUtils.bind(this,function(a,c){if(!mxEvent.isMultiTouchEvent(c)){var d= -c.getProperty("event"),b=c.getProperty("cell");null==b?(d=mxUtils.convertPoint(this.container,mxEvent.getClientX(d),mxEvent.getClientY(d)),g.start(d.x,d.y)):null!=H?this.addSelectionCells(H):1<this.getSelectionCount()&&this.isCellSelected(b)&&this.removeSelectionCell(b);H=null;c.consume()}}));this.connectionHandler.selectCells=function(a,c){this.graph.setSelectionCell(c||a)};this.connectionHandler.constraintHandler.isStateIgnored=function(a,c){return c&&a.view.graph.isCellSelected(a.cell)};this.selectionModel.addListener(mxEvent.CHANGE, +this.getLinkForCell(a))return"pointer";if(this.isCellLocked(a))return"default"}return t.apply(this,arguments)};this.selectRegion=function(a,c){var b=this.getAllCells(a.x,a.y,a.width,a.height);this.selectCellsForEvent(b,c);return b};this.getAllCells=function(a,c,b,d,f,g){g=null!=g?g:[];if(0<b||0<d){var e=this.getModel(),h=a+b,n=c+d;null==f&&(f=this.getCurrentRoot(),null==f&&(f=e.getRoot()));if(null!=f)for(var m=e.getChildCount(f),F=0;F<m;F++){var r=e.getChildAt(f,F),t=this.view.getState(r);if(null!= +t&&this.isCellVisible(r)&&"1"!=mxUtils.getValue(t.style,"locked","0")){var y=mxUtils.getValue(t.style,mxConstants.STYLE_ROTATION)||0;0!=y&&(t=mxUtils.getBoundingBox(t,y));(e.isEdge(r)||e.isVertex(r))&&t.x>=a&&t.y+t.height<=n&&t.y>=c&&t.x+t.width<=h&&g.push(r);this.getAllCells(a,c,b,d,r,g)}}}return g};var z=this.graphHandler.shouldRemoveCellsFromParent;this.graphHandler.shouldRemoveCellsFromParent=function(a,c,b){return this.graph.isCellSelected(a)?!1:z.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 H=null;this.addListener(mxEvent.FIRE_MOUSE_EVENT,mxUtils.bind(this,function(a,c){if("mouseDown"==c.getProperty("eventName")){var b=c.getProperty("event").getState();H=null==b||this.isSelectionEmpty()||this.isCellSelected(b.cell)?null:this.getSelectionCells()}}));this.addListener(mxEvent.TAP_AND_HOLD,mxUtils.bind(this,function(a,c){if(!mxEvent.isMultiTouchEvent(c)){var b= +c.getProperty("event"),d=c.getProperty("cell");null==d?(b=mxUtils.convertPoint(this.container,mxEvent.getClientX(b),mxEvent.getClientY(b)),g.start(b.x,b.y)):null!=H?this.addSelectionCells(H):1<this.getSelectionCount()&&this.isCellSelected(d)&&this.removeSelectionCell(d);H=null;c.consume()}}));this.connectionHandler.selectCells=function(a,c){this.graph.setSelectionCell(c||a)};this.connectionHandler.constraintHandler.isStateIgnored=function(a,c){return c&&a.view.graph.isCellSelected(a.cell)};this.selectionModel.addListener(mxEvent.CHANGE, mxUtils.bind(this,function(){var a=this.connectionHandler.constraintHandler;null!=a.currentFocus&&a.isStateIgnored(a.currentFocus,!0)&&(a.currentFocus=null,a.constraints=null,a.destroyIcons());a.destroyFocusHighlight()}));Graph.touchStyle&&this.initTouch();var G=this.updateMouseEvent;this.updateMouseEvent=function(a){a=G.apply(this,arguments);null!=a.state&&this.isCellLocked(a.getCell())&&(a.state=null);return a}}this.currentTranslate=new mxPoint(0,0)}; Graph.touchStyle=mxClient.IS_TOUCH||mxClient.IS_FF&&mxClient.IS_WIN||0<navigator.maxTouchPoints||0<navigator.msMaxTouchPoints||null==window.urlParams||"1"==urlParams.touch;Graph.fileSupport=null!=window.File&&null!=window.FileReader&&null!=window.FileList&&(null==window.urlParams||"0"!=urlParams.filesupport);Graph.lineJumpsEnabled=!0;Graph.defaultJumpSize=6; -Graph.createSvgImage=function(a,d,e){e=unescape(encodeURIComponent('<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="'+a+'px" height="'+d+'px" version="1.1">'+e+"</svg>"));return new mxImage("data:image/svg+xml;base64,"+(window.btoa?btoa(e):Base64.encode(e,!0)),a,d)};mxUtils.extend(Graph,mxGraph);Graph.prototype.minFitScale=null;Graph.prototype.maxFitScale=null; +Graph.createSvgImage=function(a,b,e){e=unescape(encodeURIComponent('<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="'+a+'px" height="'+b+'px" version="1.1">'+e+"</svg>"));return new mxImage("data:image/svg+xml;base64,"+(window.btoa?btoa(e):Base64.encode(e,!0)),a,b)};mxUtils.extend(Graph,mxGraph);Graph.prototype.minFitScale=null;Graph.prototype.maxFitScale=null; Graph.prototype.linkPolicy="frame"==urlParams.target?"blank":urlParams.target||"auto";Graph.prototype.linkTarget="frame"==urlParams.target?"_self":"_blank";Graph.prototype.linkRelation="nofollow noopener noreferrer";Graph.prototype.defaultScrollbars=!mxClient.IS_IOS;Graph.prototype.defaultPageVisible=!0;Graph.prototype.lightbox=!1;Graph.prototype.defaultPageBackgroundColor="#ffffff";Graph.prototype.defaultPageBorderColor="#ffffff";Graph.prototype.defaultGraphBackground="#ffffff"; Graph.prototype.scrollTileSize=new mxRectangle(0,0,400,400);Graph.prototype.transparentBackground=!0;Graph.prototype.defaultEdgeLength=80;Graph.prototype.edgeMode=!1;Graph.prototype.connectionArrowsEnabled=!0;Graph.prototype.placeholderPattern=RegExp("%(date{.*}|[^%^{^}]+)%","g");Graph.prototype.absoluteUrlPattern=/^(?:[a-z]+:)?\/\//i;Graph.prototype.defaultThemeName="default";Graph.prototype.defaultThemes={}; Graph.prototype.baseUrl=null!=urlParams.base?decodeURIComponent(urlParams.base):(window!=window.top?document.referrer:document.location.toString()).split("#")[0];Graph.prototype.editAfterInsert=!1;Graph.prototype.builtInProperties=["label","tooltip","placeholders","placeholder"]; -Graph.prototype.init=function(a){mxGraph.prototype.init.apply(this,arguments);this.cellRenderer.initializeLabel=function(a,e){mxCellRenderer.prototype.initializeLabel.apply(this,arguments);var d=a.view.graph.tolerance,h=!0,m=null,p=mxUtils.bind(this,function(a){h=!0;m=new mxPoint(mxEvent.getClientX(a),mxEvent.getClientY(a))}),q=mxUtils.bind(this,function(a){h=h&&null!=m&&Math.abs(m.x-mxEvent.getClientX(a))<d&&Math.abs(m.y-mxEvent.getClientY(a))<d}),u=mxUtils.bind(this,function(c){if(h)for(var d=mxEvent.getSource(c);null!= -d&&d!=e.node;){if("a"==d.nodeName.toLowerCase()){a.view.graph.labelLinkClicked(a,d,c);break}d=d.parentNode}});mxEvent.addGestureListeners(e.node,p,q,u);mxEvent.addListener(e.node,"click",function(a){mxEvent.consume(a)})};this.initLayoutManager()}; -(function(){Graph.prototype.useCssTransforms=!1;Graph.prototype.currentScale=1;Graph.prototype.currentTranslate=new mxPoint(0,0);Graph.prototype.isCssTransformsSupported=function(){return this.dialect==mxConstants.DIALECT_SVG&&!mxClient.NO_FO};Graph.prototype.getCellAt=function(a,d,e,p,q,u){this.useCssTransforms&&(a=a/this.currentScale-this.currentTranslate.x,d=d/this.currentScale-this.currentTranslate.y);return this.getScaledCellAt.apply(this,arguments)};Graph.prototype.getScaledCellAt=function(a, -d,e,p,q,u){p=null!=p?p:!0;q=null!=q?q:!0;null==e&&(e=this.getCurrentRoot(),null==e&&(e=this.getModel().getRoot()));if(null!=e)for(var c=this.model.getChildCount(e)-1;0<=c;c--){var b=this.model.getChildAt(e,c),g=this.getScaledCellAt(a,d,b,p,q,u);if(null!=g)return g;if(this.isCellVisible(b)&&(q&&this.model.isEdge(b)||p&&this.model.isVertex(b))&&(g=this.view.getState(b),null!=g&&(null==u||!u(g,a,d))&&this.intersects(g,a,d)))return b}return null};mxCellHighlight.prototype.getStrokeWidth=function(a){a= -this.strokeWidth;this.graph.useCssTransforms&&(a/=this.graph.currentScale);return a};mxGraphView.prototype.getGraphBounds=function(){var a=this.graphBounds;if(this.graph.useCssTransforms)var d=this.graph.currentTranslate,e=this.graph.currentScale,a=new mxRectangle((a.x+d.x)*e,(a.y+d.y)*e,a.width*e,a.height*e);return a};mxGraphView.prototype.viewStateChanged=function(){this.graph.useCssTransforms?this.validate():this.revalidate();this.graph.sizeDidChange()};var a=mxGraphView.prototype.validate;mxGraphView.prototype.validate= -function(d){this.graph.useCssTransforms&&(this.graph.currentScale=this.scale,this.graph.currentTranslate.x=this.translate.x,this.graph.currentTranslate.y=this.translate.y,this.scale=1,this.translate.x=0,this.translate.y=0);a.apply(this,arguments);this.graph.useCssTransforms&&(this.graph.updateCssTransform(),this.scale=this.graph.currentScale,this.translate.x=this.graph.currentTranslate.x,this.translate.y=this.graph.currentTranslate.y)};Graph.prototype.updateCssTransform=function(){var a=this.view.getDrawPane(); -if(null!=a)if(a=a.parentNode,this.useCssTransforms){var d=a.getAttribute("transform");a.setAttribute("transformOrigin","0 0");a.setAttribute("transform","scale("+this.currentScale+","+this.currentScale+")translate("+this.currentTranslate.x+","+this.currentTranslate.y+")");if(d!=a.getAttribute("transform"))try{if(mxClient.IS_EDGE){var e=a.style.display;a.style.display="none";a.getBBox();a.style.display=e}}catch(p){}}else a.removeAttribute("transformOrigin"),a.removeAttribute("transform")};var d=mxGraphView.prototype.validateBackgroundPage; -mxGraphView.prototype.validateBackgroundPage=function(){var a=this.graph.useCssTransforms,e=this.scale,m=this.translate;a&&(this.scale=this.graph.currentScale,this.translate=this.graph.currentTranslate);d.apply(this,arguments);a&&(this.scale=e,this.translate=m)};var e=mxGraph.prototype.updatePageBreaks;mxGraph.prototype.updatePageBreaks=function(a,d,m){var b=this.useCssTransforms,h=this.view.scale,u=this.view.translate;b&&(this.view.scale=1,this.view.translate=new mxPoint(0,0),this.useCssTransforms= -!1);e.apply(this,arguments);b&&(this.view.scale=h,this.view.translate=u,this.useCssTransforms=!0)}})();Graph.prototype.isLightboxView=function(){return this.lightbox};Graph.prototype.labelLinkClicked=function(a,d,e){d=d.getAttribute("href");if(null!=d&&!this.isCustomLink(d)&&mxEvent.isLeftMouseButton(e)&&!mxEvent.isPopupTrigger(e)||mxEvent.isTouchEvent(e)){if(!this.isEnabled()||this.isCellLocked(a.cell))a=this.isBlankLink(d)?this.linkTarget:"_top",this.openLink(this.getAbsoluteUrl(d),a);mxEvent.consume(e)}}; -Graph.prototype.openLink=function(a,d,e){var b=window;"_self"==d&&window!=window.top?window.location.href=a:a.substring(0,this.baseUrl.length)==this.baseUrl&&"#"==a.charAt(this.baseUrl.length)&&"_top"==d&&window==window.top?(a=a.split("#")[1],window.location.hash=="#"+a&&(window.location.hash=""),window.location.hash=a):(b=window.open(a,d),null==b||e||(b.opener=null));return b};Graph.prototype.getLinkTitle=function(a){return a.substring(a.lastIndexOf("/")+1)}; +Graph.prototype.init=function(a){mxGraph.prototype.init.apply(this,arguments);this.cellRenderer.initializeLabel=function(a,e){mxCellRenderer.prototype.initializeLabel.apply(this,arguments);var b=a.view.graph.tolerance,k=!0,l=null,p=mxUtils.bind(this,function(a){k=!0;l=new mxPoint(mxEvent.getClientX(a),mxEvent.getClientY(a))}),q=mxUtils.bind(this,function(a){k=k&&null!=l&&Math.abs(l.x-mxEvent.getClientX(a))<b&&Math.abs(l.y-mxEvent.getClientY(a))<b}),u=mxUtils.bind(this,function(c){if(k)for(var b=mxEvent.getSource(c);null!= +b&&b!=e.node;){if("a"==b.nodeName.toLowerCase()){a.view.graph.labelLinkClicked(a,b,c);break}b=b.parentNode}});mxEvent.addGestureListeners(e.node,p,q,u);mxEvent.addListener(e.node,"click",function(a){mxEvent.consume(a)})};this.initLayoutManager()}; +(function(){Graph.prototype.useCssTransforms=!1;Graph.prototype.currentScale=1;Graph.prototype.currentTranslate=new mxPoint(0,0);Graph.prototype.isCssTransformsSupported=function(){return this.dialect==mxConstants.DIALECT_SVG&&!mxClient.NO_FO};Graph.prototype.getCellAt=function(a,b,e,p,q,u){this.useCssTransforms&&(a=a/this.currentScale-this.currentTranslate.x,b=b/this.currentScale-this.currentTranslate.y);return this.getScaledCellAt.apply(this,arguments)};Graph.prototype.getScaledCellAt=function(a, +b,e,p,q,u){p=null!=p?p:!0;q=null!=q?q:!0;null==e&&(e=this.getCurrentRoot(),null==e&&(e=this.getModel().getRoot()));if(null!=e)for(var c=this.model.getChildCount(e)-1;0<=c;c--){var d=this.model.getChildAt(e,c),g=this.getScaledCellAt(a,b,d,p,q,u);if(null!=g)return g;if(this.isCellVisible(d)&&(q&&this.model.isEdge(d)||p&&this.model.isVertex(d))&&(g=this.view.getState(d),null!=g&&(null==u||!u(g,a,b))&&this.intersects(g,a,b)))return d}return null};mxCellHighlight.prototype.getStrokeWidth=function(a){a= +this.strokeWidth;this.graph.useCssTransforms&&(a/=this.graph.currentScale);return a};mxGraphView.prototype.getGraphBounds=function(){var a=this.graphBounds;if(this.graph.useCssTransforms)var b=this.graph.currentTranslate,e=this.graph.currentScale,a=new mxRectangle((a.x+b.x)*e,(a.y+b.y)*e,a.width*e,a.height*e);return a};mxGraphView.prototype.viewStateChanged=function(){this.graph.useCssTransforms?this.validate():this.revalidate();this.graph.sizeDidChange()};var a=mxGraphView.prototype.validate;mxGraphView.prototype.validate= +function(b){this.graph.useCssTransforms&&(this.graph.currentScale=this.scale,this.graph.currentTranslate.x=this.translate.x,this.graph.currentTranslate.y=this.translate.y,this.scale=1,this.translate.x=0,this.translate.y=0);a.apply(this,arguments);this.graph.useCssTransforms&&(this.graph.updateCssTransform(),this.scale=this.graph.currentScale,this.translate.x=this.graph.currentTranslate.x,this.translate.y=this.graph.currentTranslate.y)};Graph.prototype.updateCssTransform=function(){var a=this.view.getDrawPane(); +if(null!=a)if(a=a.parentNode,this.useCssTransforms){var b=a.getAttribute("transform");a.setAttribute("transformOrigin","0 0");a.setAttribute("transform","scale("+this.currentScale+","+this.currentScale+")translate("+this.currentTranslate.x+","+this.currentTranslate.y+")");if(b!=a.getAttribute("transform"))try{if(mxClient.IS_EDGE){var e=a.style.display;a.style.display="none";a.getBBox();a.style.display=e}}catch(p){}}else a.removeAttribute("transformOrigin"),a.removeAttribute("transform")};var b=mxGraphView.prototype.validateBackgroundPage; +mxGraphView.prototype.validateBackgroundPage=function(){var a=this.graph.useCssTransforms,e=this.scale,l=this.translate;a&&(this.scale=this.graph.currentScale,this.translate=this.graph.currentTranslate);b.apply(this,arguments);a&&(this.scale=e,this.translate=l)};var e=mxGraph.prototype.updatePageBreaks;mxGraph.prototype.updatePageBreaks=function(a,b,l){var d=this.useCssTransforms,k=this.view.scale,u=this.view.translate;d&&(this.view.scale=1,this.view.translate=new mxPoint(0,0),this.useCssTransforms= +!1);e.apply(this,arguments);d&&(this.view.scale=k,this.view.translate=u,this.useCssTransforms=!0)}})();Graph.prototype.isLightboxView=function(){return this.lightbox};Graph.prototype.labelLinkClicked=function(a,b,e){b=b.getAttribute("href");if(null!=b&&!this.isCustomLink(b)&&mxEvent.isLeftMouseButton(e)&&!mxEvent.isPopupTrigger(e)||mxEvent.isTouchEvent(e)){if(!this.isEnabled()||this.isCellLocked(a.cell))a=this.isBlankLink(b)?this.linkTarget:"_top",this.openLink(this.getAbsoluteUrl(b),a);mxEvent.consume(e)}}; +Graph.prototype.openLink=function(a,b,e){var d=window;"_self"==b&&window!=window.top?window.location.href=a:a.substring(0,this.baseUrl.length)==this.baseUrl&&"#"==a.charAt(this.baseUrl.length)&&"_top"==b&&window==window.top?(a=a.split("#")[1],window.location.hash=="#"+a&&(window.location.hash=""),window.location.hash=a):(d=window.open(a,b),null==d||e||(d.opener=null));return d};Graph.prototype.getLinkTitle=function(a){return a.substring(a.lastIndexOf("/")+1)}; Graph.prototype.isCustomLink=function(a){return"data:"==a.substring(0,5)};Graph.prototype.customLinkClicked=function(a){return!1};Graph.prototype.isExternalProtocol=function(a){return"mailto:"===a.substring(0,7)};Graph.prototype.isBlankLink=function(a){return!this.isExternalProtocol(a)&&("blank"===this.linkPolicy||"self"!==this.linkPolicy&&!this.isRelativeUrl(a)&&a.substring(0,this.domainUrl.length)!==this.domainUrl)}; Graph.prototype.isRelativeUrl=function(a){return null!=a&&!this.absoluteUrlPattern.test(a)&&"data:"!==a.substring(0,5)&&!this.isExternalProtocol(a)}; -Graph.prototype.initLayoutManager=function(){this.layoutManager=new mxLayoutManager(this);this.layoutManager.getLayout=function(a){var d=this.graph.view.getState(a);a=null!=d?d.style:this.graph.getCellStyle(a);return"stackLayout"==a.childLayout?(d=new mxStackLayout(this.graph,!0),d.resizeParentMax="1"==mxUtils.getValue(a,"resizeParentMax","1"),d.horizontal="1"==mxUtils.getValue(a,"horizontalStack","1"),d.resizeParent="1"==mxUtils.getValue(a,"resizeParent","1"),d.resizeLast="1"==mxUtils.getValue(a, -"resizeLast","0"),d.spacing=a.stackSpacing||d.spacing,d.border=a.stackBorder||d.border,d.marginLeft=a.marginLeft||0,d.marginRight=a.marginRight||0,d.marginTop=a.marginTop||0,d.marginBottom=a.marginBottom||0,d.fill=!0,d):"treeLayout"==a.childLayout?(d=new mxCompactTreeLayout(this.graph),d.horizontal="1"==mxUtils.getValue(a,"horizontalTree","1"),d.resizeParent="1"==mxUtils.getValue(a,"resizeParent","1"),d.groupPadding=mxUtils.getValue(a,"parentPadding",20),d.levelDistance=mxUtils.getValue(a,"treeLevelDistance", -30),d.maintainParentLocation=!0,d.edgeRouting=!1,d.resetEdges=!1,d):"flowLayout"==a.childLayout?(d=new mxHierarchicalLayout(this.graph,mxUtils.getValue(a,"flowOrientation",mxConstants.DIRECTION_EAST)),d.resizeParent="1"==mxUtils.getValue(a,"resizeParent","1"),d.parentBorder=mxUtils.getValue(a,"parentPadding",20),d.maintainParentLocation=!0,d.intraCellSpacing=mxUtils.getValue(a,"intraCellSpacing",mxHierarchicalLayout.prototype.intraCellSpacing),d.interRankCellSpacing=mxUtils.getValue(a,"interRankCellSpacing", -mxHierarchicalLayout.prototype.interRankCellSpacing),d.interHierarchySpacing=mxUtils.getValue(a,"interHierarchySpacing",mxHierarchicalLayout.prototype.interHierarchySpacing),d.parallelEdgeSpacing=mxUtils.getValue(a,"parallelEdgeSpacing",mxHierarchicalLayout.prototype.parallelEdgeSpacing),d):null}};Graph.prototype.getPageSize=function(){return this.pageVisible?new mxRectangle(0,0,this.pageFormat.width*this.pageScale,this.pageFormat.height*this.pageScale):this.scrollTileSize}; -Graph.prototype.getPageLayout=function(){var a=this.getPageSize(),d=this.getGraphBounds();if(0==d.width||0==d.height)return new mxRectangle(0,0,1,1);var e=Math.ceil(d.x/this.view.scale-this.view.translate.x),b=Math.ceil(d.y/this.view.scale-this.view.translate.y),h=Math.floor(e/a.width),m=Math.floor(b/a.height);return new mxRectangle(h,m,Math.ceil((e+Math.floor(d.width/this.view.scale))/a.width)-h,Math.ceil((b+Math.floor(d.height/this.view.scale))/a.height)-m)}; -Graph.prototype.sanitizeHtml=function(a,d){return html_sanitize(a,function(a){return null!=a&&"javascript:"!==a.toString().toLowerCase().substring(0,11)?a:null},function(a){return a})};Graph.prototype.updatePlaceholders=function(){var a=!1,d;for(d in this.model.cells){var e=this.model.cells[d];this.isReplacePlaceholders(e)&&(this.view.invalidate(e,!1,!1),a=!0)}a&&this.view.validate()};Graph.prototype.isReplacePlaceholders=function(a){return null!=a.value&&"object"==typeof a.value&&"1"==a.value.getAttribute("placeholders")}; +Graph.prototype.initLayoutManager=function(){this.layoutManager=new mxLayoutManager(this);this.layoutManager.getLayout=function(a){var b=this.graph.view.getState(a);a=null!=b?b.style:this.graph.getCellStyle(a);return"stackLayout"==a.childLayout?(b=new mxStackLayout(this.graph,!0),b.resizeParentMax="1"==mxUtils.getValue(a,"resizeParentMax","1"),b.horizontal="1"==mxUtils.getValue(a,"horizontalStack","1"),b.resizeParent="1"==mxUtils.getValue(a,"resizeParent","1"),b.resizeLast="1"==mxUtils.getValue(a, +"resizeLast","0"),b.spacing=a.stackSpacing||b.spacing,b.border=a.stackBorder||b.border,b.marginLeft=a.marginLeft||0,b.marginRight=a.marginRight||0,b.marginTop=a.marginTop||0,b.marginBottom=a.marginBottom||0,b.fill=!0,b):"treeLayout"==a.childLayout?(b=new mxCompactTreeLayout(this.graph),b.horizontal="1"==mxUtils.getValue(a,"horizontalTree","1"),b.resizeParent="1"==mxUtils.getValue(a,"resizeParent","1"),b.groupPadding=mxUtils.getValue(a,"parentPadding",20),b.levelDistance=mxUtils.getValue(a,"treeLevelDistance", +30),b.maintainParentLocation=!0,b.edgeRouting=!1,b.resetEdges=!1,b):"flowLayout"==a.childLayout?(b=new mxHierarchicalLayout(this.graph,mxUtils.getValue(a,"flowOrientation",mxConstants.DIRECTION_EAST)),b.resizeParent="1"==mxUtils.getValue(a,"resizeParent","1"),b.parentBorder=mxUtils.getValue(a,"parentPadding",20),b.maintainParentLocation=!0,b.intraCellSpacing=mxUtils.getValue(a,"intraCellSpacing",mxHierarchicalLayout.prototype.intraCellSpacing),b.interRankCellSpacing=mxUtils.getValue(a,"interRankCellSpacing", +mxHierarchicalLayout.prototype.interRankCellSpacing),b.interHierarchySpacing=mxUtils.getValue(a,"interHierarchySpacing",mxHierarchicalLayout.prototype.interHierarchySpacing),b.parallelEdgeSpacing=mxUtils.getValue(a,"parallelEdgeSpacing",mxHierarchicalLayout.prototype.parallelEdgeSpacing),b):null}};Graph.prototype.getPageSize=function(){return this.pageVisible?new mxRectangle(0,0,this.pageFormat.width*this.pageScale,this.pageFormat.height*this.pageScale):this.scrollTileSize}; +Graph.prototype.getPageLayout=function(){var a=this.getPageSize(),b=this.getGraphBounds();if(0==b.width||0==b.height)return new mxRectangle(0,0,1,1);var e=Math.ceil(b.x/this.view.scale-this.view.translate.x),d=Math.ceil(b.y/this.view.scale-this.view.translate.y),k=Math.floor(e/a.width),l=Math.floor(d/a.height);return new mxRectangle(k,l,Math.ceil((e+Math.floor(b.width/this.view.scale))/a.width)-k,Math.ceil((d+Math.floor(b.height/this.view.scale))/a.height)-l)}; +Graph.prototype.sanitizeHtml=function(a,b){return html_sanitize(a,function(a){return null!=a&&"javascript:"!==a.toString().toLowerCase().substring(0,11)?a:null},function(a){return a})};Graph.prototype.updatePlaceholders=function(){var a=!1,b;for(b in this.model.cells){var e=this.model.cells[b];this.isReplacePlaceholders(e)&&(this.view.invalidate(e,!1,!1),a=!0)}a&&this.view.validate()};Graph.prototype.isReplacePlaceholders=function(a){return null!=a.value&&"object"==typeof a.value&&"1"==a.value.getAttribute("placeholders")}; Graph.prototype.isZoomWheelEvent=function(a){return mxEvent.isAltDown(a)||mxEvent.isMetaDown(a)&&mxClient.IS_MAC||mxEvent.isControlDown(a)&&!mxClient.IS_MAC};Graph.prototype.isTransparentClickEvent=function(a){return mxEvent.isAltDown(a)};Graph.prototype.isIgnoreTerminalEvent=function(a){return mxEvent.isShiftDown(a)&&mxEvent.isControlDown(a)}; -Graph.prototype.isSplitTarget=function(a,d,e){return!this.model.isEdge(d[0])&&!mxEvent.isAltDown(e)&&!mxEvent.isShiftDown(e)&&mxGraph.prototype.isSplitTarget.apply(this,arguments)};Graph.prototype.getLabel=function(a){var d=mxGraph.prototype.getLabel.apply(this,arguments);null!=d&&this.isReplacePlaceholders(a)&&null==a.getAttribute("placeholder")&&(d=this.replacePlaceholders(a,d));return d}; -Graph.prototype.isLabelMovable=function(a){var d=this.view.getState(a),d=null!=d?d.style:this.getCellStyle(a);return!this.isCellLocked(a)&&(this.model.isEdge(a)&&this.edgeLabelsMovable||this.model.isVertex(a)&&(this.vertexLabelsMovable||"1"==mxUtils.getValue(d,"labelMovable","0")))};Graph.prototype.setGridSize=function(a){this.gridSize=a;this.fireEvent(new mxEventObject("gridSizeChanged"))}; -Graph.prototype.getGlobalVariable=function(a){var d=null;"date"==a?d=(new Date).toLocaleDateString():"time"==a?d=(new Date).toLocaleTimeString():"timestamp"==a?d=(new Date).toLocaleString():"date{"==a.substring(0,5)&&(a=a.substring(5,a.length-1),d=this.formatDate(new Date,a));return d}; -Graph.prototype.formatDate=function(a,d,e){null==this.dateFormatCache&&(this.dateFormatCache={i18n:{dayNames:"Sun Mon Tue Wed Thu Fri Sat Sunday Monday Tuesday Wednesday Thursday Friday Saturday".split(" "),monthNames:"Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec January February March April May June July August September October November December".split(" ")},masks:{"default":"ddd mmm dd yyyy HH:MM:ss",shortDate:"m/d/yy",mediumDate:"mmm d, yyyy",longDate:"mmmm d, yyyy",fullDate:"dddd, mmmm d, yyyy", -shortTime:"h:MM TT",mediumTime:"h:MM:ss TT",longTime:"h:MM:ss TT Z",isoDate:"yyyy-mm-dd",isoTime:"HH:MM:ss",isoDateTime:"yyyy-mm-dd'T'HH:MM:ss",isoUtcDateTime:"UTC:yyyy-mm-dd'T'HH:MM:ss'Z'"}});var b=this.dateFormatCache,h=/\b(?:[PMCEA][SDP]T|(?:Pacific|Mountain|Central|Eastern|Atlantic) (?:Standard|Daylight|Prevailing) Time|(?:GMT|UTC)(?:[-+]\d{4})?)\b/g,m=/[^-+\dA-Z]/g,p=function(a,c){a=String(a);for(c=c||2;a.length<c;)a="0"+a;return a};1!=arguments.length||"[object String]"!=Object.prototype.toString.call(a)|| -/\d/.test(a)||(d=a,a=void 0);a=a?new Date(a):new Date;if(isNaN(a))throw SyntaxError("invalid date");d=String(b.masks[d]||d||b.masks["default"]);"UTC:"==d.slice(0,4)&&(d=d.slice(4),e=!0);var q=e?"getUTC":"get",u=a[q+"Date"](),c=a[q+"Day"](),f=a[q+"Month"](),g=a[q+"FullYear"](),k=a[q+"Hours"](),r=a[q+"Minutes"](),l=a[q+"Seconds"](),q=a[q+"Milliseconds"](),n=e?0:a.getTimezoneOffset(),w={d:u,dd:p(u),ddd:b.i18n.dayNames[c],dddd:b.i18n.dayNames[c+7],m:f+1,mm:p(f+1),mmm:b.i18n.monthNames[f],mmmm:b.i18n.monthNames[f+ -12],yy:String(g).slice(2),yyyy:g,h:k%12||12,hh:p(k%12||12),H:k,HH:p(k),M:r,MM:p(r),s:l,ss:p(l),l:p(q,3),L:p(99<q?Math.round(q/10):q),t:12>k?"a":"p",tt:12>k?"am":"pm",T:12>k?"A":"P",TT:12>k?"AM":"PM",Z:e?"UTC":(String(a).match(h)||[""]).pop().replace(m,""),o:(0<n?"-":"+")+p(100*Math.floor(Math.abs(n)/60)+Math.abs(n)%60,4),S:["th","st","nd","rd"][3<u%10?0:(10!=u%100-u%10)*u%10]};return d.replace(/d{1,4}|m{1,4}|yy(?:yy)?|([HhMsTt])\1?|[LloSZ]|"[^"]*"|'[^']*'/g,function(a){return a in w?w[a]:a.slice(1, +Graph.prototype.isSplitTarget=function(a,b,e){return!this.model.isEdge(b[0])&&!mxEvent.isAltDown(e)&&!mxEvent.isShiftDown(e)&&mxGraph.prototype.isSplitTarget.apply(this,arguments)};Graph.prototype.getLabel=function(a){var b=mxGraph.prototype.getLabel.apply(this,arguments);null!=b&&this.isReplacePlaceholders(a)&&null==a.getAttribute("placeholder")&&(b=this.replacePlaceholders(a,b));return b}; +Graph.prototype.isLabelMovable=function(a){var b=this.view.getState(a),b=null!=b?b.style:this.getCellStyle(a);return!this.isCellLocked(a)&&(this.model.isEdge(a)&&this.edgeLabelsMovable||this.model.isVertex(a)&&(this.vertexLabelsMovable||"1"==mxUtils.getValue(b,"labelMovable","0")))};Graph.prototype.setGridSize=function(a){this.gridSize=a;this.fireEvent(new mxEventObject("gridSizeChanged"))}; +Graph.prototype.getGlobalVariable=function(a){var b=null;"date"==a?b=(new Date).toLocaleDateString():"time"==a?b=(new Date).toLocaleTimeString():"timestamp"==a?b=(new Date).toLocaleString():"date{"==a.substring(0,5)&&(a=a.substring(5,a.length-1),b=this.formatDate(new Date,a));return b}; +Graph.prototype.formatDate=function(a,b,e){null==this.dateFormatCache&&(this.dateFormatCache={i18n:{dayNames:"Sun Mon Tue Wed Thu Fri Sat Sunday Monday Tuesday Wednesday Thursday Friday Saturday".split(" "),monthNames:"Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec January February March April May June July August September October November December".split(" ")},masks:{"default":"ddd mmm dd yyyy HH:MM:ss",shortDate:"m/d/yy",mediumDate:"mmm d, yyyy",longDate:"mmmm d, yyyy",fullDate:"dddd, mmmm d, yyyy", +shortTime:"h:MM TT",mediumTime:"h:MM:ss TT",longTime:"h:MM:ss TT Z",isoDate:"yyyy-mm-dd",isoTime:"HH:MM:ss",isoDateTime:"yyyy-mm-dd'T'HH:MM:ss",isoUtcDateTime:"UTC:yyyy-mm-dd'T'HH:MM:ss'Z'"}});var d=this.dateFormatCache,k=/\b(?:[PMCEA][SDP]T|(?:Pacific|Mountain|Central|Eastern|Atlantic) (?:Standard|Daylight|Prevailing) Time|(?:GMT|UTC)(?:[-+]\d{4})?)\b/g,l=/[^-+\dA-Z]/g,p=function(a,c){a=String(a);for(c=c||2;a.length<c;)a="0"+a;return a};1!=arguments.length||"[object String]"!=Object.prototype.toString.call(a)|| +/\d/.test(a)||(b=a,a=void 0);a=a?new Date(a):new Date;if(isNaN(a))throw SyntaxError("invalid date");b=String(d.masks[b]||b||d.masks["default"]);"UTC:"==b.slice(0,4)&&(b=b.slice(4),e=!0);var q=e?"getUTC":"get",u=a[q+"Date"](),c=a[q+"Day"](),f=a[q+"Month"](),g=a[q+"FullYear"](),n=a[q+"Hours"](),r=a[q+"Minutes"](),h=a[q+"Seconds"](),q=a[q+"Milliseconds"](),m=e?0:a.getTimezoneOffset(),w={d:u,dd:p(u),ddd:d.i18n.dayNames[c],dddd:d.i18n.dayNames[c+7],m:f+1,mm:p(f+1),mmm:d.i18n.monthNames[f],mmmm:d.i18n.monthNames[f+ +12],yy:String(g).slice(2),yyyy:g,h:n%12||12,hh:p(n%12||12),H:n,HH:p(n),M:r,MM:p(r),s:h,ss:p(h),l:p(q,3),L:p(99<q?Math.round(q/10):q),t:12>n?"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:(0<m?"-":"+")+p(100*Math.floor(Math.abs(m)/60)+Math.abs(m)%60,4),S:["th","st","nd","rd"][3<u%10?0:(10!=u%100-u%10)*u%10]};return b.replace(/d{1,4}|m{1,4}|yy(?:yy)?|([HhMsTt])\1?|[LloSZ]|"[^"]*"|'[^']*'/g,function(a){return a in w?w[a]:a.slice(1, a.length-1)})}; -Graph.prototype.createLayersDialog=function(){var a=document.createElement("div");a.style.position="absolute";for(var d=this.getModel(),e=d.getChildCount(d.root),b=0;b<e;b++)mxUtils.bind(this,function(b){var e=document.createElement("div");e.style.overflow="hidden";e.style.textOverflow="ellipsis";e.style.padding="2px";e.style.whiteSpace="nowrap";var h=document.createElement("input");h.style.display="inline-block";h.setAttribute("type","checkbox");d.isVisible(b)&&(h.setAttribute("checked","checked"), -h.defaultChecked=!0);e.appendChild(h);var q=this.convertValueToString(b)||mxResources.get("background")||"Background";e.setAttribute("title",q);mxUtils.write(e,q);a.appendChild(e);mxEvent.addListener(h,"click",function(){null!=h.getAttribute("checked")?h.removeAttribute("checked"):h.setAttribute("checked","checked");d.setVisible(b,h.checked)})})(d.getChildAt(d.root,b));return a}; -Graph.prototype.replacePlaceholders=function(a,d){var e=[];if(null!=d){for(var b=0;match=this.placeholderPattern.exec(d);){var h=match[0];if(2<h.length&&"%label%"!=h&&"%tooltip%"!=h){var m=null;if(match.index>b&&"%"==d.charAt(match.index-1))m=h.substring(1);else{var p=h.substring(1,h.length-1);if(0>p.indexOf("{"))for(var q=a;null==m&&null!=q;)null!=q.value&&"object"==typeof q.value&&(m=q.hasAttribute(p)?null!=q.getAttribute(p)?q.getAttribute(p):"":null),q=this.model.getParent(q);null==m&&(m=this.getGlobalVariable(p))}e.push(d.substring(b, -match.index)+(null!=m?m:h));b=match.index+h.length}}e.push(d.substring(b))}return e.join("")};Graph.prototype.selectCellsForConnectVertex=function(a,d,e){2==a.length&&this.model.isVertex(a[1])?(this.setSelectionCell(a[1]),null!=e&&(mxEvent.isTouchEvent(d)?e.update(e.getState(this.view.getState(a[1]))):e.reset()),this.scrollCellToVisible(a[1])):this.setSelectionCells(a)}; -Graph.prototype.connectVertex=function(a,d,e,b,h,m){m=m?m:!1;var p=a.geometry.relative&&null!=a.parent.geometry?new mxPoint(a.parent.geometry.width*a.geometry.x,a.parent.geometry.height*a.geometry.y):new mxPoint(a.geometry.x,a.geometry.y);d==mxConstants.DIRECTION_NORTH?(p.x+=a.geometry.width/2,p.y-=e):d==mxConstants.DIRECTION_SOUTH?(p.x+=a.geometry.width/2,p.y+=a.geometry.height+e):(p.x=d==mxConstants.DIRECTION_WEST?p.x-e:p.x+(a.geometry.width+e),p.y+=a.geometry.height/2);e=this.view.getState(this.model.getParent(a)); -var q=this.view.scale,u=this.view.translate,c=u.x*q,u=u.y*q;this.model.isVertex(e.cell)&&(c=e.x,u=e.y);this.model.isVertex(a.parent)&&a.geometry.relative&&(p.x+=a.parent.geometry.x,p.y+=a.parent.geometry.y);m=m||mxEvent.isControlDown(b)&&!h?null:this.getCellAt(c+p.x*q,u+p.y*q);this.model.isAncestor(m,a)&&(m=null);for(e=m;null!=e;){if(this.isCellLocked(e)){m=null;break}e=this.model.getParent(e)}null!=m&&(e=this.view.getState(a),q=this.view.getState(m),null!=e&&null!=q&&mxUtils.intersects(e,q)&&(m= -null));if(h=!mxEvent.isShiftDown(b)||h)d==mxConstants.DIRECTION_NORTH?p.y-=a.geometry.height/2:d==mxConstants.DIRECTION_SOUTH?p.y+=a.geometry.height/2:p.x=d==mxConstants.DIRECTION_WEST?p.x-a.geometry.width/2:p.x+a.geometry.width/2;null==m||this.isCellConnectable(m)||(e=this.getModel().getParent(m),this.getModel().isVertex(e)&&this.isCellConnectable(e)&&(m=e));if(m==a||this.model.isEdge(m)||!this.isCellConnectable(m))m=null;e=[];this.model.beginUpdate();try{q=m;if(null==q&&h){for(var c=a,f=this.getCellGeometry(a);null!= -f&&f.relative;)c=this.getModel().getParent(c),f=this.getCellGeometry(c);var g=this.view.getState(c),k=null!=g?g.style:this.getCellStyle(c);if(mxUtils.getValue(k,"part",!1)){var r=this.model.getParent(c);this.model.isVertex(r)&&(c=r)}q=this.duplicateCells([c],!1)[0];f=this.getCellGeometry(q);null!=f&&(f.x=p.x-f.width/2,f.y=p.y-f.height/2)}f=null;null!=this.layoutManager&&(f=this.layoutManager.getLayout(this.model.getParent(a)));var l=mxEvent.isControlDown(b)&&h||null==m&&null!=f&&f.constructor==mxStackLayout? -null:this.insertEdge(this.model.getParent(a),null,"",a,q,this.createCurrentEdgeStyle());if(null!=l&&this.connectionHandler.insertBeforeSource){var n=null;for(b=a;null!=b.parent&&null!=b.geometry&&b.geometry.relative&&b.parent!=l.parent;)b=this.model.getParent(b);null!=b&&null!=b.parent&&b.parent==l.parent&&(n=b.parent.getIndex(b),this.model.add(b.parent,l,n))}null==m&&null!=q&&null!=f&&null!=a.parent&&f.constructor==mxStackLayout&&d==mxConstants.DIRECTION_WEST&&(n=a.parent.getIndex(a),this.model.add(a.parent, -q,n));null!=l&&e.push(l);null==m&&null!=q&&e.push(q);null==q&&null!=l&&l.geometry.setTerminalPoint(p,!1);null!=l&&this.fireEvent(new mxEventObject("cellsInserted","cells",[l]))}finally{this.model.endUpdate()}return e}; -Graph.prototype.getIndexableText=function(){var a=document.createElement("div"),d=[],e,b;for(b in this.model.cells)if(e=this.model.cells[b],this.model.isVertex(e)||this.model.isEdge(e))this.isHtmlLabel(e)?(a.innerHTML=this.getLabel(e),e=mxUtils.extractTextWithWhitespace([a])):e=this.getLabel(e),e=mxUtils.trim(e.replace(/[\x00-\x1F\x7F-\x9F]|\s+/g," ")),0<e.length&&d.push(e);return d.join(" ")}; -Graph.prototype.convertValueToString=function(a){if(null!=a.value&&"object"==typeof a.value){if(this.isReplacePlaceholders(a)&&null!=a.getAttribute("placeholder")){for(var d=a.getAttribute("placeholder"),e=a,b=null;null==b&&null!=e;)null!=e.value&&"object"==typeof e.value&&(b=e.hasAttribute(d)?null!=e.getAttribute(d)?e.getAttribute(d):"":null),e=this.model.getParent(e);return b||""}return a.value.getAttribute("label")||""}return mxGraph.prototype.convertValueToString.apply(this,arguments)}; +Graph.prototype.createLayersDialog=function(){var a=document.createElement("div");a.style.position="absolute";for(var b=this.getModel(),e=b.getChildCount(b.root),d=0;d<e;d++)mxUtils.bind(this,function(d){var e=document.createElement("div");e.style.overflow="hidden";e.style.textOverflow="ellipsis";e.style.padding="2px";e.style.whiteSpace="nowrap";var k=document.createElement("input");k.style.display="inline-block";k.setAttribute("type","checkbox");b.isVisible(d)&&(k.setAttribute("checked","checked"), +k.defaultChecked=!0);e.appendChild(k);var q=this.convertValueToString(d)||mxResources.get("background")||"Background";e.setAttribute("title",q);mxUtils.write(e,q);a.appendChild(e);mxEvent.addListener(k,"click",function(){null!=k.getAttribute("checked")?k.removeAttribute("checked"):k.setAttribute("checked","checked");b.setVisible(d,k.checked)})})(b.getChildAt(b.root,d));return a}; +Graph.prototype.replacePlaceholders=function(a,b){var e=[];if(null!=b){for(var d=0;match=this.placeholderPattern.exec(b);){var k=match[0];if(2<k.length&&"%label%"!=k&&"%tooltip%"!=k){var l=null;if(match.index>d&&"%"==b.charAt(match.index-1))l=k.substring(1);else{var p=k.substring(1,k.length-1);if(0>p.indexOf("{"))for(var q=a;null==l&&null!=q;)null!=q.value&&"object"==typeof q.value&&(l=q.hasAttribute(p)?null!=q.getAttribute(p)?q.getAttribute(p):"":null),q=this.model.getParent(q);null==l&&(l=this.getGlobalVariable(p))}e.push(b.substring(d, +match.index)+(null!=l?l:k));d=match.index+k.length}}e.push(b.substring(d))}return e.join("")};Graph.prototype.selectCellsForConnectVertex=function(a,b,e){2==a.length&&this.model.isVertex(a[1])?(this.setSelectionCell(a[1]),null!=e&&(mxEvent.isTouchEvent(b)?e.update(e.getState(this.view.getState(a[1]))):e.reset()),this.scrollCellToVisible(a[1])):this.setSelectionCells(a)}; +Graph.prototype.connectVertex=function(a,b,e,d,k,l){l=l?l:!1;var p=a.geometry.relative&&null!=a.parent.geometry?new mxPoint(a.parent.geometry.width*a.geometry.x,a.parent.geometry.height*a.geometry.y):new mxPoint(a.geometry.x,a.geometry.y);b==mxConstants.DIRECTION_NORTH?(p.x+=a.geometry.width/2,p.y-=e):b==mxConstants.DIRECTION_SOUTH?(p.x+=a.geometry.width/2,p.y+=a.geometry.height+e):(p.x=b==mxConstants.DIRECTION_WEST?p.x-e:p.x+(a.geometry.width+e),p.y+=a.geometry.height/2);e=this.view.getState(this.model.getParent(a)); +var q=this.view.scale,u=this.view.translate,c=u.x*q,u=u.y*q;this.model.isVertex(e.cell)&&(c=e.x,u=e.y);this.model.isVertex(a.parent)&&a.geometry.relative&&(p.x+=a.parent.geometry.x,p.y+=a.parent.geometry.y);l=l||mxEvent.isControlDown(d)&&!k?null:this.getCellAt(c+p.x*q,u+p.y*q);this.model.isAncestor(l,a)&&(l=null);for(e=l;null!=e;){if(this.isCellLocked(e)){l=null;break}e=this.model.getParent(e)}null!=l&&(e=this.view.getState(a),q=this.view.getState(l),null!=e&&null!=q&&mxUtils.intersects(e,q)&&(l= +null));if(k=!mxEvent.isShiftDown(d)||k)b==mxConstants.DIRECTION_NORTH?p.y-=a.geometry.height/2:b==mxConstants.DIRECTION_SOUTH?p.y+=a.geometry.height/2:p.x=b==mxConstants.DIRECTION_WEST?p.x-a.geometry.width/2:p.x+a.geometry.width/2;null==l||this.isCellConnectable(l)||(e=this.getModel().getParent(l),this.getModel().isVertex(e)&&this.isCellConnectable(e)&&(l=e));if(l==a||this.model.isEdge(l)||!this.isCellConnectable(l))l=null;e=[];this.model.beginUpdate();try{q=l;if(null==q&&k){for(var c=a,f=this.getCellGeometry(a);null!= +f&&f.relative;)c=this.getModel().getParent(c),f=this.getCellGeometry(c);var g=this.view.getState(c),n=null!=g?g.style:this.getCellStyle(c);if(mxUtils.getValue(n,"part",!1)){var r=this.model.getParent(c);this.model.isVertex(r)&&(c=r)}q=this.duplicateCells([c],!1)[0];f=this.getCellGeometry(q);null!=f&&(f.x=p.x-f.width/2,f.y=p.y-f.height/2)}f=null;null!=this.layoutManager&&(f=this.layoutManager.getLayout(this.model.getParent(a)));var h=mxEvent.isControlDown(d)&&k||null==l&&null!=f&&f.constructor==mxStackLayout? +null:this.insertEdge(this.model.getParent(a),null,"",a,q,this.createCurrentEdgeStyle());if(null!=h&&this.connectionHandler.insertBeforeSource){var m=null;for(d=a;null!=d.parent&&null!=d.geometry&&d.geometry.relative&&d.parent!=h.parent;)d=this.model.getParent(d);null!=d&&null!=d.parent&&d.parent==h.parent&&(m=d.parent.getIndex(d),this.model.add(d.parent,h,m))}null==l&&null!=q&&null!=f&&null!=a.parent&&f.constructor==mxStackLayout&&b==mxConstants.DIRECTION_WEST&&(m=a.parent.getIndex(a),this.model.add(a.parent, +q,m));null!=h&&e.push(h);null==l&&null!=q&&e.push(q);null==q&&null!=h&&h.geometry.setTerminalPoint(p,!1);null!=h&&this.fireEvent(new mxEventObject("cellsInserted","cells",[h]))}finally{this.model.endUpdate()}return e}; +Graph.prototype.getIndexableText=function(){var a=document.createElement("div"),b=[],e,d;for(d in this.model.cells)if(e=this.model.cells[d],this.model.isVertex(e)||this.model.isEdge(e))this.isHtmlLabel(e)?(a.innerHTML=this.getLabel(e),e=mxUtils.extractTextWithWhitespace([a])):e=this.getLabel(e),e=mxUtils.trim(e.replace(/[\x00-\x1F\x7F-\x9F]|\s+/g," ")),0<e.length&&b.push(e);return b.join(" ")}; +Graph.prototype.convertValueToString=function(a){if(null!=a.value&&"object"==typeof a.value){if(this.isReplacePlaceholders(a)&&null!=a.getAttribute("placeholder")){for(var b=a.getAttribute("placeholder"),e=a,d=null;null==d&&null!=e;)null!=e.value&&"object"==typeof e.value&&(d=e.hasAttribute(b)?null!=e.getAttribute(b)?e.getAttribute(b):"":null),e=this.model.getParent(e);return d||""}return a.value.getAttribute("label")||""}return mxGraph.prototype.convertValueToString.apply(this,arguments)}; Graph.prototype.getLinksForState=function(a){return null!=a&&null!=a.text&&null!=a.text.node?a.text.node.getElementsByTagName("a"):null};Graph.prototype.getLinkForCell=function(a){return null!=a.value&&"object"==typeof a.value?(a=a.value.getAttribute("link"),null!=a&&"javascript:"===a.toLowerCase().substring(0,11)&&(a=a.substring(11)),a):null}; -Graph.prototype.getCellStyle=function(a){var d=mxGraph.prototype.getCellStyle.apply(this,arguments);if(null!=a&&null!=this.layoutManager){var e=this.model.getParent(a);this.model.isVertex(e)&&this.isCellCollapsed(a)&&(e=this.layoutManager.getLayout(e),null!=e&&e.constructor==mxStackLayout&&(d[mxConstants.STYLE_HORIZONTAL]=!e.horizontal))}return d}; -Graph.prototype.updateAlternateBounds=function(a,d,e){if(null!=a&&null!=d&&null!=this.layoutManager&&null!=d.alternateBounds){var b=this.layoutManager.getLayout(this.model.getParent(a));null!=b&&b.constructor==mxStackLayout&&(b.horizontal?d.alternateBounds.height=0:d.alternateBounds.width=0)}mxGraph.prototype.updateAlternateBounds.apply(this,arguments)};Graph.prototype.isMoveCellsEvent=function(a){return mxEvent.isShiftDown(a)}; -Graph.prototype.foldCells=function(a,d,e,b,h){d=null!=d?d:!1;null==e&&(e=this.getFoldableCells(this.getSelectionCells(),a));if(null!=e){this.model.beginUpdate();try{if(mxGraph.prototype.foldCells.apply(this,arguments),null!=this.layoutManager)for(var m=0;m<e.length;m++){var p=this.view.getState(e[m]),q=this.getCellGeometry(e[m]);if(null!=p&&null!=q){var u=Math.round(q.width-p.width/this.view.scale),c=Math.round(q.height-p.height/this.view.scale);if(0!=c||0!=u){var f=this.model.getParent(e[m]),g=this.layoutManager.getLayout(f); -null==g?null!=h&&this.isMoveCellsEvent(h)&&this.moveSiblings(p,f,u,c):null!=h&&mxEvent.isAltDown(h)||g.constructor!=mxStackLayout||g.resizeLast||this.resizeParentStacks(f,g,u,c)}}}}finally{this.model.endUpdate()}this.isEnabled()&&this.setSelectionCells(e)}}; -Graph.prototype.moveSiblings=function(a,d,e,b){this.model.beginUpdate();try{var h=this.getCellsBeyond(a.x,a.y,d,!0,!0);for(d=0;d<h.length;d++)if(h[d]!=a.cell){var m=this.view.getState(h[d]),p=this.getCellGeometry(h[d]);null!=m&&null!=p&&(p=p.clone(),p.translate(Math.round(e*Math.max(0,Math.min(1,(m.x-a.x)/a.width))),Math.round(b*Math.max(0,Math.min(1,(m.y-a.y)/a.height)))),this.model.setGeometry(h[d],p))}}finally{this.model.endUpdate()}}; -Graph.prototype.resizeParentStacks=function(a,d,e,b){if(null!=this.layoutManager&&null!=d&&d.constructor==mxStackLayout&&!d.resizeLast){this.model.beginUpdate();try{for(var h=d.horizontal;null!=a&&null!=d&&d.constructor==mxStackLayout&&d.horizontal==h&&!d.resizeLast;){var m=this.getCellGeometry(a),p=this.view.getState(a);null!=p&&null!=m&&(m=m.clone(),d.horizontal?m.width+=e+Math.min(0,p.width/this.view.scale-m.width):m.height+=b+Math.min(0,p.height/this.view.scale-m.height),this.model.setGeometry(a, -m));a=this.model.getParent(a);d=this.layoutManager.getLayout(a)}}finally{this.model.endUpdate()}}};Graph.prototype.isContainer=function(a){var d=this.view.getState(a),d=null!=d?d.style:this.getCellStyle(a);return this.isSwimlane(a)?"0"!=d.container:"1"==d.container};Graph.prototype.isCellConnectable=function(a){var d=this.view.getState(a),d=null!=d?d.style:this.getCellStyle(a);return null!=d.connectable?"0"!=d.connectable:mxGraph.prototype.isCellConnectable.apply(this,arguments)}; -Graph.prototype.selectAll=function(a){a=a||this.getDefaultParent();this.isCellLocked(a)||mxGraph.prototype.selectAll.apply(this,arguments)};Graph.prototype.selectCells=function(a,d,e){e=e||this.getDefaultParent();this.isCellLocked(e)||mxGraph.prototype.selectCells.apply(this,arguments)};Graph.prototype.getSwimlaneAt=function(a,d,e){e=e||this.getDefaultParent();return this.isCellLocked(e)?null:mxGraph.prototype.getSwimlaneAt.apply(this,arguments)}; -Graph.prototype.isCellFoldable=function(a){var d=this.view.getState(a),d=null!=d?d.style:this.getCellStyle(a);return this.foldingEnabled&&!this.isCellLocked(a)&&(this.isContainer(a)&&"0"!=d.collapsible||!this.isContainer(a)&&"1"==d.collapsible)};Graph.prototype.reset=function(){this.isEditing()&&this.stopEditing(!0);this.escape();this.isSelectionEmpty()||this.clearSelection()}; -Graph.prototype.zoom=function(a,d){a=Math.max(.01,Math.min(this.view.scale*a,160))/this.view.scale;mxGraph.prototype.zoom.apply(this,arguments)};Graph.prototype.zoomIn=function(){.15>this.view.scale?this.zoom((this.view.scale+.01)/this.view.scale):this.zoom(Math.round(this.view.scale*this.zoomFactor*20)/20/this.view.scale)};Graph.prototype.zoomOut=function(){.15>=this.view.scale?this.zoom((this.view.scale-.01)/this.view.scale):this.zoom(Math.round(1/this.zoomFactor*this.view.scale*20)/20/this.view.scale)}; -Graph.prototype.getTooltipForCell=function(a){var d="";if(mxUtils.isNode(a.value)){var e=a.value.getAttribute("tooltip");if(null!=e)null!=e&&this.isReplacePlaceholders(a)&&(e=this.replacePlaceholders(a,e)),d=this.sanitizeHtml(e);else{e=this.builtInProperties;a=a.value.attributes;var b=[];this.isEnabled()&&e.push("link");for(var h=0;h<a.length;h++)0>mxUtils.indexOf(e,a[h].nodeName)&&0<a[h].nodeValue.length&&b.push({name:a[h].nodeName,value:a[h].nodeValue});b.sort(function(a,d){return a.name<d.name? --1:a.name>d.name?1:0});for(h=0;h<b.length;h++)"link"==b[h].name&&this.isCustomLink(b[h].value)||(d+=("link"!=b[h].name?"<b>"+b[h].name+":</b> ":"")+mxUtils.htmlEntities(b[h].value)+"\n");0<d.length&&(d=d.substring(0,d.length-1),mxClient.IS_SVG&&(d='<div style="max-width:360px;">'+d+"</div>"))}}return d};Graph.prototype.stringToBytes=function(a){for(var d=Array(a.length),e=0;e<a.length;e++)d[e]=a.charCodeAt(e);return d}; -Graph.prototype.bytesToString=function(a){for(var d=Array(a.length),e=0;e<a.length;e++)d[e]=String.fromCharCode(a[e]);return d.join("")};Graph.prototype.compress=function(a){if(null==a||0==a.length||"undefined"===typeof pako)return a;a=this.bytesToString(pako.deflateRaw(encodeURIComponent(a)));return window.btoa?btoa(a):Base64.encode(a,!0)};Graph.prototype.decompress=function(a){if(null==a||0==a.length||"undefined"===typeof pako)return a;a=window.atob?atob(a):Base64.decode(a,!0);return this.zapGremlins(decodeURIComponent(this.bytesToString(pako.inflateRaw(a))))}; -Graph.prototype.zapGremlins=function(a){for(var d=[],e=0;e<a.length;e++){var b=a.charCodeAt(e);(32<=b||9==b||10==b||13==b)&&d.push(a.charAt(e))}return d.join("")};HoverIcons=function(a){this.graph=a;this.init()};HoverIcons.prototype.arrowSpacing=2;HoverIcons.prototype.updateDelay=500;HoverIcons.prototype.activationDelay=140;HoverIcons.prototype.currentState=null;HoverIcons.prototype.activeArrow=null;HoverIcons.prototype.inactiveOpacity=15;HoverIcons.prototype.cssCursor="copy"; -HoverIcons.prototype.checkCollisions=!0;HoverIcons.prototype.arrowFill="#29b6f2";HoverIcons.prototype.triangleUp=mxClient.IS_SVG?Graph.createSvgImage(18,28,'<path d="m 6 26 L 12 26 L 12 12 L 18 12 L 9 1 L 1 12 L 6 12 z" stroke="#fff" fill="'+HoverIcons.prototype.arrowFill+'"/>'):new mxImage(IMAGE_PATH+"/triangle-up.png",26,14); -HoverIcons.prototype.triangleRight=mxClient.IS_SVG?Graph.createSvgImage(26,18,'<path d="m 1 6 L 14 6 L 14 1 L 26 9 L 14 18 L 14 12 L 1 12 z" stroke="#fff" fill="'+HoverIcons.prototype.arrowFill+'"/>'):new mxImage(IMAGE_PATH+"/triangle-right.png",14,26);HoverIcons.prototype.triangleDown=mxClient.IS_SVG?Graph.createSvgImage(18,26,'<path d="m 6 1 L 6 14 L 1 14 L 9 26 L 18 14 L 12 14 L 12 1 z" stroke="#fff" fill="'+HoverIcons.prototype.arrowFill+'"/>'):new mxImage(IMAGE_PATH+"/triangle-down.png",26,14); -HoverIcons.prototype.triangleLeft=mxClient.IS_SVG?Graph.createSvgImage(28,18,'<path d="m 1 9 L 12 1 L 12 6 L 26 6 L 26 12 L 12 12 L 12 18 z" stroke="#fff" fill="'+HoverIcons.prototype.arrowFill+'"/>'):new mxImage(IMAGE_PATH+"/triangle-left.png",14,26);HoverIcons.prototype.roundDrop=mxClient.IS_SVG?Graph.createSvgImage(26,26,'<circle cx="13" cy="13" r="12" stroke="#fff" fill="'+HoverIcons.prototype.arrowFill+'"/>'):new mxImage(IMAGE_PATH+"/round-drop.png",26,26); -HoverIcons.prototype.refreshTarget=new mxImage(mxClient.IS_SVG?"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACYAAAAmCAYAAACoPemuAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBNYWNpbnRvc2giIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NDQxNERDRTU1QjY1MTFFNDkzNTRFQTVEMTdGMTdBQjciIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NDQxNERDRTY1QjY1MTFFNDkzNTRFQTVEMTdGMTdBQjciPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo0NDE0RENFMzVCNjUxMUU0OTM1NEVBNUQxN0YxN0FCNyIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo0NDE0RENFNDVCNjUxMUU0OTM1NEVBNUQxN0YxN0FCNyIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PsvuX50AAANaSURBVHja7FjRZ1tRGD9ZJ1NCyIQSwrivI4Q8hCpjlFDyFEoYfSp9Ko1QWnmo0If+BSXkIfo0QirTMUpeGo2EPfWllFYjZMLKLDJn53d3biU337m5J223bPbxk5t7v+/c3/2+73znO8fDOWezKM/YjMpz68Lj8ejY+QTeCCwLxOS9qPxtyN+6wAeBTwJ31CCO0cJDjXBGBN4LfIepSwykTUT1bgpuib0SONIgo8KRHOtRiCFcvUcgZeGrHPNBxLIyFPyRgTGz0xLbegJCdmzpElue5KlAIMDX19d5uVzm5+fnfDAYmMA17uEZdOx2Yvb/sHlu2S0xwymn5ufneTab5b1ej08S6EAXNrDd2dnhiUTim21MvMtwQ6yiIrWwsMDPzs64rsBmf3/fvM7n89TYlUnEllSkQqEQv7q64g+Vk5MTVXosORErU0Zer5f0FEIlw2N6MxwO82QyaXql2+2SxDqdjopYWUUsqEp45IldqtWq6UWVh/1+P7+8vCTJ4QMUJSRIEXuneoH96w8PDyeWAnhSJfCqwm6NIlaklFdXV0cGhRcQ2mlJQXK5nMq2YPEZbnteU1U2lUqN/D84OGD9fl+5fgnSrFarsUwmw0qlEru4uBjTicViTk3Cr27HSnxR+Doyz0ZE1CAWiUTusbu7y9rttlZv5fP5WDQavYfIMba4uEipfhF8XtqJoZXx/uH+sC/4vPg7OljZZQbsCmLtYzc3N6zRaJhotVrmfx0xDINtbm6athYUeXpHdbBNaqZUKpWxWXV7e2vex+xaWVnhc3NzjrPUXgexyCt0m67LBV7uJMITjqRE4o8tZeg8FPpFitgapYxiOC0poFgsji1jKNo6BZZckrAGUtJsNk1vqAihCBcKhTE7hNWhqw2qFnGy5UFOUYJVIJ1OjzSE+BCEilon0URavRmBqnbbQ00AXbm+vnZc9O1tj72OnQoc2+cwygRkb2+P1et17ZoEm3g87lRmjgWZ00kbXkNuse6/Bu2wlegIxfb2tuvWGroO4bO2c4bbzUh60mxDXm1sbJhhxkQYnhS4h2fUZoRAWnf7lv8N27f8P7Xhnekjgpk+VKGOoQbsiY+hhhtF3YO7twIJ+ULvUGv+GQ2fQEvWxI/THNx5/p/BaspPAQYAqStgiSQwCDoAAAAASUVORK5CYII=": -IMAGE_PATH+"/refresh.png",38,38);HoverIcons.prototype.tolerance=mxClient.IS_TOUCH?6:0; +Graph.prototype.getCellStyle=function(a){var b=mxGraph.prototype.getCellStyle.apply(this,arguments);if(null!=a&&null!=this.layoutManager){var e=this.model.getParent(a);this.model.isVertex(e)&&this.isCellCollapsed(a)&&(e=this.layoutManager.getLayout(e),null!=e&&e.constructor==mxStackLayout&&(b[mxConstants.STYLE_HORIZONTAL]=!e.horizontal))}return b}; +Graph.prototype.updateAlternateBounds=function(a,b,e){if(null!=a&&null!=b&&null!=this.layoutManager&&null!=b.alternateBounds){var d=this.layoutManager.getLayout(this.model.getParent(a));null!=d&&d.constructor==mxStackLayout&&(d.horizontal?b.alternateBounds.height=0:b.alternateBounds.width=0)}mxGraph.prototype.updateAlternateBounds.apply(this,arguments)};Graph.prototype.isMoveCellsEvent=function(a){return mxEvent.isShiftDown(a)}; +Graph.prototype.foldCells=function(a,b,e,d,k){b=null!=b?b:!1;null==e&&(e=this.getFoldableCells(this.getSelectionCells(),a));if(null!=e){this.model.beginUpdate();try{if(mxGraph.prototype.foldCells.apply(this,arguments),null!=this.layoutManager)for(var l=0;l<e.length;l++){var p=this.view.getState(e[l]),q=this.getCellGeometry(e[l]);if(null!=p&&null!=q){var u=Math.round(q.width-p.width/this.view.scale),c=Math.round(q.height-p.height/this.view.scale);if(0!=c||0!=u){var f=this.model.getParent(e[l]),g=this.layoutManager.getLayout(f); +null==g?null!=k&&this.isMoveCellsEvent(k)&&this.moveSiblings(p,f,u,c):null!=k&&mxEvent.isAltDown(k)||g.constructor!=mxStackLayout||g.resizeLast||this.resizeParentStacks(f,g,u,c)}}}}finally{this.model.endUpdate()}this.isEnabled()&&this.setSelectionCells(e)}}; +Graph.prototype.moveSiblings=function(a,b,e,d){this.model.beginUpdate();try{var k=this.getCellsBeyond(a.x,a.y,b,!0,!0);for(b=0;b<k.length;b++)if(k[b]!=a.cell){var l=this.view.getState(k[b]),p=this.getCellGeometry(k[b]);null!=l&&null!=p&&(p=p.clone(),p.translate(Math.round(e*Math.max(0,Math.min(1,(l.x-a.x)/a.width))),Math.round(d*Math.max(0,Math.min(1,(l.y-a.y)/a.height)))),this.model.setGeometry(k[b],p))}}finally{this.model.endUpdate()}}; +Graph.prototype.resizeParentStacks=function(a,b,e,d){if(null!=this.layoutManager&&null!=b&&b.constructor==mxStackLayout&&!b.resizeLast){this.model.beginUpdate();try{for(var k=b.horizontal;null!=a&&null!=b&&b.constructor==mxStackLayout&&b.horizontal==k&&!b.resizeLast;){var l=this.getCellGeometry(a),p=this.view.getState(a);null!=p&&null!=l&&(l=l.clone(),b.horizontal?l.width+=e+Math.min(0,p.width/this.view.scale-l.width):l.height+=d+Math.min(0,p.height/this.view.scale-l.height),this.model.setGeometry(a, +l));a=this.model.getParent(a);b=this.layoutManager.getLayout(a)}}finally{this.model.endUpdate()}}};Graph.prototype.isContainer=function(a){var b=this.view.getState(a),b=null!=b?b.style:this.getCellStyle(a);return this.isSwimlane(a)?"0"!=b.container:"1"==b.container};Graph.prototype.isCellConnectable=function(a){var b=this.view.getState(a),b=null!=b?b.style:this.getCellStyle(a);return null!=b.connectable?"0"!=b.connectable:mxGraph.prototype.isCellConnectable.apply(this,arguments)}; +Graph.prototype.selectAll=function(a){a=a||this.getDefaultParent();this.isCellLocked(a)||mxGraph.prototype.selectAll.apply(this,arguments)};Graph.prototype.selectCells=function(a,b,e){e=e||this.getDefaultParent();this.isCellLocked(e)||mxGraph.prototype.selectCells.apply(this,arguments)};Graph.prototype.getSwimlaneAt=function(a,b,e){e=e||this.getDefaultParent();return this.isCellLocked(e)?null:mxGraph.prototype.getSwimlaneAt.apply(this,arguments)}; +Graph.prototype.isCellFoldable=function(a){var b=this.view.getState(a),b=null!=b?b.style:this.getCellStyle(a);return this.foldingEnabled&&!this.isCellLocked(a)&&(this.isContainer(a)&&"0"!=b.collapsible||!this.isContainer(a)&&"1"==b.collapsible)};Graph.prototype.reset=function(){this.isEditing()&&this.stopEditing(!0);this.escape();this.isSelectionEmpty()||this.clearSelection()}; +Graph.prototype.zoom=function(a,b){a=Math.max(.01,Math.min(this.view.scale*a,160))/this.view.scale;mxGraph.prototype.zoom.apply(this,arguments)};Graph.prototype.zoomIn=function(){.15>this.view.scale?this.zoom((this.view.scale+.01)/this.view.scale):this.zoom(Math.round(this.view.scale*this.zoomFactor*20)/20/this.view.scale)};Graph.prototype.zoomOut=function(){.15>=this.view.scale?this.zoom((this.view.scale-.01)/this.view.scale):this.zoom(Math.round(1/this.zoomFactor*this.view.scale*20)/20/this.view.scale)}; +Graph.prototype.getTooltipForCell=function(a){var b="";if(mxUtils.isNode(a.value)){var e=a.value.getAttribute("tooltip");if(null!=e)null!=e&&this.isReplacePlaceholders(a)&&(e=this.replacePlaceholders(a,e)),b=this.sanitizeHtml(e);else{e=this.builtInProperties;a=a.value.attributes;var d=[];this.isEnabled()&&e.push("link");for(var k=0;k<a.length;k++)0>mxUtils.indexOf(e,a[k].nodeName)&&0<a[k].nodeValue.length&&d.push({name:a[k].nodeName,value:a[k].nodeValue});d.sort(function(a,b){return a.name<b.name? +-1:a.name>b.name?1:0});for(k=0;k<d.length;k++)"link"==d[k].name&&this.isCustomLink(d[k].value)||(b+=("link"!=d[k].name?"<b>"+d[k].name+":</b> ":"")+mxUtils.htmlEntities(d[k].value)+"\n");0<b.length&&(b=b.substring(0,b.length-1),mxClient.IS_SVG&&(b='<div style="max-width:360px;">'+b+"</div>"))}}return b};Graph.prototype.stringToBytes=function(a){for(var b=Array(a.length),e=0;e<a.length;e++)b[e]=a.charCodeAt(e);return b}; +Graph.prototype.bytesToString=function(a){for(var b=Array(a.length),e=0;e<a.length;e++)b[e]=String.fromCharCode(a[e]);return b.join("")};Graph.prototype.compressNode=function(a){return this.compress(this.zapGremlins(mxUtils.getXml(a)))};Graph.prototype.compress=function(a){if(null==a||0==a.length||"undefined"===typeof pako)return a;a=this.bytesToString(pako.deflateRaw(encodeURIComponent(a)));return window.btoa?btoa(a):Base64.encode(a,!0)}; +Graph.prototype.decompress=function(a){if(null==a||0==a.length||"undefined"===typeof pako)return a;a=window.atob?atob(a):Base64.decode(a,!0);return this.zapGremlins(decodeURIComponent(this.bytesToString(pako.inflateRaw(a))))};Graph.prototype.zapGremlins=function(a){for(var b=[],e=0;e<a.length;e++){var d=a.charCodeAt(e);(32<=d||9==d||10==d||13==d)&&b.push(a.charAt(e))}return b.join("")};HoverIcons=function(a){this.graph=a;this.init()};HoverIcons.prototype.arrowSpacing=2; +HoverIcons.prototype.updateDelay=500;HoverIcons.prototype.activationDelay=140;HoverIcons.prototype.currentState=null;HoverIcons.prototype.activeArrow=null;HoverIcons.prototype.inactiveOpacity=15;HoverIcons.prototype.cssCursor="copy";HoverIcons.prototype.checkCollisions=!0;HoverIcons.prototype.arrowFill="#29b6f2"; +HoverIcons.prototype.triangleUp=mxClient.IS_SVG?Graph.createSvgImage(18,28,'<path d="m 6 26 L 12 26 L 12 12 L 18 12 L 9 1 L 1 12 L 6 12 z" stroke="#fff" fill="'+HoverIcons.prototype.arrowFill+'"/>'):new mxImage(IMAGE_PATH+"/triangle-up.png",26,14);HoverIcons.prototype.triangleRight=mxClient.IS_SVG?Graph.createSvgImage(26,18,'<path d="m 1 6 L 14 6 L 14 1 L 26 9 L 14 18 L 14 12 L 1 12 z" stroke="#fff" fill="'+HoverIcons.prototype.arrowFill+'"/>'):new mxImage(IMAGE_PATH+"/triangle-right.png",14,26); +HoverIcons.prototype.triangleDown=mxClient.IS_SVG?Graph.createSvgImage(18,26,'<path d="m 6 1 L 6 14 L 1 14 L 9 26 L 18 14 L 12 14 L 12 1 z" stroke="#fff" fill="'+HoverIcons.prototype.arrowFill+'"/>'):new mxImage(IMAGE_PATH+"/triangle-down.png",26,14);HoverIcons.prototype.triangleLeft=mxClient.IS_SVG?Graph.createSvgImage(28,18,'<path d="m 1 9 L 12 1 L 12 6 L 26 6 L 26 12 L 12 12 L 12 18 z" stroke="#fff" fill="'+HoverIcons.prototype.arrowFill+'"/>'):new mxImage(IMAGE_PATH+"/triangle-left.png",14,26); +HoverIcons.prototype.roundDrop=mxClient.IS_SVG?Graph.createSvgImage(26,26,'<circle cx="13" cy="13" r="12" stroke="#fff" fill="'+HoverIcons.prototype.arrowFill+'"/>'):new mxImage(IMAGE_PATH+"/round-drop.png",26,26); +HoverIcons.prototype.refreshTarget=new mxImage(mxClient.IS_SVG?"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACYAAAAmCAYAAACoPemuAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBNYWNpbnRvc2giIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NDQxNERDRTU1QjY1MTFFNDkzNTRFQTVEMTdGMTdBQjciIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NDQxNERDRTY1QjY1MTFFNDkzNTRFQTVEMTdGMTdBQjciPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo0NDE0RENFMzVCNjUxMUU0OTM1NEVBNUQxN0YxN0FCNyIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo0NDE0RENFNDVCNjUxMUU0OTM1NEVBNUQxN0YxN0FCNyIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PsvuX50AAANaSURBVHja7FjRZ1tRGD9ZJ1NCyIQSwrivI4Q8hCpjlFDyFEoYfSp9Ko1QWnmo0If+BSXkIfo0QirTMUpeGo2EPfWllFYjZMLKLDJn53d3biU337m5J223bPbxk5t7v+/c3/2+73znO8fDOWezKM/YjMpz68Lj8ejY+QTeCCwLxOS9qPxtyN+6wAeBTwJ31CCO0cJDjXBGBN4LfIepSwykTUT1bgpuib0SONIgo8KRHOtRiCFcvUcgZeGrHPNBxLIyFPyRgTGz0xLbegJCdmzpElue5KlAIMDX19d5uVzm5+fnfDAYmMA17uEZdOx2Yvb/sHlu2S0xwymn5ufneTab5b1ej08S6EAXNrDd2dnhiUTim21MvMtwQ6yiIrWwsMDPzs64rsBmf3/fvM7n89TYlUnEllSkQqEQv7q64g+Vk5MTVXosORErU0Zer5f0FEIlw2N6MxwO82QyaXql2+2SxDqdjopYWUUsqEp45IldqtWq6UWVh/1+P7+8vCTJ4QMUJSRIEXuneoH96w8PDyeWAnhSJfCqwm6NIlaklFdXV0cGhRcQ2mlJQXK5nMq2YPEZbnteU1U2lUqN/D84OGD9fl+5fgnSrFarsUwmw0qlEru4uBjTicViTk3Cr27HSnxR+Doyz0ZE1CAWiUTusbu7y9rttlZv5fP5WDQavYfIMba4uEipfhF8XtqJoZXx/uH+sC/4vPg7OljZZQbsCmLtYzc3N6zRaJhotVrmfx0xDINtbm6athYUeXpHdbBNaqZUKpWxWXV7e2vex+xaWVnhc3NzjrPUXgexyCt0m67LBV7uJMITjqRE4o8tZeg8FPpFitgapYxiOC0poFgsji1jKNo6BZZckrAGUtJsNk1vqAihCBcKhTE7hNWhqw2qFnGy5UFOUYJVIJ1OjzSE+BCEilon0URavRmBqnbbQ00AXbm+vnZc9O1tj72OnQoc2+cwygRkb2+P1et17ZoEm3g87lRmjgWZ00kbXkNuse6/Bu2wlegIxfb2tuvWGroO4bO2c4bbzUh60mxDXm1sbJhhxkQYnhS4h2fUZoRAWnf7lv8N27f8P7Xhnekjgpk+VKGOoQbsiY+hhhtF3YO7twIJ+ULvUGv+GQ2fQEvWxI/THNx5/p/BaspPAQYAqStgiSQwCDoAAAAASUVORK5CYII=":IMAGE_PATH+ +"/refresh.png",38,38);HoverIcons.prototype.tolerance=mxClient.IS_TOUCH?6:0; HoverIcons.prototype.init=function(){this.arrowUp=this.createArrow(this.triangleUp,mxResources.get("plusTooltip"));this.arrowRight=this.createArrow(this.triangleRight,mxResources.get("plusTooltip"));this.arrowDown=this.createArrow(this.triangleDown,mxResources.get("plusTooltip"));this.arrowLeft=this.createArrow(this.triangleLeft,mxResources.get("plusTooltip"));this.elts=[this.arrowUp,this.arrowRight,this.arrowDown,this.arrowLeft];this.repaintHandler=mxUtils.bind(this,function(){this.repaint()});this.graph.selectionModel.addListener(mxEvent.CHANGE, this.repaintHandler);this.graph.model.addListener(mxEvent.CHANGE,this.repaintHandler);this.graph.view.addListener(mxEvent.SCALE_AND_TRANSLATE,this.repaintHandler);this.graph.view.addListener(mxEvent.TRANSLATE,this.repaintHandler);this.graph.view.addListener(mxEvent.SCALE,this.repaintHandler);this.graph.view.addListener(mxEvent.DOWN,this.repaintHandler);this.graph.view.addListener(mxEvent.UP,this.repaintHandler);this.graph.addListener(mxEvent.ROOT,this.repaintHandler);this.graph.addListener(mxEvent.ESCAPE, -mxUtils.bind(this,function(){this.mouseDownPoint=null}));mxEvent.addListener(this.graph.container,"mouseleave",mxUtils.bind(this,function(a){null!=a.relatedTarget&&mxEvent.getSource(a)==this.graph.container&&this.setDisplay("none")}));this.graph.addListener(mxEvent.START_EDITING,mxUtils.bind(this,function(a){this.reset()}));var a=this.graph.click;this.graph.click=mxUtils.bind(this,function(d){a.apply(this.graph,arguments);null==this.currentState||this.graph.isCellSelected(this.currentState.cell)|| -!mxEvent.isTouchEvent(d.getEvent())||this.graph.model.isVertex(d.getCell())||this.reset()});var d=!1;this.graph.addMouseListener({mouseDown:mxUtils.bind(this,function(a,b){d=!1;var e=b.getEvent();if(this.isResetEvent(e))this.reset();else if(!this.isActive()){var m=this.getState(b.getState());null==m&&mxEvent.isTouchEvent(e)||this.update(m)}this.setDisplay("none")}),mouseMove:mxUtils.bind(this,function(a,b){var e=b.getEvent();this.isResetEvent(e)?this.reset():this.graph.isMouseDown||mxEvent.isTouchEvent(e)|| -this.update(this.getState(b.getState()),b.getGraphX(),b.getGraphY());null!=this.graph.connectionHandler&&null!=this.graph.connectionHandler.shape&&(d=!0)}),mouseUp:mxUtils.bind(this,function(a,b){var e=b.getEvent();mxUtils.convertPoint(this.graph.container,mxEvent.getClientX(e),mxEvent.getClientY(e));this.isResetEvent(e)?this.reset():this.isActive()&&!d&&null!=this.mouseDownPoint?this.click(this.currentState,this.getDirection(),b):this.isActive()?1==this.graph.getSelectionCount()&&this.graph.model.isEdge(this.graph.getSelectionCell())? -this.reset():this.update(this.getState(this.graph.view.getState(this.graph.getCellAt(b.getGraphX(),b.getGraphY())))):mxEvent.isTouchEvent(e)||null!=this.bbox&&mxUtils.contains(this.bbox,b.getGraphX(),b.getGraphY())?(this.setDisplay(""),this.repaint()):mxEvent.isTouchEvent(e)||this.reset();d=!1;this.resetActiveArrow()})})};HoverIcons.prototype.isResetEvent=function(a,d){return mxEvent.isAltDown(a)||null==this.activeArrow&&mxEvent.isShiftDown(a)||mxEvent.isMetaDown(a)||mxEvent.isPopupTrigger(a)&&!mxEvent.isControlDown(a)}; -HoverIcons.prototype.createArrow=function(a,d){var e=null;mxClient.IS_IE&&!mxClient.IS_SVG?(mxClient.IS_IE6&&"CSS1Compat"!=document.compatMode?(e=document.createElement(mxClient.VML_PREFIX+":image"),e.setAttribute("src",a.src),e.style.borderStyle="none"):(e=document.createElement("div"),e.style.backgroundImage="url("+a.src+")",e.style.backgroundPosition="center",e.style.backgroundRepeat="no-repeat"),e.style.width=a.width+4+"px",e.style.height=a.height+4+"px",e.style.display=mxClient.IS_QUIRKS?"inline": -"inline-block"):(e=mxUtils.createImage(a.src),e.style.width=a.width+"px",e.style.height=a.height+"px",e.style.padding=this.tolerance+"px");null!=d&&e.setAttribute("title",d);e.style.position="absolute";e.style.cursor=this.cssCursor;mxEvent.addGestureListeners(e,mxUtils.bind(this,function(a){null==this.currentState||this.isResetEvent(a)||(this.mouseDownPoint=mxUtils.convertPoint(this.graph.container,mxEvent.getClientX(a),mxEvent.getClientY(a)),this.drag(a,this.mouseDownPoint.x,this.mouseDownPoint.y), +mxUtils.bind(this,function(){this.mouseDownPoint=null}));mxEvent.addListener(this.graph.container,"mouseleave",mxUtils.bind(this,function(a){null!=a.relatedTarget&&mxEvent.getSource(a)==this.graph.container&&this.setDisplay("none")}));this.graph.addListener(mxEvent.START_EDITING,mxUtils.bind(this,function(a){this.reset()}));var a=this.graph.click;this.graph.click=mxUtils.bind(this,function(b){a.apply(this.graph,arguments);null==this.currentState||this.graph.isCellSelected(this.currentState.cell)|| +!mxEvent.isTouchEvent(b.getEvent())||this.graph.model.isVertex(b.getCell())||this.reset()});var b=!1;this.graph.addMouseListener({mouseDown:mxUtils.bind(this,function(a,d){b=!1;var e=d.getEvent();if(this.isResetEvent(e))this.reset();else if(!this.isActive()){var l=this.getState(d.getState());null==l&&mxEvent.isTouchEvent(e)||this.update(l)}this.setDisplay("none")}),mouseMove:mxUtils.bind(this,function(a,d){var e=d.getEvent();this.isResetEvent(e)?this.reset():this.graph.isMouseDown||mxEvent.isTouchEvent(e)|| +this.update(this.getState(d.getState()),d.getGraphX(),d.getGraphY());null!=this.graph.connectionHandler&&null!=this.graph.connectionHandler.shape&&(b=!0)}),mouseUp:mxUtils.bind(this,function(a,d){var e=d.getEvent();mxUtils.convertPoint(this.graph.container,mxEvent.getClientX(e),mxEvent.getClientY(e));this.isResetEvent(e)?this.reset():this.isActive()&&!b&&null!=this.mouseDownPoint?this.click(this.currentState,this.getDirection(),d):this.isActive()?1==this.graph.getSelectionCount()&&this.graph.model.isEdge(this.graph.getSelectionCell())? +this.reset():this.update(this.getState(this.graph.view.getState(this.graph.getCellAt(d.getGraphX(),d.getGraphY())))):mxEvent.isTouchEvent(e)||null!=this.bbox&&mxUtils.contains(this.bbox,d.getGraphX(),d.getGraphY())?(this.setDisplay(""),this.repaint()):mxEvent.isTouchEvent(e)||this.reset();b=!1;this.resetActiveArrow()})})};HoverIcons.prototype.isResetEvent=function(a,b){return mxEvent.isAltDown(a)||null==this.activeArrow&&mxEvent.isShiftDown(a)||mxEvent.isMetaDown(a)||mxEvent.isPopupTrigger(a)&&!mxEvent.isControlDown(a)}; +HoverIcons.prototype.createArrow=function(a,b){var e=null;mxClient.IS_IE&&!mxClient.IS_SVG?(mxClient.IS_IE6&&"CSS1Compat"!=document.compatMode?(e=document.createElement(mxClient.VML_PREFIX+":image"),e.setAttribute("src",a.src),e.style.borderStyle="none"):(e=document.createElement("div"),e.style.backgroundImage="url("+a.src+")",e.style.backgroundPosition="center",e.style.backgroundRepeat="no-repeat"),e.style.width=a.width+4+"px",e.style.height=a.height+4+"px",e.style.display=mxClient.IS_QUIRKS?"inline": +"inline-block"):(e=mxUtils.createImage(a.src),e.style.width=a.width+"px",e.style.height=a.height+"px",e.style.padding=this.tolerance+"px");null!=b&&e.setAttribute("title",b);e.style.position="absolute";e.style.cursor=this.cssCursor;mxEvent.addGestureListeners(e,mxUtils.bind(this,function(a){null==this.currentState||this.isResetEvent(a)||(this.mouseDownPoint=mxUtils.convertPoint(this.graph.container,mxEvent.getClientX(a),mxEvent.getClientY(a)),this.drag(a,this.mouseDownPoint.x,this.mouseDownPoint.y), this.activeArrow=e,this.setDisplay("none"),mxEvent.consume(a))}));mxEvent.redirectMouseEvents(e,this.graph,this.currentState);mxEvent.addListener(e,"mouseenter",mxUtils.bind(this,function(a){mxEvent.isMouseEvent(a)&&(null!=this.activeArrow&&this.activeArrow!=e&&mxUtils.setOpacity(this.activeArrow,this.inactiveOpacity),this.graph.connectionHandler.constraintHandler.reset(),mxUtils.setOpacity(e,100),this.activeArrow=e)}));mxEvent.addListener(e,"mouseleave",mxUtils.bind(this,function(a){this.graph.isMouseDown|| this.resetActiveArrow()}));return e};HoverIcons.prototype.resetActiveArrow=function(){null!=this.activeArrow&&(mxUtils.setOpacity(this.activeArrow,this.inactiveOpacity),this.activeArrow=null)};HoverIcons.prototype.getDirection=function(){var a=mxConstants.DIRECTION_EAST;this.activeArrow==this.arrowUp?a=mxConstants.DIRECTION_NORTH:this.activeArrow==this.arrowDown?a=mxConstants.DIRECTION_SOUTH:this.activeArrow==this.arrowLeft&&(a=mxConstants.DIRECTION_WEST);return a}; -HoverIcons.prototype.visitNodes=function(a){for(var d=0;d<this.elts.length;d++)null!=this.elts[d]&&a(this.elts[d])};HoverIcons.prototype.removeNodes=function(){this.visitNodes(function(a){null!=a.parentNode&&a.parentNode.removeChild(a)})};HoverIcons.prototype.setDisplay=function(a){this.visitNodes(function(d){d.style.display=a})};HoverIcons.prototype.isActive=function(){return null!=this.activeArrow&&null!=this.currentState}; -HoverIcons.prototype.drag=function(a,d,e){this.graph.popupMenuHandler.hideMenu();this.graph.stopEditing(!1);null!=this.currentState&&(this.graph.connectionHandler.start(this.currentState,d,e),this.graph.isMouseTrigger=mxEvent.isMouseEvent(a),this.graph.isMouseDown=!0,d=this.graph.selectionCellsHandler.getHandler(this.currentState.cell),null!=d&&d.setHandlesVisible(!1),d=this.graph.connectionHandler.edgeState,null!=a&&mxEvent.isShiftDown(a)&&mxEvent.isControlDown(a)&&null!=d&&"orthogonalEdgeStyle"=== -mxUtils.getValue(d.style,mxConstants.STYLE_EDGE,null)&&(a=this.getDirection(),d.cell.style=mxUtils.setStyle(d.cell.style,"sourcePortConstraint",a),d.style.sourcePortConstraint=a))};HoverIcons.prototype.getStateAt=function(a,d,e){return this.graph.view.getState(this.graph.getCellAt(d,e))}; -HoverIcons.prototype.click=function(a,d,e){var b=e.getEvent(),h=e.getGraphX(),m=e.getGraphY(),h=this.getStateAt(a,h,m);null==h||!this.graph.model.isEdge(h.cell)||mxEvent.isControlDown(b)||h.getVisibleTerminalState(!0)!=a&&h.getVisibleTerminalState(!1)!=a?null!=a&&(a=this.graph.connectVertex(a.cell,d,this.graph.defaultEdgeLength,b),this.graph.selectCellsForConnectVertex(a,b,this),2==a.length&&this.graph.model.isVertex(a[1])?(this.graph.setSelectionCell(a[1]),mxEvent.isTouchEvent(b)?this.update(this.getState(this.graph.view.getState(a[1]))): -this.reset(),this.graph.scrollCellToVisible(a[1])):this.graph.setSelectionCells(a)):(this.graph.setSelectionCell(h.cell),this.reset());e.consume()};HoverIcons.prototype.reset=function(a){null!=a&&!a||null==this.updateThread||window.clearTimeout(this.updateThread);this.activeArrow=this.currentState=this.mouseDownPoint=null;this.removeNodes();this.bbox=null}; +HoverIcons.prototype.visitNodes=function(a){for(var b=0;b<this.elts.length;b++)null!=this.elts[b]&&a(this.elts[b])};HoverIcons.prototype.removeNodes=function(){this.visitNodes(function(a){null!=a.parentNode&&a.parentNode.removeChild(a)})};HoverIcons.prototype.setDisplay=function(a){this.visitNodes(function(b){b.style.display=a})};HoverIcons.prototype.isActive=function(){return null!=this.activeArrow&&null!=this.currentState}; +HoverIcons.prototype.drag=function(a,b,e){this.graph.popupMenuHandler.hideMenu();this.graph.stopEditing(!1);null!=this.currentState&&(this.graph.connectionHandler.start(this.currentState,b,e),this.graph.isMouseTrigger=mxEvent.isMouseEvent(a),this.graph.isMouseDown=!0,b=this.graph.selectionCellsHandler.getHandler(this.currentState.cell),null!=b&&b.setHandlesVisible(!1),b=this.graph.connectionHandler.edgeState,null!=a&&mxEvent.isShiftDown(a)&&mxEvent.isControlDown(a)&&null!=b&&"orthogonalEdgeStyle"=== +mxUtils.getValue(b.style,mxConstants.STYLE_EDGE,null)&&(a=this.getDirection(),b.cell.style=mxUtils.setStyle(b.cell.style,"sourcePortConstraint",a),b.style.sourcePortConstraint=a))};HoverIcons.prototype.getStateAt=function(a,b,e){return this.graph.view.getState(this.graph.getCellAt(b,e))}; +HoverIcons.prototype.click=function(a,b,e){var d=e.getEvent(),k=e.getGraphX(),l=e.getGraphY(),k=this.getStateAt(a,k,l);null==k||!this.graph.model.isEdge(k.cell)||mxEvent.isControlDown(d)||k.getVisibleTerminalState(!0)!=a&&k.getVisibleTerminalState(!1)!=a?null!=a&&(a=this.graph.connectVertex(a.cell,b,this.graph.defaultEdgeLength,d),this.graph.selectCellsForConnectVertex(a,d,this),2==a.length&&this.graph.model.isVertex(a[1])?(this.graph.setSelectionCell(a[1]),mxEvent.isTouchEvent(d)?this.update(this.getState(this.graph.view.getState(a[1]))): +this.reset(),this.graph.scrollCellToVisible(a[1])):this.graph.setSelectionCells(a)):(this.graph.setSelectionCell(k.cell),this.reset());e.consume()};HoverIcons.prototype.reset=function(a){null!=a&&!a||null==this.updateThread||window.clearTimeout(this.updateThread);this.activeArrow=this.currentState=this.mouseDownPoint=null;this.removeNodes();this.bbox=null}; HoverIcons.prototype.repaint=function(){this.bbox=null;if(null!=this.currentState){this.currentState=this.getState(this.currentState);if(null!=this.currentState&&this.graph.model.isVertex(this.currentState.cell)&&this.graph.isCellConnectable(this.currentState.cell)){var a=mxRectangle.fromRectangle(this.currentState);null!=this.currentState.shape&&null!=this.currentState.shape.boundingBox&&(a=mxRectangle.fromRectangle(this.currentState.shape.boundingBox));a.grow(this.graph.tolerance);a.grow(this.arrowSpacing); -var d=this.graph.selectionCellsHandler.getHandler(this.currentState.cell);null!=d&&(a.x-=d.horizontalOffset/2,a.y-=d.verticalOffset/2,a.width+=d.horizontalOffset,a.height+=d.verticalOffset,null!=d.rotationShape&&null!=d.rotationShape.node&&"hidden"!=d.rotationShape.node.style.visibility&&"none"!=d.rotationShape.node.style.display&&null!=d.rotationShape.boundingBox&&a.add(d.rotationShape.boundingBox));this.arrowUp.style.left=Math.round(this.currentState.getCenterX()-this.triangleUp.width/2-this.tolerance)+ +var b=this.graph.selectionCellsHandler.getHandler(this.currentState.cell);null!=b&&(a.x-=b.horizontalOffset/2,a.y-=b.verticalOffset/2,a.width+=b.horizontalOffset,a.height+=b.verticalOffset,null!=b.rotationShape&&null!=b.rotationShape.node&&"hidden"!=b.rotationShape.node.style.visibility&&"none"!=b.rotationShape.node.style.display&&null!=b.rotationShape.boundingBox&&a.add(b.rotationShape.boundingBox));this.arrowUp.style.left=Math.round(this.currentState.getCenterX()-this.triangleUp.width/2-this.tolerance)+ "px";this.arrowUp.style.top=Math.round(a.y-this.triangleUp.height-this.tolerance)+"px";mxUtils.setOpacity(this.arrowUp,this.inactiveOpacity);this.arrowRight.style.left=Math.round(a.x+a.width-this.tolerance)+"px";this.arrowRight.style.top=Math.round(this.currentState.getCenterY()-this.triangleRight.height/2-this.tolerance)+"px";mxUtils.setOpacity(this.arrowRight,this.inactiveOpacity);this.arrowDown.style.left=this.arrowUp.style.left;this.arrowDown.style.top=Math.round(a.y+a.height-this.tolerance)+ -"px";mxUtils.setOpacity(this.arrowDown,this.inactiveOpacity);this.arrowLeft.style.left=Math.round(a.x-this.triangleLeft.width-this.tolerance)+"px";this.arrowLeft.style.top=this.arrowRight.style.top;mxUtils.setOpacity(this.arrowLeft,this.inactiveOpacity);if(this.checkCollisions){var d=this.graph.getCellAt(a.x+a.width+this.triangleRight.width/2,this.currentState.getCenterY()),e=this.graph.getCellAt(a.x-this.triangleLeft.width/2,this.currentState.getCenterY()),b=this.graph.getCellAt(this.currentState.getCenterX(), -a.y-this.triangleUp.height/2),a=this.graph.getCellAt(this.currentState.getCenterX(),a.y+a.height+this.triangleDown.height/2);null!=d&&d==e&&e==b&&b==a&&(a=b=e=d=null);var h=this.graph.getCellGeometry(this.currentState.cell),m=mxUtils.bind(this,function(a,d){var b=this.graph.model.isVertex(a)&&this.graph.getCellGeometry(a);null!=a&&!this.graph.model.isAncestor(a,this.currentState.cell)&&(null==b||null==h||b.height<6*h.height&&b.width<6*h.width)?d.style.visibility="hidden":d.style.visibility="visible"}); -m(d,this.arrowRight);m(e,this.arrowLeft);m(b,this.arrowUp);m(a,this.arrowDown)}else this.arrowLeft.style.visibility="visible",this.arrowRight.style.visibility="visible",this.arrowUp.style.visibility="visible",this.arrowDown.style.visibility="visible";this.graph.tooltipHandler.isEnabled()?(this.arrowLeft.setAttribute("title",mxResources.get("plusTooltip")),this.arrowRight.setAttribute("title",mxResources.get("plusTooltip")),this.arrowUp.setAttribute("title",mxResources.get("plusTooltip")),this.arrowDown.setAttribute("title", +"px";mxUtils.setOpacity(this.arrowDown,this.inactiveOpacity);this.arrowLeft.style.left=Math.round(a.x-this.triangleLeft.width-this.tolerance)+"px";this.arrowLeft.style.top=this.arrowRight.style.top;mxUtils.setOpacity(this.arrowLeft,this.inactiveOpacity);if(this.checkCollisions){var b=this.graph.getCellAt(a.x+a.width+this.triangleRight.width/2,this.currentState.getCenterY()),e=this.graph.getCellAt(a.x-this.triangleLeft.width/2,this.currentState.getCenterY()),d=this.graph.getCellAt(this.currentState.getCenterX(), +a.y-this.triangleUp.height/2),a=this.graph.getCellAt(this.currentState.getCenterX(),a.y+a.height+this.triangleDown.height/2);null!=b&&b==e&&e==d&&d==a&&(a=d=e=b=null);var k=this.graph.getCellGeometry(this.currentState.cell),l=mxUtils.bind(this,function(a,b){var d=this.graph.model.isVertex(a)&&this.graph.getCellGeometry(a);null!=a&&!this.graph.model.isAncestor(a,this.currentState.cell)&&(null==d||null==k||d.height<6*k.height&&d.width<6*k.width)?b.style.visibility="hidden":b.style.visibility="visible"}); +l(b,this.arrowRight);l(e,this.arrowLeft);l(d,this.arrowUp);l(a,this.arrowDown)}else this.arrowLeft.style.visibility="visible",this.arrowRight.style.visibility="visible",this.arrowUp.style.visibility="visible",this.arrowDown.style.visibility="visible";this.graph.tooltipHandler.isEnabled()?(this.arrowLeft.setAttribute("title",mxResources.get("plusTooltip")),this.arrowRight.setAttribute("title",mxResources.get("plusTooltip")),this.arrowUp.setAttribute("title",mxResources.get("plusTooltip")),this.arrowDown.setAttribute("title", mxResources.get("plusTooltip"))):(this.arrowLeft.removeAttribute("title"),this.arrowRight.removeAttribute("title"),this.arrowUp.removeAttribute("title"),this.arrowDown.removeAttribute("title"))}else this.reset();null!=this.currentState&&(this.bbox=this.computeBoundingBox(),null!=this.bbox&&this.bbox.grow(10))}}; -HoverIcons.prototype.computeBoundingBox=function(){var a=this.graph.model.isEdge(this.currentState.cell)?null:mxRectangle.fromRectangle(this.currentState);this.visitNodes(function(d){null!=d.parentNode&&(d=new mxRectangle(d.offsetLeft,d.offsetTop,d.offsetWidth,d.offsetHeight),null==a?a=d:a.add(d))});return a}; -HoverIcons.prototype.getState=function(a){if(null!=a){a=a.cell;if(this.graph.getModel().isVertex(a)&&!this.graph.isCellConnectable(a)){var d=this.graph.getModel().getParent(a);this.graph.getModel().isVertex(d)&&this.graph.isCellConnectable(d)&&(a=d)}if(this.graph.isCellLocked(a)||this.graph.model.isEdge(a))a=null;a=this.graph.view.getState(a)}return a}; -HoverIcons.prototype.update=function(a,d,e){if(this.graph.connectionArrowsEnabled){var b=null;this.prev!=a||this.isActive()?(this.startTime=(new Date).getTime(),this.prev=a,b=0,null!=this.updateThread&&window.clearTimeout(this.updateThread),null!=a&&(this.updateThread=window.setTimeout(mxUtils.bind(this,function(){this.isActive()||this.graph.isMouseDown||this.graph.panningHandler.isActive()||(this.prev=a,this.update(a,d,e))}),this.updateDelay+10))):null!=this.startTime&&(b=(new Date).getTime()-this.startTime); -this.setDisplay("");null!=this.currentState&&this.currentState!=a&&b<this.activationDelay&&null!=this.bbox&&!mxUtils.contains(this.bbox,d,e)?this.reset(!1):(null!=this.currentState||b>this.activationDelay)&&this.currentState!=a&&(b>this.updateDelay&&null!=a||null==this.bbox||null==d||null==e||!mxUtils.contains(this.bbox,d,e))&&(null!=a&&this.graph.isEnabled()?(this.removeNodes(),this.setCurrentState(a),this.repaint(),this.graph.connectionHandler.constraintHandler.currentFocus!=a&&this.graph.connectionHandler.constraintHandler.reset()): +HoverIcons.prototype.computeBoundingBox=function(){var a=this.graph.model.isEdge(this.currentState.cell)?null:mxRectangle.fromRectangle(this.currentState);this.visitNodes(function(b){null!=b.parentNode&&(b=new mxRectangle(b.offsetLeft,b.offsetTop,b.offsetWidth,b.offsetHeight),null==a?a=b:a.add(b))});return a}; +HoverIcons.prototype.getState=function(a){if(null!=a){a=a.cell;if(this.graph.getModel().isVertex(a)&&!this.graph.isCellConnectable(a)){var b=this.graph.getModel().getParent(a);this.graph.getModel().isVertex(b)&&this.graph.isCellConnectable(b)&&(a=b)}if(this.graph.isCellLocked(a)||this.graph.model.isEdge(a))a=null;a=this.graph.view.getState(a)}return a}; +HoverIcons.prototype.update=function(a,b,e){if(this.graph.connectionArrowsEnabled){var d=null;this.prev!=a||this.isActive()?(this.startTime=(new Date).getTime(),this.prev=a,d=0,null!=this.updateThread&&window.clearTimeout(this.updateThread),null!=a&&(this.updateThread=window.setTimeout(mxUtils.bind(this,function(){this.isActive()||this.graph.isMouseDown||this.graph.panningHandler.isActive()||(this.prev=a,this.update(a,b,e))}),this.updateDelay+10))):null!=this.startTime&&(d=(new Date).getTime()-this.startTime); +this.setDisplay("");null!=this.currentState&&this.currentState!=a&&d<this.activationDelay&&null!=this.bbox&&!mxUtils.contains(this.bbox,b,e)?this.reset(!1):(null!=this.currentState||d>this.activationDelay)&&this.currentState!=a&&(d>this.updateDelay&&null!=a||null==this.bbox||null==b||null==e||!mxUtils.contains(this.bbox,b,e))&&(null!=a&&this.graph.isEnabled()?(this.removeNodes(),this.setCurrentState(a),this.repaint(),this.graph.connectionHandler.constraintHandler.currentFocus!=a&&this.graph.connectionHandler.constraintHandler.reset()): this.reset())}else this.reset()};HoverIcons.prototype.setCurrentState=function(a){"eastwest"!=a.style.portConstraint&&(this.graph.container.appendChild(this.arrowUp),this.graph.container.appendChild(this.arrowDown));this.graph.container.appendChild(this.arrowRight);this.graph.container.appendChild(this.arrowLeft);this.currentState=a}; -(function(){var a=mxGraphView.prototype.resetValidationState;mxGraphView.prototype.resetValidationState=function(){a.apply(this,arguments);this.validEdges=[]};var d=mxGraphView.prototype.validateCellState;mxGraphView.prototype.validateCellState=function(a,c){var b=this.getState(a);null!=b&&this.graph.model.isEdge(b.cell)&&null!=b.style&&1!=b.style[mxConstants.STYLE_CURVED]&&!b.invalid&&this.updateLineJumps(b)&&this.graph.cellRenderer.redraw(b,!1,this.isRendering());b=d.apply(this,arguments);null!= -b&&this.graph.model.isEdge(b.cell)&&1!=b.style[mxConstants.STYLE_CURVED]&&this.validEdges.push(b);return b};var e=mxCellRenderer.prototype.isShapeInvalid;mxCellRenderer.prototype.isShapeInvalid=function(a,c){return e.apply(this,arguments)||null!=a.routedPoints&&null!=c.routedPoints&&!mxUtils.equalPoints(c.routedPoints,a.routedPoints)};var b=mxGraphView.prototype.updateCellState;mxGraphView.prototype.updateCellState=function(a){b.apply(this,arguments);this.graph.model.isEdge(a.cell)&&1!=a.style[mxConstants.STYLE_CURVED]&& -this.updateLineJumps(a)};mxGraphView.prototype.updateLineJumps=function(a){var c=a.absolutePoints;if(Graph.lineJumpsEnabled){var d=null!=a.routedPoints,b=null;if(null!=c&&null!=this.validEdges&&"none"!==mxUtils.getValue(a.style,"jumpStyle","none")){for(var e=function(c,d,f){var e=new mxPoint(d,f);e.type=c;b.push(e);e=null!=a.routedPoints?a.routedPoints[b.length-1]:null;return null==e||e.type!=c||e.x!=d||e.y!=f},r=.5*this.scale,d=!1,b=[],l=0;l<c.length-1;l++){for(var n=c[l+1],w=c[l],v=[],h=c[l+2];l< -c.length-2&&mxUtils.ptSegDistSq(w.x,w.y,h.x,h.y,n.x,n.y)<1*this.scale*this.scale;)n=h,l++,h=c[l+2];for(var d=e(0,w.x,w.y)||d,y=0;y<this.validEdges.length;y++){var t=this.validEdges[y],q=t.absolutePoints;if(null!=q&&mxUtils.intersects(a,t)&&"1"!=t.style.noJump)for(t=0;t<q.length-1;t++){for(var m=q[t+1],p=q[t],h=q[t+2];t<q.length-2&&mxUtils.ptSegDistSq(p.x,p.y,h.x,h.y,m.x,m.y)<1*this.scale*this.scale;)m=h,t++,h=q[t+2];h=mxUtils.intersection(w.x,w.y,n.x,n.y,p.x,p.y,m.x,m.y);if(null!=h&&(Math.abs(h.x- -p.x)>r||Math.abs(h.y-p.y)>r)&&(Math.abs(h.x-m.x)>r||Math.abs(h.y-m.y)>r)){m=h.x-w.x;p=h.y-w.y;h={distSq:m*m+p*p,x:h.x,y:h.y};for(m=0;m<v.length;m++)if(v[m].distSq>h.distSq){v.splice(m,0,h);h=null;break}null==h||0!=v.length&&v[v.length-1].x===h.x&&v[v.length-1].y===h.y||v.push(h)}}}for(t=0;t<v.length;t++)d=e(1,v[t].x,v[t].y)||d}h=c[c.length-1];d=e(0,h.x,h.y)||d}a.routedPoints=b;return d}return!1};var h=mxConnector.prototype.paintLine;mxConnector.prototype.paintLine=function(a,c,d){this.routedPoints= -null!=this.state?this.state.routedPoints:null;if(this.outline||null==this.state||null==this.style||null==this.state.routedPoints||0==this.state.routedPoints.length)h.apply(this,arguments);else{var b=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2,f=(parseInt(mxUtils.getValue(this.style,"jumpSize",Graph.defaultJumpSize))-2)/2+this.strokewidth,e=mxUtils.getValue(this.style,"jumpStyle","none"),l,n=!0,w=null,v=null;l=[];var q=null;a.begin();for(var y=0;y<this.state.routedPoints.length;y++){var t= -this.state.routedPoints[y],z=new mxPoint(t.x/this.scale,t.y/this.scale);0==y?z=c[0]:y==this.state.routedPoints.length-1&&(z=c[c.length-1]);var m=!1;if(null!=w&&1==t.type){var p=this.state.routedPoints[y+1],t=p.x/this.scale-z.x,p=p.y/this.scale-z.y,t=t*t+p*p;null==q&&(q=new mxPoint(z.x-w.x,z.y-w.y),v=Math.sqrt(q.x*q.x+q.y*q.y),q.x=q.x*f/v,q.y=q.y*f/v);t>f*f&&0<v&&(t=w.x-z.x,p=w.y-z.y,t=t*t+p*p,t>f*f&&(m=new mxPoint(z.x-q.x,z.y-q.y),t=new mxPoint(z.x+q.x,z.y+q.y),l.push(m),this.addPoints(a,l,d,b,!1, -null,n),l=0>Math.round(q.x)||0==Math.round(q.x)&&0>=Math.round(q.y)?1:-1,n=!1,"sharp"==e?(a.lineTo(m.x-q.y*l,m.y+q.x*l),a.lineTo(t.x-q.y*l,t.y+q.x*l),a.lineTo(t.x,t.y)):"arc"==e?(l*=1.3,a.curveTo(m.x-q.y*l,m.y+q.x*l,t.x-q.y*l,t.y+q.x*l,t.x,t.y)):(a.moveTo(t.x,t.y),n=!0),l=[t],m=!0))}else q=null;m||(l.push(z),w=z)}this.addPoints(a,l,d,b,!1,null,n);a.stroke()}};var m=mxGraphView.prototype.updateFloatingTerminalPoint;mxGraphView.prototype.updateFloatingTerminalPoint=function(a,c,d,b){if(null==c||null== -a||"1"!=c.style.snapToPoint&&"1"!=a.style.snapToPoint)m.apply(this,arguments);else{c=this.getTerminalPort(a,c,b);var f=this.getNextPoint(a,d,b),e=this.graph.isOrthogonal(a),g=mxUtils.toRadians(Number(c.style[mxConstants.STYLE_ROTATION]||"0")),n=new mxPoint(c.getCenterX(),c.getCenterY());if(0!=g)var h=Math.cos(-g),v=Math.sin(-g),f=mxUtils.getRotatedPoint(f,h,v,n);h=parseFloat(a.style[mxConstants.STYLE_PERIMETER_SPACING]||0);h+=parseFloat(a.style[b?mxConstants.STYLE_SOURCE_PERIMETER_SPACING:mxConstants.STYLE_TARGET_PERIMETER_SPACING]|| -0);f=this.getPerimeterPoint(c,f,0==g&&e,h);0!=g&&(h=Math.cos(g),v=Math.sin(g),f=mxUtils.getRotatedPoint(f,h,v,n));a.setAbsoluteTerminalPoint(this.snapToAnchorPoint(a,c,d,b,f),b)}};mxGraphView.prototype.snapToAnchorPoint=function(a,c,d,b,e){if(null!=c&&null!=a){a=this.graph.getAllConnectionConstraints(c);b=d=null;if(null!=a)for(var f=0;f<a.length;f++){var g=this.graph.getConnectionPoint(c,a[f]);if(null!=g){var k=(g.x-e.x)*(g.x-e.x)+(g.y-e.y)*(g.y-e.y);if(null==b||k<b)d=g,b=k}}null!=d&&(e=d)}return e}; -var p=mxStencil.prototype.evaluateTextAttribute;mxStencil.prototype.evaluateTextAttribute=function(a,c,d){var b=p.apply(this,arguments);"1"==a.getAttribute("placeholders")&&null!=d.state&&(b=d.state.view.graph.replacePlaceholders(d.state.cell,b));return b};var q=mxCellRenderer.prototype.createShape;mxCellRenderer.prototype.createShape=function(a){if(null!=a.style&&"undefined"!==typeof pako){var c=mxUtils.getValue(a.style,mxConstants.STYLE_SHAPE,null);if(null!=c&&"stencil("==c.substring(0,8))try{var d= -c.substring(8,c.length-1),b=mxUtils.parseXml(a.view.graph.decompress(d));return new mxShape(new mxStencil(b.documentElement))}catch(k){null!=window.console&&console.log("Error in shape: "+k)}}return q.apply(this,arguments)}})();mxStencilRegistry.libraries={};mxStencilRegistry.dynamicLoading=!0;mxStencilRegistry.allowEval=!0;mxStencilRegistry.packages=[]; -mxStencilRegistry.getStencil=function(a){var d=mxStencilRegistry.stencils[a];if(null==d&&null==mxCellRenderer.defaultShapes[a]&&mxStencilRegistry.dynamicLoading){var e=mxStencilRegistry.getBasenameForStencil(a);if(null!=e){d=mxStencilRegistry.libraries[e];if(null!=d){if(null==mxStencilRegistry.packages[e]){for(var b=0;b<d.length;b++){var h=d[b];if(".xml"==h.toLowerCase().substring(h.length-4,h.length))mxStencilRegistry.loadStencilSet(h,null);else if(".js"==h.toLowerCase().substring(h.length-3,h.length))try{if(mxStencilRegistry.allowEval){var m= -mxUtils.load(h);null!=m&&200<=m.getStatus()&&299>=m.getStatus()&&eval.call(window,m.getText())}}catch(p){null!=window.console&&console.log("error in getStencil:",h,p)}}mxStencilRegistry.packages[e]=1}}else e=e.replace("_-_","_"),mxStencilRegistry.loadStencilSet(STENCIL_PATH+"/"+e+".xml",null);d=mxStencilRegistry.stencils[a]}}return d}; -mxStencilRegistry.getBasenameForStencil=function(a){var d=null;if(null!=a&&(a=a.split("."),0<a.length&&"mxgraph"==a[0]))for(var d=a[1],e=2;e<a.length-1;e++)d+="/"+a[e];return d}; -mxStencilRegistry.loadStencilSet=function(a,d,e,b){var h=mxStencilRegistry.packages[a];if(null!=e&&e||null==h){var m=!1;if(null==h)try{if(b){mxStencilRegistry.loadStencil(a,mxUtils.bind(this,function(b){null!=b&&null!=b.documentElement&&(mxStencilRegistry.packages[a]=b,m=!0,mxStencilRegistry.parseStencilSet(b.documentElement,d,m))}));return}h=mxStencilRegistry.loadStencil(a);mxStencilRegistry.packages[a]=h;m=!0}catch(p){null!=window.console&&console.log("error in loadStencilSet:",a,p)}null!=h&&null!= -h.documentElement&&mxStencilRegistry.parseStencilSet(h.documentElement,d,m)}};mxStencilRegistry.loadStencil=function(a,d){if(null!=d)mxUtils.get(a,mxUtils.bind(this,function(a){d(200<=a.getStatus()&&299>=a.getStatus()?a.getXml():null)}));else return mxUtils.load(a).getXml()};mxStencilRegistry.parseStencilSets=function(a){for(var d=0;d<a.length;d++)mxStencilRegistry.parseStencilSet(mxUtils.parseXml(a[d]).documentElement)}; -mxStencilRegistry.parseStencilSet=function(a,d,e){if("stencils"==a.nodeName)for(var b=a.firstChild;null!=b;)"shapes"==b.nodeName&&mxStencilRegistry.parseStencilSet(b,d,e),b=b.nextSibling;else{e=null!=e?e:!0;var b=a.firstChild,h="";a=a.getAttribute("name");for(null!=a&&(h=a+".");null!=b;){if(b.nodeType==mxConstants.NODETYPE_ELEMENT&&(a=b.getAttribute("name"),null!=a)){var h=h.toLowerCase(),m=a.replace(/ /g,"_");e&&mxStencilRegistry.addStencil(h+m.toLowerCase(),new mxStencil(b));if(null!=d){var p=b.getAttribute("w"), -q=b.getAttribute("h"),p=null==p?80:parseInt(p,10),q=null==q?80:parseInt(q,10);d(h,m,a,p,q)}}b=b.nextSibling}}}; +(function(){var a=mxGraphView.prototype.resetValidationState;mxGraphView.prototype.resetValidationState=function(){a.apply(this,arguments);this.validEdges=[]};var b=mxGraphView.prototype.validateCellState;mxGraphView.prototype.validateCellState=function(a,c){var d=this.getState(a);null!=d&&this.graph.model.isEdge(d.cell)&&null!=d.style&&1!=d.style[mxConstants.STYLE_CURVED]&&!d.invalid&&this.updateLineJumps(d)&&this.graph.cellRenderer.redraw(d,!1,this.isRendering());d=b.apply(this,arguments);null!= +d&&this.graph.model.isEdge(d.cell)&&1!=d.style[mxConstants.STYLE_CURVED]&&this.validEdges.push(d);return d};var e=mxCellRenderer.prototype.isShapeInvalid;mxCellRenderer.prototype.isShapeInvalid=function(a,c){return e.apply(this,arguments)||null!=a.routedPoints&&null!=c.routedPoints&&!mxUtils.equalPoints(c.routedPoints,a.routedPoints)};var d=mxGraphView.prototype.updateCellState;mxGraphView.prototype.updateCellState=function(a){d.apply(this,arguments);this.graph.model.isEdge(a.cell)&&1!=a.style[mxConstants.STYLE_CURVED]&& +this.updateLineJumps(a)};mxGraphView.prototype.updateLineJumps=function(a){var c=a.absolutePoints;if(Graph.lineJumpsEnabled){var b=null!=a.routedPoints,d=null;if(null!=c&&null!=this.validEdges&&"none"!==mxUtils.getValue(a.style,"jumpStyle","none")){for(var e=function(c,b,f){var e=new mxPoint(b,f);e.type=c;d.push(e);e=null!=a.routedPoints?a.routedPoints[d.length-1]:null;return null==e||e.type!=c||e.x!=b||e.y!=f},r=.5*this.scale,b=!1,d=[],h=0;h<c.length-1;h++){for(var m=c[h+1],w=c[h],v=[],k=c[h+2];h< +c.length-2&&mxUtils.ptSegDistSq(w.x,w.y,k.x,k.y,m.x,m.y)<1*this.scale*this.scale;)m=k,h++,k=c[h+2];for(var b=e(0,w.x,w.y)||b,y=0;y<this.validEdges.length;y++){var t=this.validEdges[y],q=t.absolutePoints;if(null!=q&&mxUtils.intersects(a,t)&&"1"!=t.style.noJump)for(t=0;t<q.length-1;t++){for(var l=q[t+1],p=q[t],k=q[t+2];t<q.length-2&&mxUtils.ptSegDistSq(p.x,p.y,k.x,k.y,l.x,l.y)<1*this.scale*this.scale;)l=k,t++,k=q[t+2];k=mxUtils.intersection(w.x,w.y,m.x,m.y,p.x,p.y,l.x,l.y);if(null!=k&&(Math.abs(k.x- +p.x)>r||Math.abs(k.y-p.y)>r)&&(Math.abs(k.x-l.x)>r||Math.abs(k.y-l.y)>r)){l=k.x-w.x;p=k.y-w.y;k={distSq:l*l+p*p,x:k.x,y:k.y};for(l=0;l<v.length;l++)if(v[l].distSq>k.distSq){v.splice(l,0,k);k=null;break}null==k||0!=v.length&&v[v.length-1].x===k.x&&v[v.length-1].y===k.y||v.push(k)}}}for(t=0;t<v.length;t++)b=e(1,v[t].x,v[t].y)||b}k=c[c.length-1];b=e(0,k.x,k.y)||b}a.routedPoints=d;return b}return!1};var k=mxConnector.prototype.paintLine;mxConnector.prototype.paintLine=function(a,c,b){this.routedPoints= +null!=this.state?this.state.routedPoints:null;if(this.outline||null==this.state||null==this.style||null==this.state.routedPoints||0==this.state.routedPoints.length)k.apply(this,arguments);else{var d=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2,f=(parseInt(mxUtils.getValue(this.style,"jumpSize",Graph.defaultJumpSize))-2)/2+this.strokewidth,e=mxUtils.getValue(this.style,"jumpStyle","none"),h,m=!0,w=null,v=null;h=[];var q=null;a.begin();for(var y=0;y<this.state.routedPoints.length;y++){var t= +this.state.routedPoints[y],z=new mxPoint(t.x/this.scale,t.y/this.scale);0==y?z=c[0]:y==this.state.routedPoints.length-1&&(z=c[c.length-1]);var l=!1;if(null!=w&&1==t.type){var p=this.state.routedPoints[y+1],t=p.x/this.scale-z.x,p=p.y/this.scale-z.y,t=t*t+p*p;null==q&&(q=new mxPoint(z.x-w.x,z.y-w.y),v=Math.sqrt(q.x*q.x+q.y*q.y),q.x=q.x*f/v,q.y=q.y*f/v);t>f*f&&0<v&&(t=w.x-z.x,p=w.y-z.y,t=t*t+p*p,t>f*f&&(l=new mxPoint(z.x-q.x,z.y-q.y),t=new mxPoint(z.x+q.x,z.y+q.y),h.push(l),this.addPoints(a,h,b,d,!1, +null,m),h=0>Math.round(q.x)||0==Math.round(q.x)&&0>=Math.round(q.y)?1:-1,m=!1,"sharp"==e?(a.lineTo(l.x-q.y*h,l.y+q.x*h),a.lineTo(t.x-q.y*h,t.y+q.x*h),a.lineTo(t.x,t.y)):"arc"==e?(h*=1.3,a.curveTo(l.x-q.y*h,l.y+q.x*h,t.x-q.y*h,t.y+q.x*h,t.x,t.y)):(a.moveTo(t.x,t.y),m=!0),h=[t],l=!0))}else q=null;l||(h.push(z),w=z)}this.addPoints(a,h,b,d,!1,null,m);a.stroke()}};var l=mxGraphView.prototype.updateFloatingTerminalPoint;mxGraphView.prototype.updateFloatingTerminalPoint=function(a,c,b,d){if(null==c||null== +a||"1"!=c.style.snapToPoint&&"1"!=a.style.snapToPoint)l.apply(this,arguments);else{c=this.getTerminalPort(a,c,d);var f=this.getNextPoint(a,b,d),e=this.graph.isOrthogonal(a),g=mxUtils.toRadians(Number(c.style[mxConstants.STYLE_ROTATION]||"0")),m=new mxPoint(c.getCenterX(),c.getCenterY());if(0!=g)var k=Math.cos(-g),v=Math.sin(-g),f=mxUtils.getRotatedPoint(f,k,v,m);k=parseFloat(a.style[mxConstants.STYLE_PERIMETER_SPACING]||0);k+=parseFloat(a.style[d?mxConstants.STYLE_SOURCE_PERIMETER_SPACING:mxConstants.STYLE_TARGET_PERIMETER_SPACING]|| +0);f=this.getPerimeterPoint(c,f,0==g&&e,k);0!=g&&(k=Math.cos(g),v=Math.sin(g),f=mxUtils.getRotatedPoint(f,k,v,m));a.setAbsoluteTerminalPoint(this.snapToAnchorPoint(a,c,b,d,f),d)}};mxGraphView.prototype.snapToAnchorPoint=function(a,c,b,d,e){if(null!=c&&null!=a){a=this.graph.getAllConnectionConstraints(c);d=b=null;if(null!=a)for(var f=0;f<a.length;f++){var g=this.graph.getConnectionPoint(c,a[f]);if(null!=g){var n=(g.x-e.x)*(g.x-e.x)+(g.y-e.y)*(g.y-e.y);if(null==d||n<d)b=g,d=n}}null!=b&&(e=b)}return e}; +var p=mxStencil.prototype.evaluateTextAttribute;mxStencil.prototype.evaluateTextAttribute=function(a,c,b){var d=p.apply(this,arguments);"1"==a.getAttribute("placeholders")&&null!=b.state&&(d=b.state.view.graph.replacePlaceholders(b.state.cell,d));return d};var q=mxCellRenderer.prototype.createShape;mxCellRenderer.prototype.createShape=function(a){if(null!=a.style&&"undefined"!==typeof pako){var c=mxUtils.getValue(a.style,mxConstants.STYLE_SHAPE,null);if(null!=c&&"stencil("==c.substring(0,8))try{var b= +c.substring(8,c.length-1),d=mxUtils.parseXml(a.view.graph.decompress(b));return new mxShape(new mxStencil(d.documentElement))}catch(n){null!=window.console&&console.log("Error in shape: "+n)}}return q.apply(this,arguments)}})();mxStencilRegistry.libraries={};mxStencilRegistry.dynamicLoading=!0;mxStencilRegistry.allowEval=!0;mxStencilRegistry.packages=[]; +mxStencilRegistry.getStencil=function(a){var b=mxStencilRegistry.stencils[a];if(null==b&&null==mxCellRenderer.defaultShapes[a]&&mxStencilRegistry.dynamicLoading){var e=mxStencilRegistry.getBasenameForStencil(a);if(null!=e){b=mxStencilRegistry.libraries[e];if(null!=b){if(null==mxStencilRegistry.packages[e]){for(var d=0;d<b.length;d++){var k=b[d];if(".xml"==k.toLowerCase().substring(k.length-4,k.length))mxStencilRegistry.loadStencilSet(k,null);else if(".js"==k.toLowerCase().substring(k.length-3,k.length))try{if(mxStencilRegistry.allowEval){var l= +mxUtils.load(k);null!=l&&200<=l.getStatus()&&299>=l.getStatus()&&eval.call(window,l.getText())}}catch(p){null!=window.console&&console.log("error in getStencil:",k,p)}}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("."),0<a.length&&"mxgraph"==a[0]))for(var b=a[1],e=2;e<a.length-1;e++)b+="/"+a[e];return b}; +mxStencilRegistry.loadStencilSet=function(a,b,e,d){var k=mxStencilRegistry.packages[a];if(null!=e&&e||null==k){var l=!1;if(null==k)try{if(d){mxStencilRegistry.loadStencil(a,mxUtils.bind(this,function(d){null!=d&&null!=d.documentElement&&(mxStencilRegistry.packages[a]=d,l=!0,mxStencilRegistry.parseStencilSet(d.documentElement,b,l))}));return}k=mxStencilRegistry.loadStencil(a);mxStencilRegistry.packages[a]=k;l=!0}catch(p){null!=window.console&&console.log("error in loadStencilSet:",a,p)}null!=k&&null!= +k.documentElement&&mxStencilRegistry.parseStencilSet(k.documentElement,b,l)}};mxStencilRegistry.loadStencil=function(a,b){if(null!=b)mxUtils.get(a,mxUtils.bind(this,function(a){b(200<=a.getStatus()&&299>=a.getStatus()?a.getXml():null)}));else return mxUtils.load(a).getXml()};mxStencilRegistry.parseStencilSets=function(a){for(var b=0;b<a.length;b++)mxStencilRegistry.parseStencilSet(mxUtils.parseXml(a[b]).documentElement)}; +mxStencilRegistry.parseStencilSet=function(a,b,e){if("stencils"==a.nodeName)for(var d=a.firstChild;null!=d;)"shapes"==d.nodeName&&mxStencilRegistry.parseStencilSet(d,b,e),d=d.nextSibling;else{e=null!=e?e:!0;var d=a.firstChild,k="";a=a.getAttribute("name");for(null!=a&&(k=a+".");null!=d;){if(d.nodeType==mxConstants.NODETYPE_ELEMENT&&(a=d.getAttribute("name"),null!=a)){var k=k.toLowerCase(),l=a.replace(/ /g,"_");e&&mxStencilRegistry.addStencil(k+l.toLowerCase(),new mxStencil(d));if(null!=b){var p=d.getAttribute("w"), +q=d.getAttribute("h"),p=null==p?80:parseInt(p,10),q=null==q?80:parseInt(q,10);b(k,l,a,p,q)}}d=d.nextSibling}}}; "undefined"!=typeof mxVertexHandler&&function(){function a(){var a=document.createElement("div");a.className="geHint";a.style.whiteSpace="nowrap";a.style.position="absolute";return a}mxConstants.HANDLE_FILLCOLOR="#29b6f2";mxConstants.HANDLE_STROKECOLOR="#0088cf";mxConstants.VERTEX_SELECTION_COLOR="#00a8ff";mxConstants.OUTLINE_COLOR="#00a8ff";mxConstants.OUTLINE_HANDLE_FILLCOLOR="#99ccff";mxConstants.OUTLINE_HANDLE_STROKECOLOR="#00a8ff";mxConstants.CONNECT_HANDLE_FILLCOLOR="#cee7ff";mxConstants.EDGE_SELECTION_COLOR= -"#00a8ff";mxConstants.DEFAULT_VALID_COLOR="#00a8ff";mxConstants.LABEL_HANDLE_FILLCOLOR="#cee7ff";mxConstants.GUIDE_COLOR="#0088cf";mxConstants.HIGHLIGHT_OPACITY=30;mxConstants.HIGHLIGHT_SIZE=5;mxEdgeHandler.prototype.snapToTerminals=!0;mxGraphHandler.prototype.guidesEnabled=!0;mxRubberband.prototype.fadeOut=!0;mxGuide.prototype.isEnabledForEvent=function(a){return!mxEvent.isAltDown(a)};var d=mxConnectionHandler.prototype.isCreateTarget;mxConnectionHandler.prototype.isCreateTarget=function(a){return mxEvent.isControlDown(a)|| -d.apply(this,arguments)};mxConstraintHandler.prototype.createHighlightShape=function(){var a=new mxEllipse(null,this.highlightColor,this.highlightColor,0);a.opacity=mxConstants.HIGHLIGHT_OPACITY;return a};mxConnectionHandler.prototype.livePreview=!0;mxConnectionHandler.prototype.cursor="crosshair";mxConnectionHandler.prototype.createEdgeState=function(a){a=this.graph.createCurrentEdgeStyle();a=this.graph.createEdge(null,null,null,null,null,a);a=new mxCellState(this.graph.view,a,this.graph.getCellStyle(a)); -for(var c in this.graph.currentEdgeStyle)a.style[c]=this.graph.currentEdgeStyle[c];return a};var e=mxConnectionHandler.prototype.createShape;mxConnectionHandler.prototype.createShape=function(){var a=e.apply(this,arguments);a.isDashed="1"==this.graph.currentEdgeStyle[mxConstants.STYLE_DASHED];return a};mxConnectionHandler.prototype.updatePreview=function(a){};var b=mxConnectionHandler.prototype.createMarker;mxConnectionHandler.prototype.createMarker=function(){var a=b.apply(this,arguments),c=a.getCell; -a.getCell=mxUtils.bind(this,function(a){var d=c.apply(this,arguments);this.error=null;return d});return a};mxConnectionHandler.prototype.isCellEnabled=function(a){return!this.graph.isCellLocked(a)};Graph.prototype.defaultVertexStyle={};Graph.prototype.defaultEdgeStyle={edgeStyle:"orthogonalEdgeStyle",rounded:"0",jettySize:"auto",orthogonalLoop:"1"};Graph.prototype.createCurrentEdgeStyle=function(){var a="edgeStyle="+(this.currentEdgeStyle.edgeStyle||"none")+";";null!=this.currentEdgeStyle.shape&& +"#00a8ff";mxConstants.DEFAULT_VALID_COLOR="#00a8ff";mxConstants.LABEL_HANDLE_FILLCOLOR="#cee7ff";mxConstants.GUIDE_COLOR="#0088cf";mxConstants.HIGHLIGHT_OPACITY=30;mxConstants.HIGHLIGHT_SIZE=5;mxEdgeHandler.prototype.snapToTerminals=!0;mxGraphHandler.prototype.guidesEnabled=!0;mxRubberband.prototype.fadeOut=!0;mxGuide.prototype.isEnabledForEvent=function(a){return!mxEvent.isAltDown(a)};var b=mxConnectionHandler.prototype.isCreateTarget;mxConnectionHandler.prototype.isCreateTarget=function(a){return mxEvent.isControlDown(a)|| +b.apply(this,arguments)};mxConstraintHandler.prototype.createHighlightShape=function(){var a=new mxEllipse(null,this.highlightColor,this.highlightColor,0);a.opacity=mxConstants.HIGHLIGHT_OPACITY;return a};mxConnectionHandler.prototype.livePreview=!0;mxConnectionHandler.prototype.cursor="crosshair";mxConnectionHandler.prototype.createEdgeState=function(a){a=this.graph.createCurrentEdgeStyle();a=this.graph.createEdge(null,null,null,null,null,a);a=new mxCellState(this.graph.view,a,this.graph.getCellStyle(a)); +for(var c in this.graph.currentEdgeStyle)a.style[c]=this.graph.currentEdgeStyle[c];return a};var e=mxConnectionHandler.prototype.createShape;mxConnectionHandler.prototype.createShape=function(){var a=e.apply(this,arguments);a.isDashed="1"==this.graph.currentEdgeStyle[mxConstants.STYLE_DASHED];return a};mxConnectionHandler.prototype.updatePreview=function(a){};var d=mxConnectionHandler.prototype.createMarker;mxConnectionHandler.prototype.createMarker=function(){var a=d.apply(this,arguments),c=a.getCell; +a.getCell=mxUtils.bind(this,function(a){var b=c.apply(this,arguments);this.error=null;return b});return a};mxConnectionHandler.prototype.isCellEnabled=function(a){return!this.graph.isCellLocked(a)};Graph.prototype.defaultVertexStyle={};Graph.prototype.defaultEdgeStyle={edgeStyle:"orthogonalEdgeStyle",rounded:"0",jettySize:"auto",orthogonalLoop:"1"};Graph.prototype.createCurrentEdgeStyle=function(){var a="edgeStyle="+(this.currentEdgeStyle.edgeStyle||"none")+";";null!=this.currentEdgeStyle.shape&& (a+="shape="+this.currentEdgeStyle.shape+";");null!=this.currentEdgeStyle.curved&&(a+="curved="+this.currentEdgeStyle.curved+";");null!=this.currentEdgeStyle.rounded&&(a+="rounded="+this.currentEdgeStyle.rounded+";");null!=this.currentEdgeStyle.comic&&(a+="comic="+this.currentEdgeStyle.comic+";");null!=this.currentEdgeStyle.jumpStyle&&(a+="jumpStyle="+this.currentEdgeStyle.jumpStyle+";");null!=this.currentEdgeStyle.jumpSize&&(a+="jumpSize="+this.currentEdgeStyle.jumpSize+";");"elbowEdgeStyle"==this.currentEdgeStyle.edgeStyle&& null!=this.currentEdgeStyle.elbow&&(a+="elbow="+this.currentEdgeStyle.elbow+";");return a=null!=this.currentEdgeStyle.html?a+("html="+this.currentEdgeStyle.html+";"):a+"html=1;"};Graph.prototype.getPagePadding=function(){return new mxPoint(0,0)};Graph.prototype.loadStylesheet=function(){var a=null!=this.themes?this.themes[this.defaultThemeName]:mxStyleRegistry.dynamicLoading?mxUtils.load(STYLE_PATH+"/default.xml").getDocumentElement():null;null!=a&&(new mxCodec(a.ownerDocument)).decode(a,this.getStylesheet())}; -Graph.prototype.importGraphModel=function(a,c,d,b){c=null!=c?c:0;d=null!=d?d:0;var f=[],e=new mxGraphModel;(new mxCodec(a.ownerDocument)).decode(a,e);a=e.getChildCount(e.getRoot());this.model.getChildCount(this.model.getRoot());this.model.beginUpdate();try{for(var g={},k=0;k<a;k++){var l=e.getChildAt(e.getRoot(),k);if(1!=a||this.isCellLocked(this.getDefaultParent()))l=this.importCells([l],0,0,this.model.getRoot(),null,g)[0],n=this.model.getChildren(l),this.moveCells(n,c,d),f=f.concat(n);else var n= -e.getChildren(l),f=f.concat(this.importCells(n,c,d,this.getDefaultParent(),null,g))}if(b){this.isGridEnabled()&&(c=this.snap(c),d=this.snap(d));var t=this.getBoundingBoxFromGeometry(f,!0);null!=t&&this.moveCells(f,c-t.x,d-t.y)}}finally{this.model.endUpdate()}return f};Graph.prototype.getAllConnectionConstraints=function(a,c){if(null!=a){var d=mxUtils.getValue(a.style,"points",null);if(null!=d){var b=[];try{for(var f=JSON.parse(d),d=0;d<f.length;d++){var e=f[d];b.push(new mxConnectionConstraint(new mxPoint(e[0], -e[1]),2<e.length?"0"!=e[2]:!0))}}catch(E){}return b}if(null!=a.shape)if(null!=a.shape.stencil){if(null!=a.shape.stencil)return a.shape.stencil.constraints}else if(null!=a.shape.constraints)return a.shape.constraints}return null};Graph.prototype.flipEdge=function(a){if(null!=a){var c=this.view.getState(a),c=null!=c?c.style:this.getCellStyle(a);null!=c&&(c=mxUtils.getValue(c,mxConstants.STYLE_ELBOW,mxConstants.ELBOW_HORIZONTAL)==mxConstants.ELBOW_HORIZONTAL?mxConstants.ELBOW_VERTICAL:mxConstants.ELBOW_HORIZONTAL, -this.setCellStyles(mxConstants.STYLE_ELBOW,c,[a]))}};Graph.prototype.isValidRoot=function(a){for(var c=this.model.getChildCount(a),d=0,b=0;b<c;b++){var f=this.model.getChildAt(a,b);this.model.isVertex(f)&&(f=this.getCellGeometry(f),null==f||f.relative||d++)}return 0<d||this.isContainer(a)};Graph.prototype.isValidDropTarget=function(a){var c=this.view.getState(a),c=null!=c?c.style:this.getCellStyle(a);return"1"!=mxUtils.getValue(c,"part","0")&&(this.isContainer(a)||mxGraph.prototype.isValidDropTarget.apply(this, -arguments)&&"0"!=mxUtils.getValue(c,"dropTarget","1"))};Graph.prototype.createGroupCell=function(){var a=mxGraph.prototype.createGroupCell.apply(this,arguments);a.setStyle("group");return a};Graph.prototype.isExtendParentsOnAdd=function(a){var c=mxGraph.prototype.isExtendParentsOnAdd.apply(this,arguments);if(c&&null!=a&&null!=this.layoutManager){var d=this.model.getParent(a);null!=d&&(d=this.layoutManager.getLayout(d),null!=d&&d.constructor==mxStackLayout&&(c=!1))}return c};Graph.prototype.getPreferredSizeForCell= -function(a){var c=mxGraph.prototype.getPreferredSizeForCell.apply(this,arguments);null!=c&&(c.width+=10,c.height+=4,this.gridEnabled&&(c.width=this.snap(c.width),c.height=this.snap(c.height)));return c};Graph.prototype.turnShapes=function(a){var c=this.getModel(),d=[];c.beginUpdate();try{for(var b=0;b<a.length;b++){var f=a[b];if(c.isEdge(f)){var e=c.getTerminal(f,!0),g=c.getTerminal(f,!1);c.setTerminal(f,g,!0);c.setTerminal(f,e,!1);var k=c.getGeometry(f);if(null!=k){k=k.clone();null!=k.points&&k.points.reverse(); -var l=k.getTerminalPoint(!0),n=k.getTerminalPoint(!1);k.setTerminalPoint(l,!1);k.setTerminalPoint(n,!0);c.setGeometry(f,k);var t=this.view.getState(f),r=this.view.getState(e),y=this.view.getState(g);if(null!=t){var F=null!=r?this.getConnectionConstraint(t,r,!0):null,h=null!=y?this.getConnectionConstraint(t,y,!1):null;this.setConnectionConstraint(f,e,!0,h);this.setConnectionConstraint(f,g,!1,F)}d.push(f)}}else if(c.isVertex(f)&&(k=this.getCellGeometry(f),null!=k)){k=k.clone();k.x+=k.width/2-k.height/ -2;k.y+=k.height/2-k.width/2;var v=k.width;k.width=k.height;k.height=v;c.setGeometry(f,k);var q=this.view.getState(f);if(null!=q){var w=q.style[mxConstants.STYLE_DIRECTION]||"east";"east"==w?w="south":"south"==w?w="west":"west"==w?w="north":"north"==w&&(w="east");this.setCellStyles(mxConstants.STYLE_DIRECTION,w,[f])}d.push(f)}}}finally{c.endUpdate()}return d};Graph.prototype.stencilHasPlaceholders=function(a){if(null!=a&&null!=a.fgNode)for(a=a.fgNode.firstChild;null!=a;){if("text"==a.nodeName&&"1"== -a.getAttribute("placeholders"))return!0;a=a.nextSibling}return!1};Graph.prototype.processChange=function(a){mxGraph.prototype.processChange.apply(this,arguments);if(a instanceof mxValueChange&&null!=a.cell&&null!=a.cell.value&&"object"==typeof a.cell.value){var c=this.model.getDescendants(a.cell);if(0<c.length)for(var d=0;d<c.length;d++){var b=this.view.getState(c[d]);null!=b&&null!=b.shape&&null!=b.shape.stencil&&this.stencilHasPlaceholders(b.shape.stencil)?this.removeStateForCell(c[d]):this.isReplacePlaceholders(c[d])&& -this.view.invalidate(c[d],!1,!1)}}};Graph.prototype.replaceElement=function(a,c){for(var d=a.ownerDocument.createElement(null!=c?c:"span"),b=Array.prototype.slice.call(a.attributes);attr=b.pop();)d.setAttribute(attr.nodeName,attr.nodeValue);d.innerHTML=a.innerHTML;a.parentNode.replaceChild(d,a)};Graph.prototype.updateLabelElements=function(a,c,d){a=null!=a?a:this.getSelectionCells();for(var b=document.createElement("div"),f=0;f<a.length;f++)if(this.isHtmlLabel(a[f])){var e=this.convertValueToString(a[f]); -if(null!=e&&0<e.length){b.innerHTML=e;for(var g=b.getElementsByTagName(null!=d?d:"*"),k=0;k<g.length;k++)c(g[k]);b.innerHTML!=e&&this.cellLabelChanged(a[f],b.innerHTML)}}};Graph.prototype.cellLabelChanged=function(a,c,d){c=this.zapGremlins(c);this.model.beginUpdate();try{if(null!=a.value&&"object"==typeof a.value){if(this.isReplacePlaceholders(a)&&null!=a.getAttribute("placeholder"))for(var b=a.getAttribute("placeholder"),f=a;null!=f;){if(f==this.model.getRoot()||null!=f.value&&"object"==typeof f.value&& -f.hasAttribute(b)){this.setAttributeForCell(f,b,c);break}f=this.model.getParent(f)}var e=a.value.cloneNode(!0);e.setAttribute("label",c);c=e}mxGraph.prototype.cellLabelChanged.apply(this,arguments)}finally{this.model.endUpdate()}};Graph.prototype.cellsRemoved=function(a){if(null!=a){for(var c=new mxDictionary,d=0;d<a.length;d++)c.put(a[d],!0);for(var b=[],d=0;d<a.length;d++){var f=this.model.getParent(a[d]);null==f||c.get(f)||(c.put(f,!0),b.push(f))}for(d=0;d<b.length;d++)if(f=this.view.getState(b[d]), +Graph.prototype.importGraphModel=function(a,c,b,d){c=null!=c?c:0;b=null!=b?b:0;var f=[],e=new mxGraphModel;(new mxCodec(a.ownerDocument)).decode(a,e);a=e.getChildCount(e.getRoot());this.model.getChildCount(this.model.getRoot());this.model.beginUpdate();try{for(var g={},h=0;h<a;h++){var n=e.getChildAt(e.getRoot(),h);if(1!=a||this.isCellLocked(this.getDefaultParent()))n=this.importCells([n],0,0,this.model.getRoot(),null,g)[0],m=this.model.getChildren(n),this.moveCells(m,c,b),f=f.concat(m);else var m= +e.getChildren(n),f=f.concat(this.importCells(m,c,b,this.getDefaultParent(),null,g))}if(d){this.isGridEnabled()&&(c=this.snap(c),b=this.snap(b));var t=this.getBoundingBoxFromGeometry(f,!0);null!=t&&this.moveCells(f,c-t.x,b-t.y)}}finally{this.model.endUpdate()}return f};Graph.prototype.getAllConnectionConstraints=function(a,c){if(null!=a){var b=mxUtils.getValue(a.style,"points",null);if(null!=b){var d=[];try{for(var f=JSON.parse(b),b=0;b<f.length;b++){var e=f[b];d.push(new mxConnectionConstraint(new mxPoint(e[0], +e[1]),2<e.length?"0"!=e[2]:!0))}}catch(E){}return d}if(null!=a.shape)if(null!=a.shape.stencil){if(null!=a.shape.stencil)return a.shape.stencil.constraints}else if(null!=a.shape.constraints)return a.shape.constraints}return null};Graph.prototype.flipEdge=function(a){if(null!=a){var c=this.view.getState(a),c=null!=c?c.style:this.getCellStyle(a);null!=c&&(c=mxUtils.getValue(c,mxConstants.STYLE_ELBOW,mxConstants.ELBOW_HORIZONTAL)==mxConstants.ELBOW_HORIZONTAL?mxConstants.ELBOW_VERTICAL:mxConstants.ELBOW_HORIZONTAL, +this.setCellStyles(mxConstants.STYLE_ELBOW,c,[a]))}};Graph.prototype.isValidRoot=function(a){for(var c=this.model.getChildCount(a),b=0,d=0;d<c;d++){var f=this.model.getChildAt(a,d);this.model.isVertex(f)&&(f=this.getCellGeometry(f),null==f||f.relative||b++)}return 0<b||this.isContainer(a)};Graph.prototype.isValidDropTarget=function(a){var c=this.view.getState(a),c=null!=c?c.style:this.getCellStyle(a);return"1"!=mxUtils.getValue(c,"part","0")&&(this.isContainer(a)||mxGraph.prototype.isValidDropTarget.apply(this, +arguments)&&"0"!=mxUtils.getValue(c,"dropTarget","1"))};Graph.prototype.createGroupCell=function(){var a=mxGraph.prototype.createGroupCell.apply(this,arguments);a.setStyle("group");return a};Graph.prototype.isExtendParentsOnAdd=function(a){var c=mxGraph.prototype.isExtendParentsOnAdd.apply(this,arguments);if(c&&null!=a&&null!=this.layoutManager){var b=this.model.getParent(a);null!=b&&(b=this.layoutManager.getLayout(b),null!=b&&b.constructor==mxStackLayout&&(c=!1))}return c};Graph.prototype.getPreferredSizeForCell= +function(a){var c=mxGraph.prototype.getPreferredSizeForCell.apply(this,arguments);null!=c&&(c.width+=10,c.height+=4,this.gridEnabled&&(c.width=this.snap(c.width),c.height=this.snap(c.height)));return c};Graph.prototype.turnShapes=function(a){var c=this.getModel(),b=[];c.beginUpdate();try{for(var d=0;d<a.length;d++){var f=a[d];if(c.isEdge(f)){var e=c.getTerminal(f,!0),g=c.getTerminal(f,!1);c.setTerminal(f,g,!0);c.setTerminal(f,e,!1);var h=c.getGeometry(f);if(null!=h){h=h.clone();null!=h.points&&h.points.reverse(); +var n=h.getTerminalPoint(!0),m=h.getTerminalPoint(!1);h.setTerminalPoint(n,!1);h.setTerminalPoint(m,!0);c.setGeometry(f,h);var t=this.view.getState(f),r=this.view.getState(e),y=this.view.getState(g);if(null!=t){var F=null!=r?this.getConnectionConstraint(t,r,!0):null,k=null!=y?this.getConnectionConstraint(t,y,!1):null;this.setConnectionConstraint(f,e,!0,k);this.setConnectionConstraint(f,g,!1,F)}b.push(f)}}else if(c.isVertex(f)&&(h=this.getCellGeometry(f),null!=h)){h=h.clone();h.x+=h.width/2-h.height/ +2;h.y+=h.height/2-h.width/2;var v=h.width;h.width=h.height;h.height=v;c.setGeometry(f,h);var q=this.view.getState(f);if(null!=q){var w=q.style[mxConstants.STYLE_DIRECTION]||"east";"east"==w?w="south":"south"==w?w="west":"west"==w?w="north":"north"==w&&(w="east");this.setCellStyles(mxConstants.STYLE_DIRECTION,w,[f])}b.push(f)}}}finally{c.endUpdate()}return b};Graph.prototype.stencilHasPlaceholders=function(a){if(null!=a&&null!=a.fgNode)for(a=a.fgNode.firstChild;null!=a;){if("text"==a.nodeName&&"1"== +a.getAttribute("placeholders"))return!0;a=a.nextSibling}return!1};Graph.prototype.processChange=function(a){mxGraph.prototype.processChange.apply(this,arguments);if(a instanceof mxValueChange&&null!=a.cell&&null!=a.cell.value&&"object"==typeof a.cell.value){var c=this.model.getDescendants(a.cell);if(0<c.length)for(var b=0;b<c.length;b++){var d=this.view.getState(c[b]);null!=d&&null!=d.shape&&null!=d.shape.stencil&&this.stencilHasPlaceholders(d.shape.stencil)?this.removeStateForCell(c[b]):this.isReplacePlaceholders(c[b])&& +this.view.invalidate(c[b],!1,!1)}}};Graph.prototype.replaceElement=function(a,c){for(var b=a.ownerDocument.createElement(null!=c?c:"span"),d=Array.prototype.slice.call(a.attributes);attr=d.pop();)b.setAttribute(attr.nodeName,attr.nodeValue);b.innerHTML=a.innerHTML;a.parentNode.replaceChild(b,a)};Graph.prototype.updateLabelElements=function(a,c,b){a=null!=a?a:this.getSelectionCells();for(var d=document.createElement("div"),f=0;f<a.length;f++)if(this.isHtmlLabel(a[f])){var e=this.convertValueToString(a[f]); +if(null!=e&&0<e.length){d.innerHTML=e;for(var g=d.getElementsByTagName(null!=b?b:"*"),h=0;h<g.length;h++)c(g[h]);d.innerHTML!=e&&this.cellLabelChanged(a[f],d.innerHTML)}}};Graph.prototype.cellLabelChanged=function(a,c,b){c=this.zapGremlins(c);this.model.beginUpdate();try{if(null!=a.value&&"object"==typeof a.value){if(this.isReplacePlaceholders(a)&&null!=a.getAttribute("placeholder"))for(var d=a.getAttribute("placeholder"),f=a;null!=f;){if(f==this.model.getRoot()||null!=f.value&&"object"==typeof f.value&& +f.hasAttribute(d)){this.setAttributeForCell(f,d,c);break}f=this.model.getParent(f)}var e=a.value.cloneNode(!0);e.setAttribute("label",c);c=e}mxGraph.prototype.cellLabelChanged.apply(this,arguments)}finally{this.model.endUpdate()}};Graph.prototype.cellsRemoved=function(a){if(null!=a){for(var c=new mxDictionary,b=0;b<a.length;b++)c.put(a[b],!0);for(var d=[],b=0;b<a.length;b++){var f=this.model.getParent(a[b]);null==f||c.get(f)||(c.put(f,!0),d.push(f))}for(b=0;b<d.length;b++)if(f=this.view.getState(d[b]), null!=f&&(this.model.isEdge(f.cell)||this.model.isVertex(f.cell))&&this.isCellDeletable(f.cell)){var e=mxUtils.getValue(f.style,mxConstants.STYLE_STROKECOLOR,mxConstants.NONE),g=mxUtils.getValue(f.style,mxConstants.STYLE_FILLCOLOR,mxConstants.NONE);if(e==mxConstants.NONE&&g==mxConstants.NONE){e=!0;for(g=0;g<this.model.getChildCount(f.cell)&&e;g++)c.get(this.model.getChildAt(f.cell,g))||(e=!1);e&&a.push(f.cell)}}}mxGraph.prototype.cellsRemoved.apply(this,arguments)};Graph.prototype.removeCellsAfterUngroup= -function(a){for(var c=[],d=0;d<a.length;d++)if(this.isCellDeletable(a[d])){var b=this.view.getState(a[d]);if(null!=b){var f=mxUtils.getValue(b.style,mxConstants.STYLE_STROKECOLOR,mxConstants.NONE),b=mxUtils.getValue(b.style,mxConstants.STYLE_FILLCOLOR,mxConstants.NONE);f==mxConstants.NONE&&b==mxConstants.NONE&&c.push(a[d])}}a=c;mxGraph.prototype.removeCellsAfterUngroup.apply(this,arguments)};Graph.prototype.setLinkForCell=function(a,c){this.setAttributeForCell(a,"link",c)};Graph.prototype.setTooltipForCell= -function(a,c){this.setAttributeForCell(a,"tooltip",c)};Graph.prototype.setAttributeForCell=function(a,c,d){var b;null!=a.value&&"object"==typeof a.value?b=a.value.cloneNode(!0):(b=mxUtils.createXmlDocument().createElement("UserObject"),b.setAttribute("label",a.value||""));null!=d&&0<d.length?b.setAttribute(c,d):b.removeAttribute(c);this.model.setValue(a,b)};Graph.prototype.getDropTarget=function(a,c,d,b){this.getModel();if(mxEvent.isAltDown(c))return null;for(var f=0;f<a.length;f++)if(this.model.isEdge(this.model.getParent(a[f])))return null; -return mxGraph.prototype.getDropTarget.apply(this,arguments)};Graph.prototype.click=function(a){mxGraph.prototype.click.call(this,a);this.firstClickState=a.getState();this.firstClickSource=a.getSource()};Graph.prototype.dblClick=function(a,c){if(this.isEnabled()){var d=mxUtils.convertPoint(this.container,mxEvent.getClientX(a),mxEvent.getClientY(a));if(null!=a&&!this.model.isVertex(c)){var b=this.model.isEdge(c)?this.view.getState(c):null,f=mxEvent.getSource(a);this.firstClickState!=b||this.firstClickSource!= -f||null!=b&&null!=b.text&&null!=b.text.node&&(mxUtils.contains(b.text.boundingBox,d.x,d.y)||mxUtils.isAncestorNode(b.text.node,mxEvent.getSource(a)))||(null!=b||this.isCellLocked(this.getDefaultParent()))&&(null==b||this.isCellLocked(b.cell))||!(null!=b||mxClient.IS_VML&&f==this.view.getCanvas()||mxClient.IS_SVG&&f==this.view.getCanvas().ownerSVGElement)||(c=this.addText(d.x,d.y,b))}mxGraph.prototype.dblClick.call(this,a,c)}};Graph.prototype.getInsertPoint=function(){var a=this.getGridSize(),c=this.container.scrollLeft/ -this.view.scale-this.view.translate.x,d=this.container.scrollTop/this.view.scale-this.view.translate.y;if(this.pageVisible)var b=this.getPageLayout(),f=this.getPageSize(),c=Math.max(c,b.x*f.width),d=Math.max(d,b.y*f.height);return new mxPoint(this.snap(c+a),this.snap(d+a))};Graph.prototype.getFreeInsertPoint=function(){var a=this.view,c=this.getGraphBounds(),d=this.getInsertPoint(),b=this.snap(Math.round(Math.max(d.x,c.x/a.scale-a.translate.x+(0==c.width?2*this.gridSize:0)))),a=this.snap(Math.round(Math.max(d.y, -(c.y+c.height)/a.scale-a.translate.y+2*this.gridSize)));return new mxPoint(b,a)};Graph.prototype.isMouseInsertPoint=function(){return!1};Graph.prototype.addText=function(a,c,d){var b=new mxCell;b.value="Text";b.style="text;html=1;resizable=0;points=[];";b.geometry=new mxGeometry(0,0,0,0);b.vertex=!0;if(null!=d){b.style+="align=center;verticalAlign=middle;labelBackgroundColor=#ffffff;";b.geometry.relative=!0;b.connectable=!1;var f=this.view.getRelativePoint(d,a,c);b.geometry.x=Math.round(1E4*f.x)/ -1E4;b.geometry.y=Math.round(f.y);b.geometry.offset=new mxPoint(0,0);var f=this.view.getPoint(d,b.geometry),e=this.view.scale;b.geometry.offset=new mxPoint(Math.round((a-f.x)/e),Math.round((c-f.y)/e))}else b.style+="autosize=1;align=left;verticalAlign=top;spacingTop=-4;",f=this.view.translate,b.geometry.width=40,b.geometry.height=20,b.geometry.x=Math.round(a/this.view.scale)-f.x,b.geometry.y=Math.round(c/this.view.scale)-f.y;this.getModel().beginUpdate();try{this.addCells([b],null!=d?d.cell:null), -this.fireEvent(new mxEventObject("textInserted","cells",[b])),this.autoSizeCell(b)}finally{this.getModel().endUpdate()}return b};Graph.prototype.getAbsoluteUrl=function(a){null!=a&&this.isRelativeUrl(a)&&(a="#"==a.charAt(0)?this.baseUrl+a:"/"==a.charAt(0)?this.domainUrl+a:this.domainPathUrl+a);return a};Graph.prototype.addClickHandler=function(a,c,d){var b=mxUtils.bind(this,function(){var a=this.container.getElementsByTagName("a");if(null!=a)for(var d=0;d<a.length;d++){var b=this.getAbsoluteUrl(a[d].getAttribute("href")); -null!=b&&(a[d].setAttribute("rel",this.linkRelation),a[d].setAttribute("href",b),null!=c&&mxEvent.addGestureListeners(a[d],null,null,c))}});this.model.addListener(mxEvent.CHANGE,b);b();var f=this.container.style.cursor,e=this.getTolerance(),g=this,k={currentState:null,currentLink:null,highlight:null!=a&&""!=a&&a!=mxConstants.NONE?new mxCellHighlight(g,a,4):null,startX:0,startY:0,scrollLeft:0,scrollTop:0,updateCurrentState:function(a){var c=a.sourceState;if(null==c||null==g.getLinkForCell(c.cell))a= -g.getCellAt(a.getGraphX(),a.getGraphY(),null,null,null,function(a,c,d){return null==g.getLinkForCell(a.cell)}),c=g.view.getState(a);c!=this.currentState&&(null!=this.currentState&&this.clear(),this.currentState=c,null!=this.currentState&&this.activate(this.currentState))},mouseDown:function(a,c){this.startX=c.getGraphX();this.startY=c.getGraphY();this.scrollLeft=g.container.scrollLeft;this.scrollTop=g.container.scrollTop;null==this.currentLink&&"auto"==g.container.style.overflow&&(g.container.style.cursor= -"move");this.updateCurrentState(c)},mouseMove:function(a,c){if(g.isMouseDown){if(null!=this.currentLink){var d=Math.abs(this.startX-c.getGraphX()),b=Math.abs(this.startY-c.getGraphY());(d>e||b>e)&&this.clear()}}else{for(d=c.getSource();null!=d&&"a"!=d.nodeName.toLowerCase();)d=d.parentNode;null!=d?this.clear():(null!=g.tooltipHandler&&null!=this.currentLink&&null!=this.currentState&&g.tooltipHandler.reset(c,!0,this.currentState),(null==this.currentState||c.getState()!=this.currentState&&null!=c.sourceState|| -!g.intersects(this.currentState,c.getGraphX(),c.getGraphY()))&&this.updateCurrentState(c))}},mouseUp:function(a,b){for(var f=b.getSource(),k=b.getEvent();null!=f&&"a"!=f.nodeName.toLowerCase();)f=f.parentNode;null==f&&Math.abs(this.scrollLeft-g.container.scrollLeft)<e&&Math.abs(this.scrollTop-g.container.scrollTop)<e&&(null==b.sourceState||!b.isSource(b.sourceState.control))&&((mxEvent.isLeftMouseButton(k)||mxEvent.isMiddleMouseButton(k))&&!mxEvent.isPopupTrigger(k)||mxEvent.isTouchEvent(k))&&(null!= -this.currentLink?(f=g.isBlankLink(this.currentLink),"data:"!==this.currentLink.substring(0,5)&&f||null==c||c(k,this.currentLink),mxEvent.isConsumed(k)||(k=mxEvent.isMiddleMouseButton(k)?"_blank":f?g.linkTarget:"_top",g.openLink(this.currentLink,k),b.consume())):null!=d&&!b.isConsumed()&&Math.abs(this.scrollLeft-g.container.scrollLeft)<e&&Math.abs(this.scrollTop-g.container.scrollTop)<e&&Math.abs(this.startX-b.getGraphX())<e&&Math.abs(this.startY-b.getGraphY())<e&&d(b.getEvent()));this.clear()},activate:function(a){this.currentLink= -g.getAbsoluteUrl(g.getLinkForCell(a.cell));null!=this.currentLink&&(g.container.style.cursor="pointer",null!=this.highlight&&this.highlight.highlight(a))},clear:function(){null!=g.container&&(g.container.style.cursor=f);this.currentLink=this.currentState=null;null!=this.highlight&&this.highlight.hide();null!=g.tooltipHandler&&g.tooltipHandler.hide()}};g.click=function(a){};g.addMouseListener(k);mxEvent.addListener(document,"mouseleave",function(a){k.clear()})};Graph.prototype.duplicateCells=function(a, -c){a=null!=a?a:this.getSelectionCells();c=null!=c?c:!0;a=this.model.getTopmostCells(a);var d=this.getModel(),b=this.gridSize,f=[];d.beginUpdate();try{for(var e=this.cloneCells(a,!1),g=0;g<a.length;g++){var k=d.getParent(a[g]),l=this.moveCells([e[g]],b,b,!1)[0];f.push(l);if(c)d.add(k,e[g]);else{var n=k.getIndex(a[g]);d.add(k,e[g],n+1)}}}finally{d.endUpdate()}return f};Graph.prototype.insertImage=function(a,c,d){if(null!=a){for(var b=this.cellEditor.textarea.getElementsByTagName("img"),f=[],e=0;e<b.length;e++)f.push(b[e]); -document.execCommand("insertimage",!1,a);a=this.cellEditor.textarea.getElementsByTagName("img");if(a.length==f.length+1)for(e=a.length-1;0<=e;e--)if(0==e||a[e]!=f[e-1]){a[e].setAttribute("width",c);a[e].setAttribute("height",d);break}}};Graph.prototype.insertLink=function(a){if(0==a.length)document.execCommand("unlink",!1);else if(mxClient.IS_FF){for(var c=this.cellEditor.textarea.getElementsByTagName("a"),d=[],b=0;b<c.length;b++)d.push(c[b]);document.execCommand("createlink",!1,mxUtils.trim(a)); -c=this.cellEditor.textarea.getElementsByTagName("a");if(c.length==d.length+1)for(b=c.length-1;0<=b;b--)if(c[b]!=d[b-1]){for(c=c[b].getElementsByTagName("a");0<c.length;){for(d=c[0].parentNode;null!=c[0].firstChild;)d.insertBefore(c[0].firstChild,c[0]);d.removeChild(c[0])}break}}else document.execCommand("createlink",!1,mxUtils.trim(a))};Graph.prototype.isCellResizable=function(a){var c=mxGraph.prototype.isCellResizable.apply(this,arguments),d=this.view.getState(a),d=null!=d?d.style:this.getCellStyle(a); -return c||"0"!=mxUtils.getValue(d,mxConstants.STYLE_RESIZABLE,"1")&&"wrap"==d[mxConstants.STYLE_WHITE_SPACE]};Graph.prototype.distributeCells=function(a,c){null==c&&(c=this.getSelectionCells());if(null!=c&&1<c.length){for(var d=[],b=null,f=null,e=0;e<c.length;e++)if(this.getModel().isVertex(c[e])){var g=this.view.getState(c[e]);if(null!=g){var k=a?g.getCenterX():g.getCenterY(),b=null!=b?Math.max(b,k):k,f=null!=f?Math.min(f,k):k;d.push(g)}}if(2<d.length){d.sort(function(c,d){return a?c.x-d.x:c.y-d.y}); -g=this.view.translate;k=this.view.scale;f=f/k-(a?g.x:g.y);b=b/k-(a?g.x:g.y);this.getModel().beginUpdate();try{for(var l=(b-f)/(d.length-1),b=f,e=1;e<d.length-1;e++){var n=this.view.getState(this.model.getParent(d[e].cell)),t=this.getCellGeometry(d[e].cell),b=b+l;null!=t&&null!=n&&(t=t.clone(),a?t.x=Math.round(b-t.width/2)-n.origin.x:t.y=Math.round(b-t.height/2)-n.origin.y,this.getModel().setGeometry(d[e].cell,t))}}finally{this.getModel().endUpdate()}}}return c};Graph.prototype.isCloneEvent=function(a){return mxClient.IS_MAC&& -mxEvent.isMetaDown(a)||mxEvent.isControlDown(a)};Graph.prototype.encodeCells=function(a){for(var c=this.cloneCells(a),d=new mxDictionary,b=0;b<a.length;b++)d.put(a[b],!0);for(b=0;b<c.length;b++){var f=this.view.getState(a[b]);if(null!=f){var e=this.getCellGeometry(c[b]);null==e||!e.relative||this.model.isEdge(a[b])||d.get(this.model.getParent(a[b]))||(e.relative=!1,e.x=f.x/f.view.scale-f.view.translate.x,e.y=f.y/f.view.scale-f.view.translate.y)}}d=new mxCodec;f=new mxGraphModel;e=f.getChildAt(f.getRoot(), -0);for(b=0;b<a.length;b++)f.add(e,c[b]);return d.encode(f)};Graph.prototype.createSvgImageExport=function(){var a=new mxImageExport;a.getLinkForCellState=mxUtils.bind(this,function(a,c){return this.getLinkForCell(a.cell)});return a};Graph.prototype.getSvg=function(a,c,d,b,f,e,g,k,l){var n=this.useCssTransforms;n&&(this.useCssTransforms=!1,this.view.revalidate(),this.sizeDidChange());try{c=null!=c?c:1;d=null!=d?d:0;f=null!=f?f:!0;e=null!=e?e:!0;g=null!=g?g:!0;var t=e||b?this.getGraphBounds():this.getBoundingBox(this.getSelectionCells()); -if(null==t)throw Error(mxResources.get("drawingEmpty"));var r=this.view.scale,y=mxUtils.createXmlDocument(),h=null!=y.createElementNS?y.createElementNS(mxConstants.NS_SVG,"svg"):y.createElement("svg");null!=a&&(null!=h.style?h.style.backgroundColor=a:h.setAttribute("style","background-color:"+a));null==y.createElementNS?(h.setAttribute("xmlns",mxConstants.NS_SVG),h.setAttribute("xmlns:xlink",mxConstants.NS_XLINK)):h.setAttributeNS("http://www.w3.org/2000/xmlns/","xmlns:xlink",mxConstants.NS_XLINK); -a=c/r;var v=Math.max(1,Math.ceil(t.width*a)+2*d),w=Math.max(1,Math.ceil(t.height*a)+2*d);h.setAttribute("version","1.1");h.setAttribute("width",v+"px");h.setAttribute("height",w+"px");h.setAttribute("viewBox",(f?"-0.5 -0.5":"0 0")+" "+v+" "+w);y.appendChild(h);var q=this.createSvgCanvas(h);q.foOffset=f?-.5:0;q.textOffset=f?-.5:0;q.imageOffset=f?-.5:0;q.translate(Math.floor((d/c-t.x)/r),Math.floor((d/c-t.y)/r));var x=document.createElement("textarea"),z=q.createAlternateContent;q.createAlternateContent= -function(a,c,d,b,f,e,g,k,l,n,t,r,y){var h=this.state;if(null!=this.foAltText&&(0==b||0!=h.fontSize&&e.length<5*b/h.fontSize)){var v=this.createElement("text");v.setAttribute("x",Math.round(b/2));v.setAttribute("y",Math.round((f+h.fontSize)/2));v.setAttribute("fill",h.fontColor||"black");v.setAttribute("text-anchor","middle");v.setAttribute("font-size",Math.round(h.fontSize)+"px");v.setAttribute("font-family",h.fontFamily);(h.fontStyle&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD&&v.setAttribute("font-weight", -"bold");(h.fontStyle&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC&&v.setAttribute("font-style","italic");(h.fontStyle&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE&&v.setAttribute("text-decoration","underline");try{return x.innerHTML=e,v.textContent=x.value,v}catch(Ca){return z.apply(this,arguments)}}else return z.apply(this,arguments)};var m=this.backgroundImage;if(null!=m){c=r/c;var F=this.view.translate,p=new mxRectangle(F.x*c,F.y*c,m.width*c,m.height*c);mxUtils.intersects(t,p)&& -q.image(F.x,F.y,m.width,m.height,m.src,!0)}q.scale(a);q.textEnabled=g;k=null!=k?k:this.createSvgImageExport();var B=k.drawCellState;k.drawCellState=function(a,c){for(var d=a.view.graph,b=d.isCellSelected(a.cell),f=d.model.getParent(a.cell);!e&&!b&&null!=f;)b=d.isCellSelected(f),f=d.model.getParent(f);(e||b)&&B.apply(this,arguments)};k.drawState(this.getView().getState(this.model.root),q);null!=l&&this.updateLinkTargets(h,l);return h}finally{n&&(this.useCssTransforms=!0,this.view.revalidate(),this.sizeDidChange())}}; -Graph.prototype.updateLinkTargets=function(a,c){for(var d=a.getElementsByTagName("a"),b=0;b<d.length;b++){var f=d[b].getAttribute("href");null==f&&(f=d[b].getAttribute("xlink:href"));null!=f&&/^https?:\/\//.test(f)&&d[b].setAttribute("target",c)}};Graph.prototype.createSvgCanvas=function(a){return new mxSvgCanvas2D(a)};Graph.prototype.getSelectedElement=function(){var a=null;if(window.getSelection){var c=window.getSelection();c.getRangeAt&&c.rangeCount&&(a=c.getRangeAt(0).commonAncestorContainer)}else document.selection&& -(a=document.selection.createRange().parentElement());return a};Graph.prototype.getParentByName=function(a,c,d){for(;null!=a&&a.nodeName!=c;){if(a==d)return null;a=a.parentNode}return a};Graph.prototype.selectNode=function(a){var c=null;if(window.getSelection){if(c=window.getSelection(),c.getRangeAt&&c.rangeCount){var d=document.createRange();d.selectNode(a);c.removeAllRanges();c.addRange(d)}}else(c=document.selection)&&"Control"!=c.type&&(a=c.createRange(),a.collapse(!0),d=c.createRange(),d.setEndPoint("StartToStart", -a),d.select())};Graph.prototype.insertRow=function(a,c){for(var d=a.tBodies[0],b=d.rows[0].cells,f=0,e=0;e<b.length;e++)var g=b[e].getAttribute("colspan"),f=f+(null!=g?parseInt(g):1);d=d.insertRow(c);for(e=0;e<f;e++)mxUtils.br(d.insertCell(-1));return d.cells[0]};Graph.prototype.deleteRow=function(a,c){a.tBodies[0].deleteRow(c)};Graph.prototype.insertColumn=function(a,c){var d=a.tHead;if(null!=d)for(var b=0;b<d.rows.length;b++){var f=document.createElement("th");d.rows[b].appendChild(f);mxUtils.br(f)}d= -a.tBodies[0];for(b=0;b<d.rows.length;b++)f=d.rows[b].insertCell(c),mxUtils.br(f);return d.rows[0].cells[0<=c?c:d.rows[0].cells.length-1]};Graph.prototype.deleteColumn=function(a,c){if(0<=c)for(var d=a.tBodies[0].rows,b=0;b<d.length;b++)d[b].cells.length>c&&d[b].deleteCell(c)};Graph.prototype.pasteHtmlAtCaret=function(a){var c;if(window.getSelection){if(c=window.getSelection(),c.getRangeAt&&c.rangeCount){c=c.getRangeAt(0);c.deleteContents();var d=document.createElement("div");d.innerHTML=a;a=document.createDocumentFragment(); -for(var b;b=d.firstChild;)lastNode=a.appendChild(b);c.insertNode(a)}}else(c=document.selection)&&"Control"!=c.type&&c.createRange().pasteHTML(a)};Graph.prototype.createLinkForHint=function(a,c){function d(a,c){a.length>c&&(a=a.substring(0,Math.round(c/2))+"..."+a.substring(a.length-Math.round(c/4)));return a}a=null!=a?a:"javascript:void(0);";if(null==c||0==c.length)c=this.isCustomLink(a)?this.getLinkTitle(a):a;var b=document.createElement("a");b.setAttribute("rel",this.linkRelation);b.setAttribute("href", -this.getAbsoluteUrl(a));b.setAttribute("title",d(this.isCustomLink(a)?this.getLinkTitle(a):a,80));null!=this.linkTarget&&b.setAttribute("target",this.linkTarget);mxUtils.write(b,d(c,40));this.isCustomLink(a)&&mxEvent.addListener(b,"click",mxUtils.bind(this,function(c){this.customLinkClicked(a);mxEvent.consume(c)}));return b};Graph.prototype.initTouch=function(){this.connectionHandler.marker.isEnabled=function(){return null!=this.graph.connectionHandler.first};this.addListener(mxEvent.START_EDITING, -function(a,c){this.popupMenuHandler.hideMenu()});var a=this.updateMouseEvent;this.updateMouseEvent=function(c){c=a.apply(this,arguments);if(mxEvent.isTouchEvent(c.getEvent())&&null==c.getState()){var d=this.getCellAt(c.graphX,c.graphY);null!=d&&this.isSwimlane(d)&&this.hitsSwimlaneContent(d,c.graphX,c.graphY)||(c.state=this.view.getState(d),null!=c.state&&null!=c.state.shape&&(this.container.style.cursor=c.state.shape.node.style.cursor))}null==c.getState()&&this.isEnabled()&&(this.container.style.cursor= -"default");return c};var c=!1,d=!1,b=!1,f=this.fireMouseEvent;this.fireMouseEvent=function(a,e,g){a==mxEvent.MOUSE_DOWN&&(e=this.updateMouseEvent(e),c=this.isCellSelected(e.getCell()),d=this.isSelectionEmpty(),b=this.popupMenuHandler.isMenuShowing());f.apply(this,arguments)};this.popupMenuHandler.mouseUp=mxUtils.bind(this,function(a,f){this.popupMenuHandler.popupTrigger=!this.isEditing()&&this.isEnabled()&&(null==f.getState()||!f.isSource(f.getState().control))&&(this.popupMenuHandler.popupTrigger|| -!b&&!mxEvent.isMouseEvent(f.getEvent())&&(d&&null==f.getCell()&&this.isSelectionEmpty()||c&&this.isCellSelected(f.getCell())));mxPopupMenuHandler.prototype.mouseUp.apply(this.popupMenuHandler,arguments)})};mxCellEditor.prototype.isContentEditing=function(){var a=this.graph.view.getState(this.editingCell);return null!=a&&1==a.style.html};mxCellEditor.prototype.saveSelection=function(){if(window.getSelection){var a=window.getSelection();if(a.getRangeAt&&a.rangeCount){for(var c=[],d=0,b=a.rangeCount;d< -b;++d)c.push(a.getRangeAt(d));return c}}else if(document.selection&&document.selection.createRange)return document.selection.createRange();return null};mxCellEditor.prototype.restoreSelection=function(a){try{if(a)if(window.getSelection){sel=window.getSelection();sel.removeAllRanges();for(var c=0,d=a.length;c<d;++c)sel.addRange(a[c])}else document.selection&&a.select&&a.select()}catch(Y){}};var h=mxCellRenderer.prototype.initializeLabel;mxCellRenderer.prototype.initializeLabel=function(a){null!=a.text&& -(a.text.replaceLinefeeds="0"!=mxUtils.getValue(a.style,"nl2Br","1"));h.apply(this,arguments)};var m=mxConstraintHandler.prototype.update;mxConstraintHandler.prototype.update=function(a,c){this.isKeepFocusEvent(a)||!mxEvent.isAltDown(a.getEvent())?m.apply(this,arguments):this.reset()};mxGuide.prototype.createGuideShape=function(a){return new mxPolyline([],mxConstants.GUIDE_COLOR,mxConstants.GUIDE_STROKEWIDTH)};mxCellEditor.prototype.escapeCancelsEditing=!1;var p=mxCellEditor.prototype.startEditing; -mxCellEditor.prototype.startEditing=function(a,c){p.apply(this,arguments);var d=this.graph.view.getState(a);this.textarea.className=null!=d&&1==d.style.html?"mxCellEditor geContentEditable":"mxCellEditor mxPlainTextEditor";this.codeViewMode=!1;this.switchSelectionState=null;this.graph.setSelectionCell(a);var d=this.graph.getModel().getParent(a),b=this.graph.getCellGeometry(a);this.graph.getModel().isEdge(d)&&null!=b&&b.relative||this.graph.getModel().isEdge(a)?mxClient.IS_QUIRKS?this.textarea.style.border= -"gray dotted 1px":this.textarea.style.outline=mxClient.IS_IE||mxClient.IS_IE11||mxClient.IS_FF&&mxClient.IS_WIN?"gray dotted 1px":"":mxClient.IS_QUIRKS&&(this.textarea.style.outline="none",this.textarea.style.border="")};var q=mxCellEditor.prototype.installListeners;mxCellEditor.prototype.installListeners=function(a){function c(a,d){d.originalNode=a;a=a.firstChild;for(var b=d.firstChild;null!=a&&null!=b;)c(a,b),a=a.nextSibling,b=b.nextSibling;return d}function d(a,c){if(null!=a)if(c.originalNode!= -a)b(a);else for(a=a.firstChild,c=c.firstChild;null!=a;){var f=a.nextSibling;null==c?b(a):(d(a,c),c=c.nextSibling);a=f}}function b(a){for(var c=a.firstChild;null!=c;){var d=c.nextSibling;b(c);c=d}1==a.nodeType&&("BR"===a.nodeName||null!=a.firstChild)||3==a.nodeType&&0!=mxUtils.trim(mxUtils.getTextContent(a)).length?(3==a.nodeType&&mxUtils.setTextContent(a,mxUtils.getTextContent(a).replace(/\n|\r/g,"")),1==a.nodeType&&(a.removeAttribute("style"),a.removeAttribute("class"),a.removeAttribute("width"), -a.removeAttribute("cellpadding"),a.removeAttribute("cellspacing"),a.removeAttribute("border"))):a.parentNode.removeChild(a)}q.apply(this,arguments);mxClient.IS_QUIRKS||7===document.documentMode||8===document.documentMode||mxEvent.addListener(this.textarea,"paste",mxUtils.bind(this,function(a){var b=c(this.textarea,this.textarea.cloneNode(!0));window.setTimeout(mxUtils.bind(this,function(){d(this.textarea,b)}),0)}))};mxCellEditor.prototype.toggleViewMode=function(){var a=this.graph.view.getState(this.editingCell), -c=null!=a&&"0"!=mxUtils.getValue(a.style,"nl2Br","1"),d=this.saveSelection();if(this.codeViewMode){k=mxUtils.extractTextWithWhitespace(this.textarea.childNodes);0<k.length&&"\n"==k.charAt(k.length-1)&&(k=k.substring(0,k.length-1));k=this.graph.sanitizeHtml(c?k.replace(/\n/g,"<br/>"):k,!0);this.textarea.className="mxCellEditor geContentEditable";var b=mxUtils.getValue(a.style,mxConstants.STYLE_FONTSIZE,mxConstants.DEFAULT_FONTSIZE),c=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(b*mxConstants.LINE_HEIGHT)+ -"px":mxConstants.LINE_HEIGHT;this.textarea.style.fontSize=Math.round(b)+"px";this.textarea.style.textDecoration=a?"underline":"";this.textarea.style.fontWeight=e?"bold":"normal";this.textarea.style.fontStyle=g?"italic":"";this.textarea.style.fontFamily=c;this.textarea.style.textAlign=f;this.textarea.style.padding="0px";this.textarea.innerHTML!=k&&(this.textarea.innerHTML=k,0==this.textarea.innerHTML.length&&(this.textarea.innerHTML=this.getEmptyLabelText(),this.clearOnChange=0<this.textarea.innerHTML.length)); -this.codeViewMode=!1}else{this.clearOnChange&&this.textarea.innerHTML==this.getEmptyLabelText()&&(this.clearOnChange=!1,this.textarea.innerHTML="");var k=mxUtils.htmlEntities(this.textarea.innerHTML);mxClient.IS_QUIRKS||8==document.documentMode||(k=mxUtils.replaceTrailingNewlines(k,"<div><br></div>"));k=this.graph.sanitizeHtml(c?k.replace(/\n/g,"").replace(/<br\s*.?>/g,"<br>"):k,!0);this.textarea.className="mxCellEditor mxPlainTextEditor";var b=mxConstants.DEFAULT_FONTSIZE;this.textarea.style.lineHeight= -mxConstants.ABSOLUTE_LINE_HEIGHT?Math.round(b*mxConstants.LINE_HEIGHT)+"px":mxConstants.LINE_HEIGHT;this.textarea.style.fontSize=Math.round(b)+"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!=k&&(this.textarea.innerHTML=k);this.codeViewMode=!0}this.textarea.focus();null!=this.switchSelectionState&& -this.restoreSelection(this.switchSelectionState);this.switchSelectionState=d;this.resize()};var u=mxCellEditor.prototype.resize;mxCellEditor.prototype.resize=function(a,c){if(null!=this.textarea)if(a=this.graph.getView().getState(this.editingCell),this.codeViewMode&&null!=a){var d=a.view.scale;this.bounds=mxRectangle.fromRectangle(a);if(0==this.bounds.width&&0==this.bounds.height){this.bounds.width=160*d;this.bounds.height=60*d;var b=null!=a.text?a.text.margin:null;null==b&&(b=mxUtils.getAlignmentAsPoint(mxUtils.getValue(a.style, -mxConstants.STYLE_ALIGN,mxConstants.ALIGN_CENTER),mxUtils.getValue(a.style,mxConstants.STYLE_VERTICAL_ALIGN,mxConstants.ALIGN_MIDDLE)));this.bounds.x+=b.x*this.bounds.width;this.bounds.y+=b.y*this.bounds.height}this.textarea.style.width=Math.round((this.bounds.width-4)/d)+"px";this.textarea.style.height=Math.round((this.bounds.height-4)/d)+"px";this.textarea.style.overflow="auto";this.textarea.clientHeight<this.textarea.offsetHeight&&(this.textarea.style.height=Math.round(this.bounds.height/d)+(this.textarea.offsetHeight- -this.textarea.clientHeight)+"px",this.bounds.height=parseInt(this.textarea.style.height)*d);this.textarea.clientWidth<this.textarea.offsetWidth&&(this.textarea.style.width=Math.round(this.bounds.width/d)+(this.textarea.offsetWidth-this.textarea.clientWidth)+"px",this.bounds.width=parseInt(this.textarea.style.width)*d);this.textarea.style.left=Math.round(this.bounds.x)+"px";this.textarea.style.top=Math.round(this.bounds.y)+"px";mxClient.IS_VML?this.textarea.style.zoom=d:mxUtils.setPrefixedStyle(this.textarea.style, -"transform","scale("+d+","+d+")")}else this.textarea.style.height="",this.textarea.style.overflow="",u.apply(this,arguments)};mxCellEditorGetInitialValue=mxCellEditor.prototype.getInitialValue;mxCellEditor.prototype.getInitialValue=function(a,c){if("0"==mxUtils.getValue(a.style,"html","0"))return mxCellEditorGetInitialValue.apply(this,arguments);var d=this.graph.getEditingValue(a.cell,c);"1"==mxUtils.getValue(a.style,"nl2Br","1")&&(d=d.replace(/\n/g,"<br/>"));return d=this.graph.sanitizeHtml(d,!0)}; +function(a){for(var c=[],b=0;b<a.length;b++)if(this.isCellDeletable(a[b])){var d=this.view.getState(a[b]);if(null!=d){var f=mxUtils.getValue(d.style,mxConstants.STYLE_STROKECOLOR,mxConstants.NONE),d=mxUtils.getValue(d.style,mxConstants.STYLE_FILLCOLOR,mxConstants.NONE);f==mxConstants.NONE&&d==mxConstants.NONE&&c.push(a[b])}}a=c;mxGraph.prototype.removeCellsAfterUngroup.apply(this,arguments)};Graph.prototype.setLinkForCell=function(a,c){this.setAttributeForCell(a,"link",c)};Graph.prototype.setTooltipForCell= +function(a,c){this.setAttributeForCell(a,"tooltip",c)};Graph.prototype.setAttributeForCell=function(a,c,b){var d;null!=a.value&&"object"==typeof a.value?d=a.value.cloneNode(!0):(d=mxUtils.createXmlDocument().createElement("UserObject"),d.setAttribute("label",a.value||""));null!=b&&0<b.length?d.setAttribute(c,b):d.removeAttribute(c);this.model.setValue(a,d)};Graph.prototype.getDropTarget=function(a,c,b,d){this.getModel();if(mxEvent.isAltDown(c))return null;for(var f=0;f<a.length;f++)if(this.model.isEdge(this.model.getParent(a[f])))return null; +return mxGraph.prototype.getDropTarget.apply(this,arguments)};Graph.prototype.click=function(a){mxGraph.prototype.click.call(this,a);this.firstClickState=a.getState();this.firstClickSource=a.getSource()};Graph.prototype.dblClick=function(a,c){if(this.isEnabled()){var b=mxUtils.convertPoint(this.container,mxEvent.getClientX(a),mxEvent.getClientY(a));if(null!=a&&!this.model.isVertex(c)){var d=this.model.isEdge(c)?this.view.getState(c):null,f=mxEvent.getSource(a);this.firstClickState!=d||this.firstClickSource!= +f||null!=d&&null!=d.text&&null!=d.text.node&&(mxUtils.contains(d.text.boundingBox,b.x,b.y)||mxUtils.isAncestorNode(d.text.node,mxEvent.getSource(a)))||(null!=d||this.isCellLocked(this.getDefaultParent()))&&(null==d||this.isCellLocked(d.cell))||!(null!=d||mxClient.IS_VML&&f==this.view.getCanvas()||mxClient.IS_SVG&&f==this.view.getCanvas().ownerSVGElement)||(c=this.addText(b.x,b.y,d))}mxGraph.prototype.dblClick.call(this,a,c)}};Graph.prototype.getInsertPoint=function(){var a=this.getGridSize(),c=this.container.scrollLeft/ +this.view.scale-this.view.translate.x,b=this.container.scrollTop/this.view.scale-this.view.translate.y;if(this.pageVisible)var d=this.getPageLayout(),f=this.getPageSize(),c=Math.max(c,d.x*f.width),b=Math.max(b,d.y*f.height);return new mxPoint(this.snap(c+a),this.snap(b+a))};Graph.prototype.getFreeInsertPoint=function(){var a=this.view,c=this.getGraphBounds(),b=this.getInsertPoint(),d=this.snap(Math.round(Math.max(b.x,c.x/a.scale-a.translate.x+(0==c.width?2*this.gridSize:0)))),a=this.snap(Math.round(Math.max(b.y, +(c.y+c.height)/a.scale-a.translate.y+2*this.gridSize)));return new mxPoint(d,a)};Graph.prototype.isMouseInsertPoint=function(){return!1};Graph.prototype.addText=function(a,c,b){var d=new mxCell;d.value="Text";d.style="text;html=1;resizable=0;points=[];";d.geometry=new mxGeometry(0,0,0,0);d.vertex=!0;if(null!=b){d.style+="align=center;verticalAlign=middle;labelBackgroundColor=#ffffff;";d.geometry.relative=!0;d.connectable=!1;var f=this.view.getRelativePoint(b,a,c);d.geometry.x=Math.round(1E4*f.x)/ +1E4;d.geometry.y=Math.round(f.y);d.geometry.offset=new mxPoint(0,0);var f=this.view.getPoint(b,d.geometry),e=this.view.scale;d.geometry.offset=new mxPoint(Math.round((a-f.x)/e),Math.round((c-f.y)/e))}else d.style+="autosize=1;align=left;verticalAlign=top;spacingTop=-4;",f=this.view.translate,d.geometry.width=40,d.geometry.height=20,d.geometry.x=Math.round(a/this.view.scale)-f.x,d.geometry.y=Math.round(c/this.view.scale)-f.y;this.getModel().beginUpdate();try{this.addCells([d],null!=b?b.cell:null), +this.fireEvent(new mxEventObject("textInserted","cells",[d])),this.autoSizeCell(d)}finally{this.getModel().endUpdate()}return d};Graph.prototype.getAbsoluteUrl=function(a){null!=a&&this.isRelativeUrl(a)&&(a="#"==a.charAt(0)?this.baseUrl+a:"/"==a.charAt(0)?this.domainUrl+a:this.domainPathUrl+a);return a};Graph.prototype.addClickHandler=function(a,c,b){var d=mxUtils.bind(this,function(){var a=this.container.getElementsByTagName("a");if(null!=a)for(var b=0;b<a.length;b++){var d=this.getAbsoluteUrl(a[b].getAttribute("href")); +null!=d&&(a[b].setAttribute("rel",this.linkRelation),a[b].setAttribute("href",d),null!=c&&mxEvent.addGestureListeners(a[b],null,null,c))}});this.model.addListener(mxEvent.CHANGE,d);d();var f=this.container.style.cursor,e=this.getTolerance(),g=this,h={currentState:null,currentLink:null,highlight:null!=a&&""!=a&&a!=mxConstants.NONE?new mxCellHighlight(g,a,4):null,startX:0,startY:0,scrollLeft:0,scrollTop:0,updateCurrentState:function(a){var c=a.sourceState;if(null==c||null==g.getLinkForCell(c.cell))a= +g.getCellAt(a.getGraphX(),a.getGraphY(),null,null,null,function(a,c,b){return null==g.getLinkForCell(a.cell)}),c=g.view.getState(a);c!=this.currentState&&(null!=this.currentState&&this.clear(),this.currentState=c,null!=this.currentState&&this.activate(this.currentState))},mouseDown:function(a,c){this.startX=c.getGraphX();this.startY=c.getGraphY();this.scrollLeft=g.container.scrollLeft;this.scrollTop=g.container.scrollTop;null==this.currentLink&&"auto"==g.container.style.overflow&&(g.container.style.cursor= +"move");this.updateCurrentState(c)},mouseMove:function(a,c){if(g.isMouseDown){if(null!=this.currentLink){var b=Math.abs(this.startX-c.getGraphX()),d=Math.abs(this.startY-c.getGraphY());(b>e||d>e)&&this.clear()}}else{for(b=c.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(c,!0,this.currentState),(null==this.currentState||c.getState()!=this.currentState&&null!=c.sourceState|| +!g.intersects(this.currentState,c.getGraphX(),c.getGraphY()))&&this.updateCurrentState(c))}},mouseUp:function(a,d){for(var f=d.getSource(),h=d.getEvent();null!=f&&"a"!=f.nodeName.toLowerCase();)f=f.parentNode;null==f&&Math.abs(this.scrollLeft-g.container.scrollLeft)<e&&Math.abs(this.scrollTop-g.container.scrollTop)<e&&(null==d.sourceState||!d.isSource(d.sourceState.control))&&((mxEvent.isLeftMouseButton(h)||mxEvent.isMiddleMouseButton(h))&&!mxEvent.isPopupTrigger(h)||mxEvent.isTouchEvent(h))&&(null!= +this.currentLink?(f=g.isBlankLink(this.currentLink),"data:"!==this.currentLink.substring(0,5)&&f||null==c||c(h,this.currentLink),mxEvent.isConsumed(h)||(h=mxEvent.isMiddleMouseButton(h)?"_blank":f?g.linkTarget:"_top",g.openLink(this.currentLink,h),d.consume())):null!=b&&!d.isConsumed()&&Math.abs(this.scrollLeft-g.container.scrollLeft)<e&&Math.abs(this.scrollTop-g.container.scrollTop)<e&&Math.abs(this.startX-d.getGraphX())<e&&Math.abs(this.startY-d.getGraphY())<e&&b(d.getEvent()));this.clear()},activate:function(a){this.currentLink= +g.getAbsoluteUrl(g.getLinkForCell(a.cell));null!=this.currentLink&&(g.container.style.cursor="pointer",null!=this.highlight&&this.highlight.highlight(a))},clear:function(){null!=g.container&&(g.container.style.cursor=f);this.currentLink=this.currentState=null;null!=this.highlight&&this.highlight.hide();null!=g.tooltipHandler&&g.tooltipHandler.hide()}};g.click=function(a){};g.addMouseListener(h);mxEvent.addListener(document,"mouseleave",function(a){h.clear()})};Graph.prototype.duplicateCells=function(a, +c){a=null!=a?a:this.getSelectionCells();c=null!=c?c:!0;a=this.model.getTopmostCells(a);var b=this.getModel(),d=this.gridSize,f=[];b.beginUpdate();try{for(var e=this.cloneCells(a,!1),g=0;g<a.length;g++){var h=b.getParent(a[g]),n=this.moveCells([e[g]],d,d,!1)[0];f.push(n);if(c)b.add(h,e[g]);else{var m=h.getIndex(a[g]);b.add(h,e[g],m+1)}}}finally{b.endUpdate()}return f};Graph.prototype.insertImage=function(a,c,b){if(null!=a){for(var d=this.cellEditor.textarea.getElementsByTagName("img"),f=[],e=0;e<d.length;e++)f.push(d[e]); +document.execCommand("insertimage",!1,a);a=this.cellEditor.textarea.getElementsByTagName("img");if(a.length==f.length+1)for(e=a.length-1;0<=e;e--)if(0==e||a[e]!=f[e-1]){a[e].setAttribute("width",c);a[e].setAttribute("height",b);break}}};Graph.prototype.insertLink=function(a){if(0==a.length)document.execCommand("unlink",!1);else if(mxClient.IS_FF){for(var c=this.cellEditor.textarea.getElementsByTagName("a"),b=[],d=0;d<c.length;d++)b.push(c[d]);document.execCommand("createlink",!1,mxUtils.trim(a)); +c=this.cellEditor.textarea.getElementsByTagName("a");if(c.length==b.length+1)for(d=c.length-1;0<=d;d--)if(c[d]!=b[d-1]){for(c=c[d].getElementsByTagName("a");0<c.length;){for(b=c[0].parentNode;null!=c[0].firstChild;)b.insertBefore(c[0].firstChild,c[0]);b.removeChild(c[0])}break}}else document.execCommand("createlink",!1,mxUtils.trim(a))};Graph.prototype.isCellResizable=function(a){var c=mxGraph.prototype.isCellResizable.apply(this,arguments),b=this.view.getState(a),b=null!=b?b.style:this.getCellStyle(a); +return c||"0"!=mxUtils.getValue(b,mxConstants.STYLE_RESIZABLE,"1")&&"wrap"==b[mxConstants.STYLE_WHITE_SPACE]};Graph.prototype.distributeCells=function(a,c){null==c&&(c=this.getSelectionCells());if(null!=c&&1<c.length){for(var b=[],d=null,f=null,e=0;e<c.length;e++)if(this.getModel().isVertex(c[e])){var g=this.view.getState(c[e]);if(null!=g){var h=a?g.getCenterX():g.getCenterY(),d=null!=d?Math.max(d,h):h,f=null!=f?Math.min(f,h):h;b.push(g)}}if(2<b.length){b.sort(function(c,b){return a?c.x-b.x:c.y-b.y}); +g=this.view.translate;h=this.view.scale;f=f/h-(a?g.x:g.y);d=d/h-(a?g.x:g.y);this.getModel().beginUpdate();try{for(var n=(d-f)/(b.length-1),d=f,e=1;e<b.length-1;e++){var m=this.view.getState(this.model.getParent(b[e].cell)),t=this.getCellGeometry(b[e].cell),d=d+n;null!=t&&null!=m&&(t=t.clone(),a?t.x=Math.round(d-t.width/2)-m.origin.x:t.y=Math.round(d-t.height/2)-m.origin.y,this.getModel().setGeometry(b[e].cell,t))}}finally{this.getModel().endUpdate()}}}return c};Graph.prototype.isCloneEvent=function(a){return mxClient.IS_MAC&& +mxEvent.isMetaDown(a)||mxEvent.isControlDown(a)};Graph.prototype.encodeCells=function(a){for(var c=this.cloneCells(a),b=new mxDictionary,d=0;d<a.length;d++)b.put(a[d],!0);for(d=0;d<c.length;d++){var f=this.view.getState(a[d]);if(null!=f){var e=this.getCellGeometry(c[d]);null==e||!e.relative||this.model.isEdge(a[d])||b.get(this.model.getParent(a[d]))||(e.relative=!1,e.x=f.x/f.view.scale-f.view.translate.x,e.y=f.y/f.view.scale-f.view.translate.y)}}b=new mxCodec;f=new mxGraphModel;e=f.getChildAt(f.getRoot(), +0);for(d=0;d<a.length;d++)f.add(e,c[d]);return b.encode(f)};Graph.prototype.createSvgImageExport=function(){var a=new mxImageExport;a.getLinkForCellState=mxUtils.bind(this,function(a,c){return this.getLinkForCell(a.cell)});return a};Graph.prototype.getSvg=function(a,c,b,d,f,e,g,h,n){var m=this.useCssTransforms;m&&(this.useCssTransforms=!1,this.view.revalidate(),this.sizeDidChange());try{c=null!=c?c:1;b=null!=b?b:0;f=null!=f?f:!0;e=null!=e?e:!0;g=null!=g?g:!0;var t=e||d?this.getGraphBounds():this.getBoundingBox(this.getSelectionCells()); +if(null==t)throw Error(mxResources.get("drawingEmpty"));var r=this.view.scale,y=mxUtils.createXmlDocument(),k=null!=y.createElementNS?y.createElementNS(mxConstants.NS_SVG,"svg"):y.createElement("svg");null!=a&&(null!=k.style?k.style.backgroundColor=a:k.setAttribute("style","background-color:"+a));null==y.createElementNS?(k.setAttribute("xmlns",mxConstants.NS_SVG),k.setAttribute("xmlns:xlink",mxConstants.NS_XLINK)):k.setAttributeNS("http://www.w3.org/2000/xmlns/","xmlns:xlink",mxConstants.NS_XLINK); +a=c/r;var v=Math.max(1,Math.ceil(t.width*a)+2*b),w=Math.max(1,Math.ceil(t.height*a)+2*b);k.setAttribute("version","1.1");k.setAttribute("width",v+"px");k.setAttribute("height",w+"px");k.setAttribute("viewBox",(f?"-0.5 -0.5":"0 0")+" "+v+" "+w);y.appendChild(k);var q=this.createSvgCanvas(k);q.foOffset=f?-.5:0;q.textOffset=f?-.5:0;q.imageOffset=f?-.5:0;q.translate(Math.floor((b/c-t.x)/r),Math.floor((b/c-t.y)/r));var x=document.createElement("textarea"),z=q.createAlternateContent;q.createAlternateContent= +function(a,c,b,d,f,e,g,h,n,m,t,r,y){var k=this.state;if(null!=this.foAltText&&(0==d||0!=k.fontSize&&e.length<5*d/k.fontSize)){var v=this.createElement("text");v.setAttribute("x",Math.round(d/2));v.setAttribute("y",Math.round((f+k.fontSize)/2));v.setAttribute("fill",k.fontColor||"black");v.setAttribute("text-anchor","middle");v.setAttribute("font-size",Math.round(k.fontSize)+"px");v.setAttribute("font-family",k.fontFamily);(k.fontStyle&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD&&v.setAttribute("font-weight", +"bold");(k.fontStyle&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC&&v.setAttribute("font-style","italic");(k.fontStyle&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE&&v.setAttribute("text-decoration","underline");try{return x.innerHTML=e,v.textContent=x.value,v}catch(Ca){return z.apply(this,arguments)}}else return z.apply(this,arguments)};var l=this.backgroundImage;if(null!=l){c=r/c;var F=this.view.translate,p=new mxRectangle(F.x*c,F.y*c,l.width*c,l.height*c);mxUtils.intersects(t,p)&& +q.image(F.x,F.y,l.width,l.height,l.src,!0)}q.scale(a);q.textEnabled=g;h=null!=h?h:this.createSvgImageExport();var A=h.drawCellState;h.drawCellState=function(a,c){for(var b=a.view.graph,d=b.isCellSelected(a.cell),f=b.model.getParent(a.cell);!e&&!d&&null!=f;)d=b.isCellSelected(f),f=b.model.getParent(f);(e||d)&&A.apply(this,arguments)};h.drawState(this.getView().getState(this.model.root),q);null!=n&&this.updateLinkTargets(k,n);return k}finally{m&&(this.useCssTransforms=!0,this.view.revalidate(),this.sizeDidChange())}}; +Graph.prototype.updateLinkTargets=function(a,c){for(var b=a.getElementsByTagName("a"),d=0;d<b.length;d++){var f=b[d].getAttribute("href");null==f&&(f=b[d].getAttribute("xlink:href"));null!=f&&/^https?:\/\//.test(f)&&b[d].setAttribute("target",c)}};Graph.prototype.createSvgCanvas=function(a){return new mxSvgCanvas2D(a)};Graph.prototype.getSelectedElement=function(){var a=null;if(window.getSelection){var c=window.getSelection();c.getRangeAt&&c.rangeCount&&(a=c.getRangeAt(0).commonAncestorContainer)}else document.selection&& +(a=document.selection.createRange().parentElement());return a};Graph.prototype.getParentByName=function(a,c,b){for(;null!=a&&a.nodeName!=c;){if(a==b)return null;a=a.parentNode}return a};Graph.prototype.selectNode=function(a){var c=null;if(window.getSelection){if(c=window.getSelection(),c.getRangeAt&&c.rangeCount){var b=document.createRange();b.selectNode(a);c.removeAllRanges();c.addRange(b)}}else(c=document.selection)&&"Control"!=c.type&&(a=c.createRange(),a.collapse(!0),b=c.createRange(),b.setEndPoint("StartToStart", +a),b.select())};Graph.prototype.insertRow=function(a,c){for(var b=a.tBodies[0],d=b.rows[0].cells,f=0,e=0;e<d.length;e++)var g=d[e].getAttribute("colspan"),f=f+(null!=g?parseInt(g):1);b=b.insertRow(c);for(e=0;e<f;e++)mxUtils.br(b.insertCell(-1));return b.cells[0]};Graph.prototype.deleteRow=function(a,c){a.tBodies[0].deleteRow(c)};Graph.prototype.insertColumn=function(a,c){var b=a.tHead;if(null!=b)for(var d=0;d<b.rows.length;d++){var f=document.createElement("th");b.rows[d].appendChild(f);mxUtils.br(f)}b= +a.tBodies[0];for(d=0;d<b.rows.length;d++)f=b.rows[d].insertCell(c),mxUtils.br(f);return b.rows[0].cells[0<=c?c:b.rows[0].cells.length-1]};Graph.prototype.deleteColumn=function(a,c){if(0<=c)for(var b=a.tBodies[0].rows,d=0;d<b.length;d++)b[d].cells.length>c&&b[d].deleteCell(c)};Graph.prototype.pasteHtmlAtCaret=function(a){var c;if(window.getSelection){if(c=window.getSelection(),c.getRangeAt&&c.rangeCount){c=c.getRangeAt(0);c.deleteContents();var b=document.createElement("div");b.innerHTML=a;a=document.createDocumentFragment(); +for(var d;d=b.firstChild;)lastNode=a.appendChild(d);c.insertNode(a)}}else(c=document.selection)&&"Control"!=c.type&&c.createRange().pasteHTML(a)};Graph.prototype.createLinkForHint=function(a,c){function b(a,c){a.length>c&&(a=a.substring(0,Math.round(c/2))+"..."+a.substring(a.length-Math.round(c/4)));return a}a=null!=a?a:"javascript:void(0);";if(null==c||0==c.length)c=this.isCustomLink(a)?this.getLinkTitle(a):a;var d=document.createElement("a");d.setAttribute("rel",this.linkRelation);d.setAttribute("href", +this.getAbsoluteUrl(a));d.setAttribute("title",b(this.isCustomLink(a)?this.getLinkTitle(a):a,80));null!=this.linkTarget&&d.setAttribute("target",this.linkTarget);mxUtils.write(d,b(c,40));this.isCustomLink(a)&&mxEvent.addListener(d,"click",mxUtils.bind(this,function(c){this.customLinkClicked(a);mxEvent.consume(c)}));return d};Graph.prototype.initTouch=function(){this.connectionHandler.marker.isEnabled=function(){return null!=this.graph.connectionHandler.first};this.addListener(mxEvent.START_EDITING, +function(a,c){this.popupMenuHandler.hideMenu()});var a=this.updateMouseEvent;this.updateMouseEvent=function(c){c=a.apply(this,arguments);if(mxEvent.isTouchEvent(c.getEvent())&&null==c.getState()){var b=this.getCellAt(c.graphX,c.graphY);null!=b&&this.isSwimlane(b)&&this.hitsSwimlaneContent(b,c.graphX,c.graphY)||(c.state=this.view.getState(b),null!=c.state&&null!=c.state.shape&&(this.container.style.cursor=c.state.shape.node.style.cursor))}null==c.getState()&&this.isEnabled()&&(this.container.style.cursor= +"default");return c};var c=!1,b=!1,d=!1,f=this.fireMouseEvent;this.fireMouseEvent=function(a,e,g){a==mxEvent.MOUSE_DOWN&&(e=this.updateMouseEvent(e),c=this.isCellSelected(e.getCell()),b=this.isSelectionEmpty(),d=this.popupMenuHandler.isMenuShowing());f.apply(this,arguments)};this.popupMenuHandler.mouseUp=mxUtils.bind(this,function(a,f){this.popupMenuHandler.popupTrigger=!this.isEditing()&&this.isEnabled()&&(null==f.getState()||!f.isSource(f.getState().control))&&(this.popupMenuHandler.popupTrigger|| +!d&&!mxEvent.isMouseEvent(f.getEvent())&&(b&&null==f.getCell()&&this.isSelectionEmpty()||c&&this.isCellSelected(f.getCell())));mxPopupMenuHandler.prototype.mouseUp.apply(this.popupMenuHandler,arguments)})};mxCellEditor.prototype.isContentEditing=function(){var a=this.graph.view.getState(this.editingCell);return null!=a&&1==a.style.html};mxCellEditor.prototype.saveSelection=function(){if(window.getSelection){var a=window.getSelection();if(a.getRangeAt&&a.rangeCount){for(var c=[],b=0,d=a.rangeCount;b< +d;++b)c.push(a.getRangeAt(b));return c}}else if(document.selection&&document.selection.createRange)return document.selection.createRange();return null};mxCellEditor.prototype.restoreSelection=function(a){try{if(a)if(window.getSelection){sel=window.getSelection();sel.removeAllRanges();for(var c=0,b=a.length;c<b;++c)sel.addRange(a[c])}else document.selection&&a.select&&a.select()}catch(Y){}};var k=mxCellRenderer.prototype.initializeLabel;mxCellRenderer.prototype.initializeLabel=function(a){null!=a.text&& +(a.text.replaceLinefeeds="0"!=mxUtils.getValue(a.style,"nl2Br","1"));k.apply(this,arguments)};var l=mxConstraintHandler.prototype.update;mxConstraintHandler.prototype.update=function(a,c){this.isKeepFocusEvent(a)||!mxEvent.isAltDown(a.getEvent())?l.apply(this,arguments):this.reset()};mxGuide.prototype.createGuideShape=function(a){return new mxPolyline([],mxConstants.GUIDE_COLOR,mxConstants.GUIDE_STROKEWIDTH)};mxCellEditor.prototype.escapeCancelsEditing=!1;var p=mxCellEditor.prototype.startEditing; +mxCellEditor.prototype.startEditing=function(a,c){p.apply(this,arguments);var b=this.graph.view.getState(a);this.textarea.className=null!=b&&1==b.style.html?"mxCellEditor geContentEditable":"mxCellEditor mxPlainTextEditor";this.codeViewMode=!1;this.switchSelectionState=null;this.graph.setSelectionCell(a);var b=this.graph.getModel().getParent(a),d=this.graph.getCellGeometry(a);this.graph.getModel().isEdge(b)&&null!=d&&d.relative||this.graph.getModel().isEdge(a)?mxClient.IS_QUIRKS?this.textarea.style.border= +"gray dotted 1px":this.textarea.style.outline=mxClient.IS_IE||mxClient.IS_IE11||mxClient.IS_FF&&mxClient.IS_WIN?"gray dotted 1px":"":mxClient.IS_QUIRKS&&(this.textarea.style.outline="none",this.textarea.style.border="")};var q=mxCellEditor.prototype.installListeners;mxCellEditor.prototype.installListeners=function(a){function c(a,b){b.originalNode=a;a=a.firstChild;for(var d=b.firstChild;null!=a&&null!=d;)c(a,d),a=a.nextSibling,d=d.nextSibling;return b}function b(a,c){if(null!=a)if(c.originalNode!= +a)d(a);else for(a=a.firstChild,c=c.firstChild;null!=a;){var f=a.nextSibling;null==c?d(a):(b(a,c),c=c.nextSibling);a=f}}function d(a){for(var c=a.firstChild;null!=c;){var b=c.nextSibling;d(c);c=b}1==a.nodeType&&("BR"===a.nodeName||null!=a.firstChild)||3==a.nodeType&&0!=mxUtils.trim(mxUtils.getTextContent(a)).length?(3==a.nodeType&&mxUtils.setTextContent(a,mxUtils.getTextContent(a).replace(/\n|\r/g,"")),1==a.nodeType&&(a.removeAttribute("style"),a.removeAttribute("class"),a.removeAttribute("width"), +a.removeAttribute("cellpadding"),a.removeAttribute("cellspacing"),a.removeAttribute("border"))):a.parentNode.removeChild(a)}q.apply(this,arguments);mxClient.IS_QUIRKS||7===document.documentMode||8===document.documentMode||mxEvent.addListener(this.textarea,"paste",mxUtils.bind(this,function(a){var d=c(this.textarea,this.textarea.cloneNode(!0));window.setTimeout(mxUtils.bind(this,function(){b(this.textarea,d)}),0)}))};mxCellEditor.prototype.toggleViewMode=function(){var a=this.graph.view.getState(this.editingCell), +c=null!=a&&"0"!=mxUtils.getValue(a.style,"nl2Br","1"),b=this.saveSelection();if(this.codeViewMode){h=mxUtils.extractTextWithWhitespace(this.textarea.childNodes);0<h.length&&"\n"==h.charAt(h.length-1)&&(h=h.substring(0,h.length-1));h=this.graph.sanitizeHtml(c?h.replace(/\n/g,"<br/>"):h,!0);this.textarea.className="mxCellEditor geContentEditable";var d=mxUtils.getValue(a.style,mxConstants.STYLE_FONTSIZE,mxConstants.DEFAULT_FONTSIZE),c=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(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=e?"bold":"normal";this.textarea.style.fontStyle=g?"italic":"";this.textarea.style.fontFamily=c;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<this.textarea.innerHTML.length)); +this.codeViewMode=!1}else{this.clearOnChange&&this.textarea.innerHTML==this.getEmptyLabelText()&&(this.clearOnChange=!1,this.textarea.innerHTML="");var h=mxUtils.htmlEntities(this.textarea.innerHTML);mxClient.IS_QUIRKS||8==document.documentMode||(h=mxUtils.replaceTrailingNewlines(h,"<div><br></div>"));h=this.graph.sanitizeHtml(c?h.replace(/\n/g,"").replace(/<br\s*.?>/g,"<br>"):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=b;this.resize()};var u=mxCellEditor.prototype.resize;mxCellEditor.prototype.resize=function(a,c){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 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,mxConstants.ALIGN_MIDDLE)));this.bounds.x+=d.x*this.bounds.width;this.bounds.y+=d.y*this.bounds.height}this.textarea.style.width=Math.round((this.bounds.width-4)/b)+"px";this.textarea.style.height=Math.round((this.bounds.height-4)/b)+"px";this.textarea.style.overflow="auto";this.textarea.clientHeight<this.textarea.offsetHeight&&(this.textarea.style.height=Math.round(this.bounds.height/b)+(this.textarea.offsetHeight- +this.textarea.clientHeight)+"px",this.bounds.height=parseInt(this.textarea.style.height)*b);this.textarea.clientWidth<this.textarea.offsetWidth&&(this.textarea.style.width=Math.round(this.bounds.width/b)+(this.textarea.offsetWidth-this.textarea.clientWidth)+"px",this.bounds.width=parseInt(this.textarea.style.width)*b);this.textarea.style.left=Math.round(this.bounds.x)+"px";this.textarea.style.top=Math.round(this.bounds.y)+"px";mxClient.IS_VML?this.textarea.style.zoom=b:mxUtils.setPrefixedStyle(this.textarea.style, +"transform","scale("+b+","+b+")")}else this.textarea.style.height="",this.textarea.style.overflow="",u.apply(this,arguments)};mxCellEditorGetInitialValue=mxCellEditor.prototype.getInitialValue;mxCellEditor.prototype.getInitialValue=function(a,c){if("0"==mxUtils.getValue(a.style,"html","0"))return mxCellEditorGetInitialValue.apply(this,arguments);var b=this.graph.getEditingValue(a.cell,c);"1"==mxUtils.getValue(a.style,"nl2Br","1")&&(b=b.replace(/\n/g,"<br/>"));return b=this.graph.sanitizeHtml(b,!0)}; mxCellEditorGetCurrentValue=mxCellEditor.prototype.getCurrentValue;mxCellEditor.prototype.getCurrentValue=function(a){if("0"==mxUtils.getValue(a.style,"html","0"))return mxCellEditorGetCurrentValue.apply(this,arguments);var c=this.graph.sanitizeHtml(this.textarea.innerHTML,!0);return c="1"==mxUtils.getValue(a.style,"nl2Br","1")?c.replace(/\r\n/g,"<br/>").replace(/\n/g,"<br/>"):c.replace(/\r\n/g,"").replace(/\n/g,"")};var c=mxCellEditor.prototype.stopEditing;mxCellEditor.prototype.stopEditing=function(a){this.codeViewMode&& -this.toggleViewMode();c.apply(this,arguments);this.focusContainer()};mxCellEditor.prototype.focusContainer=function(){try{this.graph.container.focus()}catch(F){}};var f=mxCellEditor.prototype.applyValue;mxCellEditor.prototype.applyValue=function(a,c){this.graph.getModel().beginUpdate();try{if(f.apply(this,arguments),this.graph.isCellDeletable(a.cell)&&0==this.graph.model.getChildCount(a.cell)){var d=mxUtils.getValue(a.style,mxConstants.STYLE_STROKECOLOR,mxConstants.NONE),b=mxUtils.getValue(a.style, -mxConstants.STYLE_FILLCOLOR,mxConstants.NONE);""==c&&d==mxConstants.NONE&&b==mxConstants.NONE&&this.graph.removeCells([a.cell],!1)}}finally{this.graph.getModel().endUpdate()}};mxCellEditor.prototype.getBackgroundColor=function(a){var c=null;if(this.graph.getModel().isEdge(a.cell)||this.graph.getModel().isEdge(this.graph.getModel().getParent(a.cell)))c=mxUtils.getValue(a.style,mxConstants.STYLE_LABEL_BACKGROUNDCOLOR,null),c==mxConstants.NONE&&(c=null);return c};mxCellEditor.prototype.getMinimumSize= -function(a){var c=this.graph.getView().scale;return new mxRectangle(0,0,null==a.text?30:a.text.size*c+20,30)};var g=mxGraphHandler.prototype.moveCells;mxGraphHandler.prototype.moveCells=function(a,c,d,b,f,e){mxEvent.isAltDown(e)&&(f=null);g.apply(this,arguments)};mxGraphHandler.prototype.updateHint=function(c){if(null!=this.shape){null==this.hint&&(this.hint=a(),this.graph.container.appendChild(this.hint));var d=this.graph.view.translate,b=this.graph.view.scale;c=this.roundLength((this.bounds.x+this.currentDx)/ -b-d.x);d=this.roundLength((this.bounds.y+this.currentDy)/b-d.y);this.hint.innerHTML=c+", "+d;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,c){return!this.graph.isSwimlane(a.cell)&&0<this.graph.model.getChildCount(a.cell)&& +this.toggleViewMode();c.apply(this,arguments);this.focusContainer()};mxCellEditor.prototype.focusContainer=function(){try{this.graph.container.focus()}catch(F){}};var f=mxCellEditor.prototype.applyValue;mxCellEditor.prototype.applyValue=function(a,c){this.graph.getModel().beginUpdate();try{if(f.apply(this,arguments),this.graph.isCellDeletable(a.cell)&&0==this.graph.model.getChildCount(a.cell)){var b=mxUtils.getValue(a.style,mxConstants.STYLE_STROKECOLOR,mxConstants.NONE),d=mxUtils.getValue(a.style, +mxConstants.STYLE_FILLCOLOR,mxConstants.NONE);""==c&&b==mxConstants.NONE&&d==mxConstants.NONE&&this.graph.removeCells([a.cell],!1)}}finally{this.graph.getModel().endUpdate()}};mxCellEditor.prototype.getBackgroundColor=function(a){var c=null;if(this.graph.getModel().isEdge(a.cell)||this.graph.getModel().isEdge(this.graph.getModel().getParent(a.cell)))c=mxUtils.getValue(a.style,mxConstants.STYLE_LABEL_BACKGROUNDCOLOR,null),c==mxConstants.NONE&&(c=null);return c};mxCellEditor.prototype.getMinimumSize= +function(a){var c=this.graph.getView().scale;return new mxRectangle(0,0,null==a.text?30:a.text.size*c+20,30)};var g=mxGraphHandler.prototype.moveCells;mxGraphHandler.prototype.moveCells=function(a,c,b,d,f,e){mxEvent.isAltDown(e)&&(f=null);g.apply(this,arguments)};mxGraphHandler.prototype.updateHint=function(c){if(null!=this.shape){null==this.hint&&(this.hint=a(),this.graph.container.appendChild(this.hint));var b=this.graph.view.translate,d=this.graph.view.scale;c=this.roundLength((this.bounds.x+this.currentDx)/ +d-b.x);b=this.roundLength((this.bounds.y+this.currentDy)/d-b.y);this.hint.innerHTML=c+", "+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,c){return!this.graph.isSwimlane(a.cell)&&0<this.graph.model.getChildCount(a.cell)&& !mxEvent.isControlDown(c.getEvent())&&!this.graph.isCellCollapsed(a.cell)&&"1"==mxUtils.getValue(a.style,"recursiveResize","1")&&null==mxUtils.getValue(a.style,"childLayout",null)};mxVertexHandler.prototype.isCenteredEvent=function(a,c){return!(!this.graph.isSwimlane(a.cell)&&0<this.graph.model.getChildCount(a.cell)&&!this.graph.isCellCollapsed(a.cell)&&"1"==mxUtils.getValue(a.style,"recursiveResize","1")&&null==mxUtils.getValue(a.style,"childLayout",null))&&mxEvent.isControlDown(c.getEvent())||mxEvent.isMetaDown(c.getEvent())}; -var k=mxVertexHandler.prototype.getHandlePadding;mxVertexHandler.prototype.getHandlePadding=function(){var a=new mxPoint(0,0),c=this.tolerance;this.graph.cellEditor.getEditingCell()==this.state.cell&&null!=this.sizers&&0<this.sizers.length&&null!=this.sizers[0]?(c/=2,a.x=this.sizers[0].bounds.width+c,a.y=this.sizers[0].bounds.height+c):a=k.apply(this,arguments);return a};mxVertexHandler.prototype.updateHint=function(c){this.index!=mxEvent.LABEL_HANDLE&&(null==this.hint&&(this.hint=a(),this.state.view.graph.container.appendChild(this.hint)), +var n=mxVertexHandler.prototype.getHandlePadding;mxVertexHandler.prototype.getHandlePadding=function(){var a=new mxPoint(0,0),c=this.tolerance;this.graph.cellEditor.getEditingCell()==this.state.cell&&null!=this.sizers&&0<this.sizers.length&&null!=this.sizers[0]?(c/=2,a.x=this.sizers[0].bounds.width+c,a.y=this.sizers[0].bounds.height+c):a=n.apply(this,arguments);return a};mxVertexHandler.prototype.updateHint=function(c){this.index!=mxEvent.LABEL_HANDLE&&(null==this.hint&&(this.hint=a(),this.state.view.graph.container.appendChild(this.hint)), this.index==mxEvent.ROTATION_HANDLE?this.hint.innerHTML=this.currentAlpha+"°":(c=this.state.view.scale,this.hint.innerHTML=this.roundLength(this.bounds.width/c)+" x "+this.roundLength(this.bounds.height/c)),c=mxUtils.getBoundingBox(this.bounds,null!=this.currentAlpha?this.currentAlpha:this.state.style[mxConstants.STYLE_ROTATION]||"0"),null==c&&(c=this.bounds),this.hint.style.left=c.x+Math.round((c.width-this.hint.clientWidth)/2)+"px",this.hint.style.top=c.y+c.height+12+"px",null!=this.linkHint&& -(this.linkHint.style.display="none"))};mxVertexHandler.prototype.removeHint=function(){mxGraphHandler.prototype.removeHint.apply(this,arguments);null!=this.linkHint&&(this.linkHint.style.display="")};mxEdgeHandler.prototype.updateHint=function(c,d){null==this.hint&&(this.hint=a(),this.state.view.graph.container.appendChild(this.hint));var b=this.graph.view.translate,f=this.graph.view.scale,e=this.roundLength(d.x/f-b.x),b=this.roundLength(d.y/f-b.y);this.hint.innerHTML=e+", "+b;this.hint.style.visibility= -"visible";if(this.isSource||this.isTarget)null!=this.constraintHandler.currentConstraint&&null!=this.constraintHandler.currentFocus?(e=this.constraintHandler.currentConstraint.point,this.hint.innerHTML="["+Math.round(100*e.x)+"%, "+Math.round(100*e.y)+"%]"):this.marker.hasValidState()&&(this.hint.style.visibility="hidden");this.hint.style.left=Math.round(c.getGraphX()-this.hint.clientWidth/2)+"px";this.hint.style.top=Math.max(c.getGraphY(),d.y)+this.state.view.graph.gridSize+"px";null!=this.linkHint&& +(this.linkHint.style.display="none"))};mxVertexHandler.prototype.removeHint=function(){mxGraphHandler.prototype.removeHint.apply(this,arguments);null!=this.linkHint&&(this.linkHint.style.display="")};mxEdgeHandler.prototype.updateHint=function(c,b){null==this.hint&&(this.hint=a(),this.state.view.graph.container.appendChild(this.hint));var d=this.graph.view.translate,f=this.graph.view.scale,e=this.roundLength(b.x/f-d.x),d=this.roundLength(b.y/f-d.y);this.hint.innerHTML=e+", "+d;this.hint.style.visibility= +"visible";if(this.isSource||this.isTarget)null!=this.constraintHandler.currentConstraint&&null!=this.constraintHandler.currentFocus?(e=this.constraintHandler.currentConstraint.point,this.hint.innerHTML="["+Math.round(100*e.x)+"%, "+Math.round(100*e.y)+"%]"):this.marker.hasValidState()&&(this.hint.style.visibility="hidden");this.hint.style.left=Math.round(c.getGraphX()-this.hint.clientWidth/2)+"px";this.hint.style.top=Math.max(c.getGraphY(),b.y)+this.state.view.graph.gridSize+"px";null!=this.linkHint&& (this.linkHint.style.display="none")};mxEdgeHandler.prototype.removeHint=mxVertexHandler.prototype.removeHint;HoverIcons.prototype.mainHandle=mxClient.IS_SVG?Graph.createSvgImage(18,18,'<circle cx="9" cy="9" r="5" stroke="#fff" fill="'+HoverIcons.prototype.arrowFill+'" stroke-width="1"/>'):new mxImage(IMAGE_PATH+"/handle-main.png",17,17);HoverIcons.prototype.secondaryHandle=mxClient.IS_SVG?Graph.createSvgImage(16,16,'<path d="m 8 3 L 13 8 L 8 13 L 3 8 z" stroke="#fff" fill="#fca000"/>'):new mxImage(IMAGE_PATH+ "/handle-secondary.png",17,17);HoverIcons.prototype.fixedHandle=mxClient.IS_SVG?Graph.createSvgImage(18,18,'<circle cx="9" cy="9" r="5" stroke="#fff" fill="'+HoverIcons.prototype.arrowFill+'" stroke-width="1"/><path d="m 7 7 L 11 11 M 7 11 L 11 7" stroke="#fff"/>'):new mxImage(IMAGE_PATH+"/handle-fixed.png",17,17);HoverIcons.prototype.terminalHandle=mxClient.IS_SVG?Graph.createSvgImage(18,18,'<circle cx="9" cy="9" r="5" stroke="#fff" fill="'+HoverIcons.prototype.arrowFill+'" stroke-width="1"/><circle cx="9" cy="9" r="2" stroke="#fff" fill="transparent"/>'): 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=": @@ -2410,146 +2412,146 @@ HoverIcons.prototype.triangleDown.src,(new Image).src=HoverIcons.prototype.trian !0;mxVertexHandler.prototype.rotationHandleVSpacing=-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||0<navigator.maxTouchPoints||0<navigator.msMaxTouchPoints)mxShape.prototype.svgStrokeTolerance=18,mxVertexHandler.prototype.tolerance=12,mxEdgeHandler.prototype.tolerance=12,Graph.prototype.tolerance=12,mxVertexHandler.prototype.rotationHandleVSpacing=-24,mxConstraintHandler.prototype.getTolerance=function(a){return mxEvent.isMouseEvent(a.getEvent())?4:this.graph.getTolerance()};mxPanningHandler.prototype.isPanningTrigger= function(a){var c=a.getEvent();return null==a.getState()&&!mxEvent.isMouseEvent(c)||mxEvent.isPopupTrigger(c)&&(null==a.getState()||mxEvent.isControlDown(c)||mxEvent.isShiftDown(c))};var r=mxGraphHandler.prototype.mouseDown;mxGraphHandler.prototype.mouseDown=function(a,c){r.apply(this,arguments);mxEvent.isTouchEvent(c.getEvent())&&this.graph.isCellSelected(c.getCell())&&1<this.graph.getSelectionCount()&&(this.delayedSelection=!1)}}else mxPanningHandler.prototype.isPanningTrigger=function(a){var c= -a.getEvent();return mxEvent.isLeftMouseButton(c)&&(this.useLeftButtonForPanning&&null==a.getState()||mxEvent.isControlDown(c)&&!mxEvent.isShiftDown(c))||this.usePopupTrigger&&mxEvent.isPopupTrigger(c)};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,c){var d=null!=this.div&&"none"!=this.div.style.display, -b=null,f=null,e=null,g=null;null!=this.first&&null!=this.currentX&&null!=this.currentY&&(b=this.first.x,f=this.first.y,e=(this.currentX-b)/this.graph.view.scale,g=(this.currentY-f)/this.graph.view.scale,mxEvent.isAltDown(c.getEvent())||(e=this.graph.snap(e),g=this.graph.snap(g),this.graph.isGridEnabled()||(Math.abs(e)<this.graph.tolerance&&(e=0),Math.abs(g)<this.graph.tolerance&&(g=0))));this.reset();if(d){if(mxEvent.isAltDown(c.getEvent())&&this.graph.isToggleEvent(c.getEvent())){var e=new mxRectangle(this.x, -this.y,this.width,this.height),k=this.graph.getCells(e.x,e.y,e.width,e.height);this.graph.removeSelectionCells(k)}else if(this.isSpaceEvent(c)){this.graph.model.beginUpdate();try{for(k=this.graph.getCellsBeyond(b,f,this.graph.getDefaultParent(),!0,!0),d=0;d<k.length;d++)if(this.graph.isCellMovable(k[d])){var l=this.graph.view.getState(k[d]),n=this.graph.getCellGeometry(k[d]);null!=l&&null!=n&&(n=n.clone(),n.translate(e,g),this.graph.model.setGeometry(k[d],n))}}finally{this.graph.model.endUpdate()}}else e= -new mxRectangle(this.x,this.y,this.width,this.height),this.graph.selectRegion(e,c.getEvent());c.consume()}};mxRubberband.prototype.mouseMove=function(a,c){if(!c.isConsumed()&&null!=this.first){var d=mxUtils.getScrollOrigin(this.graph.container),b=mxUtils.getOffset(this.graph.container);d.x-=b.x;d.y-=b.y;var b=c.getX()+d.x,d=c.getY()+d.y,f=this.first.x-b,e=this.first.y-d,g=this.graph.tolerance;if(null!=this.div||Math.abs(f)>g||Math.abs(e)>g)null==this.div&&(this.div=this.createShape()),mxUtils.clearSelection(), -this.update(b,d),this.isSpaceEvent(c)?(b=this.x+this.width,d=this.y+this.height,f=this.graph.view.scale,mxEvent.isAltDown(c.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.graph.tolerance&&(this.width=0),this.height<this.graph.tolerance&&(this.height=0)),this.x<this.first.x&&(this.x=b-this.width),this.y<this.first.y&&(this.y=d-this.height)),this.div.style.borderStyle="dashed",this.div.style.backgroundColor= +a.getEvent();return mxEvent.isLeftMouseButton(c)&&(this.useLeftButtonForPanning&&null==a.getState()||mxEvent.isControlDown(c)&&!mxEvent.isShiftDown(c))||this.usePopupTrigger&&mxEvent.isPopupTrigger(c)};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,c){var b=null!=this.div&&"none"!=this.div.style.display, +d=null,f=null,e=null,g=null;null!=this.first&&null!=this.currentX&&null!=this.currentY&&(d=this.first.x,f=this.first.y,e=(this.currentX-d)/this.graph.view.scale,g=(this.currentY-f)/this.graph.view.scale,mxEvent.isAltDown(c.getEvent())||(e=this.graph.snap(e),g=this.graph.snap(g),this.graph.isGridEnabled()||(Math.abs(e)<this.graph.tolerance&&(e=0),Math.abs(g)<this.graph.tolerance&&(g=0))));this.reset();if(b){if(mxEvent.isAltDown(c.getEvent())&&this.graph.isToggleEvent(c.getEvent())){var e=new mxRectangle(this.x, +this.y,this.width,this.height),h=this.graph.getCells(e.x,e.y,e.width,e.height);this.graph.removeSelectionCells(h)}else if(this.isSpaceEvent(c)){this.graph.model.beginUpdate();try{for(h=this.graph.getCellsBeyond(d,f,this.graph.getDefaultParent(),!0,!0),b=0;b<h.length;b++)if(this.graph.isCellMovable(h[b])){var n=this.graph.view.getState(h[b]),m=this.graph.getCellGeometry(h[b]);null!=n&&null!=m&&(m=m.clone(),m.translate(e,g),this.graph.model.setGeometry(h[b],m))}}finally{this.graph.model.endUpdate()}}else e= +new mxRectangle(this.x,this.y,this.width,this.height),this.graph.selectRegion(e,c.getEvent());c.consume()}};mxRubberband.prototype.mouseMove=function(a,c){if(!c.isConsumed()&&null!=this.first){var b=mxUtils.getScrollOrigin(this.graph.container),d=mxUtils.getOffset(this.graph.container);b.x-=d.x;b.y-=d.y;var d=c.getX()+b.x,b=c.getY()+b.y,f=this.first.x-d,e=this.first.y-b,g=this.graph.tolerance;if(null!=this.div||Math.abs(f)>g||Math.abs(e)>g)null==this.div&&(this.div=this.createShape()),mxUtils.clearSelection(), +this.update(d,b),this.isSpaceEvent(c)?(d=this.x+this.width,b=this.y+this.height,f=this.graph.view.scale,mxEvent.isAltDown(c.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.graph.tolerance&&(this.width=0),this.height<this.graph.tolerance&&(this.height=0)),this.x<this.first.x&&(this.x=d-this.width),this.y<this.first.y&&(this.y=b-this.height)),this.div.style.borderStyle="dashed",this.div.style.backgroundColor= "white",this.div.style.left=this.x+"px",this.div.style.top=this.y+"px",this.div.style.width=Math.max(0,this.width)+"px",this.div.style.height=this.graph.container.clientHeight+"px",this.div.style.borderWidth=0>=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)),c.consume()}};var l=mxRubberband.prototype.reset;mxRubberband.prototype.reset=function(){null!=this.secondDiv&&(this.secondDiv.parentNode.removeChild(this.secondDiv), -this.secondDiv=null);l.apply(this,arguments)};var n=(new Date).getTime(),w=0,v=mxEdgeHandler.prototype.updatePreviewState;mxEdgeHandler.prototype.updatePreviewState=function(a,c,d,b){v.apply(this,arguments);d!=this.currentTerminalState?(n=(new Date).getTime(),w=0):w=(new Date).getTime()-n;this.currentTerminalState=d};var B=mxEdgeHandler.prototype.isOutlineConnectEvent;mxEdgeHandler.prototype.isOutlineConnectEvent=function(a){return null!=this.currentTerminalState&&a.getState()==this.currentTerminalState&& -2E3<w||(null==this.currentTerminalState||"0"!=mxUtils.getValue(this.currentTerminalState.style,"outlineConnect","1"))&&B.apply(this,arguments)};mxVertexHandler.prototype.isCustomHandleEvent=function(a){return!mxEvent.isShiftDown(a.getEvent())};mxEdgeHandler.prototype.createHandleShape=function(a,c){var d=null!=a&&0==a,b=this.state.getVisibleTerminalState(d),f=null!=a&&(0==a||a>=this.state.absolutePoints.length-1||this.constructor==mxElbowEdgeHandler&&2==a)?this.graph.getConnectionConstraint(this.state, -b,d):null,d=null!=(null!=f?this.graph.getConnectionPoint(this.state.getVisibleTerminalState(d),f):null)?this.fixedHandleImage:null!=f&&null!=b?this.terminalHandleImage:this.handleImage;if(null!=d)return d=new mxImageShape(new mxRectangle(0,0,d.width,d.height),d.src),d.preserveImageAspect=!1,d;d=mxConstants.HANDLE_SIZE;this.preferHtml&&--d;return new mxRectangleShape(new mxRectangle(0,0,d,d),mxConstants.HANDLE_FILLCOLOR,mxConstants.HANDLE_STROKECOLOR)};var y=mxVertexHandler.prototype.createSizerShape; -mxVertexHandler.prototype.createSizerShape=function(a,c,d){this.handleImage=c==mxEvent.ROTATION_HANDLE?HoverIcons.prototype.rotationHandle:c==mxEvent.LABEL_HANDLE?this.secondaryHandleImage:this.handleImage;return y.apply(this,arguments)};var t=mxGraphHandler.prototype.getBoundingBox;mxGraphHandler.prototype.getBoundingBox=function(a){if(null!=a&&1==a.length){var c=this.graph.getModel(),d=c.getParent(a[0]),b=this.graph.getCellGeometry(a[0]);if(c.isEdge(d)&&null!=b&&b.relative&&(c=this.graph.view.getState(a[0]), -null!=c&&2>c.width&&2>c.height&&null!=c.text&&null!=c.text.boundingBox))return mxRectangle.fromRectangle(c.text.boundingBox)}return t.apply(this,arguments)};var z=mxVertexHandler.prototype.getSelectionBounds;mxVertexHandler.prototype.getSelectionBounds=function(a){var c=this.graph.getModel(),d=c.getParent(a.cell),b=this.graph.getCellGeometry(a.cell);return c.isEdge(d)&&null!=b&&b.relative&&2>a.width&&2>a.height&&null!=a.text&&null!=a.text.boundingBox?(c=a.text.unrotatedBoundingBox||a.text.boundingBox, -new mxRectangle(Math.round(c.x),Math.round(c.y),Math.round(c.width),Math.round(c.height))):z.apply(this,arguments)};var H=mxVertexHandler.prototype.mouseDown;mxVertexHandler.prototype.mouseDown=function(a,c){var d=this.graph.getModel(),b=d.getParent(this.state.cell),f=this.graph.getCellGeometry(this.state.cell);(this.getHandleForEvent(c)==mxEvent.ROTATION_HANDLE||!d.isEdge(b)||null==f||!f.relative||null==this.state||2<=this.state.width||2<=this.state.height)&&H.apply(this,arguments)};mxVertexHandler.prototype.isRotationHandleVisible= +"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)),c.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(),w=0,v=mxEdgeHandler.prototype.updatePreviewState;mxEdgeHandler.prototype.updatePreviewState=function(a,c,b,d){v.apply(this,arguments);b!=this.currentTerminalState?(m=(new Date).getTime(),w=0):w=(new Date).getTime()-m;this.currentTerminalState=b};var A=mxEdgeHandler.prototype.isOutlineConnectEvent;mxEdgeHandler.prototype.isOutlineConnectEvent=function(a){return null!=this.currentTerminalState&&a.getState()==this.currentTerminalState&& +2E3<w||(null==this.currentTerminalState||"0"!=mxUtils.getValue(this.currentTerminalState.style,"outlineConnect","1"))&&A.apply(this,arguments)};mxVertexHandler.prototype.isCustomHandleEvent=function(a){return!mxEvent.isShiftDown(a.getEvent())};mxEdgeHandler.prototype.createHandleShape=function(a,c){var b=null!=a&&0==a,d=this.state.getVisibleTerminalState(b),f=null!=a&&(0==a||a>=this.state.absolutePoints.length-1||this.constructor==mxElbowEdgeHandler&&2==a)?this.graph.getConnectionConstraint(this.state, +d,b):null,b=null!=(null!=f?this.graph.getConnectionPoint(this.state.getVisibleTerminalState(b),f):null)?this.fixedHandleImage:null!=f&&null!=d?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 y=mxVertexHandler.prototype.createSizerShape; +mxVertexHandler.prototype.createSizerShape=function(a,c,b){this.handleImage=c==mxEvent.ROTATION_HANDLE?HoverIcons.prototype.rotationHandle:c==mxEvent.LABEL_HANDLE?this.secondaryHandleImage:this.handleImage;return y.apply(this,arguments)};var t=mxGraphHandler.prototype.getBoundingBox;mxGraphHandler.prototype.getBoundingBox=function(a){if(null!=a&&1==a.length){var c=this.graph.getModel(),b=c.getParent(a[0]),d=this.graph.getCellGeometry(a[0]);if(c.isEdge(b)&&null!=d&&d.relative&&(c=this.graph.view.getState(a[0]), +null!=c&&2>c.width&&2>c.height&&null!=c.text&&null!=c.text.boundingBox))return mxRectangle.fromRectangle(c.text.boundingBox)}return t.apply(this,arguments)};var z=mxVertexHandler.prototype.getSelectionBounds;mxVertexHandler.prototype.getSelectionBounds=function(a){var c=this.graph.getModel(),b=c.getParent(a.cell),d=this.graph.getCellGeometry(a.cell);return c.isEdge(b)&&null!=d&&d.relative&&2>a.width&&2>a.height&&null!=a.text&&null!=a.text.boundingBox?(c=a.text.unrotatedBoundingBox||a.text.boundingBox, +new mxRectangle(Math.round(c.x),Math.round(c.y),Math.round(c.width),Math.round(c.height))):z.apply(this,arguments)};var H=mxVertexHandler.prototype.mouseDown;mxVertexHandler.prototype.mouseDown=function(a,c){var b=this.graph.getModel(),d=b.getParent(this.state.cell),f=this.graph.getCellGeometry(this.state.cell);(this.getHandleForEvent(c)==mxEvent.ROTATION_HANDLE||!b.isEdge(d)||null==f||!f.relative||null==this.state||2<=this.state.width||2<=this.state.height)&&H.apply(this,arguments)};mxVertexHandler.prototype.isRotationHandleVisible= function(){return this.graph.isEnabled()&&this.rotationEnabled&&this.graph.isCellRotatable(this.state.cell)&&(0>=mxGraphHandler.prototype.maxCells||this.graph.getSelectionCount()<mxGraphHandler.prototype.maxCells)};mxVertexHandler.prototype.rotateClick=function(){this.state.view.graph.turnShapes([this.state.cell])};var G=mxVertexHandler.prototype.mouseMove;mxVertexHandler.prototype.mouseMove=function(a,c){G.apply(this,arguments);null!=this.graph.graphHandler.first&&null!=this.rotationShape&&null!= -this.rotationShape.node&&(this.rotationShape.node.style.display="none")};var A=mxVertexHandler.prototype.mouseUp;mxVertexHandler.prototype.mouseUp=function(a,c){A.apply(this,arguments);null!=this.rotationShape&&null!=this.rotationShape.node&&(this.rotationShape.node.style.display=1==this.graph.getSelectionCount()?"":"none")};var J=mxVertexHandler.prototype.init;mxVertexHandler.prototype.init=function(){J.apply(this,arguments);var a=!1;null!=this.rotationShape&&this.rotationShape.node.setAttribute("title", -mxResources.get("rotateTooltip"));var c=mxUtils.bind(this,function(){null!=this.rotationShape&&null!=this.rotationShape.node&&(this.rotationShape.node.style.display=1==this.graph.getSelectionCount()?"":"none");null!=this.specialHandle&&(this.specialHandle.node.style.display=this.graph.isEnabled()&&this.graph.getSelectionCount()<this.graph.graphHandler.maxCells?"":"none");this.redrawHandles()});this.selectionHandler=mxUtils.bind(this,function(a,d){c()});this.graph.getSelectionModel().addListener(mxEvent.CHANGE, -this.selectionHandler);this.changeHandler=mxUtils.bind(this,function(a,d){this.updateLinkHint(this.graph.getLinkForCell(this.state.cell),this.graph.getLinksForState(this.state));c()});this.graph.getModel().addListener(mxEvent.CHANGE,this.changeHandler);this.editingHandler=mxUtils.bind(this,function(a,c){this.redrawHandles()});this.graph.addListener(mxEvent.EDITING_STOPPED,this.editingHandler);var d=this.graph.getLinkForCell(this.state.cell),b=this.graph.getLinksForState(this.state);this.updateLinkHint(d, -b);if(null!=d||null!=b&&0<b.length)a=!0;a&&this.redrawHandles()};mxVertexHandler.prototype.updateLinkHint=function(c,d){if(null==c&&(null==d||0==d.length)||1<this.graph.getSelectionCount())null!=this.linkHint&&(this.linkHint.parentNode.removeChild(this.linkHint),this.linkHint=null);else if(null!=c||null!=d&&0<d.length){null==this.linkHint&&(this.linkHint=a(),this.linkHint.style.padding="6px 8px 6px 8px",this.linkHint.style.opacity="1",this.linkHint.style.filter="",this.graph.container.appendChild(this.linkHint)); -this.linkHint.innerHTML="";if(null!=c&&(this.linkHint.appendChild(this.graph.createLinkForHint(c)),this.graph.isEnabled()&&"function"===typeof this.graph.editLink)){var b=document.createElement("img");b.setAttribute("src",Editor.editImage);b.setAttribute("title",mxResources.get("editLink"));b.setAttribute("width","11");b.setAttribute("height","11");b.style.marginLeft="10px";b.style.marginBottom="-1px";b.style.cursor="pointer";this.linkHint.appendChild(b);mxEvent.addListener(b,"click",mxUtils.bind(this, -function(a){this.graph.setSelectionCell(this.state.cell);this.graph.editLink();mxEvent.consume(a)}));b=document.createElement("img");b.setAttribute("src",Dialog.prototype.clearImage);b.setAttribute("title",mxResources.get("removeIt",[mxResources.get("link")]));b.setAttribute("width","13");b.setAttribute("height","10");b.style.marginLeft="4px";b.style.marginBottom="-1px";b.style.cursor="pointer";this.linkHint.appendChild(b);mxEvent.addListener(b,"click",mxUtils.bind(this,function(a){this.graph.setLinkForCell(this.state.cell, -null);mxEvent.consume(a)}))}if(null!=d)for(b=0;b<d.length;b++){var f=document.createElement("div");f.style.marginTop=null!=c||0<b?"6px":"0px";f.appendChild(this.graph.createLinkForHint(d[b].getAttribute("href"),mxUtils.getTextContent(d[b])));this.linkHint.appendChild(f)}}};mxEdgeHandler.prototype.updateLinkHint=mxVertexHandler.prototype.updateLinkHint;var K=mxEdgeHandler.prototype.init;mxEdgeHandler.prototype.init=function(){K.apply(this,arguments);this.constraintHandler.isEnabled=mxUtils.bind(this, -function(){return this.state.view.graph.connectionHandler.isEnabled()});var a=mxUtils.bind(this,function(){null!=this.linkHint&&(this.linkHint.style.display=1==this.graph.getSelectionCount()?"":"none");null!=this.labelShape&&(this.labelShape.node.style.display=this.graph.isEnabled()&&this.graph.getSelectionCount()<this.graph.graphHandler.maxCells?"":"none")});this.selectionHandler=mxUtils.bind(this,function(c,d){a()});this.graph.getSelectionModel().addListener(mxEvent.CHANGE,this.selectionHandler); -this.changeHandler=mxUtils.bind(this,function(c,d){this.updateLinkHint(this.graph.getLinkForCell(this.state.cell),this.graph.getLinksForState(this.state));a();this.redrawHandles()});this.graph.getModel().addListener(mxEvent.CHANGE,this.changeHandler);var c=this.graph.getLinkForCell(this.state.cell),d=this.graph.getLinksForState(this.state);if(null!=c||null!=d&&0<d.length)this.updateLinkHint(c,d),this.redrawHandles()};var x=mxConnectionHandler.prototype.init;mxConnectionHandler.prototype.init=function(){x.apply(this, -arguments);this.constraintHandler.isEnabled=mxUtils.bind(this,function(){return this.graph.connectionHandler.isEnabled()})};var C=mxVertexHandler.prototype.redrawHandles;mxVertexHandler.prototype.redrawHandles=function(){C.apply(this);if(null!=this.state&&null!=this.linkHint){var a=new mxPoint(this.state.getCenterX(),this.state.getCenterY()),c=new mxRectangle(this.state.x,this.state.y-22,this.state.width+24,this.state.height+22),d=mxUtils.getBoundingBox(c,this.state.style[mxConstants.STYLE_ROTATION]|| -"0",a),a=null!=d?mxUtils.getBoundingBox(this.state,this.state.style[mxConstants.STYLE_ROTATION]||"0"):this.state,c=null!=this.state.text?this.state.text.boundingBox:null;null==d&&(d=this.state);d=d.y+d.height;null!=c&&(d=Math.max(d,c.y+c.height));this.linkHint.style.left=Math.max(0,Math.round(a.x+(a.width-this.linkHint.clientWidth)/2))+"px";this.linkHint.style.top=Math.round(d+this.verticalOffset/2+6+this.state.view.graph.tolerance)+"px"}};var I=mxVertexHandler.prototype.reset;mxVertexHandler.prototype.reset= +this.rotationShape.node&&(this.rotationShape.node.style.display="none")};var B=mxVertexHandler.prototype.mouseUp;mxVertexHandler.prototype.mouseUp=function(a,c){B.apply(this,arguments);null!=this.rotationShape&&null!=this.rotationShape.node&&(this.rotationShape.node.style.display=1==this.graph.getSelectionCount()?"":"none")};var J=mxVertexHandler.prototype.init;mxVertexHandler.prototype.init=function(){J.apply(this,arguments);var a=!1;null!=this.rotationShape&&this.rotationShape.node.setAttribute("title", +mxResources.get("rotateTooltip"));var c=mxUtils.bind(this,function(){null!=this.rotationShape&&null!=this.rotationShape.node&&(this.rotationShape.node.style.display=1==this.graph.getSelectionCount()?"":"none");null!=this.specialHandle&&(this.specialHandle.node.style.display=this.graph.isEnabled()&&this.graph.getSelectionCount()<this.graph.graphHandler.maxCells?"":"none");this.redrawHandles()});this.selectionHandler=mxUtils.bind(this,function(a,b){c()});this.graph.getSelectionModel().addListener(mxEvent.CHANGE, +this.selectionHandler);this.changeHandler=mxUtils.bind(this,function(a,b){this.updateLinkHint(this.graph.getLinkForCell(this.state.cell),this.graph.getLinksForState(this.state));c()});this.graph.getModel().addListener(mxEvent.CHANGE,this.changeHandler);this.editingHandler=mxUtils.bind(this,function(a,c){this.redrawHandles()});this.graph.addListener(mxEvent.EDITING_STOPPED,this.editingHandler);var b=this.graph.getLinkForCell(this.state.cell),d=this.graph.getLinksForState(this.state);this.updateLinkHint(b, +d);if(null!=b||null!=d&&0<d.length)a=!0;a&&this.redrawHandles()};mxVertexHandler.prototype.updateLinkHint=function(c,b){if(null==c&&(null==b||0==b.length)||1<this.graph.getSelectionCount())null!=this.linkHint&&(this.linkHint.parentNode.removeChild(this.linkHint),this.linkHint=null);else if(null!=c||null!=b&&0<b.length){null==this.linkHint&&(this.linkHint=a(),this.linkHint.style.padding="6px 8px 6px 8px",this.linkHint.style.opacity="1",this.linkHint.style.filter="",this.graph.container.appendChild(this.linkHint)); +this.linkHint.innerHTML="";if(null!=c&&(this.linkHint.appendChild(this.graph.createLinkForHint(c)),this.graph.isEnabled()&&"function"===typeof this.graph.editLink)){var d=document.createElement("img");d.setAttribute("src",Editor.editImage);d.setAttribute("title",mxResources.get("editLink"));d.setAttribute("width","11");d.setAttribute("height","11");d.style.marginLeft="10px";d.style.marginBottom="-1px";d.style.cursor="pointer";this.linkHint.appendChild(d);mxEvent.addListener(d,"click",mxUtils.bind(this, +function(a){this.graph.setSelectionCell(this.state.cell);this.graph.editLink();mxEvent.consume(a)}));d=document.createElement("img");d.setAttribute("src",Dialog.prototype.clearImage);d.setAttribute("title",mxResources.get("removeIt",[mxResources.get("link")]));d.setAttribute("width","13");d.setAttribute("height","10");d.style.marginLeft="4px";d.style.marginBottom="-1px";d.style.cursor="pointer";this.linkHint.appendChild(d);mxEvent.addListener(d,"click",mxUtils.bind(this,function(a){this.graph.setLinkForCell(this.state.cell, +null);mxEvent.consume(a)}))}if(null!=b)for(d=0;d<b.length;d++){var f=document.createElement("div");f.style.marginTop=null!=c||0<d?"6px":"0px";f.appendChild(this.graph.createLinkForHint(b[d].getAttribute("href"),mxUtils.getTextContent(b[d])));this.linkHint.appendChild(f)}}};mxEdgeHandler.prototype.updateLinkHint=mxVertexHandler.prototype.updateLinkHint;var K=mxEdgeHandler.prototype.init;mxEdgeHandler.prototype.init=function(){K.apply(this,arguments);this.constraintHandler.isEnabled=mxUtils.bind(this, +function(){return this.state.view.graph.connectionHandler.isEnabled()});var a=mxUtils.bind(this,function(){null!=this.linkHint&&(this.linkHint.style.display=1==this.graph.getSelectionCount()?"":"none");null!=this.labelShape&&(this.labelShape.node.style.display=this.graph.isEnabled()&&this.graph.getSelectionCount()<this.graph.graphHandler.maxCells?"":"none")});this.selectionHandler=mxUtils.bind(this,function(c,b){a()});this.graph.getSelectionModel().addListener(mxEvent.CHANGE,this.selectionHandler); +this.changeHandler=mxUtils.bind(this,function(c,b){this.updateLinkHint(this.graph.getLinkForCell(this.state.cell),this.graph.getLinksForState(this.state));a();this.redrawHandles()});this.graph.getModel().addListener(mxEvent.CHANGE,this.changeHandler);var c=this.graph.getLinkForCell(this.state.cell),b=this.graph.getLinksForState(this.state);if(null!=c||null!=b&&0<b.length)this.updateLinkHint(c,b),this.redrawHandles()};var x=mxConnectionHandler.prototype.init;mxConnectionHandler.prototype.init=function(){x.apply(this, +arguments);this.constraintHandler.isEnabled=mxUtils.bind(this,function(){return this.graph.connectionHandler.isEnabled()})};var C=mxVertexHandler.prototype.redrawHandles;mxVertexHandler.prototype.redrawHandles=function(){C.apply(this);if(null!=this.state&&null!=this.linkHint){var a=new mxPoint(this.state.getCenterX(),this.state.getCenterY()),c=new mxRectangle(this.state.x,this.state.y-22,this.state.width+24,this.state.height+22),b=mxUtils.getBoundingBox(c,this.state.style[mxConstants.STYLE_ROTATION]|| +"0",a),a=null!=b?mxUtils.getBoundingBox(this.state,this.state.style[mxConstants.STYLE_ROTATION]||"0"):this.state,c=null!=this.state.text?this.state.text.boundingBox:null;null==b&&(b=this.state);b=b.y+b.height;null!=c&&(b=Math.max(b,c.y+c.height));this.linkHint.style.left=Math.max(0,Math.round(a.x+(a.width-this.linkHint.clientWidth)/2))+"px";this.linkHint.style.top=Math.round(b+this.verticalOffset/2+6+this.state.view.graph.tolerance)+"px"}};var I=mxVertexHandler.prototype.reset;mxVertexHandler.prototype.reset= function(){I.apply(this,arguments);null!=this.rotationShape&&null!=this.rotationShape.node&&(this.rotationShape.node.style.display=1==this.graph.getSelectionCount()?"":"none")};var R=mxVertexHandler.prototype.destroy;mxVertexHandler.prototype.destroy=function(){R.apply(this,arguments);null!=this.linkHint&&(this.linkHint.parentNode.removeChild(this.linkHint),this.linkHint=null);null!=this.selectionHandler&&(this.graph.getSelectionModel().removeListener(this.selectionHandler),this.selectionHandler= null);null!=this.changeHandler&&(this.graph.getModel().removeListener(this.changeHandler),this.changeHandler=null);null!=this.editingHandler&&(this.graph.removeListener(this.editingHandler),this.editingHandler=null)};var P=mxEdgeHandler.prototype.redrawHandles;mxEdgeHandler.prototype.redrawHandles=function(){if(null!=this.marker&&(P.apply(this),null!=this.state&&null!=this.linkHint)){var a=this.state;null!=this.state.text&&null!=this.state.text.bounds&&(a=new mxRectangle(a.x,a.y,a.width,a.height), a.add(this.state.text.bounds));this.linkHint.style.left=Math.max(0,Math.round(a.x+(a.width-this.linkHint.clientWidth)/2))+"px";this.linkHint.style.top=Math.round(a.y+a.height+6+this.state.view.graph.tolerance)+"px"}};var X=mxEdgeHandler.prototype.reset;mxEdgeHandler.prototype.reset=function(){X.apply(this,arguments);null!=this.linkHint&&(this.linkHint.style.visibility="")};var U=mxEdgeHandler.prototype.destroy;mxEdgeHandler.prototype.destroy=function(){U.apply(this,arguments);null!=this.linkHint&& -(this.linkHint.parentNode.removeChild(this.linkHint),this.linkHint=null);null!=this.selectionHandler&&(this.graph.getSelectionModel().removeListener(this.selectionHandler),this.selectionHandler=null);null!=this.changeHandler&&(this.graph.getModel().removeListener(this.changeHandler),this.changeHandler=null)}}();(function(){function a(){mxCylinder.call(this)}function d(){mxActor.call(this)}function e(){mxCylinder.call(this)}function b(){mxCylinder.call(this)}function h(){mxCylinder.call(this)}function m(){mxActor.call(this)}function p(){mxCylinder.call(this)}function q(){mxActor.call(this)}function u(){mxActor.call(this)}function c(){mxActor.call(this)}function f(){mxActor.call(this)}function g(){mxActor.call(this)}function k(){mxActor.call(this)}function r(){mxActor.call(this)}function l(a,c){this.canvas= -a;this.canvas.setLineJoin("round");this.canvas.setLineCap("round");this.defaultVariation=c;this.originalLineTo=this.canvas.lineTo;this.canvas.lineTo=mxUtils.bind(this,l.prototype.lineTo);this.originalMoveTo=this.canvas.moveTo;this.canvas.moveTo=mxUtils.bind(this,l.prototype.moveTo);this.originalClose=this.canvas.close;this.canvas.close=mxUtils.bind(this,l.prototype.close);this.originalQuadTo=this.canvas.quadTo;this.canvas.quadTo=mxUtils.bind(this,l.prototype.quadTo);this.originalCurveTo=this.canvas.curveTo; -this.canvas.curveTo=mxUtils.bind(this,l.prototype.curveTo);this.originalArcTo=this.canvas.arcTo;this.canvas.arcTo=mxUtils.bind(this,l.prototype.arcTo)}function n(){mxRectangleShape.call(this)}function w(){mxRectangleShape.call(this)}function v(){mxActor.call(this)}function B(){mxActor.call(this)}function y(){mxActor.call(this)}function t(){mxRectangleShape.call(this)}function z(){mxRectangleShape.call(this)}function H(){mxCylinder.call(this)}function G(){mxShape.call(this)}function A(){mxShape.call(this)} +(this.linkHint.parentNode.removeChild(this.linkHint),this.linkHint=null);null!=this.selectionHandler&&(this.graph.getSelectionModel().removeListener(this.selectionHandler),this.selectionHandler=null);null!=this.changeHandler&&(this.graph.getModel().removeListener(this.changeHandler),this.changeHandler=null)}}();(function(){function a(){mxCylinder.call(this)}function b(){mxActor.call(this)}function e(){mxCylinder.call(this)}function d(){mxCylinder.call(this)}function k(){mxCylinder.call(this)}function l(){mxActor.call(this)}function p(){mxCylinder.call(this)}function q(){mxActor.call(this)}function u(){mxActor.call(this)}function c(){mxActor.call(this)}function f(){mxActor.call(this)}function g(){mxActor.call(this)}function n(){mxActor.call(this)}function r(){mxActor.call(this)}function h(a,c){this.canvas= +a;this.canvas.setLineJoin("round");this.canvas.setLineCap("round");this.defaultVariation=c;this.originalLineTo=this.canvas.lineTo;this.canvas.lineTo=mxUtils.bind(this,h.prototype.lineTo);this.originalMoveTo=this.canvas.moveTo;this.canvas.moveTo=mxUtils.bind(this,h.prototype.moveTo);this.originalClose=this.canvas.close;this.canvas.close=mxUtils.bind(this,h.prototype.close);this.originalQuadTo=this.canvas.quadTo;this.canvas.quadTo=mxUtils.bind(this,h.prototype.quadTo);this.originalCurveTo=this.canvas.curveTo; +this.canvas.curveTo=mxUtils.bind(this,h.prototype.curveTo);this.originalArcTo=this.canvas.arcTo;this.canvas.arcTo=mxUtils.bind(this,h.prototype.arcTo)}function m(){mxRectangleShape.call(this)}function w(){mxRectangleShape.call(this)}function v(){mxActor.call(this)}function A(){mxActor.call(this)}function y(){mxActor.call(this)}function t(){mxRectangleShape.call(this)}function z(){mxRectangleShape.call(this)}function H(){mxCylinder.call(this)}function G(){mxShape.call(this)}function B(){mxShape.call(this)} function J(){mxEllipse.call(this)}function K(){mxShape.call(this)}function x(){mxShape.call(this)}function C(){mxRectangleShape.call(this)}function I(){mxShape.call(this)}function R(){mxShape.call(this)}function P(){mxShape.call(this)}function X(){mxShape.call(this)}function U(){mxShape.call(this)}function F(){mxCylinder.call(this)}function ea(){mxDoubleEllipse.call(this)}function ka(){mxDoubleEllipse.call(this)}function Y(){mxArrowConnector.call(this);this.spacing=0}function ba(){mxArrowConnector.call(this); this.spacing=0}function L(){mxActor.call(this)}function E(){mxRectangleShape.call(this)}function S(){mxActor.call(this)}function M(){mxActor.call(this)}function N(){mxActor.call(this)}function T(){mxActor.call(this)}function D(){mxActor.call(this)}function Q(){mxActor.call(this)}function V(){mxActor.call(this)}function ga(){mxActor.call(this)}function W(){mxActor.call(this)}function aa(){mxActor.call(this)}function Z(){mxEllipse.call(this)}function pa(){mxEllipse.call(this)}function ra(){mxEllipse.call(this)} -function fa(){mxRhombus.call(this)}function ma(){mxEllipse.call(this)}function ta(){mxEllipse.call(this)}function la(){mxEllipse.call(this)}function sa(){mxEllipse.call(this)}function ha(){mxActor.call(this)}function ca(){mxActor.call(this)}function da(){mxActor.call(this)}function ia(){mxConnector.call(this)}function wa(a,c,d,b,f,e,g,k,l,n){g+=l;var na=b.clone();b.x-=f*(2*g+l);b.y-=e*(2*g+l);f*=g+l;e*=g+l;return function(){a.ellipse(na.x-f-g,na.y-e-g,2*g,2*g);n?a.fillAndStroke():a.stroke()}}mxUtils.extend(a, -mxCylinder);a.prototype.size=20;a.prototype.redrawPath=function(a,c,d,b,f,e){c=Math.max(0,Math.min(b,Math.min(f,parseFloat(mxUtils.getValue(this.style,"size",this.size)))));e?(a.moveTo(c,f),a.lineTo(c,c),a.lineTo(0,0),a.moveTo(c,c),a.lineTo(b,c)):(a.moveTo(0,0),a.lineTo(b-c,0),a.lineTo(b,c),a.lineTo(b,f),a.lineTo(c,f),a.lineTo(0,f-c),a.lineTo(0,0),a.close());a.end()};a.prototype.getLabelMargins=function(a){return mxUtils.getValue(this.style,"boundedLbl",!1)?(a=parseFloat(mxUtils.getValue(this.style, -"size",this.size))*this.scale,new mxRectangle(a,a,0,0)):null};mxCellRenderer.registerShape("cube",a);var Ba=Math.tan(mxUtils.toRadians(30)),qa=(.5-Ba)/2;mxUtils.extend(d,mxActor);d.prototype.size=20;d.prototype.redrawPath=function(a,c,d,b,f){c=Math.min(b,f/Ba);a.translate((b-c)/2,(f-c)/2+c/4);a.moveTo(0,.25*c);a.lineTo(.5*c,c*qa);a.lineTo(c,.25*c);a.lineTo(.5*c,(.5-qa)*c);a.lineTo(0,.25*c);a.close();a.end()};mxCellRenderer.registerShape("isoRectangle",d);mxUtils.extend(e,mxCylinder);e.prototype.size= -20;e.prototype.redrawPath=function(a,c,d,b,f,e){c=Math.min(b,f/(.5+Ba));e?(a.moveTo(0,.25*c),a.lineTo(.5*c,(.5-qa)*c),a.lineTo(c,.25*c),a.moveTo(.5*c,(.5-qa)*c),a.lineTo(.5*c,(1-qa)*c)):(a.translate((b-c)/2,(f-c)/2),a.moveTo(0,.25*c),a.lineTo(.5*c,c*qa),a.lineTo(c,.25*c),a.lineTo(c,.75*c),a.lineTo(.5*c,(1-qa)*c),a.lineTo(0,.75*c),a.close());a.end()};mxCellRenderer.registerShape("isoCube",e);mxUtils.extend(b,mxCylinder);b.prototype.redrawPath=function(a,c,d,b,f,e){c=Math.min(f/2,Math.round(f/8)+this.strokewidth- -1);if(e&&null!=this.fill||!e&&null==this.fill)a.moveTo(0,c),a.curveTo(0,2*c,b,2*c,b,c),e||(a.stroke(),a.begin()),a.translate(0,c/2),a.moveTo(0,c),a.curveTo(0,2*c,b,2*c,b,c),e||(a.stroke(),a.begin()),a.translate(0,c/2),a.moveTo(0,c),a.curveTo(0,2*c,b,2*c,b,c),e||(a.stroke(),a.begin()),a.translate(0,-c);e||(a.moveTo(0,c),a.curveTo(0,-c/3,b,-c/3,b,c),a.lineTo(b,f-c),a.curveTo(b,f+c/3,0,f+c/3,0,f-c),a.close())};b.prototype.getLabelMargins=function(a){return new mxRectangle(0,2.5*Math.min(a.height/2,Math.round(a.height/ -8)+this.strokewidth-1)*this.scale,0,0)};mxCellRenderer.registerShape("datastore",b);mxUtils.extend(h,mxCylinder);h.prototype.size=30;h.prototype.redrawPath=function(a,c,d,b,f,e){c=Math.max(0,Math.min(b,Math.min(f,parseFloat(mxUtils.getValue(this.style,"size",this.size)))));e?(a.moveTo(b-c,0),a.lineTo(b-c,c),a.lineTo(b,c)):(a.moveTo(0,0),a.lineTo(b-c,0),a.lineTo(b,c),a.lineTo(b,f),a.lineTo(0,f),a.lineTo(0,0),a.close());a.end()};mxCellRenderer.registerShape("note",h);mxUtils.extend(m,mxActor);m.prototype.redrawPath= -function(a,c,d,b,f){a.moveTo(0,0);a.quadTo(b/2,.5*f,b,0);a.quadTo(.5*b,f/2,b,f);a.quadTo(b/2,.5*f,0,f);a.quadTo(.5*b,f/2,0,0);a.end()};mxCellRenderer.registerShape("switch",m);mxUtils.extend(p,mxCylinder);p.prototype.tabWidth=60;p.prototype.tabHeight=20;p.prototype.tabPosition="right";p.prototype.redrawPath=function(a,c,d,b,f,e){c=Math.max(0,Math.min(b,parseFloat(mxUtils.getValue(this.style,"tabWidth",this.tabWidth))));d=Math.max(0,Math.min(f,parseFloat(mxUtils.getValue(this.style,"tabHeight",this.tabHeight)))); -var g=mxUtils.getValue(this.style,"tabPosition",this.tabPosition);e?"left"==g?(a.moveTo(0,d),a.lineTo(c,d)):(a.moveTo(b-c,d),a.lineTo(b,d)):("left"==g?(a.moveTo(0,0),a.lineTo(c,0),a.lineTo(c,d),a.lineTo(b,d)):(a.moveTo(0,d),a.lineTo(b-c,d),a.lineTo(b-c,0),a.lineTo(b,0)),a.lineTo(b,f),a.lineTo(0,f),a.lineTo(0,d),a.close());a.end()};mxCellRenderer.registerShape("folder",p);mxUtils.extend(q,mxActor);q.prototype.size=30;q.prototype.isRoundable=function(){return!0};q.prototype.redrawPath=function(a,c, -d,b,f){c=Math.max(0,Math.min(b,Math.min(f,parseFloat(mxUtils.getValue(this.style,"size",this.size)))));d=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(c,0),new mxPoint(b,0),new mxPoint(b,f),new mxPoint(0,f),new mxPoint(0,c)],this.isRounded,d,!0);a.end()};mxCellRenderer.registerShape("card",q);mxUtils.extend(u,mxActor);u.prototype.size=.4;u.prototype.redrawPath=function(a,c,d,b,f){c=f*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style, -"size",this.size))));a.moveTo(0,c/2);a.quadTo(b/4,1.4*c,b/2,c/2);a.quadTo(3*b/4,c*(1-1.4),b,c/2);a.lineTo(b,f-c/2);a.quadTo(3*b/4,f-1.4*c,b/2,f-c/2);a.quadTo(b/4,f-c*(1-1.4),0,f-c/2);a.lineTo(0,c/2);a.close();a.end()};u.prototype.getLabelBounds=function(a){if(mxUtils.getValue(this.style,"boundedLbl",!1)){var c=mxUtils.getValue(this.style,"size",this.size),d=a.width,b=a.height;if(null==this.direction||this.direction==mxConstants.DIRECTION_EAST||this.direction==mxConstants.DIRECTION_WEST)return c*= -b,new mxRectangle(a.x,a.y+c,d,b-2*c);c*=d;return new mxRectangle(a.x+c,a.y,d-2*c,b)}return a};mxCellRenderer.registerShape("tape",u);mxUtils.extend(c,mxActor);c.prototype.size=.3;c.prototype.getLabelMargins=function(a){return mxUtils.getValue(this.style,"boundedLbl",!1)?new mxRectangle(0,0,0,parseFloat(mxUtils.getValue(this.style,"size",this.size))*a.height):null};c.prototype.redrawPath=function(a,c,d,b,f){c=f*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));a.moveTo(0, -0);a.lineTo(b,0);a.lineTo(b,f-c/2);a.quadTo(3*b/4,f-1.4*c,b/2,f-c/2);a.quadTo(b/4,f-c*(1-1.4),0,f-c/2);a.lineTo(0,c/2);a.close();a.end()};mxCellRenderer.registerShape("document",c);var Ga=mxCylinder.prototype.getCylinderSize;mxCylinder.prototype.getCylinderSize=function(a,c,d,b){var f=mxUtils.getValue(this.style,"size");return null!=f?b*Math.max(0,Math.min(1,f)):Ga.apply(this,arguments)};mxCylinder.prototype.getLabelMargins=function(a){if(mxUtils.getValue(this.style,"boundedLbl",!1)){var c=2*mxUtils.getValue(this.style, -"size",.15);return new mxRectangle(0,Math.min(this.maxHeight*this.scale,a.height*c),0,0)}return null};mxUtils.extend(f,mxActor);f.prototype.size=.2;f.prototype.isRoundable=function(){return!0};f.prototype.redrawPath=function(a,c,d,b,f){c=b*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));d=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,f),new mxPoint(c,0),new mxPoint(b,0),new mxPoint(b-c,f)],this.isRounded, -d,!0);a.end()};mxCellRenderer.registerShape("parallelogram",f);mxUtils.extend(g,mxActor);g.prototype.size=.2;g.prototype.isRoundable=function(){return!0};g.prototype.redrawPath=function(a,c,d,b,f){c=b*Math.max(0,Math.min(.5,parseFloat(mxUtils.getValue(this.style,"size",this.size))));d=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,f),new mxPoint(c,0),new mxPoint(b-c,0),new mxPoint(b,f)],this.isRounded,d,!0)};mxCellRenderer.registerShape("trapezoid", -g);mxUtils.extend(k,mxActor);k.prototype.size=.5;k.prototype.redrawPath=function(a,c,d,b,f){a.setFillColor(null);c=b*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));d=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(b,0),new mxPoint(c,0),new mxPoint(c,f/2),new mxPoint(0,f/2),new mxPoint(c,f/2),new mxPoint(c,f),new mxPoint(b,f)],this.isRounded,d,!1);a.end()};mxCellRenderer.registerShape("curlyBracket", -k);mxUtils.extend(r,mxActor);r.prototype.redrawPath=function(a,c,d,b,f){a.setStrokeWidth(1);a.setFillColor(this.stroke);c=b/5;a.rect(0,0,c,f);a.fillAndStroke();a.rect(2*c,0,c,f);a.fillAndStroke();a.rect(4*c,0,c,f);a.fillAndStroke()};mxCellRenderer.registerShape("parallelMarker",r);l.prototype.moveTo=function(a,c){this.originalMoveTo.apply(this.canvas,arguments);this.lastX=a;this.lastY=c;this.firstX=a;this.firstY=c};l.prototype.close=function(){null!=this.firstX&&null!=this.firstY&&(this.lineTo(this.firstX, -this.firstY),this.originalClose.apply(this.canvas,arguments));this.originalClose.apply(this.canvas,arguments)};l.prototype.quadTo=function(a,c,d,b){this.originalQuadTo.apply(this.canvas,arguments);this.lastX=d;this.lastY=b};l.prototype.curveTo=function(a,c,d,b,f,e){this.originalCurveTo.apply(this.canvas,arguments);this.lastX=f;this.lastY=e};l.prototype.arcTo=function(a,c,d,b,f,e,g){this.originalArcTo.apply(this.canvas,arguments);this.lastX=e;this.lastY=g};l.prototype.lineTo=function(a,c){if(null!= -this.lastX&&null!=this.lastY){var d=function(a){return"number"===typeof a?a?0>a?-1:1:a===a?0:NaN:NaN},b=Math.abs(a-this.lastX),f=Math.abs(c-this.lastY),e=Math.sqrt(b*b+f*f);if(2>e){this.originalLineTo.apply(this.canvas,arguments);this.lastX=a;this.lastY=c;return}var g=Math.round(e/10),na=this.defaultVariation;5>g&&(g=5,na/=3);for(var k=d(a-this.lastX)*b/g,d=d(c-this.lastY)*f/g,b=b/e,f=f/e,e=0;e<g;e++){var l=(Math.random()-.5)*na;this.originalLineTo.call(this.canvas,k*e+this.lastX-l*f,d*e+this.lastY- -l*b)}this.originalLineTo.call(this.canvas,a,c)}else this.originalLineTo.apply(this.canvas,arguments);this.lastX=a;this.lastY=c};l.prototype.destroy=function(){this.canvas.lineTo=this.originalLineTo;this.canvas.moveTo=this.originalMoveTo;this.canvas.close=this.originalClose;this.canvas.quadTo=this.originalQuadTo;this.canvas.curveTo=this.originalCurveTo;this.canvas.arcTo=this.originalArcTo};var Ha=mxShape.prototype.paint;mxShape.prototype.defaultJiggle=1.5;mxShape.prototype.paint=function(a){null!= -this.style&&"0"!=mxUtils.getValue(this.style,"comic","0")&&null==a.handHiggle&&(a.handJiggle=new l(a,mxUtils.getValue(this.style,"jiggle",this.defaultJiggle)));Ha.apply(this,arguments);null!=a.handJiggle&&(a.handJiggle.destroy(),delete a.handJiggle)};mxRhombus.prototype.defaultJiggle=2;var Ia=mxRectangleShape.prototype.isHtmlAllowed;mxRectangleShape.prototype.isHtmlAllowed=function(){return(null==this.style||"0"==mxUtils.getValue(this.style,"comic","0"))&&Ia.apply(this,arguments)};var Ja=mxRectangleShape.prototype.paintBackground; -mxRectangleShape.prototype.paintBackground=function(a,c,d,b,f){if(null==a.handJiggle)Ja.apply(this,arguments);else{var e=!0;null!=this.style&&(e="1"==mxUtils.getValue(this.style,mxConstants.STYLE_POINTER_EVENTS,"1"));if(e||null!=this.fill&&this.fill!=mxConstants.NONE||null!=this.stroke&&this.stroke!=mxConstants.NONE)e||null!=this.fill&&this.fill!=mxConstants.NONE||(a.pointerEvents=!1),a.begin(),this.isRounded?("1"==mxUtils.getValue(this.style,mxConstants.STYLE_ABSOLUTE_ARCSIZE,0)?e=Math.min(b/2,Math.min(f/ -2,mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2)):(e=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100,e=Math.min(b*e,f*e)),a.moveTo(c+e,d),a.lineTo(c+b-e,d),a.quadTo(c+b,d,c+b,d+e),a.lineTo(c+b,d+f-e),a.quadTo(c+b,d+f,c+b-e,d+f),a.lineTo(c+e,d+f),a.quadTo(c,d+f,c,d+f-e),a.lineTo(c,d+e),a.quadTo(c,d,c+e,d)):(a.moveTo(c,d),a.lineTo(c+b,d),a.lineTo(c+b,d+f),a.lineTo(c,d+f),a.lineTo(c,d)),a.close(),a.end(),a.fillAndStroke()}}; -var Ka=mxRectangleShape.prototype.paintForeground;mxRectangleShape.prototype.paintForeground=function(a,c,d,b,f){null==a.handJiggle&&Ka.apply(this,arguments)};mxUtils.extend(n,mxRectangleShape);n.prototype.size=.1;n.prototype.isHtmlAllowed=function(){return!1};n.prototype.getLabelBounds=function(a){if(mxUtils.getValue(this.state.style,mxConstants.STYLE_HORIZONTAL,!0)==(null==this.direction||this.direction==mxConstants.DIRECTION_EAST||this.direction==mxConstants.DIRECTION_WEST)){var c=a.width,d=a.height; -a=new mxRectangle(a.x,a.y,c,d);var b=c*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));if(this.isRounded)var f=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100,b=Math.max(b,Math.min(c*f,d*f));a.x+=Math.round(b);a.width-=Math.round(2*b)}return a};n.prototype.paintForeground=function(a,c,d,b,f){var e=b*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));if(this.isRounded)var g=mxUtils.getValue(this.style, -mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100,e=Math.max(e,Math.min(b*g,f*g));e=Math.round(e);a.begin();a.moveTo(c+e,d);a.lineTo(c+e,d+f);a.moveTo(c+b-e,d);a.lineTo(c+b-e,d+f);a.end();a.stroke();mxRectangleShape.prototype.paintForeground.apply(this,arguments)};mxCellRenderer.registerShape("process",n);mxUtils.extend(w,mxRectangleShape);w.prototype.paintBackground=function(a,c,d,b,f){a.setFillColor(mxConstants.NONE);a.rect(c,d,b,f);a.fill()};w.prototype.paintForeground=function(a, -c,d,b,f){};mxCellRenderer.registerShape("transparent",w);mxUtils.extend(v,mxHexagon);v.prototype.size=30;v.prototype.position=.5;v.prototype.position2=.5;v.prototype.base=20;v.prototype.getLabelMargins=function(){return new mxRectangle(0,0,0,parseFloat(mxUtils.getValue(this.style,"size",this.size))*this.scale)};v.prototype.isRoundable=function(){return!0};v.prototype.redrawPath=function(a,c,d,b,f){c=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;d=Math.max(0,Math.min(f, -parseFloat(mxUtils.getValue(this.style,"size",this.size))));var e=b*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"position",this.position)))),g=b*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"position2",this.position2)))),k=Math.max(0,Math.min(b,parseFloat(mxUtils.getValue(this.style,"base",this.base))));this.addPoints(a,[new mxPoint(0,0),new mxPoint(b,0),new mxPoint(b,f-d),new mxPoint(Math.min(b,e+k),f-d),new mxPoint(g,f),new mxPoint(Math.max(0,e),f-d),new mxPoint(0, -f-d)],this.isRounded,c,!0,[4])};mxCellRenderer.registerShape("callout",v);mxUtils.extend(B,mxActor);B.prototype.size=.2;B.prototype.fixedSize=20;B.prototype.isRoundable=function(){return!0};B.prototype.redrawPath=function(a,c,d,b,f){c="0"!=mxUtils.getValue(this.style,"fixedSize","0")?Math.max(0,Math.min(b,parseFloat(mxUtils.getValue(this.style,"size",this.fixedSize)))):b*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));d=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE, -mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,0),new mxPoint(b-c,0),new mxPoint(b,f/2),new mxPoint(b-c,f),new mxPoint(0,f),new mxPoint(c,f/2)],this.isRounded,d,!0);a.end()};mxCellRenderer.registerShape("step",B);mxUtils.extend(y,mxHexagon);y.prototype.size=.25;y.prototype.isRoundable=function(){return!0};y.prototype.redrawPath=function(a,c,d,b,f){c=b*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));d=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE, -mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(c,0),new mxPoint(b-c,0),new mxPoint(b,.5*f),new mxPoint(b-c,f),new mxPoint(c,f),new mxPoint(0,.5*f)],this.isRounded,d,!0)};mxCellRenderer.registerShape("hexagon",y);mxUtils.extend(t,mxRectangleShape);t.prototype.isHtmlAllowed=function(){return!1};t.prototype.paintForeground=function(a,c,d,b,f){var e=Math.min(b/5,f/5)+1;a.begin();a.moveTo(c+b/2,d+e);a.lineTo(c+b/2,d+f-e);a.moveTo(c+e,d+f/2);a.lineTo(c+b-e,d+f/2);a.end();a.stroke();mxRectangleShape.prototype.paintForeground.apply(this, -arguments)};mxCellRenderer.registerShape("plus",t);var Ea=mxRhombus.prototype.paintVertexShape;mxRhombus.prototype.getLabelBounds=function(a){if(1==this.style["double"]){var c=(2*Math.max(2,this.strokewidth+1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||0))*this.scale;return new mxRectangle(a.x+c,a.y+c,a.width-2*c,a.height-2*c)}return a};mxRhombus.prototype.paintVertexShape=function(a,c,d,b,f){Ea.apply(this,arguments);if(!this.outline&&1==this.style["double"]){var e=2*Math.max(2,this.strokewidth+ -1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||0);c+=e;d+=e;b-=2*e;f-=2*e;0<b&&0<f&&(a.setShadow(!1),Ea.apply(this,[a,c,d,b,f]))}};mxUtils.extend(z,mxRectangleShape);z.prototype.isHtmlAllowed=function(){return!1};z.prototype.getLabelBounds=function(a){if(1==this.style["double"]){var c=(Math.max(2,this.strokewidth+1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||0))*this.scale;return new mxRectangle(a.x+c,a.y+c,a.width-2*c,a.height-2*c)}return a};z.prototype.paintForeground=function(a,c,d, -b,f){if(null!=this.style){if(!this.outline&&1==this.style["double"]){var e=Math.max(2,this.strokewidth+1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||0);c+=e;d+=e;b-=2*e;f-=2*e;0<b&&0<f&&mxRectangleShape.prototype.paintBackground.apply(this,arguments)}a.setDashed(!1);var e=0,g;do{g=mxCellRenderer.defaultShapes[this.style["symbol"+e]];if(null!=g){var k=this.style["symbol"+e+"Align"],na=this.style["symbol"+e+"VerticalAlign"],l=this.style["symbol"+e+"Width"],n=this.style["symbol"+e+"Height"],t= -this.style["symbol"+e+"Spacing"]||0,r=this.style["symbol"+e+"VSpacing"]||t,y=this.style["symbol"+e+"ArcSpacing"];null!=y&&(y*=this.getArcSize(b+this.strokewidth,f+this.strokewidth),t+=y,r+=y);var y=c,h=d,y=k==mxConstants.ALIGN_CENTER?y+(b-l)/2:k==mxConstants.ALIGN_RIGHT?y+(b-l-t):y+t,h=na==mxConstants.ALIGN_MIDDLE?h+(f-n)/2:na==mxConstants.ALIGN_BOTTOM?h+(f-n-r):h+r;a.save();k=new g;k.style=this.style;g.prototype.paintVertexShape.call(k,a,y,h,l,n);a.restore()}e++}while(null!=g)}mxRectangleShape.prototype.paintForeground.apply(this, -arguments)};mxCellRenderer.registerShape("ext",z);mxUtils.extend(H,mxCylinder);H.prototype.redrawPath=function(a,c,d,b,f,e){e?(a.moveTo(0,0),a.lineTo(b/2,f/2),a.lineTo(b,0),a.end()):(a.moveTo(0,0),a.lineTo(b,0),a.lineTo(b,f),a.lineTo(0,f),a.close())};mxCellRenderer.registerShape("message",H);mxUtils.extend(G,mxShape);G.prototype.paintBackground=function(a,c,d,b,f){a.translate(c,d);a.ellipse(b/4,0,b/2,f/4);a.fillAndStroke();a.begin();a.moveTo(b/2,f/4);a.lineTo(b/2,2*f/3);a.moveTo(b/2,f/3);a.lineTo(0, -f/3);a.moveTo(b/2,f/3);a.lineTo(b,f/3);a.moveTo(b/2,2*f/3);a.lineTo(0,f);a.moveTo(b/2,2*f/3);a.lineTo(b,f);a.end();a.stroke()};mxCellRenderer.registerShape("umlActor",G);mxUtils.extend(A,mxShape);A.prototype.getLabelMargins=function(a){return new mxRectangle(a.width/6,0,0,0)};A.prototype.paintBackground=function(a,c,d,b,f){a.translate(c,d);a.begin();a.moveTo(0,f/4);a.lineTo(0,3*f/4);a.end();a.stroke();a.begin();a.moveTo(0,f/2);a.lineTo(b/6,f/2);a.end();a.stroke();a.ellipse(b/6,0,5*b/6,f);a.fillAndStroke()}; -mxCellRenderer.registerShape("umlBoundary",A);mxUtils.extend(J,mxEllipse);J.prototype.paintVertexShape=function(a,c,d,b,f){mxEllipse.prototype.paintVertexShape.apply(this,arguments);a.begin();a.moveTo(c+b/8,d+f);a.lineTo(c+7*b/8,d+f);a.end();a.stroke()};mxCellRenderer.registerShape("umlEntity",J);mxUtils.extend(K,mxShape);K.prototype.paintVertexShape=function(a,c,d,b,f){a.translate(c,d);a.begin();a.moveTo(b,0);a.lineTo(0,f);a.moveTo(0,0);a.lineTo(b,f);a.end();a.stroke()};mxCellRenderer.registerShape("umlDestroy", -K);mxUtils.extend(x,mxShape);x.prototype.getLabelBounds=function(a){return new mxRectangle(a.x,a.y+a.height/8,a.width,7*a.height/8)};x.prototype.paintBackground=function(a,c,d,b,f){a.translate(c,d);a.begin();a.moveTo(3*b/8,f/8*1.1);a.lineTo(5*b/8,0);a.end();a.stroke();a.ellipse(0,f/8,b,7*f/8);a.fillAndStroke()};x.prototype.paintForeground=function(a,c,d,b,f){a.begin();a.moveTo(3*b/8,f/8*1.1);a.lineTo(5*b/8,f/4);a.end();a.stroke()};mxCellRenderer.registerShape("umlControl",x);mxUtils.extend(C,mxRectangleShape); -C.prototype.size=40;C.prototype.isHtmlAllowed=function(){return!1};C.prototype.getLabelBounds=function(a){var c=Math.max(0,Math.min(a.height,parseFloat(mxUtils.getValue(this.style,"size",this.size))*this.scale));return new mxRectangle(a.x,a.y,a.width,c)};C.prototype.paintBackground=function(a,c,d,b,f){var e=Math.max(0,Math.min(f,parseFloat(mxUtils.getValue(this.style,"size",this.size)))),g=mxUtils.getValue(this.style,"participant");null==g||null==this.state?mxRectangleShape.prototype.paintBackground.call(this, -a,c,d,b,e):(g=this.state.view.graph.cellRenderer.getShape(g),null!=g&&g!=C&&(g=new g,g.apply(this.state),a.save(),g.paintVertexShape(a,c,d,b,e),a.restore()));e<f&&(a.setDashed(!0),a.begin(),a.moveTo(c+b/2,d+e),a.lineTo(c+b/2,d+f),a.end(),a.stroke())};C.prototype.paintForeground=function(a,c,d,b,f){var e=Math.max(0,Math.min(f,parseFloat(mxUtils.getValue(this.style,"size",this.size))));mxRectangleShape.prototype.paintForeground.call(this,a,c,d,b,Math.min(f,e))};mxCellRenderer.registerShape("umlLifeline", -C);mxUtils.extend(I,mxShape);I.prototype.width=60;I.prototype.height=30;I.prototype.corner=10;I.prototype.getLabelMargins=function(a){return new mxRectangle(0,0,a.width-parseFloat(mxUtils.getValue(this.style,"width",this.width)*this.scale),a.height-parseFloat(mxUtils.getValue(this.style,"height",this.height)*this.scale))};I.prototype.paintBackground=function(a,c,d,b,f){var e=this.corner,g=Math.min(b,Math.max(e,parseFloat(mxUtils.getValue(this.style,"width",this.width)))),k=Math.min(f,Math.max(1.5* -e,parseFloat(mxUtils.getValue(this.style,"height",this.height)))),l=mxUtils.getValue(this.style,mxConstants.STYLE_SWIMLANE_FILLCOLOR,mxConstants.NONE);l!=mxConstants.NONE&&(a.setFillColor(l),a.rect(c,d,b,f),a.fill());null!=this.fill&&this.fill!=mxConstants.NONE&&this.gradient&&this.gradient!=mxConstants.NONE?(this.getGradientBounds(a,c,d,b,f),a.setGradient(this.fill,this.gradient,c,d,b,f,this.gradientDirection)):a.setFillColor(this.fill);a.begin();a.moveTo(c,d);a.lineTo(c+g,d);a.lineTo(c+g,d+Math.max(0, -k-1.5*e));a.lineTo(c+Math.max(0,g-e),d+k);a.lineTo(c,d+k);a.close();a.fillAndStroke();a.begin();a.moveTo(c+g,d);a.lineTo(c+b,d);a.lineTo(c+b,d+f);a.lineTo(c,d+f);a.lineTo(c,d+k);a.stroke()};mxCellRenderer.registerShape("umlFrame",I);mxPerimeter.LifelinePerimeter=function(a,c,d,b){b=C.prototype.size;null!=c&&(b=mxUtils.getValue(c.style,"size",b)*c.view.scale);c=parseFloat(c.style[mxConstants.STYLE_STROKEWIDTH]||1)*c.view.scale/2-1;d.x<a.getCenterX()&&(c=-1*(c+1));return new mxPoint(a.getCenterX()+ -c,Math.min(a.y+a.height,Math.max(a.y+b,d.y)))};mxStyleRegistry.putValue("lifelinePerimeter",mxPerimeter.LifelinePerimeter);mxPerimeter.OrthogonalPerimeter=function(a,c,d,b){b=!0;return mxPerimeter.RectanglePerimeter.apply(this,arguments)};mxStyleRegistry.putValue("orthogonalPerimeter",mxPerimeter.OrthogonalPerimeter);mxPerimeter.BackbonePerimeter=function(a,c,d,b){b=parseFloat(c.style[mxConstants.STYLE_STROKEWIDTH]||1)*c.view.scale/2-1;null!=c.style.backboneSize&&(b+=parseFloat(c.style.backboneSize)* -c.view.scale/2-1);if("south"==c.style[mxConstants.STYLE_DIRECTION]||"north"==c.style[mxConstants.STYLE_DIRECTION])return d.x<a.getCenterX()&&(b=-1*(b+1)),new mxPoint(a.getCenterX()+b,Math.min(a.y+a.height,Math.max(a.y,d.y)));d.y<a.getCenterY()&&(b=-1*(b+1));return new mxPoint(Math.min(a.x+a.width,Math.max(a.x,d.x)),a.getCenterY()+b)};mxStyleRegistry.putValue("backbonePerimeter",mxPerimeter.BackbonePerimeter);mxPerimeter.CalloutPerimeter=function(a,c,d,b){return mxPerimeter.RectanglePerimeter(mxUtils.getDirectedBounds(a, -new mxRectangle(0,0,0,Math.max(0,Math.min(a.height,parseFloat(mxUtils.getValue(c.style,"size",v.prototype.size))*c.view.scale))),c.style),c,d,b)};mxStyleRegistry.putValue("calloutPerimeter",mxPerimeter.CalloutPerimeter);mxPerimeter.ParallelogramPerimeter=function(a,c,d,b){var e=f.prototype.size;null!=c&&(e=mxUtils.getValue(c.style,"size",e));var g=a.x,k=a.y,l=a.width,n=a.height;c=null!=c?mxUtils.getValue(c.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST):mxConstants.DIRECTION_EAST;c== -mxConstants.DIRECTION_NORTH||c==mxConstants.DIRECTION_SOUTH?(e=n*Math.max(0,Math.min(1,e)),k=[new mxPoint(g,k),new mxPoint(g+l,k+e),new mxPoint(g+l,k+n),new mxPoint(g,k+n-e),new mxPoint(g,k)]):(e=l*Math.max(0,Math.min(1,e)),k=[new mxPoint(g+e,k),new mxPoint(g+l,k),new mxPoint(g+l-e,k+n),new mxPoint(g,k+n),new mxPoint(g+e,k)]);n=a.getCenterX();a=a.getCenterY();a=new mxPoint(n,a);b&&(d.x<g||d.x>g+l?a.y=d.y:a.x=d.x);return mxUtils.getPerimeterPoint(k,a,d)};mxStyleRegistry.putValue("parallelogramPerimeter", -mxPerimeter.ParallelogramPerimeter);mxPerimeter.TrapezoidPerimeter=function(a,c,d,b){var f=g.prototype.size;null!=c&&(f=mxUtils.getValue(c.style,"size",f));var e=a.x,k=a.y,l=a.width,n=a.height;c=null!=c?mxUtils.getValue(c.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST):mxConstants.DIRECTION_EAST;c==mxConstants.DIRECTION_EAST?(f=l*Math.max(0,Math.min(1,f)),k=[new mxPoint(e+f,k),new mxPoint(e+l-f,k),new mxPoint(e+l,k+n),new mxPoint(e,k+n),new mxPoint(e+f,k)]):c==mxConstants.DIRECTION_WEST? -(f=l*Math.max(0,Math.min(1,f)),k=[new mxPoint(e,k),new mxPoint(e+l,k),new mxPoint(e+l-f,k+n),new mxPoint(e+f,k+n),new mxPoint(e,k)]):c==mxConstants.DIRECTION_NORTH?(f=n*Math.max(0,Math.min(1,f)),k=[new mxPoint(e,k+f),new mxPoint(e+l,k),new mxPoint(e+l,k+n),new mxPoint(e,k+n-f),new mxPoint(e,k+f)]):(f=n*Math.max(0,Math.min(1,f)),k=[new mxPoint(e,k),new mxPoint(e+l,k+f),new mxPoint(e+l,k+n-f),new mxPoint(e,k+n),new mxPoint(e,k)]);n=a.getCenterX();a=a.getCenterY();a=new mxPoint(n,a);b&&(d.x<e||d.x>e+ -l?a.y=d.y:a.x=d.x);return mxUtils.getPerimeterPoint(k,a,d)};mxStyleRegistry.putValue("trapezoidPerimeter",mxPerimeter.TrapezoidPerimeter);mxPerimeter.StepPerimeter=function(a,c,d,b){var f="0"!=mxUtils.getValue(c.style,"fixedSize","0"),e=f?B.prototype.fixedSize:B.prototype.size;null!=c&&(e=mxUtils.getValue(c.style,"size",e));var g=a.x,k=a.y,l=a.width,n=a.height,t=a.getCenterX();a=a.getCenterY();c=null!=c?mxUtils.getValue(c.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST):mxConstants.DIRECTION_EAST; -c==mxConstants.DIRECTION_EAST?(f=f?Math.max(0,Math.min(l,e)):l*Math.max(0,Math.min(1,e)),k=[new mxPoint(g,k),new mxPoint(g+l-f,k),new mxPoint(g+l,a),new mxPoint(g+l-f,k+n),new mxPoint(g,k+n),new mxPoint(g+f,a),new mxPoint(g,k)]):c==mxConstants.DIRECTION_WEST?(f=f?Math.max(0,Math.min(l,e)):l*Math.max(0,Math.min(1,e)),k=[new mxPoint(g+f,k),new mxPoint(g+l,k),new mxPoint(g+l-f,a),new mxPoint(g+l,k+n),new mxPoint(g+f,k+n),new mxPoint(g,a),new mxPoint(g+f,k)]):c==mxConstants.DIRECTION_NORTH?(f=f?Math.max(0, -Math.min(n,e)):n*Math.max(0,Math.min(1,e)),k=[new mxPoint(g,k+f),new mxPoint(t,k),new mxPoint(g+l,k+f),new mxPoint(g+l,k+n),new mxPoint(t,k+n-f),new mxPoint(g,k+n),new mxPoint(g,k+f)]):(f=f?Math.max(0,Math.min(n,e)):n*Math.max(0,Math.min(1,e)),k=[new mxPoint(g,k),new mxPoint(t,k+f),new mxPoint(g+l,k),new mxPoint(g+l,k+n-f),new mxPoint(t,k+n),new mxPoint(g,k+n-f),new mxPoint(g,k)]);t=new mxPoint(t,a);b&&(d.x<g||d.x>g+l?t.y=d.y:t.x=d.x);return mxUtils.getPerimeterPoint(k,t,d)};mxStyleRegistry.putValue("stepPerimeter", -mxPerimeter.StepPerimeter);mxPerimeter.HexagonPerimeter2=function(a,c,d,b){var f=y.prototype.size;null!=c&&(f=mxUtils.getValue(c.style,"size",f));var e=a.x,g=a.y,k=a.width,l=a.height,n=a.getCenterX();a=a.getCenterY();c=null!=c?mxUtils.getValue(c.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST):mxConstants.DIRECTION_EAST;c==mxConstants.DIRECTION_NORTH||c==mxConstants.DIRECTION_SOUTH?(f=l*Math.max(0,Math.min(1,f)),g=[new mxPoint(n,g),new mxPoint(e+k,g+f),new mxPoint(e+k,g+l-f),new mxPoint(n, -g+l),new mxPoint(e,g+l-f),new mxPoint(e,g+f),new mxPoint(n,g)]):(f=k*Math.max(0,Math.min(1,f)),g=[new mxPoint(e+f,g),new mxPoint(e+k-f,g),new mxPoint(e+k,a),new mxPoint(e+k-f,g+l),new mxPoint(e+f,g+l),new mxPoint(e,a),new mxPoint(e+f,g)]);n=new mxPoint(n,a);b&&(d.x<e||d.x>e+k?n.y=d.y:n.x=d.x);return mxUtils.getPerimeterPoint(g,n,d)};mxStyleRegistry.putValue("hexagonPerimeter2",mxPerimeter.HexagonPerimeter2);mxUtils.extend(R,mxShape);R.prototype.size=10;R.prototype.paintBackground=function(a,c,d,b, -f){var e=parseFloat(mxUtils.getValue(this.style,"size",this.size));a.translate(c,d);a.ellipse((b-e)/2,0,e,e);a.fillAndStroke();a.begin();a.moveTo(b/2,e);a.lineTo(b/2,f);a.end();a.stroke()};mxCellRenderer.registerShape("lollipop",R);mxUtils.extend(P,mxShape);P.prototype.size=10;P.prototype.inset=2;P.prototype.paintBackground=function(a,c,d,b,f){var e=parseFloat(mxUtils.getValue(this.style,"size",this.size)),g=parseFloat(mxUtils.getValue(this.style,"inset",this.inset))+this.strokewidth;a.translate(c, -d);a.begin();a.moveTo(b/2,e+g);a.lineTo(b/2,f);a.end();a.stroke();a.begin();a.moveTo((b-e)/2-g,e/2);a.quadTo((b-e)/2-g,e+g,b/2,e+g);a.quadTo((b+e)/2+g,e+g,(b+e)/2+g,e/2);a.end();a.stroke()};mxCellRenderer.registerShape("requires",P);mxUtils.extend(X,mxShape);X.prototype.paintBackground=function(a,c,d,b,f){a.translate(c,d);a.begin();a.moveTo(0,0);a.quadTo(b,0,b,f/2);a.quadTo(b,f,0,f);a.end();a.stroke()};mxCellRenderer.registerShape("requiredInterface",X);mxUtils.extend(U,mxShape);U.prototype.inset= -2;U.prototype.paintBackground=function(a,c,d,b,f){var e=parseFloat(mxUtils.getValue(this.style,"inset",this.inset))+this.strokewidth;a.translate(c,d);a.ellipse(0,e,b-2*e,f-2*e);a.fillAndStroke();a.begin();a.moveTo(b/2,0);a.quadTo(b,0,b,f/2);a.quadTo(b,f,b/2,f);a.end();a.stroke()};mxCellRenderer.registerShape("providedRequiredInterface",U);mxUtils.extend(F,mxCylinder);F.prototype.jettyWidth=32;F.prototype.jettyHeight=12;F.prototype.redrawPath=function(a,c,d,b,f,e){var g=parseFloat(mxUtils.getValue(this.style, -"jettyWidth",this.jettyWidth));c=parseFloat(mxUtils.getValue(this.style,"jettyHeight",this.jettyHeight));d=g/2;var g=d+g/2,k=.3*f-c/2,l=.7*f-c/2;e?(a.moveTo(d,k),a.lineTo(g,k),a.lineTo(g,k+c),a.lineTo(d,k+c),a.moveTo(d,l),a.lineTo(g,l),a.lineTo(g,l+c),a.lineTo(d,l+c)):(a.moveTo(d,0),a.lineTo(b,0),a.lineTo(b,f),a.lineTo(d,f),a.lineTo(d,l+c),a.lineTo(0,l+c),a.lineTo(0,l),a.lineTo(d,l),a.lineTo(d,k+c),a.lineTo(0,k+c),a.lineTo(0,k),a.lineTo(d,k),a.close());a.end()};mxCellRenderer.registerShape("component", -F);mxUtils.extend(ea,mxDoubleEllipse);ea.prototype.outerStroke=!0;ea.prototype.paintVertexShape=function(a,c,d,b,f){var e=Math.min(4,Math.min(b/5,f/5));0<b&&0<f&&(a.ellipse(c+e,d+e,b-2*e,f-2*e),a.fillAndStroke());a.setShadow(!1);this.outerStroke&&(a.ellipse(c,d,b,f),a.stroke())};mxCellRenderer.registerShape("endState",ea);mxUtils.extend(ka,ea);ka.prototype.outerStroke=!1;mxCellRenderer.registerShape("startState",ka);mxUtils.extend(Y,mxArrowConnector);Y.prototype.defaultWidth=4;Y.prototype.isOpenEnded= +function fa(){mxRhombus.call(this)}function ma(){mxEllipse.call(this)}function ta(){mxEllipse.call(this)}function la(){mxEllipse.call(this)}function sa(){mxEllipse.call(this)}function ha(){mxActor.call(this)}function ca(){mxActor.call(this)}function da(){mxActor.call(this)}function ia(){mxConnector.call(this)}function wa(a,c,b,d,f,e,g,h,n,m){g+=n;var na=d.clone();d.x-=f*(2*g+n);d.y-=e*(2*g+n);f*=g+n;e*=g+n;return function(){a.ellipse(na.x-f-g,na.y-e-g,2*g,2*g);m?a.fillAndStroke():a.stroke()}}mxUtils.extend(a, +mxCylinder);a.prototype.size=20;a.prototype.redrawPath=function(a,c,b,d,f,e){c=Math.max(0,Math.min(d,Math.min(f,parseFloat(mxUtils.getValue(this.style,"size",this.size)))));e?(a.moveTo(c,f),a.lineTo(c,c),a.lineTo(0,0),a.moveTo(c,c),a.lineTo(d,c)):(a.moveTo(0,0),a.lineTo(d-c,0),a.lineTo(d,c),a.lineTo(d,f),a.lineTo(c,f),a.lineTo(0,f-c),a.lineTo(0,0),a.close());a.end()};a.prototype.getLabelMargins=function(a){return mxUtils.getValue(this.style,"boundedLbl",!1)?(a=parseFloat(mxUtils.getValue(this.style, +"size",this.size))*this.scale,new mxRectangle(a,a,0,0)):null};mxCellRenderer.registerShape("cube",a);var Ba=Math.tan(mxUtils.toRadians(30)),qa=(.5-Ba)/2;mxUtils.extend(b,mxActor);b.prototype.size=20;b.prototype.redrawPath=function(a,c,b,d,f){c=Math.min(d,f/Ba);a.translate((d-c)/2,(f-c)/2+c/4);a.moveTo(0,.25*c);a.lineTo(.5*c,c*qa);a.lineTo(c,.25*c);a.lineTo(.5*c,(.5-qa)*c);a.lineTo(0,.25*c);a.close();a.end()};mxCellRenderer.registerShape("isoRectangle",b);mxUtils.extend(e,mxCylinder);e.prototype.size= +20;e.prototype.redrawPath=function(a,c,b,d,f,e){c=Math.min(d,f/(.5+Ba));e?(a.moveTo(0,.25*c),a.lineTo(.5*c,(.5-qa)*c),a.lineTo(c,.25*c),a.moveTo(.5*c,(.5-qa)*c),a.lineTo(.5*c,(1-qa)*c)):(a.translate((d-c)/2,(f-c)/2),a.moveTo(0,.25*c),a.lineTo(.5*c,c*qa),a.lineTo(c,.25*c),a.lineTo(c,.75*c),a.lineTo(.5*c,(1-qa)*c),a.lineTo(0,.75*c),a.close());a.end()};mxCellRenderer.registerShape("isoCube",e);mxUtils.extend(d,mxCylinder);d.prototype.redrawPath=function(a,c,b,d,f,e){c=Math.min(f/2,Math.round(f/8)+this.strokewidth- +1);if(e&&null!=this.fill||!e&&null==this.fill)a.moveTo(0,c),a.curveTo(0,2*c,d,2*c,d,c),e||(a.stroke(),a.begin()),a.translate(0,c/2),a.moveTo(0,c),a.curveTo(0,2*c,d,2*c,d,c),e||(a.stroke(),a.begin()),a.translate(0,c/2),a.moveTo(0,c),a.curveTo(0,2*c,d,2*c,d,c),e||(a.stroke(),a.begin()),a.translate(0,-c);e||(a.moveTo(0,c),a.curveTo(0,-c/3,d,-c/3,d,c),a.lineTo(d,f-c),a.curveTo(d,f+c/3,0,f+c/3,0,f-c),a.close())};d.prototype.getLabelMargins=function(a){return new mxRectangle(0,2.5*Math.min(a.height/2,Math.round(a.height/ +8)+this.strokewidth-1)*this.scale,0,0)};mxCellRenderer.registerShape("datastore",d);mxUtils.extend(k,mxCylinder);k.prototype.size=30;k.prototype.redrawPath=function(a,c,b,d,f,e){c=Math.max(0,Math.min(d,Math.min(f,parseFloat(mxUtils.getValue(this.style,"size",this.size)))));e?(a.moveTo(d-c,0),a.lineTo(d-c,c),a.lineTo(d,c)):(a.moveTo(0,0),a.lineTo(d-c,0),a.lineTo(d,c),a.lineTo(d,f),a.lineTo(0,f),a.lineTo(0,0),a.close());a.end()};mxCellRenderer.registerShape("note",k);mxUtils.extend(l,mxActor);l.prototype.redrawPath= +function(a,c,b,d,f){a.moveTo(0,0);a.quadTo(d/2,.5*f,d,0);a.quadTo(.5*d,f/2,d,f);a.quadTo(d/2,.5*f,0,f);a.quadTo(.5*d,f/2,0,0);a.end()};mxCellRenderer.registerShape("switch",l);mxUtils.extend(p,mxCylinder);p.prototype.tabWidth=60;p.prototype.tabHeight=20;p.prototype.tabPosition="right";p.prototype.redrawPath=function(a,c,b,d,f,e){c=Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"tabWidth",this.tabWidth))));b=Math.max(0,Math.min(f,parseFloat(mxUtils.getValue(this.style,"tabHeight",this.tabHeight)))); +var g=mxUtils.getValue(this.style,"tabPosition",this.tabPosition);e?"left"==g?(a.moveTo(0,b),a.lineTo(c,b)):(a.moveTo(d-c,b),a.lineTo(d,b)):("left"==g?(a.moveTo(0,0),a.lineTo(c,0),a.lineTo(c,b),a.lineTo(d,b)):(a.moveTo(0,b),a.lineTo(d-c,b),a.lineTo(d-c,0),a.lineTo(d,0)),a.lineTo(d,f),a.lineTo(0,f),a.lineTo(0,b),a.close());a.end()};mxCellRenderer.registerShape("folder",p);mxUtils.extend(q,mxActor);q.prototype.size=30;q.prototype.isRoundable=function(){return!0};q.prototype.redrawPath=function(a,c, +b,d,f){c=Math.max(0,Math.min(d,Math.min(f,parseFloat(mxUtils.getValue(this.style,"size",this.size)))));b=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(c,0),new mxPoint(d,0),new mxPoint(d,f),new mxPoint(0,f),new mxPoint(0,c)],this.isRounded,b,!0);a.end()};mxCellRenderer.registerShape("card",q);mxUtils.extend(u,mxActor);u.prototype.size=.4;u.prototype.redrawPath=function(a,c,b,d,f){c=f*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style, +"size",this.size))));a.moveTo(0,c/2);a.quadTo(d/4,1.4*c,d/2,c/2);a.quadTo(3*d/4,c*(1-1.4),d,c/2);a.lineTo(d,f-c/2);a.quadTo(3*d/4,f-1.4*c,d/2,f-c/2);a.quadTo(d/4,f-c*(1-1.4),0,f-c/2);a.lineTo(0,c/2);a.close();a.end()};u.prototype.getLabelBounds=function(a){if(mxUtils.getValue(this.style,"boundedLbl",!1)){var c=mxUtils.getValue(this.style,"size",this.size),b=a.width,d=a.height;if(null==this.direction||this.direction==mxConstants.DIRECTION_EAST||this.direction==mxConstants.DIRECTION_WEST)return c*= +d,new mxRectangle(a.x,a.y+c,b,d-2*c);c*=b;return new mxRectangle(a.x+c,a.y,b-2*c,d)}return a};mxCellRenderer.registerShape("tape",u);mxUtils.extend(c,mxActor);c.prototype.size=.3;c.prototype.getLabelMargins=function(a){return mxUtils.getValue(this.style,"boundedLbl",!1)?new mxRectangle(0,0,0,parseFloat(mxUtils.getValue(this.style,"size",this.size))*a.height):null};c.prototype.redrawPath=function(a,c,b,d,f){c=f*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));a.moveTo(0, +0);a.lineTo(d,0);a.lineTo(d,f-c/2);a.quadTo(3*d/4,f-1.4*c,d/2,f-c/2);a.quadTo(d/4,f-c*(1-1.4),0,f-c/2);a.lineTo(0,c/2);a.close();a.end()};mxCellRenderer.registerShape("document",c);var Ga=mxCylinder.prototype.getCylinderSize;mxCylinder.prototype.getCylinderSize=function(a,c,b,d){var f=mxUtils.getValue(this.style,"size");return null!=f?d*Math.max(0,Math.min(1,f)):Ga.apply(this,arguments)};mxCylinder.prototype.getLabelMargins=function(a){if(mxUtils.getValue(this.style,"boundedLbl",!1)){var c=2*mxUtils.getValue(this.style, +"size",.15);return new mxRectangle(0,Math.min(this.maxHeight*this.scale,a.height*c),0,0)}return null};mxUtils.extend(f,mxActor);f.prototype.size=.2;f.prototype.isRoundable=function(){return!0};f.prototype.redrawPath=function(a,c,b,d,f){c=d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));b=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,f),new mxPoint(c,0),new mxPoint(d,0),new mxPoint(d-c,f)],this.isRounded, +b,!0);a.end()};mxCellRenderer.registerShape("parallelogram",f);mxUtils.extend(g,mxActor);g.prototype.size=.2;g.prototype.isRoundable=function(){return!0};g.prototype.redrawPath=function(a,c,b,d,f){c=d*Math.max(0,Math.min(.5,parseFloat(mxUtils.getValue(this.style,"size",this.size))));b=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,f),new mxPoint(c,0),new mxPoint(d-c,0),new mxPoint(d,f)],this.isRounded,b,!0)};mxCellRenderer.registerShape("trapezoid", +g);mxUtils.extend(n,mxActor);n.prototype.size=.5;n.prototype.redrawPath=function(a,c,b,d,f){a.setFillColor(null);c=d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));b=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(d,0),new mxPoint(c,0),new mxPoint(c,f/2),new mxPoint(0,f/2),new mxPoint(c,f/2),new mxPoint(c,f),new mxPoint(d,f)],this.isRounded,b,!1);a.end()};mxCellRenderer.registerShape("curlyBracket", +n);mxUtils.extend(r,mxActor);r.prototype.redrawPath=function(a,c,b,d,f){a.setStrokeWidth(1);a.setFillColor(this.stroke);c=d/5;a.rect(0,0,c,f);a.fillAndStroke();a.rect(2*c,0,c,f);a.fillAndStroke();a.rect(4*c,0,c,f);a.fillAndStroke()};mxCellRenderer.registerShape("parallelMarker",r);h.prototype.moveTo=function(a,c){this.originalMoveTo.apply(this.canvas,arguments);this.lastX=a;this.lastY=c;this.firstX=a;this.firstY=c};h.prototype.close=function(){null!=this.firstX&&null!=this.firstY&&(this.lineTo(this.firstX, +this.firstY),this.originalClose.apply(this.canvas,arguments));this.originalClose.apply(this.canvas,arguments)};h.prototype.quadTo=function(a,c,b,d){this.originalQuadTo.apply(this.canvas,arguments);this.lastX=b;this.lastY=d};h.prototype.curveTo=function(a,c,b,d,f,e){this.originalCurveTo.apply(this.canvas,arguments);this.lastX=f;this.lastY=e};h.prototype.arcTo=function(a,c,b,d,f,e,g){this.originalArcTo.apply(this.canvas,arguments);this.lastX=e;this.lastY=g};h.prototype.lineTo=function(a,c){if(null!= +this.lastX&&null!=this.lastY){var b=function(a){return"number"===typeof a?a?0>a?-1:1:a===a?0:NaN:NaN},d=Math.abs(a-this.lastX),f=Math.abs(c-this.lastY),e=Math.sqrt(d*d+f*f);if(2>e){this.originalLineTo.apply(this.canvas,arguments);this.lastX=a;this.lastY=c;return}var g=Math.round(e/10),na=this.defaultVariation;5>g&&(g=5,na/=3);for(var h=b(a-this.lastX)*d/g,b=b(c-this.lastY)*f/g,d=d/e,f=f/e,e=0;e<g;e++){var n=(Math.random()-.5)*na;this.originalLineTo.call(this.canvas,h*e+this.lastX-n*f,b*e+this.lastY- +n*d)}this.originalLineTo.call(this.canvas,a,c)}else this.originalLineTo.apply(this.canvas,arguments);this.lastX=a;this.lastY=c};h.prototype.destroy=function(){this.canvas.lineTo=this.originalLineTo;this.canvas.moveTo=this.originalMoveTo;this.canvas.close=this.originalClose;this.canvas.quadTo=this.originalQuadTo;this.canvas.curveTo=this.originalCurveTo;this.canvas.arcTo=this.originalArcTo};var Ha=mxShape.prototype.paint;mxShape.prototype.defaultJiggle=1.5;mxShape.prototype.paint=function(a){null!= +this.style&&"0"!=mxUtils.getValue(this.style,"comic","0")&&null==a.handHiggle&&(a.handJiggle=new h(a,mxUtils.getValue(this.style,"jiggle",this.defaultJiggle)));Ha.apply(this,arguments);null!=a.handJiggle&&(a.handJiggle.destroy(),delete a.handJiggle)};mxRhombus.prototype.defaultJiggle=2;var Ia=mxRectangleShape.prototype.isHtmlAllowed;mxRectangleShape.prototype.isHtmlAllowed=function(){return(null==this.style||"0"==mxUtils.getValue(this.style,"comic","0"))&&Ia.apply(this,arguments)};var Ja=mxRectangleShape.prototype.paintBackground; +mxRectangleShape.prototype.paintBackground=function(a,c,b,d,f){if(null==a.handJiggle)Ja.apply(this,arguments);else{var e=!0;null!=this.style&&(e="1"==mxUtils.getValue(this.style,mxConstants.STYLE_POINTER_EVENTS,"1"));if(e||null!=this.fill&&this.fill!=mxConstants.NONE||null!=this.stroke&&this.stroke!=mxConstants.NONE)e||null!=this.fill&&this.fill!=mxConstants.NONE||(a.pointerEvents=!1),a.begin(),this.isRounded?("1"==mxUtils.getValue(this.style,mxConstants.STYLE_ABSOLUTE_ARCSIZE,0)?e=Math.min(d/2,Math.min(f/ +2,mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2)):(e=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100,e=Math.min(d*e,f*e)),a.moveTo(c+e,b),a.lineTo(c+d-e,b),a.quadTo(c+d,b,c+d,b+e),a.lineTo(c+d,b+f-e),a.quadTo(c+d,b+f,c+d-e,b+f),a.lineTo(c+e,b+f),a.quadTo(c,b+f,c,b+f-e),a.lineTo(c,b+e),a.quadTo(c,b,c+e,b)):(a.moveTo(c,b),a.lineTo(c+d,b),a.lineTo(c+d,b+f),a.lineTo(c,b+f),a.lineTo(c,b)),a.close(),a.end(),a.fillAndStroke()}}; +var Ka=mxRectangleShape.prototype.paintForeground;mxRectangleShape.prototype.paintForeground=function(a,c,b,d,f){null==a.handJiggle&&Ka.apply(this,arguments)};mxUtils.extend(m,mxRectangleShape);m.prototype.size=.1;m.prototype.isHtmlAllowed=function(){return!1};m.prototype.getLabelBounds=function(a){if(mxUtils.getValue(this.state.style,mxConstants.STYLE_HORIZONTAL,!0)==(null==this.direction||this.direction==mxConstants.DIRECTION_EAST||this.direction==mxConstants.DIRECTION_WEST)){var c=a.width,b=a.height; +a=new mxRectangle(a.x,a.y,c,b);var d=c*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));if(this.isRounded)var f=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100,d=Math.max(d,Math.min(c*f,b*f));a.x+=Math.round(d);a.width-=Math.round(2*d)}return a};m.prototype.paintForeground=function(a,c,b,d,f){var e=d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));if(this.isRounded)var g=mxUtils.getValue(this.style, +mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100,e=Math.max(e,Math.min(d*g,f*g));e=Math.round(e);a.begin();a.moveTo(c+e,b);a.lineTo(c+e,b+f);a.moveTo(c+d-e,b);a.lineTo(c+d-e,b+f);a.end();a.stroke();mxRectangleShape.prototype.paintForeground.apply(this,arguments)};mxCellRenderer.registerShape("process",m);mxUtils.extend(w,mxRectangleShape);w.prototype.paintBackground=function(a,c,b,d,f){a.setFillColor(mxConstants.NONE);a.rect(c,b,d,f);a.fill()};w.prototype.paintForeground=function(a, +c,b,d,f){};mxCellRenderer.registerShape("transparent",w);mxUtils.extend(v,mxHexagon);v.prototype.size=30;v.prototype.position=.5;v.prototype.position2=.5;v.prototype.base=20;v.prototype.getLabelMargins=function(){return new mxRectangle(0,0,0,parseFloat(mxUtils.getValue(this.style,"size",this.size))*this.scale)};v.prototype.isRoundable=function(){return!0};v.prototype.redrawPath=function(a,c,b,d,f){c=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;b=Math.max(0,Math.min(f, +parseFloat(mxUtils.getValue(this.style,"size",this.size))));var e=d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"position",this.position)))),g=d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"position2",this.position2)))),h=Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"base",this.base))));this.addPoints(a,[new mxPoint(0,0),new mxPoint(d,0),new mxPoint(d,f-b),new mxPoint(Math.min(d,e+h),f-b),new mxPoint(g,f),new mxPoint(Math.max(0,e),f-b),new mxPoint(0, +f-b)],this.isRounded,c,!0,[4])};mxCellRenderer.registerShape("callout",v);mxUtils.extend(A,mxActor);A.prototype.size=.2;A.prototype.fixedSize=20;A.prototype.isRoundable=function(){return!0};A.prototype.redrawPath=function(a,c,b,d,f){c="0"!=mxUtils.getValue(this.style,"fixedSize","0")?Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"size",this.fixedSize)))):d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));b=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE, +mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,0),new mxPoint(d-c,0),new mxPoint(d,f/2),new mxPoint(d-c,f),new mxPoint(0,f),new mxPoint(c,f/2)],this.isRounded,b,!0);a.end()};mxCellRenderer.registerShape("step",A);mxUtils.extend(y,mxHexagon);y.prototype.size=.25;y.prototype.isRoundable=function(){return!0};y.prototype.redrawPath=function(a,c,b,d,f){c=d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));b=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE, +mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(c,0),new mxPoint(d-c,0),new mxPoint(d,.5*f),new mxPoint(d-c,f),new mxPoint(c,f),new mxPoint(0,.5*f)],this.isRounded,b,!0)};mxCellRenderer.registerShape("hexagon",y);mxUtils.extend(t,mxRectangleShape);t.prototype.isHtmlAllowed=function(){return!1};t.prototype.paintForeground=function(a,c,b,d,f){var e=Math.min(d/5,f/5)+1;a.begin();a.moveTo(c+d/2,b+e);a.lineTo(c+d/2,b+f-e);a.moveTo(c+e,b+f/2);a.lineTo(c+d-e,b+f/2);a.end();a.stroke();mxRectangleShape.prototype.paintForeground.apply(this, +arguments)};mxCellRenderer.registerShape("plus",t);var Ea=mxRhombus.prototype.paintVertexShape;mxRhombus.prototype.getLabelBounds=function(a){if(1==this.style["double"]){var c=(2*Math.max(2,this.strokewidth+1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||0))*this.scale;return new mxRectangle(a.x+c,a.y+c,a.width-2*c,a.height-2*c)}return a};mxRhombus.prototype.paintVertexShape=function(a,c,b,d,f){Ea.apply(this,arguments);if(!this.outline&&1==this.style["double"]){var e=2*Math.max(2,this.strokewidth+ +1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||0);c+=e;b+=e;d-=2*e;f-=2*e;0<d&&0<f&&(a.setShadow(!1),Ea.apply(this,[a,c,b,d,f]))}};mxUtils.extend(z,mxRectangleShape);z.prototype.isHtmlAllowed=function(){return!1};z.prototype.getLabelBounds=function(a){if(1==this.style["double"]){var c=(Math.max(2,this.strokewidth+1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||0))*this.scale;return new mxRectangle(a.x+c,a.y+c,a.width-2*c,a.height-2*c)}return a};z.prototype.paintForeground=function(a,c,b, +d,f){if(null!=this.style){if(!this.outline&&1==this.style["double"]){var e=Math.max(2,this.strokewidth+1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||0);c+=e;b+=e;d-=2*e;f-=2*e;0<d&&0<f&&mxRectangleShape.prototype.paintBackground.apply(this,arguments)}a.setDashed(!1);var e=0,g;do{g=mxCellRenderer.defaultShapes[this.style["symbol"+e]];if(null!=g){var h=this.style["symbol"+e+"Align"],na=this.style["symbol"+e+"VerticalAlign"],n=this.style["symbol"+e+"Width"],m=this.style["symbol"+e+"Height"],t= +this.style["symbol"+e+"Spacing"]||0,r=this.style["symbol"+e+"VSpacing"]||t,y=this.style["symbol"+e+"ArcSpacing"];null!=y&&(y*=this.getArcSize(d+this.strokewidth,f+this.strokewidth),t+=y,r+=y);var y=c,k=b,y=h==mxConstants.ALIGN_CENTER?y+(d-n)/2:h==mxConstants.ALIGN_RIGHT?y+(d-n-t):y+t,k=na==mxConstants.ALIGN_MIDDLE?k+(f-m)/2:na==mxConstants.ALIGN_BOTTOM?k+(f-m-r):k+r;a.save();h=new g;h.style=this.style;g.prototype.paintVertexShape.call(h,a,y,k,n,m);a.restore()}e++}while(null!=g)}mxRectangleShape.prototype.paintForeground.apply(this, +arguments)};mxCellRenderer.registerShape("ext",z);mxUtils.extend(H,mxCylinder);H.prototype.redrawPath=function(a,c,b,d,f,e){e?(a.moveTo(0,0),a.lineTo(d/2,f/2),a.lineTo(d,0),a.end()):(a.moveTo(0,0),a.lineTo(d,0),a.lineTo(d,f),a.lineTo(0,f),a.close())};mxCellRenderer.registerShape("message",H);mxUtils.extend(G,mxShape);G.prototype.paintBackground=function(a,c,b,d,f){a.translate(c,b);a.ellipse(d/4,0,d/2,f/4);a.fillAndStroke();a.begin();a.moveTo(d/2,f/4);a.lineTo(d/2,2*f/3);a.moveTo(d/2,f/3);a.lineTo(0, +f/3);a.moveTo(d/2,f/3);a.lineTo(d,f/3);a.moveTo(d/2,2*f/3);a.lineTo(0,f);a.moveTo(d/2,2*f/3);a.lineTo(d,f);a.end();a.stroke()};mxCellRenderer.registerShape("umlActor",G);mxUtils.extend(B,mxShape);B.prototype.getLabelMargins=function(a){return new mxRectangle(a.width/6,0,0,0)};B.prototype.paintBackground=function(a,c,b,d,f){a.translate(c,b);a.begin();a.moveTo(0,f/4);a.lineTo(0,3*f/4);a.end();a.stroke();a.begin();a.moveTo(0,f/2);a.lineTo(d/6,f/2);a.end();a.stroke();a.ellipse(d/6,0,5*d/6,f);a.fillAndStroke()}; +mxCellRenderer.registerShape("umlBoundary",B);mxUtils.extend(J,mxEllipse);J.prototype.paintVertexShape=function(a,c,b,d,f){mxEllipse.prototype.paintVertexShape.apply(this,arguments);a.begin();a.moveTo(c+d/8,b+f);a.lineTo(c+7*d/8,b+f);a.end();a.stroke()};mxCellRenderer.registerShape("umlEntity",J);mxUtils.extend(K,mxShape);K.prototype.paintVertexShape=function(a,c,b,d,f){a.translate(c,b);a.begin();a.moveTo(d,0);a.lineTo(0,f);a.moveTo(0,0);a.lineTo(d,f);a.end();a.stroke()};mxCellRenderer.registerShape("umlDestroy", +K);mxUtils.extend(x,mxShape);x.prototype.getLabelBounds=function(a){return new mxRectangle(a.x,a.y+a.height/8,a.width,7*a.height/8)};x.prototype.paintBackground=function(a,c,b,d,f){a.translate(c,b);a.begin();a.moveTo(3*d/8,f/8*1.1);a.lineTo(5*d/8,0);a.end();a.stroke();a.ellipse(0,f/8,d,7*f/8);a.fillAndStroke()};x.prototype.paintForeground=function(a,c,b,d,f){a.begin();a.moveTo(3*d/8,f/8*1.1);a.lineTo(5*d/8,f/4);a.end();a.stroke()};mxCellRenderer.registerShape("umlControl",x);mxUtils.extend(C,mxRectangleShape); +C.prototype.size=40;C.prototype.isHtmlAllowed=function(){return!1};C.prototype.getLabelBounds=function(a){var c=Math.max(0,Math.min(a.height,parseFloat(mxUtils.getValue(this.style,"size",this.size))*this.scale));return new mxRectangle(a.x,a.y,a.width,c)};C.prototype.paintBackground=function(a,c,b,d,f){var e=Math.max(0,Math.min(f,parseFloat(mxUtils.getValue(this.style,"size",this.size)))),g=mxUtils.getValue(this.style,"participant");null==g||null==this.state?mxRectangleShape.prototype.paintBackground.call(this, +a,c,b,d,e):(g=this.state.view.graph.cellRenderer.getShape(g),null!=g&&g!=C&&(g=new g,g.apply(this.state),a.save(),g.paintVertexShape(a,c,b,d,e),a.restore()));e<f&&(a.setDashed(!0),a.begin(),a.moveTo(c+d/2,b+e),a.lineTo(c+d/2,b+f),a.end(),a.stroke())};C.prototype.paintForeground=function(a,c,b,d,f){var e=Math.max(0,Math.min(f,parseFloat(mxUtils.getValue(this.style,"size",this.size))));mxRectangleShape.prototype.paintForeground.call(this,a,c,b,d,Math.min(f,e))};mxCellRenderer.registerShape("umlLifeline", +C);mxUtils.extend(I,mxShape);I.prototype.width=60;I.prototype.height=30;I.prototype.corner=10;I.prototype.getLabelMargins=function(a){return new mxRectangle(0,0,a.width-parseFloat(mxUtils.getValue(this.style,"width",this.width)*this.scale),a.height-parseFloat(mxUtils.getValue(this.style,"height",this.height)*this.scale))};I.prototype.paintBackground=function(a,c,b,d,f){var e=this.corner,g=Math.min(d,Math.max(e,parseFloat(mxUtils.getValue(this.style,"width",this.width)))),h=Math.min(f,Math.max(1.5* +e,parseFloat(mxUtils.getValue(this.style,"height",this.height)))),n=mxUtils.getValue(this.style,mxConstants.STYLE_SWIMLANE_FILLCOLOR,mxConstants.NONE);n!=mxConstants.NONE&&(a.setFillColor(n),a.rect(c,b,d,f),a.fill());null!=this.fill&&this.fill!=mxConstants.NONE&&this.gradient&&this.gradient!=mxConstants.NONE?(this.getGradientBounds(a,c,b,d,f),a.setGradient(this.fill,this.gradient,c,b,d,f,this.gradientDirection)):a.setFillColor(this.fill);a.begin();a.moveTo(c,b);a.lineTo(c+g,b);a.lineTo(c+g,b+Math.max(0, +h-1.5*e));a.lineTo(c+Math.max(0,g-e),b+h);a.lineTo(c,b+h);a.close();a.fillAndStroke();a.begin();a.moveTo(c+g,b);a.lineTo(c+d,b);a.lineTo(c+d,b+f);a.lineTo(c,b+f);a.lineTo(c,b+h);a.stroke()};mxCellRenderer.registerShape("umlFrame",I);mxPerimeter.LifelinePerimeter=function(a,c,b,d){d=C.prototype.size;null!=c&&(d=mxUtils.getValue(c.style,"size",d)*c.view.scale);c=parseFloat(c.style[mxConstants.STYLE_STROKEWIDTH]||1)*c.view.scale/2-1;b.x<a.getCenterX()&&(c=-1*(c+1));return new mxPoint(a.getCenterX()+ +c,Math.min(a.y+a.height,Math.max(a.y+d,b.y)))};mxStyleRegistry.putValue("lifelinePerimeter",mxPerimeter.LifelinePerimeter);mxPerimeter.OrthogonalPerimeter=function(a,c,b,d){d=!0;return mxPerimeter.RectanglePerimeter.apply(this,arguments)};mxStyleRegistry.putValue("orthogonalPerimeter",mxPerimeter.OrthogonalPerimeter);mxPerimeter.BackbonePerimeter=function(a,c,b,d){d=parseFloat(c.style[mxConstants.STYLE_STROKEWIDTH]||1)*c.view.scale/2-1;null!=c.style.backboneSize&&(d+=parseFloat(c.style.backboneSize)* +c.view.scale/2-1);if("south"==c.style[mxConstants.STYLE_DIRECTION]||"north"==c.style[mxConstants.STYLE_DIRECTION])return b.x<a.getCenterX()&&(d=-1*(d+1)),new mxPoint(a.getCenterX()+d,Math.min(a.y+a.height,Math.max(a.y,b.y)));b.y<a.getCenterY()&&(d=-1*(d+1));return new mxPoint(Math.min(a.x+a.width,Math.max(a.x,b.x)),a.getCenterY()+d)};mxStyleRegistry.putValue("backbonePerimeter",mxPerimeter.BackbonePerimeter);mxPerimeter.CalloutPerimeter=function(a,c,b,d){return mxPerimeter.RectanglePerimeter(mxUtils.getDirectedBounds(a, +new mxRectangle(0,0,0,Math.max(0,Math.min(a.height,parseFloat(mxUtils.getValue(c.style,"size",v.prototype.size))*c.view.scale))),c.style),c,b,d)};mxStyleRegistry.putValue("calloutPerimeter",mxPerimeter.CalloutPerimeter);mxPerimeter.ParallelogramPerimeter=function(a,c,b,d){var e=f.prototype.size;null!=c&&(e=mxUtils.getValue(c.style,"size",e));var g=a.x,h=a.y,n=a.width,m=a.height;c=null!=c?mxUtils.getValue(c.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST):mxConstants.DIRECTION_EAST;c== +mxConstants.DIRECTION_NORTH||c==mxConstants.DIRECTION_SOUTH?(e=m*Math.max(0,Math.min(1,e)),h=[new mxPoint(g,h),new mxPoint(g+n,h+e),new mxPoint(g+n,h+m),new mxPoint(g,h+m-e),new mxPoint(g,h)]):(e=n*Math.max(0,Math.min(1,e)),h=[new mxPoint(g+e,h),new mxPoint(g+n,h),new mxPoint(g+n-e,h+m),new mxPoint(g,h+m),new mxPoint(g+e,h)]);m=a.getCenterX();a=a.getCenterY();a=new mxPoint(m,a);d&&(b.x<g||b.x>g+n?a.y=b.y:a.x=b.x);return mxUtils.getPerimeterPoint(h,a,b)};mxStyleRegistry.putValue("parallelogramPerimeter", +mxPerimeter.ParallelogramPerimeter);mxPerimeter.TrapezoidPerimeter=function(a,c,b,d){var f=g.prototype.size;null!=c&&(f=mxUtils.getValue(c.style,"size",f));var e=a.x,h=a.y,n=a.width,m=a.height;c=null!=c?mxUtils.getValue(c.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST):mxConstants.DIRECTION_EAST;c==mxConstants.DIRECTION_EAST?(f=n*Math.max(0,Math.min(1,f)),h=[new mxPoint(e+f,h),new mxPoint(e+n-f,h),new mxPoint(e+n,h+m),new mxPoint(e,h+m),new mxPoint(e+f,h)]):c==mxConstants.DIRECTION_WEST? +(f=n*Math.max(0,Math.min(1,f)),h=[new mxPoint(e,h),new mxPoint(e+n,h),new mxPoint(e+n-f,h+m),new mxPoint(e+f,h+m),new mxPoint(e,h)]):c==mxConstants.DIRECTION_NORTH?(f=m*Math.max(0,Math.min(1,f)),h=[new mxPoint(e,h+f),new mxPoint(e+n,h),new mxPoint(e+n,h+m),new mxPoint(e,h+m-f),new mxPoint(e,h+f)]):(f=m*Math.max(0,Math.min(1,f)),h=[new mxPoint(e,h),new mxPoint(e+n,h+f),new mxPoint(e+n,h+m-f),new mxPoint(e,h+m),new mxPoint(e,h)]);m=a.getCenterX();a=a.getCenterY();a=new mxPoint(m,a);d&&(b.x<e||b.x>e+ +n?a.y=b.y:a.x=b.x);return mxUtils.getPerimeterPoint(h,a,b)};mxStyleRegistry.putValue("trapezoidPerimeter",mxPerimeter.TrapezoidPerimeter);mxPerimeter.StepPerimeter=function(a,c,b,d){var f="0"!=mxUtils.getValue(c.style,"fixedSize","0"),e=f?A.prototype.fixedSize:A.prototype.size;null!=c&&(e=mxUtils.getValue(c.style,"size",e));var g=a.x,h=a.y,n=a.width,m=a.height,t=a.getCenterX();a=a.getCenterY();c=null!=c?mxUtils.getValue(c.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST):mxConstants.DIRECTION_EAST; +c==mxConstants.DIRECTION_EAST?(f=f?Math.max(0,Math.min(n,e)):n*Math.max(0,Math.min(1,e)),h=[new mxPoint(g,h),new mxPoint(g+n-f,h),new mxPoint(g+n,a),new mxPoint(g+n-f,h+m),new mxPoint(g,h+m),new mxPoint(g+f,a),new mxPoint(g,h)]):c==mxConstants.DIRECTION_WEST?(f=f?Math.max(0,Math.min(n,e)):n*Math.max(0,Math.min(1,e)),h=[new mxPoint(g+f,h),new mxPoint(g+n,h),new mxPoint(g+n-f,a),new mxPoint(g+n,h+m),new mxPoint(g+f,h+m),new mxPoint(g,a),new mxPoint(g+f,h)]):c==mxConstants.DIRECTION_NORTH?(f=f?Math.max(0, +Math.min(m,e)):m*Math.max(0,Math.min(1,e)),h=[new mxPoint(g,h+f),new mxPoint(t,h),new mxPoint(g+n,h+f),new mxPoint(g+n,h+m),new mxPoint(t,h+m-f),new mxPoint(g,h+m),new mxPoint(g,h+f)]):(f=f?Math.max(0,Math.min(m,e)):m*Math.max(0,Math.min(1,e)),h=[new mxPoint(g,h),new mxPoint(t,h+f),new mxPoint(g+n,h),new mxPoint(g+n,h+m-f),new mxPoint(t,h+m),new mxPoint(g,h+m-f),new mxPoint(g,h)]);t=new mxPoint(t,a);d&&(b.x<g||b.x>g+n?t.y=b.y:t.x=b.x);return mxUtils.getPerimeterPoint(h,t,b)};mxStyleRegistry.putValue("stepPerimeter", +mxPerimeter.StepPerimeter);mxPerimeter.HexagonPerimeter2=function(a,c,b,d){var f=y.prototype.size;null!=c&&(f=mxUtils.getValue(c.style,"size",f));var e=a.x,g=a.y,h=a.width,n=a.height,m=a.getCenterX();a=a.getCenterY();c=null!=c?mxUtils.getValue(c.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST):mxConstants.DIRECTION_EAST;c==mxConstants.DIRECTION_NORTH||c==mxConstants.DIRECTION_SOUTH?(f=n*Math.max(0,Math.min(1,f)),g=[new mxPoint(m,g),new mxPoint(e+h,g+f),new mxPoint(e+h,g+n-f),new mxPoint(m, +g+n),new mxPoint(e,g+n-f),new mxPoint(e,g+f),new mxPoint(m,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+n),new mxPoint(e+f,g+n),new mxPoint(e,a),new mxPoint(e+f,g)]);m=new mxPoint(m,a);d&&(b.x<e||b.x>e+h?m.y=b.y:m.x=b.x);return mxUtils.getPerimeterPoint(g,m,b)};mxStyleRegistry.putValue("hexagonPerimeter2",mxPerimeter.HexagonPerimeter2);mxUtils.extend(R,mxShape);R.prototype.size=10;R.prototype.paintBackground=function(a,c,b,d, +f){var e=parseFloat(mxUtils.getValue(this.style,"size",this.size));a.translate(c,b);a.ellipse((d-e)/2,0,e,e);a.fillAndStroke();a.begin();a.moveTo(d/2,e);a.lineTo(d/2,f);a.end();a.stroke()};mxCellRenderer.registerShape("lollipop",R);mxUtils.extend(P,mxShape);P.prototype.size=10;P.prototype.inset=2;P.prototype.paintBackground=function(a,c,b,d,f){var e=parseFloat(mxUtils.getValue(this.style,"size",this.size)),g=parseFloat(mxUtils.getValue(this.style,"inset",this.inset))+this.strokewidth;a.translate(c, +b);a.begin();a.moveTo(d/2,e+g);a.lineTo(d/2,f);a.end();a.stroke();a.begin();a.moveTo((d-e)/2-g,e/2);a.quadTo((d-e)/2-g,e+g,d/2,e+g);a.quadTo((d+e)/2+g,e+g,(d+e)/2+g,e/2);a.end();a.stroke()};mxCellRenderer.registerShape("requires",P);mxUtils.extend(X,mxShape);X.prototype.paintBackground=function(a,c,b,d,f){a.translate(c,b);a.begin();a.moveTo(0,0);a.quadTo(d,0,d,f/2);a.quadTo(d,f,0,f);a.end();a.stroke()};mxCellRenderer.registerShape("requiredInterface",X);mxUtils.extend(U,mxShape);U.prototype.inset= +2;U.prototype.paintBackground=function(a,c,b,d,f){var e=parseFloat(mxUtils.getValue(this.style,"inset",this.inset))+this.strokewidth;a.translate(c,b);a.ellipse(0,e,d-2*e,f-2*e);a.fillAndStroke();a.begin();a.moveTo(d/2,0);a.quadTo(d,0,d,f/2);a.quadTo(d,f,d/2,f);a.end();a.stroke()};mxCellRenderer.registerShape("providedRequiredInterface",U);mxUtils.extend(F,mxCylinder);F.prototype.jettyWidth=32;F.prototype.jettyHeight=12;F.prototype.redrawPath=function(a,c,b,d,f,e){var g=parseFloat(mxUtils.getValue(this.style, +"jettyWidth",this.jettyWidth));c=parseFloat(mxUtils.getValue(this.style,"jettyHeight",this.jettyHeight));b=g/2;var g=b+g/2,h=.3*f-c/2,n=.7*f-c/2;e?(a.moveTo(b,h),a.lineTo(g,h),a.lineTo(g,h+c),a.lineTo(b,h+c),a.moveTo(b,n),a.lineTo(g,n),a.lineTo(g,n+c),a.lineTo(b,n+c)):(a.moveTo(b,0),a.lineTo(d,0),a.lineTo(d,f),a.lineTo(b,f),a.lineTo(b,n+c),a.lineTo(0,n+c),a.lineTo(0,n),a.lineTo(b,n),a.lineTo(b,h+c),a.lineTo(0,h+c),a.lineTo(0,h),a.lineTo(b,h),a.close());a.end()};mxCellRenderer.registerShape("component", +F);mxUtils.extend(ea,mxDoubleEllipse);ea.prototype.outerStroke=!0;ea.prototype.paintVertexShape=function(a,c,b,d,f){var e=Math.min(4,Math.min(d/5,f/5));0<d&&0<f&&(a.ellipse(c+e,b+e,d-2*e,f-2*e),a.fillAndStroke());a.setShadow(!1);this.outerStroke&&(a.ellipse(c,b,d,f),a.stroke())};mxCellRenderer.registerShape("endState",ea);mxUtils.extend(ka,ea);ka.prototype.outerStroke=!1;mxCellRenderer.registerShape("startState",ka);mxUtils.extend(Y,mxArrowConnector);Y.prototype.defaultWidth=4;Y.prototype.isOpenEnded= function(){return!0};Y.prototype.getEdgeWidth=function(){return mxUtils.getNumber(this.style,"width",this.defaultWidth)+Math.max(0,this.strokewidth-1)};Y.prototype.isArrowRounded=function(){return this.isRounded};mxCellRenderer.registerShape("link",Y);mxUtils.extend(ba,mxArrowConnector);ba.prototype.defaultWidth=10;ba.prototype.defaultArrowWidth=20;ba.prototype.getStartArrowWidth=function(){return this.getEdgeWidth()+mxUtils.getNumber(this.style,"startWidth",this.defaultArrowWidth)};ba.prototype.getEndArrowWidth= -function(){return this.getEdgeWidth()+mxUtils.getNumber(this.style,"endWidth",this.defaultArrowWidth)};ba.prototype.getEdgeWidth=function(){return mxUtils.getNumber(this.style,"width",this.defaultWidth)+Math.max(0,this.strokewidth-1)};mxCellRenderer.registerShape("flexArrow",ba);mxUtils.extend(L,mxActor);L.prototype.size=30;L.prototype.isRoundable=function(){return!0};L.prototype.redrawPath=function(a,c,d,b,f){c=Math.min(f,parseFloat(mxUtils.getValue(this.style,"size",this.size)));d=mxUtils.getValue(this.style, -mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,f),new mxPoint(0,c),new mxPoint(b,0),new mxPoint(b,f)],this.isRounded,d,!0);a.end()};mxCellRenderer.registerShape("manualInput",L);mxUtils.extend(E,mxRectangleShape);E.prototype.dx=20;E.prototype.dy=20;E.prototype.isHtmlAllowed=function(){return!1};E.prototype.paintForeground=function(a,c,d,b,f){mxRectangleShape.prototype.paintForeground.apply(this,arguments);var e=0;if(this.isRounded)var g=mxUtils.getValue(this.style, -mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100,e=Math.max(e,Math.min(b*g,f*g));g=Math.max(e,Math.min(b,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));e=Math.max(e,Math.min(f,parseFloat(mxUtils.getValue(this.style,"dy",this.dy))));a.begin();a.moveTo(c,d+e);a.lineTo(c+b,d+e);a.end();a.stroke();a.begin();a.moveTo(c+g,d);a.lineTo(c+g,d+f);a.end();a.stroke()};mxCellRenderer.registerShape("internalStorage",E);mxUtils.extend(S,mxActor);S.prototype.dx=20;S.prototype.dy= -20;S.prototype.redrawPath=function(a,c,d,b,f){c=Math.max(0,Math.min(b,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));d=Math.max(0,Math.min(f,parseFloat(mxUtils.getValue(this.style,"dy",this.dy))));parseFloat(mxUtils.getValue(this.style,"size",this.size));var e=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,0),new mxPoint(b,0),new mxPoint(b,d),new mxPoint(c,d),new mxPoint(c,f),new mxPoint(0,f)],this.isRounded,e,!0);a.end()}; -mxCellRenderer.registerShape("corner",S);mxUtils.extend(M,mxActor);M.prototype.redrawPath=function(a,c,d,b,f){a.moveTo(0,0);a.lineTo(0,f);a.end();a.moveTo(b,0);a.lineTo(b,f);a.end();a.moveTo(0,f/2);a.lineTo(b,f/2);a.end()};mxCellRenderer.registerShape("crossbar",M);mxUtils.extend(N,mxActor);N.prototype.dx=20;N.prototype.dy=20;N.prototype.redrawPath=function(a,c,d,b,f){c=Math.max(0,Math.min(b,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));d=Math.max(0,Math.min(f,parseFloat(mxUtils.getValue(this.style, -"dy",this.dy))));parseFloat(mxUtils.getValue(this.style,"size",this.size));var e=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,0),new mxPoint(b,0),new mxPoint(b,d),new mxPoint((b+c)/2,d),new mxPoint((b+c)/2,f),new mxPoint((b-c)/2,f),new mxPoint((b-c)/2,d),new mxPoint(0,d)],this.isRounded,e,!0);a.end()};mxCellRenderer.registerShape("tee",N);mxUtils.extend(T,mxActor);T.prototype.arrowWidth=.3;T.prototype.arrowSize=.2;T.prototype.redrawPath= -function(a,c,d,b,f){var e=f*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowWidth",this.arrowWidth))));c=b*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowSize",this.arrowSize))));d=(f-e)/2;var e=d+e,g=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,d),new mxPoint(b-c,d),new mxPoint(b-c,0),new mxPoint(b,f/2),new mxPoint(b-c,f),new mxPoint(b-c,e),new mxPoint(0,e)],this.isRounded,g,!0);a.end()};mxCellRenderer.registerShape("singleArrow", -T);mxUtils.extend(D,mxActor);D.prototype.redrawPath=function(a,c,d,b,f){var e=f*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowWidth",T.prototype.arrowWidth))));c=b*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowSize",T.prototype.arrowSize))));d=(f-e)/2;var e=d+e,g=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,f/2),new mxPoint(c,0),new mxPoint(c,d),new mxPoint(b-c,d),new mxPoint(b-c,0),new mxPoint(b, -f/2),new mxPoint(b-c,f),new mxPoint(b-c,e),new mxPoint(c,e),new mxPoint(c,f)],this.isRounded,g,!0);a.end()};mxCellRenderer.registerShape("doubleArrow",D);mxUtils.extend(Q,mxActor);Q.prototype.size=.1;Q.prototype.redrawPath=function(a,c,d,b,f){c=b*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));a.moveTo(c,0);a.lineTo(b,0);a.quadTo(b-2*c,f/2,b,f);a.lineTo(c,f);a.quadTo(c-2*c,f/2,c,0);a.close();a.end()};mxCellRenderer.registerShape("dataStorage",Q);mxUtils.extend(V, -mxActor);V.prototype.redrawPath=function(a,c,d,b,f){a.moveTo(0,0);a.quadTo(b,0,b,f/2);a.quadTo(b,f,0,f);a.close();a.end()};mxCellRenderer.registerShape("or",V);mxUtils.extend(ga,mxActor);ga.prototype.redrawPath=function(a,c,d,b,f){a.moveTo(0,0);a.quadTo(b,0,b,f/2);a.quadTo(b,f,0,f);a.quadTo(b/2,f/2,0,0);a.close();a.end()};mxCellRenderer.registerShape("xor",ga);mxUtils.extend(W,mxActor);W.prototype.size=20;W.prototype.isRoundable=function(){return!0};W.prototype.redrawPath=function(a,c,d,b,f){c=Math.min(b/ -2,Math.min(f,parseFloat(mxUtils.getValue(this.style,"size",this.size))));d=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(c,0),new mxPoint(b-c,0),new mxPoint(b,.8*c),new mxPoint(b,f),new mxPoint(0,f),new mxPoint(0,.8*c)],this.isRounded,d,!0);a.end()};mxCellRenderer.registerShape("loopLimit",W);mxUtils.extend(aa,mxActor);aa.prototype.size=.375;aa.prototype.isRoundable=function(){return!0};aa.prototype.redrawPath=function(a,c,d,b,f){c= -f*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));d=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,0),new mxPoint(b,0),new mxPoint(b,f-c),new mxPoint(b/2,f),new mxPoint(0,f-c)],this.isRounded,d,!0);a.end()};mxCellRenderer.registerShape("offPageConnector",aa);mxUtils.extend(Z,mxEllipse);Z.prototype.paintVertexShape=function(a,c,d,b,f){mxEllipse.prototype.paintVertexShape.apply(this,arguments);a.begin(); -a.moveTo(c+b/2,d+f);a.lineTo(c+b,d+f);a.end();a.stroke()};mxCellRenderer.registerShape("tapeData",Z);mxUtils.extend(pa,mxEllipse);pa.prototype.paintVertexShape=function(a,c,d,b,f){mxEllipse.prototype.paintVertexShape.apply(this,arguments);a.setShadow(!1);a.begin();a.moveTo(c,d+f/2);a.lineTo(c+b,d+f/2);a.end();a.stroke();a.begin();a.moveTo(c+b/2,d);a.lineTo(c+b/2,d+f);a.end();a.stroke()};mxCellRenderer.registerShape("orEllipse",pa);mxUtils.extend(ra,mxEllipse);ra.prototype.paintVertexShape=function(a, -c,d,b,f){mxEllipse.prototype.paintVertexShape.apply(this,arguments);a.setShadow(!1);a.begin();a.moveTo(c+.145*b,d+.145*f);a.lineTo(c+.855*b,d+.855*f);a.end();a.stroke();a.begin();a.moveTo(c+.855*b,d+.145*f);a.lineTo(c+.145*b,d+.855*f);a.end();a.stroke()};mxCellRenderer.registerShape("sumEllipse",ra);mxUtils.extend(fa,mxRhombus);fa.prototype.paintVertexShape=function(a,c,d,b,f){mxRhombus.prototype.paintVertexShape.apply(this,arguments);a.setShadow(!1);a.begin();a.moveTo(c,d+f/2);a.lineTo(c+b,d+f/2); -a.end();a.stroke()};mxCellRenderer.registerShape("sortShape",fa);mxUtils.extend(ma,mxEllipse);ma.prototype.paintVertexShape=function(a,c,d,b,f){a.begin();a.moveTo(c,d);a.lineTo(c+b,d);a.lineTo(c+b/2,d+f/2);a.close();a.fillAndStroke();a.begin();a.moveTo(c,d+f);a.lineTo(c+b,d+f);a.lineTo(c+b/2,d+f/2);a.close();a.fillAndStroke()};mxCellRenderer.registerShape("collate",ma);mxUtils.extend(ta,mxEllipse);ta.prototype.paintVertexShape=function(a,c,d,b,f){var e=d+f-5;a.begin();a.moveTo(c,d);a.lineTo(c,d+f); -a.moveTo(c,e);a.lineTo(c+10,e-5);a.moveTo(c,e);a.lineTo(c+10,e+5);a.moveTo(c,e);a.lineTo(c+b,e);a.moveTo(c+b,d);a.lineTo(c+b,d+f);a.moveTo(c+b,e);a.lineTo(c+b-10,e-5);a.moveTo(c+b,e);a.lineTo(c+b-10,e+5);a.end();a.stroke()};mxCellRenderer.registerShape("dimension",ta);mxUtils.extend(la,mxEllipse);la.prototype.paintVertexShape=function(a,c,d,b,f){this.outline||a.setStrokeColor(null);mxRectangleShape.prototype.paintBackground.apply(this,arguments);null!=this.style&&(a.setStrokeColor(this.stroke),a.rect(c, -d,b,f),a.fill(),a.begin(),a.moveTo(c,d),"1"==mxUtils.getValue(this.style,"top","1")?a.lineTo(c+b,d):a.moveTo(c+b,d),"1"==mxUtils.getValue(this.style,"right","1")?a.lineTo(c+b,d+f):a.moveTo(c+b,d+f),"1"==mxUtils.getValue(this.style,"bottom","1")?a.lineTo(c,d+f):a.moveTo(c,d+f),"1"==mxUtils.getValue(this.style,"left","1")&&a.lineTo(c,d-this.strokewidth/2),a.end(),a.stroke())};mxCellRenderer.registerShape("partialRectangle",la);mxUtils.extend(sa,mxEllipse);sa.prototype.paintVertexShape=function(a,c, -d,b,f){mxEllipse.prototype.paintVertexShape.apply(this,arguments);a.setShadow(!1);a.begin();"vertical"==mxUtils.getValue(this.style,"line")?(a.moveTo(c+b/2,d),a.lineTo(c+b/2,d+f)):(a.moveTo(c,d+f/2),a.lineTo(c+b,d+f/2));a.end();a.stroke()};mxCellRenderer.registerShape("lineEllipse",sa);mxUtils.extend(ha,mxActor);ha.prototype.redrawPath=function(a,c,d,b,f){c=Math.min(b,f/2);a.moveTo(0,0);a.lineTo(b-c,0);a.quadTo(b,0,b,f/2);a.quadTo(b,f,b-c,f);a.lineTo(0,f);a.close();a.end()};mxCellRenderer.registerShape("delay", -ha);mxUtils.extend(ca,mxActor);ca.prototype.size=.2;ca.prototype.redrawPath=function(a,c,d,b,f){c=Math.min(f,b);var e=Math.max(0,Math.min(c,c*parseFloat(mxUtils.getValue(this.style,"size",this.size))));c=(f-e)/2;d=c+e;var g=(b-e)/2,e=g+e;a.moveTo(0,c);a.lineTo(g,c);a.lineTo(g,0);a.lineTo(e,0);a.lineTo(e,c);a.lineTo(b,c);a.lineTo(b,d);a.lineTo(e,d);a.lineTo(e,f);a.lineTo(g,f);a.lineTo(g,d);a.lineTo(0,d);a.close();a.end()};mxCellRenderer.registerShape("cross",ca);mxUtils.extend(da,mxActor);da.prototype.size= -.25;da.prototype.redrawPath=function(a,c,d,b,f){c=Math.min(b,f/2);d=Math.min(b-c,Math.max(0,parseFloat(mxUtils.getValue(this.style,"size",this.size)))*b);a.moveTo(0,f/2);a.lineTo(d,0);a.lineTo(b-c,0);a.quadTo(b,0,b,f/2);a.quadTo(b,f,b-c,f);a.lineTo(d,f);a.close();a.end()};mxCellRenderer.registerShape("display",da);mxUtils.extend(ia,mxConnector);ia.prototype.origPaintEdgeShape=ia.prototype.paintEdgeShape;ia.prototype.paintEdgeShape=function(a,c,d){for(var b=[],f=0;f<c.length;f++)b.push(mxUtils.clone(c[f])); -var f=a.state.dashed,e=a.state.fixDash;ia.prototype.origPaintEdgeShape.apply(this,[a,b,d]);3<=a.state.strokeWidth&&(b=mxUtils.getValue(this.style,"fillColor",null),null!=b&&(a.setStrokeColor(b),a.setStrokeWidth(a.state.strokeWidth-2),a.setDashed(f,e),ia.prototype.origPaintEdgeShape.apply(this,[a,c,d])))};mxCellRenderer.registerShape("filledEdge",ia);"undefined"!==typeof StyleFormatPanel&&function(){var a=StyleFormatPanel.prototype.getCustomColors;StyleFormatPanel.prototype.getCustomColors=function(){var c= -this.format.getSelectionState(),d=a.apply(this,arguments);"umlFrame"==c.style.shape&&d.push({title:mxResources.get("laneColor"),key:"swimlaneFillColor",defaultValue:"#ffffff"});return d}}();mxMarker.addMarker("dash",function(a,c,d,b,f,e,g,k,l,n){var t=f*(g+l+1),r=e*(g+l+1);return function(){a.begin();a.moveTo(b.x-t/2-r/2,b.y-r/2+t/2);a.lineTo(b.x+r/2-3*t/2,b.y-3*r/2-t/2);a.stroke()}});mxMarker.addMarker("cross",function(a,c,d,b,f,e,g,k,l,n){var t=f*(g+l+1),r=e*(g+l+1);return function(){a.begin(); -a.moveTo(b.x-t/2-r/2,b.y-r/2+t/2);a.lineTo(b.x+r/2-3*t/2,b.y-3*r/2-t/2);a.moveTo(b.x-t/2+r/2,b.y-r/2-t/2);a.lineTo(b.x-r/2-3*t/2,b.y-3*r/2+t/2);a.stroke()}});mxMarker.addMarker("circle",wa);mxMarker.addMarker("circlePlus",function(a,c,d,b,f,e,g,k,l,n){var t=b.clone(),r=wa.apply(this,arguments),y=f*(g+2*l),h=e*(g+2*l);return function(){r.apply(this,arguments);a.begin();a.moveTo(t.x-f*l,t.y-e*l);a.lineTo(t.x-2*y+f*l,t.y-2*h+e*l);a.moveTo(t.x-y-h+e*l,t.y-h+y-f*l);a.lineTo(t.x+h-y-e*l,t.y-h-y+f*l);a.stroke()}}); -mxMarker.addMarker("async",function(a,c,d,b,f,e,g,k,l,n){c=f*l*1.118;d=e*l*1.118;f*=g+l;e*=g+l;var t=b.clone();t.x-=c;t.y-=d;b.x+=1*-f-c;b.y+=1*-e-d;return function(){a.begin();a.moveTo(t.x,t.y);k?a.lineTo(t.x-f-e/2,t.y-e+f/2):a.lineTo(t.x+e/2-f,t.y-e-f/2);a.lineTo(t.x-f,t.y-e);a.close();n?a.fillAndStroke():a.stroke()}});mxMarker.addMarker("openAsync",function(a){a=null!=a?a:2;return function(c,b,d,f,e,g,k,l,n,t){e*=k+n;g*=k+n;var r=f.clone();return function(){c.begin();c.moveTo(r.x,r.y);l?c.lineTo(r.x- -e-g/a,r.y-g+e/a):c.lineTo(r.x+g/a-e,r.y-g-e/a);c.stroke()}}}(2));if("undefined"!==typeof mxVertexHandler){var Ca=function(a,c,b){return ua(a,["width"],c,function(c,d,f,e,g){g=a.shape.getEdgeWidth()*a.view.scale+b;return new mxPoint(e.x+d*c/4+f*g/2,e.y+f*c/4-d*g/2)},function(c,d,f,e,g,k){c=Math.sqrt(mxUtils.ptSegDistSq(e.x,e.y,g.x,g.y,k.x,k.y));a.style.width=Math.round(2*c)/a.view.scale-b})},ua=function(a,c,d,b,f){return O(a,c,function(c){var f=a.absolutePoints,e=f.length-1;c=a.view.translate;var g= -a.view.scale,k=d?f[0]:f[e],f=d?f[1]:f[e-1],e=f.x-k.x,l=f.y-k.y,n=Math.sqrt(e*e+l*l),k=b.call(this,n,e/n,l/n,k,f);return new mxPoint(k.x/g-c.x,k.y/g-c.y)},function(c,b,e){var g=a.absolutePoints,k=g.length-1;c=a.view.translate;var l=a.view.scale,n=d?g[0]:g[k],g=d?g[1]:g[k-1],k=g.x-n.x,t=g.y-n.y,r=Math.sqrt(k*k+t*t);b.x=(b.x+c.x)*l;b.y=(b.y+c.y)*l;f.call(this,r,k/r,t/r,n,g,b,e)})},oa=function(a){return function(c){return[O(c,["arrowWidth","arrowSize"],function(c){var b=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style, +function(){return this.getEdgeWidth()+mxUtils.getNumber(this.style,"endWidth",this.defaultArrowWidth)};ba.prototype.getEdgeWidth=function(){return mxUtils.getNumber(this.style,"width",this.defaultWidth)+Math.max(0,this.strokewidth-1)};mxCellRenderer.registerShape("flexArrow",ba);mxUtils.extend(L,mxActor);L.prototype.size=30;L.prototype.isRoundable=function(){return!0};L.prototype.redrawPath=function(a,c,b,d,f){c=Math.min(f,parseFloat(mxUtils.getValue(this.style,"size",this.size)));b=mxUtils.getValue(this.style, +mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,f),new mxPoint(0,c),new mxPoint(d,0),new mxPoint(d,f)],this.isRounded,b,!0);a.end()};mxCellRenderer.registerShape("manualInput",L);mxUtils.extend(E,mxRectangleShape);E.prototype.dx=20;E.prototype.dy=20;E.prototype.isHtmlAllowed=function(){return!1};E.prototype.paintForeground=function(a,c,b,d,f){mxRectangleShape.prototype.paintForeground.apply(this,arguments);var e=0;if(this.isRounded)var g=mxUtils.getValue(this.style, +mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100,e=Math.max(e,Math.min(d*g,f*g));g=Math.max(e,Math.min(d,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));e=Math.max(e,Math.min(f,parseFloat(mxUtils.getValue(this.style,"dy",this.dy))));a.begin();a.moveTo(c,b+e);a.lineTo(c+d,b+e);a.end();a.stroke();a.begin();a.moveTo(c+g,b);a.lineTo(c+g,b+f);a.end();a.stroke()};mxCellRenderer.registerShape("internalStorage",E);mxUtils.extend(S,mxActor);S.prototype.dx=20;S.prototype.dy= +20;S.prototype.redrawPath=function(a,c,b,d,f){c=Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));b=Math.max(0,Math.min(f,parseFloat(mxUtils.getValue(this.style,"dy",this.dy))));parseFloat(mxUtils.getValue(this.style,"size",this.size));var e=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,0),new mxPoint(d,0),new mxPoint(d,b),new mxPoint(c,b),new mxPoint(c,f),new mxPoint(0,f)],this.isRounded,e,!0);a.end()}; +mxCellRenderer.registerShape("corner",S);mxUtils.extend(M,mxActor);M.prototype.redrawPath=function(a,c,b,d,f){a.moveTo(0,0);a.lineTo(0,f);a.end();a.moveTo(d,0);a.lineTo(d,f);a.end();a.moveTo(0,f/2);a.lineTo(d,f/2);a.end()};mxCellRenderer.registerShape("crossbar",M);mxUtils.extend(N,mxActor);N.prototype.dx=20;N.prototype.dy=20;N.prototype.redrawPath=function(a,c,b,d,f){c=Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));b=Math.max(0,Math.min(f,parseFloat(mxUtils.getValue(this.style, +"dy",this.dy))));parseFloat(mxUtils.getValue(this.style,"size",this.size));var e=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,0),new mxPoint(d,0),new mxPoint(d,b),new mxPoint((d+c)/2,b),new mxPoint((d+c)/2,f),new mxPoint((d-c)/2,f),new mxPoint((d-c)/2,b),new mxPoint(0,b)],this.isRounded,e,!0);a.end()};mxCellRenderer.registerShape("tee",N);mxUtils.extend(T,mxActor);T.prototype.arrowWidth=.3;T.prototype.arrowSize=.2;T.prototype.redrawPath= +function(a,c,b,d,f){var e=f*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowWidth",this.arrowWidth))));c=d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowSize",this.arrowSize))));b=(f-e)/2;var e=b+e,g=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,b),new mxPoint(d-c,b),new mxPoint(d-c,0),new mxPoint(d,f/2),new mxPoint(d-c,f),new mxPoint(d-c,e),new mxPoint(0,e)],this.isRounded,g,!0);a.end()};mxCellRenderer.registerShape("singleArrow", +T);mxUtils.extend(D,mxActor);D.prototype.redrawPath=function(a,c,b,d,f){var e=f*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowWidth",T.prototype.arrowWidth))));c=d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowSize",T.prototype.arrowSize))));b=(f-e)/2;var e=b+e,g=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,f/2),new mxPoint(c,0),new mxPoint(c,b),new mxPoint(d-c,b),new mxPoint(d-c,0),new mxPoint(d, +f/2),new mxPoint(d-c,f),new mxPoint(d-c,e),new mxPoint(c,e),new mxPoint(c,f)],this.isRounded,g,!0);a.end()};mxCellRenderer.registerShape("doubleArrow",D);mxUtils.extend(Q,mxActor);Q.prototype.size=.1;Q.prototype.redrawPath=function(a,c,b,d,f){c=d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));a.moveTo(c,0);a.lineTo(d,0);a.quadTo(d-2*c,f/2,d,f);a.lineTo(c,f);a.quadTo(c-2*c,f/2,c,0);a.close();a.end()};mxCellRenderer.registerShape("dataStorage",Q);mxUtils.extend(V, +mxActor);V.prototype.redrawPath=function(a,c,b,d,f){a.moveTo(0,0);a.quadTo(d,0,d,f/2);a.quadTo(d,f,0,f);a.close();a.end()};mxCellRenderer.registerShape("or",V);mxUtils.extend(ga,mxActor);ga.prototype.redrawPath=function(a,c,b,d,f){a.moveTo(0,0);a.quadTo(d,0,d,f/2);a.quadTo(d,f,0,f);a.quadTo(d/2,f/2,0,0);a.close();a.end()};mxCellRenderer.registerShape("xor",ga);mxUtils.extend(W,mxActor);W.prototype.size=20;W.prototype.isRoundable=function(){return!0};W.prototype.redrawPath=function(a,c,b,d,f){c=Math.min(d/ +2,Math.min(f,parseFloat(mxUtils.getValue(this.style,"size",this.size))));b=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(c,0),new mxPoint(d-c,0),new mxPoint(d,.8*c),new mxPoint(d,f),new mxPoint(0,f),new mxPoint(0,.8*c)],this.isRounded,b,!0);a.end()};mxCellRenderer.registerShape("loopLimit",W);mxUtils.extend(aa,mxActor);aa.prototype.size=.375;aa.prototype.isRoundable=function(){return!0};aa.prototype.redrawPath=function(a,c,b,d,f){c= +f*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));b=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,0),new mxPoint(d,0),new mxPoint(d,f-c),new mxPoint(d/2,f),new mxPoint(0,f-c)],this.isRounded,b,!0);a.end()};mxCellRenderer.registerShape("offPageConnector",aa);mxUtils.extend(Z,mxEllipse);Z.prototype.paintVertexShape=function(a,c,b,d,f){mxEllipse.prototype.paintVertexShape.apply(this,arguments);a.begin(); +a.moveTo(c+d/2,b+f);a.lineTo(c+d,b+f);a.end();a.stroke()};mxCellRenderer.registerShape("tapeData",Z);mxUtils.extend(pa,mxEllipse);pa.prototype.paintVertexShape=function(a,c,b,d,f){mxEllipse.prototype.paintVertexShape.apply(this,arguments);a.setShadow(!1);a.begin();a.moveTo(c,b+f/2);a.lineTo(c+d,b+f/2);a.end();a.stroke();a.begin();a.moveTo(c+d/2,b);a.lineTo(c+d/2,b+f);a.end();a.stroke()};mxCellRenderer.registerShape("orEllipse",pa);mxUtils.extend(ra,mxEllipse);ra.prototype.paintVertexShape=function(a, +c,b,d,f){mxEllipse.prototype.paintVertexShape.apply(this,arguments);a.setShadow(!1);a.begin();a.moveTo(c+.145*d,b+.145*f);a.lineTo(c+.855*d,b+.855*f);a.end();a.stroke();a.begin();a.moveTo(c+.855*d,b+.145*f);a.lineTo(c+.145*d,b+.855*f);a.end();a.stroke()};mxCellRenderer.registerShape("sumEllipse",ra);mxUtils.extend(fa,mxRhombus);fa.prototype.paintVertexShape=function(a,c,b,d,f){mxRhombus.prototype.paintVertexShape.apply(this,arguments);a.setShadow(!1);a.begin();a.moveTo(c,b+f/2);a.lineTo(c+d,b+f/2); +a.end();a.stroke()};mxCellRenderer.registerShape("sortShape",fa);mxUtils.extend(ma,mxEllipse);ma.prototype.paintVertexShape=function(a,c,b,d,f){a.begin();a.moveTo(c,b);a.lineTo(c+d,b);a.lineTo(c+d/2,b+f/2);a.close();a.fillAndStroke();a.begin();a.moveTo(c,b+f);a.lineTo(c+d,b+f);a.lineTo(c+d/2,b+f/2);a.close();a.fillAndStroke()};mxCellRenderer.registerShape("collate",ma);mxUtils.extend(ta,mxEllipse);ta.prototype.paintVertexShape=function(a,c,b,d,f){var e=b+f-5;a.begin();a.moveTo(c,b);a.lineTo(c,b+f); +a.moveTo(c,e);a.lineTo(c+10,e-5);a.moveTo(c,e);a.lineTo(c+10,e+5);a.moveTo(c,e);a.lineTo(c+d,e);a.moveTo(c+d,b);a.lineTo(c+d,b+f);a.moveTo(c+d,e);a.lineTo(c+d-10,e-5);a.moveTo(c+d,e);a.lineTo(c+d-10,e+5);a.end();a.stroke()};mxCellRenderer.registerShape("dimension",ta);mxUtils.extend(la,mxEllipse);la.prototype.paintVertexShape=function(a,c,b,d,f){this.outline||a.setStrokeColor(null);mxRectangleShape.prototype.paintBackground.apply(this,arguments);null!=this.style&&(a.setStrokeColor(this.stroke),a.rect(c, +b,d,f),a.fill(),a.begin(),a.moveTo(c,b),"1"==mxUtils.getValue(this.style,"top","1")?a.lineTo(c+d,b):a.moveTo(c+d,b),"1"==mxUtils.getValue(this.style,"right","1")?a.lineTo(c+d,b+f):a.moveTo(c+d,b+f),"1"==mxUtils.getValue(this.style,"bottom","1")?a.lineTo(c,b+f):a.moveTo(c,b+f),"1"==mxUtils.getValue(this.style,"left","1")&&a.lineTo(c,b-this.strokewidth/2),a.end(),a.stroke())};mxCellRenderer.registerShape("partialRectangle",la);mxUtils.extend(sa,mxEllipse);sa.prototype.paintVertexShape=function(a,c, +b,d,f){mxEllipse.prototype.paintVertexShape.apply(this,arguments);a.setShadow(!1);a.begin();"vertical"==mxUtils.getValue(this.style,"line")?(a.moveTo(c+d/2,b),a.lineTo(c+d/2,b+f)):(a.moveTo(c,b+f/2),a.lineTo(c+d,b+f/2));a.end();a.stroke()};mxCellRenderer.registerShape("lineEllipse",sa);mxUtils.extend(ha,mxActor);ha.prototype.redrawPath=function(a,c,b,d,f){c=Math.min(d,f/2);a.moveTo(0,0);a.lineTo(d-c,0);a.quadTo(d,0,d,f/2);a.quadTo(d,f,d-c,f);a.lineTo(0,f);a.close();a.end()};mxCellRenderer.registerShape("delay", +ha);mxUtils.extend(ca,mxActor);ca.prototype.size=.2;ca.prototype.redrawPath=function(a,c,b,d,f){c=Math.min(f,d);var e=Math.max(0,Math.min(c,c*parseFloat(mxUtils.getValue(this.style,"size",this.size))));c=(f-e)/2;b=c+e;var g=(d-e)/2,e=g+e;a.moveTo(0,c);a.lineTo(g,c);a.lineTo(g,0);a.lineTo(e,0);a.lineTo(e,c);a.lineTo(d,c);a.lineTo(d,b);a.lineTo(e,b);a.lineTo(e,f);a.lineTo(g,f);a.lineTo(g,b);a.lineTo(0,b);a.close();a.end()};mxCellRenderer.registerShape("cross",ca);mxUtils.extend(da,mxActor);da.prototype.size= +.25;da.prototype.redrawPath=function(a,c,b,d,f){c=Math.min(d,f/2);b=Math.min(d-c,Math.max(0,parseFloat(mxUtils.getValue(this.style,"size",this.size)))*d);a.moveTo(0,f/2);a.lineTo(b,0);a.lineTo(d-c,0);a.quadTo(d,0,d,f/2);a.quadTo(d,f,d-c,f);a.lineTo(b,f);a.close();a.end()};mxCellRenderer.registerShape("display",da);mxUtils.extend(ia,mxConnector);ia.prototype.origPaintEdgeShape=ia.prototype.paintEdgeShape;ia.prototype.paintEdgeShape=function(a,c,b){for(var d=[],f=0;f<c.length;f++)d.push(mxUtils.clone(c[f])); +var f=a.state.dashed,e=a.state.fixDash;ia.prototype.origPaintEdgeShape.apply(this,[a,d,b]);3<=a.state.strokeWidth&&(d=mxUtils.getValue(this.style,"fillColor",null),null!=d&&(a.setStrokeColor(d),a.setStrokeWidth(a.state.strokeWidth-2),a.setDashed(f,e),ia.prototype.origPaintEdgeShape.apply(this,[a,c,b])))};mxCellRenderer.registerShape("filledEdge",ia);"undefined"!==typeof StyleFormatPanel&&function(){var a=StyleFormatPanel.prototype.getCustomColors;StyleFormatPanel.prototype.getCustomColors=function(){var c= +this.format.getSelectionState(),b=a.apply(this,arguments);"umlFrame"==c.style.shape&&b.push({title:mxResources.get("laneColor"),key:"swimlaneFillColor",defaultValue:"#ffffff"});return b}}();mxMarker.addMarker("dash",function(a,c,b,d,f,e,g,h,n,m){var t=f*(g+n+1),r=e*(g+n+1);return function(){a.begin();a.moveTo(d.x-t/2-r/2,d.y-r/2+t/2);a.lineTo(d.x+r/2-3*t/2,d.y-3*r/2-t/2);a.stroke()}});mxMarker.addMarker("cross",function(a,c,b,d,f,e,g,h,n,m){var t=f*(g+n+1),r=e*(g+n+1);return function(){a.begin(); +a.moveTo(d.x-t/2-r/2,d.y-r/2+t/2);a.lineTo(d.x+r/2-3*t/2,d.y-3*r/2-t/2);a.moveTo(d.x-t/2+r/2,d.y-r/2-t/2);a.lineTo(d.x-r/2-3*t/2,d.y-3*r/2+t/2);a.stroke()}});mxMarker.addMarker("circle",wa);mxMarker.addMarker("circlePlus",function(a,c,b,d,f,e,g,h,n,m){var t=d.clone(),r=wa.apply(this,arguments),y=f*(g+2*n),k=e*(g+2*n);return function(){r.apply(this,arguments);a.begin();a.moveTo(t.x-f*n,t.y-e*n);a.lineTo(t.x-2*y+f*n,t.y-2*k+e*n);a.moveTo(t.x-y-k+e*n,t.y-k+y-f*n);a.lineTo(t.x+k-y-e*n,t.y-k-y+f*n);a.stroke()}}); +mxMarker.addMarker("async",function(a,c,b,d,f,e,g,h,n,m){c=f*n*1.118;b=e*n*1.118;f*=g+n;e*=g+n;var t=d.clone();t.x-=c;t.y-=b;d.x+=1*-f-c;d.y+=1*-e-b;return function(){a.begin();a.moveTo(t.x,t.y);h?a.lineTo(t.x-f-e/2,t.y-e+f/2):a.lineTo(t.x+e/2-f,t.y-e-f/2);a.lineTo(t.x-f,t.y-e);a.close();m?a.fillAndStroke():a.stroke()}});mxMarker.addMarker("openAsync",function(a){a=null!=a?a:2;return function(c,d,b,f,e,g,h,n,m,t){e*=h+m;g*=h+m;var r=f.clone();return function(){c.begin();c.moveTo(r.x,r.y);n?c.lineTo(r.x- +e-g/a,r.y-g+e/a):c.lineTo(r.x+g/a-e,r.y-g-e/a);c.stroke()}}}(2));if("undefined"!==typeof mxVertexHandler){var Ca=function(a,c,d){return ua(a,["width"],c,function(c,b,f,e,g){g=a.shape.getEdgeWidth()*a.view.scale+d;return new mxPoint(e.x+b*c/4+f*g/2,e.y+f*c/4-b*g/2)},function(c,b,f,e,g,h){c=Math.sqrt(mxUtils.ptSegDistSq(e.x,e.y,g.x,g.y,h.x,h.y));a.style.width=Math.round(2*c)/a.view.scale-d})},ua=function(a,c,d,b,f){return O(a,c,function(c){var f=a.absolutePoints,e=f.length-1;c=a.view.translate;var g= +a.view.scale,h=d?f[0]:f[e],f=d?f[1]:f[e-1],e=f.x-h.x,n=f.y-h.y,m=Math.sqrt(e*e+n*n),h=b.call(this,m,e/m,n/m,h,f);return new mxPoint(h.x/g-c.x,h.y/g-c.y)},function(c,b,e){var g=a.absolutePoints,h=g.length-1;c=a.view.translate;var n=a.view.scale,m=d?g[0]:g[h],g=d?g[1]:g[h-1],h=g.x-m.x,t=g.y-m.y,r=Math.sqrt(h*h+t*t);b.x=(b.x+c.x)*n;b.y=(b.y+c.y)*n;f.call(this,r,h/r,t/r,m,g,b,e)})},oa=function(a){return function(c){return[O(c,["arrowWidth","arrowSize"],function(c){var b=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style, "arrowWidth",T.prototype.arrowWidth))),d=Math.max(0,Math.min(a,mxUtils.getValue(this.state.style,"arrowSize",T.prototype.arrowSize)));return new mxPoint(c.x+(1-d)*c.width,c.y+(1-b)*c.height/2)},function(c,b){this.state.style.arrowWidth=Math.max(0,Math.min(1,Math.abs(c.y+c.height/2-b.y)/c.height*2));this.state.style.arrowSize=Math.max(0,Math.min(a,(c.x+c.width-b.x)/c.width))})]}},Da=function(a,c,b){return function(d){var f=[O(d,["size"],function(b){var d=Math.max(0,Math.min(b.width,Math.min(b.height, parseFloat(mxUtils.getValue(this.state.style,"size",c)))))*a;return new mxPoint(b.x+d,b.y+d)},function(c,b){this.state.style.size=Math.round(Math.max(0,Math.min(Math.min(c.width,b.x-c.x),Math.min(c.height,b.y-c.y)))/a)})];b&&mxUtils.getValue(d.style,mxConstants.STYLE_ROUNDED,!1)&&f.push(ja(d));return f}},xa=function(a,c,b,d,f){b=null!=b?b:1;return function(e){var g=[O(e,["size"],function(c){var b=null!=f?"0"!=mxUtils.getValue(this.state.style,"fixedSize","0"):null,d=parseFloat(mxUtils.getValue(this.state.style, "size",b?f:a));return new mxPoint(c.x+Math.max(0,Math.min(c.width,d*(b?1:c.width))),c.getCenterY())},function(a,c,d){var g=null!=f?"0"!=mxUtils.getValue(this.state.style,"fixedSize","0"):null;a=g?c.x-a.x:Math.max(0,Math.min(b,(c.x-a.x)/a.width));g&&!mxEvent.isAltDown(d.getEvent())&&(a=e.view.graph.snap(a));this.state.style.size=a},null,d)];c&&mxUtils.getValue(e.style,mxConstants.STYLE_ROUNDED,!1)&&g.push(ja(e));return g}},Fa=function(a){return function(c){var b=[O(c,["size"],function(c){var b=Math.max(0, Math.min(a,parseFloat(mxUtils.getValue(this.state.style,"size",g.prototype.size))));return new mxPoint(c.x+b*c.width*.75,c.y+c.height/4)},function(c,b){this.state.style.size=Math.max(0,Math.min(a,(b.x-c.x)/(.75*c.width)))},null,!0)];mxUtils.getValue(c.style,mxConstants.STYLE_ROUNDED,!1)&&b.push(ja(c));return b}},va=function(){return function(a){var c=[];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,!1)&&c.push(ja(a));return c}},ja=function(a,c){return O(a,[mxConstants.STYLE_ARCSIZE],function(b){var d= null!=c?c:b.height/8;if("1"==mxUtils.getValue(a.style,mxConstants.STYLE_ABSOLUTE_ARCSIZE,0)){var f=mxUtils.getValue(a.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;return new mxPoint(b.x+b.width-Math.min(b.width/2,f),b.y+d)}f=Math.max(0,parseFloat(mxUtils.getValue(a.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)))/100;return new mxPoint(b.x+b.width-Math.min(Math.max(b.width/2,b.height/2),Math.min(b.width,b.height)*f),b.y+d)},function(c,b,d){"1"==mxUtils.getValue(a.style, mxConstants.STYLE_ABSOLUTE_ARCSIZE,0)?this.state.style[mxConstants.STYLE_ARCSIZE]=Math.round(Math.max(0,Math.min(c.width,2*(c.x+c.width-b.x)))):this.state.style[mxConstants.STYLE_ARCSIZE]=Math.round(Math.min(50,Math.max(0,100*(c.width-b.x+c.x)/Math.min(c.width,c.height))))})},O=function(a,c,b,d,f,e){var g=new mxHandle(a,null,mxVertexHandler.prototype.secondaryHandleImage);g.execute=function(){for(var a=0;a<c.length;a++)this.copyStyle(c[a])};g.getPosition=b;g.setPosition=d;g.ignoreGrid=null!=f?f:!0; -if(e){var k=g.positionChanged;g.positionChanged=function(){k.apply(this,arguments);a.view.invalidate(this.state.cell);a.view.validate()}}return g},ya={link:function(a){return[Ca(a,!0,10),Ca(a,!1,10)]},flexArrow:function(a){var c=a.view.graph.gridSize/a.view.scale,b=[];mxUtils.getValue(a.style,mxConstants.STYLE_STARTARROW,mxConstants.NONE)!=mxConstants.NONE&&(b.push(ua(a,["width",mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE],!0,function(c,b,d,f,e){c=(a.shape.getEdgeWidth()-a.shape.strokewidth)* -a.view.scale;e=3*mxUtils.getNumber(a.style,mxConstants.STYLE_STARTSIZE,mxConstants.ARROW_SIZE/5)*a.view.scale;return new mxPoint(f.x+b*(e+a.shape.strokewidth*a.view.scale)+d*c/2,f.y+d*(e+a.shape.strokewidth*a.view.scale)-b*c/2)},function(b,d,f,e,g,k,l){b=Math.sqrt(mxUtils.ptSegDistSq(e.x,e.y,g.x,g.y,k.x,k.y));d=mxUtils.ptLineDist(e.x,e.y,e.x+f,e.y-d,k.x,k.y);a.style[mxConstants.STYLE_STARTSIZE]=Math.round(100*(d-a.shape.strokewidth)/3)/100/a.view.scale;a.style.width=Math.round(2*b)/a.view.scale;mxEvent.isControlDown(l.getEvent())&& -(a.style[mxConstants.STYLE_ENDSIZE]=a.style[mxConstants.STYLE_STARTSIZE]);mxEvent.isAltDown(l.getEvent())||Math.abs(parseFloat(a.style[mxConstants.STYLE_STARTSIZE])-parseFloat(a.style[mxConstants.STYLE_ENDSIZE]))<c/6&&(a.style[mxConstants.STYLE_STARTSIZE]=a.style[mxConstants.STYLE_ENDSIZE])})),b.push(ua(a,["startWidth","endWidth",mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE],!0,function(c,b,d,f,e){c=(a.shape.getStartArrowWidth()-a.shape.strokewidth)*a.view.scale;e=3*mxUtils.getNumber(a.style, -mxConstants.STYLE_STARTSIZE,mxConstants.ARROW_SIZE/5)*a.view.scale;return new mxPoint(f.x+b*(e+a.shape.strokewidth*a.view.scale)+d*c/2,f.y+d*(e+a.shape.strokewidth*a.view.scale)-b*c/2)},function(b,d,f,e,g,k,l){b=Math.sqrt(mxUtils.ptSegDistSq(e.x,e.y,g.x,g.y,k.x,k.y));d=mxUtils.ptLineDist(e.x,e.y,e.x+f,e.y-d,k.x,k.y);a.style[mxConstants.STYLE_STARTSIZE]=Math.round(100*(d-a.shape.strokewidth)/3)/100/a.view.scale;a.style.startWidth=Math.max(0,Math.round(2*b)-a.shape.getEdgeWidth())/a.view.scale;mxEvent.isControlDown(l.getEvent())&& -(a.style[mxConstants.STYLE_ENDSIZE]=a.style[mxConstants.STYLE_STARTSIZE],a.style.endWidth=a.style.startWidth);mxEvent.isAltDown(l.getEvent())||(Math.abs(parseFloat(a.style[mxConstants.STYLE_STARTSIZE])-parseFloat(a.style[mxConstants.STYLE_ENDSIZE]))<c/6&&(a.style[mxConstants.STYLE_STARTSIZE]=a.style[mxConstants.STYLE_ENDSIZE]),Math.abs(parseFloat(a.style.startWidth)-parseFloat(a.style.endWidth))<c&&(a.style.startWidth=a.style.endWidth))})));mxUtils.getValue(a.style,mxConstants.STYLE_ENDARROW,mxConstants.NONE)!= -mxConstants.NONE&&(b.push(ua(a,["width",mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE],!1,function(c,b,d,f,e){c=(a.shape.getEdgeWidth()-a.shape.strokewidth)*a.view.scale;e=3*mxUtils.getNumber(a.style,mxConstants.STYLE_ENDSIZE,mxConstants.ARROW_SIZE/5)*a.view.scale;return new mxPoint(f.x+b*(e+a.shape.strokewidth*a.view.scale)-d*c/2,f.y+d*(e+a.shape.strokewidth*a.view.scale)+b*c/2)},function(b,d,f,e,g,k,l){b=Math.sqrt(mxUtils.ptSegDistSq(e.x,e.y,g.x,g.y,k.x,k.y));d=mxUtils.ptLineDist(e.x,e.y, -e.x+f,e.y-d,k.x,k.y);a.style[mxConstants.STYLE_ENDSIZE]=Math.round(100*(d-a.shape.strokewidth)/3)/100/a.view.scale;a.style.width=Math.round(2*b)/a.view.scale;mxEvent.isControlDown(l.getEvent())&&(a.style[mxConstants.STYLE_STARTSIZE]=a.style[mxConstants.STYLE_ENDSIZE]);mxEvent.isAltDown(l.getEvent())||Math.abs(parseFloat(a.style[mxConstants.STYLE_ENDSIZE])-parseFloat(a.style[mxConstants.STYLE_STARTSIZE]))<c/6&&(a.style[mxConstants.STYLE_ENDSIZE]=a.style[mxConstants.STYLE_STARTSIZE])})),b.push(ua(a, -["startWidth","endWidth",mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE],!1,function(c,b,d,f,e){c=(a.shape.getEndArrowWidth()-a.shape.strokewidth)*a.view.scale;e=3*mxUtils.getNumber(a.style,mxConstants.STYLE_ENDSIZE,mxConstants.ARROW_SIZE/5)*a.view.scale;return new mxPoint(f.x+b*(e+a.shape.strokewidth*a.view.scale)-d*c/2,f.y+d*(e+a.shape.strokewidth*a.view.scale)+b*c/2)},function(b,d,f,e,g,k,l){b=Math.sqrt(mxUtils.ptSegDistSq(e.x,e.y,g.x,g.y,k.x,k.y));d=mxUtils.ptLineDist(e.x,e.y,e.x+f,e.y- -d,k.x,k.y);a.style[mxConstants.STYLE_ENDSIZE]=Math.round(100*(d-a.shape.strokewidth)/3)/100/a.view.scale;a.style.endWidth=Math.max(0,Math.round(2*b)-a.shape.getEdgeWidth())/a.view.scale;mxEvent.isControlDown(l.getEvent())&&(a.style[mxConstants.STYLE_STARTSIZE]=a.style[mxConstants.STYLE_ENDSIZE],a.style.startWidth=a.style.endWidth);mxEvent.isAltDown(l.getEvent())||(Math.abs(parseFloat(a.style[mxConstants.STYLE_ENDSIZE])-parseFloat(a.style[mxConstants.STYLE_STARTSIZE]))<c/6&&(a.style[mxConstants.STYLE_ENDSIZE]= +if(e){var h=g.positionChanged;g.positionChanged=function(){h.apply(this,arguments);a.view.invalidate(this.state.cell);a.view.validate()}}return g},ya={link:function(a){return[Ca(a,!0,10),Ca(a,!1,10)]},flexArrow:function(a){var c=a.view.graph.gridSize/a.view.scale,b=[];mxUtils.getValue(a.style,mxConstants.STYLE_STARTARROW,mxConstants.NONE)!=mxConstants.NONE&&(b.push(ua(a,["width",mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE],!0,function(c,b,d,f,e){c=(a.shape.getEdgeWidth()-a.shape.strokewidth)* +a.view.scale;e=3*mxUtils.getNumber(a.style,mxConstants.STYLE_STARTSIZE,mxConstants.ARROW_SIZE/5)*a.view.scale;return new mxPoint(f.x+b*(e+a.shape.strokewidth*a.view.scale)+d*c/2,f.y+d*(e+a.shape.strokewidth*a.view.scale)-b*c/2)},function(b,d,f,e,g,h,n){b=Math.sqrt(mxUtils.ptSegDistSq(e.x,e.y,g.x,g.y,h.x,h.y));d=mxUtils.ptLineDist(e.x,e.y,e.x+f,e.y-d,h.x,h.y);a.style[mxConstants.STYLE_STARTSIZE]=Math.round(100*(d-a.shape.strokewidth)/3)/100/a.view.scale;a.style.width=Math.round(2*b)/a.view.scale;mxEvent.isControlDown(n.getEvent())&& +(a.style[mxConstants.STYLE_ENDSIZE]=a.style[mxConstants.STYLE_STARTSIZE]);mxEvent.isAltDown(n.getEvent())||Math.abs(parseFloat(a.style[mxConstants.STYLE_STARTSIZE])-parseFloat(a.style[mxConstants.STYLE_ENDSIZE]))<c/6&&(a.style[mxConstants.STYLE_STARTSIZE]=a.style[mxConstants.STYLE_ENDSIZE])})),b.push(ua(a,["startWidth","endWidth",mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE],!0,function(c,b,d,f,e){c=(a.shape.getStartArrowWidth()-a.shape.strokewidth)*a.view.scale;e=3*mxUtils.getNumber(a.style, +mxConstants.STYLE_STARTSIZE,mxConstants.ARROW_SIZE/5)*a.view.scale;return new mxPoint(f.x+b*(e+a.shape.strokewidth*a.view.scale)+d*c/2,f.y+d*(e+a.shape.strokewidth*a.view.scale)-b*c/2)},function(b,d,f,e,g,h,n){b=Math.sqrt(mxUtils.ptSegDistSq(e.x,e.y,g.x,g.y,h.x,h.y));d=mxUtils.ptLineDist(e.x,e.y,e.x+f,e.y-d,h.x,h.y);a.style[mxConstants.STYLE_STARTSIZE]=Math.round(100*(d-a.shape.strokewidth)/3)/100/a.view.scale;a.style.startWidth=Math.max(0,Math.round(2*b)-a.shape.getEdgeWidth())/a.view.scale;mxEvent.isControlDown(n.getEvent())&& +(a.style[mxConstants.STYLE_ENDSIZE]=a.style[mxConstants.STYLE_STARTSIZE],a.style.endWidth=a.style.startWidth);mxEvent.isAltDown(n.getEvent())||(Math.abs(parseFloat(a.style[mxConstants.STYLE_STARTSIZE])-parseFloat(a.style[mxConstants.STYLE_ENDSIZE]))<c/6&&(a.style[mxConstants.STYLE_STARTSIZE]=a.style[mxConstants.STYLE_ENDSIZE]),Math.abs(parseFloat(a.style.startWidth)-parseFloat(a.style.endWidth))<c&&(a.style.startWidth=a.style.endWidth))})));mxUtils.getValue(a.style,mxConstants.STYLE_ENDARROW,mxConstants.NONE)!= +mxConstants.NONE&&(b.push(ua(a,["width",mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE],!1,function(c,b,d,f,e){c=(a.shape.getEdgeWidth()-a.shape.strokewidth)*a.view.scale;e=3*mxUtils.getNumber(a.style,mxConstants.STYLE_ENDSIZE,mxConstants.ARROW_SIZE/5)*a.view.scale;return new mxPoint(f.x+b*(e+a.shape.strokewidth*a.view.scale)-d*c/2,f.y+d*(e+a.shape.strokewidth*a.view.scale)+b*c/2)},function(b,d,f,e,g,h,n){b=Math.sqrt(mxUtils.ptSegDistSq(e.x,e.y,g.x,g.y,h.x,h.y));d=mxUtils.ptLineDist(e.x,e.y, +e.x+f,e.y-d,h.x,h.y);a.style[mxConstants.STYLE_ENDSIZE]=Math.round(100*(d-a.shape.strokewidth)/3)/100/a.view.scale;a.style.width=Math.round(2*b)/a.view.scale;mxEvent.isControlDown(n.getEvent())&&(a.style[mxConstants.STYLE_STARTSIZE]=a.style[mxConstants.STYLE_ENDSIZE]);mxEvent.isAltDown(n.getEvent())||Math.abs(parseFloat(a.style[mxConstants.STYLE_ENDSIZE])-parseFloat(a.style[mxConstants.STYLE_STARTSIZE]))<c/6&&(a.style[mxConstants.STYLE_ENDSIZE]=a.style[mxConstants.STYLE_STARTSIZE])})),b.push(ua(a, +["startWidth","endWidth",mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE],!1,function(c,b,d,f,e){c=(a.shape.getEndArrowWidth()-a.shape.strokewidth)*a.view.scale;e=3*mxUtils.getNumber(a.style,mxConstants.STYLE_ENDSIZE,mxConstants.ARROW_SIZE/5)*a.view.scale;return new mxPoint(f.x+b*(e+a.shape.strokewidth*a.view.scale)-d*c/2,f.y+d*(e+a.shape.strokewidth*a.view.scale)+b*c/2)},function(b,d,f,e,g,h,n){b=Math.sqrt(mxUtils.ptSegDistSq(e.x,e.y,g.x,g.y,h.x,h.y));d=mxUtils.ptLineDist(e.x,e.y,e.x+f,e.y- +d,h.x,h.y);a.style[mxConstants.STYLE_ENDSIZE]=Math.round(100*(d-a.shape.strokewidth)/3)/100/a.view.scale;a.style.endWidth=Math.max(0,Math.round(2*b)-a.shape.getEdgeWidth())/a.view.scale;mxEvent.isControlDown(n.getEvent())&&(a.style[mxConstants.STYLE_STARTSIZE]=a.style[mxConstants.STYLE_ENDSIZE],a.style.startWidth=a.style.endWidth);mxEvent.isAltDown(n.getEvent())||(Math.abs(parseFloat(a.style[mxConstants.STYLE_ENDSIZE])-parseFloat(a.style[mxConstants.STYLE_STARTSIZE]))<c/6&&(a.style[mxConstants.STYLE_ENDSIZE]= a.style[mxConstants.STYLE_STARTSIZE]),Math.abs(parseFloat(a.style.endWidth)-parseFloat(a.style.startWidth))<c&&(a.style.endWidth=a.style.startWidth))})));return b},swimlane:function(a){var c=[O(a,[mxConstants.STYLE_STARTSIZE],function(c){var b=parseFloat(mxUtils.getValue(a.style,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_STARTSIZE));return 1==mxUtils.getValue(a.style,mxConstants.STYLE_HORIZONTAL,1)?new mxPoint(c.getCenterX(),c.y+Math.max(0,Math.min(c.height,b))):new mxPoint(c.x+Math.max(0,Math.min(c.width, b)),c.getCenterY())},function(c,b){a.style[mxConstants.STYLE_STARTSIZE]=1==mxUtils.getValue(this.state.style,mxConstants.STYLE_HORIZONTAL,1)?Math.round(Math.max(0,Math.min(c.height,b.y-c.y))):Math.round(Math.max(0,Math.min(c.width,b.x-c.x)))})];if(mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED)){var b=parseFloat(mxUtils.getValue(a.style,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_STARTSIZE));c.push(ja(a,b/2))}return c},label:va(),ext:va(),rectangle:va(),triangle:va(),rhombus:va(),umlLifeline:function(a){return[O(a, ["size"],function(a){var c=Math.max(0,Math.min(a.height,parseFloat(mxUtils.getValue(this.state.style,"size",C.prototype.size))));return new mxPoint(a.getCenterX(),a.y+c)},function(a,c){this.state.style.size=Math.round(Math.max(0,Math.min(a.height,c.y-a.y)))},!1)]},umlFrame:function(a){return[O(a,["width","height"],function(a){var c=Math.max(I.prototype.corner,Math.min(a.width,mxUtils.getValue(this.state.style,"width",I.prototype.width))),b=Math.max(1.5*I.prototype.corner,Math.min(a.height,mxUtils.getValue(this.state.style, -"height",I.prototype.height)));return new mxPoint(a.x+c,a.y+b)},function(a,c){this.state.style.width=Math.round(Math.max(I.prototype.corner,Math.min(a.width,c.x-a.x)));this.state.style.height=Math.round(Math.max(1.5*I.prototype.corner,Math.min(a.height,c.y-a.y)))},!1)]},process:function(a){var c=[O(a,["size"],function(a){var c=Math.max(0,Math.min(.5,parseFloat(mxUtils.getValue(this.state.style,"size",n.prototype.size))));return new mxPoint(a.x+a.width*c,a.y+a.height/4)},function(a,c){this.state.style.size= +"height",I.prototype.height)));return new mxPoint(a.x+c,a.y+b)},function(a,c){this.state.style.width=Math.round(Math.max(I.prototype.corner,Math.min(a.width,c.x-a.x)));this.state.style.height=Math.round(Math.max(1.5*I.prototype.corner,Math.min(a.height,c.y-a.y)))},!1)]},process:function(a){var c=[O(a,["size"],function(a){var c=Math.max(0,Math.min(.5,parseFloat(mxUtils.getValue(this.state.style,"size",m.prototype.size))));return new mxPoint(a.x+a.width*c,a.y+a.height/4)},function(a,c){this.state.style.size= Math.max(0,Math.min(.5,(c.x-a.x)/a.width))})];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,!1)&&c.push(ja(a));return c},cross:function(a){return[O(a,["size"],function(a){var c=Math.min(a.width,a.height),c=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"size",ca.prototype.size)))*c/2;return new mxPoint(a.getCenterX()-c,a.getCenterY()-c)},function(a,c){var b=Math.min(a.width,a.height);this.state.style.size=Math.max(0,Math.min(1,Math.min(Math.max(0,a.getCenterY()-c.y)/b*2,Math.max(0,a.getCenterX()- -c.x)/b*2)))})]},note:function(a){return[O(a,["size"],function(a){var c=Math.max(0,Math.min(a.width,Math.min(a.height,parseFloat(mxUtils.getValue(this.state.style,"size",h.prototype.size)))));return new mxPoint(a.x+a.width-c,a.y+c)},function(a,c){this.state.style.size=Math.round(Math.max(0,Math.min(Math.min(a.width,a.x+a.width-c.x),Math.min(a.height,c.y-a.y))))})]},manualInput:function(a){var c=[O(a,["size"],function(a){var c=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"size",L.prototype.size))); +c.x)/b*2)))})]},note:function(a){return[O(a,["size"],function(a){var c=Math.max(0,Math.min(a.width,Math.min(a.height,parseFloat(mxUtils.getValue(this.state.style,"size",k.prototype.size)))));return new mxPoint(a.x+a.width-c,a.y+c)},function(a,c){this.state.style.size=Math.round(Math.max(0,Math.min(Math.min(a.width,a.x+a.width-c.x),Math.min(a.height,c.y-a.y))))})]},manualInput:function(a){var c=[O(a,["size"],function(a){var c=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"size",L.prototype.size))); return new mxPoint(a.x+a.width/4,a.y+3*c/4)},function(a,c){this.state.style.size=Math.round(Math.max(0,Math.min(a.height,4*(c.y-a.y)/3)))})];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,!1)&&c.push(ja(a));return c},dataStorage:function(a){return[O(a,["size"],function(a){var c=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",Q.prototype.size))));return new mxPoint(a.x+(1-c)*a.width,a.getCenterY())},function(a,c){this.state.style.size=Math.max(0,Math.min(1,(a.x+a.width- c.x)/a.width))})]},callout:function(a){var c=[O(a,["size","position"],function(a){var c=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"size",v.prototype.size))),b=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"position",v.prototype.position)));mxUtils.getValue(this.state.style,"base",v.prototype.base);return new mxPoint(a.x+b*a.width,a.y+a.height-c)},function(a,c){mxUtils.getValue(this.state.style,"base",v.prototype.base);this.state.style.size=Math.round(Math.max(0,Math.min(a.height, a.y+a.height-c.y)));this.state.style.position=Math.round(100*Math.max(0,Math.min(1,(c.x-a.x)/a.width)))/100}),O(a,["position2"],function(a){var c=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"position2",v.prototype.position2)));return new mxPoint(a.x+c*a.width,a.y+a.height)},function(a,c){this.state.style.position2=Math.round(100*Math.max(0,Math.min(1,(c.x-a.x)/a.width)))/100}),O(a,["base"],function(a){var c=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"size",v.prototype.size))), @@ -2560,22 +2562,22 @@ Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"dx",N.prototype.d Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"tabWidth",p.prototype.tabWidth))),b=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"tabHeight",p.prototype.tabHeight)));mxUtils.getValue(this.state.style,"tabPosition",p.prototype.tabPosition)==mxConstants.ALIGN_RIGHT&&(c=a.width-c);return new mxPoint(a.x+c,a.y+b)},function(a,c){var b=Math.max(0,Math.min(a.width,c.x-a.x));mxUtils.getValue(this.state.style,"tabPosition",p.prototype.tabPosition)==mxConstants.ALIGN_RIGHT&& (b=a.width-b);this.state.style.tabWidth=Math.round(b);this.state.style.tabHeight=Math.round(Math.max(0,Math.min(a.height,c.y-a.y)))})]},document:function(a){return[O(a,["size"],function(a){var b=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",c.prototype.size))));return new mxPoint(a.x+3*a.width/4,a.y+(1-b)*a.height)},function(a,c){this.state.style.size=Math.max(0,Math.min(1,(a.y+a.height-c.y)/a.height))})]},tape:function(a){return[O(a,["size"],function(a){var c=Math.max(0, Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",u.prototype.size))));return new mxPoint(a.getCenterX(),a.y+c*a.height/2)},function(a,c){this.state.style.size=Math.max(0,Math.min(1,(c.y-a.y)/a.height*2))})]},offPageConnector:function(a){return[O(a,["size"],function(a){var c=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",aa.prototype.size))));return new mxPoint(a.getCenterX(),a.y+(1-c)*a.height)},function(a,c){this.state.style.size=Math.max(0,Math.min(1,(a.y+ -a.height-c.y)/a.height))})]},step:xa(B.prototype.size,!0,null,!0,B.prototype.fixedSize),hexagon:xa(y.prototype.size,!0,.5,!0),curlyBracket:xa(k.prototype.size,!1),display:xa(da.prototype.size,!1),cube:Da(1,a.prototype.size,!1),card:Da(.5,q.prototype.size,!0),loopLimit:Da(.5,W.prototype.size,!0),trapezoid:Fa(.5),parallelogram:Fa(1)};Graph.createHandle=O;Graph.handleFactory=ya;mxVertexHandler.prototype.createCustomHandles=function(){if(1==this.state.view.graph.getSelectionCount()&&this.graph.isCellRotatable(this.state.cell)){var a= +a.height-c.y)/a.height))})]},step:xa(A.prototype.size,!0,null,!0,A.prototype.fixedSize),hexagon:xa(y.prototype.size,!0,.5,!0),curlyBracket:xa(n.prototype.size,!1),display:xa(da.prototype.size,!1),cube:Da(1,a.prototype.size,!1),card:Da(.5,q.prototype.size,!0),loopLimit:Da(.5,W.prototype.size,!0),trapezoid:Fa(.5),parallelogram:Fa(1)};Graph.createHandle=O;Graph.handleFactory=ya;mxVertexHandler.prototype.createCustomHandles=function(){if(1==this.state.view.graph.getSelectionCount()&&this.graph.isCellRotatable(this.state.cell)){var a= this.state.style.shape;null==mxCellRenderer.defaultShapes[a]&&null==mxStencilRegistry.getStencil(a)&&(a=mxConstants.SHAPE_RECTANGLE);a=ya[a];null==a&&null!=this.state.shape&&this.state.shape.isRoundable()&&(a=ya[mxConstants.SHAPE_RECTANGLE]);if(null!=a)return a(this.state)}return null};mxEdgeHandler.prototype.createCustomHandles=function(){if(1==this.state.view.graph.getSelectionCount()){var a=this.state.style.shape;null==mxCellRenderer.defaultShapes[a]&&null==mxStencilRegistry.getStencil(a)&&(a= -mxConstants.SHAPE_CONNECTOR);a=ya[a];if(null!=a)return a(this.state)}return null}}else Graph.createHandle=function(){},Graph.handleFactory={};var za=new mxPoint(1,0),Aa=new mxPoint(1,0),oa=mxUtils.toRadians(-30),za=mxUtils.getRotatedPoint(za,Math.cos(oa),Math.sin(oa)),oa=mxUtils.toRadians(-150),Aa=mxUtils.getRotatedPoint(Aa,Math.cos(oa),Math.sin(oa));mxEdgeStyle.IsometricConnector=function(a,c,b,d,f){var e=a.view;d=null!=d&&0<d.length?d[0]:null;var g=a.absolutePoints,k=g[0],g=g[g.length-1];null!= -d&&(d=e.transformControlPoint(a,d));null==k&&null!=c&&(k=new mxPoint(c.getCenterX(),c.getCenterY()));null==g&&null!=b&&(g=new mxPoint(b.getCenterX(),b.getCenterY()));var l=za.x,n=za.y,t=Aa.x,r=Aa.y,y="horizontal"==mxUtils.getValue(a.style,"elbow","horizontal");if(null!=g&&null!=k){a=function(a,c,b){a-=h.x;var d=c-h.y;c=(r*a-t*d)/(l*r-n*t);a=(n*a-l*d)/(n*t-l*r);y?(b&&(h=new mxPoint(h.x+l*c,h.y+n*c),f.push(h)),h=new mxPoint(h.x+t*a,h.y+r*a)):(b&&(h=new mxPoint(h.x+t*a,h.y+r*a),f.push(h)),h=new mxPoint(h.x+ -l*c,h.y+n*c));f.push(h)};var h=k;null==d&&(d=new mxPoint(k.x+(g.x-k.x)/2,k.y+(g.y-k.y)/2));a(d.x,d.y,!0);a(g.x,g.y,!1)}};mxStyleRegistry.putValue("isometricEdgeStyle",mxEdgeStyle.IsometricConnector);var La=Graph.prototype.createEdgeHandler;Graph.prototype.createEdgeHandler=function(a,c){if(c==mxEdgeStyle.IsometricConnector){var b=new mxElbowEdgeHandler(a);b.snapToTerminals=!1;return b}return La.apply(this,arguments)};d.prototype.constraints=[];e.prototype.constraints=[];v.prototype.constraints=[]; +mxConstants.SHAPE_CONNECTOR);a=ya[a];if(null!=a)return a(this.state)}return null}}else Graph.createHandle=function(){},Graph.handleFactory={};var za=new mxPoint(1,0),Aa=new mxPoint(1,0),oa=mxUtils.toRadians(-30),za=mxUtils.getRotatedPoint(za,Math.cos(oa),Math.sin(oa)),oa=mxUtils.toRadians(-150),Aa=mxUtils.getRotatedPoint(Aa,Math.cos(oa),Math.sin(oa));mxEdgeStyle.IsometricConnector=function(a,c,b,d,f){var e=a.view;d=null!=d&&0<d.length?d[0]:null;var g=a.absolutePoints,h=g[0],g=g[g.length-1];null!= +d&&(d=e.transformControlPoint(a,d));null==h&&null!=c&&(h=new mxPoint(c.getCenterX(),c.getCenterY()));null==g&&null!=b&&(g=new mxPoint(b.getCenterX(),b.getCenterY()));var n=za.x,m=za.y,t=Aa.x,r=Aa.y,y="horizontal"==mxUtils.getValue(a.style,"elbow","horizontal");if(null!=g&&null!=h){a=function(a,c,b){a-=k.x;var d=c-k.y;c=(r*a-t*d)/(n*r-m*t);a=(m*a-n*d)/(m*t-n*r);y?(b&&(k=new mxPoint(k.x+n*c,k.y+m*c),f.push(k)),k=new mxPoint(k.x+t*a,k.y+r*a)):(b&&(k=new mxPoint(k.x+t*a,k.y+r*a),f.push(k)),k=new mxPoint(k.x+ +n*c,k.y+m*c));f.push(k)};var k=h;null==d&&(d=new mxPoint(h.x+(g.x-h.x)/2,h.y+(g.y-h.y)/2));a(d.x,d.y,!0);a(g.x,g.y,!1)}};mxStyleRegistry.putValue("isometricEdgeStyle",mxEdgeStyle.IsometricConnector);var La=Graph.prototype.createEdgeHandler;Graph.prototype.createEdgeHandler=function(a,c){if(c==mxEdgeStyle.IsometricConnector){var b=new mxElbowEdgeHandler(a);b.snapToTerminals=!1;return b}return La.apply(this,arguments)};b.prototype.constraints=[];e.prototype.constraints=[];v.prototype.constraints=[]; mxRectangleShape.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.25,0),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.75,0),!0),new mxConnectionConstraint(new mxPoint(0,.25),!0),new mxConnectionConstraint(new mxPoint(0,.5),!0),new mxConnectionConstraint(new mxPoint(0,.75),!0),new mxConnectionConstraint(new mxPoint(1,.25),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(1,.75),!0),new mxConnectionConstraint(new mxPoint(.25, 1),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(.75,1),!0)];mxEllipse.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,0),!0),new mxConnectionConstraint(new mxPoint(1,0),!0),new mxConnectionConstraint(new mxPoint(0,1),!0),new mxConnectionConstraint(new mxPoint(1,1),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(0,.5),!0),new mxConnectionConstraint(new mxPoint(1, -.5))];mxLabel.prototype.constraints=mxRectangleShape.prototype.constraints;mxImageShape.prototype.constraints=mxRectangleShape.prototype.constraints;mxSwimlane.prototype.constraints=mxRectangleShape.prototype.constraints;t.prototype.constraints=mxRectangleShape.prototype.constraints;h.prototype.constraints=mxRectangleShape.prototype.constraints;q.prototype.constraints=mxRectangleShape.prototype.constraints;a.prototype.constraints=mxRectangleShape.prototype.constraints;p.prototype.constraints=mxRectangleShape.prototype.constraints; +.5))];mxLabel.prototype.constraints=mxRectangleShape.prototype.constraints;mxImageShape.prototype.constraints=mxRectangleShape.prototype.constraints;mxSwimlane.prototype.constraints=mxRectangleShape.prototype.constraints;t.prototype.constraints=mxRectangleShape.prototype.constraints;k.prototype.constraints=mxRectangleShape.prototype.constraints;q.prototype.constraints=mxRectangleShape.prototype.constraints;a.prototype.constraints=mxRectangleShape.prototype.constraints;p.prototype.constraints=mxRectangleShape.prototype.constraints; E.prototype.constraints=mxRectangleShape.prototype.constraints;Q.prototype.constraints=mxRectangleShape.prototype.constraints;Z.prototype.constraints=mxEllipse.prototype.constraints;pa.prototype.constraints=mxEllipse.prototype.constraints;ra.prototype.constraints=mxEllipse.prototype.constraints;sa.prototype.constraints=mxEllipse.prototype.constraints;L.prototype.constraints=mxRectangleShape.prototype.constraints;ha.prototype.constraints=mxRectangleShape.prototype.constraints;da.prototype.constraints= mxRectangleShape.prototype.constraints;W.prototype.constraints=mxRectangleShape.prototype.constraints;aa.prototype.constraints=mxRectangleShape.prototype.constraints;mxCylinder.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.15,.05),!1),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.85,.05),!1),new mxConnectionConstraint(new mxPoint(0,.3),!0),new mxConnectionConstraint(new mxPoint(0,.5),!0),new mxConnectionConstraint(new mxPoint(0,.7),!0),new mxConnectionConstraint(new mxPoint(1, .3),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(1,.7),!0),new mxConnectionConstraint(new mxPoint(.15,.95),!1),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(.85,.95),!1)];G.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.25,.1),!1),new mxConnectionConstraint(new mxPoint(.5,0),!1),new mxConnectionConstraint(new mxPoint(.75,.1),!1),new mxConnectionConstraint(new mxPoint(0,1/3),!1),new mxConnectionConstraint(new mxPoint(0, 1),!1),new mxConnectionConstraint(new mxPoint(1,1/3),!1),new mxConnectionConstraint(new mxPoint(1,1),!1),new mxConnectionConstraint(new mxPoint(.5,.5),!1)];F.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.25,0),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.75,0),!0),new mxConnectionConstraint(new mxPoint(0,.3),!0),new mxConnectionConstraint(new mxPoint(0,.7),!0),new mxConnectionConstraint(new mxPoint(1,.25),!0),new mxConnectionConstraint(new mxPoint(1, .5),!0),new mxConnectionConstraint(new mxPoint(1,.75),!0),new mxConnectionConstraint(new mxPoint(.25,1),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(.75,1),!0)];mxActor.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.25,.2),!1),new mxConnectionConstraint(new mxPoint(.1,.5),!1),new mxConnectionConstraint(new mxPoint(0,.75),!0),new mxConnectionConstraint(new mxPoint(.75,.25),!1),new mxConnectionConstraint(new mxPoint(.9, -.5),!1),new mxConnectionConstraint(new mxPoint(1,.75),!0),new mxConnectionConstraint(new mxPoint(.25,1),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(.75,1),!0)];m.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,0),!1),new mxConnectionConstraint(new mxPoint(.5,.25),!1),new mxConnectionConstraint(new mxPoint(1,0),!1),new mxConnectionConstraint(new mxPoint(.25,.5),!1),new mxConnectionConstraint(new mxPoint(.75,.5),!1),new mxConnectionConstraint(new mxPoint(0, +.5),!1),new mxConnectionConstraint(new mxPoint(1,.75),!0),new mxConnectionConstraint(new mxPoint(.25,1),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(.75,1),!0)];l.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,0),!1),new mxConnectionConstraint(new mxPoint(.5,.25),!1),new mxConnectionConstraint(new mxPoint(1,0),!1),new mxConnectionConstraint(new mxPoint(.25,.5),!1),new mxConnectionConstraint(new mxPoint(.75,.5),!1),new mxConnectionConstraint(new mxPoint(0, 1),!1),new mxConnectionConstraint(new mxPoint(.5,.75),!1),new mxConnectionConstraint(new mxPoint(1,1),!1)];u.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,.35),!1),new mxConnectionConstraint(new mxPoint(0,.5),!1),new mxConnectionConstraint(new mxPoint(0,.65),!1),new mxConnectionConstraint(new mxPoint(1,.35),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1),new mxConnectionConstraint(new mxPoint(1,.65),!1),new mxConnectionConstraint(new mxPoint(.25,1),!1),new mxConnectionConstraint(new mxPoint(.75, -0),!1)];B.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.25,0),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.75,0),!0),new mxConnectionConstraint(new mxPoint(.25,1),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(.75,1),!0),new mxConnectionConstraint(new mxPoint(0,.25),!0),new mxConnectionConstraint(new mxPoint(0,.5),!0),new mxConnectionConstraint(new mxPoint(0,.75),!0),new mxConnectionConstraint(new mxPoint(1, +0),!1)];A.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.25,0),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.75,0),!0),new mxConnectionConstraint(new mxPoint(.25,1),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(.75,1),!0),new mxConnectionConstraint(new mxPoint(0,.25),!0),new mxConnectionConstraint(new mxPoint(0,.5),!0),new mxConnectionConstraint(new mxPoint(0,.75),!0),new mxConnectionConstraint(new mxPoint(1, .25),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(1,.75),!0)];mxLine.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,.5),!1),new mxConnectionConstraint(new mxPoint(.25,.5),!1),new mxConnectionConstraint(new mxPoint(.75,.5),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1)];R.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.5,0),!1),new mxConnectionConstraint(new mxPoint(.5,1),!1)];mxDoubleEllipse.prototype.constraints= mxEllipse.prototype.constraints;mxRhombus.prototype.constraints=mxEllipse.prototype.constraints;mxTriangle.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,.25),!0),new mxConnectionConstraint(new mxPoint(0,.5),!0),new mxConnectionConstraint(new mxPoint(0,.75),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0)];mxHexagon.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.375, 0),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.625,0),!0),new mxConnectionConstraint(new mxPoint(0,.25),!0),new mxConnectionConstraint(new mxPoint(0,.5),!0),new mxConnectionConstraint(new mxPoint(0,.75),!0),new mxConnectionConstraint(new mxPoint(1,.25),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(1,.75),!0),new mxConnectionConstraint(new mxPoint(.375,1),!0),new mxConnectionConstraint(new mxPoint(.5,1), @@ -2586,76 +2588,77 @@ mxEllipse.prototype.constraints;mxRhombus.prototype.constraints=mxEllipse.protot new mxConnectionConstraint(new mxPoint(1,.5),!1)];ca.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,.5),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1),new mxConnectionConstraint(new mxPoint(.5,0),!1),new mxConnectionConstraint(new mxPoint(.5,1),!1)];C.prototype.constraints=null;V.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,.25),!1),new mxConnectionConstraint(new mxPoint(0,.5),!1),new mxConnectionConstraint(new mxPoint(0,.75),!1),new mxConnectionConstraint(new mxPoint(1, .5),!1),new mxConnectionConstraint(new mxPoint(.7,.1),!1),new mxConnectionConstraint(new mxPoint(.7,.9),!1)];ga.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.175,.25),!1),new mxConnectionConstraint(new mxPoint(.25,.5),!1),new mxConnectionConstraint(new mxPoint(.175,.75),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1),new mxConnectionConstraint(new mxPoint(.7,.1),!1),new mxConnectionConstraint(new mxPoint(.7,.9),!1)];X.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0, .5),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1)];U.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,.5),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1)]})();function Actions(a){this.editorUi=a;this.actions={};this.init()} -Actions.prototype.init=function(){function a(a){b.escape();var d=b.getDeletableCells(b.getSelectionCells());if(null!=d&&0<d.length){var c=b.model.getParents(d);b.removeCells(d,a);if(null!=c){a=[];for(d=0;d<c.length;d++)b.model.contains(c[d])&&(b.model.isVertex(c[d])||b.model.isEdge(c[d]))&&a.push(c[d]);b.setSelectionCells(a)}}}var d=this.editorUi,e=d.editor,b=e.graph,h=function(){return Action.prototype.isEnabled.apply(this,arguments)&&b.isEnabled()};this.addAction("new...",function(){b.openLink(d.getUrl())}); -this.addAction("open...",function(){window.openNew=!0;window.openKey="open";d.openFile()});this.addAction("import...",function(){window.openNew=!1;window.openKey="import";window.openFile=new OpenFile(mxUtils.bind(this,function(){d.hideDialog()}));window.openFile.setConsumer(mxUtils.bind(this,function(a,b){try{var c=mxUtils.parseXml(a);e.graph.setSelectionCells(e.graph.importGraphModel(c.documentElement))}catch(f){mxUtils.alert(mxResources.get("invalidOrMissingFile")+": "+f.message)}}));d.showDialog((new OpenDialog(this)).container, -320,220,!0,!0,function(){window.openFile=null})}).isEnabled=h;this.addAction("save",function(){d.saveFile(!1)},null,null,Editor.ctrlKey+"+S").isEnabled=h;this.addAction("saveAs...",function(){d.saveFile(!0)},null,null,Editor.ctrlKey+"+Shift+S").isEnabled=h;this.addAction("export...",function(){d.showDialog((new ExportDialog(d)).container,300,230,!0,!0)});this.addAction("editDiagram...",function(){var a=new EditDiagramDialog(d);d.showDialog(a.container,620,420,!0,!1);a.init()});this.addAction("pageSetup...", -function(){d.showDialog((new PageSetupDialog(d)).container,320,220,!0,!0)}).isEnabled=h;this.addAction("print...",function(){d.showDialog((new PrintDialog(d)).container,300,180,!0,!0)},null,"sprite-print",Editor.ctrlKey+"+P");this.addAction("preview",function(){mxUtils.show(b,null,10,10)});this.addAction("undo",function(){d.undo()},null,"sprite-undo",Editor.ctrlKey+"+Z");this.addAction("redo",function(){d.redo()},null,"sprite-redo",mxClient.IS_WIN?Editor.ctrlKey+"+Y":Editor.ctrlKey+"+Shift+Z");this.addAction("cut", -function(){mxClipboard.cut(b)},null,"sprite-cut",Editor.ctrlKey+"+X");this.addAction("copy",function(){mxClipboard.copy(b)},null,"sprite-copy",Editor.ctrlKey+"+C");this.addAction("paste",function(){b.isEnabled()&&!b.isCellLocked(b.getDefaultParent())&&mxClipboard.paste(b)},!1,"sprite-paste",Editor.ctrlKey+"+V");this.addAction("pasteHere",function(a){if(b.isEnabled()&&!b.isCellLocked(b.getDefaultParent())){b.getModel().beginUpdate();try{var d=mxClipboard.paste(b);if(null!=d){a=!0;for(var c=0;c<d.length&& -a;c++)a=a&&b.model.isEdge(d[c]);var f=b.view.translate,e=b.view.scale,k=f.x,r=f.y,f=null;if(1==d.length&&a){var l=b.getCellGeometry(d[0]);null!=l&&(f=l.getTerminalPoint(!0))}f=null!=f?f:b.getBoundingBoxFromGeometry(d,a);if(null!=f){var n=Math.round(b.snap(b.popupMenuHandler.triggerX/e-k)),h=Math.round(b.snap(b.popupMenuHandler.triggerY/e-r));b.cellsMoved(d,n-f.x,h-f.y)}}}finally{b.getModel().endUpdate()}}});this.addAction("copySize",function(a){a=b.getSelectionCell();b.isEnabled()&&null!=a&&b.getModel().isVertex(a)&& -(a=b.getCellGeometry(a),null!=a&&(d.copiedSize=new mxRectangle(a.x,a.y,a.width,a.height)))},null,null,"Alt+Shit+X");this.addAction("pasteSize",function(a){if(b.isEnabled()&&!b.isSelectionEmpty()&&null!=d.copiedSize){b.getModel().beginUpdate();try{var e=b.getSelectionCells();for(a=0;a<e.length;a++)if(b.getModel().isVertex(e[a])){var c=b.getCellGeometry(e[a]);null!=c&&(c=c.clone(),c.width=d.copiedSize.width,c.height=d.copiedSize.height,b.getModel().setGeometry(e[a],c))}}finally{b.getModel().endUpdate()}}}, -null,null,"Alt+Shit+V");this.addAction("delete",function(b){a(null!=b&&mxEvent.isShiftDown(b))},null,null,"Delete");this.addAction("deleteAll",function(){a(!0)},null,null,Editor.ctrlKey+"+Delete");this.addAction("duplicate",function(){b.setSelectionCells(b.duplicateCells())},null,null,Editor.ctrlKey+"+D");this.put("turn",new Action(mxResources.get("turn")+" / "+mxResources.get("reverse"),function(){b.turnShapes(b.getSelectionCells())},null,null,Editor.ctrlKey+"+R"));this.addAction("selectVertices", -function(){b.selectVertices()},null,null,Editor.ctrlKey+"+Shift+I");this.addAction("selectEdges",function(){b.selectEdges()},null,null,Editor.ctrlKey+"+Shift+E");this.addAction("selectAll",function(){b.selectAll(null,!0)},null,null,Editor.ctrlKey+"+A");this.addAction("selectNone",function(){b.clearSelection()},null,null,Editor.ctrlKey+"+Shift+A");this.addAction("lockUnlock",function(){if(!b.isSelectionEmpty()){b.getModel().beginUpdate();try{var a=b.isCellMovable(b.getSelectionCell())?1:0;b.toggleCellStyles(mxConstants.STYLE_MOVABLE, -a);b.toggleCellStyles(mxConstants.STYLE_RESIZABLE,a);b.toggleCellStyles(mxConstants.STYLE_ROTATABLE,a);b.toggleCellStyles(mxConstants.STYLE_DELETABLE,a);b.toggleCellStyles(mxConstants.STYLE_EDITABLE,a);b.toggleCellStyles("connectable",a)}finally{b.getModel().endUpdate()}}},null,null,Editor.ctrlKey+"+L");this.addAction("home",function(){b.home()},null,null,"Home");this.addAction("exitGroup",function(){b.exitGroup()},null,null,Editor.ctrlKey+"+Shift+Home");this.addAction("enterGroup",function(){b.enterGroup()}, -null,null,Editor.ctrlKey+"+Shift+End");this.addAction("collapse",function(){b.foldCells(!0)},null,null,Editor.ctrlKey+"+Home");this.addAction("expand",function(){b.foldCells(!1)},null,null,Editor.ctrlKey+"+End");this.addAction("toFront",function(){b.orderCells(!1)},null,null,Editor.ctrlKey+"+Shift+F");this.addAction("toBack",function(){b.orderCells(!0)},null,null,Editor.ctrlKey+"+Shift+B");this.addAction("group",function(){1==b.getSelectionCount()?b.setCellStyles("container","1"):b.setSelectionCell(b.groupCells(null, -0))},null,null,Editor.ctrlKey+"+G");this.addAction("ungroup",function(){1==b.getSelectionCount()&&0==b.getModel().getChildCount(b.getSelectionCell())?b.setCellStyles("container","0"):b.setSelectionCells(b.ungroupCells())},null,null,Editor.ctrlKey+"+Shift+U");this.addAction("removeFromGroup",function(){b.removeCellsFromParent()});this.addAction("edit",function(){b.isEnabled()&&b.startEditingAtCell()},null,null,"F2/Enter");this.addAction("editData...",function(){var a=b.getSelectionCell()||b.getModel().getRoot(); -d.showDataDialog(a)},null,null,Editor.ctrlKey+"+M");this.addAction("editTooltip...",function(){var a=d.editor.graph;if(a.isEnabled()&&!a.isSelectionEmpty()){var b=a.getSelectionCell(),c="";if(mxUtils.isNode(b.value)){var f=b.value.getAttribute("tooltip");null!=f&&(c=f)}c=new TextareaDialog(d,mxResources.get("editTooltip")+":",c,function(c){a.setTooltipForCell(b,c)});d.showDialog(c.container,320,200,!0,!0);c.init()}},null,null,"Alt+Shift+T");this.addAction("openLink",function(){var a=b.getLinkForCell(b.getSelectionCell()); -null!=a&&b.openLink(a)});this.addAction("editLink...",function(){var a=d.editor.graph;if(a.isEnabled()&&!a.isSelectionEmpty()){var b=a.getSelectionCell(),c=a.getLinkForCell(b)||"";d.showLinkDialog(c,mxResources.get("apply"),function(c){c=mxUtils.trim(c);a.setLinkForCell(b,0<c.length?c:null)})}},null,null,"Alt+Shift+L");this.addAction("insertLink...",function(){b.isEnabled()&&!b.isCellLocked(b.getDefaultParent())&&d.showLinkDialog("",mxResources.get("insert"),function(a,d){a=mxUtils.trim(a);if(0<a.length){var c= -null,f=b.getLinkTitle(a);null!=d&&0<d.length&&(c=d[0].iconUrl,f=d[0].name||d[0].type,f=f.charAt(0).toUpperCase()+f.substring(1),30<f.length&&(f=f.substring(0,30)+"..."));var e=b.getFreeInsertPoint(),c=new mxCell(f,new mxGeometry(e.x,e.y,100,40),"fontColor=#0000EE;fontStyle=4;rounded=1;overflow=hidden;"+(null!=c?"shape=label;imageWidth=16;imageHeight=16;spacingLeft=26;align=left;image="+c:"spacing=10;"));c.vertex=!0;b.setLinkForCell(c,a);b.cellSizeUpdated(c,!0);b.getModel().beginUpdate();try{c=b.addCell(c), -b.fireEvent(new mxEventObject("cellsInserted","cells",[c]))}finally{b.getModel().endUpdate()}b.setSelectionCell(c);b.scrollCellToVisible(b.getSelectionCell())}})}).isEnabled=h;this.addAction("link...",mxUtils.bind(this,function(){var a=d.editor.graph;if(a.isEnabled())if(a.cellEditor.isContentEditing()){var b=a.getSelectedElement(),c=a.getParentByName(b,"A",a.cellEditor.textarea),f="";if(null==c&&null!=b&&null!=b.getElementsByTagName)for(var e=b.getElementsByTagName("a"),k=0;k<e.length&&null==c;k++)e[k].textContent== -b.textContent&&(a.selectNode(e[k]),c=e[k]);null!=c&&"A"==c.nodeName&&(f=c.getAttribute("href")||"");var r=a.cellEditor.saveSelection();d.showLinkDialog(f,mxResources.get("apply"),mxUtils.bind(this,function(c){a.cellEditor.restoreSelection(r);null!=c&&a.insertLink(c)}))}else a.isSelectionEmpty()?this.get("insertLink").funct():this.get("editLink").funct()})).isEnabled=h;this.addAction("autosize",function(){var a=b.getSelectionCells();if(null!=a){b.getModel().beginUpdate();try{for(var d=0;d<a.length;d++){var c= -a[d];if(b.getModel().getChildCount(c))b.updateGroupBounds([c],20);else{var f=b.view.getState(c),e=b.getCellGeometry(c);b.getModel().isVertex(c)&&null!=f&&null!=f.text&&null!=e&&b.isWrapping(c)?(e=e.clone(),e.height=f.text.boundingBox.height/b.view.scale,b.getModel().setGeometry(c,e)):b.updateCellSize(c)}}}finally{b.getModel().endUpdate()}}},null,null,Editor.ctrlKey+"+Shift+Y");this.addAction("formattedText",function(){var a=b.getView().getState(b.getSelectionCell());if(null!=a){var e="1";b.stopEditing(); -b.getModel().beginUpdate();try{if("1"==a.style.html){var e=null,c=b.convertValueToString(a.cell);"0"!=mxUtils.getValue(a.style,"nl2Br","1")&&(c=c.replace(/\n/g,"").replace(/<br\s*.?>/g,"\n"));var f=document.createElement("div");f.innerHTML=c;c=mxUtils.extractTextWithWhitespace(f.childNodes);b.cellLabelChanged(a.cell,c)}else c=mxUtils.htmlEntities(b.convertValueToString(a.cell),!1),"0"!=mxUtils.getValue(a.style,"nl2Br","1")&&(c=c.replace(/\n/g,"<br/>")),b.cellLabelChanged(a.cell,b.sanitizeHtml(c)); -b.setCellStyles("html",e);d.fireEvent(new mxEventObject("styleChanged","keys",["html"],"values",[null!=e?e:"0"],"cells",b.getSelectionCells()))}finally{b.getModel().endUpdate()}}});this.addAction("wordWrap",function(){var a=b.getView().getState(b.getSelectionCell()),d="wrap";b.stopEditing();null!=a&&"wrap"==a.style[mxConstants.STYLE_WHITE_SPACE]&&(d=null);b.setCellStyles(mxConstants.STYLE_WHITE_SPACE,d)});this.addAction("rotation",function(){var a="0",e=b.getView().getState(b.getSelectionCell()); -null!=e&&(a=e.style[mxConstants.STYLE_ROTATION]||a);a=new FilenameDialog(d,a,mxResources.get("apply"),function(a){null!=a&&0<a.length&&b.setCellStyles(mxConstants.STYLE_ROTATION,a)},mxResources.get("enterValue")+" ("+mxResources.get("rotation")+" 0-360)");d.showDialog(a.container,375,80,!0,!0);a.init()});this.addAction("resetView",function(){b.zoomTo(1);d.resetScrollbars()},null,null,Editor.ctrlKey+"+H");this.addAction("zoomIn",function(a){b.zoomIn()},null,null,Editor.ctrlKey+" + (Numpad) / Alt+Mousewheel"); -this.addAction("zoomOut",function(a){b.zoomOut()},null,null,Editor.ctrlKey+" - (Numpad) / Alt+Mousewheel");this.addAction("fitWindow",function(){b.fit()},null,null,Editor.ctrlKey+"+Shift+H");this.addAction("fitPage",mxUtils.bind(this,function(){b.pageVisible||this.get("pageView").funct();var a=b.pageFormat,d=b.pageScale;b.zoomTo(Math.floor(20*Math.min((b.container.clientWidth-10)/a.width/d,(b.container.clientHeight-10)/a.height/d))/20);mxUtils.hasScrollbars(b.container)&&(a=b.getPagePadding(),b.container.scrollTop= -a.y*b.view.scale-1,b.container.scrollLeft=Math.min(a.x*b.view.scale,(b.container.scrollWidth-b.container.clientWidth)/2)-1)}),null,null,Editor.ctrlKey+"+J");this.addAction("fitTwoPages",mxUtils.bind(this,function(){b.pageVisible||this.get("pageView").funct();var a=b.pageFormat,d=b.pageScale;b.zoomTo(Math.floor(20*Math.min((b.container.clientWidth-10)/(2*a.width)/d,(b.container.clientHeight-10)/a.height/d))/20);mxUtils.hasScrollbars(b.container)&&(a=b.getPagePadding(),b.container.scrollTop=Math.min(a.y, -(b.container.scrollHeight-b.container.clientHeight)/2),b.container.scrollLeft=Math.min(a.x,(b.container.scrollWidth-b.container.clientWidth)/2))}),null,null,Editor.ctrlKey+"+Shift+J");this.addAction("fitPageWidth",mxUtils.bind(this,function(){b.pageVisible||this.get("pageView").funct();b.zoomTo(Math.floor(20*(b.container.clientWidth-10)/b.pageFormat.width/b.pageScale)/20);if(mxUtils.hasScrollbars(b.container)){var a=b.getPagePadding();b.container.scrollLeft=Math.min(a.x*b.view.scale,(b.container.scrollWidth- -b.container.clientWidth)/2)}}));this.put("customZoom",new Action(mxResources.get("custom")+"...",mxUtils.bind(this,function(){var a=new FilenameDialog(this.editorUi,parseInt(100*b.getView().getScale()),mxResources.get("apply"),mxUtils.bind(this,function(a){a=parseInt(a);!isNaN(a)&&0<a&&b.zoomTo(a/100)}),mxResources.get("zoom")+" (%)");this.editorUi.showDialog(a.container,300,80,!0,!0);a.init()}),null,null,Editor.ctrlKey+"+0"));this.addAction("pageScale...",mxUtils.bind(this,function(){var a=new FilenameDialog(this.editorUi, -parseInt(100*b.pageScale),mxResources.get("apply"),mxUtils.bind(this,function(a){a=parseInt(a);!isNaN(a)&&0<a&&d.setPageScale(a/100)}),mxResources.get("pageScale")+" (%)");this.editorUi.showDialog(a.container,300,80,!0,!0);a.init()}));var m=null,m=this.addAction("grid",function(){b.setGridEnabled(!b.isGridEnabled());d.fireEvent(new mxEventObject("gridEnabledChanged"))},null,null,Editor.ctrlKey+"+Shift+G");m.setToggleAction(!0);m.setSelectedCallback(function(){return b.isGridEnabled()});m.setEnabled(!1); -m=this.addAction("guides",function(){b.graphHandler.guidesEnabled=!b.graphHandler.guidesEnabled;d.fireEvent(new mxEventObject("guidesEnabledChanged"))});m.setToggleAction(!0);m.setSelectedCallback(function(){return b.graphHandler.guidesEnabled});m.setEnabled(!1);m=this.addAction("tooltips",function(){b.tooltipHandler.setEnabled(!b.tooltipHandler.isEnabled())});m.setToggleAction(!0);m.setSelectedCallback(function(){return b.tooltipHandler.isEnabled()});m=this.addAction("collapseExpand",function(){var a= -new ChangePageSetup(d);a.ignoreColor=!0;a.ignoreImage=!0;a.foldingEnabled=!b.foldingEnabled;b.model.execute(a)});m.setToggleAction(!0);m.setSelectedCallback(function(){return b.foldingEnabled});m.isEnabled=h;m=this.addAction("scrollbars",function(){d.setScrollbars(!d.hasScrollbars())});m.setToggleAction(!0);m.setSelectedCallback(function(){return b.scrollbars});m=this.addAction("pageView",mxUtils.bind(this,function(){d.setPageVisible(!b.pageVisible)}));m.setToggleAction(!0);m.setSelectedCallback(function(){return b.pageVisible}); -m=this.addAction("connectionArrows",function(){b.connectionArrowsEnabled=!b.connectionArrowsEnabled;d.fireEvent(new mxEventObject("connectionArrowsChanged"))},null,null,"Alt+Shift+A");m.setToggleAction(!0);m.setSelectedCallback(function(){return b.connectionArrowsEnabled});m=this.addAction("connectionPoints",function(){b.setConnectable(!b.connectionHandler.isEnabled());d.fireEvent(new mxEventObject("connectionPointsChanged"))},null,null,"Alt+Shift+P");m.setToggleAction(!0);m.setSelectedCallback(function(){return b.connectionHandler.isEnabled()}); -m=this.addAction("copyConnect",function(){b.connectionHandler.setCreateTarget(!b.connectionHandler.isCreateTarget());d.fireEvent(new mxEventObject("copyConnectChanged"))});m.setToggleAction(!0);m.setSelectedCallback(function(){return b.connectionHandler.isCreateTarget()});m.isEnabled=h;m=this.addAction("autosave",function(){d.editor.setAutosave(!d.editor.autosave)});m.setToggleAction(!0);m.setSelectedCallback(function(){return d.editor.autosave});m.isEnabled=h;m.visible=!1;this.addAction("help",function(){var a= -"";mxResources.isLanguageSupported(mxClient.language)&&(a="_"+mxClient.language);b.openLink(RESOURCES_PATH+"/help"+a+".html")});var p=!1;this.put("about",new Action(mxResources.get("about")+" Graph Editor...",function(){p||(d.showDialog((new AboutDialog(d)).container,320,280,!0,!0,function(){p=!1}),p=!0)},null,null,"F1"));m=mxUtils.bind(this,function(a,d,c,f){return this.addAction(a,function(){if(null!=c&&b.cellEditor.isContentEditing())c();else{b.stopEditing(!1);b.getModel().beginUpdate();try{b.toggleCellStyleFlags(mxConstants.STYLE_FONTSTYLE, -d),(d&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD?b.updateLabelElements(b.getSelectionCells(),function(a){a.style.fontWeight=null;"B"==a.nodeName&&b.replaceElement(a)}):(d&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC?b.updateLabelElements(b.getSelectionCells(),function(a){a.style.fontStyle=null;"I"==a.nodeName&&b.replaceElement(a)}):(d&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE&&b.updateLabelElements(b.getSelectionCells(),function(a){a.style.textDecoration=null;"U"==a.nodeName&& -b.replaceElement(a)})}finally{b.getModel().endUpdate()}}},null,null,f)});m("bold",mxConstants.FONT_BOLD,function(){document.execCommand("bold",!1,null)},Editor.ctrlKey+"+B");m("italic",mxConstants.FONT_ITALIC,function(){document.execCommand("italic",!1,null)},Editor.ctrlKey+"+I");m("underline",mxConstants.FONT_UNDERLINE,function(){document.execCommand("underline",!1,null)},Editor.ctrlKey+"+U");this.addAction("fontColor...",function(){d.menus.pickColor(mxConstants.STYLE_FONTCOLOR,"forecolor","000000")}); -this.addAction("strokeColor...",function(){d.menus.pickColor(mxConstants.STYLE_STROKECOLOR)});this.addAction("fillColor...",function(){d.menus.pickColor(mxConstants.STYLE_FILLCOLOR)});this.addAction("gradientColor...",function(){d.menus.pickColor(mxConstants.STYLE_GRADIENTCOLOR)});this.addAction("backgroundColor...",function(){d.menus.pickColor(mxConstants.STYLE_LABEL_BACKGROUNDCOLOR,"backcolor")});this.addAction("borderColor...",function(){d.menus.pickColor(mxConstants.STYLE_LABEL_BORDERCOLOR)}); -this.addAction("vertical",function(){d.menus.toggleStyle(mxConstants.STYLE_HORIZONTAL,!0)});this.addAction("shadow",function(){d.menus.toggleStyle(mxConstants.STYLE_SHADOW)});this.addAction("solid",function(){b.getModel().beginUpdate();try{b.setCellStyles(mxConstants.STYLE_DASHED,null),b.setCellStyles(mxConstants.STYLE_DASH_PATTERN,null),d.fireEvent(new mxEventObject("styleChanged","keys",[mxConstants.STYLE_DASHED,mxConstants.STYLE_DASH_PATTERN],"values",[null,null],"cells",b.getSelectionCells()))}finally{b.getModel().endUpdate()}}); -this.addAction("dashed",function(){b.getModel().beginUpdate();try{b.setCellStyles(mxConstants.STYLE_DASHED,"1"),b.setCellStyles(mxConstants.STYLE_DASH_PATTERN,null),d.fireEvent(new mxEventObject("styleChanged","keys",[mxConstants.STYLE_DASHED,mxConstants.STYLE_DASH_PATTERN],"values",["1",null],"cells",b.getSelectionCells()))}finally{b.getModel().endUpdate()}});this.addAction("dotted",function(){b.getModel().beginUpdate();try{b.setCellStyles(mxConstants.STYLE_DASHED,"1"),b.setCellStyles(mxConstants.STYLE_DASH_PATTERN, -"1 4"),d.fireEvent(new mxEventObject("styleChanged","keys",[mxConstants.STYLE_DASHED,mxConstants.STYLE_DASH_PATTERN],"values",["1","1 4"],"cells",b.getSelectionCells()))}finally{b.getModel().endUpdate()}});this.addAction("sharp",function(){b.getModel().beginUpdate();try{b.setCellStyles(mxConstants.STYLE_ROUNDED,"0"),b.setCellStyles(mxConstants.STYLE_CURVED,"0"),d.fireEvent(new mxEventObject("styleChanged","keys",[mxConstants.STYLE_ROUNDED,mxConstants.STYLE_CURVED],"values",["0","0"],"cells",b.getSelectionCells()))}finally{b.getModel().endUpdate()}}); -this.addAction("rounded",function(){b.getModel().beginUpdate();try{b.setCellStyles(mxConstants.STYLE_ROUNDED,"1"),b.setCellStyles(mxConstants.STYLE_CURVED,"0"),d.fireEvent(new mxEventObject("styleChanged","keys",[mxConstants.STYLE_ROUNDED,mxConstants.STYLE_CURVED],"values",["1","0"],"cells",b.getSelectionCells()))}finally{b.getModel().endUpdate()}});this.addAction("toggleRounded",function(){if(!b.isSelectionEmpty()&&b.isEnabled()){b.getModel().beginUpdate();try{var a=b.getSelectionCells(),e=b.view.getState(a[0]), -c=null!=e?e.style:b.getCellStyle(a[0]),f="1"==mxUtils.getValue(c,mxConstants.STYLE_ROUNDED,"0")?"0":"1";b.setCellStyles(mxConstants.STYLE_ROUNDED,f);b.setCellStyles(mxConstants.STYLE_CURVED,null);d.fireEvent(new mxEventObject("styleChanged","keys",[mxConstants.STYLE_ROUNDED,mxConstants.STYLE_CURVED],"values",[f,"0"],"cells",b.getSelectionCells()))}finally{b.getModel().endUpdate()}}});this.addAction("curved",function(){b.getModel().beginUpdate();try{b.setCellStyles(mxConstants.STYLE_ROUNDED,"0"),b.setCellStyles(mxConstants.STYLE_CURVED, -"1"),d.fireEvent(new mxEventObject("styleChanged","keys",[mxConstants.STYLE_ROUNDED,mxConstants.STYLE_CURVED],"values",["0","1"],"cells",b.getSelectionCells()))}finally{b.getModel().endUpdate()}});this.addAction("collapsible",function(){var a=b.view.getState(b.getSelectionCell()),e="1";null!=a&&null!=b.getFoldingImage(a)&&(e="0");b.setCellStyles("collapsible",e);d.fireEvent(new mxEventObject("styleChanged","keys",["collapsible"],"values",[e],"cells",b.getSelectionCells()))});this.addAction("editStyle...", -mxUtils.bind(this,function(){var a=b.getSelectionCells();if(null!=a&&0<a.length){var d=b.getModel(),d=new TextareaDialog(this.editorUi,mxResources.get("editStyle")+":",d.getStyle(a[0])||"",function(c){null!=c&&b.setCellStyle(mxUtils.trim(c),a)},null,null,400,220);this.editorUi.showDialog(d.container,420,300,!0,!0);d.init()}}),null,null,Editor.ctrlKey+"+E");this.addAction("setAsDefaultStyle",function(){b.isEnabled()&&!b.isSelectionEmpty()&&d.setDefaultStyle(b.getSelectionCell())},null,null,Editor.ctrlKey+ -"+Shift+D");this.addAction("clearDefaultStyle",function(){b.isEnabled()&&d.clearDefaultStyle()},null,null,Editor.ctrlKey+"+Shift+R");this.addAction("addWaypoint",function(){var a=b.getSelectionCell();if(null!=a&&b.getModel().isEdge(a)){var d=e.graph.selectionCellsHandler.getHandler(a);if(d instanceof mxEdgeHandler){for(var c=b.view.translate,f=b.view.scale,g=c.x,c=c.y,a=b.getModel().getParent(a),k=b.getCellGeometry(a);b.getModel().isVertex(a)&&null!=k;)g+=k.x,c+=k.y,a=b.getModel().getParent(a),k= -b.getCellGeometry(a);g=Math.round(b.snap(b.popupMenuHandler.triggerX/f-g));f=Math.round(b.snap(b.popupMenuHandler.triggerY/f-c));d.addPointAt(d.state,g,f)}}});this.addAction("removeWaypoint",function(){var a=d.actions.get("removeWaypoint");null!=a.handler&&a.handler.removePoint(a.handler.state,a.index)});this.addAction("clearWaypoints",function(){var a=b.getSelectionCells();if(null!=a){a=b.addAllEdges(a);b.getModel().beginUpdate();try{for(var d=0;d<a.length;d++){var c=a[d];if(b.getModel().isEdge(c)){var f= -b.getCellGeometry(c);null!=f&&(f=f.clone(),f.points=null,b.getModel().setGeometry(c,f))}}}finally{b.getModel().endUpdate()}}},null,null,"Alt+Shift+C");m=this.addAction("subscript",mxUtils.bind(this,function(){b.cellEditor.isContentEditing()&&document.execCommand("subscript",!1,null)}),null,null,Editor.ctrlKey+"+,");m=this.addAction("superscript",mxUtils.bind(this,function(){b.cellEditor.isContentEditing()&&document.execCommand("superscript",!1,null)}),null,null,Editor.ctrlKey+"+.");this.addAction("image...", -function(){if(b.isEnabled()&&!b.isCellLocked(b.getDefaultParent())){var a=mxResources.get("image")+" ("+mxResources.get("url")+"):",e=b.getView().getState(b.getSelectionCell()),c="";null!=e&&(c=e.style[mxConstants.STYLE_IMAGE]||c);var f=b.cellEditor.saveSelection();d.showImageDialog(a,c,function(a,c,d){if(b.cellEditor.isContentEditing())b.cellEditor.restoreSelection(f),b.insertImage(a,c,d);else{var e=b.getSelectionCells();if(null!=a&&(0<a.length||0<e.length)){var g=null;b.getModel().beginUpdate(); -try{if(0==e.length){var k=b.getFreeInsertPoint(),g=e=[b.insertVertex(b.getDefaultParent(),null,"",k.x,k.y,c,d,"shape=image;imageAspect=0;aspect=fixed;verticalLabelPosition=bottom;verticalAlign=top;")];b.fireEvent(new mxEventObject("cellsInserted","cells",g))}b.setCellStyles(mxConstants.STYLE_IMAGE,0<a.length?a:null,e);var r=b.view.getState(e[0]),h=null!=r?r.style:b.getCellStyle(e[0]);"image"!=h[mxConstants.STYLE_SHAPE]&&"label"!=h[mxConstants.STYLE_SHAPE]?b.setCellStyles(mxConstants.STYLE_SHAPE,"image", -e):0==a.length&&b.setCellStyles(mxConstants.STYLE_SHAPE,null,e);if(1==b.getSelectionCount()&&null!=c&&null!=d){var y=e[0],t=b.getModel().getGeometry(y);null!=t&&(t=t.clone(),t.width=c,t.height=d,b.getModel().setGeometry(y,t))}}finally{b.getModel().endUpdate()}null!=g&&(b.setSelectionCells(g),b.scrollCellToVisible(g[0]))}}},b.cellEditor.isContentEditing(),!b.cellEditor.isContentEditing())}}).isEnabled=h;this.addAction("insertImage...",function(){b.isEnabled()&&!b.isCellLocked(b.getDefaultParent())&& -(b.clearSelection(),d.actions.get("image").funct())}).isEnabled=h;m=this.addAction("layers",mxUtils.bind(this,function(){null==this.layersWindow?(this.layersWindow=new LayersWindow(d,document.body.offsetWidth-280,120,220,180),this.layersWindow.window.addListener("show",function(){d.fireEvent(new mxEventObject("layers"))}),this.layersWindow.window.addListener("hide",function(){d.fireEvent(new mxEventObject("layers"))}),this.layersWindow.window.setVisible(!0),d.fireEvent(new mxEventObject("layers"))): -this.layersWindow.window.setVisible(!this.layersWindow.window.isVisible())}),null,null,Editor.ctrlKey+"+Shift+L");m.setToggleAction(!0);m.setSelectedCallback(mxUtils.bind(this,function(){return null!=this.layersWindow&&this.layersWindow.window.isVisible()}));m=this.addAction("formatPanel",mxUtils.bind(this,function(){d.toggleFormatPanel()}),null,null,Editor.ctrlKey+"+Shift+P");m.setToggleAction(!0);m.setSelectedCallback(mxUtils.bind(this,function(){return 0<d.formatWidth}));m=this.addAction("outline", -mxUtils.bind(this,function(){null==this.outlineWindow?(this.outlineWindow=new OutlineWindow(d,document.body.offsetWidth-260,100,180,180),this.outlineWindow.window.addListener("show",function(){d.fireEvent(new mxEventObject("outline"))}),this.outlineWindow.window.addListener("hide",function(){d.fireEvent(new mxEventObject("outline"))}),this.outlineWindow.window.setVisible(!0),d.fireEvent(new mxEventObject("outline"))):this.outlineWindow.window.setVisible(!this.outlineWindow.window.isVisible())}),null, -null,Editor.ctrlKey+"+Shift+O");m.setToggleAction(!0);m.setSelectedCallback(mxUtils.bind(this,function(){return null!=this.outlineWindow&&this.outlineWindow.window.isVisible()}))};Actions.prototype.addAction=function(a,d,e,b,h){var m;"..."==a.substring(a.length-3)?(a=a.substring(0,a.length-3),m=mxResources.get(a)+"..."):m=mxResources.get(a);return this.put(a,new Action(m,d,e,b,h))};Actions.prototype.put=function(a,d){return this.actions[a]=d};Actions.prototype.get=function(a){return this.actions[a]}; -function Action(a,d,e,b,h){mxEventSource.call(this);this.label=a;this.funct=this.createFunction(d);this.enabled=null!=e?e:!0;this.iconCls=b;this.shortcut=h;this.visible=!0}mxUtils.extend(Action,mxEventSource);Action.prototype.createFunction=function(a){return a};Action.prototype.setEnabled=function(a){this.enabled!=a&&(this.enabled=a,this.fireEvent(new mxEventObject("stateChanged")))};Action.prototype.isEnabled=function(){return this.enabled}; -Action.prototype.setToggleAction=function(a){this.toggleAction=a};Action.prototype.setSelectedCallback=function(a){this.selectedCallback=a};Action.prototype.isSelected=function(){return this.selectedCallback()};DrawioFile=function(a,d){mxEventSource.call(this);this.ui=a;this.data=d||""};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,d,e,b){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,d,e){};DrawioFile.prototype.saveFile=function(a,d,e,b){};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,d,e){};DrawioFile.prototype.isMovable=function(){return!1}; -DrawioFile.prototype.move=function(a,d,e){};DrawioFile.prototype.getHash=function(){return""};DrawioFile.prototype.getId=function(){return""};DrawioFile.prototype.isEditable=function(){return!this.ui.editor.isChromelessView()||this.ui.editor.editable};DrawioFile.prototype.getUi=function(){return this.ui};DrawioFile.prototype.getTitle=function(){return""};DrawioFile.prototype.setData=function(a){this.data=a};DrawioFile.prototype.getData=function(){return this.data}; -DrawioFile.prototype.open=function(){this.ui.setFileData(this.getData());this.changeListener=mxUtils.bind(this,function(a,d){var e=null!=d?d.getProperty("edit"):null;!this.changeListenerEnabled||!this.isEditable()||null!=e&&e.ignoreEdit||(this.setModified(!0),this.isAutosave()?(this.ui.editor.setStatus(mxUtils.htmlEntities(mxResources.get("saving"))+"..."),this.autosave(this.autosaveDelay,this.maxAutosaveDelay,mxUtils.bind(this,function(a){null!=this.autosaveThread||this.ui.getCurrentFile()!=this|| -this.isModified()||this.addAllSavedStatus()}),mxUtils.bind(this,function(a){this.ui.getCurrentFile()==this&&this.addUnsavedStatus(a)}))):this.addUnsavedStatus())});this.ui.editor.graph.model.addListener(mxEvent.CHANGE,this.changeListener);this.ui.editor.graph.addListener("gridSizeChanged",this.changeListener);this.ui.editor.graph.addListener("shadowVisibleChanged",this.changeListener);this.ui.addListener("pageFormatChanged",this.changeListener);this.ui.addListener("pageScaleChanged",this.changeListener); -this.ui.addListener("backgroundColorChanged",this.changeListener);this.ui.addListener("backgroundImageChanged",this.changeListener);this.ui.addListener("foldingEnabledChanged",this.changeListener);this.ui.addListener("mathEnabledChanged",this.changeListener);this.ui.addListener("gridEnabledChanged",this.changeListener);this.ui.addListener("guidesEnabledChanged",this.changeListener);this.ui.addListener("pageViewChanged",this.changeListener)}; -DrawioFile.prototype.addAllSavedStatus=function(){var a=this.ui.getCurrentFile();null==a||a.constructor!=DriveFile&&a.constructor!=DropboxFile?this.ui.editor.setStatus(mxUtils.htmlEntities(mxResources.get("allChangesSaved"))):(this.ui.editor.setStatus('<span title="'+mxUtils.htmlEntities(mxResources.get("revisionHistory"))+'" style="text-decoration:underline;cursor:pointer;">'+mxUtils.htmlEntities(mxResources.get("allChangesSaved"))+"</span>"),null!=this.ui.statusContainer&&(a=this.ui.statusContainer.getElementsByTagName("span"), -0<a.length&&mxEvent.addListener(a[0],"click",mxUtils.bind(this,function(){this.ui.actions.get("revisionHistory").funct()}))))}; -DrawioFile.prototype.addUnsavedStatus=function(a){a instanceof Error&&null!=a.message?this.ui.editor.setStatus('<div class="geStatusAlert" style="overflow:hidden;">'+mxUtils.htmlEntities(mxResources.get("unsavedChanges"))+" ("+mxUtils.htmlEntities(a.message)+")</div>"):(this.ui.editor.setStatus('<div class="geStatusAlert" style="cursor:pointer;overflow:hidden;">'+mxUtils.htmlEntities(mxResources.get("unsavedChangesClickHereToSave"))+"</div>"),null!=this.ui.statusContainer&&(a=this.ui.statusContainer.getElementsByTagName("div"), -0<a.length&&mxEvent.addListener(a[0],"click",mxUtils.bind(this,function(){this.ui.actions.get(null==this.ui.mode?"saveAs":"save").funct()}))))}; -DrawioFile.prototype.autosave=function(a,d,e,b){null==this.lastAutosave&&(this.lastAutosave=(new Date).getTime());a=(new Date).getTime()-this.lastAutosave<d?a:0;this.clearAutosave();this.autosaveThread=window.setTimeout(mxUtils.bind(this,function(){this.lastAutosave=this.autosaveThread=null;if(this.isModified()&&this.isAutosaveNow()){var a=this.isAutosaveRevision();a&&(this.lastAutosaveRevision=(new Date).getTime());this.save(a,mxUtils.bind(this,function(a){this.autosaveCompleted();null!=e&&e(a)}), -mxUtils.bind(this,function(a){null!=b&&b(a)}))}else null!=e&&e(null)}),a)};DrawioFile.prototype.isAutosaveNow=function(){return!0};DrawioFile.prototype.autosaveCompleted=function(){};DrawioFile.prototype.clearAutosave=function(){null!=this.autosaveThread&&(window.clearTimeout(this.autosaveThread),this.autosaveThread=null)};DrawioFile.prototype.isAutosaveRevision=function(){var a=(new Date).getTime();return null==this.lastAutosaveRevision||a-this.lastAutosaveRevision>this.maxAutosaveRevisionDelay}; -DrawioFile.prototype.close=function(a){this.isAutosave()&&this.isModified()&&this.save(this.isAutosaveRevision(),null,null,a);this.destroy()};DrawioFile.prototype.hasSameExtension=function(a,d){if(null!=a&&null!=d){var e=a.lastIndexOf("."),b=0<e?a.substring(e):"",e=d.lastIndexOf(".");return b===(0<e?d.substring(e):"")}return a==d}; -DrawioFile.prototype.destroy=function(){this.clearAutosave();null!=this.changeListener&&(this.ui.editor.graph.model.removeListener(this.changeListener),this.ui.editor.graph.removeListener(this.changeListener),this.ui.removeListener(this.changeListener),this.changeListener=null)};LocalFile=function(a,d,e,b){DrawioFile.call(this,a,d);this.title=e;this.mode=b?null:App.MODE_DEVICE};mxUtils.extend(LocalFile,DrawioFile);LocalFile.prototype.isAutosave=function(){return!1};LocalFile.prototype.getMode=function(){return this.mode};LocalFile.prototype.getTitle=function(){return this.title};LocalFile.prototype.isRenamable=function(){return!0};LocalFile.prototype.save=function(a,d,e){this.saveAs(this.title,d,e)};LocalFile.prototype.saveAs=function(a,d,e){this.saveFile(a,!1,d,e)}; -LocalFile.prototype.saveFile=function(a,d,e,b){this.title=a;this.updateFileData();d=this.getData();var h=this.ui.useCanvasForExport&&/(\.png)$/i.test(this.getTitle()),m=mxUtils.bind(this,function(b){if(this.ui.isOfflineApp()||this.ui.isLocalFileSave())this.ui.doSaveLocalFile(b,a,h?"image/png":"text/xml",h);else if(b.length<MAX_REQUEST_SIZE){var d=a.lastIndexOf("."),d=0<d?a.substring(d+1):"xml";(new mxXmlRequest(SAVE_URL,"format="+d+"&xml="+encodeURIComponent(b)+"&filename="+encodeURIComponent(a)+ -(h?"&binary=1":""))).simulate(document,"_blank")}else this.ui.handleError({message:mxResources.get("drawingTooLarge")},mxResources.get("error"),mxUtils.bind(this,function(){mxUtils.popup(b)}));this.setModified(!1);this.contentChanged();null!=e&&e()});h?this.ui.getEmbeddedPng(mxUtils.bind(this,function(a){m(a)}),b,this.ui.getCurrentFile()!=this?this.getData():null):m(d)};LocalFile.prototype.rename=function(a,d,e){this.title=a;this.descriptorChanged();null!=d&&d()}; -LocalFile.prototype.open=function(){this.ui.setFileData(this.getData());this.changeListener=mxUtils.bind(this,function(a,d){this.setModified(!0);this.addUnsavedStatus()});this.ui.editor.graph.model.addListener(mxEvent.CHANGE,this.changeListener)};(function(){Editor.prototype.appName="draw.io";Editor.closeImage=mxClient.IS_SVG?"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABkAAAAZCAMAAADzN3VRAAAApVBMVEUAAAD////k5OT///8AAAB1dXXMzMz9/f39/f37+/v5+fn+/v7///9iYmJaWlqFhYWnp6ejo6OHh4f////////////////7+/v5+fnx8fH///8AAAD///8bGxv7+/v5+fkoKCghISFDQ0MYGBjh4eHY2Njb29tQUFBvb29HR0c/Pz82NjYrKyu/v78SEhLu7u7s7OzV1dVVVVU7OzsVFRXAv78QEBBzqehMAAAAG3RSTlMAA/7p/vz5xZlrTiPL/v78+/v7+OXd2TYQDs8L70ZbAAABKUlEQVQoz3VS13LCMBBUXHChd8iukDslQChJ/v/TchaG4cXS+OSb1c7trU7V60OpdRz2ZtNZL4zXNlcN8BEtSG6+NxIXkeRPoBuQ1cjvZ31/VJFB10ISli6diYfH8iYO3WUNCcNlB0gTrXOtkxTo0O1aKKiBBMhhv2MNBQKoiA5wxlZo0JDzD3AYKbWacyj3fs01wxey0pyEP+R8pWKWXoqtIZ0DDg5pbki9krEKOa6LVDQsdoXEsi46Zqh69KFz7B1u7Hb2yDV8firXDKBlZ4UFiswKGRhXTS93/ECK7yxnJ3+S3y/ThpO+cfSD017nqa18aasabU0/t7d+tk0/1oMEJ1NaD67iwdF68OabFSLn+eHb0+vjy+uk8br9fdrftH0O2menfd7+AQfYM/lNjoDHAAAAAElFTkSuQmCC": +Actions.prototype.init=function(){function a(a){d.escape();var b=d.getDeletableCells(d.getSelectionCells());if(null!=b&&0<b.length){var c=d.model.getParents(b);d.removeCells(b,a);if(null!=c){a=[];for(b=0;b<c.length;b++)d.model.contains(c[b])&&(d.model.isVertex(c[b])||d.model.isEdge(c[b]))&&a.push(c[b]);d.setSelectionCells(a)}}}var b=this.editorUi,e=b.editor,d=e.graph,k=function(){return Action.prototype.isEnabled.apply(this,arguments)&&d.isEnabled()};this.addAction("new...",function(){d.openLink(b.getUrl())}); +this.addAction("open...",function(){window.openNew=!0;window.openKey="open";b.openFile()});this.addAction("import...",function(){window.openNew=!1;window.openKey="import";window.openFile=new OpenFile(mxUtils.bind(this,function(){b.hideDialog()}));window.openFile.setConsumer(mxUtils.bind(this,function(a,b){try{var c=mxUtils.parseXml(a);e.graph.setSelectionCells(e.graph.importGraphModel(c.documentElement))}catch(f){mxUtils.alert(mxResources.get("invalidOrMissingFile")+": "+f.message)}}));b.showDialog((new OpenDialog(this)).container, +320,220,!0,!0,function(){window.openFile=null})}).isEnabled=k;this.addAction("save",function(){b.saveFile(!1)},null,null,Editor.ctrlKey+"+S").isEnabled=k;this.addAction("saveAs...",function(){b.saveFile(!0)},null,null,Editor.ctrlKey+"+Shift+S").isEnabled=k;this.addAction("export...",function(){b.showDialog((new ExportDialog(b)).container,300,230,!0,!0)});this.addAction("editDiagram...",function(){var a=new EditDiagramDialog(b);b.showDialog(a.container,620,420,!0,!1);a.init()});this.addAction("pageSetup...", +function(){b.showDialog((new PageSetupDialog(b)).container,320,220,!0,!0)}).isEnabled=k;this.addAction("print...",function(){b.showDialog((new PrintDialog(b)).container,300,180,!0,!0)},null,"sprite-print",Editor.ctrlKey+"+P");this.addAction("preview",function(){mxUtils.show(d,null,10,10)});this.addAction("undo",function(){b.undo()},null,"sprite-undo",Editor.ctrlKey+"+Z");this.addAction("redo",function(){b.redo()},null,"sprite-redo",mxClient.IS_WIN?Editor.ctrlKey+"+Y":Editor.ctrlKey+"+Shift+Z");this.addAction("cut", +function(){mxClipboard.cut(d)},null,"sprite-cut",Editor.ctrlKey+"+X");this.addAction("copy",function(){mxClipboard.copy(d)},null,"sprite-copy",Editor.ctrlKey+"+C");this.addAction("paste",function(){d.isEnabled()&&!d.isCellLocked(d.getDefaultParent())&&mxClipboard.paste(d)},!1,"sprite-paste",Editor.ctrlKey+"+V");this.addAction("pasteHere",function(a){if(d.isEnabled()&&!d.isCellLocked(d.getDefaultParent())){d.getModel().beginUpdate();try{var b=mxClipboard.paste(d);if(null!=b){a=!0;for(var c=0;c<b.length&& +a;c++)a=a&&d.model.isEdge(b[c]);var f=d.view.translate,e=d.view.scale,n=f.x,r=f.y,f=null;if(1==b.length&&a){var h=d.getCellGeometry(b[0]);null!=h&&(f=h.getTerminalPoint(!0))}f=null!=f?f:d.getBoundingBoxFromGeometry(b,a);if(null!=f){var m=Math.round(d.snap(d.popupMenuHandler.triggerX/e-n)),k=Math.round(d.snap(d.popupMenuHandler.triggerY/e-r));d.cellsMoved(b,m-f.x,k-f.y)}}}finally{d.getModel().endUpdate()}}});this.addAction("copySize",function(a){a=d.getSelectionCell();d.isEnabled()&&null!=a&&d.getModel().isVertex(a)&& +(a=d.getCellGeometry(a),null!=a&&(b.copiedSize=new mxRectangle(a.x,a.y,a.width,a.height)))},null,null,"Alt+Shit+X");this.addAction("pasteSize",function(a){if(d.isEnabled()&&!d.isSelectionEmpty()&&null!=b.copiedSize){d.getModel().beginUpdate();try{var e=d.getSelectionCells();for(a=0;a<e.length;a++)if(d.getModel().isVertex(e[a])){var c=d.getCellGeometry(e[a]);null!=c&&(c=c.clone(),c.width=b.copiedSize.width,c.height=b.copiedSize.height,d.getModel().setGeometry(e[a],c))}}finally{d.getModel().endUpdate()}}}, +null,null,"Alt+Shit+V");this.addAction("delete",function(b){a(null!=b&&mxEvent.isShiftDown(b))},null,null,"Delete");this.addAction("deleteAll",function(){a(!0)},null,null,Editor.ctrlKey+"+Delete");this.addAction("duplicate",function(){d.setSelectionCells(d.duplicateCells())},null,null,Editor.ctrlKey+"+D");this.put("turn",new Action(mxResources.get("turn")+" / "+mxResources.get("reverse"),function(){d.turnShapes(d.getSelectionCells())},null,null,Editor.ctrlKey+"+R"));this.addAction("selectVertices", +function(){d.selectVertices()},null,null,Editor.ctrlKey+"+Shift+I");this.addAction("selectEdges",function(){d.selectEdges()},null,null,Editor.ctrlKey+"+Shift+E");this.addAction("selectAll",function(){d.selectAll(null,!0)},null,null,Editor.ctrlKey+"+A");this.addAction("selectNone",function(){d.clearSelection()},null,null,Editor.ctrlKey+"+Shift+A");this.addAction("lockUnlock",function(){if(!d.isSelectionEmpty()){d.getModel().beginUpdate();try{var a=d.isCellMovable(d.getSelectionCell())?1:0;d.toggleCellStyles(mxConstants.STYLE_MOVABLE, +a);d.toggleCellStyles(mxConstants.STYLE_RESIZABLE,a);d.toggleCellStyles(mxConstants.STYLE_ROTATABLE,a);d.toggleCellStyles(mxConstants.STYLE_DELETABLE,a);d.toggleCellStyles(mxConstants.STYLE_EDITABLE,a);d.toggleCellStyles("connectable",a)}finally{d.getModel().endUpdate()}}},null,null,Editor.ctrlKey+"+L");this.addAction("home",function(){d.home()},null,null,"Home");this.addAction("exitGroup",function(){d.exitGroup()},null,null,Editor.ctrlKey+"+Shift+Home");this.addAction("enterGroup",function(){d.enterGroup()}, +null,null,Editor.ctrlKey+"+Shift+End");this.addAction("collapse",function(){d.foldCells(!0)},null,null,Editor.ctrlKey+"+Home");this.addAction("expand",function(){d.foldCells(!1)},null,null,Editor.ctrlKey+"+End");this.addAction("toFront",function(){d.orderCells(!1)},null,null,Editor.ctrlKey+"+Shift+F");this.addAction("toBack",function(){d.orderCells(!0)},null,null,Editor.ctrlKey+"+Shift+B");this.addAction("group",function(){1==d.getSelectionCount()?d.setCellStyles("container","1"):d.setSelectionCell(d.groupCells(null, +0))},null,null,Editor.ctrlKey+"+G");this.addAction("ungroup",function(){1==d.getSelectionCount()&&0==d.getModel().getChildCount(d.getSelectionCell())?d.setCellStyles("container","0"):d.setSelectionCells(d.ungroupCells())},null,null,Editor.ctrlKey+"+Shift+U");this.addAction("removeFromGroup",function(){d.removeCellsFromParent()});this.addAction("edit",function(){d.isEnabled()&&d.startEditingAtCell()},null,null,"F2/Enter");this.addAction("editData...",function(){var a=d.getSelectionCell()||d.getModel().getRoot(); +b.showDataDialog(a)},null,null,Editor.ctrlKey+"+M");this.addAction("editTooltip...",function(){var a=b.editor.graph;if(a.isEnabled()&&!a.isSelectionEmpty()){var d=a.getSelectionCell(),c="";if(mxUtils.isNode(d.value)){var f=d.value.getAttribute("tooltip");null!=f&&(c=f)}c=new TextareaDialog(b,mxResources.get("editTooltip")+":",c,function(c){a.setTooltipForCell(d,c)});b.showDialog(c.container,320,200,!0,!0);c.init()}},null,null,"Alt+Shift+T");this.addAction("openLink",function(){var a=d.getLinkForCell(d.getSelectionCell()); +null!=a&&d.openLink(a)});this.addAction("editLink...",function(){var a=b.editor.graph;if(a.isEnabled()&&!a.isSelectionEmpty()){var d=a.getSelectionCell(),c=a.getLinkForCell(d)||"";b.showLinkDialog(c,mxResources.get("apply"),function(c){c=mxUtils.trim(c);a.setLinkForCell(d,0<c.length?c:null)})}},null,null,"Alt+Shift+L");this.addAction("insertLink...",function(){d.isEnabled()&&!d.isCellLocked(d.getDefaultParent())&&b.showLinkDialog("",mxResources.get("insert"),function(a,b){a=mxUtils.trim(a);if(0<a.length){var c= +null,f=d.getLinkTitle(a);null!=b&&0<b.length&&(c=b[0].iconUrl,f=b[0].name||b[0].type,f=f.charAt(0).toUpperCase()+f.substring(1),30<f.length&&(f=f.substring(0,30)+"..."));var e=d.getFreeInsertPoint(),c=new mxCell(f,new mxGeometry(e.x,e.y,100,40),"fontColor=#0000EE;fontStyle=4;rounded=1;overflow=hidden;"+(null!=c?"shape=label;imageWidth=16;imageHeight=16;spacingLeft=26;align=left;image="+c:"spacing=10;"));c.vertex=!0;d.setLinkForCell(c,a);d.cellSizeUpdated(c,!0);d.getModel().beginUpdate();try{c=d.addCell(c), +d.fireEvent(new mxEventObject("cellsInserted","cells",[c]))}finally{d.getModel().endUpdate()}d.setSelectionCell(c);d.scrollCellToVisible(d.getSelectionCell())}})}).isEnabled=k;this.addAction("link...",mxUtils.bind(this,function(){var a=b.editor.graph;if(a.isEnabled())if(a.cellEditor.isContentEditing()){var d=a.getSelectedElement(),c=a.getParentByName(d,"A",a.cellEditor.textarea),f="";if(null==c&&null!=d&&null!=d.getElementsByTagName)for(var e=d.getElementsByTagName("a"),n=0;n<e.length&&null==c;n++)e[n].textContent== +d.textContent&&(a.selectNode(e[n]),c=e[n]);null!=c&&"A"==c.nodeName&&(f=c.getAttribute("href")||"");var r=a.cellEditor.saveSelection();b.showLinkDialog(f,mxResources.get("apply"),mxUtils.bind(this,function(c){a.cellEditor.restoreSelection(r);null!=c&&a.insertLink(c)}))}else a.isSelectionEmpty()?this.get("insertLink").funct():this.get("editLink").funct()})).isEnabled=k;this.addAction("autosize",function(){var a=d.getSelectionCells();if(null!=a){d.getModel().beginUpdate();try{for(var b=0;b<a.length;b++){var c= +a[b];if(d.getModel().getChildCount(c))d.updateGroupBounds([c],20);else{var f=d.view.getState(c),e=d.getCellGeometry(c);d.getModel().isVertex(c)&&null!=f&&null!=f.text&&null!=e&&d.isWrapping(c)?(e=e.clone(),e.height=f.text.boundingBox.height/d.view.scale,d.getModel().setGeometry(c,e)):d.updateCellSize(c)}}}finally{d.getModel().endUpdate()}}},null,null,Editor.ctrlKey+"+Shift+Y");this.addAction("formattedText",function(){var a=d.getView().getState(d.getSelectionCell());if(null!=a){var e="1";d.stopEditing(); +d.getModel().beginUpdate();try{if("1"==a.style.html){var e=null,c=d.convertValueToString(a.cell);"0"!=mxUtils.getValue(a.style,"nl2Br","1")&&(c=c.replace(/\n/g,"").replace(/<br\s*.?>/g,"\n"));var f=document.createElement("div");f.innerHTML=c;c=mxUtils.extractTextWithWhitespace(f.childNodes);d.cellLabelChanged(a.cell,c)}else c=mxUtils.htmlEntities(d.convertValueToString(a.cell),!1),"0"!=mxUtils.getValue(a.style,"nl2Br","1")&&(c=c.replace(/\n/g,"<br/>")),d.cellLabelChanged(a.cell,d.sanitizeHtml(c)); +d.setCellStyles("html",e);b.fireEvent(new mxEventObject("styleChanged","keys",["html"],"values",[null!=e?e:"0"],"cells",d.getSelectionCells()))}finally{d.getModel().endUpdate()}}});this.addAction("wordWrap",function(){var a=d.getView().getState(d.getSelectionCell()),b="wrap";d.stopEditing();null!=a&&"wrap"==a.style[mxConstants.STYLE_WHITE_SPACE]&&(b=null);d.setCellStyles(mxConstants.STYLE_WHITE_SPACE,b)});this.addAction("rotation",function(){var a="0",e=d.getView().getState(d.getSelectionCell()); +null!=e&&(a=e.style[mxConstants.STYLE_ROTATION]||a);a=new FilenameDialog(b,a,mxResources.get("apply"),function(a){null!=a&&0<a.length&&d.setCellStyles(mxConstants.STYLE_ROTATION,a)},mxResources.get("enterValue")+" ("+mxResources.get("rotation")+" 0-360)");b.showDialog(a.container,375,80,!0,!0);a.init()});this.addAction("resetView",function(){d.zoomTo(1);b.resetScrollbars()},null,null,Editor.ctrlKey+"+H");this.addAction("zoomIn",function(a){d.zoomIn()},null,null,Editor.ctrlKey+" + (Numpad) / Alt+Mousewheel"); +this.addAction("zoomOut",function(a){d.zoomOut()},null,null,Editor.ctrlKey+" - (Numpad) / Alt+Mousewheel");this.addAction("fitWindow",function(){d.fit()},null,null,Editor.ctrlKey+"+Shift+H");this.addAction("fitPage",mxUtils.bind(this,function(){d.pageVisible||this.get("pageView").funct();var a=d.pageFormat,b=d.pageScale;d.zoomTo(Math.floor(20*Math.min((d.container.clientWidth-10)/a.width/b,(d.container.clientHeight-10)/a.height/b))/20);mxUtils.hasScrollbars(d.container)&&(a=d.getPagePadding(),d.container.scrollTop= +a.y*d.view.scale-1,d.container.scrollLeft=Math.min(a.x*d.view.scale,(d.container.scrollWidth-d.container.clientWidth)/2)-1)}),null,null,Editor.ctrlKey+"+J");this.addAction("fitTwoPages",mxUtils.bind(this,function(){d.pageVisible||this.get("pageView").funct();var a=d.pageFormat,b=d.pageScale;d.zoomTo(Math.floor(20*Math.min((d.container.clientWidth-10)/(2*a.width)/b,(d.container.clientHeight-10)/a.height/b))/20);mxUtils.hasScrollbars(d.container)&&(a=d.getPagePadding(),d.container.scrollTop=Math.min(a.y, +(d.container.scrollHeight-d.container.clientHeight)/2),d.container.scrollLeft=Math.min(a.x,(d.container.scrollWidth-d.container.clientWidth)/2))}),null,null,Editor.ctrlKey+"+Shift+J");this.addAction("fitPageWidth",mxUtils.bind(this,function(){d.pageVisible||this.get("pageView").funct();d.zoomTo(Math.floor(20*(d.container.clientWidth-10)/d.pageFormat.width/d.pageScale)/20);if(mxUtils.hasScrollbars(d.container)){var a=d.getPagePadding();d.container.scrollLeft=Math.min(a.x*d.view.scale,(d.container.scrollWidth- +d.container.clientWidth)/2)}}));this.put("customZoom",new Action(mxResources.get("custom")+"...",mxUtils.bind(this,function(){var a=new FilenameDialog(this.editorUi,parseInt(100*d.getView().getScale()),mxResources.get("apply"),mxUtils.bind(this,function(a){a=parseInt(a);!isNaN(a)&&0<a&&d.zoomTo(a/100)}),mxResources.get("zoom")+" (%)");this.editorUi.showDialog(a.container,300,80,!0,!0);a.init()}),null,null,Editor.ctrlKey+"+0"));this.addAction("pageScale...",mxUtils.bind(this,function(){var a=new FilenameDialog(this.editorUi, +parseInt(100*d.pageScale),mxResources.get("apply"),mxUtils.bind(this,function(a){a=parseInt(a);!isNaN(a)&&0<a&&b.setPageScale(a/100)}),mxResources.get("pageScale")+" (%)");this.editorUi.showDialog(a.container,300,80,!0,!0);a.init()}));var l=null,l=this.addAction("grid",function(){d.setGridEnabled(!d.isGridEnabled());b.fireEvent(new mxEventObject("gridEnabledChanged"))},null,null,Editor.ctrlKey+"+Shift+G");l.setToggleAction(!0);l.setSelectedCallback(function(){return d.isGridEnabled()});l.setEnabled(!1); +l=this.addAction("guides",function(){d.graphHandler.guidesEnabled=!d.graphHandler.guidesEnabled;b.fireEvent(new mxEventObject("guidesEnabledChanged"))});l.setToggleAction(!0);l.setSelectedCallback(function(){return d.graphHandler.guidesEnabled});l.setEnabled(!1);l=this.addAction("tooltips",function(){d.tooltipHandler.setEnabled(!d.tooltipHandler.isEnabled())});l.setToggleAction(!0);l.setSelectedCallback(function(){return d.tooltipHandler.isEnabled()});l=this.addAction("collapseExpand",function(){var a= +new ChangePageSetup(b);a.ignoreColor=!0;a.ignoreImage=!0;a.foldingEnabled=!d.foldingEnabled;d.model.execute(a)});l.setToggleAction(!0);l.setSelectedCallback(function(){return d.foldingEnabled});l.isEnabled=k;l=this.addAction("scrollbars",function(){b.setScrollbars(!b.hasScrollbars())});l.setToggleAction(!0);l.setSelectedCallback(function(){return d.scrollbars});l=this.addAction("pageView",mxUtils.bind(this,function(){b.setPageVisible(!d.pageVisible)}));l.setToggleAction(!0);l.setSelectedCallback(function(){return d.pageVisible}); +l=this.addAction("connectionArrows",function(){d.connectionArrowsEnabled=!d.connectionArrowsEnabled;b.fireEvent(new mxEventObject("connectionArrowsChanged"))},null,null,"Alt+Shift+A");l.setToggleAction(!0);l.setSelectedCallback(function(){return d.connectionArrowsEnabled});l=this.addAction("connectionPoints",function(){d.setConnectable(!d.connectionHandler.isEnabled());b.fireEvent(new mxEventObject("connectionPointsChanged"))},null,null,"Alt+Shift+P");l.setToggleAction(!0);l.setSelectedCallback(function(){return d.connectionHandler.isEnabled()}); +l=this.addAction("copyConnect",function(){d.connectionHandler.setCreateTarget(!d.connectionHandler.isCreateTarget());b.fireEvent(new mxEventObject("copyConnectChanged"))});l.setToggleAction(!0);l.setSelectedCallback(function(){return d.connectionHandler.isCreateTarget()});l.isEnabled=k;l=this.addAction("autosave",function(){b.editor.setAutosave(!b.editor.autosave)});l.setToggleAction(!0);l.setSelectedCallback(function(){return b.editor.autosave});l.isEnabled=k;l.visible=!1;this.addAction("help",function(){var a= +"";mxResources.isLanguageSupported(mxClient.language)&&(a="_"+mxClient.language);d.openLink(RESOURCES_PATH+"/help"+a+".html")});var p=!1;this.put("about",new Action(mxResources.get("about")+" Graph Editor...",function(){p||(b.showDialog((new AboutDialog(b)).container,320,280,!0,!0,function(){p=!1}),p=!0)},null,null,"F1"));l=mxUtils.bind(this,function(a,b,c,f){return this.addAction(a,function(){if(null!=c&&d.cellEditor.isContentEditing())c();else{d.stopEditing(!1);d.getModel().beginUpdate();try{d.toggleCellStyleFlags(mxConstants.STYLE_FONTSTYLE, +b),(b&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD?d.updateLabelElements(d.getSelectionCells(),function(a){a.style.fontWeight=null;"B"==a.nodeName&&d.replaceElement(a)}):(b&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC?d.updateLabelElements(d.getSelectionCells(),function(a){a.style.fontStyle=null;"I"==a.nodeName&&d.replaceElement(a)}):(b&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE&&d.updateLabelElements(d.getSelectionCells(),function(a){a.style.textDecoration=null;"U"==a.nodeName&& +d.replaceElement(a)})}finally{d.getModel().endUpdate()}}},null,null,f)});l("bold",mxConstants.FONT_BOLD,function(){document.execCommand("bold",!1,null)},Editor.ctrlKey+"+B");l("italic",mxConstants.FONT_ITALIC,function(){document.execCommand("italic",!1,null)},Editor.ctrlKey+"+I");l("underline",mxConstants.FONT_UNDERLINE,function(){document.execCommand("underline",!1,null)},Editor.ctrlKey+"+U");this.addAction("fontColor...",function(){b.menus.pickColor(mxConstants.STYLE_FONTCOLOR,"forecolor","000000")}); +this.addAction("strokeColor...",function(){b.menus.pickColor(mxConstants.STYLE_STROKECOLOR)});this.addAction("fillColor...",function(){b.menus.pickColor(mxConstants.STYLE_FILLCOLOR)});this.addAction("gradientColor...",function(){b.menus.pickColor(mxConstants.STYLE_GRADIENTCOLOR)});this.addAction("backgroundColor...",function(){b.menus.pickColor(mxConstants.STYLE_LABEL_BACKGROUNDCOLOR,"backcolor")});this.addAction("borderColor...",function(){b.menus.pickColor(mxConstants.STYLE_LABEL_BORDERCOLOR)}); +this.addAction("vertical",function(){b.menus.toggleStyle(mxConstants.STYLE_HORIZONTAL,!0)});this.addAction("shadow",function(){b.menus.toggleStyle(mxConstants.STYLE_SHADOW)});this.addAction("solid",function(){d.getModel().beginUpdate();try{d.setCellStyles(mxConstants.STYLE_DASHED,null),d.setCellStyles(mxConstants.STYLE_DASH_PATTERN,null),b.fireEvent(new mxEventObject("styleChanged","keys",[mxConstants.STYLE_DASHED,mxConstants.STYLE_DASH_PATTERN],"values",[null,null],"cells",d.getSelectionCells()))}finally{d.getModel().endUpdate()}}); +this.addAction("dashed",function(){d.getModel().beginUpdate();try{d.setCellStyles(mxConstants.STYLE_DASHED,"1"),d.setCellStyles(mxConstants.STYLE_DASH_PATTERN,null),b.fireEvent(new mxEventObject("styleChanged","keys",[mxConstants.STYLE_DASHED,mxConstants.STYLE_DASH_PATTERN],"values",["1",null],"cells",d.getSelectionCells()))}finally{d.getModel().endUpdate()}});this.addAction("dotted",function(){d.getModel().beginUpdate();try{d.setCellStyles(mxConstants.STYLE_DASHED,"1"),d.setCellStyles(mxConstants.STYLE_DASH_PATTERN, +"1 4"),b.fireEvent(new mxEventObject("styleChanged","keys",[mxConstants.STYLE_DASHED,mxConstants.STYLE_DASH_PATTERN],"values",["1","1 4"],"cells",d.getSelectionCells()))}finally{d.getModel().endUpdate()}});this.addAction("sharp",function(){d.getModel().beginUpdate();try{d.setCellStyles(mxConstants.STYLE_ROUNDED,"0"),d.setCellStyles(mxConstants.STYLE_CURVED,"0"),b.fireEvent(new mxEventObject("styleChanged","keys",[mxConstants.STYLE_ROUNDED,mxConstants.STYLE_CURVED],"values",["0","0"],"cells",d.getSelectionCells()))}finally{d.getModel().endUpdate()}}); +this.addAction("rounded",function(){d.getModel().beginUpdate();try{d.setCellStyles(mxConstants.STYLE_ROUNDED,"1"),d.setCellStyles(mxConstants.STYLE_CURVED,"0"),b.fireEvent(new mxEventObject("styleChanged","keys",[mxConstants.STYLE_ROUNDED,mxConstants.STYLE_CURVED],"values",["1","0"],"cells",d.getSelectionCells()))}finally{d.getModel().endUpdate()}});this.addAction("toggleRounded",function(){if(!d.isSelectionEmpty()&&d.isEnabled()){d.getModel().beginUpdate();try{var a=d.getSelectionCells(),e=d.view.getState(a[0]), +c=null!=e?e.style:d.getCellStyle(a[0]),f="1"==mxUtils.getValue(c,mxConstants.STYLE_ROUNDED,"0")?"0":"1";d.setCellStyles(mxConstants.STYLE_ROUNDED,f);d.setCellStyles(mxConstants.STYLE_CURVED,null);b.fireEvent(new mxEventObject("styleChanged","keys",[mxConstants.STYLE_ROUNDED,mxConstants.STYLE_CURVED],"values",[f,"0"],"cells",d.getSelectionCells()))}finally{d.getModel().endUpdate()}}});this.addAction("curved",function(){d.getModel().beginUpdate();try{d.setCellStyles(mxConstants.STYLE_ROUNDED,"0"),d.setCellStyles(mxConstants.STYLE_CURVED, +"1"),b.fireEvent(new mxEventObject("styleChanged","keys",[mxConstants.STYLE_ROUNDED,mxConstants.STYLE_CURVED],"values",["0","1"],"cells",d.getSelectionCells()))}finally{d.getModel().endUpdate()}});this.addAction("collapsible",function(){var a=d.view.getState(d.getSelectionCell()),e="1";null!=a&&null!=d.getFoldingImage(a)&&(e="0");d.setCellStyles("collapsible",e);b.fireEvent(new mxEventObject("styleChanged","keys",["collapsible"],"values",[e],"cells",d.getSelectionCells()))});this.addAction("editStyle...", +mxUtils.bind(this,function(){var a=d.getSelectionCells();if(null!=a&&0<a.length){var b=d.getModel(),b=new TextareaDialog(this.editorUi,mxResources.get("editStyle")+":",b.getStyle(a[0])||"",function(c){null!=c&&d.setCellStyle(mxUtils.trim(c),a)},null,null,400,220);this.editorUi.showDialog(b.container,420,300,!0,!0);b.init()}}),null,null,Editor.ctrlKey+"+E");this.addAction("setAsDefaultStyle",function(){d.isEnabled()&&!d.isSelectionEmpty()&&b.setDefaultStyle(d.getSelectionCell())},null,null,Editor.ctrlKey+ +"+Shift+D");this.addAction("clearDefaultStyle",function(){d.isEnabled()&&b.clearDefaultStyle()},null,null,Editor.ctrlKey+"+Shift+R");this.addAction("addWaypoint",function(){var a=d.getSelectionCell();if(null!=a&&d.getModel().isEdge(a)){var b=e.graph.selectionCellsHandler.getHandler(a);if(b instanceof mxEdgeHandler){for(var c=d.view.translate,f=d.view.scale,g=c.x,c=c.y,a=d.getModel().getParent(a),n=d.getCellGeometry(a);d.getModel().isVertex(a)&&null!=n;)g+=n.x,c+=n.y,a=d.getModel().getParent(a),n= +d.getCellGeometry(a);g=Math.round(d.snap(d.popupMenuHandler.triggerX/f-g));f=Math.round(d.snap(d.popupMenuHandler.triggerY/f-c));b.addPointAt(b.state,g,f)}}});this.addAction("removeWaypoint",function(){var a=b.actions.get("removeWaypoint");null!=a.handler&&a.handler.removePoint(a.handler.state,a.index)});this.addAction("clearWaypoints",function(){var a=d.getSelectionCells();if(null!=a){a=d.addAllEdges(a);d.getModel().beginUpdate();try{for(var b=0;b<a.length;b++){var c=a[b];if(d.getModel().isEdge(c)){var f= +d.getCellGeometry(c);null!=f&&(f=f.clone(),f.points=null,d.getModel().setGeometry(c,f))}}}finally{d.getModel().endUpdate()}}},null,null,"Alt+Shift+C");l=this.addAction("subscript",mxUtils.bind(this,function(){d.cellEditor.isContentEditing()&&document.execCommand("subscript",!1,null)}),null,null,Editor.ctrlKey+"+,");l=this.addAction("superscript",mxUtils.bind(this,function(){d.cellEditor.isContentEditing()&&document.execCommand("superscript",!1,null)}),null,null,Editor.ctrlKey+"+.");this.addAction("image...", +function(){if(d.isEnabled()&&!d.isCellLocked(d.getDefaultParent())){var a=mxResources.get("image")+" ("+mxResources.get("url")+"):",e=d.getView().getState(d.getSelectionCell()),c="";null!=e&&(c=e.style[mxConstants.STYLE_IMAGE]||c);var f=d.cellEditor.saveSelection();b.showImageDialog(a,c,function(a,c,b){if(d.cellEditor.isContentEditing())d.cellEditor.restoreSelection(f),d.insertImage(a,c,b);else{var e=d.getSelectionCells();if(null!=a&&(0<a.length||0<e.length)){var g=null;d.getModel().beginUpdate(); +try{if(0==e.length){var n=d.getFreeInsertPoint(),g=e=[d.insertVertex(d.getDefaultParent(),null,"",n.x,n.y,c,b,"shape=image;imageAspect=0;aspect=fixed;verticalLabelPosition=bottom;verticalAlign=top;")];d.fireEvent(new mxEventObject("cellsInserted","cells",g))}d.setCellStyles(mxConstants.STYLE_IMAGE,0<a.length?a:null,e);var r=d.view.getState(e[0]),k=null!=r?r.style:d.getCellStyle(e[0]);"image"!=k[mxConstants.STYLE_SHAPE]&&"label"!=k[mxConstants.STYLE_SHAPE]?d.setCellStyles(mxConstants.STYLE_SHAPE,"image", +e):0==a.length&&d.setCellStyles(mxConstants.STYLE_SHAPE,null,e);if(1==d.getSelectionCount()&&null!=c&&null!=b){var y=e[0],t=d.getModel().getGeometry(y);null!=t&&(t=t.clone(),t.width=c,t.height=b,d.getModel().setGeometry(y,t))}}finally{d.getModel().endUpdate()}null!=g&&(d.setSelectionCells(g),d.scrollCellToVisible(g[0]))}}},d.cellEditor.isContentEditing(),!d.cellEditor.isContentEditing())}}).isEnabled=k;this.addAction("insertImage...",function(){d.isEnabled()&&!d.isCellLocked(d.getDefaultParent())&& +(d.clearSelection(),b.actions.get("image").funct())}).isEnabled=k;l=this.addAction("layers",mxUtils.bind(this,function(){null==this.layersWindow?(this.layersWindow=new LayersWindow(b,document.body.offsetWidth-280,120,220,180),this.layersWindow.window.addListener("show",function(){b.fireEvent(new mxEventObject("layers"))}),this.layersWindow.window.addListener("hide",function(){b.fireEvent(new mxEventObject("layers"))}),this.layersWindow.window.setVisible(!0),b.fireEvent(new mxEventObject("layers"))): +this.layersWindow.window.setVisible(!this.layersWindow.window.isVisible())}),null,null,Editor.ctrlKey+"+Shift+L");l.setToggleAction(!0);l.setSelectedCallback(mxUtils.bind(this,function(){return null!=this.layersWindow&&this.layersWindow.window.isVisible()}));l=this.addAction("formatPanel",mxUtils.bind(this,function(){b.toggleFormatPanel()}),null,null,Editor.ctrlKey+"+Shift+P");l.setToggleAction(!0);l.setSelectedCallback(mxUtils.bind(this,function(){return 0<b.formatWidth}));l=this.addAction("outline", +mxUtils.bind(this,function(){null==this.outlineWindow?(this.outlineWindow=new OutlineWindow(b,document.body.offsetWidth-260,100,180,180),this.outlineWindow.window.addListener("show",function(){b.fireEvent(new mxEventObject("outline"))}),this.outlineWindow.window.addListener("hide",function(){b.fireEvent(new mxEventObject("outline"))}),this.outlineWindow.window.setVisible(!0),b.fireEvent(new mxEventObject("outline"))):this.outlineWindow.window.setVisible(!this.outlineWindow.window.isVisible())}),null, +null,Editor.ctrlKey+"+Shift+O");l.setToggleAction(!0);l.setSelectedCallback(mxUtils.bind(this,function(){return null!=this.outlineWindow&&this.outlineWindow.window.isVisible()}))};Actions.prototype.addAction=function(a,b,e,d,k){var l;"..."==a.substring(a.length-3)?(a=a.substring(0,a.length-3),l=mxResources.get(a)+"..."):l=mxResources.get(a);return this.put(a,new Action(l,b,e,d,k))};Actions.prototype.put=function(a,b){return this.actions[a]=b};Actions.prototype.get=function(a){return this.actions[a]}; +function Action(a,b,e,d,k){mxEventSource.call(this);this.label=a;this.funct=this.createFunction(b);this.enabled=null!=e?e:!0;this.iconCls=d;this.shortcut=k;this.visible=!0}mxUtils.extend(Action,mxEventSource);Action.prototype.createFunction=function(a){return a};Action.prototype.setEnabled=function(a){this.enabled!=a&&(this.enabled=a,this.fireEvent(new mxEventObject("stateChanged")))};Action.prototype.isEnabled=function(){return this.enabled}; +Action.prototype.setToggleAction=function(a){this.toggleAction=a};Action.prototype.setSelectedCallback=function(a){this.selectedCallback=a};Action.prototype.isSelected=function(){return this.selectedCallback()};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,e,d){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,e){};DrawioFile.prototype.saveFile=function(a,b,e,d){};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,e){};DrawioFile.prototype.isMovable=function(){return!1}; +DrawioFile.prototype.move=function(a,b,e){};DrawioFile.prototype.getHash=function(){return""};DrawioFile.prototype.getId=function(){return""};DrawioFile.prototype.isEditable=function(){return!this.ui.editor.isChromelessView()||this.ui.editor.editable};DrawioFile.prototype.getUi=function(){return this.ui};DrawioFile.prototype.getTitle=function(){return""};DrawioFile.prototype.setData=function(a){this.data=a};DrawioFile.prototype.getData=function(){return this.data}; +DrawioFile.prototype.open=function(){var a=this.getData();null!=a&&this.ui.setFileData(a);this.changeListener=mxUtils.bind(this,function(a,e){var b=null!=e?e.getProperty("edit"):null;!this.changeListenerEnabled||!this.isEditable()||null!=b&&b.ignoreEdit||this.fileChanged()});this.ui.editor.graph.model.addListener(mxEvent.CHANGE,this.changeListener);this.ui.editor.graph.addListener("gridSizeChanged",this.changeListener);this.ui.editor.graph.addListener("shadowVisibleChanged",this.changeListener);this.ui.addListener("pageFormatChanged", +this.changeListener);this.ui.addListener("pageScaleChanged",this.changeListener);this.ui.addListener("backgroundColorChanged",this.changeListener);this.ui.addListener("backgroundImageChanged",this.changeListener);this.ui.addListener("foldingEnabledChanged",this.changeListener);this.ui.addListener("mathEnabledChanged",this.changeListener);this.ui.addListener("gridEnabledChanged",this.changeListener);this.ui.addListener("guidesEnabledChanged",this.changeListener);this.ui.addListener("pageViewChanged", +this.changeListener)}; +DrawioFile.prototype.addAllSavedStatus=function(){var a=this.ui.getCurrentFile();null==a||a.constructor!=DriveFile&&a.constructor!=DropboxFile?this.ui.editor.setStatus(mxUtils.htmlEntities(mxResources.get("allChangesSaved"))):(this.ui.editor.setStatus('<div title="'+mxUtils.htmlEntities(mxResources.get("revisionHistory"))+'" style="text-decoration:underline;cursor:pointer;">'+mxUtils.htmlEntities(mxResources.get("allChangesSaved"))+"</div>"),a=null!=this.ui.statusContainer?this.ui.statusContainer.getElementsByTagName("div"):null, +0<a.length&&mxEvent.addListener(a[0],"click",mxUtils.bind(this,function(){this.ui.actions.get("revisionHistory").funct()})))}; +DrawioFile.prototype.fileChanged=function(){this.setModified(!0);this.isAutosave()?(this.ui.editor.setStatus(mxUtils.htmlEntities(mxResources.get("saving"))+"..."),this.autosave(this.autosaveDelay,this.maxAutosaveDelay,mxUtils.bind(this,function(a){null!=this.autosaveThread||this.ui.getCurrentFile()!=this||this.isModified()||this.addAllSavedStatus()}),mxUtils.bind(this,function(a){this.ui.getCurrentFile()==this&&this.addUnsavedStatus(a)}))):this.addUnsavedStatus()}; +DrawioFile.prototype.addUnsavedStatus=function(a){a instanceof Error&&null!=a.message?this.ui.editor.setStatus('<div class="geStatusAlert" style="overflow:hidden;">'+mxUtils.htmlEntities(mxResources.get("unsavedChanges"))+" ("+mxUtils.htmlEntities(a.message)+")</div>"):(this.ui.editor.setStatus('<div class="geStatusAlert" style="cursor:pointer;overflow:hidden;">'+mxUtils.htmlEntities(mxResources.get("unsavedChangesClickHereToSave"))+"</div>"),a=null!=this.ui.statusContainer?this.ui.statusContainer.getElementsByTagName("div"): +null,null!=a&&0<a.length?mxEvent.addListener(a[0],"click",mxUtils.bind(this,function(){this.ui.actions.get(null==this.ui.mode?"saveAs":"save").funct()})):this.ui.editor.setStatus('<div class="geStatusAlert" style="overflow:hidden;">'+mxUtils.htmlEntities(mxResources.get("unsavedChanges"))+"</div>"))}; +DrawioFile.prototype.autosave=function(a,b,e,d){null==this.lastAutosave&&(this.lastAutosave=(new Date).getTime());a=(new Date).getTime()-this.lastAutosave<b?a:0;this.clearAutosave();var k=window.setTimeout(mxUtils.bind(this,function(){this.lastAutosave=null;this.autosaveThead==k&&(this.autosaveThread=null);if(this.isModified()&&this.isAutosaveNow()){var a=this.isAutosaveRevision();a&&(this.lastAutosaveRevision=(new Date).getTime());this.save(a,mxUtils.bind(this,function(a){this.autosaveCompleted(); +null!=e&&e(a)}),mxUtils.bind(this,function(a){null!=d&&d(a)}))}else this.isModified()||this.ui.editor.setStatus(""),null!=e&&e(null)}),a);this.autosaveThread=k};DrawioFile.prototype.isAutosaveNow=function(){return!0};DrawioFile.prototype.autosaveCompleted=function(){};DrawioFile.prototype.clearAutosave=function(){null!=this.autosaveThread&&(window.clearTimeout(this.autosaveThread),this.autosaveThread=null)}; +DrawioFile.prototype.isAutosaveRevision=function(){var a=(new Date).getTime();return null==this.lastAutosaveRevision||a-this.lastAutosaveRevision>this.maxAutosaveRevisionDelay};DrawioFile.prototype.close=function(a){this.isAutosave()&&this.isModified()&&this.save(this.isAutosaveRevision(),null,null,a);this.destroy()}; +DrawioFile.prototype.hasSameExtension=function(a,b){if(null!=a&&null!=b){var e=a.lastIndexOf("."),d=0<e?a.substring(e):"",e=b.lastIndexOf(".");return d===(0<e?b.substring(e):"")}return a==b};DrawioFile.prototype.destroy=function(){this.clearAutosave();null!=this.changeListener&&(this.ui.editor.graph.model.removeListener(this.changeListener),this.ui.editor.graph.removeListener(this.changeListener),this.ui.removeListener(this.changeListener),this.changeListener=null)};LocalFile=function(a,b,e,d){DrawioFile.call(this,a,b);this.title=e;this.mode=d?null:App.MODE_DEVICE};mxUtils.extend(LocalFile,DrawioFile);LocalFile.prototype.isAutosave=function(){return!1};LocalFile.prototype.getMode=function(){return this.mode};LocalFile.prototype.getTitle=function(){return this.title};LocalFile.prototype.isRenamable=function(){return!0};LocalFile.prototype.save=function(a,b,e){this.saveAs(this.title,b,e)};LocalFile.prototype.saveAs=function(a,b,e){this.saveFile(a,!1,b,e)}; +LocalFile.prototype.saveFile=function(a,b,e,d){this.title=a;this.updateFileData();b=this.getData();var k=this.ui.useCanvasForExport&&/(\.png)$/i.test(this.getTitle()),l=mxUtils.bind(this,function(b){if(this.ui.isOfflineApp()||this.ui.isLocalFileSave())this.ui.doSaveLocalFile(b,a,k?"image/png":"text/xml",k);else if(b.length<MAX_REQUEST_SIZE){var d=a.lastIndexOf("."),d=0<d?a.substring(d+1):"xml";(new mxXmlRequest(SAVE_URL,"format="+d+"&xml="+encodeURIComponent(b)+"&filename="+encodeURIComponent(a)+ +(k?"&binary=1":""))).simulate(document,"_blank")}else this.ui.handleError({message:mxResources.get("drawingTooLarge")},mxResources.get("error"),mxUtils.bind(this,function(){mxUtils.popup(b)}));this.setModified(!1);this.contentChanged();null!=e&&e()});k?this.ui.getEmbeddedPng(mxUtils.bind(this,function(a){l(a)}),d,this.ui.getCurrentFile()!=this?this.getData():null):l(b)};LocalFile.prototype.rename=function(a,b,e){this.title=a;this.descriptorChanged();null!=b&&b()}; +LocalFile.prototype.open=function(){this.ui.setFileData(this.getData());this.changeListener=mxUtils.bind(this,function(a,b){this.setModified(!0);this.addUnsavedStatus()});this.ui.editor.graph.model.addListener(mxEvent.CHANGE,this.changeListener)};(function(){Editor.prototype.appName="draw.io";Editor.closeImage=mxClient.IS_SVG?"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABkAAAAZCAMAAADzN3VRAAAApVBMVEUAAAD////k5OT///8AAAB1dXXMzMz9/f39/f37+/v5+fn+/v7///9iYmJaWlqFhYWnp6ejo6OHh4f////////////////7+/v5+fnx8fH///8AAAD///8bGxv7+/v5+fkoKCghISFDQ0MYGBjh4eHY2Njb29tQUFBvb29HR0c/Pz82NjYrKyu/v78SEhLu7u7s7OzV1dVVVVU7OzsVFRXAv78QEBBzqehMAAAAG3RSTlMAA/7p/vz5xZlrTiPL/v78+/v7+OXd2TYQDs8L70ZbAAABKUlEQVQoz3VS13LCMBBUXHChd8iukDslQChJ/v/TchaG4cXS+OSb1c7trU7V60OpdRz2ZtNZL4zXNlcN8BEtSG6+NxIXkeRPoBuQ1cjvZ31/VJFB10ISli6diYfH8iYO3WUNCcNlB0gTrXOtkxTo0O1aKKiBBMhhv2MNBQKoiA5wxlZo0JDzD3AYKbWacyj3fs01wxey0pyEP+R8pWKWXoqtIZ0DDg5pbki9krEKOa6LVDQsdoXEsi46Zqh69KFz7B1u7Hb2yDV8firXDKBlZ4UFiswKGRhXTS93/ECK7yxnJ3+S3y/ThpO+cfSD017nqa18aasabU0/t7d+tk0/1oMEJ1NaD67iwdF68OabFSLn+eHb0+vjy+uk8br9fdrftH0O2menfd7+AQfYM/lNjoDHAAAAAElFTkSuQmCC": IMAGE_PATH+"/delete.png";Editor.plusImage=mxClient.IS_SVG?"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBNYWNpbnRvc2giIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MDdCMTdENjVCOEM4MTFFNDlCRjVBNDdCODU5NjNBNUMiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MDdCMTdENjZCOEM4MTFFNDlCRjVBNDdCODU5NjNBNUMiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDowN0IxN0Q2M0I4QzgxMUU0OUJGNUE0N0I4NTk2M0E1QyIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDowN0IxN0Q2NEI4QzgxMUU0OUJGNUE0N0I4NTk2M0E1QyIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PtjrjmgAAAAtSURBVHjaYvz//z8DMigvLwcLdHZ2MiKLMzEQCaivkLGsrOw/dU0cAr4GCDAARQsQbTFrv10AAAAASUVORK5CYII=": IMAGE_PATH+"/plus.png";Editor.spinImage=mxClient.IS_SVG?"data:image/gif;base64,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": 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=": @@ -2667,8 +2670,9 @@ dispName:"Source Port Constraint",type:"enum",defVal:"none",enumList:[{val:"none type:"bool",defVal:!0},{name:"backgroundOutline",dispName:"Background Outline",type:"bool",defVal:!1},{name:"bendable",dispName:"Bendable",type:"bool",defVal:!0},{name:"movable",dispName:"Movable",type:"bool",defVal:!0},{name:"cloneable",dispName:"Cloneable",type:"bool",defVal:!0},{name:"deletable",dispName:"Deletable",type:"bool",defVal:!0},{name:"loopStyle",dispName:"Loop Style",type:"bool",defVal:!0}];Editor.commonVertexProperties=[{type:"separator"},{name:"fillOpacity",dispName:"Fill Opacity", type:"int",min:0,max:100,defVal:100},{name:"strokeOpacity",dispName:"Stroke Opacity",type:"int",min:0,max:100,defVal:100},{name:"overflow",dispName:"Text Overflow",defVal:"visible",type:"enum",enumList:[{val:"visible",dispName:"Visible"},{val:"hidden",dispName:"Hidden"},{val:"fill",dispName:"Fill"},{val:"width",dispName:"Width"}]},{name:"noLabel",dispName:"Hide Label",type:"bool",defVal:!1},{name:"labelPadding",dispName:"Label Padding",type:"float",defVal:0},{name:"direction",dispName:"Direction", type:"enum",defVal:"east",enumList:[{val:"east",dispName:"East"},{val:"north",dispName:"North"},{val:"south",dispName:"South"},{val:"west",dispName:"West"}]},{name:"portConstraint",dispName:"Port Constraint",type:"enum",defVal:"none",enumList:[{val:"none",dispName:"None"},{val:"east",dispName:"East"},{val:"north",dispName:"North"},{val:"south",dispName:"South"},{val:"west",dispName:"West"}]},{name:"portConstraintRotation",dispName:"Port Const. Rot.",type:"bool",defVal:!1},{name:"snapToPoint",dispName:"Snap to Point", -type:"bool",defVal:!1},{name:"fixDash",dispName:"Fixed Dash",type:"bool",defVal:!1},{name:"autosize",dispName:"Autosize",type:"bool",defVal:!1},{name:"collapsible",dispName:"Collapsible",type:"bool",defVal:!1},{name:"editable",dispName:"Editable",type:"bool",defVal:!0},{name:"backgroundOutline",dispName:"Background Outline",type:"bool",defVal:!1},{name:"movable",dispName:"Movable",type:"bool",defVal:!0},{name:"resizable",dispName:"Resizable",type:"bool",defVal:!0},{name:"resizeWidth",dispName:"Resize Width", -type:"bool",defVal:!1},{name:"resizeHeight",dispName:"Resize Height",type:"bool",defVal:!1},{name:"rotatable",dispName:"Rotatable",type:"bool",defVal:!0},{name:"cloneable",dispName:"Cloneable",type:"bool",defVal:!0},{name:"deletable",dispName:"Deletable",type:"bool",defVal:!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%<br><i style="color:gray;">%position%</i><br><a href="mailto:%email%">Email</a>\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## Parent style for nodes with child nodes (placeholders are replaced once).\n#\n# parentstyle: swimlane;whiteSpace=wrap;html=1;childLayout=stackLayout;horizontal=1;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;\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## Uses the given column name as the parent reference for cells. Default is no parent (empty or -).\n## The identity above is used for resolving the reference so it must be specified.\n#\n# parent: -\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 levels of hierarchical layouts. Default is 100.\n#\n# levelspacing: 100\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'; +type:"bool",defVal:!1},{name:"perimeter",dispName:"Perimeter",defVal:"none",type:"enum",enumList:[{val:"none",dispName:"None"},{val:"rectanglePerimeter",dispName:"Rectangle"},{val:"ellipsePerimeter",dispName:"Ellipse"},{val:"rhombusPerimeter",dispName:"Rhombus"},{val:"trianglePerimeter",dispName:"Triangle"},{val:"hexagonPerimeter2",dispName:"Hexagon"},{val:"lifelinePerimeter",dispName:"Lifeline"},{val:"orthogonalPerimeter",dispName:"Orthogonal"},{val:"backbonePerimeter",dispName:"Backbone"},{val:"calloutPerimeter", +dispName:"Callout"},{val:"parallelogramPerimeter",dispName:"Parallelogram"},{val:"trapezoidPerimeter",dispName:"Trapezoid"},{val:"stepPerimeter",dispName:"Step"}]},{name:"fixDash",dispName:"Fixed Dash",type:"bool",defVal:!1},{name:"autosize",dispName:"Autosize",type:"bool",defVal:!1},{name:"collapsible",dispName:"Collapsible",type:"bool",defVal:!1},{name:"editable",dispName:"Editable",type:"bool",defVal:!0},{name:"backgroundOutline",dispName:"Background Outline",type:"bool",defVal:!1},{name:"movable", +dispName:"Movable",type:"bool",defVal:!0},{name:"resizable",dispName:"Resizable",type:"bool",defVal:!0},{name:"resizeWidth",dispName:"Resize Width",type:"bool",defVal:!1},{name:"resizeHeight",dispName:"Resize Height",type:"bool",defVal:!1},{name:"rotatable",dispName:"Rotatable",type:"bool",defVal:!0},{name:"cloneable",dispName:"Cloneable",type:"bool",defVal:!0},{name:"deletable",dispName:"Deletable",type:"bool",defVal:!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%<br><i style="color:gray;">%position%</i><br><a href="mailto:%email%">Email</a>\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## Parent style for nodes with child nodes (placeholders are replaced once).\n#\n# parentstyle: swimlane;whiteSpace=wrap;html=1;childLayout=stackLayout;horizontal=1;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;\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## Uses the given column name as the parent reference for cells. Default is no parent (empty or -).\n## The identity above is used for resolving the reference so it must be specified.\n#\n# parent: -\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 levels of hierarchical layouts. Default is 100.\n#\n# levelspacing: 100\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.config=null;Editor.configVersion=null;Editor.configure=function(a,c){if(null!=a){Editor.config=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;null!=a.templateFile&&(EditorUi.templateFile=a.templateFile);a.customFonts&&(Menus.prototype.defaultFonts=a.customFonts.concat(Menus.prototype.defaultFonts));a.customPresetColors&&(ColorDialog.prototype.presetColors=a.customPresetColors.concat(ColorDialog.prototype.presetColors));null!=a.customColorSchemes&&(StyleFormatPanel.prototype.defaultColorSchemes=a.customColorSchemes.concat(StyleFormatPanel.prototype.defaultColorSchemes)); if(null!=a.css){var b=document.createElement("style");b.setAttribute("type","text/css");b.appendChild(document.createTextNode(a.css));var d=document.getElementsByTagName("script")[0];d.parentNode.insertBefore(b,d)}null!=a.libraries&&(Sidebar.prototype.customEntries=a.libraries);null!=a.enabledLibraries&&(Sidebar.prototype.enabledLibraries=a.enabledLibraries);null!=a.defaultLibraries&&(Sidebar.prototype.defaultEntries=a.defaultLibraries);null!=a.defaultCustomLibraries&&(Editor.defaultCustomLibraries= @@ -2677,17 +2681,17 @@ a.emptyLibraryXml);a.sidebarWidth&&(EditorUi.prototype.hsplitPosition=a.sidebarW Editor.guid=function(){return Editor.s4()+Editor.s4()+"-"+Editor.s4()+"-"+Editor.s4()+"-"+Editor.s4()+"-"+Editor.s4()+Editor.s4()+Editor.s4()};Editor.prototype.useForeignObjectForMath=!1;Editor.prototype.editButtonLink=null!=urlParams.edit?decodeURIComponent(urlParams.edit):null;var a=Editor.prototype.setGraphXml;Editor.prototype.setGraphXml=function(c){c=null!=c&&"mxlibrary"!=c.nodeName?this.extractGraphModel(c):null;if(null!=c){var b=c.getElementsByTagName("parsererror");if(null!=b&&0<b.length){var b= b[0],d=b.getElementsByTagName("div");null!=d&&0<d.length&&(b=d[0]);throw{message:mxUtils.getTextContent(b)};}if("mxGraphModel"==c.nodeName){b=c.getAttribute("style")||"default-style2";if("1"==urlParams.embed||null!=b&&""!=b)b!=this.graph.currentStyle&&(d=null!=this.graph.themes?this.graph.themes[b]:mxUtils.load(STYLE_PATH+"/"+b+".xml").getDocumentElement(),null!=d&&(f=new mxCodec(d.ownerDocument),f.decode(d,this.graph.getStylesheet())));else if(d=null!=this.graph.themes?this.graph.themes["default-old"]: mxUtils.load(STYLE_PATH+"/default-old.xml").getDocumentElement(),null!=d){var f=new mxCodec(d.ownerDocument);f.decode(d,this.graph.getStylesheet())}this.graph.currentStyle=b;this.graph.mathEnabled="1"==urlParams.math||"1"==c.getAttribute("math");b=c.getAttribute("backgroundImage");null!=b?(b=JSON.parse(b),this.graph.setBackgroundImage(new mxImage(b.src,b.width,b.height))):this.graph.setBackgroundImage(null);mxClient.NO_FO=this.graph.mathEnabled&&!this.useForeignObjectForMath?!0:this.originalNoForeignObject; -this.graph.useCssTransforms=!mxClient.NO_FO&&this.isChromelessView()&&this.graph.isCssTransformsSupported();this.graph.updateCssTransform();this.graph.setShadowVisible("1"==c.getAttribute("shadow"),!1)}a.apply(this,arguments)}else throw{message:mxResources.get("notADiagramFile")||"Invalid data",toString:function(){return this.message}};};var d=Editor.prototype.getGraphXml;Editor.prototype.getGraphXml=function(a){a=null!=a?a:!0;var c=d.apply(this,arguments);null!=this.graph.currentStyle&&"default-style2"!= +this.graph.useCssTransforms=!mxClient.NO_FO&&this.isChromelessView()&&this.graph.isCssTransformsSupported();this.graph.updateCssTransform();this.graph.setShadowVisible("1"==c.getAttribute("shadow"),!1)}a.apply(this,arguments)}else throw{message:mxResources.get("notADiagramFile")||"Invalid data",toString:function(){return this.message}};};var b=Editor.prototype.getGraphXml;Editor.prototype.getGraphXml=function(a){a=null!=a?a:!0;var c=b.apply(this,arguments);null!=this.graph.currentStyle&&"default-style2"!= this.graph.currentStyle&&c.setAttribute("style",this.graph.currentStyle);null!=this.graph.backgroundImage&&c.setAttribute("backgroundImage",JSON.stringify(this.graph.backgroundImage));c.setAttribute("math",this.graph.mathEnabled?"1":"0");c.setAttribute("shadow",this.graph.shadowVisible?"1":"0");return c};Editor.prototype.isDataSvg=function(a){try{var c=mxUtils.parseXml(a).documentElement.getAttribute("content");if(null!=c&&(null!=c&&"<"!=c.charAt(0)&&"%"!=c.charAt(0)&&(c=unescape(window.atob?atob(c): Base64.decode(cont,c))),null!=c&&"%"==c.charAt(0)&&(c=decodeURIComponent(c)),null!=c&&0<c.length)){var b=mxUtils.parseXml(c).documentElement;return"mxfile"==b.nodeName||"mxGraphModel"==b.nodeName}}catch(H){}return!1};Editor.prototype.extractGraphModel=function(a,c){if(null!=a&&"undefined"!==typeof pako){var b=a.ownerDocument.getElementsByTagName("div"),d=[];if(null!=b&&0<b.length)for(var f=0;f<b.length;f++)if("mxgraph"==b[f].getAttribute("class")){d.push(b[f]);break}0<d.length&&(b=d[0].getAttribute("data-mxgraph"), null!=b?(d=JSON.parse(b),null!=d&&null!=d.xml&&(d=mxUtils.parseXml(d.xml),a=d.documentElement)):(d=d[0].getElementsByTagName("div"),0<d.length&&(b=mxUtils.getTextContent(d[0]),b=this.graph.decompress(b),0<b.length&&(d=mxUtils.parseXml(b),a=d.documentElement))))}if(null!=a&&"svg"==a.nodeName)if(b=a.getAttribute("content"),null!=b&&"<"!=b.charAt(0)&&"%"!=b.charAt(0)&&(b=unescape(window.atob?atob(b):Base64.decode(cont,b))),null!=b&&"%"==b.charAt(0)&&(b=decodeURIComponent(b)),null!=b&&0<b.length)a=mxUtils.parseXml(b).documentElement; else throw{message:mxResources.get("notADiagramFile")};null==a||c||(d=null,"diagram"==a.nodeName?d=a:"mxfile"==a.nodeName&&(b=a.getElementsByTagName("diagram"),0<b.length&&(d=b[Math.max(0,Math.min(b.length-1,urlParams.page||0))])),null!=d&&(b=this.graph.decompress(mxUtils.getTextContent(d)),null!=b&&0<b.length&&(a=mxUtils.parseXml(b).documentElement)));null==a||"mxGraphModel"==a.nodeName||c&&"mxfile"==a.nodeName||(a=null);return a};var e=Editor.prototype.resetGraph;Editor.prototype.resetGraph=function(){this.graph.mathEnabled= -"1"==urlParams.math;this.graph.view.x0=null;this.graph.view.y0=null;mxClient.NO_FO=this.graph.mathEnabled&&!this.useForeignObjectForMath?!0:this.originalNoForeignObject;this.graph.useCssTransforms=!mxClient.NO_FO&&this.isChromelessView()&&this.graph.isCssTransformsSupported();this.graph.updateCssTransform();e.apply(this,arguments)};var b=Editor.prototype.updateGraphComponents;Editor.prototype.updateGraphComponents=function(){b.apply(this,arguments);mxClient.NO_FO=this.graph.mathEnabled&&!this.useForeignObjectForMath&& +"1"==urlParams.math;this.graph.view.x0=null;this.graph.view.y0=null;mxClient.NO_FO=this.graph.mathEnabled&&!this.useForeignObjectForMath?!0:this.originalNoForeignObject;this.graph.useCssTransforms=!mxClient.NO_FO&&this.isChromelessView()&&this.graph.isCssTransformsSupported();this.graph.updateCssTransform();e.apply(this,arguments)};var d=Editor.prototype.updateGraphComponents;Editor.prototype.updateGraphComponents=function(){d.apply(this,arguments);mxClient.NO_FO=this.graph.mathEnabled&&!this.useForeignObjectForMath&& null!=Editor.MathJaxRender?!0:this.originalNoForeignObject;this.graph.useCssTransforms=!mxClient.NO_FO&&this.isChromelessView()&&this.graph.isCssTransformsSupported();this.graph.updateCssTransform()};Editor.initMath=function(a,c){a=null!=a?a:"https://math.draw.io/current/MathJax.js?config=TeX-MML-AM_HTMLorMML";Editor.mathJaxQueue=[];Editor.doMathJaxRender=function(a){window.setTimeout(function(){"hidden"!=a.style.visibility&&MathJax.Hub.Queue(["Typeset",MathJax.Hub,a])},0)};window.MathJax={skipStartupTypeset:!0, showMathMenu:!1,messageStyle:"none",AuthorInit:function(){MathJax.Hub.Config(c||{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"]},tex2jax:{ignoreClass:"mxCellEditor"},asciimath2jax:{ignoreClass:"mxCellEditor"}});MathJax.Hub.Register.StartupHook("Begin",function(){for(var a=0;a<Editor.mathJaxQueue.length;a++)Editor.doMathJaxRender(Editor.mathJaxQueue[a])})}}; Editor.MathJaxRender=function(a){"undefined"!==typeof MathJax&&"undefined"!==typeof MathJax.Hub?Editor.doMathJaxRender(a):Editor.mathJaxQueue.push(a)};Editor.MathJaxClear=function(){Editor.mathJaxQueue=[]};var b=Editor.prototype.init;Editor.prototype.init=function(){b.apply(this,arguments);this.graph.addListener(mxEvent.SIZE,mxUtils.bind(this,function(a,c){null!=this.graph.container&&this.graph.mathEnabled&&Editor.MathJaxRender(this.graph.container)}))};var d=document.getElementsByTagName("script"); if(null!=d&&0<d.length){var f=document.createElement("script");f.type="text/javascript";f.src=a;d[0].parentNode.appendChild(f)}};Editor.prototype.csvToArray=function(a){if(!/^\s*(?:'[^'\\]*(?:\\[\S\s][^'\\]*)*'|"[^"\\]*(?:\\[\S\s][^"\\]*)*"|[^,'"\s\\]*(?:\s+[^,'"\s\\]+)*)\s*(?:,\s*(?:'[^'\\]*(?:\\[\S\s][^'\\]*)*'|"[^"\\]*(?:\\[\S\s][^"\\]*)*"|[^,'"\s\\]*(?:\s+[^,'"\s\\]+)*)\s*)*$/.test(a))return null;var c=[];a.replace(/(?!\s*$)\s*(?:'([^'\\]*(?:\\[\S\s][^'\\]*)*)'|"([^"\\]*(?:\\[\S\s][^"\\]*)*)"|([^,'"\s\\]*(?:\s+[^,'"\s\\]+)*))\s*(?:,|$)/g, -function(a,b,d,f){void 0!==b?c.push(b.replace(/\\'/g,"'")):void 0!==d?c.push(d.replace(/\\"/g,'"')):void 0!==f&&c.push(f);return""});/,\s*$/.test(a)&&c.push("");return c};if(window.ColorDialog){var h=ColorDialog.addRecentColor;ColorDialog.addRecentColor=function(a,c){h.apply(this,arguments);mxSettings.setRecentColors(ColorDialog.recentColors);mxSettings.save()};var m=ColorDialog.resetRecentColors;ColorDialog.resetRecentColors=function(){m.apply(this,arguments);mxSettings.setRecentColors(ColorDialog.recentColors); +function(a,b,d,f){void 0!==b?c.push(b.replace(/\\'/g,"'")):void 0!==d?c.push(d.replace(/\\"/g,'"')):void 0!==f&&c.push(f);return""});/,\s*$/.test(a)&&c.push("");return c};if(window.ColorDialog){var k=ColorDialog.addRecentColor;ColorDialog.addRecentColor=function(a,c){k.apply(this,arguments);mxSettings.setRecentColors(ColorDialog.recentColors);mxSettings.save()};var l=ColorDialog.resetRecentColors;ColorDialog.resetRecentColors=function(){l.apply(this,arguments);mxSettings.setRecentColors(ColorDialog.recentColors); mxSettings.save()}}window.EditDataDialog&&(EditDataDialog.getDisplayIdForCell=function(a,c){var b=null;null!=a.editor.graph.getModel().getParent(c)?b=c.getId():null!=a.currentPage&&(b=a.currentPage.getId());return b});if(null!=window.StyleFormatPanel){var p=Format.prototype.init;Format.prototype.init=function(){p.apply(this,arguments);this.editorUi.editor.addListener("fileLoaded",this.update)};var q=Format.prototype.refresh;Format.prototype.refresh=function(){null!=this.editorUi.getCurrentFile()|| "1"==urlParams.embed||this.editorUi.editor.chromeless?q.apply(this,arguments):this.clear()};DiagramFormatPanel.prototype.isShadowOptionVisible=function(){var a=this.editorUi.getCurrentFile();return"1"==urlParams.embed||null!=a&&a.isEditable()};DiagramFormatPanel.prototype.isMathOptionVisible=function(a){return!1};var u=DiagramFormatPanel.prototype.addView;DiagramFormatPanel.prototype.addView=function(a){a=u.apply(this,arguments);this.editorUi.getCurrentFile();if(mxClient.IS_SVG&&this.isShadowOptionVisible()){var c= this.editorUi,b=c.editor.graph,d=this.createOption(mxResources.get("shadow"),function(){return b.shadowVisible},function(a){var d=new ChangePageSetup(c);d.ignoreColor=!0;d.ignoreImage=!0;d.shadowVisible=a;b.model.execute(d)},{install:function(a){this.listener=function(){a(b.shadowVisible)};c.addListener("shadowVisibleChanged",this.listener)},destroy:function(){c.removeListener(this.listener)}});Editor.shadowOptionEnabled||(d.getElementsByTagName("input")[0].setAttribute("disabled","disabled"),mxUtils.setOpacity(d, @@ -2714,45 +2718,45 @@ stroke:"#008a00",font:"#ffffff"},{fill:"#1ba1e2",stroke:"#1ba1e2",font:"#ffffff" font:"#ffffff"},{fill:"#6d8764",stroke:"#6d8764",font:"#ffffff"},{fill:"#647687",stroke:"#647687",font:"#ffffff"},{fill:"#76608a",stroke:"#76608a",font:"#ffffff"},{fill:"#a0522d",stroke:"#a0522d",font:"#ffffff"}],[null,{fill:mxConstants.NONE,stroke:"#36393d"},{fill:"#fad7ac",stroke:"#b46504"},{fill:"#fad9d5",stroke:"#ae4132"},{fill:"#b0e3e6",stroke:"#0e8088"},{fill:"#b1ddf0",stroke:"#10739e"},{fill:"#d0cee2",stroke:"#56517e"},{fill:"#bac8d3",stroke:"#23445d"}],[null,{fill:"#f5f5f5",stroke:"#666666", gradient:"#b3b3b3"},{fill:"#dae8fc",stroke:"#6c8ebf",gradient:"#7ea6e0"},{fill:"#d5e8d4",stroke:"#82b366",gradient:"#97d077"},{fill:"#ffcd28",stroke:"#d79b00",gradient:"#ffa500"},{fill:"#fff2cc",stroke:"#d6b656",gradient:"#ffd966"},{fill:"#f8cecc",stroke:"#b85450",gradient:"#ea6b66"},{fill:"#e6d0de",stroke:"#996185",gradient:"#d5739d"}],[null,{fill:"#eeeeee",stroke:"#36393d"},{fill:"#f9f7ed",stroke:"#36393d"},{fill:"#ffcc99",stroke:"#36393d"},{fill:"#cce5ff",stroke:"#36393d"},{fill:"#ffff88",stroke:"#36393d"}, {fill:"#cdeb8b",stroke:"#36393d"},{fill:"#ffcccc",stroke:"#36393d"}]];StyleFormatPanel.prototype.customColorSchemes=null;StyleFormatPanel.prototype.findCommonProperties=function(a,c,b){if(null!=c){var d=function(a){if(null!=a)if(b)for(var d=0;d<a.length;d++)c[a[d].name]=a[d];else for(var f in c){for(var e=!1,d=0;d<a.length;d++)if(a[d].name==f&&a[d].type==c[f].type){e=!0;break}e||delete c[f]}},f=this.editorUi.editor.graph.view.getState(a);null!=f&&(f.shape.commonCustomPropAdded||(f.shape.commonCustomPropAdded= -!0,f.shape.customProperties=f.shape.customProperties||[],f.cell.vertex?Array.prototype.push.apply(f.shape.customProperties,Editor.commonVertexProperties):Array.prototype.push.apply(f.shape.customProperties,Editor.commonEdgeProperties)),d(f.shape.customProperties));a=a.getAttribute("customProperties");if(null!=a)try{d(JSON.parse(a))}catch(A){}}};var f=StyleFormatPanel.prototype.init;StyleFormatPanel.prototype.init=function(){var a=this.format.createSelectionState();"image"!=a.style.shape&&this.container.appendChild(this.addStyles(this.createPanel())); +!0,f.shape.customProperties=f.shape.customProperties||[],f.cell.vertex?Array.prototype.push.apply(f.shape.customProperties,Editor.commonVertexProperties):Array.prototype.push.apply(f.shape.customProperties,Editor.commonEdgeProperties)),d(f.shape.customProperties));a=a.getAttribute("customProperties");if(null!=a)try{d(JSON.parse(a))}catch(B){}}};var f=StyleFormatPanel.prototype.init;StyleFormatPanel.prototype.init=function(){var a=this.format.createSelectionState();"image"!=a.style.shape&&this.container.appendChild(this.addStyles(this.createPanel())); f.apply(this,arguments);if(Editor.enableCustomProperties){for(var c={},b=a.vertices,d=a.edges,e=0;e<b.length;e++)this.findCommonProperties(b[e],c,0==e);for(e=0;e<d.length;e++)this.findCommonProperties(d[e],c,0==b.length&&0==e);0<Object.getOwnPropertyNames(c).length&&this.container.appendChild(this.addProperties(this.createPanel(),c,a))}};var g=StyleFormatPanel.prototype.addStyleOps;StyleFormatPanel.prototype.addStyleOps=function(a){var c=mxUtils.button(mxResources.get("copyStyle"),mxUtils.bind(this, function(a){this.editorUi.actions.get("copyStyle").funct()}));c.setAttribute("title",mxResources.get("copyStyle")+" ("+this.editorUi.actions.get("copyStyle").shortcut+")");c.style.marginBottom="2px";c.style.width="100px";c.style.marginRight="2px";a.appendChild(c);c=mxUtils.button(mxResources.get("pasteStyle"),mxUtils.bind(this,function(a){this.editorUi.actions.get("pasteStyle").funct()}));c.setAttribute("title",mxResources.get("pasteStyle")+" ("+this.editorUi.actions.get("pasteStyle").shortcut+")"); -c.style.marginBottom="2px";c.style.width="100px";a.appendChild(c);mxUtils.br(a);return g.apply(this,arguments)};EditorUi.prototype.propertiesCollapsed=!0;StyleFormatPanel.prototype.addProperties=function(a,c,b){function d(a,c,b,d){t.getModel().beginUpdate();try{var f=[],e=[];if(null!=b.index){for(var g=[],k=b.parentRow.nextSibling;k&&k.getAttribute("data-pName")==a;)g.push(k.getAttribute("data-pValue")),k=k.nextSibling;b.index<g.length?null!=d?g.splice(d,1):g[b.index]=c:g.push(c);null!=b.size&&g.length> -b.size&&(g=g.slice(0,b.size));c=g.join(",");null!=b.countProperty&&(t.setCellStyles(b.countProperty,g.length,t.getSelectionCells()),f.push(b.countProperty),e.push(g.length))}t.setCellStyles(a,c,t.getSelectionCells());f.push(a);e.push(c);if(null!=b.dependentProps)for(a=0;a<b.dependentProps.length;a++){var l=b.dependentPropsDefVal[a],n=b.dependentPropsVals[a];if(n.length>c)n=n.slice(0,c);else for(var h=n.length;h<c;h++)n.push(l);n=n.join(",");t.setCellStyles(b.dependentProps[a],n,t.getSelectionCells()); -f.push(b.dependentProps[a]);e.push(n)}r.editorUi.fireEvent(new mxEventObject("styleChanged","keys",f,"values",e,"cells",t.getSelectionCells()))}finally{t.getModel().endUpdate()}}function f(c,b,d){var f=mxUtils.getOffset(a,!0),e=mxUtils.getOffset(c,!0);b.style.position="absolute";b.style.left=e.x-f.x+"px";b.style.top=e.y-f.y+"px";b.style.width=c.offsetWidth+"px";b.style.height=c.offsetHeight-(d?4:0)+"px";b.style.zIndex=5}function e(a,c,b){var f=document.createElement("div");f.style.width="32px";f.style.height= -"4px";f.style.margin="2px";f.style.border="1px solid black";f.style.background=c&&"none"!=c?c:"url('"+Dialog.prototype.noColorImage+"')";btn=mxUtils.button("",mxUtils.bind(r,function(e){this.editorUi.pickColor(c,function(c){f.style.background="none"==c?"url('"+Dialog.prototype.noColorImage+"')":c;d(a,c,b)});mxEvent.consume(e)}));btn.style.height="12px";btn.style.width="40px";btn.className="geColorBtn";btn.appendChild(f);return btn}function g(a,c,b,f,e,g,k){null!=c&&(c=c.split(","),h.push({name:a, -values:c,type:b,defVal:f,countProperty:e,parentRow:g,isDeletable:!0,flipBkg:k}));btn=mxUtils.button("+",mxUtils.bind(r,function(c){for(var l=g,r=0;null!=l.nextSibling;)if(l.nextSibling.getAttribute("data-pName")==a)l=l.nextSibling,r++;else break;var t={type:b,parentRow:g,index:r,isDeletable:!0,defVal:f,countProperty:e},r=n(a,"",t,0==r%2,k);d(a,f,t);l.parentNode.insertBefore(r,l.nextSibling);mxEvent.consume(c)}));btn.style.height="16px";btn.style.width="25px";btn.className="geColorBtn";return btn} -function k(a,c,b,d,f,e,g){if(0<f){var k=Array(f);c=null!=c?c.split(","):[];for(var l=0;l<f;l++)k[l]=null!=c[l]?c[l]:null!=d?d:"";h.push({name:a,values:k,type:b,defVal:d,parentRow:e,flipBkg:g,size:f})}return document.createElement("div")}function l(a,c,b){var f=document.createElement("input");f.type="checkbox";f.checked="1"==c;mxEvent.addListener(f,"change",function(){d(a,f.checked?"1":"0",b)});return f}function n(c,b,n,t,h){var v=n.dispName,w=n.type,y=document.createElement("tr");y.className="gePropRow"+ -(h?"Dark":"")+(t?"Alt":"")+" gePropNonHeaderRow";y.setAttribute("data-pName",c);y.setAttribute("data-pValue",b);t=!1;null!=n.index&&(y.setAttribute("data-index",n.index),v=(null!=v?v:"")+"["+n.index+"]",t=!0);var x=document.createElement("td");x.className="gePropRowCell";x.innerHTML=mxUtils.htmlEntities(mxResources.get(v,null,v));t&&(x.style.textAlign="right");y.appendChild(x);x=document.createElement("td");x.className="gePropRowCell";if("color"==w)x.appendChild(e(c,b,n));else if("bool"==w||"boolean"== -w)x.appendChild(l(c,b,n));else if("enum"==w){var m=n.enumList;for(h=0;h<m.length;h++)if(v=m[h],v.val==b){x.innerHTML=mxUtils.htmlEntities(mxResources.get(v.dispName,null,v.dispName));break}mxEvent.addListener(x,"click",mxUtils.bind(r,function(){var e=document.createElement("select");f(x,e);for(var g=0;g<m.length;g++){var k=m[g],l=document.createElement("option");l.value=mxUtils.htmlEntities(k.val);l.innerHTML=mxUtils.htmlEntities(mxResources.get(k.dispName,null,k.dispName));e.appendChild(l)}e.value= -b;a.appendChild(e);mxEvent.addListener(e,"change",function(){var a=mxUtils.htmlEntities(e.value);d(c,a,n)});e.focus();mxEvent.addListener(e,"blur",function(){a.removeChild(e)})}))}else"dynamicArr"==w?x.appendChild(g(c,b,n.subType,n.subDefVal,n.countProperty,y,h)):"staticArr"==w?x.appendChild(k(c,b,n.subType,n.subDefVal,n.size,y,h)):(x.innerHTML=b,mxEvent.addListener(x,"click",mxUtils.bind(r,function(){function e(){var a=g.value;null!=n.min&&a<n.min?a=n.min:null!=n.max&&a>n.max&&(a=n.max);a=mxUtils.htmlEntities(("int"== -w?parseInt(a):a)+"");d(c,a,n)}var g=document.createElement("input");f(x,g,!0);g.value=b;g.className="gePropEditor";if("int"==w||"float"==w)g.type="number",g.step="int"==w?"1":"any",null!=n.min&&(g.min=parseFloat(n.min)),null!=n.max&&(g.max=parseFloat(n.max));a.appendChild(g);mxEvent.addListener(g,"change",e);mxEvent.addListener(g,"keypress",function(a){13==a.keyCode&&e()});g.focus();mxEvent.addListener(g,"blur",function(){a.removeChild(g)})})));n.isDeletable&&(h=mxUtils.button("-",mxUtils.bind(r, -function(a){d(c,"",n,n.index);mxEvent.consume(a)})),h.style.height="16px",h.style.width="25px",h.style["float"]="right",h.className="geColorBtn",x.appendChild(h));y.appendChild(x);return y}var r=this,t=this.editorUi.editor.graph,h=[];a.style.position="relative";a.style.padding="0";var v=document.createElement("table");v.style.whiteSpace="nowrap";v.style.width="100%";var w=document.createElement("tr");w.className="gePropHeader";var y=document.createElement("th");y.className="gePropHeaderCell";var m= -document.createElement("img");m.src=Sidebar.prototype.expandedImage;y.appendChild(m);mxUtils.write(y,mxResources.get("property",null,"Property"));w.style.cursor="pointer";var p=function(){var c=v.querySelectorAll(".gePropNonHeaderRow"),b;if(r.editorUi.propertiesCollapsed){m.src=Sidebar.prototype.collapsedImage;b="none";for(var d=a.childNodes.length-1;0<=d;d--)try{var f=a.childNodes[d],e=f.nodeName.toUpperCase();"INPUT"!=e&&"SELECT"!=e||a.removeChild(f)}catch(aa){}}else m.src=Sidebar.prototype.expandedImage, -b="";for(d=0;d<c.length;d++)c[d].style.display=b};mxEvent.addListener(w,"click",function(){r.editorUi.propertiesCollapsed=!r.editorUi.propertiesCollapsed;p()});w.appendChild(y);y=document.createElement("th");y.className="gePropHeaderCell";y.innerHTML=mxResources.get("value",null,"Value");w.appendChild(y);v.appendChild(w);var B=!1,z=!1,q;for(q in c){var w=c[q],u=null!=b.style[q]?mxUtils.htmlEntities(b.style[q]+""):w.defVal;if("separator"==w.type)z=!z;else{if("staticArr"==w.type)w.size=parseInt(b.style[w.sizeProperty]|| -c[w.sizeProperty].defVal)||0;else if(null!=w.dependentProps){for(var S=w.dependentProps,M=[],N=[],y=0;y<S.length;y++){var T=b.style[S[y]];N.push(c[S[y]].subDefVal);M.push(null!=T?T.split(","):[])}w.dependentPropsDefVal=N;w.dependentPropsVals=M}v.appendChild(n(q,u,w,B,z));B=!B}}for(y=0;y<h.length;y++)for(w=h[y],c=w.parentRow,b=0;b<w.values.length;b++)q=n(w.name,w.values[b],{type:w.type,parentRow:w.parentRow,isDeletable:w.isDeletable,index:b,defVal:w.defVal,countProperty:w.countProperty,size:w.size}, -0==b%2,w.flipBkg),c.parentNode.insertBefore(q,c.nextSibling),c=q;a.appendChild(v);p();return a};StyleFormatPanel.prototype.addStyles=function(a){function c(a){function c(a){var c=mxUtils.button("",function(c){d.getModel().beginUpdate();try{var b=d.getSelectionCells();for(c=0;c<b.length;c++){for(var f=d.getModel().getStyle(b[c]),g=0;g<e.length;g++)f=mxUtils.removeStylename(f,e[g]);var k=d.getModel().isVertex(b[c])?d.defaultVertexStyle:d.defaultEdgeStyle;null!=a?(f=mxUtils.setStyle(f,mxConstants.STYLE_FILLCOLOR, -a.fill||mxUtils.getValue(k,mxConstants.STYLE_FILLCOLOR,null)),f=mxUtils.setStyle(f,mxConstants.STYLE_STROKECOLOR,a.stroke||mxUtils.getValue(k,mxConstants.STYLE_STROKECOLOR,null)),f=mxUtils.setStyle(f,mxConstants.STYLE_GRADIENTCOLOR,a.gradient||mxUtils.getValue(k,mxConstants.STYLE_GRADIENTCOLOR,null)),d.getModel().isVertex(b[c])&&(f=mxUtils.setStyle(f,mxConstants.STYLE_FONTCOLOR,a.font||mxUtils.getValue(k,mxConstants.STYLE_FONTCOLOR,null)))):(f=mxUtils.setStyle(f,mxConstants.STYLE_FILLCOLOR,mxUtils.getValue(k, -mxConstants.STYLE_FILLCOLOR,"#ffffff")),f=mxUtils.setStyle(f,mxConstants.STYLE_STROKECOLOR,mxUtils.getValue(k,mxConstants.STYLE_STROKECOLOR,"#000000")),f=mxUtils.setStyle(f,mxConstants.STYLE_GRADIENTCOLOR,mxUtils.getValue(k,mxConstants.STYLE_GRADIENTCOLOR,null)),d.getModel().isVertex(b[c])&&(f=mxUtils.setStyle(f,mxConstants.STYLE_FONTCOLOR,mxUtils.getValue(k,mxConstants.STYLE_FONTCOLOR,null))));d.getModel().setStyle(b[c],f)}}finally{d.getModel().endUpdate()}});c.className="geStyleButton";c.style.width= -"36px";c.style.height="30px";c.style.margin="0px 6px 6px 0px";if(null!=a)null!=a.gradient?mxClient.IS_IE&&(mxClient.IS_QUIRKS||10>document.documentMode)?c.style.filter="progid:DXImageTransform.Microsoft.Gradient(StartColorStr='"+a.fill+"', EndColorStr='"+a.gradient+"', GradientType=0)":c.style.backgroundImage="linear-gradient("+a.fill+" 0px,"+a.gradient+" 100%)":a.fill==mxConstants.NONE?c.style.background="url('"+Dialog.prototype.noColorImage+"')":c.style.backgroundColor=a.fill||mxUtils.getValue(d.defaultVertexStyle, -mxConstants.STYLE_FILLCOLOR,"#ffffff"),c.style.border="1px solid "+(a.stroke||mxUtils.getValue(d.defaultVertexStyle,mxConstants.STYLE_STROKECOLOR,"#000000"));else{var b=mxUtils.getValue(d.defaultVertexStyle,mxConstants.STYLE_FILLCOLOR,"#ffffff"),g=mxUtils.getValue(d.defaultVertexStyle,mxConstants.STYLE_STROKECOLOR,"#000000");c.style.backgroundColor=b;c.style.border="1px solid "+g}f.appendChild(c)}f.innerHTML="";for(var b=0;b<a.length;b++)0<b&&0==mxUtils.mod(b,4)&&mxUtils.br(f),c(a[b])}function b(a){mxEvent.addListener(a, -"mouseenter",function(){a.style.opacity="1"});mxEvent.addListener(a,"mouseleave",function(){a.style.opacity="0.5"})}var d=this.editorUi.editor.graph,f=document.createElement("div");f.style.whiteSpace="nowrap";f.style.paddingLeft="24px";f.style.paddingRight="20px";a.style.paddingLeft="16px";a.style.paddingBottom="6px";a.style.position="relative";a.appendChild(f);var e="plain-gray plain-blue plain-green plain-turquoise plain-orange plain-yellow plain-red plain-pink plain-purple gray blue green turquoise orange yellow red pink purple".split(" "); -null==this.editorUi.currentScheme&&(this.editorUi.currentScheme=0);var g=document.createElement("div");g.style.cssText="position:absolute;left:10px;top:8px;bottom:8px;width:20px;margin:4px;opacity:0.5;background-repeat:no-repeat;background-position:center center;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAQBAMAAADQT4M0AAAAIVBMVEUAAAB2dnZ4eHh3d3d1dXVxcXF2dnZ2dnZ2dnZxcXF2dnYmb3w1AAAACnRSTlMAfCTkhhvb7cQSPH2JPgAAADRJREFUCNdjwACMAmBKaiGYs2oJmLPKAZ3DabU8AMRTXpUKopislqFyVzCAuUZgikkBZjoAcMYLnp53P/UAAAAASUVORK5CYII=);"; -mxEvent.addListener(g,"click",mxUtils.bind(this,function(){this.editorUi.currentScheme=mxUtils.mod(this.editorUi.currentScheme-1,this.defaultColorSchemes.length);c(this.defaultColorSchemes[this.editorUi.currentScheme])}));var k=document.createElement("div");k.style.cssText="position:absolute;left:202px;top:8px;bottom:8px;width:20px;margin:4px;opacity:0.5;background-repeat:no-repeat;background-position:center center;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAQBAMAAADQT4M0AAAAIVBMVEUAAAB2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnYBuwCcAAAACnRSTlMAfCTkhhvb7cQSPH2JPgAAADZJREFUCNdjQAOMAmBKaiGY8loF5rKswsZlrVo8AUiFrTICcbIWK8A5DF1gDoMymMPApIAwHwCS0Qx/U7qCBQAAAABJRU5ErkJggg==);"; -1<this.defaultColorSchemes.length&&(a.appendChild(g),a.appendChild(k));mxEvent.addListener(k,"click",mxUtils.bind(this,function(){this.editorUi.currentScheme=mxUtils.mod(this.editorUi.currentScheme+1,this.defaultColorSchemes.length);c(this.defaultColorSchemes[this.editorUi.currentScheme])}));b(g);b(k);c(this.defaultColorSchemes[this.editorUi.currentScheme]);return a};StyleFormatPanel.prototype.addEditOps=function(a){var c=this.format.getSelectionState(),b=null;1==this.editorUi.editor.graph.getSelectionCount()&& +c.style.marginBottom="2px";c.style.width="100px";a.appendChild(c);mxUtils.br(a);return g.apply(this,arguments)};EditorUi.prototype.propertiesCollapsed=!0;StyleFormatPanel.prototype.addProperties=function(a,c,b){function d(a,c,b,d){t.getModel().beginUpdate();try{var f=[],e=[];if(null!=b.index){for(var g=[],h=b.parentRow.nextSibling;h&&h.getAttribute("data-pName")==a;)g.push(h.getAttribute("data-pValue")),h=h.nextSibling;b.index<g.length?null!=d?g.splice(d,1):g[b.index]=c:g.push(c);null!=b.size&&g.length> +b.size&&(g=g.slice(0,b.size));c=g.join(",");null!=b.countProperty&&(t.setCellStyles(b.countProperty,g.length,t.getSelectionCells()),f.push(b.countProperty),e.push(g.length))}t.setCellStyles(a,c,t.getSelectionCells());f.push(a);e.push(c);if(null!=b.dependentProps)for(a=0;a<b.dependentProps.length;a++){var n=b.dependentPropsDefVal[a],m=b.dependentPropsVals[a];if(m.length>c)m=m.slice(0,c);else for(var k=m.length;k<c;k++)m.push(n);m=m.join(",");t.setCellStyles(b.dependentProps[a],m,t.getSelectionCells()); +f.push(b.dependentProps[a]);e.push(m)}r.editorUi.fireEvent(new mxEventObject("styleChanged","keys",f,"values",e,"cells",t.getSelectionCells()))}finally{t.getModel().endUpdate()}}function f(c,b,d){var f=mxUtils.getOffset(a,!0),e=mxUtils.getOffset(c,!0);b.style.position="absolute";b.style.left=e.x-f.x+"px";b.style.top=e.y-f.y+"px";b.style.width=c.offsetWidth+"px";b.style.height=c.offsetHeight-(d?4:0)+"px";b.style.zIndex=5}function e(a,c,b){var f=document.createElement("div");f.style.width="32px";f.style.height= +"4px";f.style.margin="2px";f.style.border="1px solid black";f.style.background=c&&"none"!=c?c:"url('"+Dialog.prototype.noColorImage+"')";btn=mxUtils.button("",mxUtils.bind(r,function(e){this.editorUi.pickColor(c,function(c){f.style.background="none"==c?"url('"+Dialog.prototype.noColorImage+"')":c;d(a,c,b)});mxEvent.consume(e)}));btn.style.height="12px";btn.style.width="40px";btn.className="geColorBtn";btn.appendChild(f);return btn}function g(a,c,b,f,e,g,h){null!=c&&(c=c.split(","),k.push({name:a, +values:c,type:b,defVal:f,countProperty:e,parentRow:g,isDeletable:!0,flipBkg:h}));btn=mxUtils.button("+",mxUtils.bind(r,function(c){for(var n=g,r=0;null!=n.nextSibling;)if(n.nextSibling.getAttribute("data-pName")==a)n=n.nextSibling,r++;else break;var t={type:b,parentRow:g,index:r,isDeletable:!0,defVal:f,countProperty:e},r=m(a,"",t,0==r%2,h);d(a,f,t);n.parentNode.insertBefore(r,n.nextSibling);mxEvent.consume(c)}));btn.style.height="16px";btn.style.width="25px";btn.className="geColorBtn";return btn} +function h(a,c,b,d,f,e,g){if(0<f){var h=Array(f);c=null!=c?c.split(","):[];for(var n=0;n<f;n++)h[n]=null!=c[n]?c[n]:null!=d?d:"";k.push({name:a,values:h,type:b,defVal:d,parentRow:e,flipBkg:g,size:f})}return document.createElement("div")}function n(a,c,b){var f=document.createElement("input");f.type="checkbox";f.checked="1"==c;mxEvent.addListener(f,"change",function(){d(a,f.checked?"1":"0",b)});return f}function m(c,b,m,t,k){var v=m.dispName,w=m.type,y=document.createElement("tr");y.className="gePropRow"+ +(k?"Dark":"")+(t?"Alt":"")+" gePropNonHeaderRow";y.setAttribute("data-pName",c);y.setAttribute("data-pValue",b);t=!1;null!=m.index&&(y.setAttribute("data-index",m.index),v=(null!=v?v:"")+"["+m.index+"]",t=!0);var x=document.createElement("td");x.className="gePropRowCell";x.innerHTML=mxUtils.htmlEntities(mxResources.get(v,null,v));t&&(x.style.textAlign="right");y.appendChild(x);x=document.createElement("td");x.className="gePropRowCell";if("color"==w)x.appendChild(e(c,b,m));else if("bool"==w||"boolean"== +w)x.appendChild(n(c,b,m));else if("enum"==w){var l=m.enumList;for(k=0;k<l.length;k++)if(v=l[k],v.val==b){x.innerHTML=mxUtils.htmlEntities(mxResources.get(v.dispName,null,v.dispName));break}mxEvent.addListener(x,"click",mxUtils.bind(r,function(){var e=document.createElement("select");f(x,e);for(var g=0;g<l.length;g++){var h=l[g],n=document.createElement("option");n.value=mxUtils.htmlEntities(h.val);n.innerHTML=mxUtils.htmlEntities(mxResources.get(h.dispName,null,h.dispName));e.appendChild(n)}e.value= +b;a.appendChild(e);mxEvent.addListener(e,"change",function(){var a=mxUtils.htmlEntities(e.value);d(c,a,m)});e.focus();mxEvent.addListener(e,"blur",function(){a.removeChild(e)})}))}else"dynamicArr"==w?x.appendChild(g(c,b,m.subType,m.subDefVal,m.countProperty,y,k)):"staticArr"==w?x.appendChild(h(c,b,m.subType,m.subDefVal,m.size,y,k)):(x.innerHTML=b,mxEvent.addListener(x,"click",mxUtils.bind(r,function(){function e(){var a=g.value,a=0==a.length&&"string"!=w?0:a;m.allowAuto&&("auto"==a.trim().toLowerCase()? +(a="auto",w="string"):(a=parseFloat(a),a=isNaN(a)?0:a));null!=m.min&&a<m.min?a=m.min:null!=m.max&&a>m.max&&(a=m.max);a=mxUtils.htmlEntities(("int"==w?parseInt(a):a)+"");d(c,a,m)}var g=document.createElement("input");f(x,g,!0);g.value=b;g.className="gePropEditor";"int"!=w&&"float"!=w||m.allowAuto||(g.type="number",g.step="int"==w?"1":"any",null!=m.min&&(g.min=parseFloat(m.min)),null!=m.max&&(g.max=parseFloat(m.max)));a.appendChild(g);mxEvent.addListener(g,"change",e);mxEvent.addListener(g,"keypress", +function(a){13==a.keyCode&&e()});g.focus();mxEvent.addListener(g,"blur",function(){a.removeChild(g)})})));m.isDeletable&&(k=mxUtils.button("-",mxUtils.bind(r,function(a){d(c,"",m,m.index);mxEvent.consume(a)})),k.style.height="16px",k.style.width="25px",k.style["float"]="right",k.className="geColorBtn",x.appendChild(k));y.appendChild(x);return y}var r=this,t=this.editorUi.editor.graph,k=[];a.style.position="relative";a.style.padding="0";var v=document.createElement("table");v.style.whiteSpace="nowrap"; +v.style.width="100%";var w=document.createElement("tr");w.className="gePropHeader";var y=document.createElement("th");y.className="gePropHeaderCell";var l=document.createElement("img");l.src=Sidebar.prototype.expandedImage;y.appendChild(l);mxUtils.write(y,mxResources.get("property",null,"Property"));w.style.cursor="pointer";var p=function(){var c=v.querySelectorAll(".gePropNonHeaderRow"),b;if(r.editorUi.propertiesCollapsed){l.src=Sidebar.prototype.collapsedImage;b="none";for(var d=a.childNodes.length- +1;0<=d;d--)try{var f=a.childNodes[d],e=f.nodeName.toUpperCase();"INPUT"!=e&&"SELECT"!=e||a.removeChild(f)}catch(aa){}}else l.src=Sidebar.prototype.expandedImage,b="";for(d=0;d<c.length;d++)c[d].style.display=b};mxEvent.addListener(w,"click",function(){r.editorUi.propertiesCollapsed=!r.editorUi.propertiesCollapsed;p()});w.appendChild(y);y=document.createElement("th");y.className="gePropHeaderCell";y.innerHTML=mxResources.get("value",null,"Value");w.appendChild(y);v.appendChild(w);var A=!1,z=!1,q;for(q in c){var w= +c[q],u=null!=b.style[q]?mxUtils.htmlEntities(b.style[q]+""):w.defVal;if("separator"==w.type)z=!z;else{if("staticArr"==w.type)w.size=parseInt(b.style[w.sizeProperty]||c[w.sizeProperty].defVal)||0;else if(null!=w.dependentProps){for(var S=w.dependentProps,M=[],N=[],y=0;y<S.length;y++){var T=b.style[S[y]];N.push(c[S[y]].subDefVal);M.push(null!=T?T.split(","):[])}w.dependentPropsDefVal=N;w.dependentPropsVals=M}v.appendChild(m(q,u,w,A,z));A=!A}}for(y=0;y<k.length;y++)for(w=k[y],c=w.parentRow,b=0;b<w.values.length;b++)q= +m(w.name,w.values[b],{type:w.type,parentRow:w.parentRow,isDeletable:w.isDeletable,index:b,defVal:w.defVal,countProperty:w.countProperty,size:w.size},0==b%2,w.flipBkg),c.parentNode.insertBefore(q,c.nextSibling),c=q;a.appendChild(v);p();return a};StyleFormatPanel.prototype.addStyles=function(a){function c(a){function c(a){var c=mxUtils.button("",function(c){d.getModel().beginUpdate();try{var b=d.getSelectionCells();for(c=0;c<b.length;c++){for(var f=d.getModel().getStyle(b[c]),g=0;g<e.length;g++)f=mxUtils.removeStylename(f, +e[g]);var h=d.getModel().isVertex(b[c])?d.defaultVertexStyle:d.defaultEdgeStyle;null!=a?(f=mxUtils.setStyle(f,mxConstants.STYLE_FILLCOLOR,a.fill||mxUtils.getValue(h,mxConstants.STYLE_FILLCOLOR,null)),f=mxUtils.setStyle(f,mxConstants.STYLE_STROKECOLOR,a.stroke||mxUtils.getValue(h,mxConstants.STYLE_STROKECOLOR,null)),f=mxUtils.setStyle(f,mxConstants.STYLE_GRADIENTCOLOR,a.gradient||mxUtils.getValue(h,mxConstants.STYLE_GRADIENTCOLOR,null)),d.getModel().isVertex(b[c])&&(f=mxUtils.setStyle(f,mxConstants.STYLE_FONTCOLOR, +a.font||mxUtils.getValue(h,mxConstants.STYLE_FONTCOLOR,null)))):(f=mxUtils.setStyle(f,mxConstants.STYLE_FILLCOLOR,mxUtils.getValue(h,mxConstants.STYLE_FILLCOLOR,"#ffffff")),f=mxUtils.setStyle(f,mxConstants.STYLE_STROKECOLOR,mxUtils.getValue(h,mxConstants.STYLE_STROKECOLOR,"#000000")),f=mxUtils.setStyle(f,mxConstants.STYLE_GRADIENTCOLOR,mxUtils.getValue(h,mxConstants.STYLE_GRADIENTCOLOR,null)),d.getModel().isVertex(b[c])&&(f=mxUtils.setStyle(f,mxConstants.STYLE_FONTCOLOR,mxUtils.getValue(h,mxConstants.STYLE_FONTCOLOR, +null))));d.getModel().setStyle(b[c],f)}}finally{d.getModel().endUpdate()}});c.className="geStyleButton";c.style.width="36px";c.style.height="30px";c.style.margin="0px 6px 6px 0px";if(null!=a)null!=a.gradient?mxClient.IS_IE&&(mxClient.IS_QUIRKS||10>document.documentMode)?c.style.filter="progid:DXImageTransform.Microsoft.Gradient(StartColorStr='"+a.fill+"', EndColorStr='"+a.gradient+"', GradientType=0)":c.style.backgroundImage="linear-gradient("+a.fill+" 0px,"+a.gradient+" 100%)":a.fill==mxConstants.NONE? +c.style.background="url('"+Dialog.prototype.noColorImage+"')":c.style.backgroundColor=a.fill||mxUtils.getValue(d.defaultVertexStyle,mxConstants.STYLE_FILLCOLOR,"#ffffff"),c.style.border="1px solid "+(a.stroke||mxUtils.getValue(d.defaultVertexStyle,mxConstants.STYLE_STROKECOLOR,"#000000"));else{var b=mxUtils.getValue(d.defaultVertexStyle,mxConstants.STYLE_FILLCOLOR,"#ffffff"),g=mxUtils.getValue(d.defaultVertexStyle,mxConstants.STYLE_STROKECOLOR,"#000000");c.style.backgroundColor=b;c.style.border="1px solid "+ +g}f.appendChild(c)}f.innerHTML="";for(var b=0;b<a.length;b++)0<b&&0==mxUtils.mod(b,4)&&mxUtils.br(f),c(a[b])}function b(a){mxEvent.addListener(a,"mouseenter",function(){a.style.opacity="1"});mxEvent.addListener(a,"mouseleave",function(){a.style.opacity="0.5"})}var d=this.editorUi.editor.graph,f=document.createElement("div");f.style.whiteSpace="nowrap";f.style.paddingLeft="24px";f.style.paddingRight="20px";a.style.paddingLeft="16px";a.style.paddingBottom="6px";a.style.position="relative";a.appendChild(f); +var e="plain-gray plain-blue plain-green plain-turquoise plain-orange plain-yellow plain-red plain-pink plain-purple gray blue green turquoise orange yellow red pink purple".split(" ");null==this.editorUi.currentScheme&&(this.editorUi.currentScheme=0);var g=document.createElement("div");g.style.cssText="position:absolute;left:10px;top:8px;bottom:8px;width:20px;margin:4px;opacity:0.5;background-repeat:no-repeat;background-position:center center;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAQBAMAAADQT4M0AAAAIVBMVEUAAAB2dnZ4eHh3d3d1dXVxcXF2dnZ2dnZ2dnZxcXF2dnYmb3w1AAAACnRSTlMAfCTkhhvb7cQSPH2JPgAAADRJREFUCNdjwACMAmBKaiGYs2oJmLPKAZ3DabU8AMRTXpUKopislqFyVzCAuUZgikkBZjoAcMYLnp53P/UAAAAASUVORK5CYII=);"; +mxEvent.addListener(g,"click",mxUtils.bind(this,function(){this.editorUi.currentScheme=mxUtils.mod(this.editorUi.currentScheme-1,this.defaultColorSchemes.length);c(this.defaultColorSchemes[this.editorUi.currentScheme])}));var h=document.createElement("div");h.style.cssText="position:absolute;left:202px;top:8px;bottom:8px;width:20px;margin:4px;opacity:0.5;background-repeat:no-repeat;background-position:center center;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAQBAMAAADQT4M0AAAAIVBMVEUAAAB2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnYBuwCcAAAACnRSTlMAfCTkhhvb7cQSPH2JPgAAADZJREFUCNdjQAOMAmBKaiGY8loF5rKswsZlrVo8AUiFrTICcbIWK8A5DF1gDoMymMPApIAwHwCS0Qx/U7qCBQAAAABJRU5ErkJggg==);"; +1<this.defaultColorSchemes.length&&(a.appendChild(g),a.appendChild(h));mxEvent.addListener(h,"click",mxUtils.bind(this,function(){this.editorUi.currentScheme=mxUtils.mod(this.editorUi.currentScheme+1,this.defaultColorSchemes.length);c(this.defaultColorSchemes[this.editorUi.currentScheme])}));b(g);b(h);c(this.defaultColorSchemes[this.editorUi.currentScheme]);return a};StyleFormatPanel.prototype.addEditOps=function(a){var c=this.format.getSelectionState(),b=null;1==this.editorUi.editor.graph.getSelectionCount()&& (b=mxUtils.button(mxResources.get("editStyle"),mxUtils.bind(this,function(a){this.editorUi.actions.get("editStyle").funct()})),b.setAttribute("title",mxResources.get("editStyle")+" ("+this.editorUi.actions.get("editStyle").shortcut+")"),b.style.width="202px",b.style.marginBottom="2px",a.appendChild(b));var d=this.editorUi.editor.graph,f=d.view.getState(d.getSelectionCell());1==d.getSelectionCount()&&null!=f&&null!=f.shape&&null!=f.shape.stencil?(c=mxUtils.button(mxResources.get("editShape"),mxUtils.bind(this, function(a){this.editorUi.actions.get("editShape").funct()})),c.setAttribute("title",mxResources.get("editShape")),c.style.marginBottom="2px",null==b?c.style.width="202px":(b.style.width="100px",c.style.width="100px",c.style.marginLeft="2px"),a.appendChild(c)):c.image&&(c=mxUtils.button(mxResources.get("editImage"),mxUtils.bind(this,function(a){this.editorUi.actions.get("image").funct()})),c.setAttribute("title",mxResources.get("editImage")),c.style.marginBottom="2px",null==b?c.style.width="202px": (b.style.width="100px",c.style.width="100px",c.style.marginLeft="2px"),a.appendChild(c));return a}}Graph.prototype.defaultThemeName="default-style2";Graph.prototype.lastPasteXml=null;Graph.prototype.pasteCounter=0;Graph.prototype.defaultScrollbars="0"!=urlParams.sb;Graph.prototype.defaultPageVisible="0"!=urlParams.pv;Graph.prototype.shadowId="dropShadow";Graph.prototype.svgShadowColor="#3D4574";Graph.prototype.svgShadowOpacity="0.4";Graph.prototype.svgShadowBlur="1.7";Graph.prototype.svgShadowSize= -"3";Graph.prototype.edgeMode="move"!=urlParams.edge;var k=Graph.prototype.init;Graph.prototype.init=function(){function a(a){c=a;if(mxClient.IS_QUIRKS||7==document.documentMode||8==document.documentMode)c=mxUtils.clone(a)}k.apply(this,arguments);var c=null;mxEvent.addListener(this.container,"mouseenter",a);mxEvent.addListener(this.container,"mousemove",a);mxEvent.addListener(this.container,"mouseleave",function(a){c=null});this.isMouseInsertPoint=function(){return null!=c};var b=this.getInsertPoint; +"3";Graph.prototype.edgeMode="move"!=urlParams.edge;var n=Graph.prototype.init;Graph.prototype.init=function(){function a(a){c=a;if(mxClient.IS_QUIRKS||7==document.documentMode||8==document.documentMode)c=mxUtils.clone(a)}n.apply(this,arguments);var c=null;mxEvent.addListener(this.container,"mouseenter",a);mxEvent.addListener(this.container,"mousemove",a);mxEvent.addListener(this.container,"mouseleave",function(a){c=null});this.isMouseInsertPoint=function(){return null!=c};var b=this.getInsertPoint; this.getInsertPoint=function(){return null!=c?this.getPointForEvent(c):b.apply(this,arguments)};var d=this.layoutManager.getLayout;this.layoutManager.getLayout=function(a){var c=this.graph.view.getState(a),c=null!=c?c.style:this.graph.getCellStyle(a);if("undefined"!=typeof mxRackContainer&&"rack"==c.childLayout){var b=new mxStackLayout(this.graph,!1);b.setChildGeometry=function(a,c){c.height=Math.max(c.height,20);if(1<c.height/20){var b=c.height%20;c.height+=10<b?20-b:-b}this.graph.getModel().setGeometry(a, -c)};b.fill=!0;b.unitSize=mxRackContainer.unitSize|20;b.marginLeft=c.marginLeft||0;b.marginRight=c.marginRight||0;b.marginTop=c.marginTop||0;b.marginBottom=c.marginBottom||0;b.resizeParent=!1;return b}return d.apply(this,arguments)}};var r=Graph.prototype.isCssTransformsSupported;Graph.prototype.isCssTransformsSupported=function(){return r.apply(this,arguments)&&!mxClient.IS_SF};var l=Graph.prototype.getGlobalVariable;Graph.prototype.getGlobalVariable=function(a){var c=l.apply(this,arguments);if(null== -c){if(null==this.globalUrlVars&&null!=urlParams.vars)try{this.globalUrlVars=JSON.parse(decodeURIComponent(urlParams.vars))}catch(z){null!=window.console&&console.log("Error in vars URL parameter: "+z)}null!=this.globalUrlVars&&(c=this.globalUrlVars[a])}return c};var n=mxGraphView.prototype.validateBackgroundPage;mxGraphView.prototype.validateBackgroundPage=function(){n.apply(this,arguments);if(mxClient.IS_GC&&null!=this.getDrawPane()){var a=this.getDrawPane().parentNode;!this.graph.mathEnabled||mxClient.NO_FO|| +c)};b.fill=!0;b.unitSize=mxRackContainer.unitSize|20;b.marginLeft=c.marginLeft||0;b.marginRight=c.marginRight||0;b.marginTop=c.marginTop||0;b.marginBottom=c.marginBottom||0;b.resizeParent=!1;return b}return d.apply(this,arguments)}};var r=Graph.prototype.isCssTransformsSupported;Graph.prototype.isCssTransformsSupported=function(){return r.apply(this,arguments)&&!mxClient.IS_SF};var h=Graph.prototype.getGlobalVariable;Graph.prototype.getGlobalVariable=function(a){var c=h.apply(this,arguments);if(null== +c){if(null==this.globalUrlVars&&null!=urlParams.vars)try{this.globalUrlVars=JSON.parse(decodeURIComponent(urlParams.vars))}catch(z){null!=window.console&&console.log("Error in vars URL parameter: "+z)}null!=this.globalUrlVars&&(c=this.globalUrlVars[a])}return c};var m=mxGraphView.prototype.validateBackgroundPage;mxGraphView.prototype.validateBackgroundPage=function(){m.apply(this,arguments);if(mxClient.IS_GC&&null!=this.getDrawPane()){var a=this.getDrawPane().parentNode;!this.graph.mathEnabled||mxClient.NO_FO|| null!=this.webKitForceRepaintNode&&null!=this.webKitForceRepaintNode.parentNode||"svg"!=this.graph.container.firstChild.nodeName?null==this.webKitForceRepaintNode||this.graph.mathEnabled&&("svg"==this.graph.container.firstChild.nodeName||this.graph.container.firstChild==this.webKitForceRepaintNode)||(null!=this.webKitForceRepaintNode.parentNode&&this.webKitForceRepaintNode.parentNode.removeChild(this.webKitForceRepaintNode),this.webKitForceRepaintNode=null):(this.webKitForceRepaintNode=document.createElement("div"), this.webKitForceRepaintNode.style.cssText="position:absolute;",a.ownerSVGElement.parentNode.insertBefore(this.webKitForceRepaintNode,a.ownerSVGElement))}};var w=Graph.prototype.loadStylesheet;Graph.prototype.loadStylesheet=function(){w.apply(this,arguments);this.currentStyle="default-style2"};Graph.prototype.handleCustomLink=function(a){if("data:action/json,"==a.substring(0,17)&&(a=JSON.parse(a.substring(17)),null!=a.actions)){for(var c=0;c<a.actions.length;c++)if(null!=a.actions[c].open)if(this.isCustomLink(a.actions[c].open)){if(!this.customLinkClicked(a.actions[c].open))return}else this.openLink(a.actions[c].open); this.model.beginUpdate();try{for(c=0;c<a.actions.length;c++)this.handleLinkAction(a.actions[c])}finally{this.model.endUpdate()}}};Graph.prototype.handleLinkAction=function(a){var c=[];null!=a.select&&this.isEnabled()&&(c=this.getCellsForAction(a.select),this.setSelectionCells(c));null!=a.highlight&&(c=this.getCellsForAction(a.highlight),this.highlightCells(c,a.highlight.color,a.highlight.duration,a.highlight.opacity));null!=a.toggle&&this.toggleCells(this.getCellsForAction(a.toggle));null!=a.show&& this.setCellsVisible(this.getCellsForAction(a.show),!0);null!=a.hide&&this.setCellsVisible(this.getCellsForAction(a.hide),!1);null!=a.scroll&&(c=this.getCellsForAction(a.scroll));0<c.length&&this.scrollCellToVisible(c[0])};Graph.prototype.getCellsForAction=function(a){return this.getCellsById(a.cells).concat(this.getCellsForTags(a.tags))};Graph.prototype.getCellsById=function(a){var c=[];if(null!=a)for(var b=0;b<a.length;b++)if("*"==a[b])var d=this.getDefaultParent(),c=c.concat(this.model.filterDescendants(function(a){return a!= -d},d));else{var f=this.model.getCell(a[b]);null!=f&&c.push(f)}return c};Graph.prototype.getCellsForTags=function(a,c,b){var d=[];if(null!=a){c=null!=c?c:this.model.getDescendants(this.model.getRoot());b=null!=b?b:"tags";for(var f=0;f<c.length;f++)if(this.model.isVertex(c[f])||this.model.isEdge(c[f])){var e=null!=c[f].value&&"object"==typeof c[f].value?mxUtils.trim(c[f].value.getAttribute(b)||""):"",g=!0;if(0<e.length)for(var e=e.toLowerCase().split(" "),k=0;k<a.length&&g;k++)var l=mxUtils.trim(a[k]).toLowerCase(), -g=g&&(0==l.length||0<=mxUtils.indexOf(e,l));else g=0==a.length;g&&d.push(c[f])}}return d};Graph.prototype.toggleCells=function(a){this.model.beginUpdate();try{for(var c=0;c<a.length;c++)this.model.setVisible(a[c],!this.model.isVisible(a[c]))}finally{this.model.endUpdate()}};Graph.prototype.setCellsVisible=function(a,c){this.model.beginUpdate();try{for(var b=0;b<a.length;b++)this.model.setVisible(a[b],c)}finally{this.model.endUpdate()}};Graph.prototype.highlightCells=function(a,c,b,d){for(var f=0;f< +d},d));else{var f=this.model.getCell(a[b]);null!=f&&c.push(f)}return c};Graph.prototype.getCellsForTags=function(a,c,b){var d=[];if(null!=a){c=null!=c?c:this.model.getDescendants(this.model.getRoot());b=null!=b?b:"tags";for(var f=0;f<c.length;f++)if(this.model.isVertex(c[f])||this.model.isEdge(c[f])){var e=null!=c[f].value&&"object"==typeof c[f].value?mxUtils.trim(c[f].value.getAttribute(b)||""):"",g=!0;if(0<e.length)for(var e=e.toLowerCase().split(" "),h=0;h<a.length&&g;h++)var n=mxUtils.trim(a[h]).toLowerCase(), +g=g&&(0==n.length||0<=mxUtils.indexOf(e,n));else g=0==a.length;g&&d.push(c[f])}}return d};Graph.prototype.toggleCells=function(a){this.model.beginUpdate();try{for(var c=0;c<a.length;c++)this.model.setVisible(a[c],!this.model.isVisible(a[c]))}finally{this.model.endUpdate()}};Graph.prototype.setCellsVisible=function(a,c){this.model.beginUpdate();try{for(var b=0;b<a.length;b++)this.model.setVisible(a[b],c)}finally{this.model.endUpdate()}};Graph.prototype.highlightCells=function(a,c,b,d){for(var f=0;f< a.length;f++)this.highlightCell(a[f],c,b,d)};Graph.prototype.highlightCell=function(a,c,b,d){c=null!=c?c:mxConstants.DEFAULT_VALID_COLOR;b=null!=b?b:1E3;a=this.view.getState(a);if(null!=a){var f=Math.max(5,mxUtils.getValue(a.style,mxConstants.STYLE_STROKEWIDTH,1)+4),e=new mxCellHighlight(this,c,f,!1);null!=d&&(e.opacity=d);e.highlight(a);window.setTimeout(function(){null!=e.shape&&(mxUtils.setPrefixedStyle(e.shape.node.style,"transition","all 1200ms ease-in-out"),e.shape.node.style.opacity=0);window.setTimeout(function(){e.destroy()}, 1200)},b)}};Graph.prototype.addSvgShadow=function(a,c,b){b=null!=b?b:!1;var d=a.ownerDocument,f=null!=d.createElementNS?d.createElementNS(mxConstants.NS_SVG,"filter"):d.createElement("filter");f.setAttribute("id",this.shadowId);var e=null!=d.createElementNS?d.createElementNS(mxConstants.NS_SVG,"feGaussianBlur"):d.createElement("feGaussianBlur");e.setAttribute("in","SourceAlpha");e.setAttribute("stdDeviation",this.svgShadowBlur);e.setAttribute("result","blur");f.appendChild(e);e=null!=d.createElementNS? d.createElementNS(mxConstants.NS_SVG,"feOffset"):d.createElement("feOffset");e.setAttribute("in","blur");e.setAttribute("dx",this.svgShadowSize);e.setAttribute("dy",this.svgShadowSize);e.setAttribute("result","offsetBlur");f.appendChild(e);e=null!=d.createElementNS?d.createElementNS(mxConstants.NS_SVG,"feFlood"):d.createElement("feFlood");e.setAttribute("flood-color",this.svgShadowColor);e.setAttribute("flood-opacity",this.svgShadowOpacity);e.setAttribute("result","offsetColor");f.appendChild(e); @@ -2766,244 +2770,245 @@ mxStencilRegistry.libraries.mockup=[SHAPES_PATH+"/mockup/mxMockupButtons.js"];mx [SHAPES_PATH+"/mockup/mxMockupNavigation.js",STENCIL_PATH+"/mockup/misc.xml"];mxStencilRegistry.libraries["mockup/text"]=[SHAPES_PATH+"/mockup/mxMockupText.js"];mxStencilRegistry.libraries.floorplan=[SHAPES_PATH+"/mxFloorplan.js",STENCIL_PATH+"/floorplan.xml"];mxStencilRegistry.libraries.bootstrap=[SHAPES_PATH+"/mxBootstrap.js",STENCIL_PATH+"/bootstrap.xml"];mxStencilRegistry.libraries.gmdl=[SHAPES_PATH+"/mxGmdl.js",STENCIL_PATH+"/gmdl.xml"];mxStencilRegistry.libraries.gcp2=[SHAPES_PATH+"/mxGCP2.js", STENCIL_PATH+"/gcp2.xml"];mxStencilRegistry.libraries.cabinets=[SHAPES_PATH+"/mxCabinets.js",STENCIL_PATH+"/cabinets.xml"];mxStencilRegistry.libraries.archimate=[SHAPES_PATH+"/mxArchiMate.js"];mxStencilRegistry.libraries.archimate3=[SHAPES_PATH+"/mxArchiMate3.js"];mxStencilRegistry.libraries.sysml=[SHAPES_PATH+"/mxSysML.js"];mxStencilRegistry.libraries.eip=[SHAPES_PATH+"/mxEip.js",STENCIL_PATH+"/eip.xml"];mxStencilRegistry.libraries.networks=[SHAPES_PATH+"/mxNetworks.js",STENCIL_PATH+"/networks.xml"]; mxStencilRegistry.libraries.aws3d=[SHAPES_PATH+"/mxAWS3D.js",STENCIL_PATH+"/aws3d.xml"];mxStencilRegistry.libraries.veeam=[STENCIL_PATH+"/veeam/2d.xml",STENCIL_PATH+"/veeam/3d.xml",STENCIL_PATH+"/veeam/veeam.xml"];mxStencilRegistry.libraries.pid2inst=[SHAPES_PATH+"/pid2/mxPidInstruments.js"];mxStencilRegistry.libraries.pid2misc=[SHAPES_PATH+"/pid2/mxPidMisc.js",STENCIL_PATH+"/pid/misc.xml"];mxStencilRegistry.libraries.pid2valves=[SHAPES_PATH+"/pid2/mxPidValves.js"];mxStencilRegistry.libraries.pidFlowSensors= -[STENCIL_PATH+"/pid/flow_sensors.xml"];mxMarker.getPackageForType=function(a){var c=null;null!=a&&0<a.length&&("ER"==a.substring(0,2)?c="mxgraph.er":"sysML"==a.substring(0,5)&&(c="mxgraph.sysml"));return c};var v=mxMarker.createMarker;mxMarker.createMarker=function(a,c,b,d,f,e,g,k,l,n){if(null!=b&&null==mxMarker.markers[b]){var r=this.getPackageForType(b);null!=r&&mxStencilRegistry.getStencil(r)}return v.apply(this,arguments)};PrintDialog.prototype.create=function(a,c){function b(){t.value=Math.max(1, -Math.min(k,Math.max(parseInt(t.value),parseInt(v.value))));v.value=Math.max(1,Math.min(k,Math.min(parseInt(t.value),parseInt(v.value))))}function d(c){function b(c,b,f){var e=c.getGraphBounds(),g=0,k=0,l=ga.get(),n=1/c.pageScale,r=y.checked;if(r)var n=parseInt(Q.value),h=parseInt(V.value),n=Math.min(l.height*h/(e.height/c.view.scale),l.width*n/(e.width/c.view.scale));else n=parseInt(p.value)/(100*c.pageScale),isNaN(n)&&(d=1/c.pageScale,p.value="100 %");l=mxRectangle.fromRectangle(l);l.width=Math.ceil(l.width* -d);l.height=Math.ceil(l.height*d);n*=d;!r&&c.pageVisible?(e=c.getPageLayout(),g-=e.x*l.width,k-=e.y*l.height):r=!0;if(null==b){b=PrintDialog.createPrintPreview(c,n,l,0,g,k,r);b.pageSelector=!1;b.mathEnabled=!1;c=a.getCurrentFile();null!=c&&(b.title=c.getTitle());var w=b.writeHead;b.writeHead=function(c){w.apply(this,arguments);null!=a.editor.fontCss&&(c.writeln('<style type="text/css">'),c.writeln(a.editor.fontCss),c.writeln("</style>"))};if("undefined"!==typeof MathJax){var v=b.renderPage;b.renderPage= -function(a,c,b,d,f,e){var g=mxClient.NO_FO;mxClient.NO_FO=this.graph.mathEnabled&&!this.useForeignObjectForMath?!0:this.originalNoForeignObject;var k=v.apply(this,arguments);mxClient.NO_FO=g;this.graph.mathEnabled?this.mathEnabled=this.mathEnabled||!0:k.className="geDisableMathJax";return k}}b.open(null,null,f,!0)}else{l=c.background;if(null==l||""==l||l==mxConstants.NONE)l="#ffffff";b.backgroundColor=l;b.autoOrigin=r;b.appendGraph(c,n,g,k,f,!0)}return b}var d=parseInt(W.value)/100;isNaN(d)&&(d=1, -W.value="100 %");var d=.75*d,e=v.value,g=t.value,k=!r.checked,n=null;k&&(k=e==l&&g==l);if(!k&&null!=a.pages&&a.pages.length){var h=0,k=a.pages.length-1;r.checked||(h=parseInt(e)-1,k=parseInt(g)-1);for(var w=h;w<=k;w++){var m=a.pages[w],e=m==a.currentPage?f:null;if(null==e){var e=a.createTemporaryGraph(f.getStylesheet()),g=!0,h=!1,x=null,B=null;null==m.viewState&&null==m.mapping&&null==m.root&&a.updatePageRoot(m);null!=m.viewState?(g=m.viewState.pageVisible,h=m.viewState.mathEnabled,x=m.viewState.background, -B=m.viewState.backgroundImage):null!=m.mapping&&null!=m.mapping.diagramMap&&(h="0"!=m.mapping.diagramMap.get("mathEnabled"),x=m.mapping.diagramMap.get("background"),B=m.mapping.diagramMap.get("backgroundImage"),B=null!=B&&0<B.length?JSON.parse(B):null);e.background=x;e.backgroundImage=null!=B?new mxImage(B.src,B.width,B.height):null;e.pageVisible=g;e.mathEnabled=h;var q=e.getGlobalVariable;e.getGlobalVariable=function(a){return"page"==a?m.getName():"pagenumber"==a?w+1:q.apply(this,arguments)};document.body.appendChild(e.container); -a.updatePageRoot(m);e.model.setRoot(m.root)}n=b(e,n,w!=k);e!=f&&e.container.parentNode.removeChild(e.container)}}else n=b(f);n.mathEnabled&&(k=n.wnd.document,k.writeln('<script type="text/x-mathjax-config">'),k.writeln("MathJax.Hub.Config({"),k.writeln("showMathMenu: false,"),k.writeln('messageStyle: "none",'),k.writeln('jax: ["input/TeX", "input/MathML", "input/AsciiMath", "output/HTML-CSS"],'),k.writeln('extensions: ["tex2jax.js", "mml2jax.js", "asciimath2jax.js"],'),k.writeln('"HTML-CSS": {'), -k.writeln("imageFont: null"),k.writeln("},"),k.writeln("TeX: {"),k.writeln('extensions: ["AMSmath.js", "AMSsymbols.js", "noErrors.js", "noUndefined.js"]'),k.writeln("},"),k.writeln("tex2jax: {"),k.writeln('\tignoreClass: "geDisableMathJax"'),k.writeln("},"),k.writeln("asciimath2jax: {"),k.writeln('\tignoreClass: "geDisableMathJax"'),k.writeln("}"),k.writeln("});"),c&&(k.writeln("MathJax.Hub.Queue(function () {"),k.writeln("window.print();"),k.writeln("});")),k.writeln("\x3c/script>"),k.writeln('<script type="text/javascript" src="https://math.draw.io/current/MathJax.js">\x3c/script>')); -n.closeDocument();!n.mathEnabled&&c&&PrintDialog.printPreview(n)}var f=a.editor.graph,e=document.createElement("div"),g=document.createElement("h3");g.style.width="100%";g.style.textAlign="center";g.style.marginTop="0px";mxUtils.write(g,c||mxResources.get("print"));e.appendChild(g);var k=1,l=1,n=document.createElement("div");n.style.cssText="border-bottom:1px solid lightGray;padding-bottom:12px;margin-bottom:12px;";var r=document.createElement("input");r.style.cssText="margin-right:8px;margin-bottom:8px;"; -r.setAttribute("value","all");r.setAttribute("type","radio");r.setAttribute("name","pages-printdialog");n.appendChild(r);g=document.createElement("span");mxUtils.write(g,mxResources.get("printAllPages"));n.appendChild(g);mxUtils.br(n);var h=r.cloneNode(!0);r.setAttribute("checked","checked");h.setAttribute("value","range");n.appendChild(h);g=document.createElement("span");mxUtils.write(g,mxResources.get("pages")+":");n.appendChild(g);var v=document.createElement("input");v.style.cssText="margin:0 8px 0 8px;"; -v.setAttribute("value","1");v.setAttribute("type","number");v.setAttribute("min","1");v.style.width="50px";n.appendChild(v);g=document.createElement("span");mxUtils.write(g,mxResources.get("to"));n.appendChild(g);var t=v.cloneNode(!0);n.appendChild(t);mxEvent.addListener(v,"focus",function(){h.checked=!0});mxEvent.addListener(t,"focus",function(){h.checked=!0});mxEvent.addListener(v,"change",b);mxEvent.addListener(t,"change",b);if(null!=a.pages&&(k=a.pages.length,null!=a.currentPage))for(g=0;g<a.pages.length;g++)if(a.currentPage== -a.pages[g]){l=g+1;v.value=l;t.value=l;break}v.setAttribute("max",k);t.setAttribute("max",k);1<k&&e.appendChild(n);var w=document.createElement("div");w.style.marginBottom="10px";var m=document.createElement("input");m.style.marginRight="8px";m.setAttribute("value","adjust");m.setAttribute("type","radio");m.setAttribute("name","printZoom");w.appendChild(m);g=document.createElement("span");mxUtils.write(g,mxResources.get("adjustTo"));w.appendChild(g);var p=document.createElement("input");p.style.cssText= -"margin:0 8px 0 8px;";p.setAttribute("value","100 %");p.style.width="50px";w.appendChild(p);mxEvent.addListener(p,"focus",function(){m.checked=!0});e.appendChild(w);var n=n.cloneNode(!1),y=m.cloneNode(!0);y.setAttribute("value","fit");m.setAttribute("checked","checked");g=document.createElement("div");g.style.cssText="display:inline-block;height:100%;vertical-align:top;padding-top:2px;";g.appendChild(y);n.appendChild(g);w=document.createElement("table");w.style.display="inline-block";var B=document.createElement("tbody"), +[STENCIL_PATH+"/pid/flow_sensors.xml"];mxMarker.getPackageForType=function(a){var c=null;null!=a&&0<a.length&&("ER"==a.substring(0,2)?c="mxgraph.er":"sysML"==a.substring(0,5)&&(c="mxgraph.sysml"));return c};var v=mxMarker.createMarker;mxMarker.createMarker=function(a,c,b,d,f,e,g,h,n,m){if(null!=b&&null==mxMarker.markers[b]){var r=this.getPackageForType(b);null!=r&&mxStencilRegistry.getStencil(r)}return v.apply(this,arguments)};PrintDialog.prototype.create=function(a,c){function b(){w.value=Math.max(1, +Math.min(h,Math.max(parseInt(w.value),parseInt(v.value))));v.value=Math.max(1,Math.min(h,Math.min(parseInt(w.value),parseInt(v.value))))}function d(c){function b(c,b,f){var e=c.getGraphBounds(),g=0,h=0,n=ga.get(),m=1/c.pageScale,r=y.checked;if(r)var m=parseInt(Q.value),k=parseInt(V.value),m=Math.min(n.height*k/(e.height/c.view.scale),n.width*m/(e.width/c.view.scale));else m=parseInt(p.value)/(100*c.pageScale),isNaN(m)&&(d=1/c.pageScale,p.value="100 %");n=mxRectangle.fromRectangle(n);n.width=Math.ceil(n.width* +d);n.height=Math.ceil(n.height*d);m*=d;!r&&c.pageVisible?(e=c.getPageLayout(),g-=e.x*n.width,h-=e.y*n.height):r=!0;if(null==b){b=PrintDialog.createPrintPreview(c,m,n,0,g,h,r);b.pageSelector=!1;b.mathEnabled=!1;c=a.getCurrentFile();null!=c&&(b.title=c.getTitle());var t=b.writeHead;b.writeHead=function(c){t.apply(this,arguments);null!=a.editor.fontCss&&(c.writeln('<style type="text/css">'),c.writeln(a.editor.fontCss),c.writeln("</style>"))};if("undefined"!==typeof MathJax){var v=b.renderPage;b.renderPage= +function(a,c,b,d,f,e){var g=mxClient.NO_FO;mxClient.NO_FO=this.graph.mathEnabled&&!this.useForeignObjectForMath?!0:this.originalNoForeignObject;var h=v.apply(this,arguments);mxClient.NO_FO=g;this.graph.mathEnabled?this.mathEnabled=this.mathEnabled||!0:h.className="geDisableMathJax";return h}}b.open(null,null,f,!0)}else{n=c.background;if(null==n||""==n||n==mxConstants.NONE)n="#ffffff";b.backgroundColor=n;b.autoOrigin=r;b.appendGraph(c,m,g,h,f,!0)}return b}var d=parseInt(W.value)/100;isNaN(d)&&(d=1, +W.value="100 %");var d=.75*d,e=v.value,g=w.value,h=!r.checked,m=null;h&&(h=e==n&&g==n);if(!h&&null!=a.pages&&a.pages.length){var k=0,h=a.pages.length-1;r.checked||(k=parseInt(e)-1,h=parseInt(g)-1);for(var t=k;t<=h;t++){var l=a.pages[t],e=l==a.currentPage?f:null;if(null==e){var e=a.createTemporaryGraph(f.getStylesheet()),g=!0,k=!1,x=null,A=null;null==l.viewState&&null==l.mapping&&null==l.root&&a.updatePageRoot(l);null!=l.viewState?(g=l.viewState.pageVisible,k=l.viewState.mathEnabled,x=l.viewState.background, +A=l.viewState.backgroundImage):null!=l.mapping&&null!=l.mapping.diagramMap&&(k="0"!=l.mapping.diagramMap.get("mathEnabled"),x=l.mapping.diagramMap.get("background"),A=l.mapping.diagramMap.get("backgroundImage"),A=null!=A&&0<A.length?JSON.parse(A):null);e.background=x;e.backgroundImage=null!=A?new mxImage(A.src,A.width,A.height):null;e.pageVisible=g;e.mathEnabled=k;var q=e.getGlobalVariable;e.getGlobalVariable=function(a){return"page"==a?l.getName():"pagenumber"==a?t+1:q.apply(this,arguments)};document.body.appendChild(e.container); +a.updatePageRoot(l);e.model.setRoot(l.root)}m=b(e,m,t!=h);e!=f&&e.container.parentNode.removeChild(e.container)}}else m=b(f);m.mathEnabled&&(h=m.wnd.document,h.writeln('<script type="text/x-mathjax-config">'),h.writeln("MathJax.Hub.Config({"),h.writeln("showMathMenu: false,"),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('"HTML-CSS": {'), +h.writeln("imageFont: null"),h.writeln("},"),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("});"),c&&(h.writeln("MathJax.Hub.Queue(function () {"),h.writeln("window.print();"),h.writeln("});")),h.writeln("\x3c/script>"),h.writeln('<script type="text/javascript" src="https://math.draw.io/current/MathJax.js">\x3c/script>')); +m.closeDocument();!m.mathEnabled&&c&&PrintDialog.printPreview(m)}var f=a.editor.graph,e=document.createElement("div"),g=document.createElement("h3");g.style.width="100%";g.style.textAlign="center";g.style.marginTop="0px";mxUtils.write(g,c||mxResources.get("print"));e.appendChild(g);var h=1,n=1,m=document.createElement("div");m.style.cssText="border-bottom:1px solid lightGray;padding-bottom:12px;margin-bottom:12px;";var r=document.createElement("input");r.style.cssText="margin-right:8px;margin-bottom:8px;"; +r.setAttribute("value","all");r.setAttribute("type","radio");r.setAttribute("name","pages-printdialog");m.appendChild(r);g=document.createElement("span");mxUtils.write(g,mxResources.get("printAllPages"));m.appendChild(g);mxUtils.br(m);var k=r.cloneNode(!0);r.setAttribute("checked","checked");k.setAttribute("value","range");m.appendChild(k);g=document.createElement("span");mxUtils.write(g,mxResources.get("pages")+":");m.appendChild(g);var v=document.createElement("input");v.style.cssText="margin:0 8px 0 8px;"; +v.setAttribute("value","1");v.setAttribute("type","number");v.setAttribute("min","1");v.style.width="50px";m.appendChild(v);g=document.createElement("span");mxUtils.write(g,mxResources.get("to"));m.appendChild(g);var w=v.cloneNode(!0);m.appendChild(w);mxEvent.addListener(v,"focus",function(){k.checked=!0});mxEvent.addListener(w,"focus",function(){k.checked=!0});mxEvent.addListener(v,"change",b);mxEvent.addListener(w,"change",b);if(null!=a.pages&&(h=a.pages.length,null!=a.currentPage))for(g=0;g<a.pages.length;g++)if(a.currentPage== +a.pages[g]){n=g+1;v.value=n;w.value=n;break}v.setAttribute("max",h);w.setAttribute("max",h);1<h&&e.appendChild(m);var t=document.createElement("div");t.style.marginBottom="10px";var l=document.createElement("input");l.style.marginRight="8px";l.setAttribute("value","adjust");l.setAttribute("type","radio");l.setAttribute("name","printZoom");t.appendChild(l);g=document.createElement("span");mxUtils.write(g,mxResources.get("adjustTo"));t.appendChild(g);var p=document.createElement("input");p.style.cssText= +"margin:0 8px 0 8px;";p.setAttribute("value","100 %");p.style.width="50px";t.appendChild(p);mxEvent.addListener(p,"focus",function(){l.checked=!0});e.appendChild(t);var m=m.cloneNode(!1),y=l.cloneNode(!0);y.setAttribute("value","fit");l.setAttribute("checked","checked");g=document.createElement("div");g.style.cssText="display:inline-block;height:100%;vertical-align:top;padding-top:2px;";g.appendChild(y);m.appendChild(g);t=document.createElement("table");t.style.display="inline-block";var A=document.createElement("tbody"), q=document.createElement("tr"),u=q.cloneNode(!0),E=document.createElement("td"),S=E.cloneNode(!0),M=E.cloneNode(!0),N=E.cloneNode(!0),T=E.cloneNode(!0),D=E.cloneNode(!0);E.style.textAlign="right";N.style.textAlign="right";mxUtils.write(E,mxResources.get("fitTo"));var Q=document.createElement("input");Q.style.cssText="margin:0 8px 0 8px;";Q.setAttribute("value","1");Q.setAttribute("min","1");Q.setAttribute("type","number");Q.style.width="40px";S.appendChild(Q);g=document.createElement("span");mxUtils.write(g, -mxResources.get("fitToSheetsAcross"));M.appendChild(g);mxUtils.write(N,mxResources.get("fitToBy"));var V=Q.cloneNode(!0);T.appendChild(V);mxEvent.addListener(Q,"focus",function(){y.checked=!0});mxEvent.addListener(V,"focus",function(){y.checked=!0});g=document.createElement("span");mxUtils.write(g,mxResources.get("fitToSheetsDown"));D.appendChild(g);q.appendChild(E);q.appendChild(S);q.appendChild(M);u.appendChild(N);u.appendChild(T);u.appendChild(D);B.appendChild(q);B.appendChild(u);w.appendChild(B); -n.appendChild(w);e.appendChild(n);n=document.createElement("div");g=document.createElement("div");g.style.fontWeight="bold";g.style.marginBottom="12px";mxUtils.write(g,mxResources.get("paperSize"));n.appendChild(g);g=document.createElement("div");g.style.marginBottom="12px";var ga=PageSetupDialog.addPageFormatPanel(g,"printdialog",a.editor.graph.pageFormat||mxConstants.PAGE_FORMAT_A4_PORTRAIT);n.appendChild(g);g=document.createElement("span");mxUtils.write(g,mxResources.get("pageScale"));n.appendChild(g); -var W=document.createElement("input");W.style.cssText="margin:0 8px 0 8px;";W.setAttribute("value","100 %");W.style.width="60px";n.appendChild(W);e.appendChild(n);g=document.createElement("div");g.style.cssText="text-align:right;margin:48px 0 0 0;";n=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});n.className="geBtn";a.editor.cancelFirst&&g.appendChild(n);a.isOffline()||(w=mxUtils.button(mxResources.get("help"),function(){f.openLink("https://desk.draw.io/support/solutions/articles/16000048947")}), -w.className="geBtn",g.appendChild(w));PrintDialog.previewEnabled&&(w=mxUtils.button(mxResources.get("preview"),function(){a.hideDialog();d(!1)}),w.className="geBtn",g.appendChild(w));w=mxUtils.button(mxResources.get(PrintDialog.previewEnabled?"print":"ok"),function(){a.hideDialog();d(!0)});w.className="geBtn gePrimaryBtn";g.appendChild(w);a.editor.cancelFirst||g.appendChild(n);e.appendChild(g);this.container=e};var B=ChangePageSetup.prototype.execute;ChangePageSetup.prototype.execute=function(){null== -this.page&&(this.page=this.ui.currentPage);this.page!=this.ui.currentPage?null!=this.page.viewState&&(this.ignoreColor||(this.page.viewState.background=this.color),this.ignoreImage||(this.page.viewState.backgroundImage=this.image),null!=this.format&&(this.page.viewState.pageFormat=this.format),null!=this.mathEnabled&&(this.page.viewState.mathEnabled=this.mathEnabled),null!=this.shadowVisible&&(this.page.viewState.shadowVisible=this.shadowVisible)):(B.apply(this,arguments),null!=this.mathEnabled&& +mxResources.get("fitToSheetsAcross"));M.appendChild(g);mxUtils.write(N,mxResources.get("fitToBy"));var V=Q.cloneNode(!0);T.appendChild(V);mxEvent.addListener(Q,"focus",function(){y.checked=!0});mxEvent.addListener(V,"focus",function(){y.checked=!0});g=document.createElement("span");mxUtils.write(g,mxResources.get("fitToSheetsDown"));D.appendChild(g);q.appendChild(E);q.appendChild(S);q.appendChild(M);u.appendChild(N);u.appendChild(T);u.appendChild(D);A.appendChild(q);A.appendChild(u);t.appendChild(A); +m.appendChild(t);e.appendChild(m);m=document.createElement("div");g=document.createElement("div");g.style.fontWeight="bold";g.style.marginBottom="12px";mxUtils.write(g,mxResources.get("paperSize"));m.appendChild(g);g=document.createElement("div");g.style.marginBottom="12px";var ga=PageSetupDialog.addPageFormatPanel(g,"printdialog",a.editor.graph.pageFormat||mxConstants.PAGE_FORMAT_A4_PORTRAIT);m.appendChild(g);g=document.createElement("span");mxUtils.write(g,mxResources.get("pageScale"));m.appendChild(g); +var W=document.createElement("input");W.style.cssText="margin:0 8px 0 8px;";W.setAttribute("value","100 %");W.style.width="60px";m.appendChild(W);e.appendChild(m);g=document.createElement("div");g.style.cssText="text-align:right;margin:48px 0 0 0;";m=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});m.className="geBtn";a.editor.cancelFirst&&g.appendChild(m);a.isOffline()||(t=mxUtils.button(mxResources.get("help"),function(){f.openLink("https://desk.draw.io/support/solutions/articles/16000048947")}), +t.className="geBtn",g.appendChild(t));PrintDialog.previewEnabled&&(t=mxUtils.button(mxResources.get("preview"),function(){a.hideDialog();d(!1)}),t.className="geBtn",g.appendChild(t));t=mxUtils.button(mxResources.get(PrintDialog.previewEnabled?"print":"ok"),function(){a.hideDialog();d(!0)});t.className="geBtn gePrimaryBtn";g.appendChild(t);a.editor.cancelFirst||g.appendChild(m);e.appendChild(g);this.container=e};var A=ChangePageSetup.prototype.execute;ChangePageSetup.prototype.execute=function(){null== +this.page&&(this.page=this.ui.currentPage);this.page!=this.ui.currentPage?null!=this.page.viewState&&(this.ignoreColor||(this.page.viewState.background=this.color),this.ignoreImage||(this.page.viewState.backgroundImage=this.image),null!=this.format&&(this.page.viewState.pageFormat=this.format),null!=this.mathEnabled&&(this.page.viewState.mathEnabled=this.mathEnabled),null!=this.shadowVisible&&(this.page.viewState.shadowVisible=this.shadowVisible)):(A.apply(this,arguments),null!=this.mathEnabled&& this.mathEnabled!=this.ui.isMathEnabled()&&(this.ui.setMathEnabled(this.mathEnabled),this.mathEnabled=!this.mathEnabled),null!=this.shadowVisible&&this.shadowVisible!=this.ui.editor.graph.shadowVisible&&(this.ui.editor.graph.setShadowVisible(this.shadowVisible),this.shadowVisible=!this.shadowVisible))}})(); -var ErrorDialog=function(a,d,e,b,h,m,p,q,u,c,f){u=null!=u?u:!0;var g=document.createElement("div");g.style.textAlign="center";if(null!=d){var k=document.createElement("div");k.style.padding="0px";k.style.margin="0px";k.style.fontSize="18px";k.style.paddingBottom="16px";k.style.marginBottom="16px";k.style.borderBottom="1px solid #c0c0c0";k.style.color="gray";mxUtils.write(k,d);g.appendChild(k)}d=document.createElement("div");d.style.padding="6px";d.innerHTML=e;g.appendChild(d);e=document.createElement("div"); -e.style.marginTop="16px";e.style.textAlign="center";null!=m&&(d=mxUtils.button(mxResources.get("tryAgain"),function(){a.hideDialog();m()}),d.className="geBtn",e.appendChild(d),e.style.textAlign="center");null!=c&&(c=mxUtils.button(c,function(){null!=f&&f()}),c.className="geBtn",e.appendChild(c));var r=mxUtils.button(b,function(){u&&a.hideDialog();null!=h&&h()});r.className="geBtn";e.appendChild(r);null!=p&&(b=mxUtils.button(p,function(){u&&a.hideDialog();null!=q&&q()}),b.className="geBtn gePrimaryBtn", -e.appendChild(b));this.init=function(){r.focus()};g.appendChild(e);this.container=g}; -(function(){var a=new mxObjectCodec(new ChangePageSetup,["ui","previousColor","previousImage","previousFormat"]);a.beforeDecode=function(a,e,b){b.ui=a.ui;return e};a.afterDecode=function(a,e,b){b.previousColor=b.color;b.previousImage=b.image;b.previousFormat=b.format;null!=b.foldingEnabled&&(b.foldingEnabled=!b.foldingEnabled);null!=b.mathEnabled&&(b.mathEnabled=!b.mathEnabled);null!=b.shadowVisible&&(b.shadowVisible=!b.shadowVisible);return b};mxCodecRegistry.register(a)})();(function(){EditorUi.VERSION="@DRAWIO-VERSION@";EditorUi.compactUi="atlas"!=uiTheme;EditorUi.enableLogging=/.*\.draw\.io$/.test(window.location.hostname)&&"support.draw.io"!=window.location.hostname;EditorUi.templateFile=TEMPLATE_PATH+"/index.xml";EditorUi.enablePlantUml=EditorUi.enableLogging;EditorUi.isElectronApp=null!=window&&null!=window.process&&null!=window.process.versions&&null!=window.process.versions.electron;EditorUi.scratchpadHelpLink="https://desk.draw.io/support/solutions/articles/16000042367"; +var ErrorDialog=function(a,b,e,d,k,l,p,q,u,c,f){u=null!=u?u:!0;var g=document.createElement("div");g.style.textAlign="center";if(null!=b){var n=document.createElement("div");n.style.padding="0px";n.style.margin="0px";n.style.fontSize="18px";n.style.paddingBottom="16px";n.style.marginBottom="16px";n.style.borderBottom="1px solid #c0c0c0";n.style.color="gray";mxUtils.write(n,b);g.appendChild(n)}b=document.createElement("div");b.style.padding="6px";b.innerHTML=e;g.appendChild(b);e=document.createElement("div"); +e.style.marginTop="16px";e.style.textAlign="center";null!=l&&(b=mxUtils.button(mxResources.get("tryAgain"),function(){a.hideDialog();l()}),b.className="geBtn",e.appendChild(b),e.style.textAlign="center");null!=c&&(c=mxUtils.button(c,function(){null!=f&&f()}),c.className="geBtn",e.appendChild(c));var r=mxUtils.button(d,function(){u&&a.hideDialog();null!=k&&k()});r.className="geBtn";e.appendChild(r);null!=p&&(d=mxUtils.button(p,function(){u&&a.hideDialog();null!=q&&q()}),d.className="geBtn gePrimaryBtn", +e.appendChild(d));this.init=function(){r.focus()};g.appendChild(e);this.container=g}; +(function(){var a=new mxObjectCodec(new ChangePageSetup,["ui","previousColor","previousImage","previousFormat"]);a.beforeDecode=function(a,e,d){d.ui=a.ui;return e};a.afterDecode=function(a,e,d){d.previousColor=d.color;d.previousImage=d.image;d.previousFormat=d.format;null!=d.foldingEnabled&&(d.foldingEnabled=!d.foldingEnabled);null!=d.mathEnabled&&(d.mathEnabled=!d.mathEnabled);null!=d.shadowVisible&&(d.shadowVisible=!d.shadowVisible);return d};mxCodecRegistry.register(a)})();(function(){EditorUi.VERSION="@DRAWIO-VERSION@";EditorUi.compactUi="atlas"!=uiTheme;EditorUi.enableLogging=/.*\.draw\.io$/.test(window.location.hostname)&&"support.draw.io"!=window.location.hostname;EditorUi.templateFile=TEMPLATE_PATH+"/index.xml";EditorUi.enablePlantUml=EditorUi.enableLogging;EditorUi.isElectronApp=null!=window&&null!=window.process&&null!=window.process.versions&&null!=window.process.versions.electron;EditorUi.scratchpadHelpLink="https://desk.draw.io/support/solutions/articles/16000042367"; EditorUi.prototype.emptyDiagramXml='<mxGraphModel><root><mxCell id="0"/><mxCell id="1" parent="0"/></root></mxGraphModel>';EditorUi.prototype.emptyLibraryXml="<mxlibrary>[]</mxlibrary>";EditorUi.prototype.mode=null;EditorUi.prototype.sidebarFooterHeight=36;EditorUi.prototype.defaultCustomShapeStyle="shape=stencil(tZRtTsQgEEBPw1+DJR7AoN6DbWftpAgE0Ortd/jYRGq72R+YNE2YgTePloEJGWblgA18ZuKFDcMj5/Sm8boZq+BgjCX4pTyqk6ZlKROitwusOMXKQDODx5iy4pXxZ5qTHiFHawxB0JrQZH7lCabQ0Fr+XWC1/E8zcsT/gAi+Subo2/3Mh6d/oJb5nU1b5tW7r2knautaa3T+U32o7f7vZwpJkaNDLORJjcu7t59m2jXxqX9un+tt022acsfmoKaQZ+vhhswZtS6Ne/ThQGt0IV0N3Yyv6P3CeT9/tHO0XFI5cAE=);whiteSpace=wrap;html=1;"; EditorUi.prototype.svgBrokenImage=Graph.createSvgImage(10,10,'<rect x="0" y="0" width="10" height="10" stroke="#000" fill="transparent"/><path d="m 0 0 L 10 10 L 0 10 L 10 0" stroke="#000" fill="transparent"/>');EditorUi.prototype.crossOriginImages=!mxClient.IS_IE;EditorUi.prototype.maxBackgroundSize=1600;EditorUi.prototype.maxImageSize=520;EditorUi.prototype.resampleThreshold=1E5;EditorUi.prototype.maxImageBytes=1E6;EditorUi.prototype.maxBackgroundBytes=25E5;EditorUi.prototype.currentFile=null;EditorUi.prototype.printPdfExport= !1;EditorUi.prototype.pdfPageExport=!0;EditorUi.prototype.formatEnabled="0"!=urlParams.format;EditorUi.prototype.closableScratchpad=!0;(function(){EditorUi.prototype.useCanvasForExport=!1;EditorUi.prototype.jpgSupported=!1;try{var a=document.createElement("canvas");EditorUi.prototype.canvasSupported=!(!a.getContext||!a.getContext("2d"))}catch(r){}try{var b=document.createElement("canvas"),d=new Image;d.onload=function(){try{b.getContext("2d").drawImage(d,0,0);var a=b.toDataURL("image/png");EditorUi.prototype.useCanvasForExport= -null!=a&&6<a.length}catch(l){}};d.src="data:image/svg+xml;base64,"+btoa(unescape(encodeURIComponent('<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="1px" height="1px" version="1.1"><foreignObject pointer-events="all" width="1" height="1"><div xmlns="http://www.w3.org/1999/xhtml"></div></foreignObject></svg>')))}catch(r){}try{b=document.createElement("canvas");b.width=b.height=1;var e=b.toDataURL("image/jpeg");EditorUi.prototype.jpgSupported=null!==e.match("image/jpeg")}catch(r){}})(); +null!=a&&6<a.length}catch(h){}};d.src="data:image/svg+xml;base64,"+btoa(unescape(encodeURIComponent('<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="1px" height="1px" version="1.1"><foreignObject pointer-events="all" width="1" height="1"><div xmlns="http://www.w3.org/1999/xhtml"></div></foreignObject></svg>')))}catch(r){}try{b=document.createElement("canvas");b.width=b.height=1;var e=b.toDataURL("image/jpeg");EditorUi.prototype.jpgSupported=null!==e.match("image/jpeg")}catch(r){}})(); EditorUi.prototype.openLink=function(a,b,d){return this.editor.graph.openLink(a,b,d)};EditorUi.prototype.showSplash=function(a){};EditorUi.prototype.getLocalData=function(a,b){b(localStorage.getItem(a))};EditorUi.prototype.setLocalData=function(a,b,d){localStorage.setItem(a,b);null!=d&&d()};EditorUi.prototype.removeLocalData=function(a,b){localStorage.removeItem(a);b()};EditorUi.prototype.setMathEnabled=function(a){this.editor.graph.mathEnabled=a;this.editor.updateGraphComponents();this.editor.graph.refresh(); this.fireEvent(new mxEventObject("mathEnabledChanged"))};EditorUi.prototype.isMathEnabled=function(a){return this.editor.graph.mathEnabled};EditorUi.prototype.isAppCache=function(){return"1"==urlParams.appcache||this.isOfflineApp()};EditorUi.prototype.isOfflineApp=function(){return"1"==urlParams.offline};EditorUi.prototype.isOffline=function(){return this.isOfflineApp()||!navigator.onLine||"1"==urlParams.stealth};EditorUi.prototype.createSpinner=function(a,b,d){d=null!=d?d:24;var c=new Spinner({lines:12, length:d,width:Math.round(d/3),radius:Math.round(d/2),rotate:0,color:"dark"==uiTheme?"#c0c0c0":"#000",speed:1.5,trail:60,shadow:!1,hwaccel:!1,zIndex:2E9}),f=c.spin;c.spin=function(d,e){var g=!1;this.active||(f.call(this,d),this.active=!0,null!=e&&(g=document.createElement("div"),g.style.position="absolute",g.style.whiteSpace="nowrap",g.style.background="#4B4243",g.style.color="white",g.style.fontFamily="Helvetica, Arial",g.style.fontSize="9pt",g.style.padding="6px",g.style.paddingLeft="10px",g.style.paddingRight= "10px",g.style.zIndex=2E9,g.style.left=Math.max(0,a)+"px",g.style.top=Math.max(0,b+70)+"px",mxUtils.setPrefixedStyle(g.style,"borderRadius","6px"),mxUtils.setPrefixedStyle(g.style,"transform","translate(-50%,-50%)"),"dark"!=uiTheme&&mxUtils.setPrefixedStyle(g.style,"boxShadow","2px 2px 3px 0px #ddd"),g.innerHTML=e+"...",d.appendChild(g),c.status=g,mxClient.IS_VML&&(null==document.documentMode||8>=document.documentMode)&&(g.style.left=Math.round(Math.max(0,a-g.offsetWidth/2))+"px",g.style.top=Math.round(Math.max(0, b+70-g.offsetHeight/2))+"px")),this.pause=mxUtils.bind(this,function(){var a=function(){};this.active&&(a=mxUtils.bind(this,function(){this.spin(d,e)}));this.stop();return a}),g=!0);return g};var e=c.stop;c.stop=function(){e.call(this);this.active=!1;null!=c.status&&(c.status.parentNode.removeChild(c.status),c.status=null)};c.pause=function(){return function(){}};return c};EditorUi.parsePng=function(a,b,d){function c(a,c){var b=e;e+=c;return a.substring(b,e)}function f(a){a=c(a,4);return a.charCodeAt(3)+ -(a.charCodeAt(2)<<8)+(a.charCodeAt(1)<<16)+(a.charCodeAt(0)<<24)}var e=0;if(c(a,8)!=String.fromCharCode(137)+"PNG"+String.fromCharCode(13,10,26,10))null!=d&&d();else if(c(a,4),"IHDR"!=c(a,4))null!=d&&d();else{c(a,17);do{d=f(a);var g=c(a,4);if(null!=b&&b(e-8,g,d))break;value=c(a,d);c(a,4);if("IEND"==g)break}while(d)}};EditorUi.prototype.isCompatibleString=function(a){try{var c=mxUtils.parseXml(a),b=this.editor.extractGraphModel(c.documentElement,!0);return null!=b&&0==b.getElementsByTagName("parsererror").length}catch(k){}return!1}; -var a=EditorUi.prototype.extractGraphModelFromHtml;EditorUi.prototype.extractGraphModelFromHtml=function(c){var b=a.apply(this,arguments);if(null==b)try{var d=c.indexOf("<mxfile ");if(0<=d){var e=c.lastIndexOf("</mxfile>");e>d&&(b=c.substring(d,e+15).replace(/>/g,">").replace(/</g,"<").replace(/\\"/g,'"').replace(/\n/g,""))}else var r=mxUtils.parseXml(c),l=this.editor.extractGraphModel(r.documentElement,null!=this.pages||"hidden"==this.diagramContainer.style.visibility),b=null!= -l?mxUtils.getXml(l):""}catch(n){}return b};EditorUi.prototype.validateFileData=function(a){if(null!=a&&0<a.length){var c=a.indexOf('<meta charset="utf-8">');0<=c&&(a=a.slice(0,c)+'<meta charset="utf-8"/>'+a.slice(c+23-1,a.length))}return a};EditorUi.prototype.replaceFileData=function(a){a=this.validateFileData(a);a=null!=a&&0<a.length?mxUtils.parseXml(a).documentElement:null;var c=null!=a?this.editor.extractGraphModel(a,!0):null;null!=c&&(a=c);if(null!=a){c=this.editor.graph;c.model.beginUpdate(); -try{var b=null!=this.pages?this.pages.slice():null,d=a.getElementsByTagName("diagram");if("0"!=urlParams.pages||1<d.length||1==d.length&&d[0].hasAttribute("name")){this.fileNode=a;this.pages=null!=this.pages?this.pages:[];for(var e=d.length-1;0<=e;e--){var l=this.updatePageRoot(new DiagramPage(d[e]));null==l.getName()&&l.setName(mxResources.get("pageWithNumber",[e+1]));c.model.execute(new ChangePage(this,l,0==e?l:null,0))}}else"0"!=urlParams.pages&&null==this.fileNode&&(this.fileNode=a.ownerDocument.createElement("mxfile"), -this.currentPage=new DiagramPage(a.ownerDocument.createElement("diagram")),this.currentPage.setName(mxResources.get("pageWithNumber",[1])),c.model.execute(new ChangePage(this,this.currentPage,this.currentPage,0))),this.editor.setGraphXml(a),null!=this.currentPage&&(this.currentPage.root=this.editor.graph.model.root);if(null!=b)for(e=0;e<b.length;e++)c.model.execute(new ChangePage(this,b[e],null))}finally{c.model.endUpdate()}}};EditorUi.prototype.createFileData=function(a,b,d,e,r,l,n,h,v,m){b=null!= -b?b:this.editor.graph;r=null!=r?r:!1;v=null!=v?v:!0;var c,f=null;null==d||d.getMode()==App.MODE_DEVICE||d.getMode()==App.MODE_BROWSER?c="_blank":f=c=e;if(null==a)return"";var g=a;if("mxfile"!=g.nodeName.toLowerCase()){var k=b.zapGremlins(mxUtils.getXml(a)),g=b.compress(k);if(b.decompress(g)!=k)return k;k=a.ownerDocument.createElement("diagram");mxUtils.setTextContent(k,g);g=a.ownerDocument.createElement("mxfile");g.appendChild(k)}m?(g=g.cloneNode(!0),g.removeAttribute("userAgent"),g.removeAttribute("version"), -g.removeAttribute("editor"),g.removeAttribute("type")):(g.setAttribute("userAgent",navigator.userAgent),g.setAttribute("version",EditorUi.VERSION),g.setAttribute("editor","www.draw.io"),a=null!=d?d.getMode():this.mode,null!=a&&g.setAttribute("type",a));a=mxUtils.getXml(g);if(!l&&!r&&(n||null!=d&&/(\.html)$/i.test(d.getTitle())))a=this.getHtml2(mxUtils.getXml(g),b,null!=d?d.getTitle():null,c,f);else if(l||!r&&null!=d&&/(\.svg)$/i.test(d.getTitle()))null==d||d.getMode()!=App.MODE_DEVICE&&d.getMode()!= -App.MODE_BROWSER||(e=null),a=this.getEmbeddedSvg(a,b,e,null,h,v,f);return a};EditorUi.prototype.getXmlFileData=function(a,b){a=null!=a?a:!0;b=null!=b?b:!1;var c=this.editor.getGraphXml(a);if(a&&null!=this.fileNode&&null!=this.currentPage){var d=this.editor.graph.compress(this.editor.graph.zapGremlins(mxUtils.getXml(c)));mxUtils.setTextContent(this.currentPage.node,d);c=this.fileNode.cloneNode(!1);if(b)c.appendChild(this.currentPage.node);else for(var f=0;f<this.pages.length;f++){var e=this.pages[f].mapping; -this.currentPage!=this.pages[f]&&null!=e&&e.needsUpdate&&(d=(new mxCodec(mxUtils.createXmlDocument())).encode(e.graphModel),e.writeRealtimeToNode(d),d=this.editor.graph.compress(this.editor.graph.zapGremlins(mxUtils.getXml(d))),mxUtils.setTextContent(this.pages[f].node,d),e.needsUpdate=!1);c.appendChild(this.pages[f].node)}}return c};EditorUi.prototype.getFileData=function(a,b,d,e,r,l,n,h,v){r=null!=r?r:!0;n=null!=n?n:this.getXmlFileData(r,null!=l?l:!1);v=null!=v?v:this.getCurrentFile();l=this.editor.graph; -if(null!=this.pages&&this.currentPage!=this.pages[0]&&(b||!a&&null!=v&&/(\.svg)$/i.test(v.getTitle()))){l=this.createTemporaryGraph(l.getStylesheet());var c=l.getGlobalVariable,f=this.pages[0];l.getGlobalVariable=function(a){return"page"==a?f.getName():"pagenumber"==a?1:c.apply(this,arguments)};document.body.appendChild(l.container);l.model.setRoot(f.root)}a=this.createFileData(n,l,v,window.location.href,a,b,d,e,r,h);l!=this.editor.graph&&l.container.parentNode.removeChild(l.container);return a}; -EditorUi.prototype.getHtml=function(a,b,d,e,r,l){l=null!=l?l:!0;var c=null,f="https://www.draw.io/js/embed-static.min.js";if(null!=b){var c=l?b.getGraphBounds():b.getBoundingBox(b.getSelectionCells()),g=b.view.scale;l=Math.floor(c.x/g-b.view.translate.x);g=Math.floor(c.y/g-b.view.translate.y);c=b.background;null==r&&(b=this.getBasenames().join(";"),0<b.length&&(f="https://www.draw.io/embed.js?s="+b));a.setAttribute("x0",l);a.setAttribute("y0",g)}null!=a&&(a.setAttribute("pan","1"),a.setAttribute("zoom", -"1"),a.setAttribute("resize","0"),a.setAttribute("fit","0"),a.setAttribute("border","20"),a.setAttribute("links","1"),null!=e&&a.setAttribute("edit",e));null!=r&&(r=r.replace(/&/g,"&"));a=null!=a?this.editor.graph.zapGremlins(mxUtils.getXml(a)):"";e=this.editor.graph.compress(a);this.editor.graph.decompress(e)!=a&&(e=encodeURIComponent(a));return(null==r?'\x3c!--[if IE]><meta http-equiv="X-UA-Compatible" content="IE=5,IE=9" ><![endif]--\x3e\n':"")+"<!DOCTYPE html>\n<html"+(null!=r?' xmlns="http://www.w3.org/1999/xhtml">': +(a.charCodeAt(2)<<8)+(a.charCodeAt(1)<<16)+(a.charCodeAt(0)<<24)}var e=0;if(c(a,8)!=String.fromCharCode(137)+"PNG"+String.fromCharCode(13,10,26,10))null!=d&&d();else if(c(a,4),"IHDR"!=c(a,4))null!=d&&d();else{c(a,17);do{d=f(a);var g=c(a,4);if(null!=b&&b(e-8,g,d))break;value=c(a,d);c(a,4);if("IEND"==g)break}while(d)}};EditorUi.prototype.isCompatibleString=function(a){try{var c=mxUtils.parseXml(a),b=this.editor.extractGraphModel(c.documentElement,!0);return null!=b&&0==b.getElementsByTagName("parsererror").length}catch(n){}return!1}; +var a=EditorUi.prototype.extractGraphModelFromHtml;EditorUi.prototype.extractGraphModelFromHtml=function(c){var b=a.apply(this,arguments);if(null==b)try{var d=c.indexOf("<mxfile ");if(0<=d){var e=c.lastIndexOf("</mxfile>");e>d&&(b=c.substring(d,e+15).replace(/>/g,">").replace(/</g,"<").replace(/\\"/g,'"').replace(/\n/g,""))}else var r=mxUtils.parseXml(c),h=this.editor.extractGraphModel(r.documentElement,null!=this.pages||"hidden"==this.diagramContainer.style.visibility),b=null!= +h?mxUtils.getXml(h):""}catch(m){}return b};EditorUi.prototype.validateFileData=function(a){if(null!=a&&0<a.length){var c=a.indexOf('<meta charset="utf-8">');0<=c&&(a=a.slice(0,c)+'<meta charset="utf-8"/>'+a.slice(c+23-1,a.length))}return a};EditorUi.prototype.replaceFileData=function(a){a=this.validateFileData(a);a=null!=a&&0<a.length?mxUtils.parseXml(a).documentElement:null;var c=null!=a?this.editor.extractGraphModel(a,!0):null;null!=c&&(a=c);if(null!=a){c=this.editor.graph;c.model.beginUpdate(); +try{var b=null!=this.pages?this.pages.slice():null,d=a.getElementsByTagName("diagram");if("0"!=urlParams.pages||1<d.length||1==d.length&&d[0].hasAttribute("name")){this.fileNode=a;this.pages=null!=this.pages?this.pages:[];for(var e=d.length-1;0<=e;e--){var h=this.updatePageRoot(new DiagramPage(d[e]));null==h.getName()&&h.setName(mxResources.get("pageWithNumber",[e+1]));c.model.execute(new ChangePage(this,h,0==e?h:null,0))}}else"0"!=urlParams.pages&&null==this.fileNode&&(this.fileNode=a.ownerDocument.createElement("mxfile"), +this.currentPage=new DiagramPage(a.ownerDocument.createElement("diagram")),this.currentPage.setName(mxResources.get("pageWithNumber",[1])),c.model.execute(new ChangePage(this,this.currentPage,this.currentPage,0))),this.editor.setGraphXml(a),null!=this.currentPage&&(this.currentPage.root=this.editor.graph.model.root);if(null!=b)for(e=0;e<b.length;e++)c.model.execute(new ChangePage(this,b[e],null))}finally{c.model.endUpdate()}}};EditorUi.prototype.createFileData=function(a,b,d,e,r,h,m,k,v,l){b=null!= +b?b:this.editor.graph;r=null!=r?r:!1;v=null!=v?v:!0;var c,f=null;null==d||d.getMode()==App.MODE_DEVICE||d.getMode()==App.MODE_BROWSER?c="_blank":f=c=e;if(null==a)return"";var g=a;if("mxfile"!=g.nodeName.toLowerCase()){var n=b.zapGremlins(mxUtils.getXml(a)),g=b.compress(n);if(b.decompress(g)!=n)return n;n=a.ownerDocument.createElement("diagram");n.setAttribute("id",Editor.guid());mxUtils.setTextContent(n,g);g=a.ownerDocument.createElement("mxfile");g.appendChild(n)}l?(g=g.cloneNode(!0),g.removeAttribute("userAgent"), +g.removeAttribute("version"),g.removeAttribute("editor"),g.removeAttribute("type")):(g.setAttribute("userAgent",navigator.userAgent),g.setAttribute("version",EditorUi.VERSION),g.setAttribute("editor","www.draw.io"),a=null!=d?d.getMode():this.mode,null!=a&&g.setAttribute("type",a));a=mxUtils.getXml(g);if(!h&&!r&&(m||null!=d&&/(\.html)$/i.test(d.getTitle())))a=this.getHtml2(mxUtils.getXml(g),b,null!=d?d.getTitle():null,c,f);else if(h||!r&&null!=d&&/(\.svg)$/i.test(d.getTitle()))null==d||d.getMode()!= +App.MODE_DEVICE&&d.getMode()!=App.MODE_BROWSER||(e=null),a=this.getEmbeddedSvg(a,b,e,null,k,v,f);return a};EditorUi.prototype.getXmlFileData=function(a,b){a=null!=a?a:!0;b=null!=b?b:!1;var c=this.editor.getGraphXml(a);if(a&&null!=this.fileNode&&null!=this.currentPage)if(c=this.editor.graph.compress(this.editor.graph.zapGremlins(mxUtils.getXml(c))),mxUtils.setTextContent(this.currentPage.node,c),c=this.fileNode.cloneNode(!1),b)c.appendChild(this.currentPage.node);else for(var d=0;d<this.pages.length;d++){var f= +this.pages[d].mapping;if(this.currentPage!=this.pages[d]&&null!=f&&f.needsUpdate){var e=(new mxCodec(mxUtils.createXmlDocument())).encode(f.graphModel);f.writeRealtimeToNode(e);mxUtils.setTextContent(this.pages[d].node,this.editor.graph.compressNode(e));f.needsUpdate=!1}c.appendChild(this.pages[d].node)}return c};EditorUi.prototype.getFileData=function(a,b,d,e,r,h,m,k,v){r=null!=r?r:!0;m=null!=m?m:this.getXmlFileData(r,null!=h?h:!1);v=null!=v?v:this.getCurrentFile();h=this.editor.graph;if(null!=this.pages&& +this.currentPage!=this.pages[0]&&(b||!a&&null!=v&&/(\.svg)$/i.test(v.getTitle()))){h=this.createTemporaryGraph(h.getStylesheet());var c=h.getGlobalVariable,f=this.pages[0];h.getGlobalVariable=function(a){return"page"==a?f.getName():"pagenumber"==a?1:c.apply(this,arguments)};document.body.appendChild(h.container);h.model.setRoot(f.root)}a=this.createFileData(m,h,v,window.location.href,a,b,d,e,r,k);h!=this.editor.graph&&h.container.parentNode.removeChild(h.container);return a};EditorUi.prototype.getHtml= +function(a,b,d,e,r,h){h=null!=h?h:!0;var c=null,f="https://www.draw.io/js/embed-static.min.js";if(null!=b){var c=h?b.getGraphBounds():b.getBoundingBox(b.getSelectionCells()),g=b.view.scale;h=Math.floor(c.x/g-b.view.translate.x);g=Math.floor(c.y/g-b.view.translate.y);c=b.background;null==r&&(b=this.getBasenames().join(";"),0<b.length&&(f="https://www.draw.io/embed.js?s="+b));a.setAttribute("x0",h);a.setAttribute("y0",g)}null!=a&&(a.setAttribute("pan","1"),a.setAttribute("zoom","1"),a.setAttribute("resize", +"0"),a.setAttribute("fit","0"),a.setAttribute("border","20"),a.setAttribute("links","1"),null!=e&&a.setAttribute("edit",e));null!=r&&(r=r.replace(/&/g,"&"));a=null!=a?this.editor.graph.zapGremlins(mxUtils.getXml(a)):"";e=this.editor.graph.compress(a);this.editor.graph.decompress(e)!=a&&(e=encodeURIComponent(a));return(null==r?'\x3c!--[if IE]><meta http-equiv="X-UA-Compatible" content="IE=5,IE=9" ><![endif]--\x3e\n':"")+"<!DOCTYPE html>\n<html"+(null!=r?' xmlns="http://www.w3.org/1999/xhtml">': ">")+"\n<head>\n"+(null==r?null!=d?"<title>"+mxUtils.htmlEntities(d)+"</title>\n":"":"<title>Draw.io Diagram</title>\n")+(null!=r?'<meta http-equiv="refresh" content="0;URL=\''+r+"'\"/>\n":"")+"</head>\n<body"+(null==r&&null!=c&&c!=mxConstants.NONE?' style="background-color:'+c+';">':">")+'\n<div class="mxgraph" style="position:relative;overflow:auto;width:100%;">\n<div style="width:1px;height:1px;overflow:hidden;">'+e+"</div>\n</div>\n"+(null==r?'<script type="text/javascript" src="'+f+'">\x3c/script>': '<a style="position:absolute;top:50%;left:50%;margin-top:-128px;margin-left:-64px;" href="'+r+'" target="_blank"><img border="0" src="https://www.draw.io/images/drawlogo128.png"/></a>')+"\n</body>\n</html>\n"};EditorUi.prototype.getHtml2=function(a,b,d,e,r){null!=r&&(r=r.replace(/&/g,"&"));a={highlight:"#0000ff",nav:this.editor.graph.foldingEnabled,resize:!0,xml:this.editor.graph.zapGremlins(a),toolbar:"pages zoom layers lightbox"};null!=this.pages&&null!=this.currentPage&&(a.page=mxUtils.indexOf(this.pages, this.currentPage));return(null==r?'\x3c!--[if IE]><meta http-equiv="X-UA-Compatible" content="IE=5,IE=9" ><![endif]--\x3e\n':"")+"<!DOCTYPE html>\n<html"+(null!=r?' xmlns="http://www.w3.org/1999/xhtml">':">")+"\n<head>\n"+(null==r?null!=d?"<title>"+mxUtils.htmlEntities(d)+"</title>\n":"":"<title>Draw.io Diagram</title>\n")+(null!=r?'<meta http-equiv="refresh" content="0;URL=\''+r+"'\"/>\n":"")+'<meta charset="utf-8"/>\n</head>\n<body>\n<div class="mxgraph" style="max-width:100%;border:1px solid transparent;" data-mxgraph="'+ mxUtils.htmlEntities(JSON.stringify(a))+'"></div>\n'+(null==r?'<script type="text/javascript" src="https://www.draw.io/js/viewer.min.js">\x3c/script>':'<a style="position:absolute;top:50%;left:50%;margin-top:-128px;margin-left:-64px;" href="'+r+'" target="_blank"><img border="0" src="https://www.draw.io/images/drawlogo128.png"/></a>')+"\n</body>\n</html>\n"};EditorUi.prototype.setFileData=function(a){a=this.validateFileData(a);this.pages=this.fileNode=this.currentPage=null;var c=null!=a&&0<a.length? mxUtils.parseXml(a).documentElement:null;a=null!=c?this.editor.extractGraphModel(c,!0):null;null!=a&&(c=a);if(null!=c&&"mxfile"==c.nodeName&&(a=c.getElementsByTagName("diagram"),"0"!=urlParams.pages||1<a.length||1==a.length&&a[0].hasAttribute("name"))){this.fileNode=c;this.pages=[];for(c=0;c<a.length;c++){var b=new DiagramPage(a[c]);null==b.getName()&&b.setName(mxResources.get("pageWithNumber",[c+1]));this.pages.push(b)}this.currentPage=this.pages[Math.max(0,Math.min(this.pages.length-1,urlParams.page|| 0))];c=this.currentPage.node}"0"!=urlParams.pages&&null==this.fileNode&&null!=c&&(this.fileNode=c.ownerDocument.createElement("mxfile"),this.currentPage=new DiagramPage(c.ownerDocument.createElement("diagram")),this.currentPage.setName(mxResources.get("pageWithNumber",[1])),this.pages=[this.currentPage]);this.editor.setGraphXml(c);null!=this.currentPage&&(this.currentPage.root=this.editor.graph.model.root)};EditorUi.prototype.getBaseFilename=function(a){var c=this.getCurrentFile(),c=null!=c&&null!= -c.getTitle()?c.getTitle():this.defaultFilename;if(/(\.xml)$/i.test(c)||/(\.html)$/i.test(c)||/(\.svg)$/i.test(c)||/(\.png)$/i.test(c))c=c.substring(0,c.lastIndexOf("."));!a&&null!=this.pages&&1<this.pages.length&&null!=this.currentPage&&null!=this.currentPage.node.getAttribute("name")&&0<this.currentPage.getName().length&&(c=c+"-"+this.currentPage.getName());return c};EditorUi.prototype.downloadFile=function(a,b,d,e,r,l,n){try{e=null!=e?e:this.editor.graph.isSelectionEmpty();var c=this.getBaseFilename(!r), +c.getTitle()?c.getTitle():this.defaultFilename;if(/(\.xml)$/i.test(c)||/(\.html)$/i.test(c)||/(\.svg)$/i.test(c)||/(\.png)$/i.test(c))c=c.substring(0,c.lastIndexOf("."));!a&&null!=this.pages&&1<this.pages.length&&null!=this.currentPage&&null!=this.currentPage.node.getAttribute("name")&&0<this.currentPage.getName().length&&(c=c+"-"+this.currentPage.getName());return c};EditorUi.prototype.downloadFile=function(a,b,d,e,r,h,m){try{e=null!=e?e:this.editor.graph.isSelectionEmpty();var c=this.getBaseFilename(!r), f=c+"."+a;if("xml"==a){var g='<?xml version="1.0" encoding="UTF-8"?>\n'+(b?mxUtils.getXml(this.editor.getGraphXml(e)):this.getFileData(!0,null,null,null,e,r));this.saveData(f,a,g,"text/xml")}else if("html"==a)g=this.getHtml2(this.getFileData(!0),this.editor.graph,c),this.saveData(f,a,g,"text/html");else if("svg"!=a&&"xmlsvg"!=a||!this.spinner.spin(document.body,mxResources.get("export")))"xmlpng"==a?f=c+".png":"jpeg"==a&&(f=c+".jpg"),this.saveRequest(f,a,mxUtils.bind(this,function(c,b){try{var d= -this.editor.graph.pageVisible;null!=l&&(this.editor.graph.pageVisible=l);var f=this.createDownloadRequest(c,a,e,b,n);this.editor.graph.pageVisible=d;return f}catch(x){this.handleError(x)}}));else{var k=null,h=mxUtils.bind(this,function(a){a.length<=MAX_REQUEST_SIZE?this.saveData(f,"svg",a,"image/svg+xml"):this.handleError({message:mxResources.get("drawingTooLarge")},mxResources.get("error"),mxUtils.bind(this,function(){mxUtils.popup(k)}))});if("svg"==a){var m=this.editor.graph.background;if(n||m== -mxConstants.NONE)m=null;var p=this.editor.graph.getSvg(m,null,null,null,null,e);d&&this.editor.graph.addSvgShadow(p);this.convertImages(p,mxUtils.bind(this,mxUtils.bind(this,function(a){this.spinner.stop();h('<?xml version="1.0" encoding="UTF-8"?>\n<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">\n'+mxUtils.getXml(a))})))}else f=c+".svg",k=this.getFileData(!1,!0,null,mxUtils.bind(this,function(a){this.spinner.stop();h(a)}),e)}}catch(G){this.handleError(G)}}; +this.editor.graph.pageVisible;null!=h&&(this.editor.graph.pageVisible=h);var f=this.createDownloadRequest(c,a,e,b,m);this.editor.graph.pageVisible=d;return f}catch(x){this.handleError(x)}}));else{var n=null,k=mxUtils.bind(this,function(a){a.length<=MAX_REQUEST_SIZE?this.saveData(f,"svg",a,"image/svg+xml"):this.handleError({message:mxResources.get("drawingTooLarge")},mxResources.get("error"),mxUtils.bind(this,function(){mxUtils.popup(n)}))});if("svg"==a){var l=this.editor.graph.background;if(m||l== +mxConstants.NONE)l=null;var p=this.editor.graph.getSvg(l,null,null,null,null,e);d&&this.editor.graph.addSvgShadow(p);this.convertImages(p,mxUtils.bind(this,mxUtils.bind(this,function(a){this.spinner.stop();k('<?xml version="1.0" encoding="UTF-8"?>\n<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">\n'+mxUtils.getXml(a))})))}else f=c+".svg",n=this.getFileData(!1,!0,null,mxUtils.bind(this,function(a){this.spinner.stop();k(a)}),e)}}catch(G){this.handleError(G)}}; EditorUi.prototype.createDownloadRequest=function(a,b,d,e,r){var c=this.editor.graph.getGraphBounds();d=this.getFileData(!0,null,null,null,d,"xmlpng"!=b);var f="";if(c.width*c.height>MAX_AREA||d.length>MAX_REQUEST_SIZE)throw{message:mxResources.get("drawingTooLarge")};c="0";if("xmlpng"==b&&(c="1",b="png",null!=this.pages&&null!=this.currentPage))for(var g=0;g<this.pages.length;g++)if(this.pages[g]==this.currentPage){f="&from="+g;break}g=this.editor.graph.background;"png"==b&&r&&(g=mxConstants.NONE); return new mxXmlRequest(EXPORT_URL,"format="+b+f+"&bg="+(null!=g?g:mxConstants.NONE)+"&base64="+e+"&embedXml="+c+"&xml="+encodeURIComponent(d)+(null!=a?"&filename="+encodeURIComponent(a):""))};EditorUi.prototype.setMode=function(a,b){this.mode=a};EditorUi.prototype.loadDescriptor=function(a,b,d){var c=window.location.hash,f=mxUtils.bind(this,function(d){var f=null!=a.data?a.data:"";null!=d&&0<d.length&&(0<f.length&&(f+="\n"),f+=d);d=new LocalFile(this,"csv"!=a.format&&0<f.length?f:this.emptyDiagramXml, -null!=urlParams.title?decodeURIComponent(urlParams.title):this.defaultFilename,!0);d.getHash=function(){return c};this.fileLoaded(d);"csv"==a.format&&this.importCsv(f,mxUtils.bind(this,function(a){this.editor.undoManager.clear();this.editor.setModified(!1);this.editor.setStatus("")}));if(null!=a.update){var e=null!=a.interval?parseInt(a.interval):6E4,g=null,k=mxUtils.bind(this,function(){var c=this.currentPage;mxUtils.post(a.update,"xml="+encodeURIComponent(mxUtils.getXml(this.editor.getGraphXml())), -mxUtils.bind(this,function(a){c===this.currentPage&&(200<=a.getStatus()&&300>=a.getStatus()?(this.updateDiagram(a.getText()),l()):this.handleError({message:mxResources.get("error")+" "+a.getStatus()}))}),mxUtils.bind(this,function(a){this.handleError(a)}))}),l=mxUtils.bind(this,function(){window.clearTimeout(g);g=window.setTimeout(k,e)});this.editor.addListener("pageSelected",mxUtils.bind(this,function(){l();k()}));l();k()}null!=b&&b()});if(null!=a.url&&0<a.url.length){var e=a.url;/^https?:\/\//.test(e)&& +null!=urlParams.title?decodeURIComponent(urlParams.title):this.defaultFilename,!0);d.getHash=function(){return c};this.fileLoaded(d);"csv"==a.format&&this.importCsv(f,mxUtils.bind(this,function(a){this.editor.undoManager.clear();this.editor.setModified(!1);this.editor.setStatus("")}));if(null!=a.update){var e=null!=a.interval?parseInt(a.interval):6E4,g=null,h=mxUtils.bind(this,function(){var c=this.currentPage;mxUtils.post(a.update,"xml="+encodeURIComponent(mxUtils.getXml(this.editor.getGraphXml())), +mxUtils.bind(this,function(a){c===this.currentPage&&(200<=a.getStatus()&&300>=a.getStatus()?(this.updateDiagram(a.getText()),m()):this.handleError({message:mxResources.get("error")+" "+a.getStatus()}))}),mxUtils.bind(this,function(a){this.handleError(a)}))}),m=mxUtils.bind(this,function(){window.clearTimeout(g);g=window.setTimeout(h,e)});this.editor.addListener("pageSelected",mxUtils.bind(this,function(){m();h()}));m();h()}null!=b&&b()});if(null!=a.url&&0<a.url.length){var e=a.url;/^https?:\/\//.test(e)&& !this.isCorsEnabledForUrl(e)&&(e=PROXY_URL+"?url="+encodeURIComponent(a.url));this.loadUrl(e,mxUtils.bind(this,function(a){f(a)}),mxUtils.bind(this,function(a){null!=d&&d(a)}))}else f("")};EditorUi.prototype.updateDiagram=function(a){function c(a){var c=new mxCellOverlay(a.image||d.warningImage,a.tooltip,a.align,a.valign,a.offset);c.addListener(mxEvent.CLICK,function(c,b){editorUi.alert(a.tooltip)});return c}var b=null;if(null!=a&&0<a.length&&(b=mxUtils.parseXml(a),a=null!=b?b.documentElement:null, -null!=a&&"updates"==a.nodeName)){var d=this.editor.graph,e=d.getModel();e.beginUpdate();var l=null;try{for(a=a.firstChild;null!=a;){if("update"==a.nodeName){var n=e.getCell(a.getAttribute("id"));if(null!=n){try{var h=a.getAttribute("value");if(null!=h){var v=mxUtils.parseXml(h).documentElement;if(null!=v)if("1"==v.getAttribute("replace-value"))e.setValue(n,v);else for(var m=v.attributes,p=0;p<m.length;p++)d.setAttributeForCell(n,m[p].nodeName,0<m[p].nodeValue.length?m[p].nodeValue:null)}}catch(x){null!= -window.console&&console.log("Error in value for "+n.id+": "+x)}try{var t=a.getAttribute("style");null!=t&&d.model.setStyle(n,t)}catch(x){null!=window.console&&console.log("Error in style for "+n.id+": "+x)}try{var q=a.getAttribute("icon");if(null!=q){var u=0<q.length?JSON.parse(q):null;null!=u&&u.append||d.removeCellOverlays(n);null!=u&&d.addCellOverlay(n,c(u))}}catch(x){null!=window.console&&console.log("Error in icon for "+n.id+": "+x)}try{var G=a.getAttribute("geometry");if(null!=G){var G=JSON.parse(G), -A=d.getCellGeometry(n);if(null!=A){A=A.clone();for(key in G){var J=parseFloat(G[key]);"dx"==key?A.x+=J:"dy"==key?A.y+=J:"dw"==key?A.width+=J:"dh"==key?A.height+=J:A[key]=parseFloat(G[key])}d.model.setGeometry(n,A)}}}catch(x){null!=window.console&&console.log("Error in icon for "+n.id+": "+x)}}}else if("model"==a.nodeName){for(var K=a.firstChild;null!=K&&K.nodeType!=mxConstants.NODETYPE_ELEMENT;)K=K.nextSibling;null!=K&&(new mxCodec(a.firstChild)).decode(K,e)}else if("view"==a.nodeName){if(a.hasAttribute("scale")&& -(d.view.scale=parseFloat(a.getAttribute("scale"))),a.hasAttribute("dx")||a.hasAttribute("dy"))d.view.translate=new mxPoint(parseFloat(a.getAttribute("dx")||0),parseFloat(a.getAttribute("dy")||0))}else"fit"==a.nodeName&&(l=a.hasAttribute("max-scale")?parseFloat(a.getAttribute("max-scale")):1);a=a.nextSibling}}finally{e.endUpdate()}null!=l&&this.chromelessResize&&this.chromelessResize(!0,l)}return b};EditorUi.prototype.fileLoaded=function(a){var c=!1;this.hideDialog();var b=this.getCurrentFile();this.setCurrentFile(null); -null!=b&&(b.removeListener(this.descriptorChangedListener),b.close());this.editor.graph.model.clear();this.editor.undoManager.clear();var d=mxUtils.bind(this,function(){this.setGraphEnabled(!1);this.setCurrentFile(null);null!=b&&this.updateDocumentTitle();this.editor.graph.model.clear();this.editor.undoManager.clear();this.setBackgroundImage(null);null!=window.location.hash&&0<window.location.hash.length&&(window.location.hash="");null!=this.fname&&(this.fnameWrapper.style.display="none",this.fname.innerHTML= -"",this.fname.setAttribute("title",mxResources.get("rename")));this.editor.setStatus("");this.updateUi();this.showSplash()});if(null!=a)try{this.setCurrentFile(a);a.addListener("descriptorChanged",this.descriptorChangedListener);a.addListener("contentChanged",this.descriptorChangedListener);a.open();this.setGraphEnabled(!0);this.setMode(a.getMode());this.editor.undoManager.clear();this.descriptorChanged();this.updateUi();null==a.realtime&&(a.isEditable()?this.editor.setStatus(""):this.editor.setStatus('<span class="geStatusAlert" style="margin-left:8px;">'+ -mxUtils.htmlEntities(mxResources.get("readOnly"))+"</span>"));!this.editor.isChromelessView()||this.editor.editable?(this.editor.graph.selectUnlockedLayer(),this.showLayersDialog(),this.restoreLibraries(),window.self!==window.top&&window.focus()):this.editor.graph.isLightboxView()&&this.lightboxFit();this.chromelessResize&&this.chromelessResize();this.editor.fireEvent(new mxEventObject("fileLoaded"));c=!0;this.isOffline()||null==a.getMode()||this.logEvent({category:"File",action:"open",label:a.getMode()}); -if(this.mode==a.getMode()&&a.getMode()!=App.MODE_DEVICE&&null!=a.getMode())try{this.addRecent({id:a.getHash(),title:a.getTitle(),mode:a.getMode()})}catch(r){}try{mxSettings.setOpenCounter(mxSettings.getOpenCounter()+1),mxSettings.save()}catch(r){}}catch(r){null!=window.console&&console.log("error in fileLoaded:",a,r);if(EditorUi.enableLogging&&!this.isOffline())try{(new Image).src=(null!=window.DRAWIO_LOG_URL?window.DRAWIO_LOG_URL:"")+"/log?v="+encodeURIComponent(EditorUi.VERSION)+"&msg=errorInFileLoaded:url:"+ -encodeURIComponent(window.location.href)+(null!=r&&null!=r.message?":err:"+encodeURIComponent(r.message):"")+(null!=r&&null!=r.stack?"&stack="+encodeURIComponent(r.stack):"")}catch(l){}this.handleError(r,mxResources.get("errorLoadingFile"),mxUtils.bind(this,function(){null!=urlParams.url&&this.spinner.spin(document.body,mxResources.get("reconnecting"))?window.location.search=this.getSearch(["url"]):null!=b?b.constructor==DriveFile?this.loadFile(b.getHash()):this.fileLoaded(b):d()}))}else d();return c}; -EditorUi.prototype.descriptorChanged=function(){};EditorUi.prototype.logEvent=function(a){if(EditorUi.enableLogging)try{var c=null!=window.DRAWIO_LOG_URL?window.DRAWIO_LOG_URL:"";(new Image).src=c+"/images/1x1.png?v="+encodeURIComponent(EditorUi.VERSION)+(null!=a?"&data="+encodeURIComponent(JSON.stringify(a)):"")}catch(g){}};EditorUi.prototype.restoreLibraries=function(){};EditorUi.prototype.saveLibrary=function(a,b,d,e,r,l,n){};EditorUi.prototype.isScratchpadEnabled=function(){return isLocalStorage|| -mxClient.IS_CHROMEAPP};EditorUi.prototype.toggleScratchpad=function(){this.isScratchpadEnabled()&&(null==this.scratchpad?this.getLocalData(".scratchpad",mxUtils.bind(this,function(a){null==a&&(a=this.emptyLibraryXml);this.loadLibrary(new StorageLibrary(this,a,".scratchpad"))})):this.closeLibrary(this.scratchpad))};EditorUi.prototype.createLibraryDataFromImages=function(a){var c=mxUtils.createXmlDocument(),b=c.createElement("mxlibrary");mxUtils.setTextContent(b,JSON.stringify(a));c.appendChild(b); -return mxUtils.getXml(c)};EditorUi.prototype.closeLibrary=function(a){null!=a&&(this.removeLibrarySidebar(a.getHash()),a.constructor!=LocalLibrary&&mxSettings.removeCustomLibrary(a.getHash()),".scratchpad"==a.title&&(this.scratchpad=null))};EditorUi.prototype.removeLibrarySidebar=function(a){var c=this.sidebar.palettes[a];if(null!=c){for(var b=0;b<c.length;b++)c[b].parentNode.removeChild(c[b]);delete this.sidebar.palettes[a]}};EditorUi.prototype.repositionLibrary=function(a){var c=this.sidebar.container; -if(null==a){var b=this.sidebar.palettes["L.scratchpad"];null==b&&(b=this.sidebar.palettes.search);null!=b&&(a=b[b.length-1].nextSibling)}a=null!=a?a:c.firstChild.nextSibling.nextSibling;var b=c.lastChild,d=b.previousSibling;c.insertBefore(b,a);c.insertBefore(d,b)};EditorUi.prototype.loadLibrary=function(a){var c=mxUtils.parseXml(a.getData());if("mxlibrary"==c.documentElement.nodeName){var b=JSON.parse(mxUtils.getTextContent(c.documentElement));this.libraryLoaded(a,b,c.documentElement.getAttribute("title"))}else throw{message:mxResources.get("notALibraryFile")}; -};EditorUi.prototype.getLibraryStorageHint=function(a){return""};EditorUi.prototype.libraryLoaded=function(a,b,d){if(null!=this.sidebar){a.constructor!=LocalLibrary&&mxSettings.addCustomLibrary(a.getHash());".scratchpad"==a.title&&(this.scratchpad=a);var c=this.sidebar.palettes[a.getHash()],c=null!=c?c[c.length-1].nextSibling:null;this.removeLibrarySidebar(a.getHash());var f=null,e=mxUtils.bind(this,function(c,b){0==c.length&&a.isEditable()?(null==f&&(f=document.createElement("div"),mxUtils.setPrefixedStyle(f.style, -"borderRadius","6px"),f.style.border="3px dotted lightGray",f.style.textAlign="center",f.style.padding="8px",f.style.color="#B3B3B3",mxUtils.write(f,mxResources.get("dragElementsHere"))),b.appendChild(f)):this.addLibraryEntries(c,b)});if(null!=this.sidebar&&null!=b)for(var g=0;g<b.length;g++)mxUtils.bind(this,function(a){var c=a.data;null!=c&&null!=a.title?this.sidebar.addEntry(a.title,mxUtils.bind(this,function(){c=this.convertDataUri(c);var b="shape=image;verticalLabelPosition=bottom;verticalAlign=top;imageAspect=0;"; -"fixed"==a.aspect&&(b+="aspect=fixed;");return this.sidebar.createVertexTemplate(b+"image="+c,a.w,a.h,"",a.title||"",!1,!1,!0)})):null!=a.xml&&null!=a.title&&this.sidebar.addEntry(a.title,mxUtils.bind(this,function(){var c=this.stringToCells(this.editor.graph.decompress(a.xml));return this.sidebar.createVertexTemplateFromCells(c,a.w,a.h,a.title||"",!0,!1,!0)}))})(b[g]);d=null!=d&&0<d.length?d:a.getTitle();var h=this.sidebar.addPalette(a.getHash(),d,!0,mxUtils.bind(this,function(a){e(b,a)}));this.repositionLibrary(c); -var v=h.parentNode.previousSibling;d=v.getAttribute("title");null!=d&&0<d.length&&".scratchpad"!=a.title&&v.setAttribute("title",this.getLibraryStorageHint(a)+"\n"+d);var m=document.createElement("div");m.style.position="absolute";m.style.right="0px";m.style.top="0px";m.style.padding="8px";mxClient.IS_QUIRKS||8==document.documentMode||(m.style.backgroundColor="inherit");v.style.position="relative";var p=document.createElement("img");p.setAttribute("src",Dialog.prototype.closeImage);p.setAttribute("title", -mxResources.get("close"));p.setAttribute("valign","absmiddle");p.setAttribute("border","0");p.style.margin="0 3px";var t=null;if(".scratchpad"!=a.title||this.closableScratchpad)m.appendChild(p),mxEvent.addListener(p,"click",mxUtils.bind(this,function(c){if(!mxEvent.isConsumed(c)){var b=mxUtils.bind(this,function(){this.closeLibrary(a)});null!=t?this.confirm(mxResources.get("allChangesLost"),null,b,mxResources.get("cancel"),mxResources.get("discardChanges")):b();mxEvent.consume(c)}}));if(a.isEditable()){var q= -this.editor.graph,u=null,G=mxUtils.bind(this,function(c){this.showLibraryDialog(a.getTitle(),h,b,a,a.getMode());mxEvent.consume(c)}),A=mxUtils.bind(this,function(c){a.setModified(!0);a.isAutosave()?(null!=u&&null!=u.parentNode&&u.parentNode.removeChild(u),u=p.cloneNode(!1),u.setAttribute("src",Editor.spinImage),u.setAttribute("title",mxResources.get("saving")),u.style.cursor="default",u.style.marginRight="2px",u.style.marginTop="-2px",m.insertBefore(u,m.firstChild),v.style.paddingRight=18*m.childNodes.length+ -"px",this.saveLibrary(a.getTitle(),b,a,a.getMode(),!0,!0,function(){null!=u&&null!=u.parentNode&&(u.parentNode.removeChild(u),v.style.paddingRight=18*m.childNodes.length+"px")})):null==t&&(t=p.cloneNode(!1),t.setAttribute("src",IMAGE_PATH+"/download.png"),t.setAttribute("title",mxResources.get("save")),m.insertBefore(t,m.firstChild),mxEvent.addListener(t,"click",mxUtils.bind(this,function(c){this.saveLibrary(a.getTitle(),b,a,a.getMode(),a.constructor==LocalLibrary,!0,function(){null==t||a.isModified()|| -(v.style.paddingRight=18*m.childNodes.length+"px",t.parentNode.removeChild(t),t=null)});mxEvent.consume(c)})),v.style.paddingRight=18*m.childNodes.length+"px")}),J=mxUtils.bind(this,function(a,c,d,e){a=q.cloneCells(mxUtils.sortCells(q.model.getTopmostCells(a)));for(var g=0;g<a.length;g++){var k=q.getCellGeometry(a[g]);null!=k&&k.translate(-c.x,-c.y)}h.appendChild(this.sidebar.createVertexTemplateFromCells(a,c.width,c.height,e||"",!0,!1,!1));a={xml:this.editor.graph.compress(mxUtils.getXml(this.editor.graph.encodeCells(a))), -w:c.width,h:c.height};null!=e&&(a.title=e);b.push(a);A(d);null!=f&&null!=f.parentNode&&0<b.length&&(f.parentNode.removeChild(f),f=null)}),K=mxUtils.bind(this,function(a){if(q.isSelectionEmpty())q.getRubberband().isActive()?(q.getRubberband().execute(a),q.getRubberband().reset()):this.showError(mxResources.get("error"),mxResources.get("nothingIsSelected"),mxResources.get("ok"));else{var c=q.getSelectionCells(),b=q.view.getBounds(c),d=q.view.scale;b.x/=d;b.y/=d;b.width/=d;b.height/=d;b.x-=q.view.translate.x; -b.y-=q.view.translate.y;J(c,b)}mxEvent.consume(a)});h.style.border="3px solid transparent";mxEvent.addGestureListeners(h,function(){},mxUtils.bind(this,function(a){q.isMouseDown&&null!=q.panningManager&&null!=q.graphHandler.shape&&(q.graphHandler.shape.node.style.visibility="hidden",null!=f?f.style.border="3px dotted rgb(254, 137, 12)":h.style.border="3px dotted rgb(254, 137, 12)",h.style.cursor="copy",q.panningManager.stop(),q.autoScroll=!1,null!=q.graphHandler.guide&&q.graphHandler.guide.setVisible(!1), -null!=q.graphHandler.hint&&(q.graphHandler.hint.style.visibility="hidden"),mxEvent.consume(a))}),mxUtils.bind(this,function(a){q.isMouseDown&&null!=q.panningManager&&null!=q.graphHandler&&(h.style.border="3px solid transparent",null!=f&&(f.style.border="3px dotted lightGray"),h.style.cursor="default",this.sidebar.showTooltips=!0,q.panningManager.stop(),q.graphHandler.reset(),q.isMouseDown=!1,q.autoScroll=!0,K(a),mxEvent.consume(a))}));mxEvent.addListener(h,"mouseleave",mxUtils.bind(this,function(a){q.isMouseDown&& -null!=q.graphHandler.shape&&(q.graphHandler.shape.node.style.visibility="visible",h.style.border="3px solid transparent",h.style.cursor="",q.autoScroll=!0,null!=q.graphHandler.guide&&q.graphHandler.guide.setVisible(!0),null!=q.graphHandler.hint&&(q.graphHandler.hint.style.visibility="visible"),null!=f&&(f.style.border="3px dotted lightGray"))}));Graph.fileSupport&&(mxEvent.addListener(h,"dragover",mxUtils.bind(this,function(a){null!=f?f.style.border="3px dotted rgb(254, 137, 12)":h.style.border="3px dotted rgb(254, 137, 12)"; -a.dataTransfer.dropEffect="copy";h.style.cursor="copy";this.sidebar.hideTooltip();a.stopPropagation();a.preventDefault()})),mxEvent.addListener(h,"drop",mxUtils.bind(this,function(a){h.style.border="3px solid transparent";h.style.cursor="";null!=f&&(f.style.border="3px dotted lightGray");0<a.dataTransfer.files.length&&this.importFiles(a.dataTransfer.files,0,0,this.maxImageSize,mxUtils.bind(this,function(c,d,g,k,l,n,r,t,v){if(null!=c&&"image/"==d.substring(0,6))c="shape=image;verticalLabelPosition=bottom;verticalAlign=top;aspect=fixed;image="+ -this.convertDataUri(c),c=[new mxCell("",new mxGeometry(0,0,l,n),c)],c[0].vertex=!0,J(c,new mxRectangle(0,0,l,n),a,mxEvent.isAltDown(a)?null:r.substring(0,r.lastIndexOf(".")).replace(/_/g," ")),null!=f&&null!=f.parentNode&&0<b.length&&(f.parentNode.removeChild(f),f=null);else{var m=!1,w=mxUtils.bind(this,function(c,d){if(null!=c&&"text/xml"==d){var g=mxUtils.parseXml(c);if("mxlibrary"==g.documentElement.nodeName)try{var k=JSON.parse(mxUtils.getTextContent(g.documentElement));e(k,h);b=b.concat(k);A(a); -this.spinner.stop();m=!0}catch(Q){}else if("mxfile"==g.documentElement.nodeName)try{for(var l=g.documentElement.getElementsByTagName("diagram"),g=0;g<l.length;g++){var k=mxUtils.getTextContent(l[g]),n=this.stringToCells(this.editor.graph.decompress(k)),r=this.editor.graph.getBoundingBoxFromGeometry(n);J(n,new mxRectangle(0,0,r.width,r.height),a)}m=!0}catch(Q){null!=window.console&&console.log("error in drop handler:",Q)}}m||(this.spinner.stop(),this.handleError({message:mxResources.get("errorLoadingFile")})); -null!=f&&null!=f.parentNode&&0<b.length&&(f.parentNode.removeChild(f),f=null)});null!=v&&null!=r&&(/(\.v(dx|sdx?))($|\?)/i.test(r)||/(\.vs(x|sx?))($|\?)/i.test(r))?this.importVisio(v,function(a){w(a,"text/xml")},null,r):!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(c,r)&&null!=v?this.parseFile(v,mxUtils.bind(this,function(a){4==a.readyState&&(this.spinner.stop(),200<=a.status&&299>=a.status?w(a.responseText,"text/xml"):this.handleError({message:mxResources.get(413==a.status? -"drawingTooLarge":"invalidOrMissingFile")},mxResources.get("errorLoadingFile")))})):w(c,d)}}));a.stopPropagation();a.preventDefault()})),mxEvent.addListener(h,"dragleave",function(a){null!=f?f.style.border="3px dotted lightGray":(h.style.border="3px solid transparent",h.style.cursor="");a.stopPropagation();a.preventDefault()}));p=p.cloneNode(!1);p.setAttribute("src",Editor.editImage);p.setAttribute("title",mxResources.get("edit"));m.insertBefore(p,m.firstChild);mxEvent.addListener(p,"click",G);mxEvent.addListener(h, -"dblclick",function(a){mxEvent.getSource(a)==h&&G(a)});d=p.cloneNode(!1);d.setAttribute("src",Editor.plusImage);d.setAttribute("title",mxResources.get("add"));m.insertBefore(d,m.firstChild);mxEvent.addListener(d,"click",K);this.isOffline()||".scratchpad"!=a.title||null==EditorUi.scratchpadHelpLink||(d=document.createElement("span"),d.setAttribute("title",mxResources.get("help")),d.style.cssText="color:#a3a3a3;text-decoration:none;margin-right:2px;",mxUtils.write(d,"?"),mxEvent.addGestureListeners(d, -mxUtils.bind(this,function(a){this.openLink(EditorUi.scratchpadHelpLink);mxEvent.consume(a)})),m.insertBefore(d,m.firstChild))}v.appendChild(m);v.style.paddingRight=18*m.childNodes.length+"px"}};EditorUi.prototype.addLibraryEntries=function(a,b){for(var c=0;c<a.length;c++){var d=a[c],f=d.data;if(null!=f){var f=this.convertDataUri(f),e="shape=image;verticalLabelPosition=bottom;verticalAlign=top;imageAspect=0;";"fixed"==d.aspect&&(e+="aspect=fixed;");b.appendChild(this.sidebar.createVertexTemplate(e+ +null!=a&&"updates"==a.nodeName)){var d=this.editor.graph,e=d.getModel();e.beginUpdate();var h=null;try{for(a=a.firstChild;null!=a;){if("update"==a.nodeName){var m=e.getCell(a.getAttribute("id"));if(null!=m){try{var k=a.getAttribute("value");if(null!=k){var v=mxUtils.parseXml(k).documentElement;if(null!=v)if("1"==v.getAttribute("replace-value"))e.setValue(m,v);else for(var l=v.attributes,p=0;p<l.length;p++)d.setAttributeForCell(m,l[p].nodeName,0<l[p].nodeValue.length?l[p].nodeValue:null)}}catch(x){null!= +window.console&&console.log("Error in value for "+m.id+": "+x)}try{var t=a.getAttribute("style");null!=t&&d.model.setStyle(m,t)}catch(x){null!=window.console&&console.log("Error in style for "+m.id+": "+x)}try{var q=a.getAttribute("icon");if(null!=q){var u=0<q.length?JSON.parse(q):null;null!=u&&u.append||d.removeCellOverlays(m);null!=u&&d.addCellOverlay(m,c(u))}}catch(x){null!=window.console&&console.log("Error in icon for "+m.id+": "+x)}try{var G=a.getAttribute("geometry");if(null!=G){var G=JSON.parse(G), +B=d.getCellGeometry(m);if(null!=B){B=B.clone();for(key in G){var J=parseFloat(G[key]);"dx"==key?B.x+=J:"dy"==key?B.y+=J:"dw"==key?B.width+=J:"dh"==key?B.height+=J:B[key]=parseFloat(G[key])}d.model.setGeometry(m,B)}}}catch(x){null!=window.console&&console.log("Error in icon for "+m.id+": "+x)}}}else if("model"==a.nodeName){for(var K=a.firstChild;null!=K&&K.nodeType!=mxConstants.NODETYPE_ELEMENT;)K=K.nextSibling;null!=K&&(new mxCodec(a.firstChild)).decode(K,e)}else if("view"==a.nodeName){if(a.hasAttribute("scale")&& +(d.view.scale=parseFloat(a.getAttribute("scale"))),a.hasAttribute("dx")||a.hasAttribute("dy"))d.view.translate=new mxPoint(parseFloat(a.getAttribute("dx")||0),parseFloat(a.getAttribute("dy")||0))}else"fit"==a.nodeName&&(h=a.hasAttribute("max-scale")?parseFloat(a.getAttribute("max-scale")):1);a=a.nextSibling}}finally{e.endUpdate()}null!=h&&this.chromelessResize&&this.chromelessResize(!0,h)}return b};EditorUi.prototype.getCopyFilename=function(a,b){var c=null!=a&&null!=a.getTitle()?a.getTitle():this.defaultFilename, +d="",f=c.lastIndexOf(".");0<=f&&(d=c.substring(f),c=c.substring(0,f));if(b)var e=new Date,f=e.getFullYear(),m=e.getMonth()+1,k=e.getDate(),v=e.getHours(),l=e.getMinutes(),e=e.getSeconds(),c=c+("-"+(f+"-"+m+"-"+k+"-"+v+"-"+l+"-"+e));return c=mxResources.get("copyOf",[c])+d};EditorUi.prototype.fileLoaded=function(a){var c=!1;this.hideDialog();var b=this.getCurrentFile();this.setCurrentFile(null);null!=b&&(b.removeListener(this.descriptorChangedListener),b.close());this.editor.graph.model.clear();this.editor.undoManager.clear(); +var d=mxUtils.bind(this,function(){this.setGraphEnabled(!1);this.setCurrentFile(null);null!=b&&this.updateDocumentTitle();this.editor.graph.model.clear();this.editor.undoManager.clear();this.setBackgroundImage(null);null!=window.location.hash&&0<window.location.hash.length&&(window.location.hash="");null!=this.fname&&(this.fnameWrapper.style.display="none",this.fname.innerHTML="",this.fname.setAttribute("title",mxResources.get("rename")));this.editor.setStatus("");this.updateUi();this.showSplash()}); +if(null!=a)try{this.setCurrentFile(a);a.addListener("descriptorChanged",this.descriptorChangedListener);a.addListener("contentChanged",this.descriptorChangedListener);a.open();this.setGraphEnabled(!0);this.setMode(a.getMode());this.editor.undoManager.clear();this.descriptorChanged();this.updateUi();null==a.realtime&&(a.isEditable()?this.editor.setStatus(""):this.editor.setStatus('<span class="geStatusAlert" style="margin-left:8px;">'+mxUtils.htmlEntities(mxResources.get("readOnly"))+"</span>"));!this.editor.isChromelessView()|| +this.editor.editable?(this.editor.graph.selectUnlockedLayer(),this.showLayersDialog(),this.restoreLibraries(),window.self!==window.top&&window.focus()):this.editor.graph.isLightboxView()&&this.lightboxFit();this.chromelessResize&&this.chromelessResize();this.editor.fireEvent(new mxEventObject("fileLoaded"));c=!0;this.isOffline()||null==a.getMode()||this.logEvent({category:"File",action:"open",label:a.getMode()});if(this.mode==a.getMode()&&a.getMode()!=App.MODE_DEVICE&&null!=a.getMode())try{this.addRecent({id:a.getHash(), +title:a.getTitle(),mode:a.getMode()})}catch(r){}try{mxSettings.setOpenCounter(mxSettings.getOpenCounter()+1),mxSettings.save()}catch(r){}}catch(r){null!=window.console&&console.log("error in fileLoaded:",a,r);if(EditorUi.enableLogging&&!this.isOffline())try{(new Image).src=(null!=window.DRAWIO_LOG_URL?window.DRAWIO_LOG_URL:"")+"/log?v="+encodeURIComponent(EditorUi.VERSION)+"&msg=errorInFileLoaded:url:"+encodeURIComponent(window.location.href)+(null!=r&&null!=r.message?":err:"+encodeURIComponent(r.message): +"")+(null!=r&&null!=r.stack?"&stack="+encodeURIComponent(r.stack):"")}catch(h){}this.handleError(r,mxResources.get("errorLoadingFile"),mxUtils.bind(this,function(){null!=urlParams.url&&this.spinner.spin(document.body,mxResources.get("reconnecting"))?window.location.search=this.getSearch(["url"]):null!=b?b.constructor==DriveFile?this.loadFile(b.getHash()):this.fileLoaded(b):d()}))}else d();return c};EditorUi.prototype.descriptorChanged=function(){};EditorUi.prototype.logEvent=function(a){if(EditorUi.enableLogging)try{var c= +null!=window.DRAWIO_LOG_URL?window.DRAWIO_LOG_URL:"";(new Image).src=c+"/images/1x1.png?v="+encodeURIComponent(EditorUi.VERSION)+(null!=a?"&data="+encodeURIComponent(JSON.stringify(a)):"")}catch(g){}};EditorUi.prototype.restoreLibraries=function(){};EditorUi.prototype.saveLibrary=function(a,b,d,e,r,h,m){};EditorUi.prototype.isScratchpadEnabled=function(){return isLocalStorage||mxClient.IS_CHROMEAPP};EditorUi.prototype.toggleScratchpad=function(){this.isScratchpadEnabled()&&(null==this.scratchpad? +this.getLocalData(".scratchpad",mxUtils.bind(this,function(a){null==a&&(a=this.emptyLibraryXml);this.loadLibrary(new StorageLibrary(this,a,".scratchpad"))})):this.closeLibrary(this.scratchpad))};EditorUi.prototype.createLibraryDataFromImages=function(a){var c=mxUtils.createXmlDocument(),b=c.createElement("mxlibrary");mxUtils.setTextContent(b,JSON.stringify(a));c.appendChild(b);return mxUtils.getXml(c)};EditorUi.prototype.closeLibrary=function(a){null!=a&&(this.removeLibrarySidebar(a.getHash()),a.constructor!= +LocalLibrary&&mxSettings.removeCustomLibrary(a.getHash()),".scratchpad"==a.title&&(this.scratchpad=null))};EditorUi.prototype.removeLibrarySidebar=function(a){var c=this.sidebar.palettes[a];if(null!=c){for(var b=0;b<c.length;b++)c[b].parentNode.removeChild(c[b]);delete this.sidebar.palettes[a]}};EditorUi.prototype.repositionLibrary=function(a){var c=this.sidebar.container;if(null==a){var b=this.sidebar.palettes["L.scratchpad"];null==b&&(b=this.sidebar.palettes.search);null!=b&&(a=b[b.length-1].nextSibling)}a= +null!=a?a:c.firstChild.nextSibling.nextSibling;var b=c.lastChild,d=b.previousSibling;c.insertBefore(b,a);c.insertBefore(d,b)};EditorUi.prototype.loadLibrary=function(a){var c=mxUtils.parseXml(a.getData());if("mxlibrary"==c.documentElement.nodeName){var b=JSON.parse(mxUtils.getTextContent(c.documentElement));this.libraryLoaded(a,b,c.documentElement.getAttribute("title"))}else throw{message:mxResources.get("notALibraryFile")};};EditorUi.prototype.getLibraryStorageHint=function(a){return""};EditorUi.prototype.libraryLoaded= +function(a,b,d){if(null!=this.sidebar){a.constructor!=LocalLibrary&&mxSettings.addCustomLibrary(a.getHash());".scratchpad"==a.title&&(this.scratchpad=a);var c=this.sidebar.palettes[a.getHash()],c=null!=c?c[c.length-1].nextSibling:null;this.removeLibrarySidebar(a.getHash());var f=null,e=mxUtils.bind(this,function(c,b){0==c.length&&a.isEditable()?(null==f&&(f=document.createElement("div"),mxUtils.setPrefixedStyle(f.style,"borderRadius","6px"),f.style.border="3px dotted lightGray",f.style.textAlign= +"center",f.style.padding="8px",f.style.color="#B3B3B3",mxUtils.write(f,mxResources.get("dragElementsHere"))),b.appendChild(f)):this.addLibraryEntries(c,b)});if(null!=this.sidebar&&null!=b)for(var g=0;g<b.length;g++)mxUtils.bind(this,function(a){var c=a.data;null!=c&&null!=a.title?this.sidebar.addEntry(a.title,mxUtils.bind(this,function(){c=this.convertDataUri(c);var b="shape=image;verticalLabelPosition=bottom;verticalAlign=top;imageAspect=0;";"fixed"==a.aspect&&(b+="aspect=fixed;");return this.sidebar.createVertexTemplate(b+ +"image="+c,a.w,a.h,"",a.title||"",!1,!1,!0)})):null!=a.xml&&null!=a.title&&this.sidebar.addEntry(a.title,mxUtils.bind(this,function(){var c=this.stringToCells(this.editor.graph.decompress(a.xml));return this.sidebar.createVertexTemplateFromCells(c,a.w,a.h,a.title||"",!0,!1,!0)}))})(b[g]);d=null!=d&&0<d.length?d:a.getTitle();var k=this.sidebar.addPalette(a.getHash(),d,!0,mxUtils.bind(this,function(a){e(b,a)}));this.repositionLibrary(c);var v=k.parentNode.previousSibling;d=v.getAttribute("title");null!= +d&&0<d.length&&".scratchpad"!=a.title&&v.setAttribute("title",this.getLibraryStorageHint(a)+"\n"+d);var l=document.createElement("div");l.style.position="absolute";l.style.right="0px";l.style.top="0px";l.style.padding="8px";mxClient.IS_QUIRKS||8==document.documentMode||(l.style.backgroundColor="inherit");v.style.position="relative";var p=document.createElement("img");p.setAttribute("src",Dialog.prototype.closeImage);p.setAttribute("title",mxResources.get("close"));p.setAttribute("valign","absmiddle"); +p.setAttribute("border","0");p.style.margin="0 3px";var t=null;if(".scratchpad"!=a.title||this.closableScratchpad)l.appendChild(p),mxEvent.addListener(p,"click",mxUtils.bind(this,function(c){if(!mxEvent.isConsumed(c)){var b=mxUtils.bind(this,function(){this.closeLibrary(a)});null!=t?this.confirm(mxResources.get("allChangesLost"),null,b,mxResources.get("cancel"),mxResources.get("discardChanges")):b();mxEvent.consume(c)}}));if(a.isEditable()){var q=this.editor.graph,u=null,G=mxUtils.bind(this,function(c){this.showLibraryDialog(a.getTitle(), +k,b,a,a.getMode());mxEvent.consume(c)}),B=mxUtils.bind(this,function(c){a.setModified(!0);a.isAutosave()?(null!=u&&null!=u.parentNode&&u.parentNode.removeChild(u),u=p.cloneNode(!1),u.setAttribute("src",Editor.spinImage),u.setAttribute("title",mxResources.get("saving")),u.style.cursor="default",u.style.marginRight="2px",u.style.marginTop="-2px",l.insertBefore(u,l.firstChild),v.style.paddingRight=18*l.childNodes.length+"px",this.saveLibrary(a.getTitle(),b,a,a.getMode(),!0,!0,function(){null!=u&&null!= +u.parentNode&&(u.parentNode.removeChild(u),v.style.paddingRight=18*l.childNodes.length+"px")})):null==t&&(t=p.cloneNode(!1),t.setAttribute("src",IMAGE_PATH+"/download.png"),t.setAttribute("title",mxResources.get("save")),l.insertBefore(t,l.firstChild),mxEvent.addListener(t,"click",mxUtils.bind(this,function(c){this.saveLibrary(a.getTitle(),b,a,a.getMode(),a.constructor==LocalLibrary,!0,function(){null==t||a.isModified()||(v.style.paddingRight=18*l.childNodes.length+"px",t.parentNode.removeChild(t), +t=null)});mxEvent.consume(c)})),v.style.paddingRight=18*l.childNodes.length+"px")}),J=mxUtils.bind(this,function(a,c,d,e){a=q.cloneCells(mxUtils.sortCells(q.model.getTopmostCells(a)));for(var g=0;g<a.length;g++){var h=q.getCellGeometry(a[g]);null!=h&&h.translate(-c.x,-c.y)}k.appendChild(this.sidebar.createVertexTemplateFromCells(a,c.width,c.height,e||"",!0,!1,!1));a={xml:this.editor.graph.compress(mxUtils.getXml(this.editor.graph.encodeCells(a))),w:c.width,h:c.height};null!=e&&(a.title=e);b.push(a); +B(d);null!=f&&null!=f.parentNode&&0<b.length&&(f.parentNode.removeChild(f),f=null)}),K=mxUtils.bind(this,function(a){if(q.isSelectionEmpty())q.getRubberband().isActive()?(q.getRubberband().execute(a),q.getRubberband().reset()):this.showError(mxResources.get("error"),mxResources.get("nothingIsSelected"),mxResources.get("ok"));else{var c=q.getSelectionCells(),b=q.view.getBounds(c),d=q.view.scale;b.x/=d;b.y/=d;b.width/=d;b.height/=d;b.x-=q.view.translate.x;b.y-=q.view.translate.y;J(c,b)}mxEvent.consume(a)}); +k.style.border="3px solid transparent";mxEvent.addGestureListeners(k,function(){},mxUtils.bind(this,function(a){q.isMouseDown&&null!=q.panningManager&&null!=q.graphHandler.shape&&(q.graphHandler.shape.node.style.visibility="hidden",null!=f?f.style.border="3px dotted rgb(254, 137, 12)":k.style.border="3px dotted rgb(254, 137, 12)",k.style.cursor="copy",q.panningManager.stop(),q.autoScroll=!1,null!=q.graphHandler.guide&&q.graphHandler.guide.setVisible(!1),null!=q.graphHandler.hint&&(q.graphHandler.hint.style.visibility= +"hidden"),mxEvent.consume(a))}),mxUtils.bind(this,function(a){q.isMouseDown&&null!=q.panningManager&&null!=q.graphHandler&&(k.style.border="3px solid transparent",null!=f&&(f.style.border="3px dotted lightGray"),k.style.cursor="default",this.sidebar.showTooltips=!0,q.panningManager.stop(),q.graphHandler.reset(),q.isMouseDown=!1,q.autoScroll=!0,K(a),mxEvent.consume(a))}));mxEvent.addListener(k,"mouseleave",mxUtils.bind(this,function(a){q.isMouseDown&&null!=q.graphHandler.shape&&(q.graphHandler.shape.node.style.visibility= +"visible",k.style.border="3px solid transparent",k.style.cursor="",q.autoScroll=!0,null!=q.graphHandler.guide&&q.graphHandler.guide.setVisible(!0),null!=q.graphHandler.hint&&(q.graphHandler.hint.style.visibility="visible"),null!=f&&(f.style.border="3px dotted lightGray"))}));Graph.fileSupport&&(mxEvent.addListener(k,"dragover",mxUtils.bind(this,function(a){null!=f?f.style.border="3px dotted rgb(254, 137, 12)":k.style.border="3px dotted rgb(254, 137, 12)";a.dataTransfer.dropEffect="copy";k.style.cursor= +"copy";this.sidebar.hideTooltip();a.stopPropagation();a.preventDefault()})),mxEvent.addListener(k,"drop",mxUtils.bind(this,function(a){k.style.border="3px solid transparent";k.style.cursor="";null!=f&&(f.style.border="3px dotted lightGray");0<a.dataTransfer.files.length&&this.importFiles(a.dataTransfer.files,0,0,this.maxImageSize,mxUtils.bind(this,function(c,d,g,h,m,n,r,t,v){if(null!=c&&"image/"==d.substring(0,6))c="shape=image;verticalLabelPosition=bottom;verticalAlign=top;aspect=fixed;image="+this.convertDataUri(c), +c=[new mxCell("",new mxGeometry(0,0,m,n),c)],c[0].vertex=!0,J(c,new mxRectangle(0,0,m,n),a,mxEvent.isAltDown(a)?null:r.substring(0,r.lastIndexOf(".")).replace(/_/g," ")),null!=f&&null!=f.parentNode&&0<b.length&&(f.parentNode.removeChild(f),f=null);else{var l=!1,w=mxUtils.bind(this,function(c,d){if(null!=c&&"text/xml"==d){var g=mxUtils.parseXml(c);if("mxlibrary"==g.documentElement.nodeName)try{var h=JSON.parse(mxUtils.getTextContent(g.documentElement));e(h,k);b=b.concat(h);B(a);this.spinner.stop(); +l=!0}catch(Q){}else if("mxfile"==g.documentElement.nodeName)try{for(var m=g.documentElement.getElementsByTagName("diagram"),g=0;g<m.length;g++){var h=mxUtils.getTextContent(m[g]),n=this.stringToCells(this.editor.graph.decompress(h)),r=this.editor.graph.getBoundingBoxFromGeometry(n);J(n,new mxRectangle(0,0,r.width,r.height),a)}l=!0}catch(Q){null!=window.console&&console.log("error in drop handler:",Q)}}l||(this.spinner.stop(),this.handleError({message:mxResources.get("errorLoadingFile")}));null!=f&& +null!=f.parentNode&&0<b.length&&(f.parentNode.removeChild(f),f=null)});null!=v&&null!=r&&(/(\.v(dx|sdx?))($|\?)/i.test(r)||/(\.vs(x|sx?))($|\?)/i.test(r))?this.importVisio(v,function(a){w(a,"text/xml")},null,r):!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(c,r)&&null!=v?this.parseFile(v,mxUtils.bind(this,function(a){4==a.readyState&&(this.spinner.stop(),200<=a.status&&299>=a.status?w(a.responseText,"text/xml"):this.handleError({message:mxResources.get(413==a.status?"drawingTooLarge": +"invalidOrMissingFile")},mxResources.get("errorLoadingFile")))})):w(c,d)}}));a.stopPropagation();a.preventDefault()})),mxEvent.addListener(k,"dragleave",function(a){null!=f?f.style.border="3px dotted lightGray":(k.style.border="3px solid transparent",k.style.cursor="");a.stopPropagation();a.preventDefault()}));p=p.cloneNode(!1);p.setAttribute("src",Editor.editImage);p.setAttribute("title",mxResources.get("edit"));l.insertBefore(p,l.firstChild);mxEvent.addListener(p,"click",G);mxEvent.addListener(k, +"dblclick",function(a){mxEvent.getSource(a)==k&&G(a)});d=p.cloneNode(!1);d.setAttribute("src",Editor.plusImage);d.setAttribute("title",mxResources.get("add"));l.insertBefore(d,l.firstChild);mxEvent.addListener(d,"click",K);this.isOffline()||".scratchpad"!=a.title||null==EditorUi.scratchpadHelpLink||(d=document.createElement("span"),d.setAttribute("title",mxResources.get("help")),d.style.cssText="color:#a3a3a3;text-decoration:none;margin-right:2px;",mxUtils.write(d,"?"),mxEvent.addGestureListeners(d, +mxUtils.bind(this,function(a){this.openLink(EditorUi.scratchpadHelpLink);mxEvent.consume(a)})),l.insertBefore(d,l.firstChild))}v.appendChild(l);v.style.paddingRight=18*l.childNodes.length+"px"}};EditorUi.prototype.addLibraryEntries=function(a,b){for(var c=0;c<a.length;c++){var d=a[c],f=d.data;if(null!=f){var f=this.convertDataUri(f),e="shape=image;verticalLabelPosition=bottom;verticalAlign=top;imageAspect=0;";"fixed"==d.aspect&&(e+="aspect=fixed;");b.appendChild(this.sidebar.createVertexTemplate(e+ "image="+f,d.w,d.h,"",d.title||"",!1,!1,!0))}else null!=d.xml&&(f=this.stringToCells(this.editor.graph.decompress(d.xml)),0<f.length&&b.appendChild(this.sidebar.createVertexTemplateFromCells(f,d.w,d.h,d.title||"",!0,!1,!0)))}};EditorUi.prototype.getResource=function(a){return null!=a?a[mxLanguage]||a.main:null};"1"==urlParams.offline||EditorUi.isElectronApp?EditorUi.prototype.footerHeight=4:("1"==urlParams.savesidebar&&(Sidebar.prototype.thumbWidth=64,Sidebar.prototype.thumbHeight=64),EditorUi.prototype.footerHeight= 760<=screen.width&&240<=screen.height?46:0,EditorUi.prototype.createFooter=function(){var a=document.getElementById("geFooter");if(null!=a){a.style.visibility="visible";var b=document.createElement("img");b.setAttribute("border","0");b.setAttribute("src",Dialog.prototype.closeImage);b.setAttribute("title",mxResources.get("hide"));a.appendChild(b);mxClient.IS_QUIRKS&&(b.style.position="relative",b.style.styleFloat="right",b.style.top="-30px",b.style.left="164px",b.style.cursor="pointer");mxEvent.addListener(b, "click",mxUtils.bind(this,function(){this.hideFooter()}))}return a});EditorUi.initTheme=function(){"atlas"==uiTheme?(mxClient.link("stylesheet",STYLE_PATH+"/atlas.css"),"undefined"!==typeof Toolbar&&(Toolbar.prototype.unselectedBackground=mxClient.IS_QUIRKS?"none":"linear-gradient(rgb(255, 255, 255) 0px, rgb(242, 242, 242) 100%)",Toolbar.prototype.selectedBackground="rgb(242, 242, 242)"),Editor.prototype.initialTopSpacing=3,EditorUi.prototype.menubarHeight=41,EditorUi.prototype.toolbarHeight=38,EditorUi.prototype.hsplitPosition= 188,Sidebar.prototype.thumbWidth=46,Sidebar.prototype.thumbHeight=46,Sidebar.prototype.thumbPadding=5<=document.documentMode?0:1,Sidebar.prototype.thumbBorder=2):"dark"==uiTheme&&(mxClient.link("stylesheet",STYLE_PATH+"/dark.css"),Dialog.backdropColor="#2a2a2a",Graph.prototype.defaultThemeName="darkTheme",Graph.prototype.defaultPageBackgroundColor="#2a2a2a",Graph.prototype.defaultGraphBackground=null,Graph.prototype.defaultPageBorderColor="#505759",Graph.prototype.svgShadowColor="#e0e0e0",Graph.prototype.svgShadowOpacity= "0.6",Graph.prototype.svgShadowSize="0.8",Graph.prototype.svgShadowBlur="1.4",Format.prototype.inactiveTabBackgroundColor="black",BaseFormatPanel.prototype.buttonBackgroundColor="#2a2a2a",Sidebar.prototype.dragPreviewBorder="1px dashed #cccccc",mxGraphHandler.prototype.previewColor="#cccccc",StyleFormatPanel.prototype.defaultStrokeColor="#cccccc",mxClient.IS_SVG&&(Editor.helpImage="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAP1BMVEUAAAD///////////////////////////////////////////////////////////////////////////////9Du/pqAAAAFXRSTlMAT30qCJRBboyDZyCgRzUUdF46MJlgXETgAAAAeklEQVQY022O2w4DIQhEQUURda/9/28tUO2+7CQS5sgQ4F1RapX78YUwRqQjTU8ILqQfKerTKTvACJ4nLX3krt+8aS82oI8aQC4KavRgtvEW/mDvsICgA03PSGRr79MqX1YPNIxzjyqtw8ZnnRo4t5a5undtJYRywau+ds4Cyza3E6YAAAAASUVORK5CYII=", Editor.checkmarkImage="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABUAAAAVCAMAAACeyVWkAAAARVBMVEUAAACZmZkICAgEBASNjY2Dg4MYGBiTk5N5eXl1dXVmZmZQUFBCQkI3NzceHh4MDAykpKSJiYl+fn5sbGxaWlo/Pz8SEhK96uPlAAAAAXRSTlMAQObYZgAAAE5JREFUGNPFzTcSgDAQQ1HJGUfy/Y9K7V1qeOUfzQifCQZai1XHaz11LFysbDbzgDSSWMZiETz3+b8yNUc/MMsktxuC8XQBSncdLwz+8gCCggGXzBcozAAAAABJRU5ErkJggg=="))};EditorUi.initTheme();EditorUi.prototype.hideFooter=function(){var a=document.getElementById("geFooter");null!=a&&(this.footerHeight=0,a.style.display= -"none",this.refresh())};EditorUi.prototype.showFooter=function(a){var c=document.getElementById("geFooter");null!=c&&(this.footerHeight=a,c.style.display="inline",this.refresh())};EditorUi.prototype.showImageDialog=function(a,b,d,e,h){a=new ImageDialog(this,a,b,d,e,h);this.showDialog(a.container,Graph.fileSupport?440:360,Graph.fileSupport?200:90,!0,!0);a.init()};EditorUi.prototype.showBackgroundImageDialog=function(a){a=null!=a?a:mxUtils.bind(this,function(a){a=new ChangePageSetup(this,null,a);a.ignoreColor= -!0;this.editor.graph.model.execute(a)});var c=new BackgroundImageDialog(this,mxUtils.bind(this,function(c){a(c)}));this.showDialog(c.container,360,200,!0,!0);c.init()};EditorUi.prototype.showLibraryDialog=function(a,b,d,e,h){a=new LibraryDialog(this,a,b,d,e,h);this.showDialog(a.container,620,440,!0,!1,mxUtils.bind(this,function(a){a&&null==this.getCurrentFile()&&"1"!=urlParams.embed&&this.showSplash()}));a.init()};EditorUi.prototype.createSidebarFooterContainer=function(){var a=this.createDiv("geSidebarContainer"); +"none",this.refresh())};EditorUi.prototype.showFooter=function(a){var c=document.getElementById("geFooter");null!=c&&(this.footerHeight=a,c.style.display="inline",this.refresh())};EditorUi.prototype.showImageDialog=function(a,b,d,e,k){a=new ImageDialog(this,a,b,d,e,k);this.showDialog(a.container,Graph.fileSupport?440:360,Graph.fileSupport?200:90,!0,!0);a.init()};EditorUi.prototype.showBackgroundImageDialog=function(a){a=null!=a?a:mxUtils.bind(this,function(a){a=new ChangePageSetup(this,null,a);a.ignoreColor= +!0;this.editor.graph.model.execute(a)});var c=new BackgroundImageDialog(this,mxUtils.bind(this,function(c){a(c)}));this.showDialog(c.container,360,200,!0,!0);c.init()};EditorUi.prototype.showLibraryDialog=function(a,b,d,e,k){a=new LibraryDialog(this,a,b,d,e,k);this.showDialog(a.container,620,440,!0,!1,mxUtils.bind(this,function(a){a&&null==this.getCurrentFile()&&"1"!=urlParams.embed&&this.showSplash()}));a.init()};EditorUi.prototype.createSidebarFooterContainer=function(){var a=this.createDiv("geSidebarContainer"); a.style.position="absolute";a.style.overflow="hidden";a.style.borderWidth="3px";var b=document.createElement("a");b.setAttribute("href","javascript:void(0);");b.className="geTitle";b.style.height="100%";b.style.paddingTop="9px";mxUtils.write(b,mxResources.get("moreShapes")+"...");mxEvent.addListener(b,"click",mxUtils.bind(this,function(a){this.actions.get("shapes").funct();mxEvent.consume(a)}));a.appendChild(b);return a};EditorUi.prototype.handleError=function(a,b,d){var c=null!=this.spinner&&null!= this.spinner.pause?this.spinner.pause():function(){},f=null!=a&&null!=a.error?a.error:a;if(null!=f||null!=b){a=mxUtils.htmlEntities(mxResources.get("unknownError"));var e=mxResources.get("ok"),g=null;b=null!=b?b:mxResources.get("error");if(null!=f)if(null!=f.retry&&(e=mxResources.get("cancel"),g=function(){c();f.retry()}),"undefined"!=typeof gapi&&"undefined"!=typeof gapi.drive&&"undefined"!=typeof gapi.drive.realtime&&f.type==gapi.drive.realtime.ErrorType.FORBIDDEN)a=mxUtils.htmlEntities(mxResources.get("forbidden")); -else if(404==f.code||404==f.status||"undefined"!=typeof gapi&&"undefined"!=typeof gapi.drive&&"undefined"!=typeof gapi.drive.realtime&&f.type==gapi.drive.realtime.ErrorType.NOT_FOUND){a=mxUtils.htmlEntities(mxResources.get("fileNotFoundOrDenied"));var h=window.location.hash;null!=h&&"#G"==h.substring(0,2)&&(h=h.substring(2),a+=' <a href="https://drive.google.com/open?id='+h+'" target="_blank">'+mxUtils.htmlEntities(mxResources.get("tryOpeningViaThisPage"))+"</a>")}else null!=f.message?a=mxUtils.htmlEntities(f.message): -null!=f.response&&null!=f.response.error?a=mxUtils.htmlEntities(f.response.error):"undefined"!==window.App&&(f.code==App.ERROR_TIMEOUT?a=mxUtils.htmlEntities(mxResources.get("timeout")):f.code==App.ERROR_BUSY&&(a=mxUtils.htmlEntities(mxResources.get("busy"))));this.showError(b,a,e,d,g)}else null!=d&&d()};EditorUi.prototype.showError=function(a,b,d,e,h,l,n,m,v,p,q,t){a=new ErrorDialog(this,a,b,d||mxResources.get("ok"),e,h,l,n,t,m,v);this.showDialog(a.container,p||340,q||150,!0,!1);a.init()};EditorUi.prototype.alert= -function(a,b){var c=new ErrorDialog(this,null,a,mxResources.get("ok"),b);this.showDialog(c.container,340,100,!0,!1);c.init()};EditorUi.prototype.confirm=function(a,b,d,e,h){var c=null!=this.spinner&&null!=this.spinner.pause?this.spinner.pause():function(){};this.showDialog((new ConfirmDialog(this,a,function(){c();null!=b&&b()},function(){c();null!=d&&d()},e,h)).container,340,90,!0,!1)};EditorUi.prototype.setCurrentFile=function(a){this.currentFile=a};EditorUi.prototype.getCurrentFile=function(){return this.currentFile}; +else if(404==f.code||404==f.status||"undefined"!=typeof gapi&&"undefined"!=typeof gapi.drive&&"undefined"!=typeof gapi.drive.realtime&&f.type==gapi.drive.realtime.ErrorType.NOT_FOUND){a=mxUtils.htmlEntities(mxResources.get("fileNotFoundOrDenied"));var k=window.location.hash;null!=k&&"#G"==k.substring(0,2)&&(k=k.substring(2),a+=' <a href="https://drive.google.com/open?id='+k+'" target="_blank">'+mxUtils.htmlEntities(mxResources.get("tryOpeningViaThisPage"))+"</a>")}else null!=f.message?a=mxUtils.htmlEntities(f.message): +null!=f.response&&null!=f.response.error?a=mxUtils.htmlEntities(f.response.error):"undefined"!==window.App&&(f.code==App.ERROR_TIMEOUT?a=mxUtils.htmlEntities(mxResources.get("timeout")):f.code==App.ERROR_BUSY&&(a=mxUtils.htmlEntities(mxResources.get("busy"))));this.showError(b,a,e,d,g)}else null!=d&&d()};EditorUi.prototype.showError=function(a,b,d,e,k,h,m,l,v,p,q,t){a=new ErrorDialog(this,a,b,d||mxResources.get("ok"),e,k,h,m,t,l,v);this.showDialog(a.container,p||340,q||150,!0,!1);a.init()};EditorUi.prototype.alert= +function(a,b){var c=new ErrorDialog(this,null,a,mxResources.get("ok"),b);this.showDialog(c.container,340,100,!0,!1);c.init()};EditorUi.prototype.confirm=function(a,b,d,e,k){var c=null!=this.spinner&&null!=this.spinner.pause?this.spinner.pause():function(){};this.showDialog((new ConfirmDialog(this,a,function(){c();null!=b&&b()},function(){c();null!=d&&d()},e,k)).container,340,90,!0,!1)};EditorUi.prototype.setCurrentFile=function(a){this.currentFile=a};EditorUi.prototype.getCurrentFile=function(){return this.currentFile}; EditorUi.prototype.isExportToCanvas=function(){return mxClient.IS_CHROMEAPP||!this.editor.graph.mathEnabled&&this.useCanvasForExport};EditorUi.prototype.createSvgDataUri=function(a){return"data:image/svg+xml;base64,"+btoa(unescape(encodeURIComponent(a)))};EditorUi.prototype.createImageDataUri=function(a,b,d){var c=a.toDataURL("image/"+d);if(6>=c.length||c==a.cloneNode(!1).toDataURL("image/"+d))throw{message:"Invalid image"};null!=b&&(c=this.writeGraphModelToPng(c,"zTXt","mxGraphModel",atob(this.editor.graph.compress(b)))); return c};EditorUi.prototype.saveCanvas=function(a,b,d){var c="jpeg"==d?"jpg":d,f=this.getBaseFilename()+"."+c;a=this.createImageDataUri(a,b,d);this.saveData(f,c,a.substring(a.lastIndexOf(",")+1),"image/"+d,!0)};EditorUi.prototype.isLocalFileSave=function(){return"remote"!=urlParams.save&&(mxClient.IS_IE||"undefined"!==typeof window.Blob&&"undefined"!==typeof window.URL)&&9!=document.documentMode&&8!=document.documentMode&&7!=document.documentMode&&!mxClient.IS_QUIRKS||this.isOfflineApp()||mxClient.IS_IOS}; -EditorUi.prototype.doSaveLocalFile=function(a,b,d,e,h){if(window.Blob&&navigator.msSaveOrOpenBlob)a=e?this.base64ToBlob(a,d):new Blob([a],{type:d}),navigator.msSaveOrOpenBlob(a,b);else if(mxClient.IS_IE)d=window.open("about:blank","_blank"),null==d?mxUtils.popup(a,!0):(d.document.write(a),d.document.close(),d.document.execCommand("SaveAs",!0,b),d.close());else if(mxClient.IS_IOS)b=new TextareaDialog(this,b+":",a,null,null,mxResources.get("close")),b.textarea.style.width="600px",b.textarea.style.height= +EditorUi.prototype.doSaveLocalFile=function(a,b,d,e,k){if(window.Blob&&navigator.msSaveOrOpenBlob)a=e?this.base64ToBlob(a,d):new Blob([a],{type:d}),navigator.msSaveOrOpenBlob(a,b);else if(mxClient.IS_IE)d=window.open("about:blank","_blank"),null==d?mxUtils.popup(a,!0):(d.document.write(a),d.document.close(),d.document.execCommand("SaveAs",!0,b),d.close());else if(mxClient.IS_IOS)b=new TextareaDialog(this,b+":",a,null,null,mxResources.get("close")),b.textarea.style.width="600px",b.textarea.style.height= "380px",this.showDialog(b.container,620,460,!0,!0),b.init(),document.execCommand("selectall",!1,null);else{var c=document.createElement("a"),f=!mxClient.IS_SF&&0>navigator.userAgent.indexOf("PaleMoon/")&&"undefined"!==typeof c.download;if(mxClient.IS_GC)var g=navigator.userAgent.match(/Chrom(e|ium)\/([0-9]+)\./),f=65==(g?parseInt(g[2],10):!1)?!1:f;if(f||this.isOffline()){c.href=URL.createObjectURL(e?this.base64ToBlob(a,d):new Blob([a],{type:d}));f?c.download=b:c.setAttribute("target","_blank");document.body.appendChild(c); -try{window.setTimeout(function(){URL.revokeObjectURL(c.href)},0),c.click(),c.parentNode.removeChild(c)}catch(v){}}else this.createEchoRequest(a,b,d,e,h).simulate(document,"_blank")}};EditorUi.prototype.createEchoRequest=function(a,b,d,e,h,l){a="xml="+encodeURIComponent(a);return new mxXmlRequest(SAVE_URL,a+(null!=d?"&mime="+d:"")+(null!=h?"&format="+h:"")+(null!=l?"&base64="+l:"")+(null!=b?"&filename="+encodeURIComponent(b):"")+(e?"&binary=1":""))};EditorUi.prototype.base64ToBlob=function(a,b){b= -b||"";for(var c=atob(a),d=c.length,f=Math.ceil(d/1024),e=Array(f),n=0;n<f;++n){for(var h=1024*n,v=Math.min(h+1024,d),m=Array(v-h),p=0;h<v;++p,++h)m[p]=c[h].charCodeAt(0);e[n]=new Uint8Array(m)}return new Blob(e,{type:b})};EditorUi.prototype.saveLocalFile=function(a,b,d,e,h,l,n){l=null!=l?l:!1;n=null!=n?n:"vsdx"!=h&&(!mxClient.IS_IOS||!navigator.standalone);h=this.getServiceCount(l);b=new CreateDialog(this,b,mxUtils.bind(this,function(c,b){try{if("_blank"==b)if(null==d||"image/"!=d.substring(0,6)|| +try{window.setTimeout(function(){URL.revokeObjectURL(c.href)},0),c.click(),c.parentNode.removeChild(c)}catch(v){}}else this.createEchoRequest(a,b,d,e,k).simulate(document,"_blank")}};EditorUi.prototype.createEchoRequest=function(a,b,d,e,k,h){a="xml="+encodeURIComponent(a);return new mxXmlRequest(SAVE_URL,a+(null!=d?"&mime="+d:"")+(null!=k?"&format="+k:"")+(null!=h?"&base64="+h:"")+(null!=b?"&filename="+encodeURIComponent(b):"")+(e?"&binary=1":""))};EditorUi.prototype.base64ToBlob=function(a,b){b= +b||"";for(var c=atob(a),d=c.length,f=Math.ceil(d/1024),e=Array(f),m=0;m<f;++m){for(var k=1024*m,v=Math.min(k+1024,d),l=Array(v-k),p=0;k<v;++p,++k)l[p]=c[k].charCodeAt(0);e[m]=new Uint8Array(l)}return new Blob(e,{type:b})};EditorUi.prototype.saveLocalFile=function(a,b,d,e,k,h,m){h=null!=h?h:!1;m=null!=m?m:"vsdx"!=k&&(!mxClient.IS_IOS||!navigator.standalone);k=this.getServiceCount(h);b=new CreateDialog(this,b,mxUtils.bind(this,function(c,b){try{if("_blank"==b)if(null==d||"image/"!=d.substring(0,6)|| "image/svg"==d.substring(0,9)&&!mxClient.IS_SVG){var f=window.open("about:blank");null==f?mxUtils.popup(a,!0):(f.document.write(mxUtils.htmlEntities(a,!1)),f.document.close())}else this.openInNewWindow(a,d,e);else b==App.MODE_DEVICE||"download"==b?this.doSaveLocalFile(a,c,d,e):null!=c&&0<c.length&&this.pickFolder(b,mxUtils.bind(this,function(f){try{this.exportFile(a,c,d,e,b,f)}catch(t){this.handleError(t)}}))}catch(y){this.handleError(y)}}),mxUtils.bind(this,function(){this.hideDialog()}),mxResources.get("saveAs"), -mxResources.get("download"),!1,l,n,null,1<h,4<h&&(!l||6>h)?3:4,a,d,e);this.showDialog(b.container,420,h==(mxClient.IS_IOS?0:1)?160:4<h?390:270,!0,!0);b.init()};EditorUi.prototype.openInNewWindow=function(a,b,d){if(mxClient.IS_GC||mxClient.IS_EDGE||11==document.documentMode||10==document.documentMode){var c=window.open("about:blank");null==c?mxUtils.popup(a,!0):("image/svg+xml"==b?c.document.write("<html>"+a+"</html>"):c.document.write('<html><img src="data:'+b+(d?";base64,"+a:";charset=utf8,"+encodeURIComponent(a))+ -'"/></html>'),c.document.close())}else c=window.open("data:"+b+(d?";base64,"+a:";charset=utf8,"+encodeURIComponent(a))),null==c&&mxUtils.popup(a,!0)};var d=EditorUi.prototype.addChromelessToolbarItems;EditorUi.prototype.addChromelessToolbarItems=function(a){if(this.isExportToCanvas()){this.exportDialog=null;var c=a(mxUtils.bind(this,function(a){var b=mxUtils.bind(this,function(){mxEvent.removeListener(this.editor.graph.container,"click",b);null!=this.exportDialog&&(this.exportDialog.parentNode.removeChild(this.exportDialog), +mxResources.get("download"),!1,h,m,null,1<k,4<k&&(!h||6>k)?3:4,a,d,e);this.showDialog(b.container,420,k==(mxClient.IS_IOS?0:1)?160:4<k?390:270,!0,!0);b.init()};EditorUi.prototype.openInNewWindow=function(a,b,d){if(mxClient.IS_GC||mxClient.IS_EDGE||11==document.documentMode||10==document.documentMode){var c=window.open("about:blank");null==c?mxUtils.popup(a,!0):("image/svg+xml"==b?c.document.write("<html>"+a+"</html>"):c.document.write('<html><img src="data:'+b+(d?";base64,"+a:";charset=utf8,"+encodeURIComponent(a))+ +'"/></html>'),c.document.close())}else c=window.open("data:"+b+(d?";base64,"+a:";charset=utf8,"+encodeURIComponent(a))),null==c&&mxUtils.popup(a,!0)};var b=EditorUi.prototype.addChromelessToolbarItems;EditorUi.prototype.addChromelessToolbarItems=function(a){if(this.isExportToCanvas()){this.exportDialog=null;var c=a(mxUtils.bind(this,function(a){var b=mxUtils.bind(this,function(){mxEvent.removeListener(this.editor.graph.container,"click",b);null!=this.exportDialog&&(this.exportDialog.parentNode.removeChild(this.exportDialog), this.exportDialog=null)});if(null!=this.exportDialog)b.apply(this);else{this.exportDialog=document.createElement("div");var d=c.getBoundingClientRect();mxUtils.setPrefixedStyle(this.exportDialog.style,"borderRadius","5px");this.exportDialog.style.position="fixed";this.exportDialog.style.textAlign="center";this.exportDialog.style.fontFamily="Helvetica,Arial";this.exportDialog.style.backgroundColor="#000000";this.exportDialog.style.width="50px";this.exportDialog.style.height="50px";this.exportDialog.style.padding= "4px 2px 4px 2px";this.exportDialog.style.color="#ffffff";mxUtils.setOpacity(this.exportDialog,70);this.exportDialog.style.left=d.left+"px";this.exportDialog.style.bottom=parseInt(this.chromelessToolbar.style.bottom)+this.chromelessToolbar.offsetHeight+4+"px";d=mxUtils.getCurrentStyle(this.editor.graph.container);this.exportDialog.style.zIndex=d.zIndex;var f=new Spinner({lines:8,length:6,width:5,radius:6,rotate:0,color:"#fff",speed:1.5,trail:60,shadow:!1,hwaccel:!1,top:"28px",zIndex:2E9});f.spin(this.exportDialog); this.exportToCanvas(mxUtils.bind(this,function(a){f.stop();this.exportDialog.style.width="auto";this.exportDialog.style.height="auto";this.exportDialog.style.padding="10px";var c=this.createImageDataUri(a,null,"png");a=document.createElement("img");a.style.maxWidth="140px";a.style.maxHeight="140px";a.style.cursor="pointer";a.style.backgroundColor="white";a.setAttribute("title",mxResources.get("openInNewWindow"));a.setAttribute("border","0");a.setAttribute("src",c);this.exportDialog.appendChild(a); -mxEvent.addListener(a,"click",mxUtils.bind(this,function(){this.openInNewWindow(c.substring(c.indexOf(",")+1),"image/png",!0);b.apply(this,arguments)}))}),null,this.thumbImageCache,null,mxUtils.bind(this,function(a){this.spinner.stop();this.handleError(a)}));mxEvent.addListener(this.editor.graph.container,"click",b);document.body.appendChild(this.exportDialog)}mxEvent.consume(a)}),Editor.cameraLargeImage,mxResources.get("export"))}d.apply(this,arguments)};EditorUi.prototype.saveData=function(a,b, -d,e,h){this.isLocalFileSave()?this.saveLocalFile(d,a,e,h,b):this.saveRequest(a,b,mxUtils.bind(this,function(a,c){return this.createEchoRequest(d,a,e,h,b,c)}),d,h,e)};EditorUi.prototype.saveRequest=function(a,b,d,e,h,l,n){n=null!=n?n:!mxClient.IS_IOS||!navigator.standalone;var c=this.getServiceCount(!1);a=new CreateDialog(this,a,mxUtils.bind(this,function(a,c){if("_blank"==c||null!=a&&0<a.length){var f=d("_blank"==c?null:a,c==App.MODE_DEVICE||"download"==c||null==c||"_blank"==c?"0":"1");null!=f&&(c== -App.MODE_DEVICE||"download"==c||"_blank"==c?f.simulate(document,"_blank"):this.pickFolder(c,mxUtils.bind(this,function(d){l=null!=l?l:"pdf"==b?"application/pdf":"image/"+b;if(null!=e)try{this.exportFile(e,a,l,!0,c,d)}catch(z){this.handleError(z)}else this.spinner.spin(document.body,mxResources.get("saving"))&&f.send(mxUtils.bind(this,function(){this.spinner.stop();if(200<=f.getStatus()&&299>=f.getStatus())try{this.exportFile(f.getText(),a,l,!0,c,d)}catch(z){this.handleError(z)}else this.handleError({message:mxResources.get("errorSavingFile")})}), -function(a){this.spinner.stop();this.handleError(a)})})))}}),mxUtils.bind(this,function(){this.hideDialog()}),mxResources.get("saveAs"),mxResources.get("download"),!1,!1,n,null,1<c,4<c?3:4,e,l,h);this.showDialog(a.container,380,c==(mxClient.IS_IOS?0:1)?160:4<c?390:270,!0,!0);a.init()};EditorUi.prototype.getEditBlankXml=function(){return this.getFileData(!0)};EditorUi.prototype.exportFile=function(a,b,d,e,h,l){};EditorUi.prototype.pickFolder=function(a,b,d){b(null)};EditorUi.prototype.exportSvg=function(a, -b,d,e,h,l,n,m,v,p){if(this.spinner.spin(document.body,mxResources.get("export"))){var c=this.editor.graph.isSelectionEmpty();d=null!=d?d:c;c=b?null:this.editor.graph.background;c==mxConstants.NONE&&(c=null);null==c&&0==b&&(c="#ffffff");var f=this.editor.graph.getSvg(c,a,n,m,null,d,null,null,"blank"==p?"_blank":"self"==p?"_top":null);e&&this.editor.graph.addSvgShadow(f);var g=this.getBaseFilename()+".svg",k=mxUtils.bind(this,function(a){this.spinner.stop();h&&a.setAttribute("content",this.getFileData(!0, +mxEvent.addListener(a,"click",mxUtils.bind(this,function(){this.openInNewWindow(c.substring(c.indexOf(",")+1),"image/png",!0);b.apply(this,arguments)}))}),null,this.thumbImageCache,null,mxUtils.bind(this,function(a){this.spinner.stop();this.handleError(a)}));mxEvent.addListener(this.editor.graph.container,"click",b);document.body.appendChild(this.exportDialog)}mxEvent.consume(a)}),Editor.cameraLargeImage,mxResources.get("export"))}b.apply(this,arguments)};EditorUi.prototype.saveData=function(a,b, +d,e,k){this.isLocalFileSave()?this.saveLocalFile(d,a,e,k,b):this.saveRequest(a,b,mxUtils.bind(this,function(a,c){return this.createEchoRequest(d,a,e,k,b,c)}),d,k,e)};EditorUi.prototype.saveRequest=function(a,b,d,e,k,h,m){m=null!=m?m:!mxClient.IS_IOS||!navigator.standalone;var c=this.getServiceCount(!1);a=new CreateDialog(this,a,mxUtils.bind(this,function(a,c){if("_blank"==c||null!=a&&0<a.length){var f=d("_blank"==c?null:a,c==App.MODE_DEVICE||"download"==c||null==c||"_blank"==c?"0":"1");null!=f&&(c== +App.MODE_DEVICE||"download"==c||"_blank"==c?f.simulate(document,"_blank"):this.pickFolder(c,mxUtils.bind(this,function(d){h=null!=h?h:"pdf"==b?"application/pdf":"image/"+b;if(null!=e)try{this.exportFile(e,a,h,!0,c,d)}catch(z){this.handleError(z)}else this.spinner.spin(document.body,mxResources.get("saving"))&&f.send(mxUtils.bind(this,function(){this.spinner.stop();if(200<=f.getStatus()&&299>=f.getStatus())try{this.exportFile(f.getText(),a,h,!0,c,d)}catch(z){this.handleError(z)}else this.handleError({message:mxResources.get("errorSavingFile")})}), +function(a){this.spinner.stop();this.handleError(a)})})))}}),mxUtils.bind(this,function(){this.hideDialog()}),mxResources.get("saveAs"),mxResources.get("download"),!1,!1,m,null,1<c,4<c?3:4,e,h,k);this.showDialog(a.container,380,c==(mxClient.IS_IOS?0:1)?160:4<c?390:270,!0,!0);a.init()};EditorUi.prototype.getEditBlankXml=function(){return this.getFileData(!0)};EditorUi.prototype.exportFile=function(a,b,d,e,k,h){};EditorUi.prototype.pickFolder=function(a,b,d){b(null)};EditorUi.prototype.exportSvg=function(a, +b,d,e,k,h,m,l,v,p){if(this.spinner.spin(document.body,mxResources.get("export"))){var c=this.editor.graph.isSelectionEmpty();d=null!=d?d:c;c=b?null:this.editor.graph.background;c==mxConstants.NONE&&(c=null);null==c&&0==b&&(c="#ffffff");var f=this.editor.graph.getSvg(c,a,m,l,null,d,null,null,"blank"==p?"_blank":"self"==p?"_top":null);e&&this.editor.graph.addSvgShadow(f);var g=this.getBaseFilename()+".svg",n=mxUtils.bind(this,function(a){this.spinner.stop();k&&a.setAttribute("content",this.getFileData(!0, null,null,null,d,v));if(null!=this.editor.fontCss){var c=a.ownerDocument,c=null!=c.createElementNS?c.createElementNS(mxConstants.NS_SVG,"style"):c.createElement("style");c.setAttribute("type","text/css");mxUtils.setTextContent(c,this.editor.fontCss);a.getElementsByTagName("defs")[0].appendChild(c)}var b='<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">\n'+mxUtils.getXml(a);this.isLocalFileSave()||b.length<=MAX_REQUEST_SIZE?this.saveData(g,"svg",b, -"image/svg+xml"):this.handleError({message:mxResources.get("drawingTooLarge")},mxResources.get("error"),mxUtils.bind(this,function(){mxUtils.popup(b)}))});this.convertMath(this.editor.graph,f,!1,mxUtils.bind(this,function(){l?(null==this.thumbImageCache&&(this.thumbImageCache={}),this.convertImages(f,k,this.thumbImageCache)):k(f)}))}};EditorUi.prototype.addCheckbox=function(a,b,d,e,h,l){l=null!=l?l:!0;var c=document.createElement("input");c.style.marginRight="8px";c.style.marginTop="16px";c.setAttribute("type", -"checkbox");d&&(c.setAttribute("checked","checked"),c.defaultChecked=!0);e&&c.setAttribute("disabled","disabled");l&&(a.appendChild(c),d=document.createElement("span"),mxUtils.write(d,b),a.appendChild(d),h||mxUtils.br(a),mxEvent.addListener(d,"click",mxUtils.bind(this,function(a){"disabled"!=c.getAttribute("disabled")&&(c.checked=!c.checked,mxEvent.consume(a))})));return c};EditorUi.prototype.addEditButton=function(a,b){var c=this.addCheckbox(a,mxResources.get("edit")+":",!0,null,!0);c.style.marginLeft= +"image/svg+xml"):this.handleError({message:mxResources.get("drawingTooLarge")},mxResources.get("error"),mxUtils.bind(this,function(){mxUtils.popup(b)}))});this.convertMath(this.editor.graph,f,!1,mxUtils.bind(this,function(){h?(null==this.thumbImageCache&&(this.thumbImageCache={}),this.convertImages(f,n,this.thumbImageCache)):n(f)}))}};EditorUi.prototype.addCheckbox=function(a,b,d,e,k,h){h=null!=h?h:!0;var c=document.createElement("input");c.style.marginRight="8px";c.style.marginTop="16px";c.setAttribute("type", +"checkbox");d&&(c.setAttribute("checked","checked"),c.defaultChecked=!0);e&&c.setAttribute("disabled","disabled");h&&(a.appendChild(c),d=document.createElement("span"),mxUtils.write(d,b),a.appendChild(d),k||mxUtils.br(a),mxEvent.addListener(d,"click",mxUtils.bind(this,function(a){"disabled"!=c.getAttribute("disabled")&&(c.checked=!c.checked,mxEvent.consume(a))})));return c};EditorUi.prototype.addEditButton=function(a,b){var c=this.addCheckbox(a,mxResources.get("edit")+":",!0,null,!0);c.style.marginLeft= "24px";var d=this.getCurrentFile(),f="";null!=d&&d.getMode()!=App.MODE_DEVICE&&d.getMode()!=App.MODE_BROWSER&&(f=window.location.href);var e=document.createElement("select");e.style.width="120px";e.style.marginLeft="8px";e.style.marginRight="10px";e.className="geBtn";d=document.createElement("option");d.setAttribute("value","blank");mxUtils.write(d,mxResources.get("makeCopy"));e.appendChild(d);d=document.createElement("option");d.setAttribute("value","custom");mxUtils.write(d,mxResources.get("custom")+ "...");e.appendChild(d);a.appendChild(e);mxEvent.addListener(e,"change",mxUtils.bind(this,function(){if("custom"==e.value){var a=new FilenameDialog(this,f,mxResources.get("ok"),function(a){null!=a?f=a:e.value="blank"},mxResources.get("url"),null,null,null,null,function(){e.value="blank"});this.showDialog(a.container,300,80,!0,!1);a.init()}}));mxEvent.addListener(c,"change",mxUtils.bind(this,function(){c.checked&&(null==b||b.checked)?e.removeAttribute("disabled"):e.setAttribute("disabled","disabled")})); -mxUtils.br(a);return{getLink:function(){return c.checked?"blank"===e.value?"_blank":f:null},getEditInput:function(){return c},getEditSelect:function(){return e}}};EditorUi.prototype.addLinkSection=function(a,b){function c(){n.innerHTML='<div style="width:100%;height:100%;box-sizing:border-box;'+(null!=e&&e!=mxConstants.NONE?"border:1px solid black;background-color:"+e:"background-position:center center;background-repeat:no-repeat;background-image:url('"+Dialog.prototype.closeImage+"')")+';"></div>'} +mxUtils.br(a);return{getLink:function(){return c.checked?"blank"===e.value?"_blank":f:null},getEditInput:function(){return c},getEditSelect:function(){return e}}};EditorUi.prototype.addLinkSection=function(a,b){function c(){m.innerHTML='<div style="width:100%;height:100%;box-sizing:border-box;'+(null!=e&&e!=mxConstants.NONE?"border:1px solid black;background-color:"+e:"background-position:center center;background-repeat:no-repeat;background-image:url('"+Dialog.prototype.closeImage+"')")+';"></div>'} mxUtils.write(a,mxResources.get("links")+":");var d=document.createElement("select");d.style.width="100px";d.style.marginLeft="8px";d.style.marginRight="10px";d.className="geBtn";var f=document.createElement("option");f.setAttribute("value","auto");mxUtils.write(f,mxResources.get("automatic"));d.appendChild(f);f=document.createElement("option");f.setAttribute("value","blank");mxUtils.write(f,mxResources.get("openInNewWindow"));d.appendChild(f);f=document.createElement("option");f.setAttribute("value", -"self");mxUtils.write(f,mxResources.get("openInThisWindow"));d.appendChild(f);b&&(f=document.createElement("option"),f.setAttribute("value","frame"),mxUtils.write(f,mxResources.get("openInThisWindow")+" ("+mxResources.get("iframe")+")"),d.appendChild(f));a.appendChild(d);mxUtils.write(a,mxResources.get("borderColor")+":");var e="#0000ff",n=null,n=mxUtils.button("",mxUtils.bind(this,function(a){this.pickColor(e||"none",function(a){e=a;c()});mxEvent.consume(a)}));c();n.style.padding=mxClient.IS_FF? -"4px 2px 4px 2px":"4px";n.style.marginLeft="4px";n.style.height="22px";n.style.width="22px";n.style.position="relative";n.style.top=mxClient.IS_IE||mxClient.IS_IE11||mxClient.IS_EDGE?"6px":"1px";n.className="geColorBtn";a.appendChild(n);mxUtils.br(a);return{getColor:function(){return e},getTarget:function(){return d.value},focus:function(){d.focus()}}};EditorUi.prototype.createLink=function(a,b,d,e,h,l,n,m){var c=this.getCurrentFile(),f=[];e&&(f.push("lightbox=1"),"auto"!=a&&f.push("target="+a),null!= -b&&b!=mxConstants.NONE&&f.push("highlight="+("#"==b.charAt(0)?b.substring(1):b)),null!=h&&0<h.length&&f.push("edit="+encodeURIComponent(h)),l&&f.push("layers=1"),this.editor.graph.foldingEnabled&&f.push("nav=1"));d&&(a=this.getSelectedPageIndex(),0<a&&f.push("page="+a));a=!0;null!=n?d="#U"+encodeURIComponent(n):(c=this.getCurrentFile(),m||null==c||c.constructor!=window.DriveFile?d="#R"+encodeURIComponent(d?this.getFileData(!0,null,null,null,null,null,null,!0):this.editor.graph.compress(mxUtils.getXml(this.editor.getGraphXml()))): -(d="#"+c.getHash(),a=!1));a&&null!=c&&null!=c.getTitle()&&c.getTitle()!=this.defaultFilename&&f.push("title="+encodeURIComponent(c.getTitle()));return(mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||!/.*\.draw\.io$/.test(window.location.hostname)?"https://www.draw.io/":"https://"+window.location.host+"/")+(0<f.length?"?"+f.join("&"):"")+d};EditorUi.prototype.createHtml=function(a,b,d,e,h,l,n,m,v,p,q){this.getBasenames();var c={};""!=h&&h!=mxConstants.NONE&&(c.highlight=h);"auto"!==e&&(c.target=e); -v||(c.lightbox=!1);c.nav=this.editor.graph.foldingEnabled;d=parseInt(d);isNaN(d)||100==d||(c.zoom=d/100);d=[];n&&(d.push("pages"),c.resize=!0,null!=this.pages&&null!=this.currentPage&&(c.page=mxUtils.indexOf(this.pages,this.currentPage)));b&&(d.push("zoom"),c.resize=!0);m&&d.push("layers");0<d.length&&(v&&d.push("lightbox"),c.toolbar=d.join(" "));null!=p&&0<p.length&&(c.edit=p);null!=a?c.url=a:c.xml=this.getFileData(!0,null,null,null,null,!n);b='<div class="mxgraph" style="'+(l?"max-width:100%;": +"self");mxUtils.write(f,mxResources.get("openInThisWindow"));d.appendChild(f);b&&(f=document.createElement("option"),f.setAttribute("value","frame"),mxUtils.write(f,mxResources.get("openInThisWindow")+" ("+mxResources.get("iframe")+")"),d.appendChild(f));a.appendChild(d);mxUtils.write(a,mxResources.get("borderColor")+":");var e="#0000ff",m=null,m=mxUtils.button("",mxUtils.bind(this,function(a){this.pickColor(e||"none",function(a){e=a;c()});mxEvent.consume(a)}));c();m.style.padding=mxClient.IS_FF? +"4px 2px 4px 2px":"4px";m.style.marginLeft="4px";m.style.height="22px";m.style.width="22px";m.style.position="relative";m.style.top=mxClient.IS_IE||mxClient.IS_IE11||mxClient.IS_EDGE?"6px":"1px";m.className="geColorBtn";a.appendChild(m);mxUtils.br(a);return{getColor:function(){return e},getTarget:function(){return d.value},focus:function(){d.focus()}}};EditorUi.prototype.createLink=function(a,b,d,e,k,h,m,l){var c=this.getCurrentFile(),f=[];e&&(f.push("lightbox=1"),"auto"!=a&&f.push("target="+a),null!= +b&&b!=mxConstants.NONE&&f.push("highlight="+("#"==b.charAt(0)?b.substring(1):b)),null!=k&&0<k.length&&f.push("edit="+encodeURIComponent(k)),h&&f.push("layers=1"),this.editor.graph.foldingEnabled&&f.push("nav=1"));d&&(a=this.getSelectedPageIndex(),0<a&&f.push("page="+a));a=!0;null!=m?d="#U"+encodeURIComponent(m):(c=this.getCurrentFile(),l||null==c||c.constructor!=window.DriveFile?d="#R"+encodeURIComponent(d?this.getFileData(!0,null,null,null,null,null,null,!0):this.editor.graph.compress(mxUtils.getXml(this.editor.getGraphXml()))): +(d="#"+c.getHash(),a=!1));a&&null!=c&&null!=c.getTitle()&&c.getTitle()!=this.defaultFilename&&f.push("title="+encodeURIComponent(c.getTitle()));return(mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||!/.*\.draw\.io$/.test(window.location.hostname)?"https://www.draw.io/":"https://"+window.location.host+"/")+(0<f.length?"?"+f.join("&"):"")+d};EditorUi.prototype.createHtml=function(a,b,d,e,k,h,m,l,v,p,q){this.getBasenames();var c={};""!=k&&k!=mxConstants.NONE&&(c.highlight=k);"auto"!==e&&(c.target=e); +v||(c.lightbox=!1);c.nav=this.editor.graph.foldingEnabled;d=parseInt(d);isNaN(d)||100==d||(c.zoom=d/100);d=[];m&&(d.push("pages"),c.resize=!0,null!=this.pages&&null!=this.currentPage&&(c.page=mxUtils.indexOf(this.pages,this.currentPage)));b&&(d.push("zoom"),c.resize=!0);l&&d.push("layers");0<d.length&&(v&&d.push("lightbox"),c.toolbar=d.join(" "));null!=p&&0<p.length&&(c.edit=p);null!=a?c.url=a:c.xml=this.getFileData(!0,null,null,null,null,!m);b='<div class="mxgraph" style="'+(h?"max-width:100%;": "")+(""!=d?"border:1px solid transparent;":"")+'" data-mxgraph="'+mxUtils.htmlEntities(JSON.stringify(c))+'"></div>';a=null!=a?"&fetch="+encodeURIComponent(a):"";q(b,'<script type="text/javascript" src="'+(0<a.length?("1"==urlParams.dev?"https://test.draw.io/embed2.js?dev=1":"https://www.draw.io/embed2.js?")+a:"1"==urlParams.dev?"https://test.draw.io/js/viewer.min.js":"https://www.draw.io/js/viewer.min.js")+'">\x3c/script>')};EditorUi.prototype.showHtmlDialog=function(a,b,d,e){var c=document.createElement("div"); c.style.whiteSpace="nowrap";var f=document.createElement("h3");mxUtils.write(f,mxResources.get("html"));f.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:12px";c.appendChild(f);var g=document.createElement("div");g.style.cssText="border-bottom:1px solid lightGray;padding-bottom:8px;margin-bottom:12px;";var k=document.createElement("input");k.style.cssText="margin-right:8px;margin-top:8px;margin-bottom:8px;";k.setAttribute("value","url");k.setAttribute("type","radio");k.setAttribute("name", -"type-embedhtmldialog");f=k.cloneNode(!0);f.setAttribute("value","copy");g.appendChild(f);var h=document.createElement("span");mxUtils.write(h,mxResources.get("includeCopyOfMyDiagram"));g.appendChild(h);mxUtils.br(g);g.appendChild(k);h=document.createElement("span");mxUtils.write(h,mxResources.get("publicDiagramUrl"));g.appendChild(h);var m=this.getCurrentFile();null==d&&null!=m&&m.constructor==window.DriveFile&&(h=document.createElement("a"),h.style.paddingLeft="12px",h.style.color="gray",h.setAttribute("href", -"javascript:void(0);"),mxUtils.write(h,mxResources.get("share")),g.appendChild(h),mxEvent.addListener(h,"click",mxUtils.bind(this,function(){this.hideDialog();this.drive.showPermissions(m.getId())})));f.setAttribute("checked","checked");null==d&&k.setAttribute("disabled","disabled");c.appendChild(g);var p=this.addLinkSection(c),t=this.addCheckbox(c,mxResources.get("zoom"),!0,null,!0);mxUtils.write(c,":");var q=document.createElement("input");q.setAttribute("type","text");q.style.marginRight="16px"; -q.style.width="60px";q.style.marginLeft="4px";q.style.marginRight="12px";q.value="100%";c.appendChild(q);var u=this.addCheckbox(c,mxResources.get("fit"),!0),g=null!=this.pages&&1<this.pages.length,G=G=this.addCheckbox(c,mxResources.get("allPages"),g,!g),A=this.addCheckbox(c,mxResources.get("layers"),!0),J=this.addCheckbox(c,mxResources.get("lightbox"),!0),K=this.addEditButton(c,J),x=K.getEditInput();x.style.marginBottom="16px";mxEvent.addListener(J,"change",function(){J.checked?x.removeAttribute("disabled"): -x.setAttribute("disabled","disabled");x.checked&&J.checked?K.getEditSelect().removeAttribute("disabled"):K.getEditSelect().setAttribute("disabled","disabled")});a=new CustomDialog(this,c,mxUtils.bind(this,function(){e(k.checked?d:null,t.checked,q.value,p.getTarget(),p.getColor(),u.checked,G.checked,A.checked,J.checked,K.getLink())}),null,a,b);this.showDialog(a.container,340,384,!0,!0);f.focus()};EditorUi.prototype.showPublishLinkDialog=function(a,b,d,e,h,l){var c=document.createElement("div");c.style.whiteSpace= -"nowrap";var f=document.createElement("h3");mxUtils.write(f,a||mxResources.get("link"));f.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:12px";c.appendChild(f);var g=this.getCurrentFile(),f="https://desk.draw.io/support/solutions/articles/16000051941";a=0;if(null!=g&&g.constructor==window.DriveFile&&!b){a=80;var f="https://desk.draw.io/support/solutions/articles/16000039384",k=document.createElement("div");k.style.cssText="border-bottom:1px solid lightGray;padding-bottom:14px;padding-top:6px;margin-bottom:14px;text-align:center;"; -var r=document.createElement("div");r.style.whiteSpace="normal";mxUtils.write(r,mxResources.get("linkAccountRequired"));k.appendChild(r);r=mxUtils.button(mxResources.get("share"),mxUtils.bind(this,function(){this.drive.showPermissions(g.getId())}));r.style.marginTop="12px";r.className="geBtn";k.appendChild(r);c.appendChild(k);r=document.createElement("a");r.style.paddingLeft="12px";r.style.color="gray";r.style.fontSize="11px";r.setAttribute("href","javascript:void(0);");mxUtils.write(r,mxResources.get("check")); -k.appendChild(r);mxEvent.addListener(r,"click",mxUtils.bind(this,function(){this.spinner.spin(document.body,mxResources.get("loading"))&&this.getPublicUrl(this.getCurrentFile(),mxUtils.bind(this,function(a){this.spinner.stop();a=new ErrorDialog(this,null,mxResources.get(null!=a?"diagramIsPublic":"diagramIsNotPublic"),mxResources.get("ok"));this.showDialog(a.container,300,80,!0,!1);a.init()}))}))}var m=null,p=null;if(null!=d||null!=e)a+=30,mxUtils.write(c,mxResources.get("width")+":"),m=document.createElement("input"), -m.setAttribute("type","text"),m.style.marginRight="16px",m.style.width="50px",m.style.marginLeft="6px",m.style.marginRight="16px",m.style.marginBottom="10px",m.value="100%",c.appendChild(m),mxUtils.write(c,mxResources.get("height")+":"),p=document.createElement("input"),p.setAttribute("type","text"),p.style.width="50px",p.style.marginLeft="6px",p.style.marginBottom="10px",p.value=e+"px",c.appendChild(p),mxUtils.br(c);var q=this.addLinkSection(c,l);d=null!=this.pages&&1<this.pages.length;var u=null; -if(null==g||g.constructor!=window.DriveFile||b)u=this.addCheckbox(c,mxResources.get("allPages"),d,!d);var A=this.addCheckbox(c,mxResources.get("lightbox"),!0),J=this.addEditButton(c,A),K=J.getEditInput(),x=this.addCheckbox(c,mxResources.get("layers"),!0);x.style.marginLeft=K.style.marginLeft;x.style.marginBottom="16px";x.style.marginTop="8px";mxEvent.addListener(A,"change",function(){A.checked?(x.removeAttribute("disabled"),K.removeAttribute("disabled")):(x.setAttribute("disabled","disabled"),K.setAttribute("disabled", -"disabled"));K.checked&&A.checked?J.getEditSelect().removeAttribute("disabled"):J.getEditSelect().setAttribute("disabled","disabled")});b=new CustomDialog(this,c,mxUtils.bind(this,function(){h(q.getTarget(),q.getColor(),null==u?!0:u.checked,A.checked,J.getLink(),x.checked,null!=m?m.value:null,null!=p?p.value:null)}),null,mxResources.get("create"),f);this.showDialog(b.container,340,254+a,!0,!0);null!=m?(m.focus(),mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode||mxClient.IS_QUIRKS?m.select(): -document.execCommand("selectAll",!1,null)):q.focus()};EditorUi.prototype.showRemoteExportDialog=function(a,b,d,e){var c=document.createElement("div");c.style.whiteSpace="nowrap";var f=document.createElement("h3");mxUtils.write(f,mxResources.get("image"));f.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:4px";c.appendChild(f);var g=this.addCheckbox(c,mxResources.get("selectionOnly"),!1,this.editor.graph.isSelectionEmpty()),k=e?null:this.addCheckbox(c,mxResources.get("includeCopyOfMyDiagram"), -!0),f=this.editor.graph,h=e?null:this.addCheckbox(c,mxResources.get("transparentBackground"),f.background==mxConstants.NONE||null==f.background);null!=h&&(h.style.marginBottom="16px");a=new CustomDialog(this,c,mxUtils.bind(this,function(){d(!g.checked,null!=k?k.checked:!1,null!=h?h.checked:!1)}),null,a,b);this.showDialog(a.container,300,e?100:186,!0,!0)};EditorUi.prototype.showExportDialog=function(a,b,d,e,h,l,n,m){n=null!=n?n:!0;var c=document.createElement("div");c.style.whiteSpace="nowrap";var f= -this.editor.graph,g="jpeg"==m?196:300,k=document.createElement("h3");mxUtils.write(k,a);k.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:10px";c.appendChild(k);mxUtils.write(c,mxResources.get("zoom")+":");var r=document.createElement("input");r.setAttribute("type","text");r.style.marginRight="16px";r.style.width="60px";r.style.marginLeft="4px";r.style.marginRight="12px";r.value=this.lastExportZoom||"100%";c.appendChild(r);mxUtils.write(c,mxResources.get("borderWidth")+":"); -var p=document.createElement("input");p.setAttribute("type","text");p.style.marginRight="16px";p.style.width="60px";p.style.marginLeft="4px";p.value=this.lastExportBorder||"0";c.appendChild(p);mxUtils.br(c);var w=this.addCheckbox(c,mxResources.get("transparentBackground"),f.background==mxConstants.NONE||null==f.background,null,null,"jpeg"!=m),q=this.addCheckbox(c,mxResources.get("selectionOnly"),!1,f.isSelectionEmpty()),u=document.createElement("input");u.style.marginTop="16px";u.style.marginRight= -"8px";u.style.marginLeft="24px";u.setAttribute("disabled","disabled");u.setAttribute("type","checkbox");l&&(c.appendChild(u),mxUtils.write(c,mxResources.get("crop")),mxUtils.br(c),g+=26,mxEvent.addListener(q,"change",function(){q.checked?u.removeAttribute("disabled"):u.setAttribute("disabled","disabled")}));f.isSelectionEmpty()||(u.setAttribute("checked","checked"),u.defaultChecked=!0);var K=this.addCheckbox(c,mxResources.get("shadow"),f.shadowVisible),x=document.createElement("input");x.style.marginTop= -"16px";x.style.marginRight="8px";x.setAttribute("type","checkbox");!this.isOffline()&&this.canvasSupported||x.setAttribute("disabled","disabled");b&&(c.appendChild(x),mxUtils.write(c,mxResources.get("embedImages")),mxUtils.br(c),g+=26);var C=this.addCheckbox(c,mxResources.get("includeCopyOfMyDiagram"),n,null,null,"jpeg"!=m),I=null!=this.pages&&1<this.pages.length,R=this.addCheckbox(c,I?mxResources.get("allPages"):"",I,!I,null,"jpeg"!=m);R.style.marginLeft="24px";R.style.marginBottom="16px";I||(R.style.display= -"none");mxEvent.addListener(C,"change",function(){C.checked&&I?R.removeAttribute("disabled"):R.setAttribute("disabled","disabled")});n&&I||R.setAttribute("disabled","disabled");var P=document.createElement("select");P.style.maxWidth="260px";P.style.marginLeft="8px";P.style.marginRight="10px";P.className="geBtn";a=document.createElement("option");a.setAttribute("value","auto");mxUtils.write(a,mxResources.get("automatic"));P.appendChild(a);a=document.createElement("option");a.setAttribute("value","blank"); -mxUtils.write(a,mxResources.get("openInNewWindow"));P.appendChild(a);a=document.createElement("option");a.setAttribute("value","self");mxUtils.write(a,mxResources.get("openInThisWindow"));P.appendChild(a);"svg"==m&&(mxUtils.write(c,mxResources.get("links")+":"),c.appendChild(P),mxUtils.br(c),mxUtils.br(c),g+=26);d=new CustomDialog(this,c,mxUtils.bind(this,function(){this.lastExportBorder=p.value;this.lastExportZoom=r.value;h(r.value,w.checked,!q.checked,K.checked,C.checked,x.checked,p.value,u.checked, -!R.checked,P.value)}),null,d,e);this.showDialog(d.container,340,g,!0,!0);r.focus();mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode||mxClient.IS_QUIRKS?r.select():document.execCommand("selectAll",!1,null)};EditorUi.prototype.showEmbedImageDialog=function(a,b,d,e,h){var c=document.createElement("div");c.style.whiteSpace="nowrap";var f=this.editor.graph;if(null!=b){var g=document.createElement("h3");mxUtils.write(g,b);g.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:4px"; -c.appendChild(g)}var k=this.addCheckbox(c,mxResources.get("fit"),!0),r=this.addCheckbox(c,mxResources.get("shadow"),f.shadowVisible&&e,!e),m=this.addCheckbox(c,d),t=this.addCheckbox(c,mxResources.get("lightbox"),!0),p=this.addEditButton(c,t),q=p.getEditInput(),u=1<f.model.getChildCount(f.model.getRoot()),A=this.addCheckbox(c,mxResources.get("layers"),u,!u);A.style.marginLeft=q.style.marginLeft;A.style.marginBottom="12px";A.style.marginTop="8px";mxEvent.addListener(t,"change",function(){t.checked? -(u&&A.removeAttribute("disabled"),q.removeAttribute("disabled")):(A.setAttribute("disabled","disabled"),q.setAttribute("disabled","disabled"));q.checked&&t.checked?p.getEditSelect().removeAttribute("disabled"):p.getEditSelect().setAttribute("disabled","disabled")});b=new CustomDialog(this,c,mxUtils.bind(this,function(){a(k.checked,r.checked,m.checked,t.checked,p.getLink(),A.checked)}),null,mxResources.get("embed"),h);this.showDialog(b.container,280,280,!0,!0)};EditorUi.prototype.createEmbedImage= -function(a,b,d,e,h,l,n,m){function c(c){var b=" ",g="";e&&(b=" onclick=\"(function(img){if(img.wnd!=null&&!img.wnd.closed){img.wnd.focus();}else{var r=function(evt){if(evt.data=='ready'&&evt.source==img.wnd){img.wnd.postMessage(decodeURIComponent(img.getAttribute('src')),'*');window.removeEventListener('message',r);}};window.addEventListener('message',r);img.wnd=window.open('https://www.draw.io/?client=1&lightbox=1"+(h?"&edit=_blank":"")+(l?"&layers=1":"")+"');}})(this);\"",g+="cursor:pointer;"); -a&&(g+="max-width:100%;");var k="";d&&(k=' width="'+Math.round(f.width)+'" height="'+Math.round(f.height)+'"');n('<img src="'+c+'"'+k+(""!=g?' style="'+g+'"':"")+b+"/>")}var f=this.editor.graph.getGraphBounds();if(this.isExportToCanvas())this.exportToCanvas(mxUtils.bind(this,function(a){var b=e?this.getFileData(!0):null;a=this.createImageDataUri(a,b,"png");c(a)}),null,null,null,mxUtils.bind(this,function(a){m({message:mxResources.get("unknownError")})}),null,!0,d?2:1,null,b);else if(b=this.getFileData(!0), -f.width*f.height<=MAX_AREA&&b.length<=MAX_REQUEST_SIZE){var g="";d&&(g="&w="+Math.round(2*f.width)+"&h="+Math.round(2*f.height));var k=new mxXmlRequest(EXPORT_URL,"format=png&base64=1&embedXml="+(e?"1":"0")+g+"&xml="+encodeURIComponent(b));k.send(mxUtils.bind(this,function(){200<=k.getStatus()&&299>=k.getStatus()?c("data:image/png;base64,"+k.getText()):m({message:mxResources.get("unknownError")})}))}else m({message:mxResources.get("drawingTooLarge")})};EditorUi.prototype.createEmbedSvg=function(a, -b,d,e,h,l,n){var c=this.editor.graph.getSvg(),f=c.getElementsByTagName("a");if(null!=f)for(var g=0;g<f.length;g++){var k=f[g].getAttribute("href");null!=k&&"#"==k.charAt(0)&&"_blank"==f[g].getAttribute("target")&&f[g].removeAttribute("target")}e&&c.setAttribute("content",this.getFileData(!0));b&&this.editor.graph.addSvgShadow(c);if(d){var r=" ",m="";e&&(r="onclick=\"(function(img){if(img.wnd!=null&&!img.wnd.closed){img.wnd.focus();}else{var r=function(evt){if(evt.data=='ready'&&evt.source==img.wnd){img.wnd.postMessage(decodeURIComponent(img.getAttribute('src')),'*');window.removeEventListener('message',r);}};window.addEventListener('message',r);img.wnd=window.open('https://www.draw.io/?client=1&lightbox=1"+ -(h?"&edit=_blank":"")+(l?"&layers=1":"")+"');}})(this);\"",m+="cursor:pointer;");a&&(m+="max-width:100%;");this.convertImages(c,mxUtils.bind(this,function(a){n('<img src="'+this.createSvgDataUri(mxUtils.getXml(a))+'"'+(""!=m?' style="'+m+'"':"")+r+"/>")}))}else m="",e&&(c.setAttribute("onclick","(function(svg){var src=window.event.target||window.event.srcElement;while (src!=null&&src.nodeName.toLowerCase()!='a'){src=src.parentNode;}if(src==null){if(svg.wnd!=null&&!svg.wnd.closed){svg.wnd.focus();}else{var r=function(evt){if(evt.data=='ready'&&evt.source==svg.wnd){svg.wnd.postMessage(decodeURIComponent(svg.getAttribute('content')),'*');window.removeEventListener('message',r);}};window.addEventListener('message',r);svg.wnd=window.open('https://www.draw.io/?client=1&lightbox=1"+ -(h?"&edit=_blank":"")+(l?"&layers=1":"")+"');}}})(this);"),m+="cursor:pointer;"),a&&(a=parseInt(c.getAttribute("width")),b=parseInt(c.getAttribute("height")),c.setAttribute("viewBox","0 0 "+a+" "+b),m+="max-width:100%;max-height:"+b+"px;",c.removeAttribute("height")),""!=m&&c.setAttribute("style",m),n(mxUtils.getXml(c))};EditorUi.prototype.timeSince=function(a){a=Math.floor((new Date-a)/1E3);var c=Math.floor(a/31536E3);if(1<c)return c+" "+mxResources.get("years");c=Math.floor(a/2592E3);if(1<c)return c+ +"type-embedhtmldialog");f=k.cloneNode(!0);f.setAttribute("value","copy");g.appendChild(f);var n=document.createElement("span");mxUtils.write(n,mxResources.get("includeCopyOfMyDiagram"));g.appendChild(n);mxUtils.br(g);g.appendChild(k);n=document.createElement("span");mxUtils.write(n,mxResources.get("publicDiagramUrl"));g.appendChild(n);var l=this.getCurrentFile();null==d&&null!=l&&l.constructor==window.DriveFile&&(n=document.createElement("a"),n.style.paddingLeft="12px",n.style.color="gray",n.setAttribute("href", +"javascript:void(0);"),mxUtils.write(n,mxResources.get("share")),g.appendChild(n),mxEvent.addListener(n,"click",mxUtils.bind(this,function(){this.hideDialog();this.drive.showPermissions(l.getId())})));f.setAttribute("checked","checked");null==d&&k.setAttribute("disabled","disabled");c.appendChild(g);var p=this.addLinkSection(c),t=this.addCheckbox(c,mxResources.get("zoom"),!0,null,!0);mxUtils.write(c,":");var q=document.createElement("input");q.setAttribute("type","text");q.style.marginRight="16px"; +q.style.width="60px";q.style.marginLeft="4px";q.style.marginRight="12px";q.value="100%";c.appendChild(q);var u=this.addCheckbox(c,mxResources.get("fit"),!0),g=null!=this.pages&&1<this.pages.length,G=G=this.addCheckbox(c,mxResources.get("allPages"),g,!g),B=this.addCheckbox(c,mxResources.get("layers"),!0),J=this.addCheckbox(c,mxResources.get("lightbox"),!0),K=this.addEditButton(c,J),x=K.getEditInput();x.style.marginBottom="16px";mxEvent.addListener(J,"change",function(){J.checked?x.removeAttribute("disabled"): +x.setAttribute("disabled","disabled");x.checked&&J.checked?K.getEditSelect().removeAttribute("disabled"):K.getEditSelect().setAttribute("disabled","disabled")});a=new CustomDialog(this,c,mxUtils.bind(this,function(){e(k.checked?d:null,t.checked,q.value,p.getTarget(),p.getColor(),u.checked,G.checked,B.checked,J.checked,K.getLink())}),null,a,b);this.showDialog(a.container,340,384,!0,!0);f.focus()};EditorUi.prototype.showPublishLinkDialog=function(a,b,d,e,k,h){var c=document.createElement("div");c.style.whiteSpace= +"nowrap";var f=document.createElement("h3");mxUtils.write(f,a||mxResources.get("link"));f.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:12px";c.appendChild(f);var g=this.getCurrentFile(),f="https://desk.draw.io/support/solutions/articles/16000051941";a=0;if(null!=g&&g.constructor==window.DriveFile&&!b){a=80;var f="https://desk.draw.io/support/solutions/articles/16000039384",n=document.createElement("div");n.style.cssText="border-bottom:1px solid lightGray;padding-bottom:14px;padding-top:6px;margin-bottom:14px;text-align:center;"; +var r=document.createElement("div");r.style.whiteSpace="normal";mxUtils.write(r,mxResources.get("linkAccountRequired"));n.appendChild(r);r=mxUtils.button(mxResources.get("share"),mxUtils.bind(this,function(){this.drive.showPermissions(g.getId())}));r.style.marginTop="12px";r.className="geBtn";n.appendChild(r);c.appendChild(n);r=document.createElement("a");r.style.paddingLeft="12px";r.style.color="gray";r.style.fontSize="11px";r.setAttribute("href","javascript:void(0);");mxUtils.write(r,mxResources.get("check")); +n.appendChild(r);mxEvent.addListener(r,"click",mxUtils.bind(this,function(){this.spinner.spin(document.body,mxResources.get("loading"))&&this.getPublicUrl(this.getCurrentFile(),mxUtils.bind(this,function(a){this.spinner.stop();a=new ErrorDialog(this,null,mxResources.get(null!=a?"diagramIsPublic":"diagramIsNotPublic"),mxResources.get("ok"));this.showDialog(a.container,300,80,!0,!1);a.init()}))}))}var t=null,l=null;if(null!=d||null!=e)a+=30,mxUtils.write(c,mxResources.get("width")+":"),t=document.createElement("input"), +t.setAttribute("type","text"),t.style.marginRight="16px",t.style.width="50px",t.style.marginLeft="6px",t.style.marginRight="16px",t.style.marginBottom="10px",t.value="100%",c.appendChild(t),mxUtils.write(c,mxResources.get("height")+":"),l=document.createElement("input"),l.setAttribute("type","text"),l.style.width="50px",l.style.marginLeft="6px",l.style.marginBottom="10px",l.value=e+"px",c.appendChild(l),mxUtils.br(c);var p=this.addLinkSection(c,h);d=null!=this.pages&&1<this.pages.length;var q=null; +if(null==g||g.constructor!=window.DriveFile||b)q=this.addCheckbox(c,mxResources.get("allPages"),d,!d);var u=this.addCheckbox(c,mxResources.get("lightbox"),!0),J=this.addEditButton(c,u),K=J.getEditInput(),x=this.addCheckbox(c,mxResources.get("layers"),!0);x.style.marginLeft=K.style.marginLeft;x.style.marginBottom="16px";x.style.marginTop="8px";mxEvent.addListener(u,"change",function(){u.checked?(x.removeAttribute("disabled"),K.removeAttribute("disabled")):(x.setAttribute("disabled","disabled"),K.setAttribute("disabled", +"disabled"));K.checked&&u.checked?J.getEditSelect().removeAttribute("disabled"):J.getEditSelect().setAttribute("disabled","disabled")});b=new CustomDialog(this,c,mxUtils.bind(this,function(){k(p.getTarget(),p.getColor(),null==q?!0:q.checked,u.checked,J.getLink(),x.checked,null!=t?t.value:null,null!=l?l.value:null)}),null,mxResources.get("create"),f);this.showDialog(b.container,340,254+a,!0,!0);null!=t?(t.focus(),mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode||mxClient.IS_QUIRKS?t.select(): +document.execCommand("selectAll",!1,null)):p.focus()};EditorUi.prototype.showRemoteExportDialog=function(a,b,d,e){var c=document.createElement("div");c.style.whiteSpace="nowrap";var f=document.createElement("h3");mxUtils.write(f,mxResources.get("image"));f.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:4px";c.appendChild(f);var g=this.addCheckbox(c,mxResources.get("selectionOnly"),!1,this.editor.graph.isSelectionEmpty()),k=e?null:this.addCheckbox(c,mxResources.get("includeCopyOfMyDiagram"), +!0),f=this.editor.graph,n=e?null:this.addCheckbox(c,mxResources.get("transparentBackground"),f.background==mxConstants.NONE||null==f.background);null!=n&&(n.style.marginBottom="16px");a=new CustomDialog(this,c,mxUtils.bind(this,function(){d(!g.checked,null!=k?k.checked:!1,null!=n?n.checked:!1)}),null,a,b);this.showDialog(a.container,300,e?100:186,!0,!0)};EditorUi.prototype.showExportDialog=function(a,b,d,e,k,h,m,l){m=null!=m?m:!0;var c=document.createElement("div");c.style.whiteSpace="nowrap";var f= +this.editor.graph,g="jpeg"==l?196:300,n=document.createElement("h3");mxUtils.write(n,a);n.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:10px";c.appendChild(n);mxUtils.write(c,mxResources.get("zoom")+":");var r=document.createElement("input");r.setAttribute("type","text");r.style.marginRight="16px";r.style.width="60px";r.style.marginLeft="4px";r.style.marginRight="12px";r.value=this.lastExportZoom||"100%";c.appendChild(r);mxUtils.write(c,mxResources.get("borderWidth")+":"); +var p=document.createElement("input");p.setAttribute("type","text");p.style.marginRight="16px";p.style.width="60px";p.style.marginLeft="4px";p.value=this.lastExportBorder||"0";c.appendChild(p);mxUtils.br(c);var w=this.addCheckbox(c,mxResources.get("transparentBackground"),f.background==mxConstants.NONE||null==f.background,null,null,"jpeg"!=l),q=this.addCheckbox(c,mxResources.get("selectionOnly"),!1,f.isSelectionEmpty()),u=document.createElement("input");u.style.marginTop="16px";u.style.marginRight= +"8px";u.style.marginLeft="24px";u.setAttribute("disabled","disabled");u.setAttribute("type","checkbox");h&&(c.appendChild(u),mxUtils.write(c,mxResources.get("crop")),mxUtils.br(c),g+=26,mxEvent.addListener(q,"change",function(){q.checked?u.removeAttribute("disabled"):u.setAttribute("disabled","disabled")}));f.isSelectionEmpty()||(u.setAttribute("checked","checked"),u.defaultChecked=!0);var K=this.addCheckbox(c,mxResources.get("shadow"),f.shadowVisible),x=document.createElement("input");x.style.marginTop= +"16px";x.style.marginRight="8px";x.setAttribute("type","checkbox");!this.isOffline()&&this.canvasSupported||x.setAttribute("disabled","disabled");b&&(c.appendChild(x),mxUtils.write(c,mxResources.get("embedImages")),mxUtils.br(c),g+=26);var C=this.addCheckbox(c,mxResources.get("includeCopyOfMyDiagram"),m,null,null,"jpeg"!=l),I=null!=this.pages&&1<this.pages.length,R=this.addCheckbox(c,I?mxResources.get("allPages"):"",I,!I,null,"jpeg"!=l);R.style.marginLeft="24px";R.style.marginBottom="16px";I||(R.style.display= +"none");mxEvent.addListener(C,"change",function(){C.checked&&I?R.removeAttribute("disabled"):R.setAttribute("disabled","disabled")});m&&I||R.setAttribute("disabled","disabled");var P=document.createElement("select");P.style.maxWidth="260px";P.style.marginLeft="8px";P.style.marginRight="10px";P.className="geBtn";a=document.createElement("option");a.setAttribute("value","auto");mxUtils.write(a,mxResources.get("automatic"));P.appendChild(a);a=document.createElement("option");a.setAttribute("value","blank"); +mxUtils.write(a,mxResources.get("openInNewWindow"));P.appendChild(a);a=document.createElement("option");a.setAttribute("value","self");mxUtils.write(a,mxResources.get("openInThisWindow"));P.appendChild(a);"svg"==l&&(mxUtils.write(c,mxResources.get("links")+":"),c.appendChild(P),mxUtils.br(c),mxUtils.br(c),g+=26);d=new CustomDialog(this,c,mxUtils.bind(this,function(){this.lastExportBorder=p.value;this.lastExportZoom=r.value;k(r.value,w.checked,!q.checked,K.checked,C.checked,x.checked,p.value,u.checked, +!R.checked,P.value)}),null,d,e);this.showDialog(d.container,340,g,!0,!0);r.focus();mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode||mxClient.IS_QUIRKS?r.select():document.execCommand("selectAll",!1,null)};EditorUi.prototype.showEmbedImageDialog=function(a,b,d,e,k){var c=document.createElement("div");c.style.whiteSpace="nowrap";var f=this.editor.graph;if(null!=b){var g=document.createElement("h3");mxUtils.write(g,b);g.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:4px"; +c.appendChild(g)}var n=this.addCheckbox(c,mxResources.get("fit"),!0),r=this.addCheckbox(c,mxResources.get("shadow"),f.shadowVisible&&e,!e),l=this.addCheckbox(c,d),t=this.addCheckbox(c,mxResources.get("lightbox"),!0),p=this.addEditButton(c,t),q=p.getEditInput(),u=1<f.model.getChildCount(f.model.getRoot()),B=this.addCheckbox(c,mxResources.get("layers"),u,!u);B.style.marginLeft=q.style.marginLeft;B.style.marginBottom="12px";B.style.marginTop="8px";mxEvent.addListener(t,"change",function(){t.checked? +(u&&B.removeAttribute("disabled"),q.removeAttribute("disabled")):(B.setAttribute("disabled","disabled"),q.setAttribute("disabled","disabled"));q.checked&&t.checked?p.getEditSelect().removeAttribute("disabled"):p.getEditSelect().setAttribute("disabled","disabled")});b=new CustomDialog(this,c,mxUtils.bind(this,function(){a(n.checked,r.checked,l.checked,t.checked,p.getLink(),B.checked)}),null,mxResources.get("embed"),k);this.showDialog(b.container,280,280,!0,!0)};EditorUi.prototype.createEmbedImage= +function(a,b,d,e,k,h,m,l){function c(c){var b=" ",g="";e&&(b=" onclick=\"(function(img){if(img.wnd!=null&&!img.wnd.closed){img.wnd.focus();}else{var r=function(evt){if(evt.data=='ready'&&evt.source==img.wnd){img.wnd.postMessage(decodeURIComponent(img.getAttribute('src')),'*');window.removeEventListener('message',r);}};window.addEventListener('message',r);img.wnd=window.open('https://www.draw.io/?client=1&lightbox=1"+(k?"&edit=_blank":"")+(h?"&layers=1":"")+"');}})(this);\"",g+="cursor:pointer;"); +a&&(g+="max-width:100%;");var n="";d&&(n=' width="'+Math.round(f.width)+'" height="'+Math.round(f.height)+'"');m('<img src="'+c+'"'+n+(""!=g?' style="'+g+'"':"")+b+"/>")}var f=this.editor.graph.getGraphBounds();if(this.isExportToCanvas())this.exportToCanvas(mxUtils.bind(this,function(a){var b=e?this.getFileData(!0):null;a=this.createImageDataUri(a,b,"png");c(a)}),null,null,null,mxUtils.bind(this,function(a){l({message:mxResources.get("unknownError")})}),null,!0,d?2:1,null,b);else if(b=this.getFileData(!0), +f.width*f.height<=MAX_AREA&&b.length<=MAX_REQUEST_SIZE){var g="";d&&(g="&w="+Math.round(2*f.width)+"&h="+Math.round(2*f.height));var n=new mxXmlRequest(EXPORT_URL,"format=png&base64=1&embedXml="+(e?"1":"0")+g+"&xml="+encodeURIComponent(b));n.send(mxUtils.bind(this,function(){200<=n.getStatus()&&299>=n.getStatus()?c("data:image/png;base64,"+n.getText()):l({message:mxResources.get("unknownError")})}))}else l({message:mxResources.get("drawingTooLarge")})};EditorUi.prototype.createEmbedSvg=function(a, +b,d,e,k,h,m){var c=this.editor.graph.getSvg(),f=c.getElementsByTagName("a");if(null!=f)for(var g=0;g<f.length;g++){var n=f[g].getAttribute("href");null!=n&&"#"==n.charAt(0)&&"_blank"==f[g].getAttribute("target")&&f[g].removeAttribute("target")}e&&c.setAttribute("content",this.getFileData(!0));b&&this.editor.graph.addSvgShadow(c);if(d){var r=" ",l="";e&&(r="onclick=\"(function(img){if(img.wnd!=null&&!img.wnd.closed){img.wnd.focus();}else{var r=function(evt){if(evt.data=='ready'&&evt.source==img.wnd){img.wnd.postMessage(decodeURIComponent(img.getAttribute('src')),'*');window.removeEventListener('message',r);}};window.addEventListener('message',r);img.wnd=window.open('https://www.draw.io/?client=1&lightbox=1"+ +(k?"&edit=_blank":"")+(h?"&layers=1":"")+"');}})(this);\"",l+="cursor:pointer;");a&&(l+="max-width:100%;");this.convertImages(c,mxUtils.bind(this,function(a){m('<img src="'+this.createSvgDataUri(mxUtils.getXml(a))+'"'+(""!=l?' style="'+l+'"':"")+r+"/>")}))}else l="",e&&(c.setAttribute("onclick","(function(svg){var src=window.event.target||window.event.srcElement;while (src!=null&&src.nodeName.toLowerCase()!='a'){src=src.parentNode;}if(src==null){if(svg.wnd!=null&&!svg.wnd.closed){svg.wnd.focus();}else{var r=function(evt){if(evt.data=='ready'&&evt.source==svg.wnd){svg.wnd.postMessage(decodeURIComponent(svg.getAttribute('content')),'*');window.removeEventListener('message',r);}};window.addEventListener('message',r);svg.wnd=window.open('https://www.draw.io/?client=1&lightbox=1"+ +(k?"&edit=_blank":"")+(h?"&layers=1":"")+"');}}})(this);"),l+="cursor:pointer;"),a&&(a=parseInt(c.getAttribute("width")),b=parseInt(c.getAttribute("height")),c.setAttribute("viewBox","0 0 "+a+" "+b),l+="max-width:100%;max-height:"+b+"px;",c.removeAttribute("height")),""!=l&&c.setAttribute("style",l),m(mxUtils.getXml(c))};EditorUi.prototype.timeSince=function(a){a=Math.floor((new Date-a)/1E3);var c=Math.floor(a/31536E3);if(1<c)return c+" "+mxResources.get("years");c=Math.floor(a/2592E3);if(1<c)return c+ " "+mxResources.get("months");c=Math.floor(a/86400);if(1<c)return c+" "+mxResources.get("days");c=Math.floor(a/3600);if(1<c)return c+" "+mxResources.get("hours");c=Math.floor(a/60);return 1<c?c+" "+mxResources.get("minutes"):1==c?c+" "+mxResources.get("minute"):null};EditorUi.prototype.convertMath=function(a,b,d,e){a.mathEnabled&&"undefined"!==typeof MathJax&&"undefined"!==typeof MathJax.Hub?(Editor.MathJaxRender(b),window.setTimeout(mxUtils.bind(this,function(){MathJax.Hub.Queue(mxUtils.bind(this, function(){e()}))}),0)):e()};EditorUi.prototype.decodeNodeIntoGraph=function(a,b){if(null!=a){var c=null;if("diagram"==a.nodeName)c=a;else if("mxfile"==a.nodeName){var d=a.getElementsByTagName("diagram");if(0<d.length){var c=d[0],e=b.getGlobalVariable;b.getGlobalVariable=function(a){return"page"==a?c.getAttribute("name")||mxResources.get("pageWithNumber",[1]):"pagenumber"==a?1:e.apply(this,arguments)}}}null!=c&&(d=b.decompress(mxUtils.getTextContent(c)),null!=d&&0<d.length&&(a=mxUtils.parseXml(d).documentElement))}d= -this.editor.graph;try{this.editor.graph=b,this.editor.setGraphXml(a)}catch(l){}finally{this.editor.graph=d}return a};EditorUi.prototype.getEmbeddedPng=function(a,b,d){var c=this.editor.graph,e=null;if(null!=d&&0<d.length)c=this.createTemporaryGraph(this.editor.graph.getStylesheet()),document.body.appendChild(c.container),this.decodeNodeIntoGraph(this.editor.extractGraphModel(mxUtils.parseXml(d).documentElement,!0),c),e=d;else if(null!=this.pages&&this.currentPage!=this.pages[0]){var c=this.createTemporaryGraph(c.getStylesheet()), -f=c.getGlobalVariable,g=this.pages[0];c.getGlobalVariable=function(a){return"page"==a?g.getName():"pagenumber"==a?1:f.apply(this,arguments)};document.body.appendChild(c.container);c.model.setRoot(g.root)}this.exportToCanvas(mxUtils.bind(this,function(d){try{null==e&&(e=this.getFileData(!0));var f=d.toDataURL("image/png"),f=this.writeGraphModelToPng(f,"zTXt","mxGraphModel",atob(this.editor.graph.compress(e)));a(f.substring(f.lastIndexOf(",")+1));c!=this.editor.graph&&c.container.parentNode.removeChild(c.container)}catch(B){null!= -b&&b(B)}}),null,null,null,mxUtils.bind(this,function(a){null!=b&&b(a)}),null,null,null,null,c.shadowVisible,null,c)};EditorUi.prototype.getEmbeddedSvg=function(a,b,d,e,h,l,n){n=b.background;n==mxConstants.NONE&&(n=null);b=b.getSvg(n,null,null,null,null,l);null!=a&&b.setAttribute("content",a);null!=d&&b.setAttribute("resource",d);if(null!=h)this.convertImages(b,mxUtils.bind(this,function(a){h((e?"":'<?xml version="1.0" encoding="UTF-8"?>\n<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">\n')+ -mxUtils.getXml(a))}));else return(e?"":'<?xml version="1.0" encoding="UTF-8"?>\n<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">\n')+mxUtils.getXml(b)};EditorUi.prototype.exportImage=function(a,b,d,e,h,l,n,m,p){p=null!=p?p:"png";if(this.spinner.spin(document.body,mxResources.get("exporting"))){var c=this.editor.graph.isSelectionEmpty();d=null!=d?d:c;null==this.thumbImageCache&&(this.thumbImageCache={});try{this.exportToCanvas(mxUtils.bind(this,function(a){this.spinner.stop(); -try{this.saveCanvas(a,h?this.getFileData(!0,null,null,null,d,m):null,p)}catch(t){"Invalid image"==t.message?this.downloadFile(p):this.handleError(t)}}),null,this.thumbImageCache,null,mxUtils.bind(this,function(a){this.spinner.stop();this.handleError(a)}),null,d,a||1,b,e,null,null,l,n)}catch(y){this.spinner.stop(),this.handleError(y)}}};EditorUi.prototype.loadFonts=function(a){if(null!=this.editor.fontCss&&null==this.editor.resolvedFontCss){var c=function(a){return a.replace(RegExp("^[\\s\"']+","g"), -"").replace(RegExp("[\\s\"']+$","g"),"")},b=this.editor.fontCss.split("url("),d=0,e={},l=mxUtils.bind(this,function(){if(0==d){for(var f=[b[0]],g=1;g<b.length;g++){var k=b[g].indexOf(")");f.push('url("');f.push(e[c(b[g].substring(0,k))]);f.push('"'+b[g].substring(k))}this.editor.resolvedFontCss=f.join("");a()}});if(0<b.length)for(var h=1;h<b.length;h++){var m=b[h].indexOf(")"),p=null,q=b[h].indexOf("format(",m);0<q&&(p=c(b[h].substring(q+7,b[h].indexOf(")",q))));mxUtils.bind(this,function(a){if(null== -e[a]){e[a]=a;d++;var c="application/x-font-ttf";if("svg"==p||/(\.svg)($|\?)/i.test(a))c="image/svg+xml";else if("otf"==p||"embedded-opentype"==p||/(\.otf)($|\?)/i.test(a))c="application/x-font-opentype";else if("woff"==p||/(\.woff)($|\?)/i.test(a))c="application/font-woff";else if("woff2"==p||/(\.woff2)($|\?)/i.test(a))c="application/font-woff2";else if("eot"==p||/(\.eot)($|\?)/i.test(a))c="application/vnd.ms-fontobject";else if("sfnt"==p||/(\.sfnt)($|\?)/i.test(a))c="application/font-sfnt";var b= -a;/^https?:\/\//.test(b)&&!this.isCorsEnabledForUrl(b)&&(b=PROXY_URL+"?url="+encodeURIComponent(a));this.loadUrl(b,mxUtils.bind(this,function(c){e[a]=c;d--;l()}),mxUtils.bind(this,function(a){d--;l()}),!0,null,"data:"+c+";charset=utf-8;base64,")}})(c(b[h].substring(0,m)),p)}}else a()};EditorUi.prototype.exportToCanvas=function(a,b,d,e,h,l,n,m,p,q,y,t,u,H){l=null!=l?l:!0;t=null!=t?t:this.editor.graph;u=null!=u?u:0;var c=p?null:t.background;c==mxConstants.NONE&&(c=null);null==c&&(c=e);null==c&&0==p&& -(c=this.editor.graph.defaultPageBackgroundColor);this.convertImages(t.getSvg(c,null,null,H,null,null!=n?n:!0),mxUtils.bind(this,function(d){var e=new Image;e.onload=mxUtils.bind(this,function(){try{var f=document.createElement("canvas"),g=parseInt(d.getAttribute("width")),k=parseInt(d.getAttribute("height"));m=null!=m?m:1;null!=b&&(m=l?Math.min(1,Math.min(3*b/(4*k),b/g)):b/g);g=Math.ceil(m*g)+2*u;k=Math.ceil(m*k)+2*u;f.setAttribute("width",g);f.setAttribute("height",k);var n=f.getContext("2d");null!= -c&&(n.beginPath(),n.rect(0,0,g,k),n.fillStyle=c,n.fill());n.scale(m,m);mxClient.IS_SF?window.setTimeout(function(){n.drawImage(e,u/m,u/m);a(f)},0):(n.drawImage(e,u/m,u/m),a(f))}catch(P){null!=h&&h(P)}});e.onerror=function(a){null!=h&&h(a)};try{q&&this.editor.graph.addSvgShadow(d);var f=mxUtils.bind(this,function(){if(null!=this.editor.resolvedFontCss){var a=document.createElement("style");a.setAttribute("type","text/css");a.innerHTML=this.editor.resolvedFontCss;d.getElementsByTagName("defs")[0].appendChild(a)}this.convertMath(t, -d,!0,mxUtils.bind(this,function(){e.src=this.createSvgDataUri(mxUtils.getXml(d))}))});this.loadFonts(f)}catch(x){null!=h&&h(x)}}),d,y)};EditorUi.prototype.createImageUrlConverter=function(){var a=new mxUrlConverter;a.updateBaseUrl();var b=a.convert,d=this;a.convert=function(c){if(null!=c){var e="http://"==c.substring(0,7)||"https://"==c.substring(0,8);e&&!navigator.onLine?c=d.svgBrokenImage.src:!e||c.substring(0,a.baseUrl.length)==a.baseUrl||d.crossOriginImages&&d.isCorsEnabledForUrl(c)?"chrome-extension://"!= -c.substring(0,19)&&(c=b.apply(this,arguments)):c=PROXY_URL+"?url="+encodeURIComponent(c)}return c};return a};EditorUi.prototype.convertImages=function(a,b,d,e){null==e&&(e=this.createImageUrlConverter());var c=0,f=d||{};d=mxUtils.bind(this,function(d,g){for(var k=a.getElementsByTagName(d),h=0;h<k.length;h++)mxUtils.bind(this,function(d){var k=e.convert(d.getAttribute(g));if(null!=k&&"data:"!=k.substring(0,5)){var h=f[k];null==h?(c++,this.convertImageToDataUri(k,function(e){null!=e&&(f[k]=e,d.setAttribute(g, -e));c--;0==c&&b(a)})):d.setAttribute(g,h)}else null!=k&&d.setAttribute(g,k)})(k[h])});d("image","xlink:href");d("img","src");0==c&&b(a)};EditorUi.prototype.loadUrl=function(a,b,d,e,h,l){try{var c=e||/(\.png)($|\?)/i.test(a)||/(\.jpe?g)($|\?)/i.test(a)||/(\.gif)($|\?)/i.test(a);h=null!=h?h:!0;var f=mxUtils.bind(this,function(){mxUtils.get(a,mxUtils.bind(this,function(a){if(200<=a.getStatus()&&299>=a.getStatus()){if(null!=b){var e=a.getText();if(c){if((9==document.documentMode||10==document.documentMode)&& -"undefined"!==typeof window.mxUtilsBinaryToArray){a=mxUtilsBinaryToArray(a.request.responseBody).toArray();for(var e=Array(a.length),f=0;f<a.length;f++)e[f]=String.fromCharCode(a[f]);e=e.join("")}l=null!=l?l:"data:image/png;base64,";e=l+this.base64Encode(e)}b(e)}}else null!=d&&d({code:App.ERROR_UNKNOWN},a)}),function(){null!=d&&d({code:App.ERROR_UNKNOWN})},c,this.timeout,function(){h&&null!=d&&d({code:App.ERROR_TIMEOUT,retry:f})})});f()}catch(v){null!=d&&d(v)}};EditorUi.prototype.isCorsEnabledForUrl= +this.editor.graph;try{this.editor.graph=b,this.editor.setGraphXml(a)}catch(h){}finally{this.editor.graph=d}return a};EditorUi.prototype.getEmbeddedPng=function(a,b,d){var c=this.editor.graph,e=null;if(null!=d&&0<d.length)c=this.createTemporaryGraph(this.editor.graph.getStylesheet()),document.body.appendChild(c.container),this.decodeNodeIntoGraph(this.editor.extractGraphModel(mxUtils.parseXml(d).documentElement,!0),c),e=d;else if(null!=this.pages&&this.currentPage!=this.pages[0]){var c=this.createTemporaryGraph(c.getStylesheet()), +f=c.getGlobalVariable,g=this.pages[0];c.getGlobalVariable=function(a){return"page"==a?g.getName():"pagenumber"==a?1:f.apply(this,arguments)};document.body.appendChild(c.container);c.model.setRoot(g.root)}this.exportToCanvas(mxUtils.bind(this,function(d){try{null==e&&(e=this.getFileData(!0));var f=d.toDataURL("image/png"),f=this.writeGraphModelToPng(f,"zTXt","mxGraphModel",atob(this.editor.graph.compress(e)));a(f.substring(f.lastIndexOf(",")+1));c!=this.editor.graph&&c.container.parentNode.removeChild(c.container)}catch(A){null!= +b&&b(A)}}),null,null,null,mxUtils.bind(this,function(a){null!=b&&b(a)}),null,null,null,null,c.shadowVisible,null,c)};EditorUi.prototype.getEmbeddedSvg=function(a,b,d,e,k,h,m){m=b.background;m==mxConstants.NONE&&(m=null);b=b.getSvg(m,null,null,null,null,h);null!=a&&b.setAttribute("content",a);null!=d&&b.setAttribute("resource",d);if(null!=k)this.convertImages(b,mxUtils.bind(this,function(a){k((e?"":'<?xml version="1.0" encoding="UTF-8"?>\n<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">\n')+ +mxUtils.getXml(a))}));else return(e?"":'<?xml version="1.0" encoding="UTF-8"?>\n<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">\n')+mxUtils.getXml(b)};EditorUi.prototype.exportImage=function(a,b,d,e,k,h,m,l,p){p=null!=p?p:"png";if(this.spinner.spin(document.body,mxResources.get("exporting"))){var c=this.editor.graph.isSelectionEmpty();d=null!=d?d:c;null==this.thumbImageCache&&(this.thumbImageCache={});try{this.exportToCanvas(mxUtils.bind(this,function(a){this.spinner.stop(); +try{this.saveCanvas(a,k?this.getFileData(!0,null,null,null,d,l):null,p)}catch(t){"Invalid image"==t.message?this.downloadFile(p):this.handleError(t)}}),null,this.thumbImageCache,null,mxUtils.bind(this,function(a){this.spinner.stop();this.handleError(a)}),null,d,a||1,b,e,null,null,h,m)}catch(y){this.spinner.stop(),this.handleError(y)}}};EditorUi.prototype.loadFonts=function(a){if(null!=this.editor.fontCss&&null==this.editor.resolvedFontCss){var c=function(a){return a.replace(RegExp("^[\\s\"']+","g"), +"").replace(RegExp("[\\s\"']+$","g"),"")},b=this.editor.fontCss.split("url("),d=0,e={},h=mxUtils.bind(this,function(){if(0==d){for(var f=[b[0]],g=1;g<b.length;g++){var h=b[g].indexOf(")");f.push('url("');f.push(e[c(b[g].substring(0,h))]);f.push('"'+b[g].substring(h))}this.editor.resolvedFontCss=f.join("");a()}});if(0<b.length)for(var m=1;m<b.length;m++){var k=b[m].indexOf(")"),l=null,p=b[m].indexOf("format(",k);0<p&&(l=c(b[m].substring(p+7,b[m].indexOf(")",p))));mxUtils.bind(this,function(a){if(null== +e[a]){e[a]=a;d++;var c="application/x-font-ttf";if("svg"==l||/(\.svg)($|\?)/i.test(a))c="image/svg+xml";else if("otf"==l||"embedded-opentype"==l||/(\.otf)($|\?)/i.test(a))c="application/x-font-opentype";else if("woff"==l||/(\.woff)($|\?)/i.test(a))c="application/font-woff";else if("woff2"==l||/(\.woff2)($|\?)/i.test(a))c="application/font-woff2";else if("eot"==l||/(\.eot)($|\?)/i.test(a))c="application/vnd.ms-fontobject";else if("sfnt"==l||/(\.sfnt)($|\?)/i.test(a))c="application/font-sfnt";var b= +a;/^https?:\/\//.test(b)&&!this.isCorsEnabledForUrl(b)&&(b=PROXY_URL+"?url="+encodeURIComponent(a));this.loadUrl(b,mxUtils.bind(this,function(c){e[a]=c;d--;h()}),mxUtils.bind(this,function(a){d--;h()}),!0,null,"data:"+c+";charset=utf-8;base64,")}})(c(b[m].substring(0,k)),l)}}else a()};EditorUi.prototype.exportToCanvas=function(a,b,d,e,k,h,m,l,p,q,y,t,u,H){h=null!=h?h:!0;t=null!=t?t:this.editor.graph;u=null!=u?u:0;var c=p?null:t.background;c==mxConstants.NONE&&(c=null);null==c&&(c=e);null==c&&0==p&& +(c=this.editor.graph.defaultPageBackgroundColor);this.convertImages(t.getSvg(c,null,null,H,null,null!=m?m:!0),mxUtils.bind(this,function(d){var e=new Image;e.onload=mxUtils.bind(this,function(){try{var f=document.createElement("canvas"),g=parseInt(d.getAttribute("width")),m=parseInt(d.getAttribute("height"));l=null!=l?l:1;null!=b&&(l=h?Math.min(1,Math.min(3*b/(4*m),b/g)):b/g);g=Math.ceil(l*g)+2*u;m=Math.ceil(l*m)+2*u;f.setAttribute("width",g);f.setAttribute("height",m);var n=f.getContext("2d");null!= +c&&(n.beginPath(),n.rect(0,0,g,m),n.fillStyle=c,n.fill());n.scale(l,l);mxClient.IS_SF?window.setTimeout(function(){n.drawImage(e,u/l,u/l);a(f)},0):(n.drawImage(e,u/l,u/l),a(f))}catch(P){null!=k&&k(P)}});e.onerror=function(a){null!=k&&k(a)};try{q&&this.editor.graph.addSvgShadow(d);var f=mxUtils.bind(this,function(){if(null!=this.editor.resolvedFontCss){var a=document.createElement("style");a.setAttribute("type","text/css");a.innerHTML=this.editor.resolvedFontCss;d.getElementsByTagName("defs")[0].appendChild(a)}this.convertMath(t, +d,!0,mxUtils.bind(this,function(){e.src=this.createSvgDataUri(mxUtils.getXml(d))}))});this.loadFonts(f)}catch(x){null!=k&&k(x)}}),d,y)};EditorUi.prototype.createImageUrlConverter=function(){var a=new mxUrlConverter;a.updateBaseUrl();var b=a.convert,d=this;a.convert=function(c){if(null!=c){var e="http://"==c.substring(0,7)||"https://"==c.substring(0,8);e&&!navigator.onLine?c=d.svgBrokenImage.src:!e||c.substring(0,a.baseUrl.length)==a.baseUrl||d.crossOriginImages&&d.isCorsEnabledForUrl(c)?"chrome-extension://"!= +c.substring(0,19)&&(c=b.apply(this,arguments)):c=PROXY_URL+"?url="+encodeURIComponent(c)}return c};return a};EditorUi.prototype.convertImages=function(a,b,d,e){null==e&&(e=this.createImageUrlConverter());var c=0,f=d||{};d=mxUtils.bind(this,function(d,g){for(var h=a.getElementsByTagName(d),k=0;k<h.length;k++)mxUtils.bind(this,function(d){var h=e.convert(d.getAttribute(g));if(null!=h&&"data:"!=h.substring(0,5)){var k=f[h];null==k?(c++,this.convertImageToDataUri(h,function(e){null!=e&&(f[h]=e,d.setAttribute(g, +e));c--;0==c&&b(a)})):d.setAttribute(g,k)}else null!=h&&d.setAttribute(g,h)})(h[k])});d("image","xlink:href");d("img","src");0==c&&b(a)};EditorUi.prototype.loadUrl=function(a,b,d,e,k,h){try{var c=e||/(\.png)($|\?)/i.test(a)||/(\.jpe?g)($|\?)/i.test(a)||/(\.gif)($|\?)/i.test(a);k=null!=k?k:!0;var f=mxUtils.bind(this,function(){mxUtils.get(a,mxUtils.bind(this,function(a){if(200<=a.getStatus()&&299>=a.getStatus()){if(null!=b){var e=a.getText();if(c){if((9==document.documentMode||10==document.documentMode)&& +"undefined"!==typeof window.mxUtilsBinaryToArray){a=mxUtilsBinaryToArray(a.request.responseBody).toArray();for(var e=Array(a.length),f=0;f<a.length;f++)e[f]=String.fromCharCode(a[f]);e=e.join("")}h=null!=h?h:"data:image/png;base64,";e=h+this.base64Encode(e)}b(e)}}else null!=d&&d({code:App.ERROR_UNKNOWN},a)}),function(){null!=d&&d({code:App.ERROR_UNKNOWN})},c,this.timeout,function(){k&&null!=d&&d({code:App.ERROR_TIMEOUT,retry:f})})});f()}catch(v){null!=d&&d(v)}};EditorUi.prototype.isCorsEnabledForUrl= function(a){null!=urlParams.cors&&null==this.corsRegExp&&(this.corsRegExp=new RegExp(decodeURIComponent(urlParams.cors)));return null!=this.corsRegExp&&this.corsRegExp.test(a)||"https://raw.githubusercontent.com/"===a.substring(0,34)||"https://cdn.rawgit.com/"===a.substring(0,23)||"https://rawgit.com/"===a.substring(0,19)||/^https?:\/\/[^\/]*\.iconfinder.com\//.test(a)||/^https?:\/\/[^\/]*\.draw\.io\/proxy/.test(a)||/^https?:\/\/[^\/]*\.github\.io\//.test(a)};EditorUi.prototype.convertImageToDataUri= -function(a,b){if(/(\.svg)$/i.test(a))mxUtils.get(a,mxUtils.bind(this,function(a){b(this.createSvgDataUri(a.getText()))}),function(){b(this.svgBrokenImage.src)});else{var c=new Image,d=this;this.crossOriginImages&&(c.crossOrigin="anonymous");c.onload=function(){var a=document.createElement("canvas"),e=a.getContext("2d");a.height=c.height;a.width=c.width;e.drawImage(c,0,0);try{b(a.toDataURL())}catch(n){b(d.svgBrokenImage.src)}};c.onerror=function(){b(d.svgBrokenImage.src)};c.src=a}};EditorUi.prototype.importXml= -function(a,b,d,e,h){b=null!=b?b:0;d=null!=d?d:0;var c=[];try{var f=this.editor.graph;if(null!=a&&0<a.length){var g=mxUtils.parseXml(a),k=this.editor.extractGraphModel(g.documentElement,null!=this.pages);if(null!=k&&"mxfile"==k.nodeName&&null!=this.pages){var m=k.getElementsByTagName("diagram");if(1==m.length)k=mxUtils.parseXml(f.decompress(mxUtils.getTextContent(m[0]))).documentElement;else if(1<m.length){f.model.beginUpdate();try{for(a=0;a<m.length;a++){m[a].removeAttribute("id");var r=this.updatePageRoot(new DiagramPage(m[a])), -p=this.pages.length;null==r.getName()&&r.setName(mxResources.get("pageWithNumber",[p+1]));f.model.execute(new ChangePage(this,r,r,p))}}finally{f.model.endUpdate()}}}null!=k&&"mxGraphModel"===k.nodeName&&(c=f.importGraphModel(k,b,d,e))}}catch(z){throw h||this.handleError(z,mxResources.get("invalidOrMissingFile")),z;}return c};EditorUi.prototype.isRemoteVisioFormat=function(a){return/(\.v(sd|dx))($|\?)/i.test(a)||/(\.vs(s|x))($|\?)/i.test(a)};EditorUi.prototype.importVisio=function(a,b,d,e){e=null!= -e?e:a.name;d=null!=d?d:mxUtils.bind(this,function(a){this.handleError(a)});var c=mxUtils.bind(this,function(){this.loadingExtensions=!1;if(this.doImportVisio)if(this.isRemoteVisioFormat(e)&&null!=VSD_CONVERT_URL){var c=new FormData;c.append("file1",a,e);var f=new XMLHttpRequest;f.open("POST",VSD_CONVERT_URL);f.responseType="blob";f.onreadystatechange=mxUtils.bind(this,function(){if(4==f.readyState)if(200<=f.status&&299>=f.status)try{f.response.name=e,this.doImportVisio(f.response,b,d)}catch(w){d(w)}else d({})}); -f.send(c)}else try{this.doImportVisio(a,b,d)}catch(w){d(w)}});this.doImportVisio||this.loadingExtensions||this.isOffline()?c():(this.loadingExtensions=!0,mxscript("js/extensions.min.js",c))};EditorUi.prototype.exportVisio=function(){var a=mxUtils.bind(this,function(){this.loadingExtensions=!1;if("undefined"!==typeof VsdxExport)try{(new VsdxExport(this)).exportCurrentDiagrams()}catch(f){this.handleError(f)}});"undefined"!==typeof VsdxExport||this.loadingExtensions||this.isOffline()?a():(this.loadingExtensions= -!0,mxscript("js/extensions.min.js",a))};EditorUi.prototype.convertLucidChart=function(a,b,d){var c=mxUtils.bind(this,function(){this.loadingExtensions=!1;if("undefined"!==typeof window.LucidImporter)try{b(LucidImporter.importState(JSON.parse(a)))}catch(r){d(r)}else d({message:mxResources.get("serviceUnavailableOrBlocked")})});"undefined"!==typeof window.LucidImporter||this.loadingExtensions||this.isOffline()?window.setTimeout(c,0):(this.loadingExtensions=!0,"1"==urlParams.dev?mxscript("js/diagramly/Extensions.js", -c):mxscript("js/extensions.min.js",c))};EditorUi.prototype.insertAsPreText=function(a,b,d){var c=this.editor.graph,e=null;c.getModel().beginUpdate();try{e=c.insertVertex(null,null,"<pre>"+a+"</pre>",b,d,1,1,"text;html=1;align=center;verticalAlign=middle;"),c.updateCellSize(e,!0)}finally{c.getModel().endUpdate()}return e};EditorUi.prototype.insertTextAt=function(a,b,d,e,h,l,n){l=null!=l?l:!0;n=null!=n?n:!0;if(null!=a)if(Graph.fileSupport&&!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(a))this.parseFile(new Blob([a.replace(/\s+/g, -" ")],{type:"application/octet-stream"}),mxUtils.bind(this,function(a){4==a.readyState&&200<=a.status&&299>=a.status&&this.editor.graph.setSelectionCells(this.insertTextAt(a.responseText,b,d,!0))}));else if("data:"==a.substring(0,5)||!this.isOffline()&&(h||/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(a))){var c=this.editor.graph;if("data:image/png;base64,"==a.substring(0,22)){var f=this.extractGraphModelFromPng(a),g=this.importXml(f,b,d,l,!0);if(0<g.length)return g}if("data:image/svg+xml;"==a.substring(0, -19))try{if(f=null,"data:image/svg+xml;base64,"==a.substring(0,26)?(f=a.substring(a.indexOf(",")+1),f=window.atob&&!mxClient.IS_SF?atob(f):Base64.decode(f,!0)):f=decodeURIComponent(a.substring(a.indexOf(",")+1)),g=this.importXml(f,b,d,l,!0),0<g.length)return g}catch(y){}this.loadImage(a,mxUtils.bind(this,function(e){if("data:"==a.substring(0,5))this.resizeImage(e,a,mxUtils.bind(this,function(a,e,f){c.setSelectionCell(c.insertVertex(null,null,"",c.snap(b),c.snap(d),e,f,"shape=image;verticalLabelPosition=bottom;labelBackgroundColor=#ffffff;verticalAlign=top;aspect=fixed;imageAspect=0;image="+ -this.convertDataUri(a)+";"))}),n,this.maxImageSize);else{var f=Math.min(1,Math.min(this.maxImageSize/e.width,this.maxImageSize/e.height)),g=Math.round(e.width*f);e=Math.round(e.height*f);c.setSelectionCell(c.insertVertex(null,null,"",c.snap(b),c.snap(d),g,e,"shape=image;verticalLabelPosition=bottom;labelBackgroundColor=#ffffff;verticalAlign=top;aspect=fixed;imageAspect=0;image="+a+";"))}}),mxUtils.bind(this,function(){var f=null;c.getModel().beginUpdate();try{f=c.insertVertex(c.getDefaultParent(), -null,a,c.snap(b),c.snap(d),1,1,"text;"+(e?"html=1;":"")),c.updateCellSize(f),c.fireEvent(new mxEventObject("textInserted","cells",[f]))}finally{c.getModel().endUpdate()}c.setSelectionCell(f)}))}else{a=this.editor.graph.zapGremlins(mxUtils.trim(a));if(this.isCompatibleString(a))return this.importXml(a,b,d,l);if(0<a.length)if(this.isLucidChartData(a))this.convertLucidChart(a,mxUtils.bind(this,function(a){this.editor.graph.setSelectionCells(this.importXml(a,b,d,l))}),mxUtils.bind(this,function(a){this.handleError(a)})); -else{c=this.editor.graph;h=null;c.getModel().beginUpdate();try{h=c.insertVertex(c.getDefaultParent(),null,"",c.snap(b),c.snap(d),1,1,"text;"+(e?"html=1;":"")),c.fireEvent(new mxEventObject("textInserted","cells",[h])),"<"==a.charAt(0)&&a.indexOf(">")==a.length-1&&(a=mxUtils.htmlEntities(a)),h.value=a,c.updateCellSize(h),/\b((?:[a-z][\w-]+:(?:\/{1,3}|[a-z0-9%])|www\d{0,3}[.]|[a-z0-9.\-]+[.][a-z]{2,4}\/)(?:[^\s()<>]+|\(([^\s()<>]+|(\([^\s()<>]+\)))*\))+(?:\(([^\s()<>]+|(\([^\s()<>]+\)))*\)|[^\s`!()\[\]{};:'".,<>?«»“â€â€˜â€™]))/i.test(h.value)&& -c.setLinkForCell(h,h.value),h.geometry.width+=c.gridSize,h.geometry.height+=c.gridSize}finally{c.getModel().endUpdate()}return[h]}}return[]};EditorUi.prototype.formatFileSize=function(a){var c=-1;do a/=1024,c++;while(1024<a);return Math.max(a,.1).toFixed(1)+" kB; MB; GB; TB;PB;EB;ZB;YB".split(";")[c]};EditorUi.prototype.convertDataUri=function(a){if("data:"==a.substring(0,5)){var c=a.indexOf(";");0<c&&(a=a.substring(0,c)+a.substring(a.indexOf(",",c+1)))}return a};EditorUi.prototype.isRemoteFileFormat= +function(a,b){if(/(\.svg)$/i.test(a))mxUtils.get(a,mxUtils.bind(this,function(a){b(this.createSvgDataUri(a.getText()))}),function(){b(this.svgBrokenImage.src)});else{var c=new Image,d=this;this.crossOriginImages&&(c.crossOrigin="anonymous");c.onload=function(){var a=document.createElement("canvas"),e=a.getContext("2d");a.height=c.height;a.width=c.width;e.drawImage(c,0,0);try{b(a.toDataURL())}catch(m){b(d.svgBrokenImage.src)}};c.onerror=function(){b(d.svgBrokenImage.src)};c.src=a}};EditorUi.prototype.importXml= +function(a,b,d,e,k){b=null!=b?b:0;d=null!=d?d:0;var c=[];try{var f=this.editor.graph;if(null!=a&&0<a.length){var g=mxUtils.parseXml(a),n=this.editor.extractGraphModel(g.documentElement,null!=this.pages);if(null!=n&&"mxfile"==n.nodeName&&null!=this.pages){var l=n.getElementsByTagName("diagram");if(1==l.length)n=mxUtils.parseXml(f.decompress(mxUtils.getTextContent(l[0]))).documentElement;else if(1<l.length){f.model.beginUpdate();try{for(a=0;a<l.length;a++){l[a].removeAttribute("id");var r=this.updatePageRoot(new DiagramPage(l[a])), +t=this.pages.length;null==r.getName()&&(r.setName(mxResources.get("pageWithNumber",[t+1])),r.needsUpdate=!0);f.model.execute(new ChangePage(this,r,r,t))}}finally{f.model.endUpdate()}}}null!=n&&"mxGraphModel"===n.nodeName&&(c=f.importGraphModel(n,b,d,e))}}catch(z){throw k||this.handleError(z,mxResources.get("invalidOrMissingFile")),z;}return c};EditorUi.prototype.isRemoteVisioFormat=function(a){return/(\.v(sd|dx))($|\?)/i.test(a)||/(\.vs(s|x))($|\?)/i.test(a)};EditorUi.prototype.importVisio=function(a, +b,d,e){e=null!=e?e:a.name;d=null!=d?d:mxUtils.bind(this,function(a){this.handleError(a)});var c=mxUtils.bind(this,function(){this.loadingExtensions=!1;if(this.doImportVisio)if(this.isRemoteVisioFormat(e)&&null!=VSD_CONVERT_URL){var c=new FormData;c.append("file1",a,e);var f=new XMLHttpRequest;f.open("POST",VSD_CONVERT_URL);f.responseType="blob";f.onreadystatechange=mxUtils.bind(this,function(){if(4==f.readyState)if(200<=f.status&&299>=f.status)try{f.response.name=e,this.doImportVisio(f.response,b, +d)}catch(w){d(w)}else d({})});f.send(c)}else try{this.doImportVisio(a,b,d)}catch(w){d(w)}});this.doImportVisio||this.loadingExtensions||this.isOffline()?c():(this.loadingExtensions=!0,mxscript("js/extensions.min.js",c))};EditorUi.prototype.exportVisio=function(){var a=mxUtils.bind(this,function(){this.loadingExtensions=!1;if("undefined"!==typeof VsdxExport)try{(new VsdxExport(this)).exportCurrentDiagrams()}catch(f){this.handleError(f)}});"undefined"!==typeof VsdxExport||this.loadingExtensions||this.isOffline()? +a():(this.loadingExtensions=!0,mxscript("js/extensions.min.js",a))};EditorUi.prototype.convertLucidChart=function(a,b,d){var c=mxUtils.bind(this,function(){this.loadingExtensions=!1;if("undefined"!==typeof window.LucidImporter)try{b(LucidImporter.importState(JSON.parse(a)))}catch(r){d(r)}else d({message:mxResources.get("serviceUnavailableOrBlocked")})});"undefined"!==typeof window.LucidImporter||this.loadingExtensions||this.isOffline()?window.setTimeout(c,0):(this.loadingExtensions=!0,"1"==urlParams.dev? +mxscript("js/diagramly/Extensions.js",c):mxscript("js/extensions.min.js",c))};EditorUi.prototype.insertAsPreText=function(a,b,d){var c=this.editor.graph,e=null;c.getModel().beginUpdate();try{e=c.insertVertex(null,null,"<pre>"+a+"</pre>",b,d,1,1,"text;html=1;align=center;verticalAlign=middle;"),c.updateCellSize(e,!0)}finally{c.getModel().endUpdate()}return e};EditorUi.prototype.insertTextAt=function(a,b,d,e,k,h,m){h=null!=h?h:!0;m=null!=m?m:!0;if(null!=a)if(Graph.fileSupport&&!this.isOffline()&&(new XMLHttpRequest).upload&& +this.isRemoteFileFormat(a))this.parseFile(new Blob([a.replace(/\s+/g," ")],{type:"application/octet-stream"}),mxUtils.bind(this,function(a){4==a.readyState&&200<=a.status&&299>=a.status&&this.editor.graph.setSelectionCells(this.insertTextAt(a.responseText,b,d,!0))}));else if("data:"==a.substring(0,5)||!this.isOffline()&&(k||/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(a))){var c=this.editor.graph;if("data:image/png;base64,"==a.substring(0,22)){var f=this.extractGraphModelFromPng(a),g=this.importXml(f,b, +d,h,!0);if(0<g.length)return g}if("data:image/svg+xml;"==a.substring(0,19))try{if(f=null,"data:image/svg+xml;base64,"==a.substring(0,26)?(f=a.substring(a.indexOf(",")+1),f=window.atob&&!mxClient.IS_SF?atob(f):Base64.decode(f,!0)):f=decodeURIComponent(a.substring(a.indexOf(",")+1)),g=this.importXml(f,b,d,h,!0),0<g.length)return g}catch(y){}this.loadImage(a,mxUtils.bind(this,function(e){if("data:"==a.substring(0,5))this.resizeImage(e,a,mxUtils.bind(this,function(a,e,f){c.setSelectionCell(c.insertVertex(null, +null,"",c.snap(b),c.snap(d),e,f,"shape=image;verticalLabelPosition=bottom;labelBackgroundColor=#ffffff;verticalAlign=top;aspect=fixed;imageAspect=0;image="+this.convertDataUri(a)+";"))}),m,this.maxImageSize);else{var f=Math.min(1,Math.min(this.maxImageSize/e.width,this.maxImageSize/e.height)),g=Math.round(e.width*f);e=Math.round(e.height*f);c.setSelectionCell(c.insertVertex(null,null,"",c.snap(b),c.snap(d),g,e,"shape=image;verticalLabelPosition=bottom;labelBackgroundColor=#ffffff;verticalAlign=top;aspect=fixed;imageAspect=0;image="+ +a+";"))}}),mxUtils.bind(this,function(){var f=null;c.getModel().beginUpdate();try{f=c.insertVertex(c.getDefaultParent(),null,a,c.snap(b),c.snap(d),1,1,"text;"+(e?"html=1;":"")),c.updateCellSize(f),c.fireEvent(new mxEventObject("textInserted","cells",[f]))}finally{c.getModel().endUpdate()}c.setSelectionCell(f)}))}else{a=this.editor.graph.zapGremlins(mxUtils.trim(a));if(this.isCompatibleString(a))return this.importXml(a,b,d,h);if(0<a.length)if(this.isLucidChartData(a))this.convertLucidChart(a,mxUtils.bind(this, +function(a){this.editor.graph.setSelectionCells(this.importXml(a,b,d,h))}),mxUtils.bind(this,function(a){this.handleError(a)}));else{c=this.editor.graph;k=null;c.getModel().beginUpdate();try{k=c.insertVertex(c.getDefaultParent(),null,"",c.snap(b),c.snap(d),1,1,"text;"+(e?"html=1;":"")),c.fireEvent(new mxEventObject("textInserted","cells",[k])),"<"==a.charAt(0)&&a.indexOf(">")==a.length-1&&(a=mxUtils.htmlEntities(a)),k.value=a,c.updateCellSize(k),/\b((?:[a-z][\w-]+:(?:\/{1,3}|[a-z0-9%])|www\d{0,3}[.]|[a-z0-9.\-]+[.][a-z]{2,4}\/)(?:[^\s()<>]+|\(([^\s()<>]+|(\([^\s()<>]+\)))*\))+(?:\(([^\s()<>]+|(\([^\s()<>]+\)))*\)|[^\s`!()\[\]{};:'".,<>?«»“â€â€˜â€™]))/i.test(k.value)&& +c.setLinkForCell(k,k.value),k.geometry.width+=c.gridSize,k.geometry.height+=c.gridSize}finally{c.getModel().endUpdate()}return[k]}}return[]};EditorUi.prototype.formatFileSize=function(a){var c=-1;do a/=1024,c++;while(1024<a);return Math.max(a,.1).toFixed(1)+" kB; MB; GB; TB;PB;EB;ZB;YB".split(";")[c]};EditorUi.prototype.convertDataUri=function(a){if("data:"==a.substring(0,5)){var c=a.indexOf(";");0<c&&(a=a.substring(0,c)+a.substring(a.indexOf(",",c+1)))}return a};EditorUi.prototype.isRemoteFileFormat= function(a,b){return/(\"contentType\":\s*\"application\/gliffy\+json\")/.test(a)};EditorUi.prototype.isLucidChartData=function(a){return null!=a&&'{"state":"{\\"Properties\\":'==a.substring(0,26)};EditorUi.prototype.importLocalFile=function(a,b){if(a&&Graph.fileSupport&&(!mxClient.IS_IE&&!mxClient.IS_IE11||0>navigator.appVersion.indexOf("Windows NT 6.1"))){var c=document.createElement("input");c.setAttribute("type","file");mxEvent.addListener(c,"change",mxUtils.bind(this,function(){null!=c.files&& this.importFiles(c.files,null,null,this.maxImageSize)}));c.click()}else{window.openNew=!1;window.openKey="import";if(!b){var d=Editor.useLocalStorage;Editor.useLocalStorage=!a}window.openFile=new OpenFile(mxUtils.bind(this,function(a){this.hideDialog(a)}));window.openFile.setConsumer(mxUtils.bind(this,function(a,c){if(null!=c&&Graph.fileSupport&&/(\.v(dx|sdx?))($|\?)/i.test(c)){var b=new Blob([a],{type:"application/octet-stream"});this.importVisio(b,mxUtils.bind(this,function(a){this.importXml(a)}), -null,c)}else this.editor.graph.setSelectionCells(this.importXml(a))}));this.showDialog((new OpenDialog(this)).container,360,220,!0,!0,function(){window.openFile=null});if(!b){var e=this.dialog,f=e.close;this.dialog.close=mxUtils.bind(this,function(a){Editor.useLocalStorage=d;f.apply(e,arguments);a&&null==this.getCurrentFile()&&"1"!=urlParams.embed&&this.showSplash()})}}};EditorUi.prototype.importFile=function(a,b,d,e,h,l,n,m,p,q,u){q=null!=q?q:!0;var c=!1,f=null,g=mxUtils.bind(this,function(a){var c= -null;null!=a&&"<mxlibrary"==a.substring(0,10)?this.loadLibrary(new LocalLibrary(this,a,n)):c=this.importXml(a,d,e,q);null!=m&&m(c)});"image"==b.substring(0,5)?(p=!1,"image/png"==b.substring(0,9)&&(b=u?null:this.extractGraphModelFromPng(a),null!=b&&0<b.length&&(f=this.importXml(b,d,e,q),p=!0)),p||(f=this.editor.graph,b=a.indexOf(";"),0<b&&(a=a.substring(0,b)+a.substring(a.indexOf(",",b+1))),q&&f.isGridEnabled()&&(d=f.snap(d),e=f.snap(e)),f=[f.insertVertex(null,null,"",d,e,h,l,"shape=image;verticalLabelPosition=bottom;labelBackgroundColor=#ffffff;verticalAlign=top;aspect=fixed;imageAspect=0;image="+ -a+";")])):/(\.*<graphml )/.test(a)&&"undefined"!==typeof window.mxGraphMlCodec?(new mxGraphMlCodec).decode(a,mxUtils.bind(this,function(a){a=this.importXml(a,d,e,q);null!=m&&m(a)})):null!=p&&null!=n&&(/(\.v(dx|sdx?))($|\?)/i.test(n)||/(\.vs(x|sx?))($|\?)/i.test(n))?(c=!0,this.importVisio(p,g)):!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(a,n)?(c=!0,this.parseFile(null!=p?p:new Blob([a],{type:"application/octet-stream"}),mxUtils.bind(this,function(a){4==a.readyState&&(200<= -a.status&&299>=a.status?g(a.responseText):null!=m&&m(null))}),n)):/(\.v(sd|dx))($|\?)/i.test(n)||/(\.vs(s|x))($|\?)/i.test(n)||(f=this.insertTextAt(this.validateFileData(a),d,e,!0,null,q));c||null==m||m(f);return f};EditorUi.prototype.base64Encode=function(a){for(var c="",b=0,d=a.length,e,h,n;b<d;){e=a.charCodeAt(b++)&255;if(b==d){c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(e>>2);c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((e&3)<<4); -c+="==";break}h=a.charCodeAt(b++);if(b==d){c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(e>>2);c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((e&3)<<4|(h&240)>>4);c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((h&15)<<2);c+="=";break}n=a.charCodeAt(b++);c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(e>>2);c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((e& -3)<<4|(h&240)>>4);c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((h&15)<<2|(n&192)>>6);c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(n&63)}return c};EditorUi.prototype.importFiles=function(a,b,d,e,h,l,n,m,p,q,u,t){b=null!=b?b:0;d=null!=d?d:0;e=null!=e?e:this.maxImageSize;q=null!=q?q:this.maxImageBytes;var c=null!=b&&null!=d,f=!0,g=!1;if(!mxClient.IS_CHROMEAPP&&null!=a)for(var k=u||this.resampleThreshold,r=0;r<a.length;r++)if("image/"==a[r].type.substring(0, -6)&&a[r].size>k){g=!0;break}var v=mxUtils.bind(this,function(){var g=this.editor.graph,k=g.gridSize;h=null!=h?h:mxUtils.bind(this,function(a,b,d,e,f,g,k,h,l){return null!=a&&"<mxlibrary"==a.substring(0,10)?(this.spinner.stop(),this.loadLibrary(new LocalLibrary(this,a,k)),null):this.importFile(a,b,d,e,f,g,k,h,l,c,t)});l=null!=l?l:mxUtils.bind(this,function(a){g.setSelectionCells(a)});if(this.spinner.spin(document.body,mxResources.get("loading")))for(var p=a.length,r=p,v=[],w=mxUtils.bind(this,function(a, -c){v[a]=c;if(0==--r){this.spinner.stop();if(null!=m)m(v);else{var b=[];g.getModel().beginUpdate();try{for(var d=0;d<v.length;d++){var e=v[d]();null!=e&&(b=b.concat(e))}}finally{g.getModel().endUpdate()}}l(b)}}),y=0;y<p;y++)mxUtils.bind(this,function(c){var l=a[c],m=new FileReader;m.onload=mxUtils.bind(this,function(a){if(null==n||n(l))if("image/"==l.type.substring(0,6))if("image/svg"==l.type.substring(0,9)){var m=a.target.result,p=m.indexOf(","),r=decodeURIComponent(escape(atob(m.substring(p+1)))), -v=mxUtils.parseXml(r),r=v.getElementsByTagName("svg");if(0<r.length){var r=r[0],x=t?null:r.getAttribute("content");null!=x&&"<"!=x.charAt(0)&&"%"!=x.charAt(0)&&(x=unescape(window.atob?atob(x):Base64.decode(x,!0)));null!=x&&"%"==x.charAt(0)&&(x=decodeURIComponent(x));null==x||"<mxfile "!==x.substring(0,8)&&"<mxGraphModel "!==x.substring(0,14)?w(c,mxUtils.bind(this,function(){try{if(m.substring(0,p+1),null!=v){var a=v.getElementsByTagName("svg");if(0<a.length){var f=a[0],n=parseFloat(f.getAttribute("width")), -r=parseFloat(f.getAttribute("height")),t=f.getAttribute("viewBox");if(null==t||0==t.length)f.setAttribute("viewBox","0 0 "+n+" "+r);else if(isNaN(n)||isNaN(r)){var q=t.split(" ");3<q.length&&(n=parseFloat(q[2]),r=parseFloat(q[3]))}m=this.createSvgDataUri(mxUtils.getXml(f));var x=Math.min(1,Math.min(e/Math.max(1,n)),e/Math.max(1,r)),w=h(m,l.type,b+c*k,d+c*k,Math.max(1,Math.round(n*x)),Math.max(1,Math.round(r*x)),l.name);if(isNaN(n)||isNaN(r)){var u=new Image;u.onload=mxUtils.bind(this,function(){n= -Math.max(1,u.width);r=Math.max(1,u.height);w[0].geometry.width=n;w[0].geometry.height=r;f.setAttribute("viewBox","0 0 "+n+" "+r);m=this.createSvgDataUri(mxUtils.getXml(f));var a=m.indexOf(";");0<a&&(m=m.substring(0,a)+m.substring(m.indexOf(",",a+1)));g.setCellStyles("image",m,[w[0]])});u.src=this.createSvgDataUri(mxUtils.getXml(f))}return w}}}catch(fa){}return null})):w(c,mxUtils.bind(this,function(){return h(x,"text/xml",b+c*k,d+c*k,0,0,l.name)}))}else w(c,mxUtils.bind(this,function(){return null}))}else{r= -!1;if("image/png"==l.type){var I=t?null:this.extractGraphModelFromPng(a.target.result);if(null!=I&&0<I.length){var y=new Image;y.src=a.target.result;w(c,mxUtils.bind(this,function(){return h(I,"text/xml",b+c*k,d+c*k,y.width,y.height,l.name)}));r=!0}}r||(mxClient.IS_CHROMEAPP?(this.spinner.stop(),this.showError(mxResources.get("error"),mxResources.get("dragAndDropNotSupported"),mxResources.get("cancel"),mxUtils.bind(this,function(){}),null,mxResources.get("ok"),mxUtils.bind(this,function(){this.actions.get("import").funct()}))): -this.loadImage(a.target.result,mxUtils.bind(this,function(g){this.resizeImage(g,a.target.result,mxUtils.bind(this,function(g,n,m){w(c,mxUtils.bind(this,function(){if(null!=g&&g.length<q){var p=f&&this.isResampleImage(a.target.result,u)?Math.min(1,Math.min(e/n,e/m)):1;return h(g,l.type,b+c*k,d+c*k,Math.round(n*p),Math.round(m*p),l.name)}this.handleError({message:mxResources.get("imageTooBig")});return null}))}),f,e,u)}),mxUtils.bind(this,function(){this.handleError({message:mxResources.get("invalidOrMissingFile")})})))}else h(a.target.result, -l.type,b+c*k,d+c*k,240,160,l.name,function(a){w(c,function(){return a})})});/(\.v(dx|sdx?))($|\?)/i.test(l.name)||/(\.vs(x|sx?))($|\?)/i.test(l.name)?h(null,l.type,b+c*k,d+c*k,240,160,l.name,function(a){w(c,function(){return a})},l):"image"==l.type.substring(0,5)?m.readAsDataURL(l):m.readAsText(l)})(y)});g?this.confirmImageResize(function(a){f=a;v()},p):v()};EditorUi.prototype.confirmImageResize=function(a,b){b=null!=b?b:!1;var c=null!=this.spinner&&null!=this.spinner.pause?this.spinner.pause():function(){}, +null,c)}else this.editor.graph.setSelectionCells(this.importXml(a))}));this.showDialog((new OpenDialog(this)).container,360,220,!0,!0,function(){window.openFile=null});if(!b){var e=this.dialog,f=e.close;this.dialog.close=mxUtils.bind(this,function(a){Editor.useLocalStorage=d;f.apply(e,arguments);a&&null==this.getCurrentFile()&&"1"!=urlParams.embed&&this.showSplash()})}}};EditorUi.prototype.importFile=function(a,b,d,e,k,h,m,l,p,q,u){q=null!=q?q:!0;var c=!1,f=null,g=mxUtils.bind(this,function(a){var c= +null;null!=a&&"<mxlibrary"==a.substring(0,10)?this.loadLibrary(new LocalLibrary(this,a,m)):c=this.importXml(a,d,e,q);null!=l&&l(c)});"image"==b.substring(0,5)?(p=!1,"image/png"==b.substring(0,9)&&(b=u?null:this.extractGraphModelFromPng(a),null!=b&&0<b.length&&(f=this.importXml(b,d,e,q),p=!0)),p||(f=this.editor.graph,b=a.indexOf(";"),0<b&&(a=a.substring(0,b)+a.substring(a.indexOf(",",b+1))),q&&f.isGridEnabled()&&(d=f.snap(d),e=f.snap(e)),f=[f.insertVertex(null,null,"",d,e,k,h,"shape=image;verticalLabelPosition=bottom;labelBackgroundColor=#ffffff;verticalAlign=top;aspect=fixed;imageAspect=0;image="+ +a+";")])):/(\.*<graphml )/.test(a)&&"undefined"!==typeof window.mxGraphMlCodec?(new mxGraphMlCodec).decode(a,mxUtils.bind(this,function(a){a=this.importXml(a,d,e,q);null!=l&&l(a)})):null!=p&&null!=m&&(/(\.v(dx|sdx?))($|\?)/i.test(m)||/(\.vs(x|sx?))($|\?)/i.test(m))?(c=!0,this.importVisio(p,g)):!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(a,m)?(c=!0,this.parseFile(null!=p?p:new Blob([a],{type:"application/octet-stream"}),mxUtils.bind(this,function(a){4==a.readyState&&(200<= +a.status&&299>=a.status?g(a.responseText):null!=l&&l(null))}),m)):/(\.v(sd|dx))($|\?)/i.test(m)||/(\.vs(s|x))($|\?)/i.test(m)||(f=this.insertTextAt(this.validateFileData(a),d,e,!0,null,q));c||null==l||l(f);return f};EditorUi.prototype.base64Encode=function(a){for(var c="",b=0,d=a.length,e,h,k;b<d;){e=a.charCodeAt(b++)&255;if(b==d){c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(e>>2);c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((e&3)<<4); +c+="==";break}h=a.charCodeAt(b++);if(b==d){c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(e>>2);c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((e&3)<<4|(h&240)>>4);c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((h&15)<<2);c+="=";break}k=a.charCodeAt(b++);c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(e>>2);c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((e& +3)<<4|(h&240)>>4);c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((h&15)<<2|(k&192)>>6);c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(k&63)}return c};EditorUi.prototype.importFiles=function(a,b,d,e,k,h,m,l,p,q,u,t){b=null!=b?b:0;d=null!=d?d:0;e=null!=e?e:this.maxImageSize;q=null!=q?q:this.maxImageBytes;var c=null!=b&&null!=d,f=!0,g=!1;if(!mxClient.IS_CHROMEAPP&&null!=a)for(var n=u||this.resampleThreshold,r=0;r<a.length;r++)if("image/"==a[r].type.substring(0, +6)&&a[r].size>n){g=!0;break}var v=mxUtils.bind(this,function(){var g=this.editor.graph,n=g.gridSize;k=null!=k?k:mxUtils.bind(this,function(a,b,d,e,f,g,h,k,m){return null!=a&&"<mxlibrary"==a.substring(0,10)?(this.spinner.stop(),this.loadLibrary(new LocalLibrary(this,a,h)),null):this.importFile(a,b,d,e,f,g,h,k,m,c,t)});h=null!=h?h:mxUtils.bind(this,function(a){g.setSelectionCells(a)});if(this.spinner.spin(document.body,mxResources.get("loading")))for(var p=a.length,r=p,v=[],w=mxUtils.bind(this,function(a, +c){v[a]=c;if(0==--r){this.spinner.stop();if(null!=l)l(v);else{var b=[];g.getModel().beginUpdate();try{for(var d=0;d<v.length;d++){var e=v[d]();null!=e&&(b=b.concat(e))}}finally{g.getModel().endUpdate()}}h(b)}}),y=0;y<p;y++)mxUtils.bind(this,function(c){var h=a[c],l=new FileReader;l.onload=mxUtils.bind(this,function(a){if(null==m||m(h))if("image/"==h.type.substring(0,6))if("image/svg"==h.type.substring(0,9)){var l=a.target.result,p=l.indexOf(","),r=decodeURIComponent(escape(atob(l.substring(p+1)))), +v=mxUtils.parseXml(r),r=v.getElementsByTagName("svg");if(0<r.length){var r=r[0],x=t?null:r.getAttribute("content");null!=x&&"<"!=x.charAt(0)&&"%"!=x.charAt(0)&&(x=unescape(window.atob?atob(x):Base64.decode(x,!0)));null!=x&&"%"==x.charAt(0)&&(x=decodeURIComponent(x));null==x||"<mxfile "!==x.substring(0,8)&&"<mxGraphModel "!==x.substring(0,14)?w(c,mxUtils.bind(this,function(){try{if(l.substring(0,p+1),null!=v){var a=v.getElementsByTagName("svg");if(0<a.length){var f=a[0],m=parseFloat(f.getAttribute("width")), +t=parseFloat(f.getAttribute("height")),r=f.getAttribute("viewBox");if(null==r||0==r.length)f.setAttribute("viewBox","0 0 "+m+" "+t);else if(isNaN(m)||isNaN(t)){var q=r.split(" ");3<q.length&&(m=parseFloat(q[2]),t=parseFloat(q[3]))}l=this.createSvgDataUri(mxUtils.getXml(f));var x=Math.min(1,Math.min(e/Math.max(1,m)),e/Math.max(1,t)),w=k(l,h.type,b+c*n,d+c*n,Math.max(1,Math.round(m*x)),Math.max(1,Math.round(t*x)),h.name);if(isNaN(m)||isNaN(t)){var u=new Image;u.onload=mxUtils.bind(this,function(){m= +Math.max(1,u.width);t=Math.max(1,u.height);w[0].geometry.width=m;w[0].geometry.height=t;f.setAttribute("viewBox","0 0 "+m+" "+t);l=this.createSvgDataUri(mxUtils.getXml(f));var a=l.indexOf(";");0<a&&(l=l.substring(0,a)+l.substring(l.indexOf(",",a+1)));g.setCellStyles("image",l,[w[0]])});u.src=this.createSvgDataUri(mxUtils.getXml(f))}return w}}}catch(fa){}return null})):w(c,mxUtils.bind(this,function(){return k(x,"text/xml",b+c*n,d+c*n,0,0,h.name)}))}else w(c,mxUtils.bind(this,function(){return null}))}else{r= +!1;if("image/png"==h.type){var I=t?null:this.extractGraphModelFromPng(a.target.result);if(null!=I&&0<I.length){var y=new Image;y.src=a.target.result;w(c,mxUtils.bind(this,function(){return k(I,"text/xml",b+c*n,d+c*n,y.width,y.height,h.name)}));r=!0}}r||(mxClient.IS_CHROMEAPP?(this.spinner.stop(),this.showError(mxResources.get("error"),mxResources.get("dragAndDropNotSupported"),mxResources.get("cancel"),mxUtils.bind(this,function(){}),null,mxResources.get("ok"),mxUtils.bind(this,function(){this.actions.get("import").funct()}))): +this.loadImage(a.target.result,mxUtils.bind(this,function(g){this.resizeImage(g,a.target.result,mxUtils.bind(this,function(g,m,l){w(c,mxUtils.bind(this,function(){if(null!=g&&g.length<q){var t=f&&this.isResampleImage(a.target.result,u)?Math.min(1,Math.min(e/m,e/l)):1;return k(g,h.type,b+c*n,d+c*n,Math.round(m*t),Math.round(l*t),h.name)}this.handleError({message:mxResources.get("imageTooBig")});return null}))}),f,e,u)}),mxUtils.bind(this,function(){this.handleError({message:mxResources.get("invalidOrMissingFile")})})))}else k(a.target.result, +h.type,b+c*n,d+c*n,240,160,h.name,function(a){w(c,function(){return a})})});/(\.v(dx|sdx?))($|\?)/i.test(h.name)||/(\.vs(x|sx?))($|\?)/i.test(h.name)?k(null,h.type,b+c*n,d+c*n,240,160,h.name,function(a){w(c,function(){return a})},h):"image"==h.type.substring(0,5)?l.readAsDataURL(h):l.readAsText(h)})(y)});g?this.confirmImageResize(function(a){f=a;v()},p):v()};EditorUi.prototype.confirmImageResize=function(a,b){b=null!=b?b:!1;var c=null!=this.spinner&&null!=this.spinner.pause?this.spinner.pause():function(){}, d=isLocalStorage||mxClient.IS_CHROMEAPP?mxSettings.getResizeImages():null,e=function(d,e){if(d||b)mxSettings.setResizeImages(d?e:null),mxSettings.save();c();a(e)};null==d||b?this.showDialog((new ConfirmDialog(this,mxResources.get("resizeLargeImages"),function(a){e(a,!0)},function(a){e(a,!1)},mxResources.get("resize"),mxResources.get("actualSize"),'<img style="margin-top:8px;" src="'+Editor.loResImage+'"/>','<img style="margin-top:8px;" src="'+Editor.hiResImage+'"/>',isLocalStorage||mxClient.IS_CHROMEAPP)).container, -340,isLocalStorage||mxClient.IS_CHROMEAPP?220:200,!0,!0):e(!1,d)};EditorUi.prototype.parseFile=function(a,b,d){d=null!=d?d:a.name;var c=new FormData;c.append("format","xml");c.append("upfile",a,d);var e=new XMLHttpRequest;e.open("POST",OPEN_URL);e.onreadystatechange=function(){b(e)};e.send(c)};EditorUi.prototype.isResampleImage=function(a,b){b=null!=b?b:this.resampleThreshold;return a.length>b};EditorUi.prototype.resizeImage=function(a,b,d,e,h,l){h=null!=h?h:this.maxImageSize;var c=Math.max(1,a.width), -f=Math.max(1,a.height);if(e&&this.isResampleImage(b,l))try{var g=Math.max(c/h,f/h);if(1<g){var k=Math.round(c/g),m=Math.round(f/g),p=document.createElement("canvas");p.width=k;p.height=m;p.getContext("2d").drawImage(a,0,0,k,m);var r=p.toDataURL();if(r.length<b.length){var q=document.createElement("canvas");q.width=k;q.height=m;var u=q.toDataURL();r!==u&&(b=r,c=k,f=m)}}}catch(A){}d(b,c,f)};EditorUi.prototype.crcTable=[];for(var e=0;256>e;e++)for(var b=e,h=0;8>h;h++)b=1==(b&1)?3988292384^b>>>1:b>>> -1,EditorUi.prototype.crcTable[e]=b;EditorUi.prototype.updateCRC=function(a,b,d,e){for(var c=0;c<e;c++)a=EditorUi.prototype.crcTable[(a^b[d+c])&255]^a>>>8;return a};EditorUi.prototype.crc32=function(a){this.crcTable=this.crcTable||this.createCrcTable();for(var c=-1,b=0;b<a.length;b++)c=c>>>8^this.crcTable[(c^a.charCodeAt(b))&255];return(c^-1)>>>0};EditorUi.prototype.writeGraphModelToPng=function(a,b,d,e,h){function c(a,c){var b=k;k+=c;return a.substring(b,k)}function f(a){a=c(a,4);return a.charCodeAt(3)+ -(a.charCodeAt(2)<<8)+(a.charCodeAt(1)<<16)+(a.charCodeAt(0)<<24)}function g(a){return String.fromCharCode(a>>24&255,a>>16&255,a>>8&255,a&255)}a=a.substring(a.indexOf(",")+1);a=window.atob?atob(a):Base64.decode(a,!0);var k=0;if(c(a,8)!=String.fromCharCode(137)+"PNG"+String.fromCharCode(13,10,26,10))null!=h&&h();else if(c(a,4),"IHDR"!=c(a,4))null!=h&&h();else{c(a,17);h=a.substring(0,k);do{var m=f(a);if("IDAT"==c(a,4)){h=a.substring(0,k-8);d=d+String.fromCharCode(0)+("zTXt"==b?String.fromCharCode(0): -"")+e;e=4294967295;e=this.updateCRC(e,b,0,4);e=this.updateCRC(e,d,0,d.length);h+=g(d.length)+b+d+g(e^4294967295);h+=a.substring(k-8,a.length);break}h+=a.substring(k-8,k-4+m);c(a,m);c(a,4)}while(m);return"data:image/png;base64,"+(window.btoa?btoa(h):Base64.encode(h,!0))}};EditorUi.prototype.extractGraphModelFromPng=function(a){var c=null;try{var b=a.substring(a.indexOf(",")+1),d=window.atob&&!mxClient.IS_SF?atob(b):Base64.decode(b,!0);EditorUi.parsePng(d,mxUtils.bind(this,function(a,b,e){a=d.substring(a+ +340,isLocalStorage||mxClient.IS_CHROMEAPP?220:200,!0,!0):e(!1,d)};EditorUi.prototype.parseFile=function(a,b,d){d=null!=d?d:a.name;var c=new FormData;c.append("format","xml");c.append("upfile",a,d);var e=new XMLHttpRequest;e.open("POST",OPEN_URL);e.onreadystatechange=function(){b(e)};e.send(c)};EditorUi.prototype.isResampleImage=function(a,b){b=null!=b?b:this.resampleThreshold;return a.length>b};EditorUi.prototype.resizeImage=function(a,b,d,e,k,h){k=null!=k?k:this.maxImageSize;var c=Math.max(1,a.width), +f=Math.max(1,a.height);if(e&&this.isResampleImage(b,h))try{var g=Math.max(c/k,f/k);if(1<g){var n=Math.round(c/g),l=Math.round(f/g),t=document.createElement("canvas");t.width=n;t.height=l;t.getContext("2d").drawImage(a,0,0,n,l);var p=t.toDataURL();if(p.length<b.length){var r=document.createElement("canvas");r.width=n;r.height=l;var q=r.toDataURL();p!==q&&(b=p,c=n,f=l)}}}catch(B){}d(b,c,f)};EditorUi.prototype.crcTable=[];for(var e=0;256>e;e++)for(var d=e,k=0;8>k;k++)d=1==(d&1)?3988292384^d>>>1:d>>> +1,EditorUi.prototype.crcTable[e]=d;EditorUi.prototype.updateCRC=function(a,b,d,e){for(var c=0;c<e;c++)a=EditorUi.prototype.crcTable[(a^b[d+c])&255]^a>>>8;return a};EditorUi.prototype.crc32=function(a){this.crcTable=this.crcTable||this.createCrcTable();for(var c=-1,b=0;b<a.length;b++)c=c>>>8^this.crcTable[(c^a.charCodeAt(b))&255];return(c^-1)>>>0};EditorUi.prototype.writeGraphModelToPng=function(a,b,d,e,k){function c(a,c){var b=n;n+=c;return a.substring(b,n)}function f(a){a=c(a,4);return a.charCodeAt(3)+ +(a.charCodeAt(2)<<8)+(a.charCodeAt(1)<<16)+(a.charCodeAt(0)<<24)}function g(a){return String.fromCharCode(a>>24&255,a>>16&255,a>>8&255,a&255)}a=a.substring(a.indexOf(",")+1);a=window.atob?atob(a):Base64.decode(a,!0);var n=0;if(c(a,8)!=String.fromCharCode(137)+"PNG"+String.fromCharCode(13,10,26,10))null!=k&&k();else if(c(a,4),"IHDR"!=c(a,4))null!=k&&k();else{c(a,17);k=a.substring(0,n);do{var l=f(a);if("IDAT"==c(a,4)){k=a.substring(0,n-8);d=d+String.fromCharCode(0)+("zTXt"==b?String.fromCharCode(0): +"")+e;e=4294967295;e=this.updateCRC(e,b,0,4);e=this.updateCRC(e,d,0,d.length);k+=g(d.length)+b+d+g(e^4294967295);k+=a.substring(n-8,a.length);break}k+=a.substring(n-8,n-4+l);c(a,l);c(a,4)}while(l);return"data:image/png;base64,"+(window.btoa?btoa(k):Base64.encode(k,!0))}};EditorUi.prototype.extractGraphModelFromPng=function(a){var c=null;try{var b=a.substring(a.indexOf(",")+1),d=window.atob&&!mxClient.IS_SF?atob(b):Base64.decode(b,!0);EditorUi.parsePng(d,mxUtils.bind(this,function(a,b,e){a=d.substring(a+ 8,a+8+e);"zTXt"==b?(e=a.indexOf(String.fromCharCode(0)),"mxGraphModel"==a.substring(0,e)&&(a=this.editor.graph.bytesToString(pako.inflateRaw(a.substring(e+2))).replace(/\+/g," "),null!=a&&0<a.length&&(c=a))):"tEXt"==b&&(a=a.split(String.fromCharCode(0)),1<a.length&&"mxGraphModel"==a[0]&&(c=a[1]));if(null!=c||"IDAT"==b)return!0}))}catch(r){}null!=c&&"%"==c.charAt(0)&&(c=decodeURIComponent(c));null!=c&&"%"==c.charAt(0)&&(c=decodeURIComponent(c));return c};EditorUi.prototype.loadImage=function(a,b,d){var c= -new Image;c.onload=function(){b(c)};null!=d&&(c.onerror=d);c.src=a};var m=EditorUi.prototype.init;EditorUi.prototype.init=function(){mxStencilRegistry.allowEval=mxStencilRegistry.allowEval&&!this.isOfflineApp();"undefined"!==typeof window.mxSettings&&(this.formatWidth=mxSettings.getFormatWidth());var a=this,b=this.editor.graph;b.getLinkTitle=function(c){return a.getLinkTitle(c)};b.customLinkClicked=function(c){var b=!1;try{a.handleCustomLink(c),b=!0}catch(x){a.handleError(x)}return b};var d=this.clearDefaultStyle; -this.clearDefaultStyle=function(){d.apply(this,arguments)};this.isOffline()||"undefined"===typeof window.EditDataDialog||(EditDataDialog.placeholderHelpLink="https://desk.draw.io/support/solutions/articles/16000051979");var e=a.editor.getEditBlankUrl;this.editor.getEditBlankUrl=function(c){c=null!=c?c:"";if(null!=a.pages&&null!=a.currentPage)for(var b=0;b<a.pages.length;b++)if(a.pages[b]==a.currentPage){0<b&&(c+=(0<c.length?"&":"?")+"page="+b);break}"1"==urlParams.dev&&(c+=(0<c.length?"&":"?")+"dev=1&drawdev=1"); -return e.apply(this,arguments)};var h=b.addClickHandler;b.addClickHandler=function(a,c,d){var e=c;c=function(a,c){if(null==c){var d=mxEvent.getSource(a);"a"==d.nodeName.toLowerCase()&&(c=d.getAttribute("href"))}null!=c&&b.isCustomLink(c)&&(mxEvent.isTouchEvent(a)||!mxEvent.isPopupTrigger(a))&&b.customLinkClicked(c)&&mxEvent.consume(a);null!=e&&e(a,c)};h.call(this,a,c,d)};m.apply(this,arguments);mxClient.IS_SVG&&this.editor.graph.addSvgShadow(b.view.canvas.ownerSVGElement,null,!0);a.actions.get("print").funct= -function(){a.showDialog((new PrintDialog(a)).container,360,null!=a.pages&&1<a.pages.length?420:360,!0,!0)};this.defaultFilename=mxResources.get("untitledDiagram");var l=b.getGlobalVariable;b.getGlobalVariable=function(c){return"page"==c&&null!=a.currentPage?a.currentPage.getName():"pagenumber"==c?null!=a.currentPage&&null!=a.pages?mxUtils.indexOf(a.pages,a.currentPage)+1:1:l.apply(this,arguments)};var n=b.labelLinkClicked;b.labelLinkClicked=function(a,c,d){var e=c.getAttribute("href");if(null==e|| -!b.isCustomLink(e)||!mxEvent.isTouchEvent(d)&&mxEvent.isPopupTrigger(d))n.apply(this,arguments);else{if(!b.isEnabled()||null!=a&&b.isCellLocked(a.cell))b.customLinkClicked(e),b.getRubberband().reset();mxEvent.consume(d)}};this.editor.getOrCreateFilename=function(){var c=a.defaultFilename,b=a.getCurrentFile();null!=b&&(c=null!=b.getTitle()?b.getTitle():c);return c};var p=this.actions.get("print");p.setEnabled(!mxClient.IS_IOS||!navigator.standalone);p.visible=p.isEnabled();if(!this.editor.chromeless|| +new Image;c.onload=function(){b(c)};null!=d&&(c.onerror=d);c.src=a};var l=EditorUi.prototype.init;EditorUi.prototype.init=function(){mxStencilRegistry.allowEval=mxStencilRegistry.allowEval&&!this.isOfflineApp();"undefined"!==typeof window.mxSettings&&(this.formatWidth=mxSettings.getFormatWidth());var a=this,b=this.editor.graph;b.getLinkTitle=function(b){return a.getLinkTitle(b)};b.customLinkClicked=function(b){var c=!1;try{a.handleCustomLink(b),c=!0}catch(x){a.handleError(x)}return c};var d=this.clearDefaultStyle; +this.clearDefaultStyle=function(){d.apply(this,arguments)};this.isOffline()||"undefined"===typeof window.EditDataDialog||(EditDataDialog.placeholderHelpLink="https://desk.draw.io/support/solutions/articles/16000051979");var e=a.editor.getEditBlankUrl;this.editor.getEditBlankUrl=function(b){b=null!=b?b:"";if(null!=a.pages&&null!=a.currentPage)for(var c=0;c<a.pages.length;c++)if(a.pages[c]==a.currentPage){0<c&&(b+=(0<b.length?"&":"?")+"page="+c);break}"1"==urlParams.dev&&(b+=(0<b.length?"&":"?")+"dev=1&drawdev=1"); +return e.apply(this,arguments)};var k=b.addClickHandler;b.addClickHandler=function(a,c,d){var e=c;c=function(a,c){if(null==c){var d=mxEvent.getSource(a);"a"==d.nodeName.toLowerCase()&&(c=d.getAttribute("href"))}null!=c&&b.isCustomLink(c)&&(mxEvent.isTouchEvent(a)||!mxEvent.isPopupTrigger(a))&&b.customLinkClicked(c)&&mxEvent.consume(a);null!=e&&e(a,c)};k.call(this,a,c,d)};l.apply(this,arguments);mxClient.IS_SVG&&this.editor.graph.addSvgShadow(b.view.canvas.ownerSVGElement,null,!0);a.actions.get("print").funct= +function(){a.showDialog((new PrintDialog(a)).container,360,null!=a.pages&&1<a.pages.length?420:360,!0,!0)};this.defaultFilename=mxResources.get("untitledDiagram");var h=b.getGlobalVariable;b.getGlobalVariable=function(b){return"page"==b&&null!=a.currentPage?a.currentPage.getName():"pagenumber"==b?null!=a.currentPage&&null!=a.pages?mxUtils.indexOf(a.pages,a.currentPage)+1:1:h.apply(this,arguments)};var m=b.labelLinkClicked;b.labelLinkClicked=function(a,c,d){var e=c.getAttribute("href");if(null==e|| +!b.isCustomLink(e)||!mxEvent.isTouchEvent(d)&&mxEvent.isPopupTrigger(d))m.apply(this,arguments);else{if(!b.isEnabled()||null!=a&&b.isCellLocked(a.cell))b.customLinkClicked(e),b.getRubberband().reset();mxEvent.consume(d)}};this.editor.getOrCreateFilename=function(){var b=a.defaultFilename,c=a.getCurrentFile();null!=c&&(b=null!=c.getTitle()?c.getTitle():b);return b};var p=this.actions.get("print");p.setEnabled(!mxClient.IS_IOS||!navigator.standalone);p.visible=p.isEnabled();if(!this.editor.chromeless|| this.editor.editable){var q=function(){window.setTimeout(function(){u.innerHTML=" ";u.focus();document.execCommand("selectAll",!1,null)},0)};this.keyHandler.bindAction(70,!0,"find");this.keyHandler.bindAction(67,!0,"copyStyle",!0);this.keyHandler.bindAction(86,!0,"pasteStyle",!0);this.keyHandler.bindAction(77,!0,"editGeometry",!0);this.keyHandler.bindAction(88,!0,"insertText",!0);this.keyHandler.bindAction(75,!0,"insertRectangle");this.keyHandler.bindAction(75,!0,"insertEllipse",!0);mxClient.IS_IE|| -b.container.addEventListener("paste",mxUtils.bind(this,function(a){var c=this.editor.graph;if(!mxEvent.isConsumed(a))try{for(var b=a.clipboardData||a.originalEvent.clipboardData,d=!1,e=0;e<b.types.length;e++)if("text/"===b.types[e].substring(0,5)){d=!0;break}if(!d){var f=b.items;for(index in f){var g=f[index];if("file"===g.kind){if(c.isEditing())this.importFiles([g.getAsFile()],0,0,this.maxImageSize,function(a,b,d,e,f,g){c.insertImage(a,f,g)},function(){},function(a){return"image/"==a.type.substring(0, -6)},function(a){for(var c=0;c<a.length;c++)a[c]()});else{var h=this.editor.graph.getInsertPoint();this.importFiles([g.getAsFile()],h.x,h.y,this.maxImageSize);mxEvent.consume(a)}break}}}}catch(U){}}),!1);var u=document.createElement("div");u.style.position="absolute";u.style.whiteSpace="nowrap";u.style.overflow="hidden";u.style.display="block";u.contentEditable=!0;mxUtils.setOpacity(u,0);u.style.width="1px";u.style.height="1px";u.innerHTML=" ";var y=!1;this.keyHandler.bindControlKey(88,null); +b.container.addEventListener("paste",mxUtils.bind(this,function(a){var b=this.editor.graph;if(!mxEvent.isConsumed(a))try{for(var c=a.clipboardData||a.originalEvent.clipboardData,d=!1,e=0;e<c.types.length;e++)if("text/"===c.types[e].substring(0,5)){d=!0;break}if(!d){var f=c.items;for(index in f){var g=f[index];if("file"===g.kind){if(b.isEditing())this.importFiles([g.getAsFile()],0,0,this.maxImageSize,function(a,c,d,e,f,g){b.insertImage(a,f,g)},function(){},function(a){return"image/"==a.type.substring(0, +6)},function(a){for(var b=0;b<a.length;b++)a[b]()});else{var h=this.editor.graph.getInsertPoint();this.importFiles([g.getAsFile()],h.x,h.y,this.maxImageSize);mxEvent.consume(a)}break}}}}catch(U){}}),!1);var u=document.createElement("div");u.style.position="absolute";u.style.whiteSpace="nowrap";u.style.overflow="hidden";u.style.display="block";u.contentEditable=!0;mxUtils.setOpacity(u,0);u.style.width="1px";u.style.height="1px";u.innerHTML=" ";var y=!1;this.keyHandler.bindControlKey(88,null); this.keyHandler.bindControlKey(67,null);this.keyHandler.bindControlKey(86,null);mxEvent.addListener(document,"keydown",mxUtils.bind(this,function(a){var c=mxEvent.getSource(a);null==b.container||!b.isEnabled()||b.isMouseDown||b.isEditing()||null!=this.dialog||"INPUT"==c.nodeName||"TEXTAREA"==c.nodeName||!(224==a.keyCode||!mxClient.IS_MAC&&17==a.keyCode||mxClient.IS_MAC&&91==a.keyCode)||y||(u.style.left=b.container.scrollLeft+10+"px",u.style.top=b.container.scrollTop+10+"px",b.container.appendChild(u), y=!0,mxClient.IS_QUIRKS?window.setTimeout(function(){u.focus();document.execCommand("selectAll",!1,null)},0):(u.focus(),document.execCommand("selectAll",!1,null)))}));mxEvent.addListener(document,"keyup",mxUtils.bind(this,function(a){var c=a.keyCode;window.setTimeout(mxUtils.bind(this,function(){!y||224!=c&&17!=c&&91!=c||(y=!1,b.isEditing()||null!=this.dialog||null==b.container||b.container.focus(),u.parentNode.removeChild(u),null==this.dialog&&mxUtils.clearSelection())}),0)}));mxEvent.addListener(u, "copy",mxUtils.bind(this,function(a){b.isEnabled()&&(mxClipboard.copy(b),this.copyCells(u),q())}));mxEvent.addListener(u,"cut",mxUtils.bind(this,function(a){b.isEnabled()&&(mxClipboard.copy(b),this.copyCells(u,!0),q())}));mxEvent.addListener(u,"paste",mxUtils.bind(this,function(a){b.isEnabled()&&!b.isCellLocked(b.getDefaultParent())&&(u.innerHTML=" ",u.focus(),window.setTimeout(mxUtils.bind(this,function(){this.pasteCells(a,u);u.innerHTML=" "}),0))}),!0);var t=this.isSelectionAllowed;this.isSelectionAllowed= -function(a){return mxEvent.getSource(a)==u?!0:t.apply(this,arguments)}}this.spinner=this.createSpinner(document.body.clientWidth/2-2,Math.max(document.body.clientHeight||0,document.documentElement.clientHeight||0)/2,24);Graph.fileSupport&&this.editor.graph.addListener(mxEvent.EDITING_STARTED,mxUtils.bind(this,function(a){var c=this.editor.graph,b=c.cellEditor.text2,d=null;null!=b&&(mxEvent.addListener(b,"dragleave",function(a){null!=d&&(d.parentNode.removeChild(d),d=null);a.stopPropagation();a.preventDefault()}), -mxEvent.addListener(b,"dragover",mxUtils.bind(this,function(a){null==d&&(!mxClient.IS_IE||10<document.documentMode)&&(d=this.highlightElement(b));a.stopPropagation();a.preventDefault()})),mxEvent.addListener(b,"drop",mxUtils.bind(this,function(a){null!=d&&(d.parentNode.removeChild(d),d=null);if(0<a.dataTransfer.files.length)this.importFiles(a.dataTransfer.files,0,0,this.maxImageSize,function(a,b,d,e,f,g){c.insertImage(a,f,g)},function(){},function(a){return"image/"==a.type.substring(0,6)},function(a){for(var c= -0;c<a.length;c++)a[c]()},mxEvent.isControlDown(a));else if(0<=mxUtils.indexOf(a.dataTransfer.types,"text/uri-list")){var b=a.dataTransfer.getData("text/uri-list");/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(b)?this.loadImage(decodeURIComponent(b),mxUtils.bind(this,function(a){var d=Math.max(1,a.width);a=Math.max(1,a.height);var e=this.maxImageSize,e=Math.min(1,Math.min(e/Math.max(1,d)),e/Math.max(1,a));c.insertImage(decodeURIComponent(b),d*e,a*e)})):document.execCommand("insertHTML",!1,a.dataTransfer.getData("text/plain"))}else 0<= +function(a){return mxEvent.getSource(a)==u?!0:t.apply(this,arguments)}}this.spinner=this.createSpinner(document.body.clientWidth/2-2,Math.max(document.body.clientHeight||0,document.documentElement.clientHeight||0)/2,24);Graph.fileSupport&&this.editor.graph.addListener(mxEvent.EDITING_STARTED,mxUtils.bind(this,function(a){var b=this.editor.graph,c=b.cellEditor.text2,d=null;null!=c&&(mxEvent.addListener(c,"dragleave",function(a){null!=d&&(d.parentNode.removeChild(d),d=null);a.stopPropagation();a.preventDefault()}), +mxEvent.addListener(c,"dragover",mxUtils.bind(this,function(a){null==d&&(!mxClient.IS_IE||10<document.documentMode)&&(d=this.highlightElement(c));a.stopPropagation();a.preventDefault()})),mxEvent.addListener(c,"drop",mxUtils.bind(this,function(a){null!=d&&(d.parentNode.removeChild(d),d=null);if(0<a.dataTransfer.files.length)this.importFiles(a.dataTransfer.files,0,0,this.maxImageSize,function(a,c,d,e,f,g){b.insertImage(a,f,g)},function(){},function(a){return"image/"==a.type.substring(0,6)},function(a){for(var b= +0;b<a.length;b++)a[b]()},mxEvent.isControlDown(a));else if(0<=mxUtils.indexOf(a.dataTransfer.types,"text/uri-list")){var c=a.dataTransfer.getData("text/uri-list");/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(c)?this.loadImage(decodeURIComponent(c),mxUtils.bind(this,function(a){var d=Math.max(1,a.width);a=Math.max(1,a.height);var e=this.maxImageSize,e=Math.min(1,Math.min(e/Math.max(1,d)),e/Math.max(1,a));b.insertImage(decodeURIComponent(c),d*e,a*e)})):document.execCommand("insertHTML",!1,a.dataTransfer.getData("text/plain"))}else 0<= mxUtils.indexOf(a.dataTransfer.types,"text/html")?document.execCommand("insertHTML",!1,a.dataTransfer.getData("text/html")):0<=mxUtils.indexOf(a.dataTransfer.types,"text/plain")&&document.execCommand("insertHTML",!1,a.dataTransfer.getData("text/plain"));a.stopPropagation();a.preventDefault()})))}));if("1"==urlParams.ruler&&"undefined"!==typeof mxRuler){p=document.createElement("div");p.style.position="absolute";p.style.top="95px";p.style.left="250px";p.style.width="2000px";p.style.height="30px";p.style.background= "whiteSmoke";document.body.appendChild(p);var z=document.createElement("div");z.style.position="absolute";z.style.top="125px";z.style.left="220px";z.style.width="30px";z.style.height="1000px";z.style.background="whiteSmoke";document.body.appendChild(z);var H=document.createElement("div");H.style.position="absolute";H.style.top="95px";H.style.left="220px";H.style.width="30px";H.style.height="30px";H.style.background="whiteSmoke";document.body.appendChild(H);this.vRuler=new mxRuler(this.editor.graph, z,!0);this.hRuler=new mxRuler(this.editor.graph,p,!1)}if("1"==urlParams.styledev){p=document.getElementById("geFooter");null!=p&&(this.styleInput=document.createElement("input"),this.styleInput.setAttribute("type","text"),this.styleInput.style.position="absolute",this.styleInput.style.top="14px",this.styleInput.style.left="2px",this.styleInput.style.width="98%",this.styleInput.style.visibility="hidden",this.styleInput.style.opacity="0.9",mxEvent.addListener(this.styleInput,"change",mxUtils.bind(this, -function(){this.editor.graph.getModel().setStyle(this.editor.graph.getSelectionCell(),this.styleInput.value)})),p.appendChild(this.styleInput),this.editor.graph.getSelectionModel().addListener(mxEvent.CHANGE,mxUtils.bind(this,function(a,c){if(0<this.editor.graph.getSelectionCount()){var b=this.editor.graph.getSelectionCell(),b=this.editor.graph.getModel().getStyle(b);this.styleInput.value=b||"";this.styleInput.style.visibility="visible"}else this.styleInput.style.visibility="hidden"})));var G=this.isSelectionAllowed; -this.isSelectionAllowed=function(a){return mxEvent.getSource(a)==this.styleInput?!0:G.apply(this,arguments)}}p=document.getElementById("geInfo");null!=p&&p.parentNode.removeChild(p);if(Graph.fileSupport&&(!this.editor.chromeless||this.editor.editable)){var A=null;mxEvent.addListener(b.container,"dragleave",function(a){b.isEnabled()&&(null!=A&&(A.parentNode.removeChild(A),A=null),a.stopPropagation(),a.preventDefault())});mxEvent.addListener(b.container,"dragover",mxUtils.bind(this,function(a){null== -A&&(!mxClient.IS_IE||10<document.documentMode)&&(A=this.highlightElement(b.container));null!=this.sidebar&&this.sidebar.hideTooltip();a.stopPropagation();a.preventDefault()}));mxEvent.addListener(b.container,"drop",mxUtils.bind(this,function(a){null!=A&&(A.parentNode.removeChild(A),A=null);if(b.isEnabled()){var c=mxUtils.convertPoint(b.container,mxEvent.getClientX(a),mxEvent.getClientY(a)),d=b.view.translate,e=b.view.scale,f=c.x/e-d.x,g=c.y/e-d.y;mxEvent.isAltDown(a)&&(g=f=0);if(0<a.dataTransfer.files.length)this.importFiles(a.dataTransfer.files, -f,g,this.maxImageSize,null,null,null,null,mxEvent.isControlDown(a),null,null,mxEvent.isShiftDown(a));else{var h=0<=mxUtils.indexOf(a.dataTransfer.types,"text/uri-list")?a.dataTransfer.getData("text/uri-list"):null,c=this.extractGraphModelFromEvent(a,null!=this.pages);if(null!=c)b.setSelectionCells(this.importXml(c,f,g,!0));else if(0<=mxUtils.indexOf(a.dataTransfer.types,"text/html")){var k=a.dataTransfer.getData("text/html"),c=document.createElement("div");c.innerHTML=k;var l=null,d=c.getElementsByTagName("img"); -null!=d&&1==d.length?(k=d[0].getAttribute("src"),/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(k)||(l=!0)):(c=c.getElementsByTagName("a"),null!=c&&1==c.length&&(k=c[0].getAttribute("href")));var n=!0,m=mxUtils.bind(this,function(){b.setSelectionCells(this.insertTextAt(k,f,g,!0,l,null,n))});l&&k.length>this.resampleThreshold?this.confirmImageResize(function(a){n=a;m()},mxEvent.isControlDown(a)):m()}else null!=h&&/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(h)?this.loadImage(decodeURIComponent(h),mxUtils.bind(this, +function(){this.editor.graph.getModel().setStyle(this.editor.graph.getSelectionCell(),this.styleInput.value)})),p.appendChild(this.styleInput),this.editor.graph.getSelectionModel().addListener(mxEvent.CHANGE,mxUtils.bind(this,function(a,b){if(0<this.editor.graph.getSelectionCount()){var c=this.editor.graph.getSelectionCell(),c=this.editor.graph.getModel().getStyle(c);this.styleInput.value=c||"";this.styleInput.style.visibility="visible"}else this.styleInput.style.visibility="hidden"})));var G=this.isSelectionAllowed; +this.isSelectionAllowed=function(a){return mxEvent.getSource(a)==this.styleInput?!0:G.apply(this,arguments)}}p=document.getElementById("geInfo");null!=p&&p.parentNode.removeChild(p);if(Graph.fileSupport&&(!this.editor.chromeless||this.editor.editable)){var B=null;mxEvent.addListener(b.container,"dragleave",function(a){b.isEnabled()&&(null!=B&&(B.parentNode.removeChild(B),B=null),a.stopPropagation(),a.preventDefault())});mxEvent.addListener(b.container,"dragover",mxUtils.bind(this,function(a){null== +B&&(!mxClient.IS_IE||10<document.documentMode)&&(B=this.highlightElement(b.container));null!=this.sidebar&&this.sidebar.hideTooltip();a.stopPropagation();a.preventDefault()}));mxEvent.addListener(b.container,"drop",mxUtils.bind(this,function(a){null!=B&&(B.parentNode.removeChild(B),B=null);if(b.isEnabled()){var c=mxUtils.convertPoint(b.container,mxEvent.getClientX(a),mxEvent.getClientY(a)),d=b.view.translate,e=b.view.scale,f=c.x/e-d.x,g=c.y/e-d.y;mxEvent.isAltDown(a)&&(g=f=0);if(0<a.dataTransfer.files.length)this.importFiles(a.dataTransfer.files, +f,g,this.maxImageSize,null,null,null,null,mxEvent.isControlDown(a),null,null,mxEvent.isShiftDown(a));else{var h=0<=mxUtils.indexOf(a.dataTransfer.types,"text/uri-list")?a.dataTransfer.getData("text/uri-list"):null,c=this.extractGraphModelFromEvent(a,null!=this.pages);if(null!=c)b.setSelectionCells(this.importXml(c,f,g,!0));else if(0<=mxUtils.indexOf(a.dataTransfer.types,"text/html")){var k=a.dataTransfer.getData("text/html"),c=document.createElement("div");c.innerHTML=k;var m=null,d=c.getElementsByTagName("img"); +null!=d&&1==d.length?(k=d[0].getAttribute("src"),/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(k)||(m=!0)):(c=c.getElementsByTagName("a"),null!=c&&1==c.length&&(k=c[0].getAttribute("href")));var n=!0,l=mxUtils.bind(this,function(){b.setSelectionCells(this.insertTextAt(k,f,g,!0,m,null,n))});m&&k.length>this.resampleThreshold?this.confirmImageResize(function(a){n=a;l()},mxEvent.isControlDown(a)):l()}else null!=h&&/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(h)?this.loadImage(decodeURIComponent(h),mxUtils.bind(this, function(a){var c=Math.max(1,a.width);a=Math.max(1,a.height);var d=this.maxImageSize,d=Math.min(1,Math.min(d/Math.max(1,c)),d/Math.max(1,a));b.setSelectionCell(b.insertVertex(null,null,"",f,g,c*d,a*d,"shape=image;verticalLabelPosition=bottom;labelBackgroundColor=#ffffff;verticalAlign=top;aspect=fixed;imageAspect=0;image="+h+";"))}),mxUtils.bind(this,function(a){b.setSelectionCells(this.insertTextAt(h,f,g,!0))})):0<=mxUtils.indexOf(a.dataTransfer.types,"text/plain")&&b.setSelectionCells(this.insertTextAt(a.dataTransfer.getData("text/plain"), f,g,!0))}}a.stopPropagation();a.preventDefault()}),!1)}this.initPages();"1"==urlParams.embed&&this.initializeEmbedMode();this.installSettings()};EditorUi.prototype.getLinkTitle=function(a){var c=Graph.prototype.getLinkTitle.apply(this,arguments);if("data:page/id,"==a.substring(0,13)){var b=a.indexOf(",");0<b&&(c=this.getPageById(a.substring(b+1)),c=null!=c?c.getName():mxResources.get("pageNotFound"))}else"data:"==a.substring(0,5)&&(c=mxResources.get("action"));return c};EditorUi.prototype.handleCustomLink= function(a){if("data:page/id,"==a.substring(0,13)){var c=a.indexOf(",");if(a=this.getPageById(a.substring(c+1)))this.selectPage(a);else throw Error(mxResources.get("pageNotFound")||"Page not found");}else this.editor.graph.handleCustomLink(a)};EditorUi.prototype.isSettingsEnabled=function(){return"undefined"!==typeof window.mxSettings&&(isLocalStorage||mxClient.IS_CHROMEAPP)};EditorUi.prototype.installSettings=function(){if(this.isSettingsEnabled()){ColorDialog.recentColors=mxSettings.getRecentColors(); @@ -3011,19 +3016,19 @@ this.fireEvent(new mxEventObject("styleChanged","keys",[],"values",[],"cells",[] function(a,b){mxSettings.setPageFormat(this.editor.graph.pageFormat);mxSettings.save()}));this.editor.graph.view.gridColor=mxSettings.getGridColor();this.addListener("gridColorChanged",mxUtils.bind(this,function(a,b){mxSettings.setGridColor(this.editor.graph.view.gridColor);mxSettings.save()}));if(mxClient.IS_CHROMEAPP||EditorUi.isElectronApp)this.editor.addListener("autosaveChanged",mxUtils.bind(this,function(a,b){mxSettings.setAutosave(this.editor.autosave);mxSettings.save()})),this.editor.autosave= mxSettings.getAutosave();null!=this.sidebar&&this.sidebar.showPalette("search",mxSettings.settings.search);this.editor.chromeless&&!this.editor.editable||null==this.sidebar||!(mxSettings.settings.isNew||8>=parseInt(mxSettings.settings.version||0))||(this.toggleScratchpad(),mxSettings.save());this.addListener("formatWidthChanged",function(){mxSettings.setFormatWidth(this.formatWidth);mxSettings.save()})}};EditorUi.prototype.copyCells=function(a,b){var c=this.editor.graph;if(c.isSelectionEmpty())a.innerHTML= "";else{var d=mxUtils.sortCells(c.model.getTopmostCells(c.getSelectionCells())),e=mxUtils.getXml(this.editor.graph.encodeCells(d));mxUtils.setTextContent(a,encodeURIComponent(e));b?(c.removeCells(d,!1),c.lastPasteXml=null):(c.lastPasteXml=e,c.pasteCounter=0);a.focus();document.execCommand("selectAll",!1,null)}};EditorUi.prototype.pasteCells=function(a,b){if(!mxEvent.isConsumed(a)){var c=b.getElementsByTagName("span");if(null!=c&&0<c.length&&"application/vnd.lucid.chart.objects"===c[0].getAttribute("data-lucid-type")){var d= -c[0].getAttribute("data-lucid-content");null!=d&&0<d.length&&(this.convertLucidChart(d,mxUtils.bind(this,function(a){this.editor.graph.setSelectionCells(this.importXml(a,0,0))}),mxUtils.bind(this,function(a){this.handleError(a)})),mxEvent.consume(a))}else{var d=this.editor.graph,e=mxUtils.trim(mxClient.IS_QUIRKS||8==document.documentMode?mxUtils.getTextContent(b):b.textContent),f=!1;try{var h=e.lastIndexOf("%3E");0<=h&&h<e.length-3&&(e=e.substring(0,h+3))}catch(v){}try{var c=b.getElementsByTagName("span"), -m=null!=c&&0<c.length?mxUtils.trim(decodeURIComponent(c[0].textContent)):decodeURIComponent(e);this.isCompatibleString(m)&&(f=!0,e=m)}catch(v){}d.lastPasteXml==e?d.pasteCounter++:(d.lastPasteXml=e,d.pasteCounter=0);c=d.pasteCounter*d.gridSize;if(null!=e&&0<e.length&&(f||this.isCompatibleString(e)?d.setSelectionCells(this.importXml(e,c,c)):(f=d.getInsertPoint(),d.isMouseInsertPoint()&&(c=0,d.lastPasteXml==e&&0<d.pasteCounter&&d.pasteCounter--),d.setSelectionCells(this.insertTextAt(e,f.x+c,f.y+c,!0))), +c[0].getAttribute("data-lucid-content");null!=d&&0<d.length&&(this.convertLucidChart(d,mxUtils.bind(this,function(a){this.editor.graph.setSelectionCells(this.importXml(a,0,0))}),mxUtils.bind(this,function(a){this.handleError(a)})),mxEvent.consume(a))}else{var d=this.editor.graph,e=mxUtils.trim(mxClient.IS_QUIRKS||8==document.documentMode?mxUtils.getTextContent(b):b.textContent),f=!1;try{var k=e.lastIndexOf("%3E");0<=k&&k<e.length-3&&(e=e.substring(0,k+3))}catch(v){}try{var c=b.getElementsByTagName("span"), +l=null!=c&&0<c.length?mxUtils.trim(decodeURIComponent(c[0].textContent)):decodeURIComponent(e);this.isCompatibleString(l)&&(f=!0,e=l)}catch(v){}d.lastPasteXml==e?d.pasteCounter++:(d.lastPasteXml=e,d.pasteCounter=0);c=d.pasteCounter*d.gridSize;if(null!=e&&0<e.length&&(f||this.isCompatibleString(e)?d.setSelectionCells(this.importXml(e,c,c)):(f=d.getInsertPoint(),d.isMouseInsertPoint()&&(c=0,d.lastPasteXml==e&&0<d.pasteCounter&&d.pasteCounter--),d.setSelectionCells(this.insertTextAt(e,f.x+c,f.y+c,!0))), !d.isSelectionEmpty())){d.scrollCellToVisible(d.getSelectionCell());null!=this.hoverIcons&&this.hoverIcons.update(d.view.getState(d.getSelectionCell()));try{mxEvent.consume(a)}catch(v){}}}}};EditorUi.prototype.addFileDropHandler=function(a){if(Graph.fileSupport)for(var c=null,b=0;b<a.length;b++)mxEvent.addListener(a[b],"dragleave",function(a){null!=c&&(c.parentNode.removeChild(c),c=null);a.stopPropagation();a.preventDefault()}),mxEvent.addListener(a[b],"dragover",mxUtils.bind(this,function(a){(this.editor.graph.isEnabled()|| "1"!=urlParams.embed)&&null==c&&(!mxClient.IS_IE||10<document.documentMode&&12>document.documentMode)&&(c=this.highlightElement());a.stopPropagation();a.preventDefault()})),mxEvent.addListener(a[b],"drop",mxUtils.bind(this,function(a){null!=c&&(c.parentNode.removeChild(c),c=null);if(this.editor.graph.isEnabled()||"1"!=urlParams.embed)if(0<a.dataTransfer.files.length)this.hideDialog(),"1"==urlParams.embed?this.importFiles(a.dataTransfer.files,0,0,this.maxImageSize,null,null,null,null,!mxEvent.isControlDown(a)&& !mxEvent.isShiftDown(a)):this.openFiles(a.dataTransfer.files,!0);else{var b=this.extractGraphModelFromEvent(a);if(null==b){var d=null!=a.dataTransfer?a.dataTransfer:a.clipboardData;null!=d&&(10==document.documentMode||11==document.documentMode?b=d.getData("Text"):(b=null,b=0<=mxUtils.indexOf(d.types,"text/uri-list")?a.dataTransfer.getData("text/uri-list"):0<=mxUtils.indexOf(d.types,"text/html")?d.getData("text/html"):null,null!=b&&0<b.length?(d=document.createElement("div"),d.innerHTML=b,d=d.getElementsByTagName("img"), 0<d.length&&(b=d[0].getAttribute("src"))):0<=mxUtils.indexOf(d.types,"text/plain")&&(b=d.getData("text/plain"))),null!=b&&("data:image/png;base64,"==b.substring(0,22)?(b=this.extractGraphModelFromPng(b),null!=b&&0<b.length&&this.openLocalFile(b,null,!0)):!this.isOffline()&&this.isRemoteFileFormat(b)?(new mxXmlRequest(OPEN_URL,"format=xml&data="+encodeURIComponent(b))).send(mxUtils.bind(this,function(a){200<=a.getStatus()&&299>=a.getStatus()&&this.openLocalFile(a.getText(),null,!0)})):/^https?:\/\//.test(b)&& -(null==this.getCurrentFile()?window.location.hash="#U"+encodeURIComponent(b):window.openWindow((mxClient.IS_CHROMEAPP?"https://www.draw.io/":"https://"+location.host+"/")+window.location.search+"#U"+encodeURIComponent(b)))))}else this.openLocalFile(b,null,!0)}a.stopPropagation();a.preventDefault()}))};EditorUi.prototype.highlightElement=function(a){var c=0,b=0,d,e;if(null==a){e=document.body;var h=document.documentElement;d=(e.clientWidth||h.clientWidth)-3;e=Math.max(e.clientHeight||0,h.clientHeight)- -3}else c=a.offsetTop,b=a.offsetLeft,d=a.clientWidth,e=a.clientHeight;h=document.createElement("div");h.style.zIndex=mxPopupMenu.prototype.zIndex+2;h.style.border="3px dotted rgb(254, 137, 12)";h.style.pointerEvents="none";h.style.position="absolute";h.style.top=c+"px";h.style.left=b+"px";h.style.width=Math.max(0,d-3)+"px";h.style.height=Math.max(0,e-3)+"px";null!=a&&a.parentNode==this.editor.graph.container?this.editor.graph.container.appendChild(h):document.body.appendChild(h);return h};EditorUi.prototype.stringToCells= -function(a){a=mxUtils.parseXml(a);var c=this.editor.extractGraphModel(a.documentElement);a=[];if(null!=c){var b=new mxCodec(c.ownerDocument),d=new mxGraphModel;b.decode(c,d);c=d.getChildAt(d.getRoot(),0);for(b=0;b<d.getChildCount(c);b++)a.push(d.getChildAt(c,b))}return a};EditorUi.prototype.openFiles=function(a,b){if(this.spinner.spin(document.body,mxResources.get("loading")))for(var c=0;c<a.length;c++)mxUtils.bind(this,function(a){var c=new FileReader;c.onload=mxUtils.bind(this,function(c){var d= +(null==this.getCurrentFile()?window.location.hash="#U"+encodeURIComponent(b):window.openWindow((mxClient.IS_CHROMEAPP?"https://www.draw.io/":"https://"+location.host+"/")+window.location.search+"#U"+encodeURIComponent(b)))))}else this.openLocalFile(b,null,!0)}a.stopPropagation();a.preventDefault()}))};EditorUi.prototype.highlightElement=function(a){var b=0,c=0,d,e;if(null==a){e=document.body;var h=document.documentElement;d=(e.clientWidth||h.clientWidth)-3;e=Math.max(e.clientHeight||0,h.clientHeight)- +3}else b=a.offsetTop,c=a.offsetLeft,d=a.clientWidth,e=a.clientHeight;h=document.createElement("div");h.style.zIndex=mxPopupMenu.prototype.zIndex+2;h.style.border="3px dotted rgb(254, 137, 12)";h.style.pointerEvents="none";h.style.position="absolute";h.style.top=b+"px";h.style.left=c+"px";h.style.width=Math.max(0,d-3)+"px";h.style.height=Math.max(0,e-3)+"px";null!=a&&a.parentNode==this.editor.graph.container?this.editor.graph.container.appendChild(h):document.body.appendChild(h);return h};EditorUi.prototype.stringToCells= +function(a){a=mxUtils.parseXml(a);var b=this.editor.extractGraphModel(a.documentElement);a=[];if(null!=b){var c=new mxCodec(b.ownerDocument),d=new mxGraphModel;c.decode(b,d);b=d.getChildAt(d.getRoot(),0);for(c=0;c<d.getChildCount(b);c++)a.push(d.getChildAt(b,c))}return a};EditorUi.prototype.openFiles=function(a,b){if(this.spinner.spin(document.body,mxResources.get("loading")))for(var c=0;c<a.length;c++)mxUtils.bind(this,function(a){var c=new FileReader;c.onload=mxUtils.bind(this,function(c){var d= c.target.result,e=a.name;if(null!=e&&0<e.length){!this.useCanvasForExport&&/(\.png)$/i.test(e)&&(e=e.substring(0,e.length-4)+".xml");var f=mxUtils.bind(this,function(a){e=0<=e.lastIndexOf(".")?e.substring(0,e.lastIndexOf("."))+".xml":e+".xml";if("<mxlibrary"==a.substring(0,10)){null==this.getCurrentFile()&&"1"!=urlParams.embed&&this.openLocalFile(this.emptyDiagramXml,this.defaultFilename,b);try{this.loadLibrary(new LocalLibrary(this,a,e))}catch(y){this.handleError(y,mxResources.get("errorLoadingFile"))}}else this.openLocalFile(a, e,b)});if(/(\.v(dx|sdx?))($|\?)/i.test(e)||/(\.vs(x|sx?))($|\?)/i.test(e))this.importVisio(a,mxUtils.bind(this,function(a){this.spinner.stop();f(a)}));else if(Graph.fileSupport&&!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(d,e))this.parseFile(a,mxUtils.bind(this,function(a){4==a.readyState&&(this.spinner.stop(),200<=a.status&&299>=a.status?f(a.responseText):this.handleError({message:mxResources.get(413==a.status?"drawingTooLarge":"invalidOrMissingFile")},mxResources.get("errorLoadingFile")))})); else if(this.isLucidChartData(d))/(\.json)$/i.test(e)&&(e=e.substring(0,e.length-5)+".xml"),this.convertLucidChart(d,mxUtils.bind(this,function(a){this.spinner.stop();this.openLocalFile(a,e,b)}),mxUtils.bind(this,function(a){this.spinner.stop();this.handleError(a)}));else if("<mxlibrary"==c.target.result.substring(0,10)){this.spinner.stop();null==this.getCurrentFile()&&"1"!=urlParams.embed&&this.openLocalFile(this.emptyDiagramXml,this.defaultFilename,b);try{this.loadLibrary(new LocalLibrary(this, -c.target.result,a.name))}catch(B){this.handleError(B,mxResources.get("errorLoadingFile"))}}else"image/png"==a.type.substring(0,9)&&(d=this.extractGraphModelFromPng(d)),this.spinner.stop(),this.openLocalFile(d,e,b)}});c.onerror=mxUtils.bind(this,function(a){this.spinner.stop();this.handleError(a);window.openFile=null});"image"===a.type.substring(0,5)&&"image/svg"!==a.type.substring(0,9)?c.readAsDataURL(a):c.readAsText(a)})(a[c])};EditorUi.prototype.openLocalFile=function(a,b,d){var c=this.getCurrentFile(), +c.target.result,a.name))}catch(A){this.handleError(A,mxResources.get("errorLoadingFile"))}}else"image/png"==a.type.substring(0,9)&&(d=this.extractGraphModelFromPng(d)),this.spinner.stop(),this.openLocalFile(d,e,b)}});c.onerror=mxUtils.bind(this,function(a){this.spinner.stop();this.handleError(a);window.openFile=null});"image"===a.type.substring(0,5)&&"image/svg"!==a.type.substring(0,9)?c.readAsDataURL(a):c.readAsText(a)})(a[c])};EditorUi.prototype.openLocalFile=function(a,b,d){var c=this.getCurrentFile(), e=mxUtils.bind(this,function(){window.openFile=null;if(null==b&&null!=this.getCurrentFile()&&this.isDiagramEmpty()){var c=mxUtils.parseXml(a);null!=c&&(this.editor.setGraphXml(c.documentElement),this.editor.graph.selectAll())}else this.fileLoaded(new LocalFile(this,a,b||this.defaultFilename,d))});null!=a&&0<a.length&&(null==c||!c.isModified()&&(mxClient.IS_CHROMEAPP||EditorUi.isElectronApp)?e():(mxClient.IS_CHROMEAPP||EditorUi.isElectronApp)&&null!=c&&c.isModified()?this.confirm(mxResources.get("allChangesLost"), null,e,mxResources.get("cancel"),mxResources.get("discardChanges")):(window.openFile=new OpenFile(function(){window.openFile=null}),window.openFile.setData(a,b),window.openWindow(this.getUrl(),null,mxUtils.bind(this,function(){null!=c&&c.isModified()?this.confirm(mxResources.get("allChangesLost"),null,e,mxResources.get("cancel"),mxResources.get("discardChanges")):e()}))))};EditorUi.prototype.getBasenames=function(){var a={};if(null!=this.pages)for(var b=0;b<this.pages.length;b++)this.updatePageRoot(this.pages[b]), this.addBasenamesForCell(this.pages[b].root,a);else this.addBasenamesForCell(this.editor.graph.model.getRoot(),a);var b=[],d;for(d in a)b.push(d);return b};EditorUi.prototype.addBasenamesForCell=function(a,b){function c(a){if(null!=a){var c=a.lastIndexOf(".");0<c&&(a=a.substring(c+1,a.length));null==b[a]&&(b[a]=!0)}}var d=this.editor.graph,e=d.getCellStyle(a);c(mxStencilRegistry.getBasenameForStencil(e[mxConstants.STYLE_SHAPE]));d.model.isEdge(a)&&(c(mxMarker.getPackageForType(e[mxConstants.STYLE_STARTARROW])), @@ -3034,38 +3039,38 @@ this.editor.modified=null!=d?d:!1;this.updateUi();window.self!==window.top&&wind function(a){var b=this.editor.graph;return{event:a,pageVisible:b.pageVisible,translate:b.view.translate,bounds:b.getGraphBounds(),currentPage:this.getSelectedPageIndex(),scale:b.view.scale,page:b.view.getBackgroundPageBounds()}};EditorUi.prototype.installMessageHandler=function(a){var b=null,c=!1,d=!1,e=null,h=mxUtils.bind(this,function(a,b){this.editor.modified&&"0"!=urlParams.modified?null!=urlParams.modified&&this.editor.setStatus(mxUtils.htmlEntities(mxResources.get(urlParams.modified))):this.editor.setStatus("")}); this.editor.graph.model.addListener(mxEvent.CHANGE,h);mxEvent.addListener(window,"message",mxUtils.bind(this,function(f){if(f.source==(window.opener||window.parent)){var g=f.data,h=mxUtils.bind(this,function(a){if(null!=a&&"function"===typeof a.charAt&&"<"!=a.charAt(0))try{"data:image/png;base64,"==a.substring(0,22)?a=this.extractGraphModelFromPng(a):"data:image/svg+xml;base64,"==a.substring(0,26)?a=atob(a.substring(26)):"data:image/svg+xml;utf8,"==a.substring(0,24)&&(a=a.substring(24)),null!=a&& ("%"==a.charAt(0)?a=decodeURIComponent(a):"<"!=a.charAt(0)&&(a=this.editor.graph.decompress(a)))}catch(R){}return a});if("json"==urlParams.proto){try{g=JSON.parse(g)}catch(I){g=null}if(null==g)return;if("dialog"==g.action){this.showError(null!=g.titleKey?mxResources.get(g.titleKey):g.title,null!=g.messageKey?mxResources.get(g.messageKey):g.message,null!=g.buttonKey?mxResources.get(g.buttonKey):g.button);null!=g.modified&&(this.editor.modified=g.modified);return}if("prompt"==g.action){this.spinner.stop(); -h=new FilenameDialog(this,g.defaultValue||"",null!=g.okKey?mxResources.get(g.okKey):null,function(a){null!=a&&n.postMessage(JSON.stringify({event:"prompt",value:a,message:g}),"*")},null!=g.titleKey?mxResources.get(g.titleKey):g.title);this.showDialog(h.container,300,80,!0,!1);h.init();return}if("draft"==g.action){var k=h(g.xml);this.spinner.stop();h=new DraftDialog(this,mxResources.get("draftFound",[g.name||this.defaultFilename]),k,mxUtils.bind(this,function(){this.hideDialog();n.postMessage(JSON.stringify({event:"draft", -result:"edit",message:g}),"*")}),mxUtils.bind(this,function(){this.hideDialog();n.postMessage(JSON.stringify({event:"draft",result:"discard",message:g}),"*")}),g.editKey?mxResources.get(g.editKey):null,g.discardKey?mxResources.get(g.discardKey):null,g.ignore?mxUtils.bind(this,function(){this.hideDialog();n.postMessage(JSON.stringify({event:"draft",result:"ignore",message:g}),"*")}):null);this.showDialog(h.container,640,480,!0,!1,mxUtils.bind(this,function(a){a&&this.actions.get("exit").funct()})); -try{h.init()}catch(I){n.postMessage(JSON.stringify({event:"draft",error:I.toString(),message:g}),"*")}return}if("template"==g.action){this.spinner.stop();h=1==g.enableRecent;k=1==g.enableSearch;h=new NewDialog(this,!1,null!=g.callback,mxUtils.bind(this,function(b,c){b=b||this.emptyDiagramXml;null!=g.callback?n.postMessage(JSON.stringify({event:"template",xml:b,blank:b==this.emptyDiagramXml,name:c}),"*"):(a(b,f,b!=this.emptyDiagramXml),this.editor.modified||this.editor.setStatus(""))}),null,null,null, -null,null,null,null,h?mxUtils.bind(this,function(a){this.recentReadyCallback=a;n.postMessage(JSON.stringify({event:"recentDocs"}),"*")}):null,k?mxUtils.bind(this,function(a,b){this.searchReadyCallback=b;n.postMessage(JSON.stringify({event:"searchDocs",searchStr:a}),"*")}):null,function(a,b,c){n.postMessage(JSON.stringify({event:"template",docUrl:a,info:b,name:c}),"*")});this.showDialog(h.container,620,440,!0,!1,mxUtils.bind(this,function(a){a&&this.actions.get("exit").funct()}));h.init();return}if("searchDocsList"== -g.action)this.searchReadyCallback(g.list,g.errorMsg);else if("recentDocsList"==g.action)this.recentReadyCallback(g.list,g.errorMsg);else{if("textContent"==g.action){this.editor.graph.setEnabled(!1);var l=this.editor.graph,h="";if(null!=this.pages)for(k=0;k<this.pages.length;k++){var m=l;this.currentPage!=this.pages[k]&&(m=this.createTemporaryGraph(l.getStylesheet()),m.model.setRoot(this.pages[k].root));h+=this.pages[k].getName()+" "+m.getIndexableText()+" "}else h=l.getIndexableText();this.editor.graph.setEnabled(!0); -n.postMessage(JSON.stringify({event:"textContent",data:h,message:g}),"*");return}if("status"==g.action){null!=g.messageKey?this.editor.setStatus(mxUtils.htmlEntities(mxResources.get(g.messageKey))):null!=g.message&&this.editor.setStatus(mxUtils.htmlEntities(g.message));null!=g.modified&&(this.editor.modified=g.modified);return}if("spinner"==g.action){var p=null!=g.messageKey?mxResources.get(g.messageKey):g.message;null==g.show||g.show?this.spinner.spin(document.body,p):this.spinner.stop();return}if("export"== -g.action){if("png"==g.format||"xmlpng"==g.format){if(null==g.spin&&null==g.spinKey||this.spinner.spin(document.body,null!=g.spinKey?mxResources.get(g.spinKey):g.spin)){var q=null!=g.xml?g.xml:this.getFileData(!0);this.editor.graph.setEnabled(!1);var l=this.editor.graph,r=mxUtils.bind(this,function(a){this.editor.graph.setEnabled(!0);this.spinner.stop();var b=this.createLoadMessage("export");b.format=g.format;b.message=g;b.data=a;b.xml=encodeURIComponent(q);n.postMessage(JSON.stringify(b),"*")}),u= +h=new FilenameDialog(this,g.defaultValue||"",null!=g.okKey?mxResources.get(g.okKey):null,function(a){null!=a&&k.postMessage(JSON.stringify({event:"prompt",value:a,message:g}),"*")},null!=g.titleKey?mxResources.get(g.titleKey):g.title);this.showDialog(h.container,300,80,!0,!1);h.init();return}if("draft"==g.action){var m=h(g.xml);this.spinner.stop();h=new DraftDialog(this,mxResources.get("draftFound",[g.name||this.defaultFilename]),m,mxUtils.bind(this,function(){this.hideDialog();k.postMessage(JSON.stringify({event:"draft", +result:"edit",message:g}),"*")}),mxUtils.bind(this,function(){this.hideDialog();k.postMessage(JSON.stringify({event:"draft",result:"discard",message:g}),"*")}),g.editKey?mxResources.get(g.editKey):null,g.discardKey?mxResources.get(g.discardKey):null,g.ignore?mxUtils.bind(this,function(){this.hideDialog();k.postMessage(JSON.stringify({event:"draft",result:"ignore",message:g}),"*")}):null);this.showDialog(h.container,640,480,!0,!1,mxUtils.bind(this,function(a){a&&this.actions.get("exit").funct()})); +try{h.init()}catch(I){k.postMessage(JSON.stringify({event:"draft",error:I.toString(),message:g}),"*")}return}if("template"==g.action){this.spinner.stop();h=1==g.enableRecent;m=1==g.enableSearch;h=new NewDialog(this,!1,null!=g.callback,mxUtils.bind(this,function(b,c){b=b||this.emptyDiagramXml;null!=g.callback?k.postMessage(JSON.stringify({event:"template",xml:b,blank:b==this.emptyDiagramXml,name:c}),"*"):(a(b,f,b!=this.emptyDiagramXml),this.editor.modified||this.editor.setStatus(""))}),null,null,null, +null,null,null,null,h?mxUtils.bind(this,function(a){this.recentReadyCallback=a;k.postMessage(JSON.stringify({event:"recentDocs"}),"*")}):null,m?mxUtils.bind(this,function(a,b){this.searchReadyCallback=b;k.postMessage(JSON.stringify({event:"searchDocs",searchStr:a}),"*")}):null,function(a,b,c){k.postMessage(JSON.stringify({event:"template",docUrl:a,info:b,name:c}),"*")});this.showDialog(h.container,620,440,!0,!1,mxUtils.bind(this,function(a){a&&this.actions.get("exit").funct()}));h.init();return}if("searchDocsList"== +g.action)this.searchReadyCallback(g.list,g.errorMsg);else if("recentDocsList"==g.action)this.recentReadyCallback(g.list,g.errorMsg);else{if("textContent"==g.action){this.editor.graph.setEnabled(!1);var l=this.editor.graph,h="";if(null!=this.pages)for(m=0;m<this.pages.length;m++){var n=l;this.currentPage!=this.pages[m]&&(n=this.createTemporaryGraph(l.getStylesheet()),n.model.setRoot(this.pages[m].root));h+=this.pages[m].getName()+" "+n.getIndexableText()+" "}else h=l.getIndexableText();this.editor.graph.setEnabled(!0); +k.postMessage(JSON.stringify({event:"textContent",data:h,message:g}),"*");return}if("status"==g.action){null!=g.messageKey?this.editor.setStatus(mxUtils.htmlEntities(mxResources.get(g.messageKey))):null!=g.message&&this.editor.setStatus(mxUtils.htmlEntities(g.message));null!=g.modified&&(this.editor.modified=g.modified);return}if("spinner"==g.action){var p=null!=g.messageKey?mxResources.get(g.messageKey):g.message;null==g.show||g.show?this.spinner.spin(document.body,p):this.spinner.stop();return}if("export"== +g.action){if("png"==g.format||"xmlpng"==g.format){if(null==g.spin&&null==g.spinKey||this.spinner.spin(document.body,null!=g.spinKey?mxResources.get(g.spinKey):g.spin)){var q=null!=g.xml?g.xml:this.getFileData(!0);this.editor.graph.setEnabled(!1);var l=this.editor.graph,r=mxUtils.bind(this,function(a){this.editor.graph.setEnabled(!0);this.spinner.stop();var b=this.createLoadMessage("export");b.format=g.format;b.message=g;b.data=a;b.xml=encodeURIComponent(q);k.postMessage(JSON.stringify(b),"*")}),u= mxUtils.bind(this,function(a){null==a&&(a=Editor.blankImage);"xmlpng"==g.format&&(a=this.writeGraphModelToPng(a,"zTXt","mxGraphModel",atob(this.editor.graph.compress(q))));l!=this.editor.graph&&l.container.parentNode.removeChild(l.container);r(a)});if(this.isExportToCanvas()){if(null!=this.pages&&this.currentPage!=this.pages[0]){var l=this.createTemporaryGraph(l.getStylesheet()),w=l.getGlobalVariable,x=this.pages[0];l.getGlobalVariable=function(a){return"page"==a?x.getName():"pagenumber"==a?1:w.apply(this, arguments)};document.body.appendChild(l.container);l.model.setRoot(x.root)}this.exportToCanvas(mxUtils.bind(this,function(a){u(a.toDataURL("image/png"))}),null,null,null,mxUtils.bind(this,function(){u(null)}),null,null,null,null,null,null,l)}else(new mxXmlRequest(EXPORT_URL,"format=png&embedXml="+("xmlpng"==g.format?"1":"0")+"&base64=1&xml="+encodeURIComponent(encodeURIComponent(q)))).send(mxUtils.bind(this,function(a){200<=a.getStatus()&&299>=a.getStatus()?r("data:image/png;base64,"+a.getText()): u(null)}),mxUtils.bind(this,function(){u(null)}))}}else{null!=g.xml&&0<g.xml.length&&this.setFileData(g.xml);p=this.createLoadMessage("export");if("html2"==g.format||"html"==g.format&&("0"!=urlParams.pages||null!=this.pages&&1<this.pages.length))h=this.getXmlFileData(),p.xml=mxUtils.getXml(h),p.data=this.getFileData(null,null,!0,null,null,null,h),p.format=g.format;else if("html"==g.format)q=this.editor.getGraphXml(),p.data=this.getHtml(q,this.editor.graph),p.xml=mxUtils.getXml(q),p.format=g.format; else{mxSvgCanvas2D.prototype.foAltText=null;h=this.editor.graph.background;h==mxConstants.NONE&&(h=null);p.xml=this.getFileData(!0);p.format="svg";if(g.embedImages||null==g.embedImages){if(null==g.spin&&null==g.spinKey||this.spinner.spin(document.body,null!=g.spinKey?mxResources.get(g.spinKey):g.spin))this.editor.graph.setEnabled(!1),"xmlsvg"==g.format?this.getEmbeddedSvg(p.xml,this.editor.graph,null,!0,mxUtils.bind(this,function(a){this.editor.graph.setEnabled(!0);this.spinner.stop();p.data=this.createSvgDataUri(a); -n.postMessage(JSON.stringify(p),"*")})):this.convertImages(this.editor.graph.getSvg(h),mxUtils.bind(this,function(a){this.editor.graph.setEnabled(!0);this.spinner.stop();p.data=this.createSvgDataUri(mxUtils.getXml(a));n.postMessage(JSON.stringify(p),"*")}));return}h="xmlsvg"==g.format?this.getEmbeddedSvg(this.getFileData(!0),this.editor.graph,null,!0):mxUtils.getXml(this.editor.graph.getSvg(h));p.data=this.createSvgDataUri(h)}n.postMessage(JSON.stringify(p),"*")}return}if("load"==g.action)d=1==g.autosave, -this.hideDialog(),null!=g.modified&&null==urlParams.modified&&(urlParams.modified=g.modified),null!=g.saveAndExit&&null==urlParams.saveAndExit&&(urlParams.saveAndExit=g.saveAndExit),null!=g.title&&null!=this.buttonContainer&&(k=document.createElement("span"),mxUtils.write(k,g.title),"atlas"==uiTheme?(this.buttonContainer.style.paddingRight="12px",this.buttonContainer.style.paddingTop="12px"):"min"!=uiTheme&&(this.buttonContainer.style.paddingRight="38px",this.buttonContainer.style.paddingTop="6px"), -null!=this.embedFilenameSpan&&this.embedFilenameSpan.parentNode.removeChild(this.embedFilenameSpan),this.buttonContainer.appendChild(k),this.embedFilenameSpan=k),g=null!=g.xmlpng?this.extractGraphModelFromPng(g.xmlpng):g.xml;else{n.postMessage(JSON.stringify({error:"unknownMessage",data:JSON.stringify(g)}),"*");return}}}var C=mxUtils.bind(this,function(f,g){c=!0;try{a(f,g)}catch(X){this.handleError(X)}c=!1;null!=urlParams.modified&&this.editor.setStatus("");var h=mxUtils.bind(this,function(){return"0"!= +k.postMessage(JSON.stringify(p),"*")})):this.convertImages(this.editor.graph.getSvg(h),mxUtils.bind(this,function(a){this.editor.graph.setEnabled(!0);this.spinner.stop();p.data=this.createSvgDataUri(mxUtils.getXml(a));k.postMessage(JSON.stringify(p),"*")}));return}h="xmlsvg"==g.format?this.getEmbeddedSvg(this.getFileData(!0),this.editor.graph,null,!0):mxUtils.getXml(this.editor.graph.getSvg(h));p.data=this.createSvgDataUri(h)}k.postMessage(JSON.stringify(p),"*")}return}if("load"==g.action)d=1==g.autosave, +this.hideDialog(),null!=g.modified&&null==urlParams.modified&&(urlParams.modified=g.modified),null!=g.saveAndExit&&null==urlParams.saveAndExit&&(urlParams.saveAndExit=g.saveAndExit),null!=g.title&&null!=this.buttonContainer&&(m=document.createElement("span"),mxUtils.write(m,g.title),"atlas"==uiTheme?(this.buttonContainer.style.paddingRight="12px",this.buttonContainer.style.paddingTop="12px"):"min"!=uiTheme&&(this.buttonContainer.style.paddingRight="38px",this.buttonContainer.style.paddingTop="6px"), +null!=this.embedFilenameSpan&&this.embedFilenameSpan.parentNode.removeChild(this.embedFilenameSpan),this.buttonContainer.appendChild(m),this.embedFilenameSpan=m),g=null!=g.xmlpng?this.extractGraphModelFromPng(g.xmlpng):g.xml;else{k.postMessage(JSON.stringify({error:"unknownMessage",data:JSON.stringify(g)}),"*");return}}}var C=mxUtils.bind(this,function(f,g){c=!0;try{a(f,g)}catch(X){this.handleError(X)}c=!1;null!=urlParams.modified&&this.editor.setStatus("");var h=mxUtils.bind(this,function(){return"0"!= urlParams.pages||null!=this.pages&&1<this.pages.length?this.getFileData(!0):mxUtils.getXml(this.editor.getGraphXml())});e=h();d&&null==b&&(b=mxUtils.bind(this,function(a,b){var d=h();if(d!=e&&!c){var f=this.createLoadMessage("autosave");f.xml=d;d=JSON.stringify(f);(window.opener||window.parent).postMessage(d,"*")}e=d}),this.editor.graph.model.addListener(mxEvent.CHANGE,b),this.editor.graph.addListener("gridSizeChanged",b),this.editor.graph.addListener("shadowVisibleChanged",b),this.addListener("pageFormatChanged", -b),this.addListener("pageScaleChanged",b),this.addListener("backgroundColorChanged",b),this.addListener("backgroundImageChanged",b),this.addListener("foldingEnabledChanged",b),this.addListener("mathEnabledChanged",b),this.addListener("gridEnabledChanged",b),this.addListener("guidesEnabledChanged",b),this.addListener("pageViewChanged",b));"1"!=urlParams.returnbounds&&"json"!=urlParams.proto||n.postMessage(JSON.stringify(this.createLoadMessage("load")),"*")});null!=g&&"function"===typeof g.substring&& +b),this.addListener("pageScaleChanged",b),this.addListener("backgroundColorChanged",b),this.addListener("backgroundImageChanged",b),this.addListener("foldingEnabledChanged",b),this.addListener("mathEnabledChanged",b),this.addListener("gridEnabledChanged",b),this.addListener("guidesEnabledChanged",b),this.addListener("pageViewChanged",b));"1"!=urlParams.returnbounds&&"json"!=urlParams.proto||k.postMessage(JSON.stringify(this.createLoadMessage("load")),"*")});null!=g&&"function"===typeof g.substring&& "data:application/vnd.visio;base64,"==g.substring(0,34)?(h="0M8R4KGxGuE"==g.substring(34,45)?"raw.vsd":"raw.vsdx",this.importVisio(this.base64ToBlob(g.substring(g.indexOf(",")+1)),function(a){C(a,f)},mxUtils.bind(this,function(a){this.handleError(a)}),h)):null!=g&&"function"===typeof g.substring&&!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(g,"")?this.parseFile(new Blob([g],{type:"application/octet-stream"}),mxUtils.bind(this,function(a){4==a.readyState&&200<=a.status&& -299>=a.status&&"<mxGraphModel"==a.responseText.substring(0,13)&&C(a.responseText,f)}),""):null!=g&&"function"===typeof g.substring&&this.isLucidChartData(g)?this.convertLucidChart(g,mxUtils.bind(this,function(a){C(a)}),mxUtils.bind(this,function(a){this.handleError(a)})):(g=h(g),C(g,f))}}));var n=window.opener||window.parent,h="json"==urlParams.proto?JSON.stringify({event:"init"}):urlParams.ready||"ready";n.postMessage(h,"*")};EditorUi.prototype.addEmbedButtons=function(){if(null!=this.menubar){var a= +299>=a.status&&"<mxGraphModel"==a.responseText.substring(0,13)&&C(a.responseText,f)}),""):null!=g&&"function"===typeof g.substring&&this.isLucidChartData(g)?this.convertLucidChart(g,mxUtils.bind(this,function(a){C(a)}),mxUtils.bind(this,function(a){this.handleError(a)})):(g=h(g),C(g,f))}}));var k=window.opener||window.parent,h="json"==urlParams.proto?JSON.stringify({event:"init"}):urlParams.ready||"ready";k.postMessage(h,"*")};EditorUi.prototype.addEmbedButtons=function(){if(null!=this.menubar){var a= document.createElement("div");a.style.display="inline-block";a.style.position="absolute";a.style.paddingTop="atlas"==uiTheme?"2px":"3px";a.style.paddingLeft="8px";a.style.paddingBottom="2px";var b=document.createElement("button");mxUtils.write(b,mxResources.get("save"));b.setAttribute("title",mxResources.get("save")+" ("+Editor.ctrlKey+"+S)");b.className="geBigButton";b.style.fontSize="12px";b.style.padding="4px 6px 4px 6px";b.style.borderRadius="3px";mxEvent.addListener(b,"click",mxUtils.bind(this, function(){this.actions.get("save").funct()}));a.appendChild(b);"1"==urlParams.saveAndExit&&(b=document.createElement("a"),mxUtils.write(b,mxResources.get("saveAndExit")),b.setAttribute("title",mxResources.get("saveAndExit")),b.style.fontSize="12px",b.style.marginLeft="6px",b.style.padding="4px",b.style.cursor="pointer",mxEvent.addListener(b,"click",mxUtils.bind(this,function(){this.actions.get("saveAndExit").funct()})),a.appendChild(b));b=document.createElement("a");mxUtils.write(b,mxResources.get("exit")); b.setAttribute("title",mxResources.get("exit"));b.style.fontSize="12px";b.style.marginLeft="6px";b.style.marginRight="20px";b.style.padding="4px";b.style.cursor="pointer";mxEvent.addListener(b,"click",mxUtils.bind(this,function(){this.actions.get("exit").funct()}));a.appendChild(b);this.toolbar.container.appendChild(a);this.toolbar.staticElements.push(a);a.style.right="atlas"!=uiTheme?"52px":"42px"}};EditorUi.prototype.showImportCsvDialog=function(){null==this.importCsvDialog&&(this.importCsvDialog= -new TextareaDialog(this,mxResources.get("csv")+":",Editor.defaultCsvValue,mxUtils.bind(this,function(a){this.importCsv(a)}),null,null,620,430,null,!0,!0,mxResources.get("import")));this.showDialog(this.importCsvDialog.container,640,520,!0,!0);this.importCsvDialog.init()};EditorUi.prototype.importCsv=function(a,b){try{var c=a.split("\n"),d=[];if(0<c.length){var e={},f=null,h=null,m=null,p=null,q="",u="auto",t="auto",z=null,H=null,G=40,A=40,J=100,K=0,x=this.editor.graph;x.getGraphBounds();for(var C= +new TextareaDialog(this,mxResources.get("csv")+":",Editor.defaultCsvValue,mxUtils.bind(this,function(a){this.importCsv(a)}),null,null,620,430,null,!0,!0,mxResources.get("import")));this.showDialog(this.importCsvDialog.container,640,520,!0,!0);this.importCsvDialog.init()};EditorUi.prototype.importCsv=function(a,b){try{var c=a.split("\n"),d=[];if(0<c.length){var e={},f=null,k=null,l=null,p=null,q="",u="auto",t="auto",z=null,H=null,G=40,B=40,J=100,K=0,x=this.editor.graph;x.getGraphBounds();for(var C= function(){null!=b?b(aa):(x.setSelectionCells(aa),x.scrollCellToVisible(x.getSelectionCell()))},I=x.getFreeInsertPoint(),R=I.x,P=I.y,I=P,X=null,U="auto",p=null,F=[],ea=null,ka=null,Y=0;Y<c.length&&"#"==c[Y].charAt(0);){a=c[Y];for(Y++;Y<c.length&&"\\"==a.charAt(a.length-1)&&"#"==c[Y].charAt(0);)a=a.substring(0,a.length-1)+mxUtils.trim(c[Y].substring(1)),Y++;if("#"!=a.charAt(1)){var ba=a.indexOf(":");if(0<ba){var L=mxUtils.trim(a.substring(1,ba)),E=mxUtils.trim(a.substring(ba+1));"label"==L?X=x.sanitizeHtml(E): -"style"==L?f=E:"parentstyle"==L?h=E:"identity"==L&&0<E.length&&"-"!=E?m=E:"parent"==L&&0<E.length&&"-"!=E?p=E:"namespace"==L&&0<E.length&&"-"!=E?q=E:"width"==L?u=E:"height"==L?t=E:"left"==L&&0<E.length?z=E:"top"==L&&0<E.length?H=E:"ignore"==L?ka=E.split(","):"connect"==L?F.push(JSON.parse(E)):"link"==L?ea=E:"padding"==L?K=parseFloat(E):"edgespacing"==L?G=parseFloat(E):"nodespacing"==L?A=parseFloat(E):"levelspacing"==L?J=parseFloat(E):"layout"==L&&(U=E)}}}var S=this.editor.csvToArray(c[Y]),L=ba=null; -if(null!=m||null!=p)for(var M=0;M<S.length;M++)m==S[M]&&(ba=M),p==S[M]&&(L=M);null==X&&(X="%"+S[0]+"%");if(null!=F)for(var N=0;N<F.length;N++)null==e[F[N].to]&&(e[F[N].to]={});x.model.beginUpdate();try{for(M=Y+1;M<c.length;M++){var T=this.editor.csvToArray(c[M]);if(T.length==S.length){var D=null,Q=null!=ba?q+T[ba]:null;null!=Q&&(D=x.model.getCell(Q));null==D&&(D=new mxCell(X,new mxGeometry(R,I,0,0),f||"whiteSpace=wrap;html=1;"),D.vertex=!0,D.id=Q);for(var V=0;V<T.length;V++)x.setAttributeForCell(D, +"style"==L?f=E:"parentstyle"==L?k=E:"identity"==L&&0<E.length&&"-"!=E?l=E:"parent"==L&&0<E.length&&"-"!=E?p=E:"namespace"==L&&0<E.length&&"-"!=E?q=E:"width"==L?u=E:"height"==L?t=E:"left"==L&&0<E.length?z=E:"top"==L&&0<E.length?H=E:"ignore"==L?ka=E.split(","):"connect"==L?F.push(JSON.parse(E)):"link"==L?ea=E:"padding"==L?K=parseFloat(E):"edgespacing"==L?G=parseFloat(E):"nodespacing"==L?B=parseFloat(E):"levelspacing"==L?J=parseFloat(E):"layout"==L&&(U=E)}}}var S=this.editor.csvToArray(c[Y]),L=ba=null; +if(null!=l||null!=p)for(var M=0;M<S.length;M++)l==S[M]&&(ba=M),p==S[M]&&(L=M);null==X&&(X="%"+S[0]+"%");if(null!=F)for(var N=0;N<F.length;N++)null==e[F[N].to]&&(e[F[N].to]={});x.model.beginUpdate();try{for(M=Y+1;M<c.length;M++){var T=this.editor.csvToArray(c[M]);if(T.length==S.length){var D=null,Q=null!=ba?q+T[ba]:null;null!=Q&&(D=x.model.getCell(Q));null==D&&(D=new mxCell(X,new mxGeometry(R,I,0,0),f||"whiteSpace=wrap;html=1;"),D.vertex=!0,D.id=Q);for(var V=0;V<T.length;V++)x.setAttributeForCell(D, S[V],T[V]);x.setAttributeForCell(D,"placeholders","1");D.style=x.replacePlaceholders(D,D.style);for(N=0;N<F.length;N++)e[F[N].to][D.getAttribute(F[N].to)]=D;null!=ea&&"link"!=ea&&(x.setLinkForCell(D,D.getAttribute(ea)),x.setAttributeForCell(D,ea,null));x.fireEvent(new mxEventObject("cellsInserted","cells",[D]));var ga=this.editor.graph.getPreferredSizeForCell(D);D.vertex&&(null!=z&&null!=D.getAttribute(z)&&(D.geometry.x=R+parseFloat(D.getAttribute(z))),null!=H&&null!=D.getAttribute(H)&&(D.geometry.y= -P+parseFloat(D.getAttribute(H))),"@"==u.charAt(0)&&null!=D.getAttribute(u.substring(1))?D.geometry.width=parseFloat(D.getAttribute(u.substring(1))):D.geometry.width="auto"==u?ga.width+K:parseFloat(u),"@"==t.charAt(0)&&null!=D.getAttribute(t.substring(1))?D.geometry.height=parseFloat(D.getAttribute(t.substring(1))):D.geometry.height="auto"==t?ga.height+K:parseFloat(t),I+=D.geometry.height+A);p=null!=L?x.model.getCell(q+T[L]):null;null!=p?(p.style=x.replacePlaceholders(p,h),x.addCell(D,p)):d.push(x.addCell(D))}}for(var W= +P+parseFloat(D.getAttribute(H))),"@"==u.charAt(0)&&null!=D.getAttribute(u.substring(1))?D.geometry.width=parseFloat(D.getAttribute(u.substring(1))):D.geometry.width="auto"==u?ga.width+K:parseFloat(u),"@"==t.charAt(0)&&null!=D.getAttribute(t.substring(1))?D.geometry.height=parseFloat(D.getAttribute(t.substring(1))):D.geometry.height="auto"==t?ga.height+K:parseFloat(t),I+=D.geometry.height+B);p=null!=L?x.model.getCell(q+T[L]):null;null!=p?(p.style=x.replacePlaceholders(p,k),x.addCell(D,p)):d.push(x.addCell(D))}}for(var W= d.slice(),aa=d.slice(),N=0;N<F.length;N++)for(var Z=F[N],M=0;M<d.length;M++){var D=d[M],pa=D.getAttribute(Z.from);if(null!=pa){x.setAttributeForCell(D,Z.from,null);for(var ra=pa.split(","),V=0;V<ra.length;V++){var fa=e[Z.to][ra[V]];null!=fa&&(X=Z.label,null!=Z.fromlabel&&(X=(D.getAttribute(Z.fromlabel)||"")+(X||"")),null!=Z.tolabel&&(X=(X||"")+(fa.getAttribute(Z.tolabel)||"")),aa.push(x.insertEdge(null,null,X||"",Z.invert?fa:D,Z.invert?D:fa,Z.style||x.createCurrentEdgeStyle())),mxUtils.remove(Z.invert? D:fa,W))}}}if(null!=ka)for(M=0;M<d.length;M++)for(D=d[M],V=0;V<ka.length;V++)x.setAttributeForCell(D,mxUtils.trim(ka[V]),null);var ma=new mxParallelEdgeLayout(x);ma.spacing=G;var ta=function(){ma.execute(x.getDefaultParent());for(var a=0;a<d.length;a++){var b=x.getCellGeometry(d[a]);b.x=Math.round(x.snap(b.x));b.y=Math.round(x.snap(b.y));"auto"==u&&(b.width=Math.round(x.snap(b.width)));"auto"==t&&(b.height=Math.round(x.snap(b.height)))}};if("circle"==U){var la=new mxCircleLayout(x);la.resetEdges= -!1;var sa=la.isVertexIgnored;la.isVertexIgnored=function(a){return sa.apply(this,arguments)||0>mxUtils.indexOf(d,a)};this.executeLayout(function(){la.execute(x.getDefaultParent());ta()},!0,C);C=null}else if("horizontaltree"==U||"verticaltree"==U||"auto"==U&&aa.length==2*d.length-1&&1==W.length){x.view.validate();var ha=new mxCompactTreeLayout(x,"horizontaltree"==U);ha.levelDistance=A;ha.edgeRouting=!1;ha.resetEdges=!1;this.executeLayout(function(){ha.execute(x.getDefaultParent(),0<W.length?W[0]:null)}, -!0,C);C=null}else if("horizontalflow"==U||"verticalflow"==U||"auto"==U&&1==W.length){x.view.validate();var ca=new mxHierarchicalLayout(x,"horizontalflow"==U?mxConstants.DIRECTION_WEST:mxConstants.DIRECTION_NORTH);ca.intraCellSpacing=A;ca.parallelEdgeSpacing=G;ca.interRankCellSpacing=J;ca.disableEdgeStyle=!1;this.executeLayout(function(){ca.execute(x.getDefaultParent(),aa);x.moveCells(aa,R,P)},!0,C);C=null}else if("organic"==U||"auto"==U&&aa.length>d.length){x.view.validate();var da=new mxFastOrganicLayout(x); -da.forceConstant=3*A;da.resetEdges=!1;var ia=da.isVertexIgnored;da.isVertexIgnored=function(a){return ia.apply(this,arguments)||0>mxUtils.indexOf(d,a)};ma=new mxParallelEdgeLayout(x);ma.spacing=G;this.executeLayout(function(){da.execute(x.getDefaultParent());ta()},!0,C);C=null}this.hideDialog()}finally{x.model.endUpdate()}null!=C&&C()}}catch(wa){this.handleError(wa)}};EditorUi.prototype.getSearch=function(a){var b="";if("1"!=urlParams.offline&&"1"!=urlParams.demo&&null!=a&&0<window.location.search.length){var c= +!1;var sa=la.isVertexIgnored;la.isVertexIgnored=function(a){return sa.apply(this,arguments)||0>mxUtils.indexOf(d,a)};this.executeLayout(function(){la.execute(x.getDefaultParent());ta()},!0,C);C=null}else if("horizontaltree"==U||"verticaltree"==U||"auto"==U&&aa.length==2*d.length-1&&1==W.length){x.view.validate();var ha=new mxCompactTreeLayout(x,"horizontaltree"==U);ha.levelDistance=B;ha.edgeRouting=!1;ha.resetEdges=!1;this.executeLayout(function(){ha.execute(x.getDefaultParent(),0<W.length?W[0]:null)}, +!0,C);C=null}else if("horizontalflow"==U||"verticalflow"==U||"auto"==U&&1==W.length){x.view.validate();var ca=new mxHierarchicalLayout(x,"horizontalflow"==U?mxConstants.DIRECTION_WEST:mxConstants.DIRECTION_NORTH);ca.intraCellSpacing=B;ca.parallelEdgeSpacing=G;ca.interRankCellSpacing=J;ca.disableEdgeStyle=!1;this.executeLayout(function(){ca.execute(x.getDefaultParent(),aa);x.moveCells(aa,R,P)},!0,C);C=null}else if("organic"==U||"auto"==U&&aa.length>d.length){x.view.validate();var da=new mxFastOrganicLayout(x); +da.forceConstant=3*B;da.resetEdges=!1;var ia=da.isVertexIgnored;da.isVertexIgnored=function(a){return ia.apply(this,arguments)||0>mxUtils.indexOf(d,a)};ma=new mxParallelEdgeLayout(x);ma.spacing=G;this.executeLayout(function(){da.execute(x.getDefaultParent());ta()},!0,C);C=null}this.hideDialog()}finally{x.model.endUpdate()}null!=C&&C()}}catch(wa){this.handleError(wa)}};EditorUi.prototype.getSearch=function(a){var b="";if("1"!=urlParams.offline&&"1"!=urlParams.demo&&null!=a&&0<window.location.search.length){var c= "?",d;for(d in urlParams)0>mxUtils.indexOf(a,d)&&null!=urlParams[d]&&(b+=c+d+"="+urlParams[d],c="&")}else b=window.location.search;return b};EditorUi.prototype.getUrl=function(a){a=null!=a?a:window.location.pathname;var b=0<a.indexOf("?")?1:0;if("1"==urlParams.offline)a+=window.location.search;else{var c="tmp libs clibs state fileId code share notitle data url embed client create title splash".split(" "),d;for(d in urlParams)0>mxUtils.indexOf(c,d)&&(a=0==b?a+"?":a+"&",null!=urlParams[d]&&(a+=d+"="+ urlParams[d],b++))}return a};EditorUi.prototype.showLinkDialog=function(a,b,d){a=new LinkDialog(this,a,b,d,!0);this.showDialog(a.container,480,130,!0,!0);a.init()};var p=EditorUi.prototype.createOutline;EditorUi.prototype.createOutline=function(a){var b=p.apply(this,arguments),c=this.editor.graph,d=b.getSourceGraphBounds;b.getSourceGraphBounds=function(){if(mxUtils.hasScrollbars(c.container)&&c.pageVisible&&null!=this.source.minimumGraphSize){var a=this.source.getPagePadding(),b=this.source.view.scale; return new mxRectangle(0,0,Math.ceil(this.source.minimumGraphSize.width-2*a.x/b),Math.ceil(this.source.minimumGraphSize.height-2*a.y/b))}return d.apply(this,arguments)};var e=b.getSourceContainerSize;b.getSourceContainerSize=function(){if(mxUtils.hasScrollbars(c.container)&&null!=this.source.minimumGraphSize){var a=this.source.getPagePadding(),b=this.source.view.scale;return new mxRectangle(0,0,Math.ceil(this.source.minimumGraphSize.width*b-2*a.x),Math.ceil(this.source.minimumGraphSize.height*b-2* @@ -3076,122 +3081,122 @@ c++;null==this.oneDrive&&"function"!==typeof window.OneDriveClient||c++;b||null= var d=("1"!=urlParams.embed||!this.editor.graph.isEnabled())&&(null==a||a.isRestricted());this.actions.get("makeCopy").setEnabled(!d);this.actions.get("print").setEnabled(!d);this.menus.get("exportAs").setEnabled(!d);this.menus.get("embed").setEnabled(!d);d="1"!=urlParams.embed||this.editor.graph.isEnabled();this.menus.get("extras").setEnabled(d);Editor.enableCustomLibraries&&(this.menus.get("openLibraryFrom").setEnabled(d),this.menus.get("newLibrary").setEnabled(d));a="1"==urlParams.embed&&this.editor.graph.isEnabled()|| null!=a&&a.isEditable();this.actions.get("image").setEnabled(b);this.actions.get("zoomIn").setEnabled(b);this.actions.get("zoomOut").setEnabled(b);this.actions.get("resetView").setEnabled(b);this.menus.get("edit").setEnabled(b);this.menus.get("view").setEnabled(b);this.menus.get("importFrom").setEnabled(a);this.menus.get("arrange").setEnabled(a);null!=this.toolbar&&(null!=this.toolbar.edgeShapeMenu&&this.toolbar.edgeShapeMenu.setEnabled(a),null!=this.toolbar.edgeStyleMenu&&this.toolbar.edgeStyleMenu.setEnabled(a)); if(this.isAppCache()){var e=applicationCache;if(null!=e&&null==this.offlineStatus){this.offlineStatus=document.createElement("div");this.offlineStatus.className="geItem";this.offlineStatus.style.position="absolute";this.offlineStatus.style.fontSize="8pt";this.offlineStatus.style.top="2px";this.offlineStatus.style.right="12px";this.offlineStatus.style.color="#666";this.offlineStatus.style.margin="4px";this.offlineStatus.style.padding="2px";this.offlineStatus.style.verticalAlign="middle";this.offlineStatus.innerHTML= -"";this.menubarContainer.appendChild(this.offlineStatus);mxEvent.addListener(this.offlineStatus,"click",mxUtils.bind(this,function(){var a=this.offlineStatus.getElementsByTagName("img");null!=a&&0<a.length&&this.alert(a[0].getAttribute("title"))}));var e=window.applicationCache,h=null,b=mxUtils.bind(this,function(){var a=e.status,b;a==e.CHECKING&&(a=e.DOWNLOADING);switch(a){case e.UNCACHED:b="";break;case e.IDLE:b="min"==uiTheme?"":'<img title="draw.io is up to date." border="0" src="'+IMAGE_PATH+ -'/checkmark.gif"/>';break;case e.DOWNLOADING:b='<img title="Downloading new version..." border="0" src="'+IMAGE_PATH+'/spin.gif"/>';break;case e.UPDATEREADY:b='<img title="'+mxUtils.htmlEntities(mxResources.get("restartForChangeRequired"))+'" border="0" src="'+IMAGE_PATH+'/download.png"/>';break;case e.OBSOLETE:b='<img title="Obsolete" border="0" src="'+IMAGE_PATH+'/clear.gif"/>';break;default:b='<img title="Unknown" border="0" src="'+IMAGE_PATH+'/clear.gif"/>'}a!=h&&(this.offlineStatus.innerHTML= -b,h=a)});mxEvent.addListener(e,"checking",b);mxEvent.addListener(e,"noupdate",b);mxEvent.addListener(e,"downloading",b);mxEvent.addListener(e,"progress",b);mxEvent.addListener(e,"cached",b);mxEvent.addListener(e,"updateready",b);mxEvent.addListener(e,"obsolete",b);mxEvent.addListener(e,"error",b);b()}}else this.updateUserElement()};EditorUi.prototype.updateButtonContainer=function(){};EditorUi.prototype.updateUserElement=function(){};EditorUi.prototype.isDiagramActive=function(){var a=this.getCurrentFile(); +"";this.menubarContainer.appendChild(this.offlineStatus);mxEvent.addListener(this.offlineStatus,"click",mxUtils.bind(this,function(){var a=this.offlineStatus.getElementsByTagName("img");null!=a&&0<a.length&&this.alert(a[0].getAttribute("title"))}));var e=window.applicationCache,k=null,b=mxUtils.bind(this,function(){var a=e.status,b;a==e.CHECKING&&(a=e.DOWNLOADING);switch(a){case e.UNCACHED:b="";break;case e.IDLE:b="min"==uiTheme?"":'<img title="draw.io is up to date." border="0" src="'+IMAGE_PATH+ +'/checkmark.gif"/>';break;case e.DOWNLOADING:b='<img title="Downloading new version..." border="0" src="'+IMAGE_PATH+'/spin.gif"/>';break;case e.UPDATEREADY:b='<img title="'+mxUtils.htmlEntities(mxResources.get("restartForChangeRequired"))+'" border="0" src="'+IMAGE_PATH+'/download.png"/>';break;case e.OBSOLETE:b='<img title="Obsolete" border="0" src="'+IMAGE_PATH+'/clear.gif"/>';break;default:b='<img title="Unknown" border="0" src="'+IMAGE_PATH+'/clear.gif"/>'}a!=k&&(this.offlineStatus.innerHTML= +b,k=a)});mxEvent.addListener(e,"checking",b);mxEvent.addListener(e,"noupdate",b);mxEvent.addListener(e,"downloading",b);mxEvent.addListener(e,"progress",b);mxEvent.addListener(e,"cached",b);mxEvent.addListener(e,"updateready",b);mxEvent.addListener(e,"obsolete",b);mxEvent.addListener(e,"error",b);b()}}else this.updateUserElement()};EditorUi.prototype.updateButtonContainer=function(){};EditorUi.prototype.updateUserElement=function(){};EditorUi.prototype.isDiagramActive=function(){var a=this.getCurrentFile(); return null!=a&&a.isEditable()||"1"==urlParams.embed&&this.editor.graph.isEnabled()};var q=EditorUi.prototype.updateActionStates;EditorUi.prototype.updateActionStates=function(){q.apply(this,arguments);var a=this.editor.graph,b=this.isDiagramActive(),d=this.getCurrentFile();this.actions.get("pageSetup").setEnabled(b);this.actions.get("autosave").setEnabled(null!=d&&d.isEditable()&&d.isAutosaveOptional());this.actions.get("guides").setEnabled(b);this.actions.get("editData").setEnabled(b);this.actions.get("shadowVisible").setEnabled(b); this.actions.get("connectionArrows").setEnabled(b);this.actions.get("connectionPoints").setEnabled(b);this.actions.get("copyStyle").setEnabled(b&&!a.isSelectionEmpty());this.actions.get("pasteStyle").setEnabled(b&&!a.isSelectionEmpty());this.actions.get("editGeometry").setEnabled(a.getModel().isVertex(a.getSelectionCell()));this.actions.get("createShape").setEnabled(b);this.actions.get("createRevision").setEnabled(b);this.actions.get("moveToFolder").setEnabled(null!=d);this.actions.get("makeCopy").setEnabled(null!= d&&!d.isRestricted());this.actions.get("editDiagram").setEnabled(b&&(null==d||!d.isRestricted()));this.actions.get("publishLink").setEnabled(null!=d&&!d.isRestricted());this.actions.get("tags").setEnabled("hidden"!=this.diagramContainer.style.visibility);this.actions.get("find").setEnabled("hidden"!=this.diagramContainer.style.visibility);this.actions.get("layers").setEnabled("hidden"!=this.diagramContainer.style.visibility);this.actions.get("outline").setEnabled("hidden"!=this.diagramContainer.style.visibility); this.actions.get("rename").setEnabled(null!=d&&d.isRenamable()||"1"==urlParams.embed);this.actions.get("close").setEnabled(null!=d);this.menus.get("publish").setEnabled(null!=d&&!d.isRestricted());a=a.view.getState(a.getSelectionCell());this.actions.get("editShape").setEnabled(b&&null!=a&&null!=a.shape&&null!=a.shape.stencil)};var u=EditorUi.prototype.destroy;EditorUi.prototype.destroy=function(){null!=this.exportDialog&&(this.exportDialog.parentNode.removeChild(this.exportDialog),this.exportDialog= -null);u.apply(this,arguments)};null!=window.ExportDialog&&(ExportDialog.showXmlOption=!1,ExportDialog.showGifOption=!1,ExportDialog.exportFile=function(a,b,d,e,h,l){var c=a.editor.graph;if("xml"==d)a.hideDialog(),a.saveData(b,"xml",mxUtils.getXml(a.editor.getGraphXml()),"text/xml");else if("svg"==d)a.hideDialog(),a.saveData(b,"svg",mxUtils.getXml(c.getSvg(e,h,l)),"image/svg+xml");else{var f=a.getFileData(!0,null,null,null,null,!0),g=c.getGraphBounds(),k=Math.floor(g.width*h/c.view.scale),m=Math.floor(g.height* -h/c.view.scale);f.length<=MAX_REQUEST_SIZE&&k*m<MAX_AREA?(a.hideDialog(),a.saveRequest(b,d,function(a,b){return new mxXmlRequest(EXPORT_URL,"format="+d+"&base64="+(b||"0")+(null!=a?"&filename="+encodeURIComponent(a):"")+"&bg="+(null!=e?e:"none")+"&w="+k+"&h="+m+"&border="+l+"&xml="+encodeURIComponent(f))})):mxUtils.alert(mxResources.get("drawingTooLarge"))}})})();function DiagramPage(a){this.node=a;(null==this.node.hasAttribute&&null==this.node.getAttribute("id")||null!=this.node.hasAttribute&&!this.node.hasAttribute("id"))&&this.node.setAttribute("id",Editor.guid())}DiagramPage.prototype.node=null;DiagramPage.prototype.root=null;DiagramPage.prototype.viewState=null;DiagramPage.prototype.getId=function(){return this.node.getAttribute("id")};DiagramPage.prototype.getName=function(){return this.node.getAttribute("name")}; -DiagramPage.prototype.setName=function(a){null==a?this.node.removeAttribute("name"):this.node.setAttribute("name",a)};function RenamePage(a,d,e){this.ui=a;this.page=d;this.previous=this.name=e}RenamePage.prototype.execute=function(){var a=this.page.getName();this.page.setName(this.previous);this.name=this.previous;this.previous=a;this.ui.editor.graph.updatePlaceholders();this.ui.editor.fireEvent(new mxEventObject("pageRenamed"))}; -function MovePage(a,d,e){this.ui=a;this.oldIndex=d;this.newIndex=e}MovePage.prototype.execute=function(){this.ui.pages.splice(this.newIndex,0,this.ui.pages.splice(this.oldIndex,1)[0]);var a=this.oldIndex;this.oldIndex=this.newIndex;this.newIndex=a;this.ui.editor.graph.updatePlaceholders();this.ui.editor.fireEvent(new mxEventObject("pageMoved"))}; -function SelectPage(a,d){this.ui=a;this.previousPage=this.page=d;this.neverShown=!0;null!=d&&(this.neverShown=null==d.viewState,this.ui.updatePageRoot(d))} -SelectPage.prototype.execute=function(){var a=mxUtils.indexOf(this.ui.pages,this.previousPage);if(null!=this.page&&0<=a){var a=this.ui.currentPage,d=this.ui.editor,e=d.graph,b=d.graph.compress(e.zapGremlins(mxUtils.getXml(d.getGraphXml(!0))));mxUtils.setTextContent(a.node,b);a.viewState=e.getViewState();a.root=e.model.root;null!=a.model&&a.model.rootChanged(a.root);e.view.clear(a.root,!0);e.clearSelection();this.ui.currentPage=this.previousPage;this.previousPage=a;a=this.ui.currentPage;e.model.rootChanged(a.root); -e.setViewState(a.viewState);d.fireEvent(new mxEventObject("setViewState","change",this));e.gridEnabled=e.gridEnabled&&(!this.ui.editor.isChromelessView()||"1"==urlParams.grid);d.updateGraphComponents();e.view.validate();e.sizeDidChange();this.neverShown&&(this.neverShown=!1,e.selectUnlockedLayer());d.graph.fireEvent(new mxEventObject(mxEvent.ROOT));d.fireEvent(new mxEventObject("pageSelected","change",this))}}; -function ChangePage(a,d,e,b){SelectPage.call(this,a,e);this.relatedPage=d;this.index=b;this.previousIndex=null}mxUtils.extend(ChangePage,SelectPage); +null);u.apply(this,arguments)};null!=window.ExportDialog&&(ExportDialog.showXmlOption=!1,ExportDialog.showGifOption=!1,ExportDialog.exportFile=function(a,b,d,e,k,h){var c=a.editor.graph;if("xml"==d)a.hideDialog(),a.saveData(b,"xml",mxUtils.getXml(a.editor.getGraphXml()),"text/xml");else if("svg"==d)a.hideDialog(),a.saveData(b,"svg",mxUtils.getXml(c.getSvg(e,k,h)),"image/svg+xml");else{var f=a.getFileData(!0,null,null,null,null,!0),g=c.getGraphBounds(),l=Math.floor(g.width*k/c.view.scale),p=Math.floor(g.height* +k/c.view.scale);f.length<=MAX_REQUEST_SIZE&&l*p<MAX_AREA?(a.hideDialog(),a.saveRequest(b,d,function(a,b){return new mxXmlRequest(EXPORT_URL,"format="+d+"&base64="+(b||"0")+(null!=a?"&filename="+encodeURIComponent(a):"")+"&bg="+(null!=e?e:"none")+"&w="+l+"&h="+p+"&border="+h+"&xml="+encodeURIComponent(f))})):mxUtils.alert(mxResources.get("drawingTooLarge"))}})})();function DiagramPage(a){this.node=a;(null==this.node.hasAttribute&&null==this.node.getAttribute("id")||null!=this.node.hasAttribute&&!this.node.hasAttribute("id"))&&this.node.setAttribute("id",Editor.guid())}DiagramPage.prototype.node=null;DiagramPage.prototype.root=null;DiagramPage.prototype.viewState=null;DiagramPage.prototype.getId=function(){return this.node.getAttribute("id")};DiagramPage.prototype.getName=function(){return this.node.getAttribute("name")}; +DiagramPage.prototype.setName=function(a){null==a?this.node.removeAttribute("name"):this.node.setAttribute("name",a)};function RenamePage(a,b,e){this.ui=a;this.page=b;this.previous=this.name=e}RenamePage.prototype.execute=function(){var a=this.page.getName();this.page.setName(this.previous);this.name=this.previous;this.previous=a;this.ui.editor.graph.updatePlaceholders();this.ui.editor.fireEvent(new mxEventObject("pageRenamed"))}; +function MovePage(a,b,e){this.ui=a;this.oldIndex=b;this.newIndex=e}MovePage.prototype.execute=function(){this.ui.pages.splice(this.newIndex,0,this.ui.pages.splice(this.oldIndex,1)[0]);var a=this.oldIndex;this.oldIndex=this.newIndex;this.newIndex=a;this.ui.editor.graph.updatePlaceholders();this.ui.editor.fireEvent(new mxEventObject("pageMoved"))}; +function SelectPage(a,b){this.ui=a;this.previousPage=this.page=b;this.neverShown=!0;null!=b&&(this.neverShown=null==b.viewState,this.ui.updatePageRoot(b))} +SelectPage.prototype.execute=function(){var a=mxUtils.indexOf(this.ui.pages,this.previousPage);if(null!=this.page&&0<=a){var a=this.ui.currentPage,b=this.ui.editor,e=b.graph,d=b.graph.compress(e.zapGremlins(mxUtils.getXml(b.getGraphXml(!0))));mxUtils.setTextContent(a.node,d);a.viewState=e.getViewState();a.root=e.model.root;null!=a.model&&a.model.rootChanged(a.root);e.view.clear(a.root,!0);e.clearSelection();this.ui.currentPage=this.previousPage;this.previousPage=a;a=this.ui.currentPage;e.model.rootChanged(a.root); +e.setViewState(a.viewState);b.fireEvent(new mxEventObject("setViewState","change",this));e.gridEnabled=e.gridEnabled&&(!this.ui.editor.isChromelessView()||"1"==urlParams.grid);b.updateGraphComponents();e.view.validate();e.sizeDidChange();this.neverShown&&(this.neverShown=!1,e.selectUnlockedLayer());b.graph.fireEvent(new mxEventObject(mxEvent.ROOT));b.fireEvent(new mxEventObject("pageSelected","change",this))}}; +function ChangePage(a,b,e,d){SelectPage.call(this,a,e);this.relatedPage=b;this.index=d;this.previousIndex=null}mxUtils.extend(ChangePage,SelectPage); ChangePage.prototype.execute=function(){this.ui.editor.fireEvent(new mxEventObject("beforePageChange","change",this));this.previousIndex=this.index;if(null==this.index){var a=mxUtils.indexOf(this.ui.pages,this.relatedPage);this.ui.pages.splice(a,1);this.index=a}else this.ui.pages.splice(this.index,0,this.relatedPage),this.index=null;SelectPage.prototype.execute.apply(this,arguments)}; -EditorUi.prototype.getSelectedPageIndex=function(){var a=null;if(null!=this.pages&&null!=this.currentPage)for(var d=0;d<this.pages.length;d++)if(this.pages[d]==this.currentPage){a=d;break}return a};EditorUi.prototype.getPageById=function(a){if(null!=this.pages)for(var d=0;d<this.pages.length;d++)if(this.pages[d].getId()==a)return this.pages[d];return null}; -EditorUi.prototype.initPages=function(){this.actions.addAction("previousPage",mxUtils.bind(this,function(){this.selectNextPage(!1)}));this.actions.addAction("nextPage",mxUtils.bind(this,function(){this.selectNextPage(!0)}));this.keyHandler.bindAction(33,!0,"previousPage",!0);this.keyHandler.bindAction(34,!0,"nextPage",!0);var a=this.editor.graph,d=a.view.validateBackground;a.view.validateBackground=mxUtils.bind(this,function(){if(null!=this.tabContainer){var b=this.tabContainer.style.height;this.tabContainer.style.height= -null==this.fileNode||null==this.pages||1==this.pages.length&&"0"==urlParams.pages?"0px":"30px";b!=this.tabContainer.style.height&&this.refresh(!1)}d.apply(a.view,arguments)});var e=null,b=mxUtils.bind(this,function(){this.updateTabContainer();var b=this.currentPage;null!=b&&b!=e&&(null==b.viewState||null==b.viewState.scrollLeft?(this.resetScrollbars(),a.isLightboxView()&&this.lightboxFit(),null!=this.chromelessResize&&(a.container.scrollLeft=0,a.container.scrollTop=0,this.chromelessResize())):(a.container.scrollLeft= +EditorUi.prototype.getSelectedPageIndex=function(){var a=null;if(null!=this.pages&&null!=this.currentPage)for(var b=0;b<this.pages.length;b++)if(this.pages[b]==this.currentPage){a=b;break}return a};EditorUi.prototype.getPageById=function(a){if(null!=this.pages)for(var b=0;b<this.pages.length;b++)if(this.pages[b].getId()==a)return this.pages[b];return null}; +EditorUi.prototype.initPages=function(){this.actions.addAction("previousPage",mxUtils.bind(this,function(){this.selectNextPage(!1)}));this.actions.addAction("nextPage",mxUtils.bind(this,function(){this.selectNextPage(!0)}));this.keyHandler.bindAction(33,!0,"previousPage",!0);this.keyHandler.bindAction(34,!0,"nextPage",!0);var a=this.editor.graph,b=a.view.validateBackground;a.view.validateBackground=mxUtils.bind(this,function(){if(null!=this.tabContainer){var d=this.tabContainer.style.height;this.tabContainer.style.height= +null==this.fileNode||null==this.pages||1==this.pages.length&&"0"==urlParams.pages?"0px":"30px";d!=this.tabContainer.style.height&&this.refresh(!1)}b.apply(a.view,arguments)});var e=null,d=mxUtils.bind(this,function(){this.updateTabContainer();var b=this.currentPage;null!=b&&b!=e&&(null==b.viewState||null==b.viewState.scrollLeft?(this.resetScrollbars(),a.isLightboxView()&&this.lightboxFit(),null!=this.chromelessResize&&(a.container.scrollLeft=0,a.container.scrollTop=0,this.chromelessResize())):(a.container.scrollLeft= a.view.translate.x*a.view.scale+b.viewState.scrollLeft,a.container.scrollTop=a.view.translate.y*a.view.scale+b.viewState.scrollTop),e=b);null!=this.actions.layersWindow&&this.actions.layersWindow.refreshLayers();"undefined"!==typeof MathJax&&"undefined"!==typeof MathJax.Hub?1!=MathJax.Hub.queue.pending||null==this.editor||this.editor.graph.mathEnabled||MathJax.Hub.Queue(mxUtils.bind(this,function(){null!=this.editor&&this.editor.graph.refresh()})):"undefined"===typeof Editor.MathJaxClear||null!=this.editor&& -this.editor.graph.mathEnabled||Editor.MathJaxClear()});this.editor.graph.model.addListener(mxEvent.CHANGE,mxUtils.bind(this,function(a,d){for(var e=d.getProperty("edit").changes,h=0;h<e.length;h++)if(e[h]instanceof SelectPage||e[h]instanceof RenamePage||e[h]instanceof MovePage||e[h]instanceof mxRootChange){b();break}}));null!=this.toolbar&&this.editor.addListener("pageSelected",this.toolbar.updateZoom)}; -Graph.prototype.createViewState=function(a){var d=a.getAttribute("page"),e=parseFloat(a.getAttribute("pageScale")),b=parseFloat(a.getAttribute("pageWidth")),h=parseFloat(a.getAttribute("pageHeight")),m=a.getAttribute("background"),p=a.getAttribute("backgroundImage"),p=null!=p&&0<p.length?JSON.parse(p):null;return{gridEnabled:"0"!=a.getAttribute("grid"),gridSize:parseFloat(a.getAttribute("gridSize"))||mxGraph.prototype.gridSize,guidesEnabled:"0"!=a.getAttribute("guides"),foldingEnabled:"0"!=a.getAttribute("fold"), -shadowVisible:"1"==a.getAttribute("shadow"),pageVisible:this.isLightboxView()?!1:null!=d?"0"!=d:this.defaultPageVisible,background:null!=m&&0<m.length?m:this.defaultGraphBackground,backgroundImage:null!=p?new mxImage(p.src,p.width,p.height):null,pageScale:isNaN(e)?mxGraph.prototype.pageScale:e,pageFormat:isNaN(b)||isNaN(h)?this.pageFormat:new mxRectangle(0,0,b,b),tooltips:"0"!=a.getAttribute("tooltips"),connect:"0"!=a.getAttribute("connect"),arrows:"0"!=a.getAttribute("arrows"),mathEnabled:"1"==a.getAttribute("math"), -selectionCells:null,defaultParent:null,scrollbars:this.defaultScrollbars,scale:1}}; -Graph.prototype.saveViewState=function(a,d){d.setAttribute("grid",null==a||a.gridEnabled?"1":"0");d.setAttribute("gridSize",null!=a?a.gridSize:mxGraph.prototype.gridSize);d.setAttribute("guides",null==a||a.guidesEnabled?"1":"0");d.setAttribute("tooltips",null==a||a.tooltips?"1":"0");d.setAttribute("connect",null==a||a.connect?"1":"0");d.setAttribute("arrows",null==a||a.arrows?"1":"0");d.setAttribute("fold",null==a||a.foldingEnabled?"1":"0");d.setAttribute("page",null==a&&this.defaultPageVisible|| -null!=a&&a.pageVisible?"1":"0");d.setAttribute("pageScale",null!=a&&null!=a.pageScale?a.pageScale:mxGraph.prototype.pageScale);var e=null!=a?a.pageFormat:mxSettings.getPageFormat();null!=e&&(d.setAttribute("pageWidth",e.width),d.setAttribute("pageHeight",e.height));d.setAttribute("background",null!=a&&null!=a.background?a.background:this.defaultGraphBackground);null!=a&&null!=a.backgroundImage&&d.setAttribute("backgroundImage",JSON.stringify(a.backgroundImage));d.setAttribute("math",null!=a&&a.mathEnabled? -"1":"0");d.setAttribute("shadow",null!=a&&a.shadowVisible?"1":"0")}; +this.editor.graph.mathEnabled||Editor.MathJaxClear()});this.editor.graph.model.addListener(mxEvent.CHANGE,mxUtils.bind(this,function(a,b){for(var e=b.getProperty("edit").changes,k=0;k<e.length;k++)if(e[k]instanceof SelectPage||e[k]instanceof RenamePage||e[k]instanceof MovePage||e[k]instanceof mxRootChange){d();break}}));null!=this.toolbar&&this.editor.addListener("pageSelected",this.toolbar.updateZoom)}; +Graph.prototype.createViewState=function(a){var b=a.getAttribute("page"),e=parseFloat(a.getAttribute("pageScale")),d=parseFloat(a.getAttribute("pageWidth")),k=parseFloat(a.getAttribute("pageHeight")),l=a.getAttribute("background"),p=a.getAttribute("backgroundImage"),p=null!=p&&0<p.length?JSON.parse(p):null;return{gridEnabled:"0"!=a.getAttribute("grid"),gridSize:parseFloat(a.getAttribute("gridSize"))||mxGraph.prototype.gridSize,guidesEnabled:"0"!=a.getAttribute("guides"),foldingEnabled:"0"!=a.getAttribute("fold"), +shadowVisible:"1"==a.getAttribute("shadow"),pageVisible:this.isLightboxView()?!1:null!=b?"0"!=b:this.defaultPageVisible,background:null!=l&&0<l.length?l:this.defaultGraphBackground,backgroundImage:null!=p?new mxImage(p.src,p.width,p.height):null,pageScale:isNaN(e)?mxGraph.prototype.pageScale:e,pageFormat:isNaN(d)||isNaN(k)?mxSettings.getPageFormat():new mxRectangle(0,0,d,k),tooltips:"0"!=a.getAttribute("tooltips"),connect:"0"!=a.getAttribute("connect"),arrows:"0"!=a.getAttribute("arrows"),mathEnabled:"1"== +a.getAttribute("math"),selectionCells:null,defaultParent:null,scrollbars:this.defaultScrollbars,scale:1}}; +Graph.prototype.saveViewState=function(a,b){b.setAttribute("grid",null==a||a.gridEnabled?"1":"0");b.setAttribute("gridSize",null!=a?a.gridSize:mxGraph.prototype.gridSize);b.setAttribute("guides",null==a||a.guidesEnabled?"1":"0");b.setAttribute("tooltips",null==a||a.tooltips?"1":"0");b.setAttribute("connect",null==a||a.connect?"1":"0");b.setAttribute("arrows",null==a||a.arrows?"1":"0");b.setAttribute("fold",null==a||a.foldingEnabled?"1":"0");b.setAttribute("page",null==a&&this.defaultPageVisible|| +null!=a&&a.pageVisible?"1":"0");b.setAttribute("pageScale",null!=a&&null!=a.pageScale?a.pageScale:mxGraph.prototype.pageScale);var e=null!=a?a.pageFormat:mxSettings.getPageFormat();null!=e&&(b.setAttribute("pageWidth",e.width),b.setAttribute("pageHeight",e.height));null!=a&&null!=a.background&&b.setAttribute("background",a.background);null!=a&&null!=a.backgroundImage&&b.setAttribute("backgroundImage",JSON.stringify(a.backgroundImage));b.setAttribute("math",null!=a&&a.mathEnabled?"1":"0");b.setAttribute("shadow", +null!=a&&a.shadowVisible?"1":"0")}; Graph.prototype.getViewState=function(){return{defaultParent:this.defaultParent,currentRoot:this.view.currentRoot,gridEnabled:this.gridEnabled,gridSize:this.gridSize,guidesEnabled:this.graphHandler.guidesEnabled,foldingEnabled:this.foldingEnabled,shadowVisible:this.shadowVisible,scrollbars:this.scrollbars,pageVisible:this.pageVisible,background:this.background,backgroundImage:this.backgroundImage,pageScale:this.pageScale,pageFormat:this.pageFormat,tooltips:this.tooltipHandler.isEnabled(),connect:this.connectionHandler.isEnabled(), arrows:this.connectionArrowsEnabled,scale:this.view.scale,scrollLeft:this.container.scrollLeft-this.view.translate.x*this.view.scale,scrollTop:this.container.scrollTop-this.view.translate.y*this.view.scale,translate:this.view.translate.clone(),lastPasteXml:this.lastPasteXml,pasteCounter:this.pasteCounter,mathEnabled:this.mathEnabled}}; Graph.prototype.setViewState=function(a){null!=a?(this.lastPasteXml=a.lastPasteXml,this.pasteCounter=a.pasteCounter||0,this.mathEnabled=a.mathEnabled,this.gridEnabled=a.gridEnabled,this.gridSize=a.gridSize,this.graphHandler.guidesEnabled=a.guidesEnabled,this.foldingEnabled=a.foldingEnabled,this.setShadowVisible(a.shadowVisible,!1),this.scrollbars=a.scrollbars,this.pageVisible=a.pageVisible,this.background=a.background,this.backgroundImage=a.backgroundImage,this.pageScale=a.pageScale,this.pageFormat= a.pageFormat,this.view.currentRoot=a.currentRoot,this.defaultParent=a.defaultParent,this.connectionArrowsEnabled=a.arrows,this.setTooltips(a.tooltips),this.setConnectable(a.connect),this.view.scale=null!=a.scale?a.scale:1,null==this.view.currentRoot||this.model.contains(this.view.currentRoot)||(this.view.currentRoot=null),null==this.defaultParent||this.model.contains(this.defaultParent)||(this.setDefaultParent(null),this.selectUnlockedLayer()),null!=a.translate&&(this.view.translate=a.translate)): (this.view.currentRoot=null,this.view.scale=1,this.gridEnabled=!0,this.gridSize=mxGraph.prototype.gridSize,this.pageScale=mxGraph.prototype.pageScale,this.pageFormat=mxSettings.getPageFormat(),this.pageVisible=this.defaultPageVisible,this.background=this.defaultGraphBackground,this.backgroundImage=null,this.scrollbars=this.defaultScrollbars,this.foldingEnabled=this.graphHandler.guidesEnabled=!0,this.setShadowVisible(!1,!1),this.defaultParent=null,this.setTooltips(!0),this.setConnectable(!0),this.lastPasteXml= -null,this.pasteCounter=0,this.mathEnabled=!1,this.connectionArrowsEnabled=!0);this.preferPageSize=this.pageBreaksVisible=this.pageVisible};EditorUi.prototype.updatePageRoot=function(a){if(null==a.root){var d=this.editor.extractGraphModel(a.node);if(null!=d){a.graphModelNode=d;a.viewState=this.editor.graph.createViewState(d);var e=new mxCodec(d.ownerDocument);a.root=e.decode(d).root}else a.root=this.editor.graph.model.createRoot()}return a}; -EditorUi.prototype.selectPage=function(a,d){this.editor.graph.isEditing()&&this.editor.graph.stopEditing(!1);d=null!=d?d:!1;this.editor.graph.isMouseDown=!1;this.editor.graph.reset();var e=this.editor.graph.model.createUndoableEdit();e.ignoreEdit=!0;var b=new SelectPage(this,a);b.execute();e.add(b);e.notify();this.editor.graph.tooltipHandler.hide();d||this.editor.graph.model.fireEvent(new mxEventObject(mxEvent.UNDO,"edit",e))}; -EditorUi.prototype.selectNextPage=function(a){var d=this.currentPage;null!=d&&null!=this.pages&&(d=mxUtils.indexOf(this.pages,d),a?this.selectPage(this.pages[mxUtils.mod(d+1,this.pages.length)]):a||this.selectPage(this.pages[mxUtils.mod(d-1,this.pages.length)]))};EditorUi.prototype.insertPage=function(a,d){if(this.editor.graph.isEnabled()){a=null!=a?a:this.createPage();d=null!=d?d:this.pages.length;var e=new ChangePage(this,a,a,d);this.editor.graph.model.execute(e)}return a}; -EditorUi.prototype.createPage=function(a){var d=new DiagramPage(this.fileNode.ownerDocument.createElement("diagram"));d.setName(null!=a?a:this.createPageName());return d};EditorUi.prototype.createPageName=function(){for(var a={},d=0;d<this.pages.length;d++){var e=this.pages[d].getName();null!=e&&0<e.length&&(a[e]=e)}d=this.pages.length;do e=mxResources.get("pageWithNumber",[++d]);while(null!=a[e]);return e}; -EditorUi.prototype.removePage=function(a){var d=this.editor.graph;if(d.isEnabled()){d.model.beginUpdate();try{var e=this.currentPage;if(e==a)if(1<this.pages.length){var b=mxUtils.indexOf(this.pages,a);b==this.pages.length-1?b--:b++;e=this.pages[b]}else e=this.insertPage(),d.model.execute(new RenamePage(this,e,mxResources.get("pageWithNumber",[1])));d.model.execute(new ChangePage(this,a,e))}finally{d.model.endUpdate()}}return a}; -EditorUi.prototype.duplicatePage=function(a,d){var e=this.editor.graph,b=null;e.isEnabled()&&(e.isEditing()&&e.stopEditing(),b=a.node.cloneNode(!1),b.removeAttribute("id"),b=new DiagramPage(b),b.root=e.cloneCells([e.model.root])[0],b.viewState=e.getViewState(),b.viewState.scale=1,b.viewState.scrollLeft=null,b.viewState.scrollTop=null,b.viewState.currentRoot=null,b.viewState.defaultParent=null,b.setName(d),b=this.insertPage(b,mxUtils.indexOf(this.pages,a)+1));return b}; -EditorUi.prototype.renamePage=function(a){if(this.editor.graph.isEnabled()){var d=new FilenameDialog(this,a.getName(),mxResources.get("rename"),mxUtils.bind(this,function(d){null!=d&&0<d.length&&this.editor.graph.model.execute(new RenamePage(this,a,d))}),mxResources.get("rename"));this.showDialog(d.container,300,80,!0,!0);d.init()}return a};EditorUi.prototype.movePage=function(a,d){this.editor.graph.model.execute(new MovePage(this,a,d))}; +null,this.pasteCounter=0,this.mathEnabled=!1,this.connectionArrowsEnabled=!0);this.preferPageSize=this.pageBreaksVisible=this.pageVisible};EditorUi.prototype.updatePageRoot=function(a){if(null==a.root){var b=this.editor.extractGraphModel(a.node);if(null!=b){a.graphModelNode=b;a.viewState=this.editor.graph.createViewState(b);var e=new mxCodec(b.ownerDocument);a.root=e.decode(b).root}else a.root=this.editor.graph.model.createRoot()}return a}; +EditorUi.prototype.selectPage=function(a,b){this.editor.graph.isEditing()&&this.editor.graph.stopEditing(!1);b=null!=b?b:!1;this.editor.graph.isMouseDown=!1;this.editor.graph.reset();var e=this.editor.graph.model.createUndoableEdit();e.ignoreEdit=!0;var d=new SelectPage(this,a);d.execute();e.add(d);e.notify();this.editor.graph.tooltipHandler.hide();b||this.editor.graph.model.fireEvent(new mxEventObject(mxEvent.UNDO,"edit",e))}; +EditorUi.prototype.selectNextPage=function(a){var b=this.currentPage;null!=b&&null!=this.pages&&(b=mxUtils.indexOf(this.pages,b),a?this.selectPage(this.pages[mxUtils.mod(b+1,this.pages.length)]):a||this.selectPage(this.pages[mxUtils.mod(b-1,this.pages.length)]))};EditorUi.prototype.insertPage=function(a,b){if(this.editor.graph.isEnabled()){a=null!=a?a:this.createPage();b=null!=b?b:this.pages.length;var e=new ChangePage(this,a,a,b);this.editor.graph.model.execute(e)}return a}; +EditorUi.prototype.createPage=function(a){var b=new DiagramPage(this.fileNode.ownerDocument.createElement("diagram"));b.setName(null!=a?a:this.createPageName());return b};EditorUi.prototype.createPageName=function(){for(var a={},b=0;b<this.pages.length;b++){var e=this.pages[b].getName();null!=e&&0<e.length&&(a[e]=e)}b=this.pages.length;do e=mxResources.get("pageWithNumber",[++b]);while(null!=a[e]);return e}; +EditorUi.prototype.removePage=function(a){var b=this.editor.graph;if(b.isEnabled()){b.model.beginUpdate();try{var e=this.currentPage;if(e==a)if(1<this.pages.length){var d=mxUtils.indexOf(this.pages,a);d==this.pages.length-1?d--:d++;e=this.pages[d]}else e=this.insertPage(),b.model.execute(new RenamePage(this,e,mxResources.get("pageWithNumber",[1])));b.model.execute(new ChangePage(this,a,e))}finally{b.model.endUpdate()}}return a}; +EditorUi.prototype.duplicatePage=function(a,b){var e=this.editor.graph,d=null;e.isEnabled()&&(e.isEditing()&&e.stopEditing(),d=a.node.cloneNode(!1),d.removeAttribute("id"),d=new DiagramPage(d),d.root=e.cloneCells([e.model.root])[0],d.viewState=e.getViewState(),d.viewState.scale=1,d.viewState.scrollLeft=null,d.viewState.scrollTop=null,d.viewState.currentRoot=null,d.viewState.defaultParent=null,d.setName(b),d=this.insertPage(d,mxUtils.indexOf(this.pages,a)+1));return d}; +EditorUi.prototype.renamePage=function(a){if(this.editor.graph.isEnabled()){var b=new FilenameDialog(this,a.getName(),mxResources.get("rename"),mxUtils.bind(this,function(b){null!=b&&0<b.length&&this.editor.graph.model.execute(new RenamePage(this,a,b))}),mxResources.get("rename"));this.showDialog(b.container,300,80,!0,!0);b.init()}return a};EditorUi.prototype.movePage=function(a,b){this.editor.graph.model.execute(new MovePage(this,a,b))}; EditorUi.prototype.createTabContainer=function(){var a=document.createElement("div");a.style.backgroundColor="dark"==uiTheme?"#2a2a2a":"#dcdcdc";a.style.position="absolute";a.style.whiteSpace="nowrap";a.style.overflow="hidden";a.style.height="0px";return a}; -EditorUi.prototype.updateTabContainer=function(){if(null!=this.tabContainer&&null!=this.pages){var a=this.editor.graph,d=document.createElement("div");d.style.position="relative";d.style.display=mxClient.IS_QUIRKS?"inline":"inline-block";d.style.verticalAlign="top";d.style.height=this.tabContainer.style.height;d.style.whiteSpace="nowrap";d.style.overflow="hidden";d.style.fontSize="12px";d.style.marginLeft="30px";for(var e=this.editor.isChromelessView()?29:59,b=Math.min(140,Math.max(20,(this.tabContainer.clientWidth- -e)/this.pages.length)+1),h=null,m=0;m<this.pages.length;m++)mxUtils.bind(this,function(b,e){this.pages[b]==this.currentPage?(e.className="geActivePage",e.style.backgroundColor="dark"==uiTheme?"#2a2a2a":"#eeeeee",e.style.fontWeight="bold",e.style.borderTopStyle="none"):e.className="geInactivePage";e.setAttribute("draggable","true");mxEvent.addListener(e,"dragstart",mxUtils.bind(this,function(c){a.isEnabled()?(mxClient.IS_FF&&c.dataTransfer.setData("Text","<diagram/>"),h=b):mxEvent.consume(c)}));mxEvent.addListener(e, -"dragend",mxUtils.bind(this,function(a){h=null;a.stopPropagation();a.preventDefault()}));mxEvent.addListener(e,"dragover",mxUtils.bind(this,function(a){null!=h&&(a.dataTransfer.dropEffect="move");a.stopPropagation();a.preventDefault()}));mxEvent.addListener(e,"drop",mxUtils.bind(this,function(a){null!=h&&b!=h&&this.movePage(h,b);a.stopPropagation();a.preventDefault()}));d.appendChild(e)})(m,this.createTabForPage(this.pages[m],b,this.pages[m]!=this.currentPage));this.tabContainer.innerHTML="";this.tabContainer.appendChild(d); -b=this.createPageMenuTab();this.tabContainer.appendChild(b);b=null;this.isPageInsertTabVisible()&&(b=this.createPageInsertTab(),this.tabContainer.appendChild(b));if(d.clientWidth>this.tabContainer.clientWidth-e){null!=b&&(b.style.position="absolute",b.style.right="0px",d.style.marginRight="30px");var p=this.createControlTab(4," ❮ ");p.style.position="absolute";p.style.right=this.editor.chromeless?"29px":"55px";p.style.fontSize="13pt";this.tabContainer.appendChild(p);var q=this.createControlTab(4, -" ❯");q.style.position="absolute";q.style.right=this.editor.chromeless?"0px":"29px";q.style.fontSize="13pt";this.tabContainer.appendChild(q);var u=Math.max(0,this.tabContainer.clientWidth-(this.editor.chromeless?86:116));d.style.width=u+"px";mxEvent.addListener(p,"click",mxUtils.bind(this,function(a){d.scrollLeft-=Math.max(20,u-20);mxUtils.setOpacity(p,0<d.scrollLeft?100:50);mxUtils.setOpacity(q,d.scrollLeft<d.scrollWidth-d.clientWidth?100:50);mxEvent.consume(a)}));mxUtils.setOpacity(p, -0<d.scrollLeft?100:50);mxUtils.setOpacity(q,d.scrollLeft<d.scrollWidth-d.clientWidth?100:50);mxEvent.addListener(q,"click",mxUtils.bind(this,function(a){d.scrollLeft+=Math.max(20,u-20);mxUtils.setOpacity(p,0<d.scrollLeft?100:50);mxUtils.setOpacity(q,d.scrollLeft<d.scrollWidth-d.clientWidth?100:50);mxEvent.consume(a)}))}}};EditorUi.prototype.isPageInsertTabVisible=function(){return 1==urlParams.embed||null!=this.getCurrentFile()&&this.getCurrentFile().isEditable()}; -EditorUi.prototype.createTab=function(a){var d=document.createElement("div");d.style.display=mxClient.IS_QUIRKS?"inline":"inline-block";d.style.whiteSpace="nowrap";d.style.boxSizing="border-box";d.style.position="relative";d.style.overflow="hidden";d.style.marginLeft="-1px";d.style.height=this.tabContainer.clientHeight+"px";d.style.padding="8px 4px 8px 4px";d.style.border="dark"==uiTheme?"1px solid #505759":"1px solid #c0c0c0";d.style.borderBottomStyle="solid";d.style.backgroundColor=this.tabContainer.style.backgroundColor; -d.style.cursor="move";d.style.color="gray";a&&(mxEvent.addListener(d,"mouseenter",mxUtils.bind(this,function(a){this.editor.graph.isMouseDown||(d.style.backgroundColor="dark"==uiTheme?"black":"#d3d3d3",mxEvent.consume(a))})),mxEvent.addListener(d,"mouseleave",mxUtils.bind(this,function(a){d.style.backgroundColor=this.tabContainer.style.backgroundColor;mxEvent.consume(a)})));return d}; -EditorUi.prototype.createControlTab=function(a,d){var e=this.createTab(!0);e.style.paddingTop=a+"px";e.style.cursor="pointer";e.style.width="30px";e.style.lineHeight="30px";e.innerHTML=d;null!=e.firstChild&&null!=e.firstChild.style&&mxUtils.setOpacity(e.firstChild,40);return e}; -EditorUi.prototype.createPageMenuTab=function(){var a=this.createControlTab(3,'<div class="geSprite geSprite-dots" style="display:inline-block;width:21px;height:21px;"></div>');a.setAttribute("title",mxResources.get("pages"));a.style.position="absolute";a.style.top="0px";a.style.left="1px";mxEvent.addListener(a,"click",mxUtils.bind(this,function(a){this.editor.graph.popupMenuHandler.hideMenu();var d=new mxPopupMenu(mxUtils.bind(this,function(a,b){for(var d=0;d<this.pages.length;d++)mxUtils.bind(this, +EditorUi.prototype.updateTabContainer=function(){if(null!=this.tabContainer&&null!=this.pages){var a=this.editor.graph,b=document.createElement("div");b.style.position="relative";b.style.display=mxClient.IS_QUIRKS?"inline":"inline-block";b.style.verticalAlign="top";b.style.height=this.tabContainer.style.height;b.style.whiteSpace="nowrap";b.style.overflow="hidden";b.style.fontSize="12px";b.style.marginLeft="30px";for(var e=this.editor.isChromelessView()?29:59,d=Math.min(140,Math.max(20,(this.tabContainer.clientWidth- +e)/this.pages.length)+1),k=null,l=0;l<this.pages.length;l++)mxUtils.bind(this,function(c,d){this.pages[c]==this.currentPage?(d.className="geActivePage",d.style.backgroundColor="dark"==uiTheme?"#2a2a2a":"#eeeeee",d.style.fontWeight="bold",d.style.borderTopStyle="none"):d.className="geInactivePage";d.setAttribute("draggable","true");mxEvent.addListener(d,"dragstart",mxUtils.bind(this,function(b){a.isEnabled()?(mxClient.IS_FF&&b.dataTransfer.setData("Text","<diagram/>"),k=c):mxEvent.consume(b)}));mxEvent.addListener(d, +"dragend",mxUtils.bind(this,function(a){k=null;a.stopPropagation();a.preventDefault()}));mxEvent.addListener(d,"dragover",mxUtils.bind(this,function(a){null!=k&&(a.dataTransfer.dropEffect="move");a.stopPropagation();a.preventDefault()}));mxEvent.addListener(d,"drop",mxUtils.bind(this,function(a){null!=k&&c!=k&&this.movePage(k,c);a.stopPropagation();a.preventDefault()}));b.appendChild(d)})(l,this.createTabForPage(this.pages[l],d,this.pages[l]!=this.currentPage));this.tabContainer.innerHTML="";this.tabContainer.appendChild(b); +d=this.createPageMenuTab();this.tabContainer.appendChild(d);d=null;this.isPageInsertTabVisible()&&(d=this.createPageInsertTab(),this.tabContainer.appendChild(d));if(b.clientWidth>this.tabContainer.clientWidth-e){null!=d&&(d.style.position="absolute",d.style.right="0px",b.style.marginRight="30px");var p=this.createControlTab(4," ❮ ");p.style.position="absolute";p.style.right=this.editor.chromeless?"29px":"55px";p.style.fontSize="13pt";this.tabContainer.appendChild(p);var q=this.createControlTab(4, +" ❯");q.style.position="absolute";q.style.right=this.editor.chromeless?"0px":"29px";q.style.fontSize="13pt";this.tabContainer.appendChild(q);var u=Math.max(0,this.tabContainer.clientWidth-(this.editor.chromeless?86:116));b.style.width=u+"px";mxEvent.addListener(p,"click",mxUtils.bind(this,function(a){b.scrollLeft-=Math.max(20,u-20);mxUtils.setOpacity(p,0<b.scrollLeft?100:50);mxUtils.setOpacity(q,b.scrollLeft<b.scrollWidth-b.clientWidth?100:50);mxEvent.consume(a)}));mxUtils.setOpacity(p, +0<b.scrollLeft?100:50);mxUtils.setOpacity(q,b.scrollLeft<b.scrollWidth-b.clientWidth?100:50);mxEvent.addListener(q,"click",mxUtils.bind(this,function(a){b.scrollLeft+=Math.max(20,u-20);mxUtils.setOpacity(p,0<b.scrollLeft?100:50);mxUtils.setOpacity(q,b.scrollLeft<b.scrollWidth-b.clientWidth?100:50);mxEvent.consume(a)}))}}};EditorUi.prototype.isPageInsertTabVisible=function(){return 1==urlParams.embed||null!=this.getCurrentFile()&&this.getCurrentFile().isEditable()}; +EditorUi.prototype.createTab=function(a){var b=document.createElement("div");b.style.display=mxClient.IS_QUIRKS?"inline":"inline-block";b.style.whiteSpace="nowrap";b.style.boxSizing="border-box";b.style.position="relative";b.style.overflow="hidden";b.style.marginLeft="-1px";b.style.height=this.tabContainer.clientHeight+"px";b.style.padding="8px 4px 8px 4px";b.style.border="dark"==uiTheme?"1px solid #505759":"1px solid #c0c0c0";b.style.borderBottomStyle="solid";b.style.backgroundColor=this.tabContainer.style.backgroundColor; +b.style.cursor="move";b.style.color="gray";a&&(mxEvent.addListener(b,"mouseenter",mxUtils.bind(this,function(a){this.editor.graph.isMouseDown||(b.style.backgroundColor="dark"==uiTheme?"black":"#d3d3d3",mxEvent.consume(a))})),mxEvent.addListener(b,"mouseleave",mxUtils.bind(this,function(a){b.style.backgroundColor=this.tabContainer.style.backgroundColor;mxEvent.consume(a)})));return b}; +EditorUi.prototype.createControlTab=function(a,b){var e=this.createTab(!0);e.style.paddingTop=a+"px";e.style.cursor="pointer";e.style.width="30px";e.style.lineHeight="30px";e.innerHTML=b;null!=e.firstChild&&null!=e.firstChild.style&&mxUtils.setOpacity(e.firstChild,40);return e}; +EditorUi.prototype.createPageMenuTab=function(){var a=this.createControlTab(3,'<div class="geSprite geSprite-dots" style="display:inline-block;width:21px;height:21px;"></div>');a.setAttribute("title",mxResources.get("pages"));a.style.position="absolute";a.style.top="0px";a.style.left="1px";mxEvent.addListener(a,"click",mxUtils.bind(this,function(a){this.editor.graph.popupMenuHandler.hideMenu();var b=new mxPopupMenu(mxUtils.bind(this,function(a,b){for(var d=0;d<this.pages.length;d++)mxUtils.bind(this, function(c){var d=a.addItem(this.pages[c].getName(),null,mxUtils.bind(this,function(){this.selectPage(this.pages[c])}),b);this.pages[c]==this.currentPage&&a.addCheckmark(d,Editor.checkmarkImage)})(d);if(this.editor.graph.isEnabled()){a.addSeparator(b);a.addItem(mxResources.get("insertPage"),null,mxUtils.bind(this,function(){this.insertPage()}),b);var e=this.currentPage;null!=e&&(a.addSeparator(b),a.addItem(mxResources.get("delete"),null,mxUtils.bind(this,function(){this.removePage(e)}),b),a.addItem(mxResources.get("rename"), -null,mxUtils.bind(this,function(){this.renamePage(e,e.getName())}),b),a.addSeparator(b),a.addItem(mxResources.get("duplicate"),null,mxUtils.bind(this,function(){this.duplicatePage(e,mxResources.get("copyOf",[e.getName()]))}),b))}}));d.div.className+=" geMenubarMenu";d.smartSeparators=!0;d.showDisabled=!0;d.autoExpand=!0;d.hideMenu=mxUtils.bind(this,function(){mxPopupMenu.prototype.hideMenu.apply(d,arguments);d.destroy()});var b=mxEvent.getClientX(a),h=mxEvent.getClientY(a);d.popup(b,h,null,a);this.setCurrentMenu(d); +null,mxUtils.bind(this,function(){this.renamePage(e,e.getName())}),b),a.addSeparator(b),a.addItem(mxResources.get("duplicate"),null,mxUtils.bind(this,function(){this.duplicatePage(e,mxResources.get("copyOf",[e.getName()]))}),b))}}));b.div.className+=" geMenubarMenu";b.smartSeparators=!0;b.showDisabled=!0;b.autoExpand=!0;b.hideMenu=mxUtils.bind(this,function(){mxPopupMenu.prototype.hideMenu.apply(b,arguments);b.destroy()});var d=mxEvent.getClientX(a),k=mxEvent.getClientY(a);b.popup(d,k,null,a);this.setCurrentMenu(b); mxEvent.consume(a)}));return a};EditorUi.prototype.createPageInsertTab=function(){var a=this.createControlTab(4,'<div class="geSprite geSprite-plus" style="display:inline-block;width:21px;height:21px;"></div>');a.setAttribute("title",mxResources.get("insertPage"));mxEvent.addListener(a,"click",mxUtils.bind(this,function(a){this.insertPage();mxEvent.consume(a)}));return a}; -EditorUi.prototype.createTabForPage=function(a,d,e){e=this.createTab(e);var b=a.getName();e.setAttribute("title",b);mxUtils.write(e,b);e.style.maxWidth=d+"px";e.style.width=d+"px";this.addTabListeners(a,e);42<d&&(e.style.textOverflow="ellipsis");return e}; -EditorUi.prototype.addTabListeners=function(a,d){mxEvent.disableContextMenu(d);var e=this.editor.graph;mxEvent.addListener(d,"dblclick",mxUtils.bind(this,function(b){this.renamePage(a);mxEvent.consume(b)}));var b=!1,h=!1;mxEvent.addGestureListeners(d,mxUtils.bind(this,function(d){b=null!=this.currentMenu;h=a==this.currentPage;e.isMouseDown||h||this.selectPage(a)}),null,mxUtils.bind(this,function(m){if(e.isEnabled()&&!e.isMouseDown&&(mxEvent.isTouchEvent(m)&&h||mxEvent.isPopupTrigger(m))){e.popupMenuHandler.hideMenu(); -this.hideCurrentMenu();if(!mxEvent.isTouchEvent(m)||!b){var p=new mxPopupMenu(this.createPageMenu(a));p.div.className+=" geMenubarMenu";p.smartSeparators=!0;p.showDisabled=!0;p.autoExpand=!0;p.hideMenu=mxUtils.bind(this,function(){mxPopupMenu.prototype.hideMenu.apply(p,arguments);this.resetCurrentMenu();p.destroy()});var q=mxEvent.getClientX(m),u=mxEvent.getClientY(m);p.popup(q,u,null,m);this.setCurrentMenu(p,d)}mxEvent.consume(m)}}))}; -EditorUi.prototype.createPageMenu=function(a,d){return mxUtils.bind(this,function(e,b){e.addItem(mxResources.get("insert"),null,mxUtils.bind(this,function(){this.insertPage(null,mxUtils.indexOf(this.pages,a)+1)}),b);e.addItem(mxResources.get("delete"),null,mxUtils.bind(this,function(){this.removePage(a)}),b);e.addItem(mxResources.get("rename"),null,mxUtils.bind(this,function(){this.renamePage(a,d)}),b);e.addSeparator(b);e.addItem(mxResources.get("duplicate"),null,mxUtils.bind(this,function(){this.duplicatePage(a, -mxResources.get("copyOf",[a.getName()]))}),b)})};(function(){var a=EditorUi.prototype.refresh;EditorUi.prototype.refresh=function(d){a.apply(this,arguments);this.updateTabContainer()}})();(function(){mxCodecRegistry.getCodec(ChangePageSetup).exclude.push("page")})();(function(){var a=new mxObjectCodec(new MovePage,["ui"]);a.beforeDecode=function(a,e,b){b.ui=a.ui;return e};a.afterDecode=function(a,e,b){a=b.oldIndex;b.oldIndex=b.newIndex;b.newIndex=a;return b};mxCodecRegistry.register(a)})(); -(function(){var a=new mxObjectCodec(new RenamePage,["ui","page"]);a.beforeDecode=function(a,e,b){b.ui=a.ui;return e};a.afterDecode=function(a,e,b){a=b.previous;b.previous=b.name;b.name=a;return b};mxCodecRegistry.register(a)})(); -(function(){var a=new mxObjectCodec(new ChangePage,"ui relatedPage index neverShown page previousPage".split(" ")),d="defaultParent currentRoot scrollLeft scrollTop scale translate lastPasteXml pasteCounter".split(" ");a.afterEncode=function(a,b,h){h.setAttribute("relatedPage",b.relatedPage.getId());null==b.index&&(h.setAttribute("name",b.relatedPage.getName()),null!=b.relatedPage.viewState&&h.setAttribute("viewState",JSON.stringify(b.relatedPage.viewState,function(a,b){return 0>mxUtils.indexOf(d, -a)?b:void 0})),null!=b.relatedPage.root&&a.encodeCell(b.relatedPage.root,h));return h};a.beforeDecode=function(a,b,d){d.ui=a.ui;d.relatedPage=d.ui.getPageById(b.getAttribute("relatedPage"));if(null==d.relatedPage){var e=b.ownerDocument.createElement("diagram");e.setAttribute("id",b.getAttribute("relatedPage"));e.setAttribute("name",b.getAttribute("name"));d.relatedPage=new DiagramPage(e);e=b.getAttribute("viewState");null!=e&&(d.relatedPage.viewState=JSON.parse(e),b.removeAttribute("viewState")); -b=b.cloneNode(!0);e=b.firstChild;if(null!=e)for(d.relatedPage.root=a.decodeCell(e,!1),d=e.nextSibling,e.parentNode.removeChild(e),e=d;null!=e;){d=e.nextSibling;if(e.nodeType==mxConstants.NODETYPE_ELEMENT){var h=e.getAttribute("id");null==a.lookup(h)&&a.decodeCell(e)}e.parentNode.removeChild(e);e=d}}return b};a.afterDecode=function(a,b,d){d.index=d.previousIndex;return d};mxCodecRegistry.register(a)})();(function(){var a=mxClient.IS_SVG?"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAMAAABhEH5lAAAASFBMVEUAAAAAAAB/f3/9/f319fUfHx/7+/s+Pj69vb0AAAAAAAAAAAAAAAAAAAAAAAAAAAB2dnZ1dXUAAAAAAAAVFRX///8ZGRkGBgbOcI1hAAAAE3RSTlMA+vr9/f38+fb1893Bo00u+/tFvPJUBQAAAIRJREFUGNM0jEcSxCAQAxlydGqD///TNWxZBx1aXVIrWysplbapL3sFxgDq/idXBnHgBPK1nIxwc55vCXl6dRFtrV6svs/A/UjsPcpzA5tqyByD92HqQlMFh45BG6ND1DiKSoPDdm96N77bg5F+wyaEqRGb8ZiOwHQqdg9hehszcLAEIQB2lQ4p/sEpnAAAAABJRU5ErkJggg==":IMAGE_PATH+"/move.png";EditorUi.prototype.altShiftActions[68]= -"selectDescendants";var d=Graph.prototype.foldCells;Graph.prototype.foldCells=function(a,b,e,q,u){b=null!=b?b:!1;null==e&&(e=this.getFoldableCells(this.getSelectionCells(),a));this.stopEditing();this.model.beginUpdate();try{for(var c=e.slice(),f=[],g=0;g<e.length;g++){var h=this.view.getState(e[g]),m=null!=h?h.style:this.getCellStyle(e[g]);"1"==mxUtils.getValue(m,"treeFolding","0")&&(this.traverse(e[g],!0,mxUtils.bind(this,function(a,b){null!=b&&f.push(b);a!=e[g]&&f.push(a);return a==e[g]||!this.model.isCollapsed(a)})), -this.model.setCollapsed(e[g],a))}for(g=0;g<f.length;g++)this.model.setVisible(f[g],!a);e=c;e=d.apply(this,arguments)}finally{this.model.endUpdate()}return e};var e=EditorUi.prototype.init;EditorUi.prototype.init=function(){e.apply(this,arguments);this.editor.isChromelessView()&&!this.editor.editable||this.addTrees()};EditorUi.prototype.addTrees=function(){function b(a){return n.isVertex(a)&&d(a)}function d(a){var b=!1;null!=a&&(a=n.getParent(a),b=l.view.getState(a),l.view.getState(a),b="tree"==(null!= -b?b.style:l.getCellStyle(a)).containerType);return b}function e(a){var b=!1;null!=a&&(a=n.getParent(a),b=l.view.getState(a),l.view.getState(a),b=null!=(null!=b?b.style:l.getCellStyle(a)).childLayout);return b}function q(a){a=l.view.getState(a);if(null!=a){var b=l.getIncomingEdges(a.cell);if(0<b.length&&(b=l.view.getState(b[0]),null!=b&&(b=b.absolutePoints,null!=b&&0<b.length&&(b=b[b.length-1],null!=b)))){if(b.y==a.y&&Math.abs(b.x-a.getCenterX())<a.width/2)return mxConstants.DIRECTION_SOUTH;if(b.y== -a.y+a.height&&Math.abs(b.x-a.getCenterX())<a.width/2)return mxConstants.DIRECTION_NORTH;if(b.x>a.getCenterX())return mxConstants.DIRECTION_WEST}}return mxConstants.DIRECTION_EAST}function u(a,b){b=null!=b?b:!0;l.model.beginUpdate();try{var d=l.model.getParent(a),c=l.getIncomingEdges(a),e=l.cloneCells([c[0],a]);l.model.setTerminal(e[0],l.model.getTerminal(c[0],!0),!0);var f=q(a),g=d.geometry;f==mxConstants.DIRECTION_SOUTH||f==mxConstants.DIRECTION_NORTH?e[1].geometry.x+=b?a.geometry.width+10:-e[1].geometry.width- -10:e[1].geometry.y+=b?a.geometry.height+10:-e[1].geometry.height-10;l.view.currentRoot!=d&&(e[1].geometry.x-=g.x,e[1].geometry.y-=g.y);var h=l.view.getState(a),k=l.view.scale;if(null!=h){var n=mxRectangle.fromRectangle(h);f==mxConstants.DIRECTION_SOUTH||f==mxConstants.DIRECTION_NORTH?n.x+=(b?a.geometry.width+10:-e[1].geometry.width-10)*k:n.y+=(b?a.geometry.height+10:-e[1].geometry.height-10)*k;var m=l.getOutgoingEdges(l.model.getTerminal(c[0],!0));if(null!=m){for(var p=f==mxConstants.DIRECTION_SOUTH|| -f==mxConstants.DIRECTION_NORTH,t=g=c=0;t<m.length;t++){var r=l.model.getTerminal(m[t],!1);if(f==q(r)){var x=l.view.getState(r);r!=a&&null!=x&&(p&&b!=x.getCenterX()<h.getCenterX()||!p&&b!=x.getCenterY()<h.getCenterY())&&mxUtils.intersects(n,x)&&(c=10+Math.max(c,(Math.min(n.x+n.width,x.x+x.width)-Math.max(n.x,x.x))/k),g=10+Math.max(g,(Math.min(n.y+n.height,x.y+x.height)-Math.max(n.y,x.y))/k))}}p?g=0:c=0;for(t=0;t<m.length;t++)if(r=l.model.getTerminal(m[t],!1),f==q(r)&&(x=l.view.getState(r),r!=a&&null!= -x&&(p&&b!=x.getCenterX()<h.getCenterX()||!p&&b!=x.getCenterY()<h.getCenterY()))){var u=[];l.traverse(x.cell,!0,function(a,b){null!=b&&u.push(b);u.push(a);return!0});l.moveCells(u,(b?1:-1)*c,(b?1:-1)*g)}}}return l.addCells(e,d)}finally{l.model.endUpdate()}}function c(a){l.model.beginUpdate();try{var b=q(a),c=l.getIncomingEdges(a),d=l.cloneCells([c[0],a]);l.model.setTerminal(c[0],d[1],!1);l.model.setTerminal(d[0],d[1],!0);l.model.setTerminal(d[0],a,!1);var e=l.model.getParent(a),f=e.geometry,g=[];l.view.currentRoot!= -e&&(d[1].geometry.x-=f.x,d[1].geometry.y-=f.y);l.traverse(a,!0,function(a,b){null!=b&&g.push(b);g.push(a);return!0});var h=a.geometry.width+40,k=a.geometry.height+40;b==mxConstants.DIRECTION_SOUTH?h=0:b==mxConstants.DIRECTION_NORTH?(h=0,k=-40):b==mxConstants.DIRECTION_WEST?(h=-40,k=0):b==mxConstants.DIRECTION_EAST&&(k=0);l.moveCells(g,h,k);return l.addCells(d,e)}finally{l.model.endUpdate()}}function f(a){l.model.beginUpdate();try{var b=l.model.getParent(a),d=l.getIncomingEdges(a),c=l.cloneCells([d[0], -a]);l.model.setTerminal(c[0],a,!0);var d=l.getOutgoingEdges(a),e=b.geometry,f=[];l.view.currentRoot==b&&(e=new mxRectangle);for(var g=0;g<d.length;g++){var h=l.model.getTerminal(d[g],!1);null!=h&&f.push(h)}var k=l.view.getBounds(f),n=q(a),m=l.view.translate,p=l.view.scale;n==mxConstants.DIRECTION_SOUTH?(c[1].geometry.x=null==k?a.geometry.x+(a.geometry.width-c[1].geometry.width)/2:(k.x+k.width)/p-m.x-e.x+10,c[1].geometry.y+=a.geometry.height-e.y+40):n==mxConstants.DIRECTION_NORTH?(c[1].geometry.x= -null==k?a.geometry.x+(a.geometry.width-c[1].geometry.width)/2:(k.x+k.width)/p-m.x+-e.x+10,c[1].geometry.y-=c[1].geometry.height-e.y+40):(c[1].geometry.x=n==mxConstants.DIRECTION_WEST?c[1].geometry.x-(c[1].geometry.width-e.x+40):c[1].geometry.x+(a.geometry.width-e.x+40),c[1].geometry.y=null==k?a.geometry.y+(a.geometry.height-c[1].geometry.height)/2:(k.y+k.height)/p-m.y+-e.y+10);return l.addCells(c,b)}finally{l.model.endUpdate()}}function g(a,b,c){a=l.getOutgoingEdges(a);c=l.view.getState(c);var d= -[];if(null!=c&&null!=a){for(var e=0;e<a.length;e++){var f=l.view.getState(l.model.getTerminal(a[e],!1));null!=f&&(!b&&Math.min(f.x+f.width,c.x+c.width)>=Math.max(f.x,c.x)||b&&Math.min(f.y+f.height,c.y+c.height)>=Math.max(f.y,c.y))&&d.push(f)}d.sort(function(a,c){return b?a.x+a.width-c.x-c.width:a.y+a.height-c.y-c.height})}return d}function k(a,b){var c=q(a),d=b==mxConstants.DIRECTION_EAST||b==mxConstants.DIRECTION_WEST;(c==mxConstants.DIRECTION_EAST||c==mxConstants.DIRECTION_WEST)==d&&c!=b?r.actions.get("selectParent").funct(): -c==b?(d=l.getOutgoingEdges(a),null!=d&&0<d.length&&l.setSelectionCell(l.model.getTerminal(d[0],!1))):(c=l.getIncomingEdges(a),null!=c&&0<c.length&&(d=g(l.model.getTerminal(c[0],!0),d,a),c=l.view.getState(a),null!=c&&(c=mxUtils.indexOf(d,c),0<=c&&(c+=b==mxConstants.DIRECTION_NORTH||b==mxConstants.DIRECTION_WEST?-1:1,0<=c&&c<=d.length-1&&l.setSelectionCell(d[c].cell)))))}var r=this,l=r.editor.graph,n=l.getModel();mxResources.parse("selectChildren=Select Children");mxResources.parse("selectSiblings=Select Siblings"); -mxResources.parse("selectDescendants=Select Descendants");mxResources.parse("selectParent=Select Parent");var w=r.menus.createPopupMenu;r.menus.createPopupMenu=function(a,c,d){w.apply(this,arguments);if(1==l.getSelectionCount()){c=l.getSelectionCell();var e=l.getOutgoingEdges(c);a.addSeparator();null!=e&&0<e.length&&(b(l.getSelectionCell())&&this.addMenuItems(a,["selectChildren"],null,d),this.addMenuItems(a,["selectDescendants"],null,d));b(l.getSelectionCell())&&(a.addSeparator(),0<l.getIncomingEdges(c).length&& -this.addMenuItems(a,["selectSiblings","selectParent"],null,d))}};r.actions.addAction("selectChildren",function(){if(l.isEnabled()&&1==l.getSelectionCount()){var a=l.getSelectionCell(),a=l.getOutgoingEdges(a);if(null!=a){for(var b=[],c=0;c<a.length;c++)b.push(l.model.getTerminal(a[c],!1));l.setSelectionCells(b)}}},null,null,"Alt+Shift+X");r.actions.addAction("selectSiblings",function(){if(l.isEnabled()&&1==l.getSelectionCount()){var a=l.getSelectionCell(),a=l.getIncomingEdges(a);if(null!=a&&0<a.length&& -(a=l.getOutgoingEdges(l.model.getTerminal(a[0],!0)),null!=a)){for(var b=[],c=0;c<a.length;c++)b.push(l.model.getTerminal(a[c],!1));l.setSelectionCells(b)}}},null,null,"Alt+Shift+S");r.actions.addAction("selectParent",function(){if(l.isEnabled()&&1==l.getSelectionCount()){var a=l.getSelectionCell(),a=l.getIncomingEdges(a);null!=a&&0<a.length&&l.setSelectionCell(l.model.getTerminal(a[0],!0))}},null,null,"Alt+Shift+P");r.actions.addAction("selectDescendants",function(){if(l.isEnabled()&&1==l.getSelectionCount()){var a= -l.getSelectionCell(),b=[];l.traverse(a,!0,function(a,c){null!=c&&b.push(c);b.push(a);return!0});l.setSelectionCells(b)}},null,null,"Alt+Shift+D");var v=l.removeCells;l.removeCells=function(a,c){c=null!=c?c:!0;null==a&&(a=this.getDeletableCells(this.getSelectionCells()));c&&(a=this.getDeletableCells(this.addAllEdges(a)));for(var e=[],f=0;f<a.length;f++){var g=a[f];n.isEdge(g)&&d(g)&&(e.push(g),g=n.getTerminal(g,!1));b(g)?(l.traverse(g,!0,function(a,b){null!=b&&e.push(b);e.push(a);return!0}),g=l.getIncomingEdges(a[f]), -a=a.concat(g)):e.push(a[f])}a=e;return v.apply(this,arguments)};r.hoverIcons.getStateAt=function(a,c,d){return b(a.cell)?null:this.graph.view.getState(this.graph.getCellAt(c,d))};var B=l.duplicateCells;l.duplicateCells=function(a,c){a=null!=a?a:this.getSelectionCells();for(var d=a.slice(0),e=0;e<d.length;e++){var f=l.view.getState(d[e]);if(null!=f&&b(f.cell))for(var g=l.getIncomingEdges(f.cell),f=0;f<g.length;f++)mxUtils.remove(g[f],a)}this.model.beginUpdate();try{var h=B.call(this,a,c);if(h.length== -a.length)for(e=0;e<a.length;e++)if(b(a[e])){var k=l.getIncomingEdges(h[e]),g=l.getIncomingEdges(a[e]);if(0==k.length&&0<g.length){var n=this.cloneCells([g[0]])[0];this.addEdge(n,l.getDefaultParent(),this.model.getTerminal(g[0],!0),h[e])}}}finally{this.model.endUpdate()}return h};var y=l.moveCells;l.moveCells=function(a,c,d,e,f,g,h){var k=null;this.model.beginUpdate();try{var n=f,m=this.view.getState(f),p=null!=m?m.style:this.getCellStyle(f);if(null!=a&&b(f)&&"1"==mxUtils.getValue(p,"treeFolding", -"0")){for(var q=0;q<a.length;q++)if(b(a[q])||l.model.isEdge(a[q])&&null==l.model.getTerminal(a[q],!0)){f=l.model.getParent(a[q]);break}if(null!=n&&f!=n&&null!=this.view.getState(a[0])){var t=l.getIncomingEdges(a[0]);if(0<t.length){var r=l.view.getState(l.model.getTerminal(t[0],!0));if(null!=r){var u=l.view.getState(n);null!=u&&(c=(u.getCenterX()-r.getCenterX())/l.view.scale,d=(u.getCenterY()-r.getCenterY())/l.view.scale)}}}}k=y.apply(this,arguments);if(null!=k&&null!=a&&k.length==a.length)for(q=0;q< -k.length;q++)if(this.model.isEdge(k[q]))b(n)&&0>mxUtils.indexOf(k,this.model.getTerminal(k[q],!0))&&this.model.setTerminal(k[q],n,!0);else if(b(a[q])&&(t=l.getIncomingEdges(a[q]),0<t.length))if(!e)b(n)&&0>mxUtils.indexOf(a,this.model.getTerminal(t[0],!0))&&this.model.setTerminal(t[0],n,!0);else if(0==l.getIncomingEdges(k[q]).length){m=n;if(null==m||m==l.model.getParent(a[q]))m=l.model.getTerminal(t[0],!0);e=this.cloneCells([t[0]])[0];this.addEdge(e,l.getDefaultParent(),m,k[q])}}finally{this.model.endUpdate()}return k}; -if(null!=r.sidebar){var t=r.sidebar.dropAndConnect;r.sidebar.dropAndConnect=function(a,c,d,e){var f=l.model,g=null;f.beginUpdate();try{if(g=t.apply(this,arguments),b(a))for(var h=0;h<g.length;h++)if(f.isEdge(g[h])&&null==f.getTerminal(g[h],!0)){f.setTerminal(g[h],a,!0);var k=l.getCellGeometry(g[h]);k.points=null;null!=k.getTerminalPoint(!0)&&k.setTerminalPoint(null,!0)}}finally{f.endUpdate()}return g}}var z={88:r.actions.get("selectChildren"),84:r.actions.get("selectSubtree"),80:r.actions.get("selectParent"), -83:r.actions.get("selectSiblings")},H=r.onKeyDown;r.onKeyDown=function(a){try{if(l.isEnabled()&&!l.isEditing()&&b(l.getSelectionCell())&&1==l.getSelectionCount()){var d=null;0<l.getIncomingEdges(l.getSelectionCell()).length&&(9==a.which?d=mxEvent.isShiftDown(a)?c(l.getSelectionCell()):f(l.getSelectionCell()):13==a.which&&(d=u(l.getSelectionCell(),!mxEvent.isShiftDown(a))));if(null!=d&&0<d.length)1==d.length&&l.model.isEdge(d[0])?l.setSelectionCell(l.model.getTerminal(d[0],!1)):l.setSelectionCell(d[d.length- -1]),null!=r.hoverIcons&&r.hoverIcons.update(l.view.getState(l.getSelectionCell())),l.startEditingAtCell(l.getSelectionCell()),mxEvent.consume(a);else if(mxEvent.isAltDown(a)&&mxEvent.isShiftDown(a)){var e=z[a.keyCode];null!=e&&(e.funct(a),mxEvent.consume(a))}else 37==a.keyCode?(k(l.getSelectionCell(),mxConstants.DIRECTION_WEST),mxEvent.consume(a)):38==a.keyCode?(k(l.getSelectionCell(),mxConstants.DIRECTION_NORTH),mxEvent.consume(a)):39==a.keyCode?(k(l.getSelectionCell(),mxConstants.DIRECTION_EAST), -mxEvent.consume(a)):40==a.keyCode&&(k(l.getSelectionCell(),mxConstants.DIRECTION_SOUTH),mxEvent.consume(a))}}catch(R){console.log("error",R)}mxEvent.isConsumed(a)||H.apply(this,arguments)};var G=l.connectVertex;l.connectVertex=function(a,d,e,g,h,k){var n=l.getIncomingEdges(a);return b(a)&&0<n.length?(e=q(a),g=e==mxConstants.DIRECTION_EAST||e==mxConstants.DIRECTION_WEST,h=d==mxConstants.DIRECTION_EAST||d==mxConstants.DIRECTION_WEST,e==d?f(a):g==h?c(a):u(a,d!=mxConstants.DIRECTION_NORTH&&d!=mxConstants.DIRECTION_WEST)): -G.call(this,a,d,e,g,h,k)};l.getSubtree=function(a){var c=[a];b(a)&&!e(a)&&l.traverse(a,!0,function(a,b){null!=b&&0>mxUtils.indexOf(c,b)&&c.push(b);0>mxUtils.indexOf(c,a)&&c.push(a);return!0});return c};var A=mxVertexHandler.prototype.init;mxVertexHandler.prototype.init=function(){A.apply(this,arguments);b(this.state.cell)&&0<this.graph.getOutgoingEdges(this.state.cell).length&&(this.moveHandle=mxUtils.createImage(a),this.moveHandle.setAttribute("title","Move Subtree"),this.moveHandle.style.position= +EditorUi.prototype.createTabForPage=function(a,b,e){e=this.createTab(e);var d=a.getName();e.setAttribute("title",d);mxUtils.write(e,d);e.style.maxWidth=b+"px";e.style.width=b+"px";this.addTabListeners(a,e);42<b&&(e.style.textOverflow="ellipsis");return e}; +EditorUi.prototype.addTabListeners=function(a,b){mxEvent.disableContextMenu(b);var e=this.editor.graph;mxEvent.addListener(b,"dblclick",mxUtils.bind(this,function(b){this.renamePage(a);mxEvent.consume(b)}));var d=!1,k=!1;mxEvent.addGestureListeners(b,mxUtils.bind(this,function(b){d=null!=this.currentMenu;k=a==this.currentPage;e.isMouseDown||k||this.selectPage(a)}),null,mxUtils.bind(this,function(l){if(e.isEnabled()&&!e.isMouseDown&&(mxEvent.isTouchEvent(l)&&k||mxEvent.isPopupTrigger(l))){e.popupMenuHandler.hideMenu(); +this.hideCurrentMenu();if(!mxEvent.isTouchEvent(l)||!d){var p=new mxPopupMenu(this.createPageMenu(a));p.div.className+=" geMenubarMenu";p.smartSeparators=!0;p.showDisabled=!0;p.autoExpand=!0;p.hideMenu=mxUtils.bind(this,function(){mxPopupMenu.prototype.hideMenu.apply(p,arguments);this.resetCurrentMenu();p.destroy()});var q=mxEvent.getClientX(l),u=mxEvent.getClientY(l);p.popup(q,u,null,l);this.setCurrentMenu(p,b)}mxEvent.consume(l)}}))}; +EditorUi.prototype.createPageMenu=function(a,b){return mxUtils.bind(this,function(e,d){e.addItem(mxResources.get("insert"),null,mxUtils.bind(this,function(){this.insertPage(null,mxUtils.indexOf(this.pages,a)+1)}),d);e.addItem(mxResources.get("delete"),null,mxUtils.bind(this,function(){this.removePage(a)}),d);e.addItem(mxResources.get("rename"),null,mxUtils.bind(this,function(){this.renamePage(a,b)}),d);e.addSeparator(d);e.addItem(mxResources.get("duplicate"),null,mxUtils.bind(this,function(){this.duplicatePage(a, +mxResources.get("copyOf",[a.getName()]))}),d)})};(function(){var a=EditorUi.prototype.refresh;EditorUi.prototype.refresh=function(b){a.apply(this,arguments);this.updateTabContainer()}})();(function(){mxCodecRegistry.getCodec(ChangePageSetup).exclude.push("page")})();(function(){var a=new mxObjectCodec(new MovePage,["ui"]);a.beforeDecode=function(a,e,d){d.ui=a.ui;return e};a.afterDecode=function(a,e,d){a=d.oldIndex;d.oldIndex=d.newIndex;d.newIndex=a;return d};mxCodecRegistry.register(a)})(); +(function(){var a=new mxObjectCodec(new RenamePage,["ui","page"]);a.beforeDecode=function(a,e,d){d.ui=a.ui;return e};a.afterDecode=function(a,e,d){a=d.previous;d.previous=d.name;d.name=a;return d};mxCodecRegistry.register(a)})(); +(function(){var a=new mxObjectCodec(new ChangePage,"ui relatedPage index neverShown page previousPage".split(" ")),b="defaultParent currentRoot scrollLeft scrollTop scale translate lastPasteXml pasteCounter".split(" ");a.afterEncode=function(a,d,k){k.setAttribute("relatedPage",d.relatedPage.getId());null==d.index&&(k.setAttribute("name",d.relatedPage.getName()),null!=d.relatedPage.viewState&&k.setAttribute("viewState",JSON.stringify(d.relatedPage.viewState,function(a,d){return 0>mxUtils.indexOf(b, +a)?d:void 0})),null!=d.relatedPage.root&&a.encodeCell(d.relatedPage.root,k));return k};a.beforeDecode=function(a,b,k){k.ui=a.ui;k.relatedPage=k.ui.getPageById(b.getAttribute("relatedPage"));if(null==k.relatedPage){var d=b.ownerDocument.createElement("diagram");d.setAttribute("id",b.getAttribute("relatedPage"));d.setAttribute("name",b.getAttribute("name"));k.relatedPage=new DiagramPage(d);d=b.getAttribute("viewState");null!=d&&(k.relatedPage.viewState=JSON.parse(d),b.removeAttribute("viewState")); +b=b.cloneNode(!0);d=b.firstChild;if(null!=d)for(k.relatedPage.root=a.decodeCell(d,!1),k=d.nextSibling,d.parentNode.removeChild(d),d=k;null!=d;){k=d.nextSibling;if(d.nodeType==mxConstants.NODETYPE_ELEMENT){var e=d.getAttribute("id");null==a.lookup(e)&&a.decodeCell(d)}d.parentNode.removeChild(d);d=k}}return b};a.afterDecode=function(a,b,k){k.index=k.previousIndex;return k};mxCodecRegistry.register(a)})();(function(){var a=mxClient.IS_SVG?"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAMAAABhEH5lAAAASFBMVEUAAAAAAAB/f3/9/f319fUfHx/7+/s+Pj69vb0AAAAAAAAAAAAAAAAAAAAAAAAAAAB2dnZ1dXUAAAAAAAAVFRX///8ZGRkGBgbOcI1hAAAAE3RSTlMA+vr9/f38+fb1893Bo00u+/tFvPJUBQAAAIRJREFUGNM0jEcSxCAQAxlydGqD///TNWxZBx1aXVIrWysplbapL3sFxgDq/idXBnHgBPK1nIxwc55vCXl6dRFtrV6svs/A/UjsPcpzA5tqyByD92HqQlMFh45BG6ND1DiKSoPDdm96N77bg5F+wyaEqRGb8ZiOwHQqdg9hehszcLAEIQB2lQ4p/sEpnAAAAABJRU5ErkJggg==":IMAGE_PATH+"/move.png";EditorUi.prototype.altShiftActions[68]= +"selectDescendants";var b=Graph.prototype.foldCells;Graph.prototype.foldCells=function(a,d,e,q,u){d=null!=d?d:!1;null==e&&(e=this.getFoldableCells(this.getSelectionCells(),a));this.stopEditing();this.model.beginUpdate();try{for(var c=e.slice(),f=[],g=0;g<e.length;g++){var k=this.view.getState(e[g]),l=null!=k?k.style:this.getCellStyle(e[g]);"1"==mxUtils.getValue(l,"treeFolding","0")&&(this.traverse(e[g],!0,mxUtils.bind(this,function(a,b){null!=b&&f.push(b);a!=e[g]&&f.push(a);return a==e[g]||!this.model.isCollapsed(a)})), +this.model.setCollapsed(e[g],a))}for(g=0;g<f.length;g++)this.model.setVisible(f[g],!a);e=c;e=b.apply(this,arguments)}finally{this.model.endUpdate()}return e};var e=EditorUi.prototype.init;EditorUi.prototype.init=function(){e.apply(this,arguments);this.editor.isChromelessView()&&!this.editor.editable||this.addTrees()};EditorUi.prototype.addTrees=function(){function b(a){return m.isVertex(a)&&d(a)}function d(a){var b=!1;null!=a&&(a=m.getParent(a),b=h.view.getState(a),h.view.getState(a),b="tree"==(null!= +b?b.style:h.getCellStyle(a)).containerType);return b}function e(a){var b=!1;null!=a&&(a=m.getParent(a),b=h.view.getState(a),h.view.getState(a),b=null!=(null!=b?b.style:h.getCellStyle(a)).childLayout);return b}function q(a){a=h.view.getState(a);if(null!=a){var b=h.getIncomingEdges(a.cell);if(0<b.length&&(b=h.view.getState(b[0]),null!=b&&(b=b.absolutePoints,null!=b&&0<b.length&&(b=b[b.length-1],null!=b)))){if(b.y==a.y&&Math.abs(b.x-a.getCenterX())<a.width/2)return mxConstants.DIRECTION_SOUTH;if(b.y== +a.y+a.height&&Math.abs(b.x-a.getCenterX())<a.width/2)return mxConstants.DIRECTION_NORTH;if(b.x>a.getCenterX())return mxConstants.DIRECTION_WEST}}return mxConstants.DIRECTION_EAST}function u(a,b){b=null!=b?b:!0;h.model.beginUpdate();try{var c=h.model.getParent(a),d=h.getIncomingEdges(a),e=h.cloneCells([d[0],a]);h.model.setTerminal(e[0],h.model.getTerminal(d[0],!0),!0);var f=q(a),g=c.geometry;f==mxConstants.DIRECTION_SOUTH||f==mxConstants.DIRECTION_NORTH?e[1].geometry.x+=b?a.geometry.width+10:-e[1].geometry.width- +10:e[1].geometry.y+=b?a.geometry.height+10:-e[1].geometry.height-10;h.view.currentRoot!=c&&(e[1].geometry.x-=g.x,e[1].geometry.y-=g.y);var k=h.view.getState(a),m=h.view.scale;if(null!=k){var l=mxRectangle.fromRectangle(k);f==mxConstants.DIRECTION_SOUTH||f==mxConstants.DIRECTION_NORTH?l.x+=(b?a.geometry.width+10:-e[1].geometry.width-10)*m:l.y+=(b?a.geometry.height+10:-e[1].geometry.height-10)*m;var p=h.getOutgoingEdges(h.model.getTerminal(d[0],!0));if(null!=p){for(var n=f==mxConstants.DIRECTION_SOUTH|| +f==mxConstants.DIRECTION_NORTH,t=g=d=0;t<p.length;t++){var r=h.model.getTerminal(p[t],!1);if(f==q(r)){var x=h.view.getState(r);r!=a&&null!=x&&(n&&b!=x.getCenterX()<k.getCenterX()||!n&&b!=x.getCenterY()<k.getCenterY())&&mxUtils.intersects(l,x)&&(d=10+Math.max(d,(Math.min(l.x+l.width,x.x+x.width)-Math.max(l.x,x.x))/m),g=10+Math.max(g,(Math.min(l.y+l.height,x.y+x.height)-Math.max(l.y,x.y))/m))}}n?g=0:d=0;for(t=0;t<p.length;t++)if(r=h.model.getTerminal(p[t],!1),f==q(r)&&(x=h.view.getState(r),r!=a&&null!= +x&&(n&&b!=x.getCenterX()<k.getCenterX()||!n&&b!=x.getCenterY()<k.getCenterY()))){var u=[];h.traverse(x.cell,!0,function(a,b){null!=b&&u.push(b);u.push(a);return!0});h.moveCells(u,(b?1:-1)*d,(b?1:-1)*g)}}}return h.addCells(e,c)}finally{h.model.endUpdate()}}function c(a){h.model.beginUpdate();try{var b=q(a),c=h.getIncomingEdges(a),d=h.cloneCells([c[0],a]);h.model.setTerminal(c[0],d[1],!1);h.model.setTerminal(d[0],d[1],!0);h.model.setTerminal(d[0],a,!1);var e=h.model.getParent(a),f=e.geometry,g=[];h.view.currentRoot!= +e&&(d[1].geometry.x-=f.x,d[1].geometry.y-=f.y);h.traverse(a,!0,function(a,b){null!=b&&g.push(b);g.push(a);return!0});var k=a.geometry.width+40,m=a.geometry.height+40;b==mxConstants.DIRECTION_SOUTH?k=0:b==mxConstants.DIRECTION_NORTH?(k=0,m=-40):b==mxConstants.DIRECTION_WEST?(k=-40,m=0):b==mxConstants.DIRECTION_EAST&&(m=0);h.moveCells(g,k,m);return h.addCells(d,e)}finally{h.model.endUpdate()}}function f(a){h.model.beginUpdate();try{var b=h.model.getParent(a),c=h.getIncomingEdges(a),d=h.cloneCells([c[0], +a]);h.model.setTerminal(d[0],a,!0);var c=h.getOutgoingEdges(a),e=b.geometry,f=[];h.view.currentRoot==b&&(e=new mxRectangle);for(var g=0;g<c.length;g++){var k=h.model.getTerminal(c[g],!1);null!=k&&f.push(k)}var m=h.view.getBounds(f),l=q(a),p=h.view.translate,n=h.view.scale;l==mxConstants.DIRECTION_SOUTH?(d[1].geometry.x=null==m?a.geometry.x+(a.geometry.width-d[1].geometry.width)/2:(m.x+m.width)/n-p.x-e.x+10,d[1].geometry.y+=a.geometry.height-e.y+40):l==mxConstants.DIRECTION_NORTH?(d[1].geometry.x= +null==m?a.geometry.x+(a.geometry.width-d[1].geometry.width)/2:(m.x+m.width)/n-p.x+-e.x+10,d[1].geometry.y-=d[1].geometry.height-e.y+40):(d[1].geometry.x=l==mxConstants.DIRECTION_WEST?d[1].geometry.x-(d[1].geometry.width-e.x+40):d[1].geometry.x+(a.geometry.width-e.x+40),d[1].geometry.y=null==m?a.geometry.y+(a.geometry.height-d[1].geometry.height)/2:(m.y+m.height)/n-p.y+-e.y+10);return h.addCells(d,b)}finally{h.model.endUpdate()}}function g(a,b,c){a=h.getOutgoingEdges(a);c=h.view.getState(c);var d= +[];if(null!=c&&null!=a){for(var e=0;e<a.length;e++){var f=h.view.getState(h.model.getTerminal(a[e],!1));null!=f&&(!b&&Math.min(f.x+f.width,c.x+c.width)>=Math.max(f.x,c.x)||b&&Math.min(f.y+f.height,c.y+c.height)>=Math.max(f.y,c.y))&&d.push(f)}d.sort(function(a,c){return b?a.x+a.width-c.x-c.width:a.y+a.height-c.y-c.height})}return d}function n(a,b){var c=q(a),d=b==mxConstants.DIRECTION_EAST||b==mxConstants.DIRECTION_WEST;(c==mxConstants.DIRECTION_EAST||c==mxConstants.DIRECTION_WEST)==d&&c!=b?r.actions.get("selectParent").funct(): +c==b?(d=h.getOutgoingEdges(a),null!=d&&0<d.length&&h.setSelectionCell(h.model.getTerminal(d[0],!1))):(c=h.getIncomingEdges(a),null!=c&&0<c.length&&(d=g(h.model.getTerminal(c[0],!0),d,a),c=h.view.getState(a),null!=c&&(c=mxUtils.indexOf(d,c),0<=c&&(c+=b==mxConstants.DIRECTION_NORTH||b==mxConstants.DIRECTION_WEST?-1:1,0<=c&&c<=d.length-1&&h.setSelectionCell(d[c].cell)))))}var r=this,h=r.editor.graph,m=h.getModel();mxResources.parse("selectChildren=Select Children");mxResources.parse("selectSiblings=Select Siblings"); +mxResources.parse("selectDescendants=Select Descendants");mxResources.parse("selectParent=Select Parent");var w=r.menus.createPopupMenu;r.menus.createPopupMenu=function(a,c,d){w.apply(this,arguments);if(1==h.getSelectionCount()){c=h.getSelectionCell();var e=h.getOutgoingEdges(c);a.addSeparator();null!=e&&0<e.length&&(b(h.getSelectionCell())&&this.addMenuItems(a,["selectChildren"],null,d),this.addMenuItems(a,["selectDescendants"],null,d));b(h.getSelectionCell())&&(a.addSeparator(),0<h.getIncomingEdges(c).length&& +this.addMenuItems(a,["selectSiblings","selectParent"],null,d))}};r.actions.addAction("selectChildren",function(){if(h.isEnabled()&&1==h.getSelectionCount()){var a=h.getSelectionCell(),a=h.getOutgoingEdges(a);if(null!=a){for(var b=[],c=0;c<a.length;c++)b.push(h.model.getTerminal(a[c],!1));h.setSelectionCells(b)}}},null,null,"Alt+Shift+X");r.actions.addAction("selectSiblings",function(){if(h.isEnabled()&&1==h.getSelectionCount()){var a=h.getSelectionCell(),a=h.getIncomingEdges(a);if(null!=a&&0<a.length&& +(a=h.getOutgoingEdges(h.model.getTerminal(a[0],!0)),null!=a)){for(var b=[],c=0;c<a.length;c++)b.push(h.model.getTerminal(a[c],!1));h.setSelectionCells(b)}}},null,null,"Alt+Shift+S");r.actions.addAction("selectParent",function(){if(h.isEnabled()&&1==h.getSelectionCount()){var a=h.getSelectionCell(),a=h.getIncomingEdges(a);null!=a&&0<a.length&&h.setSelectionCell(h.model.getTerminal(a[0],!0))}},null,null,"Alt+Shift+P");r.actions.addAction("selectDescendants",function(){if(h.isEnabled()&&1==h.getSelectionCount()){var a= +h.getSelectionCell(),b=[];h.traverse(a,!0,function(a,c){null!=c&&b.push(c);b.push(a);return!0});h.setSelectionCells(b)}},null,null,"Alt+Shift+D");var v=h.removeCells;h.removeCells=function(a,c){c=null!=c?c:!0;null==a&&(a=this.getDeletableCells(this.getSelectionCells()));c&&(a=this.getDeletableCells(this.addAllEdges(a)));for(var e=[],f=0;f<a.length;f++){var g=a[f];m.isEdge(g)&&d(g)&&(e.push(g),g=m.getTerminal(g,!1));b(g)?(h.traverse(g,!0,function(a,b){null!=b&&e.push(b);e.push(a);return!0}),g=h.getIncomingEdges(a[f]), +a=a.concat(g)):e.push(a[f])}a=e;return v.apply(this,arguments)};r.hoverIcons.getStateAt=function(a,c,d){return b(a.cell)?null:this.graph.view.getState(this.graph.getCellAt(c,d))};var A=h.duplicateCells;h.duplicateCells=function(a,c){a=null!=a?a:this.getSelectionCells();for(var d=a.slice(0),e=0;e<d.length;e++){var f=h.view.getState(d[e]);if(null!=f&&b(f.cell))for(var g=h.getIncomingEdges(f.cell),f=0;f<g.length;f++)mxUtils.remove(g[f],a)}this.model.beginUpdate();try{var k=A.call(this,a,c);if(k.length== +a.length)for(e=0;e<a.length;e++)if(b(a[e])){var m=h.getIncomingEdges(k[e]),g=h.getIncomingEdges(a[e]);if(0==m.length&&0<g.length){var l=this.cloneCells([g[0]])[0];this.addEdge(l,h.getDefaultParent(),this.model.getTerminal(g[0],!0),k[e])}}}finally{this.model.endUpdate()}return k};var y=h.moveCells;h.moveCells=function(a,c,d,e,f,g,k){var m=null;this.model.beginUpdate();try{var l=f,p=this.view.getState(f),n=null!=p?p.style:this.getCellStyle(f);if(null!=a&&b(f)&&"1"==mxUtils.getValue(n,"treeFolding", +"0")){for(var t=0;t<a.length;t++)if(b(a[t])||h.model.isEdge(a[t])&&null==h.model.getTerminal(a[t],!0)){f=h.model.getParent(a[t]);break}if(null!=l&&f!=l&&null!=this.view.getState(a[0])){var q=h.getIncomingEdges(a[0]);if(0<q.length){var r=h.view.getState(h.model.getTerminal(q[0],!0));if(null!=r){var u=h.view.getState(l);null!=u&&(c=(u.getCenterX()-r.getCenterX())/h.view.scale,d=(u.getCenterY()-r.getCenterY())/h.view.scale)}}}}m=y.apply(this,arguments);if(null!=m&&null!=a&&m.length==a.length)for(t=0;t< +m.length;t++)if(this.model.isEdge(m[t]))b(l)&&0>mxUtils.indexOf(m,this.model.getTerminal(m[t],!0))&&this.model.setTerminal(m[t],l,!0);else if(b(a[t])&&(q=h.getIncomingEdges(a[t]),0<q.length))if(!e)b(l)&&0>mxUtils.indexOf(a,this.model.getTerminal(q[0],!0))&&this.model.setTerminal(q[0],l,!0);else if(0==h.getIncomingEdges(m[t]).length){p=l;if(null==p||p==h.model.getParent(a[t]))p=h.model.getTerminal(q[0],!0);e=this.cloneCells([q[0]])[0];this.addEdge(e,h.getDefaultParent(),p,m[t])}}finally{this.model.endUpdate()}return m}; +if(null!=r.sidebar){var t=r.sidebar.dropAndConnect;r.sidebar.dropAndConnect=function(a,c,d,e){var f=h.model,g=null;f.beginUpdate();try{if(g=t.apply(this,arguments),b(a))for(var k=0;k<g.length;k++)if(f.isEdge(g[k])&&null==f.getTerminal(g[k],!0)){f.setTerminal(g[k],a,!0);var m=h.getCellGeometry(g[k]);m.points=null;null!=m.getTerminalPoint(!0)&&m.setTerminalPoint(null,!0)}}finally{f.endUpdate()}return g}}var z={88:r.actions.get("selectChildren"),84:r.actions.get("selectSubtree"),80:r.actions.get("selectParent"), +83:r.actions.get("selectSiblings")},H=r.onKeyDown;r.onKeyDown=function(a){try{if(h.isEnabled()&&!h.isEditing()&&b(h.getSelectionCell())&&1==h.getSelectionCount()){var d=null;0<h.getIncomingEdges(h.getSelectionCell()).length&&(9==a.which?d=mxEvent.isShiftDown(a)?c(h.getSelectionCell()):f(h.getSelectionCell()):13==a.which&&(d=u(h.getSelectionCell(),!mxEvent.isShiftDown(a))));if(null!=d&&0<d.length)1==d.length&&h.model.isEdge(d[0])?h.setSelectionCell(h.model.getTerminal(d[0],!1)):h.setSelectionCell(d[d.length- +1]),null!=r.hoverIcons&&r.hoverIcons.update(h.view.getState(h.getSelectionCell())),h.startEditingAtCell(h.getSelectionCell()),mxEvent.consume(a);else if(mxEvent.isAltDown(a)&&mxEvent.isShiftDown(a)){var e=z[a.keyCode];null!=e&&(e.funct(a),mxEvent.consume(a))}else 37==a.keyCode?(n(h.getSelectionCell(),mxConstants.DIRECTION_WEST),mxEvent.consume(a)):38==a.keyCode?(n(h.getSelectionCell(),mxConstants.DIRECTION_NORTH),mxEvent.consume(a)):39==a.keyCode?(n(h.getSelectionCell(),mxConstants.DIRECTION_EAST), +mxEvent.consume(a)):40==a.keyCode&&(n(h.getSelectionCell(),mxConstants.DIRECTION_SOUTH),mxEvent.consume(a))}}catch(R){console.log("error",R)}mxEvent.isConsumed(a)||H.apply(this,arguments)};var G=h.connectVertex;h.connectVertex=function(a,d,e,g,k,m){var l=h.getIncomingEdges(a);return b(a)&&0<l.length?(e=q(a),g=e==mxConstants.DIRECTION_EAST||e==mxConstants.DIRECTION_WEST,k=d==mxConstants.DIRECTION_EAST||d==mxConstants.DIRECTION_WEST,e==d?f(a):g==k?c(a):u(a,d!=mxConstants.DIRECTION_NORTH&&d!=mxConstants.DIRECTION_WEST)): +G.call(this,a,d,e,g,k,m)};h.getSubtree=function(a){var c=[a];b(a)&&!e(a)&&h.traverse(a,!0,function(a,b){null!=b&&0>mxUtils.indexOf(c,b)&&c.push(b);0>mxUtils.indexOf(c,a)&&c.push(a);return!0});return c};var B=mxVertexHandler.prototype.init;mxVertexHandler.prototype.init=function(){B.apply(this,arguments);b(this.state.cell)&&0<this.graph.getOutgoingEdges(this.state.cell).length&&(this.moveHandle=mxUtils.createImage(a),this.moveHandle.setAttribute("title","Move Subtree"),this.moveHandle.style.position= "absolute",this.moveHandle.style.cursor="pointer",this.moveHandle.style.width="18px",this.moveHandle.style.height="18px",this.graph.container.appendChild(this.moveHandle),mxEvent.addGestureListeners(this.moveHandle,mxUtils.bind(this,function(a){this.graph.graphHandler.start(this.state.cell,mxEvent.getClientX(a),mxEvent.getClientY(a));this.graph.graphHandler.cells=this.graph.getSubtree(this.state.cell);this.graph.graphHandler.bounds=this.state.view.getBounds(this.graph.graphHandler.cells);this.graph.graphHandler.pBounds= this.graph.graphHandler.getPreviewBounds(this.graph.graphHandler.cells);this.graph.graphHandler.cellWasClicked=!0;this.graph.isMouseTrigger=mxEvent.isMouseEvent(a);this.graph.isMouseDown=!0;mxEvent.consume(a)})))};var J=mxVertexHandler.prototype.redrawHandles;mxVertexHandler.prototype.redrawHandles=function(){J.apply(this,arguments);null!=this.moveHandle&&(this.moveHandle.style.left=this.state.x+this.state.width+(40>this.state.width?10:0)+2+"px",this.moveHandle.style.top=this.state.y+this.state.height+ -(40>this.state.height?10:0)+2+"px")};var K=mxVertexHandler.prototype.destroy;mxVertexHandler.prototype.destroy=function(a,b){K.apply(this,arguments);null!=this.moveHandle&&(this.moveHandle.parentNode.removeChild(this.moveHandle),this.moveHandle=null)}};if("undefined"!==typeof Sidebar){var b=Sidebar.prototype.createAdvancedShapes;Sidebar.prototype.createAdvancedShapes=function(){var a=b.apply(this,arguments),d=this.editorUi.editor.graph;return a.concat([this.addEntry("tree container",function(){var a= +(40>this.state.height?10:0)+2+"px")};var K=mxVertexHandler.prototype.destroy;mxVertexHandler.prototype.destroy=function(a,b){K.apply(this,arguments);null!=this.moveHandle&&(this.moveHandle.parentNode.removeChild(this.moveHandle),this.moveHandle=null)}};if("undefined"!==typeof Sidebar){var d=Sidebar.prototype.createAdvancedShapes;Sidebar.prototype.createAdvancedShapes=function(){var a=d.apply(this,arguments),b=this.editorUi.editor.graph;return a.concat([this.addEntry("tree container",function(){var a= new mxCell("Tree Container",new mxGeometry(0,0,220,160),"swimlane;html=1;startSize=20;horizontal=1;containerType=tree;");a.vertex=!0;return sb.createVertexTemplateFromCells([a],a.geometry.width,a.geometry.height,a.value)}),this.addEntry("tree mindmap central idea branch topic",function(){var a=new mxCell("Mindmap",new mxGeometry(0,0,420,126),"swimlane;html=1;startSize=20;horizontal=1;containerType=tree;");a.vertex=!0;var b=new mxCell("Central Idea",new mxGeometry(160,60,100,40),"ellipse;whiteSpace=wrap;html=1;align=center;container=1;recursiveResize=0;treeFolding=1;"); b.vertex=!0;var d=new mxCell("Topic",new mxGeometry(320,40,80,20),"whiteSpace=wrap;html=1;rounded=1;arcSize=50;align=center;verticalAlign=middle;container=1;recursiveResize=0;strokeWidth=1;autosize=1;spacing=4;treeFolding=1;");d.vertex=!0;var c=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=entityRelationEdgeStyle;startArrow=none;endArrow=none;segment=10;curved=1;");c.geometry.relative=!0;c.edge=!0;b.insertEdge(c,!0);d.insertEdge(c,!1);var e=new mxCell("Branch",new mxGeometry(320,80,72,26),"whiteSpace=wrap;html=1;shape=partialRectangle;top=0;left=0;bottom=1;right=0;points=[[0,1],[1,1]];strokeColor=#000000;fillColor=none;align=center;verticalAlign=bottom;routingCenterY=0.5;snapToPoint=1;container=1;recursiveResize=0;autosize=1;treeFolding=1;"); -e.vertex=!0;var g=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=entityRelationEdgeStyle;startArrow=none;endArrow=none;segment=10;curved=1;");g.geometry.relative=!0;g.edge=!0;b.insertEdge(g,!0);e.insertEdge(g,!1);var h=new mxCell("Topic",new mxGeometry(20,40,80,20),"whiteSpace=wrap;html=1;rounded=1;arcSize=50;align=center;verticalAlign=middle;container=1;recursiveResize=0;strokeWidth=1;autosize=1;spacing=4;treeFolding=1;");h.vertex=!0;var m=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=entityRelationEdgeStyle;startArrow=none;endArrow=none;segment=10;curved=1;"); -m.geometry.relative=!0;m.edge=!0;b.insertEdge(m,!0);h.insertEdge(m,!1);var l=new mxCell("Branch",new mxGeometry(20,80,72,26),"whiteSpace=wrap;html=1;shape=partialRectangle;top=0;left=0;bottom=1;right=0;points=[[0,1],[1,1]];strokeColor=#000000;fillColor=none;align=center;verticalAlign=bottom;routingCenterY=0.5;snapToPoint=1;container=1;recursiveResize=0;autosize=1;treeFolding=1;");l.vertex=!0;var n=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=entityRelationEdgeStyle;startArrow=none;endArrow=none;segment=10;curved=1;"); -n.geometry.relative=!0;n.edge=!0;b.insertEdge(n,!0);l.insertEdge(n,!1);a.insert(c);a.insert(g);a.insert(m);a.insert(n);a.insert(b);a.insert(d);a.insert(e);a.insert(h);a.insert(l);return sb.createVertexTemplateFromCells([a],a.geometry.width,a.geometry.height,a.value)}),this.addEntry("tree mindmap central idea",function(){var a=new mxCell("Central Idea",new mxGeometry(0,0,100,40),"ellipse;whiteSpace=wrap;html=1;align=center;container=1;recursiveResize=0;treeFolding=1;");a.vertex=!0;return sb.createVertexTemplateFromCells([a], +e.vertex=!0;var g=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=entityRelationEdgeStyle;startArrow=none;endArrow=none;segment=10;curved=1;");g.geometry.relative=!0;g.edge=!0;b.insertEdge(g,!0);e.insertEdge(g,!1);var k=new mxCell("Topic",new mxGeometry(20,40,80,20),"whiteSpace=wrap;html=1;rounded=1;arcSize=50;align=center;verticalAlign=middle;container=1;recursiveResize=0;strokeWidth=1;autosize=1;spacing=4;treeFolding=1;");k.vertex=!0;var l=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=entityRelationEdgeStyle;startArrow=none;endArrow=none;segment=10;curved=1;"); +l.geometry.relative=!0;l.edge=!0;b.insertEdge(l,!0);k.insertEdge(l,!1);var h=new mxCell("Branch",new mxGeometry(20,80,72,26),"whiteSpace=wrap;html=1;shape=partialRectangle;top=0;left=0;bottom=1;right=0;points=[[0,1],[1,1]];strokeColor=#000000;fillColor=none;align=center;verticalAlign=bottom;routingCenterY=0.5;snapToPoint=1;container=1;recursiveResize=0;autosize=1;treeFolding=1;");h.vertex=!0;var m=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=entityRelationEdgeStyle;startArrow=none;endArrow=none;segment=10;curved=1;"); +m.geometry.relative=!0;m.edge=!0;b.insertEdge(m,!0);h.insertEdge(m,!1);a.insert(c);a.insert(g);a.insert(l);a.insert(m);a.insert(b);a.insert(d);a.insert(e);a.insert(k);a.insert(h);return sb.createVertexTemplateFromCells([a],a.geometry.width,a.geometry.height,a.value)}),this.addEntry("tree mindmap central idea",function(){var a=new mxCell("Central Idea",new mxGeometry(0,0,100,40),"ellipse;whiteSpace=wrap;html=1;align=center;container=1;recursiveResize=0;treeFolding=1;");a.vertex=!0;return sb.createVertexTemplateFromCells([a], a.geometry.width,a.geometry.height,a.value)}),this.addEntry("tree mindmap branch",function(){var a=new mxCell("Branch",new mxGeometry(0,0,80,20),"whiteSpace=wrap;html=1;shape=partialRectangle;top=0;left=0;bottom=1;right=0;points=[[0,1],[1,1]];strokeColor=#000000;fillColor=none;align=center;verticalAlign=bottom;routingCenterY=0.5;snapToPoint=1;container=1;recursiveResize=0;autosize=1;treeFolding=1;");a.vertex=!0;var b=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=entityRelationEdgeStyle;startArrow=none;endArrow=none;segment=10;curved=1;"); b.geometry.setTerminalPoint(new mxPoint(-40,40),!0);b.geometry.relative=!0;b.edge=!0;a.insertEdge(b,!1);return sb.createVertexTemplateFromCells([a,b],a.geometry.width,a.geometry.height,a.value)}),this.addEntry("tree mindmap sub topic",function(){var a=new mxCell("Sub Topic",new mxGeometry(0,0,72,26),"whiteSpace=wrap;html=1;rounded=1;arcSize=50;align=center;verticalAlign=middle;container=1;recursiveResize=0;strokeWidth=1;autosize=1;spacing=4;treeFolding=1;");a.vertex=!0;var b=new mxCell("",new mxGeometry(0, -0,0,0),"edgeStyle=entityRelationEdgeStyle;startArrow=none;endArrow=none;segment=10;curved=1;");b.geometry.setTerminalPoint(new mxPoint(-40,40),!0);b.geometry.relative=!0;b.edge=!0;a.insertEdge(b,!1);return sb.createVertexTemplateFromCells([a,b],a.geometry.width,a.geometry.height,a.value)}),this.addEntry("tree orgchart organization division",function(){var a=new mxCell("Orgchart",new mxGeometry(0,0,280,220),"swimlane;html=1;startSize=20;horizontal=1;containerType=tree;");a.vertex=!0;var b=new mxCell("Organization", -new mxGeometry(80,40,120,60),"whiteSpace=wrap;html=1;align=center;treeFolding=1;container=1;recursiveResize=0;");d.setAttributeForCell(b,"treeRoot","1");b.vertex=!0;var e=new mxCell("Division",new mxGeometry(20,140,100,60),"whiteSpace=wrap;html=1;align=center;verticalAlign=middle;container=1;recursiveResize=0;treeFolding=1;");e.vertex=!0;var c=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=elbowEdgeStyle;elbow=vertical;startArrow=none;endArrow=none;rounded=0;");c.geometry.relative=!0;c.edge=!0; -b.insertEdge(c,!0);e.insertEdge(c,!1);var f=new mxCell("Division",new mxGeometry(160,140,100,60),"whiteSpace=wrap;html=1;align=center;verticalAlign=middle;container=1;recursiveResize=0;treeFolding=1;");f.vertex=!0;var g=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=elbowEdgeStyle;elbow=vertical;startArrow=none;endArrow=none;rounded=0;");g.geometry.relative=!0;g.edge=!0;b.insertEdge(g,!0);f.insertEdge(g,!1);a.insert(c);a.insert(g);a.insert(b);a.insert(e);a.insert(f);return sb.createVertexTemplateFromCells([a], -a.geometry.width,a.geometry.height,a.value)}),this.addEntry("tree root",function(){var a=new mxCell("Organization",new mxGeometry(0,0,120,60),"whiteSpace=wrap;html=1;align=center;treeFolding=1;container=1;recursiveResize=0;");d.setAttributeForCell(a,"treeRoot","1");a.vertex=!0;return sb.createVertexTemplateFromCells([a],a.geometry.width,a.geometry.height,a.value)}),this.addEntry("tree division",function(){var a=new mxCell("Division",new mxGeometry(20,40,100,60),"whiteSpace=wrap;html=1;align=center;verticalAlign=middle;container=1;recursiveResize=0;treeFolding=1;"); +0,0,0),"edgeStyle=entityRelationEdgeStyle;startArrow=none;endArrow=none;segment=10;curved=1;");b.geometry.setTerminalPoint(new mxPoint(-40,40),!0);b.geometry.relative=!0;b.edge=!0;a.insertEdge(b,!1);return sb.createVertexTemplateFromCells([a,b],a.geometry.width,a.geometry.height,a.value)}),this.addEntry("tree orgchart organization division",function(){var a=new mxCell("Orgchart",new mxGeometry(0,0,280,220),"swimlane;html=1;startSize=20;horizontal=1;containerType=tree;");a.vertex=!0;var d=new mxCell("Organization", +new mxGeometry(80,40,120,60),"whiteSpace=wrap;html=1;align=center;treeFolding=1;container=1;recursiveResize=0;");b.setAttributeForCell(d,"treeRoot","1");d.vertex=!0;var e=new mxCell("Division",new mxGeometry(20,140,100,60),"whiteSpace=wrap;html=1;align=center;verticalAlign=middle;container=1;recursiveResize=0;treeFolding=1;");e.vertex=!0;var c=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=elbowEdgeStyle;elbow=vertical;startArrow=none;endArrow=none;rounded=0;");c.geometry.relative=!0;c.edge=!0; +d.insertEdge(c,!0);e.insertEdge(c,!1);var f=new mxCell("Division",new mxGeometry(160,140,100,60),"whiteSpace=wrap;html=1;align=center;verticalAlign=middle;container=1;recursiveResize=0;treeFolding=1;");f.vertex=!0;var g=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=elbowEdgeStyle;elbow=vertical;startArrow=none;endArrow=none;rounded=0;");g.geometry.relative=!0;g.edge=!0;d.insertEdge(g,!0);f.insertEdge(g,!1);a.insert(c);a.insert(g);a.insert(d);a.insert(e);a.insert(f);return sb.createVertexTemplateFromCells([a], +a.geometry.width,a.geometry.height,a.value)}),this.addEntry("tree root",function(){var a=new mxCell("Organization",new mxGeometry(0,0,120,60),"whiteSpace=wrap;html=1;align=center;treeFolding=1;container=1;recursiveResize=0;");b.setAttributeForCell(a,"treeRoot","1");a.vertex=!0;return sb.createVertexTemplateFromCells([a],a.geometry.width,a.geometry.height,a.value)}),this.addEntry("tree division",function(){var a=new mxCell("Division",new mxGeometry(20,40,100,60),"whiteSpace=wrap;html=1;align=center;verticalAlign=middle;container=1;recursiveResize=0;treeFolding=1;"); a.vertex=!0;var b=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=elbowEdgeStyle;elbow=vertical;startArrow=none;endArrow=none;rounded=0;");b.geometry.setTerminalPoint(new mxPoint(0,0),!0);b.geometry.relative=!0;b.edge=!0;a.insertEdge(b,!1);return sb.createVertexTemplateFromCells([a,b],a.geometry.width,a.geometry.height,a.value)}),this.addEntry("tree sub sections",function(){var a=new mxCell("Sub Section",new mxGeometry(0,0,100,60),"whiteSpace=wrap;html=1;align=center;verticalAlign=middle;container=1;recursiveResize=0;treeFolding=1;"); a.vertex=!0;var b=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=orthogonalEdgeStyle;startArrow=none;endArrow=none;rounded=0;targetPortConstraint=eastwest;sourcePortConstraint=northsouth;");b.geometry.setTerminalPoint(new mxPoint(110,-40),!0);b.geometry.relative=!0;b.edge=!0;a.insertEdge(b,!1);var d=new mxCell("Sub Section",new mxGeometry(120,0,100,60),"whiteSpace=wrap;html=1;align=center;verticalAlign=middle;container=1;recursiveResize=0;treeFolding=1;");d.vertex=!0;var c=new mxCell("",new mxGeometry(0, -0,0,0),"edgeStyle=orthogonalEdgeStyle;startArrow=none;endArrow=none;rounded=0;targetPortConstraint=eastwest;sourcePortConstraint=northsouth;");c.geometry.setTerminalPoint(new mxPoint(110,-40),!0);c.geometry.relative=!0;c.edge=!0;d.insertEdge(c,!1);return sb.createVertexTemplateFromCells([b,c,a,d],220,60,"Sub Sections")})])}}})();EditorUi.initMinimalTheme=function(){function a(a){var b=a.editor.graph;b.popupMenuHandler.hideMenu();null==a.formatWindow?(a.formatWindow=new h(a,mxResources.get("format"),Math.max(20,a.diagramContainer.clientWidth-240-12),56,240,Math.min(550,b.container.clientHeight-10),function(b){b=a.createFormat(b);b.init();return b}),a.formatWindow.window.minimumSize=new mxRectangle(0,0,240,80),a.formatWindow.window.setVisible(!0)):a.formatWindow.window.setVisible(!a.formatWindow.window.isVisible());a.formatWindow.window.isVisible()&& -a.formatWindow.window.fit()}function d(a){var b=a.editor.graph;b.popupMenuHandler.hideMenu();new mxRectangle;if(null==a.sidebarWindow){var c=Math.min(b.container.clientWidth-10,266);a.sidebarWindow=new h(a,mxResources.get("shapes"),10,56,c-6,Math.min(650,b.container.clientHeight-30),function(b){function c(c,d){var f=a.menus.get(c),g=e.addMenu(d,mxUtils.bind(this,function(){f.funct.apply(this,arguments)}));g.style.cssText="position:absolute;border-top:1px solid lightgray;width:50%;height:24px;bottom:0px;text-align:center;cursor:pointer;padding:6px 0 0 0;"; +0,0,0),"edgeStyle=orthogonalEdgeStyle;startArrow=none;endArrow=none;rounded=0;targetPortConstraint=eastwest;sourcePortConstraint=northsouth;");c.geometry.setTerminalPoint(new mxPoint(110,-40),!0);c.geometry.relative=!0;c.edge=!0;d.insertEdge(c,!1);return sb.createVertexTemplateFromCells([b,c,a,d],220,60,"Sub Sections")})])}}})();EditorUi.initMinimalTheme=function(){function a(a){var b=a.editor.graph;b.popupMenuHandler.hideMenu();null==a.formatWindow?(a.formatWindow=new k(a,mxResources.get("format"),Math.max(20,a.diagramContainer.clientWidth-240-12),56,240,Math.min(550,b.container.clientHeight-10),function(b){b=a.createFormat(b);b.init();return b}),a.formatWindow.window.minimumSize=new mxRectangle(0,0,240,80),a.formatWindow.window.setVisible(!0)):a.formatWindow.window.setVisible(!a.formatWindow.window.isVisible());a.formatWindow.window.isVisible()&& +a.formatWindow.window.fit()}function b(a){var b=a.editor.graph;b.popupMenuHandler.hideMenu();new mxRectangle;if(null==a.sidebarWindow){var c=Math.min(b.container.clientWidth-10,266);a.sidebarWindow=new k(a,mxResources.get("shapes"),10,56,c-6,Math.min(650,b.container.clientHeight-30),function(b){function c(c,d){var f=a.menus.get(c),g=e.addMenu(d,mxUtils.bind(this,function(){f.funct.apply(this,arguments)}));g.style.cssText="position:absolute;border-top:1px solid lightgray;width:50%;height:24px;bottom:0px;text-align:center;cursor:pointer;padding:6px 0 0 0;"; g.className="geTitle";b.appendChild(g);return g}var d=document.createElement("div");d.style.cssText="position:absolute;left:0;right:0;border-top:1px solid lightgray;height:24px;bottom:31px;text-align:center;cursor:pointer;padding:6px 0 0 0;";d.className="geTitle";mxUtils.write(d,mxResources.get("moreShapes"));b.appendChild(d);mxEvent.addListener(d,"click",function(){a.actions.get("shapes").funct()});var e=new Menubar(a,b);if(!Editor.enableCustomLibraries||"1"==urlParams.embed&&"1"!=urlParams.libraries)d.style.bottom= "0";else if(null!=a.actions.get("newLibrary")){d=document.createElement("div");d.style.cssText="position:absolute;left:0px;width:50%;border-top:1px solid lightgray;height:30px;bottom:0px;text-align:center;cursor:pointer;padding:0px;";d.className="geTitle";var f=document.createElement("span");f.style.cssText="position:relative;top:6px;";mxUtils.write(f,mxResources.get("newLibrary"));d.appendChild(f);b.appendChild(d);mxEvent.addListener(d,"click",a.actions.get("newLibrary").funct);d=document.createElement("div"); d.style.cssText="position:absolute;left:50%;width:50%;border-top:1px solid lightgray;height:30px;bottom:0px;text-align:center;cursor:pointer;padding:0px;border-left: 1px solid lightgray;";d.className="geTitle";f=document.createElement("span");f.style.cssText="position:relative;top:6px;";mxUtils.write(f,mxResources.get("openLibrary"));d.appendChild(f);b.appendChild(d);mxEvent.addListener(d,"click",a.actions.get("openLibrary").funct)}else d=c("newLibrary",mxResources.get("newLibrary")),d.style.left= "0",d=c("openLibraryFrom",mxResources.get("openLibraryFrom")),d.style.borderLeft="1px solid lightgray",d.style.left="50%";b.appendChild(a.sidebar.container);b.style.overflow="hidden";return b});a.sidebarWindow.window.minimumSize=new mxRectangle(0,0,90,90);a.sidebarWindow.window.setVisible(!0);a.getLocalData("sidebar",function(b){a.sidebar.showEntries(b,null,!0)});a.restoreLibraries()}else a.sidebarWindow.window.setVisible(!a.sidebarWindow.window.isVisible());a.sidebarWindow.window.isVisible()&&a.sidebarWindow.window.fit()} -if("1"==urlParams.lightbox||"0"==urlParams.chrome||"undefined"===typeof window.Format||"undefined"===typeof window.Menus)window.uiTheme=null;else{var e=window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth;try{var b=document.createElement("style");b.type="text/css";b.innerHTML="* { -webkit-font-smoothing: antialiased; }html body .mxWindow button.geBtn { font-size:12px !important; margin-left: 0;}html body div.diagramContainer button, html body button.geBtn { font-size:14px; font-weight:700;border-radius: 5px; }html body button.geBtn:active { opacity: 0.6; }.geDialog input, .geToolbarContainer input, .mxWindow input {padding:2px !important;display:inline-block !important; }div.geDialog { border-radius: 5px; }html body div.geDialog button.geBigButton { color: #fff !important; }.mxWindow button, .geDialog select, .mxWindow select { display:inline-block; }html body .mxWindow .geColorBtn, html body .geDialog .geColorBtn { background: none; }html body div.diagramContainer button, html body .mxWindow button, html body .geDialog button { min-width: 0px; border-radius: 5px; color: #353535 !important; border-color: rgb(216, 216, 216); }div.diagramContainer button.geBtn, .mxWindow button.geBtn, .geDialog button.geBtn { min-width:72px; font-weight: 600; background: none; }div.diagramContainer button.geBtn:hover, .mxWindow button.geBtn:hover, .geDialog button.geBtn:hover { box-shadow: none; border-color: rgb(216, 216, 216); }div.diagramContainer button.gePrimaryBtn, .mxWindow button.gePrimaryBtn, .geDialog button.gePrimaryBtn, html body .gePrimaryBtn { background: #29b6f2; color: #fff !important; border: none; box-shadow: none; }html body .gePrimaryBtn:hover { background: #29b6f2; border: none; box-shadow: inherit; }html body button.gePrimaryBtn:hover { background: #29b6f2; border: none; }.geBtn button { min-width:72px !important; }div.geToolbarContainer a.geButton { margin:2px; padding: 0 2px 4px 2px; } .geDialog, .mxWindow td.mxWindowPane *, div.geSprite, td.mxWindowTitle, .geDiagramContainer { box-sizing:content-box; }.mxWindow div button.geStyleButton { box-sizing: border-box; }table.mxWindow td.mxWindowPane button.geColorBtn { padding:0px; box-sizing: border-box; }td.mxWindowPane .geSidebarContainer button { padding:2px 0 2px 0; box-sizing: border-box; }html body .geMenuItem { font-size:14px; text-decoration: none; font-weight: normal; padding: 6px 10px 6px 10px; border: none; border-radius: 5px; color: #353535; box-shadow: inset 0 0 0 1px rgba(0,0,0,.11), inset 0 -1px 0 0 rgba(0,0,0,.08), 0 1px 2px 0 rgba(0,0,0,.04); }a.geMenuItem:active { opacity: 0.4; }.geToolbarContainer { background:#fff !important; }div.mxWindow .geSidebarContainer .geTitle { background-color:#fdfdfd; }div.mxWindow .geSidebarContainer .geTitle:hover { background-color:#fafafa; }div.geSidebar { background-color: #fff !important;}div.mxWindow td.mxWindowPane button { background-image: none; float: none; }td.mxWindowTitle { height: 22px !important; background: none !important; font-size: 13px !important; text-align:center !important; border-bottom:1px solid lightgray; }div.mxWindow, div.mxWindowTitle { background-image: none !important; background-color:#fff !important; }div.mxWindow { border-radius:5px; box-shadow: 0px 0px 2px #C0C0C0 !important;}div.mxWindow * { font-family: inherit !important; }html div.geVerticalHandle { position:absolute;bottom:0px;left:50%;cursor:row-resize;width:11px;height:11px;background:white;margin-bottom:-6px; margin-left:-6px; border: none; border-radius: 6px; box-shadow: inset 0 0 0 1px rgba(0,0,0,.11), inset 0 -1px 0 0 rgba(0,0,0,.08), 0 1px 2px 0 rgba(0,0,0,.04); }html div.geInactivePage { background: rgb(249, 249, 249) !important; color:lightgray !important; } html div.geActivePage { background: white !important;color: #353535 !important; } html div.mxRubberband { border:1px solid; border-color: #29b6f2 !important; background:rgba(41,182,242,0.5) !important; } html body div.mxPopupMenu { border-radius:5px; border:1px solid #c0c0c0; padding:5px 0 5px 0; box-shadow: 0px 4px 17px -4px rgba(96,96,96,1); } html table.mxPopupMenu td.mxPopupMenuItem { color: #353535; font-size: 14px; padding-top: 4px; padding-bottom: 4px; }html table.mxPopupMenu tr.mxPopupMenuItemHover { background-color: #29b6f2; }html tr.mxPopupMenuItemHover td.mxPopupMenuItem, html tr.mxPopupMenuItemHover td.mxPopupMenuItem span { color: #fff !important; }html tr.mxPopupMenuItem, html td.mxPopupMenuItem { transition-property: none !important; }html table.mxPopupMenu hr { height: 2px; background-color: rgba(0,0,0,.07); margin: 5px 0; }"; -document.getElementsByTagName("head")[0].appendChild(b)}catch(n){}var h=function(a,b,c,d,e,f,g){a=document.createElement("div");a.className="geSidebarContainer";a.style.position="absolute";a.style.width="100%";a.style.height="100%";a.style.border="1px solid whiteSmoke";a.style.overflowX="hidden";a.style.overflowY="auto";g(a);this.window=new mxWindow(b,a,c,d,e,f,!0,!0);this.window.destroyOnClose=!1;this.window.setMaximizable(!1);this.window.setResizable(!0);this.window.setClosable(!0);this.window.setVisible(!0); +if("1"==urlParams.lightbox||"0"==urlParams.chrome||"undefined"===typeof window.Format||"undefined"===typeof window.Menus)window.uiTheme=null;else{var e=window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth;try{var d=document.createElement("style");d.type="text/css";d.innerHTML="* { -webkit-font-smoothing: antialiased; }html body .mxWindow button.geBtn { font-size:12px !important; margin-left: 0;}html body div.diagramContainer button, html body button.geBtn { font-size:14px; font-weight:700;border-radius: 5px; }html body button.geBtn:active { opacity: 0.6; }.geDialog input, .geToolbarContainer input, .mxWindow input {padding:2px !important;display:inline-block !important; }div.geDialog { border-radius: 5px; }html body div.geDialog button.geBigButton { color: #fff !important; }.mxWindow button, .geDialog select, .mxWindow select { display:inline-block; }html body .mxWindow .geColorBtn, html body .geDialog .geColorBtn { background: none; }html body div.diagramContainer button, html body .mxWindow button, html body .geDialog button { min-width: 0px; border-radius: 5px; color: #353535 !important; border-color: rgb(216, 216, 216); }div.diagramContainer button.geBtn, .mxWindow button.geBtn, .geDialog button.geBtn { min-width:72px; font-weight: 600; background: none; }div.diagramContainer button.geBtn:hover, .mxWindow button.geBtn:hover, .geDialog button.geBtn:hover { box-shadow: none; border-color: rgb(216, 216, 216); }div.diagramContainer button.gePrimaryBtn, .mxWindow button.gePrimaryBtn, .geDialog button.gePrimaryBtn, html body .gePrimaryBtn { background: #29b6f2; color: #fff !important; border: none; box-shadow: none; }html body .gePrimaryBtn:hover { background: #29b6f2; border: none; box-shadow: inherit; }html body button.gePrimaryBtn:hover { background: #29b6f2; border: none; }.geBtn button { min-width:72px !important; }div.geToolbarContainer a.geButton { margin:2px; padding: 0 2px 4px 2px; } .geDialog, .mxWindow td.mxWindowPane *, div.geSprite, td.mxWindowTitle, .geDiagramContainer { box-sizing:content-box; }.mxWindow div button.geStyleButton { box-sizing: border-box; }table.mxWindow td.mxWindowPane button.geColorBtn { padding:0px; box-sizing: border-box; }td.mxWindowPane .geSidebarContainer button { padding:2px 0 2px 0; box-sizing: border-box; }html body .geMenuItem { font-size:14px; text-decoration: none; font-weight: normal; padding: 6px 10px 6px 10px; border: none; border-radius: 5px; color: #353535; box-shadow: inset 0 0 0 1px rgba(0,0,0,.11), inset 0 -1px 0 0 rgba(0,0,0,.08), 0 1px 2px 0 rgba(0,0,0,.04); }a.geMenuItem:active { opacity: 0.4; }.geToolbarContainer { background:#fff !important; }div.mxWindow .geSidebarContainer .geTitle { background-color:#fdfdfd; }div.mxWindow .geSidebarContainer .geTitle:hover { background-color:#fafafa; }div.geSidebar { background-color: #fff !important;}div.mxWindow td.mxWindowPane button { background-image: none; float: none; }td.mxWindowTitle { height: 22px !important; background: none !important; font-size: 13px !important; text-align:center !important; border-bottom:1px solid lightgray; }div.mxWindow, div.mxWindowTitle { background-image: none !important; background-color:#fff !important; }div.mxWindow { border-radius:5px; box-shadow: 0px 0px 2px #C0C0C0 !important;}div.mxWindow * { font-family: inherit !important; }html div.geVerticalHandle { position:absolute;bottom:0px;left:50%;cursor:row-resize;width:11px;height:11px;background:white;margin-bottom:-6px; margin-left:-6px; border: none; border-radius: 6px; box-shadow: inset 0 0 0 1px rgba(0,0,0,.11), inset 0 -1px 0 0 rgba(0,0,0,.08), 0 1px 2px 0 rgba(0,0,0,.04); }html div.geInactivePage { background: rgb(249, 249, 249) !important; color:lightgray !important; } html div.geActivePage { background: white !important;color: #353535 !important; } html div.mxRubberband { border:1px solid; border-color: #29b6f2 !important; background:rgba(41,182,242,0.5) !important; } html body div.mxPopupMenu { border-radius:5px; border:1px solid #c0c0c0; padding:5px 0 5px 0; box-shadow: 0px 4px 17px -4px rgba(96,96,96,1); } html table.mxPopupMenu td.mxPopupMenuItem { color: #353535; font-size: 14px; padding-top: 4px; padding-bottom: 4px; }html table.mxPopupMenu tr.mxPopupMenuItemHover { background-color: #29b6f2; }html tr.mxPopupMenuItemHover td.mxPopupMenuItem, html tr.mxPopupMenuItemHover td.mxPopupMenuItem span { color: #fff !important; }html tr.mxPopupMenuItem, html td.mxPopupMenuItem { transition-property: none !important; }html table.mxPopupMenu hr { height: 2px; background-color: rgba(0,0,0,.07); margin: 5px 0; }"; +document.getElementsByTagName("head")[0].appendChild(d)}catch(m){}var k=function(a,b,c,d,e,f,g){a=document.createElement("div");a.className="geSidebarContainer";a.style.position="absolute";a.style.width="100%";a.style.height="100%";a.style.border="1px solid whiteSmoke";a.style.overflowX="hidden";a.style.overflowY="auto";g(a);this.window=new mxWindow(b,a,c,d,e,f,!0,!0);this.window.destroyOnClose=!1;this.window.setMaximizable(!1);this.window.setResizable(!0);this.window.setClosable(!0);this.window.setVisible(!0); this.window.setLocation=function(a,b){var c=window.innerHeight||document.documentElement.clientHeight||document.body.clientHeight;a=Math.max(0,Math.min(a,(window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth)-this.table.clientWidth));b=Math.max(0,Math.min(b,c-this.table.clientHeight-48));this.getX()==a&&this.getY()==b||mxWindow.prototype.setLocation.apply(this,arguments)}};Editor.checkmarkImage=Graph.createSvgImage(22,18,'<path transform="translate(4 0)" d="M7.181,15.007a1,1,0,0,1-.793-0.391L3.222,10.5A1,1,0,1,1,4.808,9.274L7.132,12.3l6.044-8.86A1,1,0,1,1,14.83,4.569l-6.823,10a1,1,0,0,1-.8.437H7.181Z" fill="#29b6f2"/>').src; mxWindow.prototype.closeImage=Graph.createSvgImage(18,10,'<path d="M 5 1 L 13 9 M 13 1 L 5 9" stroke="#C0C0C0" stroke-width="2"/>').src;mxWindow.prototype.minimizeImage=Graph.createSvgImage(14,10,'<path d="M 3 7 L 7 3 L 11 7" stroke="#C0C0C0" stroke-width="2" fill="#ffffff"/>').src;mxWindow.prototype.normalizeImage=Graph.createSvgImage(14,10,'<path d="M 3 3 L 7 7 L 11 3" stroke="#C0C0C0" stroke-width="2" fill="#ffffff"/>').src;mxConstraintHandler.prototype.pointImage=Graph.createSvgImage(5,5,'<path d="m 0 0 L 5 5 M 0 5 L 5 0" stroke="#29b6f2"/>'); mxOutline.prototype.sizerImage=null;mxConstants.VERTEX_SELECTION_COLOR="#C0C0C0";mxConstants.EDGE_SELECTION_COLOR="#C0C0C0";mxConstants.CONNECT_HANDLE_FILLCOLOR="#cee7ff";mxConstants.DEFAULT_VALID_COLOR="#29b6f2";mxConstants.GUIDE_COLOR="#C0C0C0";mxConstants.HIGHLIGHT_STROKEWIDTH=5;mxConstants.HIGHLIGHT_OPACITY=35;mxConstants.OUTLINE_COLOR="#29b6f2";mxConstants.OUTLINE_HANDLE_FILLCOLOR="#29b6f2";mxConstants.OUTLINE_HANDLE_STROKECOLOR="#fff";Graph.prototype.svgShadowColor="#3D4574";Graph.prototype.svgShadowOpacity= "0.4";Graph.prototype.svgShadowSize="0.6";Graph.prototype.svgShadowBlur="1.2";Format.prototype.inactiveTabBackgroundColor="#f0f0f0";mxGraphHandler.prototype.previewColor="#C0C0C0";mxRubberband.prototype.defaultOpacity=50;HoverIcons.prototype.inactiveOpacity=25;Format.prototype.showCloseButton=!1;EditorUi.prototype.closableScratchpad=!1;EditorUi.prototype.toolbarHeight=46;EditorUi.prototype.footerHeight=0;Graph.prototype.editAfterInsert=!0;Editor.prototype.isChromelessView=function(){return!1};Graph.prototype.isLightboxView= -function(){return!1};var m=EditorUi.prototype.updateTabContainer;EditorUi.prototype.updateTabContainer=function(){null!=this.tabContainer&&(this.tabContainer.style.right="70px",this.diagramContainer.style.bottom="30px");m.apply(this,arguments)};var p=EditorUi.prototype.updateActionStates;EditorUi.prototype.updateActionStates=function(){p.apply(this,arguments);this.menus.get("save").setEnabled(null!=this.getCurrentFile()||"1"==urlParams.embed)};var q=Menus.prototype.addShortcut;Menus.prototype.addShortcut= +function(){return!1};var l=EditorUi.prototype.updateTabContainer;EditorUi.prototype.updateTabContainer=function(){null!=this.tabContainer&&(this.tabContainer.style.right="70px",this.diagramContainer.style.bottom="30px");l.apply(this,arguments)};var p=EditorUi.prototype.updateActionStates;EditorUi.prototype.updateActionStates=function(){p.apply(this,arguments);this.menus.get("save").setEnabled(null!=this.getCurrentFile()||"1"==urlParams.embed)};var q=Menus.prototype.addShortcut;Menus.prototype.addShortcut= function(a,b){null!=b.shortcut&&900>e&&!mxClient.IS_IOS?a.firstChild.nextSibling.setAttribute("title",b.shortcut):q.apply(this,arguments)};var u=App.prototype.updateUserElement;App.prototype.updateUserElement=function(){u.apply(this,arguments);if(null!=this.userElement){var a=this.userElement;a.style.cssText="display:inline-block;position:relative;margin-right:4px;";a.className="";a.innerHTML="";a.style.backgroundImage="url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTIgMTJjMi4yMSAwIDQtMS43OSA0LTRzLTEuNzktNC00LTQtNCAxLjc5LTQgNCAxLjc5IDQgNCA0em0wIDJjLTIuNjcgMC04IDEuMzQtOCA0djJoMTZ2LTJjMC0yLjY2LTUuMzMtNC04LTR6Ii8+PC9zdmc+)"; a.style.backgroundPosition="center center";a.style.backgroundRepeat="no-repeat";a.style.backgroundSize="24px 24px";a.style.height="24px";a.style.width="24px";mxUtils.setOpacity(a,30);a.setAttribute("title",mxResources.get("changeUser"))}};var c=App.prototype.updateButtonContainer;App.prototype.updateButtonContainer=function(){c.apply(this,arguments);if(null!=this.shareButton){var a=this.shareButton;a.style.cssText="display:inline-block;position:relative;box-sizing:border-box;margin-right:4px;cursor:pointer;"; a.className="";a.innerHTML="";a.style.backgroundImage="url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTggMTYuMDhjLS43NiAwLTEuNDQuMy0xLjk2Ljc3TDguOTEgMTIuN2MuMDUtLjIzLjA5LS40Ni4wOS0uN3MtLjA0LS40Ny0uMDktLjdsNy4wNS00LjExYy41NC41IDEuMjUuODEgMi4wNC44MSAxLjY2IDAgMy0xLjM0IDMtM3MtMS4zNC0zLTMtMy0zIDEuMzQtMyAzYzAgLjI0LjA0LjQ3LjA5LjdMOC4wNCA5LjgxQzcuNSA5LjMxIDYuNzkgOSA2IDljLTEuNjYgMC0zIDEuMzQtMyAzczEuMzQgMyAzIDNjLjc5IDAgMS41LS4zMSAyLjA0LS44MWw3LjEyIDQuMTZjLS4wNS4yMS0uMDguNDMtLjA4LjY1IDAgMS42MSAxLjMxIDIuOTIgMi45MiAyLjkyIDEuNjEgMCAyLjkyLTEuMzEgMi45Mi0yLjkycy0xLjMxLTIuOTItMi45Mi0yLjkyeiIvPjwvc3ZnPg==)"; @@ -3203,100 +3208,100 @@ mxUtils.bind(this,function(a,b){var c=new FilenameDialog(this.editorUi,a,mxResou null,c),a.addSeparator(),this.addSubmenu("layout",a)):d.isSelectionEmpty()&&d.isEnabled()?(a.addSeparator(),this.addMenuItems(a,["editData"],null,c),a.addSeparator(),this.addSubmenu("insert",a),this.addSubmenu("layout",a),a.addSeparator(),this.addSubmenu("view",a,null,mxResources.get("options")),this.addMenuItems(a,["-","exitGroup"],null,c)):d.isEnabled()&&this.addMenuItems(a,["-","lockUnlock"],null,c)};EditorUi.prototype.toggleFormatPanel=function(b){null!=this.formatWindow?this.formatWindow.window.setVisible(b? !1:!this.formatWindow.window.isVisible()):a(this)};DiagramFormatPanel.prototype.isMathOptionVisible=function(){return!0};var g=EditorUi.prototype.destroy;EditorUi.prototype.destroy=function(){null!=this.sidebarWindow&&(this.sidebarWindow.window.setVisible(!1),this.sidebarWindow.window.destroy(),this.sidebarWindow=null);null!=this.formatWindow&&(this.formatWindow.window.setVisible(!1),this.formatWindow.window.destroy(),this.formatWindow=null);null!=this.actions.outlineWindow&&(this.actions.outlineWindow.window.setVisible(!1), this.actions.outlineWindow.window.destroy(),this.actions.outlineWindow=null);null!=this.actions.layersWindow&&(this.actions.layersWindow.window.setVisible(!1),this.actions.layersWindow.window.destroy(),this.actions.layersWindow=null);null!=this.menus.tagsWindow&&(this.menus.tagsWindow.window.setVisible(!1),this.menus.tagsWindow.window.destroy(),this.menus.tagsWindow=null);null!=this.menus.findWindow&&(this.menus.findWindow.window.setVisible(!1),this.menus.findWindow.window.destroy(),this.menus.findWindow= -null);g.apply(this,arguments)};var k=EditorUi.prototype.setGraphEnabled;EditorUi.prototype.setGraphEnabled=function(a){k.apply(this,arguments);a||(null!=this.sidebarWindow&&this.sidebarWindow.window.setVisible(!1),null!=this.formatWindow&&this.formatWindow.window.setVisible(!1))};EditorUi.prototype.chromelessWindowResize=function(){};var r=Menus.prototype.init;Menus.prototype.init=function(){r.apply(this,arguments);var b=this.editorUi,c=b.editor.graph;b.actions.get("insertText").label=mxResources.get("text"); -b.actions.get("insertText").label=mxResources.get("text");b.actions.get("editDiagram").label=mxResources.get("formatXml")+"...";b.actions.get("insertRectangle").label=mxResources.get("rectangle");b.actions.get("insertEllipse").label=mxResources.get("ellipse");b.actions.get("insertRhombus").label=mxResources.get("rhombus");b.actions.get("insertImage").label=mxResources.get("image")+"...";b.actions.get("insertLink").label=mxResources.get("link")+"...";b.actions.get("createShape").label=mxResources.get("shape")+ -"...";b.actions.get("outline").label=mxResources.get("outline")+"...";b.actions.get("layers").label=mxResources.get("layers")+"...";b.actions.put("importFile",new Action("File...",function(){c.popupMenuHandler.hideMenu();var a=document.createElement("input");a.setAttribute("type","file");mxEvent.addListener(a,"change",function(){null!=a.files&&b.importFiles(a.files,null,null,b.maxImageSize)});a.click()}));b.actions.put("importCsv",new Action(mxResources.get("csv")+"...",function(){c.popupMenuHandler.hideMenu(); -b.showImportCsvDialog()}));b.actions.put("importText",new Action(mxResources.get("text")+"...",function(){var a=new ParseDialog(b,"Insert from Text");b.showDialog(a.container,620,420,!0,!1);a.init()}));b.actions.put("formatSql",new Action(mxResources.get("formatSql")+"...",function(){var a=new ParseDialog(b,"Insert from Text","formatSql");b.showDialog(a.container,620,420,!0,!1);a.init()}));b.actions.put("toggleShapes",new Action(mxResources.get("shapes")+"...",function(){d(b)}));b.actions.put("toggleFormat", -new Action(mxResources.get("format")+"...",function(){a(b)}));EditorUi.enablePlantUml&&!b.isOffline()&&b.actions.put("plantUml",new Action(mxResources.get("plantUml")+"...",function(){var a=new ParseDialog(b,"Insert from Text","plantUml");b.showDialog(a.container,620,420,!0,!1);a.init()}));this.put("diagram",new Menu(mxUtils.bind(this,function(a,c){b.menus.addSubmenu("extras",a,c,mxResources.get("preferences"));a.addSeparator(c);mxClient.IS_CHROMEAPP||EditorUi.isElectronApp?b.menus.addMenuItems(a, -"new open - save saveAs -".split(" "),c):"1"==urlParams.embed?(b.menus.addMenuItems(a,["-","save"],c),"1"==urlParams.saveAndExit&&b.menus.addMenuItems(a,["saveAndExit"],c),a.addSeparator(c)):(b.menus.addMenuItems(a,["new"],c),b.menus.addSubmenu("openFrom",a,c),a.addSeparator(c),b.menus.addSubmenu("save",a,c));b.menus.addSubmenu("exportAs",a,c);var d=b.getCurrentFile();null!=d&&d.constructor==DriveFile&&(b.menus.addMenuItems(a,["-","share"],c),null!=d.realtime&&b.menus.addMenuItems(a,["chatWindowTitle"], -c),a.addSeparator(c));b.menus.addMenuItems(a,"- outline layers - find tags".split(" "),c);mxClient.IS_IOS&&navigator.standalone||b.menus.addMenuItems(a,["-","print","-"],c);b.menus.addSubmenu("help",a,c);"1"==urlParams.embed?b.menus.addMenuItems(a,["-","exit"],c):b.menus.addMenuItems(a,["-","close"])})));if(isLocalStorage){var e=this.get("openFrom"),f=e.funct;e.funct=function(a,c){f.apply(this,arguments);a.addSeparator(c);b.menus.addSubmenu("openRecent",a,c)}}this.put("save",new Menu(mxUtils.bind(this, -function(a,c){var d=b.getCurrentFile();null!=d&&d.constructor==DriveFile?b.menus.addMenuItems(a,["createRevision","makeCopy","-","rename","moveToFolder"],c):(b.menus.addMenuItems(a,["save","saveAs","-","rename"],c),b.isOfflineApp()?navigator.onLine&&"1"!=urlParams.stealth&&this.addMenuItems(a,["upload"],c):b.menus.addMenuItems(a,["makeCopy"],c));null==d||d.constructor!=DriveFile&&d.constructor!=DropboxFile||b.menus.addMenuItems(a,["-","revisionHistory"],c);b.menus.addMenuItems(a,["-","autosave"], -c)})));var g=this.get("exportAs");this.put("exportAs",new Menu(mxUtils.bind(this,function(a,c){g.funct(a,c);mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||b.menus.addMenuItems(a,["publishLink"],c);a.addSeparator(c);b.menus.addSubmenu("embed",a,c)})));var h=this.get("language");this.put("extras",new Menu(mxUtils.bind(this,function(a,c){"1"!=urlParams.embed&&b.menus.addSubmenu("theme",a,c);null!=h&&b.menus.addSubmenu("language",a,c);a.addSeparator(c);b.menus.addMenuItems(a,["scrollbars","tooltips"], -c);"1"!=urlParams.embed&&(isLocalStorage||mxClient.IS_CHROMEAPP)&&b.menus.addMenuItems(a,["-","search","scratchpad","-","showStartScreen"],c);!b.isOfflineApp()&&isLocalStorage&&(a.addSeparator(c),b.menus.addMenuItem(a,"plugins",c))})));this.put("insertAdvanced",new Menu(mxUtils.bind(this,function(a,c){b.menus.addMenuItems(a,"importText plantUml - formatSql importCsv - createShape editDiagram".split(" "),c)})));mxResources.parse("insertLayout="+mxResources.get("layout"));mxResources.parse("insertAdvanced="+ -mxResources.get("advanced"));this.put("insert",new Menu(mxUtils.bind(this,function(a,c){b.menus.addMenuItems(a,"insertRectangle insertEllipse insertRhombus - insertText insertLink - insertImage".split(" "),c);mxClient.IS_CHROMEAPP||EditorUi.isElectronApp?b.menus.addMenuItems(a,["import"],c):b.menus.addSubmenu("importFrom",a,c);a.addSeparator(c);b.menus.addSubmenu("insertLayout",a,c);b.menus.addSubmenu("insertAdvanced",a,c)})));var k="horizontalFlow verticalFlow - horizontalTree verticalTree radialTree - organic circle".split(" "), -l=function(a,c,d,e){a.addItem(d,null,mxUtils.bind(this,function(){var a=new CreateGraphDialog(b,d,e);b.showDialog(a.container,620,420,!0,!1);a.init()}),c)};this.put("insertLayout",new Menu(mxUtils.bind(this,function(a,b){for(var c=0;c<k.length;c++)"-"==k[c]?a.addSeparator(b):l(a,b,mxResources.get(k[c])+"...",k[c])})));this.put("view",new Menu(mxUtils.bind(this,function(a,c){b.menus.addMenuItems(a,"grid guides - connectionArrows connectionPoints -".split(" "),c);if("undefined"!==typeof MathJax){var d= -b.menus.addMenuItem(a,"mathematicalTypesetting",c);b.menus.addLinkToItem(d,"https://desk.draw.io/support/solutions/articles/16000032875")}b.menus.addMenuItems(a,["copyConnect","collapseExpand","-","pageScale"],c)})))};var l=EditorUi.prototype.init;EditorUi.prototype.init=function(){function a(a,b,c,d){var e=g.menus.get(a),f=p.addMenu(mxResources.get(a),mxUtils.bind(this,function(){e.funct.apply(this,arguments)}),m);f.className="geMenuItem";f.style.display="inline-block";f.style.boxSizing="border-box"; +null);g.apply(this,arguments)};var n=EditorUi.prototype.setGraphEnabled;EditorUi.prototype.setGraphEnabled=function(a){n.apply(this,arguments);a||(null!=this.sidebarWindow&&this.sidebarWindow.window.setVisible(!1),null!=this.formatWindow&&this.formatWindow.window.setVisible(!1))};EditorUi.prototype.chromelessWindowResize=function(){};var r=Menus.prototype.init;Menus.prototype.init=function(){r.apply(this,arguments);var c=this.editorUi,d=c.editor.graph;c.actions.get("insertText").label=mxResources.get("text"); +c.actions.get("insertText").label=mxResources.get("text");c.actions.get("editDiagram").label=mxResources.get("formatXml")+"...";c.actions.get("insertRectangle").label=mxResources.get("rectangle");c.actions.get("insertEllipse").label=mxResources.get("ellipse");c.actions.get("insertRhombus").label=mxResources.get("rhombus");c.actions.get("insertImage").label=mxResources.get("image")+"...";c.actions.get("insertLink").label=mxResources.get("link")+"...";c.actions.get("createShape").label=mxResources.get("shape")+ +"...";c.actions.get("outline").label=mxResources.get("outline")+"...";c.actions.get("layers").label=mxResources.get("layers")+"...";c.actions.put("importFile",new Action("File...",function(){d.popupMenuHandler.hideMenu();var a=document.createElement("input");a.setAttribute("type","file");mxEvent.addListener(a,"change",function(){null!=a.files&&c.importFiles(a.files,null,null,c.maxImageSize)});a.click()}));c.actions.put("importCsv",new Action(mxResources.get("csv")+"...",function(){d.popupMenuHandler.hideMenu(); +c.showImportCsvDialog()}));c.actions.put("importText",new Action(mxResources.get("text")+"...",function(){var a=new ParseDialog(c,"Insert from Text");c.showDialog(a.container,620,420,!0,!1);a.init()}));c.actions.put("formatSql",new Action(mxResources.get("formatSql")+"...",function(){var a=new ParseDialog(c,"Insert from Text","formatSql");c.showDialog(a.container,620,420,!0,!1);a.init()}));c.actions.put("toggleShapes",new Action(mxResources.get("shapes")+"...",function(){b(c)}));c.actions.put("toggleFormat", +new Action(mxResources.get("format")+"...",function(){a(c)}));EditorUi.enablePlantUml&&!c.isOffline()&&c.actions.put("plantUml",new Action(mxResources.get("plantUml")+"...",function(){var a=new ParseDialog(c,"Insert from Text","plantUml");c.showDialog(a.container,620,420,!0,!1);a.init()}));this.put("diagram",new Menu(mxUtils.bind(this,function(a,b){var d=c.getCurrentFile();c.menus.addSubmenu("extras",a,b,mxResources.get("preferences"));a.addSeparator(b);mxClient.IS_CHROMEAPP||EditorUi.isElectronApp? +c.menus.addMenuItems(a,"new open - save saveAs -".split(" "),b):"1"==urlParams.embed?(c.menus.addMenuItems(a,["-","save"],b),"1"==urlParams.saveAndExit&&c.menus.addMenuItems(a,["saveAndExit"],b),a.addSeparator(b)):(c.menus.addMenuItems(a,["new"],b),c.menus.addSubmenu("openFrom",a,b),a.addSeparator(b),c.menus.addSubmenu("save",a,b));c.menus.addSubmenu("exportAs",a,b);null!=d&&d.constructor==DriveFile&&(c.menus.addMenuItems(a,["-","share"],b),null!=d.realtime?c.menus.addMenuItems(a,["chatWindowTitle"], +b):c.menus.addMenuItems(a,["-","refresh"],b),a.addSeparator(b));c.menus.addMenuItems(a,"- outline layers - find tags".split(" "),b);mxClient.IS_IOS&&navigator.standalone||c.menus.addMenuItems(a,["-","print","-"],b);c.menus.addSubmenu("help",a,b);"1"==urlParams.embed?c.menus.addMenuItems(a,["-","exit"],b):c.menus.addMenuItems(a,["-","close"])})));if(isLocalStorage){var e=this.get("openFrom"),f=e.funct;e.funct=function(a,b){f.apply(this,arguments);a.addSeparator(b);c.menus.addSubmenu("openRecent",a, +b)}}this.put("save",new Menu(mxUtils.bind(this,function(a,b){var d=c.getCurrentFile();null!=d&&d.constructor==DriveFile?c.menus.addMenuItems(a,["createRevision","makeCopy","-","rename","moveToFolder"],b):(c.menus.addMenuItems(a,["save","saveAs","-","rename"],b),c.isOfflineApp()?navigator.onLine&&"1"!=urlParams.stealth&&this.addMenuItems(a,["upload"],b):c.menus.addMenuItems(a,["makeCopy"],b));null==d||d.constructor!=DriveFile&&d.constructor!=DropboxFile||c.menus.addMenuItems(a,["-","revisionHistory"], +b);c.menus.addMenuItems(a,["-","autosave"],b)})));var g=this.get("exportAs");this.put("exportAs",new Menu(mxUtils.bind(this,function(a,b){g.funct(a,b);mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||c.menus.addMenuItems(a,["publishLink"],b);a.addSeparator(b);c.menus.addSubmenu("embed",a,b)})));var h=this.get("language");this.put("extras",new Menu(mxUtils.bind(this,function(a,b){"1"!=urlParams.embed&&c.menus.addSubmenu("theme",a,b);null!=h&&c.menus.addSubmenu("language",a,b);a.addSeparator(b);c.menus.addMenuItems(a, +["scrollbars","tooltips"],b);"1"!=urlParams.embed&&(isLocalStorage||mxClient.IS_CHROMEAPP)&&c.menus.addMenuItems(a,["-","search","scratchpad","-","showStartScreen"],b);!c.isOfflineApp()&&isLocalStorage&&(a.addSeparator(b),c.menus.addMenuItem(a,"plugins",b))})));this.put("insertAdvanced",new Menu(mxUtils.bind(this,function(a,b){c.menus.addMenuItems(a,"importText plantUml - formatSql importCsv - createShape editDiagram".split(" "),b)})));mxResources.parse("insertLayout="+mxResources.get("layout")); +mxResources.parse("insertAdvanced="+mxResources.get("advanced"));this.put("insert",new Menu(mxUtils.bind(this,function(a,b){c.menus.addMenuItems(a,"insertRectangle insertEllipse insertRhombus - insertText insertLink - insertImage".split(" "),b);mxClient.IS_CHROMEAPP||EditorUi.isElectronApp?c.menus.addMenuItems(a,["import"],b):c.menus.addSubmenu("importFrom",a,b);a.addSeparator(b);c.menus.addSubmenu("insertLayout",a,b);c.menus.addSubmenu("insertAdvanced",a,b)})));var k="horizontalFlow verticalFlow - horizontalTree verticalTree radialTree - organic circle".split(" "), +l=function(a,b,d,e){a.addItem(d,null,mxUtils.bind(this,function(){var a=new CreateGraphDialog(c,d,e);c.showDialog(a.container,620,420,!0,!1);a.init()}),b)};this.put("insertLayout",new Menu(mxUtils.bind(this,function(a,b){for(var c=0;c<k.length;c++)"-"==k[c]?a.addSeparator(b):l(a,b,mxResources.get(k[c])+"...",k[c])})));this.put("view",new Menu(mxUtils.bind(this,function(a,b){c.menus.addMenuItems(a,"grid guides - connectionArrows connectionPoints -".split(" "),b);if("undefined"!==typeof MathJax){var d= +c.menus.addMenuItem(a,"mathematicalTypesetting",b);c.menus.addLinkToItem(d,"https://desk.draw.io/support/solutions/articles/16000032875")}c.menus.addMenuItems(a,["copyConnect","collapseExpand","-","pageScale"],b)})))};var h=EditorUi.prototype.init;EditorUi.prototype.init=function(){function a(a,b,c,d){var e=g.menus.get(a),f=p.addMenu(mxResources.get(a),mxUtils.bind(this,function(){e.funct.apply(this,arguments)}),n);f.className="geMenuItem";f.style.display="inline-block";f.style.boxSizing="border-box"; f.style.top="6px";f.style.marginRight="6px";f.style.height="30px";f.style.paddingTop="6px";f.style.paddingBottom="6px";f.setAttribute("title",mxResources.get(a));g.menus.menuCreated(e,f,"geMenuItem");null!=c?(f.style.backgroundImage="url("+c+")",f.style.backgroundPosition="center center",f.style.backgroundRepeat="no-repeat",f.style.backgroundSize="24px 24px",f.style.width="34px",f.innerHTML="",mxUtils.setOpacity(f,d||40)):b||(f.style.backgroundImage="url("+mxWindow.prototype.normalizeImage+")",f.style.backgroundPosition= -"right 6px center",f.style.backgroundRepeat="no-repeat",f.style.paddingRight="22px");return f}function b(a,b,c,d,e,f){var h=document.createElement("a");h.setAttribute("href","javascript:void(0)");h.className="geMenuItem";h.style.display="inline-block";h.style.boxSizing="border-box";h.style.height="30px";h.style.padding="6px";h.style.position="relative";h.style.verticalAlign="top";h.style.top="0px";null!=g.statusContainer?k.insertBefore(h,g.statusContainer):k.appendChild(h);null!=f?(h.style.backgroundImage= +"right 6px center",f.style.backgroundRepeat="no-repeat",f.style.paddingRight="22px");return f}function b(a,b,c,d,e,f){var h=document.createElement("a");h.setAttribute("href","javascript:void(0)");h.className="geMenuItem";h.style.display="inline-block";h.style.boxSizing="border-box";h.style.height="30px";h.style.padding="6px";h.style.position="relative";h.style.verticalAlign="top";h.style.top="0px";null!=g.statusContainer?l.insertBefore(h,g.statusContainer):l.appendChild(h);null!=f?(h.style.backgroundImage= "url("+f+")",h.style.backgroundPosition="center center",h.style.backgroundRepeat="no-repeat",h.style.backgroundSize="24px 24px",h.style.width="34px"):mxUtils.write(h,a);mxEvent.addListener(h,"click",function(a){"disabled"!=h.getAttribute("disabled")&&b(a);mxEvent.consume(a)});null==c&&(h.style.marginRight="4px");null!=d&&h.setAttribute("title",d);mxUtils.setOpacity(h,null!=f?40:100);null!=e&&(a=function(){e.isEnabled()?(h.removeAttribute("disabled"),mxUtils.setOpacity(h,null!=f?40:100),h.style.cursor= ""):(h.setAttribute("disabled","disabled"),mxUtils.setOpacity(h,null!=f?10:20),h.style.cursor="default")},e.addListener("stateChanged",a),a());return h}function c(a){var b=document.createElement("div");b.className="geMenuItem";b.style.display="inline-block";b.style.verticalAlign="top";b.style.marginRight="6px";b.style.padding="0 4px 0 4px";b.style.height="30px";b.style.position="relative";b.style.top="0px";for(var c=0;c<a.length;c++)null!=a[c]&&(a[c].style.margin="0px",a[c].style.boxShadow="none", -b.appendChild(a[c]));null!=g.statusContainer?k.insertBefore(b,g.statusContainer):k.appendChild(b);return b}function d(){for(var d=k.firstChild;null!=d;){var f=d.nextSibling;"geMenuItem"!=d.className&&"geItem"!=d.className||d.parentNode.removeChild(d);d=f}m=k.firstChild;e=window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth;(d=900>e)||a("diagram");c([d?a("diagram",null,IMAGE_PATH+"/drawlogo-gray.svg",100):null,b(mxResources.get("shapes"),g.actions.get("toggleShapes").funct, +b.appendChild(a[c]));null!=g.statusContainer?l.insertBefore(b,g.statusContainer):l.appendChild(b);return b}function d(){for(var d=l.firstChild;null!=d;){var f=d.nextSibling;"geMenuItem"!=d.className&&"geItem"!=d.className||d.parentNode.removeChild(d);d=f}n=l.firstChild;e=window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth;(d=900>e)||a("diagram");c([d?a("diagram",null,IMAGE_PATH+"/drawlogo-gray.svg",100):null,b(mxResources.get("shapes"),g.actions.get("toggleShapes").funct, null,mxResources.get("shapes"),g.actions.get("image"),d?"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTMgMTN2OGg4di04aC04ek0zIDIxaDh2LThIM3Y4ek0zIDN2OGg4VjNIM3ptMTMuNjYtMS4zMUwxMSA3LjM0IDE2LjY2IDEzbDUuNjYtNS42Ni01LjY2LTUuNjV6Ii8+PC9zdmc+":null),b(mxResources.get("format"),g.actions.get("toggleFormat").funct,null,mxResources.get("format")+" ("+g.actions.get("formatPanel").shortcut+")",g.actions.get("image"), d?"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTIgM2MtNC45NyAwLTkgNC4wMy05IDlzNC4wMyA5IDkgOWMuODMgMCAxLjUtLjY3IDEuNS0xLjUgMC0uMzktLjE1LS43NC0uMzktMS4wMS0uMjMtLjI2LS4zOC0uNjEtLjM4LS45OSAwLS44My42Ny0xLjUgMS41LTEuNUgxNmMyLjc2IDAgNS0yLjI0IDUtNSAwLTQuNDItNC4wMy04LTktOHptLTUuNSA5Yy0uODMgMC0xLjUtLjY3LTEuNS0xLjVTNS42NyA5IDYuNSA5IDggOS42NyA4IDEwLjUgNy4zMyAxMiA2LjUgMTJ6bTMtNEM4LjY3IDggOCA3LjMzIDggNi41UzguNjcgNSA5LjUgNXMxLjUuNjcgMS41IDEuNVMxMC4zMyA4IDkuNSA4em01IDBjLS44MyAwLTEuNS0uNjctMS41LTEuNVMxMy42NyA1IDE0LjUgNXMxLjUuNjcgMS41IDEuNVMxNS4zMyA4IDE0LjUgOHptMyA0Yy0uODMgMC0xLjUtLjY3LTEuNS0xLjVTMTYuNjcgOSAxNy41IDlzMS41LjY3IDEuNSAxLjUtLjY3IDEuNS0xLjUgMS41eiIvPjwvc3ZnPg==": null)]);f=a("insert",!0,d?"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTkgMTNoLTZ2NmgtMnYtNkg1di0yaDZWNWgydjZoNnYyeiIvPjwvc3ZnPg==":null,40);c([f,b(mxResources.get("delete"),g.actions.get("delete").funct,null,mxResources.get("delete"),g.actions.get("delete"),d?"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNNiAxOWMwIDEuMS45IDIgMiAyaDhjMS4xIDAgMi0uOSAyLTJWN0g2djEyek0xOSA0aC0zLjVsLTEtMWgtNWwtMSAxSDV2MmgxNFY0eiIvPjwvc3ZnPg==": null)]);if(411<=e&&(f=g.actions.get("undo"),d=g.actions.get("redo"),f=b("",f.funct,null,mxResources.get("undo")+" ("+f.shortcut+")",f,"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTIuNSA4Yy0yLjY1IDAtNS4wNS45OS02LjkgMi42TDIgN3Y5aDlsLTMuNjItMy42MmMxLjM5LTEuMTYgMy4xNi0xLjg4IDUuMTItMS44OCAzLjU0IDAgNi41NSAyLjMxIDcuNiA1LjVsMi4zNy0uNzhDMjEuMDggMTEuMDMgMTcuMTUgOCAxMi41IDh6Ii8+PC9zdmc+"),d=b("",d.funct, -null,mxResources.get("redo")+" ("+d.shortcut+")",d,"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTguNCAxMC42QzE2LjU1IDguOTkgMTQuMTUgOCAxMS41IDhjLTQuNjUgMC04LjU4IDMuMDMtOS45NiA3LjIyTDMuOSAxNmMxLjA1LTMuMTkgNC4wNS01LjUgNy42LTUuNSAxLjk1IDAgMy43My43MiA1LjEyIDEuODhMMTMgMTZoOVY3bC0zLjYgMy42eiIvPjwvc3ZnPg=="),c([f,d]),480<=e)){var d=g.actions.get("zoomIn"),f=g.actions.get("zoomOut"),l=g.actions.get("resetView"); -c([b("",function(){h.popupMenuHandler.hideMenu();var a=h.view.scale,b=h.view.translate.x,c=h.view.translate.y;g.actions.get("resetView").funct();1E-5>Math.abs(a-h.view.scale)&&b==h.view.translate.x&&c==h.view.translate.y&&g.actions.get(h.pageVisible?"fitPage":"fitWindow").funct()},!0,mxResources.get("fit")+" ("+Editor.ctrlKey+"+H)",l,"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMyA1djRoMlY1aDRWM0g1Yy0xLjEgMC0yIC45LTIgMnptMiAxMEgzdjRjMCAxLjEuOSAyIDIgMmg0di0ySDV2LTR6bTE0IDRoLTR2Mmg0YzEuMSAwIDItLjkgMi0ydi00aC0ydjR6bTAtMTZoLTR2Mmg0djRoMlY1YzAtMS4xLS45LTItMi0yeiIvPjwvc3ZnPg=="), +null,mxResources.get("redo")+" ("+d.shortcut+")",d,"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTguNCAxMC42QzE2LjU1IDguOTkgMTQuMTUgOCAxMS41IDhjLTQuNjUgMC04LjU4IDMuMDMtOS45NiA3LjIyTDMuOSAxNmMxLjA1LTMuMTkgNC4wNS01LjUgNy42LTUuNSAxLjk1IDAgMy43My43MiA1LjEyIDEuODhMMTMgMTZoOVY3bC0zLjYgMy42eiIvPjwvc3ZnPg=="),c([f,d]),480<=e)){var d=g.actions.get("zoomIn"),f=g.actions.get("zoomOut"),h=g.actions.get("resetView"); +c([b("",function(){k.popupMenuHandler.hideMenu();var a=k.view.scale,b=k.view.translate.x,c=k.view.translate.y;g.actions.get("resetView").funct();1E-5>Math.abs(a-k.view.scale)&&b==k.view.translate.x&&c==k.view.translate.y&&g.actions.get(k.pageVisible?"fitPage":"fitWindow").funct()},!0,mxResources.get("fit")+" ("+Editor.ctrlKey+"+H)",h,"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMyA1djRoMlY1aDRWM0g1Yy0xLjEgMC0yIC45LTIgMnptMiAxMEgzdjRjMCAxLjEuOSAyIDIgMmg0di0ySDV2LTR6bTE0IDRoLTR2Mmg0YzEuMSAwIDItLjkgMi0ydi00aC0ydjR6bTAtMTZoLTR2Mmg0djRoMlY1YzAtMS4xLS45LTItMi0yeiIvPjwvc3ZnPg=="), 640<=e?b("",d.funct,!0,mxResources.get("zoomIn")+" ("+Editor.ctrlKey+" +)",d,"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTUuNSAxNGgtLjc5bC0uMjgtLjI3QzE1LjQxIDEyLjU5IDE2IDExLjExIDE2IDkuNSAxNiA1LjkxIDEzLjA5IDMgOS41IDNTMyA1LjkxIDMgOS41IDUuOTEgMTYgOS41IDE2YzEuNjEgMCAzLjA5LS41OSA0LjIzLTEuNTdsLjI3LjI4di43OWw1IDQuOTlMMjAuNDkgMTlsLTQuOTktNXptLTYgMEM3LjAxIDE0IDUgMTEuOTkgNSA5LjVTNy4wMSA1IDkuNSA1IDE0IDcuMDEgMTQgOS41IDExLjk5IDE0IDkuNSAxNHptMi41LTRoLTJ2Mkg5di0ySDdWOWgyVjdoMXYyaDJ2MXoiLz48L3N2Zz4="): null,640<=e?b("",f.funct,!0,mxResources.get("zoomOut")+" ("+Editor.ctrlKey+" -)",f,"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTUuNSAxNGgtLjc5bC0uMjgtLjI3QzE1LjQxIDEyLjU5IDE2IDExLjExIDE2IDkuNSAxNiA1LjkxIDEzLjA5IDMgOS41IDNTMyA1LjkxIDMgOS41IDUuOTEgMTYgOS41IDE2YzEuNjEgMCAzLjA5LS41OSA0LjIzLTEuNTdsLjI3LjI4di43OWw1IDQuOTlMMjAuNDkgMTlsLTQuOTktNXptLTYgMEM3LjAxIDE0IDUgMTEuOTkgNSA5LjVTNy4wMSA1IDkuNSA1IDE0IDcuMDEgMTQgOS41IDExLjk5IDE0IDkuNSAxNHpNNyA5aDV2MUg3eiIvPjwvc3ZnPg=="): null])}d=g.menus.get("language");null!=d&&!mxClient.IS_CHROMEAPP&&!EditorUi.isElectronApp&&540<=e?(f=p.addMenu("",d.funct),f.setAttribute("title",mxResources.get("language")),f.style.backgroundImage="url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTEuOTkgMkM2LjQ3IDIgMiA2LjQ4IDIgMTJzNC40NyAxMCA5Ljk5IDEwQzE3LjUyIDIyIDIyIDE3LjUyIDIyIDEyUzE3LjUyIDIgMTEuOTkgMnptNi45MyA2aC0yLjk1Yy0uMzItMS4yNS0uNzgtMi40NS0xLjM4LTMuNTYgMS44NC42MyAzLjM3IDEuOTEgNC4zMyAzLjU2ek0xMiA0LjA0Yy44MyAxLjIgMS40OCAyLjUzIDEuOTEgMy45NmgtMy44MmMuNDMtMS40MyAxLjA4LTIuNzYgMS45MS0zLjk2ek00LjI2IDE0QzQuMSAxMy4zNiA0IDEyLjY5IDQgMTJzLjEtMS4zNi4yNi0yaDMuMzhjLS4wOC42Ni0uMTQgMS4zMi0uMTQgMiAwIC42OC4wNiAxLjM0LjE0IDJINC4yNnptLjgyIDJoMi45NWMuMzIgMS4yNS43OCAyLjQ1IDEuMzggMy41Ni0xLjg0LS42My0zLjM3LTEuOS00LjMzLTMuNTZ6bTIuOTUtOEg1LjA4Yy45Ni0xLjY2IDIuNDktMi45MyA0LjMzLTMuNTZDOC44MSA1LjU1IDguMzUgNi43NSA4LjAzIDh6TTEyIDE5Ljk2Yy0uODMtMS4yLTEuNDgtMi41My0xLjkxLTMuOTZoMy44MmMtLjQzIDEuNDMtMS4wOCAyLjc2LTEuOTEgMy45NnpNMTQuMzQgMTRIOS42NmMtLjA5LS42Ni0uMTYtMS4zMi0uMTYtMiAwLS42OC4wNy0xLjM1LjE2LTJoNC42OGMuMDkuNjUuMTYgMS4zMi4xNiAyIDAgLjY4LS4wNyAxLjM0LS4xNiAyem0uMjUgNS41NmMuNi0xLjExIDEuMDYtMi4zMSAxLjM4LTMuNTZoMi45NWMtLjk2IDEuNjUtMi40OSAyLjkzLTQuMzMgMy41NnpNMTYuMzYgMTRjLjA4LS42Ni4xNC0xLjMyLjE0LTIgMC0uNjgtLjA2LTEuMzQtLjE0LTJoMy4zOGMuMTYuNjQuMjYgMS4zMS4yNiAycy0uMSAxLjM2LS4yNiAyaC0zLjM4eiIvPjwvc3ZnPg==)", -f.style.backgroundPosition="center center",f.style.backgroundRepeat="no-repeat",f.style.backgroundSize="24px 24px",f.style.position="absolute",f.style.height="24px",f.style.width="24px",f.style.zIndex="1",f.style.top="11px",f.style.right="14px",mxUtils.setOpacity(f,30),k.appendChild(f),g.buttonContainer.style.right="40px"):g.buttonContainer.style.right="14px"}l.apply(this,arguments);var f=document.createElement("div");f.style.cssText="position:absolute;left:0px;right:0px;top:0px;overflow-y:auto;overflow-x:hidden;"; -f.style.bottom="1"!=urlParams.embed||"1"==urlParams.libraries?"63px":"32px";this.sidebar=this.createSidebar(f);var g=this,h=g.editor.graph;g.toolbar=this.createToolbar(g.createDiv("geToolbar"));g.defaultLibraryName=mxResources.get("untitledLibrary");var k=document.createElement("div");k.style.cssText="position:absolute;left:0px;right:0px;top:0px;height:30px;padding:8px;border-bottom:1px solid lightgray;background-color:#ffffff;text-align:left;white-space:nowrap;";var m=null,p=new Menubar(g,k);g.statusContainer= +f.style.backgroundPosition="center center",f.style.backgroundRepeat="no-repeat",f.style.backgroundSize="24px 24px",f.style.position="absolute",f.style.height="24px",f.style.width="24px",f.style.zIndex="1",f.style.top="11px",f.style.right="14px",mxUtils.setOpacity(f,30),l.appendChild(f),g.buttonContainer.style.right="40px"):g.buttonContainer.style.right="14px"}h.apply(this,arguments);var f=document.createElement("div");f.style.cssText="position:absolute;left:0px;right:0px;top:0px;overflow-y:auto;overflow-x:hidden;"; +f.style.bottom="1"!=urlParams.embed||"1"==urlParams.libraries?"63px":"32px";this.sidebar=this.createSidebar(f);var g=this,k=g.editor.graph;g.toolbar=this.createToolbar(g.createDiv("geToolbar"));g.defaultLibraryName=mxResources.get("untitledLibrary");var l=document.createElement("div");l.style.cssText="position:absolute;left:0px;right:0px;top:0px;height:30px;padding:8px;border-bottom:1px solid lightgray;background-color:#ffffff;text-align:left;white-space:nowrap;";var n=null,p=new Menubar(g,l);g.statusContainer= g.createStatusContainer();g.statusContainer.style.position="relative";g.statusContainer.style.maxWidth="";g.statusContainer.style.marginTop="7px";g.statusContainer.style.marginLeft="6px";g.statusContainer.style.color="gray";g.statusContainer.style.cursor="default";g.editor.addListener("statusChanged",mxUtils.bind(this,function(){g.setStatusText(g.editor.getStatus())}));var q=g.descriptorChanged;g.descriptorChanged=function(){q.apply(this,arguments);var a=g.getCurrentFile();if(null!=a&&null!=a.getTitle()){var b= -a.getMode();"google"==b?b="googleDrive":"github"==b?b="gitHub":"onedrive"==b&&(b="oneDrive");b=mxResources.get(b);k.setAttribute("title",a.getTitle()+(null!=b?" ("+b+")":""))}else k.removeAttribute("title")};g.setStatusText(g.editor.getStatus());k.appendChild(g.statusContainer);g.buttonContainer=document.createElement("div");g.buttonContainer.style.cssText="position:absolute;right:40px;top:12px;white-space:nowrap;";k.appendChild(g.buttonContainer);g.menubarContainer=g.buttonContainer;g.tabContainer= +a.getMode();"google"==b?b="googleDrive":"github"==b?b="gitHub":"onedrive"==b&&(b="oneDrive");b=mxResources.get(b);l.setAttribute("title",a.getTitle()+(null!=b?" ("+b+")":""))}else l.removeAttribute("title")};g.setStatusText(g.editor.getStatus());l.appendChild(g.statusContainer);g.buttonContainer=document.createElement("div");g.buttonContainer.style.cssText="position:absolute;right:40px;top:12px;white-space:nowrap;";l.appendChild(g.buttonContainer);g.menubarContainer=g.buttonContainer;g.tabContainer= document.createElement("div");g.tabContainer.style.cssText="position:absolute;left:0px;right:0px;bottom:0px;height:30px;white-space:nowrap;border-bottom:1px solid lightgray;background-color:#ffffff;border-top:1px solid lightgray;margin-bottom:-2px;visibility:hidden;";var f=g.diagramContainer.parentNode,r=document.createElement("div");r.style.cssText="position:absolute;top:0px;left:0px;right:0px;bottom:0px;overflow:hidden;";g.diagramContainer.style.top="47px";var u=g.menus.get("viewZoom");if(null!= u){this.tabContainer.style.right="70px";var C=p.addMenu("100%",u.funct);C.setAttribute("title",mxResources.get("zoom")+" (Alt+Mousewheel)");C.style.whiteSpace="nowrap";C.style.backgroundImage="url("+mxWindow.prototype.minimizeImage+")";C.style.backgroundPosition="right 6px center";C.style.backgroundRepeat="no-repeat";C.style.backgroundColor="#ffffff";C.style.paddingRight="10px";C.style.display="block";C.style.position="absolute";C.style.textDecoration="none";C.style.textDecoration="none";C.style.right= "0px";C.style.bottom="0px";C.style.overflow="hidden";C.style.visibility="hidden";C.style.textAlign="center";C.style.color="#000";C.style.fontSize="12px";C.style.color="#707070";C.style.width="59px";C.style.borderTop="1px solid lightgray";C.style.borderLeft="1px solid lightgray";C.style.height=parseInt(g.tabContainer.style.height)-1+"px";C.style.lineHeight=parseInt(g.tabContainer.style.height)+1+"px";r.appendChild(C);u=mxUtils.bind(this,function(){C.innerHTML=Math.round(100*g.editor.graph.view.scale)+ -"%"});g.editor.graph.view.addListener(mxEvent.EVENT_SCALE,u);g.editor.addListener("resetGraphView",u);g.editor.addListener("pageSelected",u);var I=g.setGraphEnabled;g.setGraphEnabled=function(){I.apply(this,arguments);null!=this.tabContainer&&(C.style.visibility=this.tabContainer.style.visibility,this.diagramContainer.style.bottom="hidden"!=this.tabContainer.style.visibility?"30px":"0px")}}r.appendChild(g.tabContainer);r.appendChild(k);r.appendChild(g.diagramContainer);f.appendChild(r);g.updateTabContainer(); +"%"});g.editor.graph.view.addListener(mxEvent.EVENT_SCALE,u);g.editor.addListener("resetGraphView",u);g.editor.addListener("pageSelected",u);var I=g.setGraphEnabled;g.setGraphEnabled=function(){I.apply(this,arguments);null!=this.tabContainer&&(C.style.visibility=this.tabContainer.style.visibility,this.diagramContainer.style.bottom="hidden"!=this.tabContainer.style.visibility?"30px":"0px")}}r.appendChild(g.tabContainer);r.appendChild(l);r.appendChild(g.diagramContainer);f.appendChild(r);g.updateTabContainer(); d();mxEvent.addListener(window,"resize",function(){d();null!=g.sidebarWindow&&g.sidebarWindow.window.fit();null!=g.formatWindow&&g.formatWindow.window.fit();null!=g.actions.outlineWindow&&g.actions.outlineWindow.window.fit();null!=g.actions.layersWindow&&g.actions.layersWindow.window.fit();null!=g.menus.tagsWindow&&g.menus.tagsWindow.window.fit();null!=g.menus.findWindow&&g.menus.findWindow.window.fit()})}}}; -(function(){var a=!1;"min"!=uiTheme||a||mxClient.IS_CHROMEAPP||(EditorUi.initMinimalTheme(),a=!0);var d=EditorUi.initTheme;EditorUi.initTheme=function(){d.apply(this,arguments);"min"!=uiTheme||a||(this.initMinimalTheme(),a=!0)}})();mxResources.parse("# *DO NOT DIRECTLY EDIT THIS FILE, IT IS AUTOMATICALLY GENERATED AND IT IS BASED ON:*\n# https://docs.google.com/spreadsheet/ccc?key=0AmQEO36liL4FdDJLWVNMaVV2UmRKSnpXU09MYkdGbEE\naboutDrawio=About draw.io\naccessDenied=Access Denied\naction=Action\nactualSize=Actual Size\nadd=Add\naddedFile=Added {1}\naddImages=Add Images\naddImageUrl=Add Image URL\naddLayer=Add Layer\naddProperty=Add Property\naddress=Address\naddToExistingDrawing=Add to Existing Drawing\naddWaypoint=Add Waypoint\nadjustTo=Adjust to\nadvanced=Advanced\nalign=Align\nalignment=Alignment\nallChangesLost=All changes will be lost!\nallPages=All Pages\nallProjects=All Projects\nallSpaces=All Spaces\nallTags=All Tags\nanchor=Anchor\nandroid=Android\nangle=Angle\narc=Arc\nareYouSure=Are you sure?\nensureDataSaved=Please ensure your data is saved before closing.\nallChangesSaved=All changes saved\nallChangesSavedInDrive=All changes saved in Drive\nallowPopups=Allow pop-ups to avoid this dialog.\nallowRelativeUrl=Allow relative URL\nalreadyConnected=Nodes already connected\napply=Apply\narchiMate21=ArchiMate 2.1\narrange=Arrange\narrow=Arrow\narrows=Arrows\nasNew=As New\natlas=Atlas\nauthor=Author\nauthorizationRequired=Authorization required\nauthorizeThisAppIn=Authorize this app in {1}:\nauthorize=Authorize\nauthorizing=Authorizing\nautomatic=Automatic\nautosave=Autosave\nautosize=Autosize\nattachments=Attachments\naws=AWS\naws3d=AWS 3D\nazure=Azure\nbackground=Background\nbackgroundColor=Background Color\nbackgroundImage=Background Image\nbasic=Basic\nblankDrawing=Blank Drawing\nblankDiagram=Blank Diagram\nblock=Block\nblockquote=Blockquote\nblog=Blog\nbold=Bold\nbootstrap=Bootstrap\nborder=Border\nborderColor=Border Color\nborderWidth=Borderwidth\nbottom=Bottom\nbottomAlign=Bottom Align\nbottomLeft=Bottom Left\nbottomRight=Bottom Right\nbpmn=BPMN\nbrowser=Browser\nbulletedList=Bulleted List\nbusiness=Business\nbusy=Operation in progress\ncabinets=Cabinets\ncancel=Cancel\ncenter=Center\ncannotLoad=Load attempts failed. Please try again later.\ncannotLogin=Log in attempts failed. Please try again later.\ncannotOpenFile=Cannot open file\nchange=Change\nchangeOrientation=Change Orientation\nchangeUser=Change user\nchangesNotSaved=Changes have not been saved\nchatJoined={1} has joined\nchatLeft={1} has left\nchatWindowTitle=Chat\nchooseAnOption=Choose an option\nchromeApp=Chrome App\ncompressed=Compressed\ncommitMessage=Commit Message\ncsv=CSV\ndark=Dark\ndraftFound=A draft for '{1}' has been found. Load it into the editor or discard it to continue.\ndragAndDropNotSupported=Drag and drop not supported for images. Would you like to import instead?\ndropboxCharsNotAllowed=The following characters are not allowed: / : ? * \" |\ncheck=Check\ncircle=Circle\ncisco=Cisco\nclassic=Classic\nclearDefaultStyle=Clear Default Style\nclearWaypoints=Clear Waypoints\nclipart=Clipart\nclose=Close\ncollaborator=Collaborator\ncollaborators=Collaborators\ncollapse=Collapse\ncollapseExpand=Collapse/Expand\ncollapse-expand=Click to collapse/expand\nShift-click to move neighbors \nAlt-click to protect group size\ncollapsible=Collapsible\ncomic=Comic\ncomment=Comment\ncommentsNotes=Comments/Notes\ncompress=Compress\nconnect=Connect\nconnecting=Connecting\nconnectWithDrive=Connect with Google Drive\nconnection=Connection\nconnectionArrows=Connection Arrows\nconnectionPoints=Connection Points\nconstrainProportions=Constrain Proportions\ncontainsValidationErrors=Contains validation errors\ncopiedToClipboard=Copied to clipboard\ncopy=Copy\ncopyConnect=Copy on connect\ncopyOf=Copy of {1}\ncopyOfDrawing=Copy of Drawing\ncopySize=Copy Size\ncopyStyle=Copy Style\ncreate=Create\ncreateNewDiagram=Create New Diagram\ncreateRevision=Create Revision\ncreateShape=Create Shape\ncrop=Crop\ncurved=Curved\ncustom=Custom\ncurrent=Current\ncut=Cut\ndashed=Dashed\ndecideLater=Decide later\ndefault=Default\ndelete=Delete\ndeleteColumn=Delete Column\ndeleteLibrary401=Insufficient permissions to delete this library\ndeleteLibrary404=Selected library could not be found\ndeleteLibrary500=Error deleting library\ndeleteLibraryConfirm=You are about to permanently delete this library. Are you sure you want to do this?\ndeleteRow=Delete Row\ndescription=Description\ndevice=Device\ndiagram=Diagram\ndiagramContent=Diagram Content\ndiagramLocked=Diagram has been locked to prevent further data loss.\ndiagramLockedBySince=The diagram is locked by {1} since {2} ago\ndiagramName=Diagram Name\ndiagramIsPublic=Diagram is public\ndiagramIsNotPublic=Diagram is not public\ndiamond=Diamond\ndiamondThin=Diamond (thin)\ndidYouKnow=Did you know...\ndirection=Direction\ndiscard=Discard\ndiscardChangesAndReconnect=Discard Changes and Reconnect\ngoogleDriveMissingClickHere=Google Drive missing? Click here!\ndiscardChanges=Discard Changes\ndisconnected=Disconnected\ndistribute=Distribute\ndone=Done\ndotted=Dotted\ndoubleClickOrientation=Doubleclick to change orientation\ndoubleClickTooltip=Doubleclick to insert text\ndoubleClickChangeProperty=Doubleclick to change property name\ndownload=Download\ndownloadDesktop=Download draw.io Desktop\ndownloadAs=Download as\nclickHereToSave=Click here to save.\ndraftDiscarded=Draft discarded\ndraftSaved=Draft saved\ndragElementsHere=Drag elements here\ndragImagesHere=Drag images or URLs here\ndragUrlsHere=Drag URLs here\ndraw.io=draw.io\ndrawing=Drawing{1}\ndrawingEmpty=Drawing is empty\ndrawingTooLarge=Drawing is too large\ndrawioForWork=Draw.io for GSuite\ndropbox=Dropbox\nduplicate=Duplicate\nduplicateIt=Duplicate {1}\ndivider=Divider\ndx=Dx\ndy=Dy\neast=East\nedit=Edit\neditData=Edit Data\neditDiagram=Edit Diagram\neditGeometry=Edit Geometry\neditImage=Edit Image\neditImageUrl=Edit Image URL\neditLink=Edit Link\neditShape=Edit Shape\neditStyle=Edit Style\neditText=Edit Text\neditTooltip=Edit Tooltip\nglass=Glass\ngoogleImages=Google Images\nimageSearch=Image Search\neip=EIP\nembed=Embed\nembedImages=Embed Images\nmainEmbedNotice=Paste this into the page\nelectrical=Electrical\nellipse=Ellipse\nembedNotice=Paste this once at the end of the page\nenterGroup=Enter Group\nenterName=Enter Name\nenterPropertyName=Enter Property Name\nenterValue=Enter Value\nentityRelation=Entity Relation\nerror=Error\nerrorDeletingFile=Error Deleting File\nerrorLoadingFile=Error loading file\nerrorRenamingFile=Error renaming file.\nerrorRenamingFileNotFound=Error renaming file. File was not found.\nerrorRenamingFileForbidden=Error renaming file. Insufficient access rights.\nerrorSavingDraft=Error saving draft\nerrorSavingFile=Error saving file\nerrorSavingFileUnknown=Error authorizing with Google's servers. Please refresh the page to re-attempt.\nerrorSavingFileForbidden=Error saving file. Insufficient access rights.\nerrorSavingFileNameConflict=Could not save diagram. Current page already contains file named '{1}'.\nerrorSavingFileNotFound=Error saving file. File was not found.\nerrorSavingFileReadOnlyMode=Could not save diagram while read-only mode is active.\nerrorSavingFileSessionTimeout=Your session has ended. Please <a target='_blank' href='{1}'>{2}</a> and return to this tab to try to save again.\nerrorSendingFeedback=Error sending feedback.\nerrorUpdatingPreview=Error updating preview.\nexit=Exit\nexitGroup=Exit Group\nexpand=Expand\nexport=Export\nexporting=Exporting\nexportAs=Export as\nexportOptionsDisabled=Export options disabled\nexportOptionsDisabledDetails=The owner has disabled options to download, print or copy for commenters and viewers on this file.\nextras=Extras\nfacebook=Facebook\nfailedToSaveTryReconnect=Failed to save, trying to reconnect\nfeatureRequest=Feature Request\nfeedback=Feedback\nfeedbackSent=Feedback successfully sent.\nfloorplans=Floorplans\nfile=File\nfileChangedOverwrite=File was changed. Overwrite changes?\noverwrite=Overwrite\nfilename=Filename\nfileExists=File already exists\nfileNearlyFullSeeFaq=File nearly full, please see FAQ\nfileNotFound=File not found\nrepositoryNotFound=Repository not found\nfileNotFoundOrDenied=The file was not found. It does not exist or you do not have read access.\nfileNotLoaded=File not loaded\nfileNotSaved=File not saved\nfileOpenLocation=How would you like to open these file(s)?\nfileWillBeSavedInAppFolder={1} will be saved in the app folder.\nfill=Fill\nfillColor=Fill Color\nfilterCards=Filter Cards\nfind=Find\nfit=Fit\nfitContainer=Resize Container\nfitIntoContainer=Fit into Container\nfitPage=Fit Page\nfitPageWidth=Fit Page Width\nfitTo=Fit to\nfitToSheetsAcross=sheet(s) across\nfitToBy=by\nfitToSheetsDown=sheet(s) down\nfitTwoPages=Two Pages\nfitWindow=Fit Window\nflip=Flip\nflipH=Flip Horizontal\nflipV=Flip Vertical\nflowchart=Flowchart\nfolder=Folder\nfont=Font\nfontColor=Font Color\nfontFamily=Font Family\nfontSize=Font Size\nforbidden=You are not authorized to access this file\nformat=Format\nformatPanel=Format Panel\nformatted=Formatted\nformattedText=Formatted Text\nformatPng=PNG\nformatGif=GIF\nformatJpg=JPEG\nformatPdf=PDF\nformatSql=SQL\nformatSvg=SVG\nformatHtmlEmbedded=HTML\nformatSvgEmbedded=SVG (with XML)\nformatVsdx=VSDX\nformatVssx=VSSX\nformatXmlPlain=XML (Plain)\nformatXml=XML\nforum=Discussion/Help Forums\nfromTemplate=From Template\nfromTemplateUrl=From Template URL\nfromText=From Text\nfromUrl=From URL\nfromThisPage=From this page\nfullscreen=Fullscreen\ngap=Gap\ngcp=GCP\ngeneral=General\ngithub=GitHub\ngliffy=Gliffy\nglobal=Global\ngoogleDocs=Google Docs\ngoogleDrive=Google Drive\ngoogleGadget=Google Gadget\ngooglePlus=Google+\ngoogleSites=Google Sites\ngradient=Gradient\ngradientColor=Color\ngrid=Grid\ngridColor=Grid Color\ngridSize=Grid Size\ngroup=Group\nguides=Guides\nhateApp=I hate draw.io\nheading=Heading\nheight=Height\nhelp=Help\nhelpTranslate=Help us translate this application\nhide=Hide\nhideIt=Hide {1}\nhidden=Hidden\nhome=Home\nhorizontal=Horizontal\nhorizontalFlow=Horizontal Flow\nhorizontalTree=Horizontal Tree\nhowTranslate=How good is the translation in your language?\nhtml=HTML\nhtmlText=HTML Text\nid=ID\niframe=IFrame\nignore=Ignore\nimage=Image\nimageUrl=Image URL\nimages=Images\nimagePreviewError=This image couldn't be loaded for preview. Please check the URL.\nimageTooBig=Image too big\nimgur=Imgur\nimport=Import\nimportFrom=Import from\nincludeCopyOfMyDiagram=Include a copy of my diagram\nincreaseIndent=Increase Indent\ndecreaseIndent=Decrease Indent\ninsert=Insert\ninsertColumnBefore=Insert Column Left\ninsertColumnAfter=Insert Column Right\ninsertEllipse=Insert Ellipse\ninsertImage=Insert Image\ninsertHorizontalRule=Insert Horizontal Rule\ninsertLink=Insert Link\ninsertPage=Insert Page\ninsertRectangle=Insert Rectangle\ninsertRhombus=Insert Rhombus\ninsertRowBefore=Insert Row Above\ninsertRowAfter=Insert Row After\ninsertText=Insert Text\ninserting=Inserting\ninvalidFilename=Diagram names must not contain the following characters: / | : ; { } < > & + ? = \"\ninvalidLicenseSeeThisPage=Your license is invalid, please see this <a target=\"_blank\" href=\"https://support.draw.io/display/DFCS/Licensing+your+draw.io+plugin\">page</a>.\ninvalidName=Invalid name\ninvalidOrMissingFile=Invalid or missing file\ninvalidPublicUrl=Invalid public URL\nisometric=Isometric\nios=iOS\nitalic=Italic\nkennedy=Kennedy\nkeyboardShortcuts=Keyboard Shortcuts\nlayers=Layers\nlandscape=Landscape\nlanguage=Language\nleanMapping=Lean Mapping\nlastChange=Last change {1} ago\nlessThanAMinute=less than a minute\nlicensingError=Licensing Error\nlicenseHasExpired=The license for {1} has expired on {2}. Click here.\nlicenseWillExpire=The license for {1} will expire on {2}. Click here.\nlineJumps=Line jumps\nlinkAccountRequired=If the diagram is not public a Google account is required to view the link.\nlinkText=Link Text\nlist=List\nminute=minute\nminutes=minutes\nhours=hours\ndays=days\nmonths=months\nyears=years\nrestartForChangeRequired=Changes will take effect after page refresh.\nlaneColor=Lanecolor\nlastModified=Last modified\nlayout=Layout\nleft=Left\nleftAlign=Left Align\nleftToRight=Left to right\nlibraryTooltip=Drag and drop shapes here or click + to insert. Double click to edit.\nlightbox=Lightbox\nline=Line\nlineend=Line end\nlineheight=Line Height\nlinestart=Line start\nlinewidth=Linewidth\nlink=Link\nlinks=Links\nloading=Loading\nlockUnlock=Lock/Unlock\nloggedOut=Logged Out\nlogIn=log in\nloveIt=I love {1}\nlucidchart=Lucidchart\nmaps=Maps\nmathematicalTypesetting=Mathematical Typesetting\nmakeCopy=Make a Copy\nmanual=Manual\nmiddle=Middle\nminimal=Minimal\nmisc=Misc\nmockups=Mockups\nmodificationDate=Modification date\nmodifiedBy=Modified by\nmore=More\nmoreResults=More Results\nmoreShapes=More Shapes\nmove=Move\nmoveToFolder=Move to Folder\nmoving=Moving\nmoveSelectionTo=Move selection to {1}\nname=Name\nnavigation=Navigation\nnetwork=Network\nnetworking=Networking\nnew=New\nnewLibrary=New Library\nnextPage=Next Page\nno=No\nnoAttachments=No attachments found\nnoColor=No Color\nnoFiles=No Files\nnoFileSelected=No file selected\nnoLibraries=No libraries found\nnoMoreResults=No more results\nnone=None\nnoOtherViewers=No other viewers\nnoPlugins=No plugins\nnoPreview=No preview\nnoResponse=No response from server\nnoResultsFor=No results for '{1}'\nnoRevisions=No revisions\nnoSearchResults=No search results found\nnoPageContentOrNotSaved=No anchors found on this page or it hasn't been saved yet\nnormal=Normal\nnorth=North\nnotADiagramFile=Not a diagram file\nnotALibraryFile=Not a library file\nnotAvailable=Not available\nnotAUtf8File=Not a UTF-8 file\nnotConnected=Not connected\nnote=Note\nnotUsingService=Not using {1}?\nnumberedList=Numbered list\noffline=Offline\nok=OK\noneDrive=OneDrive\nonline=Online\nopacity=Opacity\nopen=Open\nopenArrow=Open Arrow\nopenExistingDiagram=Open Existing Diagram\nopenFile=Open File\nopenFrom=Open from\nopenLibrary=Open Library\nopenLibraryFrom=Open Library from\nopenLink=Open Link\nopenInNewWindow=Open in New Window\nopenInThisWindow=Open in This Window\nopenIt=Open {1}\nopenRecent=Open Recent\nopenSupported=Supported formats are files saved from this software (.xml), .vsdx and .gliffy\noptions=Options\norganic=Organic\northogonal=Orthogonal\notherViewer=other viewer\notherViewers=other viewers\noutline=Outline\noval=Oval\npage=Page\npageContent=Page Content\npageNotFound=Page not found\npageWithNumber=Page-{1}\npages=Pages\npageView=Page View\npageSetup=Page Setup\npageScale=Page Scale\npan=Pan\npanTooltip=Space+Drag to pan\npaperSize=Paper Size\npattern=Pattern\npaste=Paste\npasteHere=Paste here\npasteSize=Paste Size\npasteStyle=Paste Style\nperimeter=Perimeter\npermissionAnyone=Anyone can edit\npermissionAuthor=Owner and admins can edit\npickFolder=Pick a folder\npickLibraryDialogTitle=Select Library\npublicDiagramUrl=Public URL of the diagram\nplaceholders=Placeholders\nplantUml=PlantUML\nplugins=Plugins\npluginUrl=Plugin URL\npluginWarning=The page has requested to load the following plugin(s):\n \n {1}\n \n Would you like to load these plugin(s) now?\n \n NOTE : Only allow plugins to run if you fully understand the security implications of doing so.\n\nplusTooltip=Click to connect and clone (ctrl+click to clone, shift+click to connect). Drag to connect (ctrl+drag to clone).\nportrait=Portrait\nposition=Position\nposterPrint=Poster Print\npreferences=Preferences\npreview=Preview\npreviousPage=Previous Page\nprint=Print\nprintAllPages=Print All Pages\nprocEng=Proc. Eng.\nproject=Project\npriority=Priority\nproperties=Properties\npublish=Publish\nquickStart=Quick Start Video\nrack=Rack\nradialTree=Radial Tree\nreadOnly=Read-only\nreconnecting=Reconnecting\nrecentlyUpdated=Recently Updated\nrecentlyViewed=Recently Viewed\nrectangle=Rectangle\nredirectToNewApp=This file was created or modified in a newer version of this app. You will be redirected now.\nrealtimeTimeout=It looks like you've made a few changes while offline. We're sorry, these changes cannot be saved.\nredo=Redo\nrefresh=Refresh\nregularExpression=Regular Expression\nrelative=Relative\nrelativeUrlNotAllowed=Relative URL not allowed\nrememberMe=Remember me\nrememberThisSetting=Remember this setting\nremoveFormat=Clear Formatting\nremoveFromGroup=Remove from Group\nremoveIt=Remove {1}\nremoveWaypoint=Remove Waypoint\nrename=Rename\nrenamed=Renamed\nrenameIt=Rename {1}\nrenaming=Renaming\nreplace=Replace\nreplaceIt={1} already exists. Do you want to replace it?\nreplaceExistingDrawing=Replace existing drawing\nrequired=required\nreset=Reset\nresetView=Reset View\nresize=Resize\nresizeLargeImages=Do you want to resize large images to make the application run faster?\nretina=Retina\nresponsive=Responsive\nrestore=Restore\nrestoring=Restoring\nretryingIn=Retrying in {1} second(s)\nretryingLoad=Load failed. Retrying...\nretryingLogin=Login time out. Retrying...\nreverse=Reverse\nrevision=Revision\nrevisionHistory=Revision History\nrhombus=Rhombus\nright=Right\nrightAlign=Right Align\nrightToLeft=Right to left\nrotate=Rotate\nrotateTooltip=Click and drag to rotate, click to turn shape only by 90 degrees\nrotation=Rotation\nrounded=Rounded\nsave=Save\nsaveAndExit=Save & Exit\nsaveAs=Save as\nsaveAsXmlFile=Save as XML file?\nsaved=Saved\nsaveDiagramsTo=Save diagrams to\nsaveLibrary403=Insufficient permissions to edit this library\nsaveLibrary500=There was an error while saving the library\nsaving=Saving\nscratchpad=Scratchpad\nscrollbars=Scrollbars\nsearch=Search\nsearchShapes=Search Shapes\nselectAll=Select All\nselectionOnly=Selection Only\nselectCard=Select Card\nselectEdges=Select Edges\nselectFile=Select File\nselectFolder=Select Folder\nselectFont=Select Font\nselectNone=Select None\nselectTemplate=Select Template\nselectVertices=Select Vertices\nsendMessage=Send\nsendYourFeedbackToDrawIo=Send your feedback to draw.io\nserviceUnavailableOrBlocked=Service unavailable or blocked\nsessionExpired=Your session has expired. Please refresh the browser window.\nsessionTimeoutOnSave=Your session has timed out and you have been disconnected from the Google Drive. Press OK to login and save. \nsetAsDefaultStyle=Set as Default Style\nshadow=Shadow\nshape=Shape\nshapes=Shapes\nshare=Share\nshareLink=Link for shared editing\nsharp=Sharp\nshow=Show\nshowStartScreen=Show Start Screen\nsidebarTooltip=Click to expand. Drag and drop shapes into the diagram. Shift+click to change selection. Alt+click to insert and connect.\nsigns=Signs\nsignOut=Sign out\nsimple=Simple\nsimpleArrow=Simple Arrow\nsize=Size\nsolid=Solid\nsourceSpacing=Source Spacing\nsouth=South\nsoftware=Software\nspace=Space\nspacing=Spacing\nspecialLink=Special Link\nstandard=Standard\nstarting=Starting\nstraight=Straight\nstrokeColor=Line Color\nstyle=Style\nsubscript=Subscript\nsummary=Summary\nsuperscript=Superscript\nsupport=Support\nsysml=SysML\ntags=Tags\ntable=Table\ntables=Tables\ntakeOver=Take Over\ntargetSpacing=Target Spacing\ntemplate=Template\ntemplates=Templates\ntext=Text\ntextAlignment=Text Alignment\ntextOpacity=Text Opacity\ntheme=Theme\ntimeout=Timeout\ntitle=Title\nto=to\ntoBack=To Back\ntoFront=To Front\ntooltips=Tooltips\ntop=Top\ntopAlign=Top Align\ntopLeft=Top Left\ntopRight=Top Right\ntransparent=Transparent\ntransparentBackground=Transparent Background\ntrello=Trello\ntryAgain=Try again\ntryOpeningViaThisPage=Try opening via this page.\nturn=Rotate shape only by 90°\ntype=Type\ntwitter=Twitter\numl=UML\nunderline=Underline\nundo=Undo\nungroup=Ungroup\nunsavedChanges=Unsaved changes\nunsavedChangesClickHereToSave=Unsaved changes. Click here to save.\nuntitled=Untitled\nuntitledDiagram=Untitled Diagram\nuntitledLayer=Untitled Layer\nuntitledLibrary=Untitled Library\nunknownError=Unknown error\nupdateFile=Update {1}\nupdatingDocument=Updating Document. Please wait...\nupdatingPreview=Updating Preview. Please wait...\nupdatingSelection=Updating Selection. Please wait...\nupload=Upload\nurl=URL\nuseOffline=Use Offline\nuseRootFolder=Use root folder?\nuserManual=User Manual\nvertical=Vertical\nverticalFlow=Vertical Flow\nverticalTree=Vertical Tree\nview=View\nviewUrl=Link to view: {1}\nvoiceAssistant=Voice Assistant (beta)\nwarning=Warning\nwaypoints=Waypoints\nwest=West\nwidth=Width\nwiki=Wiki\nwordWrap=Word Wrap\nwritingDirection=Writing Direction\nyes=Yes\nyourEmailAddress=Your email address\nzoom=Zoom\nzoomIn=Zoom In\nzoomOut=Zoom Out\nbasic=Basic\nbusinessprocess=Business Processes\ncharts=Charts\nengineering=Engineering\nflowcharts=Flowcharts\ngmdl=Material Design\nmindmaps=Mindmaps\nmockups=Mockups\nnetworkdiagrams=Network Diagrams\nnothingIsSelected=Nothing is selected\nother=Other\nsoftwaredesign=Software Design\nvenndiagrams=Venn Diagrams\nwebEmailOrOther=Web, email or any other internet address\nwebLink=Web Link\nwireframes=Wireframes\n");Graph.prototype.defaultThemes[Graph.prototype.defaultThemeName]=mxUtils.parseXml('<mxStylesheet><add as="defaultVertex"><add as="shape" value="label"/><add as="perimeter" value="rectanglePerimeter"/><add as="fontSize" value="12"/><add as="fontFamily" value="Helvetica"/><add as="align" value="center"/><add as="verticalAlign" value="middle"/><add as="fillColor" value="#ffffff"/><add as="strokeColor" value="#000000"/><add as="fontColor" value="#000000"/></add><add as="defaultEdge"><add as="shape" value="connector"/><add as="labelBackgroundColor" value="#ffffff"/><add as="endArrow" value="classic"/><add as="fontSize" value="11"/><add as="fontFamily" value="Helvetica"/><add as="align" value="center"/><add as="verticalAlign" value="middle"/><add as="rounded" value="1"/><add as="strokeColor" value="#000000"/><add as="fontColor" value="#000000"/></add><add as="fancy"><add as="shadow" value="1"/><add as="glass" value="1"/></add><add as="gray" extend="fancy"><add as="gradientColor" value="#B3B3B3"/><add as="fillColor" value="#F5F5F5"/><add as="strokeColor" value="#666666"/></add><add as="blue" extend="fancy"><add as="gradientColor" value="#7EA6E0"/><add as="fillColor" value="#DAE8FC"/><add as="strokeColor" value="#6C8EBF"/></add><add as="green" extend="fancy"><add as="gradientColor" value="#97D077"/><add as="fillColor" value="#D5E8D4"/><add as="strokeColor" value="#82B366"/></add><add as="turquoise" extend="fancy"><add as="gradientColor" value="#67AB9F"/><add as="fillColor" value="#D5E8D4"/><add as="strokeColor" value="#6A9153"/></add><add as="yellow" extend="fancy"><add as="gradientColor" value="#FFD966"/><add as="fillColor" value="#FFF2CC"/><add as="strokeColor" value="#D6B656"/></add><add as="orange" extend="fancy"><add as="gradientColor" value="#FFA500"/><add as="fillColor" value="#FFCD28"/><add as="strokeColor" value="#D79B00"/></add><add as="red" extend="fancy"><add as="gradientColor" value="#EA6B66"/><add as="fillColor" value="#F8CECC"/><add as="strokeColor" value="#B85450"/></add><add as="pink" extend="fancy"><add as="gradientColor" value="#B5739D"/><add as="fillColor" value="#E6D0DE"/><add as="strokeColor" value="#996185"/></add><add as="purple" extend="fancy"><add as="gradientColor" value="#8C6C9C"/><add as="fillColor" value="#E1D5E7"/><add as="strokeColor" value="#9673A6"/></add><add as="plain-gray"><add as="gradientColor" value="#B3B3B3"/><add as="fillColor" value="#F5F5F5"/><add as="strokeColor" value="#666666"/></add><add as="plain-blue"><add as="gradientColor" value="#7EA6E0"/><add as="fillColor" value="#DAE8FC"/><add as="strokeColor" value="#6C8EBF"/></add><add as="plain-green"><add as="gradientColor" value="#97D077"/><add as="fillColor" value="#D5E8D4"/><add as="strokeColor" value="#82B366"/></add><add as="plain-turquoise"><add as="gradientColor" value="#67AB9F"/><add as="fillColor" value="#D5E8D4"/><add as="strokeColor" value="#6A9153"/></add><add as="plain-yellow"><add as="gradientColor" value="#FFD966"/><add as="fillColor" value="#FFF2CC"/><add as="strokeColor" value="#D6B656"/></add><add as="plain-orange"><add as="gradientColor" value="#FFA500"/><add as="fillColor" value="#FFCD28"/><add as="strokeColor" value="#D79B00"/></add><add as="plain-red"><add as="gradientColor" value="#EA6B66"/><add as="fillColor" value="#F8CECC"/><add as="strokeColor" value="#B85450"/></add><add as="plain-pink"><add as="gradientColor" value="#B5739D"/><add as="fillColor" value="#E6D0DE"/><add as="strokeColor" value="#996185"/></add><add as="plain-purple"><add as="gradientColor" value="#8C6C9C"/><add as="fillColor" value="#E1D5E7"/><add as="strokeColor" value="#9673A6"/></add><add as="text"><add as="fillColor" value="none"/><add as="gradientColor" value="none"/><add as="strokeColor" value="none"/><add as="align" value="left"/><add as="verticalAlign" value="top"/></add><add as="label"><add as="fontStyle" value="1"/><add as="align" value="left"/><add as="verticalAlign" value="middle"/><add as="spacing" value="2"/><add as="spacingLeft" value="52"/><add as="imageWidth" value="42"/><add as="imageHeight" value="42"/><add as="rounded" value="1"/></add><add as="icon" extend="label"><add as="align" value="center"/><add as="imageAlign" value="center"/><add as="verticalLabelPosition" value="bottom"/><add as="verticalAlign" value="top"/><add as="spacingTop" value="4"/><add as="labelBackgroundColor" value="#ffffff"/><add as="spacing" value="0"/><add as="spacingLeft" value="0"/><add as="spacingTop" value="6"/><add as="fontStyle" value="0"/><add as="imageWidth" value="48"/><add as="imageHeight" value="48"/></add><add as="swimlane"><add as="shape" value="swimlane"/><add as="fontSize" value="12"/><add as="fontStyle" value="1"/><add as="startSize" value="23"/></add><add as="group"><add as="verticalAlign" value="top"/><add as="fillColor" value="none"/><add as="strokeColor" value="none"/><add as="gradientColor" value="none"/><add as="pointerEvents" value="0"/></add><add as="ellipse"><add as="shape" value="ellipse"/><add as="perimeter" value="ellipsePerimeter"/></add><add as="rhombus"><add as="shape" value="rhombus"/><add as="perimeter" value="rhombusPerimeter"/></add><add as="triangle"><add as="shape" value="triangle"/><add as="perimeter" value="trianglePerimeter"/></add><add as="line"><add as="shape" value="line"/><add as="strokeWidth" value="4"/><add as="labelBackgroundColor" value="#ffffff"/><add as="verticalAlign" value="top"/><add as="spacingTop" value="8"/></add><add as="image"><add as="shape" value="image"/><add as="labelBackgroundColor" value="white"/><add as="verticalAlign" value="top"/><add as="verticalLabelPosition" value="bottom"/></add><add as="roundImage" extend="image"><add as="perimeter" value="ellipsePerimeter"/></add><add as="rhombusImage" extend="image"><add as="perimeter" value="rhombusPerimeter"/></add><add as="arrow"><add as="shape" value="arrow"/><add as="edgeStyle" value="none"/><add as="fillColor" value="#ffffff"/></add></mxStylesheet>').documentElement; -Graph.prototype.defaultThemes.darkTheme=mxUtils.parseXml('<mxStylesheet><add as="defaultVertex"><add as="shape" value="label"/><add as="perimeter" value="rectanglePerimeter"/><add as="fontSize" value="12"/><add as="fontFamily" value="Helvetica"/><add as="align" value="center"/><add as="verticalAlign" value="middle"/><add as="fillColor" value="#2a2a2a"/><add as="strokeColor" value="#f0f0f0"/><add as="fontColor" value="#f0f0f0"/></add><add as="defaultEdge"><add as="shape" value="connector"/><add as="labelBackgroundColor" value="#2a2a2a"/><add as="endArrow" value="classic"/><add as="fontSize" value="11"/><add as="fontFamily" value="Helvetica"/><add as="align" value="center"/><add as="verticalAlign" value="middle"/><add as="rounded" value="1"/><add as="strokeColor" value="#f0f0f0"/><add as="fontColor" value="#f0f0f0"/></add><add as="text"><add as="fillColor" value="none"/><add as="gradientColor" value="none"/><add as="strokeColor" value="none"/><add as="align" value="left"/><add as="verticalAlign" value="top"/></add><add as="label"><add as="fontStyle" value="1"/><add as="align" value="left"/><add as="verticalAlign" value="middle"/><add as="spacing" value="2"/><add as="spacingLeft" value="52"/><add as="imageWidth" value="42"/><add as="imageHeight" value="42"/><add as="rounded" value="1"/></add><add as="icon" extend="label"><add as="align" value="center"/><add as="imageAlign" value="center"/><add as="verticalLabelPosition" value="bottom"/><add as="verticalAlign" value="top"/><add as="spacingTop" value="4"/><add as="labelBackgroundColor" value="#2a2a2a"/><add as="spacing" value="0"/><add as="spacingLeft" value="0"/><add as="spacingTop" value="6"/><add as="fontStyle" value="0"/><add as="imageWidth" value="48"/><add as="imageHeight" value="48"/></add><add as="swimlane"><add as="shape" value="swimlane"/><add as="fontSize" value="12"/><add as="fontStyle" value="1"/><add as="startSize" value="23"/></add><add as="group"><add as="verticalAlign" value="top"/><add as="fillColor" value="none"/><add as="strokeColor" value="none"/><add as="gradientColor" value="none"/><add as="pointerEvents" value="0"/></add><add as="ellipse"><add as="shape" value="ellipse"/><add as="perimeter" value="ellipsePerimeter"/></add><add as="rhombus"><add as="shape" value="rhombus"/><add as="perimeter" value="rhombusPerimeter"/></add><add as="triangle"><add as="shape" value="triangle"/><add as="perimeter" value="trianglePerimeter"/></add><add as="line"><add as="shape" value="line"/><add as="strokeWidth" value="4"/><add as="labelBackgroundColor" value="#2a2a2a"/><add as="verticalAlign" value="top"/><add as="spacingTop" value="8"/></add><add as="image"><add as="shape" value="image"/><add as="labelBackgroundColor" value="#2a2a2a"/><add as="verticalAlign" value="top"/><add as="verticalLabelPosition" value="bottom"/></add><add as="roundImage" extend="image"><add as="perimeter" value="ellipsePerimeter"/></add><add as="rhombusImage" extend="image"><add as="perimeter" value="rhombusPerimeter"/></add><add as="arrow"><add as="shape" value="arrow"/><add as="edgeStyle" value="none"/><add as="fillColor" value="#2a2a2a"/></add></mxStylesheet>').documentElement;GraphViewer=function(a,d,e){this.init(a,d,e)};mxUtils.extend(GraphViewer,mxEventSource);GraphViewer.prototype.editBlankUrl="https://www.draw.io/";GraphViewer.prototype.imageBaseUrl="https://www.draw.io/";GraphViewer.prototype.toolbarHeight="BackCompat"==document.compatMode?28:30;GraphViewer.prototype.lightboxChrome=!0;GraphViewer.prototype.lightboxZIndex=999;GraphViewer.prototype.toolbarZIndex=999;GraphViewer.prototype.autoFit=!0;GraphViewer.prototype.allowZoomIn=!1; +(function(){var a=!1;"min"!=uiTheme||a||mxClient.IS_CHROMEAPP||(EditorUi.initMinimalTheme(),a=!0);var b=EditorUi.initTheme;EditorUi.initTheme=function(){b.apply(this,arguments);"min"!=uiTheme||a||(this.initMinimalTheme(),a=!0)}})();mxResources.parse("# *DO NOT DIRECTLY EDIT THIS FILE, IT IS AUTOMATICALLY GENERATED AND IT IS BASED ON:*\n# https://docs.google.com/spreadsheet/ccc?key=0AmQEO36liL4FdDJLWVNMaVV2UmRKSnpXU09MYkdGbEE\naboutDrawio=About draw.io\naccessDenied=Access Denied\naction=Action\nactualSize=Actual Size\nadd=Add\naddedFile=Added {1}\naddImages=Add Images\naddImageUrl=Add Image URL\naddLayer=Add Layer\naddProperty=Add Property\naddress=Address\naddToExistingDrawing=Add to Existing Drawing\naddWaypoint=Add Waypoint\nadjustTo=Adjust to\nadvanced=Advanced\nalign=Align\nalignment=Alignment\nallChangesLost=All changes will be lost!\nallPages=All Pages\nallProjects=All Projects\nallSpaces=All Spaces\nallTags=All Tags\nanchor=Anchor\nandroid=Android\nangle=Angle\narc=Arc\nareYouSure=Are you sure?\nensureDataSaved=Please ensure your data is saved before closing.\nallChangesSaved=All changes saved\nallChangesSavedInDrive=All changes saved in Drive\nallowPopups=Allow pop-ups to avoid this dialog.\nallowRelativeUrl=Allow relative URL\nalreadyConnected=Nodes already connected\napply=Apply\narchiMate21=ArchiMate 2.1\narrange=Arrange\narrow=Arrow\narrows=Arrows\nasNew=As New\natlas=Atlas\nauthor=Author\nauthorizationRequired=Authorization required\nauthorizeThisAppIn=Authorize this app in {1}:\nauthorize=Authorize\nauthorizing=Authorizing\nautomatic=Automatic\nautosave=Autosave\nautosize=Autosize\nattachments=Attachments\naws=AWS\naws3d=AWS 3D\nazure=Azure\nbackground=Background\nbackgroundColor=Background Color\nbackgroundImage=Background Image\nbasic=Basic\nblankDrawing=Blank Drawing\nblankDiagram=Blank Diagram\nblock=Block\nblockquote=Blockquote\nblog=Blog\nbold=Bold\nbootstrap=Bootstrap\nborder=Border\nborderColor=Border Color\nborderWidth=Borderwidth\nbottom=Bottom\nbottomAlign=Bottom Align\nbottomLeft=Bottom Left\nbottomRight=Bottom Right\nbpmn=BPMN\nbrowser=Browser\nbulletedList=Bulleted List\nbusiness=Business\nbusy=Operation in progress\ncabinets=Cabinets\ncancel=Cancel\ncenter=Center\ncannotLoad=Load attempts failed. Please try again later.\ncannotLogin=Log in attempts failed. Please try again later.\ncannotOpenFile=Cannot open file\nchange=Change\nchangeOrientation=Change Orientation\nchangeUser=Change user\nchangesNotSaved=Changes have not been saved\nchatJoined={1} has joined\nchatLeft={1} has left\nchatWindowTitle=Chat\nchooseAnOption=Choose an option\nchromeApp=Chrome App\ncollaborativeEditingNotice=Important Notice for Collaborative Editing\ncompressed=Compressed\ncommitMessage=Commit Message\ncsv=CSV\ndark=Dark\ndraftFound=A draft for '{1}' has been found. Load it into the editor or discard it to continue.\ndragAndDropNotSupported=Drag and drop not supported for images. Would you like to import instead?\ndropboxCharsNotAllowed=The following characters are not allowed: / : ? * \" |\ncheck=Check\ncircle=Circle\ncisco=Cisco\nclassic=Classic\nclearDefaultStyle=Clear Default Style\nclearWaypoints=Clear Waypoints\nclipart=Clipart\nclose=Close\ncollaborator=Collaborator\ncollaborators=Collaborators\ncollapse=Collapse\ncollapseExpand=Collapse/Expand\ncollapse-expand=Click to collapse/expand\nShift-click to move neighbors \nAlt-click to protect group size\ncollapsible=Collapsible\ncomic=Comic\ncomment=Comment\ncommentsNotes=Comments/Notes\ncompress=Compress\nconnect=Connect\nconnecting=Connecting\nconnectWithDrive=Connect with Google Drive\nconnection=Connection\nconnectionArrows=Connection Arrows\nconnectionPoints=Connection Points\nconstrainProportions=Constrain Proportions\ncontainsValidationErrors=Contains validation errors\ncopiedToClipboard=Copied to clipboard\ncopy=Copy\ncopyConnect=Copy on connect\ncopyOf=Copy of {1}\ncopyOfDrawing=Copy of Drawing\ncopySize=Copy Size\ncopyStyle=Copy Style\ncreate=Create\ncreateNewDiagram=Create New Diagram\ncreateRevision=Create Revision\ncreateShape=Create Shape\ncrop=Crop\ncurved=Curved\ncustom=Custom\ncurrent=Current\ncut=Cut\ndashed=Dashed\ndecideLater=Decide later\ndefault=Default\ndelete=Delete\ndeleteColumn=Delete Column\ndeleteLibrary401=Insufficient permissions to delete this library\ndeleteLibrary404=Selected library could not be found\ndeleteLibrary500=Error deleting library\ndeleteLibraryConfirm=You are about to permanently delete this library. Are you sure you want to do this?\ndeleteRow=Delete Row\ndescription=Description\ndevice=Device\ndiagram=Diagram\ndiagramContent=Diagram Content\ndiagramLocked=Diagram has been locked to prevent further data loss.\ndiagramLockedBySince=The diagram is locked by {1} since {2} ago\ndiagramName=Diagram Name\ndiagramIsPublic=Diagram is public\ndiagramIsNotPublic=Diagram is not public\ndiamond=Diamond\ndiamondThin=Diamond (thin)\ndidYouKnow=Did you know...\ndirection=Direction\ndiscard=Discard\ndiscardChangesAndReconnect=Discard Changes and Reconnect\ngoogleDriveMissingClickHere=Google Drive missing? Click here!\ndiscardChanges=Discard Changes\ndisconnected=Disconnected\ndistribute=Distribute\ndone=Done\ndotted=Dotted\ndoubleClickOrientation=Doubleclick to change orientation\ndoubleClickTooltip=Doubleclick to insert text\ndoubleClickChangeProperty=Doubleclick to change property name\ndownload=Download\ndownloadDesktop=Download draw.io Desktop\ndownloadAs=Download as\nclickHereToSave=Click here to save.\ndraftDiscarded=Draft discarded\ndraftSaved=Draft saved\ndragElementsHere=Drag elements here\ndragImagesHere=Drag images or URLs here\ndragUrlsHere=Drag URLs here\ndraw.io=draw.io\ndrawing=Drawing{1}\ndrawingEmpty=Drawing is empty\ndrawingTooLarge=Drawing is too large\ndrawioForWork=Draw.io for GSuite\ndropbox=Dropbox\nduplicate=Duplicate\nduplicateIt=Duplicate {1}\ndivider=Divider\ndx=Dx\ndy=Dy\neast=East\nedit=Edit\neditData=Edit Data\neditDiagram=Edit Diagram\neditGeometry=Edit Geometry\neditImage=Edit Image\neditImageUrl=Edit Image URL\neditLink=Edit Link\neditShape=Edit Shape\neditStyle=Edit Style\neditText=Edit Text\neditTooltip=Edit Tooltip\nglass=Glass\ngoogleImages=Google Images\nimageSearch=Image Search\neip=EIP\nembed=Embed\nembedImages=Embed Images\nmainEmbedNotice=Paste this into the page\nelectrical=Electrical\nellipse=Ellipse\nembedNotice=Paste this once at the end of the page\nenterGroup=Enter Group\nenterName=Enter Name\nenterPropertyName=Enter Property Name\nenterValue=Enter Value\nentityRelation=Entity Relation\nerror=Error\nerrorDeletingFile=Error Deleting File\nerrorLoadingFile=Error loading file\nerrorRenamingFile=Error renaming file.\nerrorRenamingFileNotFound=Error renaming file. File was not found.\nerrorRenamingFileForbidden=Error renaming file. Insufficient access rights.\nerrorSavingDraft=Error saving draft\nerrorSavingFile=Error saving file\nerrorSavingFileUnknown=Error authorizing with Google's servers. Please refresh the page to re-attempt.\nerrorSavingFileForbidden=Error saving file. Insufficient access rights.\nerrorSavingFileNameConflict=Could not save diagram. Current page already contains file named '{1}'.\nerrorSavingFileNotFound=Error saving file. File was not found.\nerrorSavingFileReadOnlyMode=Could not save diagram while read-only mode is active.\nerrorSavingFileSessionTimeout=Your session has ended. Please <a target='_blank' href='{1}'>{2}</a> and return to this tab to try to save again.\nerrorSendingFeedback=Error sending feedback.\nerrorUpdatingPreview=Error updating preview.\nexit=Exit\nexitGroup=Exit Group\nexpand=Expand\nexport=Export\nexporting=Exporting\nexportAs=Export as\nexportOptionsDisabled=Export options disabled\nexportOptionsDisabledDetails=The owner has disabled options to download, print or copy for commenters and viewers on this file.\nexternalChanges=External Changes\nextras=Extras\nfacebook=Facebook\nfailedToSaveTryReconnect=Failed to save, trying to reconnect\nfeatureRequest=Feature Request\nfeedback=Feedback\nfeedbackSent=Feedback successfully sent.\nfloorplans=Floorplans\nfile=File\nfileChangedOverwrite=The file has been modified. Do you want to save the file and overwrite those changes?\noverwrite=Overwrite\nfilename=Filename\nfileExists=File already exists\nfileNearlyFullSeeFaq=File nearly full, please see FAQ\nfileNotFound=File not found\nrepositoryNotFound=Repository not found\nfileNotFoundOrDenied=The file was not found. It does not exist or you do not have read access.\nfileNotLoaded=File not loaded\nfileNotSaved=File not saved\nfileOpenLocation=How would you like to open these file(s)?\nfileWillBeSavedInAppFolder={1} will be saved in the app folder.\nfill=Fill\nfillColor=Fill Color\nfilterCards=Filter Cards\nfind=Find\nfit=Fit\nfitContainer=Resize Container\nfitIntoContainer=Fit into Container\nfitPage=Fit Page\nfitPageWidth=Fit Page Width\nfitTo=Fit to\nfitToSheetsAcross=sheet(s) across\nfitToBy=by\nfitToSheetsDown=sheet(s) down\nfitTwoPages=Two Pages\nfitWindow=Fit Window\nflip=Flip\nflipH=Flip Horizontal\nflipV=Flip Vertical\nflowchart=Flowchart\nfolder=Folder\nfont=Font\nfontColor=Font Color\nfontFamily=Font Family\nfontSize=Font Size\nforbidden=You are not authorized to access this file\nformat=Format\nformatPanel=Format Panel\nformatted=Formatted\nformattedText=Formatted Text\nformatPng=PNG\nformatGif=GIF\nformatJpg=JPEG\nformatPdf=PDF\nformatSql=SQL\nformatSvg=SVG\nformatHtmlEmbedded=HTML\nformatSvgEmbedded=SVG (with XML)\nformatVsdx=VSDX\nformatVssx=VSSX\nformatXmlPlain=XML (Plain)\nformatXml=XML\nforum=Discussion/Help Forums\nfromTemplate=From Template\nfromTemplateUrl=From Template URL\nfromText=From Text\nfromUrl=From URL\nfromThisPage=From this page\nfullscreen=Fullscreen\ngap=Gap\ngcp=GCP\ngeneral=General\ngithub=GitHub\ngliffy=Gliffy\nglobal=Global\ngoogleDocs=Google Docs\ngoogleDrive=Google Drive\ngoogleGadget=Google Gadget\ngooglePlus=Google+\ngoogleSites=Google Sites\ngradient=Gradient\ngradientColor=Color\ngrid=Grid\ngridColor=Grid Color\ngridSize=Grid Size\ngroup=Group\nguides=Guides\nhateApp=I hate draw.io\nheading=Heading\nheight=Height\nhelp=Help\nhelpTranslate=Help us translate this application\nhide=Hide\nhideIt=Hide {1}\nhidden=Hidden\nhome=Home\nhorizontal=Horizontal\nhorizontalFlow=Horizontal Flow\nhorizontalTree=Horizontal Tree\nhowTranslate=How good is the translation in your language?\nhtml=HTML\nhtmlText=HTML Text\nid=ID\niframe=IFrame\nignore=Ignore\nimage=Image\nimageUrl=Image URL\nimages=Images\nimagePreviewError=This image couldn't be loaded for preview. Please check the URL.\nimageTooBig=Image too big\nimgur=Imgur\nimport=Import\nimportFrom=Import from\nincludeCopyOfMyDiagram=Include a copy of my diagram\nincreaseIndent=Increase Indent\ndecreaseIndent=Decrease Indent\ninsert=Insert\ninsertColumnBefore=Insert Column Left\ninsertColumnAfter=Insert Column Right\ninsertEllipse=Insert Ellipse\ninsertImage=Insert Image\ninsertHorizontalRule=Insert Horizontal Rule\ninsertLink=Insert Link\ninsertPage=Insert Page\ninsertRectangle=Insert Rectangle\ninsertRhombus=Insert Rhombus\ninsertRowBefore=Insert Row Above\ninsertRowAfter=Insert Row After\ninsertText=Insert Text\ninserting=Inserting\ninvalidFilename=Diagram names must not contain the following characters: / | : ; { } < > & + ? = \"\ninvalidLicenseSeeThisPage=Your license is invalid, please see this <a target=\"_blank\" href=\"https://support.draw.io/display/DFCS/Licensing+your+draw.io+plugin\">page</a>.\ninvalidName=Invalid name\ninvalidOrMissingFile=Invalid or missing file\ninvalidPublicUrl=Invalid public URL\nisometric=Isometric\nios=iOS\nitalic=Italic\nkennedy=Kennedy\nkeyboardShortcuts=Keyboard Shortcuts\nlayers=Layers\nlandscape=Landscape\nlanguage=Language\nleanMapping=Lean Mapping\nlastChange=Last change {1} ago\nlessThanAMinute=less than a minute\nlicensingError=Licensing Error\nlicenseHasExpired=The license for {1} has expired on {2}. Click here.\nlicenseWillExpire=The license for {1} will expire on {2}. Click here.\nlineJumps=Line jumps\nlinkAccountRequired=If the diagram is not public a Google account is required to view the link.\nlinkText=Link Text\nlist=List\nminute=minute\nminutes=minutes\nhours=hours\ndays=days\nmonths=months\nyears=years\nrestartForChangeRequired=Changes will take effect after page refresh.\nlaneColor=Lanecolor\nlastModified=Last modified\nlayout=Layout\nleft=Left\nleftAlign=Left Align\nleftToRight=Left to right\nlibraryTooltip=Drag and drop shapes here or click + to insert. Double click to edit.\nlightbox=Lightbox\nline=Line\nlineend=Line end\nlineheight=Line Height\nlinestart=Line start\nlinewidth=Linewidth\nlink=Link\nlinks=Links\nloading=Loading\nlockUnlock=Lock/Unlock\nloggedOut=Logged Out\nlogIn=log in\nloveIt=I love {1}\nlucidchart=Lucidchart\nmaps=Maps\nmathematicalTypesetting=Mathematical Typesetting\nmakeCopy=Make a Copy\nmanual=Manual\nmiddle=Middle\nminimal=Minimal\nmisc=Misc\nmockups=Mockups\nmodificationDate=Modification date\nmodifiedBy=Modified by\nmore=More\nmoreResults=More Results\nmoreShapes=More Shapes\nmove=Move\nmoveToFolder=Move to Folder\nmoving=Moving\nmoveSelectionTo=Move selection to {1}\nname=Name\nnavigation=Navigation\nnetwork=Network\nnetworking=Networking\nnew=New\nnewLibrary=New Library\nnextPage=Next Page\nno=No\nnoAttachments=No attachments found\nnoColor=No Color\nnoFiles=No Files\nnoFileSelected=No file selected\nnoLibraries=No libraries found\nnoMoreResults=No more results\nnone=None\nnoOtherViewers=No other viewers\nnoPlugins=No plugins\nnoPreview=No preview\nnoResponse=No response from server\nnoResultsFor=No results for '{1}'\nnoRevisions=No revisions\nnoSearchResults=No search results found\nnoPageContentOrNotSaved=No anchors found on this page or it hasn't been saved yet\nnormal=Normal\nnorth=North\nnotADiagramFile=Not a diagram file\nnotALibraryFile=Not a library file\nnotAvailable=Not available\nnotAUtf8File=Not a UTF-8 file\nnotConnected=Not connected\nnote=Note\nnotUsingService=Not using {1}?\nnumberedList=Numbered list\noffline=Offline\nok=OK\noneDrive=OneDrive\nonline=Online\nopacity=Opacity\nopen=Open\nopenArrow=Open Arrow\nopenExistingDiagram=Open Existing Diagram\nopenFile=Open File\nopenFrom=Open from\nopenLibrary=Open Library\nopenLibraryFrom=Open Library from\nopenLink=Open Link\nopenInNewWindow=Open in New Window\nopenInThisWindow=Open in This Window\nopenIt=Open {1}\nopenRecent=Open Recent\nopenSupported=Supported formats are files saved from this software (.xml), .vsdx and .gliffy\noptions=Options\norganic=Organic\northogonal=Orthogonal\notherViewer=other viewer\notherViewers=other viewers\noutline=Outline\noval=Oval\npage=Page\npageContent=Page Content\npageNotFound=Page not found\npageWithNumber=Page-{1}\npages=Pages\npageView=Page View\npageSetup=Page Setup\npageScale=Page Scale\npan=Pan\npanTooltip=Space+Drag to pan\npaperSize=Paper Size\npattern=Pattern\npaste=Paste\npasteHere=Paste here\npasteSize=Paste Size\npasteStyle=Paste Style\nperimeter=Perimeter\npermissionAnyone=Anyone can edit\npermissionAuthor=Owner and admins can edit\npickFolder=Pick a folder\npickLibraryDialogTitle=Select Library\npublicDiagramUrl=Public URL of the diagram\nplaceholders=Placeholders\nplantUml=PlantUML\nplugins=Plugins\npluginUrl=Plugin URL\npluginWarning=The page has requested to load the following plugin(s):\n \n {1}\n \n Would you like to load these plugin(s) now?\n \n NOTE : Only allow plugins to run if you fully understand the security implications of doing so.\n\nplusTooltip=Click to connect and clone (ctrl+click to clone, shift+click to connect). Drag to connect (ctrl+drag to clone).\nportrait=Portrait\nposition=Position\nposterPrint=Poster Print\npreferences=Preferences\npreview=Preview\npreviousPage=Previous Page\nprint=Print\nprintAllPages=Print All Pages\nprocEng=Proc. Eng.\nproject=Project\npriority=Priority\nproperties=Properties\npublish=Publish\nquickStart=Quick Start Video\nrack=Rack\nradialTree=Radial Tree\nreadOnly=Read-only\nreconnecting=Reconnecting\nrecentlyUpdated=Recently Updated\nrecentlyViewed=Recently Viewed\nrectangle=Rectangle\nredirectToNewApp=This file was created or modified in a newer version of this app. You will be redirected now.\nrealtimeTimeout=It looks like you've made a few changes while offline. We're sorry, these changes cannot be saved.\nredo=Redo\nrefresh=Refresh\nregularExpression=Regular Expression\nrelative=Relative\nrelativeUrlNotAllowed=Relative URL not allowed\nrememberMe=Remember me\nrememberThisSetting=Remember this setting\nremoveFormat=Clear Formatting\nremoveFromGroup=Remove from Group\nremoveIt=Remove {1}\nremoveWaypoint=Remove Waypoint\nrename=Rename\nrenamed=Renamed\nrenameIt=Rename {1}\nrenaming=Renaming\nreplace=Replace\nreplaceIt={1} already exists. Do you want to replace it?\nreplaceExistingDrawing=Replace existing drawing\nrequired=required\nreset=Reset\nresetView=Reset View\nresize=Resize\nresizeLargeImages=Do you want to resize large images to make the application run faster?\nretina=Retina\nresponsive=Responsive\nrestore=Restore\nrestoring=Restoring\nretryingIn=Retrying in {1} second(s)\nretryingLoad=Load failed. Retrying...\nretryingLogin=Login time out. Retrying...\nreverse=Reverse\nrevision=Revision\nrevisionHistory=Revision History\nrhombus=Rhombus\nright=Right\nrightAlign=Right Align\nrightToLeft=Right to left\nrotate=Rotate\nrotateTooltip=Click and drag to rotate, click to turn shape only by 90 degrees\nrotation=Rotation\nrounded=Rounded\nsave=Save\nsaveAndExit=Save & Exit\nsaveAs=Save as\nsaveAsXmlFile=Save as XML file?\nsaved=Saved\nsaveDiagramsTo=Save diagrams to\nsaveLibrary403=Insufficient permissions to edit this library\nsaveLibrary500=There was an error while saving the library\nsaving=Saving\nscratchpad=Scratchpad\nscrollbars=Scrollbars\nsearch=Search\nsearchShapes=Search Shapes\nselectAll=Select All\nselectionOnly=Selection Only\nselectCard=Select Card\nselectEdges=Select Edges\nselectFile=Select File\nselectFolder=Select Folder\nselectFont=Select Font\nselectNone=Select None\nselectTemplate=Select Template\nselectVertices=Select Vertices\nsendMessage=Send\nsendYourFeedbackToDrawIo=Send your feedback to draw.io\nserviceUnavailableOrBlocked=Service unavailable or blocked\nsessionExpired=Your session has expired. Please refresh the browser window.\nsessionTimeoutOnSave=Your session has timed out and you have been disconnected from the Google Drive. Press OK to login and save. \nsetAsDefaultStyle=Set as Default Style\nshadow=Shadow\nshape=Shape\nshapes=Shapes\nshare=Share\nshareLink=Link for shared editing\nsharp=Sharp\nshow=Show\nshowStartScreen=Show Start Screen\nsidebarTooltip=Click to expand. Drag and drop shapes into the diagram. Shift+click to change selection. Alt+click to insert and connect.\nsigns=Signs\nsignOut=Sign out\nsimple=Simple\nsimpleArrow=Simple Arrow\nsize=Size\nsolid=Solid\nsourceSpacing=Source Spacing\nsouth=South\nsoftware=Software\nspace=Space\nspacing=Spacing\nspecialLink=Special Link\nstandard=Standard\nstarting=Starting\nstraight=Straight\nstrokeColor=Line Color\nstyle=Style\nsubscript=Subscript\nsummary=Summary\nsuperscript=Superscript\nsupport=Support\nsysml=SysML\ntags=Tags\ntable=Table\ntables=Tables\ntakeOver=Take Over\ntargetSpacing=Target Spacing\ntemplate=Template\ntemplates=Templates\ntext=Text\ntextAlignment=Text Alignment\ntextOpacity=Text Opacity\ntheme=Theme\ntimeout=Timeout\ntitle=Title\nto=to\ntoBack=To Back\ntoFront=To Front\ntooltips=Tooltips\ntop=Top\ntopAlign=Top Align\ntopLeft=Top Left\ntopRight=Top Right\ntransparent=Transparent\ntransparentBackground=Transparent Background\ntrello=Trello\ntryAgain=Try again\ntryOpeningViaThisPage=Try opening via this page.\nturn=Rotate shape only by 90°\ntype=Type\ntwitter=Twitter\numl=UML\nunderline=Underline\nundo=Undo\nungroup=Ungroup\nunsavedChanges=Unsaved changes\nunsavedChangesClickHereToSave=Unsaved changes. Click here to save.\nuntitled=Untitled\nuntitledDiagram=Untitled Diagram\nuntitledLayer=Untitled Layer\nuntitledLibrary=Untitled Library\nunknownError=Unknown error\nupdateFile=Update {1}\nupdatingDocument=Updating Document. Please wait...\nupdatingPreview=Updating Preview. Please wait...\nupdatingSelection=Updating Selection. Please wait...\nupload=Upload\nurl=URL\nuseOffline=Use Offline\nuseRootFolder=Use root folder?\nuserManual=User Manual\nvertical=Vertical\nverticalFlow=Vertical Flow\nverticalTree=Vertical Tree\nview=View\nviewUrl=Link to view: {1}\nvoiceAssistant=Voice Assistant (beta)\nwarning=Warning\nwaypoints=Waypoints\nwest=West\nwidth=Width\nwiki=Wiki\nwordWrap=Word Wrap\nwritingDirection=Writing Direction\nyes=Yes\nyourEmailAddress=Your email address\nzoom=Zoom\nzoomIn=Zoom In\nzoomOut=Zoom Out\nbasic=Basic\nbusinessprocess=Business Processes\ncharts=Charts\nengineering=Engineering\nflowcharts=Flowcharts\ngmdl=Material Design\nmindmaps=Mindmaps\nmockups=Mockups\nnetworkdiagrams=Network Diagrams\nnothingIsSelected=Nothing is selected\nother=Other\nsoftwaredesign=Software Design\nvenndiagrams=Venn Diagrams\nwebEmailOrOther=Web, email or any other internet address\nwebLink=Web Link\nwireframes=Wireframes\n");Graph.prototype.defaultThemes[Graph.prototype.defaultThemeName]=mxUtils.parseXml('<mxStylesheet><add as="defaultVertex"><add as="shape" value="label"/><add as="perimeter" value="rectanglePerimeter"/><add as="fontSize" value="12"/><add as="fontFamily" value="Helvetica"/><add as="align" value="center"/><add as="verticalAlign" value="middle"/><add as="fillColor" value="#ffffff"/><add as="strokeColor" value="#000000"/><add as="fontColor" value="#000000"/></add><add as="defaultEdge"><add as="shape" value="connector"/><add as="labelBackgroundColor" value="#ffffff"/><add as="endArrow" value="classic"/><add as="fontSize" value="11"/><add as="fontFamily" value="Helvetica"/><add as="align" value="center"/><add as="verticalAlign" value="middle"/><add as="rounded" value="1"/><add as="strokeColor" value="#000000"/><add as="fontColor" value="#000000"/></add><add as="fancy"><add as="shadow" value="1"/><add as="glass" value="1"/></add><add as="gray" extend="fancy"><add as="gradientColor" value="#B3B3B3"/><add as="fillColor" value="#F5F5F5"/><add as="strokeColor" value="#666666"/></add><add as="blue" extend="fancy"><add as="gradientColor" value="#7EA6E0"/><add as="fillColor" value="#DAE8FC"/><add as="strokeColor" value="#6C8EBF"/></add><add as="green" extend="fancy"><add as="gradientColor" value="#97D077"/><add as="fillColor" value="#D5E8D4"/><add as="strokeColor" value="#82B366"/></add><add as="turquoise" extend="fancy"><add as="gradientColor" value="#67AB9F"/><add as="fillColor" value="#D5E8D4"/><add as="strokeColor" value="#6A9153"/></add><add as="yellow" extend="fancy"><add as="gradientColor" value="#FFD966"/><add as="fillColor" value="#FFF2CC"/><add as="strokeColor" value="#D6B656"/></add><add as="orange" extend="fancy"><add as="gradientColor" value="#FFA500"/><add as="fillColor" value="#FFCD28"/><add as="strokeColor" value="#D79B00"/></add><add as="red" extend="fancy"><add as="gradientColor" value="#EA6B66"/><add as="fillColor" value="#F8CECC"/><add as="strokeColor" value="#B85450"/></add><add as="pink" extend="fancy"><add as="gradientColor" value="#B5739D"/><add as="fillColor" value="#E6D0DE"/><add as="strokeColor" value="#996185"/></add><add as="purple" extend="fancy"><add as="gradientColor" value="#8C6C9C"/><add as="fillColor" value="#E1D5E7"/><add as="strokeColor" value="#9673A6"/></add><add as="plain-gray"><add as="gradientColor" value="#B3B3B3"/><add as="fillColor" value="#F5F5F5"/><add as="strokeColor" value="#666666"/></add><add as="plain-blue"><add as="gradientColor" value="#7EA6E0"/><add as="fillColor" value="#DAE8FC"/><add as="strokeColor" value="#6C8EBF"/></add><add as="plain-green"><add as="gradientColor" value="#97D077"/><add as="fillColor" value="#D5E8D4"/><add as="strokeColor" value="#82B366"/></add><add as="plain-turquoise"><add as="gradientColor" value="#67AB9F"/><add as="fillColor" value="#D5E8D4"/><add as="strokeColor" value="#6A9153"/></add><add as="plain-yellow"><add as="gradientColor" value="#FFD966"/><add as="fillColor" value="#FFF2CC"/><add as="strokeColor" value="#D6B656"/></add><add as="plain-orange"><add as="gradientColor" value="#FFA500"/><add as="fillColor" value="#FFCD28"/><add as="strokeColor" value="#D79B00"/></add><add as="plain-red"><add as="gradientColor" value="#EA6B66"/><add as="fillColor" value="#F8CECC"/><add as="strokeColor" value="#B85450"/></add><add as="plain-pink"><add as="gradientColor" value="#B5739D"/><add as="fillColor" value="#E6D0DE"/><add as="strokeColor" value="#996185"/></add><add as="plain-purple"><add as="gradientColor" value="#8C6C9C"/><add as="fillColor" value="#E1D5E7"/><add as="strokeColor" value="#9673A6"/></add><add as="text"><add as="fillColor" value="none"/><add as="gradientColor" value="none"/><add as="strokeColor" value="none"/><add as="align" value="left"/><add as="verticalAlign" value="top"/></add><add as="label"><add as="fontStyle" value="1"/><add as="align" value="left"/><add as="verticalAlign" value="middle"/><add as="spacing" value="2"/><add as="spacingLeft" value="52"/><add as="imageWidth" value="42"/><add as="imageHeight" value="42"/><add as="rounded" value="1"/></add><add as="icon" extend="label"><add as="align" value="center"/><add as="imageAlign" value="center"/><add as="verticalLabelPosition" value="bottom"/><add as="verticalAlign" value="top"/><add as="spacingTop" value="4"/><add as="labelBackgroundColor" value="#ffffff"/><add as="spacing" value="0"/><add as="spacingLeft" value="0"/><add as="spacingTop" value="6"/><add as="fontStyle" value="0"/><add as="imageWidth" value="48"/><add as="imageHeight" value="48"/></add><add as="swimlane"><add as="shape" value="swimlane"/><add as="fontSize" value="12"/><add as="fontStyle" value="1"/><add as="startSize" value="23"/></add><add as="group"><add as="verticalAlign" value="top"/><add as="fillColor" value="none"/><add as="strokeColor" value="none"/><add as="gradientColor" value="none"/><add as="pointerEvents" value="0"/></add><add as="ellipse"><add as="shape" value="ellipse"/><add as="perimeter" value="ellipsePerimeter"/></add><add as="rhombus"><add as="shape" value="rhombus"/><add as="perimeter" value="rhombusPerimeter"/></add><add as="triangle"><add as="shape" value="triangle"/><add as="perimeter" value="trianglePerimeter"/></add><add as="line"><add as="shape" value="line"/><add as="strokeWidth" value="4"/><add as="labelBackgroundColor" value="#ffffff"/><add as="verticalAlign" value="top"/><add as="spacingTop" value="8"/></add><add as="image"><add as="shape" value="image"/><add as="labelBackgroundColor" value="white"/><add as="verticalAlign" value="top"/><add as="verticalLabelPosition" value="bottom"/></add><add as="roundImage" extend="image"><add as="perimeter" value="ellipsePerimeter"/></add><add as="rhombusImage" extend="image"><add as="perimeter" value="rhombusPerimeter"/></add><add as="arrow"><add as="shape" value="arrow"/><add as="edgeStyle" value="none"/><add as="fillColor" value="#ffffff"/></add></mxStylesheet>').documentElement; +Graph.prototype.defaultThemes.darkTheme=mxUtils.parseXml('<mxStylesheet><add as="defaultVertex"><add as="shape" value="label"/><add as="perimeter" value="rectanglePerimeter"/><add as="fontSize" value="12"/><add as="fontFamily" value="Helvetica"/><add as="align" value="center"/><add as="verticalAlign" value="middle"/><add as="fillColor" value="#2a2a2a"/><add as="strokeColor" value="#f0f0f0"/><add as="fontColor" value="#f0f0f0"/></add><add as="defaultEdge"><add as="shape" value="connector"/><add as="labelBackgroundColor" value="#2a2a2a"/><add as="endArrow" value="classic"/><add as="fontSize" value="11"/><add as="fontFamily" value="Helvetica"/><add as="align" value="center"/><add as="verticalAlign" value="middle"/><add as="rounded" value="1"/><add as="strokeColor" value="#f0f0f0"/><add as="fontColor" value="#f0f0f0"/></add><add as="text"><add as="fillColor" value="none"/><add as="gradientColor" value="none"/><add as="strokeColor" value="none"/><add as="align" value="left"/><add as="verticalAlign" value="top"/></add><add as="label"><add as="fontStyle" value="1"/><add as="align" value="left"/><add as="verticalAlign" value="middle"/><add as="spacing" value="2"/><add as="spacingLeft" value="52"/><add as="imageWidth" value="42"/><add as="imageHeight" value="42"/><add as="rounded" value="1"/></add><add as="icon" extend="label"><add as="align" value="center"/><add as="imageAlign" value="center"/><add as="verticalLabelPosition" value="bottom"/><add as="verticalAlign" value="top"/><add as="spacingTop" value="4"/><add as="labelBackgroundColor" value="#2a2a2a"/><add as="spacing" value="0"/><add as="spacingLeft" value="0"/><add as="spacingTop" value="6"/><add as="fontStyle" value="0"/><add as="imageWidth" value="48"/><add as="imageHeight" value="48"/></add><add as="swimlane"><add as="shape" value="swimlane"/><add as="fontSize" value="12"/><add as="fontStyle" value="1"/><add as="startSize" value="23"/></add><add as="group"><add as="verticalAlign" value="top"/><add as="fillColor" value="none"/><add as="strokeColor" value="none"/><add as="gradientColor" value="none"/><add as="pointerEvents" value="0"/></add><add as="ellipse"><add as="shape" value="ellipse"/><add as="perimeter" value="ellipsePerimeter"/></add><add as="rhombus"><add as="shape" value="rhombus"/><add as="perimeter" value="rhombusPerimeter"/></add><add as="triangle"><add as="shape" value="triangle"/><add as="perimeter" value="trianglePerimeter"/></add><add as="line"><add as="shape" value="line"/><add as="strokeWidth" value="4"/><add as="labelBackgroundColor" value="#2a2a2a"/><add as="verticalAlign" value="top"/><add as="spacingTop" value="8"/></add><add as="image"><add as="shape" value="image"/><add as="labelBackgroundColor" value="#2a2a2a"/><add as="verticalAlign" value="top"/><add as="verticalLabelPosition" value="bottom"/></add><add as="roundImage" extend="image"><add as="perimeter" value="ellipsePerimeter"/></add><add as="rhombusImage" extend="image"><add as="perimeter" value="rhombusPerimeter"/></add><add as="arrow"><add as="shape" value="arrow"/><add as="edgeStyle" value="none"/><add as="fillColor" value="#2a2a2a"/></add></mxStylesheet>').documentElement;GraphViewer=function(a,b,e){this.init(a,b,e)};mxUtils.extend(GraphViewer,mxEventSource);GraphViewer.prototype.editBlankUrl="https://www.draw.io/";GraphViewer.prototype.imageBaseUrl="https://www.draw.io/";GraphViewer.prototype.toolbarHeight="BackCompat"==document.compatMode?28:30;GraphViewer.prototype.lightboxChrome=!0;GraphViewer.prototype.lightboxZIndex=999;GraphViewer.prototype.toolbarZIndex=999;GraphViewer.prototype.autoFit=!0;GraphViewer.prototype.allowZoomIn=!1; GraphViewer.prototype.showTitleAsTooltip=!1;GraphViewer.prototype.checkVisibleState=!0; -GraphViewer.prototype.init=function(a,d,e){this.graphConfig=null!=e?e:{};this.autoFit=null!=this.graphConfig["auto-fit"]?this.graphConfig["auto-fit"]:this.autoFit;this.allowZoomIn=null!=this.graphConfig["allow-zoom-in"]?this.graphConfig["allow-zoom-in"]:this.allowZoomIn;this.checkVisibleState=null!=this.graphConfig["check-visible-state"]?this.graphConfig["check-visible-state"]:this.checkVisibleState;this.toolbarItems=null!=this.graphConfig.toolbar?this.graphConfig.toolbar.split(" "):[];this.zoomEnabled= -0<=mxUtils.indexOf(this.toolbarItems,"zoom");this.layersEnabled=0<=mxUtils.indexOf(this.toolbarItems,"layers");this.lightboxEnabled=0<=mxUtils.indexOf(this.toolbarItems,"lightbox");this.lightboxClickEnabled=0!=this.graphConfig.lightbox;this.initialWidth=null!=a?a.style.width:null;this.widthIsEmpty=null!=this.initialWidth?""==this.initialWidth:!0;this.currentPage=parseInt(this.graphConfig.page)||0;this.editor=null;if(null!=d&&(this.xmlDocument=d.ownerDocument,this.xmlNode=d,this.xml=mxUtils.getXml(d), -null!=a)){var b=mxUtils.bind(this,function(){this.graph=new Graph(a);this.graph.transparentBackground=!1;this.graphConfig.move&&(this.graph.isMoveCellsEvent=function(a){return!0});this.lightboxClickEnabled&&(a.style.cursor="pointer");this.editor=new Editor(!0,null,null,this.graph);this.editor.editBlankUrl=this.editBlankUrl;this.graph.lightbox=!0;this.graph.centerZoom=!1;this.graph.autoExtend=!1;this.graph.autoScroll=!1;this.graph.setEnabled(!1);var b=this;this.graph.getImageFromBundles=function(a){return b.getImageUrl(a)}; -mxClient.IS_SVG&&this.editor.graph.addSvgShadow(this.graph.view.canvas.ownerSVGElement,null,!0);if("mxfile"==d.nodeName){var e=d.getElementsByTagName("diagram");if(0<e.length){var h=this.graph.getGlobalVariable,b=this;this.graph.getGlobalVariable=function(a){var c=e[b.currentPage];return"page"==a?c.getAttribute("name")||"Page-"+(b.currentPage+1):"pagenumber"==a?b.currentPage+1:h.apply(this,arguments)}}}this.diagrams=[];var c=null;this.selectPage=function(a){this.currentPage=mxUtils.mod(a,this.diagrams.length); +GraphViewer.prototype.init=function(a,b,e){this.graphConfig=null!=e?e:{};this.autoFit=null!=this.graphConfig["auto-fit"]?this.graphConfig["auto-fit"]:this.autoFit;this.allowZoomIn=null!=this.graphConfig["allow-zoom-in"]?this.graphConfig["allow-zoom-in"]:this.allowZoomIn;this.checkVisibleState=null!=this.graphConfig["check-visible-state"]?this.graphConfig["check-visible-state"]:this.checkVisibleState;this.toolbarItems=null!=this.graphConfig.toolbar?this.graphConfig.toolbar.split(" "):[];this.zoomEnabled= +0<=mxUtils.indexOf(this.toolbarItems,"zoom");this.layersEnabled=0<=mxUtils.indexOf(this.toolbarItems,"layers");this.lightboxEnabled=0<=mxUtils.indexOf(this.toolbarItems,"lightbox");this.lightboxClickEnabled=0!=this.graphConfig.lightbox;this.initialWidth=null!=a?a.style.width:null;this.widthIsEmpty=null!=this.initialWidth?""==this.initialWidth:!0;this.currentPage=parseInt(this.graphConfig.page)||0;this.editor=null;if(null!=b&&(this.xmlDocument=b.ownerDocument,this.xmlNode=b,this.xml=mxUtils.getXml(b), +null!=a)){var d=mxUtils.bind(this,function(){this.graph=new Graph(a);this.graph.transparentBackground=!1;this.graphConfig.move&&(this.graph.isMoveCellsEvent=function(a){return!0});this.lightboxClickEnabled&&(a.style.cursor="pointer");this.editor=new Editor(!0,null,null,this.graph);this.editor.editBlankUrl=this.editBlankUrl;this.graph.lightbox=!0;this.graph.centerZoom=!1;this.graph.autoExtend=!1;this.graph.autoScroll=!1;this.graph.setEnabled(!1);var d=this;this.graph.getImageFromBundles=function(a){return d.getImageUrl(a)}; +mxClient.IS_SVG&&this.editor.graph.addSvgShadow(this.graph.view.canvas.ownerSVGElement,null,!0);if("mxfile"==b.nodeName){var e=b.getElementsByTagName("diagram");if(0<e.length){var k=this.graph.getGlobalVariable,d=this;this.graph.getGlobalVariable=function(a){var b=e[d.currentPage];return"page"==a?b.getAttribute("name")||"Page-"+(d.currentPage+1):"pagenumber"==a?d.currentPage+1:k.apply(this,arguments)}}}this.diagrams=[];var c=null;this.selectPage=function(a){this.currentPage=mxUtils.mod(a,this.diagrams.length); this.updateGraphXml(mxUtils.parseXml(this.graph.decompress(mxUtils.getTextContent(this.diagrams[this.currentPage]))).documentElement)};this.selectPageById=function(a){for(var b=!1,c=0;c<this.diagrams.length;c++)if(this.diagrams[c].getAttribute("id")==a){this.selectPage(c);b=!0;break}return b};var f=mxUtils.bind(this,function(){if(null==this.xmlNode||"mxfile"!=this.xmlNode.nodeName)this.diagrams=[];this.xmlNode!=c&&(this.diagrams=this.xmlNode.getElementsByTagName("diagram"),c=this.xmlNode)});this.addListener("xmlNodeChanged", -f);f();urlParams.page=b.currentPage;this.graph.getModel().beginUpdate();try{urlParams.nav=0!=this.graphConfig.nav?"1":"0",this.editor.setGraphXml(this.xmlNode),this.graph.border=null!=this.graphConfig.border?this.graphConfig.border:8,this.graph.view.scale=this.graphConfig.zoom||1}finally{this.graph.getModel().endUpdate()}this.graph.panningHandler.useLeftButtonForPanning=!0;this.graph.panningHandler.isForcePanningEvent=function(a){return!mxEvent.isPopupTrigger(a.getEvent())&&"auto"==this.graph.container.style.overflow}; -this.graph.panningHandler.usePopupTrigger=!1;this.graph.panningHandler.pinchEnabled=!1;this.graph.panningHandler.ignoreCell=!0;this.graph.setPanning(!1);this.addSizeHandler();this.showLayers(this.graph);this.addClickHandler(this.graph);this.graph.setTooltips(0!=this.graphConfig.tooltips);this.graph.initialViewState={translate:this.graph.view.translate.clone(),scale:this.graph.view.scale};b=this;this.graph.customLinkClicked=function(a){var c=!0;if("data:page/id,"==a.substring(0,13)){var d=a.indexOf(","); -b.selectPageById(a.substring(d+1))||(c=!1,alert(mxResources.get("pageNotFound")||"Page not found"))}else this.handleCustomLink(a);return c};null!=this.graphConfig.toolbar?this.addToolbar():null!=this.graphConfig.title&&this.showTitleAsTooltip&&a.setAttribute("title",this.graphConfig.title);this.fireEvent(new mxEventObject("render"))});e=window.MutationObserver||window.WebKitMutationObserver||window.MozMutationObserver;if(this.checkVisibleState&&0==a.offsetWidth&&"undefined"!==typeof e){var h=this.getObservableParent(a), -m=new e(mxUtils.bind(this,function(d){0<a.offsetWidth&&(m.disconnect(),b())}));m.observe(h,{attributes:!0})}else b()}};GraphViewer.prototype.getObservableParent=function(a){for(a=a.parentNode;a!=document.body&&null!=a.parentNode&&"none"!==mxUtils.getCurrentStyle(a).display;)a=a.parentNode;return a}; +f);f();urlParams.page=d.currentPage;this.graph.getModel().beginUpdate();try{urlParams.nav=0!=this.graphConfig.nav?"1":"0",this.editor.setGraphXml(this.xmlNode),this.graph.border=null!=this.graphConfig.border?this.graphConfig.border:8,this.graph.view.scale=this.graphConfig.zoom||1}finally{this.graph.getModel().endUpdate()}this.graph.panningHandler.useLeftButtonForPanning=!0;this.graph.panningHandler.isForcePanningEvent=function(a){return!mxEvent.isPopupTrigger(a.getEvent())&&"auto"==this.graph.container.style.overflow}; +this.graph.panningHandler.usePopupTrigger=!1;this.graph.panningHandler.pinchEnabled=!1;this.graph.panningHandler.ignoreCell=!0;this.graph.setPanning(!1);this.addSizeHandler();this.showLayers(this.graph);this.addClickHandler(this.graph);this.graph.setTooltips(0!=this.graphConfig.tooltips);this.graph.initialViewState={translate:this.graph.view.translate.clone(),scale:this.graph.view.scale};d=this;this.graph.customLinkClicked=function(a){var b=!0;if("data:page/id,"==a.substring(0,13)){var c=a.indexOf(","); +d.selectPageById(a.substring(c+1))||(b=!1,alert(mxResources.get("pageNotFound")||"Page not found"))}else this.handleCustomLink(a);return b};null!=this.graphConfig.toolbar?this.addToolbar():null!=this.graphConfig.title&&this.showTitleAsTooltip&&a.setAttribute("title",this.graphConfig.title);this.fireEvent(new mxEventObject("render"))});e=window.MutationObserver||window.WebKitMutationObserver||window.MozMutationObserver;if(this.checkVisibleState&&0==a.offsetWidth&&"undefined"!==typeof e){var k=this.getObservableParent(a), +l=new e(mxUtils.bind(this,function(b){0<a.offsetWidth&&(l.disconnect(),d())}));l.observe(k,{attributes:!0})}else d()}};GraphViewer.prototype.getObservableParent=function(a){for(a=a.parentNode;a!=document.body&&null!=a.parentNode&&"none"!==mxUtils.getCurrentStyle(a).display;)a=a.parentNode;return a}; GraphViewer.prototype.getImageUrl=function(a){null!=a&&"http://"!=a.substring(0,7)&&"https://"!=a.substring(0,8)&&"data:image"!=a.substring(0,10)&&("/"==a.charAt(0)&&(a=a.substring(1,a.length)),a=this.imageBaseUrl+a);return a};GraphViewer.prototype.setXmlNode=function(a){this.xmlDocument=a.ownerDocument;this.xml=mxUtils.getXml(a);this.xmlNode=a;this.updateGraphXml(a);this.fireEvent(new mxEventObject("xmlNodeChanged"))}; GraphViewer.prototype.setFileNode=function(a){null==this.xmlNode&&(this.xmlDocument=a.ownerDocument,this.xml=mxUtils.getXml(a),this.xmlNode=a);this.setGraphXml(a)};GraphViewer.prototype.updateGraphXml=function(a){this.setGraphXml(a);this.fireEvent(new mxEventObject("graphChanged"))}; GraphViewer.prototype.setGraphXml=function(a){null!=this.graph&&(this.graph.view.translate=new mxPoint,this.graph.view.scale=1,this.graph.getModel().clear(),this.editor.setGraphXml(a),this.widthIsEmpty?(this.graph.container.style.width="",this.graph.container.style.height=""):this.graph.container.style.width=this.initialWidth,this.positionGraph(),this.graph.initialViewState={translate:this.graph.view.translate.clone(),scale:this.graph.view.scale})}; -GraphViewer.prototype.addSizeHandler=function(){var a=this.graph.container,d=this.graph.getGraphBounds(),e=!1;a.style.overflow="hidden";var b=mxUtils.bind(this,function(){if(!e){e=!0;var b=this.graph.getGraphBounds();a.style.overflow=a.offsetWidth<=b.width+2*this.graph.border*this.graph.view.scale?"auto":"hidden";if(null!=this.toolbar){var b=a.getBoundingClientRect(),c=mxUtils.getScrollOrigin(document.body),c="relative"===document.body.style.position?document.body.getBoundingClientRect():{left:-c.x, -top:-c.y},b={left:b.left-c.left,top:b.top-c.top,bottom:b.bottom-c.top,right:b.right-c.left};this.toolbar.style.left=b.left+"px";"bottom"==this.graphConfig["toolbar-position"]?this.toolbar.style.top=b.bottom-1+"px":"inline"!=this.graphConfig["toolbar-position"]?(this.toolbar.style.width=Math.max(this.minToolbarWidth,a.offsetWidth)+"px",this.toolbar.style.top=b.top+1+"px"):this.toolbar.style.top=b.top+"px"}e=!1}}),h=null,m=!1;this.fitGraph=function(b){var c=a.offsetWidth;c==h||m||(m=!0,this.graph.maxFitScale= -null!=b?b:this.graphConfig.zoom||(this.allowZoomIn?null:1),this.graph.fit(null,null,null,null,!1,!0),this.graph.maxFitScale=null,b=this.graph.getGraphBounds(),this.updateContainerHeight(a,b.height+2*this.graph.border+1),this.graph.initialViewState={translate:this.graph.view.translate.clone(),scale:this.graph.view.scale},h=c,window.setTimeout(function(){m=!1},0))};GraphViewer.useResizeSensor&&(mxClient.IS_QUIRKS||9>=document.documentMode?(mxEvent.addListener(window,"resize",b),this.graph.addListener("size", -b)):new ResizeSensor(this.graph.container,b));if(this.graphConfig.resize||(this.zoomEnabled||!this.autoFit)&&0!=this.graphConfig.resize)this.graph.minimumContainerSize=new mxRectangle(0,0,100,1),this.graph.resizeContainer=!0;else if(this.widthIsEmpty&&this.updateContainerWidth(a,d.width+2*this.graph.border),this.updateContainerHeight(a,d.height+2*this.graph.border+1),!this.zoomEnabled&&this.autoFit){var p=h=null,b=mxUtils.bind(this,function(){window.clearTimeout(p);m||(p=window.setTimeout(mxUtils.bind(this, -this.fitGraph),100))});GraphViewer.useResizeSensor&&(mxClient.IS_QUIRKS||9>=document.documentMode?mxEvent.addListener(window,"resize",b):new ResizeSensor(this.graph.container,b))}else mxClient.IS_QUIRKS||9>=document.documentMode||this.graph.addListener("size",b);var q=mxUtils.bind(this,function(){var b=a.style.minWidth;this.widthIsEmpty&&(a.style.minWidth="100%");if(0<a.offsetWidth&&(this.allowZoomIn||d.width+2*this.graph.border>a.offsetWidth||d.height+2*this.graph.border>this.graphConfig["max-height"])){var c= -null;null!=this.graphConfig["max-height"]&&(c=this.graphConfig["max-height"]/(d.height+2*this.graph.border));this.fitGraph(c)}else this.graph.view.setTranslate(Math.floor((this.graph.border-d.x)/this.graph.view.scale),Math.floor((this.graph.border-d.y)/this.graph.view.scale)),h=a.offsetWidth;a.style.minWidth=b});mxClient.IS_QUIRKS||8==document.documentMode?window.setTimeout(q,0):q();this.positionGraph=function(){d=this.graph.getGraphBounds();h=null;q()}}; -GraphViewer.prototype.updateContainerWidth=function(a,d){a.style.width=d+"px"};GraphViewer.prototype.updateContainerHeight=function(a,d){if(this.zoomEnabled||!this.autoFit||"BackCompat"==document.compatMode||mxClient.IS_QUIRKS||8==document.documentMode)a.style.height=d+"px"}; -GraphViewer.prototype.showLayers=function(a,d){var e=this.graphConfig.layers;if(null!=e||null!=d)if(e=null!=e?e.split(" "):null,null!=d||0<e.length){var b=null!=d?d.getModel():null,h=a.getModel();h.beginUpdate();try{for(var m=h.getChildCount(h.root),p=0;p<m;p++)h.setVisible(h.getChildAt(h.root,p),null!=d?b.isVisible(b.getChildAt(b.root,p)):!1);if(null==b)for(p=0;p<e.length;p++)h.setVisible(h.getChildAt(h.root,parseInt(e[p])),!0)}finally{h.endUpdate()}}}; +GraphViewer.prototype.addSizeHandler=function(){var a=this.graph.container,b=this.graph.getGraphBounds(),e=!1;a.style.overflow="hidden";var d=mxUtils.bind(this,function(){if(!e){e=!0;var b=this.graph.getGraphBounds();a.style.overflow=a.offsetWidth<=b.width+2*this.graph.border*this.graph.view.scale?"auto":"hidden";if(null!=this.toolbar){var b=a.getBoundingClientRect(),c=mxUtils.getScrollOrigin(document.body),c="relative"===document.body.style.position?document.body.getBoundingClientRect():{left:-c.x, +top:-c.y},b={left:b.left-c.left,top:b.top-c.top,bottom:b.bottom-c.top,right:b.right-c.left};this.toolbar.style.left=b.left+"px";"bottom"==this.graphConfig["toolbar-position"]?this.toolbar.style.top=b.bottom-1+"px":"inline"!=this.graphConfig["toolbar-position"]?(this.toolbar.style.width=Math.max(this.minToolbarWidth,a.offsetWidth)+"px",this.toolbar.style.top=b.top+1+"px"):this.toolbar.style.top=b.top+"px"}e=!1}}),k=null,l=!1;this.fitGraph=function(b){var c=a.offsetWidth;c==k||l||(l=!0,this.graph.maxFitScale= +null!=b?b:this.graphConfig.zoom||(this.allowZoomIn?null:1),this.graph.fit(null,null,null,null,!1,!0),this.graph.maxFitScale=null,b=this.graph.getGraphBounds(),this.updateContainerHeight(a,b.height+2*this.graph.border+1),this.graph.initialViewState={translate:this.graph.view.translate.clone(),scale:this.graph.view.scale},k=c,window.setTimeout(function(){l=!1},0))};GraphViewer.useResizeSensor&&(mxClient.IS_QUIRKS||9>=document.documentMode?(mxEvent.addListener(window,"resize",d),this.graph.addListener("size", +d)):new ResizeSensor(this.graph.container,d));if(this.graphConfig.resize||(this.zoomEnabled||!this.autoFit)&&0!=this.graphConfig.resize)this.graph.minimumContainerSize=new mxRectangle(0,0,100,1),this.graph.resizeContainer=!0;else if(this.widthIsEmpty&&this.updateContainerWidth(a,b.width+2*this.graph.border),this.updateContainerHeight(a,b.height+2*this.graph.border+1),!this.zoomEnabled&&this.autoFit){var p=k=null,d=mxUtils.bind(this,function(){window.clearTimeout(p);l||(p=window.setTimeout(mxUtils.bind(this, +this.fitGraph),100))});GraphViewer.useResizeSensor&&(mxClient.IS_QUIRKS||9>=document.documentMode?mxEvent.addListener(window,"resize",d):new ResizeSensor(this.graph.container,d))}else mxClient.IS_QUIRKS||9>=document.documentMode||this.graph.addListener("size",d);var q=mxUtils.bind(this,function(){var d=a.style.minWidth;this.widthIsEmpty&&(a.style.minWidth="100%");if(0<a.offsetWidth&&(this.allowZoomIn||b.width+2*this.graph.border>a.offsetWidth||b.height+2*this.graph.border>this.graphConfig["max-height"])){var c= +null;null!=this.graphConfig["max-height"]&&(c=this.graphConfig["max-height"]/(b.height+2*this.graph.border));this.fitGraph(c)}else this.graph.view.setTranslate(Math.floor((this.graph.border-b.x)/this.graph.view.scale),Math.floor((this.graph.border-b.y)/this.graph.view.scale)),k=a.offsetWidth;a.style.minWidth=d});mxClient.IS_QUIRKS||8==document.documentMode?window.setTimeout(q,0):q();this.positionGraph=function(){b=this.graph.getGraphBounds();k=null;q()}}; +GraphViewer.prototype.updateContainerWidth=function(a,b){a.style.width=b+"px"};GraphViewer.prototype.updateContainerHeight=function(a,b){if(this.zoomEnabled||!this.autoFit||"BackCompat"==document.compatMode||mxClient.IS_QUIRKS||8==document.documentMode)a.style.height=b+"px"}; +GraphViewer.prototype.showLayers=function(a,b){var e=this.graphConfig.layers;if(null!=e||null!=b)if(e=null!=e?e.split(" "):null,null!=b||0<e.length){var d=null!=b?b.getModel():null,k=a.getModel();k.beginUpdate();try{for(var l=k.getChildCount(k.root),p=0;p<l;p++)k.setVisible(k.getChildAt(k.root,p),null!=b?d.isVisible(d.getChildAt(d.root,p)):!1);if(null==d)for(p=0;p<e.length;p++)k.setVisible(k.getChildAt(k.root,parseInt(e[p])),!0)}finally{k.endUpdate()}}}; GraphViewer.prototype.addToolbar=function(){function a(a,b,c,d){var g=document.createElement("div");g.style.borderRight="1px solid #d0d0d0";g.style.padding="3px 6px 3px 6px";mxEvent.addListener(g,"click",a);null!=c&&g.setAttribute("title",c);g.style.display=mxClient.IS_QUIRKS?"inline":"inline-block";a=document.createElement("img");a.setAttribute("border","0");a.setAttribute("src",b);null==d||d?(mxEvent.addListener(g,"mouseenter",function(){g.style.backgroundColor="#ddd"}),mxEvent.addListener(g,"mouseleave", -function(){g.style.backgroundColor="#eee"}),mxUtils.setOpacity(a,60),g.style.cursor="pointer"):mxUtils.setOpacity(g,30);g.appendChild(a);e.appendChild(g);f++;return g}var d=this.graph.container;"bottom"==this.graphConfig["toolbar-position"]?d.style.marginBottom=this.toolbarHeight+"px":"inline"!=this.graphConfig["toolbar-position"]&&(d.style.marginTop=this.toolbarHeight+"px");var e=d.ownerDocument.createElement("div");e.style.position="absolute";e.style.overflow="hidden";e.style.boxSizing="border-box"; -e.style.whiteSpace="nowrap";e.style.zIndex=this.toolbarZIndex;e.style.backgroundColor="#eee";e.style.height=this.toolbarHeight+"px";this.toolbar=e;if("inline"==this.graphConfig["toolbar-position"]){mxUtils.setPrefixedStyle(e.style,"transition","opacity 100ms ease-in-out");mxUtils.setOpacity(e,30);var b=null,h=null,m=mxUtils.bind(this,function(a){null!=b&&(window.clearTimeout(b),fadeThead=null);null!=h&&(window.clearTimeout(h),fadeThead2=null);b=window.setTimeout(mxUtils.bind(this,function(){mxUtils.setOpacity(e, -0);b=null;h=window.setTimeout(mxUtils.bind(this,function(){e.style.display="none";h=null}),100)}),a||200)}),p=mxUtils.bind(this,function(a){null!=b&&(window.clearTimeout(b),fadeThead=null);null!=h&&(window.clearTimeout(h),fadeThead2=null);e.style.display="";mxUtils.setOpacity(e,a||30)});mxEvent.addListener(this.graph.container,mxClient.IS_POINTER?"pointermove":"mousemove",mxUtils.bind(this,function(a){mxEvent.isTouchEvent(a)||(p(30),m())}));mxEvent.addListener(e,mxClient.IS_POINTER?"pointermove": +function(){g.style.backgroundColor="#eee"}),mxUtils.setOpacity(a,60),g.style.cursor="pointer"):mxUtils.setOpacity(g,30);g.appendChild(a);e.appendChild(g);f++;return g}var b=this.graph.container;"bottom"==this.graphConfig["toolbar-position"]?b.style.marginBottom=this.toolbarHeight+"px":"inline"!=this.graphConfig["toolbar-position"]&&(b.style.marginTop=this.toolbarHeight+"px");var e=b.ownerDocument.createElement("div");e.style.position="absolute";e.style.overflow="hidden";e.style.boxSizing="border-box"; +e.style.whiteSpace="nowrap";e.style.zIndex=this.toolbarZIndex;e.style.backgroundColor="#eee";e.style.height=this.toolbarHeight+"px";this.toolbar=e;if("inline"==this.graphConfig["toolbar-position"]){mxUtils.setPrefixedStyle(e.style,"transition","opacity 100ms ease-in-out");mxUtils.setOpacity(e,30);var d=null,k=null,l=mxUtils.bind(this,function(a){null!=d&&(window.clearTimeout(d),fadeThead=null);null!=k&&(window.clearTimeout(k),fadeThead2=null);d=window.setTimeout(mxUtils.bind(this,function(){mxUtils.setOpacity(e, +0);d=null;k=window.setTimeout(mxUtils.bind(this,function(){e.style.display="none";k=null}),100)}),a||200)}),p=mxUtils.bind(this,function(a){null!=d&&(window.clearTimeout(d),fadeThead=null);null!=k&&(window.clearTimeout(k),fadeThead2=null);e.style.display="";mxUtils.setOpacity(e,a||30)});mxEvent.addListener(this.graph.container,mxClient.IS_POINTER?"pointermove":"mousemove",mxUtils.bind(this,function(a){mxEvent.isTouchEvent(a)||(p(30),l())}));mxEvent.addListener(e,mxClient.IS_POINTER?"pointermove": "mousemove",function(a){mxEvent.consume(a)});mxEvent.addListener(e,"mouseenter",mxUtils.bind(this,function(a){p(100)}));mxEvent.addListener(e,"mousemove",mxUtils.bind(this,function(a){p(100);mxEvent.consume(a)}));mxEvent.addListener(e,"mouseleave",mxUtils.bind(this,function(a){mxEvent.isTouchEvent(a)||p(30)}));var q=this.graph,u=q.getTolerance();q.addMouseListener({startX:0,startY:0,scrollLeft:0,scrollTop:0,mouseDown:function(a,b){this.startX=b.getGraphX();this.startY=b.getGraphY();this.scrollLeft= -q.container.scrollLeft;this.scrollTop=q.container.scrollTop},mouseMove:function(a,b){},mouseUp:function(a,b){mxEvent.isTouchEvent(b.getEvent())&&Math.abs(this.scrollLeft-q.container.scrollLeft)<u&&Math.abs(this.scrollTop-q.container.scrollTop)<u&&Math.abs(this.startX-b.getGraphX())<u&&Math.abs(this.startY-b.getGraphY())<u&&(0<parseFloat(e.style.opacity||0)?m():p(30))}})}for(var c=this.toolbarItems,f=0,g=null,k=null,r=0;r<c.length;r++){var l=c[r];if("pages"==l){k=d.ownerDocument.createElement("div"); -k.style.cssText="display:inline-block;position:relative;padding:3px 4px 0 4px;vertical-align:top;font-family:Helvetica,Arial;font-size:12px;top:4px;cursor:default;";mxUtils.setOpacity(k,70);var n=a(mxUtils.bind(this,function(){this.selectPage(this.currentPage-1)}),Editor.previousImage,mxResources.get("previousPage")||"Previous Page");n.style.borderRightStyle="none";n.style.paddingLeft="0px";n.style.paddingRight="0px";e.appendChild(k);var w=a(mxUtils.bind(this,function(){this.selectPage(this.currentPage+ -1)}),Editor.nextImage,mxResources.get("nextPage")||"Next Page");w.style.paddingLeft="0px";w.style.paddingRight="0px";l=mxUtils.bind(this,function(){k.innerHTML="";mxUtils.write(k,this.currentPage+1+" / "+this.diagrams.length);k.style.display=1<this.diagrams.length?"inline-block":"none";n.style.display=k.style.display;w.style.display=k.style.display});this.addListener("graphChanged",l);l()}else if("zoom"==l)this.zoomEnabled&&(a(mxUtils.bind(this,function(){this.graph.zoomOut()}),Editor.zoomOutImage, -mxResources.get("zoomOut")||"Zoom Out"),a(mxUtils.bind(this,function(){this.graph.zoomIn()}),Editor.zoomInImage,mxResources.get("zoomIn")||"Zoom In"),a(mxUtils.bind(this,function(){this.graph.view.scaleAndTranslate(this.graph.initialViewState.scale,this.graph.initialViewState.translate.x,this.graph.initialViewState.translate.y)}),Editor.zoomFitImage,mxResources.get("fit")||"Fit"));else if("layers"==l){if(this.layersEnabled){var v=this.graph.getModel(),B=a(mxUtils.bind(this,function(a){if(null!=g)g.parentNode.removeChild(g), -g=null;else{g=this.graph.createLayersDialog();mxEvent.addListener(g,"mouseleave",function(){g.parentNode.removeChild(g);g=null});a=B.getBoundingClientRect();g.style.width="140px";g.style.padding="2px 0px 2px 0px";g.style.border="1px solid #d0d0d0";g.style.backgroundColor="#eee";g.style.fontFamily="Helvetica Neue,Helvetica,Arial Unicode MS,Arial";g.style.fontSize="11px";g.style.zIndex=this.toolbarZIndex+1;mxUtils.setOpacity(g,80);var b=mxUtils.getDocumentScrollOrigin(document);g.style.left=b.x+a.left+ -"px";g.style.top=b.y+a.bottom+"px";document.body.appendChild(g)}}),Editor.layersImage,mxResources.get("layers")||"Layers");v.addListener(mxEvent.CHANGE,function(){B.style.display=1<v.getChildCount(v.root)?"inline-block":"none"});B.style.display=1<v.getChildCount(v.root)?"inline-block":"none"}}else"lightbox"==l?this.lightboxEnabled&&a(mxUtils.bind(this,function(){this.showLightbox()}),Editor.maximizeImage,mxResources.get("show")||"Show"):null!=this.graphConfig["toolbar-buttons"]&&(l=this.graphConfig["toolbar-buttons"][l], -null!=l&&a(null==l.enabled||l.enabled?l.handler:function(){},l.image,l.title,l.enabled))}null!=this.graph.minimumContainerSize&&(this.graph.minimumContainerSize.width=34*f);null!=this.graphConfig.title&&(c=d.ownerDocument.createElement("div"),c.style.cssText="display:inline-block;position:relative;padding:3px 6px 0 6px;vertical-align:top;font-family:Helvetica,Arial;font-size:12px;top:4px;cursor:default;",c.setAttribute("title",this.graphConfig.title),mxUtils.write(c,this.graphConfig.title),mxUtils.setOpacity(c, -70),e.appendChild(c));this.minToolbarWidth=34*f;var y=d.style.border,c=mxUtils.bind(this,function(){var a=d.getBoundingClientRect(),b=mxUtils.getScrollOrigin(document.body),b="relative"===document.body.style.position?document.body.getBoundingClientRect():{left:-b.x,top:-b.y},a={left:a.left-b.left,top:a.top-b.top,bottom:a.bottom-b.top,right:a.right-b.left};e.style.left=a.left+"px";e.style.width="inline"==this.graphConfig["toolbar-position"]?"auto":Math.max(this.minToolbarWidth,d.offsetWidth)+"px"; -e.style.border="1px solid #d0d0d0";"bottom"==this.graphConfig["toolbar-position"]?e.style.top=a.bottom-1+"px":"inline"!=this.graphConfig["toolbar-position"]?(e.style.marginTop=-this.toolbarHeight+"px",e.style.top=a.top+1+"px"):e.style.top=a.top+"px";"1px solid transparent"==y&&(d.style.border="1px solid #d0d0d0");document.body.appendChild(e);var c=mxUtils.bind(this,function(){1!=this.graphConfig["toolbar-nohide"]&&(null!=e.parentNode&&e.parentNode.removeChild(e),null!=g&&(g.parentNode.removeChild(g), -g=null),d.style.border=y)});mxEvent.addListener(document,"mousemove",function(a){for(a=mxEvent.getSource(a);null!=a;){if(a==d||a==e||a==g)return;a=a.parentNode}c()});mxEvent.addListener(document,"mouseleave",function(a){c()})});mxEvent.addListener(d,"mouseenter",c)}; -GraphViewer.prototype.addClickHandler=function(a,d){a.linkPolicy=this.graphConfig.target||a.linkPolicy;a.addClickHandler(this.graphConfig.highlight,mxUtils.bind(this,function(e,b){if(null==b){var h=mxEvent.getSource(e);"a"==h.nodeName.toLowerCase()&&(b=h.getAttribute("href"))}null!=d?null==b||a.isExternalProtocol(b)||a.isBlankLink(b)||window.setTimeout(function(){d.destroy()},0):null!=b&&null==d&&a.isCustomLink(b)&&(mxEvent.isTouchEvent(e)||!mxEvent.isPopupTrigger(e))&&a.customLinkClicked(b)&&mxEvent.consume(e)}), -mxUtils.bind(this,function(a){null!=d||!this.lightboxClickEnabled||mxEvent.isTouchEvent(a)&&0!=this.toolbarItems.length||this.showLightbox()}))}; -GraphViewer.prototype.showLightbox=function(a,d,e){if("open"==this.graphConfig.lightbox||window.self!==window.top)if(null==this.lightboxWindow||this.lightboxWindow.closed){a=null!=a?a:null!=this.graphConfig.editable?this.graphConfig.editable:!0;e={client:1,lightbox:1,target:null!=e?e:"blank"};a&&(e.edit=this.graphConfig.edit||"_blank");if(null!=d?d:1)e.close=1;this.layersEnabled&&(e.layers=1);null!=this.graphConfig&&0!=this.graphConfig.nav&&(e.nav=1);null!=this.graphConfig&&null!=this.graphConfig.highlight&& +q.container.scrollLeft;this.scrollTop=q.container.scrollTop},mouseMove:function(a,b){},mouseUp:function(a,b){mxEvent.isTouchEvent(b.getEvent())&&Math.abs(this.scrollLeft-q.container.scrollLeft)<u&&Math.abs(this.scrollTop-q.container.scrollTop)<u&&Math.abs(this.startX-b.getGraphX())<u&&Math.abs(this.startY-b.getGraphY())<u&&(0<parseFloat(e.style.opacity||0)?l():p(30))}})}for(var c=this.toolbarItems,f=0,g=null,n=null,r=0;r<c.length;r++){var h=c[r];if("pages"==h){n=b.ownerDocument.createElement("div"); +n.style.cssText="display:inline-block;position:relative;padding:3px 4px 0 4px;vertical-align:top;font-family:Helvetica,Arial;font-size:12px;top:4px;cursor:default;";mxUtils.setOpacity(n,70);var m=a(mxUtils.bind(this,function(){this.selectPage(this.currentPage-1)}),Editor.previousImage,mxResources.get("previousPage")||"Previous Page");m.style.borderRightStyle="none";m.style.paddingLeft="0px";m.style.paddingRight="0px";e.appendChild(n);var w=a(mxUtils.bind(this,function(){this.selectPage(this.currentPage+ +1)}),Editor.nextImage,mxResources.get("nextPage")||"Next Page");w.style.paddingLeft="0px";w.style.paddingRight="0px";h=mxUtils.bind(this,function(){n.innerHTML="";mxUtils.write(n,this.currentPage+1+" / "+this.diagrams.length);n.style.display=1<this.diagrams.length?"inline-block":"none";m.style.display=n.style.display;w.style.display=n.style.display});this.addListener("graphChanged",h);h()}else if("zoom"==h)this.zoomEnabled&&(a(mxUtils.bind(this,function(){this.graph.zoomOut()}),Editor.zoomOutImage, +mxResources.get("zoomOut")||"Zoom Out"),a(mxUtils.bind(this,function(){this.graph.zoomIn()}),Editor.zoomInImage,mxResources.get("zoomIn")||"Zoom In"),a(mxUtils.bind(this,function(){this.graph.view.scaleAndTranslate(this.graph.initialViewState.scale,this.graph.initialViewState.translate.x,this.graph.initialViewState.translate.y)}),Editor.zoomFitImage,mxResources.get("fit")||"Fit"));else if("layers"==h){if(this.layersEnabled){var v=this.graph.getModel(),A=a(mxUtils.bind(this,function(a){if(null!=g)g.parentNode.removeChild(g), +g=null;else{g=this.graph.createLayersDialog();mxEvent.addListener(g,"mouseleave",function(){g.parentNode.removeChild(g);g=null});a=A.getBoundingClientRect();g.style.width="140px";g.style.padding="2px 0px 2px 0px";g.style.border="1px solid #d0d0d0";g.style.backgroundColor="#eee";g.style.fontFamily="Helvetica Neue,Helvetica,Arial Unicode MS,Arial";g.style.fontSize="11px";g.style.zIndex=this.toolbarZIndex+1;mxUtils.setOpacity(g,80);var b=mxUtils.getDocumentScrollOrigin(document);g.style.left=b.x+a.left+ +"px";g.style.top=b.y+a.bottom+"px";document.body.appendChild(g)}}),Editor.layersImage,mxResources.get("layers")||"Layers");v.addListener(mxEvent.CHANGE,function(){A.style.display=1<v.getChildCount(v.root)?"inline-block":"none"});A.style.display=1<v.getChildCount(v.root)?"inline-block":"none"}}else"lightbox"==h?this.lightboxEnabled&&a(mxUtils.bind(this,function(){this.showLightbox()}),Editor.maximizeImage,mxResources.get("show")||"Show"):null!=this.graphConfig["toolbar-buttons"]&&(h=this.graphConfig["toolbar-buttons"][h], +null!=h&&a(null==h.enabled||h.enabled?h.handler:function(){},h.image,h.title,h.enabled))}null!=this.graph.minimumContainerSize&&(this.graph.minimumContainerSize.width=34*f);null!=this.graphConfig.title&&(c=b.ownerDocument.createElement("div"),c.style.cssText="display:inline-block;position:relative;padding:3px 6px 0 6px;vertical-align:top;font-family:Helvetica,Arial;font-size:12px;top:4px;cursor:default;",c.setAttribute("title",this.graphConfig.title),mxUtils.write(c,this.graphConfig.title),mxUtils.setOpacity(c, +70),e.appendChild(c));this.minToolbarWidth=34*f;var y=b.style.border,c=mxUtils.bind(this,function(){var a=b.getBoundingClientRect(),c=mxUtils.getScrollOrigin(document.body),c="relative"===document.body.style.position?document.body.getBoundingClientRect():{left:-c.x,top:-c.y},a={left:a.left-c.left,top:a.top-c.top,bottom:a.bottom-c.top,right:a.right-c.left};e.style.left=a.left+"px";e.style.width="inline"==this.graphConfig["toolbar-position"]?"auto":Math.max(this.minToolbarWidth,b.offsetWidth)+"px"; +e.style.border="1px solid #d0d0d0";"bottom"==this.graphConfig["toolbar-position"]?e.style.top=a.bottom-1+"px":"inline"!=this.graphConfig["toolbar-position"]?(e.style.marginTop=-this.toolbarHeight+"px",e.style.top=a.top+1+"px"):e.style.top=a.top+"px";"1px solid transparent"==y&&(b.style.border="1px solid #d0d0d0");document.body.appendChild(e);var d=mxUtils.bind(this,function(){1!=this.graphConfig["toolbar-nohide"]&&(null!=e.parentNode&&e.parentNode.removeChild(e),null!=g&&(g.parentNode.removeChild(g), +g=null),b.style.border=y)});mxEvent.addListener(document,"mousemove",function(a){for(a=mxEvent.getSource(a);null!=a;){if(a==b||a==e||a==g)return;a=a.parentNode}d()});mxEvent.addListener(document,"mouseleave",function(a){d()})});mxEvent.addListener(b,"mouseenter",c)}; +GraphViewer.prototype.addClickHandler=function(a,b){a.linkPolicy=this.graphConfig.target||a.linkPolicy;a.addClickHandler(this.graphConfig.highlight,mxUtils.bind(this,function(e,d){if(null==d){var k=mxEvent.getSource(e);"a"==k.nodeName.toLowerCase()&&(d=k.getAttribute("href"))}null!=b?null==d||a.isExternalProtocol(d)||a.isBlankLink(d)||window.setTimeout(function(){b.destroy()},0):null!=d&&null==b&&a.isCustomLink(d)&&(mxEvent.isTouchEvent(e)||!mxEvent.isPopupTrigger(e))&&a.customLinkClicked(d)&&mxEvent.consume(e)}), +mxUtils.bind(this,function(a){null!=b||!this.lightboxClickEnabled||mxEvent.isTouchEvent(a)&&0!=this.toolbarItems.length||this.showLightbox()}))}; +GraphViewer.prototype.showLightbox=function(a,b,e){if("open"==this.graphConfig.lightbox||window.self!==window.top)if(null==this.lightboxWindow||this.lightboxWindow.closed){a=null!=a?a:null!=this.graphConfig.editable?this.graphConfig.editable:!0;e={client:1,lightbox:1,target:null!=e?e:"blank"};a&&(e.edit=this.graphConfig.edit||"_blank");if(null!=b?b:1)e.close=1;this.layersEnabled&&(e.layers=1);null!=this.graphConfig&&0!=this.graphConfig.nav&&(e.nav=1);null!=this.graphConfig&&null!=this.graphConfig.highlight&& (e.highlight=this.graphConfig.highlight.substring(1));null!=this.currentPage&&0<this.currentPage&&(e.page=this.currentPage);"undefined"!==typeof window.postMessage&&(null==document.documentMode||10<=document.documentMode)?null==this.lightboxWindow&&mxEvent.addListener(window,"message",mxUtils.bind(this,function(a){"ready"==a.data&&a.source==this.lightboxWindow&&this.lightboxWindow.postMessage(this.xml,"*")})):e.data=encodeURIComponent(this.xml);a="www.draw.io";"1"==urlParams.dev&&(e.dev="1",e.drawdev= "1",a="test.draw.io");this.lightboxWindow=window.open("https://"+a+"/#P"+encodeURIComponent(JSON.stringify(e)))}else this.lightboxWindow.focus();else this.showLocalLightbox()}; -GraphViewer.prototype.showLocalLightbox=function(){var a=mxUtils.getDocumentScrollOrigin(document),d=document.createElement("div");mxClient.IS_QUIRKS?(d.style.position="absolute",d.style.left=a.x+"px",d.style.top=a.y+"px",d.style.width=document.body.offsetWidth+"px",d.style.height=document.body.offsetHeight+"px"):d.style.cssText="position:fixed;top:0;left:0;bottom:0;right:0;";d.style.zIndex=this.lightboxZIndex;d.style.backgroundColor="#000000";mxUtils.setOpacity(d,70);document.body.appendChild(d); -var e=document.createElement("img");e.setAttribute("border","0");e.setAttribute("src",Editor.closeImage);mxClient.IS_QUIRKS?(e.style.position="absolute",e.style.right="32px",e.style.top=a.y+32+"px"):e.style.cssText="position:fixed;top:32px;right:32px;";e.style.cursor="pointer";mxEvent.addListener(e,"click",function(){b.destroy()});urlParams.pages="1";urlParams.page=this.currentPage;urlParams.nav=0!=this.graphConfig.nav?"1":"0";urlParams.layers=this.layersEnabled?"1":"0";if(null==document.documentMode|| -10<=document.documentMode)Editor.prototype.editButtonLink=this.graphConfig.edit,Editor.prototype.editButtonFunc=this.graphConfig.editFunc;EditorUi.prototype.updateActionStates=function(){};EditorUi.prototype.addBeforeUnloadListener=function(){};EditorUi.prototype.addChromelessClickHandler=function(){};Graph.prototype.shadowId="lightboxDropShadow";var b=new EditorUi(new Editor(!0),document.createElement("div"),!0);b.editor.editBlankUrl=this.editBlankUrl;Graph.prototype.shadowId="dropShadow";b.refresh= -function(){};var h=mxUtils.bind(this,function(a){27==a.keyCode&&b.destroy()}),m=b.destroy;b.destroy=function(){mxEvent.removeListener(document.documentElement,"keydown",h);document.body.removeChild(d);document.body.removeChild(e);document.body.style.overflow="auto";GraphViewer.resizeSensorEnabled=!0;m.apply(this,arguments)};var p=b.editor.graph,q=p.container;q.style.overflow="hidden";this.lightboxChrome?(q.style.border="1px solid #c0c0c0",q.style.margin="40px",mxEvent.addListener(document.documentElement, -"keydown",h)):(d.style.display="none",e.style.display="none");var u=this;p.getImageFromBundles=function(a){return u.getImageUrl(a)};var c=b.createTemporaryGraph;b.createTemporaryGraph=function(){var a=c.apply(this,arguments);a.getImageFromBundles=function(a){return u.getImageUrl(a)};return a};this.graphConfig.move&&(p.isMoveCellsEvent=function(a){return!0});mxClient.IS_QUIRKS||(mxUtils.setPrefixedStyle(q.style,"border-radius","4px"),q.style.position="fixed");GraphViewer.resizeSensorEnabled=!1;document.body.style.overflow= -"hidden";mxClient.IS_SF||mxClient.IS_EDGE||(mxUtils.setPrefixedStyle(q.style,"transform","rotateY(90deg)"),mxUtils.setPrefixedStyle(q.style,"transition","all .25s ease-in-out"));this.addClickHandler(p,b);window.setTimeout(mxUtils.bind(this,function(){q.style.outline="none";q.style.zIndex=this.lightboxZIndex;e.style.zIndex=this.lightboxZIndex;document.body.appendChild(q);document.body.appendChild(e);b.setFileData(this.xml);mxUtils.setPrefixedStyle(q.style,"transform","rotateY(0deg)");b.chromelessToolbar.style.bottom= -"60px";b.chromelessToolbar.style.zIndex=this.lightboxZIndex;document.body.appendChild(b.chromelessToolbar);b.getEditBlankXml=mxUtils.bind(this,function(){return this.xml});mxClient.IS_QUIRKS&&(q.style.position="absolute",q.style.display="block",q.style.left=a.x+"px",q.style.top=a.y+"px",q.style.width=document.body.clientWidth-80+"px",q.style.height=document.body.clientHeight-80+"px",q.style.backgroundColor="white",b.chromelessToolbar.style.display="block",b.chromelessToolbar.style.position="absolute", -b.chromelessToolbar.style.bottom="",b.chromelessToolbar.style.top=a.y+document.body.clientHeight-100+"px");b.lightboxFit();b.chromelessResize();this.showLayers(p,this.graph);mxEvent.addListener(d,"click",function(){b.destroy()})}),0);return b};GraphViewer.processElements=function(a){mxUtils.forEach(GraphViewer.getElementsByClassName(a||"mxgraph"),function(a){try{a.innerHTML="",GraphViewer.createViewerForElement(a)}catch(e){throw a.innerHTML=e.message,e;}})}; -GraphViewer.getElementsByClassName=function(a){if(document.getElementsByClassName){var d=document.getElementsByClassName(a);a=[];for(var e=0;e<d.length;e++)a.push(d[e]);return a}for(var b=document.getElementsByTagName("*"),d=[],e=0;e<b.length;e++){var h=b[e].className;null!=h&&0<h.length&&(h=h.split(" "),0<=mxUtils.indexOf(h,a)&&d.push(b[e]))}return d}; -GraphViewer.createViewerForElement=function(a,d){var e=a.getAttribute("data-mxgraph");if(null!=e){var b=JSON.parse(e),h=function(e){e=mxUtils.parseXml(e);e=new GraphViewer(a,e.documentElement,b);null!=d&&d(e)};null!=b.url?GraphViewer.getUrl(b.url,function(a){h(a)}):h(b.xml)}}; -GraphViewer.initCss=function(){try{var a=document.createElement("style");a.type="text/css";a.innerHTML="div.mxTooltip {\n-webkit-box-shadow: 3px 3px 12px #C0C0C0;\n-moz-box-shadow: 3px 3px 12px #C0C0C0;\nbox-shadow: 3px 3px 12px #C0C0C0;\nbackground: #FFFFCC;\nborder-style: solid;\nborder-width: 1px;\nborder-color: black;\nfont-family: Arial;\nfont-size: 8pt;\nposition: absolute;\ncursor: default;\npadding: 4px;\ncolor: black;}\ntd.mxPopupMenuIcon div {\nwidth:16px;\nheight:16px;}\nhtml div.mxPopupMenu {\n-webkit-box-shadow:2px 2px 3px #d5d5d5;\n-moz-box-shadow:2px 2px 3px #d5d5d5;\nbox-shadow:2px 2px 3px #d5d5d5;\n_filter:progid:DXImageTransform.Microsoft.DropShadow(OffX=2, OffY=2, Color='#d0d0d0',Positive='true');\nbackground:white;\nposition:absolute;\nborder:3px solid #e7e7e7;\npadding:3px;}\nhtml table.mxPopupMenu {\nborder-collapse:collapse;\nmargin:0px;}\nhtml td.mxPopupMenuItem {\npadding:7px 30px 7px 30px;\nfont-family:Helvetica Neue,Helvetica,Arial Unicode MS,Arial;\nfont-size:10pt;}\nhtml td.mxPopupMenuIcon {\nbackground-color:white;\npadding:0px;}\ntd.mxPopupMenuIcon .geIcon {\npadding:2px;\npadding-bottom:4px;\nmargin:2px;\nborder:1px solid transparent;\nopacity:0.5;\n_width:26px;\n_height:26px;}\ntd.mxPopupMenuIcon .geIcon:hover {\nborder:1px solid gray;\nborder-radius:2px;\nopacity:1;}\nhtml tr.mxPopupMenuItemHover {\nbackground-color: #eeeeee;\ncolor: black;}\ntable.mxPopupMenu hr {\ncolor:#cccccc;\nbackground-color:#cccccc;\nborder:none;\nheight:1px;}\ntable.mxPopupMenu tr {\tfont-size:4pt;}\n.geDialog { font-family:Helvetica Neue,Helvetica,Arial Unicode MS,Arial;\nfont-size:10pt;\nborder:none;\nmargin:0px;}\n.geDialog {\tposition:absolute;\tbackground:white;\toverflow:hidden;\tpadding:30px;\tborder:1px solid #acacac;\t-webkit-box-shadow:0px 0px 2px 2px #d5d5d5;\t-moz-box-shadow:0px 0px 2px 2px #d5d5d5;\tbox-shadow:0px 0px 2px 2px #d5d5d5;\t_filter:progid:DXImageTransform.Microsoft.DropShadow(OffX=2, OffY=2, Color='#d5d5d5', Positive='true');\tz-index: 2;}.geDialogClose {\tposition:absolute;\twidth:9px;\theight:9px;\topacity:0.5;\tcursor:pointer;\t_filter:alpha(opacity=50);}.geDialogClose:hover {\topacity:1;}.geDialogTitle {\tbox-sizing:border-box;\twhite-space:nowrap;\tbackground:rgb(229, 229, 229);\tborder-bottom:1px solid rgb(192, 192, 192);\tfont-size:15px;\tfont-weight:bold;\ttext-align:center;\tcolor:rgb(35, 86, 149);}.geDialogFooter {\tbackground:whiteSmoke;\twhite-space:nowrap;\ttext-align:right;\tbox-sizing:border-box;\tborder-top:1px solid #e5e5e5;\tcolor:darkGray;}\n.geBtn {\tbackground-color: #f5f5f5;\tborder-radius: 2px;\tborder: 1px solid #d8d8d8;\tcolor: #333;\tcursor: default;\tfont-size: 11px;\tfont-weight: bold;\theight: 29px;\tline-height: 27px;\tmargin: 0 0 0 8px;\tmin-width: 72px;\toutline: 0;\tpadding: 0 8px;\tcursor: pointer;}.geBtn:hover, .geBtn:focus {\t-webkit-box-shadow: 0px 1px 1px rgba(0,0,0,0.1);\t-moz-box-shadow: 0px 1px 1px rgba(0,0,0,0.1);\tbox-shadow: 0px 1px 1px rgba(0,0,0,0.1);\tborder: 1px solid #c6c6c6;\tbackground-color: #f8f8f8;\tbackground-image: linear-gradient(#f8f8f8 0px,#f1f1f1 100%);\tcolor: #111;}.geBtn:disabled {\topacity: .5;}.gePrimaryBtn {\tbackground-color: #4d90fe;\tbackground-image: linear-gradient(#4d90fe 0px,#4787ed 100%);\tborder: 1px solid #3079ed;\tcolor: #fff;}.gePrimaryBtn:hover, .gePrimaryBtn:focus {\tbackground-color: #357ae8;\tbackground-image: linear-gradient(#4d90fe 0px,#357ae8 100%);\tborder: 1px solid #2f5bb7;\tcolor: #fff;}.gePrimaryBtn:disabled {\topacity: .5;}";document.getElementsByTagName("head")[0].appendChild(a)}catch(d){}}; -GraphViewer.cachedUrls={};GraphViewer.getUrl=function(a,d,e){if(null!=GraphViewer.cachedUrls[a])d(GraphViewer.cachedUrls[a]);else{var b=0<navigator.userAgent.indexOf("MSIE 9")?new XDomainRequest:new XMLHttpRequest;b.open("GET",a);b.onload=function(){d(null!=b.getText?b.getText():b.responseText)};b.onerror=e;b.send()}};GraphViewer.resizeSensorEnabled=!0;GraphViewer.useResizeSensor=!0; -(function(){var a=window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||function(a){return window.setTimeout(a,20)},d=function(e,b){function h(){this.q=[];this.add=function(a){this.q.push(a)};var a,b;this.call=function(){a=0;for(b=this.q.length;a<b;a++)this.q[a].call()}}function m(a,b){return a.currentStyle?a.currentStyle[b]:window.getComputedStyle?window.getComputedStyle(a,null).getPropertyValue(b):a.style[b]}function p(b,c){if(!b.resizedAttached)b.resizedAttached= -new h,b.resizedAttached.add(c);else if(b.resizedAttached){b.resizedAttached.add(c);return}b.resizeSensor=document.createElement("div");b.resizeSensor.className="resize-sensor";b.resizeSensor.style.cssText="position: absolute; left: 0; top: 0; right: 0; bottom: 0; overflow: hidden; z-index: -1; visibility: hidden;";b.resizeSensor.innerHTML='<div class="resize-sensor-expand" style="position: absolute; left: 0; top: 0; right: 0; bottom: 0; overflow: hidden; z-index: -1; visibility: hidden;"><div style="position: absolute; left: 0; top: 0; transition: 0s;"></div></div><div class="resize-sensor-shrink" style="position: absolute; left: 0; top: 0; right: 0; bottom: 0; overflow: hidden; z-index: -1; visibility: hidden;"><div style="position: absolute; left: 0; top: 0; transition: 0s; width: 200%; height: 200%"></div></div>'; -b.appendChild(b.resizeSensor);"static"==m(b,"position")&&(b.style.position="relative");var d=b.resizeSensor.childNodes[0],e=d.childNodes[0],f=b.resizeSensor.childNodes[1],g=function(){e.style.width="100000px";e.style.height="100000px";d.scrollLeft=1E5;d.scrollTop=1E5;f.scrollLeft=1E5;f.scrollTop=1E5};g();var k=!1,p=function(){b.resizedAttached&&(k&&(b.resizedAttached.call(),k=!1),a(p))};a(p);var q,t,u,H,G=function(){if((u=b.offsetWidth)!=q||(H=b.offsetHeight)!=t)k=!0,q=u,t=H;g()},A=function(a,b,c){a.attachEvent? -a.attachEvent("on"+b,c):a.addEventListener(b,c)};A(d,"scroll",G);A(f,"scroll",G)}var q=function(){GraphViewer.resizeSensorEnabled&&b()},u=Object.prototype.toString.call(e),c="[object Array]"===u||"[object NodeList]"===u||"[object HTMLCollection]"===u||"undefined"!==typeof jQuery&&e instanceof jQuery||"undefined"!==typeof Elements&&e instanceof Elements;if(c)for(var u=0,f=e.length;u<f;u++)p(e[u],q);else p(e,q);this.detach=function(){if(c)for(var a=0,b=e.length;a<b;a++)d.detach(e[a]);else d.detach(e)}}; -d.detach=function(a){a.resizeSensor&&(a.removeChild(a.resizeSensor),delete a.resizeSensor,delete a.resizedAttached)};window.ResizeSensor=d})(); +GraphViewer.prototype.showLocalLightbox=function(){var a=mxUtils.getDocumentScrollOrigin(document),b=document.createElement("div");mxClient.IS_QUIRKS?(b.style.position="absolute",b.style.left=a.x+"px",b.style.top=a.y+"px",b.style.width=document.body.offsetWidth+"px",b.style.height=document.body.offsetHeight+"px"):b.style.cssText="position:fixed;top:0;left:0;bottom:0;right:0;";b.style.zIndex=this.lightboxZIndex;b.style.backgroundColor="#000000";mxUtils.setOpacity(b,70);document.body.appendChild(b); +var e=document.createElement("img");e.setAttribute("border","0");e.setAttribute("src",Editor.closeImage);mxClient.IS_QUIRKS?(e.style.position="absolute",e.style.right="32px",e.style.top=a.y+32+"px"):e.style.cssText="position:fixed;top:32px;right:32px;";e.style.cursor="pointer";mxEvent.addListener(e,"click",function(){d.destroy()});urlParams.pages="1";urlParams.page=this.currentPage;urlParams.nav=0!=this.graphConfig.nav?"1":"0";urlParams.layers=this.layersEnabled?"1":"0";if(null==document.documentMode|| +10<=document.documentMode)Editor.prototype.editButtonLink=this.graphConfig.edit,Editor.prototype.editButtonFunc=this.graphConfig.editFunc;EditorUi.prototype.updateActionStates=function(){};EditorUi.prototype.addBeforeUnloadListener=function(){};EditorUi.prototype.addChromelessClickHandler=function(){};Graph.prototype.shadowId="lightboxDropShadow";var d=new EditorUi(new Editor(!0),document.createElement("div"),!0);d.editor.editBlankUrl=this.editBlankUrl;Graph.prototype.shadowId="dropShadow";d.refresh= +function(){};var k=mxUtils.bind(this,function(a){27==a.keyCode&&d.destroy()}),l=d.destroy;d.destroy=function(){mxEvent.removeListener(document.documentElement,"keydown",k);document.body.removeChild(b);document.body.removeChild(e);document.body.style.overflow="auto";GraphViewer.resizeSensorEnabled=!0;l.apply(this,arguments)};var p=d.editor.graph,q=p.container;q.style.overflow="hidden";this.lightboxChrome?(q.style.border="1px solid #c0c0c0",q.style.margin="40px",mxEvent.addListener(document.documentElement, +"keydown",k)):(b.style.display="none",e.style.display="none");var u=this;p.getImageFromBundles=function(a){return u.getImageUrl(a)};var c=d.createTemporaryGraph;d.createTemporaryGraph=function(){var a=c.apply(this,arguments);a.getImageFromBundles=function(a){return u.getImageUrl(a)};return a};this.graphConfig.move&&(p.isMoveCellsEvent=function(a){return!0});mxClient.IS_QUIRKS||(mxUtils.setPrefixedStyle(q.style,"border-radius","4px"),q.style.position="fixed");GraphViewer.resizeSensorEnabled=!1;document.body.style.overflow= +"hidden";mxClient.IS_SF||mxClient.IS_EDGE||(mxUtils.setPrefixedStyle(q.style,"transform","rotateY(90deg)"),mxUtils.setPrefixedStyle(q.style,"transition","all .25s ease-in-out"));this.addClickHandler(p,d);window.setTimeout(mxUtils.bind(this,function(){q.style.outline="none";q.style.zIndex=this.lightboxZIndex;e.style.zIndex=this.lightboxZIndex;document.body.appendChild(q);document.body.appendChild(e);d.setFileData(this.xml);mxUtils.setPrefixedStyle(q.style,"transform","rotateY(0deg)");d.chromelessToolbar.style.bottom= +"60px";d.chromelessToolbar.style.zIndex=this.lightboxZIndex;document.body.appendChild(d.chromelessToolbar);d.getEditBlankXml=mxUtils.bind(this,function(){return this.xml});mxClient.IS_QUIRKS&&(q.style.position="absolute",q.style.display="block",q.style.left=a.x+"px",q.style.top=a.y+"px",q.style.width=document.body.clientWidth-80+"px",q.style.height=document.body.clientHeight-80+"px",q.style.backgroundColor="white",d.chromelessToolbar.style.display="block",d.chromelessToolbar.style.position="absolute", +d.chromelessToolbar.style.bottom="",d.chromelessToolbar.style.top=a.y+document.body.clientHeight-100+"px");d.lightboxFit();d.chromelessResize();this.showLayers(p,this.graph);mxEvent.addListener(b,"click",function(){d.destroy()})}),0);return d};GraphViewer.processElements=function(a){mxUtils.forEach(GraphViewer.getElementsByClassName(a||"mxgraph"),function(a){try{a.innerHTML="",GraphViewer.createViewerForElement(a)}catch(e){throw a.innerHTML=e.message,e;}})}; +GraphViewer.getElementsByClassName=function(a){if(document.getElementsByClassName){var b=document.getElementsByClassName(a);a=[];for(var e=0;e<b.length;e++)a.push(b[e]);return a}for(var d=document.getElementsByTagName("*"),b=[],e=0;e<d.length;e++){var k=d[e].className;null!=k&&0<k.length&&(k=k.split(" "),0<=mxUtils.indexOf(k,a)&&b.push(d[e]))}return b}; +GraphViewer.createViewerForElement=function(a,b){var e=a.getAttribute("data-mxgraph");if(null!=e){var d=JSON.parse(e),k=function(e){e=mxUtils.parseXml(e);e=new GraphViewer(a,e.documentElement,d);null!=b&&b(e)};null!=d.url?GraphViewer.getUrl(d.url,function(a){k(a)}):k(d.xml)}}; +GraphViewer.initCss=function(){try{var a=document.createElement("style");a.type="text/css";a.innerHTML="div.mxTooltip {\n-webkit-box-shadow: 3px 3px 12px #C0C0C0;\n-moz-box-shadow: 3px 3px 12px #C0C0C0;\nbox-shadow: 3px 3px 12px #C0C0C0;\nbackground: #FFFFCC;\nborder-style: solid;\nborder-width: 1px;\nborder-color: black;\nfont-family: Arial;\nfont-size: 8pt;\nposition: absolute;\ncursor: default;\npadding: 4px;\ncolor: black;}\ntd.mxPopupMenuIcon div {\nwidth:16px;\nheight:16px;}\nhtml div.mxPopupMenu {\n-webkit-box-shadow:2px 2px 3px #d5d5d5;\n-moz-box-shadow:2px 2px 3px #d5d5d5;\nbox-shadow:2px 2px 3px #d5d5d5;\n_filter:progid:DXImageTransform.Microsoft.DropShadow(OffX=2, OffY=2, Color='#d0d0d0',Positive='true');\nbackground:white;\nposition:absolute;\nborder:3px solid #e7e7e7;\npadding:3px;}\nhtml table.mxPopupMenu {\nborder-collapse:collapse;\nmargin:0px;}\nhtml td.mxPopupMenuItem {\npadding:7px 30px 7px 30px;\nfont-family:Helvetica Neue,Helvetica,Arial Unicode MS,Arial;\nfont-size:10pt;}\nhtml td.mxPopupMenuIcon {\nbackground-color:white;\npadding:0px;}\ntd.mxPopupMenuIcon .geIcon {\npadding:2px;\npadding-bottom:4px;\nmargin:2px;\nborder:1px solid transparent;\nopacity:0.5;\n_width:26px;\n_height:26px;}\ntd.mxPopupMenuIcon .geIcon:hover {\nborder:1px solid gray;\nborder-radius:2px;\nopacity:1;}\nhtml tr.mxPopupMenuItemHover {\nbackground-color: #eeeeee;\ncolor: black;}\ntable.mxPopupMenu hr {\ncolor:#cccccc;\nbackground-color:#cccccc;\nborder:none;\nheight:1px;}\ntable.mxPopupMenu tr {\tfont-size:4pt;}\n.geDialog { font-family:Helvetica Neue,Helvetica,Arial Unicode MS,Arial;\nfont-size:10pt;\nborder:none;\nmargin:0px;}\n.geDialog {\tposition:absolute;\tbackground:white;\toverflow:hidden;\tpadding:30px;\tborder:1px solid #acacac;\t-webkit-box-shadow:0px 0px 2px 2px #d5d5d5;\t-moz-box-shadow:0px 0px 2px 2px #d5d5d5;\tbox-shadow:0px 0px 2px 2px #d5d5d5;\t_filter:progid:DXImageTransform.Microsoft.DropShadow(OffX=2, OffY=2, Color='#d5d5d5', Positive='true');\tz-index: 2;}.geDialogClose {\tposition:absolute;\twidth:9px;\theight:9px;\topacity:0.5;\tcursor:pointer;\t_filter:alpha(opacity=50);}.geDialogClose:hover {\topacity:1;}.geDialogTitle {\tbox-sizing:border-box;\twhite-space:nowrap;\tbackground:rgb(229, 229, 229);\tborder-bottom:1px solid rgb(192, 192, 192);\tfont-size:15px;\tfont-weight:bold;\ttext-align:center;\tcolor:rgb(35, 86, 149);}.geDialogFooter {\tbackground:whiteSmoke;\twhite-space:nowrap;\ttext-align:right;\tbox-sizing:border-box;\tborder-top:1px solid #e5e5e5;\tcolor:darkGray;}\n.geBtn {\tbackground-color: #f5f5f5;\tborder-radius: 2px;\tborder: 1px solid #d8d8d8;\tcolor: #333;\tcursor: default;\tfont-size: 11px;\tfont-weight: bold;\theight: 29px;\tline-height: 27px;\tmargin: 0 0 0 8px;\tmin-width: 72px;\toutline: 0;\tpadding: 0 8px;\tcursor: pointer;}.geBtn:hover, .geBtn:focus {\t-webkit-box-shadow: 0px 1px 1px rgba(0,0,0,0.1);\t-moz-box-shadow: 0px 1px 1px rgba(0,0,0,0.1);\tbox-shadow: 0px 1px 1px rgba(0,0,0,0.1);\tborder: 1px solid #c6c6c6;\tbackground-color: #f8f8f8;\tbackground-image: linear-gradient(#f8f8f8 0px,#f1f1f1 100%);\tcolor: #111;}.geBtn:disabled {\topacity: .5;}.gePrimaryBtn {\tbackground-color: #4d90fe;\tbackground-image: linear-gradient(#4d90fe 0px,#4787ed 100%);\tborder: 1px solid #3079ed;\tcolor: #fff;}.gePrimaryBtn:hover, .gePrimaryBtn:focus {\tbackground-color: #357ae8;\tbackground-image: linear-gradient(#4d90fe 0px,#357ae8 100%);\tborder: 1px solid #2f5bb7;\tcolor: #fff;}.gePrimaryBtn:disabled {\topacity: .5;}";document.getElementsByTagName("head")[0].appendChild(a)}catch(b){}}; +GraphViewer.cachedUrls={};GraphViewer.getUrl=function(a,b,e){if(null!=GraphViewer.cachedUrls[a])b(GraphViewer.cachedUrls[a]);else{var d=0<navigator.userAgent.indexOf("MSIE 9")?new XDomainRequest:new XMLHttpRequest;d.open("GET",a);d.onload=function(){b(null!=d.getText?d.getText():d.responseText)};d.onerror=e;d.send()}};GraphViewer.resizeSensorEnabled=!0;GraphViewer.useResizeSensor=!0; +(function(){var a=window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||function(a){return window.setTimeout(a,20)},b=function(e,d){function k(){this.q=[];this.add=function(a){this.q.push(a)};var a,b;this.call=function(){a=0;for(b=this.q.length;a<b;a++)this.q[a].call()}}function l(a,b){return a.currentStyle?a.currentStyle[b]:window.getComputedStyle?window.getComputedStyle(a,null).getPropertyValue(b):a.style[b]}function p(b,c){if(!b.resizedAttached)b.resizedAttached= +new k,b.resizedAttached.add(c);else if(b.resizedAttached){b.resizedAttached.add(c);return}b.resizeSensor=document.createElement("div");b.resizeSensor.className="resize-sensor";b.resizeSensor.style.cssText="position: absolute; left: 0; top: 0; right: 0; bottom: 0; overflow: hidden; z-index: -1; visibility: hidden;";b.resizeSensor.innerHTML='<div class="resize-sensor-expand" style="position: absolute; left: 0; top: 0; right: 0; bottom: 0; overflow: hidden; z-index: -1; visibility: hidden;"><div style="position: absolute; left: 0; top: 0; transition: 0s;"></div></div><div class="resize-sensor-shrink" style="position: absolute; left: 0; top: 0; right: 0; bottom: 0; overflow: hidden; z-index: -1; visibility: hidden;"><div style="position: absolute; left: 0; top: 0; transition: 0s; width: 200%; height: 200%"></div></div>'; +b.appendChild(b.resizeSensor);"static"==l(b,"position")&&(b.style.position="relative");var d=b.resizeSensor.childNodes[0],e=d.childNodes[0],f=b.resizeSensor.childNodes[1],g=function(){e.style.width="100000px";e.style.height="100000px";d.scrollLeft=1E5;d.scrollTop=1E5;f.scrollLeft=1E5;f.scrollTop=1E5};g();var n=!1,p=function(){b.resizedAttached&&(n&&(b.resizedAttached.call(),n=!1),a(p))};a(p);var q,t,u,H,G=function(){if((u=b.offsetWidth)!=q||(H=b.offsetHeight)!=t)n=!0,q=u,t=H;g()},B=function(a,b,c){a.attachEvent? +a.attachEvent("on"+b,c):a.addEventListener(b,c)};B(d,"scroll",G);B(f,"scroll",G)}var q=function(){GraphViewer.resizeSensorEnabled&&d()},u=Object.prototype.toString.call(e),c="[object Array]"===u||"[object NodeList]"===u||"[object HTMLCollection]"===u||"undefined"!==typeof jQuery&&e instanceof jQuery||"undefined"!==typeof Elements&&e instanceof Elements;if(c)for(var u=0,f=e.length;u<f;u++)p(e[u],q);else p(e,q);this.detach=function(){if(c)for(var a=0,d=e.length;a<d;a++)b.detach(e[a]);else b.detach(e)}}; +b.detach=function(a){a.resizeSensor&&(a.removeChild(a.resizeSensor),delete a.resizeSensor,delete a.resizedAttached)};window.ResizeSensor=b})(); (function(){Editor.initMath();GraphViewer.initCss();if(null!=window.onDrawioViewerLoad)window.onDrawioViewerLoad();else GraphViewer.processElements()})(); diff --git a/src/main/webapp/resources/dia.txt b/src/main/webapp/resources/dia.txt index c872a2a76..14f981491 100644 --- a/src/main/webapp/resources/dia.txt +++ b/src/main/webapp/resources/dia.txt @@ -90,6 +90,7 @@ chatLeft={1} has left chatWindowTitle=Chat chooseAnOption=Choose an option chromeApp=Chrome App +collaborativeEditingNotice=Important Notice for Collaborative Editing compressed=Compressed commitMessage=Commit Message csv=CSV @@ -244,6 +245,7 @@ exporting=Exporting exportAs=Export as exportOptionsDisabled=Export options disabled exportOptionsDisabledDetails=The owner has disabled options to download, print or copy for commenters and viewers on this file. +externalChanges=External Changes extras=Extras facebook=Facebook failedToSaveTryReconnect=Failed to save, trying to reconnect @@ -252,7 +254,7 @@ feedback=Feedback feedbackSent=Feedback successfully sent. floorplans=Floorplans file=File -fileChangedOverwrite=File was changed. Overwrite changes? +fileChangedOverwrite=The file has been modified. Do you want to save the file and overwrite those changes? overwrite=Overwrite filename=Filename fileExists=File already exists diff --git a/src/main/webapp/resources/dia_am.txt b/src/main/webapp/resources/dia_am.txt index 7994042b2..01a8ea05d 100644 --- a/src/main/webapp/resources/dia_am.txt +++ b/src/main/webapp/resources/dia_am.txt @@ -90,6 +90,7 @@ chatLeft={1} has left chatWindowTitle=Chat chooseAnOption=Choose an option chromeApp=Chrome App +collaborativeEditingNotice=Important Notice for Collaborative Editing compressed=Compressed commitMessage=Commit Message csv=CSV @@ -244,6 +245,7 @@ exporting=Exporting exportAs=Export as exportOptionsDisabled=Export options disabled exportOptionsDisabledDetails=The owner has disabled options to download, print or copy for commenters and viewers on this file. +externalChanges=External Changes extras=Extras facebook=Facebook failedToSaveTryReconnect=Failed to save, trying to reconnect @@ -252,7 +254,7 @@ feedback=Feedback feedbackSent=Feedback successfully sent. floorplans=Floorplans file=File -fileChangedOverwrite=File was changed. Overwrite changes? +fileChangedOverwrite=The file has been modified. Do you want to save the file and overwrite those changes? overwrite=Overwrite filename=Filename fileExists=File already exists diff --git a/src/main/webapp/resources/dia_ar.txt b/src/main/webapp/resources/dia_ar.txt index faade9cb7..aeb45b3fd 100644 --- a/src/main/webapp/resources/dia_ar.txt +++ b/src/main/webapp/resources/dia_ar.txt @@ -90,6 +90,7 @@ chatLeft=‫غادر {1}‬ chatWindowTitle=‫دردشة‬ chooseAnOption=‫اختر خيارا‬ chromeApp=‫تطبيق Chrome‬ +collaborativeEditingNotice=Important Notice for Collaborative Editing compressed=Compressed commitMessage=Commit Message csv=CSV @@ -244,6 +245,7 @@ exporting=Exporting exportAs=‫تصدير ك‬ exportOptionsDisabled=Export options disabled exportOptionsDisabledDetails=The owner has disabled options to download, print or copy for commenters and viewers on this file. +externalChanges=External Changes extras=â€«Ø¥Ø¶Ø§ÙØ§Øªâ€¬ facebook=Facebook failedToSaveTryReconnect=‫لم يتم الØÙظ، Ù…ØØ§ÙˆÙ„Ø© إعادة الاتصال.‬ @@ -252,7 +254,7 @@ feedback=‫تعليق‬ feedbackSent=‫تم إرسال التعليق بنجاØ.‬ floorplans=Floorplans file=‫ملÙ‬ -fileChangedOverwrite=File was changed. Overwrite changes? +fileChangedOverwrite=The file has been modified. Do you want to save the file and overwrite those changes? overwrite=Overwrite filename=‫اسم الملÙ‬ fileExists=‫المل٠موجود مسبقا‬ diff --git a/src/main/webapp/resources/dia_bg.txt b/src/main/webapp/resources/dia_bg.txt index add7639b5..4e2efbe72 100644 --- a/src/main/webapp/resources/dia_bg.txt +++ b/src/main/webapp/resources/dia_bg.txt @@ -90,6 +90,7 @@ chatLeft={1} напуÑна chatWindowTitle=Чат chooseAnOption=Изберете Ð¾Ð¿Ñ†Ð¸Ñ chromeApp=Chrome приложение +collaborativeEditingNotice=Important Notice for Collaborative Editing compressed=КомпреÑиран commitMessage=Съобщение при подаване csv=CSV @@ -244,6 +245,7 @@ exporting=ЕкÑпортиране exportAs=ЕкÑпортиране като exportOptionsDisabled=ОпциÑта за екÑпортиране е деактивирана exportOptionsDisabledDetails=СобÑтвеникът е деактивирал опциите за изтеглÑне, принтиране и копиране за хората, които коментират и разглеждат този файл. +externalChanges=External Changes extras=ЕкÑтри facebook=Facebook failedToSaveTryReconnect=ÐеуÑпешно запазване, опит за повторно Ñвързване diff --git a/src/main/webapp/resources/dia_bn.txt b/src/main/webapp/resources/dia_bn.txt index ce97cdce3..dc8a00bfd 100644 --- a/src/main/webapp/resources/dia_bn.txt +++ b/src/main/webapp/resources/dia_bn.txt @@ -90,6 +90,7 @@ chatLeft={1} has left chatWindowTitle=Chat chooseAnOption=Choose an option chromeApp=Chrome App +collaborativeEditingNotice=Important Notice for Collaborative Editing compressed=Compressed commitMessage=Commit Message csv=CSV @@ -244,6 +245,7 @@ exporting=Exporting exportAs=Export as exportOptionsDisabled=Export options disabled exportOptionsDisabledDetails=The owner has disabled options to download, print or copy for commenters and viewers on this file. +externalChanges=External Changes extras=Extras facebook=Facebook failedToSaveTryReconnect=Failed to save, trying to reconnect @@ -252,7 +254,7 @@ feedback=Feedback feedbackSent=Feedback successfully sent. floorplans=Floorplans file=File -fileChangedOverwrite=File was changed. Overwrite changes? +fileChangedOverwrite=The file has been modified. Do you want to save the file and overwrite those changes? overwrite=Overwrite filename=Filename fileExists=File already exists diff --git a/src/main/webapp/resources/dia_bs.txt b/src/main/webapp/resources/dia_bs.txt index 085f73e46..a7048bc1d 100644 --- a/src/main/webapp/resources/dia_bs.txt +++ b/src/main/webapp/resources/dia_bs.txt @@ -90,6 +90,7 @@ chatLeft={1} je otiÅ¡ao chatWindowTitle=Razgovor chooseAnOption=Izaberite opciju chromeApp=Chrome Aplikacija +collaborativeEditingNotice=Important Notice for Collaborative Editing compressed=Kompresovano commitMessage=Posveti poruku csv=CSV @@ -244,6 +245,7 @@ exporting=Izvozi exportAs=Izvezi kao exportOptionsDisabled=Opcije izvoza onemogućene exportOptionsDisabledDetails=Vlasnik je za ovaj fajl komentatorima i posjetiocima onemogućio preuzimanje, printanje i kopiranje. +externalChanges=External Changes extras=Dodaci facebook=Facebook failedToSaveTryReconnect=SpaÅ¡avanje nije uspjelo, pokuÅ¡aj ponovnog povezivanja diff --git a/src/main/webapp/resources/dia_ca.txt b/src/main/webapp/resources/dia_ca.txt index 8b4dadf49..9997d872d 100644 --- a/src/main/webapp/resources/dia_ca.txt +++ b/src/main/webapp/resources/dia_ca.txt @@ -90,6 +90,7 @@ chatLeft={1} ha sortit chatWindowTitle=Xat chooseAnOption=Escolliu una opció chromeApp=Aplicació Chrome +collaborativeEditingNotice=Important Notice for Collaborative Editing compressed=Comprimit commitMessage=Missatge de Commit csv=CSV @@ -244,6 +245,7 @@ exporting=Exportant exportAs=Exporta com a exportOptionsDisabled=Opcions d'exportació inactives exportOptionsDisabledDetails=El propietari ha desactivat les opcions per a descarregar, imprimir o copiar aquest fitxer per las que només tenen permÃs per visualitzar i comentar. +externalChanges=External Changes extras=Extres facebook=Facebook failedToSaveTryReconnect=Error en desar, intentant reconnectar diff --git a/src/main/webapp/resources/dia_cs.txt b/src/main/webapp/resources/dia_cs.txt index 6ef168c7a..12b897172 100644 --- a/src/main/webapp/resources/dia_cs.txt +++ b/src/main/webapp/resources/dia_cs.txt @@ -90,6 +90,7 @@ chatLeft={1} se odhlásil chatWindowTitle=Chat chooseAnOption=Vyberte možnost chromeApp=Aplikace Chrome +collaborativeEditingNotice=Important Notice for Collaborative Editing compressed=Komprimováno commitMessage=Zpráva ke commitu csv=CSV @@ -244,6 +245,7 @@ exporting=Exportuji exportAs=Exportovat jako exportOptionsDisabled=Možnost exportu je vypnutá exportOptionsDisabledDetails=VlastnÃk pro komentujÃcà a diváky vypnul možnost staženÃ, tisku nebo kopÃrovánÃ. +externalChanges=External Changes extras=Extra facebook=Facebook failedToSaveTryReconnect=Uloženà se nezdaÅ™ilo, zkouÅ¡Ãm se znovu pÅ™ipojit diff --git a/src/main/webapp/resources/dia_da.txt b/src/main/webapp/resources/dia_da.txt index 8e192f927..fb4415544 100644 --- a/src/main/webapp/resources/dia_da.txt +++ b/src/main/webapp/resources/dia_da.txt @@ -90,6 +90,7 @@ chatLeft={1} har forladt chatten chatWindowTitle=Chat chooseAnOption=Vælg en mulighed chromeApp=Chrome app +collaborativeEditingNotice=Important Notice for Collaborative Editing compressed=Komprimeret commitMessage=Commit Besked csv=CSV @@ -244,6 +245,7 @@ exporting=Eksporterer exportAs=Eksporterer som exportOptionsDisabled=Eksportmuligheder deaktiveret exportOptionsDisabledDetails=Ejeren har deaktiveret muligheder for at downloade, printe eller kopiere for kommentører og seere pÃ¥ denne fil. +externalChanges=External Changes extras=Ekstra facebook=Facebook failedToSaveTryReconnect=Kunne ikke gemme, forsøger at genoprette forbindelsen diff --git a/src/main/webapp/resources/dia_de.txt b/src/main/webapp/resources/dia_de.txt index 2c875f782..06d807d1f 100644 --- a/src/main/webapp/resources/dia_de.txt +++ b/src/main/webapp/resources/dia_de.txt @@ -90,6 +90,7 @@ chatLeft={1} hat den Chat verlassen chatWindowTitle=Chat chooseAnOption=Wählen Sie eine Option chromeApp=Chrome app +collaborativeEditingNotice=Wichtige Mitteilung für gemeinesames Bearbeiten compressed=Komprimiert commitMessage=Commit-Nachricht csv=CSV @@ -244,6 +245,7 @@ exporting=Wird exportiert exportAs=Exportieren als exportOptionsDisabled=Exportoptionen deaktiviert exportOptionsDisabledDetails=Der Nutzer hat die Optionen zum Herunterladen, Drucken und Kopieren dieser Datei für Nutzer mit Kommentier- und Lesezugriff deaktiviert. +externalChanges=Externe Änderungen extras=Extras facebook=Facebook failedToSaveTryReconnect=Speichern fehlgeschlagen. Verbindungswiederherstellung @@ -252,7 +254,7 @@ feedback=Feedback feedbackSent=Feedback erfolgreich versendet. floorplans=Grundriss file=Datei -fileChangedOverwrite=Datei wurde geändert. Änderungen überschreiben? +fileChangedOverwrite=Die Datei wurde geändert. Möchten Sie die Datei speichern und die Änderungen überschreiben? overwrite=Überschreiben filename=Dateiname fileExists=Datei existiert bereits diff --git a/src/main/webapp/resources/dia_el.txt b/src/main/webapp/resources/dia_el.txt index e9069d6aa..73ac77963 100644 --- a/src/main/webapp/resources/dia_el.txt +++ b/src/main/webapp/resources/dia_el.txt @@ -90,6 +90,7 @@ chatLeft={1} Îχει εξÎÏθει chatWindowTitle=Chat chooseAnOption=ΔιαλÎξτε μια επιλογή chromeApp=ΕφαÏμογή Chrome +collaborativeEditingNotice=Important Notice for Collaborative Editing compressed=ΣυμπιεσμÎνο commitMessage=Υποβολή μυνήματος csv=CSV @@ -244,6 +245,7 @@ exporting=Γίνετε εξαγωγή exportAs=Εξαγωγή ως exportOptionsDisabled=Οι επιλογÎÏ‚ εξαγωγής Îχουν απενεÏγοποιηθεί exportOptionsDisabledDetails=Ο ιδιοκτήτης Îχει απενεÏγοποιήσει τις επιλογÎÏ‚ λήψης, εκτÏπωσης ή αντιγÏαφής του αÏχείου για τους σχολιαστÎÏ‚ και τους θεατÎÏ‚. +externalChanges=External Changes extras=Extras facebook=Facebook failedToSaveTryReconnect=Αποτυχία αποθήκευσης, γίνεται Ï€Ïοσπάθεια επανασÏνδεσης diff --git a/src/main/webapp/resources/dia_eo.txt b/src/main/webapp/resources/dia_eo.txt index 138b700d2..3963dedbf 100644 --- a/src/main/webapp/resources/dia_eo.txt +++ b/src/main/webapp/resources/dia_eo.txt @@ -1,14 +1,14 @@ # *DO NOT DIRECTLY EDIT THIS FILE, IT IS AUTOMATICALLY GENERATED AND IT IS BASED ON:* # https://docs.google.com/spreadsheet/ccc?key=0AmQEO36liL4FdDJLWVNMaVV2UmRKSnpXU09MYkdGbEE aboutDrawio=Pri draw.io -accessDenied=Access Denied -action=Action -actualSize=Actual Size +accessDenied=Aliro rifuzita +action=Ago +actualSize=Vera grandeco add=Aldoni -addedFile=Added {1} +addedFile={1} aldonita addImages=Aldoni bildojn addImageUrl=Add Image URL -addLayer=Add Layer +addLayer=Aldoni tavolon addProperty=Aldoni econ address=Adreso addToExistingDrawing=Add to Existing Drawing @@ -24,7 +24,7 @@ allSpaces=All Spaces allTags=All Tags anchor=Anchor android=Android -angle=Angle +angle=Angulo arc=Arc areYouSure=Ĉu vi certas? ensureDataSaved=Please ensure your data is saved before closing. @@ -81,15 +81,16 @@ center=Center cannotLoad=Load attempts failed. Please try again later. cannotLogin=Log in attempts failed. Please try again later. cannotOpenFile=Cannot open file -change=Change +change=ÅœanÄi changeOrientation=Change Orientation -changeUser=Change user +changeUser=ÅœanÄi uzanton changesNotSaved=Changes have not been saved chatJoined={1} has joined chatLeft={1} has left chatWindowTitle=Chat chooseAnOption=Choose an option chromeApp=Chrome App +collaborativeEditingNotice=Important Notice for Collaborative Editing compressed=Compressed commitMessage=Commit Message csv=CSV @@ -244,6 +245,7 @@ exporting=Exporting exportAs=Export as exportOptionsDisabled=Export options disabled exportOptionsDisabledDetails=The owner has disabled options to download, print or copy for commenters and viewers on this file. +externalChanges=External Changes extras=Extras facebook=Facebook failedToSaveTryReconnect=Failed to save, trying to reconnect @@ -252,7 +254,7 @@ feedback=Feedback feedbackSent=Feedback successfully sent. floorplans=Floorplans file=Dosiero -fileChangedOverwrite=File was changed. Overwrite changes? +fileChangedOverwrite=The file has been modified. Do you want to save the file and overwrite those changes? overwrite=Overwrite filename=Dosiernomo fileExists=File already exists diff --git a/src/main/webapp/resources/dia_es.txt b/src/main/webapp/resources/dia_es.txt index 864be42b2..dd9aee883 100644 --- a/src/main/webapp/resources/dia_es.txt +++ b/src/main/webapp/resources/dia_es.txt @@ -90,6 +90,7 @@ chatLeft={1} se ha ido chatWindowTitle=Chat chooseAnOption=Elegir una opción chromeApp=Aplicación Chrome +collaborativeEditingNotice=Important Notice for Collaborative Editing compressed=Comprimido commitMessage=Confirmar mensaje csv=CSV @@ -244,6 +245,7 @@ exporting=Exportando exportAs=Exportar como exportOptionsDisabled=Las opciones para exportar están deshabilitadas exportOptionsDisabledDetails=El propietario ha deshabilitado las opciones de descargar, imprimir o copiar para los comentadores u observadores de este archivo. +externalChanges=External Changes extras=Extras facebook=Facebook failedToSaveTryReconnect=Falló al guardar, intentando reconectar diff --git a/src/main/webapp/resources/dia_et.txt b/src/main/webapp/resources/dia_et.txt index fda8512b0..9adb4b75f 100644 --- a/src/main/webapp/resources/dia_et.txt +++ b/src/main/webapp/resources/dia_et.txt @@ -90,6 +90,7 @@ chatLeft={1} lahkus chatWindowTitle=Chat chooseAnOption=Tee valik chromeApp=Chrome App +collaborativeEditingNotice=Important Notice for Collaborative Editing compressed=Pakitud commitMessage=Kinnita sõnum csv=CSV @@ -244,6 +245,7 @@ exporting=Eksport exportAs=Ekspordi nimega exportOptionsDisabled=Ekspordi valikud keelatud exportOptionsDisabledDetails=Faili omanik on keelanud võimaluse kommenteerijatel ja vaatajatel sisu alla laadida, printida või kopeerida. +externalChanges=External Changes extras=Lisad facebook=Facebook failedToSaveTryReconnect=Salvestamine ebaõnnestunud, proov ühendust luua diff --git a/src/main/webapp/resources/dia_fa.txt b/src/main/webapp/resources/dia_fa.txt index 648be8933..41895364f 100644 --- a/src/main/webapp/resources/dia_fa.txt +++ b/src/main/webapp/resources/dia_fa.txt @@ -90,6 +90,7 @@ chatLeft=‫{1} خارج شده است.‬ chatWindowTitle=‫چت‬ chooseAnOption=‫یک گزینه را انتخاب نمایید‬ chromeApp=‫اپلیکیشن کروم‬ +collaborativeEditingNotice=Important Notice for Collaborative Editing compressed=â€«ÙØ´Ø±Ø¯Ù‡â€¬ commitMessage=‫تایید پیام‬ csv=CSV @@ -244,6 +245,7 @@ exporting=‫در ØØ§Ù„ ÙØ±Ø³ØªØ§Ø¯Ù†â€¬ exportAs=â€«ÙØ±Ø³ØªØ§Ø¯Ù† به عنوان‬ exportOptionsDisabled=‫گزینه های ÙØ±Ø³ØªØ§Ø¯Ù† ØºÛŒØ±ÙØ¹Ø§Ù„ گشته اند‬ exportOptionsDisabledDetails=‫دارنده امکان دانلود، چاپ Ùˆ Ú©Ù¾ÛŒ برای نظردهندگان Ùˆ بینندگان این ÙØ§ÛŒÙ„ را ØºÛŒØ±ÙØ¹Ø§Ù„ کرده است.‬ +externalChanges=External Changes extras=‫موارد اضاÙی‬ facebook=‫Ùیسبوک‬ failedToSaveTryReconnect=‫عدم ذخیره سازی، سعی در اتصال مجدد‬ diff --git a/src/main/webapp/resources/dia_fi.txt b/src/main/webapp/resources/dia_fi.txt index 387dff7c6..12eee5b40 100644 --- a/src/main/webapp/resources/dia_fi.txt +++ b/src/main/webapp/resources/dia_fi.txt @@ -90,6 +90,7 @@ chatLeft={1} lähti pois keskustelusta chatWindowTitle=Chat chooseAnOption=Valitse vaihtoehto chromeApp=Chrome-sovellus +collaborativeEditingNotice=Important Notice for Collaborative Editing compressed=Pakattu commitMessage=Lähetä viesti csv=CSV @@ -244,6 +245,7 @@ exporting=Viedään exportAs=Vie nimellä exportOptionsDisabled=Vientivalinnat pois käytöstä exportOptionsDisabledDetails=Omistaja on poistanut valinnat lataamiseen, tulostamiseen tai kopioimiseen kommentoijille ja katsojille tässä tiedostossa. +externalChanges=External Changes extras=Extrat facebook=Facebook failedToSaveTryReconnect=Tallentaminen epäonnistui, yritetään yhdistää uudelleen diff --git a/src/main/webapp/resources/dia_fil.txt b/src/main/webapp/resources/dia_fil.txt index de81d17cf..29192eb78 100644 --- a/src/main/webapp/resources/dia_fil.txt +++ b/src/main/webapp/resources/dia_fil.txt @@ -90,6 +90,7 @@ chatLeft={1} ay umalis chatWindowTitle=Pag-uusap chooseAnOption=Magtakda ng Pagpipilian chromeApp=Chrome App +collaborativeEditingNotice=Important Notice for Collaborative Editing compressed=Siniksik commitMessage=Maglagak ng mensahe csv=CSV @@ -244,6 +245,7 @@ exporting=Iniluluwas exportAs=Iluwas bilang exportOptionsDisabled=Ang mga pagpipilian sa pagluwas ay di pinagana exportOptionsDisabledDetails=Di pinagana ng may-ari ang mga pagpipilian para mag download, iprinta, o kumopya para sa mga nagkukumento o tumitingin ng file na ito. +externalChanges=External Changes extras=Mga dagdag facebook=Facebook failedToSaveTryReconnect=Bigong mag-save, sinusubukang kumonektang muli. diff --git a/src/main/webapp/resources/dia_fr.txt b/src/main/webapp/resources/dia_fr.txt index 405113093..a550a216b 100644 --- a/src/main/webapp/resources/dia_fr.txt +++ b/src/main/webapp/resources/dia_fr.txt @@ -90,6 +90,7 @@ chatLeft={1} a quitté le chat chatWindowTitle=Chat chooseAnOption=Choisir une option chromeApp=Application Chrome +collaborativeEditingNotice=Important Notice for Collaborative Editing compressed=Compressé commitMessage=Message commit csv=CSV @@ -244,6 +245,7 @@ exporting=Exportation exportAs=Exporter en tant que exportOptionsDisabled=Possibilités d'export désactivées exportOptionsDisabledDetails=Le propriétaire a désactivé les possibilités de téléchargement, d'impression ou de copie pour les commentateurs et observateurs sur ce fichier. +externalChanges=External Changes extras=Suppléments facebook=Facebook failedToSaveTryReconnect=La sauvegarde a échoué, tentative de reconnexion diff --git a/src/main/webapp/resources/dia_gu.txt b/src/main/webapp/resources/dia_gu.txt index c7d14c908..03d069787 100644 --- a/src/main/webapp/resources/dia_gu.txt +++ b/src/main/webapp/resources/dia_gu.txt @@ -90,6 +90,7 @@ chatLeft={1} has left chatWindowTitle=Chat chooseAnOption=Choose an option chromeApp=Chrome App +collaborativeEditingNotice=Important Notice for Collaborative Editing compressed=Compressed commitMessage=Commit Message csv=CSV @@ -244,6 +245,7 @@ exporting=Exporting exportAs=Export as exportOptionsDisabled=Export options disabled exportOptionsDisabledDetails=The owner has disabled options to download, print or copy for commenters and viewers on this file. +externalChanges=External Changes extras=Extras facebook=Facebook failedToSaveTryReconnect=Failed to save, trying to reconnect @@ -252,7 +254,7 @@ feedback=Feedback feedbackSent=Feedback successfully sent. floorplans=Floorplans file=File -fileChangedOverwrite=File was changed. Overwrite changes? +fileChangedOverwrite=The file has been modified. Do you want to save the file and overwrite those changes? overwrite=Overwrite filename=Filename fileExists=File already exists diff --git a/src/main/webapp/resources/dia_he.txt b/src/main/webapp/resources/dia_he.txt index 5d7213491..b39e108e0 100644 --- a/src/main/webapp/resources/dia_he.txt +++ b/src/main/webapp/resources/dia_he.txt @@ -90,6 +90,7 @@ chatLeft=‫{1} עזב‬ chatWindowTitle=‫צ'×ט‬ chooseAnOption=‫בחר ×פשרות‬ chromeApp=‫×פליקציית כרו×‬ +collaborativeEditingNotice=Important Notice for Collaborative Editing compressed=‫דחוס‬ commitMessage=‫הודעת commit‬ csv=CSV @@ -244,6 +245,7 @@ exporting=‫ייצו×‬ exportAs=â€«×™×™×¦× ×‘×ª×•×¨â€¬ exportOptionsDisabled=‫ה×פשרות ×œ×™×™×¦× ×”×•×©×‘×ª×”â€¬ exportOptionsDisabledDetails=‫ה×חר××™ הגביל ×ת ×”×פשרות להוריד, להדפיס ×ו להעתיק עבור ×ž×’×™×‘×™× ×•×¦×•×¤×™× ×‘×§×•×‘×¥ ×–×”.‬ +externalChanges=External Changes extras=‫תוספות‬ facebook=‫פייסבוק‬ failedToSaveTryReconnect=‫השמירה × ×›×©×œ×”, ×ž× ×¡×” להתחבר מחדש‬ diff --git a/src/main/webapp/resources/dia_hi.txt b/src/main/webapp/resources/dia_hi.txt index dca1562ec..4a509c738 100644 --- a/src/main/webapp/resources/dia_hi.txt +++ b/src/main/webapp/resources/dia_hi.txt @@ -90,6 +90,7 @@ chatLeft={1} has left chatWindowTitle=Chat chooseAnOption=Choose an option chromeApp=Chrome App +collaborativeEditingNotice=Important Notice for Collaborative Editing compressed=Compressed commitMessage=Commit Message csv=CSV @@ -244,6 +245,7 @@ exporting=Exporting exportAs=Export as exportOptionsDisabled=Export options disabled exportOptionsDisabledDetails=The owner has disabled options to download, print or copy for commenters and viewers on this file. +externalChanges=External Changes extras=Extras facebook=Facebook failedToSaveTryReconnect=Failed to save, trying to reconnect @@ -252,7 +254,7 @@ feedback=Feedback feedbackSent=Feedback successfully sent. floorplans=Floorplans file=File -fileChangedOverwrite=File was changed. Overwrite changes? +fileChangedOverwrite=The file has been modified. Do you want to save the file and overwrite those changes? overwrite=Overwrite filename=Filename fileExists=File already exists diff --git a/src/main/webapp/resources/dia_hr.txt b/src/main/webapp/resources/dia_hr.txt index 925ae5569..b05affb1d 100644 --- a/src/main/webapp/resources/dia_hr.txt +++ b/src/main/webapp/resources/dia_hr.txt @@ -90,6 +90,7 @@ chatLeft={1} has left chatWindowTitle=Chat chooseAnOption=Choose an option chromeApp=Chrome App +collaborativeEditingNotice=Important Notice for Collaborative Editing compressed=Compressed commitMessage=Commit Message csv=CSV @@ -244,6 +245,7 @@ exporting=Exporting exportAs=Export as exportOptionsDisabled=Export options disabled exportOptionsDisabledDetails=The owner has disabled options to download, print or copy for commenters and viewers on this file. +externalChanges=External Changes extras=Extras facebook=Facebook failedToSaveTryReconnect=Failed to save, trying to reconnect @@ -252,7 +254,7 @@ feedback=Feedback feedbackSent=Feedback successfully sent. floorplans=Floorplans file=File -fileChangedOverwrite=File was changed. Overwrite changes? +fileChangedOverwrite=The file has been modified. Do you want to save the file and overwrite those changes? overwrite=Overwrite filename=Filename fileExists=File already exists diff --git a/src/main/webapp/resources/dia_hu.txt b/src/main/webapp/resources/dia_hu.txt index dface1248..7d8930d58 100644 --- a/src/main/webapp/resources/dia_hu.txt +++ b/src/main/webapp/resources/dia_hu.txt @@ -90,6 +90,7 @@ chatLeft={1} távozott chatWindowTitle=Cseveg chooseAnOption=Válasszon opciót chromeApp=Chrome App +collaborativeEditingNotice=Important Notice for Collaborative Editing compressed=TömörÃtett commitMessage=Üzenetet küld csv=CSV @@ -244,6 +245,7 @@ exporting=Exportálás folyamatban exportAs=Exportálás másként exportOptionsDisabled=Exportálási opciók letiltva exportOptionsDisabledDetails=A tulajdonos letiltotta a letöltési, nyomtatási vagy másolási opciókat a kommentelÅ‘knek és nézÅ‘knek ezen a fájlon. +externalChanges=External Changes extras=Extrák facebook=Facebook failedToSaveTryReconnect=Sikertelen mentés, próbáljon újrakapcsolódni diff --git a/src/main/webapp/resources/dia_i18n.txt b/src/main/webapp/resources/dia_i18n.txt index ed4ee0ee3..f8ecd516b 100644 --- a/src/main/webapp/resources/dia_i18n.txt +++ b/src/main/webapp/resources/dia_i18n.txt @@ -90,6 +90,7 @@ chatLeft=chatLeft chatWindowTitle=chatWindowTitle chooseAnOption=chooseAnOption chromeApp=chromeApp +collaborativeEditingNotice=collaborativeEditingNotice compressed=compressed commitMessage=commitMessage csv=csv @@ -244,6 +245,7 @@ exporting=exporting exportAs=exportAs exportOptionsDisabled=exportOptionsDisabled exportOptionsDisabledDetails=exportOptionsDisabledDetails +externalChanges=externalChanges extras=extras facebook=facebook failedToSaveTryReconnect=failedToSaveTryReconnect diff --git a/src/main/webapp/resources/dia_id.txt b/src/main/webapp/resources/dia_id.txt index ae2f70412..800b18c9b 100644 --- a/src/main/webapp/resources/dia_id.txt +++ b/src/main/webapp/resources/dia_id.txt @@ -90,6 +90,7 @@ chatLeft={1} keluar chatWindowTitle=Obrolan chooseAnOption=Pilih salah satu opsi chromeApp=Aplikasi Chrome +collaborativeEditingNotice=Important Notice for Collaborative Editing compressed=Mampat commitMessage=Kirim Pesan csv=CSV @@ -244,6 +245,7 @@ exporting=Mengekspor exportAs=Ekspor sebagai exportOptionsDisabled=Pilihan ekspor nonaktif exportOptionsDisabledDetails=Pemilik telah menonaktifkan opsi unduh, cetak, atau salin untuk pengomentar dan pembaca berkas ini. +externalChanges=External Changes extras=Ekstra facebook=Facebook failedToSaveTryReconnect=Gagal menyimpan, mencoba menghubungkan kembali diff --git a/src/main/webapp/resources/dia_it.txt b/src/main/webapp/resources/dia_it.txt index 09593fb31..591ff71d5 100644 --- a/src/main/webapp/resources/dia_it.txt +++ b/src/main/webapp/resources/dia_it.txt @@ -90,6 +90,7 @@ chatLeft={1} è uscito chatWindowTitle=Chat chooseAnOption=Scegli un'opzione chromeApp=App Chrome +collaborativeEditingNotice=Important Notice for Collaborative Editing compressed=Compresso commitMessage=Invia il messaggio csv=CSV @@ -244,6 +245,7 @@ exporting=Esportando exportAs=Esporta come exportOptionsDisabled=Opzioni di esporto disabilitate exportOptionsDisabledDetails=Il proprietario ha disabilitato le opzioni di download, stampa e copia per i commentatori ed i lettori del file. +externalChanges=External Changes extras=Altro facebook=Facebook failedToSaveTryReconnect=Impossibile salvare, riconnessione in corso diff --git a/src/main/webapp/resources/dia_ja.txt b/src/main/webapp/resources/dia_ja.txt index 96791c338..bde9c4870 100644 --- a/src/main/webapp/resources/dia_ja.txt +++ b/src/main/webapp/resources/dia_ja.txt @@ -90,6 +90,7 @@ chatLeft={1} ãŒãƒãƒ£ãƒƒãƒˆã‚’去りã¾ã—ãŸã€‚ chatWindowTitle=ãƒãƒ£ãƒƒãƒˆ chooseAnOption=オプションをé¸ã‚“ã§ãã ã•ã„ chromeApp=Chrome アプリ +collaborativeEditingNotice=Important Notice for Collaborative Editing compressed=圧縮 commitMessage=メッセージをçœç•¥ã™ã‚‹ csv=CSV @@ -244,6 +245,7 @@ exporting=エクスãƒãƒ¼ãƒˆä¸ exportAs=å½¢å¼ã‚’指定ã—ã¦ã‚¨ã‚¯ã‚¹ãƒãƒ¼ãƒˆ exportOptionsDisabled=エクスãƒãƒ¼ãƒˆã¯ä½¿ãˆã¾ã›ã‚“ exportOptionsDisabledDetails=所有者ã¯ã€è¦–è´è€…や編集者ãŒãƒ€ã‚¦ãƒ³ãƒãƒ¼ãƒ‰ã€å°åˆ·ã€ã‚³ãƒ”ーをã™ã‚‹ã“ã¨ã‚’èªã‚ã¦ã„ã¾ã›ã‚“。 +externalChanges=External Changes extras=æ‹¡å¼µ facebook=フェイスブック failedToSaveTryReconnect=ä¿å˜ã«å¤±æ•—ã—ã¾ã—ãŸã€‚å†æŽ¥ç¶šä¸ã§ã™ã€‚ diff --git a/src/main/webapp/resources/dia_kn.txt b/src/main/webapp/resources/dia_kn.txt index 42bb37dad..089631e49 100644 --- a/src/main/webapp/resources/dia_kn.txt +++ b/src/main/webapp/resources/dia_kn.txt @@ -90,6 +90,7 @@ chatLeft={1} has left chatWindowTitle=Chat chooseAnOption=Choose an option chromeApp=Chrome App +collaborativeEditingNotice=Important Notice for Collaborative Editing compressed=Compressed commitMessage=Commit Message csv=CSV @@ -244,6 +245,7 @@ exporting=Exporting exportAs=Export as exportOptionsDisabled=Export options disabled exportOptionsDisabledDetails=The owner has disabled options to download, print or copy for commenters and viewers on this file. +externalChanges=External Changes extras=Extras facebook=Facebook failedToSaveTryReconnect=Failed to save, trying to reconnect @@ -252,7 +254,7 @@ feedback=Feedback feedbackSent=Feedback successfully sent. floorplans=Floorplans file=File -fileChangedOverwrite=File was changed. Overwrite changes? +fileChangedOverwrite=The file has been modified. Do you want to save the file and overwrite those changes? overwrite=Overwrite filename=Filename fileExists=File already exists diff --git a/src/main/webapp/resources/dia_ko.txt b/src/main/webapp/resources/dia_ko.txt index 0c1767436..62b4f0108 100644 --- a/src/main/webapp/resources/dia_ko.txt +++ b/src/main/webapp/resources/dia_ko.txt @@ -90,6 +90,7 @@ chatLeft={1}ë‹˜ì´ ëŒ€í™”ì—서 나갔습니다 chatWindowTitle=대화창 chooseAnOption=옵션 ì„ íƒ chromeApp=í¬ë¡¬ 앱 +collaborativeEditingNotice=Important Notice for Collaborative Editing compressed=ì••ì¶• commitMessage=메세지 ì „ì†¡ csv=CSV @@ -244,6 +245,7 @@ exporting=내보내는 중 exportAs=다른 íŒŒì¼ í˜•ì‹ìœ¼ë¡œ 내보내기 exportOptionsDisabled=내보내기 옵션 사용불가 exportOptionsDisabledDetails=ì†Œìœ ìžê°€ 확ì¸ìž ë° ì£¼ì„ìžë“¤ì˜ 다운로드, ì¸ì‡„, 복사를 허용하지 않습니다. +externalChanges=External Changes extras=추가 ë„구 facebook=페ì´ìŠ¤ë¶ failedToSaveTryReconnect=ì €ìž¥ 실패, 재연결중 diff --git a/src/main/webapp/resources/dia_lt.txt b/src/main/webapp/resources/dia_lt.txt index c7756fd44..44eba0422 100644 --- a/src/main/webapp/resources/dia_lt.txt +++ b/src/main/webapp/resources/dia_lt.txt @@ -90,6 +90,7 @@ chatLeft={1} has left chatWindowTitle=Chat chooseAnOption=Choose an option chromeApp=Chrome App +collaborativeEditingNotice=Important Notice for Collaborative Editing compressed=Compressed commitMessage=Commit Message csv=CSV @@ -244,6 +245,7 @@ exporting=Exporting exportAs=Export as exportOptionsDisabled=Export options disabled exportOptionsDisabledDetails=The owner has disabled options to download, print or copy for commenters and viewers on this file. +externalChanges=External Changes extras=Extras facebook=Facebook failedToSaveTryReconnect=Failed to save, trying to reconnect @@ -252,7 +254,7 @@ feedback=Feedback feedbackSent=Feedback successfully sent. floorplans=Floorplans file=File -fileChangedOverwrite=File was changed. Overwrite changes? +fileChangedOverwrite=The file has been modified. Do you want to save the file and overwrite those changes? overwrite=Overwrite filename=Filename fileExists=File already exists diff --git a/src/main/webapp/resources/dia_lv.txt b/src/main/webapp/resources/dia_lv.txt index 084f33fe5..9e7afcd77 100644 --- a/src/main/webapp/resources/dia_lv.txt +++ b/src/main/webapp/resources/dia_lv.txt @@ -90,6 +90,7 @@ chatLeft={1} has left chatWindowTitle=Chat chooseAnOption=Choose an option chromeApp=Chrome App +collaborativeEditingNotice=Important Notice for Collaborative Editing compressed=Compressed commitMessage=Commit Message csv=CSV @@ -244,6 +245,7 @@ exporting=Exporting exportAs=Export as exportOptionsDisabled=Export options disabled exportOptionsDisabledDetails=The owner has disabled options to download, print or copy for commenters and viewers on this file. +externalChanges=External Changes extras=Extras facebook=Facebook failedToSaveTryReconnect=Failed to save, trying to reconnect @@ -252,7 +254,7 @@ feedback=Feedback feedbackSent=Feedback successfully sent. floorplans=Floorplans file=File -fileChangedOverwrite=File was changed. Overwrite changes? +fileChangedOverwrite=The file has been modified. Do you want to save the file and overwrite those changes? overwrite=Overwrite filename=Filename fileExists=File already exists diff --git a/src/main/webapp/resources/dia_ml.txt b/src/main/webapp/resources/dia_ml.txt index 4a374883d..fbc922a71 100644 --- a/src/main/webapp/resources/dia_ml.txt +++ b/src/main/webapp/resources/dia_ml.txt @@ -90,6 +90,7 @@ chatLeft={1} has left chatWindowTitle=Chat chooseAnOption=Choose an option chromeApp=Chrome App +collaborativeEditingNotice=Important Notice for Collaborative Editing compressed=Compressed commitMessage=Commit Message csv=CSV @@ -244,6 +245,7 @@ exporting=Exporting exportAs=Export as exportOptionsDisabled=Export options disabled exportOptionsDisabledDetails=The owner has disabled options to download, print or copy for commenters and viewers on this file. +externalChanges=External Changes extras=Extras facebook=Facebook failedToSaveTryReconnect=Failed to save, trying to reconnect @@ -252,7 +254,7 @@ feedback=Feedback feedbackSent=Feedback successfully sent. floorplans=Floorplans file=File -fileChangedOverwrite=File was changed. Overwrite changes? +fileChangedOverwrite=The file has been modified. Do you want to save the file and overwrite those changes? overwrite=Overwrite filename=Filename fileExists=File already exists diff --git a/src/main/webapp/resources/dia_mr.txt b/src/main/webapp/resources/dia_mr.txt index 873fe2b57..556cfcc16 100644 --- a/src/main/webapp/resources/dia_mr.txt +++ b/src/main/webapp/resources/dia_mr.txt @@ -90,6 +90,7 @@ chatLeft={1} has left chatWindowTitle=Chat chooseAnOption=Choose an option chromeApp=Chrome App +collaborativeEditingNotice=Important Notice for Collaborative Editing compressed=Compressed commitMessage=Commit Message csv=CSV @@ -244,6 +245,7 @@ exporting=Exporting exportAs=Export as exportOptionsDisabled=Export options disabled exportOptionsDisabledDetails=The owner has disabled options to download, print or copy for commenters and viewers on this file. +externalChanges=External Changes extras=Extras facebook=Facebook failedToSaveTryReconnect=Failed to save, trying to reconnect @@ -252,7 +254,7 @@ feedback=Feedback feedbackSent=Feedback successfully sent. floorplans=Floorplans file=File -fileChangedOverwrite=File was changed. Overwrite changes? +fileChangedOverwrite=The file has been modified. Do you want to save the file and overwrite those changes? overwrite=Overwrite filename=Filename fileExists=File already exists diff --git a/src/main/webapp/resources/dia_ms.txt b/src/main/webapp/resources/dia_ms.txt index 7daa0da06..1f228b483 100644 --- a/src/main/webapp/resources/dia_ms.txt +++ b/src/main/webapp/resources/dia_ms.txt @@ -90,6 +90,7 @@ chatLeft={1} telah beredar chatWindowTitle=Sembang chooseAnOption=Pilih satu opsyen chromeApp=Aplikasi Chrome +collaborativeEditingNotice=Important Notice for Collaborative Editing compressed=Mampat commitMessage=Hantar Mesej csv=CSV @@ -244,6 +245,7 @@ exporting=Mengeksport exportAs=Eksport sebagai exportOptionsDisabled=Pilihan eksport dilumpuhkan exportOptionsDisabledDetails=Pemilik telah melumpuhkan pilihan untuk memuat turun, mencetak atau menyalin untuk pengulas dan penonton pada fail ini. +externalChanges=External Changes extras=Tambahan facebook=Facebook failedToSaveTryReconnect=Gagal untuk menyimpan, cuba untuk menyambung semula diff --git a/src/main/webapp/resources/dia_nl.txt b/src/main/webapp/resources/dia_nl.txt index ad50d674d..6fb286ed1 100644 --- a/src/main/webapp/resources/dia_nl.txt +++ b/src/main/webapp/resources/dia_nl.txt @@ -2,7 +2,7 @@ # https://docs.google.com/spreadsheet/ccc?key=0AmQEO36liL4FdDJLWVNMaVV2UmRKSnpXU09MYkdGbEE aboutDrawio=Over draw.io accessDenied=Toegang geweigerd -action=Action +action=Actie actualSize=Ware grootte add=Toevoegen addedFile={1} toegevoegd @@ -90,6 +90,7 @@ chatLeft={1} is vertrokken chatWindowTitle=Chat chooseAnOption=Kies een optie chromeApp=Chrome App +collaborativeEditingNotice=Important Notice for Collaborative Editing compressed=Gecomprimeerd commitMessage=Bericht vastleggen csv=CSV @@ -128,7 +129,7 @@ copy=Kopiëren copyConnect=Kopiëren bij verbinding copyOf=Kopie van {1} copyOfDrawing=Kopie van tekening -copySize=Copy Size +copySize=Afmetingen kopiëren copyStyle=Stijl kopiëren create=Aanmaken createNewDiagram=Nieuw diagram aanmaken @@ -174,7 +175,7 @@ doubleClickOrientation=Dubbelklik om oriëntatie te wijzigen doubleClickTooltip=Dubbelklik om tekst in te voegen doubleClickChangeProperty=Dubbelklik om eigenschapsnaam te wijzigen download=Downloaden -downloadDesktop=Download draw.io Desktop +downloadDesktop=draw.io Bureaublad-app downloaden downloadAs=Downloaden als clickHereToSave=Klik hier om op te slaan. draftDiscarded=Concept genegeerd @@ -244,6 +245,7 @@ exporting=Exporteren exportAs=Exporteren als exportOptionsDisabled=Exportopties uitgeschakeld exportOptionsDisabledDetails=De eigenaar heeft opties voor het downloaden, afdrukken of kopiëren uitgeschakeld voor commentatoren en bekijkers van dit bestand. +externalChanges=External Changes extras=Extra's facebook=Facebook failedToSaveTryReconnect=Opslaan mislukt, opnieuw verbinden maken @@ -513,7 +515,7 @@ paperSize=Papiergrootte pattern=Patroon paste=Plakken pasteHere=Hier plakken -pasteSize=Paste Size +pasteSize=Afmetingen plakken pasteStyle=Stijl plakken perimeter=Begrenzing permissionAnyone=Iedereen kan bewerken @@ -553,7 +555,7 @@ realtimeTimeout=Het lijkt alsof u enkele wijzigingen hebt aangebracht terwijl u redo=Opnieuw refresh=Herladen regularExpression=Reguliere expressie -relative=Relative +relative=Relatief relativeUrlNotAllowed=Relatieve URL niet toegestaan rememberMe=Onthoud mij rememberThisSetting=Deze instelling onthouden @@ -697,7 +699,7 @@ updatingPreview=Voorbeeld wordt bijgewerkt. Even wachten... updatingSelection=Selectie wordt bijgewerkt. Even wachten... upload=Uploaden url=URL -useOffline=Use Offline +useOffline=Offline gebruiken useRootFolder=Hoofdmap gebruiken? userManual=Gebruikershandleiding vertical=Verticaal diff --git a/src/main/webapp/resources/dia_no.txt b/src/main/webapp/resources/dia_no.txt index a5dda99f5..8a1f81d9f 100644 --- a/src/main/webapp/resources/dia_no.txt +++ b/src/main/webapp/resources/dia_no.txt @@ -90,6 +90,7 @@ chatLeft={1} har dratt chatWindowTitle=Chat chooseAnOption=Velg et alternativ chromeApp=Chrome-app +collaborativeEditingNotice=Important Notice for Collaborative Editing compressed=Komprimert commitMessage=Forpliktende Melding csv=CSV @@ -244,6 +245,7 @@ exporting=Eksporterer exportAs=Eksporter som exportOptionsDisabled=Eksport alternativer deaktivert exportOptionsDisabledDetails=Eieren har deaktivert nedlastning, print og kopieringsalternativer for kommentatorer og seere for denne filen. +externalChanges=External Changes extras=Ekstra facebook=Facebook failedToSaveTryReconnect=Feil under lagring, prøver Ã¥ koble til pÃ¥ nytt diff --git a/src/main/webapp/resources/dia_pl.txt b/src/main/webapp/resources/dia_pl.txt index 0fac5cc72..3f29c1e11 100644 --- a/src/main/webapp/resources/dia_pl.txt +++ b/src/main/webapp/resources/dia_pl.txt @@ -90,6 +90,7 @@ chatLeft={1} opuÅ›ciÅ‚ chatWindowTitle=Chat chooseAnOption=Wybierz opcjÄ™ chromeApp=Aplikacja Chrome +collaborativeEditingNotice=Important Notice for Collaborative Editing compressed=Skompresowany commitMessage=commit Wiadomość csv=CSV @@ -244,6 +245,7 @@ exporting=Eksportowanie exportAs=Eksportuj jako exportOptionsDisabled=Opcja eksporu zostaÅ‚a zablokowana exportOptionsDisabledDetails=WÅ‚aÅ›ciciel zablokowaÅ‚ możliwość pobierania, drukowania i kopiowania dla przeglÄ…dajÄ…cych i komentujÄ…cych. +externalChanges=External Changes extras=Dodatki facebook=Facebook failedToSaveTryReconnect=Błąd zapisu, próbujÄ™ połączyć ponownie diff --git a/src/main/webapp/resources/dia_pt-br.txt b/src/main/webapp/resources/dia_pt-br.txt index addb78651..75efa0d06 100644 --- a/src/main/webapp/resources/dia_pt-br.txt +++ b/src/main/webapp/resources/dia_pt-br.txt @@ -90,6 +90,7 @@ chatLeft={1} saiu chatWindowTitle=Bate-papo chooseAnOption=Escolha uma opção chromeApp=Aplicativo Chrome +collaborativeEditingNotice=Important Notice for Collaborative Editing compressed=Comprimido commitMessage=Cometer mensagem csv=CSV @@ -244,6 +245,7 @@ exporting=Exportando exportAs=Exportar como exportOptionsDisabled=Exportar opções desabilitadas exportOptionsDisabledDetails=O proprietário desabilitou as opções de download, impressão ou cópia para comentadores e visualizadores neste arquivo. +externalChanges=External Changes extras=Extras facebook=Facebook failedToSaveTryReconnect=Falha ao salvar, tentando reconetar diff --git a/src/main/webapp/resources/dia_pt.txt b/src/main/webapp/resources/dia_pt.txt index 7c2132e18..2312d9f2a 100644 --- a/src/main/webapp/resources/dia_pt.txt +++ b/src/main/webapp/resources/dia_pt.txt @@ -90,6 +90,7 @@ chatLeft={1} saiu chatWindowTitle=Conversa chooseAnOption=Escolha uma opção chromeApp=Chrome App +collaborativeEditingNotice=Important Notice for Collaborative Editing compressed=Compactado commitMessage=Mensagem da alteração csv=CSV @@ -244,6 +245,7 @@ exporting=Exportando exportAs=Exportar como exportOptionsDisabled=Exportar opções desactivadas exportOptionsDisabledDetails=O proprietário desactivou as opções de descarga, impressão ou cópia para comentadores e visuaizados neste ficheiro. +externalChanges=External Changes extras=Extras facebook=Facebook failedToSaveTryReconnect=Falha ao salvar, tentando reconetar diff --git a/src/main/webapp/resources/dia_ro.txt b/src/main/webapp/resources/dia_ro.txt index 2103d0c86..5d2c15cd3 100644 --- a/src/main/webapp/resources/dia_ro.txt +++ b/src/main/webapp/resources/dia_ro.txt @@ -90,6 +90,7 @@ chatLeft={1} a plecat chatWindowTitle=Chat chooseAnOption=Alege o opÅ£iune chromeApp=AplicaÅ£ie Chrome +collaborativeEditingNotice=Important Notice for Collaborative Editing compressed=Comprimat commitMessage=Comite un mesaj csv=CSV @@ -244,6 +245,7 @@ exporting=Se exportează exportAs=Exportează ca exportOptionsDisabled=OpÈ›iunile de export au fost dezactivate exportOptionsDisabledDetails=DeÈ›inătorul a dezactivat posibilitaÈ›ile de download, imprimare sau copiere pentru comentatorii È™i vizualizatorii acestei pagini. +externalChanges=External Changes extras=Extra facebook=Facebook failedToSaveTryReconnect=Salvare eÈ™uată, se încearcă reconectarea diff --git a/src/main/webapp/resources/dia_ru.txt b/src/main/webapp/resources/dia_ru.txt index 04ee2c917..27d6bb61d 100644 --- a/src/main/webapp/resources/dia_ru.txt +++ b/src/main/webapp/resources/dia_ru.txt @@ -90,6 +90,7 @@ chatLeft={1} вышел chatWindowTitle=Чат chooseAnOption=Выберите вариант chromeApp=Приложение Chrome +collaborativeEditingNotice=Important Notice for Collaborative Editing compressed=Сжато commitMessage=Сообщение при коммите csv=CSV @@ -244,6 +245,7 @@ exporting=ÐкÑпорт exportAs=ÐкÑпортировать как exportOptionsDisabled=ВозможноÑти ÑкÑпорта отключены exportOptionsDisabledDetails=Владелец файла отключил возможноÑти ÑохранениÑ, печати или ÐºÐ¾Ð¿Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð´Ð°Ð½Ð½Ñ‹Ñ… при проÑмотре и комментировании Ñтого файла. +externalChanges=External Changes extras=Дополнительно facebook=Facebook failedToSaveTryReconnect=Ошибка при Ñохранении, выполнÑетÑÑ Ð¿Ð¾Ð²Ñ‚Ð¾Ñ€Ð½Ð¾Ðµ подключение diff --git a/src/main/webapp/resources/dia_sk.txt b/src/main/webapp/resources/dia_sk.txt index a98fde3cc..1682969da 100644 --- a/src/main/webapp/resources/dia_sk.txt +++ b/src/main/webapp/resources/dia_sk.txt @@ -90,6 +90,7 @@ chatLeft={1} has left chatWindowTitle=Chat chooseAnOption=Choose an option chromeApp=Chrome App +collaborativeEditingNotice=Important Notice for Collaborative Editing compressed=Compressed commitMessage=Commit Message csv=CSV @@ -244,6 +245,7 @@ exporting=Exporting exportAs=Export as exportOptionsDisabled=Export options disabled exportOptionsDisabledDetails=The owner has disabled options to download, print or copy for commenters and viewers on this file. +externalChanges=External Changes extras=Extras facebook=Facebook failedToSaveTryReconnect=Failed to save, trying to reconnect @@ -252,7 +254,7 @@ feedback=Feedback feedbackSent=Feedback successfully sent. floorplans=Floorplans file=File -fileChangedOverwrite=File was changed. Overwrite changes? +fileChangedOverwrite=The file has been modified. Do you want to save the file and overwrite those changes? overwrite=Overwrite filename=Filename fileExists=File already exists diff --git a/src/main/webapp/resources/dia_sl.txt b/src/main/webapp/resources/dia_sl.txt index 7b4f62e1f..9b043589b 100644 --- a/src/main/webapp/resources/dia_sl.txt +++ b/src/main/webapp/resources/dia_sl.txt @@ -90,6 +90,7 @@ chatLeft={1} has left chatWindowTitle=Chat chooseAnOption=Choose an option chromeApp=Chrome App +collaborativeEditingNotice=Important Notice for Collaborative Editing compressed=Compressed commitMessage=Commit Message csv=CSV @@ -244,6 +245,7 @@ exporting=Exporting exportAs=Export as exportOptionsDisabled=Export options disabled exportOptionsDisabledDetails=The owner has disabled options to download, print or copy for commenters and viewers on this file. +externalChanges=External Changes extras=Extras facebook=Facebook failedToSaveTryReconnect=Failed to save, trying to reconnect @@ -252,7 +254,7 @@ feedback=Feedback feedbackSent=Feedback successfully sent. floorplans=Floorplans file=File -fileChangedOverwrite=File was changed. Overwrite changes? +fileChangedOverwrite=The file has been modified. Do you want to save the file and overwrite those changes? overwrite=Overwrite filename=Filename fileExists=File already exists diff --git a/src/main/webapp/resources/dia_sr.txt b/src/main/webapp/resources/dia_sr.txt index 883a6072b..9f5c4ae1a 100644 --- a/src/main/webapp/resources/dia_sr.txt +++ b/src/main/webapp/resources/dia_sr.txt @@ -90,6 +90,7 @@ chatLeft={1} je otiÅ¡ao chatWindowTitle=Razgovor chooseAnOption=Izaberite opciju chromeApp=Chrome Aplikacija +collaborativeEditingNotice=Important Notice for Collaborative Editing compressed=Komprimovan commitMessage=Commit Message csv=CSV @@ -244,6 +245,7 @@ exporting=Izvoz exportAs=Izvezi kao exportOptionsDisabled=Mogućnost izvoza je onemogućena exportOptionsDisabledDetails=Vlasnik je onesposobio mogućnost preuzimanja, Å¡tampanja i kopiranja za komentatore i posmatraÄe ovog dokumenta. +externalChanges=External Changes extras=Dodaci facebook=Facebook failedToSaveTryReconnect=Neuspelo snimanje, pokuÅ¡aj rekonekcije diff --git a/src/main/webapp/resources/dia_sv.txt b/src/main/webapp/resources/dia_sv.txt index fbee7173b..47438b863 100644 --- a/src/main/webapp/resources/dia_sv.txt +++ b/src/main/webapp/resources/dia_sv.txt @@ -90,6 +90,7 @@ chatLeft={1} har lämnat chatWindowTitle=Chatt chooseAnOption=Välj ett alternativ chromeApp=Chrome app +collaborativeEditingNotice=Important Notice for Collaborative Editing compressed=Komprimerad commitMessage=Skicka meddelande csv=CSV @@ -244,6 +245,7 @@ exporting=Exportering exportAs=Exportera som exportOptionsDisabled=Exporteringsval inaktiverade exportOptionsDisabledDetails=Ägaren har inaktiverat nerladdning, skriv ut eller kopiera för kommenterare och Ã¥skÃ¥dare för denna fil. +externalChanges=External Changes extras=Extrafunktioner facebook=Facebook failedToSaveTryReconnect=Kunde inte spara, försöker Ã¥teransluta diff --git a/src/main/webapp/resources/dia_sw.txt b/src/main/webapp/resources/dia_sw.txt index 8a094b37c..ab8c367d2 100644 --- a/src/main/webapp/resources/dia_sw.txt +++ b/src/main/webapp/resources/dia_sw.txt @@ -90,6 +90,7 @@ chatLeft={1} has left chatWindowTitle=Chat chooseAnOption=Choose an option chromeApp=Chrome App +collaborativeEditingNotice=Important Notice for Collaborative Editing compressed=Compressed commitMessage=Commit Message csv=CSV @@ -244,6 +245,7 @@ exporting=Exporting exportAs=Export as exportOptionsDisabled=Export options disabled exportOptionsDisabledDetails=The owner has disabled options to download, print or copy for commenters and viewers on this file. +externalChanges=External Changes extras=Extras facebook=Facebook failedToSaveTryReconnect=Failed to save, trying to reconnect @@ -252,7 +254,7 @@ feedback=Feedback feedbackSent=Feedback successfully sent. floorplans=Floorplans file=File -fileChangedOverwrite=File was changed. Overwrite changes? +fileChangedOverwrite=The file has been modified. Do you want to save the file and overwrite those changes? overwrite=Overwrite filename=Filename fileExists=File already exists diff --git a/src/main/webapp/resources/dia_ta.txt b/src/main/webapp/resources/dia_ta.txt index 8c47a3912..770b3d97c 100644 --- a/src/main/webapp/resources/dia_ta.txt +++ b/src/main/webapp/resources/dia_ta.txt @@ -90,6 +90,7 @@ chatLeft={1} has left chatWindowTitle=Chat chooseAnOption=Choose an option chromeApp=Chrome App +collaborativeEditingNotice=Important Notice for Collaborative Editing compressed=Compressed commitMessage=Commit Message csv=CSV @@ -244,6 +245,7 @@ exporting=Exporting exportAs=Export as exportOptionsDisabled=Export options disabled exportOptionsDisabledDetails=The owner has disabled options to download, print or copy for commenters and viewers on this file. +externalChanges=External Changes extras=Extras facebook=Facebook failedToSaveTryReconnect=Failed to save, trying to reconnect @@ -252,7 +254,7 @@ feedback=Feedback feedbackSent=Feedback successfully sent. floorplans=Floorplans file=File -fileChangedOverwrite=File was changed. Overwrite changes? +fileChangedOverwrite=The file has been modified. Do you want to save the file and overwrite those changes? overwrite=Overwrite filename=Filename fileExists=File already exists diff --git a/src/main/webapp/resources/dia_te.txt b/src/main/webapp/resources/dia_te.txt index 02259b7c0..8bafe26c1 100644 --- a/src/main/webapp/resources/dia_te.txt +++ b/src/main/webapp/resources/dia_te.txt @@ -90,6 +90,7 @@ chatLeft={1} has left chatWindowTitle=Chat chooseAnOption=Choose an option chromeApp=Chrome App +collaborativeEditingNotice=Important Notice for Collaborative Editing compressed=Compressed commitMessage=Commit Message csv=CSV @@ -244,6 +245,7 @@ exporting=Exporting exportAs=Export as exportOptionsDisabled=Export options disabled exportOptionsDisabledDetails=The owner has disabled options to download, print or copy for commenters and viewers on this file. +externalChanges=External Changes extras=Extras facebook=Facebook failedToSaveTryReconnect=Failed to save, trying to reconnect @@ -252,7 +254,7 @@ feedback=Feedback feedbackSent=Feedback successfully sent. floorplans=Floorplans file=File -fileChangedOverwrite=File was changed. Overwrite changes? +fileChangedOverwrite=The file has been modified. Do you want to save the file and overwrite those changes? overwrite=Overwrite filename=Filename fileExists=File already exists diff --git a/src/main/webapp/resources/dia_th.txt b/src/main/webapp/resources/dia_th.txt index ff8bd865a..e50b32e02 100644 --- a/src/main/webapp/resources/dia_th.txt +++ b/src/main/webapp/resources/dia_th.txt @@ -90,6 +90,7 @@ chatLeft={1} ได้à¸à¸à¸à¸ˆà¸²à¸à¸£à¸°à¸šà¸š chatWindowTitle=à¹à¸Šà¸— chooseAnOption=เลืà¸à¸à¸«à¸™à¸¶à¹ˆà¸‡à¸•ัวเลืà¸à¸ chromeApp=โครมà¹à¸à¸žà¸¥à¸´à¹€à¸„ชั่น +collaborativeEditingNotice=Important Notice for Collaborative Editing compressed=บีบà¸à¸±à¸”à¹à¸¥à¹‰à¸§ commitMessage=ข้à¸à¸„วามสัà¸à¸à¸² csv=CSV @@ -244,6 +245,7 @@ exporting=à¸à¸²à¸£à¸ªà¹ˆà¹ˆà¸‡à¸à¸à¸ exportAs=ส่งà¸à¸à¸à¹€à¸›à¹‡à¸™ exportOptionsDisabled=ตัวเลืà¸à¸à¸à¸²à¸£à¸ªà¹ˆà¸‡à¸à¸à¸à¸–ูà¸à¸›à¸´à¸”ใช้งาน exportOptionsDisabledDetails=เจ้าขà¸à¸‡à¹„ด้ปิดà¸à¸²à¸£à¹ƒà¸Šà¹‰à¸‡à¸²à¸™à¸”าวน์โหลด พิมพ์หรืà¸à¸ªà¸³à¹€à¸™à¸²à¸ªà¸³à¸«à¸£à¸±à¸šà¸œà¸¹à¹‰à¹à¸ªà¸”งความเห็นà¹à¸¥à¸°à¸œà¸¹à¹‰à¸Šà¸¡à¹„ฟล์นี้ +externalChanges=External Changes extras=เà¸à¹‡à¸à¸‹à¹Œà¸•ร้า facebook=Facebook failedToSaveTryReconnect=à¸à¸²à¸£à¸šà¸±à¸™à¸—ึà¸à¸¥à¹‰à¸¡à¹€à¸«à¸¥à¸§ à¸à¸³à¸¥à¸±à¸‡à¸žà¸¢à¸²à¸¢à¸²à¸¡à¹€à¸Šà¸·à¹ˆà¸à¸¡à¸•่à¸à¹ƒà¸«à¸¡à¹ˆ diff --git a/src/main/webapp/resources/dia_tr.txt b/src/main/webapp/resources/dia_tr.txt index 40b27479e..e286510e2 100644 --- a/src/main/webapp/resources/dia_tr.txt +++ b/src/main/webapp/resources/dia_tr.txt @@ -90,6 +90,7 @@ chatLeft={1} sohbeti terk etti chatWindowTitle=Sohbet chooseAnOption=Bir seçenek seçin chromeApp=Chrome Uygulaması +collaborativeEditingNotice=Important Notice for Collaborative Editing compressed=Sıkıştırılmış commitMessage=Mesaj oluÅŸtur csv=CSV @@ -244,6 +245,7 @@ exporting=Dışa aktarma exportAs=Farklı dışa aktar exportOptionsDisabled=Dışa aktarma seçenekleri devre dışı exportOptionsDisabledDetails=Yetkili, indirme, basım veya yorumlayıcılar için kopyalama seçeneklerini devre dışı bıraktı. +externalChanges=External Changes extras=Ekstralar facebook=Facebook failedToSaveTryReconnect=Kaydetme baÅŸarısız, tekrar baÄŸlanmayı deniyor diff --git a/src/main/webapp/resources/dia_uk.txt b/src/main/webapp/resources/dia_uk.txt index a492a04ab..73e31cbd2 100644 --- a/src/main/webapp/resources/dia_uk.txt +++ b/src/main/webapp/resources/dia_uk.txt @@ -90,6 +90,7 @@ chatLeft={1} вийшов chatWindowTitle=Чат chooseAnOption=Оберіть варіант chromeApp=Додаток Chrome +collaborativeEditingNotice=Important Notice for Collaborative Editing compressed=СтиÑло commitMessage=ÐŸÐ¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¸ коміті csv=CSV @@ -244,6 +245,7 @@ exporting=ЕкÑпортуємо exportAs=ЕкÑпортувати Ñк exportOptionsDisabled=МожливоÑті екÑпорту відключено exportOptionsDisabledDetails=ВлаÑник відключив можливоÑті ÑкачуваннÑ, друку та ÐºÐ¾Ð¿Ñ–ÑŽÐ²Ð°Ð½Ð½Ñ Ñ†ÑŒÐ¾Ð³Ð¾ файлу Ð´Ð»Ñ ÐºÐ¾Ð¼ÐµÐ½Ñ‚Ð°Ñ‚Ð¾Ñ€Ñ–Ð² та глÑдачів. +externalChanges=External Changes extras=Додатково facebook=Facebook failedToSaveTryReconnect=Ðе вдалоÑÑ Ð·Ð±ÐµÑ€ÐµÐ³Ñ‚Ð¸, Ñпроба повторного Ð¿Ñ–Ð´ÐºÐ»ÑŽÑ‡ÐµÐ½Ð½Ñ diff --git a/src/main/webapp/resources/dia_vi.txt b/src/main/webapp/resources/dia_vi.txt index eddc529c4..e2486cd6e 100644 --- a/src/main/webapp/resources/dia_vi.txt +++ b/src/main/webapp/resources/dia_vi.txt @@ -90,6 +90,7 @@ chatLeft={1} đã thoát chatWindowTitle=Chat chooseAnOption=Chá»n má»™t tùy chá»n chromeApp=Ứng dụng Chrome +collaborativeEditingNotice=Important Notice for Collaborative Editing compressed=Äã nén commitMessage=Ná»™i dung thay đổi csv=CSV @@ -244,6 +245,7 @@ exporting=Äang xuất táºp tin exportAs=Xuất táºp tin dưới dạng exportOptionsDisabled=Lá»±a chá»n xuất táºp tin bị vô hiệu hóa exportOptionsDisabledDetails=Ngưá»i sở hữu đã vô hiệu hóa quyá»n tải xuống, in hoặc sao chép đối vá»›i ngưá»i bình luáºn hoặc ngưá»i xem táºp tin nà y. +externalChanges=External Changes extras=Bổ sung facebook=Facebook failedToSaveTryReconnect=Lưu thất bại, Ä‘ang thá» kết nối lại diff --git a/src/main/webapp/resources/dia_zh-tw.txt b/src/main/webapp/resources/dia_zh-tw.txt index bcd050bea..c6fa0c5d4 100644 --- a/src/main/webapp/resources/dia_zh-tw.txt +++ b/src/main/webapp/resources/dia_zh-tw.txt @@ -90,6 +90,7 @@ chatLeft={1}已離開 chatWindowTitle=交談 chooseAnOption=è«‹é¸æ“‡ä¸€é … chromeApp=Chrome應用 +collaborativeEditingNotice=Important Notice for Collaborative Editing compressed=已壓縮 commitMessage=æäº¤è¨Šæ¯ csv=CSV @@ -244,6 +245,7 @@ exporting=åŒ¯å‡ºä¸ exportAs=匯出為 exportOptionsDisabled=å·²ç¦ç”¨åŒ¯å‡º exportOptionsDisabledDetails=æ‰€æœ‰è€…å·²ç¦æ¢è©•論者和ç€è¦½è€…ä¸‹è¼‰ï¼Œåˆ—å°æˆ–è¤‡åˆ¶æ¤æª”案。 +externalChanges=External Changes extras=å…¶ä»– facebook=Facebook failedToSaveTryReconnect=å˜æª”失敗,æ£å˜—è©¦é‡æ–°é€£ç·š diff --git a/src/main/webapp/resources/dia_zh.txt b/src/main/webapp/resources/dia_zh.txt index cc4915c05..4061c1b30 100644 --- a/src/main/webapp/resources/dia_zh.txt +++ b/src/main/webapp/resources/dia_zh.txt @@ -90,6 +90,7 @@ chatLeft={1}已离开 chatWindowTitle=èŠå¤© chooseAnOption=请选择一项 chromeApp=Chrome应用软件 +collaborativeEditingNotice=Important Notice for Collaborative Editing compressed=已压缩 commitMessage=æäº¤ä¿¡æ¯ csv=CSV @@ -244,6 +245,7 @@ exporting=å¯¼å‡ºä¸ exportAs=导出为 exportOptionsDisabled=å·²ç¦æ¢å¯¼å‡º exportOptionsDisabledDetails=æ‰€æœ‰è€…å·²ç¦æ¢è¯„è®ºè€…åŠæµè§ˆè€…ä¸‹è½½ã€æ‰“å°æˆ–å¤åˆ¶è¯¥æ–‡ä»¶ã€‚ +externalChanges=External Changes extras=其它 facebook=Facebook failedToSaveTryReconnect=ä¿å˜å¤±è´¥ï¼Œæ£åœ¨å°è¯•釿–°è¿žæŽ¥ -- GitLab