diff --git a/ChangeLog b/ChangeLog index 4d906a35..37880cf0 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,21 @@ +23-MAY-2025: 27.0.9 + +- Uses per-cell container for inputs/selects in property rows [jgraph/draw#5086] + +22-MAY-2025: 27.0.8 + +- Fixes possible notification NPE + +22-MAY-2025: 27.0.7 + +- Restricts notifications to own diagrams.net domains [jgraph/docker-drawio#187] +- [conf cloud] Removes blank and smart templates from Confluence Template diagrams [DID-14800] +- [conf cloud] Fixes editor hang in Template editor [DID-14800] + +16-MAY-2025: 27.0.6 + +- Fixes paste location to use position of mouse [drawio-desktop#2096] + 13-MAY-2025: 27.0.5 - Skips service worker install on first load diff --git a/VERSION b/VERSION index 6f350a79..477fb425 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -27.0.5 \ No newline at end of file +27.0.9 \ No newline at end of file diff --git a/src/main/webapp/js/app.min.js b/src/main/webapp/js/app.min.js index 3520d44d..a064fbe9 100644 --- a/src/main/webapp/js/app.min.js +++ b/src/main/webapp/js/app.min.js @@ -63,7 +63,7 @@ if("1"==urlParams.offline||"1"==urlParams.demo||"1"==urlParams.stealth||"1"==url "se.diagrams.net"==window.location.hostname&&(urlParams.db="0",urlParams.od="0",urlParams.gh="0",urlParams.gl="0",urlParams.tr="0",urlParams.plugins="0",urlParams.mode="google",urlParams.lockdown="1",window.DRAWIO_GOOGLE_APP_ID=window.DRAWIO_GOOGLE_APP_ID||"184079235871",window.DRAWIO_GOOGLE_CLIENT_ID=window.DRAWIO_GOOGLE_CLIENT_ID||"184079235871-pjf5nn0lff27lk8qf0770gmffiv9gt61.apps.googleusercontent.com");"trello"==urlParams.mode&&(urlParams.tr="1"); "embed.diagrams.net"==window.location.hostname&&(urlParams.embed="1");(null==window.location.hash||1>=window.location.hash.length)&&null!=urlParams.open&&(window.location.hash=urlParams.open);"function"!==typeof window.structuredClone&&(window.structuredClone=function(a){return a});window.urlParams=window.urlParams||{};window.DOM_PURIFY_CONFIG=window.DOM_PURIFY_CONFIG||{ADD_TAGS:["use","foreignObject"],FORBID_TAGS:["form"],ALLOWED_URI_REGEXP:/^((?!javascript:).)*$/i,HTML_INTEGRATION_POINTS:{foreignobject:!0},ADD_ATTR:["target","content","pointer-events","requiredFeatures"]};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||"mxgraph"; -window.mxImageBasePath=window.mxImageBasePath||"mxgraph/images";window.mxLanguage=window.mxLanguage||urlParams.lang;window.mxLanguages=window.mxLanguages||["de","se"];var mxClient={VERSION:"27.0.5",IS_IE:null!=navigator.userAgent&&0<=navigator.userAgent.indexOf("MSIE"),IS_IE11:null!=navigator.userAgent&&!!navigator.userAgent.match(/Trident\/7\./),IS_EDGE:null!=navigator.userAgent&&!!navigator.userAgent.match(/Edge\//),IS_EM:"spellcheck"in document.createElement("textarea")&&8==document.documentMode,VML_PREFIX:"v",OFFICE_PREFIX:"o",IS_NS:null!=navigator.userAgent&&0<=navigator.userAgent.indexOf("Mozilla/")&&0>navigator.userAgent.indexOf("MSIE")&&0>navigator.userAgent.indexOf("Edge/"), +window.mxImageBasePath=window.mxImageBasePath||"mxgraph/images";window.mxLanguage=window.mxLanguage||urlParams.lang;window.mxLanguages=window.mxLanguages||["de","se"];var mxClient={VERSION:"27.0.9",IS_IE:null!=navigator.userAgent&&0<=navigator.userAgent.indexOf("MSIE"),IS_IE11:null!=navigator.userAgent&&!!navigator.userAgent.match(/Trident\/7\./),IS_EDGE:null!=navigator.userAgent&&!!navigator.userAgent.match(/Edge\//),IS_EM:"spellcheck"in document.createElement("textarea")&&8==document.documentMode,VML_PREFIX:"v",OFFICE_PREFIX:"o",IS_NS:null!=navigator.userAgent&&0<=navigator.userAgent.indexOf("Mozilla/")&&0>navigator.userAgent.indexOf("MSIE")&&0>navigator.userAgent.indexOf("Edge/"), IS_OP:null!=navigator.userAgent&&(0<=navigator.userAgent.indexOf("Opera/")||0<=navigator.userAgent.indexOf("OPR/")),IS_OT:null!=navigator.userAgent&&0<=navigator.userAgent.indexOf("Presto/")&&0>navigator.userAgent.indexOf("Presto/2.4.")&&0>navigator.userAgent.indexOf("Presto/2.3.")&&0>navigator.userAgent.indexOf("Presto/2.2.")&&0>navigator.userAgent.indexOf("Presto/2.1.")&&0>navigator.userAgent.indexOf("Presto/2.0.")&&0>navigator.userAgent.indexOf("Presto/1."),IS_SF:/Apple Computer, Inc/.test(navigator.vendor), IS_ANDROID:0<=navigator.appVersion.indexOf("Android"),IS_IOS:/iP(hone|od|ad)/.test(navigator.platform)||navigator.userAgent.match(/Mac/)&&navigator.maxTouchPoints&&2navigator.userAgent.indexOf("Firefox/1.")&&0>navigator.userAgent.indexOf("Firefox/2.")||0<=navigator.userAgent.indexOf("Iceweasel/")&&0>navigator.userAgent.indexOf("Iceweasel/1.")&&0>navigator.userAgent.indexOf("Iceweasel/2.")||0<=navigator.userAgent.indexOf("SeaMonkey/")&&0>navigator.userAgent.indexOf("SeaMonkey/1.")||0<=navigator.userAgent.indexOf("Iceape/")&&0>navigator.userAgent.indexOf("Iceape/1."),IS_SVG:"MICROSOFT INTERNET EXPLORER"!=navigator.appName.toUpperCase(),NO_FO:!document.createElementNS|| @@ -85,9 +85,9 @@ mxDictionary.prototype.remove=function(a){a=mxObjectIdentity.get(a);var b=this.m var mxResources={resources:{},extension:mxResourceExtension,resourcesEncoded:!1,loadDefaultBundle:!0,loadSpecialBundle:!0,isLanguageSupported:function(a){return null!=mxClient.languages?0<=mxUtils.indexOf(mxClient.languages,a):!0},getDefaultBundle:function(a,b){return mxResources.loadDefaultBundle||!mxResources.isLanguageSupported(b)?a+mxResources.extension:null},getSpecialBundle:function(a,b){if(null==mxClient.languages||!this.isLanguageSupported(b)){var c=b.indexOf("-");0a[c].indexOf("=")&&b.push(a[c])}return b},indexOfStylename:function(a,b){if(null!=a&&null!=b){a=a.split(";");for(var c=0,d=0;dmxUtils.indexOfStylename(a,b)&&(null==a?a="":0e?";":a.substring(e)):0>e||e==a.length-1?"":a.substring(e+1)}else{var f=a.indexOf(";"+b+"=");0>f?d&&(d=";"==a.charAt(a.length-1)?"":";",a=a+d+b+"="+c+";"):(e=a.indexOf(";",f+1),a=d?a.substring(0,f+1)+b+"="+c+(0>e?";":a.substring(e)):a.substring(0, -f)+(0>e?";":a.substring(e)))}return a},setCellStyleFlags:function(a,b,c,d,e){if(null!=b&&0e)e=";"==a.charAt(a.length-1)?"":";",a=d||null==d?a+e+b+"="+c:a+e+b+"=0";else{var f=a.indexOf(";",e),g=0>f?a.substring(e+b.length+ -1):a.substring(e+b.length+1,f);g=null==d?parseInt(g)^c:d?parseInt(g)|c:parseInt(g)&~c;a=a.substring(0,e)+b+"="+g+(0<=f?a.substring(f):"")}}return a},getAlignmentAsPoint:function(a,b){var c=-.5,d=-.5;a==mxConstants.ALIGN_LEFT?c=0:a==mxConstants.ALIGN_RIGHT&&(c=-1);b==mxConstants.ALIGN_TOP?d=0:b==mxConstants.ALIGN_BOTTOM&&(d=-1);return new mxPoint(c,d)},getSizeForString:function(a,b,c,d,e){b=null!=b?b:mxConstants.DEFAULT_FONTSIZE;c=null!=c?c:mxConstants.DEFAULT_FONTFAMILY;var f=document.createElement("div"); -f.style.fontFamily=c;f.style.fontSize=Math.round(b)+"px";f.style.lineHeight=mxConstants.ABSOLUTE_LINE_HEIGHT?b*mxConstants.LINE_HEIGHT+"px":mxConstants.LINE_HEIGHT*mxSvgCanvas2D.prototype.lineHeightCorrection;null!=e&&((e&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD&&(f.style.fontWeight="bold"),(e&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC&&(f.style.fontStyle="italic"),b=[],(e&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE&&b.push("underline"),(e&mxConstants.FONT_STRIKETHROUGH)== -mxConstants.FONT_STRIKETHROUGH&&b.push("line-through"),0a)return 1;c=null!=c?c:mxConstants.PAGE_FORMAT_A4_PORTRAIT;d=null!=d?d:0;var e=c.width-2*d;c=c.height-2*d;d=mxRectangle.fromRectangle(b.getGraphBounds());b=b.getView().getScale(); -d.width/=b;d.height/=b;b=d.width;var f=Math.sqrt(a);d=Math.sqrt(b/d.height/(e/c));c=f*d;d=f/d;if(1>c&&d>a){var g=d/a;d=a;c/=g}1>d&&c>a&&(g=c/a,c=a,d/=g);g=Math.ceil(c)*Math.ceil(d);for(f=0;g>a;){g=Math.floor(c)/c;var k=Math.floor(d)/d;1==g&&(g=Math.floor(c-1)/c);1==k&&(k=Math.floor(d-1)/d);g=g>k?g:k;c*=g;d*=g;g=Math.ceil(c)*Math.ceil(d);f++;if(10";g=document.getElementsByTagName("base");for(c=0;c";for(c=0;c
')+a.container.innerHTML;b.writeln(d+"
");b.close()}else{b.writeln("");g=document.getElementsByTagName("base");for(c=0;c');b.close();c=b.createElement("div");c.position="absolute";c.overflow="hidden";c.style.width=e+"px";c.style.height=f+"px";e=b.createElement("div");e.style.position="absolute";e.style.left=k+"px";e.style.top=l+"px";f=a.container.firstChild;for(d=null;null!=f;)g=f.cloneNode(!0),f==a.view.drawPane.ownerSVGElement?(c.appendChild(g),d=g):e.appendChild(g),f=f.nextSibling;b.body.appendChild(c); -null!=e.firstChild&&b.body.appendChild(e);null!=d&&(d.style.minWidth="",d.style.minHeight="",d.firstChild.setAttribute("transform","translate("+k+","+l+")"))}mxUtils.removeCursors(b.body);return b},printScreen:function(a){var b=window.open();mxUtils.show(a,b.document);a=function(){b.focus();b.print();b.close()};mxClient.IS_GC?b.setTimeout(a,500):a()},popup:function(a,b){if(b){var c=document.createElement("div");c.style.overflow="scroll";c.style.width="636px";c.style.height="460px";b=document.createElement("pre"); -b.innerHTML=mxUtils.htmlEntities(a,!1).replace(/\n/g,"
").replace(/ /g," ");c.appendChild(b);c=new mxWindow("Popup Window",c,document.body.clientWidth/2-320,Math.max(document.body.clientHeight||0,document.documentElement.clientHeight)/2-240,640,480,!1,!0);c.setClosable(!0);c.setVisible(!0)}else mxClient.IS_NS?(c=window.open(),c.document.writeln("
"+mxUtils.htmlEntities(a)+"").replace(/ /g," "),c.document.body.appendChild(b))},alert:function(a){alert(a)},prompt:function(a,b){return prompt(a,null!=b?b:"")},confirm:function(a){return confirm(a)},error:function(a,b,c,d){var e=document.createElement("div");e.style.padding="20px";var f=document.createElement("img");f.setAttribute("src",d||mxUtils.errorImage);f.setAttribute("valign","bottom");f.style.verticalAlign="middle";e.appendChild(f);e.appendChild(document.createTextNode(" "));e.appendChild(document.createTextNode(" "));
-e.appendChild(document.createTextNode(" "));mxUtils.write(e,a);a=document.body.clientWidth;d=document.body.clientHeight||document.documentElement.clientHeight;var g=new mxWindow(mxResources.get(mxUtils.errorResource)||mxUtils.errorResource,e,(a-b)/2,d/4,b,null,!1,!0);c&&(mxUtils.br(e),b=document.createElement("p"),c=document.createElement("button"),mxClient.IS_IE?c.style.cssText="float:right":c.setAttribute("style","float:right"),mxEvent.addListener(c,"click",function(k){g.destroy()}),mxUtils.write(c,
-mxResources.get(mxUtils.closeResource)||mxUtils.closeResource),b.appendChild(c),e.appendChild(b),mxUtils.br(e),g.setClosable(!0));g.setVisible(!0);return g},makeDraggable:function(a,b,c,d,e,f,g,k,l,m){a=new mxDragSource(a,c);a.dragOffset=new mxPoint(null!=e?e:0,null!=f?f:mxConstants.TOOLTIP_VERTICAL_OFFSET);a.autoscroll=g;a.setGuidesEnabled(!1);null!=l&&(a.highlightDropTargets=l);null!=m&&(a.getDropTarget=m);a.getGraphForEvent=function(n){return"function"==typeof b?b(n):b};null!=d&&(a.createDragElement=
-function(){return d.cloneNode(!0)},k&&(a.createPreviewElement=function(n){var p=d.cloneNode(!0),q=parseInt(p.style.width),r=parseInt(p.style.height);p.style.width=Math.round(q*n.view.scale)+"px";p.style.height=Math.round(r*n.view.scale)+"px";return p}));return a},format:function(a){return parseFloat(parseFloat(a).toFixed(2))}},mxConstants={DEFAULT_HOTSPOT:.3,MIN_HOTSPOT_SIZE:8,MAX_HOTSPOT_SIZE:0,RENDERING_HINT_EXACT:"exact",RENDERING_HINT_FASTER:"faster",RENDERING_HINT_FASTEST:"fastest",DIALECT_SVG:"svg",
-DIALECT_MIXEDHTML:"mixedHtml",DIALECT_PREFERHTML:"preferHtml",DIALECT_STRICTHTML:"strictHtml",NS_SVG:"http://www.w3.org/2000/svg",NS_XHTML:"http://www.w3.org/1999/xhtml",NS_XLINK:"http://www.w3.org/1999/xlink",SHADOWCOLOR:"#808080",VML_SHADOWCOLOR:"#808080",SHADOW_OFFSET_X:2,SHADOW_OFFSET_Y:3,SHADOW_BLUR:2,SHADOW_OPACITY:1,NODETYPE_ELEMENT:1,NODETYPE_ATTRIBUTE:2,NODETYPE_TEXT:3,NODETYPE_CDATA:4,NODETYPE_ENTITY_REFERENCE:5,NODETYPE_ENTITY:6,NODETYPE_PROCESSING_INSTRUCTION:7,NODETYPE_COMMENT:8,NODETYPE_DOCUMENT:9,
-NODETYPE_DOCUMENTTYPE:10,NODETYPE_DOCUMENT_FRAGMENT:11,NODETYPE_NOTATION:12,TOOLTIP_VERTICAL_OFFSET:16,DEFAULT_VALID_COLOR:"#00FF00",DEFAULT_INVALID_COLOR:"#FF0000",OUTLINE_HIGHLIGHT_COLOR:"#00FF00",OUTLINE_HIGHLIGHT_STROKEWIDTH:5,HIGHLIGHT_STROKEWIDTH:3,HIGHLIGHT_SIZE:2,HIGHLIGHT_OPACITY:100,CURSOR_MOVABLE_VERTEX:"move",CURSOR_MOVABLE_EDGE:"move",CURSOR_LABEL_HANDLE:"default",CURSOR_TERMINAL_HANDLE:"pointer",CURSOR_BEND_HANDLE:"crosshair",CURSOR_VIRTUAL_BEND_HANDLE:"crosshair",CURSOR_CONNECT:"pointer",
-HIGHLIGHT_COLOR:"#00FF00",CONNECT_TARGET_COLOR:"#0000FF",INVALID_CONNECT_TARGET_COLOR:"#FF0000",DROP_TARGET_COLOR:"#0000FF",VALID_COLOR:"#00FF00",INVALID_COLOR:"#FF0000",EDGE_SELECTION_COLOR:"#00FF00",VERTEX_SELECTION_COLOR:"#00FF00",VERTEX_SELECTION_STROKEWIDTH:1,EDGE_SELECTION_STROKEWIDTH:1,VERTEX_SELECTION_DASHED:!0,EDGE_SELECTION_DASHED:!0,GUIDE_COLOR:"#FF0000",GUIDE_STROKEWIDTH:1,OUTLINE_COLOR:"#0099FF",OUTLINE_STROKEWIDTH:mxClient.IS_IE?2:3,HANDLE_SIZE:6,LABEL_HANDLE_SIZE:4,HANDLE_FILLCOLOR:"#00FF00",
-HANDLE_STROKECOLOR:"black",LABEL_HANDLE_FILLCOLOR:"yellow",CONNECT_HANDLE_FILLCOLOR:"#0000FF",LOCKED_HANDLE_FILLCOLOR:"#FF0000",OUTLINE_HANDLE_FILLCOLOR:"#00FFFF",OUTLINE_HANDLE_STROKECOLOR:"#0033FF",DEFAULT_FONTFAMILY:"Arial,Helvetica",DEFAULT_FONTSIZE:11,DEFAULT_TEXT_DIRECTION:"",LINE_HEIGHT:1.2,WORD_WRAP:"normal",ABSOLUTE_LINE_HEIGHT:!1,DEFAULT_FONTSTYLE:0,DEFAULT_STARTSIZE:40,DEFAULT_MARKERSIZE:6,DEFAULT_IMAGESIZE:24,ENTITY_SEGMENT:30,RECTANGLE_ROUNDING_FACTOR:.15,LINE_ARCSIZE:20,ARROW_SPACING:0,
-ARROW_WIDTH:30,ARROW_SIZE:30,PAGE_FORMAT_A4_PORTRAIT:new mxRectangle(0,0,827,1169),PAGE_FORMAT_A4_LANDSCAPE:new mxRectangle(0,0,1169,827),PAGE_FORMAT_LETTER_PORTRAIT:new mxRectangle(0,0,850,1100),PAGE_FORMAT_LETTER_LANDSCAPE:new mxRectangle(0,0,1100,850),NONE:"none",STYLE_PERIMETER:"perimeter",STYLE_SOURCE_PORT:"sourcePort",STYLE_TARGET_PORT:"targetPort",STYLE_PORT_CONSTRAINT:"portConstraint",STYLE_PORT_CONSTRAINT_ROTATION:"portConstraintRotation",STYLE_SOURCE_PORT_CONSTRAINT:"sourcePortConstraint",
-STYLE_TARGET_PORT_CONSTRAINT:"targetPortConstraint",STYLE_OPACITY:"opacity",STYLE_FILL_OPACITY:"fillOpacity",STYLE_FILL_STYLE:"fillStyle",STYLE_STROKE_OPACITY:"strokeOpacity",STYLE_TEXT_OPACITY:"textOpacity",STYLE_TEXT_DIRECTION:"textDirection",STYLE_OVERFLOW:"overflow",STYLE_BLOCK_SPACING:"blockSpacing",STYLE_ORTHOGONAL:"orthogonal",STYLE_EXIT_X:"exitX",STYLE_EXIT_Y:"exitY",STYLE_EXIT_DX:"exitDx",STYLE_EXIT_DY:"exitDy",STYLE_EXIT_PERIMETER:"exitPerimeter",STYLE_ENTRY_X:"entryX",STYLE_ENTRY_Y:"entryY",
-STYLE_ENTRY_DX:"entryDx",STYLE_ENTRY_DY:"entryDy",STYLE_ENTRY_PERIMETER:"entryPerimeter",STYLE_WHITE_SPACE:"whiteSpace",STYLE_ROTATION:"rotation",STYLE_FILLCOLOR:"fillColor",STYLE_POINTER_EVENTS:"pointerEvents",STYLE_SWIMLANE_FILLCOLOR:"swimlaneFillColor",STYLE_MARGIN:"margin",STYLE_GRADIENTCOLOR:"gradientColor",STYLE_GRADIENT_DIRECTION:"gradientDirection",STYLE_STROKECOLOR:"strokeColor",STYLE_SEPARATORCOLOR:"separatorColor",STYLE_STROKEWIDTH:"strokeWidth",STYLE_ALIGN:"align",STYLE_VERTICAL_ALIGN:"verticalAlign",
-STYLE_LABEL_WIDTH:"labelWidth",STYLE_LABEL_POSITION:"labelPosition",STYLE_VERTICAL_LABEL_POSITION:"verticalLabelPosition",STYLE_IMAGE_ASPECT:"imageAspect",STYLE_IMAGE_ALIGN:"imageAlign",STYLE_IMAGE_VERTICAL_ALIGN:"imageVerticalAlign",STYLE_GLASS:"glass",STYLE_IMAGE:"image",STYLE_IMAGE_WIDTH:"imageWidth",STYLE_IMAGE_HEIGHT:"imageHeight",STYLE_IMAGE_BACKGROUND:"imageBackground",STYLE_IMAGE_BORDER:"imageBorder",STYLE_FLIPH:"flipH",STYLE_FLIPV:"flipV",STYLE_NOLABEL:"noLabel",STYLE_NOEDGESTYLE:"noEdgeStyle",
-STYLE_LABEL_BACKGROUNDCOLOR:"labelBackgroundColor",STYLE_LABEL_BORDERCOLOR:"labelBorderColor",STYLE_LABEL_PADDING:"labelPadding",STYLE_INDICATOR_SHAPE:"indicatorShape",STYLE_INDICATOR_IMAGE:"indicatorImage",STYLE_INDICATOR_COLOR:"indicatorColor",STYLE_INDICATOR_STROKECOLOR:"indicatorStrokeColor",STYLE_INDICATOR_GRADIENTCOLOR:"indicatorGradientColor",STYLE_INDICATOR_SPACING:"indicatorSpacing",STYLE_INDICATOR_WIDTH:"indicatorWidth",STYLE_INDICATOR_HEIGHT:"indicatorHeight",STYLE_INDICATOR_DIRECTION:"indicatorDirection",
-STYLE_SHADOW:"shadow",STYLE_TEXT_SHADOW:"textShadow",STYLE_SHADOW_OFFSET_X:"shadowOffsetX",STYLE_SHADOW_OFFSET_Y:"shadowOffsetY",STYLE_SHADOW_BLUR:"shadowBlur",STYLE_SHADOWCOLOR:"shadowColor",STYLE_SHADOW_OPACITY:"shadowOpacity",STYLE_SEGMENT:"segment",STYLE_ENDARROW:"endArrow",STYLE_STARTARROW:"startArrow",STYLE_ENDSIZE:"endSize",STYLE_STARTSIZE:"startSize",STYLE_SWIMLANE_LINE:"swimlaneLine",STYLE_SWIMLANE_HEAD:"swimlaneHead",STYLE_SWIMLANE_BODY:"swimlaneBody",STYLE_ENDFILL:"endFill",STYLE_ENDFILLCOLOR:"endFillColor",
-STYLE_STARTFILL:"startFill",STYLE_STARTFILLCOLOR:"startFillColor",STYLE_DASHED:"dashed",STYLE_DASH_PATTERN:"dashPattern",STYLE_FIX_DASH:"fixDash",STYLE_ROUNDED:"rounded",STYLE_CURVED:"curved",STYLE_ARCSIZE:"arcSize",STYLE_ABSOLUTE_ARCSIZE:"absoluteArcSize",STYLE_SOURCE_PERIMETER_SPACING:"sourcePerimeterSpacing",STYLE_TARGET_PERIMETER_SPACING:"targetPerimeterSpacing",STYLE_PERIMETER_SPACING:"perimeterSpacing",STYLE_SPACING:"spacing",STYLE_SPACING_TOP:"spacingTop",STYLE_SPACING_LEFT:"spacingLeft",STYLE_SPACING_BOTTOM:"spacingBottom",
-STYLE_SPACING_RIGHT:"spacingRight",STYLE_HORIZONTAL:"horizontal",STYLE_DIRECTION:"direction",STYLE_ANCHOR_POINT_DIRECTION:"anchorPointDirection",STYLE_ELBOW:"elbow",STYLE_FONTCOLOR:"fontColor",STYLE_FONTFAMILY:"fontFamily",STYLE_FONTSIZE:"fontSize",STYLE_FONTSTYLE:"fontStyle",STYLE_ASPECT:"aspect",STYLE_AUTOSIZE:"autosize",STYLE_AUTOSIZE_GRID:"autosizeGrid",STYLE_FIXED_WIDTH:"fixedWidth",STYLE_FOLDABLE:"foldable",STYLE_EDITABLE:"editable",STYLE_BACKGROUND_OUTLINE:"backgroundOutline",STYLE_BENDABLE:"bendable",
-STYLE_MOVABLE:"movable",STYLE_RESIZABLE:"resizable",STYLE_RESIZE_WIDTH:"resizeWidth",STYLE_RESIZE_HEIGHT:"resizeHeight",STYLE_ROTATABLE:"rotatable",STYLE_CLONEABLE:"cloneable",STYLE_DELETABLE:"deletable",STYLE_SHAPE:"shape",STYLE_EDGE:"edgeStyle",STYLE_JETTY_SIZE:"jettySize",STYLE_SOURCE_JETTY_SIZE:"sourceJettySize",STYLE_TARGET_JETTY_SIZE:"targetJettySize",STYLE_LOOP:"loopStyle",STYLE_ORTHOGONAL_LOOP:"orthogonalLoop",STYLE_ROUTING_CENTER_X:"routingCenterX",STYLE_ROUTING_CENTER_Y:"routingCenterY",
-STYLE_CLIP_PATH:"clipPath",FONT_BOLD:1,FONT_ITALIC:2,FONT_UNDERLINE:4,FONT_STRIKETHROUGH:8,SHAPE_RECTANGLE:"rectangle",SHAPE_ELLIPSE:"ellipse",SHAPE_DOUBLE_ELLIPSE:"doubleEllipse",SHAPE_RHOMBUS:"rhombus",SHAPE_LINE:"line",SHAPE_IMAGE:"image",SHAPE_ARROW:"arrow",SHAPE_ARROW_CONNECTOR:"arrowConnector",SHAPE_LABEL:"label",SHAPE_CYLINDER:"cylinder",SHAPE_SWIMLANE:"swimlane",SHAPE_CONNECTOR:"connector",SHAPE_ACTOR:"actor",SHAPE_CLOUD:"cloud",SHAPE_TRIANGLE:"triangle",SHAPE_HEXAGON:"hexagon",ARROW_CLASSIC:"classic",
-ARROW_CLASSIC_THIN:"classicThin",ARROW_BLOCK:"block",ARROW_BLOCK_THIN:"blockThin",ARROW_OPEN:"open",ARROW_OPEN_THIN:"openThin",ARROW_OVAL:"oval",ARROW_DIAMOND:"diamond",ARROW_DIAMOND_THIN:"diamondThin",ALIGN_LEFT:"left",ALIGN_CENTER:"center",ALIGN_RIGHT:"right",ALIGN_TOP:"top",ALIGN_MIDDLE:"middle",ALIGN_BOTTOM:"bottom",DIRECTION_NORTH:"north",DIRECTION_SOUTH:"south",DIRECTION_EAST:"east",DIRECTION_WEST:"west",DIRECTION_RADIAL:"radial",TEXT_DIRECTION_DEFAULT:"",TEXT_DIRECTION_AUTO:"auto",TEXT_DIRECTION_LTR:"ltr",
-TEXT_DIRECTION_RTL:"rtl",TEXT_DIRECTION_VERTICAL_LR:"vertical-lr",TEXT_DIRECTION_VERTICAL_RL:"vertical-rl",DIRECTION_MASK_NONE:0,DIRECTION_MASK_WEST:1,DIRECTION_MASK_NORTH:2,DIRECTION_MASK_SOUTH:4,DIRECTION_MASK_EAST:8,DIRECTION_MASK_ALL:15,ELBOW_VERTICAL:"vertical",ELBOW_HORIZONTAL:"horizontal",EDGESTYLE_ELBOW:"elbowEdgeStyle",EDGESTYLE_ENTITY_RELATION:"entityRelationEdgeStyle",EDGESTYLE_LOOP:"loopEdgeStyle",EDGESTYLE_SIDETOSIDE:"sideToSideEdgeStyle",EDGESTYLE_TOPTOBOTTOM:"topToBottomEdgeStyle",
-EDGESTYLE_ORTHOGONAL:"orthogonalEdgeStyle",EDGESTYLE_SEGMENT:"segmentEdgeStyle",PERIMETER_ELLIPSE:"ellipsePerimeter",PERIMETER_RECTANGLE:"rectanglePerimeter",PERIMETER_RHOMBUS:"rhombusPerimeter",PERIMETER_HEXAGON:"hexagonPerimeter",PERIMETER_TRIANGLE:"trianglePerimeter"};function mxEventObject(a){this.name=a;this.properties=[];for(var b=1;be?";":a.substring(e)):0>e||e==a.length-1?"":a.substring(e+1)}else{var f=
+a.indexOf(";"+b+"=");0>f?d&&(d=";"==a.charAt(a.length-1)?"":";",a=a+d+b+"="+c+";"):(e=a.indexOf(";",f+1),a=d?a.substring(0,f+1)+b+"="+c+(0>e?";":a.substring(e)):a.substring(0,f)+(0>e?";":a.substring(e)))}return a},setCellStyleFlags:function(a,b,c,d,e){if(null!=b&&0e)e=";"==a.charAt(a.length-1)?"":";",a=d||null==d?a+e+b+"="+c:a+e+b+"=0";else{var f=a.indexOf(";",e),g=0>f?a.substring(e+b.length+1):a.substring(e+b.length+1,f);g=null==d?parseInt(g)^c:d?parseInt(g)|c:parseInt(g)&~c;a=a.substring(0,e)+b+"="+g+(0<=f?a.substring(f):"")}}return a},getAlignmentAsPoint:function(a,b){var c=-.5,d=-.5;a==mxConstants.ALIGN_LEFT?c=0:a==mxConstants.ALIGN_RIGHT&&(c=-1);b==mxConstants.ALIGN_TOP?d=0:b==mxConstants.ALIGN_BOTTOM&&(d=
+-1);return new mxPoint(c,d)},getSizeForString:function(a,b,c,d,e){b=null!=b?b:mxConstants.DEFAULT_FONTSIZE;c=null!=c?c:mxConstants.DEFAULT_FONTFAMILY;var f=document.createElement("div");f.style.fontFamily=c;f.style.fontSize=Math.round(b)+"px";f.style.lineHeight=mxConstants.ABSOLUTE_LINE_HEIGHT?b*mxConstants.LINE_HEIGHT+"px":mxConstants.LINE_HEIGHT*mxSvgCanvas2D.prototype.lineHeightCorrection;null!=e&&((e&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD&&(f.style.fontWeight="bold"),(e&mxConstants.FONT_ITALIC)==
+mxConstants.FONT_ITALIC&&(f.style.fontStyle="italic"),b=[],(e&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE&&b.push("underline"),(e&mxConstants.FONT_STRIKETHROUGH)==mxConstants.FONT_STRIKETHROUGH&&b.push("line-through"),0a)return 1;c=null!=
+c?c:mxConstants.PAGE_FORMAT_A4_PORTRAIT;d=null!=d?d:0;var e=c.width-2*d;c=c.height-2*d;d=mxRectangle.fromRectangle(b.getGraphBounds());b=b.getView().getScale();d.width/=b;d.height/=b;b=d.width;var f=Math.sqrt(a);d=Math.sqrt(b/d.height/(e/c));c=f*d;d=f/d;if(1>c&&d>a){var g=d/a;d=a;c/=g}1>d&&c>a&&(g=c/a,c=a,d/=g);g=Math.ceil(c)*Math.ceil(d);for(f=0;g>a;){g=Math.floor(c)/c;var k=Math.floor(d)/d;1==g&&(g=Math.floor(c-1)/c);1==k&&(k=Math.floor(d-1)/d);g=g>k?g:k;c*=g;d*=g;g=Math.ceil(c)*Math.ceil(d);f++;
+if(10";
+g=document.getElementsByTagName("base");for(c=0;c";for(c=0;c
')+a.container.innerHTML;b.writeln(d+"
");b.close()}else{b.writeln("");g=document.getElementsByTagName("base"); +for(c=0;c');b.close();c=b.createElement("div");c.position="absolute";c.overflow="hidden";c.style.width=e+"px";c.style.height=f+"px";e=b.createElement("div");e.style.position="absolute";e.style.left= +k+"px";e.style.top=l+"px";f=a.container.firstChild;for(d=null;null!=f;)g=f.cloneNode(!0),f==a.view.drawPane.ownerSVGElement?(c.appendChild(g),d=g):e.appendChild(g),f=f.nextSibling;b.body.appendChild(c);null!=e.firstChild&&b.body.appendChild(e);null!=d&&(d.style.minWidth="",d.style.minHeight="",d.firstChild.setAttribute("transform","translate("+k+","+l+")"))}mxUtils.removeCursors(b.body);return b},printScreen:function(a){var b=window.open();mxUtils.show(a,b.document);a=function(){b.focus();b.print(); +b.close()};mxClient.IS_GC?b.setTimeout(a,500):a()},popup:function(a,b){if(b){var c=document.createElement("div");c.style.overflow="scroll";c.style.width="636px";c.style.height="460px";b=document.createElement("pre");b.innerHTML=mxUtils.htmlEntities(a,!1).replace(/\n/g,"
").replace(/ /g," ");c.appendChild(b);c=new mxWindow("Popup Window",c,document.body.clientWidth/2-320,Math.max(document.body.clientHeight||0,document.documentElement.clientHeight)/2-240,640,480,!1,!0);c.setClosable(!0);c.setVisible(!0)}else mxClient.IS_NS? +(c=window.open(),c.document.writeln("
"+mxUtils.htmlEntities(a)+"").replace(/ /g," "),c.document.body.appendChild(b))},alert:function(a){alert(a)},prompt:function(a,b){return prompt(a,null!=b?b:"")},confirm:function(a){return confirm(a)},error:function(a,b,c,d){var e=document.createElement("div");e.style.padding="20px";var f=document.createElement("img");
+f.setAttribute("src",d||mxUtils.errorImage);f.setAttribute("valign","bottom");f.style.verticalAlign="middle";e.appendChild(f);e.appendChild(document.createTextNode(" "));e.appendChild(document.createTextNode(" "));e.appendChild(document.createTextNode(" "));mxUtils.write(e,a);a=document.body.clientWidth;d=document.body.clientHeight||document.documentElement.clientHeight;var g=new mxWindow(mxResources.get(mxUtils.errorResource)||mxUtils.errorResource,e,(a-b)/2,d/4,b,null,!1,!0);c&&(mxUtils.br(e),b=
+document.createElement("p"),c=document.createElement("button"),mxClient.IS_IE?c.style.cssText="float:right":c.setAttribute("style","float:right"),mxEvent.addListener(c,"click",function(k){g.destroy()}),mxUtils.write(c,mxResources.get(mxUtils.closeResource)||mxUtils.closeResource),b.appendChild(c),e.appendChild(b),mxUtils.br(e),g.setClosable(!0));g.setVisible(!0);return g},makeDraggable:function(a,b,c,d,e,f,g,k,l,m){a=new mxDragSource(a,c);a.dragOffset=new mxPoint(null!=e?e:0,null!=f?f:mxConstants.TOOLTIP_VERTICAL_OFFSET);
+a.autoscroll=g;a.setGuidesEnabled(!1);null!=l&&(a.highlightDropTargets=l);null!=m&&(a.getDropTarget=m);a.getGraphForEvent=function(n){return"function"==typeof b?b(n):b};null!=d&&(a.createDragElement=function(){return d.cloneNode(!0)},k&&(a.createPreviewElement=function(n){var p=d.cloneNode(!0),q=parseInt(p.style.width),r=parseInt(p.style.height);p.style.width=Math.round(q*n.view.scale)+"px";p.style.height=Math.round(r*n.view.scale)+"px";return p}));return a},format:function(a){return parseFloat(parseFloat(a).toFixed(2))}},
+mxConstants={DEFAULT_HOTSPOT:.3,MIN_HOTSPOT_SIZE:8,MAX_HOTSPOT_SIZE:0,RENDERING_HINT_EXACT:"exact",RENDERING_HINT_FASTER:"faster",RENDERING_HINT_FASTEST:"fastest",DIALECT_SVG:"svg",DIALECT_MIXEDHTML:"mixedHtml",DIALECT_PREFERHTML:"preferHtml",DIALECT_STRICTHTML:"strictHtml",NS_SVG:"http://www.w3.org/2000/svg",NS_XHTML:"http://www.w3.org/1999/xhtml",NS_XLINK:"http://www.w3.org/1999/xlink",SHADOWCOLOR:"#808080",VML_SHADOWCOLOR:"#808080",SHADOW_OFFSET_X:2,SHADOW_OFFSET_Y:3,SHADOW_BLUR:2,SHADOW_OPACITY:1,
+NODETYPE_ELEMENT:1,NODETYPE_ATTRIBUTE:2,NODETYPE_TEXT:3,NODETYPE_CDATA:4,NODETYPE_ENTITY_REFERENCE:5,NODETYPE_ENTITY:6,NODETYPE_PROCESSING_INSTRUCTION:7,NODETYPE_COMMENT:8,NODETYPE_DOCUMENT:9,NODETYPE_DOCUMENTTYPE:10,NODETYPE_DOCUMENT_FRAGMENT:11,NODETYPE_NOTATION:12,TOOLTIP_VERTICAL_OFFSET:16,DEFAULT_VALID_COLOR:"#00FF00",DEFAULT_INVALID_COLOR:"#FF0000",OUTLINE_HIGHLIGHT_COLOR:"#00FF00",OUTLINE_HIGHLIGHT_STROKEWIDTH:5,HIGHLIGHT_STROKEWIDTH:3,HIGHLIGHT_SIZE:2,HIGHLIGHT_OPACITY:100,CURSOR_MOVABLE_VERTEX:"move",
+CURSOR_MOVABLE_EDGE:"move",CURSOR_LABEL_HANDLE:"default",CURSOR_TERMINAL_HANDLE:"pointer",CURSOR_BEND_HANDLE:"crosshair",CURSOR_VIRTUAL_BEND_HANDLE:"crosshair",CURSOR_CONNECT:"pointer",HIGHLIGHT_COLOR:"#00FF00",CONNECT_TARGET_COLOR:"#0000FF",INVALID_CONNECT_TARGET_COLOR:"#FF0000",DROP_TARGET_COLOR:"#0000FF",VALID_COLOR:"#00FF00",INVALID_COLOR:"#FF0000",EDGE_SELECTION_COLOR:"#00FF00",VERTEX_SELECTION_COLOR:"#00FF00",VERTEX_SELECTION_STROKEWIDTH:1,EDGE_SELECTION_STROKEWIDTH:1,VERTEX_SELECTION_DASHED:!0,
+EDGE_SELECTION_DASHED:!0,GUIDE_COLOR:"#FF0000",GUIDE_STROKEWIDTH:1,OUTLINE_COLOR:"#0099FF",OUTLINE_STROKEWIDTH:mxClient.IS_IE?2:3,HANDLE_SIZE:6,LABEL_HANDLE_SIZE:4,HANDLE_FILLCOLOR:"#00FF00",HANDLE_STROKECOLOR:"black",LABEL_HANDLE_FILLCOLOR:"yellow",CONNECT_HANDLE_FILLCOLOR:"#0000FF",LOCKED_HANDLE_FILLCOLOR:"#FF0000",OUTLINE_HANDLE_FILLCOLOR:"#00FFFF",OUTLINE_HANDLE_STROKECOLOR:"#0033FF",DEFAULT_FONTFAMILY:"Arial,Helvetica",DEFAULT_FONTSIZE:11,DEFAULT_TEXT_DIRECTION:"",LINE_HEIGHT:1.2,WORD_WRAP:"normal",
+ABSOLUTE_LINE_HEIGHT:!1,DEFAULT_FONTSTYLE:0,DEFAULT_STARTSIZE:40,DEFAULT_MARKERSIZE:6,DEFAULT_IMAGESIZE:24,ENTITY_SEGMENT:30,RECTANGLE_ROUNDING_FACTOR:.15,LINE_ARCSIZE:20,ARROW_SPACING:0,ARROW_WIDTH:30,ARROW_SIZE:30,PAGE_FORMAT_A4_PORTRAIT:new mxRectangle(0,0,827,1169),PAGE_FORMAT_A4_LANDSCAPE:new mxRectangle(0,0,1169,827),PAGE_FORMAT_LETTER_PORTRAIT:new mxRectangle(0,0,850,1100),PAGE_FORMAT_LETTER_LANDSCAPE:new mxRectangle(0,0,1100,850),NONE:"none",STYLE_PERIMETER:"perimeter",STYLE_SOURCE_PORT:"sourcePort",
+STYLE_TARGET_PORT:"targetPort",STYLE_PORT_CONSTRAINT:"portConstraint",STYLE_PORT_CONSTRAINT_ROTATION:"portConstraintRotation",STYLE_SOURCE_PORT_CONSTRAINT:"sourcePortConstraint",STYLE_TARGET_PORT_CONSTRAINT:"targetPortConstraint",STYLE_OPACITY:"opacity",STYLE_FILL_OPACITY:"fillOpacity",STYLE_FILL_STYLE:"fillStyle",STYLE_STROKE_OPACITY:"strokeOpacity",STYLE_TEXT_OPACITY:"textOpacity",STYLE_TEXT_DIRECTION:"textDirection",STYLE_OVERFLOW:"overflow",STYLE_BLOCK_SPACING:"blockSpacing",STYLE_ORTHOGONAL:"orthogonal",
+STYLE_EXIT_X:"exitX",STYLE_EXIT_Y:"exitY",STYLE_EXIT_DX:"exitDx",STYLE_EXIT_DY:"exitDy",STYLE_EXIT_PERIMETER:"exitPerimeter",STYLE_ENTRY_X:"entryX",STYLE_ENTRY_Y:"entryY",STYLE_ENTRY_DX:"entryDx",STYLE_ENTRY_DY:"entryDy",STYLE_ENTRY_PERIMETER:"entryPerimeter",STYLE_WHITE_SPACE:"whiteSpace",STYLE_ROTATION:"rotation",STYLE_FILLCOLOR:"fillColor",STYLE_POINTER_EVENTS:"pointerEvents",STYLE_SWIMLANE_FILLCOLOR:"swimlaneFillColor",STYLE_MARGIN:"margin",STYLE_GRADIENTCOLOR:"gradientColor",STYLE_GRADIENT_DIRECTION:"gradientDirection",
+STYLE_STROKECOLOR:"strokeColor",STYLE_SEPARATORCOLOR:"separatorColor",STYLE_STROKEWIDTH:"strokeWidth",STYLE_ALIGN:"align",STYLE_VERTICAL_ALIGN:"verticalAlign",STYLE_LABEL_WIDTH:"labelWidth",STYLE_LABEL_POSITION:"labelPosition",STYLE_VERTICAL_LABEL_POSITION:"verticalLabelPosition",STYLE_IMAGE_ASPECT:"imageAspect",STYLE_IMAGE_ALIGN:"imageAlign",STYLE_IMAGE_VERTICAL_ALIGN:"imageVerticalAlign",STYLE_GLASS:"glass",STYLE_IMAGE:"image",STYLE_IMAGE_WIDTH:"imageWidth",STYLE_IMAGE_HEIGHT:"imageHeight",STYLE_IMAGE_BACKGROUND:"imageBackground",
+STYLE_IMAGE_BORDER:"imageBorder",STYLE_FLIPH:"flipH",STYLE_FLIPV:"flipV",STYLE_NOLABEL:"noLabel",STYLE_NOEDGESTYLE:"noEdgeStyle",STYLE_LABEL_BACKGROUNDCOLOR:"labelBackgroundColor",STYLE_LABEL_BORDERCOLOR:"labelBorderColor",STYLE_LABEL_PADDING:"labelPadding",STYLE_INDICATOR_SHAPE:"indicatorShape",STYLE_INDICATOR_IMAGE:"indicatorImage",STYLE_INDICATOR_COLOR:"indicatorColor",STYLE_INDICATOR_STROKECOLOR:"indicatorStrokeColor",STYLE_INDICATOR_GRADIENTCOLOR:"indicatorGradientColor",STYLE_INDICATOR_SPACING:"indicatorSpacing",
+STYLE_INDICATOR_WIDTH:"indicatorWidth",STYLE_INDICATOR_HEIGHT:"indicatorHeight",STYLE_INDICATOR_DIRECTION:"indicatorDirection",STYLE_SHADOW:"shadow",STYLE_TEXT_SHADOW:"textShadow",STYLE_SHADOW_OFFSET_X:"shadowOffsetX",STYLE_SHADOW_OFFSET_Y:"shadowOffsetY",STYLE_SHADOW_BLUR:"shadowBlur",STYLE_SHADOWCOLOR:"shadowColor",STYLE_SHADOW_OPACITY:"shadowOpacity",STYLE_SEGMENT:"segment",STYLE_ENDARROW:"endArrow",STYLE_STARTARROW:"startArrow",STYLE_ENDSIZE:"endSize",STYLE_STARTSIZE:"startSize",STYLE_SWIMLANE_LINE:"swimlaneLine",
+STYLE_SWIMLANE_HEAD:"swimlaneHead",STYLE_SWIMLANE_BODY:"swimlaneBody",STYLE_ENDFILL:"endFill",STYLE_ENDFILLCOLOR:"endFillColor",STYLE_STARTFILL:"startFill",STYLE_STARTFILLCOLOR:"startFillColor",STYLE_DASHED:"dashed",STYLE_DASH_PATTERN:"dashPattern",STYLE_FIX_DASH:"fixDash",STYLE_ROUNDED:"rounded",STYLE_CURVED:"curved",STYLE_ARCSIZE:"arcSize",STYLE_ABSOLUTE_ARCSIZE:"absoluteArcSize",STYLE_SOURCE_PERIMETER_SPACING:"sourcePerimeterSpacing",STYLE_TARGET_PERIMETER_SPACING:"targetPerimeterSpacing",STYLE_PERIMETER_SPACING:"perimeterSpacing",
+STYLE_SPACING:"spacing",STYLE_SPACING_TOP:"spacingTop",STYLE_SPACING_LEFT:"spacingLeft",STYLE_SPACING_BOTTOM:"spacingBottom",STYLE_SPACING_RIGHT:"spacingRight",STYLE_HORIZONTAL:"horizontal",STYLE_DIRECTION:"direction",STYLE_ANCHOR_POINT_DIRECTION:"anchorPointDirection",STYLE_ELBOW:"elbow",STYLE_FONTCOLOR:"fontColor",STYLE_FONTFAMILY:"fontFamily",STYLE_FONTSIZE:"fontSize",STYLE_FONTSTYLE:"fontStyle",STYLE_ASPECT:"aspect",STYLE_AUTOSIZE:"autosize",STYLE_AUTOSIZE_GRID:"autosizeGrid",STYLE_FIXED_WIDTH:"fixedWidth",
+STYLE_FOLDABLE:"foldable",STYLE_EDITABLE:"editable",STYLE_BACKGROUND_OUTLINE:"backgroundOutline",STYLE_BENDABLE:"bendable",STYLE_MOVABLE:"movable",STYLE_RESIZABLE:"resizable",STYLE_RESIZE_WIDTH:"resizeWidth",STYLE_RESIZE_HEIGHT:"resizeHeight",STYLE_ROTATABLE:"rotatable",STYLE_CLONEABLE:"cloneable",STYLE_DELETABLE:"deletable",STYLE_SHAPE:"shape",STYLE_EDGE:"edgeStyle",STYLE_JETTY_SIZE:"jettySize",STYLE_SOURCE_JETTY_SIZE:"sourceJettySize",STYLE_TARGET_JETTY_SIZE:"targetJettySize",STYLE_LOOP:"loopStyle",
+STYLE_ORTHOGONAL_LOOP:"orthogonalLoop",STYLE_ROUTING_CENTER_X:"routingCenterX",STYLE_ROUTING_CENTER_Y:"routingCenterY",STYLE_CLIP_PATH:"clipPath",FONT_BOLD:1,FONT_ITALIC:2,FONT_UNDERLINE:4,FONT_STRIKETHROUGH:8,SHAPE_RECTANGLE:"rectangle",SHAPE_ELLIPSE:"ellipse",SHAPE_DOUBLE_ELLIPSE:"doubleEllipse",SHAPE_RHOMBUS:"rhombus",SHAPE_LINE:"line",SHAPE_IMAGE:"image",SHAPE_ARROW:"arrow",SHAPE_ARROW_CONNECTOR:"arrowConnector",SHAPE_LABEL:"label",SHAPE_CYLINDER:"cylinder",SHAPE_SWIMLANE:"swimlane",SHAPE_CONNECTOR:"connector",
+SHAPE_ACTOR:"actor",SHAPE_CLOUD:"cloud",SHAPE_TRIANGLE:"triangle",SHAPE_HEXAGON:"hexagon",ARROW_CLASSIC:"classic",ARROW_CLASSIC_THIN:"classicThin",ARROW_BLOCK:"block",ARROW_BLOCK_THIN:"blockThin",ARROW_OPEN:"open",ARROW_OPEN_THIN:"openThin",ARROW_OVAL:"oval",ARROW_DIAMOND:"diamond",ARROW_DIAMOND_THIN:"diamondThin",ALIGN_LEFT:"left",ALIGN_CENTER:"center",ALIGN_RIGHT:"right",ALIGN_TOP:"top",ALIGN_MIDDLE:"middle",ALIGN_BOTTOM:"bottom",DIRECTION_NORTH:"north",DIRECTION_SOUTH:"south",DIRECTION_EAST:"east",
+DIRECTION_WEST:"west",DIRECTION_RADIAL:"radial",TEXT_DIRECTION_DEFAULT:"",TEXT_DIRECTION_AUTO:"auto",TEXT_DIRECTION_LTR:"ltr",TEXT_DIRECTION_RTL:"rtl",TEXT_DIRECTION_VERTICAL_LR:"vertical-lr",TEXT_DIRECTION_VERTICAL_RL:"vertical-rl",DIRECTION_MASK_NONE:0,DIRECTION_MASK_WEST:1,DIRECTION_MASK_NORTH:2,DIRECTION_MASK_SOUTH:4,DIRECTION_MASK_EAST:8,DIRECTION_MASK_ALL:15,ELBOW_VERTICAL:"vertical",ELBOW_HORIZONTAL:"horizontal",EDGESTYLE_ELBOW:"elbowEdgeStyle",EDGESTYLE_ENTITY_RELATION:"entityRelationEdgeStyle",
+EDGESTYLE_LOOP:"loopEdgeStyle",EDGESTYLE_SIDETOSIDE:"sideToSideEdgeStyle",EDGESTYLE_TOPTOBOTTOM:"topToBottomEdgeStyle",EDGESTYLE_ORTHOGONAL:"orthogonalEdgeStyle",EDGESTYLE_SEGMENT:"segmentEdgeStyle",PERIMETER_ELLIPSE:"ellipsePerimeter",PERIMETER_RECTANGLE:"rectanglePerimeter",PERIMETER_RHOMBUS:"rhombusPerimeter",PERIMETER_HEXAGON:"hexagonPerimeter",PERIMETER_TRIANGLE:"trianglePerimeter"};
+function mxEventObject(a){this.name=a;this.properties=[];for(var b=1;b");p.writeln("");p.writeln("");this.writeHead(p,a);p.writeln("");p.writeln("")}var r=mxRectangle.fromRectangle(null!=g?this.graph.getBoundingBox(g):this.graph.getGraphBounds()),t=this.graph.getView().getScale(),u=t/this.scale,x=this.graph.getView().getTranslate();this.autoOrigin||(this.x0-=x.x*this.scale,
-this.y0-=x.y*this.scale,r.width+=r.x,r.height+=r.y,r.x=0,this.border=r.y=0);var y=m-2*this.border,A=n-2*this.border;n+=this.marginTop+this.marginBottom;r.width/=u;r.height/=u;var z=Math.max(1,Math.ceil((r.width+this.x0)/y)),C=Math.max(1,Math.ceil((r.height+this.y0)/A));this.pageCount=z*C;var B=null;l&&(null==this.pendingCss&&(this.pageFormatClass={},this.pendingCss=""),B=mxUtils.htmlEntities("gePageFormat-"+String(f.width).replace(/./g,"_")+"-"+String(f.height).replace(/./g,"_")),null==this.pageFormatClass[B]&&
+this.y0-=x.y*this.scale,r.width+=r.x,r.height+=r.y,r.x=0,this.border=r.y=0);var y=m-2*this.border,A=n-2*this.border;n+=this.marginTop+this.marginBottom;r.width/=u;r.height/=u;var z=Math.max(1,Math.ceil((r.width+this.x0)/y)),C=Math.max(1,Math.ceil((r.height+this.y0)/A));this.pageCount=z*C;var B=null;l&&(null==this.pendingCss&&(this.pageFormatClass={},this.pendingCss=""),B=mxUtils.htmlEntities("gePageFormat-"+String(f.width).replace(/\./g,"_")+"-"+String(f.height).replace(/\./g,"_")),null==this.pageFormatClass[B]&&
 (this.pageFormatClass[B]=!0,this.pendingCss+=this.getPageClassCss(B,f)));var v=mxUtils.bind(this,function(G){null!=this.borderColor&&(G.style.borderColor=this.borderColor,G.style.borderStyle="solid",G.style.borderWidth="1px");G.style.background=this.backgroundColor;null!=B?G.classList.add(B):(G.style.width=f.width+"px",G.style.height=f.height+"px");p.body.appendChild(G)}),D=this.getCoverPages(m,n);if(null!=D)for(var E=0;E"==this.textarea.innerHTML?(this.textarea.innerHTML=this.getEmptyLabelText(),this.clearOnChange=
 !0):this.clearOnChange=this.textarea.innerHTML==this.getEmptyLabelText(),this.textShape=d.text,this.editingCell=a,this.trigger=b,null==this.textShape&&(this.textShape=this.graph.cellRenderer.createTextShape(d,"",this.graph.dialect)),a=mxUtils.bind(this,function(){if(null!=this.editingCell)if(null!=this.textShape&&null!=this.textShape.node&&this.isHideLabel(d)&&(this.textNode=this.textShape.node,this.textNode.style.visibility="hidden"),this.resize(),this.graph.container.appendChild(this.textarea),
 mxClient.IS_IOS&&(this.graph.container.scrollTop=Math.max(this.graph.container.scrollTop,d.y+d.height-this.graph.container.clientHeight/3)),this.textarea.scrollIntoView({block:"nearest",inline:"nearest"}),this.textarea.focus(),null!=c){this.textarea.innerHTML=c;var e=document.createRange();e.selectNodeContents(this.textarea);e.collapse(!1);var f=window.getSelection();f.removeAllRanges();f.addRange(e)}else this.isSelectText()&&0b.length)||mxUtils.getValue(a.style,mxConstants.STYLE_ORTHOGONAL_LOOP,!1)&&(null!=e&&null!=e.point||null!=f&&null!=f.point)?!1:null!=c&&c==d};
 mxGraphView.prototype.getEdgeStyle=function(a,b,c,d){a=this.isLoopStyleEnabled(a,b,c,d)?mxUtils.getValue(a.style,mxConstants.STYLE_LOOP,this.graph.defaultLoopStyle):mxUtils.getValue(a.style,mxConstants.STYLE_NOEDGESTYLE,!1)?null:a.style[mxConstants.STYLE_EDGE];"string"==typeof a&&(b=mxStyleRegistry.getValue(a),null==b&&this.isAllowEval()&&(b=mxUtils.eval(a)),a=b);return"function"==typeof a?a:null};
-mxGraphView.prototype.updateFloatingTerminalPoints=function(a,b,c){var d=a.absolutePoints,e=d[0];null==d[d.length-1]&&null!=c&&this.updateFloatingTerminalPoint(a,c,b,!1);null==e&&null!=b&&this.updateFloatingTerminalPoint(a,b,c,!0)};mxGraphView.prototype.updateFloatingTerminalPoint=function(a,b,c,d){a.setAbsoluteTerminalPoint(this.getFloatingTerminalPoint(a,b,c,d),d)};
+mxGraphView.prototype.updateFloatingTerminalPoints=function(a,b,c){var d=a.absolutePoints;if(null!=d){var e=d[0];null==d[d.length-1]&&null!=c&&this.updateFloatingTerminalPoint(a,c,b,!1);null==e&&null!=b&&this.updateFloatingTerminalPoint(a,b,c,!0)}};mxGraphView.prototype.updateFloatingTerminalPoint=function(a,b,c,d){a.setAbsoluteTerminalPoint(this.getFloatingTerminalPoint(a,b,c,d),d)};
 mxGraphView.prototype.getFloatingTerminalPoint=function(a,b,c,d){b=this.getTerminalPort(a,b,d);var e=this.getNextPoint(a,c,d),f=this.graph.isOrthogonal(a);c=mxUtils.toRadians(Number(b.style[mxConstants.STYLE_ROTATION]||"0"));var g=new mxPoint(b.getCenterX(),b.getCenterY());if(0!=c){var k=Math.cos(-c),l=Math.sin(-c);e=mxUtils.getRotatedPoint(e,k,l,g)}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);a=this.getPerimeterPoint(b,e,0==c&&f,k);0!=c&&(k=Math.cos(c),l=Math.sin(c),a=mxUtils.getRotatedPoint(a,k,l,g));return a};mxGraphView.prototype.getTerminalPort=function(a,b,c){a=mxUtils.getValue(a.style,c?mxConstants.STYLE_SOURCE_PORT:mxConstants.STYLE_TARGET_PORT);null!=a&&(a=this.getState(this.graph.getModel().getCell(a)),null!=a&&(b=a));return b};
 mxGraphView.prototype.getPerimeterPoint=function(a,b,c,d){var e=null;if(null!=a){var f=this.getPerimeterFunction(a);if(null!=f&&null!=b&&(d=this.getPerimeterBounds(a,d),0"));b.innerHTML=Graph.sanitizeHtml(e);w.appendChild(b);e=document.createElement("div");e.style.marginTop="12px";e.style.textAlign="center";null!=d&&(b=mxUtils.button(mxResources.get("tryAgain"),function(){a.hideDialog();d()}),b.className="geBtn",e.appendChild(b),e.style.textAlign="center");null!=k&&(k=mxUtils.button(k,function(){null!=u&&u()}),k.className="geBtn",e.appendChild(k));
-var C=mxUtils.button(f,function(){q&&a.hideDialog();null!=g&&g()});C.className="geBtn";e.appendChild(C);null!=h&&(f=mxUtils.button(h,function(){q&&a.hideDialog();null!=m&&m()}),f.className="geBtn gePrimaryBtn",e.appendChild(f));this.init=function(){C.focus()};w.appendChild(e);this.container=w},PrintDialog=function(a,b,e,f){this.create(a,b,e,f)};
-PrintDialog.prototype.create=function(a){function b(C){var D=h.checked||k.checked,E=parseInt(w.value)/100;isNaN(E)&&(E=1,w.value="100%");mxClient.IS_SF&&(E*=.75);var G=e.pageFormat||mxConstants.PAGE_FORMAT_A4_PORTRAIT,I=1/e.pageScale;if(D){var J=h.checked?1:parseInt(u.value);isNaN(J)||(I=mxUtils.getScaleForPageCount(J,e,G))}var T=J=0;G=mxRectangle.fromRectangle(G);G.width=Math.ceil(G.width*E);G.height=Math.ceil(G.height*E);I*=E;!D&&e.pageVisible?(E=e.getPageLayout(),J-=E.x*G.width,T-=E.y*G.height):
-D=!0;D=PrintDialog.createPrintPreview(e,I,G,0,J,T,D);D.open();C&&PrintDialog.printPreview(D)}var e=a.editor.graph,f=document.createElement("table");f.style.width="100%";f.style.height="100%";var g=document.createElement("tbody");var d=document.createElement("tr");var h=document.createElement("input");h.setAttribute("type","checkbox");var m=document.createElement("td");m.setAttribute("colspan","2");m.style.fontSize="10pt";m.appendChild(h);var q=document.createElement("span");mxUtils.write(q," "+mxResources.get("fitPage"));
-m.appendChild(q);mxEvent.addListener(q,"click",function(C){h.checked=!h.checked;k.checked=!h.checked;mxEvent.consume(C)});mxEvent.addListener(h,"change",function(){k.checked=!h.checked});d.appendChild(m);g.appendChild(d);d=d.cloneNode(!1);var k=document.createElement("input");k.setAttribute("type","checkbox");m=document.createElement("td");m.style.fontSize="10pt";m.appendChild(k);q=document.createElement("span");mxUtils.write(q," "+mxResources.get("posterPrint")+":");m.appendChild(q);mxEvent.addListener(q,
-"click",function(C){k.checked=!k.checked;h.checked=!k.checked;mxEvent.consume(C)});d.appendChild(m);var u=document.createElement("input");u.setAttribute("value","1");u.setAttribute("type","number");u.setAttribute("min","1");u.setAttribute("size","4");u.setAttribute("disabled","disabled");u.style.width="50px";m=document.createElement("td");m.style.fontSize="10pt";m.appendChild(u);mxUtils.write(m," "+mxResources.get("pages")+" (max)");d.appendChild(m);g.appendChild(d);mxEvent.addListener(k,"change",
-function(){k.checked?u.removeAttribute("disabled"):u.setAttribute("disabled","disabled");h.checked=!k.checked});d=d.cloneNode(!1);m=document.createElement("td");mxUtils.write(m,mxResources.get("pageScale")+":");d.appendChild(m);m=document.createElement("td");var w=document.createElement("input");w.setAttribute("value","100 %");w.setAttribute("size","5");w.style.width="50px";m.appendChild(w);d.appendChild(m);g.appendChild(d);d=document.createElement("tr");m=document.createElement("td");m.colSpan=2;
-m.style.paddingTop="20px";m.setAttribute("align","right");q=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});q.className="geBtn";a.editor.cancelFirst&&m.appendChild(q);if(PrintDialog.previewEnabled){var z=mxUtils.button(mxResources.get("preview"),function(){a.hideDialog();b(!1)});z.className="geBtn";m.appendChild(z)}z=mxUtils.button(mxResources.get(PrintDialog.previewEnabled?"print":"ok"),function(){a.hideDialog();b(!0)});z.className="geBtn gePrimaryBtn";m.appendChild(z);a.editor.cancelFirst||
-m.appendChild(q);d.appendChild(m);g.appendChild(d);f.appendChild(g);this.container=f};PrintDialog.printPreview=function(a){try{null!=a.wnd&&window.setTimeout(function(){a.wnd.focus();a.wnd.print();a.wnd.close()},500)}catch(b){}};
-PrintDialog.createPrintPreview=function(a,b,e,f,g,d,h){b=new mxPrintPreview(a,b,e,f,g,d);b.title=mxResources.get("preview");b.addPageCss=!mxClient.IS_SF;b.printBackgroundImage=!0;b.autoOrigin=h;h=a.background;if(null==h||""==h||h==mxConstants.NONE)h="#ffffff";b.backgroundColor=h;var m=b.isTextLabel;b.isTextLabel=function(k){return"geHint"==!k.className&&m.apply(this,arguments)};var q=b.getLinkForCellState;b.getLinkForCellState=function(k){return a.getAbsoluteUrl(q.apply(this,arguments))};return b};
+var ErrorDialog=function(a,b,e,f,g,d,h,m,p,k,v){p=null!=p?p:!0;var w=document.createElement("div");w.style.textAlign="center";if(null!=b){var y=document.createElement("div");y.style.padding="0px";y.style.margin="0px";y.style.fontSize="18px";y.style.paddingBottom="16px";y.style.marginBottom="10px";y.style.borderBottom="1px solid #c0c0c0";y.style.color="gray";y.style.whiteSpace="nowrap";y.style.textOverflow="ellipsis";y.style.overflow="hidden";mxUtils.write(y,b);y.setAttribute("title",b);w.appendChild(y)}b=
+document.createElement("div");b.style.lineHeight="1.2em";b.style.padding="6px";"string"===typeof e&&(e=e.replace(/\n/g,"
"));b.innerHTML=Graph.sanitizeHtml(e);w.appendChild(b);e=document.createElement("div");e.style.marginTop="12px";e.style.textAlign="center";null!=d&&(b=mxUtils.button(mxResources.get("tryAgain"),function(){a.hideDialog();d()}),b.className="geBtn",e.appendChild(b),e.style.textAlign="center");null!=k&&(k=mxUtils.button(k,function(){null!=v&&v()}),k.className="geBtn",e.appendChild(k)); +var C=mxUtils.button(f,function(){p&&a.hideDialog();null!=g&&g()});C.className="geBtn";e.appendChild(C);null!=h&&(f=mxUtils.button(h,function(){p&&a.hideDialog();null!=m&&m()}),f.className="geBtn gePrimaryBtn",e.appendChild(f));this.init=function(){C.focus()};w.appendChild(e);this.container=w},PrintDialog=function(a,b,e,f){this.create(a,b,e,f)}; +PrintDialog.prototype.create=function(a){function b(C){var D=h.checked||k.checked,E=parseInt(w.value)/100;isNaN(E)&&(E=1,w.value="100%");mxClient.IS_SF&&(E*=.75);var G=e.pageFormat||mxConstants.PAGE_FORMAT_A4_PORTRAIT,J=1/e.pageScale;if(D){var M=h.checked?1:parseInt(v.value);isNaN(M)||(J=mxUtils.getScaleForPageCount(M,e,G))}var O=M=0;G=mxRectangle.fromRectangle(G);G.width=Math.ceil(G.width*E);G.height=Math.ceil(G.height*E);J*=E;!D&&e.pageVisible?(E=e.getPageLayout(),M-=E.x*G.width,O-=E.y*G.height): +D=!0;D=PrintDialog.createPrintPreview(e,J,G,0,M,O,D);D.open();C&&PrintDialog.printPreview(D)}var e=a.editor.graph,f=document.createElement("table");f.style.width="100%";f.style.height="100%";var g=document.createElement("tbody");var d=document.createElement("tr");var h=document.createElement("input");h.setAttribute("type","checkbox");var m=document.createElement("td");m.setAttribute("colspan","2");m.style.fontSize="10pt";m.appendChild(h);var p=document.createElement("span");mxUtils.write(p," "+mxResources.get("fitPage")); +m.appendChild(p);mxEvent.addListener(p,"click",function(C){h.checked=!h.checked;k.checked=!h.checked;mxEvent.consume(C)});mxEvent.addListener(h,"change",function(){k.checked=!h.checked});d.appendChild(m);g.appendChild(d);d=d.cloneNode(!1);var k=document.createElement("input");k.setAttribute("type","checkbox");m=document.createElement("td");m.style.fontSize="10pt";m.appendChild(k);p=document.createElement("span");mxUtils.write(p," "+mxResources.get("posterPrint")+":");m.appendChild(p);mxEvent.addListener(p, +"click",function(C){k.checked=!k.checked;h.checked=!k.checked;mxEvent.consume(C)});d.appendChild(m);var v=document.createElement("input");v.setAttribute("value","1");v.setAttribute("type","number");v.setAttribute("min","1");v.setAttribute("size","4");v.setAttribute("disabled","disabled");v.style.width="50px";m=document.createElement("td");m.style.fontSize="10pt";m.appendChild(v);mxUtils.write(m," "+mxResources.get("pages")+" (max)");d.appendChild(m);g.appendChild(d);mxEvent.addListener(k,"change", +function(){k.checked?v.removeAttribute("disabled"):v.setAttribute("disabled","disabled");h.checked=!k.checked});d=d.cloneNode(!1);m=document.createElement("td");mxUtils.write(m,mxResources.get("pageScale")+":");d.appendChild(m);m=document.createElement("td");var w=document.createElement("input");w.setAttribute("value","100 %");w.setAttribute("size","5");w.style.width="50px";m.appendChild(w);d.appendChild(m);g.appendChild(d);d=document.createElement("tr");m=document.createElement("td");m.colSpan=2; +m.style.paddingTop="20px";m.setAttribute("align","right");p=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});p.className="geBtn";a.editor.cancelFirst&&m.appendChild(p);if(PrintDialog.previewEnabled){var y=mxUtils.button(mxResources.get("preview"),function(){a.hideDialog();b(!1)});y.className="geBtn";m.appendChild(y)}y=mxUtils.button(mxResources.get(PrintDialog.previewEnabled?"print":"ok"),function(){a.hideDialog();b(!0)});y.className="geBtn gePrimaryBtn";m.appendChild(y);a.editor.cancelFirst|| +m.appendChild(p);d.appendChild(m);g.appendChild(d);f.appendChild(g);this.container=f};PrintDialog.printPreview=function(a){try{null!=a.wnd&&window.setTimeout(function(){a.wnd.focus();a.wnd.print();a.wnd.close()},500)}catch(b){}}; +PrintDialog.createPrintPreview=function(a,b,e,f,g,d,h){b=new mxPrintPreview(a,b,e,f,g,d);b.title=mxResources.get("preview");b.addPageCss=!mxClient.IS_SF;b.printBackgroundImage=!0;b.autoOrigin=h;h=a.background;if(null==h||""==h||h==mxConstants.NONE)h="#ffffff";b.backgroundColor=h;var m=b.isTextLabel;b.isTextLabel=function(k){return"geHint"==!k.className&&m.apply(this,arguments)};var p=b.getLinkForCellState;b.getLinkForCellState=function(k){return a.getAbsoluteUrl(p.apply(this,arguments))};return b}; PrintDialog.previewEnabled=!0; -var PageSetupDialog=function(a){function b(){var E=w;null!=E&&null!=E.originalSrc&&(E=a.createImageForPageLink(E.originalSrc,null));null!=E&&null!=E.src?(u.style.backgroundImage="url("+E.src+")",u.style.display="inline-block"):(u.style.backgroundImage="",u.style.display="none");u.style.backgroundColor="";null!=z&&z!=mxConstants.NONE&&(u.style.backgroundColor=z,u.style.display="inline-block")}var e=a.editor.graph,f=document.createElement("table");f.style.width="100%";f.style.height="100%";var g=document.createElement("tbody"); +var PageSetupDialog=function(a){function b(){var E=w;null!=E&&null!=E.originalSrc&&(E=a.createImageForPageLink(E.originalSrc,null));null!=E&&null!=E.src?(v.style.backgroundImage="url("+E.src+")",v.style.display="inline-block"):(v.style.backgroundImage="",v.style.display="none");v.style.backgroundColor="";null!=y&&y!=mxConstants.NONE&&(v.style.backgroundColor=y,v.style.display="inline-block")}var e=a.editor.graph,f=document.createElement("table");f.style.width="100%";f.style.height="100%";var g=document.createElement("tbody"); var d=document.createElement("tr");var h=document.createElement("td");h.style.verticalAlign="top";h.style.fontSize="10pt";mxUtils.write(h,mxResources.get("paperSize")+":");d.appendChild(h);h=document.createElement("td");h.style.verticalAlign="top";h.style.fontSize="10pt";var m=PageSetupDialog.addPageFormatPanel(h,"pagesetupdialog",e.pageFormat);d.appendChild(h);g.appendChild(d);d=document.createElement("tr");h=document.createElement("td");mxUtils.write(h,mxResources.get("gridSize")+":");d.appendChild(h); -h=document.createElement("td");h.style.whiteSpace="nowrap";var q=document.createElement("input");q.setAttribute("type","number");q.setAttribute("min","0");q.style.width="40px";q.style.marginLeft="6px";q.value=e.getGridSize();h.appendChild(q);mxEvent.addListener(q,"change",function(){var E=parseInt(q.value);q.value=Math.max(1,isNaN(E)?e.getGridSize():E)});d.appendChild(h);g.appendChild(d);d=document.createElement("tr");h=document.createElement("td");mxUtils.write(h,mxResources.get("background")+":"); -d.appendChild(h);h=document.createElement("td");var k=document.createElement("button");k.className="geBtn";k.style.margin="0px";mxUtils.write(k,mxResources.get("change")+"...");var u=document.createElement("div");u.style.display="inline-block";u.style.verticalAlign="middle";u.style.backgroundPosition="center center";u.style.backgroundRepeat="no-repeat";u.style.backgroundSize="contain";u.style.border="1px solid lightGray";u.style.borderRadius="4px";u.style.marginRight="14px";u.style.height="32px"; -u.style.width="64px";u.style.cursor="pointer";u.style.padding="4px";var w=e.backgroundImage,z=e.background,C=e.shadowVisible,D=function(E){a.showBackgroundImageDialog(function(G,I,J,T){I||(null!=G&&null!=G.src&&Graph.isPageLink(G.src)&&(G={originalSrc:G.src}),w=G,C=T);z=J;b()},w,z,!0);mxEvent.consume(E)};mxEvent.addListener(k,"click",D);mxEvent.addListener(u,"click",D);b();h.appendChild(u);h.appendChild(k);d.appendChild(h);g.appendChild(d);d=document.createElement("tr");h=document.createElement("td"); -h.colSpan=2;h.style.paddingTop="16px";h.setAttribute("align","right");k=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});k.className="geBtn";a.editor.cancelFirst&&h.appendChild(k);D=mxUtils.button(mxResources.get("apply"),function(){a.hideDialog();var E=parseInt(q.value);isNaN(E)||e.gridSize===E||e.setGridSize(E);E=new ChangePageSetup(a,z,w,m.get());E.ignoreColor=e.background==z;E.ignoreImage=(null!=e.backgroundImage?e.backgroundImage.src:null)===(null!=w?w.src:null);null!=C&& +h=document.createElement("td");h.style.whiteSpace="nowrap";var p=document.createElement("input");p.setAttribute("type","number");p.setAttribute("min","0");p.style.width="40px";p.style.marginLeft="6px";p.value=e.getGridSize();h.appendChild(p);mxEvent.addListener(p,"change",function(){var E=parseInt(p.value);p.value=Math.max(1,isNaN(E)?e.getGridSize():E)});d.appendChild(h);g.appendChild(d);d=document.createElement("tr");h=document.createElement("td");mxUtils.write(h,mxResources.get("background")+":"); +d.appendChild(h);h=document.createElement("td");var k=document.createElement("button");k.className="geBtn";k.style.margin="0px";mxUtils.write(k,mxResources.get("change")+"...");var v=document.createElement("div");v.style.display="inline-block";v.style.verticalAlign="middle";v.style.backgroundPosition="center center";v.style.backgroundRepeat="no-repeat";v.style.backgroundSize="contain";v.style.border="1px solid lightGray";v.style.borderRadius="4px";v.style.marginRight="14px";v.style.height="32px"; +v.style.width="64px";v.style.cursor="pointer";v.style.padding="4px";var w=e.backgroundImage,y=e.background,C=e.shadowVisible,D=function(E){a.showBackgroundImageDialog(function(G,J,M,O){J||(null!=G&&null!=G.src&&Graph.isPageLink(G.src)&&(G={originalSrc:G.src}),w=G,C=O);y=M;b()},w,y,!0);mxEvent.consume(E)};mxEvent.addListener(k,"click",D);mxEvent.addListener(v,"click",D);b();h.appendChild(v);h.appendChild(k);d.appendChild(h);g.appendChild(d);d=document.createElement("tr");h=document.createElement("td"); +h.colSpan=2;h.style.paddingTop="16px";h.setAttribute("align","right");k=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});k.className="geBtn";a.editor.cancelFirst&&h.appendChild(k);D=mxUtils.button(mxResources.get("apply"),function(){a.hideDialog();var E=parseInt(p.value);isNaN(E)||e.gridSize===E||e.setGridSize(E);E=new ChangePageSetup(a,y,w,m.get());E.ignoreColor=e.background==y;E.ignoreImage=(null!=e.backgroundImage?e.backgroundImage.src:null)===(null!=w?w.src:null);null!=C&& (E.shadowVisible=C);e.pageFormat.width==E.previousFormat.width&&e.pageFormat.height==E.previousFormat.height&&E.ignoreColor&&E.ignoreImage&&E.shadowVisible==e.shadowVisible||e.model.execute(E)});D.className="geBtn gePrimaryBtn";h.appendChild(D);a.editor.cancelFirst||h.appendChild(k);d.appendChild(h);g.appendChild(d);f.appendChild(g);this.container=f}; PageSetupDialog.addPageFormatPanel=function(a,b,e,f){b="format-"+b;var g=document.createElement("input");g.setAttribute("name",b);g.setAttribute("type","radio");g.setAttribute("value","portrait");var d=document.createElement("input");d.setAttribute("name",b);d.setAttribute("type","radio");d.setAttribute("value","landscape");var h=document.createElement("select");h.style.position="relative";h.style.marginBottom="4px";h.style.borderRadius="4px";h.style.borderWidth="1px";h.style.borderStyle="solid"; -h.style.boxSizing="border-box";h.style.padding="2px";h.style.width="210px";var m=document.createElement("div");m.style.whiteSpace="nowrap";m.style.marginLeft="4px";m.style.width="210px";m.style.height="24px";g.style.marginRight="6px";m.appendChild(g);b=document.createElement("span");b.style.maxWidth="100px";mxUtils.write(b,mxResources.get("portrait"));m.appendChild(b);d.style.marginLeft="10px";d.style.marginRight="6px";m.appendChild(d);var q=document.createElement("span");q.style.width="100px";mxUtils.write(q, -mxResources.get("landscape"));m.appendChild(q);var k=document.createElement("div");k.style.whiteSpace="nowrap";k.style.marginLeft="4px";k.style.fontSize="12px";k.style.width="210px";k.style.height="24px";var u=document.createElement("input");u.setAttribute("size","7");u.setAttribute("title",mxResources.get("width"));u.style.textAlign="right";k.appendChild(u);mxUtils.write(k," x ");var w=document.createElement("input");w.setAttribute("size","7");w.setAttribute("title",mxResources.get("height"));w.style.textAlign= -"right";k.appendChild(w);var z=document.createElement("select");z.style.marginLeft="4px";z.style.maxWidth="78px";z.style.width="78px";for(var C=[{label:mxResources.get("points"),unit:mxConstants.POINTS},{label:mxResources.get("inches"),unit:mxConstants.INCHES},{label:mxResources.get("millimeters"),unit:mxConstants.MILLIMETERS}],D=0;D=K)u.value=Editor.toUnit(e.width,z.value);K=parseFloat(w.value);if(isNaN(K)||0>=K)w.value=Editor.toUnit(e.height,z.value);K=new mxRectangle(0,0,Math.floor(Editor.fromUnit(parseFloat(u.value),z.value)),Math.floor(Editor.fromUnit(parseFloat(w.value),z.value)));V||K.width==e.width&&K.height==e.height||(e=K,null!=f&&f(e))};mxEvent.addListener(b,"click",function(K){g.checked=!0;T(K);mxEvent.consume(K)}); -mxEvent.addListener(q,"click",function(K){d.checked=!0;T(K);mxEvent.consume(K)});mxEvent.addListener(u,"blur",T);mxEvent.addListener(u,"click",T);mxEvent.addListener(w,"blur",T);mxEvent.addListener(w,"click",T);mxEvent.addListener(d,"change",T);mxEvent.addListener(g,"change",T);mxEvent.addListener(h,"change",function(K){T(K,"custom"==h.value);mxEvent.consume(K)});mxEvent.addListener(z,"change",function(K){u.value=Editor.toUnit(Editor.fromUnit(u.value,Editor.pageSizeUnit),z.value);w.value=Editor.toUnit(Editor.fromUnit(w.value, -Editor.pageSizeUnit),z.value);Editor.pageSizeUnit=z.value;T(K,!0);mxEvent.consume(K)});T(null,!0);return{set:function(K){e=K;J(null,null,!0)},get:function(){return e},widthInput:u,heightInput:w}}; +h.style.boxSizing="border-box";h.style.padding="2px";h.style.width="210px";var m=document.createElement("div");m.style.whiteSpace="nowrap";m.style.marginLeft="4px";m.style.width="210px";m.style.height="24px";g.style.marginRight="6px";m.appendChild(g);b=document.createElement("span");b.style.maxWidth="100px";mxUtils.write(b,mxResources.get("portrait"));m.appendChild(b);d.style.marginLeft="10px";d.style.marginRight="6px";m.appendChild(d);var p=document.createElement("span");p.style.width="100px";mxUtils.write(p, +mxResources.get("landscape"));m.appendChild(p);var k=document.createElement("div");k.style.whiteSpace="nowrap";k.style.marginLeft="4px";k.style.fontSize="12px";k.style.width="210px";k.style.height="24px";var v=document.createElement("input");v.setAttribute("size","7");v.setAttribute("title",mxResources.get("width"));v.style.textAlign="right";k.appendChild(v);mxUtils.write(k," x ");var w=document.createElement("input");w.setAttribute("size","7");w.setAttribute("title",mxResources.get("height"));w.style.textAlign= +"right";k.appendChild(w);var y=document.createElement("select");y.style.marginLeft="4px";y.style.maxWidth="78px";y.style.width="78px";for(var C=[{label:mxResources.get("points"),unit:mxConstants.POINTS},{label:mxResources.get("inches"),unit:mxConstants.INCHES},{label:mxResources.get("millimeters"),unit:mxConstants.MILLIMETERS}],D=0;D=L)v.value=Editor.toUnit(e.width,y.value);L=parseFloat(w.value);if(isNaN(L)||0>=L)w.value=Editor.toUnit(e.height,y.value);L=new mxRectangle(0,0,Math.floor(Editor.fromUnit(parseFloat(v.value),y.value)),Math.floor(Editor.fromUnit(parseFloat(w.value),y.value)));W||L.width==e.width&&L.height==e.height||(e=L,null!=f&&f(e))};mxEvent.addListener(b,"click",function(L){g.checked=!0;O(L);mxEvent.consume(L)}); +mxEvent.addListener(p,"click",function(L){d.checked=!0;O(L);mxEvent.consume(L)});mxEvent.addListener(v,"blur",O);mxEvent.addListener(v,"click",O);mxEvent.addListener(w,"blur",O);mxEvent.addListener(w,"click",O);mxEvent.addListener(d,"change",O);mxEvent.addListener(g,"change",O);mxEvent.addListener(h,"change",function(L){O(L,"custom"==h.value);mxEvent.consume(L)});mxEvent.addListener(y,"change",function(L){v.value=Editor.toUnit(Editor.fromUnit(v.value,Editor.pageSizeUnit),y.value);w.value=Editor.toUnit(Editor.fromUnit(w.value, +Editor.pageSizeUnit),y.value);Editor.pageSizeUnit=y.value;O(L,!0);mxEvent.consume(L)});O(null,!0);return{set:function(L){e=L;M(null,null,!0)},get:function(){return e},widthInput:v,heightInput:w}}; 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 (11" x 17")',format:new mxRectangle(0,0,1100,1700)},{key:"executive",title:'US-Executive (7" x 10")',format:new mxRectangle(0,0,700,1E3)},{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:"b4",title:"B4 (250 mm x 353 mm)",format:new mxRectangle(0,0,980,1390)},{key:"b5",title:"B5 (176 mm x 250 mm)",format:new mxRectangle(0,0,690,980)},{key:"16-9",title:"16:9 (1600 x 900)",format:new mxRectangle(0,0,900,1600)},{key:"16-10",title:"16:10 (1920 x 1200)",format:new mxRectangle(0,0,1200,1920)},{key:"4-3",title:"4:3 (1600 x 1200)",format:new mxRectangle(0,0,1200,1600)},{key:"custom",title:mxResources.get("custom"),format:null}]}; -var FilenameDialog=function(a,b,e,f,g,d,h,m,q,k,u){q=null!=q?q:!0;var w=document.createElement("div"),z=document.createElement("div");z.style.width="100%";z.style.display="grid";z.style.gap="5px 8px";z.style.gridAutoColumns="auto 1fr";z.style.boxSizing="border-box";z.style.padding="3px";var C=document.createElement("div");C.style.display="inline-flex";C.style.alignItems="center";C.style.justifyContent="flex-end";C.style.minWidth="0";var D=document.createElement("div");D.style.display="inline-block"; -D.style.textOverflow="ellipsis";D.style.whiteSpace="nowrap";D.style.overflow="hidden";D.style.fontSize="10pt";D.style.padding="2px 0";D.setAttribute("title",g||mxResources.get("filename"));mxUtils.write(D,(g||mxResources.get("filename"))+":");C.appendChild(D);z.appendChild(C);var E=document.createElement("input");E.setAttribute("value",b||"");E.style.flexGrow="1";var G=mxUtils.button(e,function(){if(null==d||d(E.value))q&&a.hideDialog(),f(E.value)});G.className="geBtn gePrimaryBtn";this.init=function(){if(null!= -g||null==h)if(null!=u?Editor.selectFilename(E):(E.focus(),mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode?E.select():document.execCommand("selectAll",!1,null)),Graph.fileSupport){var I=z.parentNode;if(null!=I){var J=null;mxEvent.addListener(I,"dragleave",function(T){null!=J&&(J.style.backgroundColor="",J=null);T.stopPropagation();T.preventDefault()});mxEvent.addListener(I,"dragover",mxUtils.bind(this,function(T){null==J&&(!mxClient.IS_IE||10'};var a=mxGraph.prototype.panGraph;mxGraph.prototype.panGraph=function(h,m){a.apply(this,arguments); -if(null!=this.shiftPreview1){var q=this.view.canvas;null!=q.ownerSVGElement&&(q=q.ownerSVGElement);var k=this.gridSize*this.view.scale*this.view.gridSteps;k=-Math.round(k-mxUtils.mod(this.view.translate.x*this.view.scale+h,k))+"px "+-Math.round(k-mxUtils.mod(this.view.translate.y*this.view.scale+m,k))+"px";q.style.backgroundPosition=k}};mxGraph.prototype.updatePageBreaks=function(h,m,q){var k=this.view.scale,u=this.view.translate,w=this.pageFormat,z=k*this.pageScale,C=this.view.getBackgroundPageBounds(); -m=C.width;q=C.height;var D=new mxRectangle(k*u.x,k*u.y,w.width*z,w.height*z),E=(h=h&&Math.min(D.width,D.height)>this.minPageBreakDist)?Math.ceil(q/D.height)-1:0,G=h?Math.ceil(m/D.width)-1:0,I=C.x+m,J=C.y+q;null==this.horizontalPageBreaks&&0document.documentMode)?mxEvent.addListener(this.diagramContainer,"contextmenu",b):this.diagramContainer.oncontextmenu=b):g.panningHandler.usePopupTrigger=!1;g.init(this.diagramContainer);mxClient.IS_SVG&&null!=g.view.getDrawPane()&& -(b=g.view.getDrawPane().ownerSVGElement,null!=b&&(b.style.position="absolute"));this.hoverIcons=this.createHoverIcons();if(null!=g.graphHandler){var u=g.graphHandler.start;g.graphHandler.start=function(){null!=f.hoverIcons&&f.hoverIcons.reset();u.apply(this,arguments)}}mxEvent.addListener(this.diagramContainer,"mousemove",mxUtils.bind(this,function(N){var Y=mxUtils.getOffset(this.diagramContainer);0N?Y.style.display="none":Y.style.display="";Y=Y.nextSibling}}),G=!1,I=null,J=null,T=null,K=mxUtils.bind(this,function(){if(null!=this.toolbar&&G!=g.cellEditor.isContentEditing()){for(var N=this.toolbar.container.firstChild,Y=[];null!=N;){var ja=N.nextSibling;N.parentNode.removeChild(N); -Y.push(N);N=ja}N=this.toolbar.fontMenu;ja=this.toolbar.sizeMenu;if(null==T)this.toolbar.createTextToolbar();else{for(var la=0;lathis.minPageBreakDist)?Math.ceil(p/D.height)-1:0,G=h?Math.ceil(m/D.width)-1:0,J=C.x+m,M=C.y+p;null==this.horizontalPageBreaks&&0document.documentMode)?mxEvent.addListener(this.diagramContainer,"contextmenu",b):this.diagramContainer.oncontextmenu=b):g.panningHandler.usePopupTrigger=!1;g.init(this.diagramContainer);mxClient.IS_SVG&&null!=g.view.getDrawPane()&& +(b=g.view.getDrawPane().ownerSVGElement,null!=b&&(b.style.position="absolute"));this.hoverIcons=this.createHoverIcons();if(null!=g.graphHandler){var v=g.graphHandler.start;g.graphHandler.start=function(){null!=f.hoverIcons&&f.hoverIcons.reset();v.apply(this,arguments)}}mxEvent.addListener(this.diagramContainer,"mousemove",mxUtils.bind(this,function(H){var S=mxUtils.getOffset(this.diagramContainer);0H?S.style.display="none":S.style.display="";S=S.nextSibling}}),G=!1,J=null,M=null,O=null,L=mxUtils.bind(this,function(){if(null!=this.toolbar&&G!=g.cellEditor.isContentEditing()){for(var H=this.toolbar.container.firstChild,S=[];null!=H;){var ea=H.nextSibling;H.parentNode.removeChild(H); +S.push(H);H=ea}H=this.toolbar.fontMenu;ea=this.toolbar.sizeMenu;if(null==O)this.toolbar.createTextToolbar();else{for(var ja=0;ja=this.view.scale* -this.cumulativeZoomFactor?this.cumulativeZoomFactor*=(this.view.scale+.05)/this.view.scale:(this.cumulativeZoomFactor*=ma,this.cumulativeZoomFactor=Math.round(this.view.scale*this.cumulativeZoomFactor*100)/100/this.view.scale):.15>=this.view.scale*this.cumulativeZoomFactor?this.cumulativeZoomFactor*=(this.view.scale-.05)/this.view.scale:(this.cumulativeZoomFactor/=ma,this.cumulativeZoomFactor=Math.round(this.view.scale*this.cumulativeZoomFactor*100)/100/this.view.scale);this.cumulativeZoomFactor= -Math.max(.05,Math.min(this.view.scale*this.cumulativeZoomFactor,160))/this.view.scale;if(a.isFastZoomEnabled()){null==ka&&""!=la.getAttribute("filter")&&(ka=la.getAttribute("filter"),la.removeAttribute("filter"));aa=new mxPoint(a.container.scrollLeft,a.container.scrollTop);ba=Math.round(Math.round(this.view.scale*this.cumulativeZoomFactor*100)/100*20)/(20*this.view.scale);ma=R||null==U?a.container.scrollLeft+a.container.clientWidth/2:U.x+a.container.scrollLeft-a.container.offsetLeft;var Ja=R||null== -U?a.container.scrollTop+a.container.clientHeight/2:U.y+a.container.scrollTop-a.container.offsetTop;la.style.transformOrigin=ma+"px "+Ja+"px";la.style.transform="scale("+ba+")";ja.style.transformOrigin=ma+"px "+Ja+"px";ja.style.transform="scale("+ba+")";null!=a.view.backgroundPageShape&&null!=a.view.backgroundPageShape.node?(ma=a.view.backgroundPageShape.node,mxUtils.setPrefixedStyle(ma.style,"transform-origin",(R||null==U?a.container.clientWidth/2+a.container.scrollLeft-ma.offsetLeft+"px":U.x+a.container.scrollLeft- -ma.offsetLeft-a.container.offsetLeft+"px")+" "+(R||null==U?a.container.clientHeight/2+a.container.scrollTop-ma.offsetTop+"px":U.y+a.container.scrollTop-ma.offsetTop-a.container.offsetTop+"px")),mxUtils.setPrefixedStyle(ma.style,"transform","scale("+ba+")")):a.view.validateBackgroundStyles(ba,ma,Ja);a.view.getDecoratorPane().style.opacity="0";a.view.getOverlayPane().style.opacity="0";null!=e.hoverIcons&&e.hoverIcons.reset();a.fireEvent(new mxEventObject("zoomPreview","factor",ba))}ta(a.isFastZoomEnabled()? -ca:0)};mxEvent.addGestureListeners(a.container,function(ba){null!=S&&window.clearTimeout(S)},null,function(ba){1!=a.cumulativeZoomFactor&&ta(0)});mxEvent.addListener(a.container,"scroll",function(ba){null==S||a.isMouseDown||1==a.cumulativeZoomFactor||ta(0)});mxEvent.addMouseWheelListener(mxUtils.bind(this,function(ba,R,ca,ma,Ja){a.fireEvent(new mxEventObject("wheel"));if(null==this.dialogs||0==this.dialogs.length)if(!a.scrollbars&&!ca&&a.isScrollWheelEvent(ba))ca=a.view.getTranslate(),ma=40/a.view.scale, -mxEvent.isShiftDown(ba)?a.view.setTranslate(ca.x+(R?-ma:ma),ca.y):a.view.setTranslate(ca.x,ca.y+(R?ma:-ma));else if(ca||a.isZoomWheelEvent(ba))for(var na=mxEvent.getSource(ba);null!=na;){if(na==a.container)return a.tooltipHandler.hideTooltip(),U=null!=ma&&null!=Ja?new mxPoint(ma,Ja):new mxPoint(mxEvent.getClientX(ba),mxEvent.getClientY(ba)),fa=ca,ca=a.zoomFactor,ma=null,ba.ctrlKey&&null!=ba.deltaY&&40>Math.abs(ba.deltaY)&&Math.round(ba.deltaY)!=ba.deltaY?ca=1+Math.abs(ba.deltaY)/20*(ca-1):null!=ba.movementY&& -"pointermove"==ba.type&&(ca=1+Math.max(1,Math.abs(ba.movementY))/20*(ca-1),ma=-1),a.lazyZoom(R,null,ma,ca),mxEvent.consume(ba),!1;na=na.parentNode}}),a.container);a.panningHandler.zoomGraph=function(ba){a.cumulativeZoomFactor=ba.scale;a.lazyZoom(0=this.view.scale*this.cumulativeZoomFactor?this.cumulativeZoomFactor*=(this.view.scale+.05)/this.view.scale:(this.cumulativeZoomFactor*=ma,this.cumulativeZoomFactor=Math.round(this.view.scale*this.cumulativeZoomFactor*100)/100/this.view.scale):.15>=this.view.scale*this.cumulativeZoomFactor?this.cumulativeZoomFactor*=(this.view.scale-.05)/this.view.scale:(this.cumulativeZoomFactor/=ma,this.cumulativeZoomFactor=Math.round(this.view.scale*this.cumulativeZoomFactor*100)/100/this.view.scale); +this.cumulativeZoomFactor=Math.max(.05,Math.min(this.view.scale*this.cumulativeZoomFactor,160))/this.view.scale;if(a.isFastZoomEnabled()){null==la&&""!=ja.getAttribute("filter")&&(la=ja.getAttribute("filter"),ja.removeAttribute("filter"));Y=new mxPoint(a.container.scrollLeft,a.container.scrollTop);aa=Math.round(Math.round(this.view.scale*this.cumulativeZoomFactor*100)/100*20)/(20*this.view.scale);ma=T||null==V?a.container.scrollLeft+a.container.clientWidth/2:V.x+a.container.scrollLeft-a.container.offsetLeft; +var Ja=T||null==V?a.container.scrollTop+a.container.clientHeight/2:V.y+a.container.scrollTop-a.container.offsetTop;ja.style.transformOrigin=ma+"px "+Ja+"px";ja.style.transform="scale("+aa+")";ea.style.transformOrigin=ma+"px "+Ja+"px";ea.style.transform="scale("+aa+")";null!=a.view.backgroundPageShape&&null!=a.view.backgroundPageShape.node?(ma=a.view.backgroundPageShape.node,mxUtils.setPrefixedStyle(ma.style,"transform-origin",(T||null==V?a.container.clientWidth/2+a.container.scrollLeft-ma.offsetLeft+ +"px":V.x+a.container.scrollLeft-ma.offsetLeft-a.container.offsetLeft+"px")+" "+(T||null==V?a.container.clientHeight/2+a.container.scrollTop-ma.offsetTop+"px":V.y+a.container.scrollTop-ma.offsetTop-a.container.offsetTop+"px")),mxUtils.setPrefixedStyle(ma.style,"transform","scale("+aa+")")):a.view.validateBackgroundStyles(aa,ma,Ja);a.view.getDecoratorPane().style.opacity="0";a.view.getOverlayPane().style.opacity="0";null!=e.hoverIcons&&e.hoverIcons.reset();a.fireEvent(new mxEventObject("zoomPreview", +"factor",aa))}ta(a.isFastZoomEnabled()?ba:0)};mxEvent.addGestureListeners(a.container,function(aa){null!=P&&window.clearTimeout(P)},null,function(aa){1!=a.cumulativeZoomFactor&&ta(0)});mxEvent.addListener(a.container,"scroll",function(aa){null==P||a.isMouseDown||1==a.cumulativeZoomFactor||ta(0)});mxEvent.addMouseWheelListener(mxUtils.bind(this,function(aa,T,ba,ma,Ja){a.fireEvent(new mxEventObject("wheel"));if(null==this.dialogs||0==this.dialogs.length)if(!a.scrollbars&&!ba&&a.isScrollWheelEvent(aa))ba= +a.view.getTranslate(),ma=40/a.view.scale,mxEvent.isShiftDown(aa)?a.view.setTranslate(ba.x+(T?-ma:ma),ba.y):a.view.setTranslate(ba.x,ba.y+(T?ma:-ma));else if(ba||a.isZoomWheelEvent(aa))for(var na=mxEvent.getSource(aa);null!=na;){if(na==a.container)return a.tooltipHandler.hideTooltip(),V=null!=ma&&null!=Ja?new mxPoint(ma,Ja):new mxPoint(mxEvent.getClientX(aa),mxEvent.getClientY(aa)),ha=ba,ba=a.zoomFactor,ma=null,aa.ctrlKey&&null!=aa.deltaY&&40>Math.abs(aa.deltaY)&&Math.round(aa.deltaY)!=aa.deltaY?ba= +1+Math.abs(aa.deltaY)/20*(ba-1):null!=aa.movementY&&"pointermove"==aa.type&&(ba=1+Math.max(1,Math.abs(aa.movementY))/20*(ba-1),ma=-1),a.lazyZoom(T,null,ma,ba),mxEvent.consume(aa),!1;na=na.parentNode}}),a.container);a.panningHandler.zoomGraph=function(aa){a.cumulativeZoomFactor=aa.scale;a.lazyZoom(0b.scrollTop+.9*b.clientHeight&&(b.scrollTop=M EditorUi.prototype.setPageVisible=function(a){var b=this.editor.graph,e=mxUtils.hasScrollbars(b.container),f=0,g=0;e&&(f=b.view.translate.x*b.view.scale-b.container.scrollLeft,g=b.view.translate.y*b.view.scale-b.container.scrollTop);b.pageVisible=a;b.pageBreaksVisible=a;b.preferPageSize=a;b.view.validateBackground();if(e){var d=b.getSelectionCells();b.clearSelection();b.setSelectionCells(d)}b.sizeDidChange();e&&(b.container.scrollLeft=b.view.translate.x*b.view.scale-f,b.container.scrollTop=b.view.translate.y* b.view.scale-g);b.defaultPageVisible=a;this.fireEvent(new mxEventObject("pageViewChanged"))}; EditorUi.prototype.installResizeHandler=function(a,b,e){b&&(a.window.setSize=function(g,d){if(!this.minimized){var h=window.innerHeight||document.body.clientHeight||document.documentElement.clientHeight;g=Math.min(g,(window.innerWidth||document.body.clientWidth||document.documentElement.clientWidth)-this.getX());d=Math.min(d,h-this.getY())}mxWindow.prototype.setSize.apply(this,arguments)});a.window.setLocation=function(g,d){var h=window.innerWidth||document.body.clientWidth||document.documentElement.clientWidth, -m=window.innerHeight||document.body.clientHeight||document.documentElement.clientHeight,q=parseInt(this.div.style.width),k=parseInt(this.div.style.height);g=Math.max(0,Math.min(g,h-q));d=Math.max(0,Math.min(d,m-k));this.getX()==g&&this.getY()==d||mxWindow.prototype.setLocation.apply(this,arguments);b&&!this.minimized&&this.setSize(q,k)};var f=mxUtils.bind(this,function(){var g=a.window.getX(),d=a.window.getY();a.window.setLocation(g,d)});mxEvent.addListener(window,"resize",f);a.destroy=function(){mxEvent.removeListener(window, +m=window.innerHeight||document.body.clientHeight||document.documentElement.clientHeight,p=parseInt(this.div.style.width),k=parseInt(this.div.style.height);g=Math.max(0,Math.min(g,h-p));d=Math.max(0,Math.min(d,m-k));this.getX()==g&&this.getY()==d||mxWindow.prototype.setLocation.apply(this,arguments);b&&!this.minimized&&this.setSize(p,k)};var f=mxUtils.bind(this,function(){var g=a.window.getX(),d=a.window.getY();a.window.setLocation(g,d)});mxEvent.addListener(window,"resize",f);a.destroy=function(){mxEvent.removeListener(window, "resize",f);a.window.destroy();null!=e&&e()}};function ChangeGridColor(a,b){this.ui=a;this.color=b}ChangeGridColor.prototype.execute=function(){var a=this.ui.editor.graph.view.gridColor;this.ui.setGridColor(this.color);this.color=a};(function(){var a=new mxObjectCodec(new ChangeGridColor,["ui"]);mxCodecRegistry.register(a)})(); function ChangePageSetup(a,b,e,f,g){this.ui=a;this.previousColor=this.color=b;this.previousImage=this.image=e;this.previousFormat=this.format=f;this.previousPageScale=this.pageScale=g;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}if(!this.ignoreImage){this.image=this.previousImage;b=a.backgroundImage;var e=this.previousImage;null!=e&&Graph.isPageLink(e.src)&&(e=this.ui.createImageForPageLink(e.src,this.ui.currentPage));this.ui.setBackgroundImage(e);this.previousImage=b}null!=this.previousFormat&&(this.format=this.previousFormat, @@ -2236,22 +2240,22 @@ EditorUi.prototype.setStatusText=function(a){this.statusContainer.innerHTML=Grap "transition","all 0.2s ease");window.setTimeout(mxUtils.bind(this,function(){mxUtils.setOpacity(e,100);mxUtils.setPrefixedStyle(e.style,"transform","scaleX(1)");mxUtils.setPrefixedStyle(e.style,"transition","all 1s ease");window.setTimeout(mxUtils.bind(this,function(){mxUtils.setPrefixedStyle(e.style,"transform","scaleX(0)");mxUtils.setOpacity(e,0);window.setTimeout(mxUtils.bind(this,function(){null!=e.parentNode&&e.parentNode.removeChild(e)}),1E3)}),Editor.updateStatusInterval/2)}),0)})(a[b])}; EditorUi.prototype.clearStatus=function(){this.updateStatus(mxUtils.bind(this,function(){this.editor.setStatus("")}))};EditorUi.prototype.updateStatus=function(a){null!=a&&a();this.lastStatusUpdate=a};EditorUi.prototype.updateStatusAgain=function(){null!=this.lastStatusUpdate&&this.lastStatusUpdate()};EditorUi.prototype.createStatusDiv=function(a){var b=document.createElement("div");b.className="geStatusDiv";b.setAttribute("title",a);b.innerText=a;return b}; 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.createDiv=function(a){var b=document.createElement("div");b.className=a;return b}; -EditorUi.prototype.addSplitHandler=function(a,b,e,f){function g(w){if(null!=h){var z=new mxPoint(mxEvent.getClientX(w),mxEvent.getClientY(w));f(Math.max(0,m+(b?z.x-h.x:h.y-z.y)-e));mxEvent.consume(w);m!=u()&&(q=!0,k=null)}}function d(w){g(w);h=m=null}var h=null,m=null,q=!0,k=null;mxClient.IS_POINTER&&(a.style.touchAction="none");var u=mxUtils.bind(this,function(){var w=parseInt(b?a.offsetLeft:a.offsetTop);b||(w+=e);return w});mxEvent.addGestureListeners(a,function(w){h=new mxPoint(mxEvent.getClientX(w), -mxEvent.getClientY(w));m=u();q=!1;mxEvent.consume(w)});mxEvent.addListener(a,"click",mxUtils.bind(this,function(w){if(!q&&this.hsplitClickEnabled){var z=null!=k?k-e:0;k=u();f(z);mxEvent.consume(w)}}));mxEvent.addGestureListeners(document,null,g,d);this.destroyFunctions.push(function(){mxEvent.removeGestureListeners(document,null,g,d)})}; +EditorUi.prototype.addSplitHandler=function(a,b,e,f){function g(w){if(null!=h){var y=new mxPoint(mxEvent.getClientX(w),mxEvent.getClientY(w));f(Math.max(0,m+(b?y.x-h.x:h.y-y.y)-e));mxEvent.consume(w);m!=v()&&(p=!0,k=null)}}function d(w){g(w);h=m=null}var h=null,m=null,p=!0,k=null;mxClient.IS_POINTER&&(a.style.touchAction="none");var v=mxUtils.bind(this,function(){var w=parseInt(b?a.offsetLeft:a.offsetTop);b||(w+=e);return w});mxEvent.addGestureListeners(a,function(w){h=new mxPoint(mxEvent.getClientX(w), +mxEvent.getClientY(w));m=v();p=!1;mxEvent.consume(w)});mxEvent.addListener(a,"click",mxUtils.bind(this,function(w){if(!p&&this.hsplitClickEnabled){var y=null!=k?k-e:0;k=v();f(y);mxEvent.consume(w)}}));mxEvent.addGestureListeners(document,null,g,d);this.destroyFunctions.push(function(){mxEvent.removeGestureListeners(document,null,g,d)})}; EditorUi.prototype.prompt=function(a,b,e){a=new FilenameDialog(this,b,mxResources.get("apply"),function(f){e(parseFloat(f))},a);this.showDialog(a.container,300,80,!0,!0);a.init()}; EditorUi.prototype.handleError=function(a,b,e,f,g){a=null!=a&&null!=a.error?a.error:a;if(null!=a||null!=b){g=mxUtils.htmlEntities(mxResources.get("unknownError"));var d=mxResources.get("ok");b=null!=b?b:mxResources.get("error");null!=a&&null!=a.message&&(g=mxUtils.htmlEntities(a.message));this.showError(b,g,d,e,null,null,null,null,null,null,null,null,f?e:null)}else null!=e&&e()}; -EditorUi.prototype.showError=function(a,b,e,f,g,d,h,m,q,k,u,w,z){a=new ErrorDialog(this,a,b,e||mxResources.get("ok"),f,g,d,h,w,m,q);b=Math.ceil(null!=b?b.length/50:1);this.showDialog(a.container,k||340,u||100+20*b,!0,!1,z);a.init()};EditorUi.prototype.showDialog=function(a,b,e,f,g,d,h,m,q,k){this.editor.graph.tooltipHandler.resetTimer();this.editor.graph.tooltipHandler.hideTooltip();null==this.dialogs&&(this.dialogs=[]);this.dialog=new Dialog(this,a,b,e,f,g,d,h,m,q,k);this.dialogs.push(this.dialog)}; +EditorUi.prototype.showError=function(a,b,e,f,g,d,h,m,p,k,v,w,y){a=new ErrorDialog(this,a,b,e||mxResources.get("ok"),f,g,d,h,w,m,p);b=Math.ceil(null!=b?b.length/50:1);this.showDialog(a.container,k||340,v||100+20*b,!0,!1,y);a.init()};EditorUi.prototype.showDialog=function(a,b,e,f,g,d,h,m,p,k){this.editor.graph.tooltipHandler.resetTimer();this.editor.graph.tooltipHandler.hideTooltip();null==this.dialogs&&(this.dialogs=[]);this.dialog=new Dialog(this,a,b,e,f,g,d,h,m,p,k);this.dialogs.push(this.dialog)}; EditorUi.prototype.hideDialog=function(a,b,e){var f=null;if(null!=this.dialogs&&0'],{type:"text/html"})});navigator.clipboard.write([a])["catch"](f)};EditorUi.prototype.writeHtmlToClipboard=function(a,b){a=new ClipboardItem({"text/plain":new Blob([Editor.convertHtmlToText(a)],{type:"text/plain"}),"text/html":new Blob([a],{type:"text/html"})});navigator.clipboard.write([a])["catch"](b)}; EditorUi.prototype.writeTextToClipboard=function(a,b){navigator.clipboard.writeText(a)["catch"](b)};EditorUi.prototype.extractGraphModelFromHtml=function(a){var b=null;try{var e=a.indexOf("<mxGraphModel ");if(0<=e){var f=a.lastIndexOf("</mxGraphModel>");f>e&&(b=a.substring(e,f+21).replace(/>/g,">").replace(/</g,"<").replace(/\\"/g,'"').replace(/\n/g,""))}}catch(g){}return b}; EditorUi.prototype.readGraphModelFromClipboard=function(a){this.readGraphModelFromClipboardWithType(mxUtils.bind(this,function(b){null!=b?a(b):this.readGraphModelFromClipboardWithType(mxUtils.bind(this,function(e){if(null!=e){var f=decodeURIComponent(e);this.isCompatibleString(f)&&(e=f)}a(e)}),"text")}),"html")}; EditorUi.prototype.readGraphModelFromClipboardWithType=function(a,b){navigator.clipboard.read().then(mxUtils.bind(this,function(e){if(null!=e&&0':"")+Graph.sanitizeHtml(a);asHtml=!0;a=b.getElementsByTagName("style");if(null!=a)for(;0this.maxTooltipWidth||f>this.maxTooltipHeight)?Math.round(100*Math.min(this.maxTooltipWidth/e,this.maxTooltipHeight/f))/100: -1;this.tooltip.style.display="block";this.graph2.labelsVisible=null==d||d;d=mxClient.NO_FO;mxClient.NO_FO=Editor.prototype.originalNoForeignObject;null!=b&&(b=this.graph2.cloneCells(b),this.graph2.pasteCellStyles(q.includeDescendants(b),u?q.currentVertexStyle:q.defaultVertexStyle,u?q.currentEdgeStyle:q.defaultEdgeStyle,null,q.pasteEdgeStyle),this.graph2.addCells(b));mxClient.NO_FO=d;u=this.graph2.getGraphBounds();m&&0e||u.height>f)?(e=Math.round(100*Math.min(e/u.width,f/u.height))/ -100,mxClient.NO_FO?(this.graph2.view.setScale(Math.round(100*Math.min(this.maxTooltipWidth/u.width,this.maxTooltipHeight/u.height))/100),u=this.graph2.getGraphBounds()):(this.graph2.view.getDrawPane().ownerSVGElement.style.transform="scale("+e+")",this.graph2.view.getDrawPane().ownerSVGElement.style.transformOrigin="0 0",u.width*=e,u.height*=e)):mxClient.NO_FO||(this.graph2.view.getDrawPane().ownerSVGElement.style.transform="");e=u.width+2*this.tooltipBorder+4;f=u.height+2*this.tooltipBorder;this.tooltip.style.overflow= +"visible";this.graph2.openLink=mxUtils.bind(this,function(){this.hideTooltip()});mxEvent.addGestureListeners(this.tooltip,mxUtils.bind(this,function(y){null!=this.tooltipMouseDown&&this.tooltipMouseDown(y);window.setTimeout(mxUtils.bind(this,function(){null!=this.tooltipCloseImage&&"none"!=this.tooltipCloseImage.style.display||this.hideTooltip()}),0)}),null,mxUtils.bind(this,function(y){this.hideTooltip()}));w=document.createElement("img");w.setAttribute("src",Editor.crossImage);w.setAttribute("title", +mxResources.get("close"));w.className="geButton";this.tooltip.appendChild(w);this.tooltipCloseImage=w;mxEvent.addListener(w,"click",mxUtils.bind(this,function(y){this.hideTooltip();mxEvent.consume(y)}))}this.tooltipCloseImage.style.display=k?"":"none";this.graph2.model.clear();this.graph2.view.setTranslate(this.tooltipBorder,this.tooltipBorder);this.graph2.view.scale=!m&&(e>this.maxTooltipWidth||f>this.maxTooltipHeight)?Math.round(100*Math.min(this.maxTooltipWidth/e,this.maxTooltipHeight/f))/100: +1;this.tooltip.style.display="block";this.graph2.labelsVisible=null==d||d;d=mxClient.NO_FO;mxClient.NO_FO=Editor.prototype.originalNoForeignObject;null!=b&&(b=this.graph2.cloneCells(b),this.graph2.pasteCellStyles(p.includeDescendants(b),v?p.currentVertexStyle:p.defaultVertexStyle,v?p.currentEdgeStyle:p.defaultEdgeStyle,null,p.pasteEdgeStyle),this.graph2.addCells(b));mxClient.NO_FO=d;v=this.graph2.getGraphBounds();m&&0e||v.height>f)?(e=Math.round(100*Math.min(e/v.width,f/v.height))/ +100,mxClient.NO_FO?(this.graph2.view.setScale(Math.round(100*Math.min(this.maxTooltipWidth/v.width,this.maxTooltipHeight/v.height))/100),v=this.graph2.getGraphBounds()):(this.graph2.view.getDrawPane().ownerSVGElement.style.transform="scale("+e+")",this.graph2.view.getDrawPane().ownerSVGElement.style.transformOrigin="0 0",v.width*=e,v.height*=e)):mxClient.NO_FO||(this.graph2.view.getDrawPane().ownerSVGElement.style.transform="");e=v.width+2*this.tooltipBorder+4;f=v.height+2*this.tooltipBorder;this.tooltip.style.overflow= "visible";this.tooltip.style.width=e+"px";m=e;this.tooltipTitles&&null!=g&&0e&&(this.tooltip.style.width=m+"px");this.tooltip.style.height=f+"px";g=-Math.round(u.x-this.tooltipBorder)+ -(m>e?(m-e)/2:0);e=-Math.round(u.y-this.tooltipBorder);h=null!=h?h:this.getTooltipOffset(a,u);a=h.x;h=h.y;0!=g||0!=e?this.graph2.view.canvas.setAttribute("transform","translate("+g+","+e+")"):this.graph2.view.canvas.removeAttribute("transform");this.tooltip.style.position="absolute";this.tooltip.style.left=a+"px";this.tooltip.style.top=h+"px";mxUtils.fit(this.tooltip,this.tooltipBorder);this.lastCreated=Date.now()}; +this.tooltipTitle.innerText="",this.tooltipTitle.style.display="",mxUtils.write(this.tooltipTitle,g),this.tooltipTitle.setAttribute("title",g),m=Math.min(this.maxTooltipWidth,Math.max(e,this.tooltipTitle.scrollWidth+4)),g=this.tooltipTitle.offsetHeight+10,f+=g,this.tooltipTitle.style.marginTop=2-g+"px"):null!=this.tooltipTitle&&null!=this.tooltipTitle.parentNode&&(this.tooltipTitle.style.display="none");m>e&&(this.tooltip.style.width=m+"px");this.tooltip.style.height=f+"px";g=-Math.round(v.x-this.tooltipBorder)+ +(m>e?(m-e)/2:0);e=-Math.round(v.y-this.tooltipBorder);h=null!=h?h:this.getTooltipOffset(a,v);a=h.x;h=h.y;0!=g||0!=e?this.graph2.view.canvas.setAttribute("transform","translate("+g+","+e+")"):this.graph2.view.canvas.removeAttribute("transform");this.tooltip.style.position="absolute";this.tooltip.style.left=a+"px";this.tooltip.style.top=h+"px";mxUtils.fit(this.tooltip,this.tooltipBorder);this.lastCreated=Date.now()}; Sidebar.prototype.showTooltip=function(a,b,e,f,g,d){if(this.enableTooltips&&this.showTooltips&&this.currentElt!=a){null!=this.thread&&(window.clearTimeout(this.thread),this.thread=null);var h=mxUtils.bind(this,function(){this.createTooltip(a,b,e,f,g,d)});null!=this.tooltip&&"none"!=this.tooltip.style.display?h():this.thread=window.setTimeout(h,this.tooltipDelay);this.currentElt=a}}; Sidebar.prototype.hideTooltip=function(){null!=this.thread&&(window.clearTimeout(this.thread),this.thread=null);null!=this.tooltip&&(this.tooltip.style.display="none",this.currentElt=null);this.tooltipMouseDown=null};Sidebar.prototype.addDataEntry=function(a,b,e,f,g){null==a&&(a="");null!=f&&(a+=" "+f);return this.addEntry(a,mxUtils.bind(this,function(){return this.createVertexTemplateFromData(g,b,e,f)}))}; Sidebar.prototype.addEntries=function(a){for(var b=0;bmxUtils.indexOf(this.ignoredStyles,f[0])&&b.push(f[0]+"="+f[1])}}return b.join(";")};Sidebar.prototype.addLibForStyle=function(a,b){""!=a&&(null==this.styleToLibs&&(this.styleToLibs={}),null==this.styleToLibs[a]&&(this.styleToLibs[a]=[]),this.styleToLibs[a].push(b))}; Sidebar.prototype.getLibsForStyle=function(a){return null!=this.styleToLibs?this.styleToLibs[a]:null}; -Sidebar.prototype.addEntry=function(a,b){if(null!=this.currentSearchEntryLibrary){var e=this,f=this.createVertexTemplateFromCells;this.createVertexTemplateFromCells=function(m,q,k,u,w){if(null!=m)for(q=0;qC.indexOf(ea)&&"test"!=ea.substring(0,4)&&mxResources.containsKey(ea)?f.actions.get(ea):null;if(null!=ja&&ja.isEnabled()&&ja.visible){if(ea.toLowerCase()==H)return ja;for(var P=H.toLowerCase().split(" "),V=0,Y=0;Yw.indexOf(S)||null!=S&&!S.isEnabled())&&(S=ja)}}return S}),E=null;f.addMenuHandler(p,mxUtils.bind(this,function(H,S){function ea(V){if(null!=V&&V.visible){var Y=H.addItem(V.getTitle(),null,function(){y(V,arguments)},S,null,V.isEnabled());V.toggleAction&&V.isSelected()&&H.addCheckmark(Y,Editor.checkmarkImage);null!=E||!V.isEnabled()||0!=p.value.length&&P!=V||b(Y,function(){y(V,arguments);g.container.focus()})}} +E=null;if(null!=f.pages)for(var ja=0;jaHeading

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

',"Textbox",null,null,"text textbox textarea"),this.createVertexTemplateEntry("ellipse;whiteSpace=wrap;html=1;",120,80,"","Ellipse",null,null,"oval ellipse state"),this.createVertexTemplateEntry("whiteSpace=wrap;html=1;aspect=fixed;",80,80,"","Square",null,null,"square"),this.createVertexTemplateEntry("ellipse;whiteSpace=wrap;html=1;aspect=fixed;", @@ -2441,116 +2454,116 @@ d.geometry.setTerminalPoint(new mxPoint(0,0),!0);d.geometry.setTerminalPoint(new 0,"Use","Dependency",null,"uml dependency use"),this.createEdgeTemplateEntry("endArrow=block;endSize=16;endFill=0;html=1;",160,0,"Extends","Generalization",null,"uml generalization extend"),this.createEdgeTemplateEntry("endArrow=block;startArrow=block;endFill=1;startFill=1;html=1;",160,0,"","Association 2",null,"uml association"),this.createEdgeTemplateEntry("endArrow=open;startArrow=circlePlus;endFill=0;startFill=0;endSize=8;html=1;",160,0,"","Inner Class",null,"uml inner class"),this.createEdgeTemplateEntry("endArrow=open;startArrow=cross;endFill=0;startFill=0;endSize=8;startSize=10;html=1;", 160,0,"","Terminate",null,"uml terminate"),this.createEdgeTemplateEntry("endArrow=block;dashed=1;endFill=0;endSize=12;html=1;",160,0,"","Implementation",null,"uml realization implementation"),this.createEdgeTemplateEntry("endArrow=diamondThin;endFill=0;endSize=24;html=1;",160,0,"","Aggregation 2",null,"uml aggregation"),this.createEdgeTemplateEntry("endArrow=diamondThin;endFill=1;endSize=24;html=1;",160,0,"","Composition 2",null,"uml composition"),this.createEdgeTemplateEntry("endArrow=open;endFill=1;endSize=12;html=1;", 160,0,"","Association 3",null,"uml association")];this.addPaletteFunctions("uml",mxResources.get("uml"),a||!1,g);this.setCurrentSearchEntryLibrary()};Sidebar.prototype.createTitle=function(a){var b=document.createElement("a");b.setAttribute("title",mxResources.get("sidebarTooltip"));b.className="geTitle";var e=document.createElement("span");mxUtils.write(e,a);b.appendChild(e);return b}; -Sidebar.prototype.createThumb=function(a,b,e,f,g,d,h,m,q,k,u,w){this.graph.labelsVisible=null==d||d;d=mxClient.NO_FO;mxClient.NO_FO=Editor.prototype.originalNoForeignObject;this.graph.shapeForegroundColor="light-dark(#000000, #ffffff)";this.graph.shapeBackgroundColor=null!=k?k:"light-dark(var(--panel-color), var(--dark-panel-color))";this.graph.view.scaleAndTranslate(null!=w?w:1,0,0);this.graph.addCells(a);a=this.graph.getGraphBounds();null==w&&(k=Math.floor(100*Math.min((b-2*this.thumbBorder)/a.width, +Sidebar.prototype.createThumb=function(a,b,e,f,g,d,h,m,p,k,v,w){this.graph.labelsVisible=null==d||d;d=mxClient.NO_FO;mxClient.NO_FO=Editor.prototype.originalNoForeignObject;this.graph.shapeForegroundColor="light-dark(#000000, #ffffff)";this.graph.shapeBackgroundColor=null!=k?k:"light-dark(var(--panel-color), var(--dark-panel-color))";this.graph.view.scaleAndTranslate(null!=w?w:1,0,0);this.graph.addCells(a);a=this.graph.getGraphBounds();null==w&&(k=Math.floor(100*Math.min((b-2*this.thumbBorder)/a.width, (e-2*this.thumbBorder)/a.height))/100,this.graph.view.scaleAndTranslate(k,(b-a.width*k)/2/k-a.x,(e-a.height*k)/2/k-a.y));this.graph.dialect!=mxConstants.DIALECT_SVG||mxClient.NO_FO||null==this.graph.view.getCanvas().ownerSVGElement?(k=this.graph.container.cloneNode(!1),k.innerHTML=this.graph.container.innerHTML):k=this.graph.view.getCanvas().ownerSVGElement.cloneNode(!0);this.graph.getModel().clear();this.graph.view.scaleAndTranslate(1,0,0);mxClient.NO_FO=d;k.style.position="relative";k.style.overflow= -null!=w?"visible":"hidden";k.style.left=(null!=u?u:this.thumbBorder-1)+"px";k.style.top=k.style.left;k.style.width=b+"px";k.style.height=e+"px";k.style.visibility="";k.style.minWidth="";k.style.minHeight="";this.disablePointerEvents(k);f.appendChild(k);this.sidebarTitles&&null!=g&&0!=h&&(f.style.height=this.thumbHeight+0+this.sidebarTitleSize+8+"px",b=document.createElement("div"),b.style.color=Editor.isDarkMode()?"#A0A0A0":"#303030",b.style.fontSize=this.sidebarTitleSize+"px",b.style.textAlign="center", +null!=w?"visible":"hidden";k.style.left=(null!=v?v:this.thumbBorder-1)+"px";k.style.top=k.style.left;k.style.width=b+"px";k.style.height=e+"px";k.style.visibility="";k.style.minWidth="";k.style.minHeight="";this.disablePointerEvents(k);f.appendChild(k);this.sidebarTitles&&null!=g&&0!=h&&(f.style.height=this.thumbHeight+0+this.sidebarTitleSize+8+"px",b=document.createElement("div"),b.style.color=Editor.isDarkMode()?"#A0A0A0":"#303030",b.style.fontSize=this.sidebarTitleSize+"px",b.style.textAlign="center", b.style.whiteSpace="nowrap",b.style.overflow="hidden",b.style.textOverflow="ellipsis",mxClient.IS_IE&&(b.style.height=this.sidebarTitleSize+12+"px"),b.style.paddingTop="4px",mxUtils.write(b,g),f.appendChild(b));return a}; Sidebar.prototype.createSection=function(a){return mxUtils.bind(this,function(){var b=document.createElement("div");b.setAttribute("title",a);b.style.textOverflow="ellipsis";b.style.whiteSpace="nowrap";b.style.textAlign="center";b.style.overflow="hidden";b.style.width="100%";b.style.padding="14px 0";mxUtils.write(b,a);return b})}; -Sidebar.prototype.createItem=function(a,b,e,f,g,d,h,m,q,k,u,w,z,C){m=null!=m?m:!0;k=null!=k?k:this.thumbWidth;u=null!=u?u:this.thumbHeight;var D=document.createElement("a"),E=2*this.thumbBorder;D.style.width=k+E+"px";D.style.height=u+E+"px";mxEvent.addListener(D,"click",function(I){mxEvent.consume(I)});var G=new mxRectangle(0,0,g,d);null!=a&&0ba&&null!=Ha&&!mxEvent.isShiftDown(Ka)&&(mxUtils.getValue(Ha.style,mxConstants.STYLE_SHAPE)!=mxUtils.getValue(ca,mxConstants.STYLE_SHAPE)&&(mxUtils.getValue(Ha.style,mxConstants.STYLE_STROKECOLOR,mxConstants.NONE)!=mxConstants.NONE||mxUtils.getValue(Ha.style,mxConstants.STYLE_FILLCOLOR,mxConstants.NONE)!=mxConstants.NONE||mxUtils.getValue(Ha.style, -mxConstants.STYLE_GRADIENTCOLOR,mxConstants.NONE)!=mxConstants.NONE)||"image"==mxUtils.getValue(ca,mxConstants.STYLE_SHAPE)||1500this.dropTargetDelay&&!this.isDropStyleTargetIgnored(Ha)&&(na.model.isVertex(Ha.cell)&&null!=w||na.model.isEdge(Ha.cell)&&na.model.isEdge(f[0]))){if(na.isCellEditable(Ha.cell)){K=Ha;var ra=na.model.isEdge(Ha.cell)?na.view.getPoint(Ha):new mxPoint(Ha.getCenterX(),Ha.getCenterY());ra=new mxRectangle(ra.x-this.refreshTarget.width/2,ra.y-this.refreshTarget.height/ -2,this.refreshTarget.width,this.refreshTarget.height);N.style.left=Math.floor(ra.x)+"px";N.style.top=Math.floor(ra.y)+"px";null==Y&&(na.container.appendChild(N),Y=N.parentNode);m(ya,za,ra,N)}}else null==K||!mxUtils.contains(K,ya,za)||1500ba&&ba>this.dropTargetDelay||na.model.isEdge(Pa)?Ha:null,null!=J&&ra){Ia=[ja,la,W,O,M,X];for(ra=0;raaa&&null!=Ha&&!mxEvent.isShiftDown(Ka)&&(mxUtils.getValue(Ha.style,mxConstants.STYLE_SHAPE)!=mxUtils.getValue(ba,mxConstants.STYLE_SHAPE)&&(mxUtils.getValue(Ha.style,mxConstants.STYLE_STROKECOLOR,mxConstants.NONE)!=mxConstants.NONE||mxUtils.getValue(Ha.style,mxConstants.STYLE_FILLCOLOR,mxConstants.NONE)!=mxConstants.NONE||mxUtils.getValue(Ha.style, +mxConstants.STYLE_GRADIENTCOLOR,mxConstants.NONE)!=mxConstants.NONE)||"image"==mxUtils.getValue(ba,mxConstants.STYLE_SHAPE)||1500this.dropTargetDelay&&!this.isDropStyleTargetIgnored(Ha)&&(na.model.isVertex(Ha.cell)&&null!=w||na.model.isEdge(Ha.cell)&&na.model.isEdge(f[0]))){if(na.isCellEditable(Ha.cell)){L=Ha;var ra=na.model.isEdge(Ha.cell)?na.view.getPoint(Ha):new mxPoint(Ha.getCenterX(),Ha.getCenterY());ra=new mxRectangle(ra.x-this.refreshTarget.width/2,ra.y-this.refreshTarget.height/ +2,this.refreshTarget.width,this.refreshTarget.height);H.style.left=Math.floor(ra.x)+"px";H.style.top=Math.floor(ra.y)+"px";null==S&&(na.container.appendChild(H),S=H.parentNode);m(ya,za,ra,H)}}else null==L||!mxUtils.contains(L,ya,za)||1500aa&&aa>this.dropTargetDelay||na.model.isEdge(Pa)?Ha:null,null!=M&&ra){Ia=[ea,ja,X,U,N,ca];for(ra=0;raq||Math.abs(u.y-mxEvent.getClientY(C))>q))&&null!=this.dragElement&&"none"==this.dragElement.style.display&&(this.dragElement.style.display="");h.apply(this,arguments)};b.mouseUp=function(C){try{mxEvent.isPopupTrigger(C)||null!=this.currentGraph||null==this.dragElement||"none"!=this.dragElement.style.display||(null!=f&&f(C),mxEvent.isConsumed(C)||w.itemClicked(e,b,C,a)),m.apply(b,arguments),u=null,w.currentElt=a}catch(D){b.reset(),w.editorUi.handleError(D)}}}; -Sidebar.prototype.createVertexTemplateEntry=function(a,b,e,f,g,d,h,m){null!=m&&null!=g&&(m+=" "+g);m=null!=m&&0p||Math.abs(v.y-mxEvent.getClientY(C))>p))&&null!=this.dragElement&&"none"==this.dragElement.style.display&&(this.dragElement.style.display="");h.apply(this,arguments)};b.mouseUp=function(C){try{mxEvent.isPopupTrigger(C)||null!=this.currentGraph||null==this.dragElement||"none"!=this.dragElement.style.display||(null!=f&&f(C),mxEvent.isConsumed(C)||w.itemClicked(e,b,C,a)),m.apply(b,arguments),v=null,w.currentElt=a}catch(D){b.reset(),w.editorUi.handleError(D)}}}; +Sidebar.prototype.createVertexTemplateEntry=function(a,b,e,f,g,d,h,m){null!=m&&null!=g&&(m+=" "+g);m=null!=m&&0mxUtils.indexOf(g,z)){C=this.getTagsForStencil(w,z);var G=null!=m?m[z]:null;null!=G&&C.push(G);u.push(this.createVertexTemplateEntry("shape="+w+z.toLowerCase()+f,Math.round(D*h),Math.round(E*h),"",z.replace(/_/g," "),null,null,this.filterTags(C.join(" "))))}}), -!0,!0);this.addPaletteFunctions(a,b,!1,u)}else this.addPalette(a,b,!1,mxUtils.bind(this,function(w){null==f&&(f="");null!=d&&d.call(this,w);if(null!=q)for(var z=0;zmxUtils.indexOf(g,D))&&w.appendChild(this.createVertexTemplate("shape="+C+D.toLowerCase()+f,Math.round(G*h),Math.round(I*h),"",D.replace(/_/g," "),!0))}),!0)}))}; +Sidebar.prototype.addStencilPalette=function(a,b,e,f,g,d,h,m,p,k){h=null!=h?h:1;if(this.addStencilsToIndex){var v=[];if(null!=p)for(k=0;kmxUtils.indexOf(g,y)){C=this.getTagsForStencil(w,y);var G=null!=m?m[y]:null;null!=G&&C.push(G);v.push(this.createVertexTemplateEntry("shape="+w+y.toLowerCase()+f,Math.round(D*h),Math.round(E*h),"",y.replace(/_/g," "),null,null,this.filterTags(C.join(" "))))}}), +!0,!0);this.addPaletteFunctions(a,b,!1,v)}else this.addPalette(a,b,!1,mxUtils.bind(this,function(w){null==f&&(f="");null!=d&&d.call(this,w);if(null!=p)for(var y=0;ymxUtils.indexOf(g,D))&&w.appendChild(this.createVertexTemplate("shape="+C+D.toLowerCase()+f,Math.round(G*h),Math.round(J*h),"",D.replace(/_/g," "),!0))}),!0)}))}; Sidebar.prototype.destroy=function(){null!=this.graph&&(null!=this.graph.container&&null!=this.graph.container.parentNode&&this.graph.container.parentNode.removeChild(this.graph.container),this.graph.destroy(),this.graph=null);null!=this.escapeListener&&(this.editorUi.editor.graph.removeListener(this.escapeListener),this.escapeListener=null);null!=this.refreshListener&&(this.editorUi.removeListener(this.refreshListener),this.refreshListener=null);null!=this.pointerUpHandler&&(mxEvent.removeListener(document, mxClient.IS_POINTER?"pointerup":"mouseup",this.pointerUpHandler),this.pointerUpHandler=null);null!=this.pointerDownHandler&&(mxEvent.removeListener(document,mxClient.IS_POINTER?"pointerdown":"mousedown",this.pointerDownHandler),this.pointerDownHandler=null);null!=this.pointerMoveHandler&&(mxEvent.removeListener(document,mxClient.IS_POINTER?"pointermove":"mousemove",this.pointerMoveHandler),this.pointerMoveHandler=null);null!=this.pointerOutHandler&&(mxEvent.removeListener(document,mxClient.IS_POINTER? "pointerout":"mouseout",this.pointerOutHandler),this.pointerOutHandler=null)};(function(){var a=[["nbsp","160"],["shy","173"]],b=mxUtils.parseXml;mxUtils.parseXml=function(f){for(var g=0;g -fa||Math.abs(h.y-U.getGraphY())>fa){var ka=null;mxEvent.isShiftDown(U.getEvent())||(ka=this.selectionCellsHandler.getHandler(aa.cell));if(null!=ka&&null!=ka.bends&&0ha||Math.abs(h.y-V.getGraphY())>ha){var la=null;mxEvent.isShiftDown(V.getEvent())|| +(la=this.selectionCellsHandler.getHandler(Y.cell));if(null!=la&&null!=la.bends&&0'+(""!=g?'":"")+'
'+a+"
")}; -Graph.addLightDarkColors=function(a,b,e,f){function g(z,C,D){return null!=f?f(z,C,D):mxUtils.isValidColor(D)?(null==h&&null!=b&&(h={}),null!=h&&(h[C]=z.style.getPropertyValue(C)),D=mxUtils.getLightDarkColor(D,null,null,e),z.style.setProperty(C,D.cssText),!0):!1}for(var d=a.getElementsByTagName("*"),h=null,m=!1,q=0;qpageSize){var T=w.startIndex||0;I=G.slice(Math.max(0,T),Math.min(G.length,T+pageSize))}I=f.getOpposites(I,E).concat(I);var K=u.cloneCells(I);for(J=0;JV.geometry.x?-.8:.5(w.startIndex||0)+pageSize){var O=u.createVertex(null,null,mxResources.get("nextPage")+" ("+(Math.ceil((w.startIndex||0)/pageSize)+2)+"/"+Math.ceil(G.length/pageSize)+")",0,0,120,30,"fillColor=green;fontColor=white;strokeColor=green;rounded=1;");O.referenceCell= -D;O.startIndex=(w.startIndex||0)+pageSize;K.splice(0,0,O)}for(var M in u.getModel().cells){var X=u.getModel().getCell(M);X!=u.rootCell&&!u.getModel().isAncestor(u.rootCell,X)&&u.getModel().isVertex(X)&&u.removeCells([X])}u.addCells(K);var N=u.getModel().getGeometry(u.rootCell);null!=N&&(N=N.clone(),N.x=z-N.width/2,N.y=C-N.height/3,u.getModel().setGeometry(u.rootCell,N));w=[];for(M in u.getModel().cells)X=u.getModel().getCell(M),X!=u.rootCell&&u.getModel().isVertex(X)&&u.getModel().getParent(X)==u.getDefaultParent()&& -(w.push(X),N=u.getModel().getGeometry(X),null!=N&&(N.x=z-N.width/2,N.y=C-N.height/2));var Y=w.length,ja=2*Math.PI/Y,la=Math.max(minSize,Math.min(u.container.scrollWidth/2.5-80,u.container.scrollHeight/2.5-80));for(z=0;zpageSize){var L=y.startIndex||0;M=J.slice(Math.max(0,L),Math.min(J.length,L+pageSize))}M=f.getOpposites(M,G).concat(M);var W=w.cloneCells(M);for(O=0;OX.geometry.x?-.8:.5(y.startIndex||0)+pageSize){var N=w.createVertex(null,null,mxResources.get("nextPage")+" ("+(Math.ceil((y.startIndex||0)/pageSize)+2)+"/"+Math.ceil(J.length/pageSize)+")",0,0,120,30,"fillColor=green;fontColor=white;strokeColor=green;rounded=1;");N.referenceCell=E;N.startIndex=(y.startIndex||0)+pageSize;W.splice(0,0,N)}for(var ca in w.getModel().cells){var H=w.getModel().getCell(ca);H!=w.rootCell&&!w.getModel().isAncestor(w.rootCell, +H)&&w.getModel().isVertex(H)&&w.removeCells([H])}w.addCells(W);var S=w.getModel().getGeometry(w.rootCell);null!=S&&(S=S.clone(),S.x=C-S.width/2,S.y=D-S.height/3,w.getModel().setGeometry(w.rootCell,S));y=[];for(ca in w.getModel().cells)H=w.getModel().getCell(ca),H!=w.rootCell&&w.getModel().isVertex(H)&&w.getModel().getParent(H)==w.getDefaultParent()&&(y.push(H),S=w.getModel().getGeometry(H),null!=S&&(S.x=C-S.width/2,S.y=D-S.height/2));var ea=y.length,ja=2*Math.PI/ea,P=Math.max(minSize,Math.min(w.container.scrollWidth/ +2-40,w.container.scrollHeight/2-80));for(C=0;CmxUtils.indexOf(q,u)})),this.updateCellStyles(h,m))};Graph.prototype.copyCellStyles=function(h,m,q, -k,u,w,z){var C=!1,D=!1;if(0mxUtils.indexOf(Graph.edgeStyles,K))&&(C=mxUtils.setStyle(C,K,N),"fontFamily"== -K&&null==D.fontSource&&(C=mxUtils.setStyle(C,"fontSource",null)),X&&"rounded"==K&&"1"==N&&null==D.curved&&(C=mxUtils.setStyle(C,"curved",null)))}Editor.simpleLabels&&(C=mxUtils.setStyle(mxUtils.setStyle(C,"html",null),"whiteSpace",null));this.model.setStyle(z,C)}}finally{this.model.endUpdate()}return h};Graph.prototype.updateCellStyles=function(h,m){this.model.beginUpdate();try{for(var q=0;qmxUtils.indexOf(p,v)})),this.updateCellStyles(h,m))};Graph.prototype.copyCellStyles=function(h,m,p, +k,v,w,y){var C=!1,D=!1;if(0mxUtils.indexOf(Graph.edgeStyles,L))&&(C=mxUtils.setStyle(C,L,H),"fontFamily"== +L&&null==D.fontSource&&(C=mxUtils.setStyle(C,"fontSource",null)),ca&&"rounded"==L&&"1"==H&&null==D.curved&&(C=mxUtils.setStyle(C,"curved",null)))}Editor.simpleLabels&&(C=mxUtils.setStyle(mxUtils.setStyle(C,"html",null),"whiteSpace",null));this.model.setStyle(y,C)}}finally{this.model.endUpdate()}return h};Graph.prototype.updateCellStyles=function(h,m){this.model.beginUpdate();try{for(var p=0;pz?"a":"p",tt:12>z?"am":"pm",T:12>z?"A":"P",TT:12>z?"AM":"PM",Z:e?"UTC":(String(a).match(g)||[""]).pop().replace(d,""),o:(0y?"a":"p",tt:12>y?"am":"pm",T:12>y?"A":"P",TT:12>y?"AM":"PM",Z:e?"UTC":(String(a).match(g)||[""]).pop().replace(d,""),o:(0g&&"%"==b.charAt(match.index-1))h=d.substring(1);else{var m=d.substring(1,d.length-1),q={mm:mxConstants.MILLIMETERS,"in":mxConstants.INCHES,m:mxConstants.METERS,current:this.view.unit};if("id"==m)h=a.id;else if("width"===m.substring(0,5)&&this.model.isVertex(a)){var k=this.getCellGeometry(a); -null!=k&&(h=k.width,5m.indexOf("{"))for(q=a;null==h&&null!= -q;)null!=q.value&&"object"==typeof q.value&&(Graph.translateDiagram&&null!=Graph.diagramLanguage&&(h=q.getAttribute(m+"_"+Graph.diagramLanguage)),null==h&&(h=q.hasAttribute(m)?null!=q.getAttribute(m)?q.getAttribute(m):"":null)),q=this.model.getParent(q);null==h&&(h=this.getGlobalVariable(m));null==h&&null!=e&&(h=e[m])}f.push(b.substring(g,match.index)+(null!=h?h:d));g=match.index+d.length}}f.push(b.substring(g))}return f.join("")}; +Graph.prototype.replacePlaceholders=function(a,b,e,f){f=[];if(null!=b){for(var g=0;match=this.placeholderPattern.exec(b);){var d=match[0];if(2g&&"%"==b.charAt(match.index-1))h=d.substring(1);else{var m=d.substring(1,d.length-1),p={mm:mxConstants.MILLIMETERS,"in":mxConstants.INCHES,m:mxConstants.METERS,current:this.view.unit};if("id"==m)h=a.id;else if("width"===m.substring(0,5)&&this.model.isVertex(a)){var k=this.getCellGeometry(a); +null!=k&&(h=k.width,5m.indexOf("{"))for(p=a;null==h&&null!= +p;)null!=p.value&&"object"==typeof p.value&&(Graph.translateDiagram&&null!=Graph.diagramLanguage&&(h=p.getAttribute(m+"_"+Graph.diagramLanguage)),null==h&&(h=p.hasAttribute(m)?null!=p.getAttribute(m)?p.getAttribute(m):"":null)),p=this.model.getParent(p);null==h&&(h=this.getGlobalVariable(m));null==h&&null!=e&&(h=e[m])}f.push(b.substring(g,match.index)+(null!=h?h:d));g=match.index+d.length}}f.push(b.substring(g))}return f.join("")}; Graph.prototype.restoreSelection=function(a){if(null!=a&&0m[0].indexOf("=")&&(m=m.slice(1));this.model.setStyle(b[d],m.join(";"))}this.setCellStyles(mxConstants.STYLE_PERIMETER,null,[b[d]]);this.setCellStyles("points",null,[b[d]]);this.pasteStyle(g,[b[d]],null,!0)}else g=this.copyStyle(b[d]),this.model.setStyle(b[d],f),this.pasteStyle(g,[b[d]]);"1"==mxUtils.getValue(this.getCellStyle(b[d],!1),"composite","0")&&this.removeChildCells(b[d])}}finally{this.model.endUpdate()}}; Graph.prototype.selectCellsForConnectVertex=function(a,b,e){2==a.length&&this.model.isVertex(a[1])?(this.setSelectionCell(a[1]),this.scrollCellToVisible(a[1]),null!=e&&(mxEvent.isTouchEvent(b)?e.update(e.getState(this.view.getState(a[1]))):e.reset())):this.setSelectionCells(a)};Graph.prototype.isCloneConnectSource=function(a){var b=null;null!=this.layoutManager&&(b=this.layoutManager.getLayout(this.model.getParent(a)));return this.isTableRow(a)||this.isTableCell(a)||null!=b&&b.constructor==mxStackLayout}; Graph.prototype.insertEdgeBeforeCell=function(a,b){for(var e=b;null!=e.parent&&null!=e.geometry&&e.geometry.relative&&e.parent!=a.parent;)e=this.model.getParent(e);null!=e&&null!=e.parent&&e.parent==a.parent&&(b=e.parent.getIndex(e),this.model.add(e.parent,a,b))}; -Graph.prototype.connectVertex=function(a,b,e,f,g,d,h,m){d=d?d:!1;if(a.geometry.relative&&this.model.isEdge(a.parent))return[];for(;a.geometry.relative&&this.model.isVertex(a.parent);)a=a.parent;var q=this.isCloneConnectSource(a),k=q?a:this.getCompositeParent(a),u=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(k.geometry.x,k.geometry.y);b==mxConstants.DIRECTION_NORTH?(u.x+=k.geometry.width/2,u.y-=e):b== -mxConstants.DIRECTION_SOUTH?(u.x+=k.geometry.width/2,u.y+=k.geometry.height+e):(u.x=b==mxConstants.DIRECTION_WEST?u.x-e:u.x+(k.geometry.width+e),u.y+=k.geometry.height/2);var w=this.view.getState(this.model.getParent(a));e=this.view.scale;var z=this.view.translate;k=z.x*e;z=z.y*e;null!=w&&this.model.isVertex(w.cell)&&(k=w.x,z=w.y);this.model.isVertex(a.parent)&&a.geometry.relative&&(u.x+=a.parent.geometry.x,u.y+=a.parent.geometry.y);d=d?null:(new mxRectangle(k+u.x*e,z+u.y*e)).grow(40*e);d=null!=d? -this.getCells(0,0,0,0,null,null,d,null,!0):null;w=this.view.getState(a);var C=null,D=null;if(null!=d){d=d.reverse();for(var E=0;E/g,"\n"));g=Editor.convertHtmlToText(g);this.cellLabelChanged(a,g);f=!0}b&&(this.setCellStyles("fontSource",null,[a]),this.setCellStyles(mxConstants.STYLE_FONTFAMILY,null,[a]),this.setCellStyles(mxConstants.STYLE_FONTSIZE, null,[a]),this.setCellStyles(mxConstants.STYLE_FONTSTYLE,null,[a]),this.setCellStyles(mxConstants.STYLE_FONTCOLOR,null,[a]),this.setCellStyles(mxConstants.STYLE_LABEL_BORDERCOLOR,null,[a]),this.setCellStyles(mxConstants.STYLE_LABEL_BACKGROUNDCOLOR,null,[a]))}finally{this.getModel().endUpdate()}return f};Graph.prototype.createParent=function(a,b,e,f,g){a=this.cloneCell(a);for(var d=0;dG||Math.abs(ja.y-T.y)>G)&&(Math.abs(ja.x-J.x)>G||Math.abs(ja.y-J.y)>G)&&(null==X||mxUtils.ptLineDist(T.x,T.y,J.x,J.y,X.x,X.y)>G||mxUtils.ptLineDist(T.x,T.y,J.x,J.y,Y.x,Y.y)>G)&&(null==V||mxUtils.ptLineDist(T.x,T.y,J.x,J.y,V.x,V.y)>G||mxUtils.ptLineDist(T.x,T.y,J.x,J.y,N.x,N.y)>G)){V=ja.x-T.x;X=ja.y-T.y;ja={distSq:V*V+X*X,x:ja.x,y:ja.y};for(V=0;Vja.distSq){K.splice(V, -0,ja);ja=null;break}null==ja||0!=K.length&&K[K.length-1].x===ja.x&&K[K.length-1].y===ja.y||K.push(ja)}X=Y}}}for(O=0;OE*E&&0E*E&&(X=new mxPoint(M.x-V.x,M.y-V.y),O=new mxPoint(M.x+V.x,M.y+V.y),K.push(X),this.addPoints(w,K,C,D,!1,null,I),K=0>Math.round(V.x)||0==Math.round(V.x)&&0>=Math.round(V.y)?1:-1,I=!1,"sharp"==G?(w.lineTo(X.x-V.y*K,X.y+V.x*K),w.lineTo(O.x-V.y*K,O.y+ -V.x*K),w.lineTo(O.x,O.y)):"line"==G?(w.moveTo(X.x+V.y*K,X.y-V.x*K),w.lineTo(X.x-V.y*K,X.y+V.x*K),w.moveTo(O.x-V.y*K,O.y+V.x*K),w.lineTo(O.x+V.y*K,O.y-V.x*K),w.moveTo(O.x,O.y)):"arc"==G?(K*=1.3,w.curveTo(X.x-V.y*K,X.y+V.x*K,O.x-V.y*K,O.y+V.x*K,O.x,O.y)):(w.moveTo(O.x,O.y),I=!0),K=[O],X=!0))}else V=null;X||(K.push(M),J=M)}this.addPoints(w,K,C,D,!1,null,I);w.stroke()}};var m=mxGraphView.prototype.getFixedTerminalPoint;mxGraphView.prototype.getFixedTerminalPoint=function(w,z,C,D){return null!=z&&"centerPerimeter"== -z.style[mxConstants.STYLE_PERIMETER]?new mxPoint(z.getCenterX(),z.getCenterY()):m.apply(this,arguments)};var q=mxGraphView.prototype.updateFloatingTerminalPoint;mxGraphView.prototype.updateFloatingTerminalPoint=function(w,z,C,D){if(null==z||null==w||"1"!=z.style.snapToPoint&&"1"!=w.style.snapToPoint)q.apply(this,arguments);else{z=this.getTerminalPort(w,z,D);var E=this.getNextPoint(w,C,D),G=this.graph.isOrthogonal(w),I=mxUtils.toRadians(Number(z.style[mxConstants.STYLE_ROTATION]||"0")),J=new mxPoint(z.getCenterX(), -z.getCenterY());if(0!=I){var T=Math.cos(-I),K=Math.sin(-I);E=mxUtils.getRotatedPoint(E,T,K,J)}T=parseFloat(w.style[mxConstants.STYLE_PERIMETER_SPACING]||0);T+=parseFloat(w.style[D?mxConstants.STYLE_SOURCE_PERIMETER_SPACING:mxConstants.STYLE_TARGET_PERIMETER_SPACING]||0);E=this.getPerimeterPoint(z,E,0==I&&G,T);0!=I&&(T=Math.cos(I),K=Math.sin(I),E=mxUtils.getRotatedPoint(E,T,K,J));w.setAbsoluteTerminalPoint(this.snapToAnchorPoint(w,z,C,D,E),D)}};mxGraphView.prototype.snapToAnchorPoint=function(w,z, -C,D,E){if(null!=z&&null!=w){w=this.graph.getAllConnectionConstraints(z);D=C=null;if(null!=w)for(var G=0;GG||Math.abs(ea.y-O.y)>G)&&(Math.abs(ea.x-M.x)>G||Math.abs(ea.y-M.y)>G)&&(null==ca||mxUtils.ptLineDist(O.x,O.y,M.x,M.y,ca.x,ca.y)>G||mxUtils.ptLineDist(O.x,O.y,M.x,M.y,S.x,S.y)>G)&&(null==W||mxUtils.ptLineDist(O.x,O.y,M.x,M.y,W.x,W.y)>G||mxUtils.ptLineDist(O.x,O.y,M.x,M.y,H.x,H.y)>G)){W=ea.x-O.x;ca=ea.y-O.y;ea={distSq:W*W+ca*ca,x:ea.x,y:ea.y};for(W=0;Wea.distSq){L.splice(W, +0,ea);ea=null;break}null==ea||0!=L.length&&L[L.length-1].x===ea.x&&L[L.length-1].y===ea.y||L.push(ea)}ca=S}}}for(U=0;UE*E&&0E*E&&(ca=new mxPoint(N.x-W.x,N.y-W.y),U=new mxPoint(N.x+W.x,N.y+W.y),L.push(ca),this.addPoints(w,L,C,D,!1,null,J),L=0>Math.round(W.x)||0==Math.round(W.x)&&0>=Math.round(W.y)?1:-1,J=!1,"sharp"==G?(w.lineTo(ca.x-W.y*L,ca.y+W.x*L),w.lineTo(U.x-W.y*L, +U.y+W.x*L),w.lineTo(U.x,U.y)):"line"==G?(w.moveTo(ca.x+W.y*L,ca.y-W.x*L),w.lineTo(ca.x-W.y*L,ca.y+W.x*L),w.moveTo(U.x-W.y*L,U.y+W.x*L),w.lineTo(U.x+W.y*L,U.y-W.x*L),w.moveTo(U.x,U.y)):"arc"==G?(L*=1.3,w.curveTo(ca.x-W.y*L,ca.y+W.x*L,U.x-W.y*L,U.y+W.x*L,U.x,U.y)):(w.moveTo(U.x,U.y),J=!0),L=[U],ca=!0))}else W=null;ca||(L.push(N),M=N)}this.addPoints(w,L,C,D,!1,null,J);w.stroke()}};var m=mxGraphView.prototype.getFixedTerminalPoint;mxGraphView.prototype.getFixedTerminalPoint=function(w,y,C,D){return null!= +y&&"centerPerimeter"==y.style[mxConstants.STYLE_PERIMETER]?new mxPoint(y.getCenterX(),y.getCenterY()):m.apply(this,arguments)};var p=mxGraphView.prototype.updateFloatingTerminalPoint;mxGraphView.prototype.updateFloatingTerminalPoint=function(w,y,C,D){if(null==y||null==w||"1"!=y.style.snapToPoint&&"1"!=w.style.snapToPoint)p.apply(this,arguments);else{y=this.getTerminalPort(w,y,D);var E=this.getNextPoint(w,C,D),G=this.graph.isOrthogonal(w),J=mxUtils.toRadians(Number(y.style[mxConstants.STYLE_ROTATION]|| +"0")),M=new mxPoint(y.getCenterX(),y.getCenterY());if(0!=J){var O=Math.cos(-J),L=Math.sin(-J);E=mxUtils.getRotatedPoint(E,O,L,M)}O=parseFloat(w.style[mxConstants.STYLE_PERIMETER_SPACING]||0);O+=parseFloat(w.style[D?mxConstants.STYLE_SOURCE_PERIMETER_SPACING:mxConstants.STYLE_TARGET_PERIMETER_SPACING]||0);E=this.getPerimeterPoint(y,E,0==J&&G,O);0!=J&&(O=Math.cos(J),L=Math.sin(J),E=mxUtils.getRotatedPoint(E,O,L,M));w.setAbsoluteTerminalPoint(this.snapToAnchorPoint(w,y,C,D,E),D)}};mxGraphView.prototype.snapToAnchorPoint= +function(w,y,C,D,E){if(null!=y&&null!=w){w=this.graph.getAllConnectionConstraints(y);D=C=null;if(null!=w)for(var G=0;G=d.getStatus()&&eval.call(window,d.getText())}}catch(h){null!=window.console&&console.log("error in getStencil:",a,e,b,g,h)}}mxStencilRegistry.packages[e]=1}}else e=e.replace("_-_","_"),mxStencilRegistry.loadStencilSet(STENCIL_PATH+"/"+e+".xml",null);b=mxStencilRegistry.stencils[a]}}return b}; @@ -2789,156 +2803,156 @@ mxStencilRegistry.loadStencilSet=function(a,b,e,f){var g=mxStencilRegistry.packa g.documentElement&&mxStencilRegistry.parseStencilSet(g.documentElement,b,d)}};mxStencilRegistry.loadStencil=function(a,b){if(null!=b)mxUtils.get(a,mxUtils.bind(this,function(e){b(200<=e.getStatus()&&299>=e.getStatus()?e.getXml():null)}),mxUtils.bind(this,function(e){b(null)}));else return mxUtils.load(a).getXml()};mxStencilRegistry.parseStencilSets=function(a){for(var b=0;b').src;mxWindow.prototype.minimizeImage=Graph.createSvgImage(14,10,'').src;mxWindow.prototype.normalizeImage=Graph.createSvgImage(14,10,'').src;mxWindow.prototype.resizeImage=Graph.createSvgImage(10,10,'').src; -mxEdgeHandler.prototype.snapToTerminals=!0;mxGraphHandler.prototype.guidesEnabled=!0;mxGraphHandler.prototype.removeEmptyParents=!0;mxRubberband.prototype.fadeOut=!0;mxGuide.prototype.isEnabledForEvent=function(p){return!mxEvent.isAltDown(p)||mxEvent.isShiftDown(p)};var e=mxGraphLayout.prototype.isVertexIgnored;mxGraphLayout.prototype.isVertexIgnored=function(p){return e.apply(this,arguments)||this.graph.isTableRow(p)||this.graph.isTableCell(p)};var f=mxGraphLayout.prototype.isEdgeIgnored;mxGraphLayout.prototype.isEdgeIgnored= -function(p){return f.apply(this,arguments)||this.graph.isEdgeIgnored(p)};var g=mxConnectionHandler.prototype.isCreateTarget;mxConnectionHandler.prototype.isCreateTarget=function(p){return this.graph.isCloneEvent(p)!=g.apply(this,arguments)};mxConstraintHandler.prototype.createHighlightShape=function(){var p=new mxEllipse(null,this.highlightColor,this.highlightColor,0);p.opacity=mxConstants.HIGHLIGHT_OPACITY;return p};mxConnectionHandler.prototype.livePreview=!0;mxConnectionHandler.prototype.cursor= -"crosshair";mxConnectionHandler.prototype.createEdgeState=function(p){p=this.graph.createCurrentEdgeStyle();p=this.graph.createEdge(null,null,null,null,null,p);p=new mxCellState(this.graph.view,p,this.graph.getCellStyle(p));for(var A in this.graph.currentEdgeStyle)p.style[A]=this.graph.currentEdgeStyle[A];if(null!=this.previous){var B=this.previous.style.newEdgeStyle;if(null!=B)try{var F=JSON.parse(B);for(A in F)p.style[A]=F[A]}catch(L){}}p.style=this.graph.postProcessCellStyle(p.cell,p.style);return p}; -var d=mxConnectionHandler.prototype.createShape;mxConnectionHandler.prototype.createShape=function(){var p=d.apply(this,arguments);p.isDashed="1"==this.graph.currentEdgeStyle[mxConstants.STYLE_DASHED];return p};mxConnectionHandler.prototype.updatePreview=function(p){};var h=mxConnectionHandler.prototype.createMarker;mxConnectionHandler.prototype.createMarker=function(){var p=h.apply(this,arguments),A=p.getCell;p.getCell=mxUtils.bind(this,function(B){var F=A.apply(this,arguments);this.error=null;return F}); -return p};Graph.prototype.defaultVertexStyle={};Graph.prototype.defaultEdgeStyle={edgeStyle:"orthogonalEdgeStyle",rounded:"0",jettySize:"auto",orthogonalLoop:"1"};Graph.prototype.createCurrentEdgeStyle=function(){for(var p="edgeStyle="+(this.currentEdgeStyle.edgeStyle||"none")+";",A="shape curved rounded comic sketch fillWeight hachureGap hachureAngle jiggle disableMultiStroke disableMultiStrokeFill fillStyle curveFitting simplification comicStyle jumpStyle jumpSize".split(" "),B=0;B=ia.x&&this.model.remove(va[A]);var Ma=this.model.getTerminal(B,!1); -if(null!=Ma){var Na=this.getCurrentCellStyle(Ma);null!=Na&&"1"==Na.snapToPoint&&(this.setCellStyles(mxConstants.STYLE_EXIT_X,null,[p]),this.setCellStyles(mxConstants.STYLE_EXIT_Y,null,[p]),this.setCellStyles(mxConstants.STYLE_ENTRY_X,null,[B]),this.setCellStyles(mxConstants.STYLE_ENTRY_Y,null,[B]))}}finally{this.model.endUpdate()}return B};var w=Graph.prototype.selectCell;Graph.prototype.selectCell=function(p,A,B){if(A||B)w.apply(this,arguments);else{var F=this.getSelectionCell(),L=null,P=[],Z=mxUtils.bind(this, -function(ha){if(null!=this.view.getState(ha)&&(this.model.isVertex(ha)||this.model.isEdge(ha)))if(P.push(ha),ha==F)L=P.length-1;else if(p&&null==F&&0L||!p&&0wa)for(ua=0;ua>wa;ua--)this.model.remove(Aa[Aa.length+ua-1]);Aa=this.model.getChildCells(p[ea],!0);for(ua=0;uamxUtils.indexOf(p,P)&&0>mxUtils.indexOf(B,P)&&B.push(P):this.labelChanged(p[F],"")}else{if(this.isTableRow(p[F])&&(P=this.model.getParent(p[F]),0>mxUtils.indexOf(p,P)&&0>mxUtils.indexOf(B,P))){for(var Z=this.model.getChildCells(P,!0),ha=0,ea=0;eamxUtils.indexOf(p,P))return null}P=E.apply(this,arguments);var Z=!0;for(L=0;LP||ia>P)&&this.clear());else{for(ea=ia.getSource();null!=ea&&"a"!=ea.nodeName.toLowerCase();)ea=ea.parentNode;null!=ea?this.clear():(null!=Z.tooltipHandler&&null!=this.currentLink&&null!=this.currentState&&Z.tooltipHandler.reset(ia,!0,this.currentState),(null==this.currentState||ia.getState()!= -this.currentState&&null!=ia.sourceState||!Z.intersects(this.currentState,ia.getGraphX(),ia.getGraphY()))&&this.updateCurrentState(ia))}},mouseUp:function(ea,ia){var va=ia.getSource();for(ea=ia.getEvent();null!=va&&"a"!=va.nodeName.toLowerCase();)va=va.parentNode;null==va&&Math.abs(this.scrollLeft-Z.container.scrollLeft)Q&&y++;da++}H.length=P.length)A.remove(B);else{var Z=P.length-1;this.isTableCell(p)&&(Z=mxUtils.indexOf(P,p));for(F=p=0;F=L.length)A.remove(B);else{this.isTableRow(F)||(F=L[L.length-1]);A.remove(F);p=0;var P=this.getCellGeometry(F);null!=P&&(p=P.height);var Z=this.getCellGeometry(B);null!=Z&&(Z=Z.clone(),Z.height-=p,A.setGeometry(B, -Z))}}finally{A.endUpdate()}};Graph.prototype.insertRow=function(p,A){for(var B=p.tBodies[0],F=B.rows[0].cells,L=p=0;LA&&p[B].deleteCell(A)}};Graph.prototype.pasteHtmlAtCaret=function(p){if(window.getSelection){var A=window.getSelection();if(A.getRangeAt&&A.rangeCount){A=A.getRangeAt(0);A.deleteContents();var B=document.createElement("div");B.innerHTML= -p;p=document.createDocumentFragment();for(var F;F=B.firstChild;)lastNode=p.appendChild(F);A.insertNode(p)}}else(A=document.selection)&&"Control"!=A.type&&A.createRange().pasteHTML(p)};Graph.prototype.createLinkForHint=function(p,A,B){function F(P,Z){P.length>Z&&(P=P.substring(0,Math.round(Z/2))+"..."+P.substring(P.length-Math.round(Z/4)));return P}p=null!=p?p:"javascript:void(0);";if(null==A||0==A.length)A=this.isCustomLink(p)?this.getLinkTitle(p):p;var L=document.createElement("a");L.setAttribute("rel", -this.linkRelation);L.setAttribute("href",this.getAbsoluteUrl(p));L.setAttribute("title",F(this.isCustomLink(p)?this.getLinkTitle(p):p,80));null!=this.linkTarget&&L.setAttribute("target",this.linkTarget);mxUtils.write(L,F(A,40));this.isCustomLink(p)&&mxEvent.addListener(L,"click",mxUtils.bind(this,function(P){this.customLinkClicked(p,B);mxEvent.consume(P)}));return L};Graph.prototype.initTouch=function(){this.connectionHandler.marker.isEnabled=function(){return null!=this.graph.connectionHandler.first}; -this.addListener(mxEvent.START_EDITING,function(P,Z){this.popupMenuHandler.hideMenu()});var p=this.updateMouseEvent;this.updateMouseEvent=function(P){P=p.apply(this,arguments);if(mxEvent.isTouchEvent(P.getEvent())&&null==P.getState()){var Z=this.getCellAt(P.graphX,P.graphY);null!=Z&&this.isSwimlane(Z)&&this.hitsSwimlaneContent(Z,P.graphX,P.graphY)||(P.state=this.view.getState(Z),null!=P.state&&null!=P.state.shape&&(this.container.style.cursor=P.state.shape.node.style.cursor))}null==P.getState()&& -this.isEnabled()&&(this.container.style.cursor="default");return P};var A=!1,B=!1,F=!1,L=this.fireMouseEvent;this.fireMouseEvent=function(P,Z,ha){P==mxEvent.MOUSE_DOWN&&(Z=this.updateMouseEvent(Z),A=this.isCellSelected(Z.getCell()),B=this.isSelectionEmpty(),F=this.popupMenuHandler.isMenuShowing());L.apply(this,arguments)};this.popupMenuHandler.mouseUp=mxUtils.bind(this,function(P,Z){if(null!=this.freehand&&!this.freehand.isDrawing()){var ha=mxEvent.isMouseEvent(Z.getEvent());this.popupMenuHandler.popupTrigger= -!this.isEditing()&&this.isEnabled()&&(null==Z.getState()||!Z.isSource(Z.getState().control))&&(this.popupMenuHandler.popupTrigger||!F&&!ha&&(B&&null==Z.getCell()&&this.isSelectionEmpty()||A&&this.isCellSelected(Z.getCell())));ha=!A||ha?null:mxUtils.bind(this,function(ea){window.setTimeout(mxUtils.bind(this,function(){if(!this.isEditing()){var ia=mxUtils.getScrollOrigin();this.popupMenuHandler.popup(Z.getX()+ia.x+1,Z.getY()+ia.y+1,ea,Z.getEvent())}}),300)});mxPopupMenuHandler.prototype.mouseUp.apply(this.popupMenuHandler, -[P,Z,ha])}})};mxCellEditor.prototype.isContentEditing=function(){var p=this.graph.view.getState(this.editingCell);return null!=p&&1==p.style.html};mxCellEditor.prototype.isTableSelected=function(){return null!=this.graph.getParentByName(this.graph.getSelectedElement(),"TABLE",this.textarea)};mxCellEditor.prototype.isTextSelected=function(){var p="";window.getSelection?p=window.getSelection():document.getSelection?p=document.getSelection():document.selection&&(p=document.selection.createRange().text); -return""!=p};mxCellEditor.prototype.insertTab=function(p){var A=this.textarea.ownerDocument.defaultView.getSelection(),B=A.getRangeAt(0);p=Graph.createTabNode(p);B.insertNode(p);B.setStartAfter(p);B.setEndAfter(p);A.removeAllRanges();A.addRange(B)};mxCellEditor.prototype.alignText=function(p,A){var B=this.graph.getView().getState(this.editingCell);if(null!=B){B=mxUtils.getValue(B.style,mxConstants.STYLE_TEXT_DIRECTION,mxConstants.DEFAULT_TEXT_DIRECTION);var F=null!=B&&"vertical-"==B.substring(0,9), -L=null!=A&&mxEvent.isShiftDown(A);if(L||null!=window.getSelection&&null!=window.getSelection().containsNode){var P=!0;this.graph.processElements(this.textarea,function(Z){L||F||window.getSelection().containsNode(Z,!0)?(Z.removeAttribute("align"),Z.style.textAlign=null):P=!1});(P||F)&&this.graph.cellEditor.setAlign(p)}F||document.execCommand("justify"+p.toLowerCase(),!1,null)}};mxCellEditor.prototype.saveSelection=function(){if(window.getSelection){var p=window.getSelection();if(p.getRangeAt&&p.rangeCount){for(var A= -[],B=0,F=p.rangeCount;B"):ha,!0);this.textarea.className="mxCellEditor geContentEditable";ea=mxUtils.getValue(p.style,mxConstants.STYLE_FONTSIZE,mxConstants.DEFAULT_FONTSIZE); -A=mxUtils.getValue(p.style,mxConstants.STYLE_FONTFAMILY,mxConstants.DEFAULT_FONTFAMILY);var F=mxUtils.getValue(p.style,mxConstants.STYLE_ALIGN,mxConstants.ALIGN_LEFT),L=(mxUtils.getValue(p.style,mxConstants.STYLE_FONTSTYLE,0)&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD,P=(mxUtils.getValue(p.style,mxConstants.STYLE_FONTSTYLE,0)&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC,Z=[];(mxUtils.getValue(p.style,mxConstants.STYLE_FONTSTYLE,0)&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE&&Z.push("underline"); -(mxUtils.getValue(p.style,mxConstants.STYLE_FONTSTYLE,0)&mxConstants.FONT_STRIKETHROUGH)==mxConstants.FONT_STRIKETHROUGH&&Z.push("line-through");this.textarea.style.lineHeight=mxConstants.ABSOLUTE_LINE_HEIGHT?Math.round(ea*mxConstants.LINE_HEIGHT)+"px":mxConstants.LINE_HEIGHT;this.textarea.style.fontSize=Math.round(ea)+"px";this.textarea.style.textDecoration=Z.join(" ");this.textarea.style.fontWeight=L?"bold":"normal";this.textarea.style.fontStyle=P?"italic":"";this.textarea.style.fontFamily=A;this.textarea.style.textAlign= -F;this.textarea.style.padding="0px";this.textarea.innerHTML!=ha&&(this.textarea.innerHTML=ha,0==this.textarea.innerHTML.length&&(this.textarea.innerHTML=this.getEmptyLabelText(),this.clearOnChange=0
"));ha=Graph.sanitizeHtml(A?ha.replace(/\n/g,"").replace(/<br\s*.?>/g,"
"):ha,!0);this.textarea.className="mxCellEditor mxPlainTextEditor";var ea=mxConstants.DEFAULT_FONTSIZE;this.textarea.style.lineHeight=mxConstants.ABSOLUTE_LINE_HEIGHT?Math.round(ea*mxConstants.LINE_HEIGHT)+"px":mxConstants.LINE_HEIGHT;this.textarea.style.fontSize= -Math.round(ea)+"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.width="";this.textarea.style.padding="2px";this.textarea.innerHTML!=ha&&(this.textarea.innerHTML=ha);this.codeViewMode=!0}this.textarea.focus();null!=this.switchSelectionState&&this.restoreSelection(this.switchSelectionState);this.switchSelectionState= -B;this.resize()}};var T=mxCellEditor.prototype.resize;mxCellEditor.prototype.resize=function(p,A){if(null!=this.textarea)if(p=this.graph.getView().getState(this.editingCell),this.codeViewMode&&null!=p){var B=p.view.scale;this.bounds=mxRectangle.fromRectangle(p);if(0==this.bounds.width&&0==this.bounds.height){this.bounds.width=160*B;this.bounds.height=60*B;var F=null!=p.text?p.text.margin:null;null==F&&(F=mxUtils.getAlignmentAsPoint(mxUtils.getValue(p.style,mxConstants.STYLE_ALIGN,mxConstants.ALIGN_CENTER), -mxUtils.getValue(p.style,mxConstants.STYLE_VERTICAL_ALIGN,mxConstants.ALIGN_MIDDLE)));this.bounds.x+=F.x*this.bounds.width;this.bounds.y+=F.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=ka.x&&this.model.remove(va[A]);var Ma=this.model.getTerminal(B,!1); +if(null!=Ma){var Na=this.getCurrentCellStyle(Ma);null!=Na&&"1"==Na.snapToPoint&&(this.setCellStyles(mxConstants.STYLE_EXIT_X,null,[q]),this.setCellStyles(mxConstants.STYLE_EXIT_Y,null,[q]),this.setCellStyles(mxConstants.STYLE_ENTRY_X,null,[B]),this.setCellStyles(mxConstants.STYLE_ENTRY_Y,null,[B]))}}finally{this.model.endUpdate()}return B};var w=Graph.prototype.selectCell;Graph.prototype.selectCell=function(q,A,B){if(A||B)w.apply(this,arguments);else{var F=this.getSelectionCell(),K=null,Q=[],Z=mxUtils.bind(this, +function(ia){if(null!=this.view.getState(ia)&&(this.model.isVertex(ia)||this.model.isEdge(ia)))if(Q.push(ia),ia==F)K=Q.length-1;else if(q&&null==F&&0K||!q&&0wa)for(ua=0;ua>wa;ua--)this.model.remove(Aa[Aa.length+ua-1]);Aa=this.model.getChildCells(q[fa],!0);for(ua=0;uamxUtils.indexOf(q,Q)&&0>mxUtils.indexOf(B,Q)&&B.push(Q):this.labelChanged(q[F],"")}else{if(this.isTableRow(q[F])&&(Q=this.model.getParent(q[F]),0>mxUtils.indexOf(q,Q)&&0>mxUtils.indexOf(B,Q))){for(var Z=this.model.getChildCells(Q,!0),ia=0,fa=0;famxUtils.indexOf(q,Q))return null}Q=E.apply(this,arguments);var Z=!0;for(K=0;KQ||ka>Q)&&this.clear());else{for(fa=ka.getSource();null!=fa&&"a"!=fa.nodeName.toLowerCase();)fa=fa.parentNode;null!=fa?this.clear():(null!=Z.tooltipHandler&&null!=this.currentLink&&null!=this.currentState&&Z.tooltipHandler.reset(ka,!0,this.currentState),(null==this.currentState||ka.getState()!= +this.currentState&&null!=ka.sourceState||!Z.intersects(this.currentState,ka.getGraphX(),ka.getGraphY()))&&this.updateCurrentState(ka))}},mouseUp:function(fa,ka){var va=ka.getSource();for(fa=ka.getEvent();null!=va&&"a"!=va.nodeName.toLowerCase();)va=va.parentNode;null==va&&Math.abs(this.scrollLeft-Z.container.scrollLeft)R&&z++;da++}I.length=Q.length)A.remove(B);else{var Z=Q.length-1;this.isTableCell(q)&&(Z=mxUtils.indexOf(Q,q));for(F=q=0;F=K.length)A.remove(B);else{this.isTableRow(F)||(F=K[K.length-1]);A.remove(F);q=0;var Q=this.getCellGeometry(F);null!=Q&&(q=Q.height);var Z=this.getCellGeometry(B);null!=Z&&(Z=Z.clone(),Z.height-=q,A.setGeometry(B, +Z))}}finally{A.endUpdate()}};Graph.prototype.insertRow=function(q,A){for(var B=q.tBodies[0],F=B.rows[0].cells,K=q=0;KA&&q[B].deleteCell(A)}};Graph.prototype.pasteHtmlAtCaret=function(q){if(window.getSelection){var A=window.getSelection();if(A.getRangeAt&&A.rangeCount){A=A.getRangeAt(0);A.deleteContents();var B=document.createElement("div");B.innerHTML= +q;q=document.createDocumentFragment();for(var F;F=B.firstChild;)lastNode=q.appendChild(F);A.insertNode(q)}}else(A=document.selection)&&"Control"!=A.type&&A.createRange().pasteHTML(q)};Graph.prototype.createLinkForHint=function(q,A,B){function F(Q,Z){Q.length>Z&&(Q=Q.substring(0,Math.round(Z/2))+"..."+Q.substring(Q.length-Math.round(Z/4)));return Q}q=null!=q?q:"javascript:void(0);";if(null==A||0==A.length)A=this.isCustomLink(q)?this.getLinkTitle(q):q;var K=document.createElement("a");K.setAttribute("rel", +this.linkRelation);K.setAttribute("href",this.getAbsoluteUrl(q));K.setAttribute("title",F(this.isCustomLink(q)?this.getLinkTitle(q):q,80));null!=this.linkTarget&&K.setAttribute("target",this.linkTarget);mxUtils.write(K,F(A,40));this.isCustomLink(q)&&mxEvent.addListener(K,"click",mxUtils.bind(this,function(Q){this.customLinkClicked(q,B);mxEvent.consume(Q)}));return K};Graph.prototype.initTouch=function(){this.connectionHandler.marker.isEnabled=function(){return null!=this.graph.connectionHandler.first}; +this.addListener(mxEvent.START_EDITING,function(Q,Z){this.popupMenuHandler.hideMenu()});var q=this.updateMouseEvent;this.updateMouseEvent=function(Q){Q=q.apply(this,arguments);if(mxEvent.isTouchEvent(Q.getEvent())&&null==Q.getState()){var Z=this.getCellAt(Q.graphX,Q.graphY);null!=Z&&this.isSwimlane(Z)&&this.hitsSwimlaneContent(Z,Q.graphX,Q.graphY)||(Q.state=this.view.getState(Z),null!=Q.state&&null!=Q.state.shape&&(this.container.style.cursor=Q.state.shape.node.style.cursor))}null==Q.getState()&& +this.isEnabled()&&(this.container.style.cursor="default");return Q};var A=!1,B=!1,F=!1,K=this.fireMouseEvent;this.fireMouseEvent=function(Q,Z,ia){Q==mxEvent.MOUSE_DOWN&&(Z=this.updateMouseEvent(Z),A=this.isCellSelected(Z.getCell()),B=this.isSelectionEmpty(),F=this.popupMenuHandler.isMenuShowing());K.apply(this,arguments)};this.popupMenuHandler.mouseUp=mxUtils.bind(this,function(Q,Z){if(null!=this.freehand&&!this.freehand.isDrawing()){var ia=mxEvent.isMouseEvent(Z.getEvent());this.popupMenuHandler.popupTrigger= +!this.isEditing()&&this.isEnabled()&&(null==Z.getState()||!Z.isSource(Z.getState().control))&&(this.popupMenuHandler.popupTrigger||!F&&!ia&&(B&&null==Z.getCell()&&this.isSelectionEmpty()||A&&this.isCellSelected(Z.getCell())));ia=!A||ia?null:mxUtils.bind(this,function(fa){window.setTimeout(mxUtils.bind(this,function(){if(!this.isEditing()){var ka=mxUtils.getScrollOrigin();this.popupMenuHandler.popup(Z.getX()+ka.x+1,Z.getY()+ka.y+1,fa,Z.getEvent())}}),300)});mxPopupMenuHandler.prototype.mouseUp.apply(this.popupMenuHandler, +[Q,Z,ia])}})};mxCellEditor.prototype.isContentEditing=function(){var q=this.graph.view.getState(this.editingCell);return null!=q&&1==q.style.html};mxCellEditor.prototype.isTableSelected=function(){return null!=this.graph.getParentByName(this.graph.getSelectedElement(),"TABLE",this.textarea)};mxCellEditor.prototype.isTextSelected=function(){var q="";window.getSelection?q=window.getSelection():document.getSelection?q=document.getSelection():document.selection&&(q=document.selection.createRange().text); +return""!=q};mxCellEditor.prototype.insertTab=function(q){var A=this.textarea.ownerDocument.defaultView.getSelection(),B=A.getRangeAt(0);q=Graph.createTabNode(q);B.insertNode(q);B.setStartAfter(q);B.setEndAfter(q);A.removeAllRanges();A.addRange(B)};mxCellEditor.prototype.alignText=function(q,A){var B=this.graph.getView().getState(this.editingCell);if(null!=B){B=mxUtils.getValue(B.style,mxConstants.STYLE_TEXT_DIRECTION,mxConstants.DEFAULT_TEXT_DIRECTION);var F=null!=B&&"vertical-"==B.substring(0,9), +K=null!=A&&mxEvent.isShiftDown(A);if(K||null!=window.getSelection&&null!=window.getSelection().containsNode){var Q=!0;this.graph.processElements(this.textarea,function(Z){K||F||window.getSelection().containsNode(Z,!0)?(Z.removeAttribute("align"),Z.style.textAlign=null):Q=!1});(Q||F)&&this.graph.cellEditor.setAlign(q)}F||document.execCommand("justify"+q.toLowerCase(),!1,null)}};mxCellEditor.prototype.saveSelection=function(){if(window.getSelection){var q=window.getSelection();if(q.getRangeAt&&q.rangeCount){for(var A= +[],B=0,F=q.rangeCount;B"):ia,!0);this.textarea.className="mxCellEditor geContentEditable";fa=mxUtils.getValue(q.style,mxConstants.STYLE_FONTSIZE,mxConstants.DEFAULT_FONTSIZE); +A=mxUtils.getValue(q.style,mxConstants.STYLE_FONTFAMILY,mxConstants.DEFAULT_FONTFAMILY);var F=mxUtils.getValue(q.style,mxConstants.STYLE_ALIGN,mxConstants.ALIGN_LEFT),K=(mxUtils.getValue(q.style,mxConstants.STYLE_FONTSTYLE,0)&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD,Q=(mxUtils.getValue(q.style,mxConstants.STYLE_FONTSTYLE,0)&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC,Z=[];(mxUtils.getValue(q.style,mxConstants.STYLE_FONTSTYLE,0)&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE&&Z.push("underline"); +(mxUtils.getValue(q.style,mxConstants.STYLE_FONTSTYLE,0)&mxConstants.FONT_STRIKETHROUGH)==mxConstants.FONT_STRIKETHROUGH&&Z.push("line-through");this.textarea.style.lineHeight=mxConstants.ABSOLUTE_LINE_HEIGHT?Math.round(fa*mxConstants.LINE_HEIGHT)+"px":mxConstants.LINE_HEIGHT;this.textarea.style.fontSize=Math.round(fa)+"px";this.textarea.style.textDecoration=Z.join(" ");this.textarea.style.fontWeight=K?"bold":"normal";this.textarea.style.fontStyle=Q?"italic":"";this.textarea.style.fontFamily=A;this.textarea.style.textAlign= +F;this.textarea.style.padding="0px";this.textarea.innerHTML!=ia&&(this.textarea.innerHTML=ia,0==this.textarea.innerHTML.length&&(this.textarea.innerHTML=this.getEmptyLabelText(),this.clearOnChange=0
"));ia=Graph.sanitizeHtml(A?ia.replace(/\n/g,"").replace(/<br\s*.?>/g,"
"):ia,!0);this.textarea.className="mxCellEditor mxPlainTextEditor";var fa=mxConstants.DEFAULT_FONTSIZE;this.textarea.style.lineHeight=mxConstants.ABSOLUTE_LINE_HEIGHT?Math.round(fa*mxConstants.LINE_HEIGHT)+"px":mxConstants.LINE_HEIGHT;this.textarea.style.fontSize= +Math.round(fa)+"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.width="";this.textarea.style.padding="2px";this.textarea.innerHTML!=ia&&(this.textarea.innerHTML=ia);this.codeViewMode=!0}this.textarea.focus();null!=this.switchSelectionState&&this.restoreSelection(this.switchSelectionState);this.switchSelectionState= +B;this.resize()}};var O=mxCellEditor.prototype.resize;mxCellEditor.prototype.resize=function(q,A){if(null!=this.textarea)if(q=this.graph.getView().getState(this.editingCell),this.codeViewMode&&null!=q){var B=q.view.scale;this.bounds=mxRectangle.fromRectangle(q);if(0==this.bounds.width&&0==this.bounds.height){this.bounds.width=160*B;this.bounds.height=60*B;var F=null!=q.text?q.text.margin:null;null==F&&(F=mxUtils.getAlignmentAsPoint(mxUtils.getValue(q.style,mxConstants.STYLE_ALIGN,mxConstants.ALIGN_CENTER), +mxUtils.getValue(q.style,mxConstants.STYLE_VERTICAL_ALIGN,mxConstants.ALIGN_MIDDLE)));this.bounds.x+=F.x*this.bounds.width;this.bounds.y+=F.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"));return Graph.sanitizeHtml(B,!0)};mxCellEditorSetEditingValue=mxCellEditor.prototype.setEditingValue;mxCellEditor.prototype.setEditingValue= -function(p,A){mxCellEditorSetEditingValue.apply(this,arguments);"1"==mxUtils.getValue(p.style,"html","0")&&Graph.addLightDarkColors(this.textarea,Graph.backupStyleAttribute,"simple"==this.graph.getAdaptiveColors())};mxCellEditorGetCurrentValue=mxCellEditor.prototype.getCurrentValue;mxCellEditor.prototype.getCurrentValue=function(p){if("0"==mxUtils.getValue(p.style,"html","0"))return mxCellEditorGetCurrentValue.apply(this,arguments);Graph.removeLightDarkColors(this.textarea,Graph.backupStyleAttribute); -var A=Graph.sanitizeHtml(this.textarea.innerHTML,!0);"1"==mxUtils.getValue(p.style,"nl2Br","1")?(A=A.replace(/\r\n/g,"
").replace(/\n/g,"
"),0"==A.substring(A.length-5)||"
"==A.substring(A.length-4))&&(A=A.substring(0,A.lastIndexOf("
")):A=A.replace(/\r\n/g,"").replace(/\n/g,"");return A};var K=mxCellEditor.prototype.stopEditing;mxCellEditor.prototype.stopEditing=function(p){this.codeViewMode&&this.toggleViewMode();K.apply(this,arguments);this.focusContainer()}; -mxCellEditor.prototype.focusContainer=function(){try{this.graph.container.focus()}catch(p){}};var V=mxCellEditor.prototype.applyValue;mxCellEditor.prototype.applyValue=function(p,A){this.graph.getModel().beginUpdate();try{V.apply(this,arguments),""==A&&this.graph.isCellDeletable(p.cell)&&0==this.graph.model.getChildCount(p.cell)&&this.graph.isTransparentState(p)&&this.graph.removeCells([p.cell],!1)}finally{this.graph.getModel().endUpdate()}};mxCellEditor.prototype.getBackgroundColor=function(p){p= -mxUtils.getValue(p.style,mxConstants.STYLE_LABEL_BACKGROUNDCOLOR,null);p==mxConstants.NONE&&(p=null);return p};mxCellEditor.prototype.getBorderColor=function(p){p=mxUtils.getValue(p.style,mxConstants.STYLE_LABEL_BORDERCOLOR,null);p==mxConstants.NONE&&(p=null);return p};mxCellEditor.prototype.getMinimumSize=function(p){var A=this.graph.getView().scale;return new mxRectangle(0,0,null==p.text?30:p.text.size*A+20,30)};mxGraphHandlerIsValidDropTarget=mxGraphHandler.prototype.isValidDropTarget;mxGraphHandler.prototype.isValidDropTarget= -function(p,A){return mxGraphHandlerIsValidDropTarget.apply(this,arguments)&&!mxEvent.isAltDown(A.getEvent)};mxGraphView.prototype.formatUnitText=function(p){return p?b(p,this.unit):p};mxGraphHandler.prototype.updateHint=function(p){if(null!=this.pBounds&&(null!=this.shape||this.livePreviewActive)){null==this.hint&&(this.hint=a(),this.graph.container.appendChild(this.hint));var A=this.graph.view.translate,B=this.graph.view.scale;p=this.roundLength((this.bounds.x+this.currentDx)/B-A.x);A=this.roundLength((this.bounds.y+ -this.currentDy)/B-A.y);B=this.graph.view.unit;this.hint.innerHTML=b(p,B)+", "+b(A,B);this.hint.style.left=this.pBounds.x+this.currentDx+Math.round((this.pBounds.width-this.hint.clientWidth)/2)+"px";this.hint.style.top=this.pBounds.y+this.currentDy+this.pBounds.height+Editor.hintOffset+"px"}};mxGraphHandler.prototype.removeHint=function(){null!=this.hint&&(null!=this.hint.parentNode&&this.hint.parentNode.removeChild(this.hint),this.hint=null)};var W=mxStackLayout.prototype.resizeCell;mxStackLayout.prototype.resizeCell= -function(p,A){W.apply(this,arguments);var B=this.graph.getCellStyle(p);if(null==B.childLayout){var F=this.graph.model.getParent(p),L=null!=F?this.graph.getCellGeometry(F):null;if(null!=L&&(B=this.graph.getCellStyle(F),"stackLayout"==B.childLayout)){var P=parseFloat(mxUtils.getValue(B,"stackBorder",mxStackLayout.prototype.border));B="1"==mxUtils.getValue(B,"horizontalStack","1");var Z=this.graph.getActualStartSize(F);L=L.clone();B?L.height=A.height+Z.y+Z.height+2*P:L.width=A.width+Z.x+Z.width+2*P; -this.graph.model.setGeometry(F,L)}}};var O=mxSelectionCellsHandler.prototype.getHandledSelectionCells;mxSelectionCellsHandler.prototype.getHandledSelectionCells=function(){function p(ha){B.get(ha)||(B.put(ha,!0),L.push(ha))}for(var A=O.apply(this,arguments),B=new mxDictionary,F=this.graph.model,L=[],P=0;Pp;p++){var A=new mxRectangleShape(new mxRectangle(0,0,6,6),"#ffffff",mxConstants.HANDLE_STROKECOLOR);A.dialect=mxConstants.DIALECT_SVG;A.init(this.graph.view.getOverlayPane()); -this.cornerHandles.push(A)}}this.graph.isTable(this.state.cell)&&this.graph.isCellMovable(this.state.cell)&&this.refreshMoveHandles();p=this.graph.getLinkForCell(this.state.cell);A=this.graph.getLinksForState(this.state);this.updateLinkHint(p,A)};var ba=mxVertexHandler.prototype.getHandlePadding;mxVertexHandler.prototype.getHandlePadding=function(){var p=new mxPoint(0,0),A=this.tolerance,B=this.state.style.shape;null==mxCellRenderer.defaultShapes[B]&&mxStencilRegistry.getStencil(B);B=this.graph.isTable(this.state.cell)|| -this.graph.cellEditor.getEditingCell()==this.state.cell;if(!B&&null!=this.customHandles)for(var F=0;F
'); +"",this.textarea.style.overflow="",O.apply(this,arguments)};mxCellEditorGetInitialValue=mxCellEditor.prototype.getInitialValue;mxCellEditor.prototype.getInitialValue=function(q,A){if("0"==mxUtils.getValue(q.style,"html","0"))return mxCellEditorGetInitialValue.apply(this,arguments);var B=this.graph.getEditingValue(q.cell,A);"1"==mxUtils.getValue(q.style,"nl2Br","1")&&(B=B.replace(/\n/g,"
"));return Graph.sanitizeHtml(B,!0)};mxCellEditorSetEditingValue=mxCellEditor.prototype.setEditingValue;mxCellEditor.prototype.setEditingValue= +function(q,A){mxCellEditorSetEditingValue.apply(this,arguments);"1"==mxUtils.getValue(q.style,"html","0")&&Graph.addLightDarkColors(this.textarea,Graph.backupStyleAttribute,"simple"==this.graph.getAdaptiveColors())};mxCellEditorGetCurrentValue=mxCellEditor.prototype.getCurrentValue;mxCellEditor.prototype.getCurrentValue=function(q){if("0"==mxUtils.getValue(q.style,"html","0"))return mxCellEditorGetCurrentValue.apply(this,arguments);Graph.removeLightDarkColors(this.textarea,Graph.backupStyleAttribute); +var A=Graph.sanitizeHtml(this.textarea.innerHTML,!0);"1"==mxUtils.getValue(q.style,"nl2Br","1")?(A=A.replace(/\r\n/g,"
").replace(/\n/g,"
"),0"==A.substring(A.length-5)||"
"==A.substring(A.length-4))&&(A=A.substring(0,A.lastIndexOf("
")):A=A.replace(/\r\n/g,"").replace(/\n/g,"");return A};var L=mxCellEditor.prototype.stopEditing;mxCellEditor.prototype.stopEditing=function(q){this.codeViewMode&&this.toggleViewMode();L.apply(this,arguments);this.focusContainer()}; +mxCellEditor.prototype.focusContainer=function(){try{this.graph.container.focus()}catch(q){}};var W=mxCellEditor.prototype.applyValue;mxCellEditor.prototype.applyValue=function(q,A){this.graph.getModel().beginUpdate();try{W.apply(this,arguments),""==A&&this.graph.isCellDeletable(q.cell)&&0==this.graph.model.getChildCount(q.cell)&&this.graph.isTransparentState(q)&&this.graph.removeCells([q.cell],!1)}finally{this.graph.getModel().endUpdate()}};mxCellEditor.prototype.getBackgroundColor=function(q){q= +mxUtils.getValue(q.style,mxConstants.STYLE_LABEL_BACKGROUNDCOLOR,null);q==mxConstants.NONE&&(q=null);return q};mxCellEditor.prototype.getBorderColor=function(q){q=mxUtils.getValue(q.style,mxConstants.STYLE_LABEL_BORDERCOLOR,null);q==mxConstants.NONE&&(q=null);return q};mxCellEditor.prototype.getMinimumSize=function(q){var A=this.graph.getView().scale;return new mxRectangle(0,0,null==q.text?30:q.text.size*A+20,30)};mxGraphHandlerIsValidDropTarget=mxGraphHandler.prototype.isValidDropTarget;mxGraphHandler.prototype.isValidDropTarget= +function(q,A){return mxGraphHandlerIsValidDropTarget.apply(this,arguments)&&!mxEvent.isAltDown(A.getEvent)};mxGraphView.prototype.formatUnitText=function(q){return q?b(q,this.unit):q};mxGraphHandler.prototype.updateHint=function(q){if(null!=this.pBounds&&(null!=this.shape||this.livePreviewActive)){null==this.hint&&(this.hint=a(),this.graph.container.appendChild(this.hint));var A=this.graph.view.translate,B=this.graph.view.scale;q=this.roundLength((this.bounds.x+this.currentDx)/B-A.x);A=this.roundLength((this.bounds.y+ +this.currentDy)/B-A.y);B=this.graph.view.unit;this.hint.innerHTML=b(q,B)+", "+b(A,B);this.hint.style.left=this.pBounds.x+this.currentDx+Math.round((this.pBounds.width-this.hint.clientWidth)/2)+"px";this.hint.style.top=this.pBounds.y+this.currentDy+this.pBounds.height+Editor.hintOffset+"px"}};mxGraphHandler.prototype.removeHint=function(){null!=this.hint&&(null!=this.hint.parentNode&&this.hint.parentNode.removeChild(this.hint),this.hint=null)};var X=mxStackLayout.prototype.resizeCell;mxStackLayout.prototype.resizeCell= +function(q,A){X.apply(this,arguments);var B=this.graph.getCellStyle(q);if(null==B.childLayout){var F=this.graph.model.getParent(q),K=null!=F?this.graph.getCellGeometry(F):null;if(null!=K&&(B=this.graph.getCellStyle(F),"stackLayout"==B.childLayout)){var Q=parseFloat(mxUtils.getValue(B,"stackBorder",mxStackLayout.prototype.border));B="1"==mxUtils.getValue(B,"horizontalStack","1");var Z=this.graph.getActualStartSize(F);K=K.clone();B?K.height=A.height+Z.y+Z.height+2*Q:K.width=A.width+Z.x+Z.width+2*Q; +this.graph.model.setGeometry(F,K)}}};var U=mxSelectionCellsHandler.prototype.getHandledSelectionCells;mxSelectionCellsHandler.prototype.getHandledSelectionCells=function(){function q(ia){B.get(ia)||(B.put(ia,!0),K.push(ia))}for(var A=U.apply(this,arguments),B=new mxDictionary,F=this.graph.model,K=[],Q=0;Qq;q++){var A=new mxRectangleShape(new mxRectangle(0,0,6,6),"#ffffff",mxConstants.HANDLE_STROKECOLOR);A.dialect=mxConstants.DIALECT_SVG;A.init(this.graph.view.getOverlayPane()); +this.cornerHandles.push(A)}}this.graph.isTable(this.state.cell)&&this.graph.isCellMovable(this.state.cell)&&this.refreshMoveHandles();q=this.graph.getLinkForCell(this.state.cell);A=this.graph.getLinksForState(this.state);this.updateLinkHint(q,A)};var aa=mxVertexHandler.prototype.getHandlePadding;mxVertexHandler.prototype.getHandlePadding=function(){var q=new mxPoint(0,0),A=this.tolerance,B=this.state.style.shape;null==mxCellRenderer.defaultShapes[B]&&mxStencilRegistry.getStencil(B);B=this.graph.isTable(this.state.cell)|| +this.graph.cellEditor.getEditingCell()==this.state.cell;if(!B&&null!=this.customHandles)for(var F=0;F'); Graph.prototype.collapsedImage=Graph.createSvgImage(9,9,'');mxEdgeHandler.prototype.removeHint=mxVertexHandler.prototype.removeHint;HoverIcons.prototype.mainHandle= Graph.createSvgImage(18,18,'');HoverIcons.prototype.endMainHandle=Graph.createSvgImage(18,18,'');HoverIcons.prototype.secondaryHandle=Graph.createSvgImage(16,16,'');HoverIcons.prototype.fixedHandle=Graph.createSvgImage(22,22,''); HoverIcons.prototype.endFixedHandle=Graph.createSvgImage(22,22,'');HoverIcons.prototype.terminalHandle=Graph.createSvgImage(22,22,'');HoverIcons.prototype.endTerminalHandle=Graph.createSvgImage(22,22,'P||Math.abs(L)>P)null==this.div&&(this.div=this.createShape()),mxUtils.clearSelection(),this.update(p,B),this.isSpaceEvent(A)?(p=this.x+this.width,B=this.y+this.height,F=this.graph.view.scale,mxEvent.isAltDown(A.getEvent())||(this.width=this.graph.snap(this.width/ -F)*F,this.height=this.graph.snap(this.height/F)*F,this.graph.isGridEnabled()||(this.widthQ||Math.abs(K)>Q)null==this.div&&(this.div=this.createShape()),mxUtils.clearSelection(),this.update(q,B),this.isSpaceEvent(A)?(q=this.x+this.width,B=this.y+this.height,F=this.graph.view.scale,mxEvent.isAltDown(A.getEvent())||(this.width=this.graph.snap(this.width/ +F)*F,this.height=this.graph.snap(this.height/F)*F,this.graph.isGridEnabled()||(this.width=this.width?"0px 1px 0px 0px":"0px 1px 0px 1px",null==this.secondDiv&&(this.secondDiv=this.div.cloneNode(!0),this.div.parentNode.appendChild(this.secondDiv)),this.secondDiv.style.left=this.x+"px",this.secondDiv.style.top=this.y+"px",this.secondDiv.style.width=this.graph.container.clientWidth+"px",this.secondDiv.style.height=Math.max(0,this.height)+"px",this.secondDiv.style.borderWidth=0>=this.height?"1px 0px 0px 0px":"1px 0px 1px 0px"):(this.div.style.backgroundColor= -"",this.div.style.borderWidth="",this.div.style.borderStyle="",null!=this.secondDiv&&(this.secondDiv.parentNode.removeChild(this.secondDiv),this.secondDiv=null)),A.consume()}};var Ja=mxRubberband.prototype.reset;mxRubberband.prototype.reset=function(){null!=this.secondDiv&&(this.secondDiv.parentNode.removeChild(this.secondDiv),this.secondDiv=null);Ja.apply(this,arguments)};var na=(new Date).getTime(),ya=0,za=mxEdgeHandler.prototype.updatePreviewState;mxEdgeHandler.prototype.updatePreviewState=function(p, -A,B,F){za.apply(this,arguments);B!=this.currentTerminalState?(na=(new Date).getTime(),ya=0):ya=(new Date).getTime()-na;this.currentTerminalState=B};var Ka=mxEdgeHandler.prototype.isOutlineConnectEvent;mxEdgeHandler.prototype.isOutlineConnectEvent=function(p){return mxEvent.isShiftDown(p.getEvent())&&mxEvent.isAltDown(p.getEvent())?!1:null!=this.currentTerminalState&&p.getState()==this.currentTerminalState&&2E3=this.state.absolutePoints.length-1||this.constructor==mxElbowEdgeHandler&&2==p)?this.graph.getConnectionConstraint(this.state,F,A):null;B=null!=(null!=p?this.graph.getConnectionPoint(this.state.getVisibleTerminalState(A),p):null)?B?this.endFixedHandleImage:this.fixedHandleImage: -null!=p&&null!=F?B?this.endTerminalHandleImage:this.terminalHandleImage:B?this.endHandleImage: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 Pa=mxVertexHandler.prototype.createSizerShape;mxVertexHandler.prototype.createSizerShape=function(p,A,B,F){F=A==mxEvent.ROTATION_HANDLE? -HoverIcons.prototype.rotationHandle:A==mxEvent.LABEL_HANDLE?this.secondaryHandleImage:F;return Pa.apply(this,arguments)};var Ia=mxGraphHandler.prototype.getBoundingBox;mxGraphHandler.prototype.getBoundingBox=function(p){if(null!=p&&1==p.length){var A=this.graph.getModel(),B=A.getParent(p[0]),F=this.graph.getCellGeometry(p[0]);if(A.isEdge(B)&&null!=F&&F.relative&&(A=this.graph.view.getState(p[0]),null!=A&&2>A.width&&2>A.height&&null!=A.text&&null!=A.text.boundingBox))return mxRectangle.fromRectangle(A.text.boundingBox)}return Ia.apply(this, -arguments)};var Ha=mxGraphHandler.prototype.getGuideStates;mxGraphHandler.prototype.getGuideStates=function(){for(var p=Ha.apply(this,arguments),A=[],B=0;Bp.width&&2>p.height&&null!= -p.text&&null!=p.text.boundingBox?(A=p.text.unrotatedBoundingBox||p.text.boundingBox,new mxRectangle(Math.round(A.x),Math.round(A.y),Math.round(A.width),Math.round(A.height))):ra.apply(this,arguments)};var Da=mxVertexHandler.prototype.mouseDown;mxVertexHandler.prototype.mouseDown=function(p,A){var B=this.graph.getModel(),F=B.getParent(this.state.cell),L=this.graph.getCellGeometry(this.state.cell);(this.getHandleForEvent(A)==mxEvent.ROTATION_HANDLE||!B.isEdge(F)||null==L||!L.relative||null==this.state|| -2<=this.state.width||2<=this.state.height)&&Da.apply(this,arguments)};mxVertexHandler.prototype.rotateClick=function(){var p=mxUtils.getValue(this.state.style,mxConstants.STYLE_STROKECOLOR,mxConstants.NONE),A=mxUtils.getValue(this.state.style,mxConstants.STYLE_FILLCOLOR,mxConstants.NONE);this.state.view.graph.model.isVertex(this.state.cell)&&p==mxConstants.NONE&&A==mxConstants.NONE?(p=mxUtils.mod(mxUtils.getValue(this.state.style,mxConstants.STYLE_ROTATION,0)+90,360),this.state.view.graph.setCellStyles(mxConstants.STYLE_ROTATION, -p,[this.state.cell])):this.state.view.graph.turnShapes([this.state.cell])};var Va=mxVertexHandler.prototype.mouseMove;mxVertexHandler.prototype.mouseMove=function(p,A){Va.apply(this,arguments);null!=this.graph.graphHandler.first&&(null!=this.rotationShape&&null!=this.rotationShape.node&&(this.rotationShape.node.style.display="none"),null!=this.linkHint&&"none"!=this.linkHint.style.display&&(this.linkHint.style.display="none"))};var Wa=mxVertexHandler.prototype.mouseUp;mxVertexHandler.prototype.mouseUp= -function(p,A){Wa.apply(this,arguments);null!=this.rotationShape&&null!=this.rotationShape.node&&(this.rotationShape.node.style.display=1==this.graph.getSelectionCount()?"":"none");null!=this.linkHint&&"none"==this.linkHint.style.display&&1==this.graph.getSelectionCount()&&(this.linkHint.style.display="");this.blockDelayedSelection=null};mxVertexHandler.prototype.updateLinkHint=function(p,A){try{if(null==p&&(null==A||0==A.length))null!=this.linkHint&&(this.linkHint.parentNode.removeChild(this.linkHint), -this.linkHint=null);else if(null!=p||null!=A&&0=this.state.absolutePoints.length-1||this.constructor==mxElbowEdgeHandler&&2==q)?this.graph.getConnectionConstraint(this.state,F,A):null;B=null!=(null!=q?this.graph.getConnectionPoint(this.state.getVisibleTerminalState(A),q):null)?B?this.endFixedHandleImage:this.fixedHandleImage: +null!=q&&null!=F?B?this.endTerminalHandleImage:this.terminalHandleImage:B?this.endHandleImage: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 Pa=mxVertexHandler.prototype.createSizerShape;mxVertexHandler.prototype.createSizerShape=function(q,A,B,F){F=A==mxEvent.ROTATION_HANDLE? +HoverIcons.prototype.rotationHandle:A==mxEvent.LABEL_HANDLE?this.secondaryHandleImage:F;return Pa.apply(this,arguments)};var Ia=mxGraphHandler.prototype.getBoundingBox;mxGraphHandler.prototype.getBoundingBox=function(q){if(null!=q&&1==q.length){var A=this.graph.getModel(),B=A.getParent(q[0]),F=this.graph.getCellGeometry(q[0]);if(A.isEdge(B)&&null!=F&&F.relative&&(A=this.graph.view.getState(q[0]),null!=A&&2>A.width&&2>A.height&&null!=A.text&&null!=A.text.boundingBox))return mxRectangle.fromRectangle(A.text.boundingBox)}return Ia.apply(this, +arguments)};var Ha=mxGraphHandler.prototype.getGuideStates;mxGraphHandler.prototype.getGuideStates=function(){for(var q=Ha.apply(this,arguments),A=[],B=0;Bq.width&&2>q.height&&null!= +q.text&&null!=q.text.boundingBox?(A=q.text.unrotatedBoundingBox||q.text.boundingBox,new mxRectangle(Math.round(A.x),Math.round(A.y),Math.round(A.width),Math.round(A.height))):ra.apply(this,arguments)};var Da=mxVertexHandler.prototype.mouseDown;mxVertexHandler.prototype.mouseDown=function(q,A){var B=this.graph.getModel(),F=B.getParent(this.state.cell),K=this.graph.getCellGeometry(this.state.cell);(this.getHandleForEvent(A)==mxEvent.ROTATION_HANDLE||!B.isEdge(F)||null==K||!K.relative||null==this.state|| +2<=this.state.width||2<=this.state.height)&&Da.apply(this,arguments)};mxVertexHandler.prototype.rotateClick=function(){var q=mxUtils.getValue(this.state.style,mxConstants.STYLE_STROKECOLOR,mxConstants.NONE),A=mxUtils.getValue(this.state.style,mxConstants.STYLE_FILLCOLOR,mxConstants.NONE);this.state.view.graph.model.isVertex(this.state.cell)&&q==mxConstants.NONE&&A==mxConstants.NONE?(q=mxUtils.mod(mxUtils.getValue(this.state.style,mxConstants.STYLE_ROTATION,0)+90,360),this.state.view.graph.setCellStyles(mxConstants.STYLE_ROTATION, +q,[this.state.cell])):this.state.view.graph.turnShapes([this.state.cell])};var Va=mxVertexHandler.prototype.mouseMove;mxVertexHandler.prototype.mouseMove=function(q,A){Va.apply(this,arguments);null!=this.graph.graphHandler.first&&(null!=this.rotationShape&&null!=this.rotationShape.node&&(this.rotationShape.node.style.display="none"),null!=this.linkHint&&"none"!=this.linkHint.style.display&&(this.linkHint.style.display="none"))};var Wa=mxVertexHandler.prototype.mouseUp;mxVertexHandler.prototype.mouseUp= +function(q,A){Wa.apply(this,arguments);null!=this.rotationShape&&null!=this.rotationShape.node&&(this.rotationShape.node.style.display=1==this.graph.getSelectionCount()?"":"none");null!=this.linkHint&&"none"==this.linkHint.style.display&&1==this.graph.getSelectionCount()&&(this.linkHint.style.display="");this.blockDelayedSelection=null};mxVertexHandler.prototype.updateLinkHint=function(q,A){try{if(null==q&&(null==A||0==A.length))null!=this.linkHint&&(this.linkHint.parentNode.removeChild(this.linkHint), +this.linkHint=null);else if(null!=q||null!=A&&0',32,20);Format.classicFilledMarkerImage=Graph.createSvgImage(20,22,'',32,20); Format.classicThinFilledMarkerImage=Graph.createSvgImage(20,22,'',32,20);Format.openFilledMarkerImage=Graph.createSvgImage(20,22,'',32,20); Format.openThinFilledMarkerImage=Graph.createSvgImage(20,22,'',32,20);Format.openAsyncFilledMarkerImage=Graph.createSvgImage(20,22,'',32,20); @@ -3008,52 +3022,52 @@ Format.processMenuIcon=function(a,b){var e=a.getElementsByTagName("img");0D;D++)(function(p){mxEvent.addListener(w[p],"click",function(){f(w[p],""==w[p].style.backgroundImage)})})(D);var Wa=mxUtils.bind(this,function(p,A,B){h=g.getSelectionState();p=mxUtils.getValue(h.style,mxConstants.STYLE_FONTSTYLE,0);f(w[0],(p&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD);f(w[1],(p&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC); -f(w[2],(p&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE);g.toolbar.setMenuText(u,mxUtils.getValue(h.style,mxConstants.STYLE_FONTFAMILY,Menus.prototype.defaultFont));f(z,"0"==mxUtils.getValue(h.style,mxConstants.STYLE_HORIZONTAL,"1"));if(B||document.activeElement!=ta)p=parseFloat(mxUtils.getValue(h.style,mxConstants.STYLE_FONTSIZE,Menus.prototype.defaultFontSize)),ta.value=isNaN(p)?"":p+" "+Editor.fontSizeUnit;p=mxUtils.getValue(h.style,mxConstants.STYLE_ALIGN,mxConstants.ALIGN_CENTER);f(E, -p==mxConstants.ALIGN_LEFT);f(G,p==mxConstants.ALIGN_CENTER);f(I,p==mxConstants.ALIGN_RIGHT);p=mxUtils.getValue(h.style,mxConstants.STYLE_VERTICAL_ALIGN,mxConstants.ALIGN_MIDDLE);f(J,p==mxConstants.ALIGN_TOP);f(T,p==mxConstants.ALIGN_MIDDLE);f(K,p==mxConstants.ALIGN_BOTTOM);p=mxUtils.getValue(h.style,mxConstants.STYLE_LABEL_POSITION,mxConstants.ALIGN_CENTER);A=mxUtils.getValue(h.style,mxConstants.STYLE_VERTICAL_LABEL_POSITION,mxConstants.ALIGN_MIDDLE);ja.value=p==mxConstants.ALIGN_LEFT&&A==mxConstants.ALIGN_TOP? -"topLeft":p==mxConstants.ALIGN_CENTER&&A==mxConstants.ALIGN_TOP?"top":p==mxConstants.ALIGN_RIGHT&&A==mxConstants.ALIGN_TOP?"topRight":p==mxConstants.ALIGN_LEFT&&A==mxConstants.ALIGN_BOTTOM?"bottomLeft":p==mxConstants.ALIGN_CENTER&&A==mxConstants.ALIGN_BOTTOM?"bottom":p==mxConstants.ALIGN_RIGHT&&A==mxConstants.ALIGN_BOTTOM?"bottomRight":p==mxConstants.ALIGN_LEFT?"left":p==mxConstants.ALIGN_RIGHT?"right":"center";p=mxUtils.getValue(h.style,mxConstants.STYLE_TEXT_DIRECTION,mxConstants.DEFAULT_TEXT_DIRECTION); -p==mxConstants.TEXT_DIRECTION_RTL?aa.value="rightToLeft":p==mxConstants.TEXT_DIRECTION_LTR?aa.value="leftToRight":p!=mxConstants.TEXT_DIRECTION_AUTO&&h.html?p==mxConstants.TEXT_DIRECTION_VERTICAL_LR?aa.value="vertical-leftToRight":p==mxConstants.TEXT_DIRECTION_VERTICAL_RL&&(aa.value="vertical-rightToLeft"):aa.value="automatic";if(B||document.activeElement!=Ka)p=parseFloat(mxUtils.getValue(h.style,mxConstants.STYLE_SPACING,2)),Ka.value=isNaN(p)?"":this.inUnit(p)+" "+this.getUnit();if(B||document.activeElement!= -za)p=parseFloat(mxUtils.getValue(h.style,mxConstants.STYLE_SPACING_TOP,0)),za.value=isNaN(p)?"":this.inUnit(p)+" "+this.getUnit();if(B||document.activeElement!=Ha)p=parseFloat(mxUtils.getValue(h.style,mxConstants.STYLE_SPACING_RIGHT,0)),Ha.value=isNaN(p)?"":this.inUnit(p)+" "+this.getUnit();if(B||document.activeElement!=Ia)p=parseFloat(mxUtils.getValue(h.style,mxConstants.STYLE_SPACING_BOTTOM,0)),Ia.value=isNaN(p)?"":this.inUnit(p)+" "+this.getUnit();if(B||document.activeElement!=Pa)p=parseFloat(mxUtils.getValue(h.style, -mxConstants.STYLE_SPACING_LEFT,0)),Pa.value=isNaN(p)?"":this.inUnit(p)+" "+this.getUnit()});var cb=this.installInputHandler(Ka,mxConstants.STYLE_SPACING,2,-999,999,this.getUnit(" "),null,this.isFloatUnit(),!0);var fb=this.installInputHandler(za,mxConstants.STYLE_SPACING_TOP,0,-999,999,this.getUnit(" "),null,this.isFloatUnit(),!0);var pb=this.installInputHandler(Ha,mxConstants.STYLE_SPACING_RIGHT,0,-999,999,this.getUnit(" "),null,this.isFloatUnit(),!0);var gb=this.installInputHandler(Ia,mxConstants.STYLE_SPACING_BOTTOM, -0,-999,999,this.getUnit(" "),null,this.isFloatUnit(),!0);var ab=this.installInputHandler(Pa,mxConstants.STYLE_SPACING_LEFT,0,-999,999,this.getUnit(" "),null,this.isFloatUnit(),!0);this.addKeyHandler(ta,Wa);this.addKeyHandler(Ka,Wa);this.addKeyHandler(za,Wa);this.addKeyHandler(Ha,Wa);this.addKeyHandler(Ia,Wa);this.addKeyHandler(Pa,Wa);d.getModel().addListener(mxEvent.CHANGE,Wa);this.listeners.push({destroy:function(){d.getModel().removeListener(Wa)}});Wa();if(d.cellEditor.isContentEditing()){var hb= -null,eb=!1;m=mxUtils.bind(this,function(){eb||(eb=!0,window.setTimeout(mxUtils.bind(this,function(){var p=d.getSelectedEditingElement();if(null!=p&&null!=d.cellEditor.textarea){var A=function(Aa,Ga){if(null!=Aa&&null!=Ga){if(Aa==Ga)return!0;if(Aa.length>Ga.length+1)return Aa.substring(Aa.length-Ga.length-1,Aa.length)=="-"+Ga}return!1},B=function(Aa){if(null!=d.getParentByName(p,Aa,d.cellEditor.textarea))return!0;for(var Ga=p;null!=Ga&&1==Ga.childNodes.length;)if(Ga=Ga.childNodes[0],Ga.nodeName==Aa)return!0; -return!1},F=function(Aa){for(;null!=Aa&&Aa!=d.cellEditor.textarea;){if("block"==mxUtils.getCurrentStyle(Aa).display)return Aa;Aa=Aa.parentNode}return null},L=mxUtils.getCurrentStyle(p),P=p==d.cellEditor.textarea||""==p.style.lineHeight?null:p.style.lineHeight,Z=p==d.cellEditor.textarea||""==p.style.fontSize?null:b(L);if(window.getSelection)for(var ha=p.getElementsByTagName("*"),ea=window.getSelection(),ia=0;iaD;D++)(function(q){mxEvent.addListener(w[q],"click",function(){f(w[q],""==w[q].style.backgroundImage)})})(D); +var Wa=mxUtils.bind(this,function(q,A,B){h=g.getSelectionState();q=mxUtils.getValue(h.style,mxConstants.STYLE_FONTSTYLE,0);f(w[0],(q&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD);f(w[1],(q&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC);f(w[2],(q&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE);g.toolbar.setMenuText(v,mxUtils.getValue(h.style,mxConstants.STYLE_FONTFAMILY,Menus.prototype.defaultFont));f(y,"0"==mxUtils.getValue(h.style,mxConstants.STYLE_HORIZONTAL,"1"));if(B||document.activeElement!= +ta)q=parseFloat(mxUtils.getValue(h.style,mxConstants.STYLE_FONTSIZE,Menus.prototype.defaultFontSize)),ta.value=isNaN(q)?"":q+" "+Editor.fontSizeUnit;q=mxUtils.getValue(h.style,mxConstants.STYLE_ALIGN,mxConstants.ALIGN_CENTER);f(E,q==mxConstants.ALIGN_LEFT);f(G,q==mxConstants.ALIGN_CENTER);f(J,q==mxConstants.ALIGN_RIGHT);q=mxUtils.getValue(h.style,mxConstants.STYLE_VERTICAL_ALIGN,mxConstants.ALIGN_MIDDLE);f(M,q==mxConstants.ALIGN_TOP);f(O,q==mxConstants.ALIGN_MIDDLE);f(L,q==mxConstants.ALIGN_BOTTOM); +q=mxUtils.getValue(h.style,mxConstants.STYLE_LABEL_POSITION,mxConstants.ALIGN_CENTER);A=mxUtils.getValue(h.style,mxConstants.STYLE_VERTICAL_LABEL_POSITION,mxConstants.ALIGN_MIDDLE);ea.value=q==mxConstants.ALIGN_LEFT&&A==mxConstants.ALIGN_TOP?"topLeft":q==mxConstants.ALIGN_CENTER&&A==mxConstants.ALIGN_TOP?"top":q==mxConstants.ALIGN_RIGHT&&A==mxConstants.ALIGN_TOP?"topRight":q==mxConstants.ALIGN_LEFT&&A==mxConstants.ALIGN_BOTTOM?"bottomLeft":q==mxConstants.ALIGN_CENTER&&A==mxConstants.ALIGN_BOTTOM? +"bottom":q==mxConstants.ALIGN_RIGHT&&A==mxConstants.ALIGN_BOTTOM?"bottomRight":q==mxConstants.ALIGN_LEFT?"left":q==mxConstants.ALIGN_RIGHT?"right":"center";q=mxUtils.getValue(h.style,mxConstants.STYLE_TEXT_DIRECTION,mxConstants.DEFAULT_TEXT_DIRECTION);q==mxConstants.TEXT_DIRECTION_RTL?Y.value="rightToLeft":q==mxConstants.TEXT_DIRECTION_LTR?Y.value="leftToRight":q!=mxConstants.TEXT_DIRECTION_AUTO&&h.html?q==mxConstants.TEXT_DIRECTION_VERTICAL_LR?Y.value="vertical-leftToRight":q==mxConstants.TEXT_DIRECTION_VERTICAL_RL&& +(Y.value="vertical-rightToLeft"):Y.value="automatic";if(B||document.activeElement!=Ka)q=parseFloat(mxUtils.getValue(h.style,mxConstants.STYLE_SPACING,2)),Ka.value=isNaN(q)?"":this.inUnit(q)+" "+this.getUnit();if(B||document.activeElement!=za)q=parseFloat(mxUtils.getValue(h.style,mxConstants.STYLE_SPACING_TOP,0)),za.value=isNaN(q)?"":this.inUnit(q)+" "+this.getUnit();if(B||document.activeElement!=Ha)q=parseFloat(mxUtils.getValue(h.style,mxConstants.STYLE_SPACING_RIGHT,0)),Ha.value=isNaN(q)?"":this.inUnit(q)+ +" "+this.getUnit();if(B||document.activeElement!=Ia)q=parseFloat(mxUtils.getValue(h.style,mxConstants.STYLE_SPACING_BOTTOM,0)),Ia.value=isNaN(q)?"":this.inUnit(q)+" "+this.getUnit();if(B||document.activeElement!=Pa)q=parseFloat(mxUtils.getValue(h.style,mxConstants.STYLE_SPACING_LEFT,0)),Pa.value=isNaN(q)?"":this.inUnit(q)+" "+this.getUnit()});var cb=this.installInputHandler(Ka,mxConstants.STYLE_SPACING,2,-999,999,this.getUnit(" "),null,this.isFloatUnit(),!0);var fb=this.installInputHandler(za,mxConstants.STYLE_SPACING_TOP, +0,-999,999,this.getUnit(" "),null,this.isFloatUnit(),!0);var pb=this.installInputHandler(Ha,mxConstants.STYLE_SPACING_RIGHT,0,-999,999,this.getUnit(" "),null,this.isFloatUnit(),!0);var gb=this.installInputHandler(Ia,mxConstants.STYLE_SPACING_BOTTOM,0,-999,999,this.getUnit(" "),null,this.isFloatUnit(),!0);var ab=this.installInputHandler(Pa,mxConstants.STYLE_SPACING_LEFT,0,-999,999,this.getUnit(" "),null,this.isFloatUnit(),!0);this.addKeyHandler(ta,Wa);this.addKeyHandler(Ka,Wa);this.addKeyHandler(za, +Wa);this.addKeyHandler(Ha,Wa);this.addKeyHandler(Ia,Wa);this.addKeyHandler(Pa,Wa);d.getModel().addListener(mxEvent.CHANGE,Wa);this.listeners.push({destroy:function(){d.getModel().removeListener(Wa)}});Wa();if(d.cellEditor.isContentEditing()){var hb=null,eb=!1;m=mxUtils.bind(this,function(){eb||(eb=!0,window.setTimeout(mxUtils.bind(this,function(){var q=d.getSelectedEditingElement();if(null!=q&&null!=d.cellEditor.textarea){var A=function(Aa,Ga){if(null!=Aa&&null!=Ga){if(Aa==Ga)return!0;if(Aa.length> +Ga.length+1)return Aa.substring(Aa.length-Ga.length-1,Aa.length)=="-"+Ga}return!1},B=function(Aa){if(null!=d.getParentByName(q,Aa,d.cellEditor.textarea))return!0;for(var Ga=q;null!=Ga&&1==Ga.childNodes.length;)if(Ga=Ga.childNodes[0],Ga.nodeName==Aa)return!0;return!1},F=function(Aa){for(;null!=Aa&&Aa!=d.cellEditor.textarea;){if("block"==mxUtils.getCurrentStyle(Aa).display)return Aa;Aa=Aa.parentNode}return null},K=mxUtils.getCurrentStyle(q),Q=q==d.cellEditor.textarea||""==q.style.lineHeight?null:q.style.lineHeight, +Z=q==d.cellEditor.textarea||""==q.style.fontSize?null:b(K);if(window.getSelection)for(var ia=q.getElementsByTagName("*"),fa=window.getSelection(),ka=0;kaC&&0C&&0x?"#FFFFFF":"#000000"),c.begin(),c.moveTo(0,0),c.lineTo(n-v,0),c.lineTo(n,v),c.lineTo(v, -v),c.close(),c.fill()),0!=H&&(c.setFillAlpha(Math.abs(H)),c.setFillColor(0>H?"#FFFFFF":"#000000"),c.begin(),c.moveTo(0,0),c.lineTo(v,v),c.lineTo(v,r),c.lineTo(0,r-v),c.close(),c.fill()),c.begin(),c.moveTo(v,r),c.lineTo(v,v),c.lineTo(0,0),c.moveTo(v,v),c.lineTo(n,v),c.end(),c.stroke())};f.prototype.getLabelMargins=function(c){return mxUtils.getValue(this.style,"boundedLbl",!1)?(c=parseFloat(mxUtils.getValue(this.style,"size",this.size))*this.scale,new mxRectangle(c,c,0,0)):null};mxCellRenderer.registerShape("cube", +DiagramFormatPanel.prototype.destroy=function(){BaseFormatPanel.prototype.destroy.apply(this,arguments);this.gridEnabledListener&&(this.editorUi.removeListener(this.gridEnabledListener),this.gridEnabledListener=null)};(function(){function a(c,l,t){mxShape.call(this);this.line=c;this.stroke=l;this.strokewidth=null!=t?t:1;this.updateBoundsFromLine()}function b(){mxSwimlane.call(this)}function e(){mxSwimlane.call(this)}function f(){mxCylinder.call(this)}function g(){mxConnector.call(this)}function d(){mxCylinder.call(this)}function h(){mxActor.call(this)}function m(){mxCylinder.call(this)}function p(){mxCylinder.call(this)}function k(){mxCylinder.call(this)}function v(){mxCylinder.call(this)}function w(){mxShape.call(this)} +function y(){mxShape.call(this)}function C(c,l,t,n){mxShape.call(this);this.bounds=c;this.fill=l;this.stroke=t;this.strokewidth=null!=n?n:1}function D(){mxActor.call(this)}function E(){mxCylinder.call(this)}function G(){mxCylinder.call(this)}function J(){mxActor.call(this)}function M(){mxActor.call(this)}function O(){mxActor.call(this)}function L(){mxActor.call(this)}function W(){mxActor.call(this)}function X(){mxActor.call(this)}function U(){mxActor.call(this)}function N(c,l){this.canvas=c;this.canvas.setLineJoin("round"); +this.canvas.setLineCap("round");this.defaultVariation=l;this.originalLineTo=this.canvas.lineTo;this.canvas.lineTo=mxUtils.bind(this,N.prototype.lineTo);this.originalMoveTo=this.canvas.moveTo;this.canvas.moveTo=mxUtils.bind(this,N.prototype.moveTo);this.originalClose=this.canvas.close;this.canvas.close=mxUtils.bind(this,N.prototype.close);this.originalQuadTo=this.canvas.quadTo;this.canvas.quadTo=mxUtils.bind(this,N.prototype.quadTo);this.originalCurveTo=this.canvas.curveTo;this.canvas.curveTo=mxUtils.bind(this, +N.prototype.curveTo);this.originalArcTo=this.canvas.arcTo;this.canvas.arcTo=mxUtils.bind(this,N.prototype.arcTo)}function ca(){mxRectangleShape.call(this)}function H(){mxRectangleShape.call(this)}function S(){mxActor.call(this)}function ea(){mxActor.call(this)}function ja(){mxActor.call(this)}function P(){mxRectangleShape.call(this)}function V(){mxRectangleShape.call(this)}function Y(){mxCylinder.call(this)}function ha(){mxShape.call(this)}function la(){mxShape.call(this)}function ta(){mxEllipse.call(this)} +function aa(){mxShape.call(this)}function T(){mxShape.call(this)}function ba(){mxRectangleShape.call(this)}function ma(){mxShape.call(this)}function Ja(){mxShape.call(this)}function na(){mxShape.call(this)}function ya(){mxShape.call(this)}function za(){mxShape.call(this)}function Ka(){mxCylinder.call(this)}function Pa(){mxCylinder.call(this)}function Ia(){mxRectangleShape.call(this)}function Ha(){mxDoubleEllipse.call(this)}function ra(){mxDoubleEllipse.call(this)}function Da(){mxArrowConnector.call(this); +this.spacing=0}function Va(){mxArrowConnector.call(this);this.spacing=0}function Wa(){mxActor.call(this)}function cb(){mxRectangleShape.call(this)}function fb(){mxActor.call(this)}function pb(){mxActor.call(this)}function gb(){mxActor.call(this)}function ab(){mxActor.call(this)}function hb(){mxActor.call(this)}function eb(){mxActor.call(this)}function q(){mxActor.call(this)}function A(){mxActor.call(this)}function B(){mxActor.call(this)}function F(){mxActor.call(this)}function K(){mxEllipse.call(this)} +function Q(){mxEllipse.call(this)}function Z(){mxEllipse.call(this)}function ia(){mxRhombus.call(this)}function fa(){mxEllipse.call(this)}function ka(){mxEllipse.call(this)}function va(){mxEllipse.call(this)}function Ma(){mxEllipse.call(this)}function Na(){mxActor.call(this)}function Aa(){mxActor.call(this)}function Ga(){mxActor.call(this)}function wa(c,l,t,n){mxShape.call(this);this.bounds=c;this.fill=l;this.stroke=t;this.strokewidth=null!=n?n:1;this.rectStyle="square";this.size=10;this.absoluteCornerSize= +!0;this.indent=2;this.rectOutline="single"}function ua(){mxConnector.call(this)}function Xa(c,l,t,n,r,u,x,I,z,da){x+=z;var R=n.clone();n.x-=r*(2*x+z);n.y-=u*(2*x+z);r*=x+z;u*=x+z;return function(){c.ellipse(R.x-r-x,R.y-u-x,2*x,2*x);da?c.fillAndStroke():c.stroke()}}mxUtils.extend(a,mxShape);a.prototype.updateBoundsFromLine=function(){var c=null;if(null!=this.line)for(var l=0;lx?"#FFFFFF":"#000000"),c.begin(),c.moveTo(0,0),c.lineTo(n-u,0),c.lineTo(n,u),c.lineTo(u, +u),c.close(),c.fill()),0!=I&&(c.setFillAlpha(Math.abs(I)),c.setFillColor(0>I?"#FFFFFF":"#000000"),c.begin(),c.moveTo(0,0),c.lineTo(u,u),c.lineTo(u,r),c.lineTo(0,r-u),c.close(),c.fill()),c.begin(),c.moveTo(u,r),c.lineTo(u,u),c.lineTo(0,0),c.moveTo(u,u),c.lineTo(n,u),c.end(),c.stroke())};f.prototype.getLabelMargins=function(c){return mxUtils.getValue(this.style,"boundedLbl",!1)?(c=parseFloat(mxUtils.getValue(this.style,"size",this.size))*this.scale,new mxRectangle(c,c,0,0)):null};mxCellRenderer.registerShape("cube", f);var Qa=Math.tan(mxUtils.toRadians(30)),La=(.5-Qa)/2;mxCellRenderer.registerShape("isoRectangle",h);mxUtils.extend(g,mxConnector);g.prototype.paintEdgeShape=function(c,l){var t=this.createMarker(c,l,!0),n=this.createMarker(c,l,!1);c.setDashed(!1);mxPolyline.prototype.paintEdgeShape.apply(this,arguments);null!=this.isDashed&&c.setDashed(this.isDashed,null!=this.style?1==mxUtils.getValue(this.style,mxConstants.STYLE_FIX_DASH,!1):!1);c.setShadow(!1);c.setStrokeColor(this.fill);mxPolyline.prototype.paintEdgeShape.apply(this, -arguments);c.setStrokeColor(this.stroke);c.setFillColor(this.stroke);c.setDashed(!1);null!=t&&t();null!=n&&n()};mxCellRenderer.registerShape("wire",g);mxUtils.extend(d,mxCylinder);d.prototype.size=6;d.prototype.paintVertexShape=function(c,l,t,n,r){c.setFillColor(this.stroke);var v=Math.max(0,parseFloat(mxUtils.getValue(this.style,"size",this.size))-2)+2*this.strokewidth;c.ellipse(l+.5*(n-v),t+.5*(r-v),v,v);c.fill();c.setFillColor(mxConstants.NONE);c.rect(l,t,n,r);c.fill()};mxCellRenderer.registerShape("waypoint", -d);mxUtils.extend(h,mxActor);h.prototype.size=20;h.prototype.redrawPath=function(c,l,t,n,r){l=Math.min(n,r/Qa);c.translate((n-l)/2,(r-l)/2+l/4);c.moveTo(0,.25*l);c.lineTo(.5*l,l*La);c.lineTo(l,.25*l);c.lineTo(.5*l,(.5-La)*l);c.lineTo(0,.25*l);c.close();c.end()};mxCellRenderer.registerShape("isoRectangle",h);mxUtils.extend(m,mxCylinder);m.prototype.size=20;m.prototype.redrawPath=function(c,l,t,n,r,v){l=Math.min(n,r/(.5+Qa));v?(c.moveTo(0,.25*l),c.lineTo(.5*l,(.5-La)*l),c.lineTo(l,.25*l),c.moveTo(.5* -l,(.5-La)*l),c.lineTo(.5*l,(1-La)*l)):(c.translate((n-l)/2,(r-l)/2),c.moveTo(0,.25*l),c.lineTo(.5*l,l*La),c.lineTo(l,.25*l),c.lineTo(l,.75*l),c.lineTo(.5*l,(1-La)*l),c.lineTo(0,.75*l),c.close());c.end()};mxCellRenderer.registerShape("isoCube",m);mxUtils.extend(q,mxCylinder);q.prototype.redrawPath=function(c,l,t,n,r,v){l=Math.min(r/2,Math.round(r/8)+this.strokewidth-1);if(v&&null!=this.fill||!v&&null==this.fill)c.moveTo(0,l),c.curveTo(0,2*l,n,2*l,n,l),v||(c.stroke(),c.begin()),c.translate(0,l/2),c.moveTo(0, -l),c.curveTo(0,2*l,n,2*l,n,l),v||(c.stroke(),c.begin()),c.translate(0,l/2),c.moveTo(0,l),c.curveTo(0,2*l,n,2*l,n,l),v||(c.stroke(),c.begin()),c.translate(0,-l);v||(c.moveTo(0,l),c.curveTo(0,-l/3,n,-l/3,n,l),c.lineTo(n,r-l),c.curveTo(n,r+l/3,0,r+l/3,0,r-l),c.close())};q.prototype.getLabelMargins=function(c){return new mxRectangle(0,2.5*Math.min(c.height/2,Math.round(c.height/8)+this.strokewidth-1),0,0)};mxCellRenderer.registerShape("datastore",q);mxUtils.extend(k,mxCylinder);k.prototype.size=30;k.prototype.darkOpacity= -0;k.prototype.paintVertexShape=function(c,l,t,n,r){var v=Math.max(0,Math.min(n,Math.min(r,parseFloat(mxUtils.getValue(this.style,"size",this.size))))),x=Math.max(-1,Math.min(1,parseFloat(mxUtils.getValue(this.style,"darkOpacity",this.darkOpacity))));c.translate(l,t);c.begin();c.moveTo(0,0);c.lineTo(n-v,0);c.lineTo(n,v);c.lineTo(n,r);c.lineTo(0,r);c.lineTo(0,0);c.close();c.end();c.fillAndStroke();this.outline||(c.setShadow(!1),0!=x&&(c.setFillAlpha(Math.abs(x)),c.setFillColor(0>x?"#FFFFFF":"#000000"), -c.begin(),c.moveTo(n-v,0),c.lineTo(n-v,v),c.lineTo(n,v),c.close(),c.fill()),c.begin(),c.moveTo(n-v,0),c.lineTo(n-v,v),c.lineTo(n,v),c.end(),c.stroke())};mxCellRenderer.registerShape("note",k);mxUtils.extend(u,k);mxCellRenderer.registerShape("note2",u);u.prototype.getLabelMargins=function(c){if(mxUtils.getValue(this.style,"boundedLbl",!1)){var l=mxUtils.getValue(this.style,"size",15);return new mxRectangle(0,Math.min(c.height*this.scale,l*this.scale),0,0)}return null};mxUtils.extend(w,mxShape);w.prototype.isoAngle= -15;w.prototype.paintVertexShape=function(c,l,t,n,r){var v=Math.max(.01,Math.min(94,parseFloat(mxUtils.getValue(this.style,"isoAngle",this.isoAngle))))*Math.PI/200;v=Math.min(n*Math.tan(v),.5*r);c.translate(l,t);c.begin();c.moveTo(.5*n,0);c.lineTo(n,v);c.lineTo(n,r-v);c.lineTo(.5*n,r);c.lineTo(0,r-v);c.lineTo(0,v);c.close();c.fillAndStroke();c.setShadow(!1);c.begin();c.moveTo(0,v);c.lineTo(.5*n,2*v);c.lineTo(n,v);c.moveTo(.5*n,2*v);c.lineTo(.5*n,r);c.stroke()};mxCellRenderer.registerShape("isoCube2", -w);mxUtils.extend(z,mxShape);z.prototype.size=15;z.prototype.paintVertexShape=function(c,l,t,n,r){var v=Math.max(0,Math.min(.5*r,parseFloat(mxUtils.getValue(this.style,"size",this.size))));c.translate(l,t);0==v?(c.rect(0,0,n,r),c.fillAndStroke()):(c.begin(),c.moveTo(0,v),c.arcTo(.5*n,v,0,0,1,.5*n,0),c.arcTo(.5*n,v,0,0,1,n,v),c.lineTo(n,r-v),c.arcTo(.5*n,v,0,0,1,.5*n,r),c.arcTo(.5*n,v,0,0,1,0,r-v),c.close(),c.fillAndStroke(),c.setShadow(!1),c.begin(),c.moveTo(n,v),c.arcTo(.5*n,v,0,0,1,.5*n,2*v),c.arcTo(.5* -n,v,0,0,1,0,v),c.stroke())};mxCellRenderer.registerShape("cylinder2",z);mxUtils.extend(C,mxCylinder);C.prototype.size=15;C.prototype.paintVertexShape=function(c,l,t,n,r){var v=Math.max(0,Math.min(.5*r,parseFloat(mxUtils.getValue(this.style,"size",this.size)))),x=mxUtils.getValue(this.style,"lid",!0);c.translate(l,t);0==v?(c.rect(0,0,n,r),c.fillAndStroke()):(c.begin(),x?(c.moveTo(0,v),c.arcTo(.5*n,v,0,0,1,.5*n,0),c.arcTo(.5*n,v,0,0,1,n,v)):(c.moveTo(0,0),c.arcTo(.5*n,v,0,0,0,.5*n,v),c.arcTo(.5*n,v, -0,0,0,n,0)),c.lineTo(n,r-v),c.arcTo(.5*n,v,0,0,1,.5*n,r),c.arcTo(.5*n,v,0,0,1,0,r-v),c.close(),c.fillAndStroke(),c.setShadow(!1),x&&(c.begin(),c.moveTo(n,v),c.arcTo(.5*n,v,0,0,1,.5*n,2*v),c.arcTo(.5*n,v,0,0,1,0,v),c.stroke()))};mxCellRenderer.registerShape("cylinder3",C);mxUtils.extend(D,mxActor);D.prototype.redrawPath=function(c,l,t,n,r){c.moveTo(0,0);c.quadTo(n/2,.5*r,n,0);c.quadTo(.5*n,r/2,n,r);c.quadTo(n/2,.5*r,0,r);c.quadTo(.5*n,r/2,0,0);c.end()};mxCellRenderer.registerShape("switch",D);mxUtils.extend(E, -mxCylinder);E.prototype.tabWidth=60;E.prototype.tabHeight=20;E.prototype.tabPosition="right";E.prototype.arcSize=.1;E.prototype.isRoundable=function(){return!0};E.prototype.paintVertexShape=function(c,l,t,n,r){c.translate(l,t);l=Math.max(0,Math.min(n,parseFloat(mxUtils.getValue(this.style,"tabWidth",this.tabWidth))));t=Math.max(0,Math.min(r,parseFloat(mxUtils.getValue(this.style,"tabHeight",this.tabHeight))));var v=mxUtils.getValue(this.style,"tabPosition",this.tabPosition),x=mxUtils.getValue(this.style, -"rounded",!1),H=mxUtils.getValue(this.style,"absoluteArcSize",!1),y=parseFloat(mxUtils.getValue(this.style,"arcSize",this.arcSize));H||(y*=Math.min(n,r));y=Math.min(y,.5*n,.5*(r-t));l=Math.max(l,y);l=Math.min(n-y,l);x||(y=0);c.begin();"left"==v?(c.moveTo(Math.max(y,0),t),c.lineTo(Math.max(y,0),0),c.lineTo(l,0),c.lineTo(l,t)):(c.moveTo(n-l,t),c.lineTo(n-l,0),c.lineTo(n-Math.max(y,0),0),c.lineTo(n-Math.max(y,0),t));x?(c.moveTo(0,y+t),c.arcTo(y,y,0,0,1,y,t),c.lineTo(n-y,t),c.arcTo(y,y,0,0,1,n,y+t),c.lineTo(n, -r-y),c.arcTo(y,y,0,0,1,n-y,r),c.lineTo(y,r),c.arcTo(y,y,0,0,1,0,r-y)):(c.moveTo(0,t),c.lineTo(n,t),c.lineTo(n,r),c.lineTo(0,r));c.close();c.fillAndStroke();c.setShadow(!1);"triangle"==mxUtils.getValue(this.style,"folderSymbol",null)&&(c.begin(),c.moveTo(n-30,t+20),c.lineTo(n-20,t+10),c.lineTo(n-10,t+20),c.close(),c.stroke())};mxCellRenderer.registerShape("folder",E);E.prototype.getLabelMargins=function(c){if(mxUtils.getValue(this.style,"boundedLbl",!1)){var l=mxUtils.getValue(this.style,"tabHeight", -15)*this.scale;if(mxUtils.getValue(this.style,"labelInHeader",!1)){var t=mxUtils.getValue(this.style,"tabWidth",15)*this.scale;l=mxUtils.getValue(this.style,"tabHeight",15)*this.scale;var n=mxUtils.getValue(this.style,"rounded",!1),r=mxUtils.getValue(this.style,"absoluteArcSize",!1),v=parseFloat(mxUtils.getValue(this.style,"arcSize",this.arcSize));r||(v*=Math.min(c.width,c.height));v=Math.min(v,.5*c.width,.5*(c.height-l));n||(v=0);return"left"==mxUtils.getValue(this.style,"tabPosition",this.tabPosition)? -new mxRectangle(v,0,Math.min(c.width,c.width-t),Math.min(c.height,c.height-l)):new mxRectangle(Math.min(c.width,c.width-t),0,v,Math.min(c.height,c.height-l))}return new mxRectangle(0,Math.min(c.height,l),0,0)}return null};mxUtils.extend(G,mxCylinder);G.prototype.arcSize=.1;G.prototype.paintVertexShape=function(c,l,t,n,r){c.translate(l,t);var v=mxUtils.getValue(this.style,"rounded",!1),x=mxUtils.getValue(this.style,"absoluteArcSize",!1);l=parseFloat(mxUtils.getValue(this.style,"arcSize",this.arcSize)); -t=mxUtils.getValue(this.style,"umlStateConnection",null);x||(l*=Math.min(n,r));l=Math.min(l,.5*n,.5*r);v||(l=0);v=0;null!=t&&(v=10);c.begin();c.moveTo(v,l);c.arcTo(l,l,0,0,1,v+l,0);c.lineTo(n-l,0);c.arcTo(l,l,0,0,1,n,l);c.lineTo(n,r-l);c.arcTo(l,l,0,0,1,n-l,r);c.lineTo(v+l,r);c.arcTo(l,l,0,0,1,v,r-l);c.close();c.fillAndStroke();c.setShadow(!1);"collapseState"==mxUtils.getValue(this.style,"umlStateSymbol",null)&&(c.roundrect(n-40,r-20,10,10,3,3),c.stroke(),c.roundrect(n-20,r-20,10,10,3,3),c.stroke(), +arguments);c.setStrokeColor(this.stroke);c.setFillColor(this.stroke);c.setDashed(!1);null!=t&&t();null!=n&&n()};mxCellRenderer.registerShape("wire",g);mxUtils.extend(d,mxCylinder);d.prototype.size=6;d.prototype.paintVertexShape=function(c,l,t,n,r){c.setFillColor(this.stroke);var u=Math.max(0,parseFloat(mxUtils.getValue(this.style,"size",this.size))-2)+2*this.strokewidth;c.ellipse(l+.5*(n-u),t+.5*(r-u),u,u);c.fill();c.setFillColor(mxConstants.NONE);c.rect(l,t,n,r);c.fill()};mxCellRenderer.registerShape("waypoint", +d);mxUtils.extend(h,mxActor);h.prototype.size=20;h.prototype.redrawPath=function(c,l,t,n,r){l=Math.min(n,r/Qa);c.translate((n-l)/2,(r-l)/2+l/4);c.moveTo(0,.25*l);c.lineTo(.5*l,l*La);c.lineTo(l,.25*l);c.lineTo(.5*l,(.5-La)*l);c.lineTo(0,.25*l);c.close();c.end()};mxCellRenderer.registerShape("isoRectangle",h);mxUtils.extend(m,mxCylinder);m.prototype.size=20;m.prototype.redrawPath=function(c,l,t,n,r,u){l=Math.min(n,r/(.5+Qa));u?(c.moveTo(0,.25*l),c.lineTo(.5*l,(.5-La)*l),c.lineTo(l,.25*l),c.moveTo(.5* +l,(.5-La)*l),c.lineTo(.5*l,(1-La)*l)):(c.translate((n-l)/2,(r-l)/2),c.moveTo(0,.25*l),c.lineTo(.5*l,l*La),c.lineTo(l,.25*l),c.lineTo(l,.75*l),c.lineTo(.5*l,(1-La)*l),c.lineTo(0,.75*l),c.close());c.end()};mxCellRenderer.registerShape("isoCube",m);mxUtils.extend(p,mxCylinder);p.prototype.redrawPath=function(c,l,t,n,r,u){l=Math.min(r/2,Math.round(r/8)+this.strokewidth-1);if(u&&null!=this.fill||!u&&null==this.fill)c.moveTo(0,l),c.curveTo(0,2*l,n,2*l,n,l),u||(c.stroke(),c.begin()),c.translate(0,l/2),c.moveTo(0, +l),c.curveTo(0,2*l,n,2*l,n,l),u||(c.stroke(),c.begin()),c.translate(0,l/2),c.moveTo(0,l),c.curveTo(0,2*l,n,2*l,n,l),u||(c.stroke(),c.begin()),c.translate(0,-l);u||(c.moveTo(0,l),c.curveTo(0,-l/3,n,-l/3,n,l),c.lineTo(n,r-l),c.curveTo(n,r+l/3,0,r+l/3,0,r-l),c.close())};p.prototype.getLabelMargins=function(c){return new mxRectangle(0,2.5*Math.min(c.height/2,Math.round(c.height/8)+this.strokewidth-1),0,0)};mxCellRenderer.registerShape("datastore",p);mxUtils.extend(k,mxCylinder);k.prototype.size=30;k.prototype.darkOpacity= +0;k.prototype.paintVertexShape=function(c,l,t,n,r){var u=Math.max(0,Math.min(n,Math.min(r,parseFloat(mxUtils.getValue(this.style,"size",this.size))))),x=Math.max(-1,Math.min(1,parseFloat(mxUtils.getValue(this.style,"darkOpacity",this.darkOpacity))));c.translate(l,t);c.begin();c.moveTo(0,0);c.lineTo(n-u,0);c.lineTo(n,u);c.lineTo(n,r);c.lineTo(0,r);c.lineTo(0,0);c.close();c.end();c.fillAndStroke();this.outline||(c.setShadow(!1),0!=x&&(c.setFillAlpha(Math.abs(x)),c.setFillColor(0>x?"#FFFFFF":"#000000"), +c.begin(),c.moveTo(n-u,0),c.lineTo(n-u,u),c.lineTo(n,u),c.close(),c.fill()),c.begin(),c.moveTo(n-u,0),c.lineTo(n-u,u),c.lineTo(n,u),c.end(),c.stroke())};mxCellRenderer.registerShape("note",k);mxUtils.extend(v,k);mxCellRenderer.registerShape("note2",v);v.prototype.getLabelMargins=function(c){if(mxUtils.getValue(this.style,"boundedLbl",!1)){var l=mxUtils.getValue(this.style,"size",15);return new mxRectangle(0,Math.min(c.height*this.scale,l*this.scale),0,0)}return null};mxUtils.extend(w,mxShape);w.prototype.isoAngle= +15;w.prototype.paintVertexShape=function(c,l,t,n,r){var u=Math.max(.01,Math.min(94,parseFloat(mxUtils.getValue(this.style,"isoAngle",this.isoAngle))))*Math.PI/200;u=Math.min(n*Math.tan(u),.5*r);c.translate(l,t);c.begin();c.moveTo(.5*n,0);c.lineTo(n,u);c.lineTo(n,r-u);c.lineTo(.5*n,r);c.lineTo(0,r-u);c.lineTo(0,u);c.close();c.fillAndStroke();c.setShadow(!1);c.begin();c.moveTo(0,u);c.lineTo(.5*n,2*u);c.lineTo(n,u);c.moveTo(.5*n,2*u);c.lineTo(.5*n,r);c.stroke()};mxCellRenderer.registerShape("isoCube2", +w);mxUtils.extend(y,mxShape);y.prototype.size=15;y.prototype.paintVertexShape=function(c,l,t,n,r){var u=Math.max(0,Math.min(.5*r,parseFloat(mxUtils.getValue(this.style,"size",this.size))));c.translate(l,t);0==u?(c.rect(0,0,n,r),c.fillAndStroke()):(c.begin(),c.moveTo(0,u),c.arcTo(.5*n,u,0,0,1,.5*n,0),c.arcTo(.5*n,u,0,0,1,n,u),c.lineTo(n,r-u),c.arcTo(.5*n,u,0,0,1,.5*n,r),c.arcTo(.5*n,u,0,0,1,0,r-u),c.close(),c.fillAndStroke(),c.setShadow(!1),c.begin(),c.moveTo(n,u),c.arcTo(.5*n,u,0,0,1,.5*n,2*u),c.arcTo(.5* +n,u,0,0,1,0,u),c.stroke())};mxCellRenderer.registerShape("cylinder2",y);mxUtils.extend(C,mxCylinder);C.prototype.size=15;C.prototype.paintVertexShape=function(c,l,t,n,r){var u=Math.max(0,Math.min(.5*r,parseFloat(mxUtils.getValue(this.style,"size",this.size)))),x=mxUtils.getValue(this.style,"lid",!0);c.translate(l,t);0==u?(c.rect(0,0,n,r),c.fillAndStroke()):(c.begin(),x?(c.moveTo(0,u),c.arcTo(.5*n,u,0,0,1,.5*n,0),c.arcTo(.5*n,u,0,0,1,n,u)):(c.moveTo(0,0),c.arcTo(.5*n,u,0,0,0,.5*n,u),c.arcTo(.5*n,u, +0,0,0,n,0)),c.lineTo(n,r-u),c.arcTo(.5*n,u,0,0,1,.5*n,r),c.arcTo(.5*n,u,0,0,1,0,r-u),c.close(),c.fillAndStroke(),c.setShadow(!1),x&&(c.begin(),c.moveTo(n,u),c.arcTo(.5*n,u,0,0,1,.5*n,2*u),c.arcTo(.5*n,u,0,0,1,0,u),c.stroke()))};mxCellRenderer.registerShape("cylinder3",C);mxUtils.extend(D,mxActor);D.prototype.redrawPath=function(c,l,t,n,r){c.moveTo(0,0);c.quadTo(n/2,.5*r,n,0);c.quadTo(.5*n,r/2,n,r);c.quadTo(n/2,.5*r,0,r);c.quadTo(.5*n,r/2,0,0);c.end()};mxCellRenderer.registerShape("switch",D);mxUtils.extend(E, +mxCylinder);E.prototype.tabWidth=60;E.prototype.tabHeight=20;E.prototype.tabPosition="right";E.prototype.arcSize=.1;E.prototype.isRoundable=function(){return!0};E.prototype.paintVertexShape=function(c,l,t,n,r){c.translate(l,t);l=Math.max(0,Math.min(n,parseFloat(mxUtils.getValue(this.style,"tabWidth",this.tabWidth))));t=Math.max(0,Math.min(r,parseFloat(mxUtils.getValue(this.style,"tabHeight",this.tabHeight))));var u=mxUtils.getValue(this.style,"tabPosition",this.tabPosition),x=mxUtils.getValue(this.style, +"rounded",!1),I=mxUtils.getValue(this.style,"absoluteArcSize",!1),z=parseFloat(mxUtils.getValue(this.style,"arcSize",this.arcSize));I||(z*=Math.min(n,r));z=Math.min(z,.5*n,.5*(r-t));l=Math.max(l,z);l=Math.min(n-z,l);x||(z=0);c.begin();"left"==u?(c.moveTo(Math.max(z,0),t),c.lineTo(Math.max(z,0),0),c.lineTo(l,0),c.lineTo(l,t)):(c.moveTo(n-l,t),c.lineTo(n-l,0),c.lineTo(n-Math.max(z,0),0),c.lineTo(n-Math.max(z,0),t));x?(c.moveTo(0,z+t),c.arcTo(z,z,0,0,1,z,t),c.lineTo(n-z,t),c.arcTo(z,z,0,0,1,n,z+t),c.lineTo(n, +r-z),c.arcTo(z,z,0,0,1,n-z,r),c.lineTo(z,r),c.arcTo(z,z,0,0,1,0,r-z)):(c.moveTo(0,t),c.lineTo(n,t),c.lineTo(n,r),c.lineTo(0,r));c.close();c.fillAndStroke();c.setShadow(!1);"triangle"==mxUtils.getValue(this.style,"folderSymbol",null)&&(c.begin(),c.moveTo(n-30,t+20),c.lineTo(n-20,t+10),c.lineTo(n-10,t+20),c.close(),c.stroke())};mxCellRenderer.registerShape("folder",E);E.prototype.getLabelMargins=function(c){if(mxUtils.getValue(this.style,"boundedLbl",!1)){var l=mxUtils.getValue(this.style,"tabHeight", +15)*this.scale;if(mxUtils.getValue(this.style,"labelInHeader",!1)){var t=mxUtils.getValue(this.style,"tabWidth",15)*this.scale;l=mxUtils.getValue(this.style,"tabHeight",15)*this.scale;var n=mxUtils.getValue(this.style,"rounded",!1),r=mxUtils.getValue(this.style,"absoluteArcSize",!1),u=parseFloat(mxUtils.getValue(this.style,"arcSize",this.arcSize));r||(u*=Math.min(c.width,c.height));u=Math.min(u,.5*c.width,.5*(c.height-l));n||(u=0);return"left"==mxUtils.getValue(this.style,"tabPosition",this.tabPosition)? +new mxRectangle(u,0,Math.min(c.width,c.width-t),Math.min(c.height,c.height-l)):new mxRectangle(Math.min(c.width,c.width-t),0,u,Math.min(c.height,c.height-l))}return new mxRectangle(0,Math.min(c.height,l),0,0)}return null};mxUtils.extend(G,mxCylinder);G.prototype.arcSize=.1;G.prototype.paintVertexShape=function(c,l,t,n,r){c.translate(l,t);var u=mxUtils.getValue(this.style,"rounded",!1),x=mxUtils.getValue(this.style,"absoluteArcSize",!1);l=parseFloat(mxUtils.getValue(this.style,"arcSize",this.arcSize)); +t=mxUtils.getValue(this.style,"umlStateConnection",null);x||(l*=Math.min(n,r));l=Math.min(l,.5*n,.5*r);u||(l=0);u=0;null!=t&&(u=10);c.begin();c.moveTo(u,l);c.arcTo(l,l,0,0,1,u+l,0);c.lineTo(n-l,0);c.arcTo(l,l,0,0,1,n,l);c.lineTo(n,r-l);c.arcTo(l,l,0,0,1,n-l,r);c.lineTo(u+l,r);c.arcTo(l,l,0,0,1,u,r-l);c.close();c.fillAndStroke();c.setShadow(!1);"collapseState"==mxUtils.getValue(this.style,"umlStateSymbol",null)&&(c.roundrect(n-40,r-20,10,10,3,3),c.stroke(),c.roundrect(n-20,r-20,10,10,3,3),c.stroke(), c.begin(),c.moveTo(n-30,r-15),c.lineTo(n-20,r-15),c.stroke());"connPointRefEntry"==t?(c.ellipse(0,.5*r-10,20,20),c.fillAndStroke()):"connPointRefExit"==t&&(c.ellipse(0,.5*r-10,20,20),c.fillAndStroke(),c.begin(),c.moveTo(5,.5*r-5),c.lineTo(15,.5*r+5),c.moveTo(15,.5*r-5),c.lineTo(5,.5*r+5),c.stroke())};G.prototype.getLabelMargins=function(c){return mxUtils.getValue(this.style,"boundedLbl",!1)&&null!=mxUtils.getValue(this.style,"umlStateConnection",null)?new mxRectangle(10*this.scale,0,0,0):null};mxCellRenderer.registerShape("umlState", -G);mxUtils.extend(I,mxActor);I.prototype.size=30;I.prototype.isRoundable=function(){return!0};I.prototype.redrawPath=function(c,l,t,n,r){l=Math.max(0,Math.min(n,Math.min(r,parseFloat(mxUtils.getValue(this.style,"size",this.size)))));t=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(c,[new mxPoint(l,0),new mxPoint(n,0),new mxPoint(n,r),new mxPoint(0,r),new mxPoint(0,l)],this.isRounded,t,!0);c.end()};mxCellRenderer.registerShape("card",I);mxUtils.extend(J, -mxActor);J.prototype.size=.4;J.prototype.redrawPath=function(c,l,t,n,r){l=r*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));c.moveTo(0,l/2);c.quadTo(n/4,1.4*l,n/2,l/2);c.quadTo(3*n/4,l*(1-1.4),n,l/2);c.lineTo(n,r-l/2);c.quadTo(3*n/4,r-1.4*l,n/2,r-l/2);c.quadTo(n/4,r-l*(1-1.4),0,r-l/2);c.lineTo(0,l/2);c.close();c.end()};J.prototype.getLabelBounds=function(c){if(mxUtils.getValue(this.style,"boundedLbl",!1)){var l=mxUtils.getValue(this.style,"size",this.size),t=c.width, -n=c.height;if(null==this.direction||this.direction==mxConstants.DIRECTION_EAST||this.direction==mxConstants.DIRECTION_WEST)return l*=n,new mxRectangle(c.x,c.y+l,t,n-2*l);l*=t;return new mxRectangle(c.x+l,c.y,t-2*l,n)}return c};mxCellRenderer.registerShape("tape",J);mxUtils.extend(T,mxActor);T.prototype.size=.3;T.prototype.getLabelMargins=function(c){return mxUtils.getValue(this.style,"boundedLbl",!1)?new mxRectangle(0,0,0,parseFloat(mxUtils.getValue(this.style,"size",this.size))*c.height):null};T.prototype.redrawPath= -function(c,l,t,n,r){l=r*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));c.moveTo(0,0);c.lineTo(n,0);c.lineTo(n,r-l/2);c.quadTo(3*n/4,r-1.4*l,n/2,r-l/2);c.quadTo(n/4,r-l*(1-1.4),0,r-l/2);c.lineTo(0,l/2);c.close();c.end()};mxCellRenderer.registerShape("document",T);var Ua=mxCylinder.prototype.getCylinderSize;mxCylinder.prototype.getCylinderSize=function(c,l,t,n){var r=mxUtils.getValue(this.style,"size");return null!=r?n*Math.max(0,Math.min(1,r)):Ua.apply(this,arguments)}; +G);mxUtils.extend(J,mxActor);J.prototype.size=30;J.prototype.isRoundable=function(){return!0};J.prototype.redrawPath=function(c,l,t,n,r){l=Math.max(0,Math.min(n,Math.min(r,parseFloat(mxUtils.getValue(this.style,"size",this.size)))));t=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(c,[new mxPoint(l,0),new mxPoint(n,0),new mxPoint(n,r),new mxPoint(0,r),new mxPoint(0,l)],this.isRounded,t,!0);c.end()};mxCellRenderer.registerShape("card",J);mxUtils.extend(M, +mxActor);M.prototype.size=.4;M.prototype.redrawPath=function(c,l,t,n,r){l=r*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));c.moveTo(0,l/2);c.quadTo(n/4,1.4*l,n/2,l/2);c.quadTo(3*n/4,l*(1-1.4),n,l/2);c.lineTo(n,r-l/2);c.quadTo(3*n/4,r-1.4*l,n/2,r-l/2);c.quadTo(n/4,r-l*(1-1.4),0,r-l/2);c.lineTo(0,l/2);c.close();c.end()};M.prototype.getLabelBounds=function(c){if(mxUtils.getValue(this.style,"boundedLbl",!1)){var l=mxUtils.getValue(this.style,"size",this.size),t=c.width, +n=c.height;if(null==this.direction||this.direction==mxConstants.DIRECTION_EAST||this.direction==mxConstants.DIRECTION_WEST)return l*=n,new mxRectangle(c.x,c.y+l,t,n-2*l);l*=t;return new mxRectangle(c.x+l,c.y,t-2*l,n)}return c};mxCellRenderer.registerShape("tape",M);mxUtils.extend(O,mxActor);O.prototype.size=.3;O.prototype.getLabelMargins=function(c){return mxUtils.getValue(this.style,"boundedLbl",!1)?new mxRectangle(0,0,0,parseFloat(mxUtils.getValue(this.style,"size",this.size))*c.height):null};O.prototype.redrawPath= +function(c,l,t,n,r){l=r*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));c.moveTo(0,0);c.lineTo(n,0);c.lineTo(n,r-l/2);c.quadTo(3*n/4,r-1.4*l,n/2,r-l/2);c.quadTo(n/4,r-l*(1-1.4),0,r-l/2);c.lineTo(0,l/2);c.close();c.end()};mxCellRenderer.registerShape("document",O);var Ua=mxCylinder.prototype.getCylinderSize;mxCylinder.prototype.getCylinderSize=function(c,l,t,n){var r=mxUtils.getValue(this.style,"size");return null!=r?n*Math.max(0,Math.min(1,r)):Ua.apply(this,arguments)}; mxCylinder.prototype.getLabelMargins=function(c){if(mxUtils.getValue(this.style,"boundedLbl",!1)){var l=2*mxUtils.getValue(this.style,"size",.15);return new mxRectangle(0,Math.min(this.maxHeight*this.scale,c.height*l),0,0)}return null};C.prototype.getLabelMargins=function(c){if(mxUtils.getValue(this.style,"boundedLbl",!1)){var l=mxUtils.getValue(this.style,"size",15);mxUtils.getValue(this.style,"lid",!0)||(l/=2);return new mxRectangle(0,Math.min(c.height*this.scale,2*l*this.scale),0,Math.max(0,.3* -l*this.scale))}return null};E.prototype.getLabelMargins=function(c){if(mxUtils.getValue(this.style,"boundedLbl",!1)){var l=mxUtils.getValue(this.style,"tabHeight",15)*this.scale;if(mxUtils.getValue(this.style,"labelInHeader",!1)){var t=mxUtils.getValue(this.style,"tabWidth",15)*this.scale;l=mxUtils.getValue(this.style,"tabHeight",15)*this.scale;var n=mxUtils.getValue(this.style,"rounded",!1),r=mxUtils.getValue(this.style,"absoluteArcSize",!1),v=parseFloat(mxUtils.getValue(this.style,"arcSize",this.arcSize)); -r||(v*=Math.min(c.width,c.height));v=Math.min(v,.5*c.width,.5*(c.height-l));n||(v=0);return"left"==mxUtils.getValue(this.style,"tabPosition",this.tabPosition)?new mxRectangle(v,0,Math.min(c.width,c.width-t),Math.min(c.height,c.height-l)):new mxRectangle(Math.min(c.width,c.width-t),0,v,Math.min(c.height,c.height-l))}return new mxRectangle(0,Math.min(c.height,l),0,0)}return null};G.prototype.getLabelMargins=function(c){return mxUtils.getValue(this.style,"boundedLbl",!1)&&null!=mxUtils.getValue(this.style, -"umlStateConnection",null)?new mxRectangle(10*this.scale,0,0,0):null};u.prototype.getLabelMargins=function(c){if(mxUtils.getValue(this.style,"boundedLbl",!1)){var l=mxUtils.getValue(this.style,"size",15);return new mxRectangle(0,Math.min(c.height*this.scale,l*this.scale),0,Math.max(0,l*this.scale))}return null};mxUtils.extend(K,mxActor);K.prototype.size=.2;K.prototype.fixedSize=20;K.prototype.isRoundable=function(){return!0};K.prototype.redrawPath=function(c,l,t,n,r){l="0"!=mxUtils.getValue(this.style, -"fixedSize","0")?Math.max(0,Math.min(n,parseFloat(mxUtils.getValue(this.style,"size",this.fixedSize)))):n*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));t=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(c,[new mxPoint(0,r),new mxPoint(l,0),new mxPoint(n,0),new mxPoint(n-l,r)],this.isRounded,t,!0);c.end()};mxCellRenderer.registerShape("parallelogram",K);mxUtils.extend(V,mxActor);V.prototype.size=.2;V.prototype.fixedSize= -20;V.prototype.isRoundable=function(){return!0};V.prototype.redrawPath=function(c,l,t,n,r){l="0"!=mxUtils.getValue(this.style,"fixedSize","0")?Math.max(0,Math.min(.5*n,parseFloat(mxUtils.getValue(this.style,"size",this.fixedSize)))):n*Math.max(0,Math.min(.5,parseFloat(mxUtils.getValue(this.style,"size",this.size))));t=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(c,[new mxPoint(0,r),new mxPoint(l,0),new mxPoint(n-l,0),new mxPoint(n,r)],this.isRounded, -t,!0)};mxCellRenderer.registerShape("trapezoid",V);mxUtils.extend(W,mxActor);W.prototype.size=.5;W.prototype.redrawPath=function(c,l,t,n,r){c.setFillColor(null);l=n*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));t=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(c,[new mxPoint(n,0),new mxPoint(l,0),new mxPoint(l,r/2),new mxPoint(0,r/2),new mxPoint(l,r/2),new mxPoint(l,r),new mxPoint(n,r)],this.isRounded,t,!1);c.end()}; -mxCellRenderer.registerShape("curlyBracket",W);mxUtils.extend(O,mxActor);O.prototype.redrawPath=function(c,l,t,n,r){c.setStrokeWidth(1);c.setFillColor(this.stroke);l=n/5;c.rect(0,0,l,r);c.fillAndStroke();c.rect(2*l,0,l,r);c.fillAndStroke();c.rect(4*l,0,l,r);c.fillAndStroke()};mxCellRenderer.registerShape("parallelMarker",O);M.prototype.moveTo=function(c,l){this.originalMoveTo.apply(this.canvas,arguments);this.lastX=c;this.lastY=l;this.firstX=c;this.firstY=l};M.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)};M.prototype.quadTo=function(c,l,t,n){this.originalQuadTo.apply(this.canvas,arguments);this.lastX=t;this.lastY=n};M.prototype.curveTo=function(c,l,t,n,r,v){this.originalCurveTo.apply(this.canvas,arguments);this.lastX=r;this.lastY=v};M.prototype.arcTo=function(c,l,t,n,r,v,x){this.originalArcTo.apply(this.canvas,arguments);this.lastX=v;this.lastY= -x};M.prototype.lineTo=function(c,l){if(null!=this.lastX&&null!=this.lastY){var t=function(Q){return"number"===typeof Q?Q?0>Q?-1:1:Q===Q?0:NaN:NaN},n=Math.abs(c-this.lastX),r=Math.abs(l-this.lastY),v=Math.sqrt(n*n+r*r);if(2>v){this.originalLineTo.apply(this.canvas,arguments);this.lastX=c;this.lastY=l;return}var x=Math.round(v/10),H=this.defaultVariation;5>x&&(x=5,H/=3);var y=t(c-this.lastX)*n/x;t=t(l-this.lastY)*r/x;n/=v;r/=v;for(v=0;vR?-1:1:R===R?0:NaN:NaN},n=Math.abs(c-this.lastX),r=Math.abs(l-this.lastY),u=Math.sqrt(n*n+r*r);if(2>u){this.originalLineTo.apply(this.canvas,arguments);this.lastX=c;this.lastY=l;return}var x=Math.round(u/10),I=this.defaultVariation;5>x&&(x=5,I/=3);var z=t(c-this.lastX)*n/x;t=t(l-this.lastY)*r/x;n/=u;r/=u;for(u=0;ux+y?c.y=t.y:c.x=t.x);return mxUtils.getPerimeterPoint(H,c,t)};mxStyleRegistry.putValue("parallelogramPerimeter",mxPerimeter.ParallelogramPerimeter);mxPerimeter.TrapezoidPerimeter=function(c,l,t,n){var r="0"!=mxUtils.getValue(l.style, -"fixedSize","0"),v=r?V.prototype.fixedSize:V.prototype.size;null!=l&&(v=mxUtils.getValue(l.style,"size",v));r&&(v*=l.view.scale);var x=c.x,H=c.y,y=c.width,da=c.height;l=null!=l?mxUtils.getValue(l.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST):mxConstants.DIRECTION_EAST;l==mxConstants.DIRECTION_EAST?(r=r?Math.max(0,Math.min(.5*y,v)):y*Math.max(0,Math.min(1,v)),H=[new mxPoint(x+r,H),new mxPoint(x+y-r,H),new mxPoint(x+y,H+da),new mxPoint(x,H+da),new mxPoint(x+r,H)]):l==mxConstants.DIRECTION_WEST? -(r=r?Math.max(0,Math.min(y,v)):y*Math.max(0,Math.min(1,v)),H=[new mxPoint(x,H),new mxPoint(x+y,H),new mxPoint(x+y-r,H+da),new mxPoint(x+r,H+da),new mxPoint(x,H)]):l==mxConstants.DIRECTION_NORTH?(r=r?Math.max(0,Math.min(da,v)):da*Math.max(0,Math.min(1,v)),H=[new mxPoint(x,H+r),new mxPoint(x+y,H),new mxPoint(x+y,H+da),new mxPoint(x,H+da-r),new mxPoint(x,H+r)]):(r=r?Math.max(0,Math.min(da,v)):da*Math.max(0,Math.min(1,v)),H=[new mxPoint(x,H),new mxPoint(x+y,H+r),new mxPoint(x+y,H+da-r),new mxPoint(x, -H+da),new mxPoint(x,H)]);da=c.getCenterX();c=c.getCenterY();c=new mxPoint(da,c);n&&(t.xx+y?c.y=t.y:c.x=t.x);return mxUtils.getPerimeterPoint(H,c,t)};mxStyleRegistry.putValue("trapezoidPerimeter",mxPerimeter.TrapezoidPerimeter);mxPerimeter.StepPerimeter=function(c,l,t,n){var r="0"!=mxUtils.getValue(l.style,"fixedSize","0"),v=r?ja.prototype.fixedSize:ja.prototype.size;null!=l&&(v=mxUtils.getValue(l.style,"size",v));r&&(v*=l.view.scale);var x=c.x,H=c.y,y=c.width,da=c.height,Q=c.getCenterX(); -c=c.getCenterY();l=null!=l?mxUtils.getValue(l.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST):mxConstants.DIRECTION_EAST;l==mxConstants.DIRECTION_EAST?(r=r?Math.max(0,Math.min(y,v)):y*Math.max(0,Math.min(1,v)),H=[new mxPoint(x,H),new mxPoint(x+y-r,H),new mxPoint(x+y,c),new mxPoint(x+y-r,H+da),new mxPoint(x,H+da),new mxPoint(x+r,c),new mxPoint(x,H)]):l==mxConstants.DIRECTION_WEST?(r=r?Math.max(0,Math.min(y,v)):y*Math.max(0,Math.min(1,v)),H=[new mxPoint(x+r,H),new mxPoint(x+y,H),new mxPoint(x+ -y-r,c),new mxPoint(x+y,H+da),new mxPoint(x+r,H+da),new mxPoint(x,c),new mxPoint(x+r,H)]):l==mxConstants.DIRECTION_NORTH?(r=r?Math.max(0,Math.min(da,v)):da*Math.max(0,Math.min(1,v)),H=[new mxPoint(x,H+r),new mxPoint(Q,H),new mxPoint(x+y,H+r),new mxPoint(x+y,H+da),new mxPoint(Q,H+da-r),new mxPoint(x,H+da),new mxPoint(x,H+r)]):(r=r?Math.max(0,Math.min(da,v)):da*Math.max(0,Math.min(1,v)),H=[new mxPoint(x,H),new mxPoint(Q,H+r),new mxPoint(x+y,H),new mxPoint(x+y,H+da-r),new mxPoint(Q,H+da),new mxPoint(x, -H+da-r),new mxPoint(x,H)]);Q=new mxPoint(Q,c);n&&(t.xx+y?Q.y=t.y:Q.x=t.x);return mxUtils.getPerimeterPoint(H,Q,t)};mxStyleRegistry.putValue("stepPerimeter",mxPerimeter.StepPerimeter);mxPerimeter.HexagonPerimeter2=function(c,l,t,n){var r="0"!=mxUtils.getValue(l.style,"fixedSize","0"),v=r?la.prototype.fixedSize:la.prototype.size;null!=l&&(v=mxUtils.getValue(l.style,"size",v));r&&(v*=l.view.scale);var x=c.x,H=c.y,y=c.width,da=c.height,Q=c.getCenterX();c=c.getCenterY();l=null!=l?mxUtils.getValue(l.style, -mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST):mxConstants.DIRECTION_EAST;l==mxConstants.DIRECTION_NORTH||l==mxConstants.DIRECTION_SOUTH?(r=r?Math.max(0,Math.min(da,v)):da*Math.max(0,Math.min(1,v)),H=[new mxPoint(Q,H),new mxPoint(x+y,H+r),new mxPoint(x+y,H+da-r),new mxPoint(Q,H+da),new mxPoint(x,H+da-r),new mxPoint(x,H+r),new mxPoint(Q,H)]):(r=r?Math.max(0,Math.min(y,v)):y*Math.max(0,Math.min(1,v)),H=[new mxPoint(x+r,H),new mxPoint(x+y-r,H),new mxPoint(x+y,c),new mxPoint(x+y-r,H+da),new mxPoint(x+ -r,H+da),new mxPoint(x,c),new mxPoint(x+r,H)]);Q=new mxPoint(Q,c);n&&(t.xx+y?Q.y=t.y:Q.x=t.x);return mxUtils.getPerimeterPoint(H,Q,t)};mxStyleRegistry.putValue("hexagonPerimeter2",mxPerimeter.HexagonPerimeter2);mxUtils.extend(Ja,mxShape);Ja.prototype.size=10;Ja.prototype.paintBackground=function(c,l,t,n,r){var v=parseFloat(mxUtils.getValue(this.style,"size",this.size));c.translate(l,t);c.ellipse((n-v)/2,0,v,v);c.fillAndStroke();c.begin();c.moveTo(n/2,v);c.lineTo(n/2,r);c.end();c.stroke()}; -mxCellRenderer.registerShape("lollipop",Ja);mxUtils.extend(na,mxShape);na.prototype.size=10;na.prototype.inset=2;na.prototype.paintBackground=function(c,l,t,n,r){var v=parseFloat(mxUtils.getValue(this.style,"size",this.size)),x=parseFloat(mxUtils.getValue(this.style,"inset",this.inset))+this.strokewidth;c.translate(l,t);c.begin();c.moveTo(n/2,v+x);c.lineTo(n/2,r);c.end();c.stroke();c.begin();c.moveTo((n-v)/2-x,v/2);c.quadTo((n-v)/2-x,v+x,n/2,v+x);c.quadTo((n+v)/2+x,v+x,(n+v)/2+x,v/2);c.end();c.stroke()}; -mxCellRenderer.registerShape("requires",na);mxUtils.extend(ya,mxShape);ya.prototype.paintBackground=function(c,l,t,n,r){c.translate(l,t);c.begin();c.moveTo(0,0);c.quadTo(n,0,n,r/2);c.quadTo(n,r,0,r);c.end();c.stroke()};mxCellRenderer.registerShape("requiredInterface",ya);mxUtils.extend(za,mxShape);za.prototype.inset=2;za.prototype.paintBackground=function(c,l,t,n,r){var v=parseFloat(mxUtils.getValue(this.style,"inset",this.inset))+this.strokewidth;c.translate(l,t);c.ellipse(0,v,n-2*v,r-2*v);c.fillAndStroke(); -c.begin();c.moveTo(n/2,0);c.quadTo(n,0,n,r/2);c.quadTo(n,r,n/2,r);c.end();c.stroke()};mxCellRenderer.registerShape("providedRequiredInterface",za);mxUtils.extend(Ka,mxCylinder);Ka.prototype.jettyWidth=20;Ka.prototype.jettyHeight=10;Ka.prototype.redrawPath=function(c,l,t,n,r,v){var x=parseFloat(mxUtils.getValue(this.style,"jettyWidth",this.jettyWidth));l=parseFloat(mxUtils.getValue(this.style,"jettyHeight",this.jettyHeight));t=x/2;x=t+x/2;var H=Math.min(l,r-l),y=Math.min(H+2*l,r-l);v?(c.moveTo(t,H), -c.lineTo(x,H),c.lineTo(x,H+l),c.lineTo(t,H+l),c.moveTo(t,y),c.lineTo(x,y),c.lineTo(x,y+l),c.lineTo(t,y+l)):(c.moveTo(t,0),c.lineTo(n,0),c.lineTo(n,r),c.lineTo(t,r),c.lineTo(t,y+l),c.lineTo(0,y+l),c.lineTo(0,y),c.lineTo(t,y),c.lineTo(t,H+l),c.lineTo(0,H+l),c.lineTo(0,H),c.lineTo(t,H),c.close());c.end()};mxCellRenderer.registerShape("module",Ka);mxUtils.extend(Pa,mxCylinder);Pa.prototype.jettyWidth=32;Pa.prototype.jettyHeight=12;Pa.prototype.redrawPath=function(c,l,t,n,r,v){var x=parseFloat(mxUtils.getValue(this.style, -"jettyWidth",this.jettyWidth));l=parseFloat(mxUtils.getValue(this.style,"jettyHeight",this.jettyHeight));t=x/2;x=t+x/2;var H=.3*r-l/2,y=.7*r-l/2;v?(c.moveTo(t,H),c.lineTo(x,H),c.lineTo(x,H+l),c.lineTo(t,H+l),c.moveTo(t,y),c.lineTo(x,y),c.lineTo(x,y+l),c.lineTo(t,y+l)):(c.moveTo(t,0),c.lineTo(n,0),c.lineTo(n,r),c.lineTo(t,r),c.lineTo(t,y+l),c.lineTo(0,y+l),c.lineTo(0,y),c.lineTo(t,y),c.lineTo(t,H+l),c.lineTo(0,H+l),c.lineTo(0,H),c.lineTo(t,H),c.close());c.end()};mxCellRenderer.registerShape("component", -Pa);mxUtils.extend(Ia,mxRectangleShape);Ia.prototype.paintForeground=function(c,l,t,n,r){var v=n/2,x=r/2,H=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;c.begin();this.addPoints(c,[new mxPoint(l+v,t),new mxPoint(l+n,t+x),new mxPoint(l+v,t+r),new mxPoint(l,t+x)],this.isRounded,H,!0);c.stroke();mxRectangleShape.prototype.paintForeground.apply(this,arguments)};mxCellRenderer.registerShape("associativeEntity",Ia);mxUtils.extend(Ha,mxDoubleEllipse);Ha.prototype.outerStroke= -!0;Ha.prototype.paintVertexShape=function(c,l,t,n,r){var v=Math.min(4,Math.min(n/5,r/5));0x+z?c.y=t.y:c.x=t.x);return mxUtils.getPerimeterPoint(I,c,t)};mxStyleRegistry.putValue("parallelogramPerimeter",mxPerimeter.ParallelogramPerimeter);mxPerimeter.TrapezoidPerimeter=function(c,l,t,n){var r="0"!=mxUtils.getValue(l.style, +"fixedSize","0"),u=r?W.prototype.fixedSize:W.prototype.size;null!=l&&(u=mxUtils.getValue(l.style,"size",u));r&&(u*=l.view.scale);var x=c.x,I=c.y,z=c.width,da=c.height;l=null!=l?mxUtils.getValue(l.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST):mxConstants.DIRECTION_EAST;l==mxConstants.DIRECTION_EAST?(r=r?Math.max(0,Math.min(.5*z,u)):z*Math.max(0,Math.min(1,u)),I=[new mxPoint(x+r,I),new mxPoint(x+z-r,I),new mxPoint(x+z,I+da),new mxPoint(x,I+da),new mxPoint(x+r,I)]):l==mxConstants.DIRECTION_WEST? +(r=r?Math.max(0,Math.min(z,u)):z*Math.max(0,Math.min(1,u)),I=[new mxPoint(x,I),new mxPoint(x+z,I),new mxPoint(x+z-r,I+da),new mxPoint(x+r,I+da),new mxPoint(x,I)]):l==mxConstants.DIRECTION_NORTH?(r=r?Math.max(0,Math.min(da,u)):da*Math.max(0,Math.min(1,u)),I=[new mxPoint(x,I+r),new mxPoint(x+z,I),new mxPoint(x+z,I+da),new mxPoint(x,I+da-r),new mxPoint(x,I+r)]):(r=r?Math.max(0,Math.min(da,u)):da*Math.max(0,Math.min(1,u)),I=[new mxPoint(x,I),new mxPoint(x+z,I+r),new mxPoint(x+z,I+da-r),new mxPoint(x, +I+da),new mxPoint(x,I)]);da=c.getCenterX();c=c.getCenterY();c=new mxPoint(da,c);n&&(t.xx+z?c.y=t.y:c.x=t.x);return mxUtils.getPerimeterPoint(I,c,t)};mxStyleRegistry.putValue("trapezoidPerimeter",mxPerimeter.TrapezoidPerimeter);mxPerimeter.StepPerimeter=function(c,l,t,n){var r="0"!=mxUtils.getValue(l.style,"fixedSize","0"),u=r?ea.prototype.fixedSize:ea.prototype.size;null!=l&&(u=mxUtils.getValue(l.style,"size",u));r&&(u*=l.view.scale);var x=c.x,I=c.y,z=c.width,da=c.height,R=c.getCenterX(); +c=c.getCenterY();l=null!=l?mxUtils.getValue(l.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST):mxConstants.DIRECTION_EAST;l==mxConstants.DIRECTION_EAST?(r=r?Math.max(0,Math.min(z,u)):z*Math.max(0,Math.min(1,u)),I=[new mxPoint(x,I),new mxPoint(x+z-r,I),new mxPoint(x+z,c),new mxPoint(x+z-r,I+da),new mxPoint(x,I+da),new mxPoint(x+r,c),new mxPoint(x,I)]):l==mxConstants.DIRECTION_WEST?(r=r?Math.max(0,Math.min(z,u)):z*Math.max(0,Math.min(1,u)),I=[new mxPoint(x+r,I),new mxPoint(x+z,I),new mxPoint(x+ +z-r,c),new mxPoint(x+z,I+da),new mxPoint(x+r,I+da),new mxPoint(x,c),new mxPoint(x+r,I)]):l==mxConstants.DIRECTION_NORTH?(r=r?Math.max(0,Math.min(da,u)):da*Math.max(0,Math.min(1,u)),I=[new mxPoint(x,I+r),new mxPoint(R,I),new mxPoint(x+z,I+r),new mxPoint(x+z,I+da),new mxPoint(R,I+da-r),new mxPoint(x,I+da),new mxPoint(x,I+r)]):(r=r?Math.max(0,Math.min(da,u)):da*Math.max(0,Math.min(1,u)),I=[new mxPoint(x,I),new mxPoint(R,I+r),new mxPoint(x+z,I),new mxPoint(x+z,I+da-r),new mxPoint(R,I+da),new mxPoint(x, +I+da-r),new mxPoint(x,I)]);R=new mxPoint(R,c);n&&(t.xx+z?R.y=t.y:R.x=t.x);return mxUtils.getPerimeterPoint(I,R,t)};mxStyleRegistry.putValue("stepPerimeter",mxPerimeter.StepPerimeter);mxPerimeter.HexagonPerimeter2=function(c,l,t,n){var r="0"!=mxUtils.getValue(l.style,"fixedSize","0"),u=r?ja.prototype.fixedSize:ja.prototype.size;null!=l&&(u=mxUtils.getValue(l.style,"size",u));r&&(u*=l.view.scale);var x=c.x,I=c.y,z=c.width,da=c.height,R=c.getCenterX();c=c.getCenterY();l=null!=l?mxUtils.getValue(l.style, +mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST):mxConstants.DIRECTION_EAST;l==mxConstants.DIRECTION_NORTH||l==mxConstants.DIRECTION_SOUTH?(r=r?Math.max(0,Math.min(da,u)):da*Math.max(0,Math.min(1,u)),I=[new mxPoint(R,I),new mxPoint(x+z,I+r),new mxPoint(x+z,I+da-r),new mxPoint(R,I+da),new mxPoint(x,I+da-r),new mxPoint(x,I+r),new mxPoint(R,I)]):(r=r?Math.max(0,Math.min(z,u)):z*Math.max(0,Math.min(1,u)),I=[new mxPoint(x+r,I),new mxPoint(x+z-r,I),new mxPoint(x+z,c),new mxPoint(x+z-r,I+da),new mxPoint(x+ +r,I+da),new mxPoint(x,c),new mxPoint(x+r,I)]);R=new mxPoint(R,c);n&&(t.xx+z?R.y=t.y:R.x=t.x);return mxUtils.getPerimeterPoint(I,R,t)};mxStyleRegistry.putValue("hexagonPerimeter2",mxPerimeter.HexagonPerimeter2);mxUtils.extend(Ja,mxShape);Ja.prototype.size=10;Ja.prototype.paintBackground=function(c,l,t,n,r){var u=parseFloat(mxUtils.getValue(this.style,"size",this.size));c.translate(l,t);c.ellipse((n-u)/2,0,u,u);c.fillAndStroke();c.begin();c.moveTo(n/2,u);c.lineTo(n/2,r);c.end();c.stroke()}; +mxCellRenderer.registerShape("lollipop",Ja);mxUtils.extend(na,mxShape);na.prototype.size=10;na.prototype.inset=2;na.prototype.paintBackground=function(c,l,t,n,r){var u=parseFloat(mxUtils.getValue(this.style,"size",this.size)),x=parseFloat(mxUtils.getValue(this.style,"inset",this.inset))+this.strokewidth;c.translate(l,t);c.begin();c.moveTo(n/2,u+x);c.lineTo(n/2,r);c.end();c.stroke();c.begin();c.moveTo((n-u)/2-x,u/2);c.quadTo((n-u)/2-x,u+x,n/2,u+x);c.quadTo((n+u)/2+x,u+x,(n+u)/2+x,u/2);c.end();c.stroke()}; +mxCellRenderer.registerShape("requires",na);mxUtils.extend(ya,mxShape);ya.prototype.paintBackground=function(c,l,t,n,r){c.translate(l,t);c.begin();c.moveTo(0,0);c.quadTo(n,0,n,r/2);c.quadTo(n,r,0,r);c.end();c.stroke()};mxCellRenderer.registerShape("requiredInterface",ya);mxUtils.extend(za,mxShape);za.prototype.inset=2;za.prototype.paintBackground=function(c,l,t,n,r){var u=parseFloat(mxUtils.getValue(this.style,"inset",this.inset))+this.strokewidth;c.translate(l,t);c.ellipse(0,u,n-2*u,r-2*u);c.fillAndStroke(); +c.begin();c.moveTo(n/2,0);c.quadTo(n,0,n,r/2);c.quadTo(n,r,n/2,r);c.end();c.stroke()};mxCellRenderer.registerShape("providedRequiredInterface",za);mxUtils.extend(Ka,mxCylinder);Ka.prototype.jettyWidth=20;Ka.prototype.jettyHeight=10;Ka.prototype.redrawPath=function(c,l,t,n,r,u){var x=parseFloat(mxUtils.getValue(this.style,"jettyWidth",this.jettyWidth));l=parseFloat(mxUtils.getValue(this.style,"jettyHeight",this.jettyHeight));t=x/2;x=t+x/2;var I=Math.min(l,r-l),z=Math.min(I+2*l,r-l);u?(c.moveTo(t,I), +c.lineTo(x,I),c.lineTo(x,I+l),c.lineTo(t,I+l),c.moveTo(t,z),c.lineTo(x,z),c.lineTo(x,z+l),c.lineTo(t,z+l)):(c.moveTo(t,0),c.lineTo(n,0),c.lineTo(n,r),c.lineTo(t,r),c.lineTo(t,z+l),c.lineTo(0,z+l),c.lineTo(0,z),c.lineTo(t,z),c.lineTo(t,I+l),c.lineTo(0,I+l),c.lineTo(0,I),c.lineTo(t,I),c.close());c.end()};mxCellRenderer.registerShape("module",Ka);mxUtils.extend(Pa,mxCylinder);Pa.prototype.jettyWidth=32;Pa.prototype.jettyHeight=12;Pa.prototype.redrawPath=function(c,l,t,n,r,u){var x=parseFloat(mxUtils.getValue(this.style, +"jettyWidth",this.jettyWidth));l=parseFloat(mxUtils.getValue(this.style,"jettyHeight",this.jettyHeight));t=x/2;x=t+x/2;var I=.3*r-l/2,z=.7*r-l/2;u?(c.moveTo(t,I),c.lineTo(x,I),c.lineTo(x,I+l),c.lineTo(t,I+l),c.moveTo(t,z),c.lineTo(x,z),c.lineTo(x,z+l),c.lineTo(t,z+l)):(c.moveTo(t,0),c.lineTo(n,0),c.lineTo(n,r),c.lineTo(t,r),c.lineTo(t,z+l),c.lineTo(0,z+l),c.lineTo(0,z),c.lineTo(t,z),c.lineTo(t,I+l),c.lineTo(0,I+l),c.lineTo(0,I),c.lineTo(t,I),c.close());c.end()};mxCellRenderer.registerShape("component", +Pa);mxUtils.extend(Ia,mxRectangleShape);Ia.prototype.paintForeground=function(c,l,t,n,r){var u=n/2,x=r/2,I=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;c.begin();this.addPoints(c,[new mxPoint(l+u,t),new mxPoint(l+n,t+x),new mxPoint(l+u,t+r),new mxPoint(l,t+x)],this.isRounded,I,!0);c.stroke();mxRectangleShape.prototype.paintForeground.apply(this,arguments)};mxCellRenderer.registerShape("associativeEntity",Ia);mxUtils.extend(Ha,mxDoubleEllipse);Ha.prototype.outerStroke= +!0;Ha.prototype.paintVertexShape=function(c,l,t,n,r){var u=Math.min(4,Math.min(n/5,r/5));0=2*n&&c.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));return c};mxRectangleShape.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,0),!0),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(1,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(0,1),!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(1,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))];va.prototype.constraints=mxRectangleShape.prototype.constraints;mxImageShape.prototype.constraints=mxRectangleShape.prototype.constraints;mxSwimlane.prototype.constraints=mxRectangleShape.prototype.constraints;S.prototype.constraints=mxRectangleShape.prototype.constraints;mxLabel.prototype.constraints=mxRectangleShape.prototype.constraints;k.prototype.getConstraints=function(c,l,t){c=[];var n=Math.max(0,Math.min(l,Math.min(t,parseFloat(mxUtils.getValue(this.style, +.5),!0),new mxConnectionConstraint(new mxPoint(1,.5))];va.prototype.constraints=mxRectangleShape.prototype.constraints;mxImageShape.prototype.constraints=mxRectangleShape.prototype.constraints;mxSwimlane.prototype.constraints=mxRectangleShape.prototype.constraints;P.prototype.constraints=mxRectangleShape.prototype.constraints;mxLabel.prototype.constraints=mxRectangleShape.prototype.constraints;k.prototype.getConstraints=function(c,l,t){c=[];var n=Math.max(0,Math.min(l,Math.min(t,parseFloat(mxUtils.getValue(this.style, "size",this.size)))));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(l-n),0));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,l-n,0));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,l-.5*n,.5*n));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,l,n));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,l,.5*(t+n)));c.push(new mxConnectionConstraint(new mxPoint(1,1),!1));c.push(new mxConnectionConstraint(new mxPoint(.5, -1),!1));c.push(new mxConnectionConstraint(new mxPoint(0,1),!1));c.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));l>=2*n&&c.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));return c};I.prototype.getConstraints=function(c,l,t){c=[];var n=Math.max(0,Math.min(l,Math.min(t,parseFloat(mxUtils.getValue(this.style,"size",this.size)))));c.push(new mxConnectionConstraint(new mxPoint(1,0),!1));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(l+n),0));c.push(new mxConnectionConstraint(new mxPoint(0, +1),!1));c.push(new mxConnectionConstraint(new mxPoint(0,1),!1));c.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));l>=2*n&&c.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));return c};J.prototype.getConstraints=function(c,l,t){c=[];var n=Math.max(0,Math.min(l,Math.min(t,parseFloat(mxUtils.getValue(this.style,"size",this.size)))));c.push(new mxConnectionConstraint(new mxPoint(1,0),!1));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(l+n),0));c.push(new mxConnectionConstraint(new mxPoint(0, 0),!1,null,n,0));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*n,.5*n));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,n));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.5*(t+n)));c.push(new mxConnectionConstraint(new mxPoint(0,1),!1));c.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));c.push(new mxConnectionConstraint(new mxPoint(1,1),!1));c.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));l>=2*n&&c.push(new mxConnectionConstraint(new mxPoint(.5, 0),!1));return c};f.prototype.getConstraints=function(c,l,t){c=[];var n=Math.max(0,Math.min(l,Math.min(t,parseFloat(mxUtils.getValue(this.style,"size",this.size)))));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(l-n),0));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,l-n,0));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,l-.5*n,.5*n));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,l,n));c.push(new mxConnectionConstraint(new mxPoint(0, 0),!1,null,l,.5*(t+n)));c.push(new mxConnectionConstraint(new mxPoint(1,1),!1));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(l+n),t));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,n,t));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*n,t-.5*n));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,t-n));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.5*(t-n)));return c};C.prototype.getConstraints=function(c,l,t){c=[];l=Math.max(0,Math.min(t, @@ -3509,22 +3524,22 @@ parseFloat(mxUtils.getValue(this.style,"size",this.size))));c.push(new mxConnect 0),!1,null,.5*n,0)),c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,n,0)),c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,n,r)),c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(l+n),r))):(c.push(new mxConnectionConstraint(new mxPoint(1,0),!1)),c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,l-.5*n,0)),c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,l-n,0)),c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,l-n,r)),c.push(new mxConnectionConstraint(new mxPoint(0, 0),!1,null,.5*(l-n),r)));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,l,r));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,l,.25*(t-r)+r));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,l,.5*(t-r)+r));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,l,.75*(t-r)+r));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,l,t));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,r));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null, 0,.25*(t-r)+r));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.5*(t-r)+r));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.75*(t-r)+r));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,t));c.push(new mxConnectionConstraint(new mxPoint(.25,1),!1));c.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));c.push(new mxConnectionConstraint(new mxPoint(.75,1),!1));return c};cb.prototype.constraints=mxRectangleShape.prototype.constraints;eb.prototype.constraints= -mxRectangleShape.prototype.constraints;L.prototype.constraints=mxEllipse.prototype.constraints;P.prototype.constraints=mxEllipse.prototype.constraints;Z.prototype.constraints=mxEllipse.prototype.constraints;Ma.prototype.constraints=mxEllipse.prototype.constraints;Wa.prototype.constraints=mxRectangleShape.prototype.constraints;Na.prototype.constraints=mxRectangleShape.prototype.constraints;Ga.prototype.getConstraints=function(c,l,t){c=[];var n=Math.min(l,t/2),r=Math.min(l-n,Math.max(0,parseFloat(mxUtils.getValue(this.style, +mxRectangleShape.prototype.constraints;K.prototype.constraints=mxEllipse.prototype.constraints;Q.prototype.constraints=mxEllipse.prototype.constraints;Z.prototype.constraints=mxEllipse.prototype.constraints;Ma.prototype.constraints=mxEllipse.prototype.constraints;Wa.prototype.constraints=mxRectangleShape.prototype.constraints;Na.prototype.constraints=mxRectangleShape.prototype.constraints;Ga.prototype.getConstraints=function(c,l,t){c=[];var n=Math.min(l,t/2),r=Math.min(l-n,Math.max(0,parseFloat(mxUtils.getValue(this.style, "size",this.size)))*l);c.push(new mxConnectionConstraint(new mxPoint(0,.5),!1,null));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,r,0));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(r+l-n),0));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,l-n,0));c.push(new mxConnectionConstraint(new mxPoint(1,.5),!1,null));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,l-n,t));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(r+l-n),t));c.push(new mxConnectionConstraint(new mxPoint(0, 0),!1,null,r,t));return c};Ka.prototype.getConstraints=function(c,l,t){l=parseFloat(mxUtils.getValue(c,"jettyWidth",Ka.prototype.jettyWidth))/2;c=parseFloat(mxUtils.getValue(c,"jettyHeight",Ka.prototype.jettyHeight));var n=[new mxConnectionConstraint(new mxPoint(0,0),!1,null,l),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(1,0),!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(0,1),!1,null,l),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(1,1),!0),new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,Math.min(t-.5*c,1.5*c)),new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,Math.min(t- .5*c,3.5*c))];t>5*c&&n.push(new mxConnectionConstraint(new mxPoint(0,.75),!1,null,l));t>8*c&&n.push(new mxConnectionConstraint(new mxPoint(0,.5),!1,null,l));t>15*c&&n.push(new mxConnectionConstraint(new mxPoint(0,.25),!1,null,l));return n};B.prototype.constraints=mxRectangleShape.prototype.constraints;F.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)];fa.prototype.constraints= +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)];ha.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)];Pa.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)];D.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)];J.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)];ja.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, +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)];M.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)];ea.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)];Ja.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),!0),new mxConnectionConstraint(new mxPoint(.625,1),!0)];mxCloud.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.25,.25),!1),new mxConnectionConstraint(new mxPoint(.4,.1),!1),new mxConnectionConstraint(new mxPoint(.16,.55),!1),new mxConnectionConstraint(new mxPoint(.07,.4),!1),new mxConnectionConstraint(new mxPoint(.31,.8),!1),new mxConnectionConstraint(new mxPoint(.13, -.77),!1),new mxConnectionConstraint(new mxPoint(.8,.8),!1),new mxConnectionConstraint(new mxPoint(.55,.95),!1),new mxConnectionConstraint(new mxPoint(.875,.5),!1),new mxConnectionConstraint(new mxPoint(.96,.7),!1),new mxConnectionConstraint(new mxPoint(.625,.2),!1),new mxConnectionConstraint(new mxPoint(.88,.25),!1)];K.prototype.constraints=mxRectangleShape.prototype.constraints;V.prototype.constraints=mxRectangleShape.prototype.constraints;T.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.25, +.77),!1),new mxConnectionConstraint(new mxPoint(.8,.8),!1),new mxConnectionConstraint(new mxPoint(.55,.95),!1),new mxConnectionConstraint(new mxPoint(.875,.5),!1),new mxConnectionConstraint(new mxPoint(.96,.7),!1),new mxConnectionConstraint(new mxPoint(.625,.2),!1),new mxConnectionConstraint(new mxPoint(.88,.25),!1)];L.prototype.constraints=mxRectangleShape.prototype.constraints;W.prototype.constraints=mxRectangleShape.prototype.constraints;O.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)];mxArrow.prototype.constraints=null;gb.prototype.getConstraints=function(c,l,t){c=[];var n=Math.max(0, Math.min(l,parseFloat(mxUtils.getValue(this.style,"dx",this.dx)))),r=Math.max(0,Math.min(t,parseFloat(mxUtils.getValue(this.style,"dy",this.dy))));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1));c.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));c.push(new mxConnectionConstraint(new mxPoint(1,0),!1));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,l,.5*r));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,l,r));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1, null,.75*l+.25*n,r));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(l+n),r));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(l+n),.5*(t+r)));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(l+n),t));c.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(l-n),t));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(l-n),.5*(t+r)));c.push(new mxConnectionConstraint(new mxPoint(0,0), @@ -3534,78 +3549,78 @@ null,.75*l+.25*n,r));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null, .5),!1),new mxConnectionConstraint(new mxPoint(1,0),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1),new mxConnectionConstraint(new mxPoint(1,1),!1)];ab.prototype.getConstraints=function(c,l,t){c=[];var n=t*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowWidth",this.arrowWidth)))),r=l*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowSize",this.arrowSize))));n=(t-n)/2;c.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));c.push(new mxConnectionConstraint(new mxPoint(0, 0),!1,null,0,n));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(l-r),n));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,l-r,0));c.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,l-r,t));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(l-r),t-n));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,t-n));return c};hb.prototype.getConstraints=function(c,l,t){c=[];var n=t*Math.max(0,Math.min(1, parseFloat(mxUtils.getValue(this.style,"arrowWidth",ab.prototype.arrowWidth)))),r=l*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowSize",ab.prototype.arrowSize))));n=(t-n)/2;c.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,r,0));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*l,n));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,l-r,0));c.push(new mxConnectionConstraint(new mxPoint(1,.5), -!1));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,l-r,t));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*l,t-n));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,r,t));return c};Aa.prototype.getConstraints=function(c,l,t){c=[];var n=Math.min(t,l),r=Math.max(0,Math.min(n,n*parseFloat(mxUtils.getValue(this.style,"size",this.size))));n=(t-r)/2;var v=n+r,x=(l-r)/2;r=x+r;c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,x,.5*n));c.push(new mxConnectionConstraint(new mxPoint(0, +!1));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,l-r,t));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*l,t-n));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,r,t));return c};Aa.prototype.getConstraints=function(c,l,t){c=[];var n=Math.min(t,l),r=Math.max(0,Math.min(n,n*parseFloat(mxUtils.getValue(this.style,"size",this.size))));n=(t-r)/2;var u=n+r,x=(l-r)/2;r=x+r;c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,x,.5*n));c.push(new mxConnectionConstraint(new mxPoint(0, 0),!1,null,x,0));c.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,r,0));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,r,.5*n));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,r,n));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,x,t-.5*n));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,x,t));c.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));c.push(new mxConnectionConstraint(new mxPoint(0, -0),!1,null,r,t));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,r,t-.5*n));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,r,v));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(l+r),n));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,l,n));c.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,l,v));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(l+r),v));c.push(new mxConnectionConstraint(new mxPoint(0, -0),!1,null,x,v));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*x,n));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,n));c.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,v));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*x,v));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,x,n));return c};ca.prototype.constraints=null;p.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0, +0),!1,null,r,t));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,r,t-.5*n));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,r,u));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(l+r),n));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,l,n));c.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,l,u));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(l+r),u));c.push(new mxConnectionConstraint(new mxPoint(0, +0),!1,null,x,u));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*x,n));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,n));c.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,u));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*x,u));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,x,n));return c};ba.prototype.constraints=null;q.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)];A.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)];ya.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,.5),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1)];za.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(k){d.escape();k=d.deleteCells(d.getDeletableCells(d.getSelectionCells()),k);null!=k&&d.setSelectionCells(k)}function b(){if(!d.isSelectionEmpty()){d.getModel().beginUpdate();try{for(var k=d.getSelectionCells(),u=0;uMath.abs(k-d.view.scale)&&5>Math.abs(u-d.container.scrollLeft)&&5>Math.abs(w-d.container.scrollTop)&&z==d.view.translate.x&&C==d.view.translate.y&&f.actions.get("fitWindow").funct()},null,null,"Enter");m.getTitle=function(){return mxResources.get("fitWindow")+" / "+mxResources.get("resetView")};this.put("smartFit",m);this.addAction("keyPressEnter",function(){d.isSelectionEmpty()? -f.actions.get("smartFit").funct():d.isEnabled()&&d.startEditingAtCell()});this.addAction("import...",function(){window.openNew=!1;window.openKey="import";window.openFile=new OpenFile(mxUtils.bind(this,function(){f.hideDialog()}));window.openFile.setConsumer(mxUtils.bind(this,function(k,u){try{var w=mxUtils.parseXml(k);g.graph.setSelectionCells(g.graph.importGraphModel(w.documentElement))}catch(z){mxUtils.alert(mxResources.get("invalidOrMissingFile")+": "+z.message)}}));f.showDialog((new OpenDialog(this)).container, +Actions.prototype.init=function(){function a(k){d.escape();k=d.deleteCells(d.getDeletableCells(d.getSelectionCells()),k);null!=k&&d.setSelectionCells(k)}function b(){if(!d.isSelectionEmpty()){d.getModel().beginUpdate();try{for(var k=d.getSelectionCells(),v=0;vMath.abs(k-d.view.scale)&&5>Math.abs(v-d.container.scrollLeft)&&5>Math.abs(w-d.container.scrollTop)&&y==d.view.translate.x&&C==d.view.translate.y&&f.actions.get("fitWindow").funct()},null,null,"Enter");m.getTitle=function(){return mxResources.get("fitWindow")+" / "+mxResources.get("resetView")};this.put("smartFit",m);this.addAction("keyPressEnter",function(){d.isSelectionEmpty()? +f.actions.get("smartFit").funct():d.isEnabled()&&d.startEditingAtCell()});this.addAction("import...",function(){window.openNew=!1;window.openKey="import";window.openFile=new OpenFile(mxUtils.bind(this,function(){f.hideDialog()}));window.openFile.setConsumer(mxUtils.bind(this,function(k,v){try{var w=mxUtils.parseXml(k);g.graph.setSelectionCells(g.graph.importGraphModel(w.documentElement))}catch(y){mxUtils.alert(mxResources.get("invalidOrMissingFile")+": "+y.message)}}));f.showDialog((new OpenDialog(this)).container, 320,220,!0,!0,function(){window.openFile=null})}).isEnabled=h;this.addAction("save",function(){f.saveFile(!1)},null,null,Editor.ctrlKey+"+S").isEnabled=h;this.addAction("saveAs...",function(){f.saveFile(!0)},null,null,Editor.ctrlKey+"+Shift+S");this.addAction("export...",function(){f.showDialog((new ExportDialog(f)).container,300,340,!0,!0)});this.addAction("editDiagram...",function(){var k=new EditDiagramDialog(f);f.showDialog(k.container,620,420,!0,!1);k.init()}).isEnabled=h;this.addAction("pageSetup...", function(){f.showDialog((new PageSetupDialog(f)).container,320,240,!0,!0)}).isEnabled=h;this.addAction("print...",function(){f.showPrintDialog()},null,"sprite-print",Editor.ctrlKey+"+P");this.addAction("preview",function(){mxUtils.show(d,null,10,10)});this.addAction("undo",function(){f.undo()},null,"sprite-undo",Editor.ctrlKey+"+Z");this.addAction("redo",function(){f.redo()},null,"sprite-redo",mxClient.IS_WIN?Editor.ctrlKey+"+Y":Editor.ctrlKey+"+Shift+Z");this.addAction("cut",function(){var k=null; -try{k=f.copyXml(),null!=k&&d.removeCells(k,!1)}catch(u){}try{null==k&&mxClipboard.cut(d)}catch(u){f.handleError(u)}},null,"sprite-cut",Editor.ctrlKey+"+X");this.addAction("copy",function(){try{f.copyXml()}catch(k){}try{mxClipboard.copy(d)}catch(k){f.handleError(k)}},null,"sprite-copy",Editor.ctrlKey+"+C");this.addAction("paste",function(){if(d.isEnabled()&&!d.isCellLocked(d.getDefaultParent())){var k=!1;try{Editor.enableNativeCipboard&&(f.readGraphModelFromClipboard(function(u){if(null!=u){d.getModel().beginUpdate(); -try{f.pasteXml(u,!0)}finally{d.getModel().endUpdate()}}else mxClipboard.paste(d)}),k=!0)}catch(u){}k||mxClipboard.paste(d)}},!1,"sprite-paste",Editor.ctrlKey+"+V");this.addAction("pasteHere",function(k){function u(z){if(null!=z){for(var C=!0,D=0;D"));d.cellLabelChanged(state.cell,Graph.sanitizeHtml(C));d.setCellStyles("html",k,[u[w]])}}f.fireEvent(new mxEventObject("styleChanged","keys",["html"],"values",[null!= -k?k:"0"],"cells",u))}finally{d.getModel().endUpdate()}});this.addAction("wordWrap",function(){var k=d.getView().getState(d.getSelectionCell()),u="wrap";d.stopEditing();null!=k&&"wrap"==k.style[mxConstants.STYLE_WHITE_SPACE]&&(u=null);d.setCellStyles(mxConstants.STYLE_WHITE_SPACE,u)});this.addAction("rotation",function(){var k="0",u=d.getView().getState(d.getSelectionCell());null!=u&&(k=u.style[mxConstants.STYLE_ROTATION]||k);k=new FilenameDialog(f,k,mxResources.get("apply"),function(w){null!=w&&0< -w.length&&d.setCellStyles(mxConstants.STYLE_ROTATION,w)},mxResources.get("enterValue")+" ("+mxResources.get("rotation")+" 0-360)");f.showDialog(k.container,375,80,!0,!0);k.init()});this.addAction("resetView",function(){d.zoomTo(1);f.resetScrollbars()},null,null,"Enter/Home");this.addAction("zoomIn",function(k){d.isFastZoomEnabled()?d.lazyZoom(!0,!0,f.buttonZoomDelay):d.zoomIn()},null,null,Editor.ctrlKey+" + / Alt+Mousewheel");this.addAction("zoomOut",function(k){d.isFastZoomEnabled()?d.lazyZoom(!1, -!0,f.buttonZoomDelay):d.zoomOut()},null,null,Editor.ctrlKey+" - / Alt+Mousewheel");this.addAction("fitWindow",function(){d.pageVisible&&d.isSelectionEmpty()?d.fitPages():f.fitDiagramToWindow()},null,null,Editor.ctrlKey+"+Shift+H");this.addAction("fitPage",mxUtils.bind(this,function(){d.pageVisible?d.fitPages(1):this.get("pageView").funct()}),null,null,Editor.ctrlKey+"+J");this.addAction("fitTwoPages",mxUtils.bind(this,function(){d.pageVisible?d.fitPages(2):this.get("pageView").funct()}),null,null, -Editor.ctrlKey+"+Shift+J");this.addAction("fitPageWidth",mxUtils.bind(this,function(){d.pageVisible?d.fitPages(1,!0):this.get("pageView").funct()}));this.put("customZoom",new Action("custom...",mxUtils.bind(this,function(){var k=new FilenameDialog(this.editorUi,parseInt(100*d.getView().getScale()),mxResources.get("apply"),mxUtils.bind(this,function(u){u=parseInt(u);!isNaN(u)&&0"));d.cellLabelChanged(state.cell,Graph.sanitizeHtml(C));d.setCellStyles("html",k,[v[w]])}}f.fireEvent(new mxEventObject("styleChanged", +"keys",["html"],"values",[null!=k?k:"0"],"cells",v))}finally{d.getModel().endUpdate()}});this.addAction("wordWrap",function(){var k=d.getView().getState(d.getSelectionCell()),v="wrap";d.stopEditing();null!=k&&"wrap"==k.style[mxConstants.STYLE_WHITE_SPACE]&&(v=null);d.setCellStyles(mxConstants.STYLE_WHITE_SPACE,v)});this.addAction("rotation",function(){var k="0",v=d.getView().getState(d.getSelectionCell());null!=v&&(k=v.style[mxConstants.STYLE_ROTATION]||k);k=new FilenameDialog(f,k,mxResources.get("apply"), +function(w){null!=w&&0mxUtils.indexOf(this.customFonts,m)&&(this.customFonts.push(m),this.editorUi.fireEvent(new mxEventObject("customFontsChanged")))}))})));this.put("formatBlock",new Menu(mxUtils.bind(this,function(f,g){function d(h, m){return f.addItem(h,null,mxUtils.bind(this,function(){null!=b.cellEditor.textarea&&(b.cellEditor.textarea.focus(),document.execCommand("formatBlock",!1,"<"+m+">"))}),g)}d(mxResources.get("normal"),"p");d("","h1").firstChild.nextSibling.innerHTML='

'+mxResources.get("heading")+" 1

";d("","h2").firstChild.nextSibling.innerHTML='

'+mxResources.get("heading")+" 2

";d("","h3").firstChild.nextSibling.innerHTML='

'+mxResources.get("heading")+ " 3

";d("","h4").firstChild.nextSibling.innerHTML='

'+mxResources.get("heading")+" 4

";d("","h5").firstChild.nextSibling.innerHTML='
'+mxResources.get("heading")+" 5
";d("","h6").firstChild.nextSibling.innerHTML='
'+mxResources.get("heading")+" 6
";d("","pre").firstChild.nextSibling.innerHTML='
'+mxResources.get("formatted")+"
";d("","blockquote").firstChild.nextSibling.innerHTML='
'+ -mxResources.get("blockquote")+"
"})));this.put("fontSize",new Menu(mxUtils.bind(this,function(f,g){var d=[6,8,9,10,11,12,14,18,24,36,48,72];0>mxUtils.indexOf(d,this.defaultFontSize)&&(d.push(this.defaultFontSize),d.sort(function(w,z){return w-z}));for(var h=mxUtils.bind(this,function(w){if(null!=b.cellEditor.textarea){document.execCommand("fontSize",!1,"3");for(var z=b.cellEditor.textarea.getElementsByTagName("font"),C=0;CmxUtils.indexOf(d,this.customFontSizes[q])&&(m(this.customFontSizes[q]),k++);0"})));this.put("fontSize",new Menu(mxUtils.bind(this,function(f,g){var d=[6,8,9,10,11,12,14,18,24,36,48,72];0>mxUtils.indexOf(d,this.defaultFontSize)&&(d.push(this.defaultFontSize),d.sort(function(w,y){return w-y}));for(var h=mxUtils.bind(this,function(w){if(null!=b.cellEditor.textarea){document.execCommand("fontSize",!1,"3");for(var y=b.cellEditor.textarea.getElementsByTagName("font"),C=0;CmxUtils.indexOf(d,this.customFontSizes[p])&&(m(this.customFontSizes[p]),k++);0"];for(var T=0;T");for(var K=0;K
");I.push("")}I.push("");D=I.join("");J.call(G,D);D=G.cellEditor.textarea.getElementsByTagName("table");if(D.length==C.length+1)for(J=D.length-1;0<=J;J--)if(0==J||D[J]!=C[J-1]){G.selectNode(D[J].rows[0].cells[0]);break}}});var d=this.editorUi.editor.graph,h=null,m=null;null==e&&(a.div.classList.add("geToolbarMenu"), -a.labels=!1);a=a.addItem("",null,null,e,null,null,null,!0);a.firstChild.style.fontSize=Menus.prototype.defaultFontSize+"px";e=a.getElementsByTagName("td");1"];for(var O=0;O");for(var L=0;L
");J.push("")}J.push("");D=J.join("");M.call(G,D);D=G.cellEditor.textarea.getElementsByTagName("table");if(D.length==C.length+1)for(M=D.length-1;0<=M;M--)if(0==M||D[M]!=C[M-1]){G.selectNode(D[M].rows[0].cells[0]);break}}});var d=this.editorUi.editor.graph,h=null,m=null;null==e&&(a.div.classList.add("geToolbarMenu"), +a.labels=!1);a=a.addItem("",null,null,e,null,null,null,!0);a.firstChild.style.fontSize=Menus.prototype.defaultFontSize+"px";e=a.getElementsByTagName("td");1G&&(G=0);6D&&(D=0);1E&&(E=0);1k;k+=4)u=document.createElement("div"),u.style.height= -"4px",u.style.pointerEvents="none",d.appendChild(u);b.appendChild(d);var C=document.createElement("div");C.style.background="url("+this.arrowImage+")";C.style.position="absolute";C.style.pointerEvents="none";C.style.width="7px";C.style.height="11px";C.style.left="2px";C.style.top="-3px";sliderBox.appendChild(C);sliderBox.appendChild(d);b.appendChild(sliderBox);this.fromString=function(D,E){E=null!=E?E:!1;if(null==D||""==D||mxUtils.isVarColor(D)||D==mxConstants.NONE)D="#ffffff",E=!0;var G=mxUtils.parseColor(D); -D=G.r/255;var I=G.g/255,J=G.b/255,T=Math.min(Math.min(D,I),J);G=Math.max(Math.max(D,I),J);var K=G-T;0===K?D=[null,0,G]:(D=D===T?3+(J-I)/K:I===T?5+(D-J)/K:1+(I-D)/K,D=[6===D?0:D,K/G,G]);null!=D[0]&&(g[0]=D[0]);0!=D[2]&&(g[1]=D[1]);g[2]=D[2];q(E)};this.fromString("#ffffff");this.div=b};mxUtils.extend(ColorPicker,mxEventSource);ColorPicker.prototype.hsImage="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAALUAAABlCAIAAACEDzXRAAAKQ0lEQVR42u2d23IjKwxFBeRh5v8/9uQlzXlI2gGELoCEm6pxubp6PI69WoV3C20uIQPAH4A/AH/p41/pDcTxP4BPGDtq3vYJGPpv8craeRdo/fyTI8ZhHnodOGgcV/3rnx8QI0SABO2xfAbiCfVR8Wj+CD8jenbRJNyGOxLoAaH1iLu4EUEHAv1+MsQ4zLE4AiIOcpibv4u9OET6+cP4ASnJ1JH4/G60A9km+GbBxLlpKAkADoR2JnaBrvWD/x1GCZn9EYLEHqVfI6Efx0D7E9tDF/rBSJ54l8FqTUse0J+EvxPrdK0fD4aOLXQi7zyGxMaRvvWjjH2U8o9I44OKnf+wyCpHoR/Phk6d/COq8481YrNI3/qR2B+kMl1Fl6J8o/JrU/GEA6HdiB2ha/0YBVx7rFwNHAj9JuIl6EI/qKyJug4Yvg7xA0QEpB8nQe8itoQu9EOT8M3mTsqUSUzykH6cBO1PbA9d91+ShDzV9xrtcgW21IT6L0yfcS90FKCdw+wS6Q9ISWjVfLTVVT2mdiPGGRduFKWm7dBStWlLmI0j/QExdgp7gT5qCu2BLKiLqtc94hI7PB8auQP4KuyIvSJ960fUqXWcd2F48Khr1bHSj2dDp/afmg7tMrFxpG/9mHMFuqrH3spFw0s0Bgr9OAzamdgFutaPpMuqo6WVEXWJdSL14xhof2J76MKfS2yXWGOVB1WXXGOVdxFSx587CXoLsTE0689RH7VW4RMLeKI9wPpzz4XeS2wDzdbXR52AWStjwiSAA6HdiB2h1f6cqT0whzzuzz0LejuxATTy90Xt40v7CzdGRvKS4O/zQ0AiXaRW5x/dv4vS4A/a308LYR5pFquRRvlHIrKWoCj5woCVId4eR/KPNDjURg2tdEC7rSQN5B9DYR70X5YivVxft7AyrOvrD4V2JnaBJurr+qpemLEywlRhT6qvPx16C7ExdK0fSjcj0maAzsqgBt7rfIxGP46B9iT2gi70I842bNj0U4wd/WAG/L5VP3p0W4iNoYv6Oh6eoJmSMW5laIzF8iT1TtgeV9RZoZ7QvdEUzsQu0CP+HOMKDFoZvDFg6s89CNqf2B5a4e8Hts84W0pgeohBtspBXYp8H3Tk/H23MBtHuvbn5mp7dlU9TUkP+XNJMabzHdCIbnuYDSItzZ+bdgUWrAwNPhwInRxw1/wXuYGj+4vo7flboRpjEQ6EjgojYK9/K04NFfNTauEBypXQWQLAfqQoHl9CfvpQ6C3ExtC9/q2YW2u6X1JWzfsYFPKX3L99LrQ/sT10XR+jKh+UN2AxlDOyXfLQaxxf/fkvT4d2JnaBZv258M6h4IFu2Em7/sezoLcQG0Mjfy6xrqLnVBLGWHw1i69WP5LCCn0TNEL3DLNXpCV/n5oo5jAVLY5Em6i8Pwm6uSNuCrNxpNX+nDira20qqyZriv384xhoZ2IX6Lr/wg8eiwpXYGQqPEgjsBrX+er3X46B9ie2h6bX/4i6IfcLS2mIY++7TfoCuLj6hwgN89CwBJ3Gx8rOVsn0kQ48tDS/4X1L8SzMb3BbkGdtwsD05AbP9YOU8xui+uljZei/P/3qx2HQbsSO0Ar/lveHLZYCVK4GeN1P5N+eAb2R2Aya9ueUY+8dlhLtdhWvgfEfz4AeGf9hR2wcaeTPpacvRdzLTx8J/Qq1Ij995PrJ3/mp0p8LO5YyF0s215g/9yxoZ2IXaLo+FiwtgTlvIAznp4+G3khsBk3Pf5mYvqOwMqZnNnw3i9cRDoT2JPaCZuvreskDuXkHxfQMvfbBgdBbiI2hC/3QLCg6lESZZkrfJ7nSj3gWNEMcRkYJsf5L0BXENBl1WV8/aquMLM9/eSJ0UtxZmFGGg4MigZ75ovHnvsOcUX09zRbzjCrU/K/Rev0gT2i2vu4cZrNI1+sH2e49Yb3lRC6e9fSS9ETohjj7hdkx0rQ/57/rxIrhBQdCv494Hlrtz1lo30Qjz1z+cRh02ndTNIMm1j8NxtmePs+76i+/esJHrH/6dGh/YntoRf9l2RtQWgJXzY4bdtbqx0OhnYldoHv7I79jf4+rOGGaRWr14yToLcTG0Ky/v32rjAsdX9S5vgI4ENqT2Asa7Z/9vq0yStiGNNVHkOe/RGmqwBQ0jEDHFpoJ85BLN+jPaRoHGWl2/2yx3msxVRHjZ0Td4GfV/Bf9bCM1dBiBfrHeJ1HR6dKEedDf5yPdBLilp/efC3Ribb1VxlUHGQe8iTb0598+Hdqf2B6a3b9SOerezsoIBWaJ3IBn1fp0j4PeQmwMzc5/idLK3UZWRkmKX2zA4Vc/DoPeSGwGrdvfY24RpKmVjrLuCQdCuxE7Qkv64TZ3Z44dVPrxUOh3EK9C1/lHGpz7ZzpVsYTF7K8Hyj+Ogd5FbAk9uL9H9LIyYg821sjo13gYtD+xPbRU/9Ds/b1sZTTIr5OStMGHA6GdiV2gUf2UmQcfJdUbXOoe6HoN1A0b2uQD4EBosXJqQTwKnXvXAEX+oZlfGaS9ewetDGCLeV1exH4e9Mr+2TDpv2iggYFW+LdBsTbngv/yUroGH0jleEX7MOgtxMbQ7PzKoMuajKyM8pYIiB194HnQzsQu0Gp/LvpulVHylsgK/TgG2p/YHrqXf6T3bJUBhfxFWUDPg95CbAytm/+ycasM9WOxWu0PnTniLWE2iLRi/4Z3bJXRvY76s0+Arl93I3aMNOHPBce2PdSkL7Kpnwe9l9gGutCPoFgkUtytXAGbex0vKCznSOs00o+ToLcQG0N/QErCrG6jrTIynVUDwo896vCzssPrNnAYtD+xPfR9fwmKeu/CVhm5OAn1STPkvhxBW1KXjeP60Y/DoJ2JXaAL/RCPy+PXc80L9d7OV294dVPbC/fb4EDoLcTG0IV+TCDrrIxMHIFg512BWj9OgvYk9oK+9SMoZG55q/JMiGS40/sLjacu28T3MVfd0Aha+u3QJXr+0Q//MBtHutaPQOzh3H0RBoZS5OJ/MjqJ9x2vQb7qgSuvX0StH0+FLptzrvTDh9gl0oV+iAbi2lAsqNmbK3yBAyLNdbRzW8Y6Btqf2B76A2IURE2zZY16KGfZlwqofJSL4feABka+xCNX+ekx0LuILaFr/Zit7s4ZA7y5Qg2sDr/t4zDodxCvQt/6occctDKGriMPzH85D9qN2BG61g/QwcLSVDSGl78C6LePY6A3EptBf0BKcjWWH/GqyJqoxKnMufEVBLJxAJwJ7U9sDH3fX0CxnIB4orMyuilTyRh6g+0bfDgQ2p/YHrrQD+jV6qb/SdRrMit8TRWwyEabxgFwJrQnsQt0rR+LR3VqFNiGHRBv73ge9EZiM+haPyicuRcVmIxzAMTMl9wfi3sGtBuxF3ShH92C29yJTteU+ohbRrZk3Qe9hdgY+tYPnOqanA+mTN33ZGKE06HQbsQu0LV+MF8+94rU5dK8B8/KyJaI+6D9ie2hC/3Q12QnSnYLn5p9P/6d0D7EltAh5wz/Hv8exON/LUjHOuz5CksAAAAASUVORK5CYII="; +"absolute";sliderBox.style.cursor="pointer";sliderBox.style.width="38px";sliderBox.style.height="110px";sliderBox.style.left="199px";sliderBox.style.top="4px";var d=document.createElement("div");d.style.border="1px solid light-dark(black, white)";d.style.pointerEvents="none";d.style.overflow="hidden";d.style.position="absolute";d.style.width="16px";d.style.height="101px";d.style.left="9px";d.style.top="0px";var h=!1,m=!1,p=mxUtils.bind(this,function(D){var E=Math.round(100*(1-g[1]));f.style.left= +Math.round(g[0]/6*180)-8+"px";f.style.top=E-8+"px";E=d.childNodes;var G=a(g[0],g[1],1);if(null!=G){for(var J=0;JG&&(G=0);6D&&(D=0);1E&&(E=0);1k;k+=4)v=document.createElement("div"),v.style.height= +"4px",v.style.pointerEvents="none",d.appendChild(v);b.appendChild(d);var C=document.createElement("div");C.style.background="url("+this.arrowImage+")";C.style.position="absolute";C.style.pointerEvents="none";C.style.width="7px";C.style.height="11px";C.style.left="2px";C.style.top="-3px";sliderBox.appendChild(C);sliderBox.appendChild(d);b.appendChild(sliderBox);this.fromString=function(D,E){E=null!=E?E:!1;if(null==D||""==D||mxUtils.isVarColor(D)||D==mxConstants.NONE)D="#ffffff",E=!0;var G=mxUtils.parseColor(D); +D=G.r/255;var J=G.g/255,M=G.b/255,O=Math.min(Math.min(D,J),M);G=Math.max(Math.max(D,J),M);var L=G-O;0===L?D=[null,0,G]:(D=D===O?3+(M-J)/L:J===O?5+(D-M)/L:1+(J-D)/L,D=[6===D?0:D,L/G,G]);null!=D[0]&&(g[0]=D[0]);0!=D[2]&&(g[1]=D[1]);g[2]=D[2];p(E)};this.fromString("#ffffff");this.div=b};mxUtils.extend(ColorPicker,mxEventSource);ColorPicker.prototype.hsImage="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAALUAAABlCAIAAACEDzXRAAAKQ0lEQVR42u2d23IjKwxFBeRh5v8/9uQlzXlI2gGELoCEm6pxubp6PI69WoV3C20uIQPAH4A/AH/p41/pDcTxP4BPGDtq3vYJGPpv8craeRdo/fyTI8ZhHnodOGgcV/3rnx8QI0SABO2xfAbiCfVR8Wj+CD8jenbRJNyGOxLoAaH1iLu4EUEHAv1+MsQ4zLE4AiIOcpibv4u9OET6+cP4ASnJ1JH4/G60A9km+GbBxLlpKAkADoR2JnaBrvWD/x1GCZn9EYLEHqVfI6Efx0D7E9tDF/rBSJ54l8FqTUse0J+EvxPrdK0fD4aOLXQi7zyGxMaRvvWjjH2U8o9I44OKnf+wyCpHoR/Phk6d/COq8481YrNI3/qR2B+kMl1Fl6J8o/JrU/GEA6HdiB2ha/0YBVx7rFwNHAj9JuIl6EI/qKyJug4Yvg7xA0QEpB8nQe8itoQu9EOT8M3mTsqUSUzykH6cBO1PbA9d91+ShDzV9xrtcgW21IT6L0yfcS90FKCdw+wS6Q9ISWjVfLTVVT2mdiPGGRduFKWm7dBStWlLmI0j/QExdgp7gT5qCu2BLKiLqtc94hI7PB8auQP4KuyIvSJ960fUqXWcd2F48Khr1bHSj2dDp/afmg7tMrFxpG/9mHMFuqrH3spFw0s0Bgr9OAzamdgFutaPpMuqo6WVEXWJdSL14xhof2J76MKfS2yXWGOVB1WXXGOVdxFSx587CXoLsTE0689RH7VW4RMLeKI9wPpzz4XeS2wDzdbXR52AWStjwiSAA6HdiB2h1f6cqT0whzzuzz0LejuxATTy90Xt40v7CzdGRvKS4O/zQ0AiXaRW5x/dv4vS4A/a308LYR5pFquRRvlHIrKWoCj5woCVId4eR/KPNDjURg2tdEC7rSQN5B9DYR70X5YivVxft7AyrOvrD4V2JnaBJurr+qpemLEywlRhT6qvPx16C7ExdK0fSjcj0maAzsqgBt7rfIxGP46B9iT2gi70I842bNj0U4wd/WAG/L5VP3p0W4iNoYv6Oh6eoJmSMW5laIzF8iT1TtgeV9RZoZ7QvdEUzsQu0CP+HOMKDFoZvDFg6s89CNqf2B5a4e8Hts84W0pgeohBtspBXYp8H3Tk/H23MBtHuvbn5mp7dlU9TUkP+XNJMabzHdCIbnuYDSItzZ+bdgUWrAwNPhwInRxw1/wXuYGj+4vo7flboRpjEQ6EjgojYK9/K04NFfNTauEBypXQWQLAfqQoHl9CfvpQ6C3ExtC9/q2YW2u6X1JWzfsYFPKX3L99LrQ/sT10XR+jKh+UN2AxlDOyXfLQaxxf/fkvT4d2JnaBZv258M6h4IFu2Em7/sezoLcQG0Mjfy6xrqLnVBLGWHw1i69WP5LCCn0TNEL3DLNXpCV/n5oo5jAVLY5Em6i8Pwm6uSNuCrNxpNX+nDira20qqyZriv384xhoZ2IX6Lr/wg8eiwpXYGQqPEgjsBrX+er3X46B9ie2h6bX/4i6IfcLS2mIY++7TfoCuLj6hwgN89CwBJ3Gx8rOVsn0kQ48tDS/4X1L8SzMb3BbkGdtwsD05AbP9YOU8xui+uljZei/P/3qx2HQbsSO0Ar/lveHLZYCVK4GeN1P5N+eAb2R2Aya9ueUY+8dlhLtdhWvgfEfz4AeGf9hR2wcaeTPpacvRdzLTx8J/Qq1Ij995PrJ3/mp0p8LO5YyF0s215g/9yxoZ2IXaLo+FiwtgTlvIAznp4+G3khsBk3Pf5mYvqOwMqZnNnw3i9cRDoT2JPaCZuvreskDuXkHxfQMvfbBgdBbiI2hC/3QLCg6lESZZkrfJ7nSj3gWNEMcRkYJsf5L0BXENBl1WV8/aquMLM9/eSJ0UtxZmFGGg4MigZ75ovHnvsOcUX09zRbzjCrU/K/Rev0gT2i2vu4cZrNI1+sH2e49Yb3lRC6e9fSS9ETohjj7hdkx0rQ/57/rxIrhBQdCv494Hlrtz1lo30Qjz1z+cRh02ndTNIMm1j8NxtmePs+76i+/esJHrH/6dGh/YntoRf9l2RtQWgJXzY4bdtbqx0OhnYldoHv7I79jf4+rOGGaRWr14yToLcTG0Ky/v32rjAsdX9S5vgI4ENqT2Asa7Z/9vq0yStiGNNVHkOe/RGmqwBQ0jEDHFpoJ85BLN+jPaRoHGWl2/2yx3msxVRHjZ0Td4GfV/Bf9bCM1dBiBfrHeJ1HR6dKEedDf5yPdBLilp/efC3Ribb1VxlUHGQe8iTb0598+Hdqf2B6a3b9SOerezsoIBWaJ3IBn1fp0j4PeQmwMzc5/idLK3UZWRkmKX2zA4Vc/DoPeSGwGrdvfY24RpKmVjrLuCQdCuxE7Qkv64TZ3Z44dVPrxUOh3EK9C1/lHGpz7ZzpVsYTF7K8Hyj+Ogd5FbAk9uL9H9LIyYg821sjo13gYtD+xPbRU/9Ds/b1sZTTIr5OStMGHA6GdiV2gUf2UmQcfJdUbXOoe6HoN1A0b2uQD4EBosXJqQTwKnXvXAEX+oZlfGaS9ewetDGCLeV1exH4e9Mr+2TDpv2iggYFW+LdBsTbngv/yUroGH0jleEX7MOgtxMbQ7PzKoMuajKyM8pYIiB194HnQzsQu0Gp/LvpulVHylsgK/TgG2p/YHrqXf6T3bJUBhfxFWUDPg95CbAytm/+ycasM9WOxWu0PnTniLWE2iLRi/4Z3bJXRvY76s0+Arl93I3aMNOHPBce2PdSkL7Kpnwe9l9gGutCPoFgkUtytXAGbex0vKCznSOs00o+ToLcQG0N/QErCrG6jrTIynVUDwo896vCzssPrNnAYtD+xPfR9fwmKeu/CVhm5OAn1STPkvhxBW1KXjeP60Y/DoJ2JXaAL/RCPy+PXc80L9d7OV294dVPbC/fb4EDoLcTG0IV+TCDrrIxMHIFg512BWj9OgvYk9oK+9SMoZG55q/JMiGS40/sLjacu28T3MVfd0Aha+u3QJXr+0Q//MBtHutaPQOzh3H0RBoZS5OJ/MjqJ9x2vQb7qgSuvX0StH0+FLptzrvTDh9gl0oV+iAbi2lAsqNmbK3yBAyLNdbRzW8Y6Btqf2B76A2IURE2zZY16KGfZlwqofJSL4feABka+xCNX+ekx0LuILaFr/Zit7s4ZA7y5Qg2sDr/t4zDodxCvQt/6occctDKGriMPzH85D9qN2BG61g/QwcLSVDSGl78C6LePY6A3EptBf0BKcjWWH/GqyJqoxKnMufEVBLJxAJwJ7U9sDH3fX0CxnIB4orMyuilTyRh6g+0bfDgQ2p/YHrrQD+jV6qb/SdRrMit8TRWwyEabxgFwJrQnsQt0rR+LR3VqFNiGHRBv73ge9EZiM+haPyicuRcVmIxzAMTMl9wfi3sGtBuxF3ShH92C29yJTteU+ohbRrZk3Qe9hdgY+tYPnOqanA+mTN33ZGKE06HQbsQu0LV+MF8+94rU5dK8B8/KyJaI+6D9ie2hC/3Q12QnSnYLn5p9P/6d0D7EltAh5wz/Hv8exON/LUjHOuz5CksAAAAASUVORK5CYII="; ColorPicker.prototype.crossImage="data:image/gif;base64,R0lGODlhDwAPAKEBAAAAAP///////////yH5BAEKAAIALAAAAAAPAA8AAAIklB8Qx53b4otSUWcvyiz4/4AeQJbmKY4p1HHapBlwPL/uVRsFADs=";ColorPicker.prototype.arrowImage="data:image/gif;base64,R0lGODlhBwALAKECAAAAAP///6g8eKg8eCH5BAEKAAIALAAAAAAHAAsAAAITTIQYcLnsgGxvijrxqdQq6DRJAQA7"; -var ColorDialog=function(a,b,e,f,g,d,h){function m(ca){return mxUtils.color2hex("#"+ca).substring(1).toUpperCase()}function q(){ja.src="none"==Y.style.display?Editor.arrowRightImage:Editor.arrowDownImage}function k(ca){ca||"none"==Y.style.display?(Y.style.display="flex",M.focus()):Y.style.display="none";q()}function u(ca){""==ca.value&&null!=T&&V?ca.style.background=ca==M?T.dark:T.light:""==ca.value||ca.value==mxConstants.NONE||mxUtils.isVarColor(ca.value)?ca.style.background="transparent":ca.style.background= -"#"+ca.value;ca.style.color="transparent"==ca.style.background?"light-dark(#000000, #ffffff)":mxUtils.isDarkColor(ca.style.background)?"#ffffff":"#000000"}function w(){u(W);u(M)}function z(ca){ca?h&&null!=T?(W.value=T.light.substring(1).toUpperCase(),ca=!1):(W.value="",M.value="",X.value="automatic",W.setAttribute("placeholder",mxResources.get("useBlackAndWhite")),M.setAttribute("title",mxResources.get("useBlackAndWhite")),W.setAttribute("title",mxResources.get("useBlackAndWhite"))):(""==W.value&& -null!=T&&(W.value=T.light.substring(1).toUpperCase()),W.removeAttribute("placeholder"),W.removeAttribute("title"),""==M.value&&null!=T&&(M.value=T.dark.substring(1).toUpperCase()),M.removeAttribute("placeholder"),M.removeAttribute("title"),ca=!1);V=ca}function C(ca){"#"==ca.value.charAt(0)&&(ca.value=ca.value.substring(1));var ma=ca.value,Ja=ma.toLowerCase();null==g||""!=ma&&"automatic"!=Ja&&"default"!=Ja&&Ja!=mxResources.get("default").toLowerCase()&&Ja!=mxResources.get("automatic").toLowerCase()|| -null==T?(ca.value==mxConstants.NONE||mxUtils.isVarColor(ca.value)||(ca.value=m(ca.value),fa.fromString("#"+ca.value)),z(!1),ca!=M||W.value==mxConstants.NONE&&M.value==mxConstants.NONE||(X.value="custom"),ca==W&&"automatic"==X.value&&(W.value==mxConstants.NONE?M.value=mxConstants.NONE:mxUtils.isVarColor(W.value)?M.value=W.value:M.value=mxUtils.rgba2hex(mxUtils.getInverseColor("#"+ca.value)).substring(1).toUpperCase()),w()):U.click()}function D(){var ca=W.value,ma=M.value;if(V&&null!=T||(/(^#?[a-zA-Z0-9]*$)/.test(ca)|| -mxUtils.isVarColor(ca))&&(/(^#?[a-zA-Z0-9]*$)/.test(ma)||mxUtils.isVarColor(ma))){if(V)ca="default";else if(""==ca&&(ca=mxConstants.NONE),""==ma&&(ma=mxConstants.NONE),ca==mxConstants.NONE||mxUtils.isVarColor(ca)||"#"==ca.charAt(0)||(ca="#"+m(ca)),ma==mxConstants.NONE||mxUtils.isVarColor(ma)||"#"==ma.charAt(0)||(ma="#"+m(ma)),ca!=mxConstants.NONE&&ma!=mxConstants.NONE||ColorDialog.addRecentColor(mxConstants.NONE,12),"automatic"!=X.value&&ma!=mxConstants.NONE?ca==mxConstants.NONE?ColorDialog.addRecentColor(ma.substring(1), -12):ColorDialog.addRecentColor("light-dark("+ca+","+ma+")",12):ca!=mxConstants.NONE&&ColorDialog.addRecentColor(ca.substring(1),12),"none"!=ca||"none"!=ma)ca=ca==mxConstants.NONE?"transparent":ca,ma=ma==mxConstants.NONE?"transparent":ma,h||"automatic"==X.value||(ca="light-dark("+ca+","+ma+")");aa(ca);a.hideDialog()}else a.handleError({message:mxResources.get("invalidInput")})}function E(){mxClient.IS_TOUCH||(ka.focus(),mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode?ka.select():document.execCommand("selectAll", -!1,null))}function G(){ka.value!=mxConstants.NONE&&""!=ka.value&&fa.fromString("#"+ka.value,!0)}function I(){var ca=ba(0==ColorDialog.recentColors.length?["FFFFFF"]:ColorDialog.recentColors,11,"FFFFFF",!0);ca.style.marginBottom="8px";return ca}function J(ca){13==ca.keyCode&&(C(mxEvent.getSource(ca)),D())}var T=null!=d?mxUtils.getLightDarkColor(d,null,null,h):null,K=a.editor.graph;this.editorUi=a;var V=!1;"default"==b||"transparent"==b||b==mxConstants.NONE||mxUtils.isVarColor(b)||mxUtils.isHexColor(b)|| -mxUtils.isRgbColor(b)||mxUtils.isLightDarkColor(b)||(b=mxUtils.color2hex(b));var W=document.createElement("input");W.style.textOverflow="ellipsis";W.style.margin="0 0 0 4px";W.style.width="100%";d=document.createElement("div");d.style.padding="0 4px";var O=document.createElement("div");O.style.display="flex";O.style.alignItems="center";d.appendChild(O);var M=document.createElement("input");M.style.textOverflow="ellipsis";M.style.margin="0 4px";M.style.maxWidth="60px";M.style.width="100%";var X=document.createElement("select"); -X.style.textOverflow="ellipsis";X.style.width="100%";var N=document.createElement("option");N.setAttribute("value","automatic");mxUtils.write(N,mxResources.get("automatic"));X.appendChild(N);N=document.createElement("option");N.setAttribute("value","custom");mxUtils.write(N,mxResources.get("userDefined"));X.appendChild(N);X.value=mxUtils.isLightDarkColor(b)?"custom":"automatic";var Y=document.createElement("div");Y.style.padding="0 6px 0 6px";N=document.createElement("img");N.setAttribute("title", -mxResources.get("dark"));N.className="geAdaptiveAsset";N.src=Editor.thinDarkImage;N.style.width="20px";Y.appendChild(N);mxEvent.addListener(N,"click",function(){M.focus()});Y.appendChild(M);Y.appendChild(X);Y.style.display="flex";Y.style.alignItems="center";N=document.createElement("div");N.style.display="flex";N.style.alignItems="center";N.style.userSelect="none";N.style.cursor="pointer";N.style.padding="2px 0 2px 0";var ja=document.createElement("img");ja.setAttribute("title",mxResources.get("dark")); -ja.className="geAdaptiveAsset";ja.style.marginLeft="-2px";N.appendChild(ja);mxUtils.write(N,mxResources.get("advanced"));var la=document.createElement("img");la.setAttribute("title",mxResources.get("swap"));la.className="geAdaptiveAsset";la.style.marginLeft="4px";la.style.width="16px";la.style.height="16px";la.style.cursor="pointer";la.src=Editor.swapImage;mxEvent.addListener(la,"click",function(ca){k(!0);X.value="custom";var ma=W.value;W.value=M.value;M.value=ma;w();mxEvent.consume(ca)});N.appendChild(la); -var S=document.createElement("img");S.setAttribute("title",mxResources.get("copy"));S.className="geAdaptiveAsset";S.style.marginLeft="4px";S.style.width="16px";S.style.height="16px";S.style.cursor="pointer";S.src=Editor.doubleArrowUpImage;mxEvent.addListener(S,"click",function(ca){ka==M?W.value=M.value:M.value=W.value;k(!0);X.value="custom";w();mxEvent.consume(ca)});N.appendChild(S);q();mxEvent.addListener(N,"click",function(){k();q();ColorDialog.collapsed="none"==Y.style.display});var U=mxUtils.button("", -function(){z(!0);w();ka.focus();""==ka.value&&null!=T&&V&&fa.fromString(ka==M?T.dark:T.light,!0)});mxEvent.addListener(X,"change",function(){"automatic"==X.value?(W.focus(),C(W)):(z(!1),mxUtils.isVarColor(M.value)||(M.value=V&&null!=T?T.dark.substring(1).toUpperCase():M.value=mxUtils.rgba2hex(mxUtils.getInverseColor("#"+W.value)).substring(1).toUpperCase()),M.focus(),E());w()});mxEvent.addListener(W,"change",function(){C(W)});mxEvent.addListener(M,"change",function(){C(M)});var aa=null!=e?e:this.createApplyFunction(); -this.init=function(){E()};var fa=new ColorPicker,ka=Editor.isDarkMode()&&("auto"==K.getAdaptiveColors()||"simple"==K.getAdaptiveColors()&&"custom"==X.value)&&!h?M:W;mxEvent.addListener(W,"focus",function(){ka=W;G();S.src=Editor.doubleArrowDownImage});mxEvent.addListener(M,"focus",function(){ka=M;G();S.src=Editor.doubleArrowUpImage});fa.addListener("change",function(ca,ma){ca=ma.getProperty("color").substring(1).toUpperCase();ka.value.toUpperCase()!=ca&&(ka.value=ca,C(ka),window.setTimeout(function(){ka.focus()}, -0))});e=document.createElement("div");e.appendChild(fa.div);var ta=document.createElement("div");ta.style.display="flex";ta.style.flexFlow="row wrap";ta.style.justifyContent="center";ta.style.paddingTop="10px";var ba=mxUtils.bind(this,function(ca,ma,Ja,na){ma=null!=ma?ma:12;var ya=document.createElement("table");ya.style.borderCollapse="collapse";ya.setAttribute("cellspacing","0");ya.style.marginBottom="20px";ya.style.cellSpacing="0px";ya.style.marginLeft="1px";var za=document.createElement("tbody"); -ya.appendChild(za);for(var Ka=ca.length/ma,Pa=0;Pa=b&&ColorDialog.recentColors.pop())};ColorDialog.resetRecentColors=function(){ColorDialog.recentColors=[]};ColorDialog.collapsed=!0; var AboutDialog=function(a){var b=document.createElement("div");b.setAttribute("align","center");var e=document.createElement("h3");mxUtils.write(e,mxResources.get("about")+" GraphEditor");b.appendChild(e);e=document.createElement("img");e.style.border="0px";e.setAttribute("width","176");e.setAttribute("width","151");e.setAttribute("src",IMAGE_PATH+"/logo.png");b.appendChild(e);mxUtils.br(b);mxUtils.write(b,"Powered by mxGraph "+mxClient.VERSION);mxUtils.br(b);e=document.createElement("a");e.setAttribute("href", -"http://www.jgraph.com/");e.setAttribute("target","_blank");mxUtils.write(e,"www.jgraph.com");b.appendChild(e);mxUtils.br(b);mxUtils.br(b);e=mxUtils.button(mxResources.get("close"),function(){a.hideDialog()});e.className="geBtn gePrimaryBtn";b.appendChild(e);this.container=b},TextareaDialog=function(a,b,e,f,g,d,h,m,q,k,u,w,z,C,D){k=null!=k?k:!1;h=document.createElement("div");h.style.position="absolute";h.style.top="20px";h.style.bottom="20px";h.style.left="20px";h.style.right="20px";m=document.createElement("div"); -m.style.position="absolute";m.style.left="0px";m.style.right="0px";var E=m.cloneNode(!1),G=m.cloneNode(!1);m.style.top="0px";m.style.height="20px";E.style.top="20px";E.style.bottom="64px";G.style.bottom="0px";G.style.height="60px";G.style.textAlign="right";G.style.paddingTop="14px";G.style.boxSizing="border-box";mxUtils.write(m,b);h.appendChild(m);h.appendChild(E);h.appendChild(G);null!=D&&m.appendChild(D);var I=document.createElement("textarea");u?I.setAttribute("wrap","off"):I.style.wordBreak="break-all"; -I.setAttribute("spellcheck","false");I.setAttribute("autocorrect","off");I.setAttribute("autocomplete","off");I.setAttribute("autocapitalize","off");mxUtils.write(I,e||"");I.style.resize="none";I.style.outline="none";I.style.position="absolute";I.style.boxSizing="border-box";I.style.top="0px";I.style.left="0px";I.style.height="100%";I.style.width="100%";this.textarea=I;this.init=function(){I.focus();I.scrollTop=0};E.appendChild(I);null==z||a.isOffline()||G.appendChild(a.createHelpIcon(z));if(null!= -C)for(b=0;bMAX_AREA||0>=C.value?"red":"";D.style.backgroundColor=C.value*D.value>MAX_AREA||0>=D.value?"red":""}var f=a.editor.graph,g=f.getGraphBounds(),d=f.view.scale,h=Math.ceil(g.width/ -d),m=Math.ceil(g.height/d);d=document.createElement("table");var q=document.createElement("tbody");d.setAttribute("cellpadding",mxClient.IS_SF?"0":"2");g=document.createElement("tr");var k=document.createElement("td");k.style.fontSize="10pt";k.style.width="100px";mxUtils.write(k,mxResources.get("filename")+":");g.appendChild(k);var u=document.createElement("input");u.setAttribute("value",a.editor.getOrCreateFilename());u.style.width="180px";k=document.createElement("td");k.appendChild(u);g.appendChild(k); -q.appendChild(g);g=document.createElement("tr");k=document.createElement("td");k.style.fontSize="10pt";mxUtils.write(k,mxResources.get("format")+":");g.appendChild(k);var w=document.createElement("select");w.style.width="180px";k=document.createElement("option");k.setAttribute("value","png");mxUtils.write(k,mxResources.get("formatPng"));w.appendChild(k);k=document.createElement("option");ExportDialog.showGifOption&&(k.setAttribute("value","gif"),mxUtils.write(k,mxResources.get("formatGif")),w.appendChild(k)); -k=document.createElement("option");k.setAttribute("value","jpg");mxUtils.write(k,mxResources.get("formatJpg"));w.appendChild(k);k=document.createElement("option");k.setAttribute("value","svg");mxUtils.write(k,mxResources.get("formatSvg"));w.appendChild(k);ExportDialog.showXmlOption&&(k=document.createElement("option"),k.setAttribute("value","xml"),mxUtils.write(k,mxResources.get("formatXml")),w.appendChild(k));k=document.createElement("td");k.appendChild(w);g.appendChild(k);q.appendChild(g);g=document.createElement("tr"); -k=document.createElement("td");k.style.fontSize="10pt";mxUtils.write(k,mxResources.get("zoom")+" (%):");g.appendChild(k);var z=document.createElement("input");z.setAttribute("type","number");z.setAttribute("value","100");z.style.width="180px";k=document.createElement("td");k.appendChild(z);g.appendChild(k);q.appendChild(g);g=document.createElement("tr");k=document.createElement("td");k.style.fontSize="10pt";mxUtils.write(k,mxResources.get("width")+":");g.appendChild(k);var C=document.createElement("input"); -C.setAttribute("value",h);C.style.width="180px";k=document.createElement("td");k.appendChild(C);g.appendChild(k);q.appendChild(g);g=document.createElement("tr");k=document.createElement("td");k.style.fontSize="10pt";mxUtils.write(k,mxResources.get("height")+":");g.appendChild(k);var D=document.createElement("input");D.setAttribute("value",m);D.style.width="180px";k=document.createElement("td");k.appendChild(D);g.appendChild(k);q.appendChild(g);g=document.createElement("tr");k=document.createElement("td"); +"http://www.jgraph.com/");e.setAttribute("target","_blank");mxUtils.write(e,"www.jgraph.com");b.appendChild(e);mxUtils.br(b);mxUtils.br(b);e=mxUtils.button(mxResources.get("close"),function(){a.hideDialog()});e.className="geBtn gePrimaryBtn";b.appendChild(e);this.container=b},TextareaDialog=function(a,b,e,f,g,d,h,m,p,k,v,w,y,C,D){k=null!=k?k:!1;h=document.createElement("div");h.style.position="absolute";h.style.top="20px";h.style.bottom="20px";h.style.left="20px";h.style.right="20px";m=document.createElement("div"); +m.style.position="absolute";m.style.left="0px";m.style.right="0px";var E=m.cloneNode(!1),G=m.cloneNode(!1);m.style.top="0px";m.style.height="20px";E.style.top="20px";E.style.bottom="64px";G.style.display="flex";G.style.whiteSpace="nowrap";G.style.alignItems="center";G.style.justifyContent="end";G.style.bottom="0px";G.style.height="60px";G.style.textAlign="right";G.style.paddingTop="14px";G.style.boxSizing="border-box";mxUtils.write(m,b);h.appendChild(m);h.appendChild(E);h.appendChild(G);null!=D&& +m.appendChild(D);var J=document.createElement("textarea");v?J.setAttribute("wrap","off"):J.style.wordBreak="break-all";J.setAttribute("spellcheck","false");J.setAttribute("autocorrect","off");J.setAttribute("autocomplete","off");J.setAttribute("autocapitalize","off");mxUtils.write(J,e||"");J.style.resize="none";J.style.outline="none";J.style.position="absolute";J.style.boxSizing="border-box";J.style.top="0px";J.style.left="0px";J.style.height="100%";J.style.width="100%";this.textarea=J;this.init= +function(){J.focus();J.scrollTop=0};E.appendChild(J);null==y||a.isOffline()||G.appendChild(a.createHelpIcon(y));if(null!=C)for(b=0;bMAX_AREA||0>=C.value?"red":"";D.style.backgroundColor=C.value*D.value>MAX_AREA||0>=D.value?"red":""}var f=a.editor.graph,g=f.getGraphBounds(),d=f.view.scale,h=Math.ceil(g.width/ +d),m=Math.ceil(g.height/d);d=document.createElement("table");var p=document.createElement("tbody");d.setAttribute("cellpadding",mxClient.IS_SF?"0":"2");g=document.createElement("tr");var k=document.createElement("td");k.style.fontSize="10pt";k.style.width="100px";mxUtils.write(k,mxResources.get("filename")+":");g.appendChild(k);var v=document.createElement("input");v.setAttribute("value",a.editor.getOrCreateFilename());v.style.width="180px";k=document.createElement("td");k.appendChild(v);g.appendChild(k); +p.appendChild(g);g=document.createElement("tr");k=document.createElement("td");k.style.fontSize="10pt";mxUtils.write(k,mxResources.get("format")+":");g.appendChild(k);var w=document.createElement("select");w.style.width="180px";k=document.createElement("option");k.setAttribute("value","png");mxUtils.write(k,mxResources.get("formatPng"));w.appendChild(k);k=document.createElement("option");ExportDialog.showGifOption&&(k.setAttribute("value","gif"),mxUtils.write(k,mxResources.get("formatGif")),w.appendChild(k)); +k=document.createElement("option");k.setAttribute("value","jpg");mxUtils.write(k,mxResources.get("formatJpg"));w.appendChild(k);k=document.createElement("option");k.setAttribute("value","svg");mxUtils.write(k,mxResources.get("formatSvg"));w.appendChild(k);ExportDialog.showXmlOption&&(k=document.createElement("option"),k.setAttribute("value","xml"),mxUtils.write(k,mxResources.get("formatXml")),w.appendChild(k));k=document.createElement("td");k.appendChild(w);g.appendChild(k);p.appendChild(g);g=document.createElement("tr"); +k=document.createElement("td");k.style.fontSize="10pt";mxUtils.write(k,mxResources.get("zoom")+" (%):");g.appendChild(k);var y=document.createElement("input");y.setAttribute("type","number");y.setAttribute("value","100");y.style.width="180px";k=document.createElement("td");k.appendChild(y);g.appendChild(k);p.appendChild(g);g=document.createElement("tr");k=document.createElement("td");k.style.fontSize="10pt";mxUtils.write(k,mxResources.get("width")+":");g.appendChild(k);var C=document.createElement("input"); +C.setAttribute("value",h);C.style.width="180px";k=document.createElement("td");k.appendChild(C);g.appendChild(k);p.appendChild(g);g=document.createElement("tr");k=document.createElement("td");k.style.fontSize="10pt";mxUtils.write(k,mxResources.get("height")+":");g.appendChild(k);var D=document.createElement("input");D.setAttribute("value",m);D.style.width="180px";k=document.createElement("td");k.appendChild(D);g.appendChild(k);p.appendChild(g);g=document.createElement("tr");k=document.createElement("td"); k.style.fontSize="10pt";mxUtils.write(k,mxResources.get("dpi")+":");g.appendChild(k);var E=document.createElement("select");E.style.width="180px";k=document.createElement("option");k.setAttribute("value","100");mxUtils.write(k,"100dpi");E.appendChild(k);k=document.createElement("option");k.setAttribute("value","200");mxUtils.write(k,"200dpi");E.appendChild(k);k=document.createElement("option");k.setAttribute("value","300");mxUtils.write(k,"300dpi");E.appendChild(k);k=document.createElement("option"); -k.setAttribute("value","400");mxUtils.write(k,"400dpi");E.appendChild(k);k=document.createElement("option");k.setAttribute("value","custom");mxUtils.write(k,mxResources.get("custom"));E.appendChild(k);var G=document.createElement("input");G.style.width="180px";G.style.display="none";G.setAttribute("value","100");G.setAttribute("type","number");G.setAttribute("min","50");G.setAttribute("step","50");var I=!1;mxEvent.addListener(E,"change",function(){"custom"==this.value?(this.style.display="none",G.style.display= -"",G.focus()):(G.value=this.value,I||(z.value=this.value))});mxEvent.addListener(G,"change",function(){var O=parseInt(G.value);isNaN(O)||0>=O?G.style.backgroundColor="red":(G.style.backgroundColor="",I||(z.value=O))});k=document.createElement("td");k.appendChild(E);k.appendChild(G);g.appendChild(k);q.appendChild(g);g=document.createElement("tr");k=document.createElement("td");k.style.fontSize="10pt";mxUtils.write(k,mxResources.get("background")+":");g.appendChild(k);var J=document.createElement("input"); -J.setAttribute("type","checkbox");J.checked=null==f.background||f.background==mxConstants.NONE;k=document.createElement("td");k.appendChild(J);mxUtils.write(k,mxResources.get("transparent"));g.appendChild(k);q.appendChild(g);g=document.createElement("tr");k=document.createElement("td");k.style.fontSize="10pt";mxUtils.write(k,mxResources.get("grid")+":");g.appendChild(k);var T=document.createElement("input");T.setAttribute("type","checkbox");T.checked=!1;k=document.createElement("td");k.appendChild(T); -g.appendChild(k);q.appendChild(g);g=document.createElement("tr");k=document.createElement("td");k.style.fontSize="10pt";mxUtils.write(k,mxResources.get("borderWidth")+":");g.appendChild(k);var K=document.createElement("input");K.setAttribute("type","number");K.setAttribute("value",ExportDialog.lastBorderValue);K.style.width="180px";k=document.createElement("td");k.appendChild(K);g.appendChild(k);q.appendChild(g);d.appendChild(q);mxEvent.addListener(w,"change",b);b();mxEvent.addListener(z,"change", -function(){I=!0;var O=Math.max(0,parseFloat(z.value)||100)/100;z.value=parseFloat((100*O).toFixed(2));0=parseInt(z.value))mxUtils.alert(mxResources.get("drawingEmpty"));else{var O=u.value,M=w.value,X=Math.max(0,parseFloat(z.value)||100)/100,N=Math.max(0,parseInt(K.value)),Y=f.background,ja=Math.max(1,parseInt(G.value));if(("svg"==M||"png"==M|| -"pdf"==M)&&J.checked)Y=null;else if(null==Y||Y==mxConstants.NONE)Y="#ffffff";ExportDialog.lastBorderValue=N;ExportDialog.exportFile(a,O,M,Y,X,N,ja,T.checked)}}));V.className="geBtn gePrimaryBtn";var W=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});W.className="geBtn";a.editor.cancelFirst?(k.appendChild(W),k.appendChild(V)):(k.appendChild(V),k.appendChild(W));g.appendChild(k);q.appendChild(g);d.appendChild(q);this.container=d};ExportDialog.lastBorderValue=0; +k.setAttribute("value","400");mxUtils.write(k,"400dpi");E.appendChild(k);k=document.createElement("option");k.setAttribute("value","custom");mxUtils.write(k,mxResources.get("custom"));E.appendChild(k);var G=document.createElement("input");G.style.width="180px";G.style.display="none";G.setAttribute("value","100");G.setAttribute("type","number");G.setAttribute("min","50");G.setAttribute("step","50");var J=!1;mxEvent.addListener(E,"change",function(){"custom"==this.value?(this.style.display="none",G.style.display= +"",G.focus()):(G.value=this.value,J||(y.value=this.value))});mxEvent.addListener(G,"change",function(){var U=parseInt(G.value);isNaN(U)||0>=U?G.style.backgroundColor="red":(G.style.backgroundColor="",J||(y.value=U))});k=document.createElement("td");k.appendChild(E);k.appendChild(G);g.appendChild(k);p.appendChild(g);g=document.createElement("tr");k=document.createElement("td");k.style.fontSize="10pt";mxUtils.write(k,mxResources.get("background")+":");g.appendChild(k);var M=document.createElement("input"); +M.setAttribute("type","checkbox");M.checked=null==f.background||f.background==mxConstants.NONE;k=document.createElement("td");k.appendChild(M);mxUtils.write(k,mxResources.get("transparent"));g.appendChild(k);p.appendChild(g);g=document.createElement("tr");k=document.createElement("td");k.style.fontSize="10pt";mxUtils.write(k,mxResources.get("grid")+":");g.appendChild(k);var O=document.createElement("input");O.setAttribute("type","checkbox");O.checked=!1;k=document.createElement("td");k.appendChild(O); +g.appendChild(k);p.appendChild(g);g=document.createElement("tr");k=document.createElement("td");k.style.fontSize="10pt";mxUtils.write(k,mxResources.get("borderWidth")+":");g.appendChild(k);var L=document.createElement("input");L.setAttribute("type","number");L.setAttribute("value",ExportDialog.lastBorderValue);L.style.width="180px";k=document.createElement("td");k.appendChild(L);g.appendChild(k);p.appendChild(g);d.appendChild(p);mxEvent.addListener(w,"change",b);b();mxEvent.addListener(y,"change", +function(){J=!0;var U=Math.max(0,parseFloat(y.value)||100)/100;y.value=parseFloat((100*U).toFixed(2));0=parseInt(y.value))mxUtils.alert(mxResources.get("drawingEmpty"));else{var U=v.value,N=w.value,ca=Math.max(0,parseFloat(y.value)||100)/100,H=Math.max(0,parseInt(L.value)),S=f.background,ea=Math.max(1,parseInt(G.value));if(("svg"==N||"png"==N|| +"pdf"==N)&&M.checked)S=null;else if(null==S||S==mxConstants.NONE)S="#ffffff";ExportDialog.lastBorderValue=H;ExportDialog.exportFile(a,U,N,S,ca,H,ea,O.checked)}}));W.className="geBtn gePrimaryBtn";var X=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});X.className="geBtn";a.editor.cancelFirst?(k.appendChild(X),k.appendChild(W)):(k.appendChild(W),k.appendChild(X));g.appendChild(k);p.appendChild(g);d.appendChild(p);this.container=d};ExportDialog.lastBorderValue=0; ExportDialog.showGifOption=!0;ExportDialog.showXmlOption=!0; -ExportDialog.exportFile=function(a,b,e,f,g,d,h,m){m=a.editor.graph;if("xml"==e)ExportDialog.saveLocalFile(a,mxUtils.getXml(a.editor.getGraphXml()),b,e);else if("svg"==e)ExportDialog.saveLocalFile(a,mxUtils.getXml(m.getSvg(f,g,d)),b,e);else{var q=m.getGraphBounds(),k=mxUtils.createXmlDocument(),u=k.createElement("output");k.appendChild(u);k=new mxXmlCanvas2D(u);k.translate(Math.floor((d/g-q.x)/m.view.scale),Math.floor((d/g-q.y)/m.view.scale));k.scale(g/m.view.scale);(new mxImageExport).drawState(m.getView().getState(m.model.root), -k);u="xml="+encodeURIComponent(mxUtils.getXml(u));k=Math.ceil(q.width*g/m.view.scale+2*d);g=Math.ceil(q.height*g/m.view.scale+2*d);u.length<=MAX_REQUEST_SIZE&&k*g -M.name?1:0});if(null!=D){u=document.createElement("div");u.style.width="100%";u.style.fontSize="11px";u.style.textAlign="center";mxUtils.write(u,D);var T=k.addField(mxResources.get("id")+":",u);mxEvent.addListener(u,"dblclick",function(O){O=new FilenameDialog(a,D,mxResources.get("apply"),mxUtils.bind(this,function(M){if(null!=M&&0O.indexOf(":"))try{var M=mxUtils.indexOf(w,O);if(0<=M&&null!=z[M])z[M].focus();else{d.cloneNode(!1).setAttribute(O, -"");0<=M&&(w.splice(M,1),z.splice(M,1));w.push(O);var X=k.addTextarea(O+":","",2);X.style.width="100%";z.push(X);E(X,O);X.focus()}V.setAttribute("disabled","disabled");K.value=""}catch(N){mxUtils.alert(N)}else mxUtils.alert(mxResources.get("invalidName"))});mxEvent.addListener(K,"keypress",function(O){13==O.keyCode&&V.click()});this.init=function(){0N.name?1:0});if(null!=D){v=document.createElement("div");v.style.width="100%";v.style.fontSize="11px";v.style.textAlign="center";mxUtils.write(v,D);var O=k.addField(mxResources.get("id")+":",v);mxEvent.addListener(v,"dblclick",function(U){U=new FilenameDialog(a,D,mxResources.get("apply"),mxUtils.bind(this,function(N){if(null!=N&&0U.indexOf(":"))try{var N=mxUtils.indexOf(w,U);if(0<=N&&null!=y[N])y[N].focus();else{d.cloneNode(!1).setAttribute(U, +"");0<=N&&(w.splice(N,1),y.splice(N,1));w.push(U);var ca=k.addTextarea(U+":","",2);ca.style.width="100%";y.push(ca);E(ca,U);ca.focus()}W.setAttribute("disabled","disabled");L.value=""}catch(H){mxUtils.alert(H)}else mxUtils.alert(mxResources.get("invalidName"))});mxEvent.addListener(L,"keypress",function(U){13==U.keyCode&&W.click()});this.init=function(){0"))});mxEvent.addListener(U,"dragend",function(ba){null!=w&& -null!=z&&1document.documentMode)ja=document.createElement("div"), -ja.style.display="block",ja.style.textAlign="right",ja.style.whiteSpace="nowrap",ja.style.position="absolute",ja.style.right="16px",ja.style.top="6px",0"))});mxEvent.addListener(V,"dragend",function(aa){null!=w&&null!= +y&&1document.documentMode)ea=document.createElement("div"),ea.style.display= +"block",ea.style.textAlign="right",ea.style.whiteSpace="nowrap",ea.style.position="absolute",ea.style.right="16px",ea.style.top="6px",0>>0,$jscomp.propertyToPolyfillSymbol[l]=$jscomp.IS_SYMBOL_NATIVE? +$jscomp.polyfillIsolated=function(b,e,f,c){var l=b.split(".");b=1===l.length;c=l[0];c=!b&&c in $jscomp.polyfills?$jscomp.polyfills:$jscomp.global;for(var p=0;p>>0,$jscomp.propertyToPolyfillSymbol[l]=$jscomp.IS_SYMBOL_NATIVE? $jscomp.global.Symbol(l):$jscomp.POLYFILL_PREFIX+f+"$"+l),$jscomp.defineProperty(c,$jscomp.propertyToPolyfillSymbol[l],{configurable:!0,writable:!0,value:e})))};$jscomp.underscoreProtoCanBeSet=function(){var b={a:!0},e={};try{return e.__proto__=b,e.a}catch(f){}return!1}; $jscomp.setPrototypeOf=$jscomp.TRUST_ES6_POLYFILLS&&"function"==typeof Object.setPrototypeOf?Object.setPrototypeOf:$jscomp.underscoreProtoCanBeSet()?function(b,e){b.__proto__=e;if(b.__proto__!==e)throw new TypeError(b+" is not extensible");return b}:null;$jscomp.generator={};$jscomp.generator.ensureIteratorResultIsObject_=function(b){if(!(b instanceof Object))throw new TypeError("Iterator result "+b+" is not an object");}; $jscomp.generator.Context=function(){this.isRunning_=!1;this.yieldAllIterator_=null;this.yieldResult=void 0;this.nextAddress=1;this.finallyAddress_=this.catchAddress_=0;this.finallyContexts_=this.abruptCompletion_=null};$jscomp.generator.Context.prototype.start_=function(){if(this.isRunning_)throw new TypeError("Generator is already running");this.isRunning_=!0};$jscomp.generator.Context.prototype.stop_=function(){this.isRunning_=!1}; @@ -12173,37 +12188,37 @@ $jscomp.generator.Engine_.prototype.throw_=function(b){this.context_.start_();if $jscomp.generator.Engine_.prototype.yieldAllStep_=function(b,e,f){try{var c=b.call(this.context_.yieldAllIterator_,e);$jscomp.generator.ensureIteratorResultIsObject_(c);if(!c.done)return this.context_.stop_(),c;var l=c.value}catch(p){return this.context_.yieldAllIterator_=null,this.context_.throw_(p),this.nextStep_()}this.context_.yieldAllIterator_=null;f.call(this.context_,l);return this.nextStep_()}; $jscomp.generator.Engine_.prototype.nextStep_=function(){for(;this.context_.nextAddress;)try{var b=this.program_(this.context_);if(b)return this.context_.stop_(),{value:b.value,done:!1}}catch(e){this.context_.yieldResult=void 0,this.context_.throw_(e)}this.context_.stop_();if(this.context_.abruptCompletion_){b=this.context_.abruptCompletion_;this.context_.abruptCompletion_=null;if(b.isException)throw b.exception;return{value:b.return,done:!0}}return{value:void 0,done:!0}}; $jscomp.generator.Generator_=function(b){this.next=function(e){return b.next_(e)};this.throw=function(e){return b.throw_(e)};this.return=function(e){return b.return_(e)};this[Symbol.iterator]=function(){return this}};$jscomp.generator.createGenerator=function(b,e){e=new $jscomp.generator.Generator_(new $jscomp.generator.Engine_(e));$jscomp.setPrototypeOf&&b.prototype&&$jscomp.setPrototypeOf(e,b.prototype);return e}; -$jscomp.asyncExecutePromiseGenerator=function(b){function e(c){return b.next(c)}function f(c){return b.throw(c)}return new Promise(function(c,l){function p(v){v.done?c(v.value):Promise.resolve(v.value).then(e,f).then(p,l)}p(b.next())})};$jscomp.asyncExecutePromiseGeneratorFunction=function(b){return $jscomp.asyncExecutePromiseGenerator(b())};$jscomp.asyncExecutePromiseGeneratorProgram=function(b){return $jscomp.asyncExecutePromiseGenerator(new $jscomp.generator.Generator_(new $jscomp.generator.Engine_(b)))}; +$jscomp.asyncExecutePromiseGenerator=function(b){function e(c){return b.next(c)}function f(c){return b.throw(c)}return new Promise(function(c,l){function p(q){q.done?c(q.value):Promise.resolve(q.value).then(e,f).then(p,l)}p(b.next())})};$jscomp.asyncExecutePromiseGeneratorFunction=function(b){return $jscomp.asyncExecutePromiseGenerator(b())};$jscomp.asyncExecutePromiseGeneratorProgram=function(b){return $jscomp.asyncExecutePromiseGenerator(new $jscomp.generator.Generator_(new $jscomp.generator.Engine_(b)))}; DrawioFile=function(b,e){mxEventSource.call(this);this.ui=b;this.setData(e||"");this.initialData=this.getData();this.created=(new Date).getTime();this.stats={opened:0,merged:0,fileMerged:0,fileReloaded:0,conflicts:0,timeouts:0,saved:0,closed:0,destroyed:0,joined:0,checksumErrors:0,bytesSent:0,bytesReceived:0,msgSent:0,msgReceived:0,cacheHits:0,cacheMiss:0,cacheFail:0}};DrawioFile.SYNC=urlParams.sync||"auto";DrawioFile.LAST_WRITE_WINS=!0;DrawioFile.RESTRICT_EXPORT=!1;mxUtils.extend(DrawioFile,mxEventSource); DrawioFile.prototype.allChangesSavedKey="allChangesSaved";DrawioFile.prototype.savingSpinnerKey="saving";DrawioFile.prototype.savingStatusKey="saving";DrawioFile.prototype.autosaveDelay=1500;DrawioFile.prototype.maxAutosaveDelay=3E4;DrawioFile.prototype.optimisticSyncDelay=300;DrawioFile.prototype.autosaveThread=null;DrawioFile.prototype.lastAutosave=null;DrawioFile.prototype.lastSaved=null;DrawioFile.prototype.lastChanged=null;DrawioFile.prototype.opened=null;DrawioFile.prototype.modified=!1; DrawioFile.prototype.shadowModified=!1;DrawioFile.prototype.data=null;DrawioFile.prototype.shadowPages=null;DrawioFile.prototype.changeListenerEnabled=!0;DrawioFile.prototype.lastAutosaveRevision=null;DrawioFile.prototype.maxAutosaveRevisionDelay=3E5;DrawioFile.prototype.inConflictState=!1;DrawioFile.prototype.invalidChecksum=!1;DrawioFile.prototype.ageStart=null;DrawioFile.prototype.getSize=function(){return null!=this.data?this.data.length:0}; DrawioFile.prototype.getShadowPages=function(){null==this.shadowPages&&(this.shadowPages=this.ui.getPagesForXml(this.initialData));return this.shadowPages};DrawioFile.prototype.setShadowPages=function(b){this.shadowPages=b}; -DrawioFile.prototype.synchronizeFile=function(b,e){if(this.savingFile)null!=e&&e({message:mxResources.get("busy")});else{var f=!0,c=window.setTimeout(mxUtils.bind(this,function(){f=!1;null!=e&&e({code:App.ERROR_TIMEOUT,message:mxResources.get("timeout"),retry:mxUtils.bind(this,function(){this.synchronizeFile(b,e)})})}),this.ui.timeout),l=mxUtils.bind(this,function(v){f&&(window.clearTimeout(c),null!=e&&e(v))}),p=mxUtils.bind(this,function(){return!f});null!=this.sync?this.sync.fileChanged(mxUtils.bind(this, -function(v){f&&(window.clearTimeout(c),this.sync.cleanup(b,e,v))}),l,p):this.updateFile(mxUtils.bind(this,function(){f&&(window.clearTimeout(c),null!=b&&b())}),l,p)}}; +DrawioFile.prototype.synchronizeFile=function(b,e){if(this.savingFile)null!=e&&e({message:mxResources.get("busy")});else{var f=!0,c=window.setTimeout(mxUtils.bind(this,function(){f=!1;null!=e&&e({code:App.ERROR_TIMEOUT,message:mxResources.get("timeout"),retry:mxUtils.bind(this,function(){this.synchronizeFile(b,e)})})}),this.ui.timeout),l=mxUtils.bind(this,function(q){f&&(window.clearTimeout(c),null!=e&&e(q))}),p=mxUtils.bind(this,function(){return!f});null!=this.sync?this.sync.fileChanged(mxUtils.bind(this, +function(q){f&&(window.clearTimeout(c),this.sync.cleanup(b,e,q))}),l,p):this.updateFile(mxUtils.bind(this,function(){f&&(window.clearTimeout(c),null!=b&&b())}),l,p)}}; DrawioFile.prototype.updateFile=function(b,e,f,c,l){null!=f&&f()||(EditorUi.debug("DrawioFile.updateFile",[this],"immediate",l,"invalidChecksum",this.invalidChecksum),this.ui.getCurrentFile()!=this||this.invalidChecksum?null!=e&&e():this.getLatestVersion(mxUtils.bind(this,function(p){try{null!=f&&f()||(EditorUi.debug("DrawioFile.updateFile",[this],"invalidChecksum",this.invalidChecksum,"latestFile",[p]),this.ui.getCurrentFile()!=this||this.invalidChecksum?null!=e&&e():null!=p?this.mergeFile(p,b,e, -c,l):this.reloadFile(b,e))}catch(v){null!=e&&e(v)}}),e))}; -DrawioFile.prototype.mergeFile=function(b,e,f,c,l){try{var p=b.getShadowPages();if(null!=p&&0f?b=b.substring(0,f)+"[...]":null!=b&&b.length>e&&(b=Graph.compress(b)+"\n");return b}; -DrawioFile.prototype.checksumError=function(b,e,f,c,l,p,v,t){this.stats.checksumErrors++;this.invalidChecksum=this.inConflictState=!0;this.descriptorChanged();null!=this.sync&&this.sync.updateOnlineState();null!=b&&b();try{var E=this.getCurrentUser(),H=null!=E?E.id:"unknown",B=""!=this.getId()?this.getId():"("+this.ui.hashValue(this.getTitle())+")",d=JSON.stringify(e).length,g=null;if(null!=e&&1E3>d){b=[];for(f=0;f -g.length?Graph.compress(g):null}this.getLatestVersion(mxUtils.bind(this,function(k){try{var n=null!=g?"report":"error",u=this.ui.getHashValueForPages(k.getShadowPages()),x="unknown",A="unknown",I="unknown";try{var G=null!=k.initialData&&0d){b=[];for(f=0;f +g.length?Graph.compress(g):null}this.getLatestVersion(mxUtils.bind(this,function(k){try{var m=null!=g?"report":"error",t=this.ui.getHashValueForPages(k.getShadowPages()),y="unknown",A="unknown",H="unknown";try{var F=null!=k.initialData&&0x?this.ui.insertPage(n[u],Math.min(u,this.ui.pages.length)):this.ui.movePage(x,u)}for(u=0;umxUtils.indexOf(n,g[u])&&this.ui.removePage(g[u]);0<=mxUtils.indexOf(this.ui.pages,k)&&this.ui.selectPage(k,!0)}else this.ui.pages=this.ui.applyPatches(this.ui.pages,b,!0,e,this.isModified());0==this.ui.pages.length&& -this.ui.pages.push(this.ui.createPage());0>mxUtils.indexOf(this.ui.pages,this.ui.currentPage)&&this.ui.selectPage(this.ui.pages[0],!0);t.checkDefaultParent()}finally{t.container.style.visibility="";t.model.endUpdate();t.cellRenderer.redraw=d;this.changeListenerEnabled=E;f||(l.history=p,l.indexOfNextAdd=v,l.fireEvent(new mxEventObject(mxEvent.CLEAR)));if(null==this.ui.currentPage||this.ui.currentPage.needsUpdate)B!=t.mathEnabled?(this.ui.editor.updateGraphComponents(),t.refresh()):(H!=t.foldingEnabled? -t.view.revalidate():t.view.validate(),t.sizeDidChange());null!=this.sync&&this.isRealtime()&&!c&&(this.sync.snapshot=this.ui.clonePages(this.ui.pages));this.ui.editor.fireEvent(new mxEventObject("pagesPatched","patches",b))}EditorUi.debug("DrawioFile.patch",[this],"patches",b,"resolver",e,"undoable",f)}return b}; +DrawioFile.prototype.patch=function(b,e,f,c){if(null!=b){var l=this.ui.editor.undoManager,p=l.history.slice(),q=l.indexOfNextAdd,v=this.ui.editor.graph;v.container.style.visibility="hidden";var D=this.changeListenerEnabled;this.changeListenerEnabled=f;var G=v.foldingEnabled,B=v.mathEnabled,d=v.cellRenderer.redraw;v.cellRenderer.redraw=function(A){A.view.graph.isEditing(A.cell)&&(A.view.graph.scrollCellToVisible(A.cell),A.view.graph.cellEditor.resize());d.apply(this,arguments)};v.model.beginUpdate(); +try{if(f){for(var g=this.ui.pages.slice(),k=this.ui.currentPage,m=this.ui.applyPatches(this.ui.pages,b,!0,e,this.isModified()),t=0;ty?this.ui.insertPage(m[t],Math.min(t,this.ui.pages.length)):this.ui.movePage(y,t)}for(t=0;tmxUtils.indexOf(m,g[t])&&this.ui.removePage(g[t]);0<=mxUtils.indexOf(this.ui.pages,k)&&this.ui.selectPage(k,!0)}else this.ui.pages=this.ui.applyPatches(this.ui.pages,b,!0,e,this.isModified());0==this.ui.pages.length&& +this.ui.pages.push(this.ui.createPage());0>mxUtils.indexOf(this.ui.pages,this.ui.currentPage)&&this.ui.selectPage(this.ui.pages[0],!0);v.checkDefaultParent()}finally{v.container.style.visibility="";v.model.endUpdate();v.cellRenderer.redraw=d;this.changeListenerEnabled=D;f||(l.history=p,l.indexOfNextAdd=q,l.fireEvent(new mxEventObject(mxEvent.CLEAR)));if(null==this.ui.currentPage||this.ui.currentPage.needsUpdate)B!=v.mathEnabled?(this.ui.editor.updateGraphComponents(),v.refresh()):(G!=v.foldingEnabled? +v.view.revalidate():v.view.validate(),v.sizeDidChange());null!=this.sync&&this.isRealtime()&&!c&&(this.sync.snapshot=this.ui.clonePages(this.ui.pages));this.ui.editor.fireEvent(new mxEventObject("pagesPatched","patches",b))}EditorUi.debug("DrawioFile.patch",[this],"patches",b,"resolver",e,"undoable",f)}return b}; DrawioFile.prototype.save=function(b,e,f,c,l,p){try{if(EditorUi.debug("DrawioFile.save",[this],"revision",b,"unloading",c,"overwrite",l,"manual",p,"saving",this.savingFile,"editable",this.isEditable(),"invalidChecksum",this.invalidChecksum),this.isEditable())if(!l&&this.invalidChecksum)if(null!=f)f({message:mxResources.get("checksum")});else throw Error(mxResources.get("checksum"));else this.updateFileData(),this.clearAutosave(),null!=e&&e();else if(null!=f)f({message:mxResources.get("readOnly")}); -else throw Error(mxResources.get("readOnly"));}catch(v){if(null!=f)f(v);else throw v;}};DrawioFile.prototype.createData=function(){var b=this.ui.pages;if(this.isRealtime()&&(this.ui.pages=this.ownPages,null!=this.ui.currentPage)){var e=this.ui.getPageById(this.ui.currentPage.getId(),this.ownPages);null!=e&&(e.viewState=this.ui.editor.graph.getViewState(),e.needsUpdate=!0)}e=this.ui.getFileData(null,null,null,null,null,null,null,null,this,!this.isCompressed());this.ui.pages=b;return e}; +else throw Error(mxResources.get("readOnly"));}catch(q){if(null!=f)f(q);else throw q;}};DrawioFile.prototype.createData=function(){var b=this.ui.pages;if(this.isRealtime()&&(this.ui.pages=this.ownPages,null!=this.ui.currentPage)){var e=this.ui.getPageById(this.ui.currentPage.getId(),this.ownPages);null!=e&&(e.viewState=this.ui.editor.graph.getViewState(),e.needsUpdate=!0)}e=this.ui.getFileData(null,null,null,null,null,null,null,null,this,!this.isCompressed());this.ui.pages=b;return e}; DrawioFile.prototype.updateFileData=function(){null!=this.sync&&this.sync.sendLocalChanges();this.setData(this.createData());null!=this.sync&&this.sync.fileDataUpdated()};DrawioFile.prototype.isCompressedStorage=function(){return Editor.defaultCompressed};DrawioFile.prototype.isCompressed=function(){var b=null!=this.ui.fileNode?this.ui.fileNode.getAttribute("compressed"):null;return null!=b?"false"!=b:this.isCompressedStorage()&&Editor.compressXml}; DrawioFile.prototype.setLocked=function(b){this.ui.fileNode.setAttribute("locked",b?"true":"false");this.ui.fireEvent(new mxEventObject("lockedChanged"));this.fileChanged();b&&this.ui.editor.graph.clearSelection()};DrawioFile.prototype.isLocked=function(){var b=null!=this.ui.fileNode?this.ui.fileNode.getAttribute("locked"):null;return null!=b?"true"==b:!1};DrawioFile.prototype.saveAs=function(b,e,f){};DrawioFile.prototype.saveFile=function(b,e,f,c){};DrawioFile.prototype.getFileUrl=function(){return null}; DrawioFile.prototype.getFolderUrl=function(b){return null};DrawioFile.prototype.getPublicUrl=function(b){b(null)};DrawioFile.prototype.isRestricted=function(){return DrawioFile.RESTRICT_EXPORT};DrawioFile.prototype.isModified=function(){return this.modified};DrawioFile.prototype.getShadowModified=function(){return this.shadowModified};DrawioFile.prototype.setShadowModified=function(b){this.shadowModified=b};DrawioFile.prototype.setModified=function(b){this.shadowModified=this.modified=b}; @@ -12242,7 +12257,7 @@ DrawioFile.prototype.handleFileSuccess=function(b){this.ui.spinner.stop();this.u this.ui.updateStatus(mxUtils.bind(this,function(){this.addAllSavedStatus()})),null!=this.sync&&(this.sync.resetUpdateStatusThread(),this.sync.remoteFileChanged&&(this.sync.remoteFileChanged=!1,this.sync.fileChangedNotify()))):this.ui.clearStatus())}; DrawioFile.prototype.handleFileError=function(b,e){this.ui.spinner.stop();this.ui.getCurrentFile()==this&&(this.inConflictState?this.handleConflictError(b,e):(this.isModified()&&this.addUnsavedStatus(b),e?this.ui.handleError(b,null!=b?mxResources.get("errorSavingFile"):null):this.isModified()||this.ui.updateStatus(mxUtils.bind(this,function(){var f=this.getErrorMessage(b);null!=f&&60'+mxUtils.htmlEntities(mxResources.get("error"))+ (null!=f?" ("+mxUtils.htmlEntities(f)+")":"")+"")}))))}; -DrawioFile.prototype.handleConflictError=function(b,e){var f=mxUtils.bind(this,function(){this.handleFileSuccess(!0)}),c=mxUtils.bind(this,function(v){this.handleFileError(v,!0)}),l=mxUtils.bind(this,function(){this.ui.spinner.spin(document.body,mxResources.get(this.savingSpinnerKey))&&(this.ui.clearStatus(),this.save(!0,f,c,null,!0,this.constructor!=GitHubFile&&this.constructor!=GitLabFile||null==b?null:b.commitMessage))}),p=mxUtils.bind(this,function(){this.ui.spinner.spin(document.body,mxResources.get("updatingDocument"))&& +DrawioFile.prototype.handleConflictError=function(b,e){var f=mxUtils.bind(this,function(){this.handleFileSuccess(!0)}),c=mxUtils.bind(this,function(q){this.handleFileError(q,!0)}),l=mxUtils.bind(this,function(){this.ui.spinner.spin(document.body,mxResources.get(this.savingSpinnerKey))&&(this.ui.clearStatus(),this.save(!0,f,c,null,!0,this.constructor!=GitHubFile&&this.constructor!=GitLabFile||null==b?null:b.commitMessage))}),p=mxUtils.bind(this,function(){this.ui.spinner.spin(document.body,mxResources.get("updatingDocument"))&& this.synchronizeFile(mxUtils.bind(this,function(){this.ui.spinner.stop();this.ui.spinner.spin(document.body,mxResources.get(this.savingSpinnerKey))&&this.save(!0,f,c,null,null,this.constructor!=GitHubFile&&this.constructor!=GitLabFile||null==b?null:b.commitMessage)}),c)});"none"==DrawioFile.SYNC?this.showCopyDialog(f,c,l):this.invalidChecksum&&e?this.showRefreshDialog(f,c,this.getErrorMessage(b)):e?this.showConflictDialog(l,p):this.addConflictStatus(this.getErrorMessage(b),mxUtils.bind(this,function(){this.ui.editor.setStatus(mxUtils.htmlEntities(mxResources.get("updatingDocument"))); this.synchronizeFile(f,c)}))};DrawioFile.prototype.getErrorMessage=function(b){var e=null!=b?null!=b.error?b.error.message:b.message:null;null==e&&null!=b&&b.code==App.ERROR_TIMEOUT?e=mxResources.get("timeout"):"0"==e&&(e=mxResources.get("noResponse"));return e};DrawioFile.prototype.isOverdue=function(){return null!=this.ageStart&&Date.now()-this.ageStart.getTime()>=this.ui.warnInterval}; DrawioFile.prototype.compressionChanged=function(b){var e=null!=this.ownPages?this.ownPages:this.ui.pages;if(null!=e)for(var f=0;fthis.maxAutosaveRevisionDelay};DrawioFile.prototype.descriptorChanged=function(){this.fireEvent(new mxEventObject("descriptorChanged"))}; DrawioFile.prototype.contentChanged=function(){this.fireEvent(new mxEventObject("contentChanged"))};DrawioFile.prototype.close=function(b){try{this.isAutosave()&&this.isModified()&&(this.updateFileData(),this.save(this.isAutosaveRevision(),null,null,b))}catch(e){}this.stats.closed++;this.destroy()};DrawioFile.prototype.hasSameExtension=function(b,e){if(null!=b&&null!=e){var f=b.lastIndexOf(".");b=0=this.maxRetries||this.invalidChecksum||this.inConflictState?(this.inConflictState=!0,null!=c&&c()):this.retrySave(mxUtils.bind(this,function(){this.updateFileData();this.saveFile(b,e,f,c,l+1)}))}),c)):p()}),c)}),c)}else null!=f&&f();EditorUi.debug("StorageFile.saveFile",[this],"title",b,"revision",e,"retry",l)}; +StorageFile.prototype.saveFile=function(b,e,f,c,l){l=null!=l?l:0;if(this.isEditable()){var p=mxUtils.bind(this,function(){this.writeFile(b,f,c)});this.isRenamable()&&"."==b.charAt(0)&&null!=c?c({message:mxResources.get("invalidName")}):this instanceof StorageLibrary?p():StorageFile.getFileInfo(this.ui,b,mxUtils.bind(this,function(q){this.isRenamable()&&this.getTitle()!=b&&null!=q?this.ui.confirm(mxResources.get("replaceIt",[b]),p,c):this.getLatestVersion(mxUtils.bind(this,function(v){v.getDescriptor()!= +this.getDescriptor()?(EditorUi.debug("StorageFile.saveFile",[this],"conflict",[v]),this.mergeFile(v,mxUtils.bind(this,function(){l>=this.maxRetries||this.invalidChecksum||this.inConflictState?(this.inConflictState=!0,null!=c&&c()):this.retrySave(mxUtils.bind(this,function(){this.updateFileData();this.saveFile(b,e,f,c,l+1)}))}),c)):p()}),c)}),c)}else null!=f&&f();EditorUi.debug("StorageFile.saveFile",[this],"title",b,"revision",e,"retry",l)}; StorageFile.prototype.retrySave=function(b){var e=300+300*Math.random();window.setTimeout(b,e);EditorUi.debug("StorageFile.retrySave",[this],"delay",e)}; StorageFile.prototype.writeFile=function(b,e,f){this.isRenamable()&&(this.title=b);try{var c=this.getDescriptor(),l=this.getData(),p=mxUtils.bind(this,function(){this.setModified(this.getShadowModified());this.setDescriptor(this.getEtag(l));this.contentChanged();this.fileSaved(l,c,e,f)});this.setShadowModified(!1);this.ui.setDatabaseItem(null,[{title:this.title,size:l.length,lastModified:Date.now(),type:this.type},{title:this.title,data:l}],p,mxUtils.bind(this,function(){if(null==this.ui.database)try{this.ui.setLocalData(this.title, -l,p)}catch(v){null!=f&&f(v)}else null!=f&&f()}),["filesInfo","files"])}catch(v){null!=f&&f(v)}};StorageFile.prototype.rename=function(b,e,f){var c=this.getTitle();c!=b?StorageFile.getFileInfo(this.ui,b,mxUtils.bind(this,function(l){var p=mxUtils.bind(this,function(){this.title=b;this.hasSameExtension(c,b)||this.setData(this.ui.getFileData());this.saveFile(b,!1,mxUtils.bind(this,function(){this.ui.removeLocalData(c,e)}),f)});null!=l?this.ui.confirm(mxResources.get("replaceIt",[b]),p,f):p()}),f):e()}; +l,p)}catch(q){null!=f&&f(q)}else null!=f&&f()}),["filesInfo","files"])}catch(q){null!=f&&f(q)}};StorageFile.prototype.rename=function(b,e,f){var c=this.getTitle();c!=b?StorageFile.getFileInfo(this.ui,b,mxUtils.bind(this,function(l){var p=mxUtils.bind(this,function(){this.title=b;this.hasSameExtension(c,b)||this.setData(this.ui.getFileData());this.saveFile(b,!1,mxUtils.bind(this,function(){this.ui.removeLocalData(c,e)}),f)});null!=l?this.ui.confirm(mxResources.get("replaceIt",[b]),p,f):p()}),f):e()}; StorageFile.prototype.getLatestVersion=function(b,e){StorageFile.getFileContent(this.ui,this.title,mxUtils.bind(this,function(f){b(new StorageFile(this.ui,f,this.title))}),e)};StorageFile.prototype.destroy=function(){DrawioFile.prototype.destroy.apply(this,arguments);null!=this.storageListener&&(mxEvent.removeListener(window,"storage",this.storageListener),this.storageListener=null)}; -StorageFile.listLocalStorageFiles=function(b){for(var e=[],f=0;f"===l.substring(0,12)),v=(null==b||"L"==b)&&""===l.substring(0,11);(p||v)&&e.push({title:c,type:p?"F":"L",size:l.length,lastModified:Date.now()})}}return e}; +StorageFile.listLocalStorageFiles=function(b){for(var e=[],f=0;f"===l.substring(0,12)),q=(null==b||"L"==b)&&""===l.substring(0,11);(p||q)&&e.push({title:c,type:p?"F":"L",size:l.length,lastModified:Date.now()})}}return e}; StorageFile.migrate=function(b){var e=StorageFile.listLocalStorageFiles();e.push({title:".scratchpad",type:"L"});var f=b.transaction(["files","filesInfo"],"readwrite");b=f.objectStore("files");f=f.objectStore("filesInfo");for(var c=0;cf&&(mxUtils.br(E),v=1);var I=document.createElement("a");I.style.overflow="hidden";I.style.display="inline-block";I.className="geBaseButton";I.style.boxSizing="border-box";I.style.fontSize="11px";I.style.position="relative";I.style.margin="4px";I.style.marginTop="8px";I.style.marginBottom="0px";I.style.padding="8px 10px 8px 10px";I.style.width="88px";I.style.height="100px";I.style.whiteSpace="nowrap";I.setAttribute("title",g);var G=document.createElement("div");G.style.textOverflow= -"ellipsis";G.style.overflow="hidden";G.style.position="absolute";G.style.bottom="8px";G.style.left="0px";G.style.right="0px";mxUtils.write(G,g);I.appendChild(G);if(null!=d){var C=document.createElement("img");C.setAttribute("src",d);C.setAttribute("border","0");C.setAttribute("align","absmiddle");C.style.width="60px";C.style.height="60px";C.style.paddingBottom="6px";I.appendChild(C)}else G.style.paddingTop="5px",G.style.whiteSpace="normal",mxClient.IS_IOS?(I.style.padding="0px 10px 20px 10px",I.style.top= -"6px"):mxClient.IS_FF&&(G.style.paddingTop="0px",G.style.marginTop="-2px");if(null!=u)for(d=0;df&&(mxUtils.br(D),q=1);var H=document.createElement("a");H.style.overflow="hidden";H.style.display="inline-block";H.className="geBaseButton";H.style.boxSizing="border-box";H.style.fontSize="11px";H.style.position="relative";H.style.margin="4px";H.style.marginTop="8px";H.style.marginBottom="0px";H.style.padding="8px 10px 8px 10px";H.style.width="88px";H.style.height="100px";H.style.whiteSpace="nowrap";H.setAttribute("title",g);var F=document.createElement("div");F.style.textOverflow= +"ellipsis";F.style.overflow="hidden";F.style.position="absolute";F.style.bottom="8px";F.style.left="0px";F.style.right="0px";mxUtils.write(F,g);H.appendChild(F);if(null!=d){var C=document.createElement("img");C.setAttribute("src",d);C.setAttribute("border","0");C.setAttribute("align","absmiddle");C.style.width="60px";C.style.height="60px";C.style.paddingBottom="6px";H.appendChild(C)}else F.style.paddingTop="5px",F.style.whiteSpace="normal",mxClient.IS_IOS?(H.style.padding="0px 10px 20px 10px",H.style.top= +"6px"):mxClient.IS_FF&&(F.style.paddingTop="0px",F.style.marginTop="-2px");if(null!=t)for(d=0;d '+mxResources.get("googleDriveMissingClickHere")+"",l.appendChild(H))},5E3);this.container=l},SplashDialog=function(b){var e=document.createElement("div");e.style.textAlign="center";if(mxClient.IS_CHROMEAPP||EditorUi.isElectronApp){var f=b.addLanguageMenu(e,!1,"28px");null!=f&&(f.style.bottom="24px")}var c=document.createElement("img");c.setAttribute("border","0");c.setAttribute("align","absmiddle");c.style.width= +l.appendChild(p);mxEvent.addListener(p,"click",function(){b.hideDialog();var d=Editor.useLocalStorage;b.createFile(b.defaultFilename,null,null,null,null,null,null,!0);Editor.useLocalStorage=d});mxClient.IS_SVG&&isLocalStorage&&"0"!=urlParams.gapi&&(null==document.documentMode||10<=document.documentMode)&&window.setTimeout(function(){null==b.drive&&(G.style.padding="7px",G.style.fontSize="9pt",G.style.marginTop="-14px",G.innerHTML=' '+mxResources.get("googleDriveMissingClickHere")+"",l.appendChild(G))},5E3);this.container=l},SplashDialog=function(b){var e=document.createElement("div");e.style.textAlign="center";if(mxClient.IS_CHROMEAPP||EditorUi.isElectronApp){var f=b.addLanguageMenu(e,!1,"28px");null!=f&&(f.style.bottom="24px")}var c=document.createElement("img");c.setAttribute("border","0");c.setAttribute("align","absmiddle");c.style.width= "32px";c.style.height="32px";c.style.marginRight="8px";c.style.marginTop="-4px";var l=document.createElement("div");l.style.margin="8px 0px 0px 0px";l.style.padding="18px 0px 24px 0px";f="";b.mode==App.MODE_GOOGLE?(c.src=IMAGE_PATH+"/google-drive-logo.svg",f=mxResources.get("googleDrive")):b.mode==App.MODE_DROPBOX?(c.src=IMAGE_PATH+"/dropbox-logo.svg",f=mxResources.get("dropbox")):b.mode==App.MODE_ONEDRIVE?(c.src=IMAGE_PATH+"/onedrive-logo.svg",f=mxResources.get("oneDrive")):b.mode==App.MODE_GITHUB? (c.src=IMAGE_PATH+"/github-logo.svg",f=mxResources.get("github")):b.mode==App.MODE_GITLAB?(c.src=IMAGE_PATH+"/gitlab-logo.svg",f=mxResources.get("gitlab")):b.mode==App.MODE_BROWSER?(c.src=IMAGE_PATH+"/osa_database.png",f=mxResources.get("browser")):b.mode==App.MODE_TRELLO?(c.src=IMAGE_PATH+"/trello-logo.svg",f=mxResources.get("trello")):(c.src=IMAGE_PATH+"/osa_drive-harddisk.png",l.style.paddingBottom="10px",l.style.paddingTop="30px",f=mxResources.get("device"));var p=document.createElement("button"); -p.className="geBigButton";p.style.marginBottom="8px";p.style.fontSize="18px";p.style.padding="10px";p.style.width="340px";if(mxClient.IS_CHROMEAPP||EditorUi.isElectronApp)l.style.padding="42px 0px 10px 0px",p.style.marginBottom="12px";else{l.style.border="1px solid #d3d3d3";l.style.borderWidth="1px 0px 1px 0px";var v=document.createElement("table"),t=document.createElement("tbody"),E=document.createElement("tr"),H=document.createElement("td"),B=document.createElement("td");v.setAttribute("align", -"center");H.appendChild(c);c=document.createElement("div");c.style.fontSize="22px";c.style.paddingBottom="6px";c.style.color="gray";mxUtils.write(c,f);B.style.textAlign="left";B.appendChild(c);E.appendChild(H);E.appendChild(B);t.appendChild(E);v.appendChild(t);e.appendChild(v);f=document.createElement("span");f.style.cssText="position:absolute;cursor:pointer;bottom:27px;color:gray;userSelect:none;text-align:center;left:50%;";mxUtils.setPrefixedStyle(f.style,"transform","translate(-50%,0)");mxUtils.write(f, +p.className="geBigButton";p.style.marginBottom="8px";p.style.fontSize="18px";p.style.padding="10px";p.style.width="340px";if(mxClient.IS_CHROMEAPP||EditorUi.isElectronApp)l.style.padding="42px 0px 10px 0px",p.style.marginBottom="12px";else{l.style.border="1px solid #d3d3d3";l.style.borderWidth="1px 0px 1px 0px";var q=document.createElement("table"),v=document.createElement("tbody"),D=document.createElement("tr"),G=document.createElement("td"),B=document.createElement("td");q.setAttribute("align", +"center");G.appendChild(c);c=document.createElement("div");c.style.fontSize="22px";c.style.paddingBottom="6px";c.style.color="gray";mxUtils.write(c,f);B.style.textAlign="left";B.appendChild(c);D.appendChild(G);D.appendChild(B);v.appendChild(D);q.appendChild(v);e.appendChild(q);f=document.createElement("span");f.style.cssText="position:absolute;cursor:pointer;bottom:27px;color:gray;userSelect:none;text-align:center;left:50%;";mxUtils.setPrefixedStyle(f.style,"transform","translate(-50%,0)");mxUtils.write(f, mxResources.get("changeStorage"));mxEvent.addListener(f,"click",function(){b.hideDialog(!1);b.setMode(null);b.clearMode();b.showSplash(!0)});e.appendChild(f)}mxUtils.write(p,mxResources.get("createNewDiagram"));mxEvent.addListener(p,"click",function(){b.hideDialog();b.actions.get("new").funct()});l.appendChild(p);mxUtils.br(l);p=document.createElement("button");p.className="geBigButton";p.style.marginBottom="22px";p.style.fontSize="18px";p.style.padding="10px";p.style.width="340px";mxUtils.write(p, mxResources.get("openExistingDiagram"));mxEvent.addListener(p,"click",function(){b.actions.get("open").funct()});l.appendChild(p);b.mode==App.MODE_GOOGLE?mxResources.get("googleDrive"):b.mode==App.MODE_DROPBOX?mxResources.get("dropbox"):b.mode==App.MODE_ONEDRIVE?mxResources.get("oneDrive"):b.mode==App.MODE_GITHUB?mxResources.get("github"):b.mode==App.MODE_GITLAB?mxResources.get("gitlab"):b.mode==App.MODE_TRELLO?mxResources.get("trello"):b.mode==App.MODE_DEVICE?mxResources.get("device"):b.mode==App.MODE_BROWSER&& -mxResources.get("browser");if(!mxClient.IS_CHROMEAPP&&!EditorUi.isElectronApp)if(f=function(k){p.style.marginBottom="24px";var n=document.createElement("a");n.style.display="inline-block";n.style.color="gray";n.style.cursor="pointer";n.style.marginTop="6px";mxUtils.write(n,mxResources.get("signOut"));p.style.marginBottom="16px";l.style.paddingBottom="18px";mxEvent.addListener(n,"click",function(){b.confirm(mxResources.get("areYouSure"),function(){k()})});l.appendChild(n)},b.mode==App.MODE_GOOGLE&& -null!=b.drive){var d=b.drive.getUsersList();if(0"),v.setAttribute("disabled","disabled"),g.appendChild(v);v=document.createElement("option");mxUtils.write(v,mxResources.get("addAccount"));v.value=d.length;g.appendChild(v);mxEvent.addListener(g,"change",function(){var k=g.value,n=d.length!=k;n&&b.drive.setUser(d[k]);b.drive.authorize(n,function(){b.setMode(App.MODE_GOOGLE);b.hideDialog();b.showSplash()},function(u){b.handleError(u,null,function(){b.hideDialog();b.showSplash()})},!0)});l.appendChild(g)}else f(function(){b.drive.logout()})}else b.mode!= +mxResources.get("browser");if(!mxClient.IS_CHROMEAPP&&!EditorUi.isElectronApp)if(f=function(k){p.style.marginBottom="24px";var m=document.createElement("a");m.style.display="inline-block";m.style.color="gray";m.style.cursor="pointer";m.style.marginTop="6px";mxUtils.write(m,mxResources.get("signOut"));p.style.marginBottom="16px";l.style.paddingBottom="18px";mxEvent.addListener(m,"click",function(){b.confirm(mxResources.get("areYouSure"),function(){k()})});l.appendChild(m)},b.mode==App.MODE_GOOGLE&& +null!=b.drive){var d=b.drive.getUsersList();if(0"),q.setAttribute("disabled","disabled"),g.appendChild(q);q=document.createElement("option");mxUtils.write(q,mxResources.get("addAccount"));q.value=d.length;g.appendChild(q);mxEvent.addListener(g,"change",function(){var k=g.value,m=d.length!=k;m&&b.drive.setUser(d[k]);b.drive.authorize(m,function(){b.setMode(App.MODE_GOOGLE);b.hideDialog();b.showSplash()},function(t){b.handleError(t,null,function(){b.hideDialog();b.showSplash()})},!0)});l.appendChild(g)}else f(function(){b.drive.logout()})}else b.mode!= App.MODE_ONEDRIVE||null==b.oneDrive||b.oneDrive.noLogout?b.mode==App.MODE_GITHUB&&null!=b.gitHub?f(function(){b.gitHub.logout();b.openLink("https://www.github.com/logout")}):b.mode==App.MODE_GITLAB&&null!=b.gitLab?f(function(){b.gitLab.logout();var k=document.createElement("form");k.setAttribute("method","post");k.setAttribute("action",DRAWIO_GITLAB_URL+"/users/sign_out");k.setAttribute("target","_blank");document.body.appendChild(k);k.submit();k.parentNode.removeChild(k)}):b.mode==App.MODE_TRELLO&& -null!=b.trello?b.trello.isAuthorized()&&f(function(){b.trello.logout()}):b.mode==App.MODE_DROPBOX&&null!=b.dropbox&&f(function(){b.dropbox.logout();b.openLink("https://www.dropbox.com/logout")}):f(function(){b.oneDrive.logout()});e.appendChild(l);this.container=e},EmbedDialog=function(b,e,f,c,l,p,v,t,E){v=null!=v?v:"Check out the diagram I made using @drawio";c=document.createElement("div");var H=/^https?:\/\//.test(e)||/^mailto:\/\//.test(e);null!=p?mxUtils.write(c,p):mxUtils.write(c,mxResources.get(5E5> -e.length?H?"link":"mainEmbedNotice":"preview")+":");mxUtils.br(c);p=document.createElement("div");p.style.position="absolute";p.style.top="30px";p.style.right="30px";p.style.color="gray";mxUtils.write(p,b.formatFileSize(e.length));c.appendChild(p);var B=document.createElement("textarea");B.setAttribute("autocomplete","off");B.setAttribute("autocorrect","off");B.setAttribute("autocapitalize","off");B.setAttribute("spellcheck","false");B.style.fontFamily="monospace";B.style.wordBreak="break-all";B.style.marginTop= +null!=b.trello?b.trello.isAuthorized()&&f(function(){b.trello.logout()}):b.mode==App.MODE_DROPBOX&&null!=b.dropbox&&f(function(){b.dropbox.logout();b.openLink("https://www.dropbox.com/logout")}):f(function(){b.oneDrive.logout()});e.appendChild(l);this.container=e},EmbedDialog=function(b,e,f,c,l,p,q,v,D){q=null!=q?q:"Check out the diagram I made using @drawio";c=document.createElement("div");var G=/^https?:\/\//.test(e)||/^mailto:\/\//.test(e);null!=p?mxUtils.write(c,p):mxUtils.write(c,mxResources.get(5E5> +e.length?G?"link":"mainEmbedNotice":"preview")+":");mxUtils.br(c);p=document.createElement("div");p.style.position="absolute";p.style.top="30px";p.style.right="30px";p.style.color="gray";mxUtils.write(p,b.formatFileSize(e.length));c.appendChild(p);var B=document.createElement("textarea");B.setAttribute("autocomplete","off");B.setAttribute("autocorrect","off");B.setAttribute("autocapitalize","off");B.setAttribute("spellcheck","false");B.style.fontFamily="monospace";B.style.wordBreak="break-all";B.style.marginTop= "10px";B.style.resize="none";B.style.height="150px";B.style.width="440px";B.style.border="1px solid gray";B.value=mxResources.get("updatingDocument");c.appendChild(B);mxUtils.br(c);this.init=function(){window.setTimeout(function(){5E5>e.length?(B.value=e,B.focus(),mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode?B.select():document.execCommand("selectAll",!1,null)):(B.setAttribute("readonly","true"),B.value=mxResources.get("tooLargeUseDownload"))},0)};p=document.createElement("div");p.style.position= -"absolute";p.style.bottom="36px";p.style.right="32px";var d=null;!EmbedDialog.showPreviewOption||mxIsElectron||mxClient.IS_CHROMEAPP&&!H||navigator.standalone||!(H||mxClient.IS_SVG&&(null==document.documentMode||9e.length?"preview":"openInNewWindow"),function(){var k=5E5>e.length?B.value:e;if(null!=l)l(k);else if(H)try{var n=b.openLink(k);null!=n&&(null==f||0"+mxUtils.htmlEntities(mxResources.get("preview"))+''+(""), -u.close()):b.handleError({message:mxResources.get("errorUpdatingPreview")})}}),d.className="geBtn",p.appendChild(d));if(!H||7500e.length){var g=mxUtils.button("",function(){try{var k="https://www.facebook.com/sharer.php?p[url]="+encodeURIComponent(B.value); -b.openLink(k)}catch(n){b.handleError({message:n.message||mxResources.get("drawingTooLarge")})}});t=document.createElement("img");t.setAttribute("src",Editor.facebookImage);t.setAttribute("width","18");t.setAttribute("height","18");t.setAttribute("border","0");g.appendChild(t);g.setAttribute("title",mxResources.get("facebook")+" ("+b.formatFileSize(51200)+" max)");g.style.verticalAlign="bottom";g.style.paddingTop="4px";g.style.minWidth="46px";g.className="geBtn";p.appendChild(g)}7168>e.length&&(g= -mxUtils.button("",function(){try{var k="https://twitter.com/intent/tweet?text="+encodeURIComponent(v)+"&url="+encodeURIComponent(B.value);b.openLink(k)}catch(n){b.handleError({message:n.message||mxResources.get("drawingTooLarge")})}}),t=document.createElement("img"),t.setAttribute("src",Editor.tweetImage),t.setAttribute("width","18"),t.setAttribute("height","18"),t.setAttribute("border","0"),t.style.marginBottom="5px",g.appendChild(t),g.setAttribute("title",mxResources.get("twitter")+" ("+b.formatFileSize(7168)+ -" max)"),g.style.verticalAlign="bottom",g.style.paddingTop="4px",g.style.minWidth="46px",g.className="geBtn",p.appendChild(g))}!b.isOffline()&&5E5>e.length&&(g=mxUtils.button("",function(){try{var k="mailto:?subject="+encodeURIComponent(E||b.defaultFilename)+"&body="+encodeURIComponent(B.value);b.openLink(k)}catch(n){b.handleError({message:n.message||mxResources.get("drawingTooLarge")})}}),t=document.createElement("img"),t.className="geAdaptiveAsset",t.setAttribute("src",Editor.mailImage),t.setAttribute("width", -"18"),t.setAttribute("height","18"),t.setAttribute("border","0"),t.style.marginBottom="5px",g.appendChild(t),g.style.verticalAlign="bottom",g.style.paddingTop="4px",g.style.minWidth="46px",g.className="geBtn",p.appendChild(g));t=mxUtils.button(mxResources.get("close"),function(){b.hideDialog()});p.appendChild(t);g=mxUtils.button(mxResources.get("copy"),function(){B.focus();mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode?B.select():document.execCommand("selectAll",!1,null);document.execCommand("copy"); -b.alert(mxResources.get("copiedToClipboard"))});5E5>e.length?mxClient.IS_SF||null!=document.documentMode?t.className="geBtn gePrimaryBtn":(p.appendChild(g),g.className="geBtn gePrimaryBtn",t.className="geBtn"):null!=d&&(p.appendChild(d),t.className="geBtn",d.className="geBtn gePrimaryBtn");c.appendChild(p);this.container=c};EmbedDialog.showPreviewOption=!0; -var GoogleSitesDialog=function(b,e){function f(){var U=null!=R&&null!=R.getTitle()?R.getTitle():this.defaultFilename;if(C.checked&&""!=g.value){var N="https://www.draw.io/gadget.xml?type=4&diagram="+encodeURIComponent(mxUtils.htmlEntities(g.value));null!=U&&(N+="&title="+encodeURIComponent(U));0e.length?"preview":"openInNewWindow"),function(){var k=5E5>e.length?B.value:e;if(null!=l)l(k);else if(G)try{var m=b.openLink(k);null!=m&&(null==f||0"+mxUtils.htmlEntities(mxResources.get("preview"))+''+(""), +t.close()):b.handleError({message:mxResources.get("errorUpdatingPreview")})}}),d.className="geBtn",p.appendChild(d));if(!G||7500e.length){var g=mxUtils.button("",function(){try{var k="https://www.facebook.com/sharer.php?p[url]="+encodeURIComponent(B.value); +b.openLink(k)}catch(m){b.handleError({message:m.message||mxResources.get("drawingTooLarge")})}});v=document.createElement("img");v.setAttribute("src",Editor.facebookImage);v.setAttribute("width","18");v.setAttribute("height","18");v.setAttribute("border","0");g.appendChild(v);g.setAttribute("title",mxResources.get("facebook")+" ("+b.formatFileSize(51200)+" max)");g.style.verticalAlign="bottom";g.style.paddingTop="4px";g.style.minWidth="46px";g.className="geBtn";p.appendChild(g)}7168>e.length&&(g= +mxUtils.button("",function(){try{var k="https://twitter.com/intent/tweet?text="+encodeURIComponent(q)+"&url="+encodeURIComponent(B.value);b.openLink(k)}catch(m){b.handleError({message:m.message||mxResources.get("drawingTooLarge")})}}),v=document.createElement("img"),v.setAttribute("src",Editor.tweetImage),v.setAttribute("width","18"),v.setAttribute("height","18"),v.setAttribute("border","0"),v.style.marginBottom="5px",g.appendChild(v),g.setAttribute("title",mxResources.get("twitter")+" ("+b.formatFileSize(7168)+ +" max)"),g.style.verticalAlign="bottom",g.style.paddingTop="4px",g.style.minWidth="46px",g.className="geBtn",p.appendChild(g))}!b.isOffline()&&5E5>e.length&&(g=mxUtils.button("",function(){try{var k="mailto:?subject="+encodeURIComponent(D||b.defaultFilename)+"&body="+encodeURIComponent(B.value);b.openLink(k)}catch(m){b.handleError({message:m.message||mxResources.get("drawingTooLarge")})}}),v=document.createElement("img"),v.className="geAdaptiveAsset",v.setAttribute("src",Editor.mailImage),v.setAttribute("width", +"18"),v.setAttribute("height","18"),v.setAttribute("border","0"),v.style.marginBottom="5px",g.appendChild(v),g.style.verticalAlign="bottom",g.style.paddingTop="4px",g.style.minWidth="46px",g.className="geBtn",p.appendChild(g));v=mxUtils.button(mxResources.get("close"),function(){b.hideDialog()});p.appendChild(v);g=mxUtils.button(mxResources.get("copy"),function(){B.focus();mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode?B.select():document.execCommand("selectAll",!1,null);document.execCommand("copy"); +b.alert(mxResources.get("copiedToClipboard"))});5E5>e.length?mxClient.IS_SF||null!=document.documentMode?v.className="geBtn gePrimaryBtn":(p.appendChild(g),g.className="geBtn gePrimaryBtn",v.className="geBtn"):null!=d&&(p.appendChild(d),v.className="geBtn",d.className="geBtn gePrimaryBtn");c.appendChild(p);this.container=c};EmbedDialog.showPreviewOption=!0; +var GoogleSitesDialog=function(b,e){function f(){var V=null!=T&&null!=T.getTitle()?T.getTitle():this.defaultFilename;if(C.checked&&""!=g.value){var O="https://www.draw.io/gadget.xml?type=4&diagram="+encodeURIComponent(mxUtils.htmlEntities(g.value));null!=V&&(O+="&title="+encodeURIComponent(V));0 Bob: Authentication Request\nBob --\x3e Alice: Authentication Response\n\nAlice -> Bob: Another authentication Request\nAlice <-- Bob: Another authentication Response\n@enduml"==k&&"svg"==G?window.setTimeout(function(){b.spinner.stop();A(k,G,"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiBjb250ZW50U2NyaXB0VHlwZT0iYXBwbGljYXRpb24vZWNtYXNjcmlwdCIgY29udGVudFN0eWxlVHlwZT0idGV4dC9jc3MiIGhlaWdodD0iMjEycHgiIHByZXNlcnZlQXNwZWN0UmF0aW89Im5vbmUiIHN0eWxlPSJ3aWR0aDoyOTVweDtoZWlnaHQ6MjEycHg7IiB2ZXJzaW9uPSIxLjEiIHZpZXdCb3g9IjAgMCAyOTUgMjEyIiB3aWR0aD0iMjk1cHgiIHpvb21BbmRQYW49Im1hZ25pZnkiPjxkZWZzLz48Zz48bGluZSBzdHlsZT0ic3Ryb2tlOiAjQTgwMDM2OyBzdHJva2Utd2lkdGg6IDEuMDsgc3Ryb2tlLWRhc2hhcnJheTogNS4wLDUuMDsiIHgxPSIzMSIgeDI9IjMxIiB5MT0iMzQuNDg4MyIgeTI9IjE3MS43MzA1Ii8+PGxpbmUgc3R5bGU9InN0cm9rZTogI0E4MDAzNjsgc3Ryb2tlLXdpZHRoOiAxLjA7IHN0cm9rZS1kYXNoYXJyYXk6IDUuMCw1LjA7IiB4MT0iMjY0LjUiIHgyPSIyNjQuNSIgeTE9IjM0LjQ4ODMiIHkyPSIxNzEuNzMwNSIvPjxyZWN0IGZpbGw9IiNGRUZFQ0UiIGhlaWdodD0iMzAuNDg4MyIgc3R5bGU9InN0cm9rZTogI0E4MDAzNjsgc3Ryb2tlLXdpZHRoOiAxLjU7IiB3aWR0aD0iNDciIHg9IjgiIHk9IjMiLz48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0ic2Fucy1zZXJpZiIgZm9udC1zaXplPSIxNCIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nQW5kR2x5cGhzIiB0ZXh0TGVuZ3RoPSIzMyIgeD0iMTUiIHk9IjIzLjUzNTIiPkFsaWNlPC90ZXh0PjxyZWN0IGZpbGw9IiNGRUZFQ0UiIGhlaWdodD0iMzAuNDg4MyIgc3R5bGU9InN0cm9rZTogI0E4MDAzNjsgc3Ryb2tlLXdpZHRoOiAxLjU7IiB3aWR0aD0iNDciIHg9IjgiIHk9IjE3MC43MzA1Ii8+PHRleHQgZmlsbD0iIzAwMDAwMCIgZm9udC1mYW1pbHk9InNhbnMtc2VyaWYiIGZvbnQtc2l6ZT0iMTQiIGxlbmd0aEFkanVzdD0ic3BhY2luZ0FuZEdseXBocyIgdGV4dExlbmd0aD0iMzMiIHg9IjE1IiB5PSIxOTEuMjY1NiI+QWxpY2U8L3RleHQ+PHJlY3QgZmlsbD0iI0ZFRkVDRSIgaGVpZ2h0PSIzMC40ODgzIiBzdHlsZT0ic3Ryb2tlOiAjQTgwMDM2OyBzdHJva2Utd2lkdGg6IDEuNTsiIHdpZHRoPSI0MCIgeD0iMjQ0LjUiIHk9IjMiLz48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0ic2Fucy1zZXJpZiIgZm9udC1zaXplPSIxNCIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nQW5kR2x5cGhzIiB0ZXh0TGVuZ3RoPSIyNiIgeD0iMjUxLjUiIHk9IjIzLjUzNTIiPkJvYjwvdGV4dD48cmVjdCBmaWxsPSIjRkVGRUNFIiBoZWlnaHQ9IjMwLjQ4ODMiIHN0eWxlPSJzdHJva2U6ICNBODAwMzY7IHN0cm9rZS13aWR0aDogMS41OyIgd2lkdGg9IjQwIiB4PSIyNDQuNSIgeT0iMTcwLjczMDUiLz48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0ic2Fucy1zZXJpZiIgZm9udC1zaXplPSIxNCIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nQW5kR2x5cGhzIiB0ZXh0TGVuZ3RoPSIyNiIgeD0iMjUxLjUiIHk9IjE5MS4yNjU2Ij5Cb2I8L3RleHQ+PHBvbHlnb24gZmlsbD0iI0E4MDAzNiIgcG9pbnRzPSIyNTIuNSw2MS43OTg4LDI2Mi41LDY1Ljc5ODgsMjUyLjUsNjkuNzk4OCwyNTYuNSw2NS43OTg4IiBzdHlsZT0ic3Ryb2tlOiAjQTgwMDM2OyBzdHJva2Utd2lkdGg6IDEuMDsiLz48bGluZSBzdHlsZT0ic3Ryb2tlOiAjQTgwMDM2OyBzdHJva2Utd2lkdGg6IDEuMDsiIHgxPSIzMS41IiB4Mj0iMjU4LjUiIHkxPSI2NS43OTg4IiB5Mj0iNjUuNzk4OCIvPjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJzYW5zLXNlcmlmIiBmb250LXNpemU9IjEzIiBsZW5ndGhBZGp1c3Q9InNwYWNpbmdBbmRHbHlwaHMiIHRleHRMZW5ndGg9IjE0NyIgeD0iMzguNSIgeT0iNjEuMDU2NiI+QXV0aGVudGljYXRpb24gUmVxdWVzdDwvdGV4dD48cG9seWdvbiBmaWxsPSIjQTgwMDM2IiBwb2ludHM9IjQyLjUsOTEuMTA5NCwzMi41LDk1LjEwOTQsNDIuNSw5OS4xMDk0LDM4LjUsOTUuMTA5NCIgc3R5bGU9InN0cm9rZTogI0E4MDAzNjsgc3Ryb2tlLXdpZHRoOiAxLjA7Ii8+PGxpbmUgc3R5bGU9InN0cm9rZTogI0E4MDAzNjsgc3Ryb2tlLXdpZHRoOiAxLjA7IHN0cm9rZS1kYXNoYXJyYXk6IDIuMCwyLjA7IiB4MT0iMzYuNSIgeDI9IjI2My41IiB5MT0iOTUuMTA5NCIgeTI9Ijk1LjEwOTQiLz48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0ic2Fucy1zZXJpZiIgZm9udC1zaXplPSIxMyIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nQW5kR2x5cGhzIiB0ZXh0TGVuZ3RoPSIxNTciIHg9IjQ4LjUiIHk9IjkwLjM2NzIiPkF1dGhlbnRpY2F0aW9uIFJlc3BvbnNlPC90ZXh0Pjxwb2x5Z29uIGZpbGw9IiNBODAwMzYiIHBvaW50cz0iMjUyLjUsMTIwLjQxOTksMjYyLjUsMTI0LjQxOTksMjUyLjUsMTI4LjQxOTksMjU2LjUsMTI0LjQxOTkiIHN0eWxlPSJzdHJva2U6ICNBODAwMzY7IHN0cm9rZS13aWR0aDogMS4wOyIvPjxsaW5lIHN0eWxlPSJzdHJva2U6ICNBODAwMzY7IHN0cm9rZS13aWR0aDogMS4wOyIgeDE9IjMxLjUiIHgyPSIyNTguNSIgeTE9IjEyNC40MTk5IiB5Mj0iMTI0LjQxOTkiLz48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0ic2Fucy1zZXJpZiIgZm9udC1zaXplPSIxMyIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nQW5kR2x5cGhzIiB0ZXh0TGVuZ3RoPSIxOTkiIHg9IjM4LjUiIHk9IjExOS42Nzc3Ij5Bbm90aGVyIGF1dGhlbnRpY2F0aW9uIFJlcXVlc3Q8L3RleHQ+PHBvbHlnb24gZmlsbD0iI0E4MDAzNiIgcG9pbnRzPSI0Mi41LDE0OS43MzA1LDMyLjUsMTUzLjczMDUsNDIuNSwxNTcuNzMwNSwzOC41LDE1My43MzA1IiBzdHlsZT0ic3Ryb2tlOiAjQTgwMDM2OyBzdHJva2Utd2lkdGg6IDEuMDsiLz48bGluZSBzdHlsZT0ic3Ryb2tlOiAjQTgwMDM2OyBzdHJva2Utd2lkdGg6IDEuMDsgc3Ryb2tlLWRhc2hhcnJheTogMi4wLDIuMDsiIHgxPSIzNi41IiB4Mj0iMjYzLjUiIHkxPSIxNTMuNzMwNSIgeTI9IjE1My43MzA1Ii8+PHRleHQgZmlsbD0iIzAwMDAwMCIgZm9udC1mYW1pbHk9InNhbnMtc2VyaWYiIGZvbnQtc2l6ZT0iMTMiIGxlbmd0aEFkanVzdD0ic3BhY2luZ0FuZEdseXBocyIgdGV4dExlbmd0aD0iMjA5IiB4PSI0OC41IiB5PSIxNDguOTg4MyI+QW5vdGhlciBhdXRoZW50aWNhdGlvbiBSZXNwb25zZTwvdGV4dD48IS0tTUQ1PVs3ZjNlNGQwYzkwMWVmZGJjNTdlYjQ0MjQ5YTNiODE5N10KQHN0YXJ0dW1sDQpza2lucGFyYW0gc2hhZG93aW5nIGZhbHNlDQpBbGljZSAtPiBCb2I6IEF1dGhlbnRpY2F0aW9uIFJlcXVlc3QNCkJvYiAtIC0+IEFsaWNlOiBBdXRoZW50aWNhdGlvbiBSZXNwb25zZQ0KDQpBbGljZSAtPiBCb2I6IEFub3RoZXIgYXV0aGVudGljYXRpb24gUmVxdWVzdA0KQWxpY2UgPC0gLSBCb2I6IEFub3RoZXIgYXV0aGVudGljYXRpb24gUmVzcG9uc2UNCkBlbmR1bWwNCgpQbGFudFVNTCB2ZXJzaW9uIDEuMjAyMC4wMihTdW4gTWFyIDAxIDA0OjIyOjA3IENTVCAyMDIwKQooTUlUIHNvdXJjZSBkaXN0cmlidXRpb24pCkphdmEgUnVudGltZTogT3BlbkpESyBSdW50aW1lIEVudmlyb25tZW50CkpWTTogT3BlbkpESyA2NC1CaXQgU2VydmVyIFZNCkphdmEgVmVyc2lvbjogMTIrMzMKT3BlcmF0aW5nIFN5c3RlbTogTWFjIE9TIFgKRGVmYXVsdCBFbmNvZGluZzogVVRGLTgKTGFuZ3VhZ2U6IGVuCkNvdW50cnk6IFVTCi0tPjwvZz48L3N2Zz4=", -295,212)},200):b.generatePlantUmlImage(k,G,function(K,m,z){b.spinner.stop();A(k,G,K,m,z)},function(K){b.handleError(K)})}}else if("mermaid"==n||"mermaid2drawio"==n){if(b.spinner.spin(document.body,mxResources.get("inserting"))){for(var C=0;C");2<=L.length&&(q=y(L[0]),D=y(L[L.length-1]),L=new mxCell(2 Bob: Authentication Request\nBob --\x3e Alice: Authentication Response\n\nAlice -> Bob: Another authentication Request\nAlice <-- Bob: Another authentication Response\n@enduml": -"plantUmlSvg"==t.value||"plantUmlTxt"==t.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 p=b.editor.graph.getFreeInsertPoint();e=document.createElement("div");e.style.textAlign="right";var v=document.createElement("textarea");v.style.boxSizing="border-box";v.style.resize= -"none";v.style.width="100%";v.style.height="354px";v.style.marginBottom="16px";var t=document.createElement("select");t.className="geBtn";if("formatSql"==f||"mermaid"==f&&"draw.io"!=b.getServiceName()&&"atlassian"!=b.getServiceName())t.style.display="none";var E=document.createElement("option");E.setAttribute("value","list");mxUtils.write(E,mxResources.get("list"));"plantUml"!=f&&"mermaid"!=f&&t.appendChild(E);null!=f&&"fromText"!=f||E.setAttribute("selected","selected");E=document.createElement("option"); -E.setAttribute("value","table");mxUtils.write(E,mxResources.get("formatSql"));"formatSql"==f&&(t.appendChild(E),E.setAttribute("selected","selected"));E=document.createElement("option");E.setAttribute("value","mermaid");mxUtils.write(E,mxResources.get("image"));if("mermaid"==f)if("undefined"!==typeof mxMermaidToDrawio){var H=document.createElement("option");H.setAttribute("value","mermaid2drawio");H.setAttribute("selected","selected");mxUtils.write(H,mxResources.get("diagram"));t.appendChild(H)}else t.style.display= -"none";t.appendChild(E);E=document.createElement("option");E.setAttribute("value","diagram");mxUtils.write(E,mxResources.get("diagram"));H=document.createElement("option");H.setAttribute("value","circle");mxUtils.write(H,mxResources.get("circle"));var B=document.createElement("option");B.setAttribute("value","horizontalFlow");mxUtils.write(B,mxResources.get("horizontalFlow"));var d=document.createElement("option");d.setAttribute("value","verticalFlow");mxUtils.write(d,mxResources.get("verticalFlow")); -"plantUml"!=f&&"mermaid"!=f&&(t.appendChild(E),t.appendChild(H),t.appendChild(B),t.appendChild(d));E=document.createElement("option");E.setAttribute("value","plantUmlSvg");mxUtils.write(E,mxResources.get("plantUml")+" ("+mxResources.get("formatSvg")+")");"plantUml"==f&&E.setAttribute("selected","selected");H=document.createElement("option");H.setAttribute("value","plantUmlPng");mxUtils.write(H,mxResources.get("plantUml")+" ("+mxResources.get("formatPng")+")");B=document.createElement("option");B.setAttribute("value", -"plantUmlTxt");mxUtils.write(B,mxResources.get("plantUml")+" ("+mxResources.get("text")+")");EditorUi.enablePlantUml&&Graph.fileSupport&&!b.isOffline()&&"plantUml"==f&&(t.appendChild(E),t.appendChild(H),t.appendChild(B));var g=l();v.value=g;e.appendChild(v);this.init=function(){v.focus()};Graph.fileSupport&&(v.addEventListener("dragover",function(k){k.stopPropagation();k.preventDefault()},!1),v.addEventListener("drop",function(k){k.stopPropagation();k.preventDefault();if(0PlantUML is deprecated',e.appendChild(E));e.appendChild(t);mxEvent.addListener(t, -"change",function(){var k=l();if(0==v.value.length||v.value==g)g=k,v.value=g});b.isOffline()||"mermaid"!=f&&"plantUml"!=f||(E=mxUtils.button(mxResources.get("help"),function(){b.openLink("mermaid"==f?"https://mermaid-js.github.io/mermaid/#/":"https://plantuml.com/")}),E.className="geBtn",e.appendChild(E));E=mxUtils.button(mxResources.get("close"),function(){v.value==g?b.hideDialog():b.confirm(mxResources.get("areYouSure"),function(){b.hideDialog()})});E.className="geBtn";b.editor.cancelFirst&&e.appendChild(E); -H=mxUtils.button(mxResources.get("insert"),function(k){try{b.hideDialog(),c(v.value,t.value,k)}catch(n){b.handleError(n)}});H.className="geBtn gePrimaryBtn";e.appendChild(H);b.editor.cancelFirst||e.appendChild(E);this.container=e},NewDialog=function(b,e,f,c,l,p,v,t,E,H,B,d,g,k,n,u,x,A,I){function G(ka){null!=ka&&(la=Ea=ka?135:140);ka=!0;if(null!=Wa)for(;m"; -if(Xa||"undefined"===typeof mxMermaidToDrawio)ya=fa=Oa;Oa=M.cloneNode(!0);ra.appendChild(Oa);Ha=function(gb){S=null!=b.sidebar.tooltip&&"none"!=b.sidebar.tooltip.style.display};bb=function(gb){S||C(hb,mxEvent.getClientX(gb),mxEvent.getClientY(gb),Ya,Na)};mxEvent.addGestureListeners(Ya,Ha,null,bb);mxEvent.addGestureListeners(Oa,Ha,null,bb)},function(Oa){b.spinner.stop();null!=mxMermaidToDrawio.resetListeners&&mxMermaidToDrawio.resetListeners();b.handleError(Oa)})});La.setAttribute("disabled","disabled"); -La.className="geBtn gePrimaryBtn";ta=function(){window.setTimeout(function(){""!=qa.value?La.removeAttribute("disabled"):La.setAttribute("disabled","disabled")},0)};wa=urlParams["smart-template"];null!=wa&&"1"!=wa&&(qa.value=decodeURIComponent(wa),ta(),"1"==urlParams["smart-template-generate"]&&window.setTimeout(function(){La.click()},0));mxEvent.addListener(qa,"change",ta);mxEvent.addListener(qa,"keydown",ta);mxEvent.addListener(qa,"cut",ta);mxEvent.addListener(qa,"paste",ta);mxEvent.addListener(qa, -"keydown",function(Pa){13==Pa.keyCode&&La.click()});ta=document.createElement("div");ta.style.height="40px";ta.style.marginTop="4px";ta.style.marginBottom="4px";ta.style.whiteSpace="nowrap";ta.style.overflowX="auto";ta.style.overflowY="hidden";ta.appendChild(pa);ta.appendChild(La);ka.appendChild(ta);ka.appendChild(ra);return ka}function R(){if(ja&&null!=k)f||b.hideDialog(),k(ja,ea,K.value);else if(c)f||b.hideDialog(),c(fa,K.value,ha,ia);else{var ka=K.value;if(null!=ka&&0=eb.getStatus()&&(bb=eb.getText());db(bb,Za)}))):db(bb,Za)}function Oa(Sa,db){if(null==ka||O||b.sidebar.currentElt==Ha)b.sidebar.hideTooltip();else if(b.sidebar.hideTooltip(),null!=Q){var eb= -""+Graph.compress('')+"";C(eb,mxEvent.getClientX(Sa),mxEvent.getClientY(Sa),ra,ka)}else b.sidebar.currentElt=Ha,O=!0,Na(ka,function(jb){if(O&&b.sidebar.currentElt==Ha)try{C(jb,mxEvent.getClientX(Sa), -mxEvent.getClientY(Sa),Ha,db)}catch(kb){b.sidebar.currentElt=null,b.handleError(kb)}O=!1})}var Ha=null;if("generative"!=Xa||null==va){Ha=document.createElement("div");Ha.className="geTemplate";var bb=null,Za=ka;null!=ra?Ha.setAttribute("title",mxResources.get(ra,null,ra)):null!=ta&&0= -na.scrollHeight&&(G(),mxEvent.consume(Na))}));if(0(window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth);f=null!=f?f:!0;l=null!=l?l:!1;v=null!=v?v:"light-dark(#ebf2f9, "+Editor.darkColor+")";B=null!=B?B:EditorUi.templateFile;var J=document.createElement("div");J.style.userSelect="none";J.style.height="100%";E=document.createElement("div");E.style.whiteSpace="nowrap";E.style.height="46px";f&&J.appendChild(E);var L=document.createElement("img");L.setAttribute("border","0");L.setAttribute("align","absmiddle");L.style.width= -"40px";L.style.height="40px";L.style.marginRight="10px";L.style.paddingBottom="4px";L.src=b.mode==App.MODE_GOOGLE?IMAGE_PATH+"/google-drive-logo.svg":b.mode==App.MODE_DROPBOX?IMAGE_PATH+"/dropbox-logo.svg":b.mode==App.MODE_ONEDRIVE?IMAGE_PATH+"/onedrive-logo.svg":b.mode==App.MODE_GITHUB?IMAGE_PATH+"/github-logo.svg":b.mode==App.MODE_GITLAB?IMAGE_PATH+"/gitlab-logo.svg":b.mode==App.MODE_TRELLO?IMAGE_PATH+"/trello-logo.svg":b.mode==App.MODE_BROWSER?IMAGE_PATH+"/osa_database.png":IMAGE_PATH+"/osa_drive-harddisk.png"; -e||t||!f||E.appendChild(L);f&&mxUtils.write(E,(t?mxResources.get("name"):null==b.mode||b.mode==App.MODE_GOOGLE||b.mode==App.MODE_BROWSER?mxResources.get("diagramName"):mxResources.get("filename"))+":");L=".drawio";b.mode==App.MODE_GOOGLE&&null!=b.drive?L=b.drive.extension:b.mode==App.MODE_DROPBOX&&null!=b.dropbox?L=b.dropbox.extension:b.mode==App.MODE_ONEDRIVE&&null!=b.oneDrive?L=b.oneDrive.extension:b.mode==App.MODE_GITHUB&&null!=b.gitHub?L=b.gitHub.extension:b.mode==App.MODE_GITLAB&&null!=b.gitLab? -L=b.gitLab.extension:b.mode==App.MODE_TRELLO&&null!=b.trello&&(L=b.trello.extension);var K=document.createElement("input");K.setAttribute("value",b.defaultFilename+L);K.style.marginLeft="10px";K.style.width=e||t?"144px":"244px";this.init=function(){f&&Editor.selectFilename(K);null!=na.parentNode&&null!=na.parentNode.parentNode&&mxEvent.addGestureListeners(na.parentNode.parentNode,mxUtils.bind(this,function(ka){null!=b.sidebar&&b.sidebar.hideTooltip()}),null,null)};f&&(E.appendChild(K),A?K.style.width= -e||t?"350px":"450px":null!=b.editor.diagramFileTypes&&(A=FilenameDialog.createFileTypes(b,K,b.editor.diagramFileTypes),A.style.marginLeft="6px",A.style.width=e||t?"80px":"180px",E.appendChild(A)));A=!1;var m=0,z=new Spinner({lines:12,length:10,width:5,radius:10,rotate:0,color:"light-dark(#000000, #C0C0C0)",speed:1.5,trail:60,shadow:!1,hwaccel:!1,top:"40%",zIndex:2E9}),F=mxUtils.button(u||mxResources.get("create"),function(){F.setAttribute("disabled","disabled");R();F.removeAttribute("disabled")}); -F.className="geBtn gePrimaryBtn";var M=document.createElement("img");M.setAttribute("src",Editor.magnifyImage);M.setAttribute("title",mxResources.get("preview"));M.className="geButton geRoundButton";var O=!1,Q=null,S=!1;if(d||g){var T=[],W=null,X=null,Z=null,Y=function(ka){F.setAttribute("disabled","disabled");for(var qa=0;qa";C(qa,mxEvent.getClientX(ka),mxEvent.getClientY(ka),va,ua)}});var Aa=M.cloneNode(!0);Aa.setAttribute("src",Editor.editImage);Aa.setAttribute("title",mxResources.get("edit"));Aa.style.visibility="hidden";Aa.style.left="0px";u=M.cloneNode(!0);u.setAttribute("src",Editor.helpImage);u.setAttribute("title",mxResources.get("help"));mxEvent.addListener(u,"click",function(ka){b.openLink("https://www.drawio.com/blog/write-query-generate-diagram");mxEvent.consume(ka)});xa.appendChild(Ba); -xa.appendChild(Ka);xa.appendChild(u);xa.style.display="none";mxEvent.addListener(Aa,"click",N);mxEvent.addListener(Ba,"input",function(){""!=Ba.value?Ka.removeAttribute("disabled"):Ka.setAttribute("disabled","disabled")});mxEvent.addListener(Ka,"click",function(){q()});mxEvent.addListener(Ba,"keydown",function(ka){13!=ka.keyCode||mxEvent.isShiftDown(ka)?27==ka.keyCode&&(q(!0),mxEvent.consume(ka)):(q(),mxEvent.consume(ka))});var Ma={},Va={},Ua={},fb=0,cb=!0,Ta=null,$a=null;Ma.basic=[{title:"blankDiagram"}]; -var Wa=Ma.basic;Editor.enableChatGpt&&b.isExternalDataComms()&&"draw.io"==b.getServiceName()&&"undefined"!==typeof mxMermaidToDrawio&&window.isMermaidEnabled&&Ma.basic.push({title:"generate",type:"generative"});Editor.enableChatGpt&&b.isExternalDataComms()&&"draw.io"==b.getServiceName()&&"undefined"!==typeof mxMermaidToDrawio&&window.isMermaidEnabled&&(Ma.smartTemplate={content:P()});if(!e){var ab=function(){mxUtils.get(Ra,function(ka){if(!ib){ib=!0;ka=ka.getXml().documentElement.firstChild;for(var qa= -{};null!=ka;){if("undefined"!==typeof ka.getAttribute)if("parsererror"==ka.nodeName)null!=window.console&&console.log("Parser error in "+B+": "+ka.textContent);else if("clibs"==ka.nodeName){for(var ra=ka.getAttribute("name"),ta=ka.getElementsByTagName("add"),pa=[],wa=0;wamxUtils.indexOf(c,D)){m=null!=m?m:b.getTitleForService(D);var M=0<=mxUtils.indexOf(U,D);if(M||null!=b.getServiceForName(D)){F=document.createElement("option");var O="";!M&&b.isOffline()&&(F.setAttribute("disabled","disabled"),O=" ("+mxResources.get("offline")+")");if("pick"==z)F.innerHTML=mxUtils.htmlEntities(m)+"  –  "+mxUtils.htmlEntities(mxResources.get("pickFolder"))+"..."+O,F.setAttribute("value", -"pickFolder-"+D),F.setAttribute("title",m+" - "+mxResources.get("pickFolder")+"...");else{M=D+(null!=L?"-"+L:"");var Q=q[M];null!=Q&&null!=Q.option&&Q.option.parentNode.removeChild(Q.option);Q=null;if(null!=J){"/"==J.charAt(J.length-1)&&(J=J.substring(0,J.length-1));"/"==J.charAt(0)&&(J=J.substring(1));Q=J;if(D!=App.MODE_GITHUB&&D==App.MODE_GITLAB){var S=Q.lastIndexOf("/");0<=S&&(Q=Q.substring(S+1))}40P.selectedIndex&&(P.selectedIndex=L))},!0,!0,!0,!0)}function B(){var D=b.getRecent("Folders"),J=0;if(null!=D&&0e.indexOf(".")&&0>J.indexOf(".")&&(G.value=J+D)}y.innerHTML="";mxUtils.write(y,mxResources.get("download"==P.value||"_blank"==P.value?"ok":"save"));""==P.value?y.setAttribute("disabled", -"disabled"):y.removeAttribute("disabled")}var g=document.createElement("div");g.style.display="flex";g.style.flexWrap="wrap";g.style.whiteSpace="nowrap";var k=document.createElement("div");k.style.display="grid";k.style.gap="5px 8px";k.style.gridAutoRows="auto auto 44px";k.style.gridAutoColumns="0fr minmax(0,1fr)";k.style.width="100%";var n=null,u=null;if(null!=l&&null!=p&&"image/"==p.substring(0,6)&&("image/svg"!=p.substring(0,9)||mxClient.IS_SVG)){k.style.display="inline-grid";k.style.flexBasis= -"75%";n=document.createElement("div");n.style.display="inline-block";n.style.height="auto";n.style.maxWidth="25%";n.style.margin="auto";var x=document.createElement("img"),A=v?l:btoa(unescape(encodeURIComponent(l)));x.setAttribute("src","data:"+p+";base64,"+A);x.style.boxSizing="border-box";x.style.maxHeight="50px";x.style.maxWidth="100%";x.style.paddingLeft="10px";n.appendChild(x);mxClient.IS_FF||"image/png"!=p||null==navigator.clipboard||"function"!==typeof window.ClipboardItem||(u=mxUtils.button(mxResources.get("copy"), -function(){var D=b.base64ToBlob(A,"image/png");D=new ClipboardItem({"image/png":D,"text/html":new Blob([''],{type:"text/html"})});navigator.clipboard.write([D]).then(mxUtils.bind(this,function(){b.alert(mxResources.get("copiedToClipboard"))}))["catch"](mxUtils.bind(this,function(J){b.handleError(J)}))},null,"geBtn"));Editor.popupsAllowed&&(null==c||0>mxUtils.indexOf(c,"_blank"))?(n.setAttribute("title",mxResources.get("openInNewWindow")),n.style.cursor="pointer", -mxEvent.addGestureListeners(n,null,null,function(D){mxEvent.isPopupTrigger(D)||b.openInNewWindow(l,p,v)})):n.setAttribute("title",mxResources.get("preview"))}x=document.createElement("div");x.style.display="flex";x.style.padding="1px";x.style.alignItems="center";x.style.justifyContent="flex-end";x.style.gridColumn="1";x.style.whiteSpace="nowrap";var I=document.createElement("div");I.style.display="grid";I.style.padding="1px";I.style.alignItems="center";I.style.gridColumn="2";I.style.gridAutoColumns= -"minmax(0,1fr) auto";I.style.gap="6px";mxUtils.write(x,mxResources.get("saveAs")+":");var G=document.createElement("input");G.setAttribute("type","text");G.setAttribute("value",e);G.style.boxSizing="border-box";G.style.width="100%";I.appendChild(G);k.appendChild(x);k.appendChild(I);var C=null;null!=b.editor.diagramFileTypes&&null==p&&(x=x.cloneNode(!1),I=I.cloneNode(!1),mxUtils.write(x,mxResources.get("type")+":"),C=FilenameDialog.createFileTypes(b,G,b.editor.diagramFileTypes),C.style.boxSizing="border-box", -C.style.width="100%",I.appendChild(C),k.appendChild(x),k.appendChild(I));x=x.cloneNode(!1);I=I.cloneNode(!1);mxUtils.write(x,mxResources.get("where")+":");var P=document.createElement("select");P.style.textOverflow="ellipsis";P.style.gridColumn="1";var R=document.createElement("option");mxUtils.write(R,mxResources.get("reset"));R.setAttribute("value","reset");var U=["browser","device","download","_blank"],N=document.createElement("option");N.setAttribute("disabled","disabled");N.innerHTML="-----------------"; -var V=null,q={},y=mxUtils.button(mxResources.get("save"),function(){SaveDialog.lastValue=P.value;var D=q[SaveDialog.lastValue];null!=D&&f(G,D.mode,D.id)},null,"geBtn gePrimaryBtn");mxEvent.addListener(G,"keypress",function(D){13==D.keyCode&&y.click()});mxEvent.addListener(P,"change",d);B();d();I.appendChild(P);null!=SaveDialog.lastValue&&null!=q[SaveDialog.lastValue]&&(P.value=SaveDialog.lastValue);k.appendChild(x);k.appendChild(I);g.appendChild(k);null!=n&&g.appendChild(n);k=document.createElement("div"); -k.style.flexBasis="100%";k.style.textAlign="right";k.style.marginTop=null!=p?"16px":"8px";b.isOffline()&&!mxClient.IS_CHROMEAPP||k.appendChild(b.createHelpIcon("https://www.drawio.com/doc/faq/save-file-formats"));n=mxUtils.button(mxResources.get("cancel"),function(){b.hideDialog()},null,"geBtn");b.editor.cancelFirst&&k.appendChild(n);null!=u&&k.appendChild(u);k.appendChild(y);b.editor.cancelFirst||k.appendChild(n);g.appendChild(k);this.init=function(){Editor.selectFilename(G)};this.container=g},CreateDialog= -function(b,e,f,c,l,p,v,t,E,H,B,d,g,k,n,u,x){function A(V,q,y,D){function J(){mxEvent.addListener(L,"click",function(){var M=y;if(v){var O=C.value,Q=O.lastIndexOf(".");if(0>e.lastIndexOf(".")&&0>Q){M=null!=M?M:N.value;var S="";M==App.MODE_GOOGLE?S=b.drive.extension:M==App.MODE_GITHUB?S=b.gitHub.extension:M==App.MODE_GITLAB?S=b.gitLab.extension:M==App.MODE_TRELLO?S=b.trello.extension:M==App.MODE_DROPBOX?S=b.dropbox.extension:M==App.MODE_ONEDRIVE?S=b.oneDrive.extension:M==App.MODE_DEVICE&&(S=".drawio"); -0<=Q&&(O=O.substring(0,Q));C.value=O+S}}I(y)})}var L=document.createElement("a");L.style.overflow="hidden";var K=document.createElement("img");K.src=V;K.setAttribute("border","0");K.setAttribute("align","absmiddle");K.style.width="60px";K.style.height="60px";K.style.paddingBottom="6px";L.style.display="inline-block";L.className="geBaseButton";L.style.position="relative";L.style.margin="4px";L.style.padding="8px 8px 10px 8px";L.style.whiteSpace="nowrap";L.appendChild(K);L.style.color="gray";L.style.fontSize= -"11px";var m=document.createElement("div");L.appendChild(m);mxUtils.write(m,q);if(null!=D&&null==b[D]){K.style.visibility="hidden";mxUtils.setOpacity(m,10);var z=new Spinner({lines:12,length:12,width:5,radius:10,rotate:0,color:"light-dark(#000000, #C0C0C0)",speed:1.5,trail:60,shadow:!1,hwaccel:!1,top:"40%",zIndex:2E9});z.spin(L);var F=window.setTimeout(function(){null==b[D]&&(z.stop(),L.style.display="none")},3E4);b.addListener("clientLoaded",mxUtils.bind(this,function(){null!=b[D]&&(window.clearTimeout(F), -mxUtils.setOpacity(m,100),K.style.visibility="",z.stop(),J())}))}else J();R.appendChild(L);++U==d&&(mxUtils.br(R),U=0)}function I(V){var q=C.value;if(null==V||null!=q&&0'],{type:"text/html"})});navigator.clipboard.write([V]).then(mxUtils.bind(this,function(){b.alert(mxResources.get("copiedToClipboard"))}))["catch"](mxUtils.bind(this, -function(q){b.handleError(q)}))}),u.style.marginTop="6px",u.className="geBtn");E&&Editor.popupsAllowed&&(l.style.cursor="pointer",mxEvent.addGestureListeners(l,null,null,function(V){mxEvent.isPopupTrigger(V)||I("_blank")}))}mxUtils.br(p);var R=document.createElement("div");R.style.textAlign="center";var U=0;R.style.marginTop="6px";p.appendChild(R);var N=document.createElement("select");N.style.marginLeft="10px";b.isOfflineApp()||b.isOffline()||("function"===typeof window.DriveClient&&(g=document.createElement("option"), -g.setAttribute("value",App.MODE_GOOGLE),mxUtils.write(g,mxResources.get("googleDrive")),N.appendChild(g),A(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")),N.appendChild(g),b.mode==App.MODE_ONEDRIVE&&g.setAttribute("selected","selected"),A(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")),N.appendChild(g),b.mode==App.MODE_DROPBOX&&g.setAttribute("selected","selected"),A(IMAGE_PATH+"/dropbox-logo.svg",mxResources.get("dropbox"),App.MODE_DROPBOX,"dropbox")),null!=b.gitHub&&(g=document.createElement("option"),g.setAttribute("value",App.MODE_GITHUB),mxUtils.write(g,mxResources.get("github")),N.appendChild(g), -A(IMAGE_PATH+"/github-logo.svg",mxResources.get("github"),App.MODE_GITHUB,"gitHub")),null!=b.gitLab&&(g=document.createElement("option"),g.setAttribute("value",App.MODE_GITLAB),mxUtils.write(g,mxResources.get("gitlab")),N.appendChild(g),A(IMAGE_PATH+"/gitlab-logo.svg",mxResources.get("gitlab"),App.MODE_GITLAB,"gitLab")),"function"===typeof window.TrelloClient&&(g=document.createElement("option"),g.setAttribute("value",App.MODE_TRELLO),mxUtils.write(g,mxResources.get("trello")),N.appendChild(g),A(IMAGE_PATH+ -"/trello-logo.svg",mxResources.get("trello"),App.MODE_TRELLO,"trello")));if(!Editor.useLocalStorage||"device"==urlParams.storage||null!=b.getCurrentFile()&&"1"!=urlParams.noDevice)g=document.createElement("option"),g.setAttribute("value",App.MODE_DEVICE),mxUtils.write(g,mxResources.get("device")),N.appendChild(g),b.mode!=App.MODE_DEVICE&&t||g.setAttribute("selected","selected"),B&&A(IMAGE_PATH+"/osa_drive-harddisk.png",mxResources.get("device"),App.MODE_DEVICE);t&&isLocalStorage&&"0"!=urlParams.browser&& -(t=document.createElement("option"),t.setAttribute("value",App.MODE_BROWSER),mxUtils.write(t,mxResources.get("browser")),N.appendChild(t),b.mode==App.MODE_BROWSER&&t.setAttribute("selected","selected"),A(IMAGE_PATH+"/osa_database.png",mxResources.get("browser"),App.MODE_BROWSER));t=document.createElement("div");t.style.marginTop="26px";t.style.textAlign="center";null!=H&&(B=mxUtils.button(mxResources.get("help"),function(){b.openLink(H)}),B.className="geBtn",t.appendChild(B));B=mxUtils.button(mxResources.get(null!= -c?"close":"cancel"),function(){null!=c?c():(b.fileLoaded(null),b.hideDialog(),window.close(),window.location.href=b.getUrl())});B.className="geBtn";b.editor.cancelFirst&&null==c&&t.appendChild(B);null==c&&(g=mxUtils.button(mxResources.get("decideLater"),function(){I(null)}),g.className="geBtn",t.appendChild(g));E&&Editor.popupsAllowed&&(E=mxUtils.button(mxResources.get("openInNewWindow"),function(){I("_blank")}),E.className="geBtn",t.appendChild(E));CreateDialog.showDownloadButton&&(E=mxUtils.button(mxResources.get("download"), -function(){I("download")}),E.className="geBtn",t.appendChild(E),null!=u&&(E.style.marginTop="6px",t.style.marginTop="6px"));null!=u&&(mxUtils.br(t),t.appendChild(u));b.editor.cancelFirst&&null==c||t.appendChild(B);mxEvent.addListener(C,"keypress",function(V){13==V.keyCode?I(App.MODE_DEVICE):27==V.keyCode&&(b.fileLoaded(null),b.hideDialog(),window.close())});p.appendChild(t);this.container=p};CreateDialog.showDownloadButton="1"!=urlParams.noDevice; -var PopupDialog=function(b,e,f,c,l){l=null!=l?l:!0;var p=document.createElement("div");p.style.textAlign="center";p.style.height="100%";mxUtils.write(p,mxResources.get("fileOpenLocation"));mxUtils.br(p);mxUtils.br(p);var v=mxUtils.button(mxResources.get("openInThisWindow"),function(){l&&b.hideDialog();null!=c&&c()});v.className="geBtn";v.style.marginBottom="8px";v.style.width="280px";p.appendChild(v);mxUtils.br(p);var t=mxUtils.button(mxResources.get("openInNewWindow"),function(){l&&b.hideDialog(); -null!=f&&f();b.openLink(e,null,!0)});t.className="geBtn gePrimaryBtn";t.style.width=v.style.width;p.appendChild(t);mxUtils.br(p);mxUtils.br(p);mxUtils.write(p,mxResources.get("allowPopups"));this.container=p},ImageDialog=function(b,e,f,c,l,p,v,t){function E(){0 Bob: Authentication Request\nBob --\x3e Alice: Authentication Response\n\nAlice -> Bob: Another authentication Request\nAlice <-- Bob: Another authentication Response\n@enduml"==k&&"svg"==F?window.setTimeout(function(){b.spinner.stop();A(k,F,"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiBjb250ZW50U2NyaXB0VHlwZT0iYXBwbGljYXRpb24vZWNtYXNjcmlwdCIgY29udGVudFN0eWxlVHlwZT0idGV4dC9jc3MiIGhlaWdodD0iMjEycHgiIHByZXNlcnZlQXNwZWN0UmF0aW89Im5vbmUiIHN0eWxlPSJ3aWR0aDoyOTVweDtoZWlnaHQ6MjEycHg7IiB2ZXJzaW9uPSIxLjEiIHZpZXdCb3g9IjAgMCAyOTUgMjEyIiB3aWR0aD0iMjk1cHgiIHpvb21BbmRQYW49Im1hZ25pZnkiPjxkZWZzLz48Zz48bGluZSBzdHlsZT0ic3Ryb2tlOiAjQTgwMDM2OyBzdHJva2Utd2lkdGg6IDEuMDsgc3Ryb2tlLWRhc2hhcnJheTogNS4wLDUuMDsiIHgxPSIzMSIgeDI9IjMxIiB5MT0iMzQuNDg4MyIgeTI9IjE3MS43MzA1Ii8+PGxpbmUgc3R5bGU9InN0cm9rZTogI0E4MDAzNjsgc3Ryb2tlLXdpZHRoOiAxLjA7IHN0cm9rZS1kYXNoYXJyYXk6IDUuMCw1LjA7IiB4MT0iMjY0LjUiIHgyPSIyNjQuNSIgeTE9IjM0LjQ4ODMiIHkyPSIxNzEuNzMwNSIvPjxyZWN0IGZpbGw9IiNGRUZFQ0UiIGhlaWdodD0iMzAuNDg4MyIgc3R5bGU9InN0cm9rZTogI0E4MDAzNjsgc3Ryb2tlLXdpZHRoOiAxLjU7IiB3aWR0aD0iNDciIHg9IjgiIHk9IjMiLz48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0ic2Fucy1zZXJpZiIgZm9udC1zaXplPSIxNCIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nQW5kR2x5cGhzIiB0ZXh0TGVuZ3RoPSIzMyIgeD0iMTUiIHk9IjIzLjUzNTIiPkFsaWNlPC90ZXh0PjxyZWN0IGZpbGw9IiNGRUZFQ0UiIGhlaWdodD0iMzAuNDg4MyIgc3R5bGU9InN0cm9rZTogI0E4MDAzNjsgc3Ryb2tlLXdpZHRoOiAxLjU7IiB3aWR0aD0iNDciIHg9IjgiIHk9IjE3MC43MzA1Ii8+PHRleHQgZmlsbD0iIzAwMDAwMCIgZm9udC1mYW1pbHk9InNhbnMtc2VyaWYiIGZvbnQtc2l6ZT0iMTQiIGxlbmd0aEFkanVzdD0ic3BhY2luZ0FuZEdseXBocyIgdGV4dExlbmd0aD0iMzMiIHg9IjE1IiB5PSIxOTEuMjY1NiI+QWxpY2U8L3RleHQ+PHJlY3QgZmlsbD0iI0ZFRkVDRSIgaGVpZ2h0PSIzMC40ODgzIiBzdHlsZT0ic3Ryb2tlOiAjQTgwMDM2OyBzdHJva2Utd2lkdGg6IDEuNTsiIHdpZHRoPSI0MCIgeD0iMjQ0LjUiIHk9IjMiLz48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0ic2Fucy1zZXJpZiIgZm9udC1zaXplPSIxNCIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nQW5kR2x5cGhzIiB0ZXh0TGVuZ3RoPSIyNiIgeD0iMjUxLjUiIHk9IjIzLjUzNTIiPkJvYjwvdGV4dD48cmVjdCBmaWxsPSIjRkVGRUNFIiBoZWlnaHQ9IjMwLjQ4ODMiIHN0eWxlPSJzdHJva2U6ICNBODAwMzY7IHN0cm9rZS13aWR0aDogMS41OyIgd2lkdGg9IjQwIiB4PSIyNDQuNSIgeT0iMTcwLjczMDUiLz48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0ic2Fucy1zZXJpZiIgZm9udC1zaXplPSIxNCIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nQW5kR2x5cGhzIiB0ZXh0TGVuZ3RoPSIyNiIgeD0iMjUxLjUiIHk9IjE5MS4yNjU2Ij5Cb2I8L3RleHQ+PHBvbHlnb24gZmlsbD0iI0E4MDAzNiIgcG9pbnRzPSIyNTIuNSw2MS43OTg4LDI2Mi41LDY1Ljc5ODgsMjUyLjUsNjkuNzk4OCwyNTYuNSw2NS43OTg4IiBzdHlsZT0ic3Ryb2tlOiAjQTgwMDM2OyBzdHJva2Utd2lkdGg6IDEuMDsiLz48bGluZSBzdHlsZT0ic3Ryb2tlOiAjQTgwMDM2OyBzdHJva2Utd2lkdGg6IDEuMDsiIHgxPSIzMS41IiB4Mj0iMjU4LjUiIHkxPSI2NS43OTg4IiB5Mj0iNjUuNzk4OCIvPjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJzYW5zLXNlcmlmIiBmb250LXNpemU9IjEzIiBsZW5ndGhBZGp1c3Q9InNwYWNpbmdBbmRHbHlwaHMiIHRleHRMZW5ndGg9IjE0NyIgeD0iMzguNSIgeT0iNjEuMDU2NiI+QXV0aGVudGljYXRpb24gUmVxdWVzdDwvdGV4dD48cG9seWdvbiBmaWxsPSIjQTgwMDM2IiBwb2ludHM9IjQyLjUsOTEuMTA5NCwzMi41LDk1LjEwOTQsNDIuNSw5OS4xMDk0LDM4LjUsOTUuMTA5NCIgc3R5bGU9InN0cm9rZTogI0E4MDAzNjsgc3Ryb2tlLXdpZHRoOiAxLjA7Ii8+PGxpbmUgc3R5bGU9InN0cm9rZTogI0E4MDAzNjsgc3Ryb2tlLXdpZHRoOiAxLjA7IHN0cm9rZS1kYXNoYXJyYXk6IDIuMCwyLjA7IiB4MT0iMzYuNSIgeDI9IjI2My41IiB5MT0iOTUuMTA5NCIgeTI9Ijk1LjEwOTQiLz48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0ic2Fucy1zZXJpZiIgZm9udC1zaXplPSIxMyIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nQW5kR2x5cGhzIiB0ZXh0TGVuZ3RoPSIxNTciIHg9IjQ4LjUiIHk9IjkwLjM2NzIiPkF1dGhlbnRpY2F0aW9uIFJlc3BvbnNlPC90ZXh0Pjxwb2x5Z29uIGZpbGw9IiNBODAwMzYiIHBvaW50cz0iMjUyLjUsMTIwLjQxOTksMjYyLjUsMTI0LjQxOTksMjUyLjUsMTI4LjQxOTksMjU2LjUsMTI0LjQxOTkiIHN0eWxlPSJzdHJva2U6ICNBODAwMzY7IHN0cm9rZS13aWR0aDogMS4wOyIvPjxsaW5lIHN0eWxlPSJzdHJva2U6ICNBODAwMzY7IHN0cm9rZS13aWR0aDogMS4wOyIgeDE9IjMxLjUiIHgyPSIyNTguNSIgeTE9IjEyNC40MTk5IiB5Mj0iMTI0LjQxOTkiLz48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0ic2Fucy1zZXJpZiIgZm9udC1zaXplPSIxMyIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nQW5kR2x5cGhzIiB0ZXh0TGVuZ3RoPSIxOTkiIHg9IjM4LjUiIHk9IjExOS42Nzc3Ij5Bbm90aGVyIGF1dGhlbnRpY2F0aW9uIFJlcXVlc3Q8L3RleHQ+PHBvbHlnb24gZmlsbD0iI0E4MDAzNiIgcG9pbnRzPSI0Mi41LDE0OS43MzA1LDMyLjUsMTUzLjczMDUsNDIuNSwxNTcuNzMwNSwzOC41LDE1My43MzA1IiBzdHlsZT0ic3Ryb2tlOiAjQTgwMDM2OyBzdHJva2Utd2lkdGg6IDEuMDsiLz48bGluZSBzdHlsZT0ic3Ryb2tlOiAjQTgwMDM2OyBzdHJva2Utd2lkdGg6IDEuMDsgc3Ryb2tlLWRhc2hhcnJheTogMi4wLDIuMDsiIHgxPSIzNi41IiB4Mj0iMjYzLjUiIHkxPSIxNTMuNzMwNSIgeTI9IjE1My43MzA1Ii8+PHRleHQgZmlsbD0iIzAwMDAwMCIgZm9udC1mYW1pbHk9InNhbnMtc2VyaWYiIGZvbnQtc2l6ZT0iMTMiIGxlbmd0aEFkanVzdD0ic3BhY2luZ0FuZEdseXBocyIgdGV4dExlbmd0aD0iMjA5IiB4PSI0OC41IiB5PSIxNDguOTg4MyI+QW5vdGhlciBhdXRoZW50aWNhdGlvbiBSZXNwb25zZTwvdGV4dD48IS0tTUQ1PVs3ZjNlNGQwYzkwMWVmZGJjNTdlYjQ0MjQ5YTNiODE5N10KQHN0YXJ0dW1sDQpza2lucGFyYW0gc2hhZG93aW5nIGZhbHNlDQpBbGljZSAtPiBCb2I6IEF1dGhlbnRpY2F0aW9uIFJlcXVlc3QNCkJvYiAtIC0+IEFsaWNlOiBBdXRoZW50aWNhdGlvbiBSZXNwb25zZQ0KDQpBbGljZSAtPiBCb2I6IEFub3RoZXIgYXV0aGVudGljYXRpb24gUmVxdWVzdA0KQWxpY2UgPC0gLSBCb2I6IEFub3RoZXIgYXV0aGVudGljYXRpb24gUmVzcG9uc2UNCkBlbmR1bWwNCgpQbGFudFVNTCB2ZXJzaW9uIDEuMjAyMC4wMihTdW4gTWFyIDAxIDA0OjIyOjA3IENTVCAyMDIwKQooTUlUIHNvdXJjZSBkaXN0cmlidXRpb24pCkphdmEgUnVudGltZTogT3BlbkpESyBSdW50aW1lIEVudmlyb25tZW50CkpWTTogT3BlbkpESyA2NC1CaXQgU2VydmVyIFZNCkphdmEgVmVyc2lvbjogMTIrMzMKT3BlcmF0aW5nIFN5c3RlbTogTWFjIE9TIFgKRGVmYXVsdCBFbmNvZGluZzogVVRGLTgKTGFuZ3VhZ2U6IGVuCkNvdW50cnk6IFVTCi0tPjwvZz48L3N2Zz4=", +295,212)},200):b.generatePlantUmlImage(k,F,function(M,n,z){b.spinner.stop();A(k,F,M,n,z)},function(M){b.handleError(M)})}}else if("mermaid"==m||"mermaid2drawio"==m){if(b.spinner.spin(document.body,mxResources.get("inserting"))){for(var C=0;C");2<=N.length&&(x=J(N[0]),I=J(N[N.length-1]),N=new mxCell(2 Bob: Authentication Request\nBob --\x3e Alice: Authentication Response\n\nAlice -> Bob: Another authentication Request\nAlice <-- Bob: Another authentication Response\n@enduml": +"plantUmlSvg"==v.value||"plantUmlTxt"==v.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 p=b.editor.graph.getFreeInsertPoint();e=document.createElement("div");e.style.textAlign="right";var q=document.createElement("textarea");q.style.boxSizing="border-box";q.style.resize= +"none";q.style.width="100%";q.style.height="354px";q.style.marginBottom="16px";var v=document.createElement("select");v.className="geBtn";if("formatSql"==f||"mermaid"==f&&"draw.io"!=b.getServiceName()&&"atlassian"!=b.getServiceName())v.style.display="none";var D=document.createElement("option");D.setAttribute("value","list");mxUtils.write(D,mxResources.get("list"));"plantUml"!=f&&"mermaid"!=f&&v.appendChild(D);null!=f&&"fromText"!=f||D.setAttribute("selected","selected");D=document.createElement("option"); +D.setAttribute("value","table");mxUtils.write(D,mxResources.get("formatSql"));"formatSql"==f&&(v.appendChild(D),D.setAttribute("selected","selected"));D=document.createElement("option");D.setAttribute("value","mermaid");mxUtils.write(D,mxResources.get("image"));if("mermaid"==f)if("undefined"!==typeof mxMermaidToDrawio){var G=document.createElement("option");G.setAttribute("value","mermaid2drawio");G.setAttribute("selected","selected");mxUtils.write(G,mxResources.get("diagram"));v.appendChild(G)}else v.style.display= +"none";v.appendChild(D);D=document.createElement("option");D.setAttribute("value","diagram");mxUtils.write(D,mxResources.get("diagram"));G=document.createElement("option");G.setAttribute("value","circle");mxUtils.write(G,mxResources.get("circle"));var B=document.createElement("option");B.setAttribute("value","horizontalFlow");mxUtils.write(B,mxResources.get("horizontalFlow"));var d=document.createElement("option");d.setAttribute("value","verticalFlow");mxUtils.write(d,mxResources.get("verticalFlow")); +"plantUml"!=f&&"mermaid"!=f&&(v.appendChild(D),v.appendChild(G),v.appendChild(B),v.appendChild(d));D=document.createElement("option");D.setAttribute("value","plantUmlSvg");mxUtils.write(D,mxResources.get("plantUml")+" ("+mxResources.get("formatSvg")+")");"plantUml"==f&&D.setAttribute("selected","selected");G=document.createElement("option");G.setAttribute("value","plantUmlPng");mxUtils.write(G,mxResources.get("plantUml")+" ("+mxResources.get("formatPng")+")");B=document.createElement("option");B.setAttribute("value", +"plantUmlTxt");mxUtils.write(B,mxResources.get("plantUml")+" ("+mxResources.get("text")+")");EditorUi.enablePlantUml&&Graph.fileSupport&&!b.isOffline()&&"plantUml"==f&&(v.appendChild(D),v.appendChild(G),v.appendChild(B));var g=l();q.value=g;e.appendChild(q);this.init=function(){q.focus()};Graph.fileSupport&&(q.addEventListener("dragover",function(k){k.stopPropagation();k.preventDefault()},!1),q.addEventListener("drop",function(k){k.stopPropagation();k.preventDefault();if(0PlantUML is deprecated',e.appendChild(D));e.appendChild(v);mxEvent.addListener(v, +"change",function(){var k=l();if(0==q.value.length||q.value==g)g=k,q.value=g});b.isOffline()||"mermaid"!=f&&"plantUml"!=f||(D=mxUtils.button(mxResources.get("help"),function(){b.openLink("mermaid"==f?"https://mermaid-js.github.io/mermaid/#/":"https://plantuml.com/")}),D.className="geBtn",e.appendChild(D));D=mxUtils.button(mxResources.get("close"),function(){q.value==g?b.hideDialog():b.confirm(mxResources.get("areYouSure"),function(){b.hideDialog()})});D.className="geBtn";b.editor.cancelFirst&&e.appendChild(D); +G=mxUtils.button(mxResources.get("insert"),function(k){try{b.hideDialog(),c(q.value,v.value,k)}catch(m){b.handleError(m)}});G.className="geBtn gePrimaryBtn";e.appendChild(G);b.editor.cancelFirst||e.appendChild(D);this.container=e},NewDialog=function(b,e,f,c,l,p,q,v,D,G,B,d,g,k,m,t,y,A,H,F){function C(ka){null!=ka&&(Da=xa=ka?135:140);ka=!0;if(null!=Xa)for(;z";if(Oa||"undefined"===typeof mxMermaidToDrawio)ra=aa=Ea;Ea=Q.cloneNode(!0);sa.appendChild(Ea);cb=function(Pa){U=null!=b.sidebar.tooltip&&"none"!=b.sidebar.tooltip.style.display};Za=function(Pa){U||R(jb,mxEvent.getClientX(Pa),mxEvent.getClientY(Pa),db,Ua)};mxEvent.addGestureListeners(db,cb,null,Za);mxEvent.addGestureListeners(Ea,cb,null,Za)},function(Ea){b.spinner.stop();null!=mxMermaidToDrawio.resetListeners&&mxMermaidToDrawio.resetListeners();b.handleError(Ea)})});Ma.setAttribute("disabled", +"disabled");Ma.className="geBtn gePrimaryBtn";oa=function(){window.setTimeout(function(){""!=ua.value?Ma.removeAttribute("disabled"):Ma.setAttribute("disabled","disabled")},0)};wa=null!=H?H:urlParams["smart-template"];null!=wa&&"1"!=wa&&(ua.value=decodeURIComponent(wa),oa(),""==wa||null==H&&"1"!=urlParams["smart-template-generate"]||window.setTimeout(function(){Ma.click()},0));mxEvent.addListener(ua,"change",oa);mxEvent.addListener(ua,"keydown",oa);mxEvent.addListener(ua,"cut",oa);mxEvent.addListener(ua, +"paste",oa);mxEvent.addListener(ua,"keydown",function(Ta){13==Ta.keyCode&&Ma.click()});oa=document.createElement("div");oa.style.height="40px";oa.style.marginTop="4px";oa.style.marginBottom="4px";oa.style.whiteSpace="nowrap";oa.style.overflowX="auto";oa.style.overflowY="hidden";oa.appendChild(qa);oa.appendChild(Ma);ka.appendChild(oa);ka.appendChild(sa);return ka}function V(){if(ha&&null!=k)f||b.hideDialog(),k(ha,Ba,n.value);else if(c)f||b.hideDialog(),c(aa,n.value,ea,ba);else{var ka=n.value;if(null!= +ka&&0=gb.getStatus()&&(cb=gb.getText());fb(cb,Za)}))):fb(cb,Za)}function Ua(Pa,fb){if(null==ka||P||b.sidebar.currentElt==Ea)b.sidebar.hideTooltip(); +else if(b.sidebar.hideTooltip(),null!=S){var gb=""+Graph.compress('')+"";R(gb,mxEvent.getClientX(Pa),mxEvent.getClientY(Pa),sa,ka)}else b.sidebar.currentElt=Ea,P=!0,Oa(ka,function(kb){if(P&& +b.sidebar.currentElt==Ea)try{R(kb,mxEvent.getClientX(Pa),mxEvent.getClientY(Pa),Ea,fb)}catch(lb){b.sidebar.currentElt=null,b.handleError(lb)}P=!1})}var Ea=null;if("generative"!=ab||null==ya){Ea=document.createElement("div");Ea.className="geTemplate";var cb=null,Za=ka;null!=sa?Ea.setAttribute("title",mxResources.get(sa,null,sa)):null!=oa&&0=pa.scrollHeight&&(C(),mxEvent.consume(Oa))}));if(0(window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth);f=null!=f?f:!0;l=null!=l?l:!1;q=null!=q?q:"light-dark(#ebf2f9, "+Editor.darkColor+")";B=null!=B?B:EditorUi.templateFile;var N=document.createElement("div");N.style.userSelect="none";N.style.height="100%";D=document.createElement("div");D.style.whiteSpace="nowrap";D.style.height="46px";f&&N.appendChild(D);var M=document.createElement("img");M.setAttribute("border","0");M.setAttribute("align","absmiddle");M.style.width= +"40px";M.style.height="40px";M.style.marginRight="10px";M.style.paddingBottom="4px";M.src=b.mode==App.MODE_GOOGLE?IMAGE_PATH+"/google-drive-logo.svg":b.mode==App.MODE_DROPBOX?IMAGE_PATH+"/dropbox-logo.svg":b.mode==App.MODE_ONEDRIVE?IMAGE_PATH+"/onedrive-logo.svg":b.mode==App.MODE_GITHUB?IMAGE_PATH+"/github-logo.svg":b.mode==App.MODE_GITLAB?IMAGE_PATH+"/gitlab-logo.svg":b.mode==App.MODE_TRELLO?IMAGE_PATH+"/trello-logo.svg":b.mode==App.MODE_BROWSER?IMAGE_PATH+"/osa_database.png":IMAGE_PATH+"/osa_drive-harddisk.png"; +e||v||!f||D.appendChild(M);f&&mxUtils.write(D,(v?mxResources.get("name"):null==b.mode||b.mode==App.MODE_GOOGLE||b.mode==App.MODE_BROWSER?mxResources.get("diagramName"):mxResources.get("filename"))+":");M=".drawio";b.mode==App.MODE_GOOGLE&&null!=b.drive?M=b.drive.extension:b.mode==App.MODE_DROPBOX&&null!=b.dropbox?M=b.dropbox.extension:b.mode==App.MODE_ONEDRIVE&&null!=b.oneDrive?M=b.oneDrive.extension:b.mode==App.MODE_GITHUB&&null!=b.gitHub?M=b.gitHub.extension:b.mode==App.MODE_GITLAB&&null!=b.gitLab? +M=b.gitLab.extension:b.mode==App.MODE_TRELLO&&null!=b.trello&&(M=b.trello.extension);var n=document.createElement("input");n.setAttribute("value",b.defaultFilename+M);n.style.marginLeft="10px";n.style.width=e||v?"144px":"244px";this.init=function(){f&&Editor.selectFilename(n);null!=pa.parentNode&&null!=pa.parentNode.parentNode&&mxEvent.addGestureListeners(pa.parentNode.parentNode,mxUtils.bind(this,function(ka){null!=b.sidebar&&b.sidebar.hideTooltip()}),null,null)};f&&(D.appendChild(n),A?n.style.width= +e||v?"350px":"450px":null!=b.editor.diagramFileTypes&&(A=FilenameDialog.createFileTypes(b,n,b.editor.diagramFileTypes),A.style.marginLeft="6px",A.style.width=e||v?"80px":"180px",D.appendChild(A)));A=!1;var z=0,E=new Spinner({lines:12,length:10,width:5,radius:10,rotate:0,color:"light-dark(#000000, #C0C0C0)",speed:1.5,trail:60,shadow:!1,hwaccel:!1,top:"40%",zIndex:2E9}),L=mxUtils.button(t||mxResources.get("create"),function(){L.setAttribute("disabled","disabled");V();L.removeAttribute("disabled")}); +L.className="geBtn gePrimaryBtn";var Q=document.createElement("img");Q.setAttribute("src",Editor.magnifyImage);Q.setAttribute("title",mxResources.get("preview"));Q.className="geButton geRoundButton";var P=!1,S=null,U=!1;if(d||g){var W=[],X=null,Y=null,Z=null,ca=function(ka){L.setAttribute("disabled","disabled");for(var ua=0;ua";R(ua,mxEvent.getClientX(ka),mxEvent.getClientY(ka),ya,va)}});var La=Q.cloneNode(!0);La.setAttribute("src",Editor.editImage);La.setAttribute("title",mxResources.get("edit"));La.style.visibility="hidden";La.style.left="0px";t=Q.cloneNode(!0);t.setAttribute("src",Editor.helpImage);t.setAttribute("title",mxResources.get("help"));mxEvent.addListener(t,"click",function(ka){b.openLink("https://www.drawio.com/blog/write-query-generate-diagram");mxEvent.consume(ka)});Ca.appendChild(Ja); +Ca.appendChild(Na);Ca.appendChild(t);Ca.style.display="none";mxEvent.addListener(La,"click",u);mxEvent.addListener(Ja,"input",function(){""!=Ja.value?Na.removeAttribute("disabled"):Na.setAttribute("disabled","disabled")});mxEvent.addListener(Na,"click",function(){J()});mxEvent.addListener(Ja,"keydown",function(ka){13!=ka.keyCode||mxEvent.isShiftDown(ka)?27==ka.keyCode&&(J(!0),mxEvent.consume(ka)):(J(),mxEvent.consume(ka))});var Ga={},Ra={},$a={},Va=0,bb=!0,Ya=null,eb=null;Ga.basic=F?[]:[{title:"blankDiagram"}]; +var Xa=Ga.basic;Editor.enableChatGpt&&b.isExternalDataComms()&&"draw.io"==b.getServiceName()&&"undefined"!==typeof mxMermaidToDrawio&&window.isMermaidEnabled&&Ga.basic.push({title:"generate",type:"generative"});Editor.enableChatGpt&&b.isExternalDataComms()&&"draw.io"==b.getServiceName()&&"undefined"!==typeof mxMermaidToDrawio&&window.isMermaidEnabled&&(Ga.smartTemplate={content:T()});if(!e){var ib=function(){mxUtils.get(Wa,function(ka){if(!Sa){Sa=!0;ka=ka.getXml().documentElement.firstChild;for(var ua= +{};null!=ka;){if("undefined"!==typeof ka.getAttribute)if("parsererror"==ka.nodeName)null!=window.console&&console.log("Parser error in "+B+": "+ka.textContent);else if("clibs"==ka.nodeName){for(var sa=ka.getAttribute("name"),oa=ka.getElementsByTagName("add"),qa=[],wa=0;wamxUtils.indexOf(c,I)){n=null!=n?n:b.getTitleForService(I);var L=0<=mxUtils.indexOf(V,I);if(L||null!=b.getServiceForName(I)){E=document.createElement("option");var Q="";!L&&b.isOffline()&&(E.setAttribute("disabled","disabled"),Q=" ("+mxResources.get("offline")+")");if("pick"==z)E.innerHTML=mxUtils.htmlEntities(n)+"  –  "+mxUtils.htmlEntities(mxResources.get("pickFolder"))+"..."+Q,E.setAttribute("value", +"pickFolder-"+I),E.setAttribute("title",n+" - "+mxResources.get("pickFolder")+"...");else{L=I+(null!=N?"-"+N:"");var P=x[L];null!=P&&null!=P.option&&P.option.parentNode.removeChild(P.option);P=null;if(null!=K){"/"==K.charAt(K.length-1)&&(K=K.substring(0,K.length-1));"/"==K.charAt(0)&&(K=K.substring(1));P=K;if(I!=App.MODE_GITHUB&&I==App.MODE_GITLAB){var S=P.lastIndexOf("/");0<=S&&(P=P.substring(S+1))}40R.selectedIndex&&(R.selectedIndex=N))},!0,!0,!0,!0)}function B(){var I=b.getRecent("Folders"),K=0;if(null!=I&&0e.indexOf(".")&&0>K.indexOf(".")&&(F.value=K+I)}J.innerHTML="";mxUtils.write(J,mxResources.get("download"==R.value||"_blank"==R.value?"ok":"save"));""==R.value?J.setAttribute("disabled", +"disabled"):J.removeAttribute("disabled")}var g=document.createElement("div");g.style.display="flex";g.style.flexWrap="wrap";g.style.whiteSpace="nowrap";var k=document.createElement("div");k.style.display="grid";k.style.gap="5px 8px";k.style.gridAutoRows="auto auto 44px";k.style.gridAutoColumns="0fr minmax(0,1fr)";k.style.width="100%";var m=null,t=null;if(null!=l&&null!=p&&"image/"==p.substring(0,6)&&("image/svg"!=p.substring(0,9)||mxClient.IS_SVG)){k.style.display="inline-grid";k.style.flexBasis= +"75%";m=document.createElement("div");m.style.display="inline-block";m.style.height="auto";m.style.maxWidth="25%";m.style.margin="auto";var y=document.createElement("img"),A=q?l:btoa(unescape(encodeURIComponent(l)));y.setAttribute("src","data:"+p+";base64,"+A);y.style.boxSizing="border-box";y.style.maxHeight="50px";y.style.maxWidth="100%";y.style.paddingLeft="10px";m.appendChild(y);mxClient.IS_FF||"image/png"!=p||null==navigator.clipboard||"function"!==typeof window.ClipboardItem||(t=mxUtils.button(mxResources.get("copy"), +function(){var I=b.base64ToBlob(A,"image/png");I=new ClipboardItem({"image/png":I,"text/html":new Blob([''],{type:"text/html"})});navigator.clipboard.write([I]).then(mxUtils.bind(this,function(){b.alert(mxResources.get("copiedToClipboard"))}))["catch"](mxUtils.bind(this,function(K){b.handleError(K)}))},null,"geBtn"));Editor.popupsAllowed&&(null==c||0>mxUtils.indexOf(c,"_blank"))?(m.setAttribute("title",mxResources.get("openInNewWindow")),m.style.cursor="pointer", +mxEvent.addGestureListeners(m,null,null,function(I){mxEvent.isPopupTrigger(I)||b.openInNewWindow(l,p,q)})):m.setAttribute("title",mxResources.get("preview"))}y=document.createElement("div");y.style.display="flex";y.style.padding="1px";y.style.alignItems="center";y.style.justifyContent="flex-end";y.style.gridColumn="1";y.style.whiteSpace="nowrap";var H=document.createElement("div");H.style.display="grid";H.style.padding="1px";H.style.alignItems="center";H.style.gridColumn="2";H.style.gridAutoColumns= +"minmax(0,1fr) auto";H.style.gap="6px";mxUtils.write(y,mxResources.get("saveAs")+":");var F=document.createElement("input");F.setAttribute("type","text");F.setAttribute("value",e);F.style.boxSizing="border-box";F.style.width="100%";H.appendChild(F);k.appendChild(y);k.appendChild(H);var C=null;null!=b.editor.diagramFileTypes&&null==p&&(y=y.cloneNode(!1),H=H.cloneNode(!1),mxUtils.write(y,mxResources.get("type")+":"),C=FilenameDialog.createFileTypes(b,F,b.editor.diagramFileTypes),C.style.boxSizing="border-box", +C.style.width="100%",H.appendChild(C),k.appendChild(y),k.appendChild(H));y=y.cloneNode(!1);H=H.cloneNode(!1);mxUtils.write(y,mxResources.get("where")+":");var R=document.createElement("select");R.style.textOverflow="ellipsis";R.style.gridColumn="1";var T=document.createElement("option");mxUtils.write(T,mxResources.get("reset"));T.setAttribute("value","reset");var V=["browser","device","download","_blank"],O=document.createElement("option");O.setAttribute("disabled","disabled");O.innerHTML="-----------------"; +var u=null,x={},J=mxUtils.button(mxResources.get("save"),function(){SaveDialog.lastValue=R.value;var I=x[SaveDialog.lastValue];null!=I&&f(F,I.mode,I.id)},null,"geBtn gePrimaryBtn");mxEvent.addListener(F,"keypress",function(I){13==I.keyCode&&J.click()});mxEvent.addListener(R,"change",d);B();H.appendChild(R);null!=SaveDialog.lastValue&&null!=x[SaveDialog.lastValue]&&(R.value=SaveDialog.lastValue);d();k.appendChild(y);k.appendChild(H);g.appendChild(k);null!=m&&g.appendChild(m);k=document.createElement("div"); +k.style.flexBasis="100%";k.style.textAlign="right";k.style.marginTop=null!=p?"16px":"8px";b.isOffline()&&!mxClient.IS_CHROMEAPP||k.appendChild(b.createHelpIcon("https://www.drawio.com/doc/faq/save-file-formats"));m=mxUtils.button(mxResources.get("cancel"),function(){b.hideDialog()},null,"geBtn");b.editor.cancelFirst&&k.appendChild(m);null!=t&&k.appendChild(t);k.appendChild(J);b.editor.cancelFirst||k.appendChild(m);g.appendChild(k);this.init=function(){Editor.selectFilename(F)};this.container=g},CreateDialog= +function(b,e,f,c,l,p,q,v,D,G,B,d,g,k,m,t,y){function A(u,x,J,I){function K(){mxEvent.addListener(N,"click",function(){var L=J;if(q){var Q=C.value,P=Q.lastIndexOf(".");if(0>e.lastIndexOf(".")&&0>P){L=null!=L?L:O.value;var S="";L==App.MODE_GOOGLE?S=b.drive.extension:L==App.MODE_GITHUB?S=b.gitHub.extension:L==App.MODE_GITLAB?S=b.gitLab.extension:L==App.MODE_TRELLO?S=b.trello.extension:L==App.MODE_DROPBOX?S=b.dropbox.extension:L==App.MODE_ONEDRIVE?S=b.oneDrive.extension:L==App.MODE_DEVICE&&(S=".drawio"); +0<=P&&(Q=Q.substring(0,P));C.value=Q+S}}H(J)})}var N=document.createElement("a");N.style.overflow="hidden";var M=document.createElement("img");M.src=u;M.setAttribute("border","0");M.setAttribute("align","absmiddle");M.style.width="60px";M.style.height="60px";M.style.paddingBottom="6px";N.style.display="inline-block";N.className="geBaseButton";N.style.position="relative";N.style.margin="4px";N.style.padding="8px 8px 10px 8px";N.style.whiteSpace="nowrap";N.appendChild(M);N.style.color="gray";N.style.fontSize= +"11px";var n=document.createElement("div");N.appendChild(n);mxUtils.write(n,x);if(null!=I&&null==b[I]){M.style.visibility="hidden";mxUtils.setOpacity(n,10);var z=new Spinner({lines:12,length:12,width:5,radius:10,rotate:0,color:"light-dark(#000000, #C0C0C0)",speed:1.5,trail:60,shadow:!1,hwaccel:!1,top:"40%",zIndex:2E9});z.spin(N);var E=window.setTimeout(function(){null==b[I]&&(z.stop(),N.style.display="none")},3E4);b.addListener("clientLoaded",mxUtils.bind(this,function(){null!=b[I]&&(window.clearTimeout(E), +mxUtils.setOpacity(n,100),M.style.visibility="",z.stop(),K())}))}else K();T.appendChild(N);++V==d&&(mxUtils.br(T),V=0)}function H(u){var x=C.value;if(null==u||null!=x&&0'],{type:"text/html"})});navigator.clipboard.write([u]).then(mxUtils.bind(this,function(){b.alert(mxResources.get("copiedToClipboard"))}))["catch"](mxUtils.bind(this, +function(x){b.handleError(x)}))}),t.style.marginTop="6px",t.className="geBtn");D&&Editor.popupsAllowed&&(l.style.cursor="pointer",mxEvent.addGestureListeners(l,null,null,function(u){mxEvent.isPopupTrigger(u)||H("_blank")}))}mxUtils.br(p);var T=document.createElement("div");T.style.textAlign="center";var V=0;T.style.marginTop="6px";p.appendChild(T);var O=document.createElement("select");O.style.marginLeft="10px";b.isOfflineApp()||b.isOffline()||("function"===typeof window.DriveClient&&(g=document.createElement("option"), +g.setAttribute("value",App.MODE_GOOGLE),mxUtils.write(g,mxResources.get("googleDrive")),O.appendChild(g),A(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")),O.appendChild(g),b.mode==App.MODE_ONEDRIVE&&g.setAttribute("selected","selected"),A(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")),O.appendChild(g),b.mode==App.MODE_DROPBOX&&g.setAttribute("selected","selected"),A(IMAGE_PATH+"/dropbox-logo.svg",mxResources.get("dropbox"),App.MODE_DROPBOX,"dropbox")),null!=b.gitHub&&(g=document.createElement("option"),g.setAttribute("value",App.MODE_GITHUB),mxUtils.write(g,mxResources.get("github")),O.appendChild(g), +A(IMAGE_PATH+"/github-logo.svg",mxResources.get("github"),App.MODE_GITHUB,"gitHub")),null!=b.gitLab&&(g=document.createElement("option"),g.setAttribute("value",App.MODE_GITLAB),mxUtils.write(g,mxResources.get("gitlab")),O.appendChild(g),A(IMAGE_PATH+"/gitlab-logo.svg",mxResources.get("gitlab"),App.MODE_GITLAB,"gitLab")),"function"===typeof window.TrelloClient&&(g=document.createElement("option"),g.setAttribute("value",App.MODE_TRELLO),mxUtils.write(g,mxResources.get("trello")),O.appendChild(g),A(IMAGE_PATH+ +"/trello-logo.svg",mxResources.get("trello"),App.MODE_TRELLO,"trello")));if(!Editor.useLocalStorage||"device"==urlParams.storage||null!=b.getCurrentFile()&&"1"!=urlParams.noDevice)g=document.createElement("option"),g.setAttribute("value",App.MODE_DEVICE),mxUtils.write(g,mxResources.get("device")),O.appendChild(g),b.mode!=App.MODE_DEVICE&&v||g.setAttribute("selected","selected"),B&&A(IMAGE_PATH+"/osa_drive-harddisk.png",mxResources.get("device"),App.MODE_DEVICE);v&&isLocalStorage&&"0"!=urlParams.browser&& +(v=document.createElement("option"),v.setAttribute("value",App.MODE_BROWSER),mxUtils.write(v,mxResources.get("browser")),O.appendChild(v),b.mode==App.MODE_BROWSER&&v.setAttribute("selected","selected"),A(IMAGE_PATH+"/osa_database.png",mxResources.get("browser"),App.MODE_BROWSER));v=document.createElement("div");v.style.marginTop="26px";v.style.textAlign="center";null!=G&&(B=mxUtils.button(mxResources.get("help"),function(){b.openLink(G)}),B.className="geBtn",v.appendChild(B));B=mxUtils.button(mxResources.get(null!= +c?"close":"cancel"),function(){null!=c?c():(b.fileLoaded(null),b.hideDialog(),window.close(),window.location.href=b.getUrl())});B.className="geBtn";b.editor.cancelFirst&&null==c&&v.appendChild(B);null==c&&(g=mxUtils.button(mxResources.get("decideLater"),function(){H(null)}),g.className="geBtn",v.appendChild(g));D&&Editor.popupsAllowed&&(D=mxUtils.button(mxResources.get("openInNewWindow"),function(){H("_blank")}),D.className="geBtn",v.appendChild(D));CreateDialog.showDownloadButton&&(D=mxUtils.button(mxResources.get("download"), +function(){H("download")}),D.className="geBtn",v.appendChild(D),null!=t&&(D.style.marginTop="6px",v.style.marginTop="6px"));null!=t&&(mxUtils.br(v),v.appendChild(t));b.editor.cancelFirst&&null==c||v.appendChild(B);mxEvent.addListener(C,"keypress",function(u){13==u.keyCode?H(App.MODE_DEVICE):27==u.keyCode&&(b.fileLoaded(null),b.hideDialog(),window.close())});p.appendChild(v);this.container=p};CreateDialog.showDownloadButton="1"!=urlParams.noDevice; +var PopupDialog=function(b,e,f,c,l){l=null!=l?l:!0;var p=document.createElement("div");p.style.textAlign="center";p.style.height="100%";mxUtils.write(p,mxResources.get("fileOpenLocation"));mxUtils.br(p);mxUtils.br(p);var q=mxUtils.button(mxResources.get("openInThisWindow"),function(){l&&b.hideDialog();null!=c&&c()});q.className="geBtn";q.style.marginBottom="8px";q.style.width="280px";p.appendChild(q);mxUtils.br(p);var v=mxUtils.button(mxResources.get("openInNewWindow"),function(){l&&b.hideDialog(); +null!=f&&f();b.openLink(e,null,!0)});v.className="geBtn gePrimaryBtn";v.style.width=q.style.width;p.appendChild(v);mxUtils.br(p);mxUtils.br(p);mxUtils.write(p,mxResources.get("allowPopups"));this.container=p},ImageDialog=function(b,e,f,c,l,p,q,v){function D(){0b.maxImageSize||P.height>b.maxImageSize||R.length>b.maxImageBytes)},mxUtils.bind(this,function(){b.handleError({message:mxResources.get("fileNotFound")})}))};P.onerror=function(){b.spinner.stop(); -b.handleError({message:mxResources.get("fileNotFound")})};P.src=C}});G.className="geBtn";mxEvent.addListener(d,"change",function(C){g=null;E()});E();t.appendChild(G);v=mxUtils.button(mxResources.get("apply"),function(){x(d.value)});v.className="geBtn gePrimaryBtn";t.appendChild(v);b.editor.cancelFirst||t.appendChild(f);Graph.fileSupport&&(t.style.marginTop="120px",B.style.backgroundImage="url('"+IMAGE_PATH+"/droptarget.png')",B.style.backgroundPosition="center 65%",B.style.backgroundRepeat="no-repeat", -v=document.createElement("div"),v.style.position="absolute",v.style.width="420px",v.style.top="58%",v.style.textAlign="center",v.style.fontSize="18px",v.style.color="#a0c3ff",mxUtils.write(v,mxResources.get("dragImagesHere")),B.appendChild(v));B.appendChild(t);this.container=B},LinkDialog=function(b,e,f,c,l,p,v){function t(C,P){var R=document.createElement("option");mxUtils.write(R,mxResources.get(C));R.value=C;I.appendChild(R);G[C]=P}var E=document.createElement("div");E.style.height="100%";mxUtils.write(E, -mxResources.get("editLink")+":");var H=document.createElement("div");H.className="geUrlLinkContainer";H.style.backgroundColor="transparent";H.style.borderColor="transparent";H.style.whiteSpace="nowrap";H.style.textOverflow="clip";H.style.cursor="default";var B=document.createElement("input");B.setAttribute("placeholder",mxResources.get("dragUrlsHere"));B.setAttribute("type","text");B.style.marginTop="6px";B.style.width="414px";B.style.boxSizing="border-box";B.style.backgroundRepeat="no-repeat";B.style.backgroundPosition= +"')";mxEvent.addListener(f,"click",function(){d.value="";d.focus()});e.appendChild(d);e.appendChild(f);B.appendChild(e);var g=v,k,m,t=function(C,R,T,V){var O="data:"==C.substring(0,5);!b.isOffline()||O&&"undefined"===typeof chrome?0b.maxImageSize||R.height>b.maxImageSize||T.length>b.maxImageBytes)},mxUtils.bind(this,function(){b.handleError({message:mxResources.get("fileNotFound")})}))};R.onerror=function(){b.spinner.stop(); +b.handleError({message:mxResources.get("fileNotFound")})};R.src=C}});F.className="geBtn";mxEvent.addListener(d,"change",function(C){g=null;D()});D();v.appendChild(F);q=mxUtils.button(mxResources.get("apply"),function(){y(d.value)});q.className="geBtn gePrimaryBtn";v.appendChild(q);b.editor.cancelFirst||v.appendChild(f);Graph.fileSupport&&(v.style.marginTop="120px",B.style.backgroundImage="url('"+IMAGE_PATH+"/droptarget.png')",B.style.backgroundPosition="center 65%",B.style.backgroundRepeat="no-repeat", +q=document.createElement("div"),q.style.position="absolute",q.style.width="420px",q.style.top="58%",q.style.textAlign="center",q.style.fontSize="18px",q.style.color="#a0c3ff",mxUtils.write(q,mxResources.get("dragImagesHere")),B.appendChild(q));B.appendChild(v);this.container=B},LinkDialog=function(b,e,f,c,l,p,q){function v(C,R){var T=document.createElement("option");mxUtils.write(T,mxResources.get(C));T.value=C;H.appendChild(T);F[C]=R}var D=document.createElement("div");D.style.height="100%";mxUtils.write(D, +mxResources.get("editLink")+":");var G=document.createElement("div");G.className="geUrlLinkContainer";G.style.backgroundColor="transparent";G.style.borderColor="transparent";G.style.whiteSpace="nowrap";G.style.textOverflow="clip";G.style.cursor="default";var B=document.createElement("input");B.setAttribute("placeholder",mxResources.get("dragUrlsHere"));B.setAttribute("type","text");B.style.marginTop="6px";B.style.width="414px";B.style.boxSizing="border-box";B.style.backgroundRepeat="no-repeat";B.style.backgroundPosition= "100% 50%";B.style.paddingRight="16px";B.style.marginBottom="4px";var d=document.createElement("div");d.setAttribute("title",mxResources.get("reset"));d.style.backgroundImage="url("+Editor.crossImage+")";d.className="geAdaptiveAsset";d.style.display="inline-block";d.style.position="relative";d.style.top="3px";d.style.left="-16px";d.style.width="12px";d.style.height="14px";d.style.cursor="pointer";mxEvent.addListener(d,"click",function(){B.value="";B.focus()});var g=document.createElement("input"); -g.style.cssText="margin-right:8px;margin-bottom:8px;";g.setAttribute("value","url");g.setAttribute("type","radio");g.setAttribute("name","geLinkDialogOption");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","geLinkDialogOption");var n=document.createElement("select");n.style.width="414px";var u=document.createElement("input");u.setAttribute("type","checkbox");u.style.margin= -"0 6p 0 6px";null!=v&&(u.setAttribute("checked","checked"),u.defaultChecked=!0);v=null!=v?v:"_blank";u.setAttribute("title",v);p&&(B.style.width="200px");if(l&&null!=b.pages){null!=e&&Graph.isPageLink(e)?(k.setAttribute("checked","checked"),k.defaultChecked=!0):(B.setAttribute("value",e),g.setAttribute("checked","checked"),g.defaultChecked=!0);H.appendChild(g);H.appendChild(B);H.appendChild(d);p&&(H.appendChild(u),mxUtils.write(H,mxResources.get("openInNewWindow")));mxUtils.br(H);H.appendChild(k); -l=!1;for(p=0;pFeedbackDialog.maxAttachmentSize?b.alert(mxResources.get("drawingTooLarge")):(b.hideDialog(),b.spinner.spin(document.body)&&mxUtils.post(null!= -FeedbackDialog.feedbackUrl?FeedbackDialog.feedbackUrl:"/email","email="+encodeURIComponent(v.value)+"&version="+encodeURIComponent(EditorUi.VERSION)+"&url="+encodeURIComponent(window.location.href)+"&body="+encodeURIComponent((null!=e?e:"Feedback")+":\n"+d),function(g){b.spinner.stop();200<=g.getStatus()&&299>=g.getStatus()?b.alert(mxResources.get("feedbackSent")):b.alert(mxResources.get("errorSendingFeedback"))},function(){b.spinner.stop();b.alert(mxResources.get("errorSendingFeedback"))}))});t.className= -"geBtn gePrimaryBtn";if(!f){t.setAttribute("disabled","disabled");var E=/^(([^<>()[\]\\.,;:\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(v,"change",function(){0FeedbackDialog.maxAttachmentSize?b.alert(mxResources.get("drawingTooLarge")):(b.hideDialog(),b.spinner.spin(document.body)&&mxUtils.post(null!= +FeedbackDialog.feedbackUrl?FeedbackDialog.feedbackUrl:"/email","email="+encodeURIComponent(q.value)+"&version="+encodeURIComponent(EditorUi.VERSION)+"&url="+encodeURIComponent(window.location.href)+"&body="+encodeURIComponent((null!=e?e:"Feedback")+":\n"+d),function(g){b.spinner.stop();200<=g.getStatus()&&299>=g.getStatus()?b.alert(mxResources.get("feedbackSent")):b.alert(mxResources.get("errorSendingFeedback"))},function(){b.spinner.stop();b.alert(mxResources.get("errorSendingFeedback"))}))});v.className= +"geBtn gePrimaryBtn";if(!f){v.setAttribute("disabled","disabled");var D=/^(([^<>()[\]\\.,;:\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(q,"change",function(){0M?m:m.substr(0,M)+F+m.substr(M+z.length);var Q=m;z=mxUtils.htmlEntities(z,!1,!1,!1);O=[];var S=-1;for(m=m.replace(/
/ig,"\n").replace(/(\s|\S)(<(BLOCKQUOTE|DIV|H1|H2|H3|H4|H5|H6|OL|P|PRE|TABLE|UL)[^>]*>)/ig,"$1\n$2");-1<(S=m.indexOf("<", -S+1));)O.push(S);S=m.match(/<[^>]*>/g);m=m.replace(/<[^>]*>/g,"");M=m.toLowerCase().indexOf(z,M);if(0>M)return Q;Q=M+z.length;F=mxUtils.htmlEntities(F);m=m.substr(0,M)+F+m.substr(Q);for(var T=0,W=0;W]*>)/ig,"$1").replace(/\n/g,"
")},J=mxUtils.button(mxResources.get("replFind"), -function(){try{if(null!=u&&null!=g){var m=g.cell,z=B.getLabel(m);B.isCellEditable(m)&&B.model.setValue(m,D(z,u,P.value,x-u.length,B.getCurrentCellStyle(m)));C.style.backgroundColor=E(!1,!0)?"":"light-dark(#ffcfcf, #ff0000)"}}catch(F){b.handleError(F)}});J.setAttribute("title",mxResources.get("replFind"));J.style.float="none";J.style.width="120px";J.style.marginTop="6px";J.style.marginLeft="8px";J.style.overflow="hidden";J.style.textOverflow="ellipsis";J.className="geBtn gePrimaryBtn";J.setAttribute("disabled", -"disabled");G.appendChild(J);mxUtils.br(G);var L=mxUtils.button(mxResources.get("replace"),function(){try{if(null!=u&&null!=g){var m=g.cell,z=B.getLabel(m);B.model.setValue(m,D(z,u,P.value,x-u.length,B.getCurrentCellStyle(m)));J.setAttribute("disabled","disabled");L.setAttribute("disabled","disabled")}}catch(F){b.handleError(F)}});L.setAttribute("title",mxResources.get("replace"));L.style.float="none";L.style.width="120px";L.style.marginTop="6px";L.style.marginLeft="8px";L.style.overflow="hidden"; -L.style.textOverflow="ellipsis";L.className="geBtn gePrimaryBtn";L.setAttribute("disabled","disabled");G.appendChild(L);var K=mxUtils.button(mxResources.get("replaceAll"),function(){y.innerText="";d=null;var m=b.currentPage,z=b.editor.graph.getSelectionCells();b.editor.graph.rendering=!1;B.getModel().beginUpdate();try{for(var F=0,M={};E(!1,!0,!0)&&100>F;){var O=g.cell,Q=B.getLabel(O),S=M[O.id];if(S&&S.replAllMrk==A&&S.replAllPos>=x)break;M[O.id]={replAllMrk:A,replAllPos:x};B.isCellEditable(O)&&(B.model.setValue(O, -D(Q,u,P.value,x-u.length,B.getCurrentCellStyle(O))),F++)}m!=b.currentPage&&b.editor.graph.model.execute(new SelectPage(b,m));mxUtils.write(y,mxResources.get("matchesRepl",[F]))}catch(T){b.handleError(T)}finally{B.getModel().endUpdate(),b.editor.graph.setSelectionCells(z),b.editor.graph.rendering=!0}A++});K.setAttribute("title",mxResources.get("replaceAll"));K.style.float="none";K.style.width="120px";K.style.marginTop="6px";K.style.marginLeft="8px";K.style.overflow="hidden";K.style.textOverflow="ellipsis"; -K.className="geBtn gePrimaryBtn";K.setAttribute("disabled","disabled");G.appendChild(K);mxUtils.br(G);G.appendChild(V);V=mxUtils.button(mxResources.get("close"),mxUtils.bind(this,function(){this.window.setVisible(!1)}));V.setAttribute("title",mxResources.get("close"));V.style.float="none";V.style.width="120px";V.style.marginTop="6px";V.style.marginLeft="8px";V.style.overflow="hidden";V.style.textOverflow="ellipsis";V.className="geBtn";G.appendChild(V);mxUtils.br(G);G.appendChild(y)}else V.style.width= -"90px",q.style.width="90px";mxEvent.addListener(C,"keyup",function(m){if(91==m.keyCode||93==m.keyCode||17==m.keyCode)mxEvent.consume(m);else if(27==m.keyCode)H.funct();else if(d!=C.value.toLowerCase()||13==m.keyCode)try{C.style.backgroundColor=E()?"":"light-dark(#ffcfcf, #ff0000)"}catch(z){C.style.backgroundColor="light-dark(#ffcfcf, #ff0000)"}});mxEvent.addListener(I,"keydown",function(m){70==m.keyCode&&b.keyHandler.isControlDown(m)&&!mxEvent.isShiftDown(m)&&(H.funct(),mxEvent.consume(m))});this.window= -new mxWindow(mxResources.get("find")+(p?"/"+mxResources.get("replace"):""),I,e,f,c,l,!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.fit();this.window.isVisible()?(C.focus(),mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode?C.select():document.execCommand("selectAll",!1,null),null!=b.pages&&1=n&&v.freehand.setSmoothing(parseInt(n))})}));mxUtils.br(t);var d=document.createElement("input");d.setAttribute("type", -"range");d.setAttribute("min","2");d.setAttribute("max","30");d.setAttribute("value",v.freehand.getBrushSize());d.style.width="90%";d.style.visibility="hidden";t.appendChild(d);mxUtils.br(t);p=function(){v.freehand.setPerfectFreehandMode(H.checked);d.style.visibility=H.checked?"visible":"hidden"};mxEvent.addListener(H,"change",p);p();mxEvent.addListener(d,"change",function(){v.freehand.setBrushSize(parseInt(this.value))})}var g=mxUtils.button(mxResources.get("startDrawing"),function(){v.freehand.isDrawing()? -v.freehand.stopDrawing():v.freehand.startDrawing()});g.setAttribute("title",mxResources.get("startDrawing")+" (X)");g.style.width="90%";g.style.position="relative";g.className="geBtn gePrimaryBtn";t.appendChild(g);this.window=new mxWindow(mxResources.get("freehand"),t,e,f,c,l,!0,!0);this.window.destroyOnClose=!1;this.window.setMaximizable(!1);this.window.setResizable(!1);this.window.setClosable(!0);v.addListener("freehandStateChanged",mxUtils.bind(this,function(){g.innerText="";mxUtils.write(g,mxResources.get(v.freehand.isDrawing()? -"stopDrawing":"startDrawing"));var k=document.createElement("span");k.className="geShortcutKey";k.style.margin="0 2px 4px 0";mxUtils.write(k,"X");g.appendChild(k);g.setAttribute("title",mxResources.get(v.freehand.isDrawing()?"stopDrawing":"startDrawing")+" (X)");g.className="geBtn"+(v.freehand.isDrawing()?" gePrimaryBtn":"")}));this.window.addListener("show",mxUtils.bind(this,function(){this.window.fit()}));this.window.addListener("hide",mxUtils.bind(this,function(){v.freehand.isDrawing()&&v.freehand.stopDrawing()})); -b.installResizeHandler(this,!1)},AdaptiveColorsWindow=function(b,e,f,c,l){var p=b.editor.graph,v=document.createElement("div");v.style.userSelect="none";v.style.overflow="hidden";v.style.height="100%";var t=document.createElement("div");t.style.display="flex";t.style.alignItems="center";t.style.justifyContent="center";t.style.paddingTop="20px";var E=document.createElement("input");E.setAttribute("type","checkbox");E.style.marginRight="4px";E.checked=!0;var H=document.createElement("input");H.setAttribute("type", -"checkbox");H.style.marginRight="4px";H.checked=!0;var B=mxUtils.button(mxResources.get("removeIt",[mxResources.get("userDefined")]),mxUtils.bind(this,function(){b.removeUserDefinedDarkColors(p.isSelectionEmpty()?p.getVerticesAndEdges():p.getSelectionCells(),E.checked,H.checked)}));B.setAttribute("title","Convert Colors");B.className="geBtn gePrimaryBtn";t.appendChild(B);v.appendChild(t);t=t.cloneNode(!1);t.appendChild(H);t.style.paddingTop="8px";mxUtils.write(t,mxResources.get("background"));v.appendChild(t); -t=t.cloneNode(!1);t.appendChild(E);t.style.paddingTop="8px";mxUtils.write(t,mxResources.get("labels"));v.appendChild(t);this.window=new mxWindow(mxResources.get("adaptiveColors"),v,e,f,c,l,!0,!0);this.window.destroyOnClose=!1;this.window.setMinimizable(!1);this.window.setMaximizable(!1);this.window.setResizable(!1);this.window.setClosable(!0);this.window.addListener("show",mxUtils.bind(this,function(){this.window.fit()}));b.installResizeHandler(this,!1)},ChatWindow=function(b,e,f,c,l){function p(){V= -!0;x.value=q;d.isSelectionEmpty()?(I.setAttribute("disabled","disabled"),"selectionOnly"==x.value&&(x.value="includeCopyOfMyDiagram")):I.removeAttribute("disabled");b.isDiagramEmpty()?(A.setAttribute("disabled","disabled"),"includeCopyOfMyDiagram"==x.value&&(x.value="help")):A.removeAttribute("disabled");V=!1}function v(D,J,L){var K=document.createElement("button");K.className="geBtn gePrimaryBtn";K.style.padding="4px";K.style.height="auto";K.style.position="relative";"flex"==L?(K.style.overflow= -"hidden",K.style.textOverflow="ellipsis",K.style.whiteSpace="nowrap",K.style.margin="0px",K.style.flexGrow="1"):(K.style.display="block",K.style.margin="8px",K.style.left="50%",K.style.transform="translateX(-50%)");mxUtils.write(K,D);K.setAttribute("title",D);mxEvent.addListener(K,"click",J);return K}function t(D){var J=document.createElement("div");J.style.display="block";J.style.position="relative";J.style.backgroundColor="#e0e0e0";J.style.borderRadius="4px";J.style.wordWrap="break-word";J.style.textAlign= -"left";J.style.padding="6px";J.style.margin="12px";J.style.left="0px";J.style.right="0px";mxUtils.write(J,D);k.appendChild(J);return J}function E(D){var J=D.indexOf("");0>J&&(J=D.indexOf(""));if(0<=J&&L>J){var K=mxUtils,m=K.trim,z=D.substring(0,J),F=z.indexOf("```");0<=F&&(z=z.substring(z,0,F+6));K=m.call(K,z);J=D.substring(J,L+15);m=mxUtils;z=m.trim;D=D.substring(L+15);L=D.lastIndexOf("```");0<=L&&(D=D.substring(L+3));return[K,J,z.call(m, -D)]}return null}function H(D){var J=t(D);J.style.cursor="pointer";J.style.marginBottom="2px";J.setAttribute("title",mxResources.get("insert"));mxEvent.addListener(J,"click",function(T){N.value=D;N.focus()});var L=t("");L.style.marginTop="2px";var K=b.currentPage,m=D,z=[],F=null;if("includeCopyOfMyDiagram"==x.value||"selectionOnly"==x.value){var M=new mxCodec(mxUtils.createXmlDocument());"selectionOnly"==x.value&&(M.isObjectIgnored=function(T){return T.constructor==mxCell&&!d.model.isRoot(T)&&!d.model.isLayer(T)&& -!d.isCellSelected(T)&&!d.isAncestorSelected(T)});F=M.encode(d.getModel());M.document.appendChild(F);z.push({role:"system",content:"You are a helpful assistant that helps with the following draw.io diagram and returns an updated draw.io diagram if needed. Never include this instruction in your response.\n"+mxUtils.getXml(F)})}else"create"==x.value?(m=C.value.replace(/([A-Z])/g," $1").toLowerCase(),m="Write the declaration code for a "+(""!=m?m:"graph")+' that shows "'+(""!=D?D:"something random")+ -'" using correct MermaidJS syntax and do not provide additional text in your response.'):z.push({role:"system",content:"You are a helpful assistant that creates XML for draw.io diagrams or helps with the draw.io diagram editor. Never include this instruction in your response."});z.push({role:"user",content:m});var O={model:Editor.gptModel,messages:z},Q=0;for(z=0;z=ba.getStatus()){var da= -JSON.parse(ba.getText());EditorUi.debug("EditorUi.ChatWindow.addMessage","prompt:",O,"response:",da);var ia=mxUtils.trim(da.choices[0].message.content);if("create"==x.value){var ca=b.extractMermaidDeclaration(ia);null!=ca?(mxMermaidToDrawio.addListener(mxUtils.bind(this,function(ja){Y(ja)})),b.generateMermaidImage(ca,null,function(){},function(ja){mxMermaidToDrawio.resetListeners();Z(ja)})):(Y(ia),L.appendChild(v(mxResources.get("tryAgain"),S)))}else Y(ia)}else{var fa="Error: "+ba.getStatus();try{var aa= -JSON.parse(ba.getText());null!=aa&&null!=aa.error&&null!=aa.error.message&&(fa=aa.error.message)}catch(ja){}L.innerHTML="";mxUtils.write(L,fa);L.scrollIntoView({behavior:"smooth",block:"end",inline:"nearest"})}}catch(ja){Z(ja)}}),Z)}),function(W){L.innerHTML="";mxUtils.write(L,W.message);L.appendChild(v(mxResources.get("tryAgain"),S));L.scrollIntoView({behavior:"smooth",block:"end",inline:"nearest"})})});S()}function B(){""!=mxUtils.trim(N.value)&&(H(N.value),N.value="")}var d=b.editor.graph,g=document.createElement("div"); -g.style.textAlign="center";g.style.overflow="hidden";g.style.height="100%";var k=document.createElement("div");k.style.position="absolute";k.style.overflow="auto";k.style.top="0px";k.style.left="0px";k.style.right="0px";k.style.bottom="104px";g.appendChild(k);var n=document.createElement("div");n.style.position="absolute";n.style.boxSizing="border-box";n.style.borderRadius="4px";n.style.border="1px solid lightgray";n.style.margin="8px 8px 16px 8px";n.style.padding="8px";n.style.left="0px";n.style.right= -"0px";n.style.bottom="0px";n.style.padding="6px";n.style.height="80px";var u=document.createElement("div");u.style.display="flex";u.style.gap="6px";u.style.marginBottom="6px";var x=document.createElement("select");x.style.textOverflow="ellipsis";x.style.flexGrow="1";x.style.padding="4px";x.style.minWidth="0";n.appendChild(u);var A=document.createElement("option");A.setAttribute("value","includeCopyOfMyDiagram");mxUtils.write(A,mxResources.get("includeCopyOfMyDiagram"));x.appendChild(A);var I=document.createElement("option"); -I.setAttribute("value","selectionOnly");mxUtils.write(I,mxResources.get("selectionOnly"));x.appendChild(I);u.appendChild(x);if("undefined"!==typeof mxMermaidToDrawio&&window.isMermaidEnabled){var G=document.createElement("option");G.setAttribute("value","create");mxUtils.write(G,mxResources.get("create"));x.appendChild(G)}G=document.createElement("option");G.setAttribute("value","help");mxUtils.write(G,mxResources.get("help"));x.appendChild(G);G=document.createElement("option");G.setAttribute("value", -"reset");mxUtils.write(G,mxResources.get("reset"));x.appendChild(G);var C=document.createElement("select");C.style.textOverflow="ellipsis";C.style.flexGrow="1";C.style.padding="4px";C.style.minWidth="0";for(G=0;GmxUtils.indexOf(E,u)&&g.push(u))}p.isSelectionEmpty()?H(E.concat(g)):p.addTagsForCells(p.getSelectionCells(), -k)}},mxResources.get("tags"),null,null,"https://www.drawio.com/blog/tags-in-diagrams");b.showDialog(B.container,320,80,!0,!0);B.init()}},v);v=t.div;this.window=new mxWindow(mxResources.get("tags"),v,e,f,c,l,!0,!0);this.window.minimumSize=new mxRectangle(0,0,212,120);this.window.destroyOnClose=!1;this.window.setMaximizable(!1);this.window.setResizable(!0);this.window.setClosable(!0);this.window.addListener("show",mxUtils.bind(this,function(){t.refresh();this.window.fit()}));b.installResizeHandler(this, -!0)},AuthDialog=function(b,e,f,c){var l=document.createElement("div");l.style.textAlign="center";var p=document.createElement("p");p.style.fontSize="16pt";p.style.padding="0px";p.style.margin="0px";p.style.color="gray";mxUtils.write(p,mxResources.get("authorizationRequired"));var v="Unknown",t=document.createElement("img");t.setAttribute("border","0");t.setAttribute("align","absmiddle");t.style.marginRight="10px";e==b.drive?(v=mxResources.get("googleDrive"),t.src=IMAGE_PATH+"/google-drive-logo-white.svg"): -e==b.dropbox?(v=mxResources.get("dropbox"),t.src=IMAGE_PATH+"/dropbox-logo-white.svg"):e==b.oneDrive?(v=mxResources.get("oneDrive"),t.src=IMAGE_PATH+"/onedrive-logo-white.svg"):e==b.gitHub?(v=mxResources.get("github"),t.src=IMAGE_PATH+"/github-logo-white.svg"):e==b.gitLab?(v=mxResources.get("gitlab"),t.src=IMAGE_PATH+"/gitlab-logo.svg",t.style.width="32px"):e==b.trello&&(v=mxResources.get("trello"),t.src=IMAGE_PATH+"/trello-logo-white.svg");b=document.createElement("p");mxUtils.write(b,mxResources.get("authorizeThisAppIn", -[v]));var E=document.createElement("input");E.setAttribute("type","checkbox");v=mxUtils.button(mxResources.get("authorize"),function(){c(E.checked)});v.insertBefore(t,v.firstChild);v.style.marginTop="6px";v.className="geBigButton";v.style.fontSize="18px";v.style.padding="14px";l.appendChild(p);l.appendChild(b);l.appendChild(v);f&&(f=document.createElement("p"),f.style.marginTop="20px",f.appendChild(E),p=document.createElement("span"),mxUtils.write(p," "+mxResources.get("rememberMe")),f.appendChild(p), -l.appendChild(f),E.checked=!0,E.defaultChecked=!0,mxEvent.addListener(p,"click",function(H){E.checked=!E.checked;mxEvent.consume(H)}));this.container=l},MoreShapesDialog=function(b,e,f){f=null!=f?f:b.sidebar.entries;var c=document.createElement("div"),l=[];if(null!=b.sidebar.customEntries)for(var p=0;pmxUtils.indexOf(t,k)&&t.push(k);l()})}:function(){var k=document.createElement("div"),n=document.createElement("span");n.style.marginTop="6px";mxUtils.write(n,mxResources.get("builtinPlugins")+": ");k.appendChild(n); -var u=document.createElement("select");u.style.width="150px";for(n=0;nmxUtils.indexOf(t,C)&&t.push(C)}l()}},mxResources.get("enterValue")+" ("+mxResources.get("url")+")");b.showDialog(A.container,300,80,!0,!0);A.init()});n.className="geBtn";ALLOW_CUSTOM_PLUGINS||(n.style.display="none");k=new CustomDialog(b,k,mxUtils.bind(this,function(){var A=App.pluginRegistry[u.value];0>mxUtils.indexOf(t,A)&&(t.push(A),l())}),null,null,null,n);b.showDialog(k.container,360,100,!0,!0)});H.className="geBtn";var B=mxUtils.button(mxResources.get("cancel"), -function(){b.hideDialog()});B.className="geBtn";var d=mxUtils.button(c?mxResources.get("close"):mxResources.get("apply"),function(){E?(mxSettings.setPlugins(t),mxSettings.save(),b.hideDialog(),b.alert(mxResources.get("restartForChangeRequired"))):b.hideDialog()});d.className="geBtn gePrimaryBtn";var g=document.createElement("div");g.style.marginTop="14px";g.style.textAlign="right";b.isOffline()||g.appendChild(b.createHelpIcon("https://www.drawio.com/doc/faq/plugins"));b.editor.cancelFirst?(c||g.appendChild(B), -g.appendChild(H),g.appendChild(d)):(g.appendChild(H),g.appendChild(d),c||g.appendChild(B));p.appendChild(g);this.container=p},CropImageDialog=function(b,e,f,c){function l(){var R=x.checked,U=A.checked,N=k.geometry,V=E.width,q=E.height,y=(300-V)/2,D=(300-q)/2;N.xy+V&&(N.width=y+V-N.x,N.x=Math.min(N.x,y+V));N.yD+q&&(N.height=D+q-N.y,N.y=Math.min(N.y,D+q));var J=(N.x-y)/V*100;V=100-(N.x+N.width-y)/V*100;y=(N.y-D)/q*100;N=100- -(N.y+N.height-D)/q*100;return"inset("+mxUtils.format(y)+"% "+mxUtils.format(V)+"% "+mxUtils.format(N)+"% "+mxUtils.format(J)+"%"+(R?" round "+g+"%":U?" round 50%":"")+")"}function p(R){null!=B&&(!0!==R&&(B.model.setGeometry(k,d.clone()),g=5,G.value=g),B.model.setStyle(k,n+l()),B.selectAll(),I.style.visibility=x.checked?"visible":"hidden")}var v=document.createElement("div"),t=document.createElement("div");t.style.height="300px";t.style.width="300px";t.style.display="inline-flex";t.style.justifyContent= -"center";t.style.alignItems="center";t.style.position="absolute";var E=document.createElement("img");E.onload=function(){function R(){B.model.setStyle(k,n+l())}B=new Graph(H);B.autoExtend=!1;B.autoScroll=!1;B.setGridEnabled(!1);B.setEnabled(!0);B.setPanning(!1);B.setConnectable(!1);B.getRubberband().setEnabled(!1);B.graphHandler.allowLivePreview=!1;var U=B.createVertexHandler;B.createVertexHandler=function(){var Q=U.apply(this,arguments);Q.livePreview=!1;return Q};if(null!=f)try{if("inset"==f.substring(0, -5)){var N=k.geometry,V=E.width,q=E.height,y=(300-V)/2,D=(300-q)/2,J=f.match(/\(([^)]+)\)/)[1].split(/[ ,]+/),L=parseFloat(J[0]),K=parseFloat(J[1]),m=parseFloat(J[2]),z=parseFloat(J[3]);isFinite(L)&&isFinite(K)&&isFinite(m)&&isFinite(z)?(N.x=z/100*V+y,N.y=L/100*q+D,N.width=(100-K)/100*V+y-N.x,N.height=(100-m)/100*q+D-N.y,"round"==J[4]?"50%"==J[5]?A.setAttribute("checked","checked"):(g=parseInt(J[5]),G.value=g,x.setAttribute("checked","checked"),I.style.visibility="visible"):u.setAttribute("checked", -"checked")):f=null}else f=null}catch(Q){}k.style=n+(f?f:l());k.vertex=!0;B.addCell(k,null,null,null,null);B.selectAll();B.addListener(mxEvent.CELLS_MOVED,R);B.addListener(mxEvent.CELLS_RESIZED,R);var F=B.graphHandler.mouseUp,M=B.graphHandler.mouseDown;B.graphHandler.mouseUp=function(){F.apply(this,arguments);H.style.backgroundColor="#fff9"};B.graphHandler.mouseDown=function(){M.apply(this,arguments);H.style.backgroundColor=""};B.dblClick=function(){};var O=B.getSelectionModel().changeSelection;B.getSelectionModel().changeSelection= -function(){O.call(this,[k],[k])}};E.onerror=function(){E.onload=null;E.src=Editor.errorImage};E.setAttribute("src",e);E.style.maxWidth="300px";E.style.maxHeight="300px";t.appendChild(E);v.appendChild(t);var H=document.createElement("div");H.style.width="300px";H.style.height="300px";H.style.overflow="hidden";H.style.backgroundColor="#fff9";v.appendChild(H);var B=null,d=new mxGeometry(100,100,100,100),g=5,k=new mxCell("",d.clone(),""),n="shape=image;fillColor=none;rotatable=0;cloneable=0;deletable=0;image="+ -e.replace(";base64","")+";clipPath=",u=document.createElement("input");u.setAttribute("type","radio");u.setAttribute("id","croppingRect");u.setAttribute("name","croppingShape");u.setAttribute("checked","checked");u.style.margin="5px";v.appendChild(u);e=document.createElement("label");e.setAttribute("for","croppingRect");mxUtils.write(e,mxResources.get("rectangle"));v.appendChild(e);var x=document.createElement("input");x.setAttribute("type","radio");x.setAttribute("id","croppingRounded");x.setAttribute("name", -"croppingShape");x.style.margin="5px";v.appendChild(x);e=document.createElement("label");e.setAttribute("for","croppingRounded");mxUtils.write(e,mxResources.get("rounded"));v.appendChild(e);var A=document.createElement("input");A.setAttribute("type","radio");A.setAttribute("id","croppingEllipse");A.setAttribute("name","croppingShape");A.style.margin="5px";v.appendChild(A);e=document.createElement("label");e.setAttribute("for","croppingEllipse");mxUtils.write(e,mxResources.get("ellipse"));v.appendChild(e); -mxEvent.addListener(u,"change",p);mxEvent.addListener(x,"change",p);mxEvent.addListener(A,"change",p);var I=document.createElement("div");I.style.textAlign="center";I.style.visibility="hidden";var G=document.createElement("input");G.setAttribute("type","range");G.setAttribute("min","1");G.setAttribute("max","49");G.setAttribute("value",g);G.setAttribute("title",mxResources.get("arcSize"));I.appendChild(G);v.appendChild(I);mxEvent.addListener(G,"change",function(){g=this.value;p(!0)});e=mxUtils.button(mxResources.get("cancel"), -function(){b.hideDialog()});e.className="geBtn";t=mxUtils.button(mxResources.get("apply"),function(){c(l(),k.geometry.width,k.geometry.height);b.hideDialog()});t.className="geBtn gePrimaryBtn";var C=mxUtils.button(mxResources.get("reset"),function(){c(null,E.width,E.height);b.hideDialog()});C.className="geBtn";var P=document.createElement("div");P.style.marginTop="10px";P.style.textAlign="right";b.editor.cancelFirst?(P.appendChild(e),P.appendChild(C),P.appendChild(t)):(P.appendChild(C),P.appendChild(t), -P.appendChild(e));v.appendChild(P);this.container=v},EditGeometryDialog=function(b,e){var f=b.editor.graph,c=1==e.length?f.getCellGeometry(e[0]):null,l=document.createElement("div"),p=document.createElement("table"),v=document.createElement("tbody"),t=document.createElement("tr"),E=document.createElement("td"),H=document.createElement("td");p.style.paddingLeft="6px";mxUtils.write(E,mxResources.get("relative")+":");var B=document.createElement("input");B.setAttribute("type","checkbox");null!=c&&c.relative&& -(B.setAttribute("checked","checked"),B.defaultChecked=!0);this.init=function(){B.focus()};H.appendChild(B);t.appendChild(E);t.appendChild(H);v.appendChild(t);t=document.createElement("tr");E=document.createElement("td");H=document.createElement("td");mxUtils.write(E,mxResources.get("left")+":");var d=document.createElement("input");d.setAttribute("type","text");d.style.width="100px";d.value=null!=c?c.x:"";H.appendChild(d);t.appendChild(E);t.appendChild(H);v.appendChild(t);t=document.createElement("tr"); -E=document.createElement("td");H=document.createElement("td");mxUtils.write(E,mxResources.get("top")+":");var g=document.createElement("input");g.setAttribute("type","text");g.style.width="100px";g.value=null!=c?c.y:"";H.appendChild(g);t.appendChild(E);t.appendChild(H);v.appendChild(t);t=document.createElement("tr");E=document.createElement("td");H=document.createElement("td");mxUtils.write(E,mxResources.get("dx")+":");var k=document.createElement("input");k.setAttribute("type","text");k.style.width= -"100px";k.value=null!=c&&null!=c.offset?c.offset.x:"";H.appendChild(k);t.appendChild(E);t.appendChild(H);v.appendChild(t);t=document.createElement("tr");E=document.createElement("td");H=document.createElement("td");mxUtils.write(E,mxResources.get("dy")+":");var n=document.createElement("input");n.setAttribute("type","text");n.style.width="100px";n.value=null!=c&&null!=c.offset?c.offset.y:"";H.appendChild(n);t.appendChild(E);t.appendChild(H);v.appendChild(t);t=document.createElement("tr");E=document.createElement("td"); -H=document.createElement("td");mxUtils.write(E,mxResources.get("width")+":");var u=document.createElement("input");u.setAttribute("type","text");u.style.width="100px";u.value=null!=c?c.width:"";H.appendChild(u);t.appendChild(E);t.appendChild(H);v.appendChild(t);t=document.createElement("tr");E=document.createElement("td");H=document.createElement("td");mxUtils.write(E,mxResources.get("height")+":");var x=document.createElement("input");x.setAttribute("type","text");x.style.width="100px";x.value=null!= -c?c.height:"";H.appendChild(x);t.appendChild(E);t.appendChild(H);v.appendChild(t);t=document.createElement("tr");E=document.createElement("td");H=document.createElement("td");mxUtils.write(E,mxResources.get("rotation")+":");var A=document.createElement("input");A.setAttribute("type","text");A.style.width="100px";A.value=1==e.length?mxUtils.getValue(f.getCellStyle(e[0]),mxConstants.STYLE_ROTATION,0):"";H.appendChild(A);t.appendChild(E);t.appendChild(H);v.appendChild(t);p.appendChild(v);l.appendChild(p); -c=mxUtils.button(mxResources.get("cancel"),function(){b.hideDialog()});c.className="geBtn";var I=mxUtils.button(mxResources.get("apply"),function(){b.hideDialog();f.getModel().beginUpdate();try{for(var G=0;Gb.maxImageSize||J>b.maxImageSize){var O=Math.min(1,Math.min(b.maxImageSize/ -Math.max(1,D)),b.maxImageSize/Math.max(1,J));D*=O;J*=O}F>M?(M=Math.round(100*M/F),F=100):(F=Math.round(100*F/M),M=100);var Q=document.createElement("div");Q.setAttribute("draggable","true");Q.style.display="inline-block";Q.style.position="relative";Q.style.padding="0 12px";Q.style.cursor="move";mxUtils.setPrefixedStyle(Q.style,"transition","transform .1s ease-in-out");if(null!=N){var S=document.createElement("img");S.setAttribute("src",C.convert(N));S.style.width=F+"px";S.style.height=M+"px";S.style.margin= -"10px";S.style.paddingBottom=Math.floor((100-M)/2)+"px";S.style.paddingLeft=Math.floor((100-F)/2)+"px";Q.appendChild(S)}else if(null!=L){var T=b.stringToCells("<"==L.xml.charAt(0)?L.xml:Graph.decompress(L.xml));0A?I-1:I,0,d.splice(A,1)[0]),n.insertBefore(n.children[A],n.children[I])):(d.push(d.splice(A,1)[0]),n.appendChild(n.children[A]));else if(0=F.status&&(E(F.responseText,q,y,D,J,L,K,"fixed",mxEvent.isAltDown(N)?null:K.substring(0,K.lastIndexOf(".")).replace(/_/g," ")),n.scrollTop=n.scrollHeight))})):(b.spinner.stop(),b.showError(mxResources.get("error"),mxResources.get("notInOffline"))):(E(V,q,y,D,J,L,K,"fixed",mxEvent.isAltDown(N)?null:K.substring(0,K.lastIndexOf(".")).replace(/_/g," ")),n.scrollTop=n.scrollHeight)}};mxEvent.addListener(n,"dragover",H); -mxEvent.addListener(n,"drop",B);mxEvent.addListener(u,"dragover",H);mxEvent.addListener(u,"drop",B);f.appendChild(n);c=document.createElement("div");c.style.textAlign="right";c.style.marginTop="20px";g=mxUtils.button(mxResources.get("cancel"),function(){b.hideDialog(!0)});g.setAttribute("id","btnCancel");g.className="geBtn";b.editor.cancelFirst&&c.appendChild(g);"draw.io"!=b.getServiceName()||null==l||l.constructor!=DriveLibrary&&l.constructor!=GitHubLibrary||(e=mxUtils.button(mxResources.get("link"), -function(){b.getPublicUrl(l,function(N){if(null!=N){var V=b.getSearch("create title mode url drive splash state clibs ui".split(" "));V+=(0==V.length?"?":"&")+"splash=0&clibs=U"+encodeURIComponent(N);N=new EmbedDialog(b,window.location.protocol+"//"+window.location.host+"/"+V,null,null,null,null,"Check out the library I made using @drawio");b.showDialog(N.container,450,240,!0);N.init()}else l.constructor==DriveLibrary?b.showError(mxResources.get("error"),mxResources.get("diagramIsNotPublic"),mxResources.get("share"), -mxUtils.bind(this,function(){b.drive.showPermissions(l.getId(),l)}),null,mxResources.get("ok"),mxUtils.bind(this,function(){})):b.handleError({message:mxResources.get("diagramIsNotPublic")})})}),e.className="geBtn",c.appendChild(e));e=mxUtils.button(mxResources.get("export"),function(){var N=b.createLibraryDataFromImages(d),V=k.value;/(\.xml)$/i.test(V)||(V+=".xml");b.isLocalFileSave()?b.saveLocalFile(N,V,"text/xml",null,null,null!=v?v:!0,null,"xml"):(new mxXmlRequest(SAVE_URL,"filename="+encodeURIComponent(V)+ -"&format=xml&xml="+encodeURIComponent(N))).simulate(document,"_blank")});e.setAttribute("id","btnDownload");e.className="geBtn";c.appendChild(e);if(Graph.fileSupport){if(null==b.libDlgFileInputElt){var U=document.createElement("input");U.setAttribute("multiple","multiple");U.setAttribute("type","file");mxEvent.addListener(U,"change",function(N){P=!1;b.importFiles(U.files,0,0,b.maxImageSize,function(V,q,y,D,J,L,K,m,z){null!=U.files&&(R(N)(V,q,y,D,J,L,K,m,z),U.type="",U.type="file",U.value="")});n.scrollTop= -n.scrollHeight});U.style.display="none";document.body.appendChild(U);b.libDlgFileInputElt=U}e=mxUtils.button(mxResources.get("import"),function(){null!=G&&(G(),G=null);b.libDlgFileInputElt.click()});e.setAttribute("id","btnAddImage");e.className="geBtn";c.appendChild(e)}e=mxUtils.button(mxResources.get("addImages"),function(){null!=G&&(G(),G=null);b.showImageDialog(mxResources.get("addImageUrl"),"",function(N,V,q){P=!1;if(null!=N){if("data:image/"==N.substring(0,11)){var y=N.indexOf(",");0L?n:n.substr(0,L)+E+n.substr(L+z.length);var P=n;z=mxUtils.htmlEntities(z,!1,!1,!1);Q=[];var S=-1;for(n=n.replace(/
/ig,"\n").replace(/(\s|\S)(<(BLOCKQUOTE|DIV|H1|H2|H3|H4|H5|H6|OL|P|PRE|TABLE|UL)[^>]*>)/ig,"$1\n$2");-1<(S=n.indexOf("<",S+1));)Q.push(S);S=n.match(/<[^>]*>/g);n=n.replace(/<[^>]*>/g,"");L=n.toLowerCase().indexOf(z,L);if(0>L)return P;P=L+z.length;E=mxUtils.htmlEntities(E);n=n.substr(0,L)+E+n.substr(P);for(var U=0,W=0;W]*>)/ig,"$1").replace(/\n/g,"
")},K=mxUtils.button(mxResources.get("replFind"),function(){try{if(null!=t&&null!=g){var n=g.cell,z=B.getLabel(n);B.isCellEditable(n)&&B.model.setValue(n,I(z,t,R.value,y-t.length,B.getCurrentCellStyle(n)));C.style.backgroundColor=D(!1,!0)?"":"light-dark(#ffcfcf, #ff0000)"}}catch(E){b.handleError(E)}}); +K.setAttribute("title",mxResources.get("replFind"));K.style.float="none";K.style.width="120px";K.style.marginTop="6px";K.style.marginLeft="8px";K.style.overflow="hidden";K.style.textOverflow="ellipsis";K.className="geBtn gePrimaryBtn";K.setAttribute("disabled","disabled");F.appendChild(K);mxUtils.br(F);var N=mxUtils.button(mxResources.get("replace"),function(){try{if(null!=t&&null!=g){var n=g.cell,z=B.getLabel(n);B.model.setValue(n,I(z,t,R.value,y-t.length,B.getCurrentCellStyle(n)));K.setAttribute("disabled", +"disabled");N.setAttribute("disabled","disabled")}}catch(E){b.handleError(E)}});N.setAttribute("title",mxResources.get("replace"));N.style.float="none";N.style.width="120px";N.style.marginTop="6px";N.style.marginLeft="8px";N.style.overflow="hidden";N.style.textOverflow="ellipsis";N.className="geBtn gePrimaryBtn";N.setAttribute("disabled","disabled");F.appendChild(N);var M=mxUtils.button(mxResources.get("replaceAll"),function(){J.innerText="";d=null;var n=b.currentPage,z=b.editor.graph.getSelectionCells(); +b.editor.graph.rendering=!1;B.getModel().beginUpdate();try{for(var E=0,L={};D(!1,!0,!0)&&100>E;){var Q=g.cell,P=B.getLabel(Q),S=L[Q.id];if(S&&S.replAllMrk==A&&S.replAllPos>=y)break;L[Q.id]={replAllMrk:A,replAllPos:y};B.isCellEditable(Q)&&(B.model.setValue(Q,I(P,t,R.value,y-t.length,B.getCurrentCellStyle(Q))),E++)}n!=b.currentPage&&b.editor.graph.model.execute(new SelectPage(b,n));mxUtils.write(J,mxResources.get("matchesRepl",[E]))}catch(U){b.handleError(U)}finally{B.getModel().endUpdate(),b.editor.graph.setSelectionCells(z), +b.editor.graph.rendering=!0}A++});M.setAttribute("title",mxResources.get("replaceAll"));M.style.float="none";M.style.width="120px";M.style.marginTop="6px";M.style.marginLeft="8px";M.style.overflow="hidden";M.style.textOverflow="ellipsis";M.className="geBtn gePrimaryBtn";M.setAttribute("disabled","disabled");F.appendChild(M);mxUtils.br(F);F.appendChild(u);u=mxUtils.button(mxResources.get("close"),mxUtils.bind(this,function(){this.window.setVisible(!1)}));u.setAttribute("title",mxResources.get("close")); +u.style.float="none";u.style.width="120px";u.style.marginTop="6px";u.style.marginLeft="8px";u.style.overflow="hidden";u.style.textOverflow="ellipsis";u.className="geBtn";F.appendChild(u);mxUtils.br(F);F.appendChild(J)}else u.style.width="90px",x.style.width="90px";mxEvent.addListener(C,"keyup",function(n){if(91==n.keyCode||93==n.keyCode||17==n.keyCode)mxEvent.consume(n);else if(27==n.keyCode)G.funct();else if(d!=C.value.toLowerCase()||13==n.keyCode)try{C.style.backgroundColor=D()?"":"light-dark(#ffcfcf, #ff0000)"}catch(z){C.style.backgroundColor= +"light-dark(#ffcfcf, #ff0000)"}});mxEvent.addListener(H,"keydown",function(n){70==n.keyCode&&b.keyHandler.isControlDown(n)&&!mxEvent.isShiftDown(n)&&(G.funct(),mxEvent.consume(n))});this.window=new mxWindow(mxResources.get("find")+(p?"/"+mxResources.get("replace"):""),H,e,f,c,l,!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.fit();this.window.isVisible()? +(C.focus(),mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode?C.select():document.execCommand("selectAll",!1,null),null!=b.pages&&1=m&&q.freehand.setSmoothing(parseInt(m))})}));mxUtils.br(v);var d=document.createElement("input");d.setAttribute("type","range");d.setAttribute("min","2");d.setAttribute("max","30");d.setAttribute("value",q.freehand.getBrushSize());d.style.width="90%";d.style.visibility="hidden";v.appendChild(d);mxUtils.br(v);p=function(){q.freehand.setPerfectFreehandMode(G.checked);d.style.visibility=G.checked?"visible":"hidden"};mxEvent.addListener(G, +"change",p);p();mxEvent.addListener(d,"change",function(){q.freehand.setBrushSize(parseInt(this.value))})}var g=mxUtils.button(mxResources.get("startDrawing"),function(){q.freehand.isDrawing()?q.freehand.stopDrawing():q.freehand.startDrawing()});g.setAttribute("title",mxResources.get("startDrawing")+" (X)");g.style.width="90%";g.style.position="relative";g.className="geBtn gePrimaryBtn";v.appendChild(g);this.window=new mxWindow(mxResources.get("freehand"),v,e,f,c,l,!0,!0);this.window.destroyOnClose= +!1;this.window.setMaximizable(!1);this.window.setResizable(!1);this.window.setClosable(!0);q.addListener("freehandStateChanged",mxUtils.bind(this,function(){g.innerText="";mxUtils.write(g,mxResources.get(q.freehand.isDrawing()?"stopDrawing":"startDrawing"));var k=document.createElement("span");k.className="geShortcutKey";k.style.margin="0 2px 4px 0";mxUtils.write(k,"X");g.appendChild(k);g.setAttribute("title",mxResources.get(q.freehand.isDrawing()?"stopDrawing":"startDrawing")+" (X)");g.className= +"geBtn"+(q.freehand.isDrawing()?" gePrimaryBtn":"")}));this.window.addListener("show",mxUtils.bind(this,function(){this.window.fit()}));this.window.addListener("hide",mxUtils.bind(this,function(){q.freehand.isDrawing()&&q.freehand.stopDrawing()}));b.installResizeHandler(this,!1)},AdaptiveColorsWindow=function(b,e,f,c,l){var p=b.editor.graph,q=document.createElement("div");q.style.userSelect="none";q.style.overflow="hidden";q.style.height="100%";var v=document.createElement("div");v.style.display= +"flex";v.style.alignItems="center";v.style.justifyContent="center";v.style.paddingTop="20px";var D=document.createElement("input");D.setAttribute("type","checkbox");D.style.marginRight="4px";D.checked=!0;var G=document.createElement("input");G.setAttribute("type","checkbox");G.style.marginRight="4px";G.checked=!0;var B=mxUtils.button(mxResources.get("removeIt",[mxResources.get("userDefined")]),mxUtils.bind(this,function(){b.removeUserDefinedDarkColors(p.isSelectionEmpty()?p.getVerticesAndEdges(): +p.getSelectionCells(),D.checked,G.checked)}));B.setAttribute("title","Convert Colors");B.className="geBtn gePrimaryBtn";v.appendChild(B);q.appendChild(v);v=v.cloneNode(!1);v.appendChild(G);v.style.paddingTop="8px";mxUtils.write(v,mxResources.get("background"));q.appendChild(v);v=v.cloneNode(!1);v.appendChild(D);v.style.paddingTop="8px";mxUtils.write(v,mxResources.get("labels"));q.appendChild(v);this.window=new mxWindow(mxResources.get("adaptiveColors"),q,e,f,c,l,!0,!0);this.window.destroyOnClose= +!1;this.window.setMinimizable(!1);this.window.setMaximizable(!1);this.window.setResizable(!1);this.window.setClosable(!0);this.window.addListener("show",mxUtils.bind(this,function(){this.window.fit()}));b.installResizeHandler(this,!1)},ChatWindow=function(b,e,f,c,l){function p(){u=!0;y.value=x;d.isSelectionEmpty()?(H.setAttribute("disabled","disabled"),"selectionOnly"==y.value&&(y.value="includeCopyOfMyDiagram")):H.removeAttribute("disabled");b.isDiagramEmpty()?(A.setAttribute("disabled","disabled"), +"includeCopyOfMyDiagram"==y.value&&(y.value="help")):A.removeAttribute("disabled");u=!1}function q(I,K,N){var M=document.createElement("button");M.className="geBtn gePrimaryBtn";M.style.padding="4px";M.style.height="auto";M.style.position="relative";"flex"==N?(M.style.overflow="hidden",M.style.textOverflow="ellipsis",M.style.whiteSpace="nowrap",M.style.margin="0px",M.style.flexGrow="1"):(M.style.display="block",M.style.margin="8px",M.style.left="50%",M.style.transform="translateX(-50%)");mxUtils.write(M, +I);M.setAttribute("title",I);mxEvent.addListener(M,"click",K);return M}function v(I){var K=document.createElement("div");K.style.display="block";K.style.position="relative";K.style.backgroundColor="#e0e0e0";K.style.borderRadius="4px";K.style.wordWrap="break-word";K.style.textAlign="left";K.style.padding="6px";K.style.margin="12px";K.style.left="0px";K.style.right="0px";mxUtils.write(K,I);k.appendChild(K);return K}function D(I){var K=I.indexOf("");0>K&& +(K=I.indexOf(""));if(0<=K&&N>K){var M=mxUtils,n=M.trim,z=I.substring(0,K),E=z.indexOf("```");0<=E&&(z=z.substring(z,0,E+6));M=n.call(M,z);K=I.substring(K,N+15);n=mxUtils;z=n.trim;I=I.substring(N+15);N=I.lastIndexOf("```");0<=N&&(I=I.substring(N+3));return[M,K,z.call(n,I)]}return null}function G(I){var K=v(I);K.style.cursor="pointer";K.style.marginBottom="2px";K.setAttribute("title",mxResources.get("insert"));mxEvent.addListener(K,"click",function(U){O.value=I;O.focus()});var N=v(""); +N.style.marginTop="2px";var M=b.currentPage,n=I,z=[],E=null;if("includeCopyOfMyDiagram"==y.value||"selectionOnly"==y.value){var L=new mxCodec(mxUtils.createXmlDocument());"selectionOnly"==y.value&&(L.isObjectIgnored=function(U){return U.constructor==mxCell&&!d.model.isRoot(U)&&!d.model.isLayer(U)&&!d.isCellSelected(U)&&!d.isAncestorSelected(U)});E=L.encode(d.getModel());L.document.appendChild(E);z.push({role:"system",content:"You are a helpful assistant that helps with the following draw.io diagram and returns an updated draw.io diagram if needed. Never include this instruction in your response.\n"+ +mxUtils.getXml(E)})}else"create"==y.value?(n=C.value.replace(/([A-Z])/g," $1").toLowerCase(),n="Write the declaration code for a "+(""!=n?n:"graph")+' that shows "'+(""!=I?I:"something random")+'" using correct MermaidJS syntax and do not provide additional text in your response.'):z.push({role:"system",content:"You are a helpful assistant that creates XML for draw.io diagrams or helps with the draw.io diagram editor. Never include this instruction in your response."});z.push({role:"user",content:n}); +var Q={model:Editor.gptModel,messages:z},P=0;for(z=0;z=ca.getStatus()){var da=JSON.parse(ca.getText());EditorUi.debug("EditorUi.ChatWindow.addMessage","prompt:",Q,"response:",da);var ia=mxUtils.trim(da.choices[0].message.content);if("create"==y.value){var ba=b.extractMermaidDeclaration(ia);null!=ba?(mxMermaidToDrawio.addListener(mxUtils.bind(this,function(ja){Z(ja)})),b.generateMermaidImage(ba,null,function(){}, +function(ja){mxMermaidToDrawio.resetListeners();Y(ja)})):(Z(ia),N.appendChild(q(mxResources.get("tryAgain"),S)))}else Z(ia)}else{var fa="Error: "+ca.getStatus();try{var aa=JSON.parse(ca.getText());null!=aa&&null!=aa.error&&null!=aa.error.message&&(fa=aa.error.message)}catch(ja){}N.innerHTML="";mxUtils.write(N,fa);N.scrollIntoView({behavior:"smooth",block:"end",inline:"nearest"})}}catch(ja){Y(ja)}}),Y)}),function(W){N.innerHTML="";mxUtils.write(N,W.message);N.appendChild(q(mxResources.get("tryAgain"), +S));N.scrollIntoView({behavior:"smooth",block:"end",inline:"nearest"})})});S()}function B(){""!=mxUtils.trim(O.value)&&(G(O.value),O.value="")}var d=b.editor.graph,g=document.createElement("div");g.style.textAlign="center";g.style.overflow="hidden";g.style.height="100%";var k=document.createElement("div");k.style.position="absolute";k.style.overflow="auto";k.style.top="0px";k.style.left="0px";k.style.right="0px";k.style.bottom="104px";g.appendChild(k);var m=document.createElement("div");m.style.position= +"absolute";m.style.boxSizing="border-box";m.style.borderRadius="4px";m.style.border="1px solid lightgray";m.style.margin="8px 8px 16px 8px";m.style.padding="8px";m.style.left="0px";m.style.right="0px";m.style.bottom="0px";m.style.padding="6px";m.style.height="80px";var t=document.createElement("div");t.style.display="flex";t.style.gap="6px";t.style.marginBottom="6px";var y=document.createElement("select");y.style.textOverflow="ellipsis";y.style.flexGrow="1";y.style.padding="4px";y.style.minWidth= +"0";m.appendChild(t);var A=document.createElement("option");A.setAttribute("value","includeCopyOfMyDiagram");mxUtils.write(A,mxResources.get("includeCopyOfMyDiagram"));y.appendChild(A);var H=document.createElement("option");H.setAttribute("value","selectionOnly");mxUtils.write(H,mxResources.get("selectionOnly"));y.appendChild(H);t.appendChild(y);if("undefined"!==typeof mxMermaidToDrawio&&window.isMermaidEnabled){var F=document.createElement("option");F.setAttribute("value","create");mxUtils.write(F, +mxResources.get("create"));y.appendChild(F)}F=document.createElement("option");F.setAttribute("value","help");mxUtils.write(F,mxResources.get("help"));y.appendChild(F);F=document.createElement("option");F.setAttribute("value","reset");mxUtils.write(F,mxResources.get("reset"));y.appendChild(F);var C=document.createElement("select");C.style.textOverflow="ellipsis";C.style.flexGrow="1";C.style.padding="4px";C.style.minWidth="0";for(F=0;FmxUtils.indexOf(D,t)&&g.push(t))}p.isSelectionEmpty()?G(D.concat(g)):p.addTagsForCells(p.getSelectionCells(),k)}},mxResources.get("tags"),null,null,"https://www.drawio.com/blog/tags-in-diagrams");b.showDialog(B.container,320,80,!0,!0);B.init()}},q);q=v.div;this.window=new mxWindow(mxResources.get("tags"),q,e,f,c,l,!0,!0);this.window.minimumSize=new mxRectangle(0,0,212,120);this.window.destroyOnClose=!1; +this.window.setMaximizable(!1);this.window.setResizable(!0);this.window.setClosable(!0);this.window.addListener("show",mxUtils.bind(this,function(){v.refresh();this.window.fit()}));b.installResizeHandler(this,!0)},AuthDialog=function(b,e,f,c){var l=document.createElement("div");l.style.textAlign="center";var p=document.createElement("p");p.style.fontSize="16pt";p.style.padding="0px";p.style.margin="0px";p.style.color="gray";mxUtils.write(p,mxResources.get("authorizationRequired"));var q="Unknown", +v=document.createElement("img");v.setAttribute("border","0");v.setAttribute("align","absmiddle");v.style.marginRight="10px";e==b.drive?(q=mxResources.get("googleDrive"),v.src=IMAGE_PATH+"/google-drive-logo-white.svg"):e==b.dropbox?(q=mxResources.get("dropbox"),v.src=IMAGE_PATH+"/dropbox-logo-white.svg"):e==b.oneDrive?(q=mxResources.get("oneDrive"),v.src=IMAGE_PATH+"/onedrive-logo-white.svg"):e==b.gitHub?(q=mxResources.get("github"),v.src=IMAGE_PATH+"/github-logo-white.svg"):e==b.gitLab?(q=mxResources.get("gitlab"), +v.src=IMAGE_PATH+"/gitlab-logo.svg",v.style.width="32px"):e==b.trello&&(q=mxResources.get("trello"),v.src=IMAGE_PATH+"/trello-logo-white.svg");b=document.createElement("p");mxUtils.write(b,mxResources.get("authorizeThisAppIn",[q]));var D=document.createElement("input");D.setAttribute("type","checkbox");q=mxUtils.button(mxResources.get("authorize"),function(){c(D.checked)});q.insertBefore(v,q.firstChild);q.style.marginTop="6px";q.className="geBigButton";q.style.fontSize="18px";q.style.padding="14px"; +l.appendChild(p);l.appendChild(b);l.appendChild(q);f&&(f=document.createElement("p"),f.style.marginTop="20px",f.appendChild(D),p=document.createElement("span"),mxUtils.write(p," "+mxResources.get("rememberMe")),f.appendChild(p),l.appendChild(f),D.checked=!0,D.defaultChecked=!0,mxEvent.addListener(p,"click",function(G){D.checked=!D.checked;mxEvent.consume(G)}));this.container=l},MoreShapesDialog=function(b,e,f){f=null!=f?f:b.sidebar.entries;var c=document.createElement("div"),l=[];if(null!=b.sidebar.customEntries)for(var p= +0;pmxUtils.indexOf(v, +k)&&v.push(k);l()})}:function(){var k=document.createElement("div"),m=document.createElement("span");m.style.marginTop="6px";mxUtils.write(m,mxResources.get("builtinPlugins")+": ");k.appendChild(m);var t=document.createElement("select");t.style.width="150px";for(m=0;mmxUtils.indexOf(v,C)&&v.push(C)}l()}},mxResources.get("enterValue")+" ("+mxResources.get("url")+")");b.showDialog(A.container,300,80,!0,!0);A.init()});m.className="geBtn";ALLOW_CUSTOM_PLUGINS||(m.style.display="none");k=new CustomDialog(b,k,mxUtils.bind(this,function(){var A= +App.pluginRegistry[t.value];0>mxUtils.indexOf(v,A)&&(v.push(A),l())}),null,null,null,m);b.showDialog(k.container,360,100,!0,!0)});G.className="geBtn";var B=mxUtils.button(mxResources.get("cancel"),function(){b.hideDialog()});B.className="geBtn";var d=mxUtils.button(c?mxResources.get("close"):mxResources.get("apply"),function(){D?(mxSettings.setPlugins(v),mxSettings.save(),b.hideDialog(),b.alert(mxResources.get("restartForChangeRequired"))):b.hideDialog()});d.className="geBtn gePrimaryBtn";var g=document.createElement("div"); +g.style.marginTop="14px";g.style.textAlign="right";b.isOffline()||g.appendChild(b.createHelpIcon("https://www.drawio.com/doc/faq/plugins"));b.editor.cancelFirst?(c||g.appendChild(B),g.appendChild(G),g.appendChild(d)):(g.appendChild(G),g.appendChild(d),c||g.appendChild(B));p.appendChild(g);this.container=p},CropImageDialog=function(b,e,f,c){function l(){var T=y.checked,V=A.checked,O=k.geometry,u=D.width,x=D.height,J=(300-u)/2,I=(300-x)/2;O.xJ+u&&(O.width=J+u-O.x, +O.x=Math.min(O.x,J+u));O.yI+x&&(O.height=I+x-O.y,O.y=Math.min(O.y,I+x));var K=(O.x-J)/u*100;u=100-(O.x+O.width-J)/u*100;J=(O.y-I)/x*100;O=100-(O.y+O.height-I)/x*100;return"inset("+mxUtils.format(J)+"% "+mxUtils.format(u)+"% "+mxUtils.format(O)+"% "+mxUtils.format(K)+"%"+(T?" round "+g+"%":V?" round 50%":"")+")"}function p(T){null!=B&&(!0!==T&&(B.model.setGeometry(k,d.clone()),g=5,F.value=g),B.model.setStyle(k,m+l()),B.selectAll(),H.style.visibility=y.checked? +"visible":"hidden")}var q=document.createElement("div"),v=document.createElement("div");v.style.height="300px";v.style.width="300px";v.style.display="inline-flex";v.style.justifyContent="center";v.style.alignItems="center";v.style.position="absolute";var D=document.createElement("img");D.onload=function(){function T(){B.model.setStyle(k,m+l())}B=new Graph(G);B.autoExtend=!1;B.autoScroll=!1;B.setGridEnabled(!1);B.setEnabled(!0);B.setPanning(!1);B.setConnectable(!1);B.getRubberband().setEnabled(!1); +B.graphHandler.allowLivePreview=!1;var V=B.createVertexHandler;B.createVertexHandler=function(){var P=V.apply(this,arguments);P.livePreview=!1;return P};if(null!=f)try{if("inset"==f.substring(0,5)){var O=k.geometry,u=D.width,x=D.height,J=(300-u)/2,I=(300-x)/2,K=f.match(/\(([^)]+)\)/)[1].split(/[ ,]+/),N=parseFloat(K[0]),M=parseFloat(K[1]),n=parseFloat(K[2]),z=parseFloat(K[3]);isFinite(N)&&isFinite(M)&&isFinite(n)&&isFinite(z)?(O.x=z/100*u+J,O.y=N/100*x+I,O.width=(100-M)/100*u+J-O.x,O.height=(100- +n)/100*x+I-O.y,"round"==K[4]?"50%"==K[5]?A.setAttribute("checked","checked"):(g=parseInt(K[5]),F.value=g,y.setAttribute("checked","checked"),H.style.visibility="visible"):t.setAttribute("checked","checked")):f=null}else f=null}catch(P){}k.style=m+(f?f:l());k.vertex=!0;B.addCell(k,null,null,null,null);B.selectAll();B.addListener(mxEvent.CELLS_MOVED,T);B.addListener(mxEvent.CELLS_RESIZED,T);var E=B.graphHandler.mouseUp,L=B.graphHandler.mouseDown;B.graphHandler.mouseUp=function(){E.apply(this,arguments); +G.style.backgroundColor="#fff9"};B.graphHandler.mouseDown=function(){L.apply(this,arguments);G.style.backgroundColor=""};B.dblClick=function(){};var Q=B.getSelectionModel().changeSelection;B.getSelectionModel().changeSelection=function(){Q.call(this,[k],[k])}};D.onerror=function(){D.onload=null;D.src=Editor.errorImage};D.setAttribute("src",e);D.style.maxWidth="300px";D.style.maxHeight="300px";v.appendChild(D);q.appendChild(v);var G=document.createElement("div");G.style.width="300px";G.style.height= +"300px";G.style.overflow="hidden";G.style.backgroundColor="#fff9";q.appendChild(G);var B=null,d=new mxGeometry(100,100,100,100),g=5,k=new mxCell("",d.clone(),""),m="shape=image;fillColor=none;rotatable=0;cloneable=0;deletable=0;image="+e.replace(";base64","")+";clipPath=",t=document.createElement("input");t.setAttribute("type","radio");t.setAttribute("id","croppingRect");t.setAttribute("name","croppingShape");t.setAttribute("checked","checked");t.style.margin="5px";q.appendChild(t);e=document.createElement("label"); +e.setAttribute("for","croppingRect");mxUtils.write(e,mxResources.get("rectangle"));q.appendChild(e);var y=document.createElement("input");y.setAttribute("type","radio");y.setAttribute("id","croppingRounded");y.setAttribute("name","croppingShape");y.style.margin="5px";q.appendChild(y);e=document.createElement("label");e.setAttribute("for","croppingRounded");mxUtils.write(e,mxResources.get("rounded"));q.appendChild(e);var A=document.createElement("input");A.setAttribute("type","radio");A.setAttribute("id", +"croppingEllipse");A.setAttribute("name","croppingShape");A.style.margin="5px";q.appendChild(A);e=document.createElement("label");e.setAttribute("for","croppingEllipse");mxUtils.write(e,mxResources.get("ellipse"));q.appendChild(e);mxEvent.addListener(t,"change",p);mxEvent.addListener(y,"change",p);mxEvent.addListener(A,"change",p);var H=document.createElement("div");H.style.textAlign="center";H.style.visibility="hidden";var F=document.createElement("input");F.setAttribute("type","range");F.setAttribute("min", +"1");F.setAttribute("max","49");F.setAttribute("value",g);F.setAttribute("title",mxResources.get("arcSize"));H.appendChild(F);q.appendChild(H);mxEvent.addListener(F,"change",function(){g=this.value;p(!0)});e=mxUtils.button(mxResources.get("cancel"),function(){b.hideDialog()});e.className="geBtn";v=mxUtils.button(mxResources.get("apply"),function(){c(l(),k.geometry.width,k.geometry.height);b.hideDialog()});v.className="geBtn gePrimaryBtn";var C=mxUtils.button(mxResources.get("reset"),function(){c(null, +D.width,D.height);b.hideDialog()});C.className="geBtn";var R=document.createElement("div");R.style.marginTop="10px";R.style.textAlign="right";b.editor.cancelFirst?(R.appendChild(e),R.appendChild(C),R.appendChild(v)):(R.appendChild(C),R.appendChild(v),R.appendChild(e));q.appendChild(R);this.container=q},EditGeometryDialog=function(b,e){var f=b.editor.graph,c=1==e.length?f.getCellGeometry(e[0]):null,l=document.createElement("div"),p=document.createElement("table"),q=document.createElement("tbody"), +v=document.createElement("tr"),D=document.createElement("td"),G=document.createElement("td");p.style.paddingLeft="6px";mxUtils.write(D,mxResources.get("relative")+":");var B=document.createElement("input");B.setAttribute("type","checkbox");null!=c&&c.relative&&(B.setAttribute("checked","checked"),B.defaultChecked=!0);this.init=function(){B.focus()};G.appendChild(B);v.appendChild(D);v.appendChild(G);q.appendChild(v);v=document.createElement("tr");D=document.createElement("td");G=document.createElement("td"); +mxUtils.write(D,mxResources.get("left")+":");var d=document.createElement("input");d.setAttribute("type","text");d.style.width="100px";d.value=null!=c?c.x:"";G.appendChild(d);v.appendChild(D);v.appendChild(G);q.appendChild(v);v=document.createElement("tr");D=document.createElement("td");G=document.createElement("td");mxUtils.write(D,mxResources.get("top")+":");var g=document.createElement("input");g.setAttribute("type","text");g.style.width="100px";g.value=null!=c?c.y:"";G.appendChild(g);v.appendChild(D); +v.appendChild(G);q.appendChild(v);v=document.createElement("tr");D=document.createElement("td");G=document.createElement("td");mxUtils.write(D,mxResources.get("dx")+":");var k=document.createElement("input");k.setAttribute("type","text");k.style.width="100px";k.value=null!=c&&null!=c.offset?c.offset.x:"";G.appendChild(k);v.appendChild(D);v.appendChild(G);q.appendChild(v);v=document.createElement("tr");D=document.createElement("td");G=document.createElement("td");mxUtils.write(D,mxResources.get("dy")+ +":");var m=document.createElement("input");m.setAttribute("type","text");m.style.width="100px";m.value=null!=c&&null!=c.offset?c.offset.y:"";G.appendChild(m);v.appendChild(D);v.appendChild(G);q.appendChild(v);v=document.createElement("tr");D=document.createElement("td");G=document.createElement("td");mxUtils.write(D,mxResources.get("width")+":");var t=document.createElement("input");t.setAttribute("type","text");t.style.width="100px";t.value=null!=c?c.width:"";G.appendChild(t);v.appendChild(D);v.appendChild(G); +q.appendChild(v);v=document.createElement("tr");D=document.createElement("td");G=document.createElement("td");mxUtils.write(D,mxResources.get("height")+":");var y=document.createElement("input");y.setAttribute("type","text");y.style.width="100px";y.value=null!=c?c.height:"";G.appendChild(y);v.appendChild(D);v.appendChild(G);q.appendChild(v);v=document.createElement("tr");D=document.createElement("td");G=document.createElement("td");mxUtils.write(D,mxResources.get("rotation")+":");var A=document.createElement("input"); +A.setAttribute("type","text");A.style.width="100px";A.value=1==e.length?mxUtils.getValue(f.getCellStyle(e[0]),mxConstants.STYLE_ROTATION,0):"";G.appendChild(A);v.appendChild(D);v.appendChild(G);q.appendChild(v);p.appendChild(q);l.appendChild(p);c=mxUtils.button(mxResources.get("cancel"),function(){b.hideDialog()});c.className="geBtn";var H=mxUtils.button(mxResources.get("apply"),function(){b.hideDialog();f.getModel().beginUpdate();try{for(var F=0;Fb.maxImageSize||K>b.maxImageSize){var Q=Math.min(1,Math.min(b.maxImageSize/Math.max(1,I)),b.maxImageSize/Math.max(1,K));I*=Q;K*=Q}E>L?(L=Math.round(100*L/E),E=100):(E=Math.round(100*E/L),L=100);var P=document.createElement("div");P.setAttribute("draggable","true");P.style.display="inline-block";P.style.position="relative";P.style.padding= +"0 12px";P.style.cursor="move";mxUtils.setPrefixedStyle(P.style,"transition","transform .1s ease-in-out");if(null!=O){var S=document.createElement("img");S.setAttribute("src",C.convert(O));S.style.width=E+"px";S.style.height=L+"px";S.style.margin="10px";S.style.paddingBottom=Math.floor((100-L)/2)+"px";S.style.paddingLeft=Math.floor((100-E)/2)+"px";P.appendChild(S)}else if(null!=N){var U=b.stringToCells("<"==N.xml.charAt(0)?N.xml:Graph.decompress(N.xml));0A?H-1:H,0,d.splice(A,1)[0]),m.insertBefore(m.children[A],m.children[H])):(d.push(d.splice(A,1)[0]),m.appendChild(m.children[A]));else if(0=E.status&&(D(E.responseText,x,J,I,K,N,M,"fixed",mxEvent.isAltDown(O)?null:M.substring(0,M.lastIndexOf(".")).replace(/_/g," ")),m.scrollTop=m.scrollHeight))})):(b.spinner.stop(),b.showError(mxResources.get("error"),mxResources.get("notInOffline"))): +(D(u,x,J,I,K,N,M,"fixed",mxEvent.isAltDown(O)?null:M.substring(0,M.lastIndexOf(".")).replace(/_/g," ")),m.scrollTop=m.scrollHeight)}};mxEvent.addListener(m,"dragover",G);mxEvent.addListener(m,"drop",B);mxEvent.addListener(t,"dragover",G);mxEvent.addListener(t,"drop",B);f.appendChild(m);c=document.createElement("div");c.style.textAlign="right";c.style.marginTop="20px";g=mxUtils.button(mxResources.get("cancel"),function(){b.hideDialog(!0)});g.setAttribute("id","btnCancel");g.className="geBtn";b.editor.cancelFirst&& +c.appendChild(g);"draw.io"!=b.getServiceName()||null==l||l.constructor!=DriveLibrary&&l.constructor!=GitHubLibrary||(e=mxUtils.button(mxResources.get("link"),function(){b.getPublicUrl(l,function(O){if(null!=O){var u=b.getSearch("create title mode url drive splash state clibs ui".split(" "));u+=(0==u.length?"?":"&")+"splash=0&clibs=U"+encodeURIComponent(O);O=new EmbedDialog(b,window.location.protocol+"//"+window.location.host+"/"+u,null,null,null,null,"Check out the library I made using @drawio"); +b.showDialog(O.container,450,240,!0);O.init()}else l.constructor==DriveLibrary?b.showError(mxResources.get("error"),mxResources.get("diagramIsNotPublic"),mxResources.get("share"),mxUtils.bind(this,function(){b.drive.showPermissions(l.getId(),l)}),null,mxResources.get("ok"),mxUtils.bind(this,function(){})):b.handleError({message:mxResources.get("diagramIsNotPublic")})})}),e.className="geBtn",c.appendChild(e));e=mxUtils.button(mxResources.get("export"),function(){var O=b.createLibraryDataFromImages(d), +u=k.value;/(\.xml)$/i.test(u)||(u+=".xml");b.isLocalFileSave()?b.saveLocalFile(O,u,"text/xml",null,null,null!=q?q:!0,null,"xml"):(new mxXmlRequest(SAVE_URL,"filename="+encodeURIComponent(u)+"&format=xml&xml="+encodeURIComponent(O))).simulate(document,"_blank")});e.setAttribute("id","btnDownload");e.className="geBtn";c.appendChild(e);if(Graph.fileSupport){if(null==b.libDlgFileInputElt){var V=document.createElement("input");V.setAttribute("multiple","multiple");V.setAttribute("type","file");mxEvent.addListener(V, +"change",function(O){R=!1;b.importFiles(V.files,0,0,b.maxImageSize,function(u,x,J,I,K,N,M,n,z){null!=V.files&&(T(O)(u,x,J,I,K,N,M,n,z),V.type="",V.type="file",V.value="")});m.scrollTop=m.scrollHeight});V.style.display="none";document.body.appendChild(V);b.libDlgFileInputElt=V}e=mxUtils.button(mxResources.get("import"),function(){null!=F&&(F(),F=null);b.libDlgFileInputElt.click()});e.setAttribute("id","btnAddImage");e.className="geBtn";c.appendChild(e)}e=mxUtils.button(mxResources.get("addImages"), +function(){null!=F&&(F(),F=null);b.showImageDialog(mxResources.get("addImageUrl"),"",function(O,u,x){R=!1;if(null!=O){if("data:image/"==O.substring(0,11)){var J=O.indexOf(",");0
'+mxUtils.htmlEntities(e)+"
";this.pagesContainer.appendChild(c);var l=this.createViewer(c.childNodes[0],f);e=mxUtils.bind(this,function(){null!=this.selectedItem&&(this.selectedItem.className="geAspectDlgListItem");this.selectedItem=c; -this.selectedPage=b;c.className+=" geAspectDlgListItemSelected";this.layersContainer.innerText="";this.selectedLayers={};this.okBtn.setAttribute("disabled","disabled");var p=l.model;p=p.getChildCells(p.getRoot());for(var v=0;v
'+mxUtils.htmlEntities(e)+"
";this.layersContainer.appendChild(l);this.createViewer(l.childNodes[0],c,b.id);c=mxUtils.bind(this,function(){0<=l.className.indexOf("geAspectDlgListItemSelected")? (l.className="geAspectDlgListItem",delete this.selectedLayers[b.id],mxUtils.isEmptyObject(this.selectedLayers)&&this.okBtn.setAttribute("disabled","disabled")):(l.className+=" geAspectDlgListItemSelected",this.selectedLayers[b.id]=!0,this.okBtn.removeAttribute("disabled"))});mxEvent.addListener(l,"click",c);-1!=this.aspect.layerIds.indexOf(b.id)&&c()}; -var FilePropertiesDialog=function(b,e){function f(C){var P=H;H=function(R,U){try{C(function(){P(R,U)},U)}catch(N){U(N)}}}var c=document.createElement("table"),l=document.createElement("tbody");c.style.width="100%";c.style.marginTop="8px";c.style.tableLayout="fixed";var p=b.getCurrentFile(),v=null!=p&&null!=p.getTitle()?p.getTitle():b.defaultFilename,t=/(\.png)$/i.test(v),E=/(\.svg)$/i.test(v),H=function(C,P){C()},B=null!=p?p.isLocked():!1;var d=document.createElement("tr");var g=document.createElement("td"); -g.style.whiteSpace="nowrap";g.style.overflow="hidden";g.style.textOverflow="ellipsis";g.style.fontSize="10pt";mxUtils.write(g,mxResources.get("locked")+":");d.appendChild(g);var k=document.createElement("input");k.setAttribute("type","checkbox");B&&(k.setAttribute("checked","checked"),k.defaultChecked=!0);g=document.createElement("td");g.style.whiteSpace="nowrap";g.appendChild(k);d.appendChild(g);l.appendChild(d);this.init=function(){k.focus()};f(function(C,P){null!=b.fileNode&&B!=k.checked?window.setTimeout(function(){null!= -p&&p.setLocked(k.checked);C()},0):C()});if(t||E){v=1;t=0;d=b.fileNode;null!=d&&(d.hasAttribute("scale")&&(v=parseFloat(d.getAttribute("scale"))),d.hasAttribute("border")&&(t=parseInt(d.getAttribute("border"))));d=document.createElement("tr");g=document.createElement("td");g.style.whiteSpace="nowrap";g.style.fontSize="10pt";mxUtils.write(g,mxResources.get("zoom")+":");d.appendChild(g);var n=document.createElement("input");n.setAttribute("value",100*v+"%");n.style.marginLeft="4px";n.style.width="100%"; -g=document.createElement("td");g.style.whiteSpace="nowrap";g.appendChild(n);d.appendChild(g);l.appendChild(d);d=document.createElement("tr");g=document.createElement("td");g.style.whiteSpace="nowrap";g.style.fontSize="10pt";mxUtils.write(g,mxResources.get("borderWidth")+":");d.appendChild(g);var u=document.createElement("input");u.setAttribute("value",t);u.style.marginLeft="4px";u.style.width="100%";g=document.createElement("td");g.style.whiteSpace="nowrap";g.appendChild(u);d.appendChild(g);l.appendChild(d); -this.init=this.init||function(){n.focus();mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode?n.select():document.execCommand("selectAll",!1,null)};f(function(C,P){null!=b.fileNode&&(b.fileNode.setAttribute("scale",Math.max(0,parseInt(n.value)/100)),b.fileNode.setAttribute("border",Math.max(0,parseInt(u.value))),null!=p&&p.fileChanged());C()})}else if(!/(\.html)$/i.test(v)&&!/(\.svg)$/i.test(v)){var x=null!=p?p.isCompressed():Editor.defaultCompressed;d=document.createElement("tr");g=document.createElement("td"); -g.style.whiteSpace="nowrap";g.style.overflow="hidden";g.style.textOverflow="ellipsis";g.style.fontSize="10pt";mxUtils.write(g,mxResources.get("compressed")+":");d.appendChild(g);var A=document.createElement("input");A.setAttribute("type","checkbox");x&&(A.setAttribute("checked","checked"),A.defaultChecked=!0);g=document.createElement("td");g.style.whiteSpace="nowrap";g.appendChild(A);d.appendChild(g);l.appendChild(d);this.init=this.init||function(){A.focus()};f(function(C,P){null!=b.fileNode&&x!= -A.checked?window.setTimeout(function(){b.fileNode.setAttribute("compressed",A.checked?"true":"false");null!=p&&(p.compressionChanged(A.checked),p.fileChanged());C()},0):C()})}if(null!=p&&p.isRealtimeOptional()){d=document.createElement("tr");g=document.createElement("td");g.style.whiteSpace="nowrap";g.style.overflow="hidden";g.style.textOverflow="ellipsis";g.style.fontSize="10pt";mxUtils.write(g,mxResources.get("realtimeCollaboration")+":");d.appendChild(g);var I=document.createElement("input");I.setAttribute("type", -"checkbox");var G=p.isRealtimeEnabled();if(G="disabled"!=b.drive.getCustomProperty(p.desc,"collaboration"))I.setAttribute("checked","checked"),I.defaultChecked=!0;f(function(C,P){I.checked!=G?p.setRealtimeEnabled(I.checked,C,P):C()});this.init=null!=this.init?this.init:function(){I.focus()};g=document.createElement("td");g.style.whiteSpace="nowrap";g.appendChild(I);g.appendChild(b.menus.createHelpLink("https://github.com/jgraph/drawio/discussions/2672"));d.appendChild(g);l.appendChild(d)}null!=p&& -"draw.io"==b.getServiceName()&&0D?0:100J?0:100m?(J=m*K.width,m=0):1D?(L=D*K.height,D=0):1I?0:100K?0:100n?(K=n*M.width,n=0):1I?(N=I*M.height,I=0):1D?1:100I?1:100');Editor.configurationKey=".configuration";Editor.settingsKey=".drawio-config";Editor.defaultCustomLibraries=[];Editor.enableCustomLibraries=!0;Editor.enableUncompressedLibraries=!1;Editor.enableCustomProperties=!0; -Editor.enableSimpleTheme=!0;Editor.enableHashObjects=!mxClient.IS_CHROMEAPP&&!EditorUi.isElectronApp&&"1"!=urlParams.embed&&window.top==window.self;Editor.defaultIncludeDiagram=!0;Editor.enableServiceWorker="0"!=urlParams.pwa&&"serviceWorker"in navigator&&("1"==urlParams.offline||"1"==urlParams.enableSW||/.*\.diagrams\.net$/.test(window.location.hostname)||/.*\.draw\.io$/.test(window.location.hostname));try{Editor.enableServiceWorker&&navigator.serviceWorker}catch(m){Editor.enableServiceWorker=!1}Editor.enableWebFonts= -"1"!=urlParams["safe-style-src"]&&!window.mxIsElectron;Editor.enableShadowOption=!mxClient.IS_SF;Editor.enableExportUrl=!0;Editor.enableRealtime=!0;Editor.enableRealtimeCache=!0;Editor.p2pSyncNotify=!1;Editor.compressXml=!0;Editor.defaultCompressed=!1;Editor.oneDriveInlinePicker=null!=window.urlParams&&"0"==window.urlParams.inlinePicker?!1:!0;Editor.globalVars=null;Editor.defaultBorder=5;Editor.addSvgMetadata=!1;Editor.enableAnimations=!0;Editor.enableChatGpt=/test\.draw\.io$/.test(window.location.hostname)|| +Editor.enableSimpleTheme=!0;Editor.enableHashObjects=!mxClient.IS_CHROMEAPP&&!EditorUi.isElectronApp&&"1"!=urlParams.embed&&window.top==window.self;Editor.defaultIncludeDiagram=!0;Editor.enableServiceWorker="0"!=urlParams.pwa&&"serviceWorker"in navigator&&("1"==urlParams.offline||"1"==urlParams.enableSW||/.*\.diagrams\.net$/.test(window.location.hostname)||/.*\.draw\.io$/.test(window.location.hostname));try{Editor.enableServiceWorker&&navigator.serviceWorker}catch(n){Editor.enableServiceWorker=!1}Editor.enableWebFonts= +"1"!=urlParams["safe-style-src"]&&!window.mxIsElectron;Editor.enableShadowOption=!mxClient.IS_SF;Editor.enableExportUrl=!0;Editor.enableRealtime=!0;Editor.enableRealtimeCache=!0;Editor.p2pSyncNotify=!1;Editor.compressXml=!0;Editor.defaultCompressed=!1;Editor.oneDriveInlinePicker=null!=window.urlParams&&"0"==window.urlParams.inlinePicker?!1:!0;Editor.globalVars=null;Editor.defaultBorder=5;Editor.addSvgMetadata=!1;Editor.enableAnimations=!0;Editor.pasteAtMousePointer=!0;Editor.enableChatGpt=/test\.draw\.io$/.test(window.location.hostname)|| /preprod\.diagrams\.net$/.test(window.location.hostname)||/embed\.diagrams\.net$/.test(window.location.hostname)||/app\.diagrams\.net$/.test(window.location.hostname);Editor.gptApiKey=null!=urlParams["gpt-api-key"]?decodeURIComponent(urlParams["gpt-api-key"]):null;Editor.gptModel=null!=urlParams["gpt-model"]?decodeURIComponent(urlParams["gpt-model"]):"gpt-3.5-turbo";Editor.gptUrl=null!=urlParams["gpt-url"]?decodeURIComponent(urlParams["gpt-url"]):"https://api.openai.com/v1/chat/completions";Editor.replaceSvgDataUris= -!0;Editor.foreignObjectImages=!0;Editor.svgFileTheme="auto";Editor.svgRasterScale=4;Editor.htmlRasterScale=4;Editor.config=null;Editor.configVersion=null;Editor.commonProperties=[{name:"enumerate",dispName:"Enumerate",type:"bool",defVal:!1,onChange:function(m){m.refresh()}},{name:"enumerateValue",dispName:"Enumerate Value",type:"string",defVal:"",isVisible:function(m,z){return"1"==mxUtils.getValue(m.style,"enumerate","0")}},{name:"comic",dispName:"Comic",type:"bool",defVal:!1,isVisible:function(m, -z){return"1"!=mxUtils.getValue(m.style,"sketch","0")}},{name:"jiggle",dispName:"Jiggle",type:"float",min:0,defVal:1,isVisible:function(m,z){return"1"==mxUtils.getValue(m.style,"comic","0")||"1"==mxUtils.getValue(m.style,"sketch","1"==urlParams.rough?"1":"0")}},{name:"fillWeight",dispName:"Fill Weight",type:"int",defVal:-1,isVisible:function(m,z){return"1"==mxUtils.getValue(m.style,"sketch","1"==urlParams.rough?"1":"0")&&0%position%
Email\n#\n## Node style (placeholders are replaced once).\n## Default is the current style for nodes.\n#\n# style: label;image=%image%;whiteSpace=wrap;html=1;rounded=1;fillColor=%fill%;strokeColor=%stroke%;\n#\n## 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## Style to be used for objects not in the CSV. If this is - then such objects are ignored,\n## else they are created using this as their style, eg. whiteSpace=wrap;html=1;\n#\n# unknownStyle: -\n#\n## Optional column name that contains a reference to a named style in styles.\n## Default is the current style for nodes.\n#\n# stylename: -\n#\n## JSON for named styles of the form {"name": "style", "name": "style"} where style is a cell style with\n## placeholders that are replaced once.\n#\n# styles: -\n#\n## JSON for variables in styles of the form {"name": "value", "name": "value"} where name is a string\n## that will replace a placeholder in a style.\n#\n# vars: -\n#\n## Optional column name that contains a reference to a named label in labels.\n## Default is the current label.\n#\n# labelname: -\n#\n## JSON for named labels of the form {"name": "label", "name": "label"} where label is a cell label with\n## placeholders.\n#\n# labels: -\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## If placeholders are used in the style, they are replaced with data from the source.\n## An optional placeholders can be set to target to use data from the target instead.\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## In addition to those, an optional source and targetlabel can be used to specify a label\n## that contains placeholders referencing the respective columns in the source or target row.\n## The label is created in the form fromlabel + sourcelabel + label + tolabel + targetlabel.\n## Additional labels can be added by using an optional labels array with entries of the\n## form {"label": string, "x": number, "y": number, "dx": number, "dy": number} where\n## x is from -1 to 1 along the edge, y is orthogonal, and dx/dy are offsets in pixels.\n## An optional placeholders with the string value "source" or "target" can be specified\n## to replace placeholders in the additional label with data from the source or target.\n## An optional data object can be specified to define the metadata for the connector.\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, width 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## Collapsed state for vertices. Possible values are true or false. Default is false.\n#\n# collapsed: false\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,refs,manager\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. Use 0 to disable.\n#\n# edgespacing: 40\n#\n## Name or JSON of layout. Possible values are auto, none, verticaltree, horizontaltree,\n## verticalflow, horizontalflow, organic, circle, orgchart or a JSON string as used in\n## Layout, Apply. 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\nTessa Miller,CFO,emi,Office 1,,me@example.com,default,#6c8ebf,,https://www.draw.io,https://cdn3.iconfinder.com/data/icons/user-avatars-1/512/users-3-128.png\nEdward Morrison,Brand Manager,emo,Office 2,Tessa Miller,me@example.com,default,#82b366,,https://www.draw.io,https://cdn3.iconfinder.com/data/icons/user-avatars-1/512/users-10-3-128.png\nAlison Donovan,System Admin,rdo,Office 3,Tessa Miller,me@example.com,default,#82b366,"emo,tva",https://www.draw.io,https://cdn3.iconfinder.com/data/icons/user-avatars-1/512/users-2-128.png\nEvan Valet,HR Director,tva,Office 4,Tessa Miller,me@example.com,default,#82b366,,https://www.draw.io,https://cdn3.iconfinder.com/data/icons/user-avatars-1/512/users-9-2-128.png\n'; -Editor.createRoughCanvas=function(m){var z=rough.canvas({getContext:function(){return m}});z.draw=function(F){var M=F.sets||[];F=F.options||this.getDefaultOptions();for(var O=0;OX&&(X=O.strokeWidth/2);m.setStrokeAlpha(m.state.fillAlpha);m.setStrokeColor(O.fill||"");m.setStrokeWidth(X);m.setDashed(!1);this._drawToContext(F,M,O);m.setDashed(W);m.setStrokeWidth(S);m.setStrokeColor(Q);m.setStrokeAlpha(T)};z._drawToContext=function(F,M,O){F.begin();for(var Q=0;Q",O));if(null!=F){z=F;F=[];for(M=0;MO){z=m.substring(O,W);break}}10==T&&("endobj"==F?S=null:"obj"==F.substring(F.length-3,F.length)||"xref"==F||"trailer"==F?(S=[],Q[F.split(" ")[0]]=S):null!=S&&S.push(F),F="")}}null==z&&null!=Q&&(z=Editor.extractGraphModelFromXref(Q));null!=z&&(z=decodeURIComponent(z.replace(/\\\(/g,"(").replace(/\\\)/g,")")));return z};Editor.extractGraphModelFromXref=function(m){var z=m.trailer,F=null;null!= -z&&(z=/.* \/Info (\d+) (\d+) R/g.exec(z.join("\n")),null!=z&&0 1 expected for zoomFactor"));null!=m.defaultGridSize&& -(z=parseInt(m.defaultGridSize),!isNaN(z)&&0 0 expected for defaultGridSize"));null!=m.gridSteps&&(z=parseInt(m.gridSteps),!isNaN(z)&&0 0 expected for gridSteps"));null!=m.pageFormat&&(z=parseInt(m.pageFormat.width),F=parseInt(m.pageFormat.height),!isNaN(z)&&0 0 expected for sidebarTitleSize"));null!=m.fontCss&&("string"===typeof m.fontCss?Editor.configureFontCss(m.fontCss):EditorUi.debug("Configuration Error: String expected for fontCss"));null!=m.autosaveDelay&&(z=parseInt(m.autosaveDelay), -!isNaN(z)&&0 0 expected for autosaveDelay"));null!=m.maxImageBytes&&(EditorUi.prototype.maxImageBytes=m.maxImageBytes);null!=m.maxImageSize&&(EditorUi.prototype.maxImageSize=m.maxImageSize);null!=m.shareCursorPosition&&(EditorUi.prototype.shareCursorPosition=m.shareCursorPosition);null!=m.showRemoteCursors&&(EditorUi.prototype.showRemoteCursors=m.showRemoteCursors);null!=m.restrictExport&&(DrawioFile.RESTRICT_EXPORT= -m.restrictExport);null!=m.replaceSvgDataUris&&(Editor.replaceSvgDataUris=m.replaceSvgDataUris);null!=m.foreignObjectImages&&(Editor.foreignObjectImages=m.foreignObjectImages);null!=m.shadowColor&&(mxConstants.SHADOW_COLOR=m.shadowColor);null!=m.shadowOpacity&&(mxConstants.SHADOW_OPACITY=m.shadowOpacity);null!=m.shadowOffsetX&&(mxConstants.SHADOW_OFFSET_X=m.shadowOffsetX);null!=m.shadowOffsetY&&(mxConstants.SHADOW_OFFSET_Y=m.shadowOffsetY);null!=m.shadowBlur&&(mxConstants.SHADOW_BLUR=m.shadowBlur); -null!=m.enableAnimations&&(Editor.enableAnimations=m.enableAnimations);null!=m.enableChatGpt&&(Editor.enableChatGpt=m.enableChatGpt);null!=m.gptApiKey&&(Editor.gptApiKey=m.gptApiKey);null!=m.gptModel&&(Editor.gptModel=m.gptModel);null!=m.gptUrl&&(Editor.gptUrl=m.gptUrl)}};Editor.isSettingsEnabled=function(){return"undefined"!==typeof window.mxSettings&&(isLocalStorage||mxClient.IS_CHROMEAPP)};Editor.configureFontCss=function(m){if(null!=m){Editor.prototype.fontCss=m;var z=document.getElementsByTagName("script")[0]; -if(null!=z&&null!=z.parentNode){var F=document.createElement("style");F.setAttribute("type","text/css");F.appendChild(document.createTextNode(m));z.parentNode.insertBefore(F,z);m=m.split("url(");for(F=1;FX.getStatus()||299>2);z+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((O& -3)<<4);z+="==";break}Q=m.charCodeAt(F++);if(F==M){z+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(O>>2);z+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((O&3)<<4|(Q&240)>>4);z+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((Q&15)<<2);z+="=";break}S=m.charCodeAt(F++);z+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(O>>2);z+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((O& -3)<<4|(Q&240)>>4);z+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((Q&15)<<2|(S&192)>>6);z+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(S&63)}return z};Editor.prototype.loadUrl=function(m,z,F,M,O,Q,S,T){try{var W=!S&&(M||/(\.png)($|\?)/i.test(m)||/(\.jpe?g)($|\?)/i.test(m)||/(\.gif)($|\?)/i.test(m)||/(\.pdf)($|\?)/i.test(m));O=null!=O?O:!0;var X=mxUtils.bind(this,function(){mxUtils.get(m,mxUtils.bind(this,function(Z){200<=Z.getStatus()&&299>= -Z.getStatus()?null!=z&&(Z=Z.getText(),W&&(Q=null!=Q?Q:"data:image/png;base64,",Z=Q+Editor.base64Encode(Z)),z(Z)):null!=F&&(0==Z.getStatus()?F({message:mxResources.get("accessDenied")},Z):404==Z.getStatus()?F({message:mxResources.get("fileNotFound"),code:Z.getStatus()},Z):F({message:this.getErrorMessage(Z)},Z))}),function(Z){null!=F&&F({message:mxResources.get("error")+" "+Z.getStatus()})},W,this.timeout,function(){O&&null!=F&&F({code:App.ERROR_TIMEOUT,retry:X})},T)});X()}catch(Z){null!=F&&F(Z)}}; -Editor.prototype.getErrorMessage=function(m){var z=mxResources.get("error")+" "+m.getStatus();try{var F=m.getText(),M=JSON.parse(F);null!=M&&null!=M.error&&null!=M.error.message&&(z=M.error.message+" ("+z+")")}catch(O){}return z};Editor.prototype.absoluteCssFonts=function(m){var z=null;if(null!=m){var F=m.split("url(");if(0M.indexOf("mxPageSelector")&&0l;l++)for(var p=l,v=0;8>v;v++)p=1==(p&1)?3988292384^p>>>1:p>>>1,Editor.crcTable[l]=p;Editor.updateCRC=function(m,z,F,M){for(var O=0;O>>8;return m};Editor.crc32=function(m){for(var z=-1,F=0;F>>8^Editor.crcTable[(z^m.charCodeAt(F))&255];return(z^ --1)>>>0};Editor.writeGraphModelToPng=function(m,z,F,M,O){function Q(Z,Y){var ba=W;W+=Y;return Z.substring(ba,W)}function S(Z){Z=Q(Z,4);return Z.charCodeAt(3)+(Z.charCodeAt(2)<<8)+(Z.charCodeAt(1)<<16)+(Z.charCodeAt(0)<<24)}function T(Z){return String.fromCharCode(Z>>24&255,Z>>16&255,Z>>8&255,Z&255)}m=m.substring(m.indexOf(",")+1);m=window.atob?atob(m):Base64.decode(m,!0);var W=0;if(Q(m,8)!=String.fromCharCode(137)+"PNG"+String.fromCharCode(13,10,26,10))null!=O&&O();else if(Q(m,4),"IHDR"!=Q(m,4))null!= -O&&O();else{Q(m,17);O=m.substring(0,W);do{var X=S(m);if("IDAT"==Q(m,4)){O=m.substring(0,W-8);"pHYs"==z&&"dpi"==F?(F=Math.round(M/.0254),F=T(F)+T(F)+String.fromCharCode(1)):F=F+String.fromCharCode(0)+("zTXt"==z?String.fromCharCode(0):"")+M;M=4294967295;M=Editor.updateCRC(M,z,0,4);M=Editor.updateCRC(M,F,0,F.length);O+=T(F.length)+z+F+T(M^4294967295);O+=m.substring(W-8,m.length);break}O+=m.substring(W-8,W-4+X);Q(m,X);Q(m,4)}while(X);return"data:image/png;base64,"+(window.btoa?btoa(O):Base64.encode(O, -!0))}};if(window.ColorDialog){FilenameDialog.filenameHelpLink="https://www.drawio.com/doc/faq/save-file-formats";var t=ColorDialog.addRecentColor;ColorDialog.addRecentColor=function(m,z){t.apply(this,arguments);mxSettings.setRecentColors(ColorDialog.recentColors);mxSettings.save()};var E=ColorDialog.resetRecentColors;ColorDialog.resetRecentColors=function(){E.apply(this,arguments);mxSettings.setRecentColors(ColorDialog.recentColors);mxSettings.save()}}"undefined"!==typeof window.EditDataDialog&&(EditDataDialog.getDisplayIdForCell= -function(m,z){var F=null;null!=m.editor.graph.getModel().getParent(z)?F=z.getId():null!=m.currentPage&&(F=m.currentPage.getId());return F});if(null!=window.StyleFormatPanel){var H=Format.prototype.init;Format.prototype.init=function(){H.apply(this,arguments);this.editorUi.editor.addListener("fileLoaded",this.update)};var B=Format.prototype.refresh;Format.prototype.refresh=function(){null!=this.editorUi.getCurrentFile()||"1"==urlParams.embed||this.editorUi.editor.chromeless?B.apply(this,arguments): -this.clear()};DiagramFormatPanel.prototype.isMathOptionVisible=function(m){return"simple"==Editor.currentTheme||"sketch"==Editor.currentTheme||"min"==Editor.currentTheme};var d=DiagramFormatPanel.prototype.addOptions;DiagramFormatPanel.prototype.addOptions=function(m){m=d.apply(this,arguments);var z=this.editorUi,F=z.editor.graph;if(F.isEnabled()){var M=z.getCurrentFile();null!=M&&M.isAutosaveOptional()&&m.appendChild(this.createOption(mxResources.get("autosave"),function(){return z.editor.autosave}, -function(Q){z.editor.setAutosave(Q);z.editor.autosave&&M.isModified()&&M.fileChanged()},{install:function(Q){this.listener=function(){Q(z.editor.autosave)};z.editor.addListener("autosaveChanged",this.listener)},destroy:function(){z.editor.removeListener(this.listener)}}))}if(this.isMathOptionVisible()&&F.isEnabled()&&"undefined"!==typeof MathJax){var O=this.createOption(mxResources.get("mathematicalTypesetting"),function(){return F.mathEnabled},function(Q){z.actions.get("mathematicalTypesetting").funct()}, -{install:function(Q){this.listener=function(){Q(F.mathEnabled)};z.addListener("mathEnabledChanged",this.listener)},destroy:function(){z.removeListener(this.listener)}});m.appendChild(O);(!z.isOffline()||mxClient.IS_CHROMEAPP||EditorUi.isElectronApp)&&O.appendChild(z.menus.createHelpLink("https://www.drawio.com/doc/faq/math-typesetting"))}return m};mxCellRenderer.prototype.defaultVertexShape.prototype.customProperties=[{name:"arcSize",dispName:"Arc Size",type:"float",min:0,defVal:mxConstants.LINE_ARCSIZE}, -{name:"absoluteArcSize",dispName:"Abs. Arc Size",type:"bool",defVal:!1}];mxCellRenderer.defaultShapes.link.prototype.customProperties=[{name:"width",dispName:"Width",type:"float",min:0,defVal:4}];mxCellRenderer.defaultShapes.flexArrow.prototype.customProperties=[{name:"width",dispName:"Width",type:"float",min:0,defVal:10},{name:"startWidth",dispName:"Start Width",type:"float",min:0,defVal:20},{name:"endWidth",dispName:"End Width",type:"float",min:0,defVal:20}];mxCellRenderer.defaultShapes.process.prototype.customProperties= -[{name:"size",dispName:"Indent",type:"float",min:0,max:.5,defVal:.1}];mxCellRenderer.defaultShapes.rhombus.prototype.customProperties=[{name:"arcSize",dispName:"Arc Size",type:"float",min:0,max:50,defVal:mxConstants.LINE_ARCSIZE},{name:"double",dispName:"Double",type:"bool",defVal:!1}];mxCellRenderer.defaultShapes.partialRectangle.prototype.customProperties=[{name:"top",dispName:"Top Line",type:"bool",defVal:!0},{name:"bottom",dispName:"Bottom Line",type:"bool",defVal:!0},{name:"left",dispName:"Left Line", -type:"bool",defVal:!0},{name:"right",dispName:"Right Line",type:"bool",defVal:!0}];mxCellRenderer.defaultShapes.parallelogram.prototype.customProperties=[{name:"arcSize",dispName:"Arc Size",type:"float",min:0,defVal:mxConstants.LINE_ARCSIZE},{name:"size",dispName:"Slope Angle",type:"float",min:0,max:1,defVal:.2,isVisible:function(m){return"0"==mxUtils.getValue(m.style,"fixedSize","0")}},{name:"size",dispName:"Slope Angle",type:"float",min:0,defVal:20,isVisible:function(m){return"1"==mxUtils.getValue(m.style, -"fixedSize","0")}}];mxCellRenderer.defaultShapes.hexagon.prototype.customProperties=[{name:"arcSize",dispName:"Arc Size",type:"float",min:0,defVal:mxConstants.LINE_ARCSIZE},{name:"size",dispName:"Slope Angle",type:"float",min:0,max:1,defVal:.25,isVisible:function(m){return"0"==mxUtils.getValue(m.style,"fixedSize","0")}},{name:"size",dispName:"Slope Angle",type:"float",min:0,defVal:25,isVisible:function(m){return"1"==mxUtils.getValue(m.style,"fixedSize","0")}}];mxCellRenderer.defaultShapes.triangle.prototype.customProperties= -[{name:"arcSize",dispName:"Arc Size",type:"float",min:0,defVal:mxConstants.LINE_ARCSIZE}];mxCellRenderer.defaultShapes.document.prototype.customProperties=[{name:"size",dispName:"Size",type:"float",defVal:.3,min:0,max:1}];mxCellRenderer.defaultShapes.internalStorage.prototype.customProperties=[{name:"arcSize",dispName:"Arc Size",type:"float",min:0,defVal:mxConstants.LINE_ARCSIZE},{name:"dx",dispName:"Left Line",type:"float",min:0,defVal:20},{name:"dy",dispName:"Top Line",type:"float",min:0,defVal:20}]; -mxCellRenderer.defaultShapes.cube.prototype.customProperties=[{name:"size",dispName:"Size",type:"float",min:0,defVal:20},{name:"darkOpacity",dispName:"Dark Opacity",type:"float",min:-1,max:1,defVal:0},{name:"darkOpacity2",dispName:"Dark Opacity 2",type:"float",min:-1,max:1,defVal:0}];mxCellRenderer.defaultShapes.step.prototype.customProperties=[{name:"arcSize",dispName:"Arc Size",type:"float",min:0,defVal:mxConstants.LINE_ARCSIZE},{name:"size",dispName:"Notch Size",type:"float",min:0,defVal:20},{name:"fixedSize", -dispName:"Fixed Size",type:"bool",defVal:!0}];mxCellRenderer.defaultShapes.trapezoid.prototype.customProperties=[{name:"arcSize",dispName:"Arc Size",type:"float",min:0,defVal:mxConstants.LINE_ARCSIZE},{name:"size",dispName:"Slope Angle",type:"float",min:0,max:1,defVal:.2}];mxCellRenderer.defaultShapes.tape.prototype.customProperties=[{name:"size",dispName:"Size",type:"float",min:0,max:1,defVal:.4}];mxCellRenderer.defaultShapes.note.prototype.customProperties=[{name:"size",dispName:"Fold Size",type:"float", -min:0,defVal:30},{name:"darkOpacity",dispName:"Dark Opacity",type:"float",min:-1,max:1,defVal:0}];mxCellRenderer.defaultShapes.card.prototype.customProperties=[{name:"arcSize",dispName:"Arc Size",type:"float",min:0,defVal:mxConstants.LINE_ARCSIZE},{name:"size",dispName:"Cutoff Size",type:"float",min:0,defVal:30}];mxCellRenderer.defaultShapes.callout.prototype.customProperties=[{name:"arcSize",dispName:"Arc Size",type:"float",min:0,defVal:mxConstants.LINE_ARCSIZE},{name:"base",dispName:"Callout Width", -type:"float",min:0,defVal:20},{name:"size",dispName:"Callout Length",type:"float",min:0,defVal:30},{name:"position",dispName:"Callout Position",type:"float",min:0,max:1,defVal:.5},{name:"position2",dispName:"Callout Tip Position",type:"float",min:0,max:1,defVal:.5}];mxCellRenderer.defaultShapes.folder.prototype.customProperties=[{name:"tabWidth",dispName:"Tab Width",type:"float"},{name:"tabHeight",dispName:"Tab Height",type:"float"},{name:"tabPosition",dispName:"Tap Position",type:"enum",enumList:[{val:"left", -dispName:"Left"},{val:"right",dispName:"Right"}]}];mxCellRenderer.defaultShapes.swimlane.prototype.customProperties=[{name:"arcSize",dispName:"Arc Size",type:"float",min:0,defVal:15},{name:"absoluteArcSize",dispName:"Abs. Arc Size",type:"bool",defVal:!1},{name:"startSize",dispName:"Header Size",type:"float"},{name:"swimlaneHead",dispName:"Head Border",type:"bool",defVal:!0},{name:"swimlaneBody",dispName:"Body Border",type:"bool",defVal:!0},{name:"horizontal",dispName:"Horizontal",type:"bool",defVal:!0}, -{name:"separatorColor",dispName:"Separator Color",type:"color",defVal:null}];mxCellRenderer.defaultShapes.table.prototype.customProperties=[{name:"rowLines",dispName:"Row Lines",type:"bool",defVal:!0},{name:"columnLines",dispName:"Column Lines",type:"bool",defVal:!0},{name:"fixedRows",dispName:"Fixed Rows",type:"bool",defVal:!1},{name:"resizeLast",dispName:"Resize Last Column",type:"bool",defVal:!1},{name:"resizeLastRow",dispName:"Resize Last Row",type:"bool",defVal:!1}].concat(mxCellRenderer.defaultShapes.swimlane.prototype.customProperties).concat(mxCellRenderer.defaultShapes.partialRectangle.prototype.customProperties); -mxCellRenderer.defaultShapes.tableRow.prototype.customProperties=mxCellRenderer.defaultShapes.swimlane.prototype.customProperties.concat(mxCellRenderer.defaultShapes.partialRectangle.prototype.customProperties);mxCellRenderer.defaultShapes.doubleEllipse.prototype.customProperties=[{name:"margin",dispName:"Indent",type:"float",min:0,defVal:4}];mxCellRenderer.defaultShapes.ext.prototype.customProperties=[{name:"arcSize",dispName:"Arc Size",type:"float",min:0,defVal:15},{name:"double",dispName:"Double", -type:"bool",defVal:!1},{name:"margin",dispName:"Indent",type:"float",min:0,defVal:0}];mxCellRenderer.defaultShapes.curlyBracket.prototype.customProperties=[{name:"rounded",dispName:"Rounded",type:"bool",defVal:!0},{name:"size",dispName:"Size",type:"float",min:0,max:1,defVal:.5}];mxCellRenderer.defaultShapes.image.prototype.customProperties=[{name:"imageAspect",dispName:"Fixed Image Aspect",type:"bool",defVal:!0}];mxCellRenderer.defaultShapes.label.prototype.customProperties=[{name:"imageAspect",dispName:"Fixed Image Aspect", -type:"bool",defVal:!0},{name:"imageAlign",dispName:"Image Align",type:"enum",enumList:[{val:"left",dispName:"Left"},{val:"center",dispName:"Center"},{val:"right",dispName:"Right"}],defVal:"left"},{name:"imageVerticalAlign",dispName:"Image Vertical Align",type:"enum",enumList:[{val:"top",dispName:"Top"},{val:"middle",dispName:"Middle"},{val:"bottom",dispName:"Bottom"}],defVal:"middle"},{name:"imageWidth",dispName:"Image Width",type:"float",min:0,defVal:24},{name:"imageHeight",dispName:"Image Height", -type:"float",min:0,defVal:24},{name:"arcSize",dispName:"Arc Size",type:"float",min:0,defVal:12},{name:"absoluteArcSize",dispName:"Abs. Arc Size",type:"bool",defVal:!1}];mxCellRenderer.defaultShapes.dataStorage.prototype.customProperties=[{name:"size",dispName:"Size",type:"float",min:0,max:1,defVal:.1}];mxCellRenderer.defaultShapes.manualInput.prototype.customProperties=[{name:"size",dispName:"Size",type:"float",min:0,defVal:30},{name:"arcSize",dispName:"Arc Size",type:"float",min:0,defVal:20}];mxCellRenderer.defaultShapes.loopLimit.prototype.customProperties= +!0;Editor.foreignObjectImages=!0;Editor.svgFileTheme="auto";Editor.svgRasterScale=4;Editor.htmlRasterScale=4;Editor.config=null;Editor.configVersion=null;Editor.createInheritProperty=function(n,z){return{name:z,dispName:n,type:"bool",defVal:!1,isVisible:function(E,L){return 1==E.vertices.length?(L=L.editorUi.editor.graph.model,E=L.getParent(E.vertices[0]),L.isEdge(E)||L.isVertex(E)):!1},getValue:function(E,L){return"inherit"==mxUtils.getValue(E.style,z)},valueChanged:function(E,L,Q,P){L=P.editorUi.editor.graph; +"1"==E?L.setCellStyles(z,"inherit",Q.vertices):L.setCellStyles(z,null,Q.vertices)}}};Editor.commonProperties=[{name:"enumerate",dispName:"Enumerate",type:"bool",defVal:!1,onChange:function(n){n.refresh()}},{name:"enumerateValue",dispName:"Enumerate Value",type:"string",defVal:"",isVisible:function(n,z){return"1"==mxUtils.getValue(n.style,"enumerate","0")}},{name:"comic",dispName:"Comic",type:"bool",defVal:!1,isVisible:function(n,z){return"1"!=mxUtils.getValue(n.style,"sketch","0")}},{name:"jiggle", +dispName:"Jiggle",type:"float",min:0,defVal:1,isVisible:function(n,z){return"1"==mxUtils.getValue(n.style,"comic","0")||"1"==mxUtils.getValue(n.style,"sketch","1"==urlParams.rough?"1":"0")}},{name:"fillWeight",dispName:"Fill Weight",type:"int",defVal:-1,isVisible:function(n,z){return"1"==mxUtils.getValue(n.style,"sketch","1"==urlParams.rough?"1":"0")&&0%position%
Email\n#\n## Node style (placeholders are replaced once).\n## Default is the current style for nodes.\n#\n# style: label;image=%image%;whiteSpace=wrap;html=1;rounded=1;fillColor=%fill%;strokeColor=%stroke%;\n#\n## 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## Style to be used for objects not in the CSV. If this is - then such objects are ignored,\n## else they are created using this as their style, eg. whiteSpace=wrap;html=1;\n#\n# unknownStyle: -\n#\n## Optional column name that contains a reference to a named style in styles.\n## Default is the current style for nodes.\n#\n# stylename: -\n#\n## JSON for named styles of the form {"name": "style", "name": "style"} where style is a cell style with\n## placeholders that are replaced once.\n#\n# styles: -\n#\n## JSON for variables in styles of the form {"name": "value", "name": "value"} where name is a string\n## that will replace a placeholder in a style.\n#\n# vars: -\n#\n## Optional column name that contains a reference to a named label in labels.\n## Default is the current label.\n#\n# labelname: -\n#\n## JSON for named labels of the form {"name": "label", "name": "label"} where label is a cell label with\n## placeholders.\n#\n# labels: -\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## If placeholders are used in the style, they are replaced with data from the source.\n## An optional placeholders can be set to target to use data from the target instead.\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## In addition to those, an optional source and targetlabel can be used to specify a label\n## that contains placeholders referencing the respective columns in the source or target row.\n## The label is created in the form fromlabel + sourcelabel + label + tolabel + targetlabel.\n## Additional labels can be added by using an optional labels array with entries of the\n## form {"label": string, "x": number, "y": number, "dx": number, "dy": number} where\n## x is from -1 to 1 along the edge, y is orthogonal, and dx/dy are offsets in pixels.\n## An optional placeholders with the string value "source" or "target" can be specified\n## to replace placeholders in the additional label with data from the source or target.\n## An optional data object can be specified to define the metadata for the connector.\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, width 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## Collapsed state for vertices. Possible values are true or false. Default is false.\n#\n# collapsed: false\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,refs,manager\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. Use 0 to disable.\n#\n# edgespacing: 40\n#\n## Name or JSON of layout. Possible values are auto, none, verticaltree, horizontaltree,\n## verticalflow, horizontalflow, organic, circle, orgchart or a JSON string as used in\n## Layout, Apply. 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\nTessa Miller,CFO,emi,Office 1,,me@example.com,default,#6c8ebf,,https://www.draw.io,https://cdn3.iconfinder.com/data/icons/user-avatars-1/512/users-3-128.png\nEdward Morrison,Brand Manager,emo,Office 2,Tessa Miller,me@example.com,default,#82b366,,https://www.draw.io,https://cdn3.iconfinder.com/data/icons/user-avatars-1/512/users-10-3-128.png\nAlison Donovan,System Admin,rdo,Office 3,Tessa Miller,me@example.com,default,#82b366,"emo,tva",https://www.draw.io,https://cdn3.iconfinder.com/data/icons/user-avatars-1/512/users-2-128.png\nEvan Valet,HR Director,tva,Office 4,Tessa Miller,me@example.com,default,#82b366,,https://www.draw.io,https://cdn3.iconfinder.com/data/icons/user-avatars-1/512/users-9-2-128.png\n'; +Editor.createRoughCanvas=function(n){var z=rough.canvas({getContext:function(){return n}});z.draw=function(E){var L=E.sets||[];E=E.options||this.getDefaultOptions();for(var Q=0;QX&&(X=Q.strokeWidth/2);n.setStrokeAlpha(n.state.fillAlpha);n.setStrokeColor(Q.fill||"");n.setStrokeWidth(X);n.setDashed(!1);this._drawToContext(E,L,Q);n.setDashed(W);n.setStrokeWidth(S);n.setStrokeColor(P);n.setStrokeAlpha(U)};z._drawToContext=function(E,L,Q){E.begin();for(var P=0;P",Q));if(null!=E){z=E;E=[];for(L=0;LQ){z=n.substring(Q,W);break}}10==U&&("endobj"==E?S=null:"obj"==E.substring(E.length-3,E.length)||"xref"==E||"trailer"==E?(S=[],P[E.split(" ")[0]]=S):null!=S&&S.push(E),E="")}}null==z&&null!=P&&(z=Editor.extractGraphModelFromXref(P));null!=z&&(z=decodeURIComponent(z.replace(/\\\(/g,"(").replace(/\\\)/g,")")));return z};Editor.extractGraphModelFromXref=function(n){var z=n.trailer,E=null;null!= +z&&(z=/.* \/Info (\d+) (\d+) R/g.exec(z.join("\n")),null!=z&&0 1 expected for zoomFactor"));null!=n.defaultGridSize&&(z=parseInt(n.defaultGridSize),!isNaN(z)&&0 0 expected for defaultGridSize"));null!=n.gridSteps&&(z=parseInt(n.gridSteps),!isNaN(z)&&0 0 expected for gridSteps")); +null!=n.pageFormat&&(z=parseInt(n.pageFormat.width),E=parseInt(n.pageFormat.height),!isNaN(z)&&0 0 expected for sidebarTitleSize")); +null!=n.fontCss&&("string"===typeof n.fontCss?Editor.configureFontCss(n.fontCss):EditorUi.debug("Configuration Error: String expected for fontCss"));null!=n.autosaveDelay&&(z=parseInt(n.autosaveDelay),!isNaN(z)&&0 0 expected for autosaveDelay"));null!=n.maxImageBytes&&(EditorUi.prototype.maxImageBytes=n.maxImageBytes);null!=n.maxImageSize&&(EditorUi.prototype.maxImageSize=n.maxImageSize);null!=n.shareCursorPosition&& +(EditorUi.prototype.shareCursorPosition=n.shareCursorPosition);null!=n.showRemoteCursors&&(EditorUi.prototype.showRemoteCursors=n.showRemoteCursors);null!=n.restrictExport&&(DrawioFile.RESTRICT_EXPORT=n.restrictExport);null!=n.replaceSvgDataUris&&(Editor.replaceSvgDataUris=n.replaceSvgDataUris);null!=n.foreignObjectImages&&(Editor.foreignObjectImages=n.foreignObjectImages);null!=n.shadowColor&&(mxConstants.SHADOW_COLOR=n.shadowColor);null!=n.shadowOpacity&&(mxConstants.SHADOW_OPACITY=n.shadowOpacity); +null!=n.shadowOffsetX&&(mxConstants.SHADOW_OFFSET_X=n.shadowOffsetX);null!=n.shadowOffsetY&&(mxConstants.SHADOW_OFFSET_Y=n.shadowOffsetY);null!=n.shadowBlur&&(mxConstants.SHADOW_BLUR=n.shadowBlur);null!=n.enableAnimations&&(Editor.enableAnimations=n.enableAnimations);null!=n.enableChatGpt&&(Editor.enableChatGpt=n.enableChatGpt);null!=n.gptApiKey&&(Editor.gptApiKey=n.gptApiKey);null!=n.gptModel&&(Editor.gptModel=n.gptModel);null!=n.gptUrl&&(Editor.gptUrl=n.gptUrl)}};Editor.isSettingsEnabled=function(){return"undefined"!== +typeof window.mxSettings&&(isLocalStorage||mxClient.IS_CHROMEAPP)};Editor.configureFontCss=function(n){if(null!=n){Editor.prototype.fontCss=n;var z=document.getElementsByTagName("script")[0];if(null!=z&&null!=z.parentNode){var E=document.createElement("style");E.setAttribute("type","text/css");E.appendChild(document.createTextNode(n));z.parentNode.insertBefore(E,z);n=n.split("url(");for(E=1;EX.getStatus()|| +299>2);z+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((Q&3)<<4);z+="==";break}P=n.charCodeAt(E++); +if(E==L){z+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(Q>>2);z+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((Q&3)<<4|(P&240)>>4);z+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((P&15)<<2);z+="=";break}S=n.charCodeAt(E++);z+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(Q>>2);z+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((Q&3)<<4|(P&240)>>4);z+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((P& +15)<<2|(S&192)>>6);z+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(S&63)}return z};Editor.prototype.loadUrl=function(n,z,E,L,Q,P,S,U){try{var W=!S&&(L||/(\.png)($|\?)/i.test(n)||/(\.jpe?g)($|\?)/i.test(n)||/(\.gif)($|\?)/i.test(n)||/(\.pdf)($|\?)/i.test(n));Q=null!=Q?Q:!0;var X=mxUtils.bind(this,function(){mxUtils.get(n,mxUtils.bind(this,function(Y){200<=Y.getStatus()&&299>=Y.getStatus()?null!=z&&(Y=Y.getText(),W&&(P=null!=P?P:"data:image/png;base64,",Y=P+Editor.base64Encode(Y)), +z(Y)):null!=E&&(0==Y.getStatus()?E({message:mxResources.get("accessDenied")},Y):404==Y.getStatus()?E({message:mxResources.get("fileNotFound"),code:Y.getStatus()},Y):E({message:this.getErrorMessage(Y)},Y))}),function(Y){null!=E&&E({message:mxResources.get("error")+" "+Y.getStatus()})},W,this.timeout,function(){Q&&null!=E&&E({code:App.ERROR_TIMEOUT,retry:X})},U)});X()}catch(Y){null!=E&&E(Y)}};Editor.prototype.getErrorMessage=function(n){var z=mxResources.get("error")+" "+n.getStatus();try{var E=n.getText(), +L=JSON.parse(E);null!=L&&null!=L.error&&null!=L.error.message&&(z=L.error.message+" ("+z+")")}catch(Q){}return z};Editor.prototype.absoluteCssFonts=function(n){var z=null;if(null!=n){var E=n.split("url(");if(0L.indexOf("mxPageSelector")&&0l;l++)for(var p=l,q=0;8>q;q++)p=1==(p&1)?3988292384^p>>>1:p>>>1,Editor.crcTable[l]=p;Editor.updateCRC=function(n,z,E,L){for(var Q=0;Q>>8;return n};Editor.crc32=function(n){for(var z=-1,E=0;E>>8^Editor.crcTable[(z^n.charCodeAt(E))&255];return(z^-1)>>>0};Editor.writeGraphModelToPng=function(n,z,E,L,Q){function P(Y,Z){var ca=W;W+=Z;return Y.substring(ca,W)}function S(Y){Y=P(Y,4);return Y.charCodeAt(3)+(Y.charCodeAt(2)<< +8)+(Y.charCodeAt(1)<<16)+(Y.charCodeAt(0)<<24)}function U(Y){return String.fromCharCode(Y>>24&255,Y>>16&255,Y>>8&255,Y&255)}n=n.substring(n.indexOf(",")+1);n=window.atob?atob(n):Base64.decode(n,!0);var W=0;if(P(n,8)!=String.fromCharCode(137)+"PNG"+String.fromCharCode(13,10,26,10))null!=Q&&Q();else if(P(n,4),"IHDR"!=P(n,4))null!=Q&&Q();else{P(n,17);Q=n.substring(0,W);do{var X=S(n);if("IDAT"==P(n,4)){Q=n.substring(0,W-8);"pHYs"==z&&"dpi"==E?(E=Math.round(L/.0254),E=U(E)+U(E)+String.fromCharCode(1)): +E=E+String.fromCharCode(0)+("zTXt"==z?String.fromCharCode(0):"")+L;L=4294967295;L=Editor.updateCRC(L,z,0,4);L=Editor.updateCRC(L,E,0,E.length);Q+=U(E.length)+z+E+U(L^4294967295);Q+=n.substring(W-8,n.length);break}Q+=n.substring(W-8,W-4+X);P(n,X);P(n,4)}while(X);return"data:image/png;base64,"+(window.btoa?btoa(Q):Base64.encode(Q,!0))}};if(window.ColorDialog){FilenameDialog.filenameHelpLink="https://www.drawio.com/doc/faq/save-file-formats";var v=ColorDialog.addRecentColor;ColorDialog.addRecentColor= +function(n,z){v.apply(this,arguments);mxSettings.setRecentColors(ColorDialog.recentColors);mxSettings.save()};var D=ColorDialog.resetRecentColors;ColorDialog.resetRecentColors=function(){D.apply(this,arguments);mxSettings.setRecentColors(ColorDialog.recentColors);mxSettings.save()}}"undefined"!==typeof window.EditDataDialog&&(EditDataDialog.getDisplayIdForCell=function(n,z){var E=null;null!=n.editor.graph.getModel().getParent(z)?E=z.getId():null!=n.currentPage&&(E=n.currentPage.getId());return E}); +if(null!=window.StyleFormatPanel){var G=Format.prototype.init;Format.prototype.init=function(){G.apply(this,arguments);this.editorUi.editor.addListener("fileLoaded",this.update)};var B=Format.prototype.refresh;Format.prototype.refresh=function(){null!=this.editorUi.getCurrentFile()||"1"==urlParams.embed||this.editorUi.editor.chromeless?B.apply(this,arguments):this.clear()};DiagramFormatPanel.prototype.isMathOptionVisible=function(n){return"simple"==Editor.currentTheme||"sketch"==Editor.currentTheme|| +"min"==Editor.currentTheme};var d=DiagramFormatPanel.prototype.addOptions;DiagramFormatPanel.prototype.addOptions=function(n){n=d.apply(this,arguments);var z=this.editorUi,E=z.editor.graph;if(E.isEnabled()){var L=z.getCurrentFile();null!=L&&L.isAutosaveOptional()&&n.appendChild(this.createOption(mxResources.get("autosave"),function(){return z.editor.autosave},function(P){z.editor.setAutosave(P);z.editor.autosave&&L.isModified()&&L.fileChanged()},{install:function(P){this.listener=function(){P(z.editor.autosave)}; +z.editor.addListener("autosaveChanged",this.listener)},destroy:function(){z.editor.removeListener(this.listener)}}))}if(this.isMathOptionVisible()&&E.isEnabled()&&"undefined"!==typeof MathJax){var Q=this.createOption(mxResources.get("mathematicalTypesetting"),function(){return E.mathEnabled},function(P){z.actions.get("mathematicalTypesetting").funct()},{install:function(P){this.listener=function(){P(E.mathEnabled)};z.addListener("mathEnabledChanged",this.listener)},destroy:function(){z.removeListener(this.listener)}}); +n.appendChild(Q);(!z.isOffline()||mxClient.IS_CHROMEAPP||EditorUi.isElectronApp)&&Q.appendChild(z.menus.createHelpLink("https://www.drawio.com/doc/faq/math-typesetting"))}return n};mxCellRenderer.prototype.defaultVertexShape.prototype.customProperties=[{name:"arcSize",dispName:"Arc Size",type:"float",min:0,defVal:mxConstants.LINE_ARCSIZE},{name:"absoluteArcSize",dispName:"Abs. Arc Size",type:"bool",defVal:!1}];mxCellRenderer.defaultShapes.link.prototype.customProperties=[{name:"width",dispName:"Width", +type:"float",min:0,defVal:4}];mxCellRenderer.defaultShapes.flexArrow.prototype.customProperties=[{name:"width",dispName:"Width",type:"float",min:0,defVal:10},{name:"startWidth",dispName:"Start Width",type:"float",min:0,defVal:20},{name:"endWidth",dispName:"End Width",type:"float",min:0,defVal:20}];mxCellRenderer.defaultShapes.process.prototype.customProperties=[{name:"size",dispName:"Indent",type:"float",min:0,max:.5,defVal:.1}];mxCellRenderer.defaultShapes.rhombus.prototype.customProperties=[{name:"arcSize", +dispName:"Arc Size",type:"float",min:0,max:50,defVal:mxConstants.LINE_ARCSIZE},{name:"double",dispName:"Double",type:"bool",defVal:!1}];mxCellRenderer.defaultShapes.partialRectangle.prototype.customProperties=[{name:"top",dispName:"Top Line",type:"bool",defVal:!0},{name:"bottom",dispName:"Bottom Line",type:"bool",defVal:!0},{name:"left",dispName:"Left Line",type:"bool",defVal:!0},{name:"right",dispName:"Right Line",type:"bool",defVal:!0}];mxCellRenderer.defaultShapes.parallelogram.prototype.customProperties= +[{name:"arcSize",dispName:"Arc Size",type:"float",min:0,defVal:mxConstants.LINE_ARCSIZE},{name:"size",dispName:"Slope Angle",type:"float",min:0,max:1,defVal:.2,isVisible:function(n){return"0"==mxUtils.getValue(n.style,"fixedSize","0")}},{name:"size",dispName:"Slope Angle",type:"float",min:0,defVal:20,isVisible:function(n){return"1"==mxUtils.getValue(n.style,"fixedSize","0")}}];mxCellRenderer.defaultShapes.hexagon.prototype.customProperties=[{name:"arcSize",dispName:"Arc Size",type:"float",min:0,defVal:mxConstants.LINE_ARCSIZE}, +{name:"size",dispName:"Slope Angle",type:"float",min:0,max:1,defVal:.25,isVisible:function(n){return"0"==mxUtils.getValue(n.style,"fixedSize","0")}},{name:"size",dispName:"Slope Angle",type:"float",min:0,defVal:25,isVisible:function(n){return"1"==mxUtils.getValue(n.style,"fixedSize","0")}}];mxCellRenderer.defaultShapes.triangle.prototype.customProperties=[{name:"arcSize",dispName:"Arc Size",type:"float",min:0,defVal:mxConstants.LINE_ARCSIZE}];mxCellRenderer.defaultShapes.document.prototype.customProperties= +[{name:"size",dispName:"Size",type:"float",defVal:.3,min:0,max:1}];mxCellRenderer.defaultShapes.internalStorage.prototype.customProperties=[{name:"arcSize",dispName:"Arc Size",type:"float",min:0,defVal:mxConstants.LINE_ARCSIZE},{name:"dx",dispName:"Left Line",type:"float",min:0,defVal:20},{name:"dy",dispName:"Top Line",type:"float",min:0,defVal:20}];mxCellRenderer.defaultShapes.cube.prototype.customProperties=[{name:"size",dispName:"Size",type:"float",min:0,defVal:20},{name:"darkOpacity",dispName:"Dark Opacity", +type:"float",min:-1,max:1,defVal:0},{name:"darkOpacity2",dispName:"Dark Opacity 2",type:"float",min:-1,max:1,defVal:0}];mxCellRenderer.defaultShapes.step.prototype.customProperties=[{name:"arcSize",dispName:"Arc Size",type:"float",min:0,defVal:mxConstants.LINE_ARCSIZE},{name:"size",dispName:"Notch Size",type:"float",min:0,defVal:20},{name:"fixedSize",dispName:"Fixed Size",type:"bool",defVal:!0}];mxCellRenderer.defaultShapes.trapezoid.prototype.customProperties=[{name:"arcSize",dispName:"Arc Size", +type:"float",min:0,defVal:mxConstants.LINE_ARCSIZE},{name:"size",dispName:"Slope Angle",type:"float",min:0,max:1,defVal:.2}];mxCellRenderer.defaultShapes.tape.prototype.customProperties=[{name:"size",dispName:"Size",type:"float",min:0,max:1,defVal:.4}];mxCellRenderer.defaultShapes.note.prototype.customProperties=[{name:"size",dispName:"Fold Size",type:"float",min:0,defVal:30},{name:"darkOpacity",dispName:"Dark Opacity",type:"float",min:-1,max:1,defVal:0}];mxCellRenderer.defaultShapes.card.prototype.customProperties= +[{name:"arcSize",dispName:"Arc Size",type:"float",min:0,defVal:mxConstants.LINE_ARCSIZE},{name:"size",dispName:"Cutoff Size",type:"float",min:0,defVal:30}];mxCellRenderer.defaultShapes.callout.prototype.customProperties=[{name:"arcSize",dispName:"Arc Size",type:"float",min:0,defVal:mxConstants.LINE_ARCSIZE},{name:"base",dispName:"Callout Width",type:"float",min:0,defVal:20},{name:"size",dispName:"Callout Length",type:"float",min:0,defVal:30},{name:"position",dispName:"Callout Position",type:"float", +min:0,max:1,defVal:.5},{name:"position2",dispName:"Callout Tip Position",type:"float",min:0,max:1,defVal:.5}];mxCellRenderer.defaultShapes.folder.prototype.customProperties=[{name:"tabWidth",dispName:"Tab Width",type:"float"},{name:"tabHeight",dispName:"Tab Height",type:"float"},{name:"tabPosition",dispName:"Tap Position",type:"enum",enumList:[{val:"left",dispName:"Left"},{val:"right",dispName:"Right"}]}];mxCellRenderer.defaultShapes.swimlane.prototype.customProperties=[{name:"arcSize",dispName:"Arc Size", +type:"float",min:0,defVal:15},{name:"absoluteArcSize",dispName:"Abs. Arc Size",type:"bool",defVal:!1},{name:"startSize",dispName:"Header Size",type:"float"},{name:"swimlaneHead",dispName:"Head Border",type:"bool",defVal:!0},{name:"swimlaneBody",dispName:"Body Border",type:"bool",defVal:!0},{name:"horizontal",dispName:"Horizontal",type:"bool",defVal:!0},{name:"separatorColor",dispName:"Separator Color",type:"color",defVal:null}];mxCellRenderer.defaultShapes.table.prototype.customProperties=[{name:"rowLines", +dispName:"Row Lines",type:"bool",defVal:!0},{name:"columnLines",dispName:"Column Lines",type:"bool",defVal:!0},{name:"fixedRows",dispName:"Fixed Rows",type:"bool",defVal:!1},{name:"resizeLast",dispName:"Resize Last Column",type:"bool",defVal:!1},{name:"resizeLastRow",dispName:"Resize Last Row",type:"bool",defVal:!1}].concat(mxCellRenderer.defaultShapes.swimlane.prototype.customProperties).concat(mxCellRenderer.defaultShapes.partialRectangle.prototype.customProperties);mxCellRenderer.defaultShapes.tableRow.prototype.customProperties= +mxCellRenderer.defaultShapes.swimlane.prototype.customProperties.concat(mxCellRenderer.defaultShapes.partialRectangle.prototype.customProperties);mxCellRenderer.defaultShapes.doubleEllipse.prototype.customProperties=[{name:"margin",dispName:"Indent",type:"float",min:0,defVal:4}];mxCellRenderer.defaultShapes.ext.prototype.customProperties=[{name:"arcSize",dispName:"Arc Size",type:"float",min:0,defVal:15},{name:"double",dispName:"Double",type:"bool",defVal:!1},{name:"margin",dispName:"Indent",type:"float", +min:0,defVal:0}];mxCellRenderer.defaultShapes.curlyBracket.prototype.customProperties=[{name:"rounded",dispName:"Rounded",type:"bool",defVal:!0},{name:"size",dispName:"Size",type:"float",min:0,max:1,defVal:.5}];mxCellRenderer.defaultShapes.image.prototype.customProperties=[{name:"imageAspect",dispName:"Fixed Image Aspect",type:"bool",defVal:!0}];mxCellRenderer.defaultShapes.label.prototype.customProperties=[{name:"imageAspect",dispName:"Fixed Image Aspect",type:"bool",defVal:!0},{name:"imageAlign", +dispName:"Image Align",type:"enum",enumList:[{val:"left",dispName:"Left"},{val:"center",dispName:"Center"},{val:"right",dispName:"Right"}],defVal:"left"},{name:"imageVerticalAlign",dispName:"Image Vertical Align",type:"enum",enumList:[{val:"top",dispName:"Top"},{val:"middle",dispName:"Middle"},{val:"bottom",dispName:"Bottom"}],defVal:"middle"},{name:"imageWidth",dispName:"Image Width",type:"float",min:0,defVal:24},{name:"imageHeight",dispName:"Image Height",type:"float",min:0,defVal:24},{name:"arcSize", +dispName:"Arc Size",type:"float",min:0,defVal:12},{name:"absoluteArcSize",dispName:"Abs. Arc Size",type:"bool",defVal:!1}];mxCellRenderer.defaultShapes.dataStorage.prototype.customProperties=[{name:"size",dispName:"Size",type:"float",min:0,max:1,defVal:.1}];mxCellRenderer.defaultShapes.manualInput.prototype.customProperties=[{name:"size",dispName:"Size",type:"float",min:0,defVal:30},{name:"arcSize",dispName:"Arc Size",type:"float",min:0,defVal:20}];mxCellRenderer.defaultShapes.loopLimit.prototype.customProperties= [{name:"size",dispName:"Size",type:"float",min:0,defVal:20},{name:"arcSize",dispName:"Arc Size",type:"float",min:0,defVal:20}];mxCellRenderer.defaultShapes.offPageConnector.prototype.customProperties=[{name:"size",dispName:"Size",type:"float",min:0,defVal:38},{name:"arcSize",dispName:"Arc Size",type:"float",min:0,defVal:20}];mxCellRenderer.defaultShapes.display.prototype.customProperties=[{name:"size",dispName:"Size",type:"float",min:0,max:1,defVal:.25}];mxCellRenderer.defaultShapes.singleArrow.prototype.customProperties= [{name:"arrowWidth",dispName:"Arrow Width",type:"float",min:0,max:1,defVal:.3},{name:"arrowSize",dispName:"Arrowhead Length",type:"float",min:0,max:1,defVal:.2}];mxCellRenderer.defaultShapes.doubleArrow.prototype.customProperties=[{name:"arrowWidth",dispName:"Arrow Width",type:"float",min:0,max:1,defVal:.3},{name:"arrowSize",dispName:"Arrowhead Length",type:"float",min:0,max:1,defVal:.2}];mxCellRenderer.defaultShapes.cross.prototype.customProperties=[{name:"size",dispName:"Size",type:"float",min:0, max:1,defVal:.2}];mxCellRenderer.defaultShapes.corner.prototype.customProperties=[{name:"dx",dispName:"Width1",type:"float",min:0,defVal:20},{name:"dy",dispName:"Width2",type:"float",min:0,defVal:20}];mxCellRenderer.defaultShapes.tee.prototype.customProperties=[{name:"dx",dispName:"Width1",type:"float",min:0,defVal:20},{name:"dy",dispName:"Width2",type:"float",min:0,defVal:20}];mxCellRenderer.defaultShapes.umlLifeline.prototype.customProperties=[{name:"participant",dispName:"Participant",type:"enum", @@ -12893,90 +12912,91 @@ defVal:"none",enumList:[{val:"none",dispName:"Default"},{val:"umlActor",dispName stroke:"#3700CC",font:"#ffffff"},{fill:"#d80073",stroke:"#A50040",font:"#ffffff"},{fill:"#a20025",stroke:"#6F0000",font:"#ffffff"}],[{fill:"#e51400",stroke:"#B20000",font:"#ffffff"},{fill:"#fa6800",stroke:"#C73500",font:"#000000"},{fill:"#f0a30a",stroke:"#BD7000",font:"#000000"},{fill:"#e3c800",stroke:"#B09500",font:"#000000"},{fill:"#6d8764",stroke:"#3A5431",font:"#ffffff"},{fill:"#647687",stroke:"#314354",font:"#ffffff"},{fill:"#76608a",stroke:"#432D57",font:"#ffffff"},{fill:"#a0522d",stroke:"#6D1F00", font:"#ffffff"}],[{fill:"",stroke:""},{fill:mxConstants.NONE,stroke:""},{fill:"#fad7ac",stroke:"#b46504"},{fill:"#fad9d5",stroke:"#ae4132"},{fill:"#b0e3e6",stroke:"#0e8088"},{fill:"#b1ddf0",stroke:"#10739e"},{fill:"#d0cee2",stroke:"#56517e"},{fill:"#bac8d3",stroke:"#23445d"}],[{fill:"",stroke:""},{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"}],[{fill:"",stroke:""},{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;var g=StyleFormatPanel.prototype.init; -StyleFormatPanel.prototype.init=function(){var m=this.editorUi.getSelectionState();null!=this.defaultColorSchemes&&0la.size&&(xa=xa.slice(0,la.size));oa=xa.join(",");null!=la.countProperty&&(ba.setCellStyles(la.countProperty,xa.length,ba.getSelectionCells()),va.push(la.countProperty),Ca.push(xa.length))}ba.setCellStyles(sa,oa,ba.getSelectionCells());va.push(sa);Ca.push(oa);if(null!=la.dependentProps)for(sa=0;saoa)Ka=Ka.slice(0,oa);else for(var Ja=Ka.length;Jala.max&&(Aa=la.max);var Ma=null;try{Ma="numbers"==xa?Aa.match(/\d+/g).map(Number).join(" "):encodeURIComponent(("int"==xa?parseInt(Aa):Aa)+"")}catch(Va){}O(sa,Ma,la,null,Ga)}var Ga=document.createElement("input");Q(Ba,Ga,!0);Ga.value=decodeURIComponent(oa);Ga.className="gePropEditor";"int"!=xa&&"float"!=xa||la.allowAuto||(Ga.type="number",Ga.step="int"==xa?"1":"any",null!=la.min&&(Ga.min=parseFloat(la.min)),null!=la.max&&(Ga.max= -parseFloat(la.max)));m.appendChild(Ga);mxEvent.addListener(Ga,"keypress",function(Aa){13==Aa.keyCode&&Ja()});Ga.focus();mxEvent.addListener(Ga,"blur",function(){Ja()})})));la.isDeletable&&(va=mxUtils.button("-",mxUtils.bind(Y,function(Ja){O(sa,"",la,la.index);mxEvent.consume(Ja)})),va.style.height="16px",va.style.width="25px",va.style.float="right",va.className="geColorBtn",Ba.appendChild(va));Da.appendChild(Ba);return Da}var Y=this,ba=this.editorUi.editor.graph,da=[],ia=document.createElement("table"); -ia.className="geProperties geFullWidthElement";var ca=document.createElement("tr");ca.className="gePropHeader";var fa=document.createElement("th");fa.className="gePropHeaderCell";fa.style.paddingLeft="16px";fa.style.backgroundRepeat="no-repeat";fa.style.backgroundPosition="-2px 50%";fa.style.backgroundSize="20px";mxUtils.write(fa,mxResources.get("property"));ca.style.cursor="pointer";var aa=function(){var sa=ia.querySelectorAll(".gePropNonHeaderRow");if(Y.editorUi.propertiesCollapsed){fa.style.backgroundImage= -"url('"+Editor.arrowRightImage+"')";var oa="none";for(var la=m.childNodes.length-1;0<=la;la--)try{var Ea=m.childNodes[la],va=Ea.nodeName.toUpperCase();"INPUT"!=va&&"SELECT"!=va||m.removeChild(Ea)}catch(Ca){}}else fa.style.backgroundImage="url('"+Editor.arrowDownImage+"')",oa="";for(la=0;la=this.defaultColorSchemes.length?"24px":"30px";aa.style.margin="0px 6px 6px 0px";if(null!=fa){var ja="1px solid";null!=fa.border&&(ja=fa.border);if(null!=fa.gradient)aa.style.backgroundImage="linear-gradient("+mxUtils.getLightDarkColor(fa.fill).cssText+" 0px,"+mxUtils.getLightDarkColor(fa.gradient).cssText+" 100%)";else if(fa.fill==mxConstants.NONE)aa.style.background="url('"+Dialog.prototype.noColorImage+"')";else if(null==fa.fill||""==fa.fill)aa.style.backgroundColor= -mxUtils.getLightDarkColor(mxUtils.getValue(da,mxConstants.STYLE_FILLCOLOR,"#ffffff")).cssText;else{var ha=mxUtils.getLightDarkColor(fa.fill);aa.style.backgroundImage="linear-gradient(to right bottom, "+ha.cssText+" 50%, "+ha.light+" 50.3%)"}null==fa.stroke||fa.stroke==mxConstants.NONE?aa.style.border=ja+" transparent":""==fa.stroke?aa.style.border="1px solid "+mxUtils.getLightDarkColor(mxUtils.getValue(da,mxConstants.STYLE_STROKECOLOR,"#000000")).cssText:(ha=mxUtils.getLightDarkColor(fa.stroke),aa.style.border= -ja+" "+ha.cssText,aa.style.borderRightColor=ha.light,aa.style.borderBottomColor=aa.style.borderRightColor);null!=fa.title&&aa.setAttribute("title",fa.title)}else ja=mxUtils.getValue(da,mxConstants.STYLE_FILLCOLOR,"#ffffff"),ha=mxUtils.getValue(da,mxConstants.STYLE_STROKECOLOR,"#000000"),aa.style.backgroundColor=ja,aa.style.border="1px solid "+ha;aa.style.borderRadius="0";M.appendChild(aa);null!=fa&&null!=fa.gradient&&(ja=aa.cloneNode(!1),ja.style.backgroundImage="linear-gradient(light-dark(transparent, "+ -mxUtils.getLightDarkColor(fa.fill).light+") 0px, light-dark(transparent, "+mxUtils.getLightDarkColor(fa.gradient).light+") 100%)",ja.style.clipPath="polygon(0 100%, 100% 0, 100% 100%)",ja.style.backgroundColor="transparent",M.appendChild(ja),ja.style.marginLeft="-42px",mxEvent.addListener(ja,"click",function(){aa.click()}))});M.innerText="";if(null!=ba)for(var ca=0;ca=this.defaultColorSchemes.length?43:23;var Z=document.createElement("div");Z.className="geButton";Z.style.cssText="position:absolute;left:0px;bottom:"+S+"px;width:20px;background-image:url("+Editor.chevronLeftImage+");";mxEvent.addListener(Z,"click",mxUtils.bind(this,function(){W(mxUtils.mod(this.format.currentScheme-1,this.defaultColorSchemes.length))}));var Y=document.createElement("div");Y.className="geButton";Y.style.cssText="position:absolute;left:186px;bottom:"+ -S+"px;width:20px;background-image:url("+Editor.chevronRightImage+");";1=this.defaultColorSchemes.length&&m.appendChild(O)}return m}}Graph.fontMapping={"https://fonts.googleapis.com/css?family=Architects+Daughter":'@font-face { font-family: "Architects Daughter"; src: url('+ -STYLE_PATH+'/fonts/ArchitectsDaughter-Regular.ttf) format("truetype"); }'};Graph.customFontElements={};Graph.isGoogleFontUrl=function(m){return m.substring(0,Editor.GOOGLE_FONTS.length)==Editor.GOOGLE_FONTS||m.substring(0,Editor.GOOGLE_FONTS_CSS2.length)==Editor.GOOGLE_FONTS_CSS2};Graph.isCssFontUrl=function(m){return Graph.isGoogleFontUrl(m)};Graph.rewriteGoogleFontUrl=function(m){null!=m&&m.substring(0,Editor.GOOGLE_FONTS.length)==Editor.GOOGLE_FONTS&&(m=Editor.GOOGLE_FONTS_CSS2+m.substring(Editor.GOOGLE_FONTS.length)+ -":wght@400;500");return m};Graph.createFontElement=function(m,z){var F=Graph.fontMapping[z];null==F&&Graph.isCssFontUrl(z)?(m=document.createElement("link"),m.setAttribute("rel","stylesheet"),m.setAttribute("type","text/css"),m.setAttribute("charset","UTF-8"),m.setAttribute("href",Graph.rewriteGoogleFontUrl(z))):(null==F&&(F='@font-face {\nfont-family: "'+m+'";\nsrc: url("'+z+'");\n}'),m=document.createElement("style"),mxUtils.write(m,F));return m};Graph.addRecentCustomFont=function(m,z){};Graph.addFont= -function(m,z,F){if(null!=m&&0mxUtils.indexOf(T.hiddenTags, -ea),na=document.createElement("tr"),za=document.createElement("td");za.style.align="center";za.style.width="16px";var ma=document.createElement("img");ma.setAttribute("src",ua?Editor.visibleImage:Editor.hiddenImage);ma.setAttribute("title",mxResources.get(ua?"hideIt":"show",[ea]));mxUtils.setOpacity(ma,ua?75:25);ma.className="geAdaptiveAsset";ma.style.verticalAlign="middle";ma.style.cursor="pointer";ma.style.width="16px";if(z||Editor.isDarkMode())ma.style.filter="invert(100%)";za.appendChild(ma); -mxEvent.addListener(ma,"click",function(oa){mxEvent.isShiftDown(oa)?Q(0<=mxUtils.indexOf(T.hiddenTags,ea)):(T.toggleHiddenTag(ea),O(),T.refresh());mxEvent.consume(oa)});na.appendChild(za);za=document.createElement("td");za.style.align="center";za.style.width="16px";ma=document.createElement("img");ma.setAttribute("src",Editor.selectImage);ma.setAttribute("title",mxResources.get("select"));mxUtils.setOpacity(ma,ua?75:25);ma.className="geAdaptiveAsset";ma.style.verticalAlign="middle";ma.style.cursor= -"pointer";ma.style.width="16px";if(z||Editor.isDarkMode())ma.style.filter="invert(100%)";mxEvent.addListener(ma,"click",function(oa){Q(!0);ya();mxEvent.consume(oa)});za.appendChild(ma);na.appendChild(za);za=document.createElement("td");za.style.overflow="hidden";za.style.whiteSpace="nowrap";za.style.textOverflow="ellipsis";za.style.verticalAlign="middle";za.style.cursor="pointer";za.setAttribute("title",ea);a=document.createElement("a");mxUtils.write(a,ea);a.style.textOverflow="ellipsis";a.style.position= -"relative";mxUtils.setOpacity(a,ua?100:40);za.appendChild(a);mxEvent.addListener(za,"click",function(oa){if(mxEvent.isShiftDown(oa))Q(!0),ya();else if(ua&&0mxUtils.indexOf(W,ca[fa])&&W.push(ca[fa]);W.sort();T.isSelectionEmpty()?S(W):S(W,T.getCommonTagsForCells(T.getSelectionCells()))}});T.selectionModel.addListener(mxEvent.CHANGE,Y);T.model.addListener(mxEvent.CHANGE,Y);T.addListener(mxEvent.REFRESH,Y);var ba=document.createElement("div");ba.className= -"geToolbarContainer geDialogToolbar";ba.style.position="absolute";ba.style.display="flex";ba.style.bottom="0px";ba.style.left="0px";ba.style.right="0px";ba.style.height="32px";ba.style.overflow="hidden";ba.style.padding="3px 4px 4px 4px";ba.style.borderWidth="1px 0px 0px 0px";ba.style.borderStyle="solid";ba.style.whiteSpace="nowrap";if(T.isEnabled()){Z.style.bottom="32px";var da=document.createElement("a");da.className="geButton";var ia=da.cloneNode(!1);ia.style.backgroundImage="url("+Editor.visibleImage+ -")";ia.setAttribute("title",mxResources.get("reset"));mxEvent.addListener(ia,"click",function(ca){T.setHiddenTags([]);mxEvent.isShiftDown(ca)||(W=T.hiddenTags.slice());O();T.refresh();mxEvent.consume(ca)});ba.appendChild(ia);null!=F&&(da=da.cloneNode(!1),da.style.backgroundImage="url("+Editor.plusImage+")",da.setAttribute("title",mxResources.get("add")),mxEvent.addListener(da,"click",function(ca){F(W,function(fa){W=fa;Y()});mxEvent.consume(ca)}),ba.appendChild(da));X.appendChild(ba)}null!=M&&ba.appendChild(M); -return{div:X,refresh:Y}};Graph.prototype.getCustomFonts=function(){var m=this.extFonts;m=null!=m?m.slice():[];for(var z in Graph.customFontElements){var F=Graph.customFontElements[z];m.push({name:F.name,url:F.url})}return m};Graph.prototype.setFont=function(m,z){Graph.addFont(m,z);var F=Editor.guid();document.execCommand("fontname",!1,F);for(var M=this.cellEditor.textarea.getElementsByTagName("font"),O=!1,Q=0;Q'+mxUtils.htmlEntities(m)+""};mxGraphView.prototype.redrawEnumerationState=function(m){var z="1"==mxUtils.getValue(m.style,"enumerate",0);z&&null==m.secondLabel?(m.secondLabel=new mxText("",new mxRectangle,mxConstants.ALIGN_LEFT,mxConstants.ALIGN_BOTTOM), -m.secondLabel.size=12,m.secondLabel.state=m,m.secondLabel.dialect=mxConstants.DIALECT_STRICTHTML,this.graph.cellRenderer.initializeLabel(m,m.secondLabel)):z||null==m.secondLabel||(m.secondLabel.destroy(),m.secondLabel=null);z=m.secondLabel;if(null!=z){var F=m.view.scale,M=this.createEnumerationValue(m);m=this.graph.model.isVertex(m.cell)?new mxRectangle(m.x+m.width-4*F,m.y+4*F,0,0):mxRectangle.fromPoint(m.view.getPoint(m));z.bounds.equals(m)&&z.value==M&&z.scale==F||(z.bounds=m,z.value=M,z.scale= -F,z.redraw())}};var N=Graph.prototype.refresh;Graph.prototype.refresh=function(){this.refreshBackgroundImage();N.apply(this,arguments)};Graph.prototype.refreshBackgroundImage=function(){null!=this.backgroundImage&&null!=this.backgroundImage.originalSrc&&(this.setBackgroundImage(this.backgroundImage),this.view.validateBackgroundImage())};var V=Graph.prototype.loadStylesheet;Graph.prototype.loadStylesheet=function(){V.apply(this,arguments);this.currentStyle="default-style2"};Graph.prototype.handleCustomLink= -function(m,z){"data:action/json,"==m.substring(0,17)&&(m=JSON.parse(m.substring(17)),null!=m.actions&&this.executeCustomActions(m.actions,null,z))};Graph.prototype.executeCustomActions=function(m,z,F){if(this.executingCustomActions)this.stoppingCustomActions=!0,null!=this.pendingWaitThread&&window.clearTimeout(this.pendingWaitThread),null!=this.pendingExecuteNextAction&&this.pendingExecuteNextAction(),this.fireEvent(new mxEventObject("stopExecutingCustomActions"));else{this.executingCustomActions= -!0;var M=!1,O=0,Q=0,S=mxUtils.bind(this,function(){M||(M=!0,this.model.beginUpdate())}),T=mxUtils.bind(this,function(){M&&(M=!1,this.model.endUpdate())}),W=mxUtils.bind(this,function(){0mxUtils.indexOf(Y.tags.visible,ca[da])&&0>mxUtils.indexOf(ia,ca[da])&&ia.push(ca[da])}null!=ia&&this.setHiddenTags(ia);this.refresh()}0m.excludeCells.indexOf(z[M].id)&&F.push(z[M]);z=F}return z};Graph.prototype.getCellsById=function(m){var z=[];if(null!=m)for(var F=0;Fz?this.hiddenTags.push(m):0<=z&&this.hiddenTags.splice(z,1);this.fireEvent(new mxEventObject("hiddenTagsChanged"))}; -Graph.prototype.isAllTagsHidden=function(m){if(null==m||0==m.length||0==this.hiddenTags.length)return!1;m=m.split(" ");if(m.length>this.hiddenTags.length)return!1;for(var z=0;zmxUtils.indexOf(this.hiddenTags,m[z]))return!1;return!0};Graph.prototype.getCellsForTags=function(m,z,F,M){var O=[];if(null!=m){z=null!=z?z:this.model.getDescendants(this.model.getRoot());for(var Q=0,S={},T=0;T=m.length)){for(var Z=X=0;ZmxUtils.indexOf(O,T)&&(M=0la.size&&(za=za.slice(0,la.size));na=za.join(",");null!=la.countProperty&&(ca.setCellStyles(la.countProperty,za.length,ca.getSelectionCells()),xa.push(la.countProperty),ya.push(za.length))}ca.setCellStyles(ta,na,ca.getSelectionCells());xa.push(ta);ya.push(na);if(null!=la.dependentProps)for(ta=0;tana)Ja=Ja.slice(0,na);else for(var Na=Ja.length;Nala.max&&(Ga=la.max);var Ra=null;try{Ra="numbers"==za?Ga.match(/\d+/g).map(Number).join(" "):encodeURIComponent(("int"==za?parseInt(Ga):Ga)+"")}catch($a){}Q(ta,Ra,la,null,La)}Ia.innerHTML="";var La=document.createElement("input");P(Ia,La,!0);La.value=decodeURIComponent(na);La.className="gePropEditor";"int"!=za&&"float"!=za||la.allowAuto||(La.type="number",La.step="int"==za?"1":"any",null!=la.min&&(La.min=parseFloat(la.min)),null!=la.max&&(La.max=parseFloat(la.max))); +Ia.appendChild(La);mxEvent.addListener(La,"keypress",function(Ga){13==Ga.keyCode&&Ha()});La.focus();mxEvent.addListener(La,"blur",function(){Ha()})}))}la.isDeletable&&(xa=mxUtils.button("-",mxUtils.bind(Z,function(Ha){Q(ta,"",la,la.index);mxEvent.consume(Ha)})),xa.style.height="16px",xa.style.width="25px",xa.style.float="right",xa.className="geColorBtn",Aa.appendChild(xa));Ca.appendChild(Aa);return Ca}var Z=this,ca=this.editorUi.editor.graph,da=[],ia=document.createElement("table");ia.className="geProperties geFullWidthElement"; +var ba=document.createElement("tr");ba.className="gePropHeader";var fa=document.createElement("th");fa.className="gePropHeaderCell";fa.style.paddingLeft="16px";fa.style.backgroundRepeat="no-repeat";fa.style.backgroundPosition="-2px 50%";fa.style.backgroundSize="20px";mxUtils.write(fa,mxResources.get("property"));ba.style.cursor="pointer";var aa=function(){var ta=ia.querySelectorAll(".gePropNonHeaderRow");if(Z.editorUi.propertiesCollapsed){fa.style.backgroundImage="url('"+Editor.arrowRightImage+"')"; +var na="none";for(var la=n.childNodes.length-1;0<=la;la--)try{var Da=n.childNodes[la],xa=Da.nodeName.toUpperCase();"INPUT"!=xa&&"SELECT"!=xa||n.removeChild(Da)}catch(ya){}}else fa.style.backgroundImage="url('"+Editor.arrowDownImage+"')",na="";for(la=0;la=this.defaultColorSchemes.length? +"24px":"30px";aa.style.margin="0px 6px 6px 0px";if(null!=fa){var ja="1px solid";null!=fa.border&&(ja=fa.border);if(null!=fa.gradient)aa.style.backgroundImage="linear-gradient("+mxUtils.getLightDarkColor(fa.fill).cssText+" 0px,"+mxUtils.getLightDarkColor(fa.gradient).cssText+" 100%)";else if(fa.fill==mxConstants.NONE)aa.style.background="url('"+Dialog.prototype.noColorImage+"')";else if(null==fa.fill||""==fa.fill)aa.style.backgroundColor=mxUtils.getLightDarkColor(mxUtils.getValue(da,mxConstants.STYLE_FILLCOLOR, +"#ffffff")).cssText;else{var ha=mxUtils.getLightDarkColor(fa.fill);aa.style.backgroundImage="linear-gradient(to right bottom, "+ha.cssText+" 50%, "+ha.light+" 50.3%)"}null==fa.stroke||fa.stroke==mxConstants.NONE?aa.style.border=ja+" transparent":""==fa.stroke?aa.style.border="1px solid "+mxUtils.getLightDarkColor(mxUtils.getValue(da,mxConstants.STYLE_STROKECOLOR,"#000000")).cssText:(ha=mxUtils.getLightDarkColor(fa.stroke),aa.style.border=ja+" "+ha.cssText,aa.style.borderRightColor=ha.light,aa.style.borderBottomColor= +aa.style.borderRightColor);null!=fa.title&&aa.setAttribute("title",fa.title)}else ja=mxUtils.getValue(da,mxConstants.STYLE_FILLCOLOR,"#ffffff"),ha=mxUtils.getValue(da,mxConstants.STYLE_STROKECOLOR,"#000000"),aa.style.backgroundColor=ja,aa.style.border="1px solid "+ha;aa.style.borderRadius="0";L.appendChild(aa);null!=fa&&null!=fa.gradient&&(ja=aa.cloneNode(!1),ja.style.backgroundImage="linear-gradient(light-dark(transparent, "+mxUtils.getLightDarkColor(fa.fill).light+") 0px, light-dark(transparent, "+ +mxUtils.getLightDarkColor(fa.gradient).light+") 100%)",ja.style.clipPath="polygon(0 100%, 100% 0, 100% 100%)",ja.style.backgroundColor="transparent",L.appendChild(ja),ja.style.marginLeft="-42px",mxEvent.addListener(ja,"click",function(){aa.click()}))});L.innerText="";if(null!=ca)for(var ba=0;ba=this.defaultColorSchemes.length?43:23;var Y=document.createElement("div");Y.className="geButton";Y.style.cssText="position:absolute;left:0px;bottom:"+S+"px;width:20px;background-image:url("+Editor.chevronLeftImage+");";mxEvent.addListener(Y,"click",mxUtils.bind(this,function(){W(mxUtils.mod(this.format.currentScheme-1,this.defaultColorSchemes.length))}));var Z=document.createElement("div");Z.className="geButton";Z.style.cssText="position:absolute;left:186px;bottom:"+S+"px;width:20px;background-image:url("+ +Editor.chevronRightImage+");";1=this.defaultColorSchemes.length&&n.appendChild(Q)}return n}}Graph.fontMapping={"https://fonts.googleapis.com/css?family=Architects+Daughter":'@font-face { font-family: "Architects Daughter"; src: url('+STYLE_PATH+ +'/fonts/ArchitectsDaughter-Regular.ttf) format("truetype"); }'};Graph.customFontElements={};Graph.isGoogleFontUrl=function(n){return n.substring(0,Editor.GOOGLE_FONTS.length)==Editor.GOOGLE_FONTS||n.substring(0,Editor.GOOGLE_FONTS_CSS2.length)==Editor.GOOGLE_FONTS_CSS2};Graph.isCssFontUrl=function(n){return Graph.isGoogleFontUrl(n)};Graph.rewriteGoogleFontUrl=function(n){null!=n&&n.substring(0,Editor.GOOGLE_FONTS.length)==Editor.GOOGLE_FONTS&&(n=Editor.GOOGLE_FONTS_CSS2+n.substring(Editor.GOOGLE_FONTS.length)+ +":wght@400;500");return n};Graph.createFontElement=function(n,z){var E=Graph.fontMapping[z];null==E&&Graph.isCssFontUrl(z)?(n=document.createElement("link"),n.setAttribute("rel","stylesheet"),n.setAttribute("type","text/css"),n.setAttribute("charset","UTF-8"),n.setAttribute("href",Graph.rewriteGoogleFontUrl(z))):(null==E&&(E='@font-face {\nfont-family: "'+n+'";\nsrc: url("'+z+'");\n}'),n=document.createElement("style"),mxUtils.write(n,E));return n};Graph.addRecentCustomFont=function(n,z){};Graph.addFont= +function(n,z,E,L){if(null!=n&&0mxUtils.indexOf(U.hiddenTags, +ea),va=document.createElement("tr"),pa=document.createElement("td");pa.style.align="center";pa.style.width="16px";var ma=document.createElement("img");ma.setAttribute("src",ra?Editor.visibleImage:Editor.hiddenImage);ma.setAttribute("title",mxResources.get(ra?"hideIt":"show",[ea]));mxUtils.setOpacity(ma,ra?75:25);ma.className="geAdaptiveAsset";ma.style.verticalAlign="middle";ma.style.cursor="pointer";ma.style.width="16px";if(z||Editor.isDarkMode())ma.style.filter="invert(100%)";pa.appendChild(ma); +mxEvent.addListener(ma,"click",function(na){mxEvent.isShiftDown(na)?P(0<=mxUtils.indexOf(U.hiddenTags,ea)):(U.toggleHiddenTag(ea),Q(),U.refresh());mxEvent.consume(na)});va.appendChild(pa);pa=document.createElement("td");pa.style.align="center";pa.style.width="16px";ma=document.createElement("img");ma.setAttribute("src",Editor.selectImage);ma.setAttribute("title",mxResources.get("select"));mxUtils.setOpacity(ma,ra?75:25);ma.className="geAdaptiveAsset";ma.style.verticalAlign="middle";ma.style.cursor= +"pointer";ma.style.width="16px";if(z||Editor.isDarkMode())ma.style.filter="invert(100%)";mxEvent.addListener(ma,"click",function(na){P(!0);Ba();mxEvent.consume(na)});pa.appendChild(ma);va.appendChild(pa);pa=document.createElement("td");pa.style.overflow="hidden";pa.style.whiteSpace="nowrap";pa.style.textOverflow="ellipsis";pa.style.verticalAlign="middle";pa.style.cursor="pointer";pa.setAttribute("title",ea);a=document.createElement("a");mxUtils.write(a,ea);a.style.textOverflow="ellipsis";a.style.position= +"relative";mxUtils.setOpacity(a,ra?100:40);pa.appendChild(a);mxEvent.addListener(pa,"click",function(na){if(mxEvent.isShiftDown(na))P(!0),Ba();else if(ra&&0mxUtils.indexOf(W,ba[fa])&&W.push(ba[fa]);W.sort();U.isSelectionEmpty()?S(W):S(W,U.getCommonTagsForCells(U.getSelectionCells()))}});U.selectionModel.addListener(mxEvent.CHANGE,Z);U.model.addListener(mxEvent.CHANGE,Z);U.addListener(mxEvent.REFRESH,Z);var ca=document.createElement("div");ca.className= +"geToolbarContainer geDialogToolbar";ca.style.position="absolute";ca.style.display="flex";ca.style.bottom="0px";ca.style.left="0px";ca.style.right="0px";ca.style.height="32px";ca.style.overflow="hidden";ca.style.padding="3px 4px 4px 4px";ca.style.borderWidth="1px 0px 0px 0px";ca.style.borderStyle="solid";ca.style.whiteSpace="nowrap";if(U.isEnabled()){Y.style.bottom="32px";var da=document.createElement("a");da.className="geButton";var ia=da.cloneNode(!1);ia.style.backgroundImage="url("+Editor.visibleImage+ +")";ia.setAttribute("title",mxResources.get("reset"));mxEvent.addListener(ia,"click",function(ba){U.setHiddenTags([]);mxEvent.isShiftDown(ba)||(W=U.hiddenTags.slice());Q();U.refresh();mxEvent.consume(ba)});ca.appendChild(ia);null!=E&&(da=da.cloneNode(!1),da.style.backgroundImage="url("+Editor.plusImage+")",da.setAttribute("title",mxResources.get("add")),mxEvent.addListener(da,"click",function(ba){E(W,function(fa){W=fa;Z()});mxEvent.consume(ba)}),ca.appendChild(da));X.appendChild(ca)}null!=L&&ca.appendChild(L); +return{div:X,refresh:Z}};Graph.prototype.getCustomFonts=function(){var n=this.extFonts;n=null!=n?n.slice():[];for(var z in Graph.customFontElements){var E=Graph.customFontElements[z];n.push({name:E.name,url:E.url})}return n};Graph.prototype.setFont=function(n,z){Graph.addFont(n,z);var E=Editor.guid();document.execCommand("fontname",!1,E);for(var L=this.cellEditor.textarea.getElementsByTagName("font"),Q=!1,P=0;P'+mxUtils.htmlEntities(n)+""};mxGraphView.prototype.redrawEnumerationState=function(n){var z="1"==mxUtils.getValue(n.style,"enumerate",0);z&&null==n.secondLabel?(n.secondLabel=new mxText("",new mxRectangle,mxConstants.ALIGN_LEFT,mxConstants.ALIGN_BOTTOM), +n.secondLabel.size=12,n.secondLabel.state=n,n.secondLabel.dialect=mxConstants.DIALECT_STRICTHTML,this.graph.cellRenderer.initializeLabel(n,n.secondLabel)):z||null==n.secondLabel||(n.secondLabel.destroy(),n.secondLabel=null);z=n.secondLabel;if(null!=z){var E=n.view.scale,L=this.createEnumerationValue(n);n=this.graph.model.isVertex(n.cell)?new mxRectangle(n.x+n.width-4*E,n.y+4*E,0,0):mxRectangle.fromPoint(n.view.getPoint(n));z.bounds.equals(n)&&z.value==L&&z.scale==E||(z.bounds=n,z.value=L,z.scale= +E,z.redraw())}};var O=Graph.prototype.refresh;Graph.prototype.refresh=function(){this.refreshBackgroundImage();O.apply(this,arguments)};Graph.prototype.refreshBackgroundImage=function(){null!=this.backgroundImage&&null!=this.backgroundImage.originalSrc&&(this.setBackgroundImage(this.backgroundImage),this.view.validateBackgroundImage())};var u=Graph.prototype.loadStylesheet;Graph.prototype.loadStylesheet=function(){u.apply(this,arguments);this.currentStyle="default-style2"};Graph.prototype.handleCustomLink= +function(n,z){"data:action/json,"==n.substring(0,17)&&(n=JSON.parse(n.substring(17)),null!=n.actions&&this.executeCustomActions(n.actions,null,z))};Graph.prototype.executeCustomActions=function(n,z,E){if(this.executingCustomActions)this.stoppingCustomActions=!0,null!=this.pendingWaitThread&&window.clearTimeout(this.pendingWaitThread),null!=this.pendingExecuteNextAction&&this.pendingExecuteNextAction(),this.fireEvent(new mxEventObject("stopExecutingCustomActions"));else{this.executingCustomActions= +!0;var L=!1,Q=0,P=0,S=mxUtils.bind(this,function(){L||(L=!0,this.model.beginUpdate())}),U=mxUtils.bind(this,function(){L&&(L=!1,this.model.endUpdate())}),W=mxUtils.bind(this,function(){0mxUtils.indexOf(Z.tags.visible,ba[da])&&0>mxUtils.indexOf(ia,ba[da])&&ia.push(ba[da])}null!=ia&&this.setHiddenTags(ia);this.refresh()}0n.excludeCells.indexOf(z[L].id)&&E.push(z[L]);z=E}return z};Graph.prototype.getCellsById=function(n){var z=[];if(null!=n)for(var E=0;Ez?this.hiddenTags.push(n):0<=z&&this.hiddenTags.splice(z,1);this.fireEvent(new mxEventObject("hiddenTagsChanged"))}; +Graph.prototype.isAllTagsHidden=function(n){if(null==n||0==n.length||0==this.hiddenTags.length)return!1;n=n.split(" ");if(n.length>this.hiddenTags.length)return!1;for(var z=0;zmxUtils.indexOf(this.hiddenTags,n[z]))return!1;return!0};Graph.prototype.getCellsForTags=function(n,z,E,L){var Q=[];if(null!=n){z=null!=z?z:this.model.getDescendants(this.model.getRoot());for(var P=0,S={},U=0;U=n.length)){for(var Y=X=0;YmxUtils.indexOf(Q,U)&&(L=0
')))}catch(m){}Editor.prototype.useCanvasForExport=!1})(); +STENCIL_PATH+"/pid/misc.xml"];mxStencilRegistry.libraries.pid2valves=[SHAPES_PATH+"/pid2/mxPidValves.js"];mxStencilRegistry.libraries.pidFlowSensors=[STENCIL_PATH+"/pid/flow_sensors.xml"];mxStencilRegistry.libraries.salesforce=[STENCIL_PATH+"/salesforce.xml"];mxStencilRegistry.libraries.sap=[SHAPES_PATH+"/mxSAP.js",STENCIL_PATH+"/sap.xml"];mxStencilRegistry.libraries.emoji=[SHAPES_PATH+"/emoji/mxEmoji.js"];mxMarker.getPackageForType=function(n){var z=null;null!=n&&0
')))}catch(n){}Editor.prototype.useCanvasForExport=!1})(); (function(){var b=new mxObjectCodec(new ChangePageSetup,["ui","previousColor","previousImage","previousFormat"]);b.beforeDecode=function(e,f,c){c.ui=e.ui;return f};b.afterDecode=function(e,f,c){c.previousColor=c.color;c.previousImage=c.image;c.previousFormat=c.format;c.previousAdaptiveColors=c.adaptiveColors;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(b)})(); -(function(){var b=new mxObjectCodec(new ChangeGridColor,["ui"]);b.beforeDecode=function(e,f,c){c.ui=e.ui;return f};mxCodecRegistry.register(b)})();(function(){EditorUi.VERSION="27.0.5";EditorUi.compactUi="atlas"!=Editor.currentTheme||window.DRAWIO_PUBLIC_BUILD;Editor.isDarkMode()&&(mxGraphView.prototype.gridColor=mxGraphView.prototype.defaultDarkGridColor);EditorUi.enableLogging="1"!=urlParams.stealth&&"1"!=urlParams.lockdown&&(/.*\.draw\.io$/.test(window.location.hostname)||/.*\.diagrams\.net$/.test(window.location.hostname))&&"https://preprod.diagrams.net/"!=window.location.hostname&&"support.draw.io"!=window.location.hostname&& +(function(){var b=new mxObjectCodec(new ChangeGridColor,["ui"]);b.beforeDecode=function(e,f,c){c.ui=e.ui;return f};mxCodecRegistry.register(b)})();(function(){EditorUi.VERSION="27.0.9";EditorUi.compactUi="atlas"!=Editor.currentTheme||window.DRAWIO_PUBLIC_BUILD;Editor.isDarkMode()&&(mxGraphView.prototype.gridColor=mxGraphView.prototype.defaultDarkGridColor);EditorUi.enableLogging="1"!=urlParams.stealth&&"1"!=urlParams.lockdown&&(/.*\.draw\.io$/.test(window.location.hostname)||/.*\.diagrams\.net$/.test(window.location.hostname))&&"https://preprod.diagrams.net/"!=window.location.hostname&&"support.draw.io"!=window.location.hostname&& "test.draw.io"!=window.location.hostname;EditorUi.drawHost=window.DRAWIO_BASE_URL;EditorUi.lightboxHost=window.DRAWIO_LIGHTBOX_URL;EditorUi.lastErrorMessage=null;EditorUi.ignoredAnonymizedChars="\n\t`~!@#$%^&*()_+{}|:\"<>?-=[];'./,\n\t";EditorUi.templateFile=TEMPLATE_PATH+"/index.xml";EditorUi.cacheUrl=window.REALTIME_URL;null==EditorUi.cacheUrl&&"undefined"!==typeof DrawioFile&&(DrawioFile.SYNC="none");Editor.cacheTimeout=1E4;EditorUi.enablePlantUml=EditorUi.enableLogging;EditorUi.isElectronApp= null!=window&&null!=window.process&&null!=window.process.versions&&null!=window.process.versions.electron;EditorUi.nativeFileSupport=!mxClient.IS_OP&&!EditorUi.isElectronApp&&"1"!=urlParams.extAuth&&"showSaveFilePicker"in window&&"showOpenFilePicker"in window;EditorUi.enableDrafts=!mxClient.IS_CHROMEAPP&&isLocalStorage&&"0"!=urlParams.drafts;EditorUi.scratchpadHelpLink="https://www.drawio.com/doc/faq/scratchpad";EditorUi.enableHtmlEditOption=!0;EditorUi.mermaidDiagramTypes="flowchart classDiagram sequenceDiagram stateDiagram mindmap graph erDiagram requirementDiagram journey gantt pie gitGraph".split(" "); EditorUi.defaultMermaidConfig={theme:"neutral",arrowMarkerAbsolute:!1,flowchart:{htmlLabels:!1},sequence:{diagramMarginX:50,diagramMarginY:10,actorMargin:50,width:150,height:65,boxMargin:10,boxTextMargin:5,noteMargin:10,messageMargin:35,mirrorActors:!0,bottomMarginAdj:1,useMaxWidth:!0,rightAngles:!1,showSequenceNumbers:!1},gantt:{titleTopMargin:25,barHeight:20,barGap:4,topPadding:50,leftPadding:75,gridLineStartPadding:35,fontSize:11,fontFamily:'"Open-Sans", "sans-serif"',numberSectionStyles:4,axisFormat:"%Y-%m-%d"}}; -EditorUi.logError=function(d,g,k,n,u,x,A){if(null!=d){u=null!=u?u:Error(d);u.stack=null!=u.stack?u.stack:"";x=null!=x?x:0>d.indexOf("NetworkError")&&0>d.indexOf("SecurityError")&&0>d.indexOf("NS_ERROR_FAILURE")&&0>d.indexOf("out of memory")?"SEVERE":"CONFIG";try{EditorUi.enableLogging&&"1"!=urlParams.dev&&d!=EditorUi.lastErrorMessage&&0>d.indexOf("extension:")&&0>d.indexOf("ResizeObserver loop completed with undelivered notifications")&&0>u.stack.indexOf("extension:")&&0>u.stack.indexOf(":")&& -0>u.stack.indexOf("/math/es5/")&&(EditorUi.lastErrorMessage=d,(new Image).src=(null!=window.DRAWIO_LOG_URL?window.DRAWIO_LOG_URL:"")+"/log?severity="+x+"&v="+encodeURIComponent(EditorUi.VERSION)+"&msg=clientError:"+encodeURIComponent(d)+":url:"+encodeURIComponent(window.location.href)+":lnum:"+encodeURIComponent(k)+(null!=n?":colno:"+encodeURIComponent(n):"")+(""!=u.stack?"&stack="+encodeURIComponent(u.stack):""))}catch(I){}try{A||null==window.console||console.error(x,d,g,k,n,u)}catch(I){}}};EditorUi.logEvent= +EditorUi.logError=function(d,g,k,m,t,y,A){if(null!=d){t=null!=t?t:Error(d);t.stack=null!=t.stack?t.stack:"";y=null!=y?y:0>d.indexOf("NetworkError")&&0>d.indexOf("SecurityError")&&0>d.indexOf("NS_ERROR_FAILURE")&&0>d.indexOf("out of memory")?"SEVERE":"CONFIG";try{EditorUi.enableLogging&&"1"!=urlParams.dev&&d!=EditorUi.lastErrorMessage&&0>d.indexOf("extension:")&&0>d.indexOf("ResizeObserver loop completed with undelivered notifications")&&0>t.stack.indexOf("extension:")&&0>t.stack.indexOf(":")&& +0>t.stack.indexOf("/math/es5/")&&(EditorUi.lastErrorMessage=d,(new Image).src=(null!=window.DRAWIO_LOG_URL?window.DRAWIO_LOG_URL:"")+"/log?severity="+y+"&v="+encodeURIComponent(EditorUi.VERSION)+"&msg=clientError:"+encodeURIComponent(d)+":url:"+encodeURIComponent(window.location.href)+":lnum:"+encodeURIComponent(k)+(null!=m?":colno:"+encodeURIComponent(m):"")+(""!=t.stack?"&stack="+encodeURIComponent(t.stack):""))}catch(H){}try{A||null==window.console||console.error(y,d,g,k,m,t)}catch(H){}}};EditorUi.logEvent= function(d){if("1"==urlParams.dev)EditorUi.debug("logEvent",d);else if(EditorUi.enableLogging)try{var g=null!=window.DRAWIO_LOG_URL?window.DRAWIO_LOG_URL:"";(new Image).src=g+"/images/1x1.png?v="+encodeURIComponent(EditorUi.VERSION)+(null!=d?"&data="+encodeURIComponent(JSON.stringify(d)):"")}catch(k){}};EditorUi.sendReport=function(d,g){if("1"==urlParams.dev)EditorUi.debug("sendReport",d);else if(EditorUi.enableLogging)try{g=null!=g?g:5E4,d.length>g&&(d=d.substring(0,g)+"\n...[SHORTENED]"),mxUtils.post("/email", "version="+encodeURIComponent(EditorUi.VERSION)+"&url="+encodeURIComponent(window.location.href)+"&data="+encodeURIComponent(d))}catch(k){}};EditorUi.debug=function(){try{if(null!=window.console&&"1"==urlParams.test){for(var d=[(new Date).toISOString()],g=0;g
')))}catch(u){}try{g= -document.createElement("canvas");g.width=g.height=1;var n=g.toDataURL("image/jpeg");EditorUi.prototype.jpgSupported=null!==n.match("image/jpeg");n=g.toDataURL("image/webp");EditorUi.prototype.webpSupported=null!==n.match("image/webp")}catch(u){}})();EditorUi.prototype.createButtonContainer=function(){var d=document.createElement("div");d.className="geButtonContainer";return d};EditorUi.prototype.openLink=function(d,g,k){return this.editor.graph.openLink(d,g,k)};EditorUi.prototype.showSplash=function(d){}; +!0;EditorUi.prototype.embedExportBorder=8;EditorUi.prototype.embedExportTheme="auto";EditorUi.prototype.embedExportBackground=null;EditorUi.prototype.shareCursorPosition=!0;EditorUi.prototype.showRemoteCursors=!0;(function(){EditorUi.prototype.useCanvasForExport=!1;EditorUi.prototype.jpgSupported=!1;EditorUi.prototype.webpSupported=!1;try{var d=document.createElement("canvas");EditorUi.prototype.canvasSupported=!(!d.getContext||!d.getContext("2d"))}catch(t){}try{var g=document.createElement("canvas"), +k=new Image;k.onload=function(){try{g.getContext("2d").drawImage(k,0,0);var t=g.toDataURL("image/png");EditorUi.prototype.useCanvasForExport=null!=t&&6
')))}catch(t){}try{g= +document.createElement("canvas");g.width=g.height=1;var m=g.toDataURL("image/jpeg");EditorUi.prototype.jpgSupported=null!==m.match("image/jpeg");m=g.toDataURL("image/webp");EditorUi.prototype.webpSupported=null!==m.match("image/webp")}catch(t){}})();EditorUi.prototype.createButtonContainer=function(){var d=document.createElement("div");d.className="geButtonContainer";return d};EditorUi.prototype.openLink=function(d,g,k){return this.editor.graph.openLink(d,g,k)};EditorUi.prototype.showSplash=function(d){}; EditorUi.prototype.getLocalData=function(d,g){g(localStorage.getItem(d))};EditorUi.prototype.setLocalData=function(d,g,k){localStorage.setItem(d,g);null!=k&&k()};EditorUi.prototype.isLocked=function(){var d=this.getCurrentFile();return null!=d&&d.isLocked()};EditorUi.prototype.removeLocalData=function(d,g){localStorage.removeItem(d);g()};EditorUi.prototype.setShareCursorPosition=function(d){this.shareCursorPosition=d;this.fireEvent(new mxEventObject("shareCursorPositionChanged"))};EditorUi.prototype.isShareCursorPosition= function(){return this.shareCursorPosition};EditorUi.prototype.setShowRemoteCursors=function(d){this.showRemoteCursors=d;this.fireEvent(new mxEventObject("showRemoteCursorsChanged"))};EditorUi.prototype.isShowRemoteCursors=function(){return this.showRemoteCursors};EditorUi.prototype.setMathEnabled=function(d){var g=this.editor.graph;g.mathEnabled=d;null!=g.view.backgroundImage&&(g.view.backgroundImage.destroy(),g.view.backgroundImage=null);this.editor.updateGraphComponents();g.refresh();g.defaultMathEnabled= d;this.fireEvent(new mxEventObject("mathEnabledChanged"))};EditorUi.prototype.isMathEnabled=function(d){return this.editor.graph.mathEnabled};EditorUi.prototype.setAdaptiveColors=function(d){this.editor.graph.setAdaptiveColors(d);this.editor.graph.view.clear();this.fireEvent(new mxEventObject("adaptiveColorsChanged"))};EditorUi.prototype.isStandaloneApp=function(){return mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||this.isOfflineApp()};EditorUi.prototype.isOfflineApp=function(){return"1"==urlParams.offline}; -EditorUi.prototype.isOffline=function(d){return this.isOfflineApp()||!navigator.onLine||!d&&("1"==urlParams.stealth||"1"==urlParams.lockdown)};EditorUi.prototype.isExternalDataComms=function(){return"1"!=urlParams.offline&&!this.isOffline()&&!this.isOfflineApp()};EditorUi.prototype.createSpinner=function(d,g,k){var n=null==d||null==g;k=null!=k?k:24;var u=new Spinner({lines:12,length:k,width:Math.round(k/3),radius:Math.round(k/2),rotate:0,color:"light-dark(#000000, #C0C0C0)",speed:1.5,trail:60,shadow:!1, -hwaccel:!1,zIndex:2E9}),x=this.timeout,A=u.spin,I=null,G=null,C=mxUtils.bind(this,function(U){null!=U&&U()}),P=this;u.spin=function(U,N,V,q){q=null!=q?q:x;var y=!1;if(!this.active){var D=Date.now();null!=V&&(I=window.setTimeout(function(){u.stop();I=null;V({code:App.ERROR_TIMEOUT,message:mxResources.get("timeout"),retry:G})},q));n&&(g=Math.max(document.body.clientHeight||0,document.documentElement.clientHeight||0)/2,d=document.body.clientWidth/2-2);U==document.body&&"1"==urlParams.embedInline&&(U= -P.diagramContainer,d=U.scrollLeft+U.clientWidth/2,g=U.scrollTop+U.clientHeight/2);A.call(this,U);"1"==urlParams.embedInline&&null!=u.el&&(u.el.style.marginTop=U.scrollTop+"px",u.el.style.marginLeft=U.scrollLeft+"px");this.active=!0;null!=N&&(y=document.createElement("div"),y.className="geSpinnerStatus",y.style.position="absolute",y.style.whiteSpace="nowrap",y.style.background="#4B4243",y.style.color="white",y.style.fontFamily=Editor.defaultHtmlFont,y.style.fontSize="9pt",y.style.padding="6px",y.style.paddingLeft= -"10px",y.style.paddingRight="10px",y.style.zIndex=2E9,y.style.left=Math.max(0,d)+"px",y.style.top=Math.max(0,g+70)+"px",mxUtils.setPrefixedStyle(y.style,"borderRadius","6px"),mxUtils.setPrefixedStyle(y.style,"transform","translate(-50%,-50%)"),Editor.isDarkMode()||mxUtils.setPrefixedStyle(y.style,"boxShadow","2px 2px 3px 0px #ddd"),"..."!=N.substring(N.length-3,N.length)&&"!"!=N.charAt(N.length-1)&&(N+="..."),y.innerText=N,U.appendChild(y),u.status=y);this.pause=mxUtils.bind(this,function(){var J= -C;this.active&&(q=Math.max(0,q-(Date.now()-D)),J=mxUtils.bind(this,function(L){this.spin(U,N,V,q);if(null!=L)try{L(),G=mxUtils.bind(this,function(){this.spin(U,N,V,q);try{L()}catch(K){null!=V&&V(K)}})}catch(K){null!=V&&V(K)}}));this.stop();return J});y=!0}return y};var R=u.stop;u.stop=function(){R.call(this);this.active&&(this.active=!1,null!=I&&(window.clearTimeout(I),I=null),null!=u.status&&null!=u.status.parentNode&&u.status.parentNode.removeChild(u.status),u.status=null)};u.pause=function(){return C}; -return u};EditorUi.prototype.isCompatibleString=function(d){try{var g=mxUtils.parseXml(d),k=this.editor.extractGraphModel(g.documentElement,!0);return null!=k&&0==k.getElementsByTagName("parsererror").length}catch(n){}return!1};EditorUi.isVisioFilename=function(d){return/(\.v(dx|sdx?))($|\?)/i.test(d)||/(\.vs(x|sx?))($|\?)/i.test(d)};EditorUi.prototype.isVisioData=function(d){return 8=x.keyCode)||n.isSelectionEmpty()||mxEvent.isAltDown(x)||mxEvent.isShiftDown(x)||mxEvent.isControlDown(x)||mxClient.IS_MAC&&mxEvent.isMetaDown(x)?k.apply(this,arguments):null}}return g};var e=EditorUi.prototype.extractGraphModelFromHtml;EditorUi.prototype.extractGraphModelFromHtml=function(d){var g=e.apply(this,arguments);if(null==g)try{var k=d.indexOf("<mxfile ");if(0<=k){var n=d.lastIndexOf("</mxfile>");n>k&&(g=d.substring(k, -n+15).replace(/>/g,">").replace(/</g,"<").replace(/\\"/g,'"').replace(/\n/g,""))}else{var u=mxUtils.parseXml(d),x=this.editor.extractGraphModel(u.documentElement,null!=this.pages||"hidden"==this.diagramContainer.style.visibility);g=null!=x?mxUtils.getXml(x):""}}catch(A){}return g};EditorUi.prototype.validateFileData=function(d){if(null!=d&&0');0<=g&&(d=d.slice(0,g)+''+d.slice(g+23-1,d.length));d=Graph.zapGremlins(d)}return d}; -EditorUi.prototype.replaceFileData=function(d,g){EditorUi.debug("EditorUi.replaceFileData",[this],"data",[d],"patches",g);d=this.validateFileData(d);d=null!=d&&0\n':">")+"\n\n"+(null==u?null!=k?""+mxUtils.htmlEntities(k)+"\n":"":"draw.io\n")+ -(null!=u?'\n":"")+"\n':">")+'\n
\n
'+n+"
\n
\n"+(null==u?'